JP2012138661A - 画像処理装置および方法 - Google Patents

画像処理装置および方法 Download PDF

Info

Publication number
JP2012138661A
JP2012138661A JP2010287964A JP2010287964A JP2012138661A JP 2012138661 A JP2012138661 A JP 2012138661A JP 2010287964 A JP2010287964 A JP 2010287964A JP 2010287964 A JP2010287964 A JP 2010287964A JP 2012138661 A JP2012138661 A JP 2012138661A
Authority
JP
Japan
Prior art keywords
bin
buffer
amount
input image
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010287964A
Other languages
English (en)
Inventor
Naohiko Kotaka
直彦 小鷹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2010287964A priority Critical patent/JP2012138661A/ja
Priority to US13/272,384 priority patent/US20120163449A1/en
Priority to CN2011104188340A priority patent/CN102547278A/zh
Publication of JP2012138661A publication Critical patent/JP2012138661A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】より確実に、バッファにおけるオーバーフローの発生を防ぐ。
【解決手段】入力画像に対応して生成される情報(bin)をバッファ33に蓄積し、蓄積されたbinを取得して算術符号化を行う符号化装置11において、許容発生bin量算出部51は、バッファ33の最大蓄積量、および、入力画像の1ピクチャあたりに生成される発生bin量に基づいて、入力画像のピクチャ毎に、バッファ33に蓄積可能な許容発生bin量を算出し、bin生成部64は、許容発生bin量算出部51により算出された許容発生bin量に応じた発生bin量のbinを生成する。本発明は、例えば、CABAC処理を行う符号化装置に適用することができる。
【選択図】図1

Description

