(57)【特許請求の範囲】
【請求項１】
複数のブロックを含む画像データの入力ビットストリームを所定数のブロック単位で圧縮し、圧縮データを生成する圧縮部と、
前記ブロックより小さい複数のサブブロックのそれぞれの位置情報を含む圧縮付加データを生成する圧縮付加データ生成部と、
前記圧縮付加データに基づいて、画像処理の対象となるリクエスト領域の少なくとも一部を含むサブブロックを前記圧縮データの中から選択するサブブロック選択部と、
前記選択されたサブブロックを伸張し、伸張データを生成する伸張部と、
前記伸張データに対して画像処理を実行し、処理済画像データを生成する画像処理部と、
伸張データに対応するサブブロックを定義する伸張付加データを生成する伸張付加データ生成部と、を備え、
前記伸張付加データは、前記複数のサブブロックから構成されるリクエストブロックの先頭座標と、オフセット値と、を含む画像処理装置。
【請求項２】
複数のブロックを含む画像データの入力ビットストリームを所定数のブロック単位で圧縮し、圧縮データを生成する圧縮部と、
前記ブロックより小さい複数のサブブロックのそれぞれの位置情報を含む圧縮付加データを生成する圧縮付加データ生成部と、
前記圧縮付加データに基づいて、画像処理の対象となるリクエスト領域の少なくとも一部を含むサブブロックを前記圧縮データの中から選択するサブブロック選択部と、
前記選択されたサブブロックを伸張し、伸張データを生成する伸張部と、
前記伸張データに対して画像処理を実行し、処理済画像データを生成する画像処理部と、
伸張データに対応するサブブロックを定義する伸張付加データを生成する伸張付加データ生成部と、を備え、
前記伸張付加データは、前記複数のサブブロックから構成されるリクエストブロックのうち、１番目のリクエストブロックの先頭座標と、ｎ（ｎ＝２〜Ｎ：Ｎは２以上の整数）番目のリクエストブロックのオフセット値と、を含む画像処理装置。
【請求項３】
前記画像処理部は、前記伸張データに対して画像処理を実行して、処理済画像データと、伸張付加データと、を含む出力ビットストリームを出力する、請求項１または２に記載の画像処理装置。
【請求項４】
複数のブロックを含む画像データの入力ビットストリームを所定数のブロック単位で圧縮し、圧縮データを生成する圧縮部と、
前記ブロックより小さい複数のサブブロックのそれぞれの位置情報を含む圧縮付加データを生成する圧縮付加データ生成部と、
前記圧縮データおよび前記圧縮付加データを記憶するメモリと、
前記圧縮データおよび前記圧縮付加データを前記メモリに書き込むメモリコントローラと、
画像処理の対象となるリクエスト領域の少なくとも一部を含むサブブロックを前記圧縮データの中から選択するサブブロック選択部と、
前記選択されたサブブロックを伸張し、伸張データを生成する伸張部と、
前記伸張データに対して画像処理を実行し、処理済画像データを生成する画像処理部と、
伸張データに対応するサブブロックを定義する伸張付加データを生成する付加データ生成部と、を備え、
前記伸張付加データは、前記複数のサブブロックから構成されるリクエストブロックの先頭座標と、オフセット値と、を含む画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置及び画像処理システムに関する。
【背景技術】
【０００２】
ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリの使用量と、メモリに接続されたバスの転送量と、を低減するために、メモリに記憶すべきデータを所定の圧縮単位（例えば、ブロックサイズ単位）で圧縮する技術が知られている。この技術を用いて圧縮された圧縮データは、圧縮単位と同じリード単位（例えば、ブロックサイズ単位）でメモリから読み出される。
【０００３】
しかしながら、従来技術では、データ処理を実行するデータ処理モジュールが要求するデータサイズがブロックサイズより小さい場合であっても、リード単位はブロックサイズ単位である。従って、メモリから圧縮データを読み出すときのバスの利用効率は低い。
【０００４】
一方、バスの利用効率を改善するために、リード単位をブロックサイズ単位より小さくするには、圧縮単位も小さくする必要がある。しかしながら、圧縮単位を小さくすると、圧縮データを伸張することによって得られるデータの品質が低下してしまう。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−７７１７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、圧縮データを伸張することによって得られるデータの品質を低下させることなく、メモリから圧縮データを読み出すときのバスの利用効率を改善することである。
【課題を解決するための手段】
【０００７】
本発明の実施形態の画像処理装置は、圧縮部と、サブブロック選択部と、画像処理部と、伸張部と、を備える。圧縮部は、複数のブロックを含む画像データの入力ビットストリームを所定数のブロック単位で圧縮し、圧縮データを生成する。サブブロック選択部は、画像処理の対象となるリクエスト領域を含み、且つ、ブロックより小さいサブブロックを少なくとも１以上、圧縮データの中から選択する。伸張部は、圧縮データより選択されたサブブロックを伸張し、伸張データを生成する。画像処理部は、伸張データに対して画像処理を実行し、処理済画像データを生成する。
【図面の簡単な説明】
【０００８】
【図１】本実施形態の画像処理システム１のブロック図。
【図２】本実施形態の画像処理のフローチャート。
【図３】本実施形態の画像データ及び入力ビットストリームの概略図。
【図４】本実施形態の圧縮付加データの概略図。
【図５】本実施形態のリードリクエストの概略図。
【図６】本実施形態のリクエスト領域及びリード領域の概略図。
【図７】本実施形態のサブブロックの概略図。
【図８】本実施形態の伸張付加データの概略図。
【図９】本実施形態の出力ビットストリームの概略図。
【図１０】本実施形態の第１変形例の伸張付加データの概略図。
【図１１】本実施形態の第２変形例の伸張付加データの概略図。
【発明を実施するための形態】
【０００９】
本実施形態について、図面を参照して説明する。まず、本実施形態の画像処理システム１の構成について説明する。図１は、本実施形態の画像処理システム１のブロック図である。本実施形態の画像処理システム１は、画像処理装置１０と、メモリ２０と、プロセッサ３０と、を備える。
【００１０】
画像処理装置１０は、バス１１と、圧縮部１２と、付加データ生成部１４と、サブブロック選択部１６と、画像処理部１８と、メモリコントローラ１９と、を備える。圧縮部１２と、付加データ生成部１４と、サブブロック選択部１６と、伸張部１７と、メモリコントローラ１９とは、互いに、バス１１を介して接続される。画像処理部１８は、伸張部１７と接続される。例えば、圧縮部１２は、ＹＵＶフォーマット用エンコーダであり、伸張部１７は、ＹＵＶフォーマット用デコーダである。画像処理部１８が実行する画像処理は、例えば、Ｈ．２６４等のビデオコーデックに基づく、画面内予測、量子化、及び可変長符号化である。メモリコントローラ１９は、例えばＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）である。
【００１１】
メモリ２０は、メモリコントローラ１９に接続される。メモリ２０は、画像処理装置１０が取り扱うデータ（入力ビットストリームと、出力ビットストリームと、を含むデータ）を記憶可能である。メモリ２０は、例えばＤＲＡＭである。
【００１２】
プロセッサ３０は、画像処理部１８の処理結果である出力ビットストリームに対して、任意の処理を実行する。プロセッサ３０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、出力ビットストリームを、液晶ディスプレイに表示可能なフォーマットに変換する。
【００１３】
次に、本実施形態の画像処理システム１の動作について説明する。図２は、本実施形態の画像処理のフローチャートである。
【００１４】
＜Ｓ２００＞  圧縮部１２は、画像処理装置１０の外部（例えば、プロセッサ３０）から供給される画像データの入力ビットストリームを圧縮単位（所定のコード長）で圧縮し、圧縮データを生成する。図３は、本実施形態の画像データ及び入力ビットストリームの概略図である。例えば、画像データは、６×６（＝３６）個のブロックを含む。圧縮単位は、所定数（例えば、４個）のブロック単位である。
【００１５】
＜Ｓ２０２＞  付加データ生成部１４は、ブロックとサブブロックとの間の関係を示す圧縮付加データを生成する。画像データは、ブロックより多くのサブブロックを含む。即ち、サブブロックのサイズは、ブロックのサイズより小さい。
図４は、本実施形態の圧縮付加データの概略図である。例えば、１つのブロックは、４個のサブブロックＳ０〜Ｓ３からなる２×２のサイズである（図４（Ａ））。圧縮付加データは、ブロックのサイズ（以下「ブロックサイズ」という）を示すブロックサイズ情報と、サブブロックのサイズ（以下「サブブロックサイズ」という）を示すサブブロックサイズ情報と、コード長情報と、を含む（図４（Ｂ））。コード長情報は、Ｓ２００で圧縮部１２において生成されたブロックごとのビットストリームにおける、各サブブロックの先頭ビット位置を示す情報である。
【００１６】
＜Ｓ２０４＞  メモリコントローラ１９は、圧縮データと、圧縮付加データと、をメモリ２０に書き込む。圧縮データと圧縮付加データは、対応付けられて記憶される。これにより、伸張部１７は、メモリ２０にアクセスしたときに、対応する圧縮データと圧縮付加データ（ブロックサイズ情報及びサブブロックサイズ情報）を得ることができる。
【００１７】
＜Ｓ２０６＞  画像処理部１８は、メモリ２０から圧縮データを読み出すためのリードリクエストを発行する。図５は、本実施形態のリードリクエストの概略図である。リードリクエストは、読み出すべき圧縮データが格納されたメモリ２０の先頭アドレスを示す先頭アドレス情報と、読み出すべき圧縮データのサイズ（以下「リクエストサイズ」という）を示すリクエストサイズ情報と、を含む。
【００１８】
＜Ｓ２０８＞  メモリコントローラ１９は、リードリクエストに基づいて、メモリ２０に記憶された圧縮データをブロック単位で読み出す。図６は、本実施形態のリクエスト領域及びリード領域の概略図である。
【００１９】
例えば、メモリコントローラ１９は、リードリクエスト内の先頭アドレス情報及びリクエストサイズ情報に基づいて、画像データの空間において、画像処理の対象となるリクエスト領域ＲＥＱの先頭座標（ＲＥＱｘｈ，ＲＥＱｙｈ）及び終端座標（ＲＥＱｘｅ，ＲＥＱｙｅ）を決定する。
【００２０】
次に、メモリコントローラ１９は、リクエスト領域ＲＥＱを含むように、画像データの空間において、読み出すべき圧縮データの領域（以下「リード領域」という）ＲＥＡの先頭座標（ＲＥＡｘｈ，ＲＥＡｙｈ）及び終端座標（ＲＥＡｘｅ，ＲＥＡｙｅ）を決定する。
【００２１】
次に、メモリコントローラ１９は、メモリ２０に記憶された圧縮付加データに基づいて、リード領域ＲＥＡに対応する圧縮データを特定し、特定した圧縮データと、当該圧縮データに対応する圧縮付加データと、をメモリ２０から読み出す。メモリコントローラ１９は、Ｓ２０８で読み出した圧縮データのうち、サブブロックＳｉに対応する圧縮データのみを、バス１１を介して伸張部１７へ転送するので、バス１１上のデータ転送量を低減でき、バスの利用効率を改善することができる。
【００２２】
＜Ｓ２１０＞  サブブロック選択部１６は、圧縮付加データ内のブロックサイズ情報及びサブブロックサイズ情報と、リードリクエスト内の先頭アドレス情報及びリクエストサイズ情報と、に基づいて、メモリコントローラ１９が読み出した圧縮データの中から、リクエスト領域ＲＥＱを含むＩ（Ｉは自然数）個のサブブロックＳｉ（ｉ＝１〜Ｉ）を選択する。即ち、選択されるサブブロックＳｉには、リクエスト領域ＲＥＱの少なくとも一部が含まれる。
【００２３】
図７は、本実施形態のサブブロックの概略図である。選択されるサブブロックＳｉの数及び選択されるサブブロックＳｉの位置は、ブロックサイズ、サブブロックサイズ、並びにリクエスト領域ＲＥＱの先頭座標（ＲＥＱｘｈ，ＲＥＱｙｈ）及び終端座標（ＲＥＱｘｅ，ＲＥＱｙｅ）により決まる（図７（Ａ））。サブブロックＳｉ（ｉ＝０〜３）は、１つのブロックＢ０から選択されても良い（図７（Ｂ））。この場合には、選択されるサブブロックＳｉを含むリクエストブロックＲＢはブロックＢ０と一致する。一方、サブブロックＳｉは、複数のブロックＢ０及びＢ１から選択されても良い（図７（Ｃ））。この場合には、リクエストブロックＲＢはブロックＢ０及びＢ１と一致しない。
【００２４】
＜Ｓ２１２＞  伸張部１７は、Ｓ２１０で選択されたサブブロックＳｉ（即ち、リクエストブロックＲＢ）を伸張し、伸張データを生成する。伸張されるべきデータは、選択されたサブブロックＳｉのみであるので、従来と比べて、伸張部１７の処理量を低減できる。
【００２５】
＜Ｓ２１４＞  画像処理部１８は、伸張データに対して、画像処理を実行する。画像処理部１８は、伸張データ（即ち、サブブロックＳｉに対応するデータ）のみに対して画像処理を実行するので、従来と比べて、画像処理部１８の処理量を低減できる。
【００２６】
＜Ｓ２１６＞  付加データ生成部１４は、伸張データに対応するサブブロック（即ち、Ｓ２１０で選択されたサブブロック）Ｓｉを定義するための伸張付加データを生成する。換言すると、伸張付加データは、リクエストブロックＲＢを定義するものである。
【００２７】
図８は、本実施形態の伸張付加データの概略図である。伸張付加データは、画像データの空間における、リクエストブロックＲＢの先頭座標（即ち、サブブロックＳ０の先頭座標）（ＲＢｘｈ，ＲＢｙｈ）と、リクエストブロックＲＢのオフセット値（Ｏｘ，Ｏｙ）と、を含む（図８（Ａ）及び（Ｂ））。オフセット値（Ｏｘ，Ｏｙ）は、リクエストブロックＲＢの終端座標（即ち、サブブロックＳ３の終端座標）（ＲＢｘｅ，ＲＢｙｅ）と先頭座標（ＲＢｘｈ，ＲＢｙｈ）との差である（式１）。
【数１】
0005653328.tif 000002
【００２８】
＜Ｓ２１８＞  画像処理部１８は、プロセッサ３０に、伸張付加データと、処理済画像データと、を含む出力ビットストリームを出力する。図９は、本実施形態の出力ビットストリームの概略図である。出力ビットストリームでは、ヘッダ部分に伸張付加データが配置され、ボディ部分に処理済画像データが配置される。
【００２９】
プロセッサ３０は、伸張付加データを参照することによって、リクエストブロックＲＢ内における必要な領域の位置を画定することができる。即ち、プロセッサ３０には、必要な領域の位置をリクエストブロックＲＢの中から抽出する機能は必要ない。即ち、出力ビットストリームが伸張付加データを含むので、プロセッサ３０が汎用のものであっても、処理済画像データを取り扱うことができる。
【００３０】
なお、Ｓ２１６は省略可能である。この場合には、Ｓ２１８において画像処理部１８は、プロセッサ３０に、処理済画像データを含む（伸張付加データを含まない）出力ビットストリームを出力する。
【００３１】
本実施形態の第１変形例について説明する。本実施形態の第１変形例では、Ｓ２１０において、Ｎ（Ｎは２以上の整数）個のリクエストブロックが選択される。また、Ｓ２１６において、Ｎ個のリクエストブロックに対応する伸張付加データが生成される。
【００３２】
圧縮付加データのコード長情報は、各サブブロックＳｉの先頭ビット位置（但し、ラスタ順で先頭を除く）が、ラスタ順で１つ前のサブブロックに対するオフセット値として格納される。サブブロック選択部１６は、コード長情報を基にして、必要なサブブロックのビットストリームをブロック単位でメモリより読み出されるビットストリームより抜き出す。
【００３３】
図１０は、本実施形態の第１変形例の伸張付加データの概略図である。Ｎ個のリクエストブロックに対応する伸張付加データは、画像データの空間における、１番目のリクエストブロックＲＢ（１）の先頭座標（ｘｈ（１），ｙｈ（１））と、ｎ（ｎ＝２〜Ｎ）番目のリクエストブロックＲＢ（ｎ）のオフセット値（Ｏｘ（ｎ），Ｏｙ（ｎ））と、を含む（図１０（Ａ）及び（Ｂ））。
【００３４】
オフセット値（Ｏｘ（ｎ），Ｏｙ（ｎ））は、リクエストブロックＲＢ（ｎ）の終端座標（ｘｅ（ｎ），ｙｅ（ｎ））とリクエストブロックＲＢ（ｎ−１）の終端座標（ｘｅ（ｎ−１），ｙｅ（ｎ−１））との差に、オフセット値（Ｏｘ（ｎ−１），Ｏｙ（ｎ−１））を加算したものである（式２）。換言すると、オフセット値（Ｏｘ（ｎ），Ｏｙ（ｎ））は、Ｎ個のリクエストブロックのコード長の総和である（式３）。式３において、ＣＬ（ｎ）（ｘ）は、リクエストブロックＲＢ（１）〜ＲＢ（ｎ）のＸ方向のコード長であり、ＣＬ（ｎ）（ｙ）は、リクエストブロックＲＢ（１）〜ＲＢ（ｎ）のＹ方向のコード長である。
【数２】
0005653328.tif 000003
【数３】
0005653328.tif 000004
【００３５】
第１変形例によれば、伸張付加データがオフセット値（Ｏｘ（ｎ），Ｏｙ（ｎ）を含むので、伸張付加データがオフセット値（Ｏｘ（ｎ），Ｏｙ（ｎ）を含まない場合（即ち、伸張付加データが、全てのリクエストブロックＲＢ（ｎ）の先頭座標及び終端座標を含む場合）と比べて、伸張付加データのデータ量を低減することができる。
【００３６】
本実施形態の第２変形例について説明する。本実施形態の第２変形例では、Ｓ２００において、圧縮データのデータ量が所定の圧縮制限値になるように、入力ビットストリームを圧縮する。圧縮制限値は、ブロックサイズ、サブブロックサイズ、圧縮率、及びサブブロックのインデックスＳｉにより定義される、圧縮後のデータ量（以下「符号量」という）の下限又は上限である。また、Ｓ２１６において、圧縮制限値に基づいて伸張付加データが生成される。
【００３７】
圧縮付加データのコード長情報は、（ラスタ順で先頭を除く）各サブブロックＳｉの先頭ビット位置が、サブブロックＳｉの圧縮時に適用される符号量上限値に対する差分として格納される。即ち、第２変形例では、サブブロックＳｉを圧縮する場合に、サブブロックＳ０〜Ｓｉで発生する符号量の総和に、上限値ＵＬｉ及び下限値ＬＬｉをかけて圧縮を行い、サブブロックＳｉの圧縮終了時においてＳ０〜Ｓｉで実際に発生した符号量ＣｉとＵＬｉとの差分値Ｄｉを、コード長情報として格納する。サブブロック選択部１６は、コード長情報を基にして、必要なサブブロックのビットストリームをブロック単位でメモリより読み出されるビットストリームより抜き出す。符号量Ｃｉは、上限値ＵＬｉと下限値ＬＬｉとの間に収まるので、差分値Ｄｉの格納に必要なビット量を削減でき、コード長情報の格納に必要となるビット量を削減できる。
【００３８】
図１１は、本実施形態の第２変形例の伸張付加データの概略図である。Ｎ個のリクエストブロックに対応する伸張付加データは、画像データの空間における、先頭座標（ｘｈ（１），ｙｈ（１））と、リクエストブロックＲＢ（１）〜ＲＢ（ｎ）の累積符号量ＡＣ（ｎ）及び圧縮差分値ＤＣ（ｎ）と、を含む（図１１（Ａ）及び（Ｂ））。累積符号量ＡＣ（ｎ）は、リクエストブロックＲＢ（１）〜ＲＢ（ｎ）の符号量の総和である。（図１１（Ｃ））。圧縮差分値ＤＣ（ｎ）は、リクエストブロックＲＢ（ｎ）に対応する累積符号量ＡＣ（ｎ）と、リクエストブロックＲＢ（ｎ）に対応する圧縮制限値ＳＵＢ（ｎ）との差である。
【００３９】
第２変形例によれば、伸張付加データが累積符号量ＡＣ（ｎ）及び圧縮差分値ＤＣ（ｎ）を含むので、第１変形例と比べて、伸張付加データのデータ量を低減することができる。
【００４０】
本実施形態によれば、ブロックではなく、サブブロックに対して画像処理が実行され、サブブロックを定義するための伸張付加データが生成される。これにより、圧縮データを伸張することによって得られるデータの品質を低下させることなく、メモリ２０から圧縮データを読み出すときのバス１１の利用効率を改善することができる。
【００４１】
本実施形態に係る画像処理システム１の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、画像処理システム１の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【００４２】
また、本実施形態に係る画像処理システム１の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【００４３】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００４４】
１  画像処理システム
１０  画像処理装置
１２  圧縮部
１４  付加データ生成部
１６  サブブロック選択部
１７  伸張部
１８  画像処理部
１９  メモリコントローラ
２０  メモリ
３０  プロセッサ
【図１】
0005653328.tif 000005
【図２】
0005653328.tif 000006
【図３】
0005653328.tif 000007
【図４】
0005653328.tif 000008
【図５】
0005653328.tif 000009
【図６】
0005653328.tif 000010
【図７】
0005653328.tif 000011
【図８】
0005653328.tif 000012
【図９】
0005653328.tif 000013
【図１０】
0005653328.tif 000014
【図１１】
0005653328.tif 000015