以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(パーソナルコンピュータ)
4.第4の実施の形態(テレビジョン受像機)
5.第5の実施の形態(携帯電話機)
6.第6の実施の形態(ハードディスクレコーダ)
7.第7の実施の形態(カメラ)
<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に供給する。
[マクロブロックタイプ]
ところで、特許文献1に示されるように、画像データを符号化して出力する符号化モードと、画像データを符号化せずに出力する非符号化モードとを有し、符号化モードにするか非符号化モードにするかをマクロブロック単位で選択し、1ピクチャ内において符号化モードと非符号化モードとを混在させることができる符号化方式がある。特許文献2に示されるように、AVC符号化方式においても、図3に示されるとおり、マクロブロックの種類(mb_type)の1つとして、画像データを符号化せずに出力させるI_PCM(Intra-block pulse code modulation)モードがサポートされている。
これは、量子化パラメータをQP=0のように小さな値にした場合、符号化データの情報量が、入力画像を上回る場合、算術符号化処理のリアルタイム動作を保証するために用いられる。また、I-PCMモードを用いることにより、ロスレス符号化を実現することも可能である。
[コスト関数]
ところで、AVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
かかる選択方式の例として、http://iphome.hhi.de/suehring/tml/index.htm において公開されている、JM (Joint Model) と呼ばれるH.264/MPEG-4 AVCの参照ソフトウエアに実装されている方法を挙げることが出来る。
JMにおいては、以下に述べる、High Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択することが可能である。どちらも、それぞれの予測モードModeに関するコスト関数値を算出し、これを最小にする予測モードを当該ブロック乃至マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数は、以下の式(1)のようになる。
Cost(Mode∈Ω)=D+λ*R ・・・(1)
ここで、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合、Dは、当該予測モードModeで符号化した場合の、復号画像と入力画像の差分エネルギーである。λは、量子化パラメータの関数として与えられるLagrange未定乗数である。Rは、直交変換係数を含んだ、当該モードModeで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータD及びRを算出するため、全ての候補モード(Mode)により、一度、仮エンコード処理を行なう必要があり、より高い演算量を要する。
Low Complexity Modeにおけるコスト関数は、以下の式(2)のようになる。
Cost(Mode∈Ω)=D+QP2Quant(QP)*HeaderBit ・・・(2)
ここで、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。QP2Quant(QP) は、量子化パラメータQPの関数として与えられ、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モード(Mode)に関して、予測処理を行う必要があるが、復号化画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
[コーディングユニット]
次に、非特許文献1に記載のHEVC符号化方式において定められている、コーディングユニット(Coding Unit)について説明する。
Coding Unit(CU)は、Coding Tree Block(CTB)とも呼ばれ、AVCにおけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
特に、最大の大きさを持つCUを、LCU(Largest Coding Unit)と呼び、また、最小の大きさを持つCUをSCU(Smallest Coding Unit)と称する。例えば画像圧縮情報に含まれるシーケンスパラメータセット(SPS)において、これらの領域のサイズが指定されることになるが、それぞれ、正方形で、2の冪乗で表される大きさに限定される。
図4に、HEVCで定義されているコーディングユニット(Coding Unit)の例を示す。図4の例では、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直交変換を用いることが可能である。
[IBDI]
ところで、非特許文献2においては、図5に示されるような、内部演算を増大させる方法(IBDI(Internal bit depth increase except frame memory))が提案されている。この方法の場合、図5に示されるように、符号化装置および復号装置の、量子化処理、可逆符号化処理、逆量子化処理、フィルタ処理、予測処理、および可逆復号処理等において、データのビット深度を例えば8ビットから12ビットに拡張する。これにより、直交変換や動き補償といった処理における内部演算誤差をより小さいものにし、符号化効率を向上させることが可能である。
[BALF]
ところで、非特許文献3においては、図5に示されるように、動き補償ループ内にFIRフィルタを持ち、そのフィルタにより適応的にループフィルタ処理(BALF(Block-based Adaptive Loop Filter))を行う手法が提案されている。符号化装置においては、このFIRフィルタ係数を、入力画像との誤差を最小にするよう、Wiener Filterにより求めることで、参照画像における劣化を最小限に抑え、出力となる画像圧縮情報の符号化効率を向上させることが可能である。
[符号化処理の効率]
ところで、HEVCのようにCUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVCにおけるマクロブロックはLCUに相当すると考えることができる。しかしながら、CUは図4に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
したがって、このような符号化方式においてもAVCの場合と同様に、LCU単位でI_PCMモードを設定するようにすると、処理の単位が、例えば128×128画素単位のように、AVCの場合よりも大きくなってしまう。
イントラ予測やインター予測のモードは、上述したようにコスト関数値を算出し、比較することにより決定される。すなわち、全てのモードで予測や符号化が行われ、それぞれのコスト関数値が算出され、最適なモードが選択され、その最適なモードで符号化データが生成される。
しかしながら、I_PCMモードが採用されると、その最適なモードで生成された符号化データは破棄され、入力画像(非符号化データ)がそのまま符号化結果として採用される。従って、I_PCMモードが選択された場合、その最適なモードの符号化データを生成するための処理は全て不要な処理となってしまう。つまり、このI_PCMモードの選択制御の単位が大きくなると不要な処理がさらに増大することになる。つまり、上述したようにLCU毎にI_PCMモードを採用するか否かを選択するようにすると、符号化処理の効率がより低減してしまう恐れがあった。したがって、例えば、CABACのリアルタイム動作を保証することが困難になる恐れがあった。
また、上述したIBDIやBALFといった技術は、AVC符号化方式に含まれないものであり、I_PCMモードが採用される場合において、これらの処理をどのように制御するかが不明であった。
そこで、本実施においては、I_PCMモードの選択をより詳細に制御することができるようにし、符号化処理の効率の低減を抑制しながら符号化効率を向上させることができるようにする。また、I_PCMモードの選択に応じて、適切にIBDIやBALFの実行の有無を制御するようにし、符号化処理の効率の低減をさらに抑制することができるようにする。
[画像符号化装置]
図7は、本発明を適用した画像符号化装置の主な構成例を示すブロック図である。
図7に示される画像符号化装置300は、図1の画像符号化装置100と基本的に同様の装置であり、画像データを符号化する。図7に示されるように画像符号化装置300は、A/D変換部301、画面並べ替えバッファ302、適応左シフト部303、演算部304、直交変換部305、量子化部306、可逆符号化部307、および蓄積バッファ308を有する。また、画像符号化装置300は、逆量子化部309、逆直交変換部310、演算部311、ループフィルタ312、適応右シフト部313、フレームメモリ314、適応左シフト部315、選択部316、イントラ予測部317、動き予測・補償部318、選択部319、およびレート制御部320を有する。
画像符号化装置300は、さらに、PCM符号化部321を有する。
A/D変換部301は、A/D変換部101の場合と同様に、入力された画像データをA/D変換する。A/D変換部301は、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ302に供給し、記憶させる。画面並べ替えバッファ302は、画面並べ替えバッファ102の場合と同様に、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ302は、フレームの順番を並び替えた画像を、適応左シフト部303に供給する。
また、画面並べ替えバッファ302は、フレームの順番を並び替えた画像を、可逆符号化部307およびPCM符号化部321にも供給する。
適応左シフト部303は、PCM符号化部321に制御され、画面並べ替えバッファ302から読み出された画像データを左方向にシフトし、そのビット深度を所定ビット数(例えば4ビット)増大させる。例えば、適応左シフト部303は、画面並べ替えバッファ302から読み出された画像データのビット深度を、8ビットから12ビットに増大させる。このようにビット深度を増大させることにより、直交変換処理、量子化処理、可逆符号化処理、および予測処理等の各処理における内部演算の精度を向上させ、誤差を抑制することができる。
なお、この左シフト量(ビット量)は任意であり、固定値であってもよいし、可変であっても良い。また、PCM符号化部321の制御により、この左シフト処理は省略されることもある。
適応左シフト部303は、左シフト処理後の画像データを(処理が省略された場合は、画面並べ替えバッファ302から出力された画像データをそのまま)演算部304に供給する。また、適応左シフト部303は、その画像データを、イントラ予測部317および動き予測・補償部318にも供給する。
演算部304は、演算部103の場合と同様に、適応左シフト部303から供給された画像から、選択部319を介してイントラ予測部317若しくは動き予測・補償部318から供給される予測画像を減算する。演算部304は、その差分情報を直交変換部305に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部304は、適応左シフト部303から供給された画像から、イントラ予測部317から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部304は、適応左シフト部303から供給された画像から、動き予測・補償部318から供給される予測画像を減算する。
直交変換部305は、直交変換部104の場合と同様に、演算部304から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施す。なお、この直交変換の方法は任意である。直交変換部305は、その変換係数を量子化部306に供給する。
量子化部306は、量子化部105の場合と同様に、直交変換部305から供給される変換係数を量子化する。量子化部306は、レート制御部320から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。なお、この量子化の方法は任意である。量子化部306は、量子化された変換係数を可逆符号化部307に供給する。
可逆符号化部307は、可逆符号化部106の場合と同様に、量子化部306において量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。係数データは、レート制御部320の制御の下で量子化されているので、この符号量は、レート制御部320が設定した目標値となる(若しくは目標値に近似する)。
なお、可逆符号化部307は、PCM符号化部321によりI_PCMモードが選択された場合、画面並べ替えバッファ302から供給される入力画像(非符号化データ)を符号化結果とする(つまり、実際には符号化は省略される)。
また、可逆符号化部307は、イントラ予測のモードを示す情報などをイントラ予測部317から取得し、インター予測のモードを示す情報や動きベクトル情報などを動き予測・補償部318から取得する。さらに、可逆符号化部307は、ループフィルタ312において使用されたフィルタ係数を取得する。
可逆符号化部307は、これらのフィルタ係数、イントラ予測やインター予測のモードを示す情報、並びに量子化パラメータなどの各種情報を、可逆符号化部106の場合と同様に符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部307は、符号化して得られた符号化データ(I_PCMモードの場合の非符号化データを含む)を蓄積バッファ308に供給して蓄積させる。
例えば、可逆符号化部307においては、可逆符号化部106の場合と同様に、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。もちろん、可逆符号化部307が、これらの方法以外の方法で符号化を行うようにしてもよい。
蓄積バッファ308は、蓄積バッファ107の場合と同様に、可逆符号化部307から供給された符号化データ(I_PCMモードの場合の非符号化データを含む)を、一時的に保持する。蓄積バッファ308は、所定のタイミングにおいて、保持している符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。
また、量子化部306において量子化された変換係数は、逆量子化部309にも供給される。逆量子化部309は、その量子化された変換係数を、逆量子化部108の場合と同様に、量子化部306による量子化に対応する方法で逆量子化する。この逆量子化の方法は、量子化部306による量子化処理に対応する方法であればどのような方法であってもよい。逆量子化部309は、得られた変換係数を、逆直交変換部310に供給する。
逆直交変換部310は、逆量子化部309から供給された変換係数を、逆直交変換部109の場合と同様に、直交変換部305による直交変換処理に対応する方法で逆直交変換する。この逆直交変換の方法は、直交変換部305による直交変換処理に対応する方法であればどのようなものであってもよい。逆直交変換された出力(復元された差分情報)は、演算部311に供給される。
演算部311は、演算部110の場合と同様に、逆直交変換部310から供給された逆直交変換結果、すなわち、復元された差分情報に、選択部319を介してイントラ予測部317若しくは動き予測・補償部318から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。
例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部311は、その差分情報にイントラ予測部317から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部311は、その差分情報に動き予測・補償部318から供給される予測画像を加算する。
その加算結果(復号画像)は、ループフィルタ312または適応右シフト部313に供給される。
ループフィルタ312は、デブロックフィルタや適応ループフィルタ等を含み、演算部311から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ312は、復号画像に対して、デブロックフィルタ111と同様のデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ312は、PCM符号化部321に制御されて、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。なお、PCM符号化部321の制御により、この適応ループフィルタ処理は省略されることもある。
なお、ループフィルタ312が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ312は、必要に応じて、フィルタ処理に用いたフィルタ係数を可逆符号化部307に供給し、それを符号化させるようにすることもできる。
ループフィルタ312は、フィルタ処理結果(フィルタ処理後の復号画像)を適応右シフト部313に供給する。なお、上述したように、演算部311から出力される復号画像は、ループフィルタ312を介さずに適応右シフト部313に供給することができる。つまり、ループフィルタ312によるフィルタ処理は省略することができる。
適応右シフト部313は、PCM符号化部321に制御され、演算部311若しくはループフィルタ312から供給された画像データを右方向にシフトし、そのビット深度を所定ビット数(例えば4ビット)低減させる。つまり、適応右シフト部313は、適応左シフト部303において左シフトされたビット数分右シフトし、画像データのビット深度を左シフトされる前の状態(画面並べ替えバッファ302から読み出された時点の状態)に戻す。
例えば、適応右シフト部313は、演算部311若しくはループフィルタ312から供給された画像データのビット深度を、12ビットから8ビットに低減させる。このようにビット深度を低減させることにより、フレームメモリに格納される際の画像データのデータ量を低減させることができる。
なお、この右シフト量(ビット量)は、適応左シフト部303における左シフト量と一致する限り、任意である。すなわち、固定値であってもよいし、可変であっても良い。また、PCM符号化部321の制御により、この右シフト処理は省略されることもある。
適応右シフト部313は、右シフト処理後の画像データを(処理が省略された場合は、演算部311若しくはループフィルタ312から出力された画像データをそのまま)フレームメモリ314に供給する。
フレームメモリ314は、フレームメモリ112の場合と同様に、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、適応左シフト部315に出力する。
適応左シフト部315は、適応左シフト部303と同様の処理部であり、PCM符号化部321に制御され、フレームメモリ314から読み出された画像データ(参照画像)を適宜左方向にシフトし、そのビット深度を所定ビット数(例えば4ビット)増大させる。
例えば、I_PCMモードでない場合、入力画像のデータは適応左シフト部303において左シフトされる。そこで、適応左シフト部315は、PCM符号化部321の制御に従って、フレームメモリ314から読み出された参照画像のデータを左シフトし、ビット深度を適応左シフト部303の場合と同じビット数分増大させる(例えば、ビット深度を8ビットから12ビットにする)。
そして、適応左シフト部315は、その左シフト処理後の画像データを選択部316に供給する。このようにビット深度を増大させることにより、参照画像のビット深度を入力画像のビット深度に合わせることができ、参照画像を入力画像に加算させることができるようになる。また、予測処理等の内部演算の精度を向上させ、誤差を抑制することができる。
これに対して、例えば、I_PCMモードの場合、入力画像のデータは適応左シフト部303において左シフトされない。そこで適応左シフト部315は、PCM符号化部321の制御に従って、フレームメモリ314から読み出された参照画像を、ビット深度を増大させずに選択部316に供給する。
選択部316は、選択部113の場合と同様に、イントラ予測の場合、適応左シフト部315から供給される参照画像をイントラ予測部317に供給する。また、インター予測の場合、選択部316は、選択部113の場合と同様に、適応左シフト部315から供給される参照画像を動き予測・補償部318に供給する。
イントラ予測部317は、選択部316を介して適応左シフト部315から供給される参照画像を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部317は、予め用意された複数のモード(イントラ予測モード)でこのイントラ予測を行う。イントラ予測部317は、AVC符号化方式において規定されるモード以外の任意のモードでこのイントラ予測を行うこともできる。
イントラ予測部317は、候補となる全てのイントラ予測モードで予測画像を生成し、適応左シフト部303から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部317は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、選択部319を介して演算部304や演算部311に供給する。
また、上述したように、イントラ予測部317は、採用されたイントラ予測モードを示すイントラ予測モード情報等の情報を、適宜可逆符号化部307に供給し、符号化させる。
動き予測・補償部318は、インター符号化が行われる画像について、適応左シフト部303から供給される入力画像と、選択部316を介して適応左シフト部315から供給される参照画像とを用いて、動き予測(インター予測)を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部318は、予め用意された複数のモード(インター予測モード)でこのようなインター予測を行う。動き予測・補償部318は、AVC符号化方式において規定されるモード以外の任意のモードでこのインター予測を行うこともできる。
動き予測・補償部318は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部318は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、選択部319を介して演算部304や演算部311に供給する。
また、動き予測・補償部318は、採用されたインター予測モードを示すインター予測モード情報や、算出した動きベクトルを示す動きベクトル情報を可逆符号化部307に供給し、符号化させる。
選択部319は、選択部116の場合と同様に、イントラ符号化を行う画像の場合、イントラ予測部317の出力を演算部304や演算部311に供給し、インター符号化を行う画像の場合、動き予測・補償部318の出力を演算部304や演算部311に供給する。
レート制御部320は、蓄積バッファ308に蓄積された符号化データの符号量に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部306の量子化動作のレートを制御する。
また、レート制御部320は、蓄積バッファ308に蓄積された符号化データの符号量(発生符号量)をPCM符号化部321に供給する。
PCM符号化部321は、レート制御部320から供給される符号量と、画面並べ替えバッファ302から供給される入力画像のデータ量とを比較し、I_PCMモードを採用するか否かを選択する。その際、PCM符号化部321は、この選択を、LCUより小さいCU単位で行う。すなわち、PCM符号化部321は、I_PCMモードであるか否かを、より詳細に制御する。
PCM符号化部321は、その選択結果に応じて、可逆符号化部307、適応左シフト部303、適応右シフト部313、適応左シフト部315、およびループフィルタ312の動作を制御する。
[可逆符号化部、PCM符号化部、およびループフィルタ]
図8は、図7の可逆符号化部307、PCM符号化部321、およびループフィルタ312の主な構成例を示すブロック図である。
図8に示されるように、可逆符号化部307は、NAL(Network Abstraction Layer)符号化部331およびCU符号化部332を有する。
NAL符号化部331は、図示せぬユーザインタフェースを介して入力されるユーザ指示や、仕様等に基づいて、例えばシーケンスパラメータセット(SPS(Sequence Parameter Set)やPPS(Picture Parameter Set)等のNALを符号化する。NAL符号化部331は、符号化したNAL(NALデータ)を蓄積バッファ308に供給し、CU符号化部332から蓄積バッファ308に供給される符号化されたVCL(Video Coding Layer)であるCUデータに付加させる。
CU符号化部332は、PCM符号化部321に制御されて(PCM符号化部321から供給されるOn/Off制御信号に基づいて)、VCLの符号化を行う。例えば、PCM符号化部321によりI_PCMモードが選択されなかった場合(PCM符号化部321から「On」を示す制御信号が供給された場合)、CU符号化部332は、CU毎の量子化された直交変換係数を符号化する。CU符号化部332は、符号化した各CUの符号化データ(CUデータ)を蓄積バッファ308に供給する。
また、例えば、PCM符号化部321によりI_PCMモードが選択された場合(PCM符号化部321から「Off」を示す制御信号が供給された場合)、CU符号化部332は、画面並べ替えバッファ302から供給される入力画素値を符号化結果(CUデータ)として蓄積バッファ308に供給する。
また、CU符号化部332は、PCM符号化部321から供給される、符号化のモードがI_PCMモードであるか否かを示すフラグ(I_PCM_flag)も符号化し、CUデータとして蓄積バッファ308に供給する。さらに、CU符号化部332は、ループフィルタ312から供給される適応フィルタフラグやフィルタ係数等のフィルタ処理に関する情報を符号化し、CUデータとして蓄積バッファ308に供給する。
CU符号化部332による符号化の方法は任意である(例えばCABACやCAVLC等)。蓄積バッファ308に供給されたNALデータおよびCUデータは、合成されて蓄積される。
なお、実際には、PCM符号化部321は、CU符号化部332において量子化された直交変換係数が符号化された符号化データの符号量を用いてI_PCMモードを選択するか否かを制御する。
従って、例えば、I_PCMモードが選択されなかった場合、蓄積バッファ308に供給済みの符号化データが、当該CUの量子化された直交変換係数の符号化結果としてそのまま採用される。したがって、CU符号化部332は、I_PCM_flag等の付加情報の符号化のみを行えばよい。
これに対して、例えば、I_PCMモードが選択された場合、CU符号化部332は、画面並べ替えバッファ302から供給される当該CUの入力画素値を符号化結果(CUデータ)として蓄積バッファ308に供給する。したがって、この場合、既に供給済みの当該CUの符号化データ(量子化された直交変換係数が符号化された符号化データ)は、破棄される。つまり、その符号化データの生成に関する処理は全て冗長な処理となる。
図8に示されるように、PCM符号化部321は、I_PCM_flag生成部341およびPCM決定部342を有する。
I_PCM_flag生成部341は、PCM決定部342の決定に従って、I_PCM_flagを生成し、その値を決定する。I_PCM_flag生成部341は、生成したI_PCM_flagを可逆符号化部307のCU符号化部332に供給する。例えば、PCM決定部342がI_PCMモードを選択した場合、I_PCM_flag生成部341は、I_PCM_flagの値を、I_PCMモードが選択されたことを示す値(例えば「1」)に設定し、そのI_PCM_flagをCU符号化部332に供給する。また、例えば、例えば、PCM決定部342がI_PCMモードを選択しなかった場合、I_PCM_flag生成部341は、I_PCM_flagの値を、I_PCMモードが選択されなかったことを示す値(例えば「0」)に設定し、そのI_PCM_flagをCU符号化部332に供給する。
PCM決定部342は、符号化のモードをI_PCMモードにするか否かを決定する。PCM決定部342は、画面並べ替えバッファ302から供給される入力画素値のデータ量を求め、レート制御部320から供給される発生符号量と比較し、その比較結果に基づいて、I_PCMモードを選択するか否かを決定する。PCM決定部342は、その選択結果を示すOn/Off制御信号をCU符号化部332やI_PCM_flag生成部341に供給することにより、選択結果に応じた動作の制御を行う。
例えば、入力画素値のデータ量が発生符号量より大きい場合、PCM決定部342は、I_PCMモードを選択しない。この場合、PCM決定部342は、「On」を示す制御信号をCU符号化部332に供給し、CU符号化部332に量子化された直交変換係数を符号化させる。また、PCM決定部342は、「On」を示す制御信号を、I_PCM_flag生成部341に供給し、I_PCMモードが選択されなかったことを示す値(例えば「0」)のI_PCM_flagを生成させる。
これに対して、例えば、入力画素値のデータ量が発生符号量以下の場合、PCM決定部342は、I_PCMモードを選択する。この場合、PCM決定部342は、「Off」を示す制御信号をCU符号化部332に供給し、入力画素値を符号化結果(CUデータ)として出力させる。また、PCM決定部342は、「Off」を示す制御信号を、I_PCM_flag生成部341に供給し、I_PCMモードが選択されたことを示す値(例えば「1」)のI_PCM_flagを生成させる。
PCM決定部342は、このようなI_PCMモードを選択するか否かの決定を、LCUだけでなく、シーケンスパラメータセットにおいて設定される、全ての大きさの(任意の階層の)CU毎に行うことができる。これにより、例えば、低いQPにおいて、多くのビットが発生してしまうのを、I_PCMモードによって制限するという処理を、より小さなCUを単位として実行することが可能となり、符号量(I_PCMモードによる非符号化データのデータ量を含む)の制御をより詳細に行うことができるだけでなく、I_PCMモードのときに生じる冗長な処理を低減させることができる。
また、PCM決定部342は、選択結果を示すOn/Off制御信号を適応左シフト部303、適応右シフト部313、および適応左シフト部315に供給することにより、選択結果に応じてIBDIの制御を行う。つまり、PCM決定部342は、当該CUがI_PCMモードの場合、適応シフト装置による、ビット精度の増加及び減少の処理が行われないように制御する。
例えば、I_PCMモードを選択しなかった場合、PCM決定部342は、「On」を示す制御信号を適応左シフト部303、適応右シフト部313、および適応左シフト部315に供給し、左シフト処理や右シフト処理を実行させ、内部処理におけるビット精度の拡張が行われるようにする。
これに対して、例えば、I_PCMモードを選択した場合、PCM決定部342は、「Off」を示す制御信号を適応左シフト部303、適応右シフト部313、および適応左シフト部315に供給し、左シフト処理や右シフト処理を省略させ、内部処理におけるビット精度の拡張が行われないようにする。
I_PCMモードにおいては、入力画像画素値そのものを画像圧縮情報に伝送するため、演算誤差を生じることがなく、これに対してビット演算精度を増大させることは、冗長な処理になってしまう。PCM決定部342は、上述したように処理を行うことにより、かかる冗長な処理を排除することができる。
さらに、PCM決定部342は、選択結果を示すOn/Off制御信号をループフィルタ312に供給することにより、選択結果に応じて適応ループフィルタ処理(BALF)の制御を行う。つまり、PCM決定部342は、当該CUがI_PCMモードの場合、ループフィルタ312による、適応ループフィルタ処理が行われないように制御する。
例えば、I_PCMモードを選択しなかった場合、PCM決定部342は、「On」を示す制御信号をループフィルタ312に供給し、適応ループフィルタ処理が行われるようにする。これに対して、例えば、I_PCMモードを選択した場合、PCM決定部342は、「Off」を示す制御信号をループフィルタ312に供給し、適応ループフィルタ処理を省略させる。
I_PCMモードにおいては、入力画像画素値そのものを画像圧縮情報に伝送するため、劣化が生じることがなく、これに適応ループフィルタ処理を施すことは冗長となってしまう。PCM決定部342は、上述したように処理を行うことにより、かかる冗長な処理を排除することができる。
図8に示されるように、ループフィルタ312は、デブロックフィルタ351、画素仕分け部352、フィルタ係数算出部353、およびフィルタリング部354を有する。
デブロックフィルタ351は、デブロックフィルタ111の場合と同様に、演算部311から供給される復号画像(デブロックフィルタ前画素値)に対してデブロックフィルタ処理を行うことによりブロック歪を除去する。
処理対象の当該CUがI_PCMモードで処理されても、その当該CUに隣接するCUがI_PCMモードで処理されたとは限らない。したがって、当該CUがI_PCMモードで処理される場合であっても、ブロック歪みが生じる恐れがある。したがって、デブロックフィルタ処理は、当該CUがI_PCMモードであるか否かに関わらず実行される。
デブロックフィルタ351は、そのフィルタ処理結果(デブロックフィルタ後画素値)を画素仕分け部352に供給する。
画素仕分け部352は、PCM決定部342から供給されるOn/Off制御信号の値に従って、各フィルタ処理結果(デブロックフィルタ後画素値)を、適応ループフィルタ処理を行う画素値と、適応ループフィルタ処理を行わない画素値とに仕分ける。
例えば、PCM決定部342から「On」を示す制御信号が供給された場合、画素仕分け部352は、そのCUのデブロックフィルタ後画素値を、適応ループフィルタ処理を行う画素値に仕分ける。これに対して、例えば、PCM決定部342から「Off」を示す制御信号が供給された場合、画素仕分け部352は、そのCUのデブロックフィルタ後画素値を、適応ループフィルタ処理を行わない画素値に仕分ける。
画素仕分け部352は、仕分けを行った各画素の画素値(デブロックフィルタ後画素値)をフィルタ係数算出部353に供給する。
フィルタ係数算出部353は、供給されたデブロックフィルタ後画素値の内、適応ループフィルタ処理を行う方に仕分けられた画素値について、この適応ループフィルタのフィルタ係数(FIRフィルタ係数)を、入力画像との誤差を最小にするように、ウィナーフィルタ(Wiener Filter)により算出する。つまり、フィルタ係数算出部353は、I_PCMモードで処理される画素を除いて、フィルタ係数を算出する。
フィルタ係数算出部353は、デブロックフィルタ後画素値と算出したフィルタ係数をフィルタリング部354に供給する。
フィルタリング部354は、供給されたフィルタ係数を用いて、適応ループフィルタ処理を行う方に仕分けられた画素値に対して適応ループフィルタ処理を行う。フィルタリング部354は、このフィルタ処理後の画素値と、適応ループフィルタ処理を行わない方に仕分けられた画素値とを適応フィルタ後画素値として適応右シフト部313に供給する。
また、フィルタリング部354は、フィルタ処理が行われたか否かを示す適応フィルタフラグ(on/off_flag)を、CUとは独立して設定される所定のブロック毎に生成する。この適応フィルタフラグの値の設定方法は任意である。
例えば当該ブロック内の一部若しくは全部の画素について適応ループフィルタ処理が行われた場合、この適応フィルタフラグは、フィルタ処理が行われたことを示す値(例えば「1」)に設定されるようにしてもよい。また、例えば当該ブロック内の全ての画素が適応ループフィルタ処理されていない場合、この適応フィルタフラグは、フィルタ処理が行われていないことを示す値(例えば「0」)に設定されるようにしてもよい。その他の基準に基づいて適応フィルタフラグの値が設定されるようにしてもよい。
フィルタリング部354は、生成した適応フィルタフラグを、可逆符号化部307のCU符号化部332に供給し、符号化させ、復号側に提供させる。ただし、適応フィルタフラグの値が、フィルタ処理が行われていないことを示す値(例えば「0」)の場合、この復号側への提供は省略することもできる。
例えば、適応フィルタフラグの値が、フィルタ処理が行われていないことを示す値(例えば「0」)であり、かつ、可逆符号化部307(CU符号化部332)の符号化方式がVLCの場合、フィルタリング部354は、この適応フィルタフラグの供給を省略する(復号側に提供しない)。また、例えば、適応フィルタフラグの値が、フィルタ処理が行われていないことを示す値(例えば「0」)であり、かつ、可逆符号化部307(CU符号化部332)の符号化方式がCABACの場合、フィルタリング部354は、この適応フィルタフラグを可逆符号化部307のCU符号化部332に供給する(復号側に提供する)。
これは、VLCの場合、入力情報が少ない場合、より高い符号化効率を実現することが可能であるが、CABACの場合、同一の入力情報が連続すると、算術符号化する際の確率に偏りが生じて、より高い符号化効率を実現することが可能であるためである。
さらに、フィルタリング部354は、適応ループフィルタ処理に使用したフィルタ係数を可逆符号化部307のCU符号化部332に供給し、符号化させ、復号側に提供させる。
[PCM決定部]
図9は、図8のPCM決定部342の主な構成例を示すブロック図である。
図9に示されるように、PCM決定部342は、入力データ量算出部361、PCM判定部362、符号化制御部363、適応シフト制御部364、およびフィルタ制御部365を有する。
入力データ量算出部361は、当該CUについて、画面並べ替えバッファ302から供給される入力画素値のデータ量である入力データ量を算出し、算出した入力データ量をPCM判定部362に供給する。
PCM判定部362は、レート制御部320から供給される発生符号量(発生ビット)を取得し、入力データ量算出部361から供給される入力データ量と比較し、その比較結果に基づいて当該CUについてI_PCMモードを選択するか否かを判定する。つまり、PCM判定部362は、任意の階層のCU毎にI_PCMモードを選択するか否かを判定する。PCM判定部362は、その判定結果を符号化制御部363、適応シフト制御部364、およびフィルタ制御部365に供給する。
符号化制御部363は、PCM判定部362から供給される判定結果(I_PCMモードが選択されたか否かを示す情報)に基づいて、CU符号化部332やI_PCM_flag生成部341に対してOn/Off制御信号を供給する。
従って、符号化制御部363は、符号化のモードを任意の階層のCU毎に制御することができる。これにより、符号化制御部363は、符号量(I_PCMモードによる非符号化データのデータ量を含む)の制御をより詳細に行うことができるだけでなく、I_PCMモードが選択されたときの冗長な処理を低減させることができる。
適応シフト制御部364は、PCM判定部362から供給される判定結果(I_PCMモードが選択されたか否かを示す情報)に基づいて、適応左シフト部303、適応右シフト部313、および適応左シフト部315に対してOn/Off制御信号を供給する。
従って、適応シフト制御部364は、I_PCMモードの際に、内部演算においてビット深度を拡張させないように制御することができる。これにより適応シフト制御部364は、冗長な処理を低減させることができる。
フィルタ制御部365は、PCM判定部362から供給される判定結果(I_PCMモードが選択されたか否かを示す情報)に基づいて、画素仕分け部352に対してOn/Off制御信号を供給する。
従って、フィルタ制御部365は、I_PCMモードの際に、適応ループフィルタ処理を実行させないように制御することができる。これによりフィルタ制御部365は、冗長な処理を低減させることができる。
以上のように、画像符号化装置300は、冗長な処理を低減させ、符号化処理の効率の低減を抑制することができる。また、画像符号化装置300は、I_PCMモードの選択をより詳細に(小さなデータ単位毎に)行うことができ、符号化効率を向上させることができる。したがって、画像符号化装置300は、符号化処理の効率の低減を抑制しながら符号化効率を向上させることができる。
[符号化処理の流れ]
次に、以上のような画像符号化装置300により実行される各処理の流れについて説明する。最初に、図10のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップS301において、A/D変換部301は入力された画像をA/D変換する。ステップS302において、画面並べ替えバッファ302は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS303において、適応左シフト部303は、PCM符号化部321の制御に基づいて、入力画像に対して適応的に左シフトを行う。ステップS304において、適応左シフト部315は、参照画像に対して適応的に左シフトを行う。
ステップS305において、イントラ予測部317は、ステップS304において左シフトされた参照画像を用いてイントラ予測モードのイントラ予測処理を行う。ステップS306において、動き予測・補償部318は、ステップS304において左シフトされた参照画像を用いてインター予測モードでの動き予測や動き補償を行うインター動き予測処理を行う。
なお、実際には、参照画像のビット深度を左シフトさせる処理は、イントラ予測処理若しくはインター動き予測処理において、参照画像がフレームメモリ314から読み出される際に行われればよい。
ステップS307において、選択部319は、イントラ予測部317および動き予測・補償部318から出力された各コスト関数値に基づいて、最適なモードを決定する。つまり、選択部319は、イントラ予測部317により生成された予測画像と、動き予測・補償部318により生成された予測画像のいずれか一方を選択する。
また、このいずれの予測画像が選択されたかを示す選択情報は、イントラ予測部317および動き予測・補償部318のうち、予測画像が選択された方に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部317は、最適イントラ予測モード等を示すイントラ予測モード情報を、可逆符号化部307に供給する。最適インター予測モードの予測画像が選択された場合、動き予測・補償部318は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部307に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報やフラグ情報、参照フレーム情報などがあげられる。
ステップS308において、演算部304は、ステップS303の処理によりビット深度が左シフトされた画像と、ステップS307の処理により選択された予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部318から、イントラ予測する場合はイントラ予測部317から、選択部319を介して演算部304に供給される。
差分データは元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
ステップS309において、直交変換部305は、ステップS308の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
ステップS310において、量子化部306は、ステップS309の処理により得られた直交変換係数を量子化する。
ステップS311において、可逆符号化部307は、ステップS310の処理により量子化された変換係数を符号化する。すなわち、差分画像に対して、可変長符号化や算術符号化等の可逆符号化が行われる。
なお、可逆符号化部307は、ステップS310において算出された量子化パラメータを符号化し、符号化データに付加する。また、可逆符号化部307は、ステップS307の処理により選択された予測画像のモードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部307は、イントラ予測部317から供給される最適イントラ予測モード情報、または、動き予測・補償部318から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
さらに、可逆符号化部307は、ループフィルタ312から取得したフィルタ係数やフラグ情報を符号化し、符号化データに付加する。さらに、可逆符号化部307は、NALデータの符号化も行う。
ステップS312において蓄積バッファ308は、可逆符号化部307から出力される符号化データを蓄積する。蓄積バッファ308に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS313においてレート制御部320は、ステップS312の処理により蓄積バッファ308に蓄積された符号化データの符号量(発生符号量)を算出し、それに基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部306の量子化動作のレートを制御する。また、レート制御部320は、発生符号量をPCM符号化部321に供給する。
ステップS314において、PCM符号化部321は、ステップS313において算出された発生符号量を用いてPCM符号化制御処理を行う。ステップS315において、可逆符号化部307は、PCM符号化部321の制御に従ってPCM符号化処理を行う。
ステップS316において、逆量子化部309乃至フレームメモリ314は、ステップS310の処理により量子化された差分情報を局部的に復号し、参照画像を生成する参照画像生成処理を実行する。
ステップS316の処理が終了すると、符号化処理が終了される。この符号化処理は、例えばCU毎に繰り返し実行される。
[PCM符号化制御処理]
次に、図11のフローチャートを参照して、図10のステップS314において実行されるPCM符号化制御処理の流れの例について説明する。
PCM符号化制御処理が開始されると、ステップS331において、PCM決定部342のPCM判定部362は、レート制御部320から供給される、当該CUの量子化された直交変換係数の符号化データの発生符号量を取得する。
ステップS332において、入力データ量算出部361は、当該CUの入力画素値の入力データ量を算出する。
ステップS333において、PCM判定部362は、ステップS331において取得した符号量と、ステップS332において算出した入力データ量とを比較し、I_PCMモードで符号化を行うか否かを判定する。
ステップS334において、I_PCM_flag生成部341は、符号化制御部363が供給するステップS333の判定結果を示すOn/Off制御信号に基づいて、I_PCM_flagを生成する。
ステップS335において、符号化制御部363は、CU符号化部332に対して、ステップS333の判定結果を示すOn/Off制御信号を供給することにより、CUデータの符号化を制御する。
ステップS336において、適応シフト制御部364は、適応左シフト部303、適応右シフト部313、および適応左シフト部315に対して、ステップS333の判定結果を示すOn/Off制御信号を供給することにより、適応シフト処理を制御する。
ステップS337において、符号化制御部363は、ループフィルタ312の画素仕分け部352に対して、ステップS333の判定結果を示すOn/Off制御信号を供給することにより、適応ループフィルタ処理を制御する。
ステップS337の処理が終了すると、PCM決定部342は、PCM符号化制御処理を終了し、処理を図10のステップS314に戻し、ステップS315以降の処理を実行させる。
[PCM符号化処理の流れ]
次に、図12のフローチャートを参照して、図10のステップS315において実行されるPCM符号化処理の流れの例について説明する。
PCM符号化処理が開始されると、ステップS351において、CU符号化部332は、I_PCMモードで符号化を行うか否かを判定する。上述したPCM符号化制御処理によりI_PCMモードで符号化を行うように制御された場合、CU符号化部332は、処理をステップS352に進める。ステップS352において、CU符号化部332は、当該CUの入力画素値を符号化結果として選択する。CU符号化部332は、蓄積バッファ308の当該CUのCUデータを破棄させ、その入力画素値を蓄積バッファ308に蓄積させる。
ステップS352の処理が終了すると、CU符号化部332は、処理をステップS353に進める。また、ステップS351において、I_PCMモードで符号化を行わないと判定された場合、CU符号化部332は、処理をステップS353に進める。
ステップS353において、CU符号化部332は、上述したPCM符号化制御処理により生成されたI_PCM_flagを符号化し、それを蓄積バッファ308に蓄積させる。
ステップS353の処理が終了すると、CU符号化部332は、PCM符号化処理を終了し、処理を図10のステップS315に戻し、ステップS316以降の処理を実行させる。
[参照画像生成処理の流れ]
次に、図13のフローチャートを参照して、図10のステップS316において実行される参照画像生成処理の流れの例について説明する。
参照画像生成処理が開始されると、適応左シフト部315は、ステップS371において、適応シフト制御部364の制御に基づいて、I_PCMモードが選択されたか否かを判定する。I_PCMモードが選択された場合、内部演算におけるビット深度の拡張が行われないので、予測処理からやり直しとなる。つまり、I_PCMモードが選択されたと判定されると、適応左シフト部315は、参照画像に対する左シフト処理を行わずに、処理をステップS372に進める。
ステップS372において、イントラ予測部317は、ビット深度が左シフトされていない参照画像を用いてイントラ予測処理を行う。ステップS373において、動き予測・補償部318は、ビット深度が左シフトされていない参照画像を用いてインター動き予測処理を行う。
ステップS374において、選択部319は、イントラ予測部317および動き予測・補償部318から出力された各コスト関数値に基づいて、最適なモードを決定する。つまり、選択部319は、イントラ予測部317により生成された予測画像と、動き予測・補償部318により生成された予測画像のいずれか一方を選択する。
また、このいずれの予測画像が選択されたかを示す選択情報は、イントラ予測部317および動き予測・補償部318のうち、予測画像が選択された方に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部317は、最適イントラ予測モード等を示すイントラ予測モード情報を、可逆符号化部307に供給する。最適インター予測モードの予測画像が選択された場合、動き予測・補償部318は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部307に供給する。最適インター予測モードに応じた情報としては、動きベクトル情報やフラグ情報、参照フレーム情報などがあげられる。
I_PCMモードが選択された場合、内部演算におけるビット深度の拡張が行われない。つまり、適応左シフト部303による参照画像に対する左シフト処理は省略される。ステップS375において、演算部304は、ビット深度が左シフトされていない入力画像と、ステップS374の処理により選択された予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部318から、イントラ予測する場合はイントラ予測部317から、選択部319を介して演算部304に供給される。
ステップS376において、直交変換部305は、ステップS375の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップS377において、量子化部306は、ステップS376の処理により得られた直交変換係数を量子化する。
直交変換係数が量子化されると、量子化部306は、処理をステップS378に進め、ステップS377において量子化された直交変換係数(左シフト処理されてないデータ)を用いて参照画像の生成が行われる。
これに対して、ステップS371において、I_PCMモードで無いと判定された場合、適応左シフト部315は、ステップS372乃至ステップS377の各処理を省略し、処理をステップS378に進める。つまり、I_PCMモードで無い場合、図10のステップS310において量子化された直交変換係数(左シフト処理されたデータ)を用いて参照画像の生成が行われる。
ステップS378において、逆量子化部309は、量子化された直交変換係数(量子化係数とも称する)を量子化部306の特性に対応する特性で逆量子化する。ステップS379において、逆直交変換部310は、ステップS378の処理により得られた直交変換係数を、直交変換部305の特性に対応する特性で逆直交変換する。
ステップS380において、演算部311は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部304への入力に対応する画像)を生成する。例えば、I_PCMモードの場合、演算部311は、左シフト処理されていない予測画像を、左シフト処理されていない差分情報に加算し、左シフト処理されていない復号画像を生成する。また、例えば、I_PCMモードでない場合、演算部311は、左シフト処理された予測画像を、左シフト処理された差分情報に加算し、左シフト処理された復号画像を生成する。
ステップS381においてループフィルタ312は、フィルタ制御部365の制御に基づいて、ステップS380の処理により得られた局部的な復号画像に対してループフィルタ処理を行い、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS382において、適応右シフト部313は、適応シフト制御部364の制御に基づいて、I_PCMモードが選択されたか否かを判定する。I_PCMモードが選択されていないと判定された場合、適応右シフト部313は、処理をステップS383に進める。
I_PCMモードでない場合、復号画像は内部演算におけるビット深度の拡張が行われているので、適応右シフト部313は、ステップS383において、ステップS381のループフィルタ処理により得られたフィルタ処理結果(復号画像)のビット深度に対して適応的に右シフトを行う。ステップS383の処理が終了すると、適応右シフト部313は、処理をステップS384に進める。
また、ステップS382において、I_PCMモードが選択されたと判定された場合、適応右シフト部313は、右シフト処理を行わずに処理をステップS384に進める。
ステップS384において、フレームメモリ314は、復号画像を記憶する。ステップS384の処理が終了すると、フレームメモリ314は、参照画像生成処理を終了し、処理を図10のステップS316に戻し、符号化処理を終了する。
[ループフィルタ処理の流れ]
次に、図14のフローチャートを参照して、図13のステップS381において実行されるループフィルタ処理の流れの例を説明する。
ループフィルタ処理が開始されると、ループフィルタ312のデブロックフィルタ351は、ステップS401において、演算部311から供給される復号画像(デブロックフィルタ前画素値)に対してデブロックフィルタ処理を行う。
ステップS402において、画素仕分け部352は、PCM決定部342のフィルタ制御部365に制御されて、I_PCMモードであるか否かに基づいて復号画像の各画素を仕分ける。
ステップS403において、フィルタ係数算出部353は、フィルタ処理を行うように仕分けられた画素(処理対象画素)に対するフィルタ係数を算出する。ステップS404において、フィルタリング部354は、ステップS403において算出されるフィルタ係数を用いて、処理対象画素に対して適応フィルタ処理を行う。
ステップS405において、フィルタリング部354は、処理対象ブロックについての適応フィルタフラグを設定し、その適応フィルタフラグやフィルタ係数をCU符号化部332に供給し、符号化させる。
ステップS405の処理が終了すると、ループフィルタ312は、ループフィルタ処理を終了し、処理を図13のステップS381に戻し、ステップS382以降の処理を実行させる。
以上のように各処理を実行することにより、画像符号化装置300は、符号化処理の効率の低減を抑制しながら符号化効率を向上させることができる。
<2.第2の実施の形態>
[画像復号装置]
図15は、本実施の画像復号装置の主な構成例を示すブロック図である。図15に示される画像復号装置500は、図2の画像復号装置200と基本的に同様の装置であり、画像データが符号化された符号化データを復号する。
図15に示される画像復号装置500は、図7の画像符号化装置300に対応する復号装置である。画像符号化装置300より符号化された符号化データは、例えば伝送路や記録媒体等、任意の経路を介して、この画像復号装置500に供給され、復号される。
図15に示されるように、画像復号装置500は、蓄積バッファ501、可逆復号部502、逆量子化部503、逆直交変換部504、演算部505、ループフィルタ506、適応右シフト部507、画面並べ替えバッファ508、およびD/A変換部509を有する。また、画像復号装置500は、フレームメモリ510、適応左シフト部511、選択部512、イントラ予測部513、動き予測・補償部514、および選択部515を有する。
画像復号装置500は、さらに、PCM復号部516を有する。
蓄積バッファ501は、蓄積バッファ201の場合と同様に、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置300により符号化されたものである。
可逆復号部502は、蓄積バッファ501から符号化データを所定のタイミングで読み出し、図15の可逆符号化部307の符号化方式に対応する方式で復号する。その際、可逆復号部502は、符号化データに含まれるI_PCM_flagをPCM復号部516に供給し、I_PCMモードであるか否かを判定させる。
I_PCMモードである場合、蓄積バッファ501から取得したCUデータは非符号化データであるので、可逆復号部502は、PCM復号部516の制御に従って、そのCUデータを逆量子化部503に供給する。
I_PCMモードで無い場合、蓄積バッファ501から取得したCUデータは符号化データであるので、可逆復号部502は、PCM復号部516の制御に従って、そのCUデータを復号し、復号結果を逆量子化部503に供給する。
なお、例えば、当該CUがイントラ符号化されたものである場合、符号化データのヘッダ部にはイントラ予測モード情報が格納されている。可逆復号部502は、このイントラ予測モード情報も復号し、その情報をイントラ予測部513に供給する。これに対して、例えば当該CUがインター符号化されたものである場合、符号化データのヘッダ部には動きベクトル情報やインター予測モード情報が格納されている。可逆復号部502は、この動きベクトル情報やインター予測モード情報も復号し、その情報を動き予測・補償部514に供給する。
逆量子化部503は、I_PCMモードで無い場合、逆量子化部203の場合と同様に、可逆復号部502にから供給される係数データ(量子化係数)を、図7の量子化部306の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部503は、図7の逆量子化部309と同様の方法で量子化係数の逆量子化を行う。逆量子化部503は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部504に供給する。
また、逆量子化部503は、I_PCMモードである場合、可逆復号部502から供給されるCUデータ(符号化されていない画像データ)を、逆直交変換部504に供給する。
逆直交変換部504は、I_PCMモードで無い場合、逆直交変換部204の場合と同様に、図7の直交変換部305の直交変換方式に対応する方式(図7の逆直交変換部310と同様の方式)で、その直交変換係数を逆直交変換する。逆直交変換部504は、この逆直交変換処理により、画像符号化装置300において直交変換される前の残差データに対応する復号残差データを得る。例えば、4次の逆直交変換が施される。逆直交変換部504は、逆直交変換して得られた復号残差データを、演算部505に供給する。
また、逆直交変換部504は、I_PCMモードである場合、逆量子化部503から供給されるCUデータ(符号化されていない画像データ)を、演算部505に供給する。
また、演算部505には、選択部515を介して、イントラ予測部513若しくは動き予測・補償部514から予測画像が供給される。
演算部505は、I_PCMモードで無い場合、演算部205の場合と同様に、その復号残差データと予測画像とを加算し、画像符号化装置300の演算部304により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部505は、その復号画像データをループフィルタ506に供給する。
また、演算部505は、I_PCMモードである場合、逆直交変換部504から供給されるCUデータ(符号化されていない画像データ)を、ループフィルタ506に供給する。この場合、CUデータは、残差情報ではないので、予測画像との加算は不要である。
ループフィルタ506は、PCM復号部516により制御されて、演算部505から供給された復号画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施す。
より具体的には、ループフィルタ506は、復号画像に対して、デブロックフィルタ206と同様のデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。そして、ループフィルタ506は、PCM復号部516の制御に従って、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ506が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ506が、図7の画像符号化装置300から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ506は、フィルタ処理結果(フィルタ処理後の復号画像)を、適応右シフト部507に供給する。
適応右シフト部507は、適応右シフト部313(図7)と同様の処理部であり、PCM復号部516に制御され、I_PCMモードで無い場合、ループフィルタ506から供給された復号画像データを右方向にシフトし、そのビット深度を所定ビット数(例えば4ビット)低減させる(例えば、ビット深度を12ビットから8ビットに低減させる)。つまり、適応右シフト部507は、画像符号化装置300において左シフトされたビット数分右シフトし、画像データのビット深度を左シフトされる前の状態(画面並べ替えバッファ302(図7)から読み出された時点の状態)に戻す。
適応右シフト部507は、右シフト処理後の画像データを画面並べ替えバッファ508およびフレームメモリ510に供給する。
なお、この右シフト量(ビット量)は、画像符号化装置300(適応左シフト部303)における左シフト量と一致する限り、任意である。すなわち、固定値であってもよいし、可変であっても良い。例えば、シフト量が予め定められている(画像符号化装置300と画像復号装置500との間で予め共有されている)ようにしてもよいし、画像復号装置500において、画像符号化装置300におけるシフト量を算出することができるようにしてもよいし、画像符号化装置300からシフト量を示す情報が提供されるようにしてもよい。
また、PCM復号部516の制御により、この右シフト処理は省略されることもある。例えば、I_PCMモードの場合、画像符号化装置300において画像データは左シフト処理されていない。したがって、この場合、適応右シフト部507は、PCM復号部516に制御され、ループフィルタ506から供給された復号画像データを右方向にシフトせずに画面並べ替えバッファ508およびフレームメモリ510に供給する。
画面並べ替えバッファ508は、画面並べ替えバッファ207の場合と同様に、画像の並べ替えを行う。すなわち、図7の画面並べ替えバッファ302により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。画面並べ替えバッファ508は、各フレームの復号画像データを、並べ替えた順にD/A変換部509に供給する。
D/A変換部509は、D/A変換部208の場合と同様に、画面並べ替えバッファ508から供給されたフレーム画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
フレームメモリ510は、適応右シフト部507から供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、適応左シフト部511に供給する。
適応左シフト部511は、適応左シフト部315と同様の処理部であり、PCM復号部516に制御され、フレームメモリ510から読み出された画像データ(参照画像)を適宜左方向にシフトし、そのビット深度を所定ビット数(例えば4ビット)増大させる。
例えば、I_PCMモードでない場合、逆直交変換部504から演算部505に供給される復号画像データは、画像符号化装置300において左シフトされた状態の画像データである(例えばビット深度が12ビットである)。そこで適応左シフト部511は、PCM復号部516の制御に従って、フレームメモリ510から読み出された参照画像のビット深度を所定ビット数増大させる(例えば、ビット深度を8ビットから12ビットにする)。
そして、適応左シフト部511は、その左シフト処理後の画像データを選択部512に供給する。このようにビット深度を増大させることにより、参照画像のビット深度を復号画像のビット深度に合わせることができ、参照画像を復号画像に加算させることができるようになる。また、予測処理等の内部演算の精度を向上させ、誤差を抑制することができる。
これに対して、例えば、I_PCMモードの場合、逆直交変換部504から演算部505に供給される復号画像データは、画像符号化装置300において左シフト処理されていない状態の画像データである(例えばビット深度が8ビットである)。そこで適応左シフト部511は、PCM復号部516の制御に従って、フレームメモリ510から読み出された参照画像を、ビット深度を増大させずに選択部512に供給する。
選択部512は、イントラ予測の場合、適応左シフト部511から供給される参照画像をイントラ予測部513に供給する。また、選択部512は、インター予測の場合、適応左シフト部511から供給される参照画像を動き予測・補償部514に供給する。
イントラ予測部513には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部502から適宜供給される。イントラ予測部513は、イントラ予測部317において用いられたイントラ予測モードで、フレームメモリ510から取得した参照画像を用いてイントラ予測を行い、予測画像を生成する。つまり、イントラ予測部513は、イントラ予測部317と同様に、AVC符号化方式において規定されるモード以外の任意のモードでこのイントラ予測を行うこともできる。
イントラ予測部513は、生成した予測画像を選択部515に供給する。
動き予測・補償部514には、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等)が可逆復号部502から供給される。
動き予測・補償部514は、動き予測・補償部318において用いられたインター予測モードで、フレームメモリ510から取得した参照画像を用いてインター予測を行い、予測画像を生成する。つまり、動き予測・補償部514は、動き予測・補償部318と同様に、AVC符号化方式において規定されるモード以外の任意のモードでこのイントラ予測を行うこともできる。
動き予測・補償部514は、生成した予測画像を選択部515に供給する。
選択部515は、選択部213の場合と同様に、動き予測・補償部514またはイントラ予測部513により生成された予測画像を選択し、演算部505に供給する。
PCM復号部516は、可逆復号部502から供給されるI_PCM_flagに基づいて、可逆復号部502、ループフィルタ506、適応右シフト部507、および適応左シフト部511を制御する。
[可逆復号部、PCM復号部、およびループフィルタ]
図16は、図15の可逆復号部502、PCM復号部516、およびループフィルタ506の主な構成例を示すブロック図である。
図16に示されるように、可逆復号部502は、NAL復号部531およびCU復号部532を有する。NAL復号部531は、蓄積バッファ501から供給される、符号化されたNALデータを復号し、復号されたNALデータをCU復号部532に供給する。
CU復号部532は、NAL復号部531から供給されるNALデータに基づいて、蓄積バッファ501から供給される、符号化されたCUデータを復号する。
また、CU復号部532は、CUデータを復号してI_PCM_flagを取得すると、それをPCM復号部516に供給する。CU復号部532は、そのI_PCM_flagに基づくPCM復号部516の制御に従って(PCM符号化部321から供給されるOn/Off制御信号に基づいて)、符号化されたCUデータを復号する。
例えば、I_PCM_flagがI_PCMモードで無いことを示す値であり、PCM復号部516から「On」を示す制御信号を取得すると、CU復号部532は、NAL復号部531から供給されるNALデータに基づいて、蓄積バッファ501から供給される、符号化されたCUデータを復号し、量子化された直交変換係数を逆量子化部503に供給する。
これに対して、例えば、I_PCM_flagがI_PCMモードであることを示す値であり、PCM復号部516から「Off」を示す制御信号を取得すると、CU復号部532は、蓄積バッファ501から供給されるCUデータ(符号化されていない画像データ)を逆量子化部503に供給する。
なお、CU復号部532は、CUデータを復号して得られるフィルタ係数や適応フィルタフラグ等の情報をループフィルタ506に供給する。
図8に示されるように、PCM復号部516は、I_PCM_flagバッファ541およびPCM制御部542を有する。
I_PCM_flagバッファ541は、可逆復号部502のCU復号部532から供給されるI_PCM_flagを記憶し、所定のタイミングにおいてそれをPCM制御部542に供給する。
PCM制御部542は、I_PCM_flagバッファ541から取得したI_PCM_flagの値に基づいて、画像符号化装置300において符号化時にI_PCMモードが選択されたか否かを判定する。PCM制御部542は、その判定結果に基づいて、CU復号部532にOn/Off制御信号を供給し、その動作を制御する。
例えばI_PCMモードが選択されなかったと判定された場合、PCM制御部542は、「On」を示す制御信号をCU復号部532に供給し、CU復号部532に符号化されたCUデータを復号させ、その復号により得られた、量子化された直交変換係数を逆量子化部503に供給させる。
これに対して、例えばI_PCMモードが選択されたと判定された場合、PCM制御部542は、「Off」を示す制御信号をCU復号部532に供給し、非符号化データであるCUデータを出力画素値として逆量子化部503に供給させる。
このような制御により、CU復号部532は、画像符号化装置300から供給される符号化データを適切に復号することができる。つまり、CU復号部532は、LCUより小さいCU単位でI_PCMモードか否かが制御されている場合であっても、より適切に復号することができる。
また、PCM制御部542は、I_PCMモードの判定結果に基づいて、適応右シフト部507および適応左シフト部511にOn/Off制御信号を供給し、その動作を制御する。
例えばI_PCMモードが選択されなかったと判定された場合、PCM制御部542は、「On」を示す制御信号を適応右シフト部507および適応左シフト部511に供給し、左シフト処理や右シフト処理を実行させ、内部処理におけるビット精度の拡張が行われるようにする。
これに対して、例えばI_PCMモードが選択されたと判定された場合、PCM制御部542は、「Off」を示す制御信号を適応右シフト部507および適応左シフト部511に供給し、左シフト処理や右シフト処理を省略させ、内部処理におけるビット精度の拡張が行われないようにする。
このような制御により、PCM制御部542は、LCUより小さいCU単位でI_PCMモードか否かが制御されている場合であっても、冗長な処理を適切に排除することができる。
さらに、PCM制御部542は、I_PCMモードの判定結果に基づいて、ループフィルタ506にOn/Off制御信号を供給し、その動作を制御する。例えばI_PCMモードが選択されなかったと判定された場合、PCM制御部542は、「On」を示す制御信号をループフィルタ506に供給する。これに対して、例えばI_PCMモードが選択されたと判定された場合、PCM制御部542は、「Off」を示す制御信号をループフィルタ506に供給する。
このような制御により、PCM制御部542は、LCUより小さいCU単位でI_PCMモードか否かが制御されている場合であっても、冗長な処理をより適切に排除することができる。
図8に示されるように、ループフィルタ506は、デブロックフィルタ551、画素仕分け部552、およびフィルタリング部553を有する。
デブロックフィルタ551は、デブロックフィルタ206の場合と同様に、演算部505から供給される復号画像(デブロックフィルタ前画素値)に対してデブロックフィルタ処理を行うことによりブロック歪を除去する。
画像符号化装置300の場合と同様に、デブロックフィルタ処理は、当該CUがI_PCMモードであるか否かに関わらず実行される。デブロックフィルタ551は、そのフィルタ処理結果(デブロックフィルタ後画素値)を画素仕分け部552に供給する。
画素仕分け部552は、PCM制御部542から供給されるOn/Off制御信号の値に従って、各フィルタ処理結果(デブロックフィルタ後画素値)を、適応ループフィルタ処理を行う画素値と、適応ループフィルタ処理を行わない画素値とに仕分ける。
例えば、PCM制御部542から「On」を示す制御信号が供給された場合、画素仕分け部552は、そのCUのデブロックフィルタ後画素値を、適応ループフィルタ処理を行う画素値に仕分ける。これに対して、例えば、PCM制御部542から「Off」を示す制御信号が供給された場合、画素仕分け部552は、そのCUのデブロックフィルタ後画素値を、適応ループフィルタ処理を行わない画素値に仕分ける。
画素仕分け部552は、仕分けを行った各画素の画素値(デブロックフィルタ後画素値)をフィルタリング部553に供給する。
フィルタリング部553は、CU復号部532から供給された適応ループフィルタフラグに基づいて、適応ループフィルタ処理を行う方に仕分けられた画素値に対して適応ループフィルタ処理を行う。
適応ループフィルタ処理は、CUとは独立して設定される所定のブロック毎に行われる。フィルタリング部553は、当該ブロックの適応ループフィルタフラグの値が、符号化側においてフィルタ処理が行われなかったことを示す値(例えば「0」)の場合、当該ブロックに対する適応ループフィルタ処理を省略し、供給されたデブロックフィルタ後の画素値を適応フィルタ後画素値として適応右シフト部507に供給する。
ところで、適応ループフィルタフラグの設定方法は、画像符号化装置300の仕様等に依存する。従って、画像符号化装置300による適応ループフィルタフラグの設定方法によっては、当該ブロックの適応ループフィルタフラグの値が、符号化側においてフィルタ処理が行われたことを示す値(例えば「1」)であっても、当該ブロック内にI_PCMモードの画素が含まれる可能性がある。
そこで、フィルタリング部553は、当該ブロック内に適応ループフィルタ処理を行わない方に仕分けられた画素値が存在する場合、当該ブロックの適応ループフィルタフラグの値が、符号化側においてフィルタ処理が行われたことを示す値(例えば「1」)であっても、当該ブロックに対する適応ループフィルタ処理を省略し、供給されたデブロックフィルタ後の画素値を適応フィルタ後画素値として適応右シフト部507に供給する。
つまり、フィルタリング部553は、当該ブロックの適応ループフィルタフラグの値が、符号化側においてフィルタ処理が行われたことを示す値(例えば「1」)であり、かつ、当該ブロック内の全ての画素が適応ループフィルタ処理を行う方に仕分けられた場合のみ、当該ブロックに対して適応ループフィルタ処理を行う。
なお、フィルタリング部553は、適応ループフィルタ処理を行う場合、CU復号部532から供給されたフィルタ係数(符号化側の適応ループフィルタ処理において使用されたフィルタ係数)を用いて適応ループフィルタ処理を行う。
フィルタリング部553は、適応ループフィルタ処理を行った画素値を適応フィルタ後画素値として適応右シフト部507に供給する。
このような制御により、PCM制御部542は、LCUより小さいCU単位でI_PCMモードか否かが制御されている場合であっても、冗長な処理をより適切に排除することができる。
以上のように、各処理部の処理により、画像復号装置500は、符号化処理の効率の低減を抑制しながら符号化効率を向上させることを実現することができる。
[復号処理の流れ]
次に、以上のような画像復号装置500により実行される各処理の流れについて説明する。最初に、図17および図18のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS501において、蓄積バッファ501は、伝送されてきた画像(符号化データ)を蓄積する。ステップS502において、CU復号部532は、ステップS501において蓄積された符号化データから適応フィルタフラグを取得する。ステップS503において、CU復号部532は、ステップS501において蓄積された符号化データからI_PCM_flagを取得する。I_PCM_flagバッファ541は、そのI_PCM_flagを記憶する。
ステップS504において、PCM制御部542は、I_PCM_flagバッファ541に記憶されたI_PCM_flagの値に基づいて、ステップS501において蓄積された符号化データ(CUデータ)の符号化のモードがI_PCMモードである(すなわち、非符号化データである)か否かを判定する。
符号化のモードがI_PCMモードでないと判定された場合、PCM制御部542は、処理をステップS505に進める。ステップS505において、可逆復号部502は、可逆復号処理を行い、ステップS501において蓄積された符号化データ(CUデータ)を復号し、量子化された直交変換係数やフィルタ係数等を得る。
ステップS506において、逆量子化部503は、ステップS505の処理により得られた、量子化された直交変換係数を逆量子化する。ステップS507において、逆直交変換部504は、ステップS506の処理により逆量子化された直交変換係数を逆直交変換し、復号画像データを生成する。
ステップS508において、適応左シフト部511は、当該CUに対応する参照画像をフレームメモリ510から取得し、PCM復号部516の制御に従って、その参照画像に対して左シフト処理を行う。
ステップS509において、ステップS508において左シフト処理された参照画像等を用いて、イントラ予測部513若しくは動き予測・補償部514は、予測処理を行い、予測画像を生成する。
ステップS510において、演算部505は、ステップS507の処理により得られた差分情報に、ステップS509においてイントラ予測部513若しくは動き予測・補償部514により生成された予測画像を加算する。
ステップS511において、ループフィルタ506は、ステップS510の加算結果に対してループフィルタ処理を行う。
ステップS512において、適応右シフト部507は、ステップS511のループフィルタ処理結果に対して、PCM復号部516の制御に従って右シフト処理を行う。
ステップS513において、フレームメモリ510は、復号画像データを参照画像として記憶する。
ステップS514において、画面並べ替えバッファ508は、復号画像データのフレームの並べ替えを行う。すなわち、復号画像データの、画像符号化装置300の画面並べ替えバッファ302(図7)により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS515において、D/A変換部509は、ステップS514において、フレームが並べ替えられた復号画像データをD/A変換する。この復号画像データが図示せぬディスプレイに出力され、その画像が表示される。
また、ステップS504において、符号化のモードがI_PCMモードであると判定された場合、PCM制御部542は、処理を図18のステップS521に進める。ステップS521において、可逆復号部502は、可逆復号処理を行い、ステップS501において蓄積された符号化データ(非圧縮データ)を符号化結果(出力画素値)とする。
ステップS522において、ループフィルタ506は、ステップS521において得られた出力画素値に対してループフィルタ処理を行う。ステップS522の処理が終了すると、ループフィルタ506は、処理を図17のステップS513に戻し、それ以降の処理を実行させる。
[ループフィルタ処理の流れ]
次に、図19のフローチャートを参照して、図17のステップS511および図18のステップS522において実行されるループフィルタ処理の流れの例を説明する。
ループフィルタ処理が開始されると、デブロックフィルタ551は、ステップS541において、ステップS510若しくはステップS521において得られたデブロックフィルタ前画素値に対してデブロックフィルタ処理を行う。
ステップS542において、フィルタリング部553は、フィルタ係数を取得する。ステップS543において、画素仕分け部552は、適応ループフィルタフラグの値に基づいて、適応ループフィルタを行うか否かを判定する。適応ループフィルタ処理を行うと判定した場合、画素仕分け部552は、処理をステップS544に進める。
ステップS544において、画素仕分け部552は、PCM制御部542の制御に従って、I_PCMモードか否かによってデブロックフィルタ後画素値の仕分けを行う。
ステップS545において、フィルタリング部545は、適応ループフィルタ処理を行う方に仕分けられたデブロックフィルタ後画素値に対して、ステップS542において取得したフィルタ係数を用いて適応ループフィルタ処理を行う。ステップS545の処理が終了すると、フィルタリング部545は、ループフィルタ処理を終了し、処理を図17のステップS511若しくは図18のステップS522に戻し、図17のステップS512若しくは図17のステップS513に処理を進める。
また、図19のステップS543において、適応ループフィルタ処理を行わないと判定した場合、画素仕分け部552は、ループフィルタ処理を終了し、処理を図17のステップS511若しくは図18のステップS522に戻し、図17のステップS512若しくは図17のステップS513に処理を進める。
以上のように各処理を実行することにより、画像復号装置500は、符号化処理の効率の低減を抑制しながら符号化効率を向上させることを実現することができる。
[I_PCM情報の位置]
以上に説明したように、I_PCMモードの選択制御をCU単位で行うことができるようにすることにより、例えば図20Aに示されるように、LCU内の一部のCUのみI_PCMモードで符号化を行うようにすることもできる。図20Aは、1LCU内のCUの構造を示している。図20Aに示されるLCUは、CU0乃至CU6の7つのCUにより構成される。各数字は当該LCU内の処理順を示す。図20Aの例において、灰色で示されるCU(CU1,CU3,CU6)がI_PCMモードで符号化されるものとする。
このような場合において、図20Bに示されるように、コードストリームにおいてLCUのデータの先頭に、当該LCUの内部におけるI_PCMに関する情報であるI_PCM情報を付加するようにしてもよい。
I_PCM情報は、例えば、当該LCUがI_PCMモードで符号化されるCUを含むか否かを示すフラグ情報を含む。図20の例の場合、CU1,CU3、およびCU6がI_PCMモードで符号化されるCUであるので、このフラグ情報は、当該LCUがI_PCMモードで符号化されるCUを含むことを示す値(例えば「1」)に設定される。
このように、画像符号化装置300が、当該LCUの内部におけるI_PCMに関する情報を、LCUの先頭に付加することにより、画像復号装置500は、当該LCUを復号する前に、当該LCU内にI_PCMモードで符号化されるCUが存在するか否かを容易に把握することができる。
また、I_PCM情報は、例えば、当該LCUに含まれるI_PCMモードで符号化されるCUを示す情報を含む。図20の例の場合、CU1,CU3、およびCU6がI_PCMモードで符号化されるCUであるので、I_PCM情報は、これらのCU(CU1,CU3,CU6)を示す情報を含む。
このように、画像符号化装置300が、当該LCUの内部におけるI_PCMに関する情報を、LCUの先頭に付加することにより、画像復号装置500は、当該LCUを復号する前に、当該LCU内のどのCUがI_PCMモードで符号化されたかを容易に把握することができる。
なお、以上においては、I_PCM_flag、適応フィルタフラグ、フィルタ係数、およびI_PCM情報等の画像データ以外の情報も、必要に応じて、画像符号化装置300から画像復号装置400に提供されるように説明したが、これらの情報は、符号化データの任意の位置に付加されるようにしてもよい。例えば、CUやLCUの先頭に付加されるようにしてもよいし、スライスヘッダに付加されるようにしてもよいし、シーケンスパラメータセット(SPS)やピクチャパラメータセット(PPS)等に格納されるようにしてもよい。また、例えば、これらの情報が、SEI(Suplemental Enhancement Information)等のパラメータセット(例えばシーケンスやピクチャのヘッダ等)に格納されるようにしてもよい。
さらに、これらの情報が、符号化データとは別に復号側に伝送されるようにしてもよい。その場合、これらの情報と符号化データとの対応関係を明確にする(復号側で把握することができるようにする)必要があるが、その方法は任意である。例えば、別途、対応関係を示すテーブル情報を作成してもよいし、対応先のデータを示すリンク情報を互いのデータに埋め込むなどしてもよい。
また、これらの情報を、画像符号化装置300と画像復号装置400とで予め共有しておくようにしてもよい。その場合、これらの情報の伝送を省略することができる場合もある。
<3.第3の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図21に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
図21において、パーソナルコンピュータ600のCPU(Central Processing Unit)601は、ROM(Read Only Memory)602に記憶されているプログラム、または記憶部613からRAM(Random Access Memory)603にロードされたプログラムに従って各種の処理を実行する。RAM603にはまた、CPU601が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU601、ROM602、およびRAM603は、バス604を介して相互に接続されている。このバス604にはまた、入出力インタフェース610も接続されている。
入出力インタフェース610には、キーボード、マウスなどよりなる入力部611、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部612、ハードディスクなどより構成される記憶部613、モデムなどより構成される通信部614が接続されている。通信部614は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース610にはまた、必要に応じてドライブ615が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア621が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部613にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図21に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア621により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM602や、記憶部613に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、図8に示される可逆符号化部307、ループフィルタ312、およびPCM符号化部321を、それぞれ、独立した装置として構成するようにしてもよい。また、図8に示されるNAL符号化部331、CU符号化部332、I_PCM_flag生成部341、PCM決定部342、デブロックフィルタ351、画素仕分け部352、フィルタ係数算出部353、およびフィルタリング部354を、それぞれ、独立した装置として構成するようにしてもよい。
さらに、図9に示される入力データ量算出部361、PCM判定部362、符号化制御部363、適応シフト制御部364、およびフィルタ制御部を、それぞれ、独立した装置として構成するようにしてもよい。
また、これらの各処理部を任意に組み合わせ、独立した装置として構成するようにしてもよい。もちろん、図7乃至図9に示される任意の処理部と組み合わせても良いし、図示せぬ処理部と組み合わせても良い。
画像復号装置400についても同様である。例えば、図15に示される可逆復号部502、ループフィルタ506、およびPCM復号部516を、それぞれ、独立した装置として構成するようにしてもよい。また、図16に示されるNAL復号部531、CU復号部532、I_PCM_flagバッファ541、PCM制御部542、デブロックフィルタ551、画素仕分け部552、およびフィルタリング部553を、それぞれ、独立した装置として構成するようにしてもよい。
さらに、これらの各処理部を任意に組み合わせ、独立した装置として構成するようにしてもよい。もちろん、図15および図16に示される任意の処理部と組み合わせても良いし、図示せぬ処理部と組み合わせても良い。
また、例えば、上述した画像符号化装置や画像復号装置は、任意の電子機器に適用することができる。以下にその例について説明する。
<4.第4の実施の形態>
[テレビジョン受像機]
図22は、本実施の画像復号装置500を用いるテレビジョン受像機の主な構成例を示すブロック図である。
図22に示されるテレビジョン受像機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として、上述した画像復号装置500を用いる。なお、放送局等より送信されるMPEG-TSは、画像符号化装置300によって符号化されている。
MPEGデコーダ1017は、画像復号装置500の場合と同様に、I_PCMモードの選択をLCUよりも小さいCU単位で制御された符号化データを適切に復号する。したがって、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として画像復号装置500を用いることにより、アンテナを介して受信する放送波信号や、ネットワークを介して取得するコンテンツデータを生成する際の符号化処理の効率の低減を抑制しながら、そのデータの符号化効率を向上させることを実現することができる。
<5.第5の実施の形態>
[携帯電話機]
図23は、本実施の画像符号化装置300および画像復号装置500を用いる携帯電話機の主な構成例を示すブロック図である。
図23に示される携帯電話機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の場合と同様に、I_PCMモードの選択をLCUよりも小さいCU単位で制御する。つまり、画像エンコーダ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として、上述した画像復号装置500を用いる。つまり、画像デコーダ1156は、画像復号装置500の場合と同様に、I_PCMモードの選択をLCUよりも小さいCU単位で制御された符号化データを適切に復号する。したがって、画像デコーダ1156は、符号化時の冗長な処理の低減と、符号化データに含まれる冗長な情報の低減を実現させることができる。これにより、画像デコーダ1156は、符号化処理の効率の低減を抑制しながら符号化効率を向上させることを実現することができる。
このとき、携帯電話機1100は、同時に、音声コーデック1159において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ1117より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
なお、電子メールの場合と同様に、携帯電話機1100は、受信した簡易ホームページ等にリンクされたデータを、記録再生部1162を介して、記憶部1123に記録する(記憶させる)ことも可能である。
また、携帯電話機1100は、主制御部1150において、撮像されてCCDカメラ1116で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
さらに、携帯電話機1100は、赤外線通信部1181で赤外線により外部の機器と通信することができる。
携帯電話機1100は、画像エンコーダ1153として画像符号化装置300を用いることにより、例えばCCDカメラ1116において生成された画像データを符号化して伝送する際に、符号化処理の効率の低減を抑制しながら符号化効率を向上させることができる。
また、携帯電話機1100は、画像デコーダ1156として画像復号装置500を用いることにより、例えば、簡易ホームページ等にリンクされた動画像ファイルのデータ(符号化データ)を生成する際の符号化処理の効率の低減を抑制しながら、そのデータの符号化効率を向上させることを実現することができる。
なお、以上において、携帯電話機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の場合と同様に、本実施の画像符号化装置300および画像復号装置400を適用することができる。
<6.第6の実施の形態>
[ハードディスクレコーダ]
図24は、本実施の画像符号化装置300および画像復号装置500を用いるハードディスクレコーダの主な構成例を示すブロック図である。
図24に示されるハードディスクレコーダ(HDDレコーダ)1200は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
ハードディスクレコーダ1200は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ1200は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
さらに、ハードディスクレコーダ1200は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ1260に供給し、モニタ1260の画面にその画像を表示させ、モニタ1260のスピーカよりその音声を出力させることができる。また、ハードディスクレコーダ1200は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ1260に供給し、モニタ1260の画面にその画像を表示させ、モニタ1260のスピーカよりその音声を出力させることもできる。
もちろん、この他の動作も可能である。
図24に示されるように、ハードディスクレコーダ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に内蔵されるデコーダとして画像復号装置500を用いる。つまり、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダは、画像復号装置500の場合と同様に、I_PCMモードの選択をLCUよりも小さいCU単位で制御された符号化データを適切に復号する。したがって、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダは、符号化時の冗長な処理の低減と、符号化データに含まれる冗長な情報の低減を実現させることができる。これにより、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダは、符号化処理の効率の低減を抑制しながら符号化効率を向上させることを実現することができる。
したがって、ハードディスクレコーダ1200は、例えば、チューナや通信部1235が受信するビデオデータ(符号化データ)や、記録再生部1233が再生するビデオデータ(符号化データ)を生成する際の符号化処理の効率の低減を抑制しながら、そのデータの符号化効率を向上させることを実現することができる。
また、ハードディスクレコーダ1200は、エンコーダ1251として画像符号化装置300を用いる。したがって、エンコーダ1251は、画像符号化装置300の場合と同様に、I_PCMモードの選択をLCUよりも小さいCU単位で制御する。つまり、エンコーダ1251は、符号化時の冗長な処理をより低減させることができるとともに、符号化データに含まれる冗長な情報をより低減させることができる。これにより、エンコーダ1251は、符号化処理の効率の低減を抑制しながら符号化効率を向上させることができる。
したがって、ハードディスクレコーダ1200は、例えば、ハードディスクに記録する符号化データを生成する際に、符号化処理の効率の低減を抑制しながら符号化効率を向上させることができる。
なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ1200について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ1200の場合と同様に、本実施の画像符号化装置300および画像復号装置500を適用することができる。
<7.第7の実施の形態>
[カメラ]
図25は、本実施の画像符号化装置300および画像復号装置500を用いるカメラの主な構成例を示すブロック図である。
図25に示されるカメラ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として画像復号装置500を用いる。つまり、デコーダ1315は、画像復号装置500の場合と同様に、I_PCMモードの選択をLCUよりも小さいCU単位で制御された符号化データを適切に復号する。したがって、デコーダ1315は、符号化時の冗長な処理の低減と、符号化データに含まれる冗長な情報の低減を実現させることができる。これにより、デコーダ1315は、符号化処理の効率の低減を抑制しながら符号化効率を向上させることを実現することができる。
したがって、カメラ1300は、例えば、CCD/CMOS1312において生成される画像データや、DRAM1318または記録メディア1333から読み出すビデオデータの符号化データや、ネットワークを介して取得するビデオデータの符号化データを生成する際の符号化処理の効率の低減を抑制しながら、そのデータの符号化効率を向上させることを実現することができる。
また、カメラ1300は、エンコーダ1341として画像符号化装置300を用いる。エンコーダ1341は、画像符号化装置300の場合と同様に、I_PCMモードの選択をLCUよりも小さいCU単位で制御する。つまり、エンコーダ1341は、符号化時の冗長な処理をより低減させることができるとともに、符号化データに含まれる冗長な情報をより低減させることができる。これにより、エンコーダ1341は、符号化処理の効率の低減を抑制しながら符号化効率を向上させることができる。
したがって、カメラ1300は、例えば、DRAM1318や記録メディア1333に記録する符号化データや、他の装置に提供する符号化データを生成する際に、符号化処理の効率の低減を抑制しながら符号化効率を向上させることができる。
なお、コントローラ1321が行う復号処理に画像復号装置500の復号方法を適用するようにしてもよい。同様に、コントローラ1321が行う符号化処理に画像符号化装置300の符号化方法を適用するようにしてもよい。
また、カメラ1300が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
もちろん、本実施の画像符号化装置300および画像復号装置500は、上述した装置以外の装置やシステムにも適用可能である。
本発明は、例えば、MPEG,H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して受信する際に、若しくは光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置や画像復号装置に適用することができる。