説明

画像処理装置及び画像処理システム

【課題】圧縮データを伸張することによって得られるデータの品質を低下させることなく、メモリから圧縮データを読み出すときのバスの利用効率を改善する。
【解決手段】画像処理装置10は、圧縮部12と、サブブロック選択部16と、画像処理部18と、伸張部17と、を備える。圧縮部12は、複数のブロックを含む画像データの入力ビットストリームを所定数のブロック単位で圧縮し、圧縮データを生成する。サブブロック選択部16は、画像処理の対象となるリクエスト領域を含み、且つ、ブロックより小さいサブブロックを少なくとも1以上、圧縮データの中から選択する。伸張部17は、サブブロックを伸張し、伸張データを生成する。画像処理部18は、伸張データに対して画像処理を実行し、処理済画像データを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、画像処理装置及び画像処理システムに関する。
【背景技術】
【0002】
DRAM(Dynamic Random Access Memory)等のメモリの使用量と、メモリに接続されたバスの転送量と、を低減するために、メモリに記憶すべきデータを所定の圧縮単位(例えば、ブロックサイズ単位)で圧縮する技術が知られている。この技術を用いて圧縮された圧縮データは、圧縮単位と同じリード単位(例えば、ブロックサイズ単位)でメモリから読み出される。
【0003】
しかしながら、従来技術では、データ処理を実行するデータ処理モジュールが要求するデータサイズがブロックサイズより小さい場合であっても、リード単位はブロックサイズ単位である。従って、メモリから圧縮データを読み出すときのバスの利用効率は低い。
【0004】
一方、バスの利用効率を改善するために、リード単位をブロックサイズ単位より小さくするには、圧縮単位も小さくする必要がある。しかしながら、圧縮単位を小さくすると、圧縮データを伸張することによって得られるデータの品質が低下してしまう。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−77176号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明が解決しようとする課題は、圧縮データを伸張することによって得られるデータの品質を低下させることなく、メモリから圧縮データを読み出すときのバスの利用効率を改善することである。
【課題を解決するための手段】
【0007】
本発明の実施形態の画像処理装置は、圧縮部と、サブブロック選択部と、画像処理部と、伸張部と、を備える。圧縮部は、複数のブロックを含む画像データの入力ビットストリームを所定数のブロック単位で圧縮し、圧縮データを生成する。サブブロック選択部は、画像処理の対象となるリクエスト領域を含み、且つ、ブロックより小さいサブブロックを少なくとも1以上、圧縮データの中から選択する。伸張部は、圧縮データより選択されたサブブロックを伸張し、伸張データを生成する。画像処理部は、伸張データに対して画像処理を実行し、処理済画像データを生成する。
【図面の簡単な説明】
【0008】
【図1】本実施形態の画像処理システム1のブロック図。
【図2】本実施形態の画像処理のフローチャート。
【図3】本実施形態の画像データ及び入力ビットストリームの概略図。
【図4】本実施形態の圧縮付加データの概略図。
【図5】本実施形態のリードリクエストの概略図。
【図6】本実施形態のリクエスト領域及びリード領域の概略図。
【図7】本実施形態のサブブロックの概略図。
【図8】本実施形態の伸張付加データの概略図。
【図9】本実施形態の出力ビットストリームの概略図。
【図10】本実施形態の第1変形例の伸張付加データの概略図。
【図11】本実施形態の第2変形例の伸張付加データの概略図。
【発明を実施するための形態】
【0009】
本実施形態について、図面を参照して説明する。まず、本実施形態の画像処理システム1の構成について説明する。図1は、本実施形態の画像処理システム1のブロック図である。本実施形態の画像処理システム1は、画像処理装置10と、メモリ20と、プロセッサ30と、を備える。
【0010】
画像処理装置10は、バス11と、圧縮部12と、付加データ生成部14と、サブブロック選択部16と、画像処理部18と、メモリコントローラ19と、を備える。圧縮部12と、付加データ生成部14と、サブブロック選択部16と、伸張部17と、メモリコントローラ19とは、互いに、バス11を介して接続される。画像処理部18は、伸張部17と接続される。例えば、圧縮部12は、YUVフォーマット用エンコーダであり、伸張部17は、YUVフォーマット用デコーダである。画像処理部18が実行する画像処理は、例えば、H.264等のビデオコーデックに基づく、画面内予測、量子化、及び可変長符号化である。メモリコントローラ19は、例えばDMAC(Direct Memory Access Controller)である。
【0011】
メモリ20は、メモリコントローラ19に接続される。メモリ20は、画像処理装置10が取り扱うデータ(入力ビットストリームと、出力ビットストリームと、を含むデータ)を記憶可能である。メモリ20は、例えばDRAMである。
【0012】
プロセッサ30は、画像処理部18の処理結果である出力ビットストリームに対して、任意の処理を実行する。プロセッサ30は、例えば、CPU(Central Processing Unit)であり、出力ビットストリームを、液晶ディスプレイに表示可能なフォーマットに変換する。
【0013】
次に、本実施形態の画像処理システム1の動作について説明する。図2は、本実施形態の画像処理のフローチャートである。
【0014】
<S200> 圧縮部12は、画像処理装置10の外部(例えば、プロセッサ30)から供給される画像データの入力ビットストリームを圧縮単位(所定のコード長)で圧縮し、圧縮データを生成する。図3は、本実施形態の画像データ及び入力ビットストリームの概略図である。例えば、画像データは、6×6(=36)個のブロックを含む。圧縮単位は、所定数(例えば、4個)のブロック単位である。
【0015】
<S202> 付加データ生成部14は、ブロックとサブブロックとの間の関係を示す圧縮付加データを生成する。画像データは、ブロックより多くのサブブロックを含む。即ち、サブブロックのサイズは、ブロックのサイズより小さい。
図4は、本実施形態の圧縮付加データの概略図である。例えば、1つのブロックは、4個のサブブロックS0〜S3からなる2×2のサイズである(図4(A))。圧縮付加データは、ブロックのサイズ(以下「ブロックサイズ」という)を示すブロックサイズ情報と、サブブロックのサイズ(以下「サブブロックサイズ」という)を示すサブブロックサイズ情報と、コード長情報と、を含む(図4(B))。コード長情報は、S200で圧縮部12において生成されたブロックごとのビットストリームにおける、各サブブロックの先頭ビット位置を示す情報である。
【0016】
<S204> メモリコントローラ19は、圧縮データと、圧縮付加データと、をメモリ20に書き込む。圧縮データと圧縮付加データは、対応付けられて記憶される。これにより、伸張部17は、メモリ20にアクセスしたときに、対応する圧縮データと圧縮付加データ(ブロックサイズ情報及びサブブロックサイズ情報)を得ることができる。
【0017】
<S206> 画像処理部18は、メモリ20から圧縮データを読み出すためのリードリクエストを発行する。図5は、本実施形態のリードリクエストの概略図である。リードリクエストは、読み出すべき圧縮データが格納されたメモリ20の先頭アドレスを示す先頭アドレス情報と、読み出すべき圧縮データのサイズ(以下「リクエストサイズ」という)を示すリクエストサイズ情報と、を含む。
【0018】
<S208> メモリコントローラ19は、リードリクエストに基づいて、メモリ20に記憶された圧縮データをブロック単位で読み出す。図6は、本実施形態のリクエスト領域及びリード領域の概略図である。
【0019】
例えば、メモリコントローラ19は、リードリクエスト内の先頭アドレス情報及びリクエストサイズ情報に基づいて、画像データの空間において、画像処理の対象となるリクエスト領域REQの先頭座標(REQxh,REQyh)及び終端座標(REQxe,REQye)を決定する。
【0020】
次に、メモリコントローラ19は、リクエスト領域REQを含むように、画像データの空間において、読み出すべき圧縮データの領域(以下「リード領域」という)REAの先頭座標(REAxh,REAyh)及び終端座標(REAxe,REAye)を決定する。
【0021】
次に、メモリコントローラ19は、メモリ20に記憶された圧縮付加データに基づいて、リード領域REAに対応する圧縮データを特定し、特定した圧縮データと、当該圧縮データに対応する圧縮付加データと、をメモリ20から読み出す。メモリコントローラ19は、S208で読み出した圧縮データのうち、サブブロックSiに対応する圧縮データのみを、バス11を介して伸張部17へ転送するので、バス11上のデータ転送量を低減でき、バスの利用効率を改善することができる。
【0022】
<S210> サブブロック選択部16は、圧縮付加データ内のブロックサイズ情報及びサブブロックサイズ情報と、リードリクエスト内の先頭アドレス情報及びリクエストサイズ情報と、に基づいて、メモリコントローラ19が読み出した圧縮データの中から、リクエスト領域REQを含むI(Iは自然数)個のサブブロックSi(i=1〜I)を選択する。即ち、選択されるサブブロックSiには、リクエスト領域REQの少なくとも一部が含まれる。
【0023】
図7は、本実施形態のサブブロックの概略図である。選択されるサブブロックSiの数及び選択されるサブブロックSiの位置は、ブロックサイズ、サブブロックサイズ、並びにリクエスト領域REQの先頭座標(REQxh,REQyh)及び終端座標(REQxe,REQye)により決まる(図7(A))。サブブロックSi(i=0〜3)は、1つのブロックB0から選択されても良い(図7(B))。この場合には、選択されるサブブロックSiを含むリクエストブロックRBはブロックB0と一致する。一方、サブブロックSiは、複数のブロックB0及びB1から選択されても良い(図7(C))。この場合には、リクエストブロックRBはブロックB0及びB1と一致しない。
【0024】
<S212> 伸張部17は、S210で選択されたサブブロックSi(即ち、リクエストブロックRB)を伸張し、伸張データを生成する。伸張されるべきデータは、選択されたサブブロックSiのみであるので、従来と比べて、伸張部17の処理量を低減できる。
【0025】
<S214> 画像処理部18は、伸張データに対して、画像処理を実行する。画像処理部18は、伸張データ(即ち、サブブロックSiに対応するデータ)のみに対して画像処理を実行するので、従来と比べて、画像処理部18の処理量を低減できる。
【0026】
<S216> 付加データ生成部14は、伸張データに対応するサブブロック(即ち、S210で選択されたサブブロック)Siを定義するための伸張付加データを生成する。換言すると、伸張付加データは、リクエストブロックRBを定義するものである。
【0027】
図8は、本実施形態の伸張付加データの概略図である。伸張付加データは、画像データの空間における、リクエストブロックRBの先頭座標(即ち、サブブロックS0の先頭座標)(RBxh,RByh)と、リクエストブロックRBのオフセット値(Ox,Oy)と、を含む(図8(A)及び(B))。オフセット値(Ox,Oy)は、リクエストブロックRBの終端座標(即ち、サブブロックS3の終端座標)(RBxe,RBye)と先頭座標(RBxh,RByh)との差である(式1)。
【数1】

