(57)【要約】【課題】より確実に、バッファにおけるオーバーフローの発生を防ぐ。【解決手段】入力画像に対応して生成される情報（bin）をバッファ３３に蓄積し、蓄積されたbinを取得して算術符号化を行う符号化装置１１において、許容発生bin量算出部５１は、バッファ３３の最大蓄積量、および、入力画像の１ピクチャあたりに生成される発生bin量に基づいて、入力画像のピクチャ毎に、バッファ３３に蓄積可能な許容発生bin量を算出し、bin生成部６４は、許容発生bin量算出部５１により算出された許容発生bin量に応じた発生bin量のbinを生成する。本発明は、例えば、CABAC処理を行う符号化装置に適用することができる。【選択図】図１
2012138661.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に対応して生成される情報をバッファに蓄積し、蓄積された前記情報を取得して算術符号化を行う画像処理装置であって、
前記バッファの最大蓄積量、および、前記入力画像の所定単位あたりに生成される前記情報の情報量に基づいて、前記入力画像の所定単位毎に、前記バッファに蓄積可能な前記情報の許容量を算出する算出部と、
前記算出部により算出された前記許容量に応じた情報量の前記情報を生成する生成部と
を備える画像処理装置。
【請求項２】
前記入力画像のピクチャ毎に算出される前記許容量が所定の閾値より小さい場合、前記入力画像におけるマクロブロックについての係数を全て０とする係数設定部をさらに備える
請求項１に記載の画像処理装置。
【請求項３】
前記入力画像のピクチャ毎に算出される前記許容量に対する、前記入力画像のマクロブロックあたりに生成される前記情報の情報量に応じた値が、第１の閾値より大きい場合に、前記マクロブロックの量子化パラメータの値を大きくさせるパラメータ調整部をさらに備える
請求項１に記載の画像処理装置。
【請求項４】
前記入力画像のピクチャ毎に算出される前記許容量に対する、前記入力画像のマクロブロックあたりに生成される前記情報の情報量に応じた値が、前記第１の閾値と異なる第２の閾値より大きい場合に、前記マクロブロックあたりに生成される前記情報の情報量を最小化する最小化部をさらに備える
請求項３に記載の画像処理装置。
【請求項５】
第１の入力画像と第２の入力画像とを切り出して繋ぎ合わせる編集において、前記第１の入力画像と前記第２の入力画像との繋ぎ合わせの箇所を再符号化する場合、
前記算出部は、前記第１の入力画像において再符号化される箇所の直前のピクチャについての前記バッファにおける第１の情報量を０とし、前記第２の入力画像において再符号化される箇所の直後のピクチャについての前記バッファにおける第２の情報量を前記バッファの最大蓄積量として、これを満たすように、前記第１の入力画像および前記第２の入力画像において再符号化される箇所のピクチャ毎に、前記許容量を算出する
請求項１に記載の画像処理装置。
【請求項６】
前記算出部は、HRD（Hypothetical Reference Decoder）モデルを適用することで、前記バッファに蓄積可能な前記情報の前記許容量を算出する
請求項１に記載の画像処理装置。
【請求項７】
入力画像に対応して生成される情報をバッファに蓄積し、蓄積された前記情報を取得して算術符号化を行う画像処理装置の画像処理方法であって、
前記バッファの最大蓄積量、および、前記入力画像の所定単位あたりに生成される前記情報の情報量に基づいて、前記入力画像の所定単位毎に、前記バッファに蓄積可能な前記情報の許容量を算出する算出ステップと、
前記算出ステップの処理により算出された前記許容量に応じた情報量の前記情報を生成する生成ステップと
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法に関し、特に、バッファにおけるオーバーフローの発生を防ぐことができるようにする画像処理装置および方法に関する。
【背景技術】
【０００２】
従来、動画像データの圧縮符号化方式の標準の１つとしてITU-T（International Telecommunication Union Telecommunication Standardization Sector）によって勧告されたH.264/AVC方式のエントロピー符号化方法として、例えば、CABAC（Context-based Adaptive Binary Arithmetic Coding）処理を用いた符号化方式がある。
【０００３】
このCABAC処理を行う符号化装置において、イントラ予測、動き補償（MC：Motion Compensation）、直交変換、量子化等の符号化処理を行う符号化処理部と、CABAC処理を行うCABAC処理部との間にバッファを設けることで、符号化処理とCABAC処理とを非同期で行うことが提案されている（例えば、特許文献１，２）。これにより、CABAC処理と符号化処理とを並列に実行することができるようになるので、処理負荷を分散させることができ、ハードウェア規模や消費電力を抑えることが可能となった。
【０００４】
上述した符号化装置においては、符号化処理により量子化された直交変換係数やマクロブロックヘッダ（ＭＢヘッダ）としてのシンタックスエレメント（SE: Syntax Element）が２値化され、この２値化されたシンボル（bin）がバッファに蓄積（保持）され、CABAC処理部が、バッファに蓄積されたbinを取得してCABAC処理を行うことで、ビットストリームを出力する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２５９３７０号公報
【特許文献２】国際公開第ＷＯ ２００５／４１４２０号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した符号化装置においては、バッファの状態が管理されていないため、符号化処理部から、CABAC処理部の処理能力を超えるbinがバッファに供給される恐れがある。この場合、CABAC処理部によるCABAC処理が間に合わずに、バッファがオーバーフローしてしまい、これにより、CABAC処理部へのbinが壊れ、CABAC処理部が正常なビットストリームを出力することができなくなってしまう。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、より確実に、バッファにおけるオーバーフローの発生を防ぐことができるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の一側面の符号化装置は、入力画像に対応して生成される情報をバッファに蓄積し、蓄積された前記情報を取得して算術符号化を行う画像処理装置であって、前記バッファの最大蓄積量、および、前記入力画像の所定単位あたりに生成される前記情報の情報量に基づいて、前記入力画像の所定単位毎に、前記バッファに蓄積可能な前記情報の許容量を算出する算出部と、前記算出部により算出された前記許容量に応じた情報量の前記情報を生成する生成部とを備える。
【０００９】
前記画像処理装置には、前記入力画像のピクチャ毎に算出される前記許容量が所定の閾値より小さい場合、前記入力画像におけるマクロブロックについての係数を全て０とする係数設定部をさらに設けることができる。
【００１０】
前記画像処理装置には、前記入力画像のピクチャ毎に算出される前記許容量に対する、前記入力画像のマクロブロックあたりに生成される前記情報の情報量に応じた値が、第１の閾値より大きい場合に、前記マクロブロックの量子化パラメータの値を大きくさせるパラメータ調整部をさらに設けることができる。
【００１１】
前記画像処理装置には、前記入力画像のピクチャ毎に算出される前記許容量に対する、前記入力画像のマクロブロックあたりに生成される前記情報の情報量に応じた値が、前記第１の閾値と異なる第２の閾値より大きい場合に、前記マクロブロックあたりに生成される前記情報の情報量を最小化する最小化部をさらに設けることができる。
【００１２】
第１の入力画像と第２の入力画像とを切り出して繋ぎ合わせる編集において、前記第１の入力画像と前記第２の入力画像との繋ぎ合わせの箇所を再符号化する場合、前記算出部には、前記第１の入力画像において再符号化される箇所の直前のピクチャについての前記バッファにおける第１の情報量を０とし、前記第２の入力画像において再符号化される箇所の直後のピクチャについての前記バッファにおける第２の情報量を前記バッファの最大蓄積量として、これを満たすように、前記第１の入力画像および前記第２の入力画像において再符号化される箇所のピクチャ毎に、前記許容量を算出させることができる。
【００１３】
前記算出部には、HRD（Hypothetical Reference Decoder）モデルを適用することで、前記バッファに蓄積可能な前記情報の前記許容量を算出させることができる。
【００１４】
本発明の一側面の符号化方法は、入力画像に対応して生成される情報をバッファに蓄積し、蓄積された前記情報を取得して算術符号化を行う画像処理装置の画像処理方法であって、前記バッファの最大蓄積量、および、前記入力画像の所定単位あたりに生成される前記情報の情報量に基づいて、前記入力画像の所定単位毎に、前記バッファに蓄積可能な前記情報の許容量を算出する算出ステップと、前記算出ステップの処理により算出された前記許容量に応じた情報量の前記情報を生成する生成ステップとを含む。
【００１５】
本発明の一側面においては、バッファの最大蓄積量、および、入力画像の所定単位あたりに生成される情報の情報量に基づいて、入力画像の所定単位毎に、バッファに蓄積可能な情報の許容量が算出され、算出された許容量に応じた情報量の情報が生成される。
【発明の効果】
【００１６】
本発明の一側面によれば、より確実に、バッファにおけるオーバーフローの発生を防ぐことが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本開示に係る符号化装置の一実施の形態の構成を示すブロック図である。
【図２】図１の符号化装置による発生bin量制御処理を説明するフローチャートである。
【図３】AVAILABLE_BINの遷移について説明する図である。
【図４】bin_buffer_fullnessの遷移について説明する図である。
【図５】スマートレンダリング編集の例を説明する図である。
【図６】画像編集装置の構成を示すブロック図である。
【図７】AVAILABLE_BINの遷移について説明する図である。
【図８】図６の画像編集装置による発生bin量制御処理を説明するフローチャートである。
【図９】AVAILABLE_BINの遷移について説明する図である。
【図１０】コンピュータのハードウェアの構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本開示の実施の形態について図を参照して説明する。
【００１９】
［符号化装置の構成］
図１は、本開示に係る画像処理装置としての符号化装置の一実施の形態の機能的な構成を示している。
【００２０】
図１の符号化装置１１は、H.264およびMPEG-4 Part10 Advanced Video Coding（H.264/AVC）の規格に準拠して、入力されてくる入力画像に対して符号化処理を行うことで、ビットストリームを出力する。
【００２１】
符号化装置１１は、ピクチャ処理部３１、マクロブロック（ＭＢ）処理部３２、バッファ３３、およびCABAC（Context-Adaptive Binary Arithmetic Coding）処理部３４から構成される。
【００２２】
ピクチャ処理部３１は、順次入力される符号化対象の入力画像（動画像）に対して、ピクチャ単位で、ＭＢ処理部３２における処理に必要な初期化処理等を施し、その結果得られたパラメータと入力画像とをＭＢ処理部３２に供給する。
【００２３】
ＭＢ処理部３２は、ピクチャ処理部３１からのピクチャ単位の入力画像に対して、マクロブロック（ＭＢ）単位で、イントラ予測、動き補償（MC：Motion Compensation）、直交変換、量子化等の符号化処理を施す。ＭＢ処理部３２は、符号化処理の結果得られた、量子化された変換係数やＭＢヘッダとしてのシンタックスエレメント（SE: Syntax Element）を２値化してバイナリ列とし、その１ビットずつをシンボル（bin）としてバッファ３３に供給する。
【００２４】
バッファ３３は、ＭＢ処理部３２からのbinを一時的に蓄積する。
【００２５】
CABAC処理部３４は、バッファ３３からbinを取得し（読み出し）、CABACによる算術符号化処理を施し、符号化結果としてのビットストリームを出力する。
【００２６】
また、符号化装置１１においては、バッファ３３に供給されるbinの量（以下、発生bin量という）が制御される。具体的には、ピクチャ処理部３１がピクチャ単位での発生bin量を制御し、ＭＢ処理部３２がＭＢ単位での発生bin量を制御することで、符号化装置１１において、バッファ３３の状態が管理される。
【００２７】
ピクチャ処理部３１は、許容発生bin量算出部５１、閾値処理部５２、係数設定部５３、およびパラメータ初期化部５４を備えている。
【００２８】
許容発生bin量算出部５１は、バッファ３３の最大蓄積量、および、入力画像の所定単位（例えば１ピクチャ）あたりに生成されるbinの量（発生bin量）に基づいて、入力画像の１ピクチャ毎に、バッファ３３に蓄積可能な発生bin量（許容発生bin量）を算出する。
【００２９】
閾値処理部５２は、許容発生bin量算出部５１により算出された許容発生bin量が、所定の閾値より小さいか否かを判定する。
【００３０】
係数設定部５３は、閾値処理部５２によって、許容発生bin量算出部５１により算出された許容発生bin量が、所定の閾値より小さいと判定された場合、ＭＢ処理部３２において求められるＭＢの直交変換係数（以下、単に変換係数という）を所定の値に設定する。係数設定部５３は、変換係数を所定の値に設定した旨の情報をＭＢ処理部３２に供給する。
【００３１】
パラメータ初期化部５４は、１ピクチャ毎の許容発生bin量に対する、ＭＢ処理部３２において処理されるＭＢあたりに生成される発生bin量に応じた値（パラメータ）を初期化し、ＭＢ処理部３２に供給する。このパラメータは、ＭＢ処理部３２においてＭＢが処理される毎に変化し、その変化に応じてＭＢ単位での発生bin量が制御される。
【００３２】
ＭＢ処理部３２は、閾値処理部６１、Ｑ値上昇処理部６２、発生bin量最小化部６３、およびbin生成部６４を備えている。
【００３３】
閾値処理部６１は、パラメータ初期化部５４によって初期化されたパラメータがＭＢ毎に変化する中で、そのパラメータが所定の閾値より大きいか否かを判定する。
【００３４】
Ｑ値上昇処理部６２は、閾値処理部６１によって、パラメータが所定の閾値のうちの第１の閾値より大きいと判定された場合、ＭＢ毎の量子化に関わる量子化パラメータを大きくする。
【００３５】
発生bin量最小化部６３は、閾値処理部６１によって、パラメータが所定の閾値のうちの第２の閾値より大きいと判定された場合、bin生成部６４によってＭＢ毎に生成されるbinの量（発生bin量）を最小化するようにする。
【００３６】
bin生成部６４は、ＭＢ毎にbinを生成し、バッファ３３に供給する。なお、bin生成部４により生成されたbinの量、すなわち発生bin量は、ピクチャ処理部３１にフィードバックされる。
【００３７】
［符号化装置による発生bin量制御処理について］
ここで、図２のフローチャートを参照して、図１の符号化装置１１による発生bin量制御処理について説明する。
【００３８】
ステップＳ１１において、ピクチャ処理部３１の許容発生bin量算出部５１は、バッファ３３の最大蓄積量、および、順次入力される入力画像の１ピクチャあたりに生成される発生bin量に基づいて、入力画像の１ピクチャ毎に、バッファ３３に蓄積可能な発生bin量である許容発生bin量AVAILABLE_BINを算出する。
【００３９】
ここで、符号化装置１１におけるバッファ３３の管理方法として、HRD（Hypothetical Reference Decoder）モデルのVBR（Variable Bit Rate）モードを適用する。HRDは、ビデオエンコーダのための仮想モデルであり、符号化されたストリームのビット速度の変動を制御するために用いられる。HRDは、ビデオエンコーダに対応するビデオデコーダの入力バッファがオーバーフローまたはアンダーフローを起こさないように、ビットストリームおよびビデオデコーダに制約条件を設ける。
【００４０】
図３は、符号化装置１１におけるバッファ３３の管理方法としてHRDモデルを適用したときのAVAILABLE_BINの遷移について説明する図である。
【００４１】
図３に示されるように、HRDモデルにおける１ピクチャあたりのバッファへのビット供給量を、CABAC処理部３４の１ピクチャあたりのbinの処理能力ROP（Rate Over Picture）とし、HRDモデルにおけるバッファサイズを、符号化装置１１におけるバッファ３３のサイズBUFFER_SIZEとし、Ｎをピクチャ番号（Picture No）とすると、０番目のピクチャについてのAVAILABLE_BIN(0)、および、Ｎ番目のピクチャについてのAVAILABLE_BIN(N)は、以下のように表される。
【００４２】
AVAILABLE_BIN(0)＝BUFFER_SIZE−BUFFER初期占有量          ・・・（１）
AVAILABLE_BIN(N)＝AVAILABLE_BIN(N-1)＋ROP−PIC発生bin量(N-1)
・・・（２）
【００４３】
なお、PIC発生bin量(N-1)は、(N-1)番目のピクチャについて実際に生成された発生bin量を示している。
【００４４】
このようにして、ピクチャ毎の許容発生bin量AVAILABLE_BINが算出される。
【００４５】
なお、ピクチャ毎の許容発生bin量AVAILABLE_BINは、バッファ３３のサイズBUFFER_SIZEを上限としてクリップされる必要があるので、算出されるAVAILABLE_BINがBUFFER_SIZEを超える場合には、AVAILABLE_BIN(N)＝BUFFER_SIZEとなる。
【００４６】
図２のフローチャートに戻り、ステップＳ１２において、閾値処理部５２は、許容発生bin量算出部５１により算出されたAVAILABLE_BINが、閾値PIC_COEFF_CUT_THより小さいか否かを判定する。
【００４７】
ここで、閾値PIC_COEFF_CUT_THについて説明する。
【００４８】
AVCの規格に準拠した符号化処理において、ＭＢ単位で発生する最小発生bin量MB_MIN_BIN、および、１ピクチャあたりのＭＢ数MB_NUMは、符号化処理対象となるピクチャを符号化するより前に知ることができるため、ピクチャ単位で発生する最小発生bin量PIC_MIN_BINは、以下のように表される。
【００４９】
PIC_MIN_BIN＝MB_MIN_BIN×MB_NUM                          ・・・（３）
【００５０】
なお、MB_MIN_BINは、Ｉスライスの場合、予測モードを全てDC予測にし、変換係数を全て０としたときの発生bin量となり、ＰスライスまたはＢスライスの場合、予測モードをスキップモードとしたときの発生bin量となる。
【００５１】
閾値PIC_COEFF_CUT_THは、ピクチャ毎の許容発生bin量AVAILABLE_BINが、符号化処理対象となるピクチャの最小発生bin量PIC_MIN_BINに対してどの程度の余裕があるかを判定するために設定される。PIC_MIN_BINがAVAILABLE_BINに近いほど、バッファ３３は余裕がなくなるので、オーバーフローが発生する可能性が高くなり、最終的に出力される画像の画質が劣化する恐れがある。そこで、閾値PIC_COEFF_CUT_THは、若干のマージンMARGINを加味して、以下のように設定される。
【００５２】
PIC_COEFF_CUT_TH＝（PIC_MIN_BIN＋MARGIN）×α            ・・・（４）
【００５３】
ここで、値αは、任意に設定可能な調整値とされる。また、マージンMARGINは、ＭＢ処理部３２における符号化処理において、実際に処理されているＭＢの発生bin量と、知ることのできるＭＢの発生bin量とに生じるずれDELAYを考慮したものであり、ＭＢ単位で発生する最大発生bin量MB_MAX_BINを用いて、以下のように表される。
【００５４】
MARGIN＝MB_MAX_BIN×DELAY                                ・・・（５）
【００５５】
さて、図２のフローチャートに戻り、ステップＳ１２において、AVAILABLE_BINがPIC_COEFF_CUT_THより小さいと判定された場合、すなわち、バッファ３３でオーバーフローが発生する可能性が高い場合、処理はステップＳ１３に進む。
【００５６】
ステップＳ１３において、係数設定部５３は、ＭＢ処理部３２において符号化処理となるピクチャのＭＢについての変換係数を全て０に設定し、変換係数を０に設定した旨の情報をＭＢ処理部３２に供給する。すなわち、ＭＢ処理部３２においては、符号化処理となるピクチャについての残差画像は無視され、そのピクチャは予測画像と同一となる。これにより、発生bin量を少なくすることができ、バッファ３３におけるオーバーフローを防ぐことができるとともに、オーバーフローが発生した場合の画質の劣化を防ぎ、画質を維持することができる。
【００５７】
なお、ステップＳ１２において、AVAILABLE_BINがPIC_COEFF_CUT_THより小さくないと判定された場合、ステップＳ１３はスキップされる。
【００５８】
ステップＳ１４において、パラメータ初期化部５４は、AVAILABLE_BINに対する、ＭＢ処理部３２において処理されるＭＢ毎に生成される発生bin量に応じたパラメータbin_buffer_fullnessを初期化し、ＭＢ処理部３２に供給する。bin_buffer_fullnessは、その値が大きくなるほどバッファ３３の余裕がなくなる（バッファ３３が占有されている）ことを示すパラメータである。ここでは、bin_buffer_fullnessは、以下に表されるbin_buffer_fullness_0として初期化される。
【００５９】
bin_buffer_fullness_0＝PIC_MIN_BIN＋MARGIN−AVAILABLE_BIN(0)  ・・・（６）
【００６０】
なお、bin_buffer_fullnessは、ＭＢ処理部３２においてＭＢが処理される毎に変化する。ここで、図４を参照して、ＭＢが処理される毎に変化するbin_buffer_fullnessの遷移について説明する。
【００６１】
図４に示されるように、ＭＢ番号（MB No）をＭとして、実際に処理されたＭＢについての発生bin量mb_binと、ＭＢ単位で発生する最小発生bin量MB_MIN_BINとを用いると、Ｍ番目のＭＢについてのbin_buffer_fullness(M)は、以下のように表される。
【００６２】
bin_buffer_fullness(0)＝bin_buffer_fullness_0               ・・・（７）
bin_buffer_fullness(M)＝bin_buffer_fullness(M-1)＋mb_bin(M-1)−MB_MIN_BIN
・・・（８）
【００６３】
以降においては、バッファ３３の占有の度合を表すbin_buffer_fullnessが、所定の閾値より大きくなった場合に、バッファ３３においてオーバーフローが発生しないようにするための処理が行われる。
【００６４】
図２のフローチャートに戻り、ステップＳ１５において、ＭＢ処理部３２の閾値処理部６１は、bin_buffer_fullnessが閾値Q_THより大きいか否かを判定する。
【００６５】
閾値Q_THは、AVAILABLE_BINが、符号化処理対象となるＭＢの最小発生bin量MB_MIN_BINに対してどの程度の余裕があるかを判定するために設定され、例えば、以下のように表される。
【００６６】
Q_TH＝bin_buffer_fullness_0×β                            ・・・（９）
【００６７】
ここで、値βは、任意に設定可能な調整値とされ、例えば、０＜β＜１を満たすような値とされる。
【００６８】
ステップＳ１５において、bin_buffer_fullnessが閾値Q_THより大きいと判定された場合、処理はステップＳ１６に進み、Ｑ値上昇処理部６２は、量子化処理対象のＭＢについての量子化ステップを決定する量子化パラメータ（Ｑ値）を上昇させる（大きくする）。H.264/AVCにおいては、Ｑ値はＭＢ毎に決定される。
【００６９】
このようにして、ＭＢのＱ値を上昇させることで、変換係数を少なくすることができるので、量子化処理対象のＭＢ以降のＭＢについて発生bin量を少なくすることができ、バッファ３３におけるオーバーフローの発生を防ぐことができるようになる。
【００７０】
ステップＳ１６の後、処理はステップＳ１７に進み、ＭＢ処理部３２の閾値処理部６１は、bin_buffer_fullnessが閾値MINIMIZE_BIN_THより大きいか否かを判定する。
【００７１】
閾値MINIMIZE_BIN_THは、閾値Q_THと同様に、AVAILABLE_BINが、符号化処理対象となるＭＢの最小発生bin量MB_MIN_BINに対してどの程度の余裕があるかを判定するために設定され、例えば、以下のように表される。
【００７２】
MINIMIZE_BIN_TH＝bin_buffer_fullness_0×γ                  ・・・（１０）
【００７３】
ここで、値γは、任意に設定可能な調整値とされる。また、図４に示されるように、閾値MINIMIZE_BIN_THは、閾値Q_THより大きい値とされる。
【００７４】
ステップＳ１７において、bin_buffer_fullnessが閾値MINIMIZE_BIN_THより大きいと判定された場合、処理はステップＳ１８に進み、発生bin量最小化部６３は、bin生成部６４によってＭＢ毎に生成される発生bin量を最小化するようにする。具体的には、発生bin量最小化部６３は、Ｉスライスの場合、予測モードを全てDC予測にし、変換係数を全て０とし、ＰスライスまたはＢスライスの場合、予測モードをスキップモードとする。
【００７５】
これにより、発生bin量を少なくすることができ、バッファ３３におけるオーバーフローの発生を防ぐことができるようになる。
【００７６】
ステップＳ１８の後、または、bin_buffer_fullnessが、ステップＳ１５において、閾値Q_THより大きくないと判定されたか、ステップＳ１７において、閾値MINIMIZE_BIN_THより大きくないと判定された場合、処理はステップＳ１９に進む。
【００７７】
ステップＳ１９において、bin生成部６４は、上述した処理に応じた発生bin量のbinを生成し、バッファ３３に供給する。このとき、発生bin量は、ピクチャ処理部３１の許容発生bin量算出部５１にフィードバックされる。
【００７８】
ステップＳ２０において、ＭＢ処理部３２は、bin_buffer_fullnessを更新する。
【００７９】
ステップＳ２１において、ＭＢ処理部３２は、１ピクチャにおける全てのＭＢについての処理を終了したか否かを判定する。１ピクチャにおける全てのＭＢについての処理が終了していない場合、処理はステップＳ１５に戻り、ステップＳ１５ないしＳ２１の処理が繰り返される。
【００８０】
一方、ステップＳ２１において、１ピクチャにおける全てのＭＢについての処理が終了した場合、処理はステップＳ２２に進み、許容発生bin量算出部５１は、bin生成部６４からフィードバックされる１ピクチャ分の発生bin量に基づいて、ピクチャについて実際に生成された発生bin量を示すPIC発生bin量を更新する。
【００８１】
ステップＳ２３において、ピクチャ処理部３１は、順次入力される入力画像における全てのピクチャについての処理が終了したか否かを判定する。入力画像における全てのピクチャについての処理が終了していない場合、処理はステップＳ１１に戻り、ステップＳ１１ないしＳ２３の処理が繰り返される。
【００８２】
一方、ステップＳ２３において、入力画像における全てのピクチャについての処理が終了したと判定された場合、発生bin量制御処理は終了する。
【００８３】
以上の処理によれば、バッファ３３の最大蓄積量、および、順次入力される入力画像のピクチャあたりに生成される発生bin量に基づいて、入力画像のピクチャ毎に、バッファ３３に蓄積可能な発生bin量である許容発生bin量AVAILABLE_BINが算出され、バッファ３３の状態が管理されるようになったので、CABAC処理部３４の処理能力を超えるbinがバッファに供給されることを防ぐことができる。したがって、CABAC処理時に、バッファ３３におけるオーバーフローの発生を防ぐことが可能となり、ひいては、正常なビットストリームを出力することが可能となる。
【００８４】
また、上述した符号化装置１１においてCABAC処理を用いて符号化されたビットストリームを復号する復号装置においては、ビットストリームに対してCABAC処理を行い、その結果得られるbinをバッファに蓄積し、復号処理部が、バッファに蓄積されたbinを取得して、復号画像を出力する。復号装置においては、バッファは、符号化装置１１におけるバッファ３３の容量に応じて設計される。
【００８５】
ここで、符号化装置１１によって出力され、復号装置において復号されるビットストリームが、バッファ３３においてオーバーフローが発生するようなビットストリームである場合、復号装置のバッファにおいてもオーバーフローする恐れがある。このような場合、復号処理部へのbinが壊れ、復号処理部が正常な復号画像を出力することができなくなってしまう。また、復号装置において、バッファをオーバーフローさせないようにするためにCABAC処理を停止させるようにもできるが、この場合、実時間で処理が完了せず、復号画像を必要なタイミングで出力することができなくなってしまう。
【００８６】
しかしながら、上述した処理によれば、符号化装置により正常なビットストリームを出力することができるので、復号装置においても、バッファのオーバーフローの発生を防ぐことができ、正常な復号画像を出力することが可能となる。
【００８７】
また、符号化装置１１のCABAC処理部３４の処理能力に応じて発生bin量を制御できるので、必要なバッファ３３の容量を見積もることができ、バッファ３３の最低限の容量を確保することができるようになる。これにより、ハードウェア規模や消費電力を抑えることが可能となる。また、逆に、バッファ３３の容量を決めることができるので、それに応じたCABAC処理部３４の処理能力を見積もることができ、ハードウェア規模や消費電力を抑えることが可能となる。
【００８８】
［スマートレンダリング編集処理について］
ところで、２つの動画像素材を切り出して繋ぎ合わせて編集を行う場合に、スマートレンダリング編集が行われている。
【００８９】
スマートレンダリング編集においては、図５に示されるように、素材Ａから切り出したストリームＡと、素材Ｂから切り出したストリームＢとが繋ぎ合わせられる際に、切り出したストリームＡ，Ｂ全ての区間を再エンコード（トランスコード）するのではなく、図５の斜線で示される部分のように、両端の一部分のみを再エンコードする。つまり、図５の例においては、両矢印１ないし両矢印４に示されるように４つの再エンコード区間が生じる。
【００９０】
このようなスマートレンダリング編集を行う画像編集装置において、再エンコード（再符号化）処理を行う際にCABAC処理を用いるようにした場合、図５において両矢印２，３で示される、ストリームＡとストリームＢとが繋ぎ合わせられる再エンコード区間の発生bin量がわからないので、バッファにおいてオーバーフローが発生する可能性がある。
【００９１】
ストリームＡとストリームＢとが繋ぎ合わせられる再エンコード区間の発生bin量を知るためには、素材Ａおよび素材Ｂの全区間に対してCABAC処理を行う必要がある。しかしながら、AVCにおいて、CABAC処理は、非常に処理量が多く、時間がかかる処理であるため、スマートレンダリング編集に時間がかかってしまう。
【００９２】
そこで、以下においては、スマートレンダリング編集を行う画像編集装置において、バッファのオーバーフローの発生を抑える構成について説明する。
【００９３】
［画像編集装置の構成例］
図６は、スマートレンダリング編集を行う画像編集装置の構成例を示している。
【００９４】
画像編集装置１１１は、再エンコード処理部１３１、バッファ１３２、およびCABAC処理部１３３を備えている。
【００９５】
なお、図６の画像編集装置１１１におけるバッファ１３２およびCABAC処理部１３３は、図１の符号化装置１１におけるバッファ３３およびCABAC処理部３４と、基本的に同様の機能を有するので、その説明は省略する。
【００９６】
再エンコード処理部１３１は、入力された入力画像を復号せずに、再符号化（再エンコード）する。再エンコード処理部１３１は、例えば、図５で示された素材Ａおよび素材Ｂから切り出したストリームＡおよびストリームＢを繋ぎ合わせ、スマートレンダリング編集を行う。
【００９７】
また、再エンコード処理部１３１は、許容発生bin量算出部１５１およびbin生成部１５２を少なくとも備えており、例えば、図５で示されたストリームＡとストリームＢとが繋ぎ合わせられる再エンコード区間における発生bin量を制御する。なお、画像編集装置１１１においても、バッファ１３２の管理方法として、HRDモデルのVBRモードが適用されるものとする。
【００９８】
ここで、図７を参照して、再エンコード区間における発生bin量の遷移について説明する。
【００９９】
図７に示されるように、ストリームＡの再エンコード区間直前のピクチャ番号をM_A、ストリームＢの再エンコード区間直後のピクチャ番号をM_B、再エンコード区間のピクチャの数（再エンコード枚数）をＲとすると、ストリームＡの再エンコード区間直前のバッファ１３２内のLocal bin量LBIN_A、および、ストリームＢの再エンコード区間直後のバッファ１３２内のLocal bin量LBIN_Bは、以下のように表される。
【０１００】
LBIN_A＝AVAILABLE_BIN(M_A)−PIC発生BIN量(M_A)            ・・・（１１）
LBIN_B＝AVAILABLE_BIN(M_B)                               ・・・（１２）
【０１０１】
なお、図７においては、M_B＝M_A＋Ｒの関係が成り立つ。
【０１０２】
すなわち、画像編集装置１１１においては、バッファ１３２がオーバーフローしないように、Ｒ枚のピクチャに対する再エンコード処理において発生する発生bin量が制御されればよい。
【０１０３】
［画像編集装置による発生bin量制御処理について］
ここで、図８のフローチャートを参照して、図６の画像編集装置１１１による発生bin量制御処理について説明する。
【０１０４】
ステップＳ６１において、許容発生bin量算出部１５１は、図９に示されるように、LBIN_Aを０、LBIN_Bをバッファ１３２の最大蓄積量に設定する。これにより、(M_A+1)番目のピクチャおよびM_B番目のピクチャについて、以下に示す関係が成立する。
【０１０５】
AVAILABLE_BIN(M_A+1)＝AVAILABLE_BIN(M_A)＋ROP−PIC発生bin量(M_A)
＝LBIN_A＋ROP
＝ROP                                ・・・（１３）
AVAILABLE_BIN(M_B)＝BUFFER_SIZE                          ・・・（１４）
【０１０６】
ステップＳ６２において、許容発生bin量算出部１５１は、上述した式（１３），（１４）を満たすために、発生bin量を制限するピクチャの数LIMIT_PIC_NUMを設定する。ここで、LIMIT_PIC_NUM≦Ｒとされる。
【０１０７】
ステップＳ６３において、許容発生bin量算出部１５１は、再エンコード処理対象となるピクチャのピクチャ番号Ｘを０に設定する。
【０１０８】
ステップＳ６４において、許容発生bin量算出部１５１は、Ｘ＜Ｒ−LIMIT_PIC_NUMであるか否かを判定する。
【０１０９】
ステップＳ６４において、Ｘ＜Ｒ−LIMIT_PIC_NUMであると判定された場合、処理はステップＳ６５に進み、許容発生bin量算出部１５１は、再エンコード区間におけるピクチャ毎の許容発生bin量RE_ENC_AVAILABLE_BIN(X)を、AVAILABLE_BIN(X)とする。なお、AVAILABLE_BIN(X)は、図２のフローチャートのステップＳ１１における処理と同様の処理によって算出されるものとする。
【０１１０】
ステップＳ６６において、bin生成部１５２は、許容発生bin量算出部１５１によって算出されたRE_ENC_AVAILABLE_BIN(X)に応じた発生bin量のbinを生成する。このとき、bin生成部１５２は、所定の変換テーブルに基づいて、ストリーム（bit）をbinに変換することでbinを生成する。このような変換テーブルを用いることで、再エンコード処理にかかる演算量を削減することが可能となる。
【０１１１】
ステップＳ６７において、許容発生bin量算出部１５１は、Ｘを１インクリメントする。
【０１１２】
ステップＳ６８において、許容発生bin量算出部１５１は、Ｘ＝Ｒであるか否か、すなわち、再エンコード処理対象のピクチャが、再エンコード区間最後のピクチャであるか否かを判定する。
【０１１３】
ステップＳ６８において、Ｘ＝Ｒでないと判定された場合、処理はステップＳ６４に戻り、ステップＳ６４ないしＳ６８の処理が繰り返される。
【０１１４】
そして、ステップＳ６４において、Ｘ＜Ｒ−LIMIT_PIC_NUMでないと判定された場合、すなわち、Ｘ≧Ｒ−LIMIT_PIC_NUMであると判定された場合、処理はステップＳ６９に進む。
【０１１５】
ステップＳ６９において、許容発生bin量算出部１５１は、RE_ENC_AVAILABLE_BIN(X)を以下のように設定する。
【０１１６】
RE_ENC_AVAILABLE_BIN(X)＝ROP−｛TARGET_SIZE−AVAILABLE_BIN(X)｝／REMAINING_PIC_NUM(X)                                              ・・・（１５）
【０１１７】
ここで、TARGET_SIZEは、目標となるバッファ１３２の蓄積量であり、ここではBUFFER_SIZEと等しい。また、REMAINING_PIC_NUM(X)は、再エンコード区間におけるピクチャの残りの数であり、REMAINING_PIC_NUM(X)＝Ｒ−Ｘとされる。
【０１１８】
ステップＳ６９の後、処理はステップＳ６６に進み、bin生成部１５２は、許容発生bin量算出部１５１によって算出されたRE_ENC_AVAILABLE_BIN(X)に応じた発生bin量のbinを、所定の変換テーブルに基づいて生成する。
【０１１９】
一方、ステップＳ６７において、Ｘ＝Ｒであると判定された場合、すなわち、再エンコード区間におけるピクチャに対する処理が終了した場合、発生bin量制御処理は終了する。
【０１２０】
以上の処理によれば、ストリームＡとストリームＢとを繋ぎ合わせるスマートレンダリング編集において、ストリームＡの再エンコード区間直前のピクチャについてのバッファ１３２内の発生bin量LBIN_Aを０とし、ストリームＢの再エンコード区間直後のピクチャについてのバッファ１３２内の発生bin量LBIN_Bをバッファ１３２の最大蓄積量に設定して、これを満たすように、再エンコード区間におけるピクチャ毎の許容発生bin量RE_ENC_AVAILABLE_BIN(X)を算出するようにしたので、再エンコード区間の発生bin量は、バッファ１３２の最大蓄積量を超えることはなく、バッファ１３２におけるオーバーフローの発生を防ぐことが可能となり、ひいては、正常なビットストリームを出力することが可能となる。
【０１２１】
また、ストリームＡとストリームＢとが繋ぎ合わせられる再エンコード区間の発生bin量を知るために、素材Ａおよび素材Ｂの全区間に対してCABAC処理を行う必要がないので、AVCにおけるスマートレンダリング編集にかかる時間を削減することが可能となる。
【０１２２】
なお、上述した説明においては、バッファ状態を管理する方法として、HRDモデルのVBRモードを適用し、バッファの許容発生bin量を算出することで、発生bin量を制御する手法を用いるようにしたが、他の手法を用いるようにしてもよい。例えば、バッファのサイズ、CABAC処理部の処理能力、ＭＢ単位で発生する最小発生bin量（MB_MIN_BIN）等に基づいて、発生bin量を制御することで、バッファの状態を管理するようにしてもよい。
【０１２３】
上述した発生bin量制御処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。
【０１２４】
図１０は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０１２５】
コンピュータにおいて、CPU（Central Processing Unit）９０１，ROM（Read Only Memory）９０２，RAM（Random Access Memory）９０３は、バス９０４により相互に接続されている。
【０１２６】
バス９０４には、さらに、入出力インタフェース９０５が接続されている。入出力インタフェース９０５には、キーボード、マウス、マイクロホン等よりなる入力部９０６、ディスプレイ、スピーカ等よりなる出力部９０７、ハードディスクや不揮発性のメモリ等よりなる記憶部９０８、ネットワークインタフェース等よりなる通信部９０９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア９１１を駆動するドライブ９１０が接続されている。
【０１２７】
以上のように構成されるコンピュータでは、CPU９０１が、例えば、記憶部９０８に記憶されているプログラムを、入出力インタフェース９０５およびバス９０４を介して、RAM９０３にロードして実行することにより、上述した一連の処理が行われる。
【０１２８】
コンピュータ（CPU９０１）が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア９１１に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０１２９】
そして、プログラムは、リムーバブルメディア９１１をドライブ９１０に装着することにより、入出力インタフェース９０５を介して、記憶部９０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部９０９で受信し、記憶部９０８にインストールすることができる。その他、プログラムは、ROM９０２や記憶部９０８に、あらかじめインストールしておくことができる。
【０１３０】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１３１】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１３２】
１１  符号化装置，  ３１  ピクチャ処理部，  ３２  ＭＢ処理部，  ３３  バッファ，  ３４  CABAC処理部，  ５１  発生bin量算出部，  ５２  閾値処理部，  ５３  係数設定部，  ５４  パラメータ初期化部，  ６１  閾値処理部，  ６２  Ｑ値上昇処理部，  ６３  発生bin量最小化部，  ６４  bin生成部，  １１１  画像編集装置，  １３１  再エンコード処理部，  １３２  バッファ，  １３３  CABAC処理部，  １５１  発生bin量算出部，  １５２  bin生成部
【図１】
2012138661.tif 000003
【図２】
2012138661.tif 000004
【図３】
2012138661.tif 000005
【図４】
2012138661.tif 000006
【図５】
2012138661.tif 000007
【図６】
2012138661.tif 000008
【図７】
2012138661.tif 000009
【図８】
2012138661.tif 000010
【図９】
2012138661.tif 000011
【図１０】
2012138661.tif 000012