以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置・画像復号装置)
2.第2の実施の形態(画像符号化装置・画像復号装置)
3.第3の実施の形態(画像符号化装置・画像復号装置)
4.第4の実施の形態(パーソナルコンピュータ)
5.第5の実施の形態(テレビジョン受像機)
6.第6の実施の形態(携帯電話機)
7.第7の実施の形態(ハードディスクレコーダ)
8.第8の実施の形態(カメラ)
<1.第1の実施の形態>
[AVC符号化方式の画像符号化装置]
図1は、H.264及びMPEG(Moving Picture Experts Group)4 Part10(AVC(Advanced Video Coding))符号化方式により画像を符号化する画像符号化装置の一実施の形態の構成を表している。
図1に示される画像符号化装置100は、AVC規格に基づいた符号化方式で画像を符号化し、出力する装置である。図1に示されるように、画像符号化装置100は、A/D変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、デブロックフィルタ111、フレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、選択部116、およびレート制御部117を有する。
A/D変換部101は、入力された画像データをA/D変換し、画面並べ替えバッファ102に出力し、記憶させる。画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。
画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部114および動き予測・補償部115にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、イントラ予測部114から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部115から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104が出力する変換係数を量子化する。量子化部105は、レート制御部117から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、量子化を行う。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。係数データは、レート制御部117の制御の下で量子化されているので、この符号量は、レート制御部117が設定した目標値となる(若しくは目標値に近似する)。
可逆符号化部106は、イントラ予測を示す情報などをイントラ予測部114から取得し、インター予測モードを示す情報や動きベクトル情報などを動き予測・補償部115から取得する。なお、イントラ予測(画面内予測)を示す情報は、以下、イントラ予測モード情報とも称する。また、インター予測(画面間予測)を示す情報モードを示す情報は、以下、インター予測モード情報とも称する。
可逆符号化部106は、量子化された変換係数を符号化するとともに、フィルタ係数、イントラ予測モード情報、インター予測モード情報、および量子化パラメータなどの各種情報を、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
例えば、可逆符号化部106においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持し、所定のタイミングにおいて、H.264/AVC方式で符号化された符号化画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109より供給された逆直交変換結果、すなわち、復元された差分情報に、選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。
例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部110は、その差分情報にイントラ予測部114から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部110は、その差分情報に動き予測・補償部115から供給される予測画像を加算する。
その加算結果は、デブロックフィルタ111またはフレームメモリ112に供給される。
デブロックフィルタ111は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロックフィルタ111は、そのフィルタ処理結果をフレームメモリ112に供給する。なお、演算部110から出力される復号画像は、デブロックフィルタ111を介さずにフレームメモリ112に供給することができる。すなわち、デブロックフィルタ111のデブロックフィルタ処理は省略することができる。
フレームメモリ112は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部113を介してイントラ予測部114または動き予測・補償部115に出力する。
例えば、イントラ符号化が行われる画像の場合、フレームメモリ112は、参照画像を、選択部113を介してイントラ予測部114に供給する。また、例えば、インター符号化が行われる場合、フレームメモリ112は、参照画像を、選択部113を介して動き予測・補償部115に供給する。
選択部113は、フレームメモリ112から供給される参照画像がイントラ符号化を行う画像である場合、その参照画像をイントラ予測部114に供給する。また、選択部113は、フレームメモリ112から供給される参照画像がインター符号化を行う画像である場合、その参照画像を動き予測・補償部115に供給する。
イントラ予測部114は、選択部113を介してフレームメモリ112から供給される処理対象ピクチャ内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部114は、予め用意された複数のモード(イントラ予測モード)でこのイントラ予測を行う。
H.264画像情報符号化方式において、輝度信号に対しては、イントラ4×4予測モード、イントラ8×8予測モード及びイントラ16×16予測モードが定義されており、また、色差信号に関しては、それぞれのマクロブロックごとに、輝度信号とは独立した予測モードを定義することが可能である。イントラ4×4予測モードについては、それぞれの4×4輝度ブロックに対して、イントラ8×8予測モードについては、それぞれの8×8輝度ブロックに対して、1つのイントラ予測モードが定義されることになる。イントラ16×16予測モード、並びに、色差信号に対しては、1つのマクロブロックに対して、それぞれ1つの予測モードが定義されることになる。
イントラ予測部114は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ102から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部114は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、選択部116を介して演算部103や演算部110に供給する。
また、上述したように、イントラ予測部114は、採用されたイントラ予測モードを示すイントラ予測モード情報等の情報を、適宜可逆符号化部106に供給する。
動き予測・補償部115は、インター符号化が行われる画像について、画面並べ替えバッファ102から供給される入力画像と、選択部113を介してフレームメモリ112から供給される参照画像とを用いて、動き予測(インター予測)を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部115は、予め用意された複数のモード(インター予測モード)でこのようなインター予測を行う。
動き予測・補償部115は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部115は、生成された予測画像を、選択部116を介して演算部103や演算部110に供給する。
また、動き予測・補償部115は、採用されたインター予測モードを示すインター予測モード情報や、算出した動きベクトルを示す動きベクトル情報を可逆符号化部106に供給する。
選択部116は、イントラ符号化を行う画像の場合、イントラ予測部114の出力を演算部103や演算部110に供給し、インター符号化を行う画像の場合、動き予測・補償部115の出力を演算部103や演算部110に供給する。
レート制御部117は、蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
[AVC符号化方式の画像復号装置]
図2は、離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償により画像圧縮を実現する画像復号装置の主な構成例を示すブロック図である。図2に示される画像復号装置200は、図1の画像符号化装置100に対応する復号装置である。
画像符号化装置100より符号化された符号化データは、例えば伝送路や記録媒体等、任意の経路を介して、この画像符号化装置100に対応する画像復号装置200に供給され、復号される。
図2に示されるように、画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、デブロックフィルタ206、画面並べ替えバッファ207、およびD/A変換部208を有する。また、画像復号装置200は、フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213を有する。
蓄積バッファ201は、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置100により符号化されたものである。可逆復号部202は、蓄積バッファ201から所定のタイミングで読み出された符号化データを、図1の可逆符号化部106の符号化方式に対応する方式で復号する。
また、当該フレームがイントラ符号化されたものである場合、符号化データのヘッダ部にはイントラ予測モード情報が格納されている。可逆復号部202は、このイントラ予測モード情報も復号し、その情報をイントラ予測部211に供給する。これに対して、当該フレームがインター符号化されたものである場合、符号化データのヘッダ部には動きベクトル情報が格納されている。可逆復号部202は、この動きベクトル情報も復号し、その情報を動き予測・補償部212に供給する。
逆量子化部203は、可逆復号部202により復号されて得られた係数データ(量子化係数)を、図1の量子化部105の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部203は、図1の逆量子化部108と同様の方法で量子化係数の逆量子化を行う。
逆量子化部203は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部204に供給する。逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式(図1の逆直交変換部109と同様の方式)で、その直交変換係数を逆直交変換し、画像符号化装置100において直交変換される前の残差データに対応する復号残差データを得る。例えば、4次の逆直交変換が施される。
逆直交変換されて得られた復号残差データは、演算部205に供給される。また、演算部205には、選択部213を介して、イントラ予測部211若しくは動き予測・補償部212から予測画像が供給される。
演算部205は、その復号残差データと予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部205は、その復号画像データをデブロックフィルタ206に供給する。
デブロックフィルタ206は、供給された復号画像のブロック歪を除去した後、画面並べ替えバッファ207に供給する。
画面並べ替えバッファ207は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部208は、画面並べ替えバッファ207から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
デブロックフィルタ206の出力は、さらに、フレームメモリ209に供給される。
フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213は、画像符号化装置100のフレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、および選択部116にそれぞれ対応する。
選択部210は、インター処理される画像と参照される画像をフレームメモリ209から読み出し、動き予測・補償部212に供給する。また、選択部210は、イントラ予測に用いられる画像をフレームメモリ209から読み出し、イントラ予測部211に供給する。
イントラ予測部211には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部202から適宜供給される。イントラ予測部211は、この情報に基づいて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
動き予測・補償部212は、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等)を可逆復号部202から取得する。
動き予測・補償部212は、可逆復号部202から供給されるそれらの情報に基づいて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
選択部213は、動き予測・補償部212またはイントラ予測部211により生成された予測画像を選択し、演算部205に供給する。
[少数画素精度の動き予測・補償処理]
ところで、MPEG2等の符号化方式においては、線形内挿処理により、1/2画素精度の動き予測・補償処理を行っているが、AVC符号化方式においては、これが、6タップのFIRフィルタを用いた1/4画素精度の動き予測・補償処理を行っており、これにより、符号化効率が向上している。
図3は、AVC符号化方式において規定されている、1/4画素精度の動き予測・補償処理の様子の例を説明する図である。図3において、各四角は、画素を示している。その内、Aはフレームメモリ112に格納されている整数精度画素の位置を示し、b,c,dは、1/2画素精度の位置を示し、e1,e2,e3は1/4画素精度の位置を示している。
以下においては、関数Clip1()を以下の式(1)のように定義する。
例えば、入力画像が8ビット精度である場合、式(1)のmax_pixの値は255となる。
b及びdの位置における画素値は、6tapのFIRフィルタを用いて、以下の式(2)および式(3)のように生成される。
cの位置における画素値は、水平方向及び垂直方向に6tapのFIRフィルタを適用し、以下の式(4)乃至式(6)のように生成される。
・・・(4)
もしくは、
・・・(5)
・・・(6)
なお、Clip処理は、水平方向及び垂直方向の積和処理の両方を行った後、最後に1度のみ行われる。
e1乃至e3は、以下の式(7)乃至式(9)のように、線形内挿により生成される。
[動き予測・補償処理]
また、MPEG2においては、動き予測・補償処理の単位は、フレーム動き補償モードの場合には16×16画素、フィールド動き補償モードの場合には第一フィールド、第二フィールドのそれぞれに対し、16×8画素を単位として動き予測・補償処理が行なわれる。
これに対し、AVCにおいては、図4に示されるように、16×16画素により構成される1つのマクロブロックを、16×16、16×8、8×16若しくは8×8のいずれかのパーティションに分割し、サブマクロブロック毎に、互いに独立した動きベクトル情報を持つことが可能である。更に、8×8パーティションに関しては、図4に示されるとおり、8×8、8×4、4×8、4×4のいずれかのサブマクロブロックに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
しかしながら、AVC画像符号化方式において、MPEG2の場合と同様に、かかるような動き予測・補償処理が行なわれるようにすると、膨大な動きベクトル情報が生成されてしまう恐れがあった。そして、その生成された動きベクトル情報をこのまま符号化することは、符号化効率の低下を招く恐れがあった。
[動きベクトルのメディアン予測]
かかる問題を解決する手法として、AVC画像符号化においては、以下のような手法により、動きベクトルの符号化情報の低減が実現されている。
図5に示される各直線は、動き補償ブロックの境界を示している。また、図5において、Eはこれから符号化されようとしている当該動き補償ブロックを示し、A乃至Dは、それぞれ、既に符号化済の、Eに隣接する動き補償ブロックを示す。
今、X=A,B,C,D,Eとして、Xに対する動きベクトル情報を、mvxとする。
まず、動き補償ブロックA,B、およびCに関する動きベクトル情報を用い、動き補償ブロックEに対する予測動きベクトル情報pmvEを、メディアンオペレーションにより、以下の式(10)のように生成する。
動き補償ブロックCに関する情報が、画枠の端である等の理由により“unavailable”である場合、動き補償ブロックDに関する情報で代用される。
画像圧縮情報に、動き補償ブロックEに対する動きベクトル情報として符号化されるデータmvdEは、pmvEを用いて、以下の式(11)のように生成される。
なお、実際の処理は、動きベクトル情報の水平方向および垂直方向のそれぞれの成分に対して、独立に処理が行なわれる。
[マルチ参照フレーム]
また、AVCにおいては、Multi-Reference Frame(マルチ(複数)参照フレーム)という、MPEG2やH.263等、従来の画像符号化方式では規定されていなかった方式が規定されている。
図6を用いて、AVCにおいて規定されている、マルチ参照フレーム(Multi-Reference Frame)を説明する。
すなわち、MPEG-2やH.263においては、Pピクチャの場合、フレームメモリに格納された参照フレーム1枚のみを参照することにより動き予測・補償処理が行われていたが、AVCにおいては、図5に示されるように、複数の参照フレームがメモリに格納され、マクロブロック毎に、異なるメモリを参照することが可能である。
[ダイレクトモード]
ところで、Bピクチャにおける動きベクトル情報における情報量は膨大であるが、AVCにおいては、Direct Mode(ダイレクトモード)と称されるモードが用意されている。
このダイレクトモード(Direct Mode)において、動きベクトル情報は、画像圧縮情報中には格納されない。画像復号装置においては、周辺ブロックの動きベクトル情報、若しくは、参照フレームにおける処理対象ブロックと同じ位置のブロックであるco-locatedブロックの動きベクトル情報から、当該ブロックの動きベクトル情報が算出される。
ダイレクトモード(Direct Mode)には、Spatial Direct Mode(空間ダイレクトモード)と、Temporal Direct Mode(時間ダイレクトモード)の2種類が存在し、スライス毎に切り替えることが可能である。
空間ダイレクトモード(Spatial Direct Mode)においては、以下の式(12)に示されるように、処理対象動き補償ブロックEの動きベクトル情報mvEが算出される。
mvE = pmvE ・・・(12)
すなわち、Median(メディアン)予測により生成された動きベクトル情報が、当該ブロックに適用される。
以下においては、図7を用いて、時間ダイレクトモード(Temporal Direct Mode)を説明する。
図7において、L0参照ピクチャにおける、当該ブロックと同じ空間上のアドレスにあるブロックを、Co-Locatedブロックとし、Co-Locatedブロックにおける動きベクトル情報を、mvcolとする。また、当該ピクチャとL0参照ピクチャの時間軸上の距離をTDBとし、L0参照ピクチャとL1参照ピクチャの時間軸上の距離をTDDとする。
この時、当該ピクチャにおける、L0の動きベクトル情報mvL0及びL1の動きベクトル情報mvL1は、以下の式(13)および式(14)のように算出される。
なお、AVC画像圧縮情報においては、時間軸上の距離を表す情報TDが存在しないため、POC(Picture Order Count)を用いて、上述した式(12)および式(13)の演算が行われるものとする。
また、AVC画像圧縮情報においては、ダイレクトモード(Direct Mode)は、16×16画素マクロブロック単位、若しくは、8×8画素ブロック単位で定義することが可能である。
[予測モードの選択]
ところで、AVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
かかる選択方式の例として、JM(Joint Model)と呼ばれるH.264/MPEG-4 AVCの参照ソフトウエア(http://iphome.hhi.de/suehring/tml/index.htm において公開されている)に実装されている方法を挙げることが出来る。
JMにおいては、以下に述べる、High Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択することができる。どちらも、それぞれの予測モードに関するコスト関数値を算出し、これを最小にする予測モードを当該サブマクロブロック、または、当該マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数は、以下の式(15)のように示される。
Cost(Mode∈Ω) = D + λ*R ・・・(15)
ここで、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合、Dは、当該予測モードで符号化した場合の、復号画像と入力画像の差分エネルギーである。λは、量子化パラメータの関数として与えられるLagrange未定乗数である。Rは、直交変換係数を含んだ、当該モードで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータD及びRを算出するため、全ての候補モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
Low Complexity Modeにおけるコスト関数は、以下の式(16)のように示される。
Cost(Mode∈Ω) = D + QP2Quant(QP) * HeaderBit ・・・(16)
ここで、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。QP2Quant(QP)は、量子化パラメータQPの関数として与えられ、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
[動きベクトルのコンペティション]
ところで、図5を参照して説明したような、メディアン予測を用いた動きベクトルの符号化を改善するため、非特許文献1では、以下に述べるような方法が提案されている。
すなわち、AVCにおいて定義されている、メディアン予測により求められる”Spatial Predictor(空間予測)”に加え、以下に述べる”Temporal Predictor(時間予測)”及び”Spatio-Temporal Predictor(時間と空間の予測)”のどれかを、予測動きベクトル情報として、適応的に用いることが可能にするものである。
すなわち、図8において、”mvcol”を、当該ブロックに対するco-locatedブロック(参照画像において、xy座標が、当該ブロックと同じであるブロック)に対する動きベクトル情報、mvtk(k=0乃至8)をその周辺ブロックの動きベクトル情報であるとして、それぞれの予測動きベクトル情報(Predictor)は、以下の式(17)乃至(19)により定義される。
Temporal Predictor:
・・・(17)
・・・(18)
Spatio-Temporal Predictor:
・・・(19)
画像符号化装置100においては、それぞれのブロックに関して、それぞれの予測動きベクトル情報を用いた場合のコスト関数が算出され、最適な予測動きベクトル情報の選択が行われる。画像圧縮情報においては、それぞれのブロックに対し、どの予測動きベクトル情報が用いられたかに関する情報を示すflagが伝送される。
[コーディングユニット]
ところで、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。
そこで、AVCにおいては、図4に示されるように、マクロブロックとサブマクロブロックによる階層構造が規定されているが、例えば、HEVC(High Efficiency Video Coding)においては、図9に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVCにおけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図9の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVCにおいては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVCのように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVCにおけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは図9に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
[本実施について]
以上のように様々な予測動きベクトルが用意されているが、どの予測動きベクトルを採用するかを特定する予測動きベクトル選択情報(pmv_index)を符号化する場合、通常、2値データとして割り当てられる符号系列が短い方がその符号量を低減させることができ、望ましい。つまり、指定される頻度がより多い予測動きベクトルに対して、より短いビット系列を割り当てるのが望ましい。
しかしながら、この頻度は、画像の内容等に依存する。したがって、例えば、ある画像においてtemporal_pmvの方が指定される頻度が高くても、他の画像においてはspatial_pmvの方が指定される頻度が高くなる場合も考えられる。したがって、各予測動きベクトルの指定される頻度に対して、各予測動きベクトルへのビット系列の割り当て方が適切にならずに符号化効率が低減してしまう恐れがあった。
そこで、以下においては、表示順序で近いフレーム間の動きは類似する可能性が高いことを利用して、表示順序において、当該ピクチャとtemporal_pmvを含むアンカーピクチャとが近い場合、temporal_pmvに小さいコード番号を割り当てるようにする。逆に、当該ピクチャとアンカーピクチャとが大きい場合、spatial_pmvに小さいコード番号を割り当てるようにする。以下においてその方法について説明する。
[画像符号化装置]
図10は、本発明を適用した画像符号化装置の主な構成例を示すブロック図である。
図10に示される画像符号化装置300は、図1の画像符号化装置100と基本的に同様の装置であり、画像データを符号化する。図11に示されるように画像符号化装置300は、A/D変換部301、画面並べ替えバッファ302、演算部303、直交変換部304、量子化部305、可逆符号化部306、および蓄積バッファ307を有する。また、画像符号化装置300は、逆量子化部308、逆直交変換部309、演算部310、ループフィルタ311、フレームメモリ312、選択部313、イントラ予測部314、動き予測・補償部315、選択部316、およびレート制御部317を有する。
画像符号化装置300は、さらに、割り当て制御部321を有する。
A/D変換部301は、入力された画像データをA/D変換する。A/D変換部301は、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ302に供給し、記憶させる。画面並べ替えバッファ302は、記憶した表示の順番のフレームの画像を、GOPに応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ302は、フレームの順番を並び替えた画像を、演算部303に供給する。また、画面並べ替えバッファ302は、フレームの順番を並び替えた画像を、イントラ予測部314および動き予測・補償部315にも供給する。
演算部303は、画面並べ替えバッファ302から読み出された画像から、選択部316を介してイントラ予測部314若しくは動き予測・補償部315から供給される予測画像を減算する。演算部303は、その差分情報を直交変換部304に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部303は、画面並べ替えバッファ302から読み出された画像から、イントラ予測部314から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部303は、画面並べ替えバッファ302から読み出された画像から、動き予測・補償部315から供給される予測画像を減算する。
直交変換部304は、演算部303から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施す。なお、この直交変換の方法は任意である。直交変換部304は、その変換係数を量子化部305に供給する。
量子化部305は、直交変換部304から供給される変換係数を量子化する。量子化部305は、レート制御部317から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。なお、この量子化の方法は任意である。量子化部305は、量子化された変換係数を可逆符号化部306に供給する。
可逆符号化部306は、量子化部305において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部317の制御の下で量子化されているので、この符号量は、レート制御部317が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部306は、イントラ予測のモードを示す情報などをイントラ予測部314から取得し、インター予測のモードを示す情報や動きベクトル情報などを動き予測・補償部315から取得する。さらに、可逆符号化部306は、ループフィルタ311において使用されたフィルタ係数等を取得する。
可逆符号化部306は、これらの各種情報を任意の符号化方式で符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部306は、符号化して得られた符号化データを蓄積バッファ307に供給して蓄積させる。
可逆符号化部306の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ307は、可逆符号化部306から供給された符号化データを、一時的に保持する。蓄積バッファ307は、所定のタイミングにおいて、保持している符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。
また、量子化部305において量子化された変換係数は、逆量子化部308にも供給される。逆量子化部308は、その量子化された変換係数を、量子化部305による量子化に対応する方法で逆量子化する。この逆量子化の方法は、量子化部305による量子化処理に対応する方法であればどのような方法であってもよい。逆量子化部308は、得られた変換係数を、逆直交変換部309に供給する。
逆直交変換部309は、逆量子化部308から供給された変換係数を、直交変換部304による直交変換処理に対応する方法で逆直交変換する。この逆直交変換の方法は、直交変換部304による直交変換処理に対応する方法であればどのようなものであってもよい。逆直交変換された出力(復元された差分情報)は、演算部310に供給される。
演算部310は、逆直交変換部309から供給された逆直交変換結果、すなわち、復元された差分情報に、選択部316を介してイントラ予測部314若しくは動き予測・補償部315から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。
例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部310は、その差分情報にイントラ予測部314から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部310は、その差分情報に動き予測・補償部315から供給される予測画像を加算する。
その加算結果(復号画像)は、ループフィルタ311またはフレームメモリ312に供給される。
ループフィルタ311は、デブロックフィルタや適応ループフィルタ等を含み、演算部310から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ311は、復号画像に対して、デブロックフィルタ111と同様のデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ311は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ311が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ311は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部306に供給し、それを符号化させるようにすることもできる。
ループフィルタ311は、フィルタ処理結果(フィルタ処理後の復号画像)をフレームメモリ312に供給する。なお、上述したように、演算部310から出力される復号画像は、ループフィルタ311を介さずにフレームメモリ312に供給することができる。つまり、ループフィルタ311によるフィルタ処理は省略することができる。
フレームメモリ312は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部313に供給する。
選択部313は、フレームメモリ312から供給される参照画像の供給先を選択する。例えば、イントラ予測の場合、選択部313は、フレームメモリ312から供給される参照画像をイントラ予測部314に供給する。また、インター予測の場合、選択部313は、フレームメモリ312から供給される参照画像を動き予測・補償部315に供給する。
イントラ予測部314は、選択部313を介してフレームメモリ312から供給される参照画像である処理対象ピクチャ内の画素値を用いて、基本的にPUを処理単位として予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部314は、予め用意された複数のモード(イントラ予測モード)でこのイントラ予測を行う。イントラ予測部314は、AVC符号化方式において規定されるモードだけでなく、それ以外の任意のモードでこのイントラ予測を行うこともできる。
イントラ予測部314は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ102から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部314は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、選択部316に供給する。
また、上述したように、イントラ予測部314は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部306に供給し、符号化させる。
動き予測・補償部315は、画面並べ替えバッファ302から供給される入力画像と、選択部313を介してフレームメモリ312から供給される参照画像とを用いて、基本的にPUを処理単位として、動き予測(インター予測)を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部315は、予め用意された複数のモード(インター予測モード)でこのようなインター予測を行う。動き予測・補償部315は、AVC符号化方式において規定されるモードだけでなく、それ以外の任意のモードでこのインター予測を行うこともできる。
動き予測・補償部315は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部315は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、選択部316に供給する。
また、動き予測・補償部315は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部306に供給し、符号化させる。
選択部316は、演算部303や演算部310に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、選択部316は、予測画像の供給元としてイントラ予測部314を選択し、そのイントラ予測部314から供給される予測画像を演算部303や演算部310に供給する。また、例えば、インター符号化の場合、選択部316は、予測画像の供給元として動き予測・補償部315を選択し、その動き予測・補償部315から供給される予測画像を演算部303や演算部310に供給する。
レート制御部317は、蓄積バッファ307に蓄積された符号化データの符号量に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部305の量子化動作のレートを制御する。
割り当て制御部321は、可逆符号化部306における、採用(選択)された予測動きベクトルを示す予測動きベクトル選択情報(pmv_index)への、ビット系列(2値データ)の割り当てを制御する。割り当て制御部321は、表示順における当該ピクチャとアンカーピクチャとの距離に応じて、ビット系列(2値データ)の割り当てを制御する。
[ビット系列割り当て制御]
次に、この割り当て制御部321による割り当て方の制御について説明する。
図11は、AMVPの予測動きベクトル(PMV)の候補の例を説明する図である。図11において、xは当該ブロックである。MV_A,MV_B,MV_C,MV_D,MV_Eは、それぞれ、当該ピクチャの当該ブロックの周囲の動きベクトル(MV)であり、spatial_pmvである。また、MV_Tmpは符号化済みピクチャでxと同じ位置にあるCo-located ブロックのMVであり、temporal_pmvである。アンカーピクチャはL1側で最も当該ピクチャに近い符号化済みピクチャを指すのが一般的である。
図12は、当該ピクチャとアンカーピクチャのPOC(Picture Order Count)の差dPOCが2の場合の動きベクトルの関係の様子の例を示す図である。t+4は当該ピクチャのPOCであり、t+6はアンカーピクチャのPOCである。当該ピクチャで太い線は当該ブロックである。当該ブロックの周囲の動きベクトル(MV)はspatial_pmvとなる。ここでは代表的にMV_Bが示されている。アンカーピクチャの太い線は、Co-locatedブロックを示している。その動きベクトルMV_Tmpはtemporal_pmvである。
図13は、当該ピクチャとアンカーピクチャのPOCの差dPOCが1の場合の動きベクトルの関係の様子の例を示す図である。
図12の例と図13の例を比較して分かるように、図13の例の場合の方が、図12の例の場合よりも、temporal_pmv(MV_Tmp)が、spatial_pmv(MV_B)に近い。つまり、dPOCが小さい程、temporal_pmv の予測精度が高くなる。
そこで、割り当て制御部321は、dPOCが小さい場合、temporal_pmvに短いビット系列を割り当て、dPOCが大きい場合、spatial_pmvに短いビット系列を割り当てる。このようにビット系列の割り当て制御することで、割り当て制御部321は、予測精度の高くなる可能性の高いPMV候補を指定するための予測動きベクトル選択情報(pmv_index)の符号量を低減させることができる。
[可逆符号化部および割り当て制御部]
図14は、図10の可逆符号化部306および割り当て制御部321の主な構成例を示すブロック図である。
図14に示されるように、可逆符号化部306は、動きベクトル記憶部331、予測動きベクトル選択部332、差分動きベクトル算出部333、テーブル記憶部334、2値化部335、2値化部336、およびエントロピ符号化部337を有する。
また、割り当て制御部321は、距離閾値取得部341、距離算出部342、およびテーブル選択部343を有する。
動きベクトル記憶部331は、動き予測・補償部315から供給される最適モード情報に含まれる、処理対象である当該PUの動きベクトルを記憶する。動きベクトル記憶部331は、時間的に後において行われる他の領域についての処理において、記憶している動きベクトルを予測動きベクトルの候補として予測動きベクトル選択部332に供給する。
予測動きベクトル選択部332は、動きベクトル記憶部331に記憶されている動きベクトルを予測動きベクトル候補として取得し、その候補の中から、動き予測・補償部315から供給される最適モード情報に含まれる当該PUの動きベクトルに最も近い動きベクトルを予測動きベクトルとして選択する。予測動きベクトル選択部332は、選択した動きベクトルを予測動きベクトルとして差分動きベクトル算出部333に供給する。また、予測動きベクトル選択部332は、どの予測動きベクトル候補を予測動きベクトルとして選択したかを示す予測動きベクトル選択情報を、2値化部335に供給する。
差分動きベクトル算出部333は、予測動きベクトル選択部332から供給される予測動きベクトルと、動き予測・補償部315から最適モード情報に含められて供給される当該PUの動きベクトルとの差分である差分動きベクトルを算出する。差分動きベクトル算出部333は、算出した差分動きベクトルを2値化部336に供給する。
テーブル記憶部334は、予測動きベクトル選択情報に割り当てるビット系列(2値データ)を、予測動きベクトルとして選択されたベクトルの種類に応じて指定するテーブル情報を予め記憶する。テーブル記憶部334は、ベクトルの種類に応じたビット系列の割り当て方が互いに異なる複数のテーブル情報を記憶する。
図15は、そのテーブル情報の例を示す図である。
図15に示されるテーブル情報において、ビット系列の列が、割り当てられるビット系列の値を示す。また、S1の列は、各ビット系列が割り当てられる予測動きベクトルの種類の例を示す。S2の列は、S1と同様であるが、ビット系列との対応関係が異なる。
例えば、S1の割り当てパターンでは、予測動きベクトルがMV_A,MV_B、およびMV_Cの中央値(Median)(spatial_pmv)である場合、符号長1Binのビット系列「1」が割り当てられる。また、予測動きベクトルがMV_Aである場合、符号長3Binのビット系列「010」が割り当てられる。以下、同様に、予測動きベクトルがMV_Bである場合、符号長3Binのビット系列「011」が割り当てられ、予測動きベクトルがMV_Cである場合、符号長5Binのビット系列「00100」が割り当てられ、予測動きベクトルがMV_Eである場合、符号長5Binのビット系列「00101」が割り当てられ、予測動きベクトルがMV_Dである場合、符号長5Binのビット系列「00110」が割り当てられる。
また、予測動きベクトルがMV_Tmp(temporal_pmv)である場合、符号長5Binのビット系列「00111」が割り当てられる。
つまり、S1の場合、spatial_pmvにより短いビット系列が割り当てられ、temporal_pmvにより長いビット系列が割り当てられる。
これに対して、例えばS2の割り当てパターンでは、予測動きベクトルがMV_Tmp(temporal_pmv)である場合、符号長1Binのビット系列「1」が割り当てられる。
そして、予測動きベクトルがMV_A,MV_B、およびMV_Cの中央値(Median)(spatial_pmv)である場合、符号長3Binのビット系列「010」が割り当てられる。また、予測動きベクトルがMV_Aである場合、符号長3Binのビット系列「011」が割り当てられる。以下、同様に、予測動きベクトルがMV_Bである場合、符号長5Binのビット系列「00100」が割り当てられ、予測動きベクトルがMV_Cである場合、符号長5Binのビット系列「00101」が割り当てられ、予測動きベクトルがMV_Eである場合、符号長5Binのビット系列「00110」が割り当てられ、予測動きベクトルがMV_Dである場合、符号長5Binのビット系列「00111」が割り当てられる。
つまり、この場合、spatial_pmvにより長いビット系列が割り当てられ、temporal_pmvにより短いビット系列が割り当てられる。
図14に戻り、テーブル記憶部334は、このような「ビット系列」の列と「S1」の列のテーブルと、「ビット系列」の列と「S2」の列のテーブルのように、互いに対応関係が異なる複数のテーブル情報を有する。
なお、図15の例に示されるコード番号は、各ビット系列を識別するための仮想的な情報であるので、その値は任意である。
また、以上においては、テーブル記憶部334が複数のテーブル情報を記憶するように説明したが、予測動きベクトルの種類に対してビット系列の割り当てパターンが複数用意されていればよく、図15の例に示されるように、各ビット系列の割り当てパターンが1つのテーブル情報にまとめられていてもよい。
図14の2値化部335は、テーブル記憶部334に記憶されている、割り当て制御部321のテーブル選択部343に選択された割り当てパターン(Sn)のテーブル情報を参照し、その割り当てパターンに従って、予測動きベクトル選択部332から供給される予測動きベクトル選択情報(pmv_index)を2値化する(テーブル情報において割り当てられたビット系列に変換する)。2値化部335は、2値化後の2値データをエントロピ符号化部337に供給する。
2値化部336は、量子化部305から供給される量子化された係数データ、イントラ予測部314から供給される最適モード情報(イントラ予測モード情報等)、およびループフィルタ311から供給されるフィルタ情報(フィルタ係数等を含む)等の各種情報を2値化し、その2値データをエントロピ符号化部337に供給する。
また、2値化部336は、動き予測・補償部315から供給される最適モード情報を2値化し、その2値データをエントロピ符号化部337に供給する。
さらに、2値化部336は、差分動きベクトル算出部333から供給される差分動きベクトルを2値化し、その2値データをエントロピ符号化部337に供給する。
また、2値化部336は、割り当て制御部321の距離閾値取得部341から供給される距離閾値dPOC_thを2値化し、その2値データをエントロピ符号化部337に供給する。
エントロピ符号化部337は、2値化部335および2値化部336から供給される各2値データを符号化し、必要に応じてヘッダ等の情報を生成し、各情報を合成してストリームとして蓄積バッファ307に供給し、蓄積させる。
距離閾値取得部341は、外部から距離閾値dPOC_thを取得する。この距離閾値dPOC_thは、割り当て制御部321が、当該ピクチャとアンカーピクチャのPOCの差dPOC、つまり、表示順における当該ピクチャとアンカーピクチャとの距離に応じて、ビット系列の割り当てパターンを制御するための閾値である。
この距離閾値dPOC_thは、どのように設定されるようにしてもよい。例えば、ユーザの指示であってもよいし、画像符号化装置300の処理能力によって決定されるようにしてもよいし、画像の内容に応じて設定されるようにしてもよい。
距離閾値取得部341は、何らかの方法で決定された距離閾値dPOC_thを外部から取得すると、それをテーブル選択部343に供給し、テーブル選択(割り当てパターンの選択)に利用させる。
また、距離閾値取得部341は、取得した距離閾値dPOC_thを可逆符号化部306の2値化部336にも供給し、復号側に提供させる。
距離算出部342は、各ピクチャのPOCをカウントし、当該ピクチャとアンカーピクチャのPOCの差dPOCを算出する。距離算出部342は、その差dPOCをテーブル選択部343に供給する。
テーブル選択部343は、距離算出部342から供給される差(距離)dPOCと、距離閾値取得部341から供給された距離閾値dPOC_thとを比較し、その比較結果に応じてテーブル(ビット系列の割り当てパターン)Snをを選択する。
図15の例の場合、距離dPOCが距離閾値dPOC_thより大きい場合(若しくは、距離dPOCが距離閾値dPOC_th以上である場合)、spatial_pmvが優先されるので、テーブル選択部343は、spatial_pmvにより短いビット系列が割り当てられるように、S1を選択する。また、距離dPOCが距離閾値dPOC_th以下である場合(若しくは、距離dPOCが距離閾値dPOC_thより小さい場合)、temporal_pmvが優先されるので、テーブル選択部343は、temporal_pmvにより短いビット系列が割り当てられるように、S2を選択する。
テーブル選択部343は、その選択結果Snを可逆符号化部306の2値化部335に供給する。
このように、割り当て制御部321は、当該ピクチャとアンカーピクチャの表示順上の距離(dPOC)に応じてビット系列の割り当てを適切に制御することができる。つまり、割り当て制御部321は、指定する頻度がより高い動きベクトルの選択情報に対して符号長がより短いビット系列を割り当てることができる。換言するに、割り当て制御部321は、指定する頻度がより低い動きベクトルの選択情報に対して符号長がより長いビット系列を割り当てることができる。したがって、可逆符号化部306は、予測動きベクトル選択情報(pmv_index)の符号量を低減させることができる。これにより、画像符号化装置300は、符号化効率を向上させることができる。
[符号化処理の流れ]
次に、以上のような画像符号化装置300により実行される各処理の流れについて説明する。最初に、図16のフローチャートを参照して、符号化処理の流れの例を説明する。
なお、各ステップの処理データ単位は互いに異なる場合もある。そのため、各ステップの処理は、実際には、互いに並行して行われたり、順序が入れ替えて行われたりする場合もある。以下に説明する他の処理においても同様である。
ステップS301において、A/D変換部301は入力された画像をA/D変換する。ステップS302において、画面並べ替えバッファ302は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS303において、イントラ予測部314は、イントラ予測モードのイントラ予測処理を行う。ステップS304において、動き予測・補償部315は、インター予測モードでの動き予測や動き補償を行うインター動き予測処理を行う。
ステップS305において、選択部316は、イントラ予測部314および動き予測・補償部315から出力された各コスト関数値に基づいて、最適なモードを決定する。つまり、選択部316は、イントラ予測部314により生成された予測画像と、動き予測・補償部315により生成された予測画像のいずれか一方を選択する。
また、このいずれの予測画像が選択されたかを示す選択情報は、イントラ予測部314および動き予測・補償部315のうち、予測画像が選択された方に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部314は、最適イントラ予測モード等を示すイントラ予測モード情報を可逆符号化部306に供給する。最適インター予測モードの予測画像が選択された場合、動き予測・補償部315は、最適インター予測モードを示す情報を可逆符号化部306に出力する。
ステップS306において、演算部303は、ステップS302の処理により並び替えられた画像と、ステップS305の処理により選択された予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部315から、イントラ予測する場合はイントラ予測部314から、選択部316を介して演算部303に供給される。
差分データは元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS307において、直交変換部304は、ステップS306の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
ステップS308において、量子化部305は、ステップS307の処理により得られた直交変換係数を量子化する。
ステップS308の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS309において、逆量子化部308は、ステップS308の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部305の特性に対応する特性で逆量子化する。ステップS310において、逆直交変換部309は、ステップS307の処理により得られた直交変換係数を、直交変換部304の特性に対応する特性で逆直交変換する。
ステップS311において、演算部310は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部303への入力に対応する画像)を生成する。ステップS312においてループフィルタ311は、ステップS311の処理により得られた局部的な復号画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS313において、フレームメモリ312は、ステップS312の処理によりループフィルタ処理が施された復号画像を記憶する。なお、フレームメモリ312にはループフィルタ311によりフィルタ処理されていない画像も演算部310から供給され、記憶される。
ステップS314において、可逆符号化部306は、ステップS308の処理により量子化された変換係数を符号化する。すなわち、差分画像に対して、可変長符号化や算術符号化等の可逆符号化が行われる。
なお、可逆符号化部306は、ステップS308において算出された量子化パラメータを符号化し、符号化データに付加する。また、可逆符号化部306は、ステップS305の処理により選択された予測画像のモードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部306は、イントラ予測部314から供給される最適イントラ予測モード情報、または、動き予測・補償部315から供給される最適インター予測モードも符号化し、符号化データに付加する。
ステップS315において蓄積バッファ307は、可逆符号化部306から出力される符号化データを蓄積する。蓄積バッファ307に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS316においてレート制御部317は、ステップS315の処理により蓄積バッファ307に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部305の量子化動作のレートを制御する。
ステップS316の処理が終了すると、符号化処理が終了される。
[可逆符号化処理の流れ]
次に、図16のステップS314において実行される可逆符号化処理の流れの例を、図17のフローチャートを参照して説明する。
可逆符号化処理が開始されると、2値化部336およびエントロピ符号化部337は、ステップS321において、量子化された係数データを2値化して符号化し、ステップS3322において、フィルタ情報を2値化して符号化し、ステップS323において、イントラ符号化された領域についてイントラ予測モード情報を2値化して符号化する。
また、ステップS324において、可逆符号化部306および割り当て制御部321は、インター符号化された領域についてインター予測モード情報を2値化して符号化する。
ステップS325において、エントロピ符号化部337は、各符号化データを合成し、ストリームとする。
ステップS325の処理を終了すると、エントロピ符号化部337は、可逆符号化処理を終了し、処理を図16のステップS314に戻し、ステップS315に処理を進める。
[インター予測モード情報符号化処理の流れ]
次に、図18のフローチャートを参照して、図17のステップS324において実行されるインター予測モード情報符号化処理の流れの例を説明する。
インター予測モード情報符号化処理が開始されると、ステップS331において、距離閾値取得部341は、距離閾値dPOC_thを取得する。ステップS332において、2値化部336およびエントロピ符号化部337は、ステップS331において得られた距離閾値dPOC_thを2値化して符号化し、シーケンスパラメータセット(SPS(Sequence Parameter Set))に格納する。
ステップS333において、動きベクトル記憶部331は、最適モード情報(インター予測モード情報)に含まれる当該PUの動きベクトルを記憶する。ステップS334において、予測動きベクトル選択部332は、動きベクトル記憶部331に記憶されている周辺動きベクトルを予測動きベクトル候補として取得する。ステップS335において、予測動きベクトル選択部332は、当該PUの動きベクトルに最も近い予測動きベクトル候補を予測動きベクトルとして選択する。
ステップS336において、距離算出部342は、当該ピクチャとアンカーピクチャとの距離dPOCを求める。ステップS337において、テーブル選択部343は、ステップS336において求められた距離dPOCと、ステップS331において取得された距離閾値dPOC_thとの大小関係に応じて、ビット系列の割り当てパターンを示すテーブル情報を選択する。
ステップS338において、2値化部335は、テーブル記憶部334に記憶されている、ステップS337において選択されたテーブル情報を参照し、ステップS335においてどの予測動きベクトル候補が選択されたかを示す予測動きベクトル選択情報を2値化する。ステップS339において、エントロピ符号化部337は、ステップS338において2値化された予測動きベクトル選択情報の2値データを符号化する。
ステップS340において、差分動きベクトル算出部333は、当該動きベクトルと予測動きベクトルとの差分である差分動きベクトルを求める。ステップS341において、2値化部336およびエントロピ符号化部337は、ステップS340において得られた差分動きベクトルを2値化して符号化する。
ステップS342において、2値化部336およびエントロピ符号化部337は、その他の最適モード情報を2値化して符号化する。
ステップS342の処理が終了すると、エントロピ符号化部337は、インター予測モード情報符号化処理を終了し、処理を図17のステップS324に戻し、ステップS325に処理を進める。
このように各処理を実行することにより、割り当て制御部321は、当該ピクチャとアンカーピクチャの表示順上の距離(dPOC)に応じてビット系列の割り当てを適切に制御することができる。つまり、割り当て制御部321は、指定する頻度がより高い動きベクトルの選択情報に対して符号長がより短いビット系列を割り当てることができる。換言するに、割り当て制御部321は、指定する頻度がより低い動きベクトルの選択情報に対して符号長がより長いビット系列を割り当てることができる。したがって、可逆符号化部306は、予測動きベクトル選択情報(pmv_index)の符号量を低減させることができる。これにより、画像符号化装置300は、符号化効率を向上させることができる。
[画像復号装置]
図19は、本実施の画像復号装置の主な構成例を示すブロック図である。図19に示される画像復号装置400は、図10の画像符号化装置300に対応する復号装置である。画像符号化装置300より符号化された符号化データは、例えば伝送路や記録媒体等、任意の経路を介して、この画像復号装置400に供給され、復号される。
図19に示されるように、画像復号装置400は、蓄積バッファ401、可逆復号部402、逆量子化部403、逆直交変換部404、演算部405、ループフィルタ406、画面並べ替えバッファ407、およびD/A変換部408を有する。また、画像復号装置400は、フレームメモリ409、選択部410、イントラ予測部411、動き予測・補償部412、および選択部413を有する。
画像復号装置400は、さらに、割り当て制御部421を有する。
蓄積バッファ401は、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置300により符号化されたものである。可逆復号部402は、蓄積バッファ401から符号化データを所定のタイミングで読み出し、図10の可逆符号化部306の符号化方式に対応する方式で復号する。
また、当該フレームがイントラ符号化されたものである場合、符号化データのヘッダ部にはイントラ予測モード情報が格納されている。可逆復号部402は、このイントラ予測モード情報も復号し、その情報をイントラ予測部411に供給する。これに対して、当該フレームがインター符号化されたものである場合、符号化データのヘッダ部には動きベクトル情報やインター予測モード情報が格納されている。可逆復号部402は、この動きベクトル情報やインター予測モード情報も復号し、その情報を動き予測・補償部412に供給する。
逆量子化部403は、可逆復号部402により復号されて得られた係数データ(量子化係数)を、図10の量子化部305の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部403は、図10の逆量子化部308と同様の方法で量子化係数の逆量子化を行う。
逆量子化部403は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部404に供給する。逆直交変換部404は、図10の直交変換部304の直交変換方式に対応する方式(図10の逆直交変換部309と同様の方式)で、その直交変換係数を逆直交変換する。逆直交変換部404は、この逆直交変換処理により、画像符号化装置300において直交変換される前の残差データに対応する復号残差データを得る。例えば、4次の逆直交変換が施される。
逆直交変換されて得られた復号残差データは、演算部405に供給される。また、演算部405には、選択部413を介して、イントラ予測部411若しくは動き予測・補償部412から予測画像が供給される。
演算部405は、その復号残差データと予測画像とを加算し、画像符号化装置300の演算部303により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部405は、その復号画像データをループフィルタ406に供給する。
ループフィルタ406は、供給された復号画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施し、それを画面並べ替えバッファ407に供給する。
ループフィルタ406は、デブロックフィルタや適応ループフィルタ等を含み、演算部405から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ406は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ406は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ406が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ406が、図10の画像符号化装置300から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ406は、フィルタ処理結果(フィルタ処理後の復号画像)を画面並べ替えバッファ407およびフレームメモリ409に供給する。なお、演算部405から出力される復号画像は、ループフィルタ406を介さずに画面並べ替えバッファ407やフレームメモリ409に供給することができる。つまり、ループフィルタ406によるフィルタ処理は省略することができる。
画面並べ替えバッファ407は、画像の並べ替えを行う。すなわち、図10の画面並べ替えバッファ302により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部408は、画面並べ替えバッファ407から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
フレームメモリ409は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、イントラ予測部411や動き予測・補償部412等の外部の要求に基づいて、記憶している復号画像を参照画像として、選択部410に供給する。
選択部410は、フレームメモリ409から供給される参照画像の供給先を選択する。選択部410は、イントラ符号化された画像を復号する場合、フレームメモリ409から供給される参照画像をイントラ予測部411に供給する。また、選択部410は、インター符号化された画像を復号する場合、フレームメモリ409から供給される参照画像を動き予測・補償部412に供給する。
イントラ予測部411には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部402から適宜供給される。イントラ予測部411は、図10のイントラ予測部314において用いられたイントラ予測モードで、フレームメモリ409から取得した参照画像を用いてイントラ予測を行い、予測画像を生成する。つまり、イントラ予測部411は、図10のイントラ予測部314と同様に、AVC符号化方式において規定されるモード以外の任意のモードでこのイントラ予測を行うこともできる。
イントラ予測部411は、生成した予測画像を選択部413に供給する。
動き予測・補償部412は、ヘッダ情報を復号して得られた情報(最適モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等)を可逆復号部402から取得する。
動き予測・補償部412は、図10の動き予測・補償部315において用いられたインター予測モードで、フレームメモリ409から取得した参照画像を用いてインター予測を行い、予測画像を生成する。つまり、動き予測・補償部412は、図10の動き予測・補償部315と同様に、AVC符号化方式において規定されるモード以外の任意のモードでこのイントラ予測を行うこともできる。
動き予測・補償部412は、動き予測・補償部212の場合と同様に、生成した予測画像を選択部413に供給する。
選択部413は、演算部405に供給する予測画像の供給元を選択する。つまり、選択部413は、動き予測・補償部412またはイントラ予測部411により生成された予測画像を演算部405に供給する。
割り当て制御部421は、可逆復号部402において行われる逆2値化において、予測動きベクトル選択情報の2値データを正しく逆2値化するために、画像符号化装置300の場合と同様の、ビット系列の割り当て制御を行う。
[可逆復号部および割り当て制御部]
図20は、図19の可逆復号部402および割り当て制御部421の主な構成例を示すブロック図である。
図20に示されるように、可逆復号部402は、エントロピ復号部431、逆2値化部432、テーブル記憶部433、逆2値化部434、予測動きベクトル選択部435、動きベクトル算出部436、および動きベクトル記憶部437を有する。
また、割り当て制御部421は、距離算出部441およびテーブル選択部442を有する。
エントロピ復号部431は、蓄積バッファ401から供給されるコードストリームを復号し、2値データを逆2値化部432および逆2値化部434に供給する。
逆2値化部432は、量子化された係数データ、最適モード情報、フィルタ情報、差分動きベクトル、距離閾値dPOC_th等の、画像符号化装置300から供給された各種情報の2値データを逆2値化する。逆2値化部432は、得られた係数データを逆量子化部403に供給する。また、逆2値化部432は、得られた最適モード情報をイントラ予測部411若しくは動き予測・補償部412に供給する。さらに、逆2値化部432は、得られたフィルタ情報をループフィルタ406に供給する。また、逆2値化部432は、得られた差分動きベクトルを動きベクトル算出部436に供給する。さらに、逆2値化部432は、得られた距離閾値dPOC_thを割り当て制御部421のテーブル選択部442に供給する。
テーブル記憶部433は、例えば、図15に示されるような、画像符号化装置300のテーブル記憶部334が記憶するテーブル情報と同様の、予測動きベクトル選択情報に対するビット系列の割り当てパターンを示すテーブル情報を記憶する。テーブル記憶部433は、テーブル記憶部334の場合と同様に、互いに異なる割り当てパターンの複数のテーブル情報(例えばS1、S2等)を記憶する。このテーブル情報は、テーブル記憶部334の場合と同様に、1つにまとめられていてもよい。
逆2値化部434は、テーブル記憶部433に記憶されている、割り当て制御部421のテーブル選択部442により選択されたテーブル情報Snを参照し、その割り当てパターンに従って、エントロピ復号部431から供給される予測動きベクトル選択情報の2値データを逆2値化する。逆2値化部434は、逆2値化して得られた予測動きベクトル選択情報を予測動きベクトル選択部435に供給する。
予測動きベクトル選択部435は、動きベクトル記憶部437が記憶する当該PUの周辺の動きベクトル(周辺動きベクトル)を予測動きベクトル候補として取得する。予測動きベクトル選択部435は、その中から、逆2値化部434から供給された予測動きベクトル選択情報が示す予測動きベクトル候補を、予測動きベクトルとして選択する。予測動きベクトル選択部435は、選択した予測動きベクトルを動きベクトル算出部436に供給する。
動きベクトル算出部436は、逆2値化部432から供給される差分動きベクトルに、予測動きベクトル選択部435から供給される予測動きベクトルを加算することにより、当該PUの動きベクトルを算出する。動きベクトル算出部436は、算出した動きベクトルを動き予測・補償部412に供給する。また、動きベクトル算出部436は、算出した動きベクトルを動きベクトル記憶部437にも供給し、記憶させる。
動きベクトル記憶部437に記憶された動きベクトルは、当該PUより時間的に後に処理される領域に対する処理において、周辺動きベクトル(予測動きベクトル候補)として使用される。
割り当て制御部421の距離算出部441は、各ピクチャのPOCをカウントし、当該ピクチャとアンカーピクチャのPOCの差dPOCを算出する。距離算出部441は、その差dPOCをテーブル選択部442に供給する。
テーブル選択部442は、距離算出部441から供給される差dPOCと、逆2値化部432から供給された、符号化の際に使用された距離閾値dPOC_thとを比較し、その比較結果に応じてテーブル(ビット系列の割り当てパターン)Snをを選択する。テーブル選択部442は、その選択結果Snを可逆符号化部306の逆2値化部434に供給する。
このように、割り当て制御部421が、当該ピクチャとアンカーピクチャの表示順上の距離(dPOC)に応じてビット系列の割り当てを適切に制御することで、可逆復号部402は、符号化時と同様のビット系列の割り当てを再現することができ、画像符号化装置300から供給される符号化データを正しく復号することができる。つまり、画像復号装置400は、符号化効率を向上させることができる。
[復号処理の流れ]
次に、以上のような画像復号装置400により実行される各処理の流れについて説明する。最初に、図21のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS401において、蓄積バッファ401は、伝送されてきた符号化データを蓄積する。ステップS402において、可逆復号部402は、蓄積バッファ401から供給される符号化データ(画像符号化装置300により画像データが符号化されて得られた符号化データ)を復号する。
ステップS403において、逆量子化部403は、可逆復号部402により復号されて得られた、量子化された直交変換係数を、図10の量子化部305による量子化処理に対応する方法で逆量子化する。ステップS404において逆直交変換部404は逆量子化部403により逆量子化されて得られた直交変換係数を、図10の直交変換部304による直交変換処理に対応する方法で逆直交変換する。これにより図10の直交変換部304の入力(演算部303の出力)に対応する差分情報が復号されたことになる。
ステップS405において、イントラ予測部411および動き予測・補償部412は、予測処理を行い、予測画像を生成する。
ステップS406において、選択部413は、ステップS405の処理により生成された予測画像を選択する。すなわち、選択部413には、イントラ予測部411により生成された予測画像、若しくは、動き予測・補償部412により生成された予測画像が供給される。選択部413は、その予測画像が供給された側を選択し、その予測画像を演算部405に供給する。
ステップS407において、演算部405は、ステップS404の処理により得られた差分情報に、ステップS406において選択された予測画像を加算する。これにより元の画像データが復号される。
ステップS408において、ループフィルタ406は、ステップS407の処理により得られた復号画像を適宜フィルタリングする。
ステップS409において、画面並べ替えバッファ407は、ステップS408において適宜フィルタリングされた復号画像のフレームの並べ替えを行う。すなわち、画像符号化装置300の画面並べ替えバッファ302(図10)により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS410において、D/A変換部408は、ステップS409においてフレームが並べ替えられた復号画像データをD/A変換する。この復号画像データが図示せぬディスプレイに出力され、その画像が表示される。
ステップS411において、フレームメモリ409は、ステップS408において適宜フィルタリングされた復号画像を記憶する。
ステップS411の処理が終了すると、フレームメモリ409は、復号処理を終了する。
[可逆復号処理の流れ]
次に、図22のフローチャートを参照して、図21のステップS402において実行される可逆復号処理の流れの例を説明する。
可逆復号処理が開始されると、可逆復号部402および割り当て制御部421は、ステップS421において、インター符号化された領域について、インター予測モード情報を復号して逆2値化する。
エントロピ復号部431および逆2値化部432は、ステップS422において、イントラ符号化された領域について、イントラ予測モード情報を復号して逆2値化し、ステップS423において、フィルタ情報を復号して逆2値化し、ステップS424において、係数データを復号して逆2値化する。
ステップS424の処理が終了すると、逆2値化部432は、可逆復号処理を終了し、処理を図21のステップS402に戻し、ステップS403に処理を進める。
[インター予測モード情報復号処理の流れ]
次に、図23のフローチャートを参照して、図22のステップS421において実行されるインター予測モード情報復号処理の流れの例を説明する。
インター予測モード情報復号処理が開始されると、エントロピ復号部431および逆2値化部432は、ステップS431において、SPSから距離閾値dPOC_thの符号化データを抽出し、それを復号して逆2値化する。
ステップS432において、割り当て制御部421の距離算出部441は、当該ピクチャとアンカーピクチャとの距離dPOCを求める。
ステップS433において、割り当て制御部421のテーブル選択部442は、ステップS432において算出された当該ピクチャとアンカーピクチャとの距離dPOCと、ステップS431において得られた閾値距離dPOC_thとを比較し、それらの大小関係に応じて、逆2値化に利用するテーブル情報Snを選択する。
ステップS434において、エントロピ復号部431は、予測動きベクトル選択情報を復号する。
ステップS435において、逆2値化部434は、テーブル記憶部433が記憶する、ステップS433において選択されたテーブルを参照し、そのビット系列割り当てパターンSnに従って、ステップS434において得られた予測動きベクトル選択情報の2値データを逆2値化する(ビット系列を、そのビット系列に対応する動きベクトルを示す情報に変換する)。
ステップS436において、予測動きベクトル選択部435は、動きベクトル記憶部437に記憶されている周辺動きベクトルを予測動きベクトル候補として取得する。
ステップS437において、予測動きベクトル選択部435は、ステップS435において逆2値化されて得られた予測動きベクトル選択情報により指定される動きベクトルを、ステップS436において取得された予測動きベクトル候補の中から選択し、それを予測動きベクトルとする。
ステップS438において、エントロピ復号部431および逆2値化部432は、差分動きベクトルの符号化データを復号し、得られた2値データを逆2値化し、差分動きベクトルを得る。
ステップS439において、動きベクトル算出部436は、ステップS438の処理により得られた差分動きベクトルに、ステップS437において選択された予測動きベクトルを加算し、当該PUの動きベクトルを求める。
ステップS440において、動きベクトル記憶部437は、ステップS439の処理により得られた当該PUの動きベクトルを記憶する。
ステップS441において、エントロピ復号部431および逆2値化部432は、その他の最適モード情報の符号化データを復号し、その2値データを逆2値化し、その他の最適モード情報を得る。
ステップS441の処理が終了すると、逆2値化部432は、インター予測モード情報復号処理を終了し、処理を図22のステップS421に戻し、処理をステップS422に進める。
このように、各処理を行うことにより、可逆復号部402は、符号化時と同様のビット系列の割り当てを再現することができ、画像符号化装置300から供給される符号化データを正しく復号することができる。つまり、画像復号装置400は、符号化効率を向上させることができる。
[その他の例]
図15において、ビット系列の割り当てパターンの例を説明したが、ビット系列の割り当て方法は、これ以外であってもよい。例えば、距離dPOCが距離閾値dPOC_th以下である場合(若しくは、距離dPOCが距離閾値dPOC_thより小さい場合)、図15のS2の代わりに、図24に示されるテーブル情報のS3が選択されるようにしてもよい。
S3の場合、S1と比較して、予測動きベクトルがMV_Tmp(temporal_pmv)である場合に割り当てられるビット系列と、予測動きベクトルがMV_A,MV_B、およびMV_Cの中央値(Median)(spatial_pmv)である場合に割り当てられるビット系列とが入れ替えられている。
もちろん、これ以外の割り当てパターンが用意されるようにしてもよい。
また、図15においては、ビット系列の値として指数ゴロムの値を用いているが、ビット系列の値は、互いに識別することができるものであれば任意である。例えば、図25に示されるテーブル情報の例のように、ユナリーコードを用いるようにしてもよい。
以上においては、距離閾値dPOC_thが可変であるように説明したが、この距離閾値dPOC_thを予め定められる固定値としてもよい。例えば、画像符号化装置300と画像復号装置400がこの固定値の距離閾値dPOC_thを共有するようにしてもよい。その場合、この距離閾値dPOC_thの授受は省略される。また、符号化データを伝送する前に、画像符号化装置300が、固定値の距離閾値dPOC_thを画像復号装置400に供給するようにしてもよい。さらに、符号化が行われる前に、画像復号装置400が、固定値の距離閾値dPOC_thを画像符号化装置300に供給するようにしてもよい。また、画像符号化装置300および画像復号装置400以外の装置が、画像符号化装置300および画像復号装置400に対して固定値の距離閾値dPOC_thを供給するようにしてもよい。
また、距離閾値dPOC_thを複数設けるようにしてもよい。その場合、テーブル情報(符号系列割り当てパターンSn)が3つ以上用意され、距離dPOCと距離閾値dPOC_thとの大小関係に応じて、適切なパターンが選択されるようにする。
なお、距離閾値dPOC_thは、SPS以外にも、ストリームの任意の位置に格納することができる。例えば、ピクチャパラメータセット(PPS(Picture Parameter Set))やスライスヘッダに格納されるようにしてもよい。また、例えば、SEI(Suplemental Enhancement Information)等に格納されるようにしてもよい。
さらに、最適モード情報が、符号化データとは別に復号側に伝送されるようにしてもよい。
また、距離閾値dPOC_thは任意の処理単位毎に変更することができる。例えば、ピクチャ単位で変更することができるようにしてもよいし、スライス単位で変更することができるようにしてもよいし、CU単位で変更することができるようにしてもよいし、それ以外であってもよい。
<2.第2の実施の形態>
[可逆符号化部および割り当て制御部]
なお、以上においては、当該ピクチャとアンカーピクチャとの距離dPOCに応じてビット系列の割り当てパターンを制御するように説明したが、これに限らず、当該PUの周辺の領域の動きベクトルである周辺動きベクトル同士の類似度に基づいて、ビット系列の割り当てパターンを制御するようにしてもよい。
図26は、その場合の可逆符号化部306および割り当て制御部321の主な構成例を示すブロック図である。
図26に示される例の場合も、可逆符号化部306は、図14を参照して説明した例の場合と基本的に同様の構成を有する。
ただし、割り当て制御部321は、この場合、類似度閾値取得部541、類似度算出部542、およびテーブル選択部543を有する。
類似度閾値取得部541は、距離閾値dPOC_thの場合と同様に、外部から類似度閾値MV_thを取得する。この類似度閾値MV_thは、割り当て制御部321が、周辺動きベクトル同士の類似度に応じて、ビット系列の割り当てパターンを制御するための閾値である。
この類似度閾値MV_thも、距離閾値dPOC_thの場合と同様に、どのように設定されるようにしてもよい。類似度閾値取得部541は、何らかの方法で決定された類似度閾値MV_thを外部から取得すると、それをテーブル選択部543に供給し、テーブル選択(割り当てパターンの選択)に利用させる。また、類似度閾値取得部541は、取得した類似度閾値MV_thを可逆符号化部306の2値化部336にも供給し、復号側に提供させる。
類似度算出部542は、動きベクトル記憶部331から、当該PUの周辺の領域の動きベクトルである周辺動きベクトルを複数取得し、その周辺動きベクトル同士を比較し、その類似度を算出する。なお、類似度を算出には、任意の周辺動きベクトルが用いられるようにしてよい。類似度算出部542は、その算出した類似度をテーブル選択部543に供給する。
テーブル選択部543は、類似度算出部542から供給される類似度と、類似度閾値取得部541から供給される類似度閾値MV_thとを比較し、その比較結果に応じてテーブル(ビット系列の割り当てパターン)Snをを選択する。
図27は当該領域の右上の周辺動きベクトル(MV_TR)と左下の周辺動きベクトル((MV_BL)が類似している例を示している。この場合、当該領域xの動きベクトルもこれらの周辺動きベクトルに類似することが期待されるため、テーブル選択部543は、図15の例の場合、S1を選択する。
これに対して図28は、右上の周辺動きベクトル(MV_TR)と左下の周辺動きベクトル(MV_BL)が類似していない例を示している。この場合、当該領域xの動きベクトルは、周辺動きベクトルと類似するとは限らないと判定されるため、テーブル選択部543は、図15の例の場合、S2を選択する。
なお、領域Cおよび領域Eが符号化済みでない場合、若しくはインター予測ブロックではない場合も考えられる。そこで、類似度の算出に使用する右上の周辺動きベクトルと左下の周辺動きベクトルは、図29乃至図31に示されるように、他の領域の周辺動きベクトルとしてもよい。
例えば、周辺動きベクトルMV_Eを使用できない場合、図29に示されるように、領域Aの動きベクトルMV_Aと領域Cの動きベクトルMV_Cの類似度が算出されるようにしてもよい。また、例えば、周辺動きベクトルMV_Cを使用できない場合、図30に示されるように、領域Eの動きベクトルMV_Eと領域Bの動きベクトルMV_Bの類似度が算出されるようにしてもよい。さらに、例えば、周辺動きベクトルMV_Eおよび周辺動きベクトルMV_Cを使用できない場合、図31に示されるように、領域Aの動きベクトルMV_Aと領域Bの動きベクトルMV_Bの類似度が算出されるようにしてもよい。もちろん、これら以外の周辺動きベクトルが用いられるようにしてもよい。このようにどのベクトルを代用するかは、予め符号化側と復号側で共有するようにしてもよいし、どのベクトルを用いたかを示す情報を授受させるようにしてもよい。
なお、右上の周辺動きベクトル(MV_TR)と左下の周辺動きベクトル(MV_BL)の類似度はベクトル差分の絶対値|MV_TR-MV_BL|で計算される。これが類似度閾値MVthよりも大きい場合、temporal_pmvを使う可能性が高いためS2のビット系列が選択される。
図26に戻り、テーブル選択部543は、その選択結果Snを可逆符号化部306の2値化部335に供給する。
このように、割り当て制御部321は、周辺動きベクトルの類似度に応じてビット系列の割り当てを適切に制御することができる。つまり、この場合も、割り当て制御部321は、指定する頻度がより高い動きベクトルの選択情報に対して符号長がより短いビット系列を割り当てることができる。換言するに、割り当て制御部321は、指定する頻度がより低い動きベクトルの選択情報に対して符号長がより長いビット系列を割り当てることができる。したがって、可逆符号化部306は、予測動きベクトル選択情報(pmv_index)の符号量を低減させることができる。これにより、画像符号化装置300は、符号化効率を向上させることができる。
[インター予測モード情報符号化処理の流れ]
図32のフローチャートを参照して、この場合のインター予測モード情報符号化処理の流れの例を説明する。
この場合も、図18のフローチャートを参照して説明した距離閾値を用いる場合と基本的に同様の処理が行われる。
ただし、ステップS531において、類似度閾値取得部541は、距離閾値の代わりに類似度閾値MV_thを取得する。そして、ステップS532において、2値化部336およびエントロピ符号化部337は、ステップS531において取得された類似度閾値MV_thを2値化して符号化し、SPSに格納する。
ステップS533においては、ステップS333と同様の処理が行われる。ステップS534において、類似度算出部542は、周辺動きベクトルを複数取得する。ステップS535においては、ステップS335と同様の処理が行われる。
ステップS536において、類似度算出部542は、周辺動きベクトル間の類似度を算出する。
ステップS537において、テーブル選択部543は、類似度と類似度閾値MV_thとの大小関係に応じてテーブルを選択する。
ステップS538乃至ステップS542の各ステップにおいては、ステップS338乃至ステップS342の各ステップと同様の処理が行われる。
ステップS542の処理が終了すると、エントロピ符号化部337は、インター予測モード情報符号化処理を終了し、処理を図17のステップS324に戻し、ステップS325に処理を進める。
このように各処理を実行することにより、この場合も、可逆符号化部306は、予測動きベクトル選択情報(pmv_index)の符号量を低減させることができる。これにより、画像符号化装置300は、符号化効率を向上させることができる。
[可逆復号部および割り当て制御部]
次に、この場合の画像符号化装置300に対応する画像復号装置400について説明する。
図33は、この場合の画像復号装置400の可逆復号部402および割り当て制御部421の主な構成例を示すブロック図である。
この場合も、可逆復号部402は、図20の場合と同様の構成を有するが、割り当て制御部421は、類似度算出部641およびテーブル選択部642を有する。
エントロピ復号部431は、画像符号化装置300において使用された類似度閾値MV_thの符号化データを復号する。逆2値化部432は、得られた2値データを逆2値化し、得られた類似度閾値MV_thをテーブル選択部642に供給する。
類似度算出部641は、動きベクトル記憶部437に記憶されている周辺動きベクトルを複数取得し、それらの類似度を算出する。この類似度の算出方法は、類似度算出部542の場合と同様である。
類似度算出部641は、算出した類似度をテーブル選択部642に供給する。
テーブル選択部642は、類似度閾値MV_thと類似度を比較し、その大小関係に応じてテーブル(ビット系列の割り当てパターン)Snをを選択する。このテーブル選択方法は、テーブル選択部543の場合と同様である。
テーブル選択部642は、その選択結果Snを可逆復号部402の逆2値化部434に供給する。
このように、割り当て制御部421が、周辺動きベクトルの類似度に応じてビット系列の割り当てを適切に制御することで、可逆復号部402は、符号化時と同様のビット系列の割り当てを再現することができ、画像符号化装置300から供給される符号化データを正しく復号することができる。つまり、画像復号装置400は、符号化効率を向上させることができる。
[インター予測モード情報復号処理の流れ]
次に、図34のフローチャートを参照して、この場合のインター予測モード情報復号処理の流れの例を説明する。
この場合も基本的に図23の例の場合と同様の処理が行われる。
ただし、ステップS631において、エントロピ復号部431および逆2値化部432は、SPSから類似度閾値MV_thの符号化データを抽出し、それを復号して逆2値化する。
割り当て制御部421の類似度算出部641は、ステップ632において、動きベクトル記憶部437から周辺動きベクトルを複数取得し、ステップS633において、取得した周辺動きベクトル間の類似度を算出する。
ステップS634において、テーブル選択部642は、類似度と類似度閾値MV_thとの大小関係に応じてテーブルを選択する。
ステップS635乃至ステップS642の各ステップにおいて、ステップS434乃至ステップS441の各ステップと同様の処理が行われる。
ステップS642の処理が終了すると、逆2値化部432は、インター予測モード情報復号処理を終了し、処理を図22のステップS421に戻し、処理をステップS422に進める。
このように、各処理を行うことにより、可逆復号部402は、この場合も、符号化時と同様のビット系列の割り当てを再現することができ、画像符号化装置300から供給される符号化データを正しく復号することができる。つまり、画像復号装置400は、符号化効率を向上させることができる。
[その他の例]
距離閾値dPOC_thの場合と同様に、類似度閾値MV_thも予め定められる固定値としてもよい。また、類似度閾値MV_thを複数設けるようにしてもよい。さらに、類似度閾値MV_thも、距離閾値dPOC_thの場合と同様に、SPS以外にも、ストリームの任意の位置に格納することができる。また、類似度閾値MV_thも、距離閾値dPOC_thの場合と同様に、任意の処理単位毎に変更することができる。
<3.第3の実施の形態>
[可逆符号化部および割り当て制御部]
以上においては、距離閾値や類似度閾値等、パラメータの閾値を画像符号化装置300から画像復号装置400へ伝送し、画像復号装置400においてもその閾値を用いて画像符号化装置300と同様のテーブル選択を行うように説明したが、これに限らず、画像符号化装置300において選択されたテーブルを示す情報を、画像復号装置400に提供するようにしてもよい。この場合、画像復号装置400においては、その情報に基づいて、画像符号化装置300において選択されたテーブルと同じテーブルが選択される。
この場合、画像復号装置400は、画像符号化装置300のテーブル選択方法に依存せずに、画像符号化装置300と同じテーブルを選択することができる。
例えば、以下に説明するように、画像符号化装置300が、予測動きベクトルの選択結果のコスト関数値に基づいて、ビット系列の割り当てパターンを制御するようにしてもよい。
図35は、その場合の可逆符号化部306および割り当て制御部321の主な構成例を示すブロック図である。
この場合も可逆符号化部306は、上述した他の実施の形態と同様の構成を有するが、割り当て制御部321は、その可逆符号化部306の予測動きベクトルの選択結果についてコスト関数値を算出し、そのコスト関数値に基づいて、ビット系列の割り当てパターンを制御する。
割り当て制御部321は、コスト関数値算出部741、コスト関数値記憶部742、およびテーブル選択部743を有する。
コスト関数値算出部741は、予測動きベクトル選択部332から予測動きベクトル選択情報を取得し、その選択結果のコスト関数値をテーブル(Sn)選択用に算出する。コスト関数値算出部741は、算出したSn用コスト関数値をコスト関数値記憶部742に供給する。
コスト関数値記憶部742は、供給されたSn用コスト関数値を、テーブル記憶部334に記憶されるテーブル毎に集計し、記憶する。この集計結果は、現在の処理対象である当該PUより時間的に後に処理される領域に対するテーブル選択に使用される。
テーブル選択部743は、コスト関数値記憶部742に記憶されているテーブル毎のSn用コスト関数値の集計結果を取得し、その集計結果に基づいてテーブル(Sn)を選択し、その選択結果を2値化部335に供給する。
2値化部335は、テーブル記憶部334に記憶されている、テーブル選択部743により選択されたテーブル情報を参照し、予測動きベクトル選択情報を2値化する。その2値データは、エントロピ符号化部337に供給され、符号化される。
また、テーブル選択部743は、選択結果Snを2値化部336に供給する。つまり、テーブル選択部743によるテーブル選択結果Snは、2値化部336により2値化され、エントロピ符号化部337により符号化されて、画像復号装置400に供給される。
このように、割り当て制御部321は、予測動きベクトルの選択結果のコスト関数値に応じてビット系列の割り当てを適切に制御することができる。つまり、この場合も、割り当て制御部321は、指定する頻度がより高い動きベクトルの選択情報に対して符号長がより短いビット系列を割り当てることができる。換言するに、割り当て制御部321は、指定する頻度がより低い動きベクトルの選択情報に対して符号長がより長いビット系列を割り当てることができる。したがって、可逆符号化部306は、予測動きベクトル選択情報(pmv_index)の符号量を低減させることができる。これにより、画像符号化装置300は、符号化効率を向上させることができる。
[インター予測モード情報符号化処理の流れ]
図36のフローチャートを参照して、この場合のインター予測モード情報符号化処理の流れの例を説明する。
この場合も、図18のフローチャートを参照して説明した距離閾値を用いる場合と基本的に同様の処理が行われる。
ステップS731乃至ステップS733の各ステップにおいては、ステップS333乃至ステップS335の各ステップと同様の処理が行われる。
ステップS734において、テーブル選択部743は、コスト関数値記憶部742に記憶されている過去の領域のコスト関数値(のテーブル毎の集計結果)に基づいて、テーブルを選択する。
ステップS735において、2値化部336およびエントロピ符号化部337は、ステップS734において得られたテーブル選択情報(テーブル選択結果)を2値化して符号化し、SPSに格納する。
ステップS736乃至ステップS739の各ステップにおいては、ステップS338乃至ステップS341の各ステップと同様の処理が行われる。
ステップS740において、コスト関数値算出部741は、予測動きベクトル選択情報について、各テーブルに対応するコスト関数値を算出する。ステップS741において、コスト関数値記憶部742は、ステップS740において算出されたコスト関数値をテーブル毎に集計し、記憶する。
ステップS742においては、ステップS342と同様の処理が行われる。ステップS742の処理が終了すると、エントロピ符号化部337は、インター予測モード情報符号化処理を終了し、処理を図17のステップS324に戻し、ステップS325に処理を進める。
このように各処理を実行することにより、この場合も、可逆符号化部306は、予測動きベクトル選択情報(pmv_index)の符号量を低減させることができる。これにより、画像符号化装置300は、符号化効率を向上させることができる。
[可逆復号部および割り当て制御部]
次に、この場合の画像符号化装置300に対応する画像復号装置400について説明する。
図37は、この場合の画像復号装置400の可逆復号部402の主な構成例を示すブロック図である。この場合、画像復号装置400は、画像符号化装置300から供給されるテーブル選択情報Snを用いてテーブルを選択するので、割り当て制御部421は、省略される。
図37に示されるように、この場合の可逆復号部402は、図20の例の場合と比較して、逆2値化部432の代わりに逆2値化部832を有し、逆2値化部434の代わりに逆2値化部834を有する。
逆2値化部832は、逆2値化部432の場合と同様に、係数データ、最適モード情報、フィルタ情報、および差分動きベクトル等の2値データを逆2値化するとともに、テーブル選択情報Snの2値データを逆2値化する。逆2値化部832は、その逆2値化により得られたテーブル選択情報Snを逆2値化部834に供給する。
逆2値化部834は、テーブル記憶部433に記憶される、逆2値化部832から供給されるテーブル選択情報Snにより示されるテーブル情報を参照し、エントロピ復号部431から供給される予測動きベクトル選択情報が2値化された2値データを逆2値化する。
逆2値化部834は、その逆2値化により得られた予測動きベクトル選択情報を予測動きベクトル選択部435に供給する。
このように、可逆復号部402は、画像符号化装置300から供給される、画像符号化装置300におけるテーブル情報の選択結果を用いて予測動きベクトル選択情報の2値データを適切に逆2値化する。つまり、可逆復号部402は、この場合も、符号化時と同様のビット系列の割り当てを再現することができ、画像符号化装置300から供給される符号化データを正しく復号することができる。つまり、画像復号装置400は、符号化効率を向上させることができる。
[インター予測モード情報復号処理の流れ]
次に、図38のフローチャートを参照して、この場合のインター予測モード情報復号処理の流れの例を説明する。
この場合も基本的に図23の例の場合と同様の処理が行われる。
ただし、ステップS831において、エントロピ復号部431および逆2値化部832は、SPSからテーブル選択情報Snの符号化データを抽出し、それを復号して逆2値化する。つまり、この時点でテーブルが選択されたことになる。
ステップS832乃至ステップS839の各ステップにおいては、ステップS434乃至ステップS441の各ステップと同様の処理が行われる。
ステップS839の処理が終了すると、逆2値化部832は、インター予測モード情報復号処理を終了し、処理を図22のステップS421に戻し、処理をステップS422に進める。
このように、各処理を行うことにより、可逆復号部402は、この場合も、符号化時と同様のビット系列の割り当てを再現することができ、画像符号化装置300から供給される符号化データを正しく復号することができる。つまり、画像復号装置400は、符号化効率を向上させることができる。
[その他の例]
以上においては、過去に処理された領域の予測動きベクトル選択情報に基づいてコスト関数値が算出され、そのコスト関数値を用いて現在の処理対象の領域に対するテーブル情報が選択されるように説明したが、これ以外にも、現在の処理対象の領域の予測動きベクトル選択情報のコスト関数値を用いて、現在の処理対象の領域に対するテーブル情報が選択されるようにしてもよい。
また、テーブル選択情報SnをSPSに格納するように説明したが、このテーブル選択情報Snは、距離閾値dPOC_thの場合と同様に、SPS以外にも、ストリームの任意の位置に格納されるようにすることができる。
なお、このテーブル選択情報Snを画像符号化装置300から画像復号装置400に伝送させる方法は、上述した画像符号化装置300が距離閾値dPOC_thを用いてテーブルを選択する場合や、画像符号化装置300が類似度閾値MV_thを用いてテーブルを選択する場合にも適用することができる。ただし、いずれの場合も画像復号装置400は、図37を参照して説明したように、画像符号化装置300から供給されるテーブル選択情報Snに基づいてテーブルを選択する。
以上のいずれの場合においても、テーブルの選択の切り替えは、例えば、PU(若しくはそのパーティション)毎、スライス毎、ピクチャ毎、若しくはシーケンス毎等、任意の処理単位で行うことができる。
<4.第4の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図39に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
図39において、パーソナルコンピュータ900のCPU(Central Processing Unit)901は、ROM(Read Only Memory)902に記憶されているプログラム、または記憶部913からRAM(Random Access Memory)903にロードされたプログラムに従って各種の処理を実行する。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU901、ROM902、およびRAM903は、バス904を介して相互に接続されている。このバス904にはまた、入出力インタフェース910も接続されている。
入出力インタフェース910には、キーボード、マウスなどよりなる入力部911、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部912、ハードディスクなどより構成される記憶部913、モデムなどより構成される通信部914が接続されている。通信部914は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース910にはまた、必要に応じてドライブ915が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア921が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部913にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図39に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア921により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM902や、記憶部913に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、上述した画像符号化装置や画像復号装置は、任意の電子機器に適用することができる。以下にその例について説明する。
<5.第5の実施の形態>
[テレビジョン受像機]
図40は、本発明を適用した画像復号装置400を用いるテレビジョン受像機の主な構成例を示すブロック図である。
図40に示されるテレビジョン受像機1000は、地上波チューナ1013、ビデオデコーダ1015、映像信号処理回路1018、グラフィック生成回路1019、パネル駆動回路1020、および表示パネル1021を有する。
地上波チューナ1013は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ1015に供給する。ビデオデコーダ1015は、地上波チューナ1013から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路1018に供給する。
映像信号処理回路1018は、ビデオデコーダ1015から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路1019に供給する。
グラフィック生成回路1019は、表示パネル1021に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路1020に供給する。また、グラフィック生成回路1019は、項目の選択などにユーザにより利用される画面を表示するための映像データ(グラフィック)を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路1020に供給するといった処理も適宜行う。
パネル駆動回路1020は、グラフィック生成回路1019から供給されたデータに基づいて表示パネル1021を駆動し、番組の映像や上述した各種の画面を表示パネル1021に表示させる。
表示パネル1021はLCD(Liquid Crystal Display)などよりなり、パネル駆動回路1020による制御に従って番組の映像などを表示させる。
また、テレビジョン受像機1000は、音声A/D(Analog/Digital)変換回路1014、音声信号処理回路1022、エコーキャンセル/音声合成回路1023、音声増幅回路1024、およびスピーカ1025も有する。
地上波チューナ1013は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ1013は、取得した音声信号を音声A/D変換回路1014に供給する。
音声A/D変換回路1014は、地上波チューナ1013から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路1022に供給する。
音声信号処理回路1022は、音声A/D変換回路1014から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル/音声合成回路1023に供給する。
エコーキャンセル/音声合成回路1023は、音声信号処理回路1022から供給された音声データを音声増幅回路1024に供給する。
音声増幅回路1024は、エコーキャンセル/音声合成回路1023から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ1025から出力させる。
さらに、テレビジョン受像機1000は、デジタルチューナ1016およびMPEGデコーダ1017も有する。
デジタルチューナ1016は、デジタル放送(地上デジタル放送、BS(Broadcasting Satellite)/CS(Communications Satellite)デジタル放送)の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS(Moving Picture Experts Group-Transport Stream)を取得し、それをMPEGデコーダ1017に供給する。
MPEGデコーダ1017は、デジタルチューナ1016から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象(視聴対象)になっている番組のデータを含むストリームを抽出する。MPEGデコーダ1017は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路1022に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路1018に供給する。また、MPEGデコーダ1017は、MPEG-TSから抽出したEPG(Electronic Program Guide)データを図示せぬ経路を介してCPU1032に供給する。
テレビジョン受像機1000は、このように映像パケットをデコードするMPEGデコーダ1017として、上述した画像復号装置400を用いる。なお、放送局等より送信されるMPEG-TSは、画像符号化装置300によって符号化されている。
MPEGデコーダ1017は、画像復号装置400の場合と同様に、所定のパラメータに応じてビット系列の割り当てを適切に制御する。したがって、MPEGデコーダ1017は、符号化時と同様のビット系列の割り当てを再現することができ、符号化側から供給される符号化データを正しく復号することができる。これにより、MPEGデコーダ1017は、符号化データの符号化効率を向上させることができる。
MPEGデコーダ1017から供給された映像データは、ビデオデコーダ1015から供給された映像データの場合と同様に、映像信号処理回路1018において所定の処理が施され、グラフィック生成回路1019において、生成された映像データ等が適宜重畳され、パネル駆動回路1020を介して表示パネル1021に供給され、その画像が表示される。
MPEGデコーダ1017から供給された音声データは、音声A/D変換回路1014から供給された音声データの場合と同様に、音声信号処理回路1022において所定の処理が施され、エコーキャンセル/音声合成回路1023を介して音声増幅回路1024に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ1025から出力される。
また、テレビジョン受像機1000は、マイクロホン1026、およびA/D変換回路1027も有する。
A/D変換回路1027は、音声会話用のものとしてテレビジョン受像機1000に設けられるマイクロホン1026により取り込まれたユーザの音声の信号を受信し、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル/音声合成回路1023に供給する。
エコーキャンセル/音声合成回路1023は、テレビジョン受像機1000のユーザ(ユーザA)の音声のデータがA/D変換回路1027から供給されている場合、ユーザAの音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路1024を介してスピーカ1025より出力させる。
さらに、テレビジョン受像機1000は、音声コーデック1028、内部バス1029、SDRAM(Synchronous Dynamic Random Access Memory)1030、フラッシュメモリ1031、CPU1032、USB(Universal Serial Bus) I/F1033、およびネットワークI/F1034も有する。
A/D変換回路1027は、音声会話用のものとしてテレビジョン受像機1000に設けられるマイクロホン1026により取り込まれたユーザの音声の信号を受信し、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック1028に供給する。
音声コーデック1028は、A/D変換回路1027から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス1029を介してネットワークI/F1034に供給する。
ネットワークI/F1034は、ネットワーク端子1035に装着されたケーブルを介してネットワークに接続される。ネットワークI/F1034は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック1028から供給された音声データを送信する。また、ネットワークI/F1034は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子1035を介して受信し、それを、内部バス1029を介して音声コーデック1028に供給する。
音声コーデック1028は、ネットワークI/F1034から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル/音声合成回路1023に供給する。
エコーキャンセル/音声合成回路1023は、音声コーデック1028から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路1024を介してスピーカ1025より出力させる。
SDRAM1030は、CPU1032が処理を行う上で必要な各種のデータを記憶する。
フラッシュメモリ1031は、CPU1032により実行されるプログラムを記憶する。フラッシュメモリ1031に記憶されているプログラムは、テレビジョン受像機1000の起動時などの所定のタイミングでCPU1032により読み出される。フラッシュメモリ1031には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
例えば、フラッシュメモリ1031には、CPU1032の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ1031は、例えばCPU1032の制御により、そのMPEG-TSを、内部バス1029を介してMPEGデコーダ1017に供給する。
MPEGデコーダ1017は、デジタルチューナ1016から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機1000は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ1017を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
また、テレビジョン受像機1000は、リモートコントローラ1051から送信される赤外線信号を受光する受光部1037も有する。
受光部1037は、リモートコントローラ1051からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU1032に出力する。
CPU1032は、フラッシュメモリ1031に記憶されているプログラムを実行し、受光部1037から供給される制御コードなどに応じてテレビジョン受像機1000の全体の動作を制御する。CPU1032とテレビジョン受像機1000の各部は、図示せぬ経路を介して接続されている。
USB I/F1033は、USB端子1036に装着されたUSBケーブルを介して接続される、テレビジョン受像機1000の外部の機器との間でデータの送受信を行う。ネットワークI/F1034は、ネットワーク端子1035に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
テレビジョン受像機1000は、MPEGデコーダ1017として画像復号装置400を用いることにより、アンテナを介して受信する放送波信号や、ネットワークを介して取得するコンテンツデータの符号化効率を向上させることができる。
<6.第6の実施の形態>
[携帯電話機]
図41は、本発明を適用した画像符号化装置300および画像復号装置400を用いる携帯電話機の主な構成例を示すブロック図である。
図41に示される携帯電話機1100は、各部を統括的に制御するようになされた主制御部1150、電源回路部1151、操作入力制御部1152、画像エンコーダ1153、カメラI/F部1154、LCD制御部1155、画像デコーダ1156、多重分離部1157、記録再生部1162、変復調回路部1158、および音声コーデック1159を有する。これらは、バス1160を介して互いに接続されている。
また、携帯電話機1100は、操作キー1119、CCD(Charge Coupled Devices)カメラ1116、液晶ディスプレイ1118、記憶部1123、送受信回路部1163、アンテナ1114、マイクロホン(マイク)1121、およびスピーカ1117を有する。
電源回路部1151は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機1100を動作可能な状態に起動する。
携帯電話機1100は、CPU、ROMおよびRAM等でなる主制御部1150の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
例えば、音声通話モードにおいて、携帯電話機1100は、マイクロホン(マイク)1121で集音した音声信号を、音声コーデック1159によってデジタル音声データに変換し、これを変復調回路部1158でスペクトラム拡散処理し、送受信回路部1163でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1100は、その変換処理により得られた送信用信号を、アンテナ1114を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(音声信号)は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
また、例えば、音声通話モードにおいて、携帯電話機1100は、アンテナ1114で受信した受信信号を送受信回路部1163で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部1158でスペクトラム逆拡散処理し、音声コーデック1159によってアナログ音声信号に変換する。携帯電話機1100は、その変換して得られたアナログ音声信号をスピーカ1117から出力する。
更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機1100は、操作キー1119の操作によって入力された電子メールのテキストデータを、操作入力制御部1152において受け付ける。携帯電話機1100は、そのテキストデータを主制御部1150において処理し、LCD制御部1155を介して、画像として液晶ディスプレイ1118に表示させる。
また、携帯電話機1100は、主制御部1150において、操作入力制御部1152が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機1100は、その電子メールデータを、変復調回路部1158でスペクトラム拡散処理し、送受信回路部1163でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1100は、その変換処理により得られた送信用信号を、アンテナ1114を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(電子メール)は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機1100は、基地局から送信された信号を、アンテナ1114を介して送受信回路部1163で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機1100は、その受信信号を変復調回路部1158でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機1100は、復元された電子メールデータを、LCD制御部1155を介して液晶ディスプレイ1118に表示する。
なお、携帯電話機1100は、受信した電子メールデータを、記録再生部1162を介して、記憶部1123に記録する(記憶させる)ことも可能である。
この記憶部1123は、書き換え可能な任意の記憶媒体である。記憶部1123は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機1100は、撮像によりCCDカメラ1116で画像データを生成する。CCDカメラ1116は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。CCDカメラ1116は、その画像データを、カメラI/F部1154を介して、画像エンコーダ1153で符号化し、符号化画像データに変換する。
携帯電話機1100は、このような処理を行う画像エンコーダ1153として、上述した画像符号化装置300を用いる。画像エンコーダ1153は、画像符号化装置300の場合と同様に、所定のパラメータに応じてビット系列の割り当てを適切に制御する。つまり、画像エンコーダ1153は、指定する頻度がより高い動きベクトルの選択情報に対して符号長がより短いビット系列を割り当てることができる。これにより、画像エンコーダ1153は、符号化データの符号化効率を向上させることができる。
なお、携帯電話機1100は、このとき同時に、CCDカメラ1116で撮像中にマイクロホン(マイク)1121で集音した音声を、音声コーデック1159においてアナログデジタル変換し、さらに符号化する。
携帯電話機1100は、多重分離部1157において、画像エンコーダ1153から供給された符号化画像データと、音声コーデック1159から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機1100は、その結果得られる多重化データを、変復調回路部1158でスペクトラム拡散処理し、送受信回路部1163でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1100は、その変換処理により得られた送信用信号を、アンテナ1114を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(画像データ)は、ネットワーク等を介して、通信相手に供給される。
なお、画像データを送信しない場合、携帯電話機1100は、CCDカメラ1116で生成した画像データを、画像エンコーダ1153を介さずに、LCD制御部1155を介して液晶ディスプレイ1118に表示させることもできる。
また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機1100は、基地局から送信された信号を、アンテナ1114を介して送受信回路部1163で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機1100は、その受信信号を変復調回路部1158でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機1100は、多重分離部1157において、その多重化データを分離して、符号化画像データと音声データとに分ける。
携帯電話機1100は、画像デコーダ1156において符号化画像データをデコードすることにより、再生動画像データを生成し、これを、LCD制御部1155を介して液晶ディスプレイ1118に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ1118に表示される。
携帯電話機1100は、このような処理を行う画像デコーダ1156として、上述した画像復号装置400を用いる。つまり、画像デコーダ1156は、画像復号装置400の場合と同様に、所定のパラメータに応じてビット系列の割り当てを適切に制御する。したがって、画像デコーダ1156は、符号化時と同様のビット系列の割り当てを再現することができ、符号化側から供給される符号化データを正しく復号することができる。これにより、画像デコーダ1156は、符号化データの符号化効率を向上させることができる。
このとき、携帯電話機1100は、同時に、音声コーデック1159において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ1117より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
なお、電子メールの場合と同様に、携帯電話機1100は、受信した簡易ホームページ等にリンクされたデータを、記録再生部1162を介して、記憶部1123に記録する(記憶させる)ことも可能である。
また、携帯電話機1100は、主制御部1150において、撮像されてCCDカメラ1116で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
さらに、携帯電話機1100は、赤外線通信部1181で赤外線により外部の機器と通信することができる。
携帯電話機1100は、画像エンコーダ1153として画像符号化装置300を用いることにより、例えばCCDカメラ1116において生成された画像データを符号化して伝送する際に、その符号化データの符号化効率を向上させることができる。
また、携帯電話機1100は、画像デコーダ1156として画像復号装置400を用いることにより、例えば、簡易ホームページ等にリンクされた動画像ファイルのデータ(符号化データ)の符号化効率を向上させることができる。
なお、以上において、携帯電話機1100が、CCDカメラ1116を用いるように説明したが、このCCDカメラ1116の代わりに、CMOS(Complementary Metal Oxide Semiconductor)を用いたイメージセンサ(CMOSイメージセンサ)を用いるようにしてもよい。この場合も、携帯電話機1100は、CCDカメラ1116を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
また、以上においては携帯電話機1100として説明したが、例えば、PDA(Personal Digital Assistants)、スマートフォン、UMPC(Ultra Mobile Personal Computer)、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機1100と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機1100の場合と同様に、本発明を適用した画像符号化装置および画像復号装置を適用することができる。
<7.第7の実施の形態>
[ハードディスクレコーダ]
図42は、本発明を適用した画像符号化装置300および画像復号装置400を用いるハードディスクレコーダの主な構成例を示すブロック図である。
図42に示されるハードディスクレコーダ(HDDレコーダ)1200は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
ハードディスクレコーダ1200は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ1200は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
さらに、ハードディスクレコーダ1200は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ1260に供給し、モニタ1260の画面にその画像を表示させ、モニタ1260のスピーカよりその音声を出力させることができる。また、ハードディスクレコーダ1200は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ1260に供給し、モニタ1260の画面にその画像を表示させ、モニタ1260のスピーカよりその音声を出力させることもできる。
もちろん、この他の動作も可能である。
図42に示されるように、ハードディスクレコーダ1200は、受信部1221、復調部1222、デマルチプレクサ1223、オーディオデコーダ1224、ビデオデコーダ1225、およびレコーダ制御部1226を有する。ハードディスクレコーダ1200は、さらに、EPGデータメモリ1227、プログラムメモリ1228、ワークメモリ1229、ディスプレイコンバータ1230、OSD(On Screen Display)制御部1231、ディスプレイ制御部1232、記録再生部1233、D/Aコンバータ1234、および通信部1235を有する。
また、ディスプレイコンバータ1230は、ビデオエンコーダ1241を有する。記録再生部1233は、エンコーダ1251およびデコーダ1252を有する。
受信部1221は、リモートコントローラ(図示せず)からの赤外線信号を受信し、電気信号に変換してレコーダ制御部1226に出力する。レコーダ制御部1226は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ1228に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部1226は、このとき、ワークメモリ1229を必要に応じて使用する。
通信部1235は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部1235は、レコーダ制御部1226により制御され、チューナ(図示せず)と通信し、主にチューナに対して選局制御信号を出力する。
復調部1222は、チューナより供給された信号を、復調し、デマルチプレクサ1223に出力する。デマルチプレクサ1223は、復調部1222より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ1224、ビデオデコーダ1225、またはレコーダ制御部1226に出力する。
オーディオデコーダ1224は、入力されたオーディオデータをデコードし、記録再生部1233に出力する。ビデオデコーダ1225は、入力されたビデオデータをデコードし、ディスプレイコンバータ1230に出力する。レコーダ制御部1226は、入力されたEPGデータをEPGデータメモリ1227に供給し、記憶させる。
ディスプレイコンバータ1230は、ビデオデコーダ1225またはレコーダ制御部1226より供給されたビデオデータを、ビデオエンコーダ1241により、例えばNTSC(National Television Standards Committee)方式のビデオデータにエンコードし、記録再生部1233に出力する。また、ディスプレイコンバータ1230は、ビデオデコーダ1225またはレコーダ制御部1226より供給されるビデオデータの画面のサイズを、モニタ1260のサイズに対応するサイズに変換し、ビデオエンコーダ1241によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部1232に出力する。
ディスプレイ制御部1232は、レコーダ制御部1226の制御のもと、OSD(On Screen Display)制御部1231が出力したOSD信号を、ディスプレイコンバータ1230より入力されたビデオ信号に重畳し、モニタ1260のディスプレイに出力し、表示させる。
モニタ1260にはまた、オーディオデコーダ1224が出力したオーディオデータが、D/Aコンバータ1234によりアナログ信号に変換されて供給されている。モニタ1260は、このオーディオ信号を内蔵するスピーカから出力する。
記録再生部1233は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
記録再生部1233は、例えば、オーディオデコーダ1224より供給されるオーディオデータを、エンコーダ1251によりエンコードする。また、記録再生部1233は、ディスプレイコンバータ1230のビデオエンコーダ1241より供給されるビデオデータを、エンコーダ1251によりエンコードする。記録再生部1233は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部1233は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
記録再生部1233は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部1233は、デコーダ1252によりオーディオデータおよびビデオデータをデコードする。記録再生部1233は、復号したオーディオデータをD/A変換し、モニタ1260のスピーカに出力する。また、記録再生部1233は、復号したビデオデータをD/A変換し、モニタ1260のディスプレイに出力する。
レコーダ制御部1226は、受信部1221を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ1227から最新のEPGデータを読み出し、それをOSD制御部1231に供給する。OSD制御部1231は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部1232に出力する。ディスプレイ制御部1232は、OSD制御部1231より入力されたビデオデータをモニタ1260のディスプレイに出力し、表示させる。これにより、モニタ1260のディスプレイには、EPG(電子番組ガイド)が表示される。
また、ハードディスクレコーダ1200は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
通信部1235は、レコーダ制御部1226に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部1226に供給する。レコーダ制御部1226は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部1233に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部1226および記録再生部1233が、必要に応じて再エンコード等の処理を行うようにしてもよい。
また、レコーダ制御部1226は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ1230に供給する。ディスプレイコンバータ1230は、ビデオデコーダ1225から供給されるビデオデータと同様に、レコーダ制御部1226から供給されるビデオデータを処理し、ディスプレイ制御部1232を介してモニタ1260に供給し、その画像を表示させる。
また、この画像表示に合わせて、レコーダ制御部1226が、復号したオーディオデータを、D/Aコンバータ1234を介してモニタ1260に供給し、その音声をスピーカから出力させるようにしてもよい。
さらに、レコーダ制御部1226は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ1227に供給する。
以上のようなハードディスクレコーダ1200は、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダとして画像復号装置400を用いる。つまり、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダは、画像復号装置400の場合と同様に、所定のパラメータに応じてビット系列の割り当てを適切に制御する。したがって、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダは、符号化時と同様のビット系列の割り当てを再現することができる。これにより、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダは、符号化データの符号化効率を向上させることができる。
したがって、ハードディスクレコーダ1200は、例えば、チューナや通信部1235が受信するビデオデータ(符号化データ)や、記録再生部1233が再生するビデオデータ(符号化データ)の符号化効率を向上させることができる。
また、ハードディスクレコーダ1200は、エンコーダ1251として画像符号化装置300を用いる。したがって、エンコーダ1251は、画像符号化装置300の場合と同様に、所定のパラメータに応じてビット系列の割り当てを適切に制御する。つまり、エンコーダ1251は、指定する頻度がより高い動きベクトルの選択情報に対して符号長がより短いビット系列を割り当てることができる。これにより、エンコーダ1251は、符号化データの符号化効率を向上させることができる。
したがって、ハードディスクレコーダ1200は、例えば、ハードディスクに記録する符号化データの符号化効率を向上させることができる。
なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ1200について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ1200の場合と同様に、本発明を適用した画像符号化装置300および画像復号装置400を適用することができる。
<8.第8の実施の形態>
[カメラ]
図43は、本発明を適用した画像符号化装置および画像復号装置を用いるカメラの主な構成例を示すブロック図である。
図43に示されるカメラ1300は、被写体を撮像し、被写体の画像をLCD1316に表示させたり、それを画像データとして、記録メディア1333に記録したりする。
レンズブロック1311は、光(すなわち、被写体の映像)を、CCD/CMOS1312に入射させる。CCD/CMOS1312は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部1313に供給する。
カメラ信号処理部1313は、CCD/CMOS1312から供給された電気信号を、Y,Cr,Cbの色差信号に変換し、画像信号処理部1314に供給する。画像信号処理部1314は、コントローラ1321の制御の下、カメラ信号処理部1313から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ1341で符号化したりする。画像信号処理部1314は、画像信号を符号化して生成した符号化データを、デコーダ1315に供給する。さらに、画像信号処理部1314は、オンスクリーンディスプレイ(OSD)1320において生成された表示用データを取得し、それをデコーダ1315に供給する。
以上の処理において、カメラ信号処理部1313は、バス1317を介して接続されるDRAM(Dynamic Random Access Memory)1318を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM1318に保持させる。
デコーダ1315は、画像信号処理部1314から供給された符号化データを復号し、得られた画像データ(復号画像データ)をLCD1316に供給する。また、デコーダ1315は、画像信号処理部1314から供給された表示用データをLCD1316に供給する。LCD1316は、デコーダ1315から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
オンスクリーンディスプレイ1320は、コントローラ1321の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス1317を介して画像信号処理部1314に出力する。
コントローラ1321は、ユーザが操作部1322を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス1317を介して、画像信号処理部1314、DRAM1318、外部インタフェース1319、オンスクリーンディスプレイ1320、およびメディアドライブ1323等を制御する。FLASH ROM1324には、コントローラ1321が各種処理を実行する上で必要なプログラムやデータ等が格納される。
例えば、コントローラ1321は、画像信号処理部1314やデコーダ1315に代わって、DRAM1318に記憶されている画像データを符号化したり、DRAM1318に記憶されている符号化データを復号したりすることができる。このとき、コントローラ1321は、画像信号処理部1314やデコーダ1315の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部1314やデコーダ1315が対応していない方式により符号化・復号処理を行うようにしてもよい。
また、例えば、操作部1322から画像印刷の開始が指示された場合、コントローラ1321は、DRAM1318から画像データを読み出し、それを、バス1317を介して外部インタフェース1319に接続されるプリンタ1334に供給して印刷させる。
さらに、例えば、操作部1322から画像記録が指示された場合、コントローラ1321は、DRAM1318から符号化データを読み出し、それを、バス1317を介してメディアドライブ1323に装着される記録メディア1333に供給して記憶させる。
記録メディア1333は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア1333は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
また、メディアドライブ1323と記録メディア1333を一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
外部インタフェース1319は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ1334と接続される。また、外部インタフェース1319には、必要に応じてドライブ1331が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア1332が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM1324にインストールされる。
さらに、外部インタフェース1319は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ1321は、例えば、操作部1322からの指示に従って、DRAM1318から符号化データを読み出し、それを外部インタフェース1319から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ1321は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース1319を介して取得し、それをDRAM1318に保持させたり、画像信号処理部1314に供給したりすることができる。
以上のようなカメラ1300は、デコーダ1315として画像復号装置400を用いる。つまり、デコーダ1315は、画像復号装置400の場合と同様に、所定のパラメータに応じてビット系列の割り当てを適切に制御する。したがって、デコーダ1315は、符号化時と同様のビット系列の割り当てを再現することができ、符号化側から供給される符号化データを正しく復号することができる。これにより、デコーダ1315は、符号化データの符号化効率を向上させることができる。
したがって、カメラ1300は、例えば、CCD/CMOS1312において生成される画像データや、DRAM1318または記録メディア1333から読み出すビデオデータの符号化データや、ネットワークを介して取得するビデオデータの符号化データの符号化効率を向上させることができる。
また、カメラ1300は、エンコーダ1341として画像符号化装置300を用いる。エンコーダ1341は、画像符号化装置300の場合と同様に、所定のパラメータに応じてビット系列の割り当てを適切に制御する。つまり、エンコーダ1341は、指定する頻度がより高い動きベクトルの選択情報に対して符号長がより短いビット系列を割り当てることができる。これにより、エンコーダ1341は、符号化データの符号化効率を向上させることができる。
したがって、カメラ1300は、例えば、DRAM1318や記録メディア1333に記録する符号化データや、他の装置に提供する符号化データの符号化効率を向上させることができる。
なお、コントローラ1321が行う復号処理に画像復号装置200の復号方法を適用するようにしてもよい。同様に、コントローラ1321が行う符号化処理に画像符号化装置100の符号化方法を適用するようにしてもよい。
また、カメラ1300が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
もちろん、本発明を適用した画像符号化装置および画像復号装置は、上述した装置以外の装置やシステムにも適用可能である。
本発明は、例えば、MPEG,H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して受信する際に、若しくは光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置や画像復号装置に適用することができる。