【0028】
<S218> 画像処理部18は、プロセッサ30に、伸張付加データと、処理済画像データと、を含む出力ビットストリームを出力する。図9は、本実施形態の出力ビットストリームの概略図である。出力ビットストリームでは、ヘッダ部分に伸張付加データが配置され、ボディ部分に処理済画像データが配置される。
【0029】
プロセッサ30は、伸張付加データを参照することによって、リクエストブロックRB内における必要な領域の位置を画定することができる。即ち、プロセッサ30には、必要な領域の位置をリクエストブロックRBの中から抽出する機能は必要ない。即ち、出力ビットストリームが伸張付加データを含むので、プロセッサ30が汎用のものであっても、処理済画像データを取り扱うことができる。
【0030】
なお、S216は省略可能である。この場合には、S218において画像処理部18は、プロセッサ30に、処理済画像データを含む(伸張付加データを含まない)出力ビットストリームを出力する。
【0031】
本実施形態の第1変形例について説明する。本実施形態の第1変形例では、S210において、N(Nは2以上の整数)個のリクエストブロックが選択される。また、S216において、N個のリクエストブロックに対応する伸張付加データが生成される。
【0032】
圧縮付加データのコード長情報は、各サブブロックSiの先頭ビット位置(但し、ラスタ順で先頭を除く)が、ラスタ順で1つ前のサブブロックに対するオフセット値として格納される。サブブロック選択部16は、コード長情報を基にして、必要なサブブロックのビットストリームをブロック単位でメモリより読み出されるビットストリームより抜き出す。
【0033】
図10は、本実施形態の第1変形例の伸張付加データの概略図である。N個のリクエストブロックに対応する伸張付加データは、画像データの空間における、1番目のリクエストブロックRB(1)の先頭座標(xh(1),yh(1))と、n(n=2〜N)番目のリクエストブロックRB(n)のオフセット値(Ox(n),Oy(n))と、を含む(図10(A)及び(B))。
【0034】
オフセット値(Ox(n),Oy(n))は、リクエストブロックRB(n)の終端座標(xe(n),ye(n))とリクエストブロックRB(n−1)の終端座標(xe(n−1),ye(n−1))との差に、オフセット値(Ox(n−1),Oy(n−1))を加算したものである(式2)。換言すると、オフセット値(Ox(n),Oy(n))は、N個のリクエストブロックのコード長の総和である(式3)。式3において、CL(n)(x)は、リクエストブロックRB(1)〜RB(n)のX方向のコード長であり、CL(n)(y)は、リクエストブロックRB(1)〜RB(n)のY方向のコード長である。
【数2】