本発明は、画像処理装置および方法に関し、特に、バッファにおけるオーバーフローの発生を防ぐことができるようにする画像処理装置および方法に関する。
従来、動画像データの圧縮符号化方式の標準の1つとして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処理とを非同期で行うことが提案されている(例えば、特許文献1,2)。これにより、CABAC処理と符号化処理とを並列に実行することができるようになるので、処理負荷を分散させることができ、ハードウェア規模や消費電力を抑えることが可能となった。
上述した符号化装置においては、符号化処理により量子化された直交変換係数やマクロブロックヘッダ(MBヘッダ)としてのシンタックスエレメント(SE: Syntax Element)が2値化され、この2値化されたシンボル(bin)がバッファに蓄積(保持)され、CABAC処理部が、バッファに蓄積されたbinを取得してCABAC処理を行うことで、ビットストリームを出力する。
特開2003−259370号公報 国際公開第WO 2005/41420号パンフレット
しかしながら、上述した符号化装置においては、バッファの状態が管理されていないため、符号化処理部から、CABAC処理部の処理能力を超えるbinがバッファに供給される恐れがある。この場合、CABAC処理部によるCABAC処理が間に合わずに、バッファがオーバーフローしてしまい、これにより、CABAC処理部へのbinが壊れ、CABAC処理部が正常なビットストリームを出力することができなくなってしまう。
本発明は、このような状況に鑑みてなされたものであり、より確実に、バッファにおけるオーバーフローの発生を防ぐことができるようにするものである。
本発明の一側面の符号化装置は、入力画像に対応して生成される情報をバッファに蓄積し、蓄積された前記情報を取得して算術符号化を行う画像処理装置であって、前記バッファの最大蓄積量、および、前記入力画像の所定単位あたりに生成される前記情報の情報量に基づいて、前記入力画像の所定単位毎に、前記バッファに蓄積可能な前記情報の許容量を算出する算出部と、前記算出部により算出された前記許容量に応じた情報量の前記情報を生成する生成部とを備える。
前記画像処理装置には、前記入力画像のピクチャ毎に算出される前記許容量が所定の閾値より小さい場合、前記入力画像におけるマクロブロックについての係数を全て0とする係数設定部をさらに設けることができる。
前記画像処理装置には、前記入力画像のピクチャ毎に算出される前記許容量に対する、前記入力画像のマクロブロックあたりに生成される前記情報の情報量に応じた値が、第1の閾値より大きい場合に、前記マクロブロックの量子化パラメータの値を大きくさせるパラメータ調整部をさらに設けることができる。
前記画像処理装置には、前記入力画像のピクチャ毎に算出される前記許容量に対する、前記入力画像のマクロブロックあたりに生成される前記情報の情報量に応じた値が、前記第1の閾値と異なる第2の閾値より大きい場合に、前記マクロブロックあたりに生成される前記情報の情報量を最小化する最小化部をさらに設けることができる。
第1の入力画像と第2の入力画像とを切り出して繋ぎ合わせる編集において、前記第1の入力画像と前記第2の入力画像との繋ぎ合わせの箇所を再符号化する場合、前記算出部には、前記第1の入力画像において再符号化される箇所の直前のピクチャについての前記バッファにおける第1の情報量を0とし、前記第2の入力画像において再符号化される箇所の直後のピクチャについての前記バッファにおける第2の情報量を前記バッファの最大蓄積量として、これを満たすように、前記第1の入力画像および前記第2の入力画像において再符号化される箇所のピクチャ毎に、前記許容量を算出させることができる。
前記算出部には、HRD(Hypothetical Reference Decoder)モデルを適用することで、前記バッファに蓄積可能な前記情報の前記許容量を算出させることができる。
本発明の一側面の符号化方法は、入力画像に対応して生成される情報をバッファに蓄積し、蓄積された前記情報を取得して算術符号化を行う画像処理装置の画像処理方法であって、前記バッファの最大蓄積量、および、前記入力画像の所定単位あたりに生成される前記情報の情報量に基づいて、前記入力画像の所定単位毎に、前記バッファに蓄積可能な前記情報の許容量を算出する算出ステップと、前記算出ステップの処理により算出された前記許容量に応じた情報量の前記情報を生成する生成ステップとを含む。
本発明の一側面においては、バッファの最大蓄積量、および、入力画像の所定単位あたりに生成される情報の情報量に基づいて、入力画像の所定単位毎に、バッファに蓄積可能な情報の許容量が算出され、算出された許容量に応じた情報量の情報が生成される。
本発明の一側面によれば、より確実に、バッファにおけるオーバーフローの発生を防ぐことが可能となる。
本開示に係る符号化装置の一実施の形態の構成を示すブロック図である。 図1の符号化装置による発生bin量制御処理を説明するフローチャートである。 AVAILABLE_BINの遷移について説明する図である。 bin_buffer_fullnessの遷移について説明する図である。 スマートレンダリング編集の例を説明する図である。 画像編集装置の構成を示すブロック図である。 AVAILABLE_BINの遷移について説明する図である。 図6の画像編集装置による発生bin量制御処理を説明するフローチャートである。 AVAILABLE_BINの遷移について説明する図である。 コンピュータのハードウェアの構成例を示すブロック図である。
以下、本開示の実施の形態について図を参照して説明する。
[符号化装置の構成]
図1は、本開示に係る画像処理装置としての符号化装置の一実施の形態の機能的な構成を示している。
図1の符号化装置11は、H.264およびMPEG-4 Part10 Advanced Video Coding(H.264/AVC)の規格に準拠して、入力されてくる入力画像に対して符号化処理を行うことで、ビットストリームを出力する。
符号化装置11は、ピクチャ処理部31、マクロブロック(MB)処理部32、バッファ33、およびCABAC(Context-Adaptive Binary Arithmetic Coding)処理部34から構成される。
ピクチャ処理部31は、順次入力される符号化対象の入力画像(動画像)に対して、ピクチャ単位で、MB処理部32における処理に必要な初期化処理等を施し、その結果得られたパラメータと入力画像とをMB処理部32に供給する。
MB処理部32は、ピクチャ処理部31からのピクチャ単位の入力画像に対して、マクロブロック(MB)単位で、イントラ予測、動き補償(MC:Motion Compensation)、直交変換、量子化等の符号化処理を施す。MB処理部32は、符号化処理の結果得られた、量子化された変換係数やMBヘッダとしてのシンタックスエレメント(SE: Syntax Element)を2値化してバイナリ列とし、その1ビットずつをシンボル(bin)としてバッファ33に供給する。
バッファ33は、MB処理部32からのbinを一時的に蓄積する。
CABAC処理部34は、バッファ33からbinを取得し(読み出し)、CABACによる算術符号化処理を施し、符号化結果としてのビットストリームを出力する。
また、符号化装置11においては、バッファ33に供給されるbinの量(以下、発生bin量という)が制御される。具体的には、ピクチャ処理部31がピクチャ単位での発生bin量を制御し、MB処理部32がMB単位での発生bin量を制御することで、符号化装置11において、バッファ33の状態が管理される。
ピクチャ処理部31は、許容発生bin量算出部51、閾値処理部52、係数設定部53、およびパラメータ初期化部54を備えている。
許容発生bin量算出部51は、バッファ33の最大蓄積量、および、入力画像の所定単位(例えば1ピクチャ)あたりに生成されるbinの量(発生bin量)に基づいて、入力画像の1ピクチャ毎に、バッファ33に蓄積可能な発生bin量(許容発生bin量)を算出する。
閾値処理部52は、許容発生bin量算出部51により算出された許容発生bin量が、所定の閾値より小さいか否かを判定する。
係数設定部53は、閾値処理部52によって、許容発生bin量算出部51により算出された許容発生bin量が、所定の閾値より小さいと判定された場合、MB処理部32において求められるMBの直交変換係数(以下、単に変換係数という)を所定の値に設定する。係数設定部53は、変換係数を所定の値に設定した旨の情報をMB処理部32に供給する。
パラメータ初期化部54は、1ピクチャ毎の許容発生bin量に対する、MB処理部32において処理されるMBあたりに生成される発生bin量に応じた値(パラメータ)を初期化し、MB処理部32に供給する。このパラメータは、MB処理部32においてMBが処理される毎に変化し、その変化に応じてMB単位での発生bin量が制御される。
MB処理部32は、閾値処理部61、Q値上昇処理部62、発生bin量最小化部63、およびbin生成部64を備えている。
閾値処理部61は、パラメータ初期化部54によって初期化されたパラメータがMB毎に変化する中で、そのパラメータが所定の閾値より大きいか否かを判定する。
Q値上昇処理部62は、閾値処理部61によって、パラメータが所定の閾値のうちの第1の閾値より大きいと判定された場合、MB毎の量子化に関わる量子化パラメータを大きくする。
発生bin量最小化部63は、閾値処理部61によって、パラメータが所定の閾値のうちの第2の閾値より大きいと判定された場合、bin生成部64によってMB毎に生成されるbinの量(発生bin量)を最小化するようにする。
bin生成部64は、MB毎にbinを生成し、バッファ33に供給する。なお、bin生成部4により生成されたbinの量、すなわち発生bin量は、ピクチャ処理部31にフィードバックされる。
[符号化装置による発生bin量制御処理について]
ここで、図2のフローチャートを参照して、図1の符号化装置11による発生bin量制御処理について説明する。
ステップS11において、ピクチャ処理部31の許容発生bin量算出部51は、バッファ33の最大蓄積量、および、順次入力される入力画像の1ピクチャあたりに生成される発生bin量に基づいて、入力画像の1ピクチャ毎に、バッファ33に蓄積可能な発生bin量である許容発生bin量AVAILABLE_BINを算出する。
ここで、符号化装置11におけるバッファ33の管理方法として、HRD(Hypothetical Reference Decoder)モデルのVBR(Variable Bit Rate)モードを適用する。HRDは、ビデオエンコーダのための仮想モデルであり、符号化されたストリームのビット速度の変動を制御するために用いられる。HRDは、ビデオエンコーダに対応するビデオデコーダの入力バッファがオーバーフローまたはアンダーフローを起こさないように、ビットストリームおよびビデオデコーダに制約条件を設ける。
図3は、符号化装置11におけるバッファ33の管理方法としてHRDモデルを適用したときのAVAILABLE_BINの遷移について説明する図である。
図3に示されるように、HRDモデルにおける1ピクチャあたりのバッファへのビット供給量を、CABAC処理部34の1ピクチャあたりのbinの処理能力ROP(Rate Over Picture)とし、HRDモデルにおけるバッファサイズを、符号化装置11におけるバッファ33のサイズBUFFER_SIZEとし、Nをピクチャ番号(Picture No)とすると、0番目のピクチャについてのAVAILABLE_BIN(0)、および、N番目のピクチャについてのAVAILABLE_BIN(N)は、以下のように表される。
AVAILABLE_BIN(0)=BUFFER_SIZE−BUFFER初期占有量 ・・・(1)
AVAILABLE_BIN(N)=AVAILABLE_BIN(N-1)+ROP−PIC発生bin量(N-1)
・・・(2)
なお、PIC発生bin量(N-1)は、(N-1)番目のピクチャについて実際に生成された発生bin量を示している。
このようにして、ピクチャ毎の許容発生bin量AVAILABLE_BINが算出される。
なお、ピクチャ毎の許容発生bin量AVAILABLE_BINは、バッファ33のサイズBUFFER_SIZEを上限としてクリップされる必要があるので、算出されるAVAILABLE_BINがBUFFER_SIZEを超える場合には、AVAILABLE_BIN(N)=BUFFER_SIZEとなる。
図2のフローチャートに戻り、ステップS12において、閾値処理部52は、許容発生bin量算出部51により算出されたAVAILABLE_BINが、閾値PIC_COEFF_CUT_THより小さいか否かを判定する。
ここで、閾値PIC_COEFF_CUT_THについて説明する。
AVCの規格に準拠した符号化処理において、MB単位で発生する最小発生bin量MB_MIN_BIN、および、1ピクチャあたりのMB数MB_NUMは、符号化処理対象となるピクチャを符号化するより前に知ることができるため、ピクチャ単位で発生する最小発生bin量PIC_MIN_BINは、以下のように表される。
PIC_MIN_BIN=MB_MIN_BIN×MB_NUM ・・・(3)
なお、MB_MIN_BINは、Iスライスの場合、予測モードを全てDC予測にし、変換係数を全て0としたときの発生bin量となり、PスライスまたはBスライスの場合、予測モードをスキップモードとしたときの発生bin量となる。
閾値PIC_COEFF_CUT_THは、ピクチャ毎の許容発生bin量AVAILABLE_BINが、符号化処理対象となるピクチャの最小発生bin量PIC_MIN_BINに対してどの程度の余裕があるかを判定するために設定される。PIC_MIN_BINがAVAILABLE_BINに近いほど、バッファ33は余裕がなくなるので、オーバーフローが発生する可能性が高くなり、最終的に出力される画像の画質が劣化する恐れがある。そこで、閾値PIC_COEFF_CUT_THは、若干のマージンMARGINを加味して、以下のように設定される。
PIC_COEFF_CUT_TH=(PIC_MIN_BIN+MARGIN)×α ・・・(4)
ここで、値αは、任意に設定可能な調整値とされる。また、マージンMARGINは、MB処理部32における符号化処理において、実際に処理されているMBの発生bin量と、知ることのできるMBの発生bin量とに生じるずれDELAYを考慮したものであり、MB単位で発生する最大発生bin量MB_MAX_BINを用いて、以下のように表される。
MARGIN=MB_MAX_BIN×DELAY ・・・(5)
さて、図2のフローチャートに戻り、ステップS12において、AVAILABLE_BINがPIC_COEFF_CUT_THより小さいと判定された場合、すなわち、バッファ33でオーバーフローが発生する可能性が高い場合、処理はステップS13に進む。
ステップS13において、係数設定部53は、MB処理部32において符号化処理となるピクチャのMBについての変換係数を全て0に設定し、変換係数を0に設定した旨の情報をMB処理部32に供給する。すなわち、MB処理部32においては、符号化処理となるピクチャについての残差画像は無視され、そのピクチャは予測画像と同一となる。これにより、発生bin量を少なくすることができ、バッファ33におけるオーバーフローを防ぐことができるとともに、オーバーフローが発生した場合の画質の劣化を防ぎ、画質を維持することができる。
なお、ステップS12において、AVAILABLE_BINがPIC_COEFF_CUT_THより小さくないと判定された場合、ステップS13はスキップされる。
ステップS14において、パラメータ初期化部54は、AVAILABLE_BINに対する、MB処理部32において処理されるMB毎に生成される発生bin量に応じたパラメータbin_buffer_fullnessを初期化し、MB処理部32に供給する。bin_buffer_fullnessは、その値が大きくなるほどバッファ33の余裕がなくなる(バッファ33が占有されている)ことを示すパラメータである。ここでは、bin_buffer_fullnessは、以下に表されるbin_buffer_fullness_0として初期化される。
bin_buffer_fullness_0=PIC_MIN_BIN+MARGIN−AVAILABLE_BIN(0) ・・・(6)
なお、bin_buffer_fullnessは、MB処理部32においてMBが処理される毎に変化する。ここで、図4を参照して、MBが処理される毎に変化するbin_buffer_fullnessの遷移について説明する。
図4に示されるように、MB番号(MB No)をMとして、実際に処理されたMBについての発生bin量mb_binと、MB単位で発生する最小発生bin量MB_MIN_BINとを用いると、M番目のMBについてのbin_buffer_fullness(M)は、以下のように表される。
bin_buffer_fullness(0)=bin_buffer_fullness_0 ・・・(7)
bin_buffer_fullness(M)=bin_buffer_fullness(M-1)+mb_bin(M-1)−MB_MIN_BIN
・・・(8)
以降においては、バッファ33の占有の度合を表すbin_buffer_fullnessが、所定の閾値より大きくなった場合に、バッファ33においてオーバーフローが発生しないようにするための処理が行われる。
図2のフローチャートに戻り、ステップS15において、MB処理部32の閾値処理部61は、bin_buffer_fullnessが閾値Q_THより大きいか否かを判定する。
閾値Q_THは、AVAILABLE_BINが、符号化処理対象となるMBの最小発生bin量MB_MIN_BINに対してどの程度の余裕があるかを判定するために設定され、例えば、以下のように表される。
Q_TH=bin_buffer_fullness_0×β ・・・(9)
ここで、値βは、任意に設定可能な調整値とされ、例えば、0<β<1を満たすような値とされる。
ステップS15において、bin_buffer_fullnessが閾値Q_THより大きいと判定された場合、処理はステップS16に進み、Q値上昇処理部62は、量子化処理対象のMBについての量子化ステップを決定する量子化パラメータ(Q値)を上昇させる(大きくする)。H.264/AVCにおいては、Q値はMB毎に決定される。
このようにして、MBのQ値を上昇させることで、変換係数を少なくすることができるので、量子化処理対象のMB以降のMBについて発生bin量を少なくすることができ、バッファ33におけるオーバーフローの発生を防ぐことができるようになる。
ステップS16の後、処理はステップS17に進み、MB処理部32の閾値処理部61は、bin_buffer_fullnessが閾値MINIMIZE_BIN_THより大きいか否かを判定する。
閾値MINIMIZE_BIN_THは、閾値Q_THと同様に、AVAILABLE_BINが、符号化処理対象となるMBの最小発生bin量MB_MIN_BINに対してどの程度の余裕があるかを判定するために設定され、例えば、以下のように表される。
MINIMIZE_BIN_TH=bin_buffer_fullness_0×γ ・・・(10)
ここで、値γは、任意に設定可能な調整値とされる。また、図4に示されるように、閾値MINIMIZE_BIN_THは、閾値Q_THより大きい値とされる。
ステップS17において、bin_buffer_fullnessが閾値MINIMIZE_BIN_THより大きいと判定された場合、処理はステップS18に進み、発生bin量最小化部63は、bin生成部64によってMB毎に生成される発生bin量を最小化するようにする。具体的には、発生bin量最小化部63は、Iスライスの場合、予測モードを全てDC予測にし、変換係数を全て0とし、PスライスまたはBスライスの場合、予測モードをスキップモードとする。
これにより、発生bin量を少なくすることができ、バッファ33におけるオーバーフローの発生を防ぐことができるようになる。
ステップS18の後、または、bin_buffer_fullnessが、ステップS15において、閾値Q_THより大きくないと判定されたか、ステップS17において、閾値MINIMIZE_BIN_THより大きくないと判定された場合、処理はステップS19に進む。
ステップS19において、bin生成部64は、上述した処理に応じた発生bin量のbinを生成し、バッファ33に供給する。このとき、発生bin量は、ピクチャ処理部31の許容発生bin量算出部51にフィードバックされる。
ステップS20において、MB処理部32は、bin_buffer_fullnessを更新する。
ステップS21において、MB処理部32は、1ピクチャにおける全てのMBについての処理を終了したか否かを判定する。1ピクチャにおける全てのMBについての処理が終了していない場合、処理はステップS15に戻り、ステップS15ないしS21の処理が繰り返される。
一方、ステップS21において、1ピクチャにおける全てのMBについての処理が終了した場合、処理はステップS22に進み、許容発生bin量算出部51は、bin生成部64からフィードバックされる1ピクチャ分の発生bin量に基づいて、ピクチャについて実際に生成された発生bin量を示すPIC発生bin量を更新する。
ステップS23において、ピクチャ処理部31は、順次入力される入力画像における全てのピクチャについての処理が終了したか否かを判定する。入力画像における全てのピクチャについての処理が終了していない場合、処理はステップS11に戻り、ステップS11ないしS23の処理が繰り返される。
一方、ステップS23において、入力画像における全てのピクチャについての処理が終了したと判定された場合、発生bin量制御処理は終了する。
以上の処理によれば、バッファ33の最大蓄積量、および、順次入力される入力画像のピクチャあたりに生成される発生bin量に基づいて、入力画像のピクチャ毎に、バッファ33に蓄積可能な発生bin量である許容発生bin量AVAILABLE_BINが算出され、バッファ33の状態が管理されるようになったので、CABAC処理部34の処理能力を超えるbinがバッファに供給されることを防ぐことができる。したがって、CABAC処理時に、バッファ33におけるオーバーフローの発生を防ぐことが可能となり、ひいては、正常なビットストリームを出力することが可能となる。
また、上述した符号化装置11においてCABAC処理を用いて符号化されたビットストリームを復号する復号装置においては、ビットストリームに対してCABAC処理を行い、その結果得られるbinをバッファに蓄積し、復号処理部が、バッファに蓄積されたbinを取得して、復号画像を出力する。復号装置においては、バッファは、符号化装置11におけるバッファ33の容量に応じて設計される。
ここで、符号化装置11によって出力され、復号装置において復号されるビットストリームが、バッファ33においてオーバーフローが発生するようなビットストリームである場合、復号装置のバッファにおいてもオーバーフローする恐れがある。このような場合、復号処理部へのbinが壊れ、復号処理部が正常な復号画像を出力することができなくなってしまう。また、復号装置において、バッファをオーバーフローさせないようにするためにCABAC処理を停止させるようにもできるが、この場合、実時間で処理が完了せず、復号画像を必要なタイミングで出力することができなくなってしまう。
しかしながら、上述した処理によれば、符号化装置により正常なビットストリームを出力することができるので、復号装置においても、バッファのオーバーフローの発生を防ぐことができ、正常な復号画像を出力することが可能となる。
また、符号化装置11のCABAC処理部34の処理能力に応じて発生bin量を制御できるので、必要なバッファ33の容量を見積もることができ、バッファ33の最低限の容量を確保することができるようになる。これにより、ハードウェア規模や消費電力を抑えることが可能となる。また、逆に、バッファ33の容量を決めることができるので、それに応じたCABAC処理部34の処理能力を見積もることができ、ハードウェア規模や消費電力を抑えることが可能となる。
[スマートレンダリング編集処理について]
ところで、2つの動画像素材を切り出して繋ぎ合わせて編集を行う場合に、スマートレンダリング編集が行われている。
スマートレンダリング編集においては、図5に示されるように、素材Aから切り出したストリームAと、素材Bから切り出したストリームBとが繋ぎ合わせられる際に、切り出したストリームA,B全ての区間を再エンコード(トランスコード)するのではなく、図5の斜線で示される部分のように、両端の一部分のみを再エンコードする。つまり、図5の例においては、両矢印1ないし両矢印4に示されるように4つの再エンコード区間が生じる。
このようなスマートレンダリング編集を行う画像編集装置において、再エンコード(再符号化)処理を行う際にCABAC処理を用いるようにした場合、図5において両矢印2,3で示される、ストリームAとストリームBとが繋ぎ合わせられる再エンコード区間の発生bin量がわからないので、バッファにおいてオーバーフローが発生する可能性がある。
ストリームAとストリームBとが繋ぎ合わせられる再エンコード区間の発生bin量を知るためには、素材Aおよび素材Bの全区間に対してCABAC処理を行う必要がある。しかしながら、AVCにおいて、CABAC処理は、非常に処理量が多く、時間がかかる処理であるため、スマートレンダリング編集に時間がかかってしまう。
そこで、以下においては、スマートレンダリング編集を行う画像編集装置において、バッファのオーバーフローの発生を抑える構成について説明する。
[画像編集装置の構成例]
図6は、スマートレンダリング編集を行う画像編集装置の構成例を示している。
画像編集装置111は、再エンコード処理部131、バッファ132、およびCABAC処理部133を備えている。
なお、図6の画像編集装置111におけるバッファ132およびCABAC処理部133は、図1の符号化装置11におけるバッファ33およびCABAC処理部34と、基本的に同様の機能を有するので、その説明は省略する。
再エンコード処理部131は、入力された入力画像を復号せずに、再符号化(再エンコード)する。再エンコード処理部131は、例えば、図5で示された素材Aおよび素材Bから切り出したストリームAおよびストリームBを繋ぎ合わせ、スマートレンダリング編集を行う。
また、再エンコード処理部131は、許容発生bin量算出部151およびbin生成部152を少なくとも備えており、例えば、図5で示されたストリームAとストリームBとが繋ぎ合わせられる再エンコード区間における発生bin量を制御する。なお、画像編集装置111においても、バッファ132の管理方法として、HRDモデルのVBRモードが適用されるものとする。
ここで、図7を参照して、再エンコード区間における発生bin量の遷移について説明する。
図7に示されるように、ストリームAの再エンコード区間直前のピクチャ番号をM_A、ストリームBの再エンコード区間直後のピクチャ番号をM_B、再エンコード区間のピクチャの数(再エンコード枚数)をRとすると、ストリームAの再エンコード区間直前のバッファ132内のLocal bin量LBIN_A、および、ストリームBの再エンコード区間直後のバッファ132内のLocal bin量LBIN_Bは、以下のように表される。
LBIN_A=AVAILABLE_BIN(M_A)−PIC発生BIN量(M_A) ・・・(11)
LBIN_B=AVAILABLE_BIN(M_B) ・・・(12)
なお、図7においては、M_B=M_A+Rの関係が成り立つ。
すなわち、画像編集装置111においては、バッファ132がオーバーフローしないように、R枚のピクチャに対する再エンコード処理において発生する発生bin量が制御されればよい。
[画像編集装置による発生bin量制御処理について]
ここで、図8のフローチャートを参照して、図6の画像編集装置111による発生bin量制御処理について説明する。
ステップS61において、許容発生bin量算出部151は、図9に示されるように、LBIN_Aを0、LBIN_Bをバッファ132の最大蓄積量に設定する。これにより、(M_A+1)番目のピクチャおよびM_B番目のピクチャについて、以下に示す関係が成立する。
AVAILABLE_BIN(M_A+1)=AVAILABLE_BIN(M_A)+ROP−PIC発生bin量(M_A)
=LBIN_A+ROP
=ROP ・・・(13)
AVAILABLE_BIN(M_B)=BUFFER_SIZE ・・・(14)
ステップS62において、許容発生bin量算出部151は、上述した式(13),(14)を満たすために、発生bin量を制限するピクチャの数LIMIT_PIC_NUMを設定する。ここで、LIMIT_PIC_NUM≦Rとされる。
ステップS63において、許容発生bin量算出部151は、再エンコード処理対象となるピクチャのピクチャ番号Xを0に設定する。
ステップS64において、許容発生bin量算出部151は、X<R−LIMIT_PIC_NUMであるか否かを判定する。
ステップS64において、X<R−LIMIT_PIC_NUMであると判定された場合、処理はステップS65に進み、許容発生bin量算出部151は、再エンコード区間におけるピクチャ毎の許容発生bin量RE_ENC_AVAILABLE_BIN(X)を、AVAILABLE_BIN(X)とする。なお、AVAILABLE_BIN(X)は、図2のフローチャートのステップS11における処理と同様の処理によって算出されるものとする。
ステップS66において、bin生成部152は、許容発生bin量算出部151によって算出されたRE_ENC_AVAILABLE_BIN(X)に応じた発生bin量のbinを生成する。このとき、bin生成部152は、所定の変換テーブルに基づいて、ストリーム(bit)をbinに変換することでbinを生成する。このような変換テーブルを用いることで、再エンコード処理にかかる演算量を削減することが可能となる。
ステップS67において、許容発生bin量算出部151は、Xを1インクリメントする。
ステップS68において、許容発生bin量算出部151は、X=Rであるか否か、すなわち、再エンコード処理対象のピクチャが、再エンコード区間最後のピクチャであるか否かを判定する。
ステップS68において、X=Rでないと判定された場合、処理はステップS64に戻り、ステップS64ないしS68の処理が繰り返される。
そして、ステップS64において、X<R−LIMIT_PIC_NUMでないと判定された場合、すなわち、X≧R−LIMIT_PIC_NUMであると判定された場合、処理はステップS69に進む。
ステップS69において、許容発生bin量算出部151は、RE_ENC_AVAILABLE_BIN(X)を以下のように設定する。
RE_ENC_AVAILABLE_BIN(X)=ROP−{TARGET_SIZE−AVAILABLE_BIN(X)}/REMAINING_PIC_NUM(X) ・・・(15)
ここで、TARGET_SIZEは、目標となるバッファ132の蓄積量であり、ここではBUFFER_SIZEと等しい。また、REMAINING_PIC_NUM(X)は、再エンコード区間におけるピクチャの残りの数であり、REMAINING_PIC_NUM(X)=R−Xとされる。
ステップS69の後、処理はステップS66に進み、bin生成部152は、許容発生bin量算出部151によって算出されたRE_ENC_AVAILABLE_BIN(X)に応じた発生bin量のbinを、所定の変換テーブルに基づいて生成する。
一方、ステップS67において、X=Rであると判定された場合、すなわち、再エンコード区間におけるピクチャに対する処理が終了した場合、発生bin量制御処理は終了する。
以上の処理によれば、ストリームAとストリームBとを繋ぎ合わせるスマートレンダリング編集において、ストリームAの再エンコード区間直前のピクチャについてのバッファ132内の発生bin量LBIN_Aを0とし、ストリームBの再エンコード区間直後のピクチャについてのバッファ132内の発生bin量LBIN_Bをバッファ132の最大蓄積量に設定して、これを満たすように、再エンコード区間におけるピクチャ毎の許容発生bin量RE_ENC_AVAILABLE_BIN(X)を算出するようにしたので、再エンコード区間の発生bin量は、バッファ132の最大蓄積量を超えることはなく、バッファ132におけるオーバーフローの発生を防ぐことが可能となり、ひいては、正常なビットストリームを出力することが可能となる。
また、ストリームAとストリームBとが繋ぎ合わせられる再エンコード区間の発生bin量を知るために、素材Aおよび素材Bの全区間に対してCABAC処理を行う必要がないので、AVCにおけるスマートレンダリング編集にかかる時間を削減することが可能となる。
なお、上述した説明においては、バッファ状態を管理する方法として、HRDモデルのVBRモードを適用し、バッファの許容発生bin量を算出することで、発生bin量を制御する手法を用いるようにしたが、他の手法を用いるようにしてもよい。例えば、バッファのサイズ、CABAC処理部の処理能力、MB単位で発生する最小発生bin量(MB_MIN_BIN)等に基づいて、発生bin量を制御することで、バッファの状態を管理するようにしてもよい。
上述した発生bin量制御処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。
図10は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)901,ROM(Read Only Memory)902,RAM(Random Access Memory)903は、バス904により相互に接続されている。
バス904には、さらに、入出力インタフェース905が接続されている。入出力インタフェース905には、キーボード、マウス、マイクロホン等よりなる入力部906、ディスプレイ、スピーカ等よりなる出力部907、ハードディスクや不揮発性のメモリ等よりなる記憶部908、ネットワークインタフェース等よりなる通信部909、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア911を駆動するドライブ910が接続されている。
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部908に記憶されているプログラムを、入出力インタフェース905およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU901)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア911に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア911をドライブ910に装着することにより、入出力インタフェース905を介して、記憶部908にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部909で受信し、記憶部908にインストールすることができる。その他、プログラムは、ROM902や記憶部908に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 符号化装置, 31 ピクチャ処理部, 32 MB処理部, 33 バッファ, 34 CABAC処理部, 51 発生bin量算出部, 52 閾値処理部, 53 係数設定部, 54 パラメータ初期化部, 61 閾値処理部, 62 Q値上昇処理部, 63 発生bin量最小化部, 64 bin生成部, 111 画像編集装置, 131 再エンコード処理部, 132 バッファ, 133 CABAC処理部, 151 発生bin量算出部, 152 bin生成部

