(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0006】
データ記憶技術においては従来から、様々な要望が存在する。例えば、メモリの使用容量を削減したい、メモリを効率的に使用したい、等の要望である。特許文献1〜3の技術はその要望に応えるべく開発されたものの一例と考えられる。
【0007】
本発明は、従来とは全く異なる技術によって、例えばメモリの使用容量の削減とメモリの効率的な使用とのうちのいずれかを実現することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の態様に係るデータ記憶制御装置は、画像データを圧縮して圧縮データを出力する圧縮部と、前記圧縮データを書込データとしてメモリに書き込む書込制御部とを含む。前記圧縮部は、ロスレス圧縮を行うロスレス圧縮部とロッシー圧縮を行うロッシー圧縮部とを含み、前記ロスレス圧縮部および前記ロッシー圧縮部を用いて前記画像データを、所定の領域サイズの画像ブロックから成る第1ブロックごとに、圧縮することによって、
同じ第1ブロックから複数種類の圧縮データを並列的
に実際に生成する圧縮データ生成部と、前記圧縮データ生成部によって
実際に生成された各種類の圧縮データが所定の選択条件を満足するか否かを判定し前記所定の選択条件を満足する1つの圧縮データを選択するという選択処理を、N個(Nは1以上の整数)の前記第1ブロックから成る第2ブロックごとに行う選択部とを含む。前記所定の選択条件は、前記第2ブロックに含まれる全ての前記第1ブロックについてデータサイズが規定値以下であるというデータサイズ条件と、前記データサイズ条件を満足する前記圧縮データのうちで情報保持精度が最も高いというデータ精度条件とを含む。前記書込制御部は、前記選択部によって選択された前記1つの圧縮データを前記書込データとして前記メモリに書き込む。
【0009】
本発明の第2の態様に係るデータ記憶制御装置は、第1の態様に係るデータ記憶制御装置であって、前記ロスレス圧縮は、圧縮対象画素と基準画素との画素値の差分を求め、得られた差分値を前記圧縮対象画素に割り当てる処理であり、前記ロスレス圧縮部は、前記第1ブロックにおいて前記圧縮対象画素および前記基準画素を所定の画素分類に従って定め、定めた前記圧縮対象画素および前記基準画素について前記ロスレス圧縮を実行する。
【0010】
本発明の第3の態様に係るデータ記憶制御装置は、第2の態様に係るデータ記憶制御装置であって、前記所定の画素分類は、前記第1ブロック内で隣接する一対の画素を前記圧縮対象画素および前記基準画素に定め、前記第1ブロック内で前記一対の画素を順次選択するという第1の画素分類を含む。
【0011】
本発明の第4の態様に係るデータ記憶制御装置は、第2または第3の態様に係るデータ記憶制御装置であって、前記所定の画素分類は、前記第1ブロック内の予め指定された固定位置の画素を前記基準画素に定め、前記第1ブロック内で前記固定位置以外の各画素を前記圧縮対象画素に定めるという第2の画素分類を含む。
【0012】
本発明の第5の態様に係るデータ記憶制御装置は、第1〜第4の態様のうちのいずれか一つに係るデータ記憶制御装置であって、前記ロッシー圧縮部は、互いに異なる種類のロッシー圧縮を実行する複数のロッシー圧縮処理部を含む。
【0013】
本発明の第6の態様に係るデータ記憶制御装置は、第2〜第4の態様のうちのいずれか一つに係るデータ記憶制御装置であって、前記ロッシー圧縮部は
、圧縮対象データに対して
、第1ローパスフィルタを施す第1ローパス処理と
、前記ロスレス圧縮とをこの順序で実行することによって、
第1圧縮データを生成する、
第1ロッシー圧縮処理部と、前記圧縮対象データに対して前記第1ローパス処理と前記ロスレス圧縮とをこの順序で実行し、前記ロスレス圧縮によって得られた前記差分値を最下位ビット側にビットシフトさせる第1ビットシフト処理を実行することによって、少なくとも1つの
第2圧縮データを生成する、
第2ロッシー圧縮処理部とのうちの少なくとも1つを含む。
【0014】
本発明の第7の態様に係るデータ記憶制御装置は、第6の態様に係るデータ記憶制御装置であって、前記少なくとも1つの
第2圧縮データは、前記第1ビットシフト処理でのシフト量が異なる複数の
第2圧縮データである。
【0015】
本発明の第8の態様に係るデータ記憶制御装置は、第6または第7の態様に係るデータ記憶制御装置であって、前記
第1ロッシー圧縮処理部と前記
第2ロッシー圧縮処理部とのうちの少なくとも一方で行う前記ロスレス圧縮は、前記ロスレス圧縮部で行う前記ロスレス圧縮とは圧縮手法が異なる。
【0016】
本発明の第9の態様に係るデータ記憶制御装置は、第6〜第8の態様のうちのいずれか一つに係るデータ記憶制御装置であって、前記ロッシー圧縮部は
、圧縮対象データに対して
、前記第1ローパスフィルタとは作用強度が異なる第2ローパスフィルタを施す第2ローパス処理と
、前記ロスレス圧縮とを順次に実行することによって、
第3圧縮データを生成する、
第3ロッシー圧縮処理部と、前記圧縮対象データに対して前記第2ローパス処理と前記ロスレス圧縮とをこの順序で実行し、前記ロスレス圧縮によって得られた前記差分値を最下位ビット側にビットシフトさせる第2ビットシフト処理を実行することによって、少なくとも1つの
第4圧縮データを生成する、
第4ロッシー圧縮処理部とのうちの少なくとも1つをさらに含む。
【0017】
本発明の第10の態様に係るデータ記憶制御装置は、第9の態様に係るデータ記憶制御装置であって、前記少なくとも1つの
第4圧縮データは、前記第2ビットシフト処理でのシフト量が異なる複数の
第4圧縮データである。
【0018】
本発明の第11の態様に係るデータ記憶制御装置は、第9または第10の態様に係るデータ記憶制御装置であって、前記
第3ロッシー圧縮処理部と前記
第4ロッシー圧縮処理部とのうちの少なくとも一方で行う前記ロスレス圧縮は、前記ロスレス圧縮部で行う前記ロスレス圧縮とは圧縮手法が異なる。
【0019】
本発明の第12の態様に係るデータ記憶制御装置は、第1〜第11の態様のうちのいずれか一つに係るデータ記憶制御装置であって、前記ロッシー圧縮部は、圧縮対象データ中の圧縮対象画素に対してビット削減処理を実行することによって、
第5圧縮データを生成する、
第5ロッシー圧縮処理部を含み、前記ビット削減処理では、前記画素値を表現するビット列のうちの最下位側から所定範囲のビットを削除することによって、前記画素値のビット数を削減し、前記所定範囲は、前記
第5圧縮データが前記データサイズ条件を常に満足するように、設定されている。
【0020】
本発明の第13の態様に係るデータ記憶制御装置は、第1〜第12の態様のうちのいずれか一つに係るデータ記憶制御装置であって、前記ロスレス圧縮部と前記ロッシー圧縮部とは並列的に動作する。
【0021】
本発明の第14の態様に係るデータ記憶制御装置は、第1〜第13の態様のうちのいずれか一つに係るデータ記憶制御装置であって、前記圧縮部に供給する前記画像データを一時的に保持する入力バッファメモリをさらに含む。前記ロスレス圧縮または前記ロッシー圧縮は、圧縮対象
として利用中ではない前記第1ブロックを参照対象として利用する参照型処理を含む。前記入力バッファメモリは、前記圧縮対象および前記参照対象としての利用が終了していない前記第1ブロックについて前記画像データを保持し、前記圧縮対象および前記参照対象としての利用が終了した前記第1ブロックに割り当てられている記憶領域を所定タイミングで解放する。
【0022】
本発明の第15の態様に係るデータ記憶制御装置は、第14の態様に係るデータ記憶制御装置であって、前記圧縮部は、前記入力バッファメモリから、X個(Xは1以上の整数)の前記第2ブロックから成る第3ブロック単位で前記画像データを取得し、前記入力バッファメモリは、前記第3ブロックと関連付けて前記記憶領域を管理する。
【0023】
本発明の第16の態様に係るデータ記憶制御装置は、第14または第15の態様に係るデータ記憶制御装置であって、前記圧縮部から出力された前記書込データを、前記書込制御部に供給するために、一時的に保持する出力バッファメモリをさらに含む。前記メモリは、複数のバンクを有し、前記書込制御部は、前記書込データごとに前記複数のバンクを切り替えて、前記書込データを前記メモリに書き込む。
【0024】
本発明の第17の態様に係るデータ記憶制御装置は、第16の態様に係るデータ記憶制御装置であって、前記書込制御部は、前記出力バッファメモリにY個(Yは2以上の整数)のバンク用の前記書込データが蓄積されるのを待ち、前記Y個の前記書込データをまとめて前記メモリに書き込む。
【0025】
本発明の第18の態様に係るデータ記憶制御装置は、第14〜第17の態様うちのいずれか一つに係るデータ記憶制御装置であって、前記入力バッファメモリよりも前段では画像処理がマクロブロック単位で行われ、V個(Vは1以上の整数)の前記第2ブロックがW個(Wは1以上の整数)の前記マクロブロックに対応する。
【0026】
本発明の第19の態様に係るデータ記憶制御方法は、(a)画像データを圧縮して圧縮データを出力する工程と、(b)前記圧縮データを書込データとしてメモリに書き込む工程とを含む。前記工程(a)は、(a−1)ロスレス圧縮およびロッシー圧縮を用いて前記画像データを、所定の領域サイズの画像ブロックから成る第1ブロックごとに、圧縮することによって、
同じ第1ブロックから複数種類の圧縮データを並列的に
実際に生成する工程と、(a−2)前記工程(a−1)によって
実際に生成された各種類の圧縮データが所定の選択条件を満足するか否かを判定し前記所定の選択条件を満足する1つの圧縮データを選択するという選択処理を、N個(Nは1以上の整数)の前記第1ブロックから成る第2ブロックごとに行う工程とを含む。前記所定の選択条件は、前記第2ブロックに含まれる全ての前記第1ブロックについてデータサイズが規定値以下であるというデータサイズ条件と、前記データサイズ条件を満足する前記圧縮データのうちで情報保持精度が最も高いというデータ精度条件とを含む。前記工程(b)では、前記工程(a−2)によって選択された前記1つの圧縮データを前記書込データとして前記メモリに書き込む。
【発明の効果】
【0027】
上記の第1および第
19の態様によれば、メモリの使用容量をより確実に削減することができる。また、第1の態様を引用する第2〜第
18の態様においても同様の効果が得られる。
【0028】
本発明の目的、特徴、局面、および利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【発明を実施するための形態】
【0030】
<実施の形態1>
<符号化装置>
図1に、実施の形態1について、符号化装置1のブロック図を例示する。符号化装置1は、例えばH.264、MPEG(Moving Picture Experts Group)−2、MPEG−4等の方式に準拠して構成され、動画像データに対して圧縮処理(換言すれば符号化処理)を施す。
【0031】
図1の例によれば、動き予測部4は、符号化の対象となる画像データを記憶部2から読み出し、動き予測に利用する参照画像データを記憶部3から読み出し、それらの画像データに基づいて動き予測を行う。動き予測は、いわゆるマクロブロック単位で行われる。ここでは、記憶部2,3がSRAM(Static Random Access Memory)である例を挙げ、記憶部2,3をSRAM2,3と呼ぶ場合もある。
【0032】
動き予測の結果データは、変換部5において、例えば離散コサイン変換(DCT)によって変換される。さらに変換部5では、得られた変換係数(いわゆるDCT係数)に対して量子化を行う。量子化された変換係数は、エントロピー符号化部6によってエントロピー符号化され、エントロピー符号化部6から圧縮画像データのビットストリームとして出力される。なお、エントロピー符号化には、例えばCABAC(Context−based Adaptive Binary Arithmetic Coding)、CAVLC(Context−based Adaptive Variable Length Coding)等の手法が用いられる。
【0033】
量子化された変換係数は、逆変換部7にも供給される。逆変換部7では、変換部5とは逆の処理、すなわち逆量子化および逆DCTが行われ、それにより動き予測結果に関する残差信号が生成される。残差信号は、動き予測部4から供給される予測画像データと合成されて、デブロッキングフィルタ8に入力される。デブロッキングフィルタ8では、デブロッキング処理、すなわちマクロブロックの境界で生じるブロックノイズを低減する処理が実行される。
【0034】
デブロッキング後の画像データは、データ記憶制御装置9によって、記憶部10に格納される。ここでは記憶部10がDRAM(Dynamic Random Access Memory)である例を挙げ、記憶部10をDRAM10と呼ぶ場合もある。DRAM10内の画像データは、データ読出制御装置11によって読み出され、参照画像データとしてSRAM3に格納される。
【0035】
データ記憶制御装置9は、符号化装置1内で生成された参照画像データ(より具体的には、
図1の例では、デブロッキング後の参照画像データ)を圧縮してから、DRAM10に格納する。逆に、データ読出制御装置11は、DRAM10に格納されている圧縮データを復元してから、SRAM3に格納する。なお、データ記憶制御装置9およびデータ読出制御装置11は、
図1の例とは異なる構成を有した装置にも適用可能である。
【0036】
<データ記憶制御装置の概要>
図2に、データ記憶制御装置9のブロック図を例示する。
図2の例によれば、データ記憶制御装置9は、入力バッファメモリ31と、圧縮部32と、出力バッファメモリ33と、書込制御部34とを含んでいる。なお、以下では、バッファメモリをバッファと略称する場合もある。
【0037】
入力バッファ31は、例えばSRAMで構成される。入力バッファ31は、圧縮部32に供給する画像データを一時的に保持する。圧縮部32に供給する画像データは、ここでは、参照画像データ(より具体的には、デブロッキング後の参照画像データ)である。
【0038】
ここでは、画像がY,Cb,Crの成分で表現される例を挙げる。この場合、画像データとは、Y成分の画像データと、Cb成分の画像データと、Cr成分の画像データのそれぞれを指す。但し、データ記憶制御装置9は、画像が他の成分で表現される例に対しても適用可能である。
【0039】
圧縮部32は、圧縮データ生成部41と、選択部42とを含んでいる。
【0040】
圧縮データ生成部41は、入力バッファ31を介して取得した画像データから、複数種類の圧縮データを生成可能に構成されている。より具体的には、圧縮データ生成部41は、ロスレス圧縮を行うロスレス圧縮部51と、ロッシー圧縮を行うロッシー圧縮部52とを含んでいる。なお、ロスレス圧縮は可逆圧縮とも呼ばれ、ロッシー圧縮は不可逆圧縮とも呼ばれる。
【0041】
そして、圧縮データ生成部41は、ロスレス圧縮部51およびロッシー圧縮部52を用いて画像データを圧縮することによって、複数種類の圧縮データを生成する。圧縮データ生成部41は、複数種類の圧縮データの一部または全部を並列的に(換言すれば、同時的に)生成するように構成されてもよいし、あるいは直列的に(換言すれば、順次に)生成するように構成されてもよい。
【0042】
選択部42は、圧縮データ生成部41によって生成された各種類の圧縮データに対して、所定の選択処理を行う。具体的に選択処理では、圧縮データ生成部41によって生成された各種類の圧縮データが所定の選択条件を満足するか否かを判定し、所定の選択条件を満足する1つの圧縮データを選択する。
【0043】
上記選択条件は、データサイズ条件と、データ精度条件とを含む。データサイズ条件は、データサイズが規定値以下であるという条件である。データ精度条件は、データサイズ条件を満足する圧縮データのうちで情報保持精度が最も高いという条件である。情報保持精度とは、圧縮前の画像データによって提供される情報が、圧縮および復元を経てどの程度保持されるかを表す。情報保持精度は復元精度と呼んでもよい。
【0044】
出力バッファ33は、選択部42によって選択された圧縮データ、換言すれば圧縮部32から出力された圧縮データを一時的に保持し、書込制御部34に供給する。
【0045】
書込制御部34は、出力バッファ33内の圧縮データを、書込データとして記憶部10(
図1参照)に書き込む。記憶部10がDRAMである例に鑑みると、書込制御部34は、いわゆるDRAMコントローラで構成可能である。このため、以下では、書込制御部34をDRAMコントローラ34と呼ぶ場合もある。
【0046】
ここで、データ記憶制御装置9では画像データは画像ブロック単位で処理される。そのような処理ブロックを
図3および
図4に例示する。
図3はY成分の画像データに関し、
図4はCb成分およびCr成分の画像データに関する。
図3および
図4に示すように、データ記憶制御装置9では、第1ブロックBL1および第2ブロックBL2と呼ぶ2種類の画像ブロックが利用される。
【0047】
ここでは、Y成分の画像データに関しては(
図3参照)、第1ブロックBL1が4×1画素の領域サイズで構成され、第2ブロックBL2が16×4画素の領域サイズで構成される例を挙げる。この場合、第2ブロックBL2は、4×4ブロックの第1ブロックBL1によって構成されることになる。換言すれば、第2ブロックBL2は、16個の第1ブロックBL1に分割可能である。
【0048】
また、Cb成分およびCr成分の画像データに関しては(
図4参照)、第1ブロックBL1が8×1画素の領域サイズで構成され、第2ブロックBL2が8×2画素の領域サイズで構成される例を挙げる。この場合、第2ブロックBL2は、1×2ブロックの第1ブロックBL1によって構成されることになる。換言すれば、第2ブロックBL2は、2個の第1ブロックBL1に分割可能である。
【0049】
第2ブロックBL2はN個(Nは1以上の整数)の第1ブロックBL1で構成され、
図3および
図4の例ではNの値は2以上である。但し、Nの値は1であってもよく、その場合、第2ブロックBL2と第1ブロックBL1とは同じ領域サイズを有することになる。
【0050】
なお、H.264、MPEG等で利用されるマクロブロックMB(
図3および
図4を参照)は、例えば16×16画素や8×8画素の領域サイズに設定される。符号化装置1がH.264、MPEG等に準拠する場合、例えば、入力バッファ31にはそのようなマクロブロックMB単位で、画像データが入力される。
【0051】
例えば圧縮データ生成部41では、第1ブロックBL1ごとに、ロスレス圧縮およびロッシー圧縮が行われる。また、例えば選択部42では、第2ブロックBL2ごとに、選択処理が行われる。
【0052】
以下に、データ記憶制御装置9のより具体的な例を説明する。
【0053】
<ロスレス圧縮部>
図5に、ロスレス圧縮部51の一例を示す。
図5の例によれば、ロスレス圧縮部51はロスレス圧縮処理部61を含み、ロスレス圧縮処理部61は第1ブロックBL1ごとに所定のロスレス圧縮を実行する。
【0054】
図6に、ロスレス圧縮処理部61で行われるロスレス圧縮を例示する。
図6には、Y成分の第1ブロックBL1を示しており、説明のために第1ブロックBL1を構成する4つの画素PXを左端からPXa,PXb,PXc,PXdと呼ぶ。また、画素PXa,PXb,PXc,PXdの画素値(換言すれば画素データ)PをPa,Pb,Pc,Pdとする。
【0055】
図6の例によれば、画素PXaの画素値は、圧縮後もPaのままである。他方、画素PXbの画素値は{Pb−Pa}に変換され、画素PXcの画素値は{Pc−Pb}に変換され、画素PXdの画素値は{Pd−Pc}に変換される。
【0056】
すなわち、ロスレス圧縮処理部61は、第1ブロックBL1内で隣接する一対の画素PXを圧縮対象画素および基準画素に定め、第1ブロックBL1内で当該一対の画素PXを順次選択する、という画素分類に従って、圧縮対象画素および基準画素を順次定める。そして、ロスレス圧縮処理部61は、圧縮対象画素と基準画素との画素値の差分を求め、得られた差分値を圧縮対象画素に割り当てる、という内容のロスレス圧縮を実行する。
図6の例では一対の画素PXにおいて左隣の画素PXを基準画素に設定するが、右隣の画素PXを基準画素に設定してもよい。なお、Cb成分およびCr成分に対しても、同様のロスレス圧縮を実行可能である。
【0057】
なお、他の種類のロスレス圧縮をロスレス圧縮処理部61に採用してもよい。また、ロスレス圧縮部51は、異なる種類のロスレス圧縮を実行する複数のロスレス圧縮処理部61を含んでもよい。
【0058】
<ロッシー圧縮部>
図7に、ロッシー圧縮部52の一例を示す。
図7の例によれば、ロッシー圧縮部52は、互いに異なる種類のロッシー圧縮を実行する複数のロッシー圧縮処理部62を含んでいる。
図8〜
図12を参照して、ロッシー圧縮処理部62の第1例〜第4例を示す。
【0059】
図8に示すように、第1例のロッシー圧縮処理部62aは、圧縮対象データに対してローパスフィルタ(LPF)を施す処理であるローパス処理を実行することによって、圧縮データを生成する。すなわち、ローパス処理はロッシー圧縮の一種である。ローパスフィルタとして例えば水平ローパスフィルタを利用可能である。
【0060】
図9を参照して、9タップの水平ローパスフィルタの例を説明する。ここでは、注目画素の画素値をP4とし、注目画素の左側の4つの画素の画素値をP0〜P3とし、注目画素の右側の4つの画素の画素値をP5〜P8とする。また、これら9個の画素に対するLPF係数をC0〜C8とする。この場合、ローパス処理後の注目画素には、
図9中に記載の数式によって算出された値が割り当てられる。
【0061】
第1ブロックBL1内の各画素を順次、注目画素に設定することによって、第1ブロックBL1に対するローパス処理が完了する。なお、
図9の例によれば、圧縮対象の第1ブロックBL1に隣接する第1ブロックBL1の画素値も参照することになる。
【0062】
図10に示すように、第2例のロッシー圧縮処理部62bは、圧縮対象データに対してローパス処理とロスレス圧縮とをこの順序で実行することによって、圧縮データを生成する。ここでは、ローパス処理はロッシー圧縮処理部62a(
図8参照)と同じとし、ロスレス圧縮はロスレス圧縮処理部61(
図5参照)と同じとする。
【0063】
図11に示すように、第3例のロッシー圧縮処理部62cは、圧縮対象データに対してローパス処理とロスレス圧縮とビットシフト処理とをこの順序で実行することによって、圧縮データを生成する。ここでは、ローパス処理とロスレス圧縮は、ロッシー圧縮処理部62b(
図10参照)と同じとする。ビットシフト処理では、ロスレス圧縮によって得られた差分値(より具体的には、当該差分値を二進数で表現した場合のビット列)を最下位ビット(LSB)側に、所定のシフト量だけビットシフトさせる。なお、以下では、最下位ビット側へのビットシフトを、右ビットシフトまたは右シフトと呼ぶ場合もある。
【0064】
ここで、複数のシフト量を利用すれば、第4例のロッシー圧縮処理部62d(
図12参照)のように、1つの圧縮対象データに対して複数の圧縮データを生成可能である。
【0065】
第1例〜第4例以外の構成をロッシー圧縮処理部62に採用することも可能である。例えば、ロッシー圧縮処理部62b〜62d(
図10〜
図12参照)においてLPF処理を省略しても構わない。また、LPFの作用強度を変えれば、別のロッシー圧縮処理部62を構成可能である。なお、LPFの作用強度は、LPF係数を制御することによって、調整可能である。
【0066】
<圧縮データ生成部の具体例>
図13に、圧縮データ生成部41の一例についてブロック図を示す。
図13の例において、ロスレス圧縮部51は、
図5および
図6の例によって構成されているものとする。また、
図13の例において、ロッシー圧縮部52は、4つのロッシー圧縮処理部62を含んでいる。
【0067】
具体的には、4つのロッシー圧縮処理部62は、ロッシー圧縮処理部62b(
図10参照)によって構成された2つのロッシー圧縮処理部62b1,62b2と、ロッシー圧縮処理部62d(
図12参照)によって構成された2つのロッシー圧縮処理部62d1,62d2である。ロッシー圧縮処理部62b1,62d1は、ローパス処理およびロスレス圧縮の実行部を共有しており、ロッシー圧縮処理部62b1の出力に対してビットシフト処理が実行されることによって、ロッシー圧縮処理部62d1の出力が生成される。同様に、ロッシー圧縮処理部62b2,62d2は、ローパス処理およびロスレス圧縮の実行部を共有している。ロッシー圧縮処理部62b1,62d1が共有するLPFは、ロッシー圧縮処理部62b2,62d2が共有するLPFに比べて、作用強度が小さい。弱いLPFによる演算を
図14に例示し、強いLPFによる演算を
図15に例示する。
【0068】
なお、
図13に示すように、ロスレス圧縮処理部61によって生成される圧縮データをDaと呼ぶことにする。
【0069】
また、弱いLPFを有するロッシー圧縮処理部62b1によって生成される圧縮データをDbと呼ぶことにする。また、弱いLPFを有するロッシー圧縮処理部62d1によって生成される2つの圧縮データをDc,Ddと呼ぶことにする。圧縮データDcは圧縮データDbを1ビット、右シフトさせて得られ、圧縮データDdは圧縮データDbを2ビット、右シフトさせて得られる。
【0070】
また、強いLPFを有するロッシー圧縮処理部62b2によって生成される圧縮データをDeと呼ぶことにする。また、強いLPFを有するロッシー圧縮処理部62d2によって生成される2つの圧縮データをDf,Dgと呼ぶことにする。圧縮データDfは圧縮データDeを1ビット、右シフトさせて得られ、圧縮データDgは圧縮データDeを2ビット、右シフトさせて得られる。
【0071】
以下では、
図13の例を参照して、圧縮部32の動作をより具体的に説明する。
【0072】
<圧縮部の動作例>
上記のように、圧縮部32では、圧縮データ生成部41が1つの画像データから複数種類の圧縮データを生成し、選択部42が複数種類の圧縮データのうちから1つを選択する。選択部42による選択処理では、データサイズ条件と、データ精度条件とが適用される。
【0073】
先に、データ精度条件を説明する。データ精度条件は、上記のように、データサイズ条件を満足する圧縮データのうちで情報保持精度が最も高いという条件である。情報保持精度の序列は事前のシミュレーション、実験等を通じて予め規定されており、その序列の情報は選択部42に予め与えられているものとする。
【0074】
以下では、圧縮データDa〜Dg(
図13参照)の情報保持精度の序列について、
図16の例を参照する。
図16の例によれば、ロスレス圧縮データDaの情報保持精度が最も高い。そして、ロッシー圧縮データDb,De,Dc,Df,Ddの順に情報保持精度が低くなり、ロッシー圧縮データDgの情報保持精度が最も低い。
【0075】
次に、データサイズ条件を説明する。データサイズ条件は、上記のように、圧縮データのデータサイズが規定値以下であるという条件である。より具体的には、データサイズ条件は、選択処理で利用する第2ブロックBL2に含まれる全ての第1ブロックBL1について、データサイズが規定値以下であることを要求する。
図17〜
図19の数値例を参照して、データサイズ条件を具体的に説明する。
【0076】
図17等において、第1ブロックBL1内の4つの数値は、その第1ブロックBL1に含まれる4つの画素のデータ(換言すれば、画素値)である。
図17、
図18および
図19はY成分、Cb成分およびCr成分の画像データについてそれぞれ示している。また、
図6の手法によるロスレス圧縮が適用され、ロスレス圧縮データDaが生成される。なお、圧縮データ生成部41は、第2ブロックBL2に含まれる第1ブロックBL1の一部または全部を並列的に処理するように構成されてもよいし、あるいは直列的に生成するように構成されてもよい。
【0077】
圧縮データにおいて、第1ブロックBL1中の画素は、判定対象画素と除外画素とに分類される。なお、
図17〜
図19では、除外画素に対して、砂模様のハッチングを施している。
図17では、左端の画素が除外画素に設定され、その他の3つの画素が判定対象画素に設定される。
図18および
図19では、左端の画素が除外画素に設定され、その他の7つの画素が判定対象画素に設定される。すなわち、ロスレス圧縮の際に、基準画素としてだけ利用された画素が、除外画素に設定される。
【0078】
そして、データサイズ条件は、判定対象画素の画素値(ここではロスレス圧縮によって得られた差分値)が規定ビット数以下で表現できることを要求する。規定ビット数は、圧縮対象データ(すなわち圧縮部32に入力される画像データ)の各画素値を表示するために割り当てられたビット数(ここでは8ビットとする)よりも少ないビット数に設定される。
【0079】
一例として、Y成分の画像データに対する規定ビット数を5ビットとする。この場合、データサイズ条件は、判定対象画素の画素値が5ビットで表現可能な数値範囲(すなわち−16から+15)内に在ることを要求する。なお、負数は2の補数を用いて表すものとする。また、一例として、Cb成分およびCr成分の画像データに対する規定ビット数を4ビットとする。この場合、データサイズ条件は、判定対象画素の画素値が4ビットで表現可能な数値範囲(すなわち−8から+7)内に在ることを要求する。
【0080】
図17〜
図19の例では、全ての第1ブロックBL1において判定対象画素の画素値が規定ビット数以下で表現できることが分かる。その結果、
図17〜
図19の例は、データサイズ条件を満足する。
【0081】
ここで、
図17〜
図19の例ではロスレス圧縮データDaが生成される。上記のように、ロスレス圧縮データDaの情報保持精度は最も高い(
図16参照)。したがって、
図17〜
図19の例によれば、当該圧縮データDaがデータサイズ条件とデータ精度条件の両方を満足する。その結果、当該圧縮データDaが、選択部42によって選択されて、圧縮部32から出力される。
【0082】
さて、圧縮前において、第2ブロックBL2のデータサイズは次のように計算される。すなわち、Y成分のデータサイズは512ビット(={8ビット×4画素}×16ブロック)である。Cb成分のデータサイズは128ビット(={8ビット×8画素}×2ブロック)である。Cr成分のデータサイズも128ビットである。したがって、合計768ビットになる。
【0083】
これに対し、圧縮後においてデータサイズ条件を満足する場合、第2ブロックBL2のデータサイズは次のように計算される。すなわち、Y成分のデータサイズは368ビット(={8ビット×1画素+5ビット×3画素}×16ブロック)である。Cb成分のデータサイズは72ビット(={8ビット×1画素+4ビット×7画素}×2ブロック)である。Cr成分のデータサイズも72ビットである。したがって、合計512ビットになる。
【0084】
つまり、データサイズ条件を満足する場合、第2ブロックBL2を768ビットから512ビットに圧縮できる。
【0085】
図20〜
図25を参照して、別の数値例を示す。なお、
図20〜
図25にはY成分のみを例示しているが、Cb成分およびCr成分についても同様に理解される。
【0086】
図20では、圧縮対象データ(すなわち圧縮部32に入力される画像データ)に対してロスレス圧縮が実行され、ロスレス圧縮データDaが生成される(
図13参照)。
【0087】
図21では、圧縮対象データに対して、弱いLPFによるローパス処理と、ロスレス圧縮とがこの順序で実行され、ロッシー圧縮データDbが生成される(
図13参照)。なお、
図9で説明したように、第2ブロックBL2中の左端および右端の第1ブロックBL1に対するローパス処理では、隣接する第2ブロックBL2中の第1ブロックBL1(
図22中の二点鎖線で示した第1ブロックBL1を参照)が利用される。
【0088】
図23は、圧縮対象データに対して、弱いLPFによるローパス処理と、ロスレス圧縮と、右ビットシフト処理(1ビット分)がこの順序で実行されることによって生成されたロッシー圧縮データDcを例示している(
図13参照)。なお、2ビット分の右ビットシフト処理によって生成されるロッシー圧縮データDdは図示を省略する。
【0089】
図24では、圧縮対象データに対して、強いLPFによるローパス処理と、ロスレス圧縮とがこの順序で実行され、ロッシー圧縮データDeが生成される(
図13参照)。
図25は、圧縮対象データに対して、強いLPFによるローパス処理と、ロスレス圧縮と、右ビットシフト処理(1ビット分)がこの順序で実行されることによって生成されたロッシー圧縮データDfを例示している(
図13参照)。なお、2ビット分の右ビットシフト処理によって生成されるロッシー圧縮データDgは図示を省略する。
【0090】
図20〜
図25の例において、圧縮データDa,Db,Dc,De中の丸で囲んだ画素値は、5ビットで表現可能な数値範囲(すなわち−16から+15)内に存在しない。このため、圧縮データDa,Db,Dc,Deはデータサイズ条件を満足しない。これに対し、
図25から分かるように、圧縮データDfはデータサイズ条件を満足する。この場合、
図16を参照すると、圧縮データDfが、データサイズ条件を満足する圧縮データのうちで情報保持精度が最も高いことになる。すなわち、圧縮データDfはデータ精度条件も満足する。したがって、圧縮データDfが、選択部42によって選択されて、圧縮部32から出力される。
【0091】
なお、
図26に、圧縮データDfを復元した場合の画像データを示す。また、
図27に、圧縮データDfを復元した画像データと圧縮前の画像データとの間の誤差を示す。
図27によれば、誤差の絶対値の和は40となる。
【0092】
ここで、データサイズ条件の判定は、圧縮データ生成部41によって生成される複数種類の圧縮データのうちで、情報保持精度が高い方から順に実行するのが効率的である。データサイズ条件を満足する圧縮データが見つかれば、残りの圧縮データについてはデータサイズ条件の判定を省略できるからである。また、例えば圧縮データ生成部41が複数種類の圧縮データを直列的に生成する場合、データサイズ条件を満足する圧縮データが見つかれば、その第2ブロックBL2については残りの圧縮データの生成を省略できる。
【0093】
なお、データサイズ条件における規定ビット数をMビットとすると、{8−M}ビットのシフト量のビットシフト処理を設けることによって、データサイズ条件を満足する圧縮データを確実に生成できる。
【0094】
<ロスレス圧縮の更なる例>
さて、
図6で説明したロスレス圧縮では、左端の画素を除いて、左隣の画素を基準画素にして画素値の差分を算出する。この手法によれば、小さい差分値を得やすい。その結果、ビットシフト処理でのシフト量を少なくすること、換言すればビットシフト処理の段数を少なくすることが可能である。
【0095】
その一方で、
図6のロスレス圧縮をロッシー圧縮処理部62で利用すると、第1ブロックBL1内で右側に行くほど誤差が蓄積されて
いく、換言すれば第1ブロックBL1内で誤差が右側に拡散していく場合がある。
【0096】
これに対し、
図28に示すロスレス圧縮によれば、誤差の拡散を抑制できる。具体的には、
図28の例によれば、画素PXaの画素値は、圧縮後もPaのままである。他方、画素PXbの画素値は{Pb−Pa}に変換され、画素PXcの画素値は{Pc−Pa}に変換され、画素PXdの画素値は{Pd−Pa}に変換される。
【0097】
すなわち、
図28の例は画素値の差分を算出するという処理内容は
図6と同じであるが、画素分類の規定が異なる。具体的には
図28の例は、第1ブロックBL1内の予め指定された固定位置の画素PXを基準画素に定め、第1ブロック内で固定位置以外の各画素PXを圧縮対象画素に定める、という画素分類を採用している。
図28の例では上記固定位置は第1ブロックBL1内の左端であるが、その他の位置を上記固定位置に定めてもよい。なお、Cb成分およびCr成分に対しても、同様のロスレス圧縮を実行可能である。
【0098】
図28のロスレス圧縮について、
図29〜
図34に数値例を示す。なお、
図29〜
図34にはY成分のみを例示しているが、Cb成分およびCr成分についても同様に理解される。
【0099】
図29では、圧縮対象データに対して、弱いLPFによるローパス処理と、
図28のロスレス圧縮とがこの順序で実行され、ロッシー圧縮データDbが生成される(
図13参照)。
図30は、圧縮対象データに対して、弱いLPFによるローパス処理と、
図28のロスレス圧縮と、右ビットシフト処理(1ビット分)がこの順序で実行されることによって生成されたロッシー圧縮データDcを例示している(
図13参照)。また、
図31には、2ビット分の右ビットシフト処理によって生成されたロッシー圧縮データDdを例示している(
図13参照)。
【0100】
図32では、圧縮対象データに対して、強いLPFによるローパス処理と、
図28のロスレス圧縮とがこの順序で実行され、ロッシー圧縮データDeが生成される(
図13参照)。
図33は、圧縮対象データに対して、強いLPFによるローパス処理と、
図28のロスレス圧縮と、右ビットシフト処理(1ビット分)がこの順序で実行されることによって生成されたロッシー圧縮データDfを例示している(
図13参照)。また、
図34には、2ビット分の右ビットシフト処理によって生成されたロッシー圧縮データDgを例示している(
図13参照)。
【0101】
図29〜
図34の例によれば、圧縮データDgがデータサイズ条件とデータ精度条件の両方を満足する。このため、圧縮データDgが、選択部42によって選択されて、圧縮部32から出力される。
【0102】
なお、
図35に、
図34の圧縮データDgを復元した場合の画像データを示す。また、
図36に、圧縮データDgを復元した画像データと圧縮前の画像データとの間の誤差を示す。
図36によれば、誤差の絶対値の和は60となる。
【0103】
ここで、ロスレス圧縮部51とロッシー圧縮部52とは同じ手法のロスレス圧縮を採用するものとするが、この例に限定されるものではない。例えば、ロスレス圧縮部51は
図6の手法を採用し、ロッシー圧縮部52は
図28の手法を採用してもよい。また、ロッシー圧縮部52が複数のロッシー圧縮処理部62を含む場合、一部または全部のロッシー圧縮処理部62において、ロスレス圧縮処理部61とは異なる手法のロスレス圧縮を採用してもよい。同じ手法のロスレス圧縮を採用すれば、例えば、装置設計を簡潔にすることができる。また、ロスレス圧縮用の回路を共有することも可能である。これに対し、異なる手法のロスレス圧縮を採用すれば、例えば、情報保持精度を調整することができ、それにより装置設計の自由度が増す。
【0104】
<ロッシー圧縮の更なる例>
図37および
図38を参照して、ロッシー圧縮処理部62の更なる例を説明する。
図37のロッシー圧縮処理部62eは、圧縮対象データ中の圧縮対象画素に対してビット削減処理を実行することによって、圧縮データを生成する。ビット削減処理では、
図38に示すように、画素値を表現するビット列のうちの最下位ビット(LSB)側から所定範囲のビットを削除することによって、画素値のビット数を削減する。
【0105】
図38には、圧縮前の画素値が二進数表記で“01011001”(十進数表記で“89”)であり、下位3ビットを削除する例を示している。換言すれば、上位5ビット“01011”が圧縮データとして抽出され、ロッシー圧縮処理部62eから出力される。
【0106】
ここで、上位5ビットを抽出すれば、確実に、圧縮対象画素の画素値を5ビットで表現可能な数値範囲(すなわち−16から+15)内に収めることできる。
【0107】
図39に、ビット削
減処理によって生成された圧縮データを復元した場合の数値例を示す。なお、復元処理では、5ビットから成る圧縮後の画素値に対して下位3ビットとして“000”を合成するものとする。また、
図40に、圧縮前後の画像データの誤差を示す。
図40によれば、誤差の絶対値の和は236となる。
【0108】
図39の例では、第2ブロックBL2中の全ての画素を圧縮対象画素としている。これによれば、例えば、装置設計を簡潔にすることができる。これに対し、例えば第1ブロックBL1内の右側の3つの画素のみを圧縮対象画素に設定してもよい。なお、いずれの例においても、圧縮対象画素が選択部42での判定対象画素に設定される。
【0109】
なお、Cb成分およびCr成分に対しても、同様のビット削
減処理を適用可能である。また、ビット削減処理を有するロッシー圧縮処理部62eを、他のロッシー圧縮処理部と組み合わせてもよい。また、ビット削減処理を各種処理(例えば
図10〜
図13を参照)と組み合わせることによって、別のロッシー圧縮処理部62を構成してもよい。
【0110】
<効果>
データ記憶制御装置9によれば、参照画像データを圧縮してから、DRAM10に格納する。このため、DRAM10の使用容量を削減することができる。
【0111】
しかも、圧縮部32から出力された第2ブロックBL2ごとの圧縮データのデータサイズは、圧縮部32でどの圧縮手法を利用したかに関わらず、同じである。すなわち、圧縮部32から出力される圧縮データは固定長である。
【0112】
ここで、ブロックごとにデータサイズが異なる場合、各ブロックのデータを詰めてDRAMに格納するためには、データサイズの相違に基づいて各記憶領域のアドレスを管理しなければならない。また、アドレス管理を簡略化するために最大のデータサイズに合わせて記憶領域を等分に区画すれば、DRAMの使用容量の削減に繋がらない。
【0113】
しかし、データ記憶制御装置9によれば、上記のように圧縮部32からは同じデータサイズで圧縮データが出力される。このため、簡単なアドレス管理によって、圧縮データを詰めて格納することができる。また、圧縮データを詰めて格納することによって、DRAM10の使用容量の削減に貢献できる。例えば、上記のように第2ブロックBL2を2/3(=512ビット/768ビット)のデータサイズに圧縮できるので、DRAM10の使用容量を2/3に削減できる。
【0114】
<データ読出制御装置>
図41に、データ読出制御装置11を説明するブロック図である。
図41の例によれば、データ読出制御装置11は、読出制御部134と、入力バッファ131と、伸張部132とを含んでいる。
【0115】
読出制御部134は、記憶部10(
図1参照)内の圧縮データを読み出して、入力バッファ131に転送する。記憶部10がDRAMである例に鑑みると、読出制御部134は、いわゆるDRAMコントローラで構成可能である。このため、以下では、読出制御部134をDRAMコントローラ134と呼ぶ場合もある。
【0116】
入力バッファ131は、例えばSRAMで構成される。入力バッファ131は、伸張部132に供給する圧縮データを一時的に保持する。
【0117】
伸張部132は、入力バッファ131を介して取得した圧縮データを伸張する。伸張部132は、伸張データ生成部141と、選択部142とを含んでいる。伸張データ生成部141は、ロスレス圧縮部151と、ロッシー圧縮部152とを含んでいる。ロスレス圧縮部151およびロッシー圧縮部152は、データ記憶制御装置9のロスレス圧縮部51およびロッシー圧縮部52と同じ構成を有している(
図2参照)。また、選択部142は、データ記憶制御装置9の選択部42と同じ構成を有している。
【0118】
したがって、伸張データ生成部141では、DRAM10から読み込んだ圧縮データから複数種類のデータが生成される。そして、選択部142では、その複数種類のデータのうちから、所定の選択条件(すなわち選択部42に採用されている選択条件)を満足する1つのデータが選択される。選択部142によって選択されたデータが、伸張データとしてSRAM3に転送される。
【0119】
ここで、符号化装置1内で生成された参照画像データ(
図1の例では、デブロッキング後の参照画像データ)は、データ記憶制御装置9によって圧縮され、その後データ読出制御装置11によって復元され、そして動き予測部4に供給される。この場合、動き予測を良好に行うためには、圧縮前の参照画像と同じまたはできるだけ近い画像(換言すれば、圧縮前の参照画像に比べて誤差が許容範囲内の画像)が、動き予測部4に供給されることが好ましい。なお、許容誤差は例えば、事前のシミュレーション、実験等を通じて予め設定される。
【0120】
例えば、圧縮データ生成部41および伸張データ生成部141が
図13の構成を採用している場合を想定する。その場合、ビットシフト処理が行われた圧縮データDc,Dd,Df,Dgは、その圧縮手法と同じ手法で伸張されることによって、許容誤差範囲内の参照画像を提供可能である。他方、ビットシフト処理が行われない圧縮データDa,Db,Deは、どの伸張手法によっても、許容誤差範囲内の参照画像を提供可能である。かかる点に鑑みると、ビットシフト処理が行われた圧縮データDc,Dd,Df,Dgに関しては、伸張部132の選択部142に対して、選択する伸張データを指示するのが好ましい。
【0121】
かかる選択指示は例えば、圧縮部32の選択部42が、選択した圧縮データに関する付加情報を生成し、当該付加情報を圧縮データに関連付けてDRAM10に格納すればよい。データ読出制御装置11はDRAM10から圧縮データと共に付加情報を読み出し、その付加情報は選択部142に供給される。それにより、選択部142は、付加情報に含まれた選択指示に応じて動作可能である。
【0122】
付加情報は例えば3ビットのフラグで構成可能である。より具体的には、そのうちの1ビットは、伸張部132の選択部142に対する選択指示の有無を示す。また、残りの2ビットは、その圧縮データが圧縮データDc,Dd,Df,Dgのどれに当たるのかについての識別子、換言すればどの伸張データを選択すべきかについての具体的な指示である。なお、識別子用のビット数は、識別対象となる圧縮データの数に応じて規定すればよい。
【0123】
なお、付加情報の構成は上記の例に限定されるものではない。また、DRAM10内において、付加情報の記憶領域は、対応する圧縮データの記憶領域と連続して設定される。あるいは、付加情報を、対応する圧縮データから離れた記憶領域に格納してもよい。例えば、付加情報のみを格納する記憶領域をDRAM10内に設けてもよい。
【0124】
ここで、上記のように各第2ブロックBL2は固定長(例えば512ビット)に圧縮される。付加情報は各第2ブロックBL2に対して生成され、そのデータサイズは上記の例では高々3ビットで済む。このため、付加情報を採用した場合であっても、データ記憶制御装置9について上述した効果は同様に得られる。
【0125】
<実施の形態2>
実施の形態2では、データ記憶制御装置9におけるデータ転送制御を説明する。
【0126】
実施の形態1で説明したように、ロッシー圧縮で利用するローパス処理は、圧縮対象の第1ブロックBL1に隣接する第1ブロックBL1の画素値も参照する(
図9および
図22参照)。すなわち、ローパス処理は、圧縮対象でない第1ブロックBL1を参照対象として利用する参照型処理の一例である。
【0127】
その場合、入力バッファ31は、圧縮対象としての利用が終了していない第1ブロックBL1のみならず、参照対象としての利用が終了していない第1ブロックBL1についても、画像データを保持しておく必要がある。
【0128】
他方、圧縮対象としての利用が終了していると共に参照対象としての利用も終了している第1ブロックBL1については、画像データが入力バッファ31から消去されても構わない。すなわち、入力バッファ31は、圧縮対象および参照対象としての利用が終了した第1ブロックBL1の画像データが使用している記憶領域を、利用終了後の所定タイミングで解放する(換言すれば上書き可能状態にする)。
【0129】
これを
図42〜
図45を参照して説明する。なお、以下ではY成分の画像データについて説明するが、Cb成分およびCr成分についても同様に理解される。
【0130】
ここでは、
図42および
図43に示すように、Y成分の画素データが16×16画素のマクロブロックMBごとに、ラスタ順に、入力バッファ31に供給される例を挙げる。なお、マクロブロックMBを区別する場合には、
図42に示すように、符号“MB”の後ろに枝番号を付すことにする。枝番号の付加は他の符号についても用いる。
【0131】
圧縮部32が、入力バッファ31から、X個(Xは1以上の整数)の第2ブロックBL2から成る第3ブロック単位で、画像データを取得するものとする。第3ブロックは、
図43の例ではマクロブロックMBとして(すなわちX=4として)、理解される。
【0132】
図43の例では、入力バッファ31が4つの記憶領域#1〜#4を有している。なお、当該4つの記憶領域#1〜#4のそれぞれが別個のSRAMで構成されていてもよく、その場合、それら4つのSRAMの総称が入力バッファ31にあたる。
【0133】
図43の例において、マクロブロックMB_2に含まれる第1ブロックBL1についてローパス処理を行う場合、両隣のマクロブロックMB_1,MB_3が参照対象として利用される。このため、マクロブロックMB_1,MB_2,MB_3は入力バッファ31内に存在する必要がある。
【0134】
一方、その時点において、マクロブロックMB_0については圧縮対象および参照対象としての利用が終了している。このため、マクロブロックMB_0が格納されている記憶領域#1は、例えばマクロブロックMB_2が圧縮対象となる時刻t2以降に解放される。
図43の例では、記憶領域#1にはその後の時刻t4に、マクロブロックMB_4の画像データが格納される。
【0135】
この場合、入力バッファメモリ31は、上記第3ブロックとしてのマクロブロックMBと関連付けて記憶領域#1〜#4を管理することになる。
【0136】
入力バッファ31内のデータをこのように管理することによって、入力バッファ31を効率良く利用することができる。また、入力バッファ31の記憶領域を循環的に利用することにより、入力バッファ31の容量が小さくても済む。
【0137】
ここで、DRAM10は複数の(ここでは8個の)バンクBKを有している。このため、DRAMコントローラ34は書込データごとにバンクBKを切り替えて、書込データをDRAM10に書き込む。
図43の例では、第2ブロックBL2ごとにバンクBKが切り替えられる。
【0138】
図44の例では、入力バッファ31に画像データが、第2ブロックBL2単位で、ラスタ順に供給される。また、圧縮部32は、入力バッファ31から、X個(Xは1以上の整数)の第2ブロックBL2から成る第3ブロック単位で、画像データを取得する。
図44の例では、第3ブロックは1個の第2ブロックBL2として(すなわちX=1として)、理解される。
【0139】
図44の例において、第2ブロックBL2_20に含まれる第1ブロックBL1についてローパス処理を行う場合、両隣の第2ブロックBL2_10,BL2_30が参照対象として利用される。このため、第2ブロックBL2_10,BL2_20,BL2_30は入力バッファ31内に存在する必要がある。
【0140】
一方、その時点において、第2ブロックBL2_00については圧縮対象および参照対象としての利用が終了している。このため、第2ブロックBL2_00が格納されている記憶領域#1は、例えば第2ブロックBL2_20が圧縮対象となる時刻t2以降に解放される。
図44の例では、記憶領域#1にはその後の時刻t4に、第2ブロックBL2_40の画像データが格納される。
【0141】
この場合も、入力バッファメモリ31は、上記第3ブロックとしての第2ブロックBL2と関連付けて記憶領域#1〜#4を管理することになる。
【0142】
図44の例においても、DRAMコントローラ34は書込データごとにバンクBKを切り替えて、書込データをDRAM10に書き込む。
【0143】
ここで、
図44の例では、DRAMコントローラ34は、1個のバンクBK分の書込データずつ(すなわち1個の第2ブロックBL2ずつ)、DRAM10に書き込んでいる。これに対し、出力バッファ33にY個(Yは2以上の整数。
図45の例ではY=4)のバンクBK用の書込データが蓄積されるのを待ち、当該Y個の書込データをまとめてDRAM10に書き込んでもよい。
【0144】
上記のように、入力バッファ31よりも前段(デブロッキングフィルタ8等)では、マクロブロックMB単位で画像処理が行われる。また、
図42〜
図45の例では、1個のマクロブロックMBが4個の第2ブロックBL2に対応する。また、入力バッファ31へのデータ入力は、
図43の例では4個の第2ブロックBL2ごとに行われるのに対し、
図44および
図45の例では1個の第2ブロックBL2ごとに行われる。また、DRAM10へのデータ書き込みは、
図43および
図45の例では4個の第2ブロックBL2ごとに行われるのに対し、
図44の例では1個の第2ブロックBL2ごとに行われる。
【0145】
かかる点に鑑みると、1個のマクロブロックMBが複数の第2ブロックBL2で構成されるように第2ブロックBL2を設定することによって、第2ブロックBL2よりも小さいブロック(以下、小ブロックと呼ぶことにする)が生じるのを防止できる。
【0146】
このため、入力バッファ31のデータ入出力において、入力バッファ31の記憶領域を管理しやすい。また、そのような管理しやすさは、入力バッファ31の効率的な利用に繋がる。
【0147】
また、DRAM10へのデータ転送において、小ブロックが存在しないことは、転送データの効率的な生成に役立つ。また、小ブロックを転送するためにバス帯域が増加するのを回避できる。すなわち、バス帯域を削減できる。また、小ブロックが存在しないので、DRAMコントローラ34にとって、DRAM10のアドレス管理(換言すればアクセス管理)が容易になる。
【0148】
さらに、1個のマクロブロックMBが複数の第2ブロックBL2で構成されるように第2ブロックBL2を設定することによって、マクロブロックMB単位で画像処理を行う種々の符号化装置に、データ記憶制御装置9を導入しやすいという利点がある。
【0149】
ここで、これらの効果は、1個のマクロブロックMBが1個の第2ブロックBL2で構成される場合にも得られる。また、複数個のマクロブロックMBが1個の第2ブロックBL2に対応する場合についても同様である。さらに、複数個のマクロブロックMBが複数個の第2ブロックBL2に対応する場合、換言すれば複数個のマクロブロックMBを1つのブロックとして見なし当該1つのブロックを上記小ブロックが生じないように複数の第2ブロックBL2に分割した場合についても、上記効果が得られる。
【0150】
これらをまとめて表現するならば、V個(Vは1以上の整数)の第2ブロックBL2がW個(Wは1以上の整数)のマクロブロックMBに対応するように第2ブロックBL2を設定することによって、上記効果が得られる。
【0151】
なお、実施の形態2は、圧縮部32が実施の形態1とは異なる圧縮手法を採用する場合にも適用可能である。また、その圧縮手法は、動画像圧縮でもよいし、静止画像圧縮(例えばJPEG(Joint Photographic Expert Group))でもよい。
【0152】
また、参照型処理はローパス処理以外の処理であってもよい。また、ロスレス圧縮が参照型処理を含んでもよい。
【0153】
<変形例>
実施の形態1,2ではデータ記憶制御装置9および符号化装置1における各種の処理内容が全てハードウェアで構成される場合を想定した。これに対し、そのような各種の処理内容の一部または全部を、ソフトウェアによって(換言すればマイクロプロセッサがプログラムを実行することによって)実現することも可能である。
【0154】
本発明は詳細に説明されたが、上記した説明は、すべての局面において、例示であって、本発明がそれに限定されるものではない。例示されていない無数の変形例が、本発明の範囲から外れることなく想定され得るものと解される。