【数3】

【0035】
第1変形例によれば、伸張付加データがオフセット値(Ox(n),Oy(n)を含むので、伸張付加データがオフセット値(Ox(n),Oy(n)を含まない場合(即ち、伸張付加データが、全てのリクエストブロックRB(n)の先頭座標及び終端座標を含む場合)と比べて、伸張付加データのデータ量を低減することができる。
【0036】
本実施形態の第2変形例について説明する。本実施形態の第2変形例では、S200において、圧縮データのデータ量が所定の圧縮制限値になるように、入力ビットストリームを圧縮する。圧縮制限値は、ブロックサイズ、サブブロックサイズ、圧縮率、及びサブブロックのインデックスSiにより定義される、圧縮後のデータ量(以下「符号量」という)の下限又は上限である。また、S216において、圧縮制限値に基づいて伸張付加データが生成される。
【0037】
圧縮付加データのコード長情報は、(ラスタ順で先頭を除く)各サブブロックSiの先頭ビット位置が、サブブロックSiの圧縮時に適用される符号量上限値に対する差分として格納される。即ち、第2変形例では、サブブロックSiを圧縮する場合に、サブブロックS0〜Siで発生する符号量の総和に、上限値ULi及び下限値LLiをかけて圧縮を行い、サブブロックSiの圧縮終了時においてS0〜Siで実際に発生した符号量CiとULiとの差分値Diを、コード長情報として格納する。サブブロック選択部16は、コード長情報を基にして、必要なサブブロックのビットストリームをブロック単位でメモリより読み出されるビットストリームより抜き出す。符号量Ciは、上限値ULiと下限値LLiとの間に収まるので、差分値Diの格納に必要なビット量を削減でき、コード長情報の格納に必要となるビット量を削減できる。
【0038】
図11は、本実施形態の第2変形例の伸張付加データの概略図である。N個のリクエストブロックに対応する伸張付加データは、画像データの空間における、先頭座標(xh(1),yh(1))と、リクエストブロックRB(1)〜RB(n)の累積符号量AC(n)及び圧縮差分値DC(n)と、を含む(図11(A)及び(B))。累積符号量AC(n)は、リクエストブロックRB(1)〜RB(n)の符号量の総和である。(図11(C))。圧縮差分値DC(n)は、リクエストブロックRB(n)に対応する累積符号量AC(n)と、リクエストブロックRB(n)に対応する圧縮制限値SUB(n)との差である。
【0039】
第2変形例によれば、伸張付加データが累積符号量AC(n)及び圧縮差分値DC(n)を含むので、第1変形例と比べて、伸張付加データのデータ量を低減することができる。
【0040】
本実施形態によれば、ブロックではなく、サブブロックに対して画像処理が実行され、サブブロックを定義するための伸張付加データが生成される。これにより、圧縮データを伸張することによって得られるデータの品質を低下させることなく、メモリ20から圧縮データを読み出すときのバス11の利用効率を改善することができる。
【0041】
本実施形態に係る画像処理システム1の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、画像処理システム1の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【0042】
また、本実施形態に係る画像処理システム1の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【0043】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0044】
1 画像処理システム
10 画像処理装置
12 圧縮部
14 付加データ生成部
16 サブブロック選択部
17 伸張部
18 画像処理部
19 メモリコントローラ
20 メモリ
30 プロセッサ

【特許請求の範囲】
【請求項1】
複数のブロックを含む画像データの入力ビットストリームを所定数のブロック単位で圧縮し、圧縮データを生成する圧縮部と、
画像処理の対象となるリクエスト領域を含み、且つ、前記ブロックより小さいサブブロックを少なくとも1以上、前記圧縮データの中から選択するサブブロック選択部と、
前記サブブロックを伸張し、伸張データを生成する伸張部と、
前記伸張データに対して画像処理を実行し、処理済画像データを生成する画像処理部と、
伸張データに対応するサブブロックを定義する伸張付加データを生成する付加データ生成部と、を備え、
前記伸張付加データは、複数のサブブロックから構成されるリクエストブロックの先頭座標と、オフセット値と、を含む画像処理装置。
【請求項2】
前記画像処理部は、前記伸張データに対して画像処理を実行して、処理済画像データと、伸張付加データと、を含む出力ビットストリームを出力する、請求項1に記載の画像処理装置。
【請求項3】
複数のブロックを含む画像データの入力ビットストリームを所定数のブロック単位で圧縮し、圧縮データを生成する圧縮部と、
画像処理の対象となるリクエスト領域を含み、且つ、前記ブロックより小さいサブブロックを少なくとも1以上、前記圧縮データの中から選択するサブブロック選択部と、
前記サブブロックを伸張し、伸張データを生成する伸張部と、
前記伸張データに対して画像処理を実行し、処理済画像データを生成する画像処理部と、
前記ブロックと前記サブブロックとの間の関係を示す圧縮付加データを生成する付加データ生成部と、を備える画像処理装置。
【請求項4】
複数のブロックを含む画像データの入力ビットストリームを所定数のブロック単位で圧縮し、圧縮データを生成する圧縮部と、
画像処理の対象となるリクエスト領域を含み、且つ、前記ブロックより小さいサブブロックを少なくとも1以上、前記圧縮データの中から選択するサブブロック選択部と、
前記サブブロックを伸張し、伸張データを生成する伸張部と、
前記伸張データに対して画像処理を実行し、処理済画像データを生成する画像処理部と、を備える画像処理装置。
【請求項5】
複数のブロックを含む画像データを記憶するメモリと、
画像データの入力ビットストリームを所定数のブロック単位で圧縮し、圧縮データを生成する圧縮部と、
前記圧縮データを前記メモリに書き込むメモリコントローラと、
画像処理の対象となるリクエスト領域を含み、且つ、前記ブロックより小さいサブブロックを少なくとも1以上、前記圧縮データの中から選択するサブブロック選択部と、
前記サブブロックを伸張し、伸張データを生成する伸張部と、
前記伸張データに対して画像処理を実行し、処理済画像データを生成する画像処理部と、を備える画像処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−74315(P2013−74315A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−209614(P2011−209614)
【出願日】平成23年9月26日(2011.9.26)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】