Claims (7)

  1. 入力画像に対応して生成される情報をバッファに蓄積し、蓄積された前記情報を取得して算術符号化を行う画像処理装置であって、
    前記バッファの最大蓄積量、および、前記入力画像の所定単位あたりに生成される前記情報の情報量に基づいて、前記入力画像の所定単位毎に、前記バッファに蓄積可能な前記情報の許容量を算出する算出部と、
    前記算出部により算出された前記許容量に応じた情報量の前記情報を生成する生成部と
    を備える画像処理装置。
  2. 前記入力画像のピクチャ毎に算出される前記許容量が所定の閾値より小さい場合、前記入力画像におけるマクロブロックについての係数を全て0とする係数設定部をさらに備える
    請求項1に記載の画像処理装置。
  3. 前記入力画像のピクチャ毎に算出される前記許容量に対する、前記入力画像のマクロブロックあたりに生成される前記情報の情報量に応じた値が、第1の閾値より大きい場合に、前記マクロブロックの量子化パラメータの値を大きくさせるパラメータ調整部をさらに備える
    請求項1に記載の画像処理装置。
  4. 前記入力画像のピクチャ毎に算出される前記許容量に対する、前記入力画像のマクロブロックあたりに生成される前記情報の情報量に応じた値が、前記第1の閾値と異なる第2の閾値より大きい場合に、前記マクロブロックあたりに生成される前記情報の情報量を最小化する最小化部をさらに備える
    請求項3に記載の画像処理装置。
  5. 第1の入力画像と第2の入力画像とを切り出して繋ぎ合わせる編集において、前記第1の入力画像と前記第2の入力画像との繋ぎ合わせの箇所を再符号化する場合、
    前記算出部は、前記第1の入力画像において再符号化される箇所の直前のピクチャについての前記バッファにおける第1の情報量を0とし、前記第2の入力画像において再符号化される箇所の直後のピクチャについての前記バッファにおける第2の情報量を前記バッファの最大蓄積量として、これを満たすように、前記第1の入力画像および前記第2の入力画像において再符号化される箇所のピクチャ毎に、前記許容量を算出する
    請求項1に記載の画像処理装置。
  6. 前記算出部は、HRD(Hypothetical Reference Decoder)モデルを適用することで、前記バッファに蓄積可能な前記情報の前記許容量を算出する
    請求項1に記載の画像処理装置。
  7. 入力画像に対応して生成される情報をバッファに蓄積し、蓄積された前記情報を取得して算術符号化を行う画像処理装置の画像処理方法であって、
    前記バッファの最大蓄積量、および、前記入力画像の所定単位あたりに生成される前記情報の情報量に基づいて、前記入力画像の所定単位毎に、前記バッファに蓄積可能な前記情報の許容量を算出する算出ステップと、
    前記算出ステップの処理により算出された前記許容量に応じた情報量の前記情報を生成する生成ステップと
    を含む画像処理方法。
