(57)【要約】【課題】  画像を符号化単位ごとに所定の圧縮率を満たすように圧縮し、かつ符号化単位ごとにランダムに復号可能な画像圧縮を行う際に、圧縮率に関わらず同じデータ構造で、符号化単位内で性質の異なる複数の領域に対する可変長符号化パラメータを無駄なく多重化する。【解決手段】  ブロック内を複数の領域に分けて、それぞれの画素を異なる可変長符号化テーブルを用いて可変長符号化する。可変長符号化テーブルを示す複数のインデックスのそれぞれを圧縮率に応じて異なるビット数で多重化し、複数の可変長符号化パラメータを多重化する際の総ビット数が前記所定の圧縮率に関わらず一定のビット数となるように多重化する。【選択図】  図１
2010226532.tif 000002
【特許請求の範囲】
【請求項１】
画像をブロック単位で所定の圧縮率を満たすように圧縮する装置であって、
前記ブロック内の各画素の画素値と前記ブロック内で各画素に隣接する画素の画素値から求められた予測値との予測残差を求める予測部と、
前記ブロック内の複数の領域のそれぞれに対する可変長符号化テーブルを用いて、各画素の前記予測残差を可変長符号化して圧縮データを生成する可変長符号化部と、
前記可変長符号化テーブルを指し示すインデックスを前記圧縮データに多重化する多重化部と、
を備える画像圧縮装置。
【請求項２】
前記複数の領域は第１領域と第２領域とを含み、前記第２領域は前記ブロックの左上端の画素を除く左端の画素列を含むことを特徴とする、請求項１に記載の画像圧縮装置。
【請求項３】
前記可変長符号化部は、
前記所定の圧縮率が基準より低い場合には、Ｎビットで表現可能な値の第１インデックスによって指し示される第１可変長符号化テーブルを用いて前記第１領域の可変長符号化を行うとともに、前記第１インデックスに所定の値を加算した第２インデックスによって指し示される第２可変長符号化テーブルを前記第２領域の可変長符号化を行い、
前記所定の圧縮率が基準より高い場合には、Ｎ−Ｍビットで表現可能な値の第１インデックスによって指し示される第１可変長符号化テーブルを用いて前記第１領域の可変長符号化を行うとともに、前記第１インデックスとの差分値がＭビットで表現可能な値である第２インデックスによって指し示される第２可変長符号化テーブルを前記第２領域の可変長符号化を行い、
前記多重化部は、前記所定の圧縮率が基準より低い場合には前記第１インデックスをＮビットのデータとして多重化し、前記所定の圧縮率が基準より高い場合には前記第１インデックスをＮ−Ｍビットのデータとして多重化するとともに前記第１インデックスと前記第２インデックスとの差分値をＭビットのデータとして多重化する、
ことを特徴とする請求項２に記載の画像圧縮装置。
【請求項４】
前記可変長符号化テーブルにはゴロムライス符号が用いられていることを特徴とし、前記第１および第２インデックスはゴロムライス符号の固定長部分の長さを示す値であることを特徴とする請求項３に記載の画像圧縮装置。
【請求項５】
前記第２領域は前記ブロックの上端の画素列をさらに含むことを特徴とする、請求項２に記載の画像圧縮装置。
【請求項６】
画像がブロック単位で所定の圧縮率を満たすように圧縮された圧縮データを復号する装置であって、
前記ブロック内の複数の領域のそれぞれに対する可変長符号化テーブルを指し示すインデックスを前記圧縮データから分離する分離部と、
前記インデックスが指し示す可変長符号化テーブルに従って前記圧縮データを可変長復号して各画素の予測残差を求める可変長復号部と、
各画素の予測残差と前記ブロック内の各画素の隣接画素の画素値とを用いて各画素の画素値を求める予測部と、
を備える画像伸張装置。
【請求項７】
前記複数の領域は第１領域と第２領域とを含み、前記第２領域は前記ブロックの左上端の画素を除く左端の画素列を含むことを特徴とする、請求項６に記載の画像伸張装置。
【請求項８】
前記分離部は、
前記所定の圧縮率が基準より低い場合には前記第１領域の可変長符号化テーブルを指し示すＮビットの第１インデックスを分離し、
前記所定の圧縮率が基準より高い場合にはＮ−Ｍビットの前記第１インデックス、および、前記第１インデックスと前記第２領域の可変長符号化テーブルを指し示す第２インデックスとのＭビットで表される差分値を分離し、
前記可変長復号部は、
前記所定の圧縮率が基準より低い場合には、Ｎビットで表現可能な値の第１インデックスによって指し示される第１可変長符号化テーブルを用いて前記第１領域の可変長復号を行うとともに、前記第１インデックスに所定の値を加算した第２インデックスによって指し示される第２可変長復号化テーブルを前記第２領域の可変長復号を行い、
前記所定の圧縮率が基準より高い場合には、Ｎ−Ｍビットで表現可能な値の第１インデックスによって指し示される第１可変長符号化テーブルを用いて前記第１領域の可変長復号を行うとともに、前記第１インデックスに前記差分値を加えた値である第２インデックスによって指し示される第２可変長復号化テーブルを前記第２領域の可変長復号を行う、
ことを特徴とする請求項７に記載の画像伸張装置。
【請求項９】
前記可変長符号化テーブルにはゴロムライス符号が用いられていることを特徴とし、前記第１および第２インデックスはゴロムライス符号の固定長部分の長さを示す値であることを特徴とする請求項８に記載の画像伸張装置。
【請求項１０】
前記第２領域は前記ブロックの上端の画素列をさらに含むことを特徴とする、請求項９に記載の画像伸張装置。
【発明の詳細な説明】
【技術分野】
【０００１】
画像を符号化単位ごとに所定の圧縮率を満たすように圧縮するとともに、符号化単位ごとにランダムに復号可能な画像圧縮装置および画像伸張装置に関する。
【背景技術】
【０００２】
近年、デジタル画像の高精細化が進み、デジタルテレビやデジタルカメラの内部のＬＳＩで取り扱われる画像データ量が増大している。画像データを保存するためのメモリ量やＬＳＩ内のモジュール間で画像データを転送する際のメモリバンド幅も増加する。そのため、システムコストの増大が問題となっている。
【０００３】
これらの問題を解決するため、処理中の画像を、低遅延、低処理量で画質劣化が知覚されない程度に圧縮を施し、フレームバッファのメモリ量やメモリバンド幅を削減する手法がある（特許文献１：特開２００６−３０３６８９号公報）。
【０００４】
このような圧縮を行う場合、二つのことが保証されることが重要である。
【０００５】
第一に、符号化単位でワーストケースでの圧縮率を保証することが重要である。これにより、メモリ量やメモリバンド幅がある一定値以下になることが保証されるからである。
【０００６】
第二に、符号化単位ごとに独立に復号化できることが重要となる。これにより、ランダムアクセスが可能となるからである。デコーダＬＳＩが動き補償予測で参照画像を取得する場合や、画像処理ＬＳＩが画像の一部のみを処理する場合、ランダムアクセスが必要となるからである。
【０００７】
特許文献１では、画像データを上位ビットと下位ビットに分け、上位ビットは画素差分とハフマン符号化で可逆圧縮し、下位ビットは上位ビットの圧縮率に応じて目標圧縮率に収まるようビット長を丸める処理を行うことで符号化単位（ブロック）の圧縮率を保証している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−３０３６８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ブロック単位で隣接画素から導かれる予測値との画素差分を符号化することにより、ブロック単位でランダムアクセスできる圧縮データが得られる。ブロックの上端や左端の画素の予測値は左あるいは上の画素のみを参照して生成される。その他の画素の予測値は上、左、左上などの画素を参照して生成される。予測値の生成方法が異なるため、予測残差の分布が異なる。
【００１０】
ブロック内の特定の領域で予測残差の分布が異なる場合、それぞれの領域に適した可変長符号化テーブルを用いることにより圧縮効率が改善される。
【００１１】
特許文献１では、符号化単位内で単一の可変長符号化テーブルを用いて、上位ビットの可逆圧縮を行っているため、圧縮効率を十分に高めることができなかった。
【００１２】
ブロック内で複数の異なる可変長符号化テーブルを用いて符号化する場合、どの可変長符号化テーブルをどの領域に適用するのかを復号側に通知する手法が問題となる。
【００１３】
領域ごとにどの可変長符号化テーブルを用いたのかを示す情報をヘッダとして符号化データに多重化することが解決手段の一つとして考えられるが、オーバヘッドの増加が問題となる。
【００１４】
一方、符号化済みの周辺画素の情報から最適な可変長符号化テーブルを予測する手法であれば、オーバヘッドの増加という問題は解決されるが、予測が当たらなかった場合には符号化効率が低下するという問題がある。
【００１５】
本発明では、オーバヘッドの増加を防ぎつつ、領域ごとに適した可変長符号化テーブルで符号化する手法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために本発明の一側面の画像圧縮装置は、画像をブロック単位で所定の圧縮率を満たすように圧縮する装置であって、前記ブロック内の各画素の画素値と前記ブロック内で各画素に隣接する画素の画素値から求められた予測値との予測残差を求める予測部と、前記ブロック内の複数の領域のそれぞれに対する可変長符号化テーブルを用いて、各画素の前記予測残差を可変長符号化して圧縮データを生成する可変長符号化部と、前記可変長符号化テーブルを指し示すインデックスを前記圧縮データに多重化する多重化部と、を備える。
【００１７】
また、本発明の他の側面の画像伸張装置は、画像がブロック単位で所定の圧縮率を満たすように圧縮された圧縮データを復号する装置であって、前記ブロック内の複数の領域のそれぞれに対する可変長符号化テーブルを指し示すインデックスを前記圧縮データから分離する分離部と、前記インデックスが指し示す可変長符号化テーブルに従って前記圧縮データを可変長復号して各画素の予測残差を求める可変長復号部と、各画素の予測残差と前記ブロック内の各画素の隣接画素の画素値とを用いて各画素の画素値を求める予測部と、
を備える。
【発明の効果】
【００１８】
圧縮率の高低に関係なく同じデータ構造で、圧縮率の高い場合に使用頻度が低い可変長符号化テーブルの情報を多重化するかわりに、残差の性質の異なる符号化単位内の領域に対して最適な可変長符号化テーブルのインデックスを多重化することが可能となり、画質が向上する。
【図面の簡単な説明】
【００１９】
【図１】第１の実施形態の画像圧縮装置のブロック図。
【図２】図１の可変長圧縮部のブロック図。
【図３】図１の固定長圧縮部のブロック図。
【図４】図２の可変長符号化部のブロック図。
【図５】符号化単位（ブロック）の画素予測方式。
【図５−１】領域５０４の予測残差の分布を示す図。
【図５−２】領域５０３の予測残差の分布を示す図。
【図６】ゴロムライス符号の模式図。
【図７】ゴロムライス符号の例。
【図８】第１の実施形態に係る可変長符号化パラメータ情報を示す図。
【図９】圧縮処理のフローチャート。
【図１０】可変長符号化部２０３で行われる処理のフローチャート。
【図１１】量子化パラメータと量子化ステップサイズの関係。
【図１２】第１の実施形態の画像伸張装置のブロック図。
【図１３】画素処理順序例を示す図。
【図１４】画素処理順序例を示す図。
【図１５】ブロックの分割例を示す図。
【図１６】ブロックの分割例を示す図。
【図１７】ブロックの分割例を示す図。
【図１８】ブロックの分割例を示す図。
【図１９】ブロックの分割例を示す図。
【図２０】ブロックの分割例を示す図。
【発明を実施するための形態】
【００２０】
ブロック等の符号化単位を可変長符号化する際に、ブロック内の画素の位置に応じた可変長符号化テーブルが用いられる。可変長符号化テーブルを示すインデックスは固定長（Nビット）で符号化される。圧縮率が低い場合、インデックスをNビットで符号化する。圧縮率が高い場合、2(N-M)個の可変長符号化テーブルの中から符号化単位内の一つの領域のための可変長符号化テーブルを選び、選ばれた可変長符号化テーブルのインデックスを(N-M)ビットで多重化する。そして、残りのMビットで符号化単位内の他の領域のための可変長符号化テーブルのインデックスを示す情報を符号化する。
【００２１】
以下、図面を参照して本発明の各実施形態を説明する。
【００２２】
（第１の実施形態）  
図１は本発明の第１の実施形態に係る画像圧縮装置を示す。本実施形態の画像圧縮装置は、画像ブロック用バッファ１０４、仮圧縮部１０５、圧縮モード判定部１０６、および、圧縮部１０７を備える。
【００２３】
圧縮部１０７は、固定長圧縮部１０８と可変長圧縮部１０９とを有する。圧縮部１０７は、入力画像１０２を所定のサイズ以下に圧縮して、圧縮データ１１０を出力する。
【００２４】
圧縮モード判定部１０６と固定長圧縮部１０８に、目標符号量１０１が入力される。目標符号量１０１は、圧縮処理開始前に予め定められる値であって、ブロック内の画素数、入力画像フォーマットおよび圧縮率に基づいて定められる。目標符号量１０１は入力画像のブロックの総データ量に圧縮率を乗じた値となる。
【００２５】
すなわち、  
（目標符号量）＝（ブロック内総画素数）×（画素ビット長）×（圧縮率）  
となる。
【００２６】
例えば、YUV420 8bitの入力画像を、輝度のブロックサイズ16×16、色差のブロックサイズ8×8、圧縮率1/2という条件で圧縮する場合、目標符号量は、(16×16+2×8×8)×8×(1/2)＝2560bitとなる。
【００２７】
なお、本実施形態では輝度信号の符号化単位ごとの符号量と色差信号の符号化単位ごとの符号量との合計値に対して目標符号量を設定しているが、これに限られるものではない。例えば色差信号コンポーネントそれぞれについて符号化単位ごとに目標符号量を設定しても構わないし、色差信号コンポーネントをまとめて符号化単位ごとに目標符号量を設定しても構わない。例えば入力画像がＹＵＶの場合、Ｙ信号について符号化単位ごとに目標符号量以下で圧縮し、Ｕ信号およびＶ信号をまとめて符号化単位ごとに目標符号量以下になるように圧縮しても構わない。圧縮率は、あらかじめ決められた所定の値を用いても構わないし、外部からの入力により決定してもよい。また、圧縮率を圧縮データに多重しても構わない。
【００２８】
画像ブロック用バッファ１０４には、入力画像１０２の画像ブロックが格納される。画像ブロックとは入力画像を任意の方法で分割したものである。画像ブロックの最小単位は２画素であり、最大単位は画像全体である。また、画像ブロックは所定の圧縮率を保証する単位である。本実施形態では画像ブロックのサイズがN×Mブロックである場合について述べる。なお、後述するように、予測処理の効率化のために、画像ブロック用バッファ１０４は画素を任意の画素スキャン順に並べ替え、仮圧縮部１０５あるいは圧縮部１０７に送る処理を行っても構わない。
【００２９】
仮圧縮部１０５はそれぞれ異なるＱＰを持つ複数の可変長圧縮部１０５−ｉ（ｉ＝０〜Ｎ）を有する。可変長圧縮部１０５−ｉのそれぞれは、画像ブロック用バッファ１０４に格納された画像ブロックを、複数の異なるＱＰに従って仮圧縮して、各ＱＰの符号量を求める。
【００３０】
図２は可変長圧縮部１０５−ｉの構成を示す。可変長圧縮部１０５−ｉはエントロピー削減処理部２０１、量子化部２０２、可変長符号化部２０３を備える。画像ブロック用バッファ１０４に格納された画像ブロックは、エントロピー削減処理部２０１にて、画素予測値との差分処理や、ＤＣＴ（離散コサイン変換）等の直交変換等が適用され、量子化部２０２で量子化され、可変長符号化部２０３にて可変長符号化され、得られた符号量が圧縮モード判定部１０６に送られる。
【００３１】
エントロピー削減処理部２０１では、画素予測値との差分処理のみが行われても構わないし、直交変換のみが行われても構わない。可変長符号化部２０３は、必ずしも実際に符号列を出力する必要はなく、符号量が出力されるだけでも構わない。また、可変長圧縮部１０５−ｉは、エントロピー削減処理を行わずに画素値を直接量子化しても構わない。
【００３２】
図４は可変長符号化部２０３の構成を示す。可変長符号化部２０３は、特性の異なる複数の可変長符号化部４０１−ｉ（ｉ＝０〜Ｎ）を備える。可変長符号化部４０１−ｉのそれぞれは量子化部から出力された信号を可変長符号化する。図４のパラメータk（k=0,1・・・N）は可変長符号化の特性を表す可変長符号化パラメータを示す。
【００３３】
可変長符号化部２０３はゴロムライス符号を用いて符号化する。図６は符号列の例を示す。ゴロムライス符号は、可変長のUnary符号で表されるprefix（６１）と固定長の符号列で表されるsuffix（６２）とを連結した符号である。suffix（６２）の符号長は、前述の可変長符号化パラメータkの値に等しい。復号時には、符号化に用いられた可変長符号化パラメータkの値の情報が必要となる。
【００３４】
図７は本実施形態のゴロムライス符号の例を示す。図７は、可変長符号化パラメータkの値のそれぞれに応じた、可変長符号化テーブルの例を示す。本実施形態の可変長符号化部２０３は、可変長符号化パラメータkに応じた可変長符号化テーブルを用いて、量子化部２０２から出力された信号を可変長符号化する。例えば、可変長符号化パラメータkが0であり、かつ、予測残差が0ならば、符号列"1"が出力される。可変長符号化パラメータkが1であり、かつ、予測残差が0ならば、符号列"10"が出力される。
【００３５】
図５は本実施形態のDPCM（Differencial Pulse Code Moduration）の処理を説明するための図である。本実施形態のエントロピー削減処理部２０１は、画素単位でDPCMを行う。本実施形態のDPCMの処理はブロック５００の左上からラスタスキャン順に行われる。本実施形態では、圧縮後にブロック単位でランダムアクセスができるように符号化するため、符号化対象ブロックの周辺にある他のブロックを参照した画素予測は行わない。予測の手法の違いによって、ブロック５００内は４つの領域に分類される。より具体的には、ブロック５００は、左上の画素５０１と、上端の画素列５０２と、左端の画素列５０３と、その他の領域５０４とに分けられる。なお、画素列５０２および画素列５０３は画素５０１を含まない。
【００３６】
エントロピー削減処理部２０１は、ブロック５００の左上の画素５０１の画素値をそのまま出力するか、画素値をそのまま量子化部２０２で量子化するか、または、所定の値（例えば８ビットの画像の場合は１２８）を予測値として用いて求められる予測残差を量子化部２０２で量子化する。量子化された画素値あるいは予測残差は逆量子化され、予測残差は予測値に加算され、復号後の画素値が生成される。復号後の画素値は以降に行われる隣接画素の予測に用いられる。
【００３７】
エントロピー削減処理部２０１は、ブロックの上端の画素列５０２の各画素の予測残差を求める。各画素の左の画素の画素値は予測値として用いられる。エントロピー削減処理部２０１は、各画素の画素値と予測値との予測残差を求める。量子化部２０２は予測残差を量子化する。
【００３８】
エントロピー削減処理部２０１は、ブロックの左端の画素列５０３の各画素の予測残差を求める。各画素の上の画素の画素値は予測値として用いられる。エントロピー削減処理部２０１は、各画素の画素値と予測値との予測残差を求める。量子化部２０２は予測残差を量子化する。
【００３９】
エントロピー削減処理部２０１は、領域５０４内の各画素の予測残差を求める。各画素の予測値は、各画素の左上、左および上の画素のうちのすべての画素または一部の画素を用いて求められる。本実施形態では、エントロピー削減処理部２０１は、各画素の左上、左および上の画素の画素値から、ＭＥＤ（Median Edge Detector）を用いて予測値が求められる。エントロピー削減処理部２０１は、各画素の画素値と予測値との予測残差を求める。量子化部２０２は予測残差を量子化する。
【００４０】
可変長符号化部２０３は、量子化された予測残差を可変長符号化する。また、量子化された予測残差は逆量子化され、予測値と加算されて、復号後の画素値が得られる。この復号後の画素値は以降の画素の予測処理に用いられる。
【００４１】
上述のＭＥＤは例えばＪＰＥＧ−ＬＳでも用いられている。ＭＥＤは、左の画素値、上の画素値、および、（左の画素値＋上の画素値―左上の画素値）の中央値を予測値とする予測手法である。
【００４２】
ＭＥＤを用いた画素予測処理をラスタスキャン順で行う場合、左の画素の復号化処理が完了するまで、各画素の予測処理を行うことができない。そのため、１画素にかかる処理サイクルが増える。そこで、画像ブロック用バッファ１０４で画素処理順序を図１３や図１４に示すように、右上から左下に向かうような画素順序に変更すると効率的に予測処理を行うことができる。
【００４３】
図１３および図１４は８ｘ４画素サイズのブロック内の各画素の予測処理の順序の例を示す。各マスはブロック内の各画素に対応する。各マスの数字は予測処理の順番を示し、数字の小さい画素から数字の大きい画素に向かって順番に予測処理が行われる。
【００４４】
図１３の例では、ブロックの左上の画素０から処理を開始され、その右隣の画素１から左下に向かって各画素の予測処理が行われる。ブロックの左端あるいは下端に達すると、処理してない画素のうち、処理が終わった画素に隣接している画素のうち、もっとも上にある画素から同様に左下に向かって順に処理を行う。
【００４５】
図１４の例では、２ラインごとに図１３と同様に右上から左下に向かう順序で各画素の処理が行われる。すなわち、画素０と画素２で始まる水平方向の２つのラインを処理してから、画素１５と画素１８で始まる水平方向の２つのラインを処理する。
【００４６】
ただし、２ライン目の右端の画素１６の処理は、次の２ライン（画素１５および画素１８で始まる２ライン）の上のラインの左端の画素１５を処理した後に行われる。画素１６の処理が終わった後に、次の２ラインの右上から左下に向かって処理を行われる。
【００４７】
図１３の例では、画素４、画素２９、画素３０および画素３１以外の画素については、予測に用いられる左、左上、上の画素の処理は３画素以上前に終了しており、画素３１に処理する画素以外の画素については予測に用いられる画素の処理は２画素以上前に終了する。
【００４８】
図１４の例では、画素３１以外の画素は予測に用いられる画素の処理は２画素以上前に終了する。従って、各画素の符号化処理をパイプラインで並列に行っている場合、画素予測処理やその後の量子化・可変長符号化の処理に要する時間を多くとることができ、スループットが向上する。なお、ここで示した例は８×４ブロックであるが、どのようなブロックサイズでも、上記のように右上から左下に向かうスキャン順序をブロック全体あるいは２ラインごとに適用することで同様の効果が得られる。
【００４９】
図５の画素列５０２の各画素の予測値は、左の画素から予測される。図５の領域５０４の各画素の予測値は、左の画素、左上の画素および上の画素から予測される。これらの予測は一般的には精度が良いので、各画素の画素値と予測値との差分である予測残差は、0に近い値になることが多い。図５−１は予測残差（横軸）と出現頻度（縦軸）との関係を示す。本実施形態では、図７の可変長符号化テーブルが用いられる。可変長符号化パラメータkの値として0や1のような小さな値を用いて符号化すると、発生する符号量を抑制できる。
【００５０】
図５の画素列５０３の各画素の予測値は、上の画素から予測される。この予測は精度があまり良くないので、各画素の画素値と予測値との差分である予測残差は、統計的な変動が大きい。図５−２は予測残差（横軸）と出現頻度（縦軸）との関係を示す。可変長符号化パラメータkとして、ブロック内の左端の画素以外の領域で用いる値よりも大きな値を用いて符号化すると、発生する符号量を抑制できる。
【００５１】
本実施形態の可変長符号化部２０３は、ブロックの左端の画素領域（図５の画素列５０３）とそれ以外の画素領域（図５の画素列５０２および領域５０４）とで、異なる可変長符号化パラメータkを用いて符号化する。より具体的には、ブロックの左端以外の画素領域では可変長符号化パラメータkを用い、ブロックの左端の画素領域では可変長符号化パラメータkにオフセット値（OFFSET）を加算した値を用いる。
【００５２】
符号化パラメータkおよびオフセット値（OFFSET）の候補数は、設定された目標圧縮率によって可変とし、後述の圧縮モード判定部で最適なkおよびOFFSETが決定された後、これらのパラメータは圧縮データにヘッダとして多重化される。
【００５３】
図１５から図２０は、ブロックが複数の画素領域に分割された例を示す。図１５は本実施形態の分割に相当する。ブロック１５００は画素領域１５０２と１５０３とに分けられる。画素領域１５０３は画素１５０１が縦に並んだ形状を有する。本実施形態では、画素領域１５０２と１５０３とのそれぞれに対して可変長符号化テーブルが割り当てられる。
【００５４】
図１６は他の分割の例である。ブロック１５００は画素領域１６０２と１６０３とに分けられる。画素領域１６０３はブロック１５００の上端と左端とを含む。画素領域１６０２は画素領域１６０３以外の領域である。画素領域１６０２と１６０３とのそれぞれに対して可変長符号化テーブルが割り当てられる。
【００５５】
図１５は画素の垂直方向の相関が小さい画像、例えばインターレース画像、に対して効果的である。図１６はプログレッシブ画像に対して効果的である。
【００５６】
図１７および図１８はさらに他の分割の例である。図１７はインターレース画像に対して効果的な例である。図１８はプログレッシブ画像の場合に効果的な例である。図１７の画素領域１７０３と画素領域１７０４に対しては同じ可変長符号化パラメータkが用いられる。図１８の画素領域１８０３と画素領域１８０４に対しては同じ可変長符号化パラメータkが用いられる。
【００５７】
図１７および図１８は以下の条件を満たす場合に効果的である。  
（１）各画素の符号化処理がパイプライン処理で並列に行われる。  
（２）ＭＥＤを用いた画素予測処理に１サイクルかかる。  
（３）画素予測処理の後の量子化・可変長符号化の処理にさらに１サイクルかかる。  
（４）図１３および図１４のスキャン順序を適用する。  
（５）１サイクル１画素のスループットを実現する。
【００５８】
画素領域１７０４および画素領域１８０４は図１３および図１４の画素３１に相当する。画素３１の処理を開始する時点では、左の隣接画素の処理が終了していない。画素予測に左の隣接画素を用いることができない。上の隣接画素を用いて予測する必要がある。よって、画素領域１７０４および画素領域１８０４のそれぞれの予測残差の特性は、画素領域１７０３および１８０３のそれぞれの予測残差の特性と同じである。
【００５９】
図１９および図２０はさらに他の分割の例である。図１９はインターレース画像に対して効果的である。図２０はプログレッシブ画像に対して効果的である。図１９の領域１９０３と領域１９０４に対しては、同じ可変長符号化パラメータkが用いられる。図２０の領域２００３と領域２００４に対しては、同じ可変長符号化パラメータkが用いられる。図１９および図２０は以下の条件を満たす場合に効果的である。  
（１）各画素の符号化処理がパイプライン処理で並列に行われる。  
（２）ＭＥＤを用いた画素予測処理に２サイクルかかる。  
（３）画素予測処理の後の量子化・可変長符号化の処理にさらに１サイクルかかる。  
（４）図１３のスキャン順序を適用する。  
（５）１サイクル１画素のスループットを実現する。
【００６０】
画素領域１９０４および画素領域２００４のそれぞれに含まれる画素は、それぞれ図１３の画素４、画素２９、画素３０および画素３１に対応する。これらの４画素の画素予測では、上に隣接する画素のみを用いることができる。したがって、画素領域１９０４および画素領域２００４の予測残差の特性は、画素領域１９０３および領域２００３のそれぞれの予測残差の特性と同じである。
【００６１】
なお、図１５〜図２０の例では、ブロック１５００の左上の画素が画素領域１５０３、１６０３、１７０３、１８０３、１９０３および２００３のそれぞれに含まれているが、この左上の画素については、予測符号化を行わなくても構わない。例えば、画素値をそのままのビット列で出力しても構わないし、量子化した値をそのままのビット列で出力しても構わない。この場合、左上の画素に対する可変長符号化パラメータkは必要なくなるため、画素領域１５０３、１６０３、１７０３、１８０３、１９０３および２００３のそれぞれから除外しても構わない。
【００６２】
図８は可変長符号化パラメータkを3bitのヘッダとして多重化する例を示している。入力画像はYUV420-8bitのフォーマットである。この例では、圧縮率が1/2以下か、1/2より大きいか否かでヘッダ情報の内容が異なる。圧縮率が1/2より大きい場合、可変長符号化パラメータkの値は3bitで表現される（k=0〜7）。圧縮率が1/2以下の場合、可変長符号化パラメータkの値は2bitで表現され（k=0〜3）、1bitがオフセットの制御に用いられる。
【００６３】
YUV420-8bitの画像を圧縮率1/2で圧縮する場合、可変長符号化パラメータkの値は実質3までしか使われない。図７の符号表にも示されているように、可変長符号化パラメータkの値を4に設定して可変長符号化すると、一画素あたりの圧縮後のビット数が最小でも5bitとなるからである。k=4では圧縮率が1/2を超えてしまう。
【００６４】
圧縮率が1/2以下の場合、2bitでブロックの左端の画素以外の領域に対する可変長符号化パラメータkを多重化し、残りの1bitのフラグでブロック左端の画素領域の可変長符号化パラメータkにOFFSETを加算するか否かを示すフラグを多重化する。例えば、1bitのフラグが0の場合、ブロックの全ての画素で共通な可変長符号化パラメータkが用いられる。フラグが1の場合、ブロックの左端以外の画素領域では可変長符号化パラメータkが用いられ、ブロックの左端の画素領域では可変長符号化パラメータk+OFFSET(OFFSETはOFFSET>0を満たす整数)が用いられる。
【００６５】
圧縮率が1/2より大きい場合、可変長符号化パラメータkの値は４以上でも構わない。3bitでブロック左端の画素以外の画素領域の可変長符号化パラメータkを多重化する。ブロック左端の画素以外の画素領域では可変長符号化パラメータkが用いられ、ブロック左端の画素領域では可変長符号化パラメータk+OFFSETが用いられる。
【００６６】
ここでは入力画像の画素ビット長が8bitの画像を圧縮する例を示したが、これ以外の入力画像についても同様の処理が可能である。例えば10bitの入力画像において、可変長符号化パラメータを3bitで多重化する場合は、圧縮率が4/10以下の場合にOFFSETを加算するかどうかのフラグを送る構成とすれば、無駄なく可変長パラメータを多重化することが可能である。
【００６７】
これらの可変長符号化パラメータは、符号化単位内の色コンポーネント信号１つにつき１つの可変長符号化パラメータが多重化されてもよいし、色コンポーネント信号全てに対し１つの可変長符号化パラメータが多重化されてもよいし、輝度コンポーネント信号１つにつき１つの可変長符号化パラメータを多重化し、色差コンポーネント信号では共通の１つの可変長符号化パラメータを多重化してもよい。
【００６８】
圧縮モード判定部１０６は、目標符号量１０１を超えない範囲で圧縮モードを選択する。圧縮モードは、仮圧縮部１０５で評価された各可変長圧縮モードと固定長圧縮モードの中から一つ選択される。各可変長圧縮モードとは、上述の例でいえば、量子化パラメータおよび可変長符号化パラメータkとなる。可変長符号化パラメータkおよび量子化パラメータのいかなる組み合わせでも符号量が目標符号量を上回る場合は、固定長圧縮モードが選択される。
【００６９】
圧縮モード判定部１０６の選択結果に従い、固定長圧縮部１０８、もしくは、可変長圧縮部１０９のいずれかで圧縮処理が行われ、圧縮データ１１０が完成する。固定長圧縮部１０８が選択された場合、画像ブロックは、エントロピー削減処理部３０１でのエントロピー削減処理と量子化部３０２での量子化が施されてから、固定長符号生成部３０３で固定長符号化が行われることにより、符号量が目標符号量１０１となる圧縮データ１１０が得られる。なお、エントロピー削減処理部３０１でのエントロピー削減処理を行わずに、画像ブロックを直接量子化しても構わない。
【００７０】
可変長圧縮部１０９は、図２に示される構成を有する。可変長圧縮部１０９は、仮圧縮部１０５の可変長圧縮部と同じ動作を行って、圧縮データ１１０を出力する。
【００７１】
図９は画像ブロック用バッファ１０４から出力された符号化単位ごとの入力画像が圧縮される手順の一例を示すフローチャートである。
【００７２】
ステップＳ５０２で、量子化パラメータＱＰが０にセットされる。量子化パラメータは量子化ステップサイズに対応した値である。図１１は量子化パラメータＱＰと量子化ステップサイズとの対応関係の例を示す。
【００７３】
ステップＳ５０２で、エントロピー削減処理が行われた後、量子化パラメータＱＰで量子化処理が行われる。本実施形態では、エントロピー削減処理としては、画素予測による予測残差生成処理を行う。
【００７４】
ステップＳ５０３で、量子化された予測残差に対する可変長符号化が行われ、ＱＰの値ごとに最適な可変長符号化パラメータが決定される。この処理については後述する。
【００７５】
ステップＳ５０４で、量子化パラメータＱＰがＱＰの上限値であるQP_Maxに達しているかどうかを判定し、超えていない場合はステップＳ５０５にてＱＰを１加算し、ステップＳ５０２〜Ｓ５０４の処理を繰り返す。ここで、ステップＳ５０１〜Ｓ５０５の処理について、ここではＱＰの値ごとに順次処理を行う例を示したが、全てのＱＰの値についてＳ５０２およびＳ５０３の処理を並列に行ってもよい。
【００７６】
全てのＱＰについて処理が終わった後、ステップＳ５０６にて目標符号量を下回る最小のＱＰを決定する。ステップＳ５０７で目標符号量以下になるＱＰおよび可変長符号化パラメータが存在するかどうかを判定する。存在する場合にはステップＳ５０８にて選択されたＱＰおよび可変長符号化パラメータを用いて可変長符号化部で圧縮を行う。目標符号量以下となるＱＰおよび可変長符号化パラメータが存在しない場合は、ステップＳ５０９にて固定長圧縮部で圧縮を行う。
【００７７】
量子化パラメータや可変長符号化パラメータも同様に圧縮データ１１０に多重化される。可変長符号化か固定長符号化のどちらを選択したかを示す情報は、例えば量子化パラメータの１つの値として多重化されてもよいし、１ビットのフラグとして多重化されてもよい。以上の処理手順で圧縮データ１１０が得られる。
【００７８】
図１０は仮圧縮部１０５における可変長符号化部２０３が行う処理のフローチャートである。
【００７９】
ステップＳ６０１では、圧縮率が閾値θよりも大きいか否かが判定される。圧縮率が閾値θよりも大きい場合、ステップＳ６０２にて可変長符号化パラメータの初期値としてk=0、OFFSET=1が設定される。
【００８０】
ステップＳ６０３では、入力ブロックの左端の画素の予測残差を可変長符号化パラメータk＋OFFSETで仮符号化して、発生符号量を求める。ステップＳ６０４では、ブロック左端の画素以外の予測残差を可変長符号化パラメータkで仮符号化して、発生符号量を求める。
【００８１】
Ｓ６０３、Ｓ６０４の処理はステップＳ６０５のkの大小判定およびステップＳ６０６におけるkのインクリメント処理を経て、kが候補パラメータ数Nに達するまで繰り返される。なお、ここではkの値に応じて順次処理が行われる例を示したが、全てのkの候補について並列に処理が行われてもよい。全ての候補Kにおいて処理が終了したら、ステップＳ６０７にて最も符号量が小さくなるkおよびOFFSETが決定される。本実施形態では、OFFSET=1を用いたが、別の値を用いてもよい。
【００８２】
ステップＳ６０１で圧縮率が閾値θよりも小さい場合には、ステップＳ６０８およびＳ６０９で、可変長量子化パラメータの初期値としてk=0、OFFSET=0が設定される。
【００８３】
ステップＳ６１０およびＳ６１１では、ステップＳ６０３およびＳ６０４と同様の処理が行われる。ステップＳ６１２およびステップＳ６１３は、ステップＳ６１０からステップＳ６１１までの処理のループ制御を行う。ループの回数は(N/2)回であり、これは可変長符号化パラメータkの候補の数に相当する。
【００８４】
ステップＳ６１４とステップＳ６１５では、ステップＳ６０９からステップＳ６１２までの処理のループ制御を行う。ループの回数は２回であり、これはOFFSET（本実施形態では０と１）の候補の数に相当する。
【００８５】
したがって、ステップＳ６１０およびステップＳ６１１の処理は、N個の候補のそれぞれについて繰り返し行われる。
【００８６】
なお、ステップＳ６１０およびＳ６１１の処理は、圧縮率が閾値θより大きい場合と同様に、並列に処理が行われてもよい。全ての候補において処理が終了したら、ステップ６０７にて最も符号量が小さくなるkおよびOFFSETが決定される。以上の処理によって、圧縮率の大小に関わらず、同じ候補数Nの可変長符号化パラメータの中から最適な候補パラメータを選択することが可能である。
【００８７】
以上の処理により、入力画像１０１を所定のデータサイズの圧縮データ１１０に圧縮する際、圧縮率の高低に関係なく同じデータ構造で、可変長符号化テーブルの情報を多重化することができる。圧縮率が高い場合には、使用頻度が低い可変長符号化テーブルの情報を多重化するかわりに、残差の性質の異なる符号化単位内の領域に対して最適な可変長符号化テーブルのインデックスを多重化する。その結果、画質が向上する。
【００８８】
（第２の実施形態）  
図１２は本実施形態の画像伸張器のブロック図である。圧縮データ１１０は可変長符号化または固定長符号化により生成された符号化データと、可変長符号化か固定長符号化かを示す情報とを有する。可変長符号化か固定長符号化かを示す情報に従って固定長伸長部７０１と可変長伸長部７０２とのうちの一方が選択され、圧縮データ１１０に対する伸張処理が行われる。
【００８９】
圧縮率設定部７００は圧縮データ１１０の圧縮率を固定長伸長部７０１および可変長伸長部７０２に設定する。圧縮率は固定値でも構わないし、圧縮データ１１０に多重化された情報に基づいて可変制御されても構わない。
【００９０】
固定長伸長部７０１は、固定長圧縮部１０８と逆の処理（固定長復号処理、逆量子化処理、逆エントロピー削減処理等）を行って、伸長画像ブロックデータを生成する。伸張画像ブロックデータは画像ブロック用バッファ７０６に格納される。
【００９１】
可変長伸長部７０２は、入力された圧縮データ１１０から可変長符号化パラメータと画像圧縮データとを分離するヘッダ分離部７０８と、可変長符号化パラメータに従って画像圧縮データの可変長復号を行う可変長復号部７０３と、逆量子化部７０４と、逆直交変換や画素予測等の逆エントロピー削減処理を行う逆エントロピー削減処理部７０５とを有する。
【００９２】
ヘッダ分離部７０８は、圧縮データ１１０から図８に示された可変長符号化パラメータを分離して、圧縮率に応じて符号化単位内の各領域の可変長符号化パラメータkを求める。図８を用いて具体的に説明する。図８では可変長符号化パラメータが3bitの値で多重化されている。圧縮率が1/2より大きい場合は、3bitで表現される値を符号化単位ブロックの左端の画素以外の画素領域に対する可変長符号化パラメータkとして用い、ブロックの左端の画素領域に対する可変長符号化パラメータkを例えばk+1に設定する。
【００９３】
圧縮率が1/2以下の場合は、ヘッダの上位2bitで表される値を符号化単位ブロックの左端の画素以外の画素領域に対する可変長符号化パラメータkとして用いる。ブロックの左端の画素領域に対する可変長符号化パラメータとして、ヘッダの下位1bitが"0"の場合にはkを用い、下位1bitが"1"の場合にはK+1を用いる。
【００９４】
なお、本実施形態では、図１５に示すように、ブロック内を左端の画素を含む画素領域１５０３とそれ以外の画素領域１５０２に分割し、それぞれに対して可変長符号化パラメータを画像圧縮データ１１０から取得して復号する例を示したが、本発明はこれに限られるものではない。例えば、図１６に示すように、ブロック内をブロック左端と上端とを含む画素領域１６０３と、それ以外の画素領域１６０２に分割し、それぞれに対して可変長符号化パラメータを画像圧縮データ１１０から取得して復号しても構わない。また、図１７〜図２０に示す例など、他の分割手法を適用しても構わない。
【００９５】
このようにして得られた可変長符号化パラメータkを用いて符号化単位ブロックの圧縮データを可変長復号部７０３で復号する。復号されたデータは逆量子化部７０４で例えば圧縮データ１１０に多重化された量子化パラメータを用いて逆量子化された後、逆エントロピー削減処理部７０５で必要に応じて逆直交変換処理や画素予測処理および予測残差加算処理が行われ、復号画像データが得られる。
【００９６】
なお、図１５〜図２０の例では、画素領域１５０３、１６０３、１７０３および１８０３はブロックの左上端の画素を含んでいる。ブロック左上端の画素が例えば画素値をそのままのビット列で圧縮データに含まれている場合や、量子化した値をそのままのビット列で圧縮データに含められている場合は、画素領域１５０３、１６０３、１７０３および１８０３に対する可変長符号化パラメータkはブロック左上端の画素の復号には必要ない。圧縮データから直接復号画素値が得られるか、あるいは、量子化された画素値を取得し、量子化された画素値を逆量子化することにより復号画素値が得られる。
【００９７】
復号画像データは画像ブロック用バッファ７０６に格納され、必要に応じて画素スキャン順序を変更した後、復号画像７０７が出力される。以上のようにして、任意の符号化単位に対する復号画像１１０が得られる。
【産業上の利用可能性】
【００９８】
本発明に係る画像圧縮装置および画像伸張装置は、画像処理装置内部での画像圧縮処理に使用される。
【符号の説明】
【００９９】
１０１・・・目標符号量
１０２・・・入力画像
１０３・・・動画像圧縮装置
１０４・・・画像ブロック用バッファ
１０５・・・仮圧縮部
１０６・・・圧縮モード判定部
１０７・・・圧縮部
１０８・・・固定長圧縮部
１０９・・・可変長圧縮部
１１０・・・圧縮データ
２０１・・・エントロピー削減処理部
２０２・・・量子化部
２０３・・・可変長符号化部
３０１・・・エントロピー削減処理部
３０２・・・量子化部
３０３・・・固定長符号化部
４０１・・・可変長符号化部
７００・・・圧縮率設定部
７０１・・・固定長伸長部
７０２・・・可変長伸長部
７０３・・・可変長復号部
７０４・・・逆量子化部
７０５・・・逆エントロピー削減処理部
７０６・・・画像ブロック用バッファ
７０７・・・復号画像
７０８・・・ヘッダ分離部
【図１】
2010226532.tif 000003
【図２】
2010226532.tif 000004
【図３】
2010226532.tif 000005
【図４】
2010226532.tif 000006
【図５】
2010226532.tif 000007
【図５−１】
2010226532.tif 000008
【図５−２】
2010226532.tif 000009
【図６】
2010226532.tif 000010
【図７】
2010226532.tif 000011
【図８】
2010226532.tif 000012
【図９】
2010226532.tif 000013
【図１０】
2010226532.tif 000014
【図１１】
2010226532.tif 000015
【図１２】
2010226532.tif 000016
【図１３】
2010226532.tif 000017
【図１４】
2010226532.tif 000018
【図１５】
2010226532.tif 000019
【図１６】
2010226532.tif 000020
【図１７】
2010226532.tif 000021
【図１８】
2010226532.tif 000022
【図１９】
2010226532.tif 000023
【図２０】
2010226532.tif 000024