(57)【要約】【課題】画面内の境界部分の画質劣化がなく高ビットレートの符号化処理を実現する画像符号化装置を提供すること。【解決手段】画像符号化装置１は、画像データのシンタックス要素から生成された中間データをエントロピー符号化してビットストリームを生成する複数のエントロピー符号化部１０５，１０６と、中間データを複数のエントロピー符号化部のいずれかへ供給する符号化制御部１０４とを備える。符号化制御部１０４は、各エントロピー符号化部の処理状況に応じて、フレーム単位でエントロピー符号化を行なうエントロピー符号化部を決定する。【選択図】図１
2014143572.tif 000002
【特許請求の範囲】
【請求項１】
画像データを符号化処理する画像符号化装置において、
前記画像データからシンタックス要素を生成するシンタックス要素生成部と、
前記シンタックス要素から中間データを生成する中間データ生成部と、
前記中間データをエントロピー符号化してビットストリームを生成する複数のエントロピー符号化部と、
前記符号化された複数のビットストリームを１つのビットストリームに多重化する多重化部と、
前記中間データ生成部から出力される前記中間データをメモリに書き込み、該メモリから前記中間データを読み出して前記複数のエントロピー符号化部のいずれかへ供給する符号化制御部とを備え、
該符号化制御部は、前記各エントロピー符号化部の処理状況に応じて、フレーム単位でエントロピー符号化を行なうエントロピー符号化部を決定し、該決定したエントロピー符号化部に該当するフレームの中間データを前記メモリから読み出して供給し、
前記決定したエントロピー符号化部では、該当するフレームの全ての中間データについてエントロピー符号化を行い、他のエントロピー符号化部では当該フレームの中間データのエントロピー符号化を行わないことを特徴とする画像符号化装置。
【請求項２】
請求項１記載の画像符号化装置において、
前記決定したエントロピー符号化部では、該当するフレームの中間データのエントロピー符号化を完了するまでは、他のフレームの中間データのエントロピー符号化を行わないことを特徴とする画像符号化装置。
【請求項３】
請求項１記載の画像符号化装置において、
前記符号化制御部は、前記各エントロピー符号化部の中で、先行するフレームのエントロピー符号化が最も早く終了したエントロピー符号化部に、次のフレームのエントロピー符号化を割り当てることを特徴とする画像符号化装置。
【請求項４】
請求項１記載の画像符号化装置において、
前記符号化処理部は、前記中間データ生成部において１フレーム内の先頭の１マクロブロック分の中間データが生成された時点で、該中間データを前記エントロピー符号化部に供給してエントロピー符号化を開始させることを特徴とする画像符号化装置。
【請求項５】
画像データを符号化処理する画像符号化装置において、
前記画像データからシンタックス要素を生成するシンタックス要素生成部と、
前記シンタックス要素を符号化してビットストリームを生成する複数の符号化部と、
前記符号化された複数のビットストリームを１つのビットストリームに多重化する多重化部と、
前記シンタックス要素生成部から出力される前記シンタックス要素をメモリに書き込み、該メモリから前記シンタックス要素を読み出して前記複数の符号化部のいずれかへ供給する符号化制御部とを備え、
該符号化制御部は、前記各符号化部の処理状況に応じて、フレーム単位で符号化を行なう符号化部を決定し、該決定した符号化部に該当するフレームのシンタックス要素を前記メモリから読み出して供給し、
前記決定した符号化部では、該当するフレームの全てのシンタックス要素について符号化を行い、他の符号化部では当該フレームのシンタックス要素の符号化は行わないことを特徴とする画像符号化装置。
【請求項６】
請求項１または５記載の画像符号化装置において、
前記多重化部は、前記複数のビットストリームをフレーム単位に区別して前記メモリに書き込み及び読み出すものであって、読み出す順序を、前記符号化制御部に前記中間データまたは前記シンタックス要素が入力されたときのフレームの順序とすることを特徴とする画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画質劣化を抑え効率的に画像データを符号化する画像符号化装置に関する。
【背景技術】
【０００２】
画像符号化処理の高速化に対応するため、複数の符号化装置を並列に動作させる構成が提案されている。特許文献１には、入力映像信号を１画面当たり複数のブロックに分割し、Ｎ個（ただしＮは２以上の自然数）の符号化装置にて各ブロックの同一ピクセル位置の映像信号をそれぞれ別々に、かつ、同時に符号化して出力する構成が開示されている。特許文献２には、符号化対象データを複数の部分データに分割し、分割された複数の部分データを複数の符号化手段に振り分けるものであって、振り分けられた部分データに対する符号化が終了した符号化手段に対して、さらに次の部分データを順次振り分ける構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−２３８３３４号公報
【特許文献２】特開平１１−３４６３６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前記特許文献１では、１画面を複数のブロックに分割し、各ブロックの同一ピクセル位置からなるＮ個の映像信号を生成して、それぞれＮ個の符号化装置で符号化している。これにより各符号化画像データの相関性が高く、復号時の画像歪が目立ちにくくなると述べている。しかしながら、画面分割に伴う画面内の境界部分での画質劣化は避けられない。
【０００５】
また前記特許文献２では、符号化を並列処理する処理単位（部分データ）として、１フレーム内のＭ個（例えばＭ＝５)のマクロブロックをシャフリングして形成したビデオセグメントを用いている。この場合、ビデオセグメント間のデータ依存関係が生じないので、並列処理が有利と述べている。しかしこの場合も、画面分割に伴う画面内の境界部分での画質劣化は避けられない。
【０００６】
本発明はこの課題を鑑みて、画面内の境界部分の画質劣化がなく高ビットレートの符号化処理を実現する画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の画像符号化装置は、画像データからシンタックス要素を生成するシンタックス要素生成部と、シンタックス要素から中間データを生成する中間データ生成部と、中間データをエントロピー符号化してビットストリームを生成する複数のエントロピー符号化部と、符号化された複数のビットストリームを１つのビットストリームに多重化する多重化部と、中間データ生成部から出力される中間データをメモリに書き込み、メモリから中間データを読み出して複数のエントロピー符号化部のいずれかへ供給する符号化制御部とを備える。符号化制御部は、各エントロピー符号化部の処理状況に応じて、フレーム単位でエントロピー符号化を行なうエントロピー符号化部を決定し、決定したエントロピー符号化部に該当するフレームの中間データをメモリから読み出して供給する。決定したエントロピー符号化部では、該当するフレームの全ての中間データについてエントロピー符号化を行い、他のエントロピー符号化部では当該フレームの中間データのエントロピー符号化を行わないようにする。
【０００８】
また本発明の画像符号化装置は、画像データからシンタックス要素を生成するシンタックス要素生成部と、シンタックス要素を符号化してビットストリームを生成する複数の符号化部と、符号化された複数のビットストリームを１つのビットストリームに多重化する多重化部と、シンタックス要素生成部から出力されるシンタックス要素をメモリに書き込み該メモリからシンタックス要素を読み出して複数の符号化部のいずれかへ供給する符号化制御部とを備える。符号化制御部は、各符号化部の処理状況に応じて、フレーム単位で符号化を行なう符号化部を決定し、決定した符号化部に該当するフレームのシンタックス要素をメモリから読み出して供給する。決定した符号化部では、該当するフレームの全てのシンタックス要素について符号化を行い、他の符号化部では当該フレームのシンタックス要素の符号化は行わないようにする。
【発明の効果】
【０００９】
本発明によれば、画面内の境界部分の画質劣化がなく高ビットレートの符号化処理を実現する画像符号化装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１に係る画像符号化装置の構成を示す図である。
【図２】ＣＡＢＡＣ処理を説明する図である。
【図３】メモリ１０８のメモリマッピングを示す図である。
【図４】多重化制御情報４００の例を示す図である。
【図５】実施例１の符号化処理動作のタイミングを示す図である。
【図６】メモリ１０８へのデータ読み書きタイミングを示す図である。
【図７】中間データの符号化割り当ての決定法を示すフローチャートである。
【図８】実施例２における符号化処理動作のタイミングを示す図である。
【図９】実施例３に係る画像符号化装置の構成を示す図である。
【発明を実施するための形態】
【００１１】
以下の実施例では、Ｆｕｌｌ  ＨＤサイズ（１９２０ｘ１０８０画素）で３０ｆｐｓの画像を、ITU-T Rec. H.264 | ISO/IEC 14496-10 Advanced Video Coding（以下Ｈ．２６４）のＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）方式に従い、８０Ｍｂｐｓのビットレートで符号化処理する例を示す。また、符号化処理を行なう際のピクチャ構成は、Ｉフレーム、Ｐフレーム、Ｂフレームの３種類を全て用いることとする。
【実施例１】
【００１２】
図１は、実施例１に係る画像符号化装置の構成を示す図である。画像符号化装置１は、画像入力部１０１、シンタックス要素生成部１０２、中間データ生成部１０３、符号化制御部１０４、第１エントロピー符号化部１０５、第２エントロピー符号化部１０６、多重化部１０７、メモリ１０８、バス１０９より構成され、画像入力部１０１から符号化対象画像データを入力し、多重化部１０７から符号化後のビットストリームを出力する。本実施例では符号化の並列処理を行うため、２個のエントロピー符号化部１０５，１０６を設けている。また破線２００はＣＡＢＡＣ処理を行う構成部分で、中間データ生成部１０３、符号化制御部１０４、第１エントロピー符号化部１０５、第２エントロピー符号化部１０６が相当する。
【００１３】
図２は、本実施例で用いるＣＡＢＡＣ（コンテキスト適応型２値算術符号化）処理を説明する図である。ＣＡＢＡＣ処理部２００は、機能的に２値化部２０１、コンテキスト計算部２０２、及び２値算術符号化部２０３で構成される。
【００１４】
２値化部２０１は、Ｈ．２６４で規定されているシンタックス要素（ヘッダ情報、動きベクトル、量子化後の直交変換係数等）を入力とし、規格で決められた方法で２値化処理を施し、２値化データを出力する。コンテキスト計算部２０２は、前記２値化データを１ｂｉｔ処理する毎に確率モデルを更新する。２値算術符号化部２０３では、コンテキスト計算部２０２で計算した確率モデルに基づいて、入力された２値化データを１ｂｉｔ毎に２値算術符号化してビットストリームを出力する。このように、ＣＡＢＡＣ処理は２値化データを１ｂｉｔ処理する毎に確率モデルを更新しながら符号化を行なうため、入力データを理論限界まで圧縮して符号化することが可能となる。
【００１５】
符号化対象画像のピクチャ構成は、Ｉフレーム、Ｐフレーム、Ｂフレームからなる。Ｉフレームは、画像の空間方向の相関を利用し、同一フレーム内の既に符号化が終了した領域の復号画像を使用して予測符号化を行なうフレームである。Ｐ，Ｂフレームは画像の時間方向の相関も利用し、既に符号化が終了した時間的に過去または未来のフレームの復号画像を使用して予測符号化を行なうフレームであり、同時に参照可能なフレーム数が１つのものをＰフレーム、２つのものをＢフレームと呼ぶ。一般的に、ＩフレームよりＰ，Ｂフレームの方が符号化効率が良い。そのため、Ｉフレーム、Ｐフレーム、Ｂフレームを全て使用して符号化する場合には、フレームの種類によって発生する符号量にばらつきが生じる。
【００１６】
図３は、メモリ１０８のメモリマッピングを示す図である。メモリ１０８には例えばＳＤＲＡＭを採用する。メモリ１０８は複数のバッファ３０１〜３０５を有し、符号化処理に伴う各種データを記憶する。
【００１７】
以下、画像符号化装置１の各部の動作を、図１〜図３を参照して説明する。
画像入力部１０１は符号化対象の画像データを入力し、バス１０９経由でメモリ１０８内の符号化対象画像用バッファ３０１に書き込む。
【００１８】
シンタックス要素生成部１０２は、入力した画像データについて、１６×１６画素サイズのマクロブロック（以下ＭＢ）毎に予測符号化や離散コサイン変換、量子化等の処理を行なう。そして、ヘッダ情報、動きベクトル、量子化後の変換係数等のＨ．２６４で規定されたシンタックス要素を生成する。その際予測符号化処理に必要な画像データは、符号化対象画像については符号化対象画像用バッファ３０１、参照画像である復号画像については復号画像用バッファ３０２からそれぞれ読み出して使用する。また、生成したシンタックス要素に基づいて当該ＭＢの復号画像を作成し、復号画像用バッファ３０２に書き込む。生成されたシンタックス要素は、中間データ生成部１０３へ出力される。
【００１９】
中間データ生成部１０３は図２の２値化部２０１に相当し、ＣＡＢＡＣで規定されている方法でシンタックス要素を２値化し、符号化中間データ（以下、単に中間データと呼ぶ）を生成する。生成された中間データは符号化制御部１０４へ出力される。
【００２０】
符号化制御部１０４は、中間データ生成部１０３から出力される中間データを、フレーム単位で、第１エントロピー符号化部１０５または第２エントロピー符号化部１０６のいずれかへ出力する。その際、中間データをバス１０９経由でメモリ１０８内の中間データ用バッファ３０３へ一旦書き込んでおき、次のフレームの符号化処理を行うエントロピー符号化部を決定し、バッファ３０３から該当フレームの中間データを読み出して前記決定したエントロピー符号化部へ出力する。後述するように、本実施例では、次のフレームの符号化処理を行うエントロピー符号化部に、符号化処理が早く終了しているエントロピー符号化部を割り当てる。
【００２１】
また符号化制御部１０４は、エントロピー符号化部１０５，１０６へ出力するフレームに関する多重化制御情報を生成して、多重化部１０７に通知する。この多重化制御情報には、次に出力するフレームが符号化制御部１０４へ何番目に入力されたフレームであるか（符号化順序情報）と、次に出力するフレームがいずれのエントロピー符号化部で処理されるか（符号化割り当て情報）が含まれる。なお、次フレームに対するエントロピー符号化部の決定手法と多重化制御情報の具体例については後述する。
【００２２】
第１エントロピー符号化部１０５と第２エントロピー符号化部１０６はいずれも同一の構成であり、図２のコンテキスト計算部２０２と２値算術符号化部２０３に相当する。ここでは、符号化制御部１０４から出力される中間データ（２値化データ）に対し、確率モデルに基づいてエントロピー符号化（２値算術符号化）を行い、それぞれ第１及び第２ビットストリームを生成して多重化部１０７へ出力する。本実施例では、各エントロピー符号化部１０５，１０６は共に最大５０Ｍｂｐｓの符号化処理能力を有し、両者を並列処理させることで目標とする８０Ｍｂｐｓのビットレートを実現する。
【００２３】
多重化部１０７は、第１及び第２エントロピー符号化部１０５，１０６で符号化された第１及び第２ビットストリームを１つのビットストリームに多重化処理する。そのために、エントロピー符号化部１０５，１０６から出力される第１及び第２ビットストリームを、バス１０９を経由して、メモリ１０８の第１及び第２ビットストリーム用バッファ３０４，３０５に書き込む。また、バッファ３０４，３０５から第１及び第２ビットストリームを読み出して、多重化処理を行う。その際、符号化制御部１０４から受け取った多重化制御情報に従い、ビットストリームをフレーム単位に区別してバッファ３０４，３０５に書き込み、またフレーム単位で順番に読み出しを行う。
【００２４】
図４は、符号化制御部１０４から多重化部１０７に送る多重化制御情報４００の例を示す図である。多重化制御情報４００は符号化順序情報４０１と符号化割り当て情報４０２からなり、それぞれ１バイト（全２バイト）で記述している。符号化順序情報４０１は、符号化制御部１０４に前記中間データが１フレーム分入力される毎にインクリメントされる値である。また、符号化割り当て情報４０２は、第１エントロピー符号化部１０５を使う場合は「０」、第２エントロピー符号化部１０６を使う場合は「１」を与えている。多重化部１０７では、多重化制御情報４００を参照することで、バッファ３０４，３０５に分かれて書き込まれた第１及び第２ビットストリームをフレーム順に読み出し、元の順序のビットストリームに変換することができる。
【００２５】
次に、本実施例における符号化処理を具体例で説明する。
図５は、実施例１の符号化処理動作のタイミングを示す図である。ここでは、シンタックス要素生成部１０２、第１及び第２エントロピー符号化部１０５，１０６、多重化部１０７の処理タイミングを示す。横軸は時間軸で１フレーム処理期間ＴＦを単位として表示している。１フレーム処理期間ＴＦとは、符号化対象画像を実時間で符号化する場合に１フレームの処理に割り当て可能な時間であり、例えばフレームレートが３０ｆｐｓの画像の場合、ＴＦ＝約０．０３３ｓｅｃとなる。Ｆ０，Ｆ１・・・はフレーム番号を示し、そのピクチャ構成は、Ｆ０はＩフレーム、Ｆ１，Ｆ４はＰフレーム、Ｆ２，Ｆ３，Ｆ５，Ｆ６はＢフレームとして符号化するものとする。
【００２６】
シンタックス要素生成部１０２では、１フレーム処理期間ＴＦ内に各フレームのシンタックス要素を順次生成する。シンタックス要素生成部１０２での処理時間は符号化対象画像の画素数に依存し、各フレームの処理時間は一定となる。なお、１フレーム当たりの符号量について、Ｉフレームでは５．７Ｍｂｉｔｓ、Ｐフレームでは３．８Ｍｂｉｔｓ、Ｂフレームでは１．９Ｍｂｉｔｓとなるようにレート制御を行う。各フレームのシンタックス要素は中間データ生成部１０３へ出力され、中間データに変換される。
【００２７】
第１エントロピー符号化部１０５と第２エントロピー符号化部１０６は、各フレームの中間データのエントロピー符号化（以下、単に符号化という）を行いビットストリームに変換する。その際符号化制御部１０４は、次のフレームの符号化を符号化処理が早く終わったエントロピー符号化部に割り当てる。
【００２８】
また、第１及び第２エントロピー符号化部１０５，１０６での符号化処理時間は、各フレームの符号量の大小に依存する。エントロピー符号化部１０５，１０６の処理能力はいずれも最大５０Ｍｂｐｓであり、１フレーム処理期間ＴＦに最大で約１．７Ｍｂｉｔｓを処理できる。よって、各フレームの符号化に要する時間は、Ｉフレーム（５．７Ｍｂｉｔｓ）では約３．４ＴＦ、Ｐフレーム（３．８Ｍｂｉｔｓ）では約２．３ＴＦ、Ｂフレーム（１．９Ｍｂｉｔｓ）では約１．１ＴＦとなる。
【００２９】
符号化処理において、割り当てられたエントロピー符号化部では、割り当てられたフレームの全ての中間データについて符号化処理を行い、他のエントロピー符号化部では当該フレームの中間データの処理は一切行わないようにする。また、それぞれのエントロピー符号化部では、割り当てられたフレームの中間データの符号化処理を完了するまでは、他のフレームの中間データの符号化処理を行わないようにする。すなわち、１つのフレームの中間データが、２つのエントロピー符号化部に渡って処理されることはなく、また、１つのフレームの中間データの処理が途中で休止し、他のフレームの処理に切り替わることはない。
【００３０】
その結果、各フレームＦ０，Ｆ１・・・の中間データは、各エントロピー符号化部１０５，１０６にて次のように符号化処理される。
フレームＦ０は時間ｔ１のタイミングで第１エントロピー符号化部１０５に供給され、時間ｔ１から符号化処理が行われる。フレームＦ０はＩフレームであるから、符号化処理時間は約３．４ＴＦとなる。フレームＦ０の符号化後のビットストリームは、メモリ１０８の第１のビットストリーム用バッファ３０４に書き込まれる。
【００３１】
フレームＦ１は時間ｔ２のタイミングで符号化処理中でない第２エントロピー符号化部１０６に供給され、時間ｔ２から符号化処理が行われる。フレームＦ１はＰフレームであるから、符号化処理時間は約２．３ＴＦとなる。フレームＦ１の符号化後のビットストリームは、メモリ１０８の第２ビットストリーム用バッファ３０５に書き込まれる。
【００３２】
フレームＦ２は時間ｔ３のタイミングで供給されるが、２つのエントロピー符号化部１０５，１０６はいずれも符号化処理中であり、いずれかの処理が終了するまで待機する。この例では、フレームＦ１を処理している第２エントロピー符号化部１０６が時間ｔ４を超えたところで先に処理を終了するので、フレームＦ２は第２エントロピー符号化部１０６に供給される。その結果、第２エントロピー符号化部１０６ではフレームＦ１に引き続きフレームＦ２の処理を行う。フレームＦ２はＢフレームであるから、符号化処理時間は約１．１ＴＦとなる。フレームＦ２の符号化後のビットストリームは、メモリ１０８の第２のビットストリーム用バッファ３０５に書き込まれる。
【００３３】
フレームＦ３は時間ｔ４のタイミングで供給されるが、先行するフレームＦ２が処理待ち状態であるためＦ２の処理が開始するまで待機する。そしてＦ２の処理が開始した後、先に処理が終了する第１エントロピー符号化部１０５に供給される。その結果、第１エントロピー符号化部１０５では、フレームＦ０に引き続きフレームＦ３の処理を行う。
以後のフレームＦ４，Ｆ５・・・についても同様で、符号化処理が早く終わったエントロピー符号化部に供給することで、各フレームの符号化を連続して実行する。
【００３４】
多重化部１０７では、先頭フレームＦ０のビットストリームが生成された後の、時間ｔ５のタイミングから多重化処理を開始する。図４の多重化制御情報４００に基づき、メモリ１０８のバッファ３０４及びバッファ３０５からフレーム順にビットストリームを読み出し、多重化ビットストリームに変換して出力する。
【００３５】
図６は、メモリ１０８へのデータ読み書きタイミングを示す図である。縦軸はメモリアドレス、横軸は時間軸であり、ここではフレームＦ０とＦ１についての中間データとビットストリームの読み書きを示している。メモリアドレスのうち、下段領域（３２〜４８ＭＢ）は中間データ用バッファ３０３、中段領域（４８〜６４ＭＢ）は第１ビットストリーム用バッファ３０４、上段領域（６４ＭＢ〜）は第２ビットストリーム用バッファ３０５である。
【００３６】
まず、中間データの書き込みから説明する。符号化制御部１０４は、中間データ生成部１０３から出力されるフレームＦ０，Ｆ１の中間データをバッファ３０３にアドレスを連続させて書き込む（実線で示す）。書き込みタイミングは、フレームＦ０は時間ｔ０から、フレームＦ１は時間ｔ１から開始し、それぞれ１フレーム処理時間ＴＦかけて行う。中間データの量はフレームＦ０とＦ１で異なるため、書き込み速度（グラフの傾き）は異なっている。このとき符号化制御部１０４は、１フレームの書き込みが終わる毎に符号化順序情報と終端のアドレスを記憶している。
【００３７】
中間データの読み出しでは、符号化制御部１０４は、バッファ３０３からフレームＦ０とＦ１の中間データを読み出す（破線で示す）。その際、前記書き込み時に記憶している各フレームの符号化順序情報と終端のアドレスをもとに、中間データを符号化処理順序に、かつ１フレーム単位で読み出す。読み出した中間データは、フレームＦ０は第１エントロピー符号化部１０５へ、フレームＦ１は第２エントロピー符号化部１０６へ出力する。本実施例では、エントロピー符号化部１０５，１０６における中間データのバッファ容量が少ない場合を想定し、読み出しタイミングはエントロピー符号化部１０５，１０６での符号化開始に合わせ、フレームＦ０は時間ｔ１から、フレームＦ１は時間ｔ２から開始する。また読み出し速度（グラフの傾き）は、エントロピー符号化部１０５，１０６の処理速度に合わせ、一定としている。そのため、フレームＦ０，Ｆ１の読み出し時間は、それぞれの中間データの量に応じて異なる。もし、エントロピー符号化部１０５，１０６が十分なバッファ容量を備える場合には、１フレーム分を連続で読み出してバッファに蓄えてから符号化処理を行なっても良い。
【００３８】
次にビットストリームの書き込みを説明する。多重化部１０７は、第１エントロピー符号化部１０５から出力されるフレームＦ０のビットストリームをバッファ３０４に、第２エントロピー符号化部１０６から出力されるフレームＦ１のビットストリームを、バッファ３０５に書き込む（一点鎖線で示す）。書き込みタイミングは、それぞれのエントロピー符号化部１０５，１０６での符号化処理に同期し、フレームＦ０は時間ｔ１からフレームＦ１は時間ｔ２から開始する。多重化部１０７は符号化制御部１０４から受け取った多重化制御情報（符号化順序情報）に基づき、書き込むビットストリームが何番目に出力するフレームであるかを記憶し、またバッファ３０４，３０５のどこに書き込んだか（先頭アドレス情報）と各フレームのサイズ情報を記憶しておく。
【００３９】
ビットストリームの読み出しでは、多重化部１０７は、バッファ３０４からフレームＦ０のビットストリームを、続いてバッファ３０５からフレームＦ１のビットストリームを読み出す（点線で示す）。読み出しのタイミングは、符号化制御部１０４から受け取った多重化制御情報（符号化順序情報）に従い、書き込み時に記憶している各フレームの先頭アドレス情報を参照し、当該フレームのサイズ分の読み出し処理を行う。図では、時間ｔ５からフレームＦ０の読み出しを開始し、それが終了すると引き続きフレームＦ１の読み出しを開始する。これにより、符号化制御部１０４へ中間データが入力された順序でビットストリームを多重化して、規格に準拠したビットストリームを出力することができる。
【００４０】
次に、符号化制御部１０４において、各フレームの中間データを第１エントロピー符号化部１０５と第２エントロピー符号化部１０６のいずれで符号化するかを決定する手法を説明する。
【００４１】
図７は、中間データの符号化割り当ての決定法を示すフローチャートである。
Ｓ７０１において、メモリ１０８の中間データ用バッファ３０３に格納されている中間データの中で、まだエントロピー符号化部１０５，１０６でエントロピー符号化処理を開始していないフレームの中間データ（未符号化フレームデータ）の有無を判定する。ここでは、シンタックス要素生成部１０２での処理が１フレーム分終了した時点で、初めて未符号化フレームデータと認める。すなわち、シンタックス要素生成部１０２で処理中のフレームのデータが存在しても、未符号化フレームデータとは認めない。
Ｓ７０１の判定で未符号化フレームデータなし（Ｎｏ）と判定された場合は、未符号化フレームデータ有りと判定されるまで、ループ処理を繰り返す。一方、未符号化フレームデータ有り（Ｙｅｓ）と判定された場合はＳ７０２へ進む。
【００４２】
Ｓ７０２では、第１エントロピー符号化部１０５が他のフレームデータについて符号化処理中であるか否かを判定する。処理中である（Ｙｅｓ）場合はＳ７０４へ、処理中でない（Ｎｏ）場合はＳ７０３へ進む。
Ｓ７０３では、未符号化フレームデータの符号化処理を第１エントロピー符号化部１０５で行なうことに決定する。そして、該当フレームの多重化制御情報を多重化部１０７へ通知した後、未符号化フレームデータをメモリ１０８から読み出し、第１エントロピー符号化部１０５へ出力する。
【００４３】
Ｓ７０４では、第２エントロピー符号化部１０６が他のフレームデータについて符号化処理中であるか否かを判定する。処理中である（Ｙｅｓ）場合はＳ７０２に戻り、Ｓ７０２またはＳ７０４のいずれかの判定が処理中でない（Ｎｏ）となるまでループ処理する。Ｓ７０４の判定が処理中でない（Ｎｏ）場合はＳ７０５へ進む。
Ｓ７０５では、未符号化フレームデータの符号化処理を第２エントロピー符号化部１０６で行なうことに決定する。そして、該当フレームの多重化制御情報を多重化部１０７へ通知した後、未符号化フレームデータをメモリ１０８から読み出し、第２エントロピー符号化部１０６へ出力する。
【００４４】
Ｓ７０６では、符号化割り当てのシーケンスを終了するか否かを判定する。終了しない場合は、Ｓ７０１に戻り前記処理を繰り返す。
【００４５】
上記フローチャートによれば、未符号化フレームデータがある場合、符号化処理が早く終わったエントロピー符号化部を用いて次のフレームの符号化処理を連続的に実行することが可能となる。これより、第１及び第２エントロピー符号化部１０５，１０６の休止期間を最小とし、処理パフォーマンスを最大限に活かすことが可能となる。
【００４６】
これを従来の手法と比較する。例えば前記特許文献１のように、１フレームをＮ個の領域に分割し、それぞれの領域に対して符号化装置が予め割り当てられている場合を考える。この場合、各領域で符号化難易度が異なると、符号化装置毎の発生符号量がばらついてくる。よって、実時間処理を保証するためには、各符号化装置の処理能力を目標ビットレートの１／Ｎより高い値に設定しておく必要がある。これに対し本実施例の方法では、各エントロピー符号化部の処理状況に応じて、次のフレームの符号化を行うエントロピー符号化部を割り当てている。よって、フレーム毎に符号量が異なっていても各エントロピー符号化部はほぼ１００％の稼働率で動作するため、エントロピー符号化部に課される処理能力は最小限のビットレートの値で十分である。
【００４７】
実施例１の変形例として以下が可能である。
上記例では２個のエントロピー符号化部１０５，１０６を備える構成としたが、エントロピー符号化部の数は３個以上でも同様に動作し、１個のエントロピー符号化部での処理負担をさらに軽減することができる。この場合にも符号化制御部１０４は、各エントロピー符号化部の処理状況に応じて、フレーム単位で次に符号化処理を行なうエントロピー符号化部を決定する。
【００４８】
符号化方式としてＨ．２６４のＣＡＢＡＣを採用したが、これに限らず、符号化する度に確率テーブルを変更するようなコンテキスト適応型エントロピー符号化方式（ＣＡＶＬＣ）を採用することもできる。
符号化処理中のデータを記憶するメモリ１０８としてＳＤＲＡＭを使用したが、バッファの一部をＳＲＡＭにして、バス１０９を経由せずにＳＲＡＭにデータをバッファリングする構成としても良い。
【００４９】
ピクチャ構成はＩ、Ｐ、Ｂフレームの全てを用いるものとしたが、Ｉフレームのみ、ＩフレームとＰフレームのみといったように、他のピクチャ構成でも良い。
メモリ１０８の中間データ用バッファ３０３には中間データをそのまま記録したが、各処理部とバス１０９の間に圧縮伸張部を設け、圧縮処理した圧縮データをメモリ１０８に記録し、メモリ１０８から読出した圧縮データを伸張処理してもよい。その場合、メモリ１０８の記憶容量とバス１０９のバンド幅を削減できる。
【００５０】
実施例１によれば、目標とする符号化処理能力（ビットレート）を分担する複数のエントロピー符号化部を設け、符号化制御部は各エントロピー符号化部の処理状況に応じて、フレーム毎に次の符号化処理を行うエントロピー符号化部を決定するようにした。その際、決定したエントロピー符号化部では、該当するフレームの全ての中間データについてエントロピー符号化を行い、他のエントロピー符号化部では当該フレームの中間データのエントロピー符号化を一切行わないようにした。これより、１画面（１フレーム）を複数の領域に分割することがないので、画面内の境界部分において画質劣化が原理的に発生せず、かつ高ビットレートでの符号化処理を実現できる。
【００５１】
特に符号化制御部は、複数のエントロピー符号化部のうち早く符号化処理を終了したエントロピー符号化部に対し次の符号化処理を行なわせるようにした。これより、各エントロピー符号化部の処理休止期間が最小になり、各エントロピー符号化部の処理パフォーマンスを最大限利用して効率的な符号化処理を実現できる。
【実施例２】
【００５２】
実施例１では、第１及び第２エントロピー符号化部１０５，１０６は、シンタックス要素生成部１０２（及び中間データ生成部１０３）にて１フレーム分のデータ生成を終了した後に、そのフレームのエントロピー符号化を開始するものとした。すなわち図７のＳ７０１の判定において、符号化制御部１０４は、シンタックス要素生成部１０２が１フレーム分の処理を終了した時点で未符号化フレームデータ有りと認識するものとした。
【００５３】
これに対し実施例２では、シンタックス要素生成部１０２（及び中間データ生成部１０３）が１フレーム内で符号化に必要な最小限のデータを生成した時点で、第１または第２エントロピー符号化部１０５，１０６がそのフレームのエントロピー符号化を開始するようにした。具体的には、フレーム先頭の１ＭＢ（マクロブロック）分の処理が終了した時点で、そのフレームの符号化を開始する。図７のＳ７０１の判定も、フレーム先頭の１ＭＢが生成された時点で、未符号化フレームと認識するようにした。これにより、符号化対象画像データが入力し多重化ビットストリームを出力するまでの遅延時間を短縮することができる。
【００５４】
図８は、実施例２における符号化処理動作のタイミングを示す図である。シンタックス要素生成部１０２における１ＭＢ分の処理時間をＴＭＢとする。
シンタックス要素生成部１０２がフレームＦ０の処理を開始して先頭の１ＭＢ分を終了したとき、すなわち時間ｔ０からＴＭＢ経過後、符号化制御部１０４はバッファ３０３に未符号化フレームＦ０が蓄積されたと判定して、第１エントロピー符号化部１０５へフレームＦ０の中間データの出力を開始する。これを受けて、第１エントロピー符号化部１０５はフレームＦ０について符号化を開始する。
【００５５】
同様に、シンタックス要素生成部１０２がフレームＦ１について先頭の１ＭＢ分を終了したとき、すなわち時間ｔ１からＴＭＢ経過後、符号化制御部１０４は第２エントロピー符号化部１０６へフレームＦ１の中間データの出力を開始する。これを受けて、第２エントロピー符号化部１０６はフレームＦ１について符号化を開始する。
【００５６】
フレームＦ５，Ｆ７についても、それぞれ時間ｔ５，ｔ７からＴＭＢ経過後に符号化を開始するが、他のフレームＦ２，Ｆ３，Ｆ４，Ｆ６の場合は、先行するフレームの符号化処理が終了するのを待って第１または第２エントロピー符号化部１０５，１０６にて符号化を開始する。
【００５７】
また多重化部１０７においては、第１エントロピー符号化部１０５によりフレームＦ０の符号化処理が開始してからＴＭＢ経過後に、フレームＦ０から順に多重化ビットストリームの出力を開始する。但し、各フレームの多重化ビットストリームの出力が終了するのは、各フレームの符号化処理が終了した後になる。
【００５８】
実施例２によれば、前記実施例１（図５）と比較し、各処理部の処理タイミングを早めることで、符号化対象画像データの入力タイミングに対し多重化ビットストリームの出力タイミングの遅延時間を短縮することができる。
【実施例３】
【００５９】
前記実施例１，２において、符号化制御部１０４は、中間データ生成部１０３により２値化処理後の中間データをメモリ１０８に書き込み、これを読み出して第１及び第２エントロピー符号化部１０５，１０６に出力する構成とした。これに対し実施例３では、メモリ１０８には２値化処理前のシンタックス要素を書き込み、これを読み出して符号化処理を行う構成とした。
【００６０】
図９は、実施例３に係る画像符号化装置の構成を示す図である。画像符号化装置２では、実施例１（図１）における中間データ生成部１０３を削除し、符号化制御部１１４、第１符号化部１１５、第２符号化部１１６を設けている。他の処理部は図１と共通であり同一の符号を付している。破線２００はＣＡＢＡＣ処理を行う構成部分で、実施例３では第１符号化部１１５と第２符号化部１１６が対応し、その内部は図２の構成となっている。
【００６１】
この場合、シンタックス要素生成部１０２で生成されたシンタックス要素が符号化制御部１１４へ入力される。符号化制御部１１４は図１の符号化制御部１０４と同様に動作するが、メモリ１０８のバッファ３０３へ読み書きするデータは中間データではなくシンタックス要素となる。符号化制御部１１４は、フレーム毎に次のシンタックス要素を符号化する符号化部を決定し、シンタックス要素を出力する。第１及び第２符号化部１１５，１１６では、符号化制御部１１４から供給されるシンタックス要素に符号化処理（ＣＡＢＡＣ処理）を施し、第１及び第２ビットストリームを出力する。他の処理部の動作は実施例１と同様であり、説明を省略する。
【００６２】
実施例３においても、２個の符号化部１１５，１１６を用意し、符号化制御部１１４において各符号化部１１５，１１６の処理状況に応じて、フレーム毎に次の符号化処理を行う符号化部を決定する。これより、画面内の境界部分において画質劣化が原理的に発生せず、かつ高ビットレートで効率的な符号化処理を実現できる。
【００６３】
なお、実施例３の構成においては、第１及び第２符号化部１１５，１１６での符号化方式はＣＡＢＡＣ処理に限定せずＣＡＶＬＣなどの他の方式も適用でき、また実施例１で述べた各種の変形が可能であることは言うまでもない。
【符号の説明】
【００６４】
１，２：画像符号化装置、
１０１：画像入力部、
１０２：シンタックス要素生成部、
１０３：中間データ生成部、
１０４：符号化制御部、
１０５：第１エントロピー符号化部、
１０６：第２エントロピー符号化部、
１０７：多重化部、
１０８：メモリ、
１０９：バス、
１１４：符号化制御部、
１１５：第１符号化部、
１１６：第２符号化部、
２００：ＣＡＢＡＣ処理部、
２０１：２値化部、
２０２：コンテキスト計算部、
２０３：２値算術符号化部、
３０１：符号化対象画像用バッファ、
３０２：復号画像用バッファ、
３０３：中間データ用バッファ、
３０４：第１ビットストリーム用バッファ、
３０５：第２ビットストリーム用バッファ、
４００：多重化制御情報、
４０１：符号化順序情報、
４０２：符号化割り当て情報。
【図１】
2014143572.tif 000003
【図２】
2014143572.tif 000004
【図３】
2014143572.tif 000005
【図４】
2014143572.tif 000006
【図５】
2014143572.tif 000007
【図６】
2014143572.tif 000008
【図７】
2014143572.tif 000009
【図８】
2014143572.tif 000010
【図９】
2014143572.tif 000011