JP2010287964A 2010-12-24 2010-12-24 画像処理装置および方法 Withdrawn JP2012138661A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010287964A JP2012138661A (ja) 2010-12-24 2010-12-24 画像処理装置および方法
US13/272,384 US20120163449A1 (en) 2010-12-24 2011-10-13 Image processing apparatus and method
CN2011104188340A CN102547278A (zh) 2010-12-24 2011-12-15 图像处理设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010287964A JP2012138661A (ja) 2010-12-24 2010-12-24 画像処理装置および方法

Publications (1)

Publication Number Publication Date
JP2012138661A true JP2012138661A (ja) 2012-07-19

Family

ID=46316771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010287964A Withdrawn JP2012138661A (ja) 2010-12-24 2010-12-24 画像処理装置および方法

Country Status (3)

Country Link
US (1) US20120163449A1 (ja)
JP (1) JP2012138661A (ja)
CN (1) CN102547278A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9083976B2 (en) * 2008-09-05 2015-07-14 Freescale Semiconductor, Inc. Processing a video stream in real time based on binary information of the video stream
US10158874B2 (en) * 2015-09-30 2018-12-18 Apple Inc. Parallel bypass and regular bin coding
JP7070119B2 (ja) * 2018-06-08 2022-05-18 コニカミノルタ株式会社 画像処理装置、その制御方法、およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW509849B (en) * 1997-06-16 2002-11-11 Matsushita Electric Ind Co Ltd The image processing device and the image processing method
CN1322759C (zh) * 2000-04-27 2007-06-20 三菱电机株式会社 编码装置和编码方法
JP2004173069A (ja) * 2002-11-21 2004-06-17 Canon Inc 画像データ記録装置及び記録方法
US7301485B2 (en) * 2003-10-29 2007-11-27 Nec Corporation Decoding device or encoding device having intermediate buffer interposed between an arithmetic code decoder or encoder and a reverse binarization device or binarization device
JP4532980B2 (ja) * 2004-05-12 2010-08-25 キヤノン株式会社 動画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP4492484B2 (ja) * 2005-08-22 2010-06-30 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP4513841B2 (ja) * 2007-08-28 2010-07-28 ソニー株式会社 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
US8345774B2 (en) * 2008-01-11 2013-01-01 Apple Inc. Hypothetical reference decoder

Also Published As

Publication number Publication date
US20120163449A1 (en) 2012-06-28
CN102547278A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
EP2533206B1 (en) Video-information encoding apparatus and method
JP5257215B2 (ja) 画像符号化装置と画像符号化方法
JP5429580B2 (ja) 復号装置および方法、プログラム、並びに記録媒体
EP1445958A1 (en) Quantization method and system, for instance for video MPEG applications, and computer program product therefor
JPWO2009157577A1 (ja) 画像処理装置及び画像処理方法
US9955168B2 (en) Constraining number of bits generated relative to VBV buffer
JP5900163B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP2002320228A (ja) 信号処理装置
JP2012138661A (ja) 画像処理装置および方法
US20050207501A1 (en) Method of and system for video bit allocation for scene cuts and scene changes
JP2003244706A (ja) 画像符号化データ変換装置及び変換方法並びに変換プログラム
JP2004343279A (ja) 画像処理装置および画像処理方法、情報処理装置、記録媒体、並びに、プログラム
JP2005045515A (ja) 符号化装置、および、符号化方法、並びに、プログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140304