(57)【要約】【課題】異なる符号化方式のビットストリームの復号化やビットストリームの生成を容易に行えるようにする。【解決手段】第１の復号化部であるＣＡＢＡＣ算出復号化部１２１は、ＣＡＢＡＣのビットストリームを復号化して中間ストリームである二値符号データを生成する。第２の復号化部であるＣＡＶＬＣ復号化部１２２は、ＣＡＶＬＣのビットストリームを復号化してシンタックス要素を生成する。シンタックス変換部１２３は、ＣＡＶＬＣのシンタックスをＣＡＢＡＣのシンタックスに変換する。第１の符号化部である二値符号化部１２４は、シンタックス変換後のシンタックス要素の二値符号化を行い、中間ストリームを生成する。中間ストリームをバッファ２３に一旦記憶したのち二値復号化を行い、得られたシンタックス要素を用いてループ内復号化を行う。また、符号化では、復号化と逆の処理を行う。【選択図】        図１
2012124838.tif 000002
【特許請求の範囲】
【請求項１】
第１の可変長符号化方式を用いて生成されたビットストリームを復号化して中間ストリームを生成する第１の復号化部と、
第２の可変長符号化方式を用いて生成されたビットストリームを復号化してシンタックス要素を生成する第２の復号化部と、
前記生成されたシンタックス要素を、前記第２の可変長符号化方式のシンタックスから前記第１の可変長符号化方式のシンタックスに変換するシンタックス変換部と、
前記シンタックス変換後のシンタックス要素を符号化して、前記中間ストリームを生成する第１の符号化部と
を有する画像復号化装置。
【請求項２】
前記中間ストリームを記憶する中間ストリームバッファと、
前記記憶されている中間ストリームを復号化してシンタックス要素を生成する第３の復号化部をさらに備える
請求項１記載の画像復号化装置。
【請求項３】
前記第１の可変長符号化方式はＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）であり、
前記第１の復号化部は、前記ビットストリームの算術復号化を行い、前記中間ストリームとして二値符号データを生成し、
前記シンタックス変換部は、前記生成されたシンタックス要素を第２の可変長符号化方式のシンタックスからＣＡＢＡＣのシンタックスに変換し、
前記第１の符号化部は、前記シンタックス要素の二値符号化を行い、前記中間ストリームとして二値符号データを生成し、
前記第３の復号化部は、前記中間ストリームの二値復号化を行い、シンタックス要素を生成する
請求項２記載の画像復号化装置。
【請求項４】
前記第２の可変長符号化方式はＣＡＶＬＣ（Context-based Adaptive Variable Length Coding）であり、
前記第２の復号化部は、ビットストリームのＣＡＶＬＣ復号化を行い、シンタックス要素を生成し、
前記シンタックス変換部は、前記生成されたシンタックス要素をＣＡＶＬＣのシンタックスからＣＡＢＡＣのシンタックスに変換する
請求項３記載の画像復号化装置。
【請求項５】
第１の可変長符号化方式を用いて生成されたビットストリームを復号化して中間ストリームを生成する工程と、
第２の可変長符号化方式を用いて生成されたビットストリームを復号化してシンタックス要素を生成する工程と、
前記シンタックス要素を、前記第２の可変長符号化方式のシンタックスから前記第１の可変長符号化方式のシンタックスに変換する工程と、
前記シンタックス変換後のシンタックス要素を符号化して前記中間ストリームを生成する工程と
を含む画像復号化方法。
【請求項６】
第１の可変長符号化方式を用いて生成されたビットストリームを復号化して中間ストリームを生成する手順と、
第２の可変長符号化方式を用いて生成されたビットストリームを復号化してシンタックス要素を生成する手順と、
前記シンタックス要素を、前記第２の可変長符号化方式のシンタックスから前記第１の可変長符号化方式のシンタックスに変換する手順と、
前記シンタックス変換後のシンタックス要素を符号化して前記中間ストリームを生成する手順と
をコンピュータで実行させるプログラム。
【請求項７】
シンタックス要素を符号化して生成されて中間ストリームバッファに記憶されている中間ストリームを第１の可変長符号化方式を用いて符号化してビットストリームを生成する第１の符号化部と、
前記記憶されている中間ストリームを復号化して、シンタックス要素を生成する第１の復号化部と、
前記中間ストリームを復号化して生成されたシンタックス要素を、前記第１の可変長符号化方式のシンタックスから第２の可変長符号化方式のシンタックスに変換するシンタックス変換部と、
前記シンタックス変換後のシンタックス要素を前記第２の可変長符号化方式を用いて符号化してビットストリームを生成する第２の符号化部と
を有する画像符号化装置。
【請求項８】
シンタックス要素を符号化して前記中間ストリームを生成する第３の符号化部と、
前記中間ストリームを記憶する中間ストリームバッファをさらに備える
請求項７記載の画像符号化装置。
【請求項９】
前記第１の可変長符号化方式はＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）であり、
前記第３の符号化部は、シンタックス要素の二値符号化を行い、前記中間ストリームとして二値符号データを生成し、
前記第１の符号化部は、前記中間ストリームの算術符号化を行いビットストリームを生成し、
前記第１の復号化部は、前記中間ストリームの二値復号化を行いシンタックス要素を生成し、
前記シンタックス変換部は、前記第１の復号化部で生成されたシンタックス要素をＣＡＢＡＣのシンタックスから前記第２の可変長符号化方式のシンタックスに変換する
請求項８記載の画像符号化装置。
【請求項１０】
前記第２の可変長符号化方式はＣＡＶＬＣ（Context-based Adaptive Variable Length Coding）であり、
前記シンタックス変換部は、前記第１の復号化部で生成されたシンタックス要素をＣＡＢＡＣのシンタックスからＣＡＶＬＣのシンタックスに変換し、
前記第２の符号化部は、前記シンタックス変換後のシンタックス要素のＣＡＶＬＣ符号化を行いビットストリームを生成する
請求項９記載の画像符号化装置。
【請求項１１】
シンタックス要素を符号化して生成されて中間ストリームバッファに記憶されている中間ストリームを第１の可変長符号化方式を用いて符号化してビットストリームを生成する工程と、
前記記憶されている中間ストリームを復号化して、シンタックス要素を生成する工程と、
前記中間ストリームを復号化して生成されたシンタックス要素を、前記第１の可変長符号化方式のシンタックスから第２の可変長符号化方式のシンタックスに変換する工程と、
前記シンタックス変換後のシンタックス要素を前記第２の可変長符号化方式を用いて符号化してビットストリームを生成する工程と
を含む画像符号化方法。
【請求項１２】
シンタックス要素を符号化して生成されて中間ストリームバッファに記憶されている中間ストリームを第１の可変長符号化方式を用いて符号化してビットストリームを生成する手順と、
前記記憶されている中間ストリームを復号化して、シンタックス要素を生成する手順と、
前記中間ストリームを復号化して生成されたシンタックス要素を、前記第１の可変長符号化方式のシンタックスから第２の可変長符号化方式のシンタックスに変換する手順と、
前記シンタックス変換後のシンタックス要素を前記第２の可変長符号化方式を用いて符号化してビットストリームを生成する手順と
をコンピュータで実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像復号化装置と画像復号化方法および画像符号化装置と画像符号化方法並びにプログラムに関する。詳しくは、複数種類のビットストリームの復号化や複数種類のビットストリームの生成を容易に行えるようにする。
【背景技術】
【０００２】
従来、ＭＰＥＧ(Moving Picture Experts Group)等の動画像符号化方式では、画像データを１６画素×１６画素や８画素×８画素といったマクロブロック（ＭＢ）と呼ばれるブロックに分割して、ブロック単位で符号化／復号化処理が行われている。また、符号化／復号化処理は、パイプライン動作で行うことにより高速化が図られている。
【０００３】
一般的なパイプライン動作では、例えば２マクロブロック分のデータが格納可能なメモリ領域が確保されている。メモリ領域は、一方の１マクロブロック分の領域が書き込み領域、他方の１マクロブロック分の領域が読み出し領域とされて、１マクロブロック処理期間単位に交互に書き込み領域と読み出し領域を切り替えて使用される。
【０００４】
このようなマクロブロック単位でのパイプライン処理は、各処理がいずれも数百から数千サイクルといった一定のクロックサイクル数内で完了することが保証されている必要がある。そして、ＭＰＥＧ２やＭＰＥＧ４等の従来の符号化方式を使用する場合については現在の半導体技術で十分に保証できる。しかし、圧縮率の高いＨ.２６４／ＡＶＣ(Advanced Video Coding)）やＶＣ−１といった符号化方式では、符号化／復号化処理が複雑になっており、現在の半導体技術では１フレームあたりの処理期間に１フレーム分のストリームを処理することが難しい。例えば、可変長復号に関しては最大処理サイクル数が数百や数千サイクルでは収まらなくなってきており、ＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）を使用する場合、情報量が大きいと、１フレーム期間で１フレーム分のストリームを処理することができない。
【０００５】
そのため、特許文献１では、可変長復号後のデータを一時格納用メモリへ一旦格納して、その後段となるループ内復号処理において、メモリに格納されている可変長復号後のデータを読み出して、処理を実行することが行われている。このように、可変長復号後のデータを一時格納用メモリへ一旦格納すれば、可変長復号におけるフレームあるいはマクロブロック毎の処理サイクルのゆらぎを吸収できる。また、完全に可変長復号したデータを一時格納用メモリに格納する場合、膨大なメモリ容量が必要となる。そのため、特許文献１では、ビットストリームに対応した方式で可変長復号を行い、得られた画素係数情報を複数種類のビットストリームの符号化方式と異なる方式で再符号化して中間ストリームとしてメモリに格納することが行われている。このように中間ストリームをメモリに記憶させることで、必要とされるメモリ容量を少なくできる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１７４７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、画素係数情報を複数種類のビットストリームの符号化方式と異なる方式で再符号化してメモリに格納する場合、新たに再符号化部とそれを復号化する復号化部が必要となり回路規模が増大してしまう。また、再符号化対象となるのは画素係数情報のみであり、それ以外の情報については再符号化されないため、ビットストリームに対応した方式で可変長復号を行うことにより得られた全ての情報を再符号化した場合に比べて、中間ストリームを一旦格納しておくために必要となるメモリの容量が大きくなってしまう。
【０００８】
そこで、この発明では複数種類のビットストリームの復号化や複数種類のビットストリームの生成を容易に行える画像復号化装置と画像復号化方法および画像符号化装置と画像符号化方法並びにプログラムを提供する。
【課題を解決するための手段】
【０００９】
この発明の第１の側面は、第１の可変長符号化方式を用いて生成されたビットストリームを復号化して中間ストリームを生成する第１の復号化部と、第２の可変長符号化方式を用いて生成されたビットストリームを復号化してシンタックス要素を生成する第２の復号化部と、前記生成されたシンタックス要素を、前記第２の可変長符号化方式のシンタックスから前記第１の可変長符号化方式のシンタックスに変換するシンタックス変換部と、前記シンタックス変換後のシンタックス要素を符号化して、前記中間ストリームを生成する第１の符号化部とを有する画像復号化装置にある。
【００１０】
この発明においては、第１の可変長符号化方式例えばＣＡＢＡＣのビットストリームをＣＡＢＡＣ算出復号化して中間ストリームである二値符号データが生成される。また、第２の可変長符号化方式例えばＣＡＶＬＣのビットストリームを復号化してシンタックス要素が生成される。生成されたシンタックス要素は、第２の可変長符号化方式のシンタックスから第１の可変長符号化方式のシンタックスに変換されて、シンタックス変換後のシンタックス要素の二値符号化によって、中間ストリームである二値符号データが生成される。中間ストリームは、中間ストリームバッファに記憶される。また、記憶されている中間ストリームの二値復号化が行われてシンタックス要素がループ内復号化部に供給されて復号画像データの生成が行われる。
【００１１】
この発明の第２の側面は、第１の可変長符号化方式を用いて生成されたビットストリームを復号化して中間ストリームを生成する工程と、第２の可変長符号化方式を用いて生成されたビットストリームを復号化してシンタックス要素を生成する工程と、前記シンタックス要素を、前記第２の可変長符号化方式のシンタックスから前記第１の可変長符号化方式のシンタックスに変換する工程と、前記シンタックス変換後のシンタックス要素を符号化して前記中間ストリームを生成する工程とを含む画像復号化方法にある。
【００１２】
この発明の第３の側面は、第１の可変長符号化方式を用いて生成されたビットストリームを復号化して中間ストリームを生成する手順と、第２の可変長符号化方式を用いて生成されたビットストリームを復号化してシンタックス要素を生成する手順と、前記シンタックス要素を、前記第２の可変長符号化方式のシンタックスから前記第１の可変長符号化方式のシンタックスに変換する手順と、前記シンタックス変換後のシンタックス要素を符号化して前記中間ストリームを生成する手順とをコンピュータで実行させるプログラムにある。
【００１３】
この発明の第４の側面は、シンタックス要素を符号化して生成されて中間ストリームバッファに記憶されている中間ストリームを第１の可変長符号化方式を用いて符号化してビットストリームを生成する第１の符号化部と、前記記憶されている中間ストリームを復号化して、シンタックス要素を生成する第１の復号化部と、前記中間ストリームを復号化して生成されたシンタックス要素を、前記第１の可変長符号化方式のシンタックスから第２の可変長符号化方式のシンタックスに変換するシンタックス変換部と、前記シンタックス変換後のシンタックス要素を前記第２の可変長符号化方式を用いて符号化してビットストリームを生成する第２の符号化部とを有する画像符号化装置にある。
【００１４】
この発明においては、シンタックス要素を符号化して生成されたバッファに記憶されている中間ストリームの符号化、例えばシンタックス要素を二値符号化して生成された二値符号データの算術符号化を行い、第１の可変長符号化方式であるＣＡＢＡＣのビットストリームが生成される。また、中間ストリームを復号化してシンタックス要素が生成される。生成されたシンタックス要素は、第１の可変長符号化方式のシンタックスから第２の可変長符号化方式のシンタックスに変換されて、シンタックス変換後のシンタックス要素の符号化によって、第２の可変長符号化方式であるＣＡＶＬＣのビットストリームが生成される。
【００１５】
この発明の第５の側面は、シンタックス要素を符号化して生成されて中間ストリームバッファに記憶されている中間ストリームを第１の可変長符号化方式を用いて符号化してビットストリームを生成する工程と、前記記憶されている中間ストリームを復号化して、シンタックス要素を生成する工程と、前記中間ストリームを復号化して生成されたシンタックス要素を、前記第１の可変長符号化方式のシンタックスから第２の可変長符号化方式のシンタックスに変換する工程と、前記シンタックス変換後のシンタックス要素を前記第２の可変長符号化方式を用いて符号化してビットストリームを生成する工程とを含む画像符号化方法にある。
【００１６】
この発明の第６の側面は、シンタックス要素を符号化して生成されて中間ストリームバッファに記憶されている中間ストリームを第１の可変長符号化方式を用いて符号化してビットストリームを生成する手順と、前記記憶されている中間ストリームを復号化して、シンタックス要素を生成する手順と、前記中間ストリームを復号化して生成されたシンタックス要素を、前記第１の可変長符号化方式のシンタックスから第２の可変長符号化方式のシンタックスに変換する手順と、前記シンタックス変換後のシンタックス要素を前記第２の可変長符号化方式を用いて符号化してビットストリームを生成する手順とをコンピュータで実行させるプログラムにある。
【００１７】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【発明の効果】
【００１８】
この発明によれば、ビットストリームの復号化を行う場合、第１の可変長符号化方式を用いて生成されたビットストリームを復号化して中間ストリームの生成が行われる。また、第２の可変長符号化方式のビットストリームを復号化してシンタックス要素が生成されて、生成されたシンタックス要素が第２の可変長符号化方式のシンタックスから第１の可変長符号化方式のシンタックスに変換される。さらに、シンタックス変換後のシンタックス要素が符号化されて中間ストリームが生成される。
【００１９】
また、ビットストリームを生成する場合、シンタックス要素を符号化して生成されて中間ストリームバッファに記憶されている中間ストリームを第１の可変長符号化方式を用いて符号化してビットストリームが生成される。また、記憶されている中間ストリームを復号化して生成されたシンタックス要素が、第１の可変長符号化方式のシンタックスから第２の可変長符号化方式のシンタックスに変換される。さらに、シンタックス変換後のシンタックス要素を第２の可変長符号化方式を用いて符号化してビットストリームが生成される。
【００２０】
このようなビットストリームの復号化や生成を行うことで、複数種類のビットストリームの符号化方式と異なる方式で再符号化する再符号化部等を設ける必要がなく回路規模の増大を小さく抑えることができる。また、このような中間ストリームを生成することで、バッファの必要容量を少なくできる。さらに、画像復号化と画像符号化を行う場合、符号化や復号化を行う回路を共用して回路規模の増大をさらに小さく抑えることが可能となる。したがって、複数種類のビットストリームの復号化や複数種類のビットストリームの生成を容易に行うことができる。
【図面の簡単な説明】
【００２１】
【図１】画像復号化装置の構成例を示す図である。
【図２】画像復号化装置の動作を示すフローチャートである。
【図３】変換対象のシンタックスコードを例示した図である。
【図４】画像符号化装置の構成例を示す図である。
【図５】画像符号化装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
１．画像復号化装置の構成
２．画像復号化装置の動作
３．画像符号化装置の構成
４．画像符号化装置の動作
５．ソフトウェア処理の場合
【００２３】
＜１．画像復号化装置の構成＞
図１は、本発明の画像復号化装置の構成例を示している。なお、画像復号化装置の構成例は、第１の可変長符号化方式としてＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）を用いて生成されたビットストリームと、第２の可変長符号化方式としてＣＡＶＬＣ（Context-based Adaptive Variable Length Coding）を用いて生成されたビットストリームを復号化する場合を示している。
【００２４】
画像復号化装置１０は、ビットストリームの復号化処理を行い復号画像データを出力する復号化部１１と、ストリームを記憶する記憶部２１で構成されている。復号化部１１は、可変長復号化部１２とループ内復号化部１３を備えている。また、可変長復号化部１２は、ＣＡＢＡＣ算術復号化部１２１、ＣＡＶＬＣ復号化部１２２、シンタックス変換部１２３、ＣＡＢＡＣ二値符号化部１２４、ＣＡＢＡＣ二値復号化部１２５を備えている。また、記憶部２１は、ストリームバッファ２２および中間ストリームバッファ２３により構成されている。なお、図１では、復号化部１１と記憶部２１が独立した構成としているが、復号化部１１に記憶部２１を備える構成としてもよい。
【００２５】
画像復号化装置１０に入力されたビットストリーム（ビットストリーム）は、記憶部２１のストリームバッファ２２に一旦記憶されたのち、復号化部１１によってストリームバッファ２２から読み出される。
【００２６】
復号化部１１は、ストリームバッファ２２から読み出したビットストリームを、読み出したビットストリームに適用されている符号化方式にしたがい、ＣＡＶＬＣ復号化部１２２またはＣＡＢＡＣ算術復号化部１２１のいずれかで復号化する。具体的には、ビットストリームのヘッダ情報がＣＡＢＡＣで符号化されていることを示している場合、復号化部１１は、第１の復号化部であるＣＡＢＡＣ算術復号化部１２１で可変長復号を行い、得られた二値符号データを中間ストリームバッファ２３に出力する。また、ヘッダ情報がＣＡＶＬＣで符号化されていることを示している場合、復号化部１１は、第２の復号化部であるＣＡＶＬＣ復号化部１２２で可変長復号を行い、得られたシンタックス要素をシンタックス変換部１２３に出力する。なお、シンタックス要素とは、直交変換係数の量子化データや動きベクトル情報など、シンタックス（データ列の表現規則）にしたがって伝送することが定められている情報を示している。
【００２７】
シンタックス変換部１２３は、ＣＡＶＬＣ復号化部１２２から出力されたシンタックス要素を、ＣＡＶＬＣからＣＡＢＡＣのシンタックスに変換して、変換後のシンタックス要素を第１の符号化部であるＣＡＢＡＣ二値符号化部１２４に出力する。
【００２８】
ＣＡＢＡＣ二値符号化部１２４は、シンタックス要素の二値符号化を行い、得られた二値符号データを中間ストリームバッファ２３に出力する。
【００２９】
記憶部２１の中間ストリームバッファ２３に一旦記憶された二値符号データは、第３の復号化部であるＣＡＢＡＣ二値復号化部１２５によって読み出される。
【００３０】
ＣＡＢＡＣ二値復号化部１２５は、中間ストリームバッファ２３から読み出した二値符号データの復号化処理を行い、得られたシンタックス要素をループ内復号化部１３に出力する。
【００３１】
ループ内復号化部１３は、ＣＡＢＡＣ二値復号化部１２５から供給されたシンタックス要素の逆量子化、逆直交変換、およびフレーム間予測やフレーム内予測等を行い、復号化画像データを生成して出力する。
【００３２】
＜２．画像復号化装置の動作＞
次に、画像復号化装置１０の動作について、図２に示すフローチャートを用いて説明する。ステップＳＴ１で画像復号化装置１０は、ビットストリームがＣＡＢＡＣストリームであるか判別する。画像復号化装置１０は、ビットストリームがＣＡＢＡＣストリームである場合にステップＳＴ２に進み、ＣＡＶＬＣストリームである場合にステップＳＴ３に進む。画像復号化装置１０は、ビットストリームのピクチャパラメータセットにおいて、エントロピー符号のモードを示す「entropy_coding_mode_flag」に基づきＣＡＢＡＣストリームであるか判別する。「entropy_coding_mode_flag」は、ＣＡＬＶＣであるときフラグの値が「０」、ＣＡＢＡＣであるときフラグの値が「１」に設定される。したがって、画像復号化装置１０は、「entropy_coding_mode_flag」が「１」である場合、ＣＡＢＡＣストリームと判別してステップＳＴ２の処理を行い、「０」である場合、ＣＡＶＬＣストリームと判別してステップＳＴ３の処理を行う。
【００３３】
ステップＳＴ２で画像復号化装置１０は、ＣＡＢＡＣ算術復号化を行う。画像復号化装置１０のＣＡＢＡＣ算術復号化部１２１は、ビットストリームに対して算術復号化を行い、二値符号データを生成してステップＳＴ６に進む。
【００３４】
ステップＳＴ３で画像復号化装置１０は、ＣＡＶＬＣ復号化を行う。画像復号化装置１０のＣＡＶＬＣ復号化部１２２は、ビットストリームに対してＣＡＶＬＣ復号化を行い、シンタックス要素を生成してステップＳＴ４に進む。
【００３５】
ステップＳＴ４で画像復号化装置１０は、シンタックス変換を行う。画像復号化装置１０のシンタックス変換部１２３は、ＣＡＶＬＣとＣＡＢＡＣで異なるシンタックスについて、ＣＡＶＬＣのシンタックスをＣＡＢＡＣのシンタックスに変換してステップＳＴ５に進む。
【００３６】
図３は、変換対象のシンタックスコードを例示している。シンタックス変換において、シンタックス変換部１２３は、スライスデータの「mb_skip_run」を削除して、「mb_skip_flag」を設ける。また、シンタックス変換部１２３は、マクロブロックレイヤにおいて、「mb_type」ではP_8x8ref0のタイプがＣＡＶＬＣのみで設定されていることから、P_8x8ref0のタイプであるとき「mb_type」の変更を行う。さらに、残差ブロックについて、ＣＡＶＬＣでは「coeff_token」「trailing_ones_sign_flag」「level_prefix」「level_suffix」「total_zeros」「run_before」の係数情報シンタックス群が設けられている。したがって、シンタックス変換部１２３は、ＣＡＶＬＣの係数情報シンタックス群を削除する。また、シンタックス変換部１２３は、ＣＡＢＡＣの係数情報シンタックス群、すなわち「coded_block_flag」「significant_coeff_flag」「last_significant_coeff_flag」「coeff_abs_level_minus1」「coeff_sign_flag」を設ける。
【００３７】
ステップＳＴ５で画像復号化装置１０は、ＣＡＢＡＣ二値符号化を行う。画像復号化装置１０のＣＡＢＡＣ二値符号化部１２４は、ステップＳＴ３とステップＳＴ４の処理を行うことにより得られたシンタックス要素の二値符号化を行い、二値符号データを生成してステップＳＴ６に進む。
【００３８】
ステップＳＴ６で画像復号化装置１０は、ＣＡＢＡＣ二値符号転送を行う。画像復号化装置１０は、ステップＳＴ２のＣＡＢＡＣ算術復号化およびステップＳＴ５のＣＡＢＡＣ二値符号化を行うことにより生成された二値符号データを、記憶部２１の中間ストリームバッファ２３に記憶させてステップＳＴ７に進む。
【００３９】
ステップＳＴ７で画像復号化装置１０は、ＣＡＢＡＣ二値復号化を行う。画像復号化装置１０のＣＡＢＡＣ二値復号化部１２５は、記憶部２１の中間ストリームバッファ２３から二値符号データを読み出して二値復号化を行い、シンタックス要素を生成してステップＳＴ８に進む。
【００４０】
ステップＳＴ８で画像復号化装置１０は、ループ内復号化を行う。画像復号化装置１０のループ内復号化部１３は、ＣＡＢＡＣ二値復号化部１２５から供給されたシンタックス要素の逆量子化、逆直交変換、およびフレーム間予測やフレーム内予測等を行い、復号化画像データを生成する。
【００４１】
このように、画像復号化装置１０は、ＣＡＢＡＣ復号化中に生成される二値符号データを中間ストリームとして用いることで、ビットストリームがＣＡＢＡＣストリームである場合、中間ストリームを生成するための再符号化部を設ける必要がない。また、ビットストリームがＣＡＶＬＣストリームである場合、中間ストリームを生成するための再符号化部として、シンタックス変換部１２３とＣＡＢＡＣ二値符号化部１２４が必要となる。しかし、画像の復号化だけでなく符号化を行う装置では、ＣＡＢＡＣストリームを生成する場合、ＣＡＢＡＣ二値符号化部が用いられている。すなわち、画像の符号化で用いるＣＡＢＡＣ二値符号化部を中間ストリームの生成に用いれば、中間ストリームの生成のためにＣＡＢＡＣ二値符号化部を設ける必要がない。したがって、従来のように、複数種類のビットストリームの符号化方式と異なる方式で再符号化を行い中間ストリームを生成してメモリに格納する場合に比べて、簡単な構成とすることができる。また、中間ストリームバッファ２３に記憶されるデータは二値符号データである。したがって、再符号化されていないシンタックス要素を記憶する場合に比べて、記憶部２１のメモリ容量を少なくできる。
【００４２】
＜３．画像符号化装置の構成＞
次に、画像符号化装置について説明する。図４は、本発明の画像符号化装置の構成例を示している。なお、画像符号化装置の構成例は、第１の可変長符号化方式としてＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）、第２の可変長符号化方式としてＣＡＶＬＣ（Context-based Adaptive Variable Length Coding）を用いて、第１または第２のいずれかの可変長符号化方式を用いてビットストリームを生成する場合を示している。
【００４３】
画像符号化装置３０は、画像データの符号化処理を行いビットストリームを出力する符号化部３１と、ストリームを記憶する記憶部４１で構成されている。符号化部３１は、ループ内符号化部３２と可変長符号化部３３を備えている。また、可変長符号化部３３は、ＣＡＢＡＣ二値符号化部３３１、ＣＡＢＡＣ算術符号化部３３２、ＣＡＢＡＣ二値復号化部３３３、シンタックス変換部３３４、ＣＡＶＬＣ符号化部３３５を備えている。また、記憶部４１は、中間ストリームバッファ４２およびストリームバッファ４３により構成されている。なお、図４では、符号化部３１と記憶部４１が独立した構成としているが、符号化部３１に記憶部４１を備える構成としてもよい。
【００４４】
画像符号化装置３０に入力された入力画像の画像データは、ループ内符号化部３２に供給される。ループ内符号化部３２は、入力画像の画像データの符号化処理を行い、シンタックス要素を生成する。ループ内符号化部３２は、例えば入力画像と予測画像との誤差を示す予測誤差データの直交変換、直交変換係数の量子化、およびフレーム間予測やフレーム内予測等による予測画像の生成等を行い、シンタックス要素を生成する。ループ内符号化部３２は、符号化処理を行うことにより生成したシンタックス要素を、可変長符号化部３３のＣＡＢＡＣ二値符号化部３３１に出力する。
【００４５】
第３の符号化部であるＣＡＢＡＣ二値符号化部３３１は、シンタックス要素に対して二値符号化を行い、得られた二値符号データを記憶部４１の中間ストリームバッファ４２に出力する。この二値符号データは、中間ストリームバッファ４２に一旦記憶されたのち、可変長符号化部３３によって中間ストリームバッファ４２から読み出される。
【００４６】
可変長符号化部３３は、中間ストリームバッファ４２から読み出した二値符号データを、選択されている可変長符号化方式で符号化する。例えば、可変長符号化方式としてＣＡＢＡＣが選択されている場合、可変長符号化部３３は、第１の符号化部であるＣＡＢＡＣ算術符号化部３３２で可変長符号化を行い、得られたビットストリームをストリームバッファ４３に出力する。また、可変長符号化方式としてＣＡＶＬＣが選択されている場合、可変長符号化部３３は、第１の復号化部であるＣＡＢＡＣ二値復号化部３３３で可変長復号化を行い、得られたシンタックス要素をシンタックス変換部３３４に出力する。
【００４７】
シンタックス変換部３３４は、ＣＡＢＡＣ二値復号化部３３３から出力されたシンタックス要素を、ＣＡＢＡＣからＣＡＶＬＣのシンタックスに変換して、変換後のシンタックス要素を第２の符号化部であるＣＡＶＬＣ符号化部３３５に出力する。
【００４８】
ＣＡＶＬＣ符号化部３３５は、ＣＡＶＬＣのシンタックス要素の可変長符号化を行い、得られたビットストリームをストリームバッファ４３に出力する。
【００４９】
記憶部４１のストリームバッファ４３に一旦記憶されたビットストリームは、読み出されて所定の伝送レートで出力される。
【００５０】
＜４．画像符号化装置の動作＞
次に、画像符号化装置３０の動作について、図５に示すフローチャートを用いて説明する。ステップＳＴ１１で画像符号化装置３０は、ループ内符号化を行う。画像符号化装置３０のループ内符号化部３２は、入力画像と予測画像との誤差を示す予測誤差データの直交変換、直交変換係数の量子化、フレーム間予測やフレーム内予測等による予測画像の生成等を行い、シンタックス要素を生成してステップＳＴ１２に進む。
【００５１】
ステップＳＴ１２で画像符号化装置３０は、ＣＡＢＡＣ二値符号化を行う。画像符号化装置３０のＣＡＢＡＣ二値符号化部３３１は、ステップＳＴ１１で生成したシンタックス要素の二値符号化を行い、二値符号データを生成してステップＳＴ１３に進む。
【００５２】
ステップＳＴ１３で画像符号化装置３０はＣＡＢＡＣ二値符号転送を行う。画像符号化装置３０は、ステップＳＴ１２のＣＡＢＡＣ二値符号化で生成された二値符号データを、記憶部４１の中間ストリームバッファ４２に記憶してステップＳＴ１４に進む。
【００５３】
ステップＳＴ１４で画像符号化装置３０は、ＣＡＢＡＣストリームの生成であるか判別する。画像符号化装置３０は、ユーザ等によって選択されている可変長符号化方式がＣＡＢＡＣであるときステップＳＴ１５に進み、ＣＡＶＬＣであるときステップＳＴ１６に進む。
【００５４】
ステップＳＴ１５で画像符号化装置３０は、ＣＡＢＡＣ算術符号化を行う。画像符号化装置３０のＣＡＢＡＣ算術符号化部３３２は、中間ストリームバッファ４２に記憶されている二値符号データを読み出して算術符号化を行い、ＣＡＢＡＣのビットストリームを生成する。
【００５５】
ステップＳＴ１６で画像符号化装置３０は、ＣＡＢＡＣ二値復号化を行う。画像符号化装置３０のＣＡＢＡＣ二値復号化部３３３は、中間ストリームバッファ４２に記憶されている二値符号データを読み出して復号化を行い、シンタックス要素を生成してステップＳＴ１７に進む。
【００５６】
ステップＳＴ１７で画像符号化装置３０は、シンタックス変換を行う。画像符号化装置３０のシンタックス変換部３３４は、ＣＡＢＡＣとＣＡＶＬＣで異なるシンタックス例えば図３に示すシンタックスについて、ＣＡＢＡＣのシンタックスをＣＡＶＬＣのシンタックスに変換してステップＳＴ１８に進む。
【００５７】
ステップＳＴ１８で画像符号化装置３０は、ＣＡＶＬＣ符号化を行う。画像符号化装置３０のＣＡＶＬＣ符号化部３３５は、ステップＳＴ１６とステップＳＴ１７の処理を行うことにより得られたシンタックス要素のＣＡＶＬＣ符号化を行い、ＣＡＶＬＣのビットストリームを生成する。
【００５８】
このように、画像符号化装置３０は、ＣＡＢＡＣ符号化中に生成される二値符号データを中間ストリームとして用いることで、ＣＡＢＡＣのビットストリームを生成する場合、中間ストリームを生成するための符号化部を設ける必要がない。また、ＣＡＶＬＣのビットストリームを生成する場合、中間ストリームがＣＡＢＡＣの二値符号データであることから、ＣＡＢＡＣ二値復号化部３３３とシンタックス変換部３３４が必要となる。しかし、画像の符号化だけでなく復号化を行う装置では、ＣＡＢＡＣストリームを復号化するためＣＡＢＡＣ二値復号化部が用いられており、このＣＡＢＡＣ二値復号化部を用いることで、中間ストリームを復号化できる。したがって、従来のように複数種類のビットストリームの符号化方式と異なる方式で中間ストリームを生成してメモリに格納する場合に比べて、簡単な構成とすることができる。また、中間ストリームバッファ４２に記憶されるデータは二値符号化を行うことにより得られた二値符号データである。したがって、符号化されていないシンタックス要素を記憶する場合に比べて、記憶部４１のメモリ容量を少なくできる。
【００５９】
＜５．ソフトウェア処理の場合＞
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【００６０】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【００６１】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータは、転送されてくるプログラムを受信して、内蔵するハードディスク等の記録媒体にインストールすることができる。
【００６２】
コンピュータは、上述の一連の処理を行うプログラムを読み出して実行して、記録媒体に記録されている画像データの符号化処理やビットストリームの復号化処理、通信部を介して供給された画像データの符号化処理やビットストリームの復号化処理を行う。
【００６３】
なお、本発明は、上述した発明の実施の形態に限定して解釈されるべきではない。例えば、第１の符号化方式はＣＡＢＡＣに限らず他の方式、例えばビットストリームを復号化してシンタックス要素を生成する場合、またはシンタックス要素を符号化してビットストリームを生成する場合に、中間データが生成される方式であればよい。なお、この場合の中間データは中間ストリームとして用いる。また、第２の可変長符号化方式はＣＡＶＬＣに限らず他の方式を用いてもよい。この発明の実施の形態は、例示という形態で本発明を開示しており、本発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【産業上の利用可能性】
【００６４】
この発明の画像復号化装置と画像復号化方法および画像符号化装置と画像符号化方法並びにプログラムでは、第１の可変長符号化方式を用いて生成されたビットストリームを復号化して中間ストリームの生成が行われる。また、第２の可変長符号化方式のビットストリームを復号化してシンタックス要素が生成されて、生成されたシンタックス要素が第２の可変長符号化方式のシンタックスから第１の可変長符号化方式のシンタックスに変換される。さらに、シンタックス変換後のシンタックス要素が符号化されて中間ストリームが生成される。
【００６５】
また、シンタックス要素を符号化して生成されて中間ストリームバッファに記憶されている中間ストリームを第１の可変長符号化方式を用いて符号化してビットストリームが生成される。また、記憶されている中間ストリームを復号化して生成されたシンタックス要素が、第１の可変長符号化方式のシンタックスから第２の可変長符号化方式のシンタックスに変換される。さらに、シンタックス変換後のシンタックス要素を第２の可変長符号化方式を用いて符号化してビットストリームが生成される。
【００６６】
このようなビットストリームの復号化や生成を行うことで、従来に比べて回路規模の増大を小さく抑えることができる。また、バッファの必要容量を少なくできる。したがって、複数種類のビットストリームの復号化や複数種類のビットストリームの生成を容易に行うことができるので、画像の記録や再生を行う装置等に適している。
【符号の説明】
【００６７】
１０・・・画像復号化装置、１１・・・復号化部、１２・・・可変長復号化部、１３・・・ループ内復号化部、２１，４１・・・記憶部、２２，４３・・・ストリームバッファ、２３，４２・・・中間ストリームバッファ、３０・・・画像符号化装置、３１・・・符号化部、３２・・・ループ内符号化部、３３・・・可変長符号化部、１２１・・・ＣＡＢＡＣ算術復号化部、１２２・・・ＣＡＶＬＣ復号化部、１２３，３３４・・・シンタックス変換部、１２４，３３１・・・ＣＡＢＡＣ二値符号化部、１２５，３３３・・・ＣＡＢＡＣ二値復号化部、３３２・・・ＣＡＢＡＣ算術符号化部、３３５・・・ＣＡＶＬＣ符号化部
【図１】
2012124838.tif 000003
【図２】
2012124838.tif 000004
【図３】
2012124838.tif 000005
【図４】
2012124838.tif 000006
【図５】
2012124838.tif 000007