JPWO2008065822A1 - 符号化装置及び符号化方法 - Google Patents

符号化装置及び符号化方法 Download PDF

Info

Publication number
JPWO2008065822A1
JPWO2008065822A1 JP2008546909A JP2008546909A JPWO2008065822A1 JP WO2008065822 A1 JPWO2008065822 A1 JP WO2008065822A1 JP 2008546909 A JP2008546909 A JP 2008546909A JP 2008546909 A JP2008546909 A JP 2008546909A JP WO2008065822 A1 JPWO2008065822 A1 JP WO2008065822A1
Authority
JP
Japan
Prior art keywords
circuit
quantization parameter
encoding
amount
quantization
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.)
Granted
Application number
JP2008546909A
Other languages
English (en)
Other versions
JP5231243B2 (ja
Inventor
田中 俊啓
俊啓 田中
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2008546909A priority Critical patent/JP5231243B2/ja
Publication of JPWO2008065822A1 publication Critical patent/JPWO2008065822A1/ja
Application granted granted Critical
Publication of JP5231243B2 publication Critical patent/JP5231243B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/124Quantisation
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

符号化装置100は、仮量子化パラメータを生成する量子化パラメータ発生回路111と、量子化対象の信号を仮量子化パラメータに基づき量子化して量子化データを生成する量子化回路121と、その量子化データを2値化し2値シンボルデータを出力する2値化回路131と、2値シンボルデータに対して算術符号化を行い、符号化データを生成する算術符号化回路141と、2値シンボルデータのシンボル量、符号化データの符号量、シンボル量の上限値、及び目標符号量に基づいて好適な量子化パラメータを生成する量子化パラメータ算出回路112と、その好適な量子化パラメータに基づき量子化対象の信号を量子化する量子化回路122とを備える。

Description

本発明は、符号化装置及び方法に関し、特に、算術符号化を適用した符号化装置及び方法に関する。
算術符号化は、情報源シンボルの発生確率に応じて、情報量を理論的限界まで可逆圧縮できる技術である。算術符号化は、画像符号化の分野において、JPEG2000規格(ISO/IEC15444)、H.264/MPEG4−AVC規格(非特許文献1参照)等に採用されている。
例えば、H.264においては、コンテキスト適応算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)が採用され、シンタックスの確率特性に応じた効率の高い符号化を実現している。
H.264におけるコンテキスト適応算術符号化について説明する。図9に、従来のコンテキスト適応算術符号化回路を示す。
図9に示すコンテキスト適応算術符号化回路14において、2値化回路130は、変換係数データ、フラグ等の符号化情報からなる多値入力データの2値化を行う。ここで、2値化は、制御情報から入力データの種類であるシンタックスエレメント(syntax element)を判別し、データの確率特性によって、ユーナリー・バイナライゼーション(unary binarization)や固定長バイナライゼーション(fixed−length binarization)といった複数の方式を使い分けながら行われる。2値化回路130により2値化された2値シンボル(バイナリ)列は、(2値)算術符号化回路140に入力される。
コンテキスト計算回路520は、シンタックスエレメントを示す制御情報に基づいて、2値シンボル列における現在の1ビットを符号化するために用いるコンテキストインデックス(ctxIdx)の値を、H.264規格で定められたテーブルを参照して一意に決定する。コンテキスト計算回路520は、ctxIdxの値毎に発生確率情報を初期化して記憶する。発生確率情報は、2値シンボルの「0」又は「1」のうち発生確率の高い方のシンボルを示すMPSと発生確率pStateの組である。求められたctxIdxの値に対応した発生確率情報を「コンテキスト情報」と呼ぶ。
コンテキスト計算回路520はコンテキスト情報504を生成して算術符号化回路140に出力する。このように、算術符号化を行うシンタックスエレメントによって算術符号化回路140に入力されるシンボルの発生確率すなわちコンテキスト情報504が適応的に切り替わることにより、2値シンボルの発生確率が動的に変わる2値シンボル列503に対して、最適な算術符号化が可能となる。
以下の説明において、2値シンボル列の総ビット長(シンボル長)を「シンボル量」、算術符号化後の出力符号の総ビット長を「符号量」といい、特に、一定区間の多値入力データを処理した際に発生する、2値シンボル列の総ビット長を「発生2値シンボル量」、出力符号の総ビット長を「発生符号量」と呼ぶ。
算術符号化回路140の動作について図10を用いて説明する。図10において、シンボル「0」の発生確率が0.75(2進数で0.11)、シンボル「1」の発生確率が0.25の情報源から{0,0,0,1}のバイナリ列が供給された場合を考える。この場合、現在のコンテキスト情報504は、発生確率の高い方のシンボルを示すMPS=0、及び発生確率pState=0.11で表される(図10(a)参照)。発生確率pStateは、正規化された整数値で表現されるが、ここでは簡単化のため2進数の値とする。コンテキスト情報504は、今回の2値算術符号化により更新され、コンテキスト計算回路520に戻される。コンテキスト計算回路520では、対応するctxIdxの発生確率情報を更新する。この値は、次回に同じコンテキストの符号化が行われる際に再利用される。
図10(b)を参照し、1個目の入力バイナリ値「0」が入力されると、[0,1]の区間が確率0.11で区切られる0側に区間が狭められ、[0,0.11]になる。2個目の入力「0」が入力されると、[0,0.11]の区間が[0,0.1001]に狭められる。ここで、0.1001=0.11×0.11である。同様にして、3個目の入力「0」により区間が[0,0.011011]になる。4個目の入力「1」が入力されると、1側に区間に狭められる。最終的な区間は[0.01010001,0.011011]になる。この最終的な区間に含まれる値のうち、最短の語長を持つものが符号語となる。すなわち、0.011は、この区間に含まれるので、小数点以下の値「011」が出力バイナリ列となり、4ビットの入力値が3ビットに圧縮されたことになる。実際には、出力するビット(0もしくは1)が確定した時点で確率値の左ビットシフトを行うリノーマライゼーション(renormalization)と呼ばれる処理が行われる。
一方、動画像符号化においては、特定のビットレートの条件下で画質を最大限に高めるため、各マクロブロックを符号化する際の量子化パラメータを適切に制御して、符号量制御を行う必要がある。符号量制御の精度を高めるため、スライス、フレーム、GOP(Group Of Pictures)といった単位でパラメータを変更して繰返し符号化を行うことが一般的である。
特開平2004−135251号公報 ISO/IEC14496−10 Advanced video coding for generic audiovisual services
算術符号化を用いた符号化回路を構成する場合、デコーダにおける最大処理量を規定する目的から、2値シンボル量の上限値(BinCountsInNALunits)が規定されている(非特許文献1参照)。この上限値の規定を順守するために、符号量と2値シンボル量を制御する必要がある。この上限値の規定により、回路の動作時間の上限値を規定することができる。例えば、特許文献1では、算術符号化器に入力する2値シンボル量の制限監視器を用意し、閾値を超えた場合には符号化し直すか、並列に複数の符号化パラメータを適用する符号化を行うことにより、2値シンボル量を制御している。
符号化し直す場合、前述したように既に更新された算術符号化の発生確率情報を元に戻す必要があり、リアルタイムでの処理が要求される符号化装置においては複雑な回路構成が必要となる。また、並列に複数の符号化パラメータを適用して符号化する場合、算術符号化回路が符号化パラメータの数だけ必要となり、回路規模の増大を招来する。
本発明は上記課題を考慮してなされたものであり、その目的とするところは、算術符号化を適用した符号化装置であって、簡単な回路構成で、2値シンボル量を上限値以下に制御しつつ復号動作の保証された符号化を行い、同時に精度良く符号量制御を実現する符号化装置を提供することにある。
本発明の第1の態様において、入力信号を量子化し、符号化する装置であって、量子化により生成される2値シンボルのシンボル量の上限値が定められている符号化装置を提供する。
符号化装置は、入力信号に対して所定の信号処理を行う信号処理回路と、第1の量子化パラメータを生成する量子化パラメータ発生回路と、所定の信号処理がなされた入力信号を、第1の量子化パラメータに基づき量子化して第1の量子化データを生成する第1の量子化回路と、第1の量子化データに対して2値化を行い、第1の2値シンボルデータを出力する第1の2値化回路と、第1の2値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第1の符号化データを生成する第1の算術符号化回路と、第1の2値シンボルデータのシンボル量、第1の符号化データの符号量、第2の量子化パラメータ、シンボル量の上限値、及び目標符号量に基づいて、第2の量子化パラメータを生成する量子化パラメータ算出回路と、第2の量子化パラメータに基づいて、所定の信号処理がなされた入力信号を量子化し、第2の量子化データを生成する第2の量子化回路と、第2の量子化データに対して2値化を行い、第2の2値シンボルデータを出力する第2の2値化回路と、第2の2値シンボルデータに対して算術符号化を行い、入力信号に対する符号化データを生成し、出力する第2の算術符号化回路とを備える。
本発明の第2の態様において、入力信号を量子化し、符号化する方法であって、量子化により生成される2値シンボルのシンボル量に上限値が定められている符号化方法を提供する。
符号化方法は、入力信号に対して所定の信号処理を行うステップと、第1の量子化パラメータを生成するステップと、所定の信号処理がなされた入力信号を、第1の量子化パラメータに基づき量子化して第1の量子化データを生成するステップと、第1の量子化データに対して2値化を行い、第1の2値シンボルデータを出力するステップと、第1の2値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第1の符号化データを生成するステップと、第1の2値シンボルデータのシンボル量、第1の符号化データの符号量、第2の量子化パラメータ、シンボル量の上限値、及び目標符号量に基づいて、第2の量子化パラメータを生成するステップと、第2の量子化パラメータに基づいて、所定の信号処理がなされた入力信号を量子化し、第2の量子化データを生成するステップと、第2の量子化データに対して2値化を行い、第2の2値シンボルデータを出力するステップと、第2の2値シンボルデータに対して算術符号化を行い、入力信号に対する符号化データを生成し、出力するステップとを含む。
本発明によれば、算術符号化を用いた符号化装置において、簡単な回路構成で、発生2値シンボル量を上限値以下に制御して、同時に精度良く出力ビットストリームの符号量制御を行うことが可能となり、符号量を所定量以内に精度良く収めかつ復号動作の保証されたビットストリームを提供することを可能とする。
本発明の実施の形態における映像符号化装置の構成図 符号化される画像とマクロブロックの関係を説明した図 仮量子化パラメータの選択例を示す図 (a)代表量子化パラメータの具体例を説明した図、(b)プログレッシブ方式の場合のマクロブロックへの代表量子化パラメータの適用例を示した図、(c)インターレース方式の場合のマクロブロックへの代表量子化パラメータの適用例を示した図 2値シンボル量・符号量積算値メモリに格納される、代表量子化パラメータ毎の発生2値シンボル量と発生符号量の具体例を示した図 発生2値シンボル量に基づく最適量子化パラメータの算出方法を説明するための図 発生符号量に基づく最適量子化パラメータの算出方法を説明するための図 本発明の思想が適用可能な符号化装置の構成図 従来のコンテキスト適応算術符号化回路の構成を示す図 2値算術符号化を説明するための図
符号の説明
100 映像符号化装置
101 第一の符号化回路
102 第二の符号化回路
111 量子化パラメータ発生回路
112 量子化パラメータ算出回路
121、122 量子化回路
124 逆量子化回路
131、132 2値化回路
131 コンテキスト選択回路
141、142 算術符号化回路
151 フレームメモリ
152 予測モードメモリ
153 2値シンボル量・符号量積算値メモリ
161、162 ブロック化回路
171、172 イントラ予測生成回路
173 予測モード検出回路
181、182 DCT回路
184 逆DCT回路
200 符号化装置
221、222 量子化回路
251 遅延メモリ
261、信号処理回路
以下、本発明の実施形態について添付の図面を参照しながら説明する。
本実施形態では、フレーム内で復号可能なイントラフレームを符号化対象として、符号化により得られる2値シンボル量を所定の上限値以下に制御しつつ、精度良く符号量制御を行う映像符号化装置について説明する。
1.映像符号化装置の構成
図1に、本発明の実施の形態における映像符号化装置の構成を示す。図1において、映像符号化装置100は、仮符号化を行う第一の符号化回路101と、正規の符号化を行う第二の符号化回路102と、フレームメモリ151と、予測モードメモリ152と、2値シンボル量・符号量積算値メモリ153と、2値シンボル量・符号量積算回路154とを備える。
第一の符号化回路101は、入力したディジタル映像信号をブロック化するためのブロック化回路161と、予測モード検出回路173と、イントラ予測生成回路171と、直交変換回路としてのDCT回路181と、量子化回路121と、量子化パラメータ発生回路111と、2値化回路131と、算術符号化回路141とから構成される。
第二の符号化回路102は、入力したディジタル映像信号をブロック化するためのブロック化回路162と、イントラ予測生成回路172と、DCT回路182と、量子化回路122と、量子化パラメータ算出回路112と、2値化回路132と、算術符号化回路142と、逆量子化回路124と、逆DCT回路184とから構成される。
2.映像符号化装置の動作
以上のように構成された映像符号化装置について、以下その動作を説明する。最初に、1フレームの映像データに対する符号化処理の流れについて説明する。
映像符号化装置100は1フレームのディジタル映像信号を入力すると、第一の符号化回路101により1フレーム分の映像信号の仮符号化処理を行う。
映像符号化装置100に入力されたディジタル映像信号はまたフレームメモリ151に格納され、1フレーム以内の所定時間だけ遅延され、第二の符号化回路102に出力される。第二の符号化回路102はフレームメモリ151からデータを読み出し、読み出したデータに対して正規の符号化処理を行い、符号化された結果としてビットストリームを出力する。
第一の符号化回路101において、予測モード検出回路173は、イントラ予測の予測モードを検出し、その値を予測モードメモリ152に格納する。また、2値化回路131及び算術符号化回路141から出力された2値シンボル量及び符号量が2値シンボル・符号量積算値メモリ153に格納される。
第二の符号化回路102は、予測モードメモリ152に格納された予測モード値、及び2値シンボル量・符号量積算値メモリ153に格納された2値シンボル量と符号量の積算値を受けて最適な量子化パラメータを決定し、第一の符号化回路101で処理されたフレームと同じフレームの映像信号に対して正規の符号化処理を行う。
2.1 第一の符号化回路の処理
第一の符号化回路101の処理を説明する。
ブロック化回路161は、入力された1フレームのディジタル映像信号が示す画像を16×16画素の複数のマクロブロックに分割する。マクロブロックはDCTやイントラ予測の処理単位となるブロックを複数個含む。
イントラ予測生成回路171は、マクロブロック毎に、入力されたディジタル映像信号の画素と、入力されたディジタル映像信号の画像に隣接する画素とから、そのマクロブロックの各画素の値を種々の予測モードで予測する。予測モードには、フィールドマクロブロック復号フラグ(mb_field_decoding_flag)、輝度4×4イントラ予測モード(Intra4x4PredMode)、輝度8×8イントラ予測モード(Intra8x8PredMode)、色差イントラ予測モード(intra_chroma_pred_mode)が含まれる。イントラ予測は8×8画素ブロックや4×4画素ブロックの単位で行われてもよい。
予測モード検出回路173は、4つの予測モードの中から最適な予測モードを検出し、その情報を予測モード値として出力する。予測モード値は予測モードメモリ152に蓄積される。
入力されたディジタル映像信号における符号化対象のマクロブロックの各画素値と、イントラ予測生成回路171により生成された、符号化対象のマクロブロックの各画素の予測値との差分値が計算されて、16×16画素の差分値のブロックが生成され、DCT回路181に出力される。
DCT回路181は、差分値のブロックに対してDCT処理を行う。DCT処理は、通常4×4画素や8×8画素のブロック単位で行われ、周波数成分の係数データが出力される。係数データは量子化回路121に入力される。量子化回路121は、係数データを量子化パラメータに応じて量子化する。量子化パラメータは量子化パラメータ発生回路111により与えられる。
量子化パラメータ発生回路111は量子化の際の量子化レートを規定する量子化パラメータを発生させる。本実施形態において、量子化パラメータの取り得る値は0〜51とし、その値が小さいほど、より高い量子化レートを示すものとする。量子化パラメータ発生回路111は、発生させる量子化パラメータの候補として、複数の量子化パラメータ(以下「代表量子化パラメータ」という)qpを有している。量子化パラメータ発生回路111は、マクロブロック毎に、複数の代表量子化パラメータqpの中から1つを選択して、そのマクロブロックの量子化に対する量子化パラメータQPとして出力する。量子化パラメータ発生回路111の量子化パラメータの決定処理の詳細は後述する。
量子化回路121により量子化された係数データは、2値化回路131にて2値化され、その後、算術符号化回路141により算術符号化される。2値シンボル量・符号量積算回路154は、2値化回路131から出力される2値シンボルのシンボル量と、算術符号化回路141から出力される符号の符号量とを、同一の量子化パラメータが適用されるマクロブロック群毎に積算し、積算した値を2値シンボル量・符号量積算値メモリ153に格納する。
本実施形態では、仮符号化において、イントラ予測の予測画素はディジタル映像信号から得る。H.264規格が規定するイントラ予測の予測画素は、デコーダが用いる、復号された値であるが、以下の理由により、これを用いないのが望ましい。
第一に、仮符号化では量子化パラメータを量子化パラメータ発生回路111により変化させて符号量及び2値シンボル量を出力するため、復号画素を用いると、量子化パラメータの値が大きい時に復号画素の精度が悪くなり、以降のマクロブロックの予測画素の精度が低下してしまう。第二に、復号画素を用いないことで、仮符号化における逆量子化回路及び逆DCT回路を省略でき、回路規模を削減できるからである。
2.2 第二の符号化回路の処理
第二の符号化回路102の処理について説明する。
第一の符号化回路101により1フレームの仮符号化が終了すると、フレームメモリ151に蓄積された1フレームの映像信号が第二の符号化回路102のブロック化回路162に入力される。ブロック化回路162は1フレームの映像信号の画像を16×16画素の複数のマクロブロックに分割する。
イントラ予測生成回路172は、予測モードメモリ152から予測モード値を読み出し、その予測モード値が示す予測モードを用いて符号化対象のマクロブロックの各画素について画素予測値を求める。その際、イントラ予測生成回路172がイントラ予測に用いる隣接画素の値は逆量子化回路124及び逆DCT回路184により生成される。イントラ予測生成回路172は、画素予測値と、符号化対象のマクロブロックの画素値との差分値を画素毎に計算して差分値のブロックを求める。
DCT回路182は、このようにして求めた差分値のブロックに対してDCT処理を行い、周波数成分の係数データを出力する。係数データは量子化回路122に入力される。
量子化回路121は、係数データを量子化パラメータに応じて量子化する。量子化パラメータは量子化パラメータ算出回路112により算出される。量子化回路121は、量子化した係数データを2値化回路132及び逆量子化回路124に出力する。
量子化パラメータ算出回路112は、2値シンボル量・符号量積算値メモリ153から、第一の符号化狩生101で求められた2値シンボル量と符号化量を取得し、それらの値に基づいて量子化パラメータを決定する。量子化パラメータ発生回路112の詳細な動作は後述する。
2値化回路132は量子化された係数データを2値シンボルに変換する。算術符号化回路142は、2値化回路132からの2値シンボルを算術符号化し、その結果をビットストリームとして出力する。ここで、算術符号化回路142については発生符号量の上限値を示す目標符号量が規定されている。
一方、量子化回路122により量子化された係数データは逆量子化回路124により逆量子化され、その後、逆DCT回路184により逆DCT処理される。これにより、イントラ予測に用いられる、符号化対象のマクロブロックの隣接画素の値が得られる。
2.3 第一の符号化回路における量子化パラメータ発生回路の動作
第一の符号化回路101の量子化パラメータ発生回路111による量子化パラメータの発生動作について説明する。なお、以下では、1920×1080画素の1フレームの仮符号化において、スライス単位に最適な量子化パラメータを算出する場合を説明する。なお、フレームを分割するスライスは任意の連続するマクロブロックの集合として定義される。
図2に示すように、1920×1080画素のフレームは16×16画素のマクロブロックが8160(=120×68)個で構成される。本例では、1スライスが2040個のマクロブロックを含み、1フレームが4個のスライスで構成される場合を考える。
仮符号化の開始前に、第一の符号化回路101の量子化回路121で使用される仮量子化パラメータQP1(n)を決定する。仮量子化パラメータQP1(n)は、マクロブロック毎に複数のパラメータ候補(代表量子化パラメータ)の中から選択された1つのパラメータに設定される。すなわち1個のマクロブロックに対する仮量子化パラメータQP1(n)は、任意の異なるQ種類の代表量子化パラメータqp1(x)(x=0,1,…,Q−1)の中から選択された1つの仮量子化パラメータqp1(m)に設定される。なお、代表量子化パラメータは、規定の量子化パラメータの最大値及び最小値を含むよう決定される。
例えば、0と20の2種類の代表量子化パラメータqp1(x)={0,20}を与える場合を考える。ここで、F(x)={A0,A1,…,AQ-1}(Anは整数)の表記は、F(0)=A0、F(1)=A1、…、F(Q−1)=AQ-1を意味するものとする。各マクロブロックの仮量子化パラメータは、各代表量子化パラメータの出現頻度が等しくなるように、2種類の代表量子化パラメータの中から選択される。この例では、半数のマクロブロックに量子化パラメータ「0」を、残り半数のマクロブロックに量子化パラメータ「20」を与える。また、仮量子化パラメータがスライス内で偏るのを防ぐため、スライス内に交互又はランダムに仮量子化パラメータを配置する。例えば、プログレッシブ走査においては図3(a)に示すように、通常のラスタスキャン順に交互に代表量子化パラメータを与え、インターレース走査では、図3(b)に示すようにマクロブロックの対毎に交互に代表量子化パラメータを与えることができる。
次に、仮符号化における代表量子化パラメータqp1(x)(x=0,1,…,Q−1)の数Qと、各値qp1(x)の決定方法について説明する。
量子化回路121で用いられる代表量子化パラメータの数Qは、1スライスに含まれるマクロブロックの数の約数に設定できる。このような方法で、代表量子化パラメータの数Qを設定すれば、スライス内で各代表量子化パラメータが出現する回数を一定にできる。その際、走査方式がプログレッシブ方式の場合、代表量子化パラメータの数Qとして、マクロブロック数の約数を選択できる。また、インターレース方式の符号化を行うためにマクロブロックを対にする場合は、1スライスに含まれるマクロブロック数の半数の約数に設定できる。例えば、1スライスに含まれるマクロブロック数が2040であれば、代表量子化パラメータの数Qとして、5、10、20が選択できる。それぞれのQの場合の、1個のスライス内における各代表量子化パラメータの出現回数はそれぞれ408回、204回、102回となる。
代表量子化パラメータqp1(x)として、エンコーダで選択できる量子化パラメータの範囲内から異なる値がQ個選択される。この場合、最適な符号化のための符号量予測が行い易くなるように、それらの値を適度に分散させるのが好ましい。
例えば、1スライスに含まれるマクロブロック数が2040で、エンコーダで選択できる量子化パラメータが0から51の範囲である場合、代表量子化パラメータqp1(として、図4(a)に示すように、{0,4,8,12,16,22,28,34,42,51}の10個の代表量子化パラメータが選択できる。このとき、プログレッシブ方式の場合は、図4(b)に示すように代表量子化パラメータが適用され、インターレース方式の場合は、図4(c)に示すように代表量子化パラメータが適用される。
2.4 2値シンボル量・符号量積算回路の動作
2値シンボル量・符号量積算回路154は、第一の符号化回路101における仮符号化の結果得られる2値シンボル量と符号量について、同じ代表量子化パラメータを用いたマクロブロック毎に積算し、それぞれの積算した値を積算値メモリ153に格納する。以下、この動作を具体的に説明する。
第一の符号化回路101による仮符号化処理では、2040個のマクロブロックを含むスライス1個に対し、同じ代表量子化パラメータqp1(x)を使用したマクロブロック毎に発生2値シンボル量B1(n)及び発生符号量R1(n)の総和を計算する。前記総和をQP別発生2値シンボル量b1(x)、QP別発生符号量r1(x)とし、2値シンボル量・符号量積算値メモリ153に蓄積する。
例えば、図5の例では、図5(a)に示す代表量子化パラメータqp1(x)のそれぞれに対して、図5(b)に示すような、代表量子化パラメータ毎に2値シンボル量B1(n)の総和を取ったQP別発生シンボル量b1(x)、及び代表量子化パラメータ毎に発生符号量R1(n)の総和を取ったQP別発生符号量r1(x)が2値シンボル量・符号量積算値メモリ153に蓄積される。
2.5 第二の符号化回路における量子化パラメータ発生回路の動作
第二の符号化回路102での符号化に適用する最適量子化パラメータQPoptの算出方法を、図6及び図7を用いて説明する。ここで、ビットレート、フレームレート、フレームの複雑度、スライスの符号化タイプなどの情報を用いて割り当てたスライスの目標符号量T及び上限2値シンボル量Bmaxをそれぞれ以下のように設定する。
スライスの目標符号量T=300000ビット
上限2値シンボル量Bmax=595840ビット
第二の符号化回路102は、第一の符号化回路101での仮符号化の結果得られた各代表量子化パラメータ毎の発生シンボル量b1(x)と発生符号量r1(x)と、上限2値シンボル量と目標符号量とに基づいて、最適量子化パラメータQPoptを決定する。具体的には、量子化パラメータ算出回路112は、2値シンボル量に基づく最適量子化パラメータの算出と、符号量に基づく最適量子化パラメータの算出とを行い、それらの算出結果を比較し、大きい方の量子化パラメータを最適量子化パラメータとして採用する。以下、その詳細を説明する。
最初に、図6を参照して、2値シンボル量に基づく最適量子化パラメータ候補QPbinの算出について説明する。図6は、代表量子化パラメータqp1(x)と、各量子化パラメータQP別の、発生した2値シンボル量b1(x)とに基づいて、量子化パラメータQPと、スライス単位で予測した2値シンボル量の関係を示した図である。
QP別の発生2値シンボル量b1(x)は、同じ量子化パラメータQPが適用されたマクロブロックについて2値シンボル量の総和を、各量子化パラメータQP(=x)毎に求めたものである。各量子化パラメータは204個のマクロブロックに適用されるため、b1(x)は204個ずつのマクロブロックの2値シンボル量の総和になっている。各量子化パラメータQPに対するスライス単位の予測符号量は、b1(x)を10倍することで求められる。
図6において、プロットしたスライス単位の予測2値シンボル量を線形補間することで、全てのQP値(0≦QP≦51)に対するスライス予測2値シンボル量を算出することができる。すなわち、スライスの上限2値シンボル量Bmax(=595840)に対して図6に示す関係を用いて線形補間することで、発生する2値シンボル量を上限2値シンボル量以下に収める最適な量子化パラメータQPbinを求めることができる。最適な量子化パラメータ候補QPbinは次式で求められる。
QPbin
CEIL[q+{QP1(q+1)−QP1(q)}×{Q×b1(q)−Bmax
/{Q×b1(q)−Q×b1(q+1)}] (1)
なお、CEIL[x]はx以上の最小の整数を返す関数である。qは0≦q≦Q−1の整数であり、Q×b1(q+1)≦Bmax≦Q×b1(q)を満たす値とする。ここでは、1スライスを通じて1つの最適量子化パラメータを使用することとしている。また、すべてのqに対しBmax>Q×b1(q)となる場合はq=0、すべてのqに対しBmax<Q×b1(q)となる場合はq=Q−1とする。このため、あらかじめ仮量子化パラメータとしてQP1(0)=min(QP)=0、QP1(Q−1)=max(QP)=51としておくのが望ましい。
max=595840のとき、式(1)を用いて、最適量子化パラメータ候補QPbinは13と求められる。
QPbin=CEIL[12+(16−12)×(623230−595840)
/(623230−388510)]
=13
次に、図7を参照し、符号量に基づく最適量子化パラメータ候補QPcodeの算出について説明する。図7は、代表量子化パラメータqp1(x)と量子化パラメータQP別の発生した符号量r1(x)とに基づいて、量子化パラメータQPとスライス予測符号量の関係を示した図である。
QP別の発生符号量r1(x)は、同じ量子化パラメータQPが適用されたマクロブロックについて符号量の総和を、各量子化パラメータQP(=x)毎に求めたものである。各量子化パラメータは204個のマクロブロックに適用されるため、r1(x)は204個ずつのマクロブロックの符号量の総和になっている。各量子化パラメータQPに対するスライス予測符号量は、r1(x)を10倍することで求められる。
図7において、プロットしたスライス予測符号量を線形補間することで、全てのQP値(0≦QP≦51)に対するスライス予測符号量を算出することができる。すなわち、スライスの目標符号量T=300000に対して図6に示す関係を用いて線形補間することで、発生する符号量を目標符号量にするのに最適量子化パラメータ候補QPcodeを求めることができる。QPcodeの算出は、線形補間により次式で求められる。
QPcode=q+{QP1(q+1)−QP1(q)}×{Q×r1(q)−T}
/{Q×r1(q)−Q×r1(q+1)} (2)
なお、qは0≦q≦Q−1の整数であり、Q×r1(q+1)≦T≦Q×r1(q)を満たす値とする。ここでは、1スライスを通じてひとつの最適量子化パラメータを使用することとしている。また、すべてのqに対しT>Q×r1(q)となる場合はq=0、すべてのqに対しT<Q×r1(q)となる場合はq=Q−1とする。
式(2)を用いて最適量子化パラメータ候補QPcodeを計算すると約16.84となるが、量子化パラメータは整数である必要があるので、小数点以下を四捨五入し、17とする。
QPcode=16+(22−16)×(317850−300000)
/(317850−190980)
≒16.84≒17
量子化パラメータ算出回路112は、以上のようにして求めた2値シンボル量に基づく最適量子化パラメータ候補QPbinと符号量に基づく最適量子化パラメータ候補QPcodeのうち、大きい方を選択して最適量子化パラメータQPoptとし、量子化回路122に出力する。
図6及び図7の例では、QPbin=13、QPcode=17であるから、QPopt=17とする。このように、QPbin及びQPcodeのうち大きい方を最適量子化パラメータQPoptとすることにより、入力データの統計的性質に応じて符号化を行うことが可能となり、発生符号量をより低く抑えることができる。つまり、相対的に2値シンボル量が大きく符号量が小さい場合にはQPbinが選ばれて、符号量は目標符号量よりある程度小さくなるものの2値シンボル量の上限値は満たされる。逆に相対的に2値シンボル量が小さく符号量が大きい場合にはQPcodeが選ばれて、2値シンボル量は上限よりある程度小さく抑えられ目標符号量に近い値に符号化することができる。
3.まとめ
以上のように本実施形態の映像符号化装置では、第1の符号化回路101による仮符号化において、まず複数の代表量子化パラメータのそれぞれについて、発生する2値シンボル量及び発生する符号量を求める。その後、第2の符号化回路102において、仮符号化で求めた値に基づいて、上限2値シンボル量及び目標符号量を考慮して最適な量子化パラメータを求める。このような方法により、一方向の処理の流れの中で最適な量子化パラメータを決定できるため、従来のように、更新された算術符号化の発生確率情報を元に戻すための複雑な回路構成が不要となり、また、並列に算術符号化回路を設ける必要もないので、回路構成が簡単になる。
また、本実施形態によれば、符号化により得られる2値シンボル量を所定の上限値以下に抑制しつつ、発生する符号量を所定量以下に抑えることができる。よって、本実施形態の映像符号化装置は特にフレーム単位の符号量を一定にする場合に有効である。例えば、本実施形態の映像符号化装置は、フレーム単位の符号量に制限値がある符号化を行う場合や、フレーム単位の符号量に制限値がない符号化においても、デコーダバッファの状態がクリティカルで現在のフレームの符号量に制限値がある場合に有効である。その理由を以下に説明する。
本実施形態の思想を用いずに、2値シンボル量が所定の上限値を超え、符号量のみが制限値以下に抑制された場合を考える。この場合、非特許文献1の符号化では、cabac_zero_wordと呼ばれるスタッフィングを用いて符号量を増加させることで、2値シンボル量の上限値の規定を順守する必要がある。しかし、符号量を増加させることで符号量が制限値を超えて、符号化を破綻させる可能性が生じてしまう。本実施形態は、制限値に対して計算された2値シンボル量の上限値以下に2値シンボル量を制御可能であるため、cabac_zero_wordのスタッフィングが必要となったとしても、符号量は必ず制限値以下に収まり破綻させることはない。よって、本実施形態の思想は前述の場合に特に有効となる。
(変形例)
なお、本実施の形態では、最適量子化パラメータQPoptとして固定値を与える例を示したが、例えばQPoptをN個のマクロブロックの符号化に対する初期値として用い、それ以降の量子化パラメータはフィードバック制御による2値シンボル量及び符号量の制御を行い、最適量子化パラメータQP2(n)を動的に変更することが可能である。フィードバック制御は、例えば符号量に基づいて制御する場合、マクロブロック番号mのマクロブロックにおいて、符号化時の発生符号量R2(n)を0≦n≦mの範囲で加算した累積発生符号量Bと、ある時点(例えばマクロブロック番号N−1)までの目標符号量Tとの差分である残存符号量(T−B)を、残存しているマクロブロックn(m<n≦N−1)の目標符号量Sに設定することで実施できる。また、マクロブロックの輝度値や色差値、周波数領域での特徴等に基づいて量子化パラメータQP2(n)を動的に変更する処理も可能である。
本実施の形態では、スライス単位で仮符号化及び正規の符号化を行ったが、より小さい単位で仮符号化及び正規の符号化を行って発生符号量R2(n)を得てもよい。その結果を量子化パラメータの選択に反映するような場合や、フィードバック制御を小さい単位で行う場合には、数マクロブロック等の小さい単位で実施しても効果的である。また、仮符号化及び正規の符号化の処理単位を固定していたが、仮符号化及び正規の符号化の処理単位をフレーム単位又はその他の単位で動的に変更させることも可能である。また、スライス予測符号量を線形補間して求めたが、スプライン補間等、高度な数値補間も利用できる。
本実施の形態ではQP別発生2値シンボル量b1(x)及びQP別発生符号量r1(x)を2値シンボル量・符号量積算値メモリ153に蓄積する例で説明したが、総和を計算する前のマクロブロック毎の発生2値シンボル量B1(n)及び発生符号量R1(n)を蓄積し、2値シンボル量・符号量積算値メモリ153から読み出した後に総和を計算しても良い。
本実施の形態では仮符号化処理を1回のみ行う例を示したが、リアルタイムの符号化処理が必要でない場合や、仮符号化処理をパイプライン化又は並列化することにより一定の遅延で多くの処理が行える場合には、仮符号化処理を複数回行っても良い。
なお、本実施の形態では、映像符号化のH.264規格におけるコンテキスト適応算術符号化を例にとって説明した。しかし、本発明の思想は、量子化された係数データに対して算術符号化を行う場合に適用でき、量子化パラメータを適応的に変更できる符号化装置に適用できる。
例えば、図8に示すよう符号化装置にも適用できる。図8において、符号化装置200は、入力信号に対して、仮符号化処理を行う第一の符号化回路201と、正規の符号化を行う第二の符号化回路202と、入力信号を遅延させる遅延メモリ151と、2値シンボル量・符号量積算値メモリ253と、2値シンボル量・符号量積算回路254とを備える。
第一の符号化回路201は、入力した信号に対して所定の信号処理を行う信号処理回路261と、量子化回路221と、量子化パラメータ発生回路211と、2値化回路231と、算術符号化回路241とから構成される。
第二の符号化回路202は、入力した信号に対して所定の信号処理を行う信号処理回路262と、量子化回路222と、量子化パラメータ算出回路212と、2値化回路232と、算術符号化回路242とから構成される。
以上のように構成される符号化装置200は仮符号化処理時には以下の動作を行う。信号処理回路261は入力信号に対して所定の信号処理を行い、量子化回路221は量子化パラメータ発生回路211からの仮量子化パラメータに基づき、信号処理回路261から出力される信号を量子化する。量子化された信号は2値化回路231により2値化され、その後、算術符号化回路241により算術符号化される。2値シンボル量・符号量積算回路254は、2値化回路231から出力される2値シンボルのシンボル量と、算術符号化回路241から出力される符号の符号量とを、所定の単位毎に積算し、積算した値を2値シンボル量・符号量積算値メモリ253に格納する。2値シンボル量・符号量積算回路254の処理は前述したとおりである。
その後、第二の符号化回路202により正規の符号化処理が実施される。信号処理回路262は、遅延メモリ251により一定時間遅延された入力信号に対して所定の信号処理を行う。量子化回路222は所定の信号処理がなされた入力信号を量子化パラメータ算出回路212からの量子化パラメータを用いて量子化を行う。量子化パラメータ算出回路212における量子化パラメータの決定方法は前述したとおりである。その後、2値化回路232、算術符号化回路242により処理がなされビットストリームが出力される。
本実施の形態を用いて符号化したビットストリームは、テープ、光ディスク、磁気ディスク、半導体メモリ等の記録媒体に記録して再配布可能にすることができる。
また、図1及び図8の符号化装置における各回路の機能をソフトウェアにより実現し、マイクロプロセッサでそのソフトウェアを実行させることで、図1及び図8の符号化装置と同様の機能を実現することもできる。
本発明は、ディジタルカメラレコーダや録画装置など小さい回路規模でリアルタイム動作が要求されるデータ記録装置に有効である。
本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の開示に限定されず、添付の請求の範囲によってのみ限定され得る。なお、本出願は日本国特許出願、特願2006−319981号(2006年11月28日提出)に関連し、それらの内容は参照することにより本文中に組み入れられる。
本発明は、符号化装置及び方法に関し、特に、算術符号化を適用した符号化装置及び方法に関する。
算術符号化は、情報源シンボルの発生確率に応じて、情報量を理論的限界まで可逆圧縮できる技術である。算術符号化は、画像符号化の分野において、JPEG2000規格(ISO/IEC15444)、H.264/MPEG4−AVC規格(非特許文献1参照)等に採用されている。
例えば、H.264においては、コンテキスト適応算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)が採用され、シンタックスの確率特性に応じた効率の高い符号化を実現している。
H.264におけるコンテキスト適応算術符号化について説明する。図9に、従来のコンテキスト適応算術符号化回路を示す。
図9に示すコンテキスト適応算術符号化回路14において、2値化回路130は、変換係数データ、フラグ等の符号化情報からなる多値入力データの2値化を行う。ここで、2値化は、制御情報から入力データの種類であるシンタックスエレメント(syntax element)を判別し、データの確率特性によって、ユーナリー・バイナライゼーション(unary binarization)や固定長バイナライゼーション(fixed−length binarization)といった複数の方式を使い分けながら行われる。2値化回路130により2値化された2値シンボル(バイナリ)列は、(2値)算術符号化回路140に入力される。
コンテキスト計算回路520は、シンタックスエレメントを示す制御情報に基づいて、2値シンボル列における現在の1ビットを符号化するために用いるコンテキストインデックス(ctxIdx)の値を、H.264規格で定められたテーブルを参照して一意に決定する。コンテキスト計算回路520は、ctxIdxの値毎に発生確率情報を初期化して記憶する。発生確率情報は、2値シンボルの「0」又は「1」のうち発生確率の高い方のシンボルを示すMPSと発生確率pStateの組である。求められたctxIdxの値に対応した発生確率情報を「コンテキスト情報」と呼ぶ。
コンテキスト計算回路520はコンテキスト情報504を生成して算術符号化回路140に出力する。このように、算術符号化を行うシンタックスエレメントによって算術符号化回路140に入力されるシンボルの発生確率すなわちコンテキスト情報504が適応的に切り替わることにより、2値シンボルの発生確率が動的に変わる2値シンボル列503に対して、最適な算術符号化が可能となる。
以下の説明において、2値シンボル列の総ビット長(シンボル長)を「シンボル量」、算術符号化後の出力符号の総ビット長を「符号量」といい、特に、一定区間の多値入力データを処理した際に発生する、2値シンボル列の総ビット長を「発生2値シンボル量」、出力符号の総ビット長を「発生符号量」と呼ぶ。
算術符号化回路140の動作について図10を用いて説明する。図10において、シンボル「0」の発生確率が0.75(2進数で0.11)、シンボル「1」の発生確率が0.25の情報源から{0,0,0,1}のバイナリ列が供給された場合を考える。この場合、現在のコンテキスト情報504は、発生確率の高い方のシンボルを示すMPS=0、及び発生確率pState=0.11で表される(図10(a)参照)。発生確率pStateは、正規化された整数値で表現されるが、ここでは簡単化のため2進数の値とする。コンテキスト情報504は、今回の2値算術符号化により更新され、コンテキスト計算回路520に戻される。コンテキスト計算回路520では、対応するctxIdxの発生確率情報を更新する。この値は、次回に同じコンテキストの符号化が行われる際に再利用される。
図10(b)を参照し、1個目の入力バイナリ値「0」が入力されると、[0,1]の区間が確率0.11で区切られる0側に区間が狭められ、[0,0.11]になる。2個目の入力「0」が入力されると、[0,0.11]の区間が[0,0.1001]に狭められる。ここで、0.1001=0.11×0.11である。同様にして、3個目の入力「0」により区間が[0,0.011011]になる。4個目の入力「1」が入力されると、1側に区間に狭められる。最終的な区間は[0.01010001,0.011011]になる。この最終的な区間に含まれる値のうち、最短の語長を持つものが符号語となる。すなわち、0.011は、この区間に含まれるので、小数点以下の値「011」が出力バイナリ列となり、4ビットの入力値が3ビットに圧縮されたことになる。実際には、出力するビット(0もしくは1)が確定した時点で確率値の左ビットシフトを行うリノーマライゼーション(renormalization)と呼ばれる処理が行われる。
一方、動画像符号化においては、特定のビットレートの条件下で画質を最大限に高めるため、各マクロブロックを符号化する際の量子化パラメータを適切に制御して、符号量制御を行う必要がある。符号量制御の精度を高めるため、スライス、フレーム、GOP(Group Of Pictures)といった単位でパラメータを変更して繰返し符号化を行うことが一般的である。
特開平2004−135251号公報 ISO/IEC14496−10 Advanced video coding for generic audiovisual services
算術符号化を用いた符号化回路を構成する場合、デコーダにおける最大処理量を規定する目的から、2値シンボル量の上限値(BinCountsInNALunits)が規定されている(非特許文献1参照)。この上限値の規定を順守するために、符号量と2値シンボル量を制御する必要がある。この上限値の規定により、回路の動作時間の上限値を規定することができる。例えば、特許文献1では、算術符号化器に入力する2値シンボル量の制限監視器を用意し、閾値を超えた場合には符号化し直すか、並列に複数の符号化パラメータを適用する符号化を行うことにより、2値シンボル量を制御している。
符号化し直す場合、前述したように既に更新された算術符号化の発生確率情報を元に戻す必要があり、リアルタイムでの処理が要求される符号化装置においては複雑な回路構成が必要となる。また、並列に複数の符号化パラメータを適用して符号化する場合、算術符号化回路が符号化パラメータの数だけ必要となり、回路規模の増大を招来する。
本発明は上記課題を考慮してなされたものであり、その目的とするところは、算術符号化を適用した符号化装置であって、簡単な回路構成で、2値シンボル量を上限値以下に制御しつつ復号動作の保証された符号化を行い、同時に精度良く符号量制御を実現する符号化装置を提供することにある。
本発明の第1の態様において、入力信号を量子化し、符号化する装置であって、量子化により生成される2値シンボルのシンボル量の上限値が定められている符号化装置を提供する。
符号化装置は、入力信号に対して所定の信号処理を行う信号処理回路と、第1の量子化パラメータを生成する量子化パラメータ発生回路と、所定の信号処理がなされた入力信号を、第1の量子化パラメータに基づき量子化して第1の量子化データを生成する第1の量子化回路と、第1の量子化データに対して2値化を行い、第1の2値シンボルデータを出力する第1の2値化回路と、第1の2値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第1の符号化データを生成する第1の算術符号化回路と、第1の2値シンボルデータのシンボル量、第1の符号化データの符号量、第2の量子化パラメータ、シンボル量の上限値、及び目標符号量に基づいて、第2の量子化パラメータを生成する量子化パラメータ算出回路と、第2の量子化パラメータに基づいて、所定の信号処理がなされた入力信号を量子化し、第2の量子化データを生成する第2の量子化回路と、第2の量子化データに対して2値化を行い、第2の2値シンボルデータを出力する第2の2値化回路と、第2の2値シンボルデータに対して算術符号化を行い、入力信号に対する符号化データを生成し、出力する第2の算術符号化回路とを備える。
本発明の第2の態様において、入力信号を量子化し、符号化する方法であって、量子化により生成される2値シンボルのシンボル量に上限値が定められている符号化方法を提供する。
符号化方法は、入力信号に対して所定の信号処理を行うステップと、第1の量子化パラメータを生成するステップと、所定の信号処理がなされた入力信号を、第1の量子化パラメータに基づき量子化して第1の量子化データを生成するステップと、第1の量子化データに対して2値化を行い、第1の2値シンボルデータを出力するステップと、第1の2値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第1の符号化データを生成するステップと、第1の2値シンボルデータのシンボル量、第1の符号化データの符号量、第2の量子化パラメータ、シンボル量の上限値、及び目標符号量に基づいて、第2の量子化パラメータを生成するステップと、第2の量子化パラメータに基づいて、所定の信号処理がなされた入力信号を量子化し、第2の量子化データを生成するステップと、第2の量子化データに対して2値化を行い、第2の2値シンボルデータを出力するステップと、第2の2値シンボルデータに対して算術符号化を行い、入力信号に対する符号化データを生成し、出力するステップとを含む。
本発明によれば、算術符号化を用いた符号化装置において、簡単な回路構成で、発生2値シンボル量を上限値以下に制御して、同時に精度良く出力ビットストリームの符号量制御を行うことが可能となり、符号量を所定量以内に精度良く収めかつ復号動作の保証されたビットストリームを提供することを可能とする。
以下、本発明の実施形態について添付の図面を参照しながら説明する。
本実施形態では、フレーム内で復号可能なイントラフレームを符号化対象として、符号化により得られる2値シンボル量を所定の上限値以下に制御しつつ、精度良く符号量制御を行う映像符号化装置について説明する。
1.映像符号化装置の構成
図1に、本発明の実施の形態における映像符号化装置の構成を示す。図1において、映像符号化装置100は、仮符号化を行う第一の符号化回路101と、正規の符号化を行う第二の符号化回路102と、フレームメモリ151と、予測モードメモリ152と、2値シンボル量・符号量積算値メモリ153と、2値シンボル量・符号量積算回路154とを備える。
第一の符号化回路101は、入力したディジタル映像信号をブロック化するためのブロック化回路161と、予測モード検出回路173と、イントラ予測生成回路171と、直交変換回路としてのDCT回路181と、量子化回路121と、量子化パラメータ発生回路111と、2値化回路131と、算術符号化回路141とから構成される。
第二の符号化回路102は、入力したディジタル映像信号をブロック化するためのブロック化回路162と、イントラ予測生成回路172と、DCT回路182と、量子化回路122と、量子化パラメータ算出回路112と、2値化回路132と、算術符号化回路142と、逆量子化回路124と、逆DCT回路184とから構成される。
2.映像符号化装置の動作
以上のように構成された映像符号化装置について、以下その動作を説明する。最初に、1フレームの映像データに対する符号化処理の流れについて説明する。
映像符号化装置100は1フレームのディジタル映像信号を入力すると、第一の符号化回路101により1フレーム分の映像信号の仮符号化処理を行う。
映像符号化装置100に入力されたディジタル映像信号はまたフレームメモリ151に格納され、1フレーム以内の所定時間だけ遅延され、第二の符号化回路102に出力される。第二の符号化回路102はフレームメモリ151からデータを読み出し、読み出したデータに対して正規の符号化処理を行い、符号化された結果としてビットストリームを出力する。
第一の符号化回路101において、予測モード検出回路173は、イントラ予測の予測モードを検出し、その値を予測モードメモリ152に格納する。また、2値化回路131及び算術符号化回路141から出力された2値シンボル量及び符号量が2値シンボル・符号量積算値メモリ153に格納される。
第二の符号化回路102は、予測モードメモリ152に格納された予測モード値、及び2値シンボル量・符号量積算値メモリ153に格納された2値シンボル量と符号量の積算値を受けて最適な量子化パラメータを決定し、第一の符号化回路101で処理されたフレームと同じフレームの映像信号に対して正規の符号化処理を行う。
2.1 第一の符号化回路の処理
第一の符号化回路101の処理を説明する。
ブロック化回路161は、入力された1フレームのディジタル映像信号が示す画像を16×16画素の複数のマクロブロックに分割する。マクロブロックはDCTやイントラ予測の処理単位となるブロックを複数個含む。
イントラ予測生成回路171は、マクロブロック毎に、入力されたディジタル映像信号の画素と、入力されたディジタル映像信号の画像に隣接する画素とから、そのマクロブロックの各画素の値を種々の予測モードで予測する。予測モードには、フィールドマクロブロック復号フラグ(mb_field_decoding_flag)、輝度4×4イントラ予測モード(Intra4x4PredMode)、輝度8×8イントラ予測モード(Intra8x8PredMode)、色差イントラ予測モード(intra_chroma_pred_mode)が含まれる。イントラ予測は8×8画素ブロックや4×4画素ブロックの単位で行われてもよい。
予測モード検出回路173は、4つの予測モードの中から最適な予測モードを検出し、その情報を予測モード値として出力する。予測モード値は予測モードメモリ152に蓄積される。
入力されたディジタル映像信号における符号化対象のマクロブロックの各画素値と、イントラ予測生成回路171により生成された、符号化対象のマクロブロックの各画素の予測値との差分値が計算されて、16×16画素の差分値のブロックが生成され、DCT回路181に出力される。
DCT回路181は、差分値のブロックに対してDCT処理を行う。DCT処理は、通常4×4画素や8×8画素のブロック単位で行われ、周波数成分の係数データが出力される。係数データは量子化回路121に入力される。量子化回路121は、係数データを量子化パラメータに応じて量子化する。量子化パラメータは量子化パラメータ発生回路111により与えられる。
量子化パラメータ発生回路111は量子化の際の量子化レートを規定する量子化パラメータを発生させる。本実施形態において、量子化パラメータの取り得る値は0〜51とし、その値が小さいほど、より高い量子化レートを示すものとする。量子化パラメータ発生回路111は、発生させる量子化パラメータの候補として、複数の量子化パラメータ(以下「代表量子化パラメータ」という)qpを有している。量子化パラメータ発生回路111は、マクロブロック毎に、複数の代表量子化パラメータqpの中から1つを選択して、そのマクロブロックの量子化に対する量子化パラメータQPとして出力する。量子化パラメータ発生回路111の量子化パラメータの決定処理の詳細は後述する。
量子化回路121により量子化された係数データは、2値化回路131にて2値化され、その後、算術符号化回路141により算術符号化される。2値シンボル量・符号量積算回路154は、2値化回路131から出力される2値シンボルのシンボル量と、算術符号化回路141から出力される符号の符号量とを、同一の量子化パラメータが適用されるマクロブロック群毎に積算し、積算した値を2値シンボル量・符号量積算値メモリ153に格納する。
本実施形態では、仮符号化において、イントラ予測の予測画素はディジタル映像信号から得る。H.264規格が規定するイントラ予測の予測画素は、デコーダが用いる、復号された値であるが、以下の理由により、これを用いないのが望ましい。
第一に、仮符号化では量子化パラメータを量子化パラメータ発生回路111により変化させて符号量及び2値シンボル量を出力するため、復号画素を用いると、量子化パラメータの値が大きい時に復号画素の精度が悪くなり、以降のマクロブロックの予測画素の精度が低下してしまう。第二に、復号画素を用いないことで、仮符号化における逆量子化回路及び逆DCT回路を省略でき、回路規模を削減できるからである。
2.2 第二の符号化回路の処理
第二の符号化回路102の処理について説明する。
第一の符号化回路101により1フレームの仮符号化が終了すると、フレームメモリ151に蓄積された1フレームの映像信号が第二の符号化回路102のブロック化回路162に入力される。ブロック化回路162は1フレームの映像信号の画像を16×16画素の複数のマクロブロックに分割する。
イントラ予測生成回路172は、予測モードメモリ152から予測モード値を読み出し、その予測モード値が示す予測モードを用いて符号化対象のマクロブロックの各画素について画素予測値を求める。その際、イントラ予測生成回路172がイントラ予測に用いる隣接画素の値は逆量子化回路124及び逆DCT回路184により生成される。イントラ予測生成回路172は、画素予測値と、符号化対象のマクロブロックの画素値との差分値を画素毎に計算して差分値のブロックを求める。
DCT回路182は、このようにして求めた差分値のブロックに対してDCT処理を行い、周波数成分の係数データを出力する。係数データは量子化回路122に入力される。
量子化回路121は、係数データを量子化パラメータに応じて量子化する。量子化パラメータは量子化パラメータ算出回路112により算出される。量子化回路121は、量子化した係数データを2値化回路132及び逆量子化回路124に出力する。
量子化パラメータ算出回路112は、2値シンボル量・符号量積算値メモリ153から、第一の符号化狩生101で求められた2値シンボル量と符号化量を取得し、それらの値に基づいて量子化パラメータを決定する。量子化パラメータ発生回路112の詳細な動作は後述する。
2値化回路132は量子化された係数データを2値シンボルに変換する。算術符号化回路142は、2値化回路132からの2値シンボルを算術符号化し、その結果をビットストリームとして出力する。ここで、算術符号化回路142については発生符号量の上限値を示す目標符号量が規定されている。
一方、量子化回路122により量子化された係数データは逆量子化回路124により逆量子化され、その後、逆DCT回路184により逆DCT処理される。これにより、イントラ予測に用いられる、符号化対象のマクロブロックの隣接画素の値が得られる。
2.3 第一の符号化回路における量子化パラメータ発生回路の動作
第一の符号化回路101の量子化パラメータ発生回路111による量子化パラメータの発生動作について説明する。なお、以下では、1920×1080画素の1フレームの仮符号化において、スライス単位に最適な量子化パラメータを算出する場合を説明する。なお、フレームを分割するスライスは任意の連続するマクロブロックの集合として定義される。
図2に示すように、1920×1080画素のフレームは16×16画素のマクロブロックが8160(=120×68)個で構成される。本例では、1スライスが2040個のマクロブロックを含み、1フレームが4個のスライスで構成される場合を考える。
仮符号化の開始前に、第一の符号化回路101の量子化回路121で使用される仮量子化パラメータQP1(n)を決定する。仮量子化パラメータQP1(n)は、マクロブロック毎に複数のパラメータ候補(代表量子化パラメータ)の中から選択された1つのパラメータに設定される。すなわち1個のマクロブロックに対する仮量子化パラメータQP1(n)は、任意の異なるQ種類の代表量子化パラメータqp1(x)(x=0,1,…,Q−1)の中から選択された1つの仮量子化パラメータqp1(m)に設定される。なお、代表量子化パラメータは、規定の量子化パラメータの最大値及び最小値を含むよう決定される。
例えば、0と20の2種類の代表量子化パラメータqp1(x)={0,20}を与える場合を考える。ここで、F(x)={A0,A1,…,AQ-1}(Anは整数)の表記は、F(0)=A0、F(1)=A1、…、F(Q−1)=AQ-1を意味するものとする。各マクロブロックの仮量子化パラメータは、各代表量子化パラメータの出現頻度が等しくなるように、2種類の代表量子化パラメータの中から選択される。この例では、半数のマクロブロックに量子化パラメータ「0」を、残り半数のマクロブロックに量子化パラメータ「20」を与える。また、仮量子化パラメータがスライス内で偏るのを防ぐため、スライス内に交互又はランダムに仮量子化パラメータを配置する。例えば、プログレッシブ走査においては図3(a)に示すように、通常のラスタスキャン順に交互に代表量子化パラメータを与え、インターレース走査では、図3(b)に示すようにマクロブロックの対毎に交互に代表量子化パラメータを与えることができる。
次に、仮符号化における代表量子化パラメータqp1(x)(x=0,1,…,Q−1)の数Qと、各値qp1(x)の決定方法について説明する。
量子化回路121で用いられる代表量子化パラメータの数Qは、1スライスに含まれるマクロブロックの数の約数に設定できる。このような方法で、代表量子化パラメータの数Qを設定すれば、スライス内で各代表量子化パラメータが出現する回数を一定にできる。その際、走査方式がプログレッシブ方式の場合、代表量子化パラメータの数Qとして、マクロブロック数の約数を選択できる。また、インターレース方式の符号化を行うためにマクロブロックを対にする場合は、1スライスに含まれるマクロブロック数の半数の約数に設定できる。例えば、1スライスに含まれるマクロブロック数が2040であれば、代表量子化パラメータの数Qとして、5、10、20が選択できる。それぞれのQの場合の、1個のスライス内における各代表量子化パラメータの出現回数はそれぞれ408回、204回、102回となる。
代表量子化パラメータqp1(x)として、エンコーダで選択できる量子化パラメータの範囲内から異なる値がQ個選択される。この場合、最適な符号化のための符号量予測が行い易くなるように、それらの値を適度に分散させるのが好ましい。
例えば、1スライスに含まれるマクロブロック数が2040で、エンコーダで選択できる量子化パラメータが0から51の範囲である場合、代表量子化パラメータqp1(として、図4(a)に示すように、{0,4,8,12,16,22,28,34,42,51}の10個の代表量子化パラメータが選択できる。このとき、プログレッシブ方式の場合は、図4(b)に示すように代表量子化パラメータが適用され、インターレース方式の場合は、図4(c)に示すように代表量子化パラメータが適用される。
2.4 2値シンボル量・符号量積算回路の動作
2値シンボル量・符号量積算回路154は、第一の符号化回路101における仮符号化の結果得られる2値シンボル量と符号量について、同じ代表量子化パラメータを用いたマクロブロック毎に積算し、それぞれの積算した値を積算値メモリ153に格納する。以下、この動作を具体的に説明する。
第一の符号化回路101による仮符号化処理では、2040個のマクロブロックを含むスライス1個に対し、同じ代表量子化パラメータqp1(x)を使用したマクロブロック毎に発生2値シンボル量B1(n)及び発生符号量R1(n)の総和を計算する。前記総和をQP別発生2値シンボル量b1(x)、QP別発生符号量r1(x)とし、2値シンボル量・符号量積算値メモリ153に蓄積する。
例えば、図5の例では、図5(a)に示す代表量子化パラメータqp1(x)のそれぞれに対して、図5(b)に示すような、代表量子化パラメータ毎に2値シンボル量B1(n)の総和を取ったQP別発生シンボル量b1(x)、及び代表量子化パラメータ毎に発生符号量R1(n)の総和を取ったQP別発生符号量r1(x)が2値シンボル量・符号量積算値メモリ153に蓄積される。
2.5 第二の符号化回路における量子化パラメータ発生回路の動作
第二の符号化回路102での符号化に適用する最適量子化パラメータQPoptの算出方法を、図6及び図7を用いて説明する。ここで、ビットレート、フレームレート、フレームの複雑度、スライスの符号化タイプなどの情報を用いて割り当てたスライスの目標符号量T及び上限2値シンボル量Bmaxをそれぞれ以下のように設定する。
スライスの目標符号量T=300000ビット
上限2値シンボル量Bmax=595840ビット
第二の符号化回路102は、第一の符号化回路101での仮符号化の結果得られた各代表量子化パラメータ毎の発生シンボル量b1(x)と発生符号量r1(x)と、上限2値シンボル量と目標符号量とに基づいて、最適量子化パラメータQPoptを決定する。具体的には、量子化パラメータ算出回路112は、2値シンボル量に基づく最適量子化パラメータの算出と、符号量に基づく最適量子化パラメータの算出とを行い、それらの算出結果を比較し、大きい方の量子化パラメータを最適量子化パラメータとして採用する。以下、その詳細を説明する。
最初に、図6を参照して、2値シンボル量に基づく最適量子化パラメータ候補QPbinの算出について説明する。図6は、代表量子化パラメータqp1(x)と、各量子化パラメータQP別の、発生した2値シンボル量b1(x)とに基づいて、量子化パラメータQPと、スライス単位で予測した2値シンボル量の関係を示した図である。
QP別の発生2値シンボル量b1(x)は、同じ量子化パラメータQPが適用されたマクロブロックについて2値シンボル量の総和を、各量子化パラメータQP(=x)毎に求めたものである。各量子化パラメータは204個のマクロブロックに適用されるため、b1(x)は204個ずつのマクロブロックの2値シンボル量の総和になっている。各量子化パラメータQPに対するスライス単位の予測符号量は、b1(x)を10倍することで求められる。
図6において、プロットしたスライス単位の予測2値シンボル量を線形補間することで、全てのQP値(0≦QP≦51)に対するスライス予測2値シンボル量を算出することができる。すなわち、スライスの上限2値シンボル量Bmax(=595840)に対して図6に示す関係を用いて線形補間することで、発生する2値シンボル量を上限2値シンボル量以下に収める最適な量子化パラメータQPbinを求めることができる。最適な量子化パラメータ候補QPbinは次式で求められる。
QPbin
CEIL[q+{QP1(q+1)−QP1(q)}×{Q×b1(q)−Bmax
/{Q×b1(q)−Q×b1(q+1)}] (1)
なお、CEIL[x]はx以上の最小の整数を返す関数である。qは0≦q≦Q−1の整数であり、Q×b1(q+1)≦Bmax≦Q×b1(q)を満たす値とする。ここでは、1スライスを通じて1つの最適量子化パラメータを使用することとしている。また、すべてのqに対しBmax>Q×b1(q)となる場合はq=0、すべてのqに対しBmax<Q×b1(q)となる場合はq=Q−1とする。このため、あらかじめ仮量子化パラメータとしてQP1(0)=min(QP)=0、QP1(Q−1)=max(QP)=51としておくのが望ましい。
max=595840のとき、式(1)を用いて、最適量子化パラメータ候補QPbinは13と求められる。
QPbin=CEIL[12+(16−12)×(623230−595840)
/(623230−388510)]
=13
次に、図7を参照し、符号量に基づく最適量子化パラメータ候補QPcodeの算出について説明する。図7は、代表量子化パラメータqp1(x)と量子化パラメータQP別の発生した符号量r1(x)とに基づいて、量子化パラメータQPとスライス予測符号量の関係を示した図である。
QP別の発生符号量r1(x)は、同じ量子化パラメータQPが適用されたマクロブロックについて符号量の総和を、各量子化パラメータQP(=x)毎に求めたものである。各量子化パラメータは204個のマクロブロックに適用されるため、r1(x)は204個ずつのマクロブロックの符号量の総和になっている。各量子化パラメータQPに対するスライス予測符号量は、r1(x)を10倍することで求められる。
図7において、プロットしたスライス予測符号量を線形補間することで、全てのQP値(0≦QP≦51)に対するスライス予測符号量を算出することができる。すなわち、スライスの目標符号量T=300000に対して図6に示す関係を用いて線形補間することで、発生する符号量を目標符号量にするのに最適量子化パラメータ候補QPcodeを求めることができる。QPcodeの算出は、線形補間により次式で求められる。
QPcode=q+{QP1(q+1)−QP1(q)}×{Q×r1(q)−T}
/{Q×r1(q)−Q×r1(q+1)} (2)
なお、qは0≦q≦Q−1の整数であり、Q×r1(q+1)≦T≦Q×r1(q)を満たす値とする。ここでは、1スライスを通じてひとつの最適量子化パラメータを使用することとしている。また、すべてのqに対しT>Q×r1(q)となる場合はq=0、すべてのqに対しT<Q×r1(q)となる場合はq=Q−1とする。
式(2)を用いて最適量子化パラメータ候補QPcodeを計算すると約16.84となるが、量子化パラメータは整数である必要があるので、小数点以下を四捨五入し、17とする。
QPcode=16+(22−16)×(317850−300000)
/(317850−190980)
≒16.84≒17
量子化パラメータ算出回路112は、以上のようにして求めた2値シンボル量に基づく最適量子化パラメータ候補QPbinと符号量に基づく最適量子化パラメータ候補QPcodeのうち、大きい方を選択して最適量子化パラメータQPoptとし、量子化回路122に出力する。
図6及び図7の例では、QPbin=13、QPcode=17であるから、QPopt=17とする。このように、QPbin及びQPcodeのうち大きい方を最適量子化パラメータQPoptとすることにより、入力データの統計的性質に応じて符号化を行うことが可能となり、発生符号量をより低く抑えることができる。つまり、相対的に2値シンボル量が大きく符号量が小さい場合にはQPbinが選ばれて、符号量は目標符号量よりある程度小さくなるものの2値シンボル量の上限値は満たされる。逆に相対的に2値シンボル量が小さく符号量が大きい場合にはQPcodeが選ばれて、2値シンボル量は上限よりある程度小さく抑えられ目標符号量に近い値に符号化することができる。
3.まとめ
以上のように本実施形態の映像符号化装置では、第1の符号化回路101による仮符号化において、まず複数の代表量子化パラメータのそれぞれについて、発生する2値シンボル量及び発生する符号量を求める。その後、第2の符号化回路102において、仮符号化で求めた値に基づいて、上限2値シンボル量及び目標符号量を考慮して最適な量子化パラメータを求める。このような方法により、一方向の処理の流れの中で最適な量子化パラメータを決定できるため、従来のように、更新された算術符号化の発生確率情報を元に戻すための複雑な回路構成が不要となり、また、並列に算術符号化回路を設ける必要もないので、回路構成が簡単になる。
また、本実施形態によれば、符号化により得られる2値シンボル量を所定の上限値以下に抑制しつつ、発生する符号量を所定量以下に抑えることができる。よって、本実施形態の映像符号化装置は特にフレーム単位の符号量を一定にする場合に有効である。例えば、本実施形態の映像符号化装置は、フレーム単位の符号量に制限値がある符号化を行う場合や、フレーム単位の符号量に制限値がない符号化においても、デコーダバッファの状態がクリティカルで現在のフレームの符号量に制限値がある場合に有効である。その理由を以下に説明する。
本実施形態の思想を用いずに、2値シンボル量が所定の上限値を超え、符号量のみが制限値以下に抑制された場合を考える。この場合、非特許文献1の符号化では、cabac_zero_wordと呼ばれるスタッフィングを用いて符号量を増加させることで、2値シンボル量の上限値の規定を順守する必要がある。しかし、符号量を増加させることで符号量が制限値を超えて、符号化を破綻させる可能性が生じてしまう。本実施形態は、制限値に対して計算された2値シンボル量の上限値以下に2値シンボル量を制御可能であるため、cabac_zero_wordのスタッフィングが必要となったとしても、符号量は必ず制限値以下に収まり破綻させることはない。よって、本実施形態の思想は前述の場合に特に有効となる。
(変形例)
なお、本実施の形態では、最適量子化パラメータQPoptとして固定値を与える例を示したが、例えばQPoptをN個のマクロブロックの符号化に対する初期値として用い、それ以降の量子化パラメータはフィードバック制御による2値シンボル量及び符号量の制御を行い、最適量子化パラメータQP2(n)を動的に変更することが可能である。フィードバック制御は、例えば符号量に基づいて制御する場合、マクロブロック番号mのマクロブロックにおいて、符号化時の発生符号量R2(n)を0≦n≦mの範囲で加算した累積発生符号量Bと、ある時点(例えばマクロブロック番号N−1)までの目標符号量Tとの差分である残存符号量(T−B)を、残存しているマクロブロックn(m<n≦N−1)の目標符号量Sに設定することで実施できる。また、マクロブロックの輝度値や色差値、周波数領域での特徴等に基づいて量子化パラメータQP2(n)を動的に変更する処理も可能である。
本実施の形態では、スライス単位で仮符号化及び正規の符号化を行ったが、より小さい単位で仮符号化及び正規の符号化を行って発生符号量R2(n)を得てもよい。その結果を量子化パラメータの選択に反映するような場合や、フィードバック制御を小さい単位で行う場合には、数マクロブロック等の小さい単位で実施しても効果的である。また、仮符号化及び正規の符号化の処理単位を固定していたが、仮符号化及び正規の符号化の処理単位をフレーム単位又はその他の単位で動的に変更させることも可能である。また、スライス予測符号量を線形補間して求めたが、スプライン補間等、高度な数値補間も利用できる。
本実施の形態ではQP別発生2値シンボル量b1(x)及びQP別発生符号量r1(x)を2値シンボル量・符号量積算値メモリ153に蓄積する例で説明したが、総和を計算する前のマクロブロック毎の発生2値シンボル量B1(n)及び発生符号量R1(n)を蓄積し、2値シンボル量・符号量積算値メモリ153から読み出した後に総和を計算しても良い。
本実施の形態では仮符号化処理を1回のみ行う例を示したが、リアルタイムの符号化処理が必要でない場合や、仮符号化処理をパイプライン化又は並列化することにより一定の遅延で多くの処理が行える場合には、仮符号化処理を複数回行っても良い。
なお、本実施の形態では、映像符号化のH.264規格におけるコンテキスト適応算術符号化を例にとって説明した。しかし、本発明の思想は、量子化された係数データに対して算術符号化を行う場合に適用でき、量子化パラメータを適応的に変更できる符号化装置に適用できる。
例えば、図8に示すよう符号化装置にも適用できる。図8において、符号化装置200は、入力信号に対して、仮符号化処理を行う第一の符号化回路201と、正規の符号化を行う第二の符号化回路202と、入力信号を遅延させる遅延メモリ151と、2値シンボル量・符号量積算値メモリ253と、2値シンボル量・符号量積算回路254とを備える。
第一の符号化回路201は、入力した信号に対して所定の信号処理を行う信号処理回路261と、量子化回路221と、量子化パラメータ発生回路211と、2値化回路231と、算術符号化回路241とから構成される。
第二の符号化回路202は、入力した信号に対して所定の信号処理を行う信号処理回路262と、量子化回路222と、量子化パラメータ算出回路212と、2値化回路232と、算術符号化回路242とから構成される。
以上のように構成される符号化装置200は仮符号化処理時には以下の動作を行う。信号処理回路261は入力信号に対して所定の信号処理を行い、量子化回路221は量子化パラメータ発生回路211からの仮量子化パラメータに基づき、信号処理回路261から出力される信号を量子化する。量子化された信号は2値化回路231により2値化され、その後、算術符号化回路241により算術符号化される。2値シンボル量・符号量積算回路254は、2値化回路231から出力される2値シンボルのシンボル量と、算術符号化回路241から出力される符号の符号量とを、所定の単位毎に積算し、積算した値を2値シンボル量・符号量積算値メモリ253に格納する。2値シンボル量・符号量積算回路254の処理は前述したとおりである。
その後、第二の符号化回路202により正規の符号化処理が実施される。信号処理回路262は、遅延メモリ251により一定時間遅延された入力信号に対して所定の信号処理を行う。量子化回路222は所定の信号処理がなされた入力信号を量子化パラメータ算出回路212からの量子化パラメータを用いて量子化を行う。量子化パラメータ算出回路212における量子化パラメータの決定方法は前述したとおりである。その後、2値化回路232、算術符号化回路242により処理がなされビットストリームが出力される。
本実施の形態を用いて符号化したビットストリームは、テープ、光ディスク、磁気ディスク、半導体メモリ等の記録媒体に記録して再配布可能にすることができる。
また、図1及び図8の符号化装置における各回路の機能をソフトウェアにより実現し、マイクロプロセッサでそのソフトウェアを実行させることで、図1及び図8の符号化装置と同様の機能を実現することもできる。
本発明は、ディジタルカメラレコーダや録画装置など小さい回路規模でリアルタイム動作が要求されるデータ記録装置に有効である。
本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の開示に限定されず、添付の請求の範囲によってのみ限定され得る。なお、本出願は日本国特許出願、特願2006−319981号(2006年11月28日提出)に関連し、それらの内容は参照することにより本文中に組み入れられる。
本発明の実施の形態における映像符号化装置の構成図 符号化される画像とマクロブロックの関係を説明した図 仮量子化パラメータの選択例を示す図 (a)代表量子化パラメータの具体例を説明した図、(b)プログレッシブ方式の場合のマクロブロックへの代表量子化パラメータの適用例を示した図、(c)インターレース方式の場合のマクロブロックへの代表量子化パラメータの適用例を示した図 2値シンボル量・符号量積算値メモリに格納される、代表量子化パラメータ毎の発生2値シンボル量と発生符号量の具体例を示した図 発生2値シンボル量に基づく最適量子化パラメータの算出方法を説明するための図 発生符号量に基づく最適量子化パラメータの算出方法を説明するための図 本発明の思想が適用可能な符号化装置の構成図 従来のコンテキスト適応算術符号化回路の構成を示す図 2値算術符号化を説明するための図
100 映像符号化装置
101 第一の符号化回路
102 第二の符号化回路
111 量子化パラメータ発生回路
112 量子化パラメータ算出回路
121、122 量子化回路
124 逆量子化回路
131、132 2値化回路
131 コンテキスト選択回路
141、142 算術符号化回路
151 フレームメモリ
152 予測モードメモリ
153 2値シンボル量・符号量積算値メモリ
161、162 ブロック化回路
171、172 イントラ予測生成回路
173 予測モード検出回路
181、182 DCT回路
184 逆DCT回路
200 符号化装置
221、222 量子化回路
251 遅延メモリ
261、信号処理回路

Claims (9)

  1. 入力信号を量子化し、符号化する装置であって、量子化により生成される2値シンボルのシンボル量の上限値が定められている符号化装置において、
    入力信号に対して所定の信号処理を行う信号処理回路と、
    第1の量子化パラメータを生成する量子化パラメータ発生回路と、
    前記所定の信号処理がなされた入力信号を、前記第1の量子化パラメータに基づき量子化して第1の量子化データを生成する第1の量子化回路と、
    前記第1の量子化データに対して2値化を行い、第1の2値シンボルデータを出力する第1の2値化回路と、
    前記第1の2値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第1の符号化データを生成する第1の算術符号化回路と、
    前記第1の2値シンボルデータのシンボル量、前記第1の符号化データの符号量、第2の量子化パラメータ、前記シンボル量の上限値、及び前記目標符号量に基づいて、第2の量子化パラメータを生成する量子化パラメータ算出回路と、
    前記第2の量子化パラメータに基づいて、前記所定の信号処理がなされた入力信号を量子化し、第2の量子化データを生成する第2の量子化回路と、
    前記第2の量子化データに対して2値化を行い、第2の2値シンボルデータを出力する第2の2値化回路と、
    前記第2の2値シンボルデータに対して算術符号化を行い、前記入力信号に対する符号化データを生成し、出力する第2の算術符号化回路と
    を備えたことを特徴とする符号化装置。
  2. 前記量子化パラメータ算出回路は、
    前記第1の量子化パラメータ、前記第1の2値シンボルデータのシンボル量、及び前記シンボル量の上限値に基づいて第1のパラメータ候補を生成し、
    前記第1の量子化パラメータ、前記第1の符号化データの符号量、及び前記目標符号量に基づいて第2のパラメータ候補を生成し、
    前記第1及び第2のパラメータ候補を比較し、生成される符号化データの符号量がより小さくなる方のパラメータ候補を、前記第2の量子化パラメータに設定する、
    ことを特徴とする請求項1に記載の符号化装置。
  3. 前記量子化パラメータ発生回路は、複数の代表量子化パラメータを有し、その複数の代表量子化パラメータの中から一つの代表量子化パラメータを選択して、前記第1の量子化パラメータとする、ことを特徴とする請求項1に記載の符号化装置。
  4. 前記信号処理回路は、前記入力信号に対して所定の信号処理を行い、N個(Nは2以上の自然数)の信号を生成し、前記複数の代表量子化パラメータの数QはNの約数であり、
    前記量子化パラメータ発生回路は、前記信号処理回路から出力される連続したQ個の前記信号に対して、互いに異なるQ個の代表量子化パラメータを割り当てることで前記第1の量子化パラメータを生成する、ことを特徴とする請求項3に記載の符号化装置。
  5. 前記複数の代表量子化パラメータは量子化パラメータの最大値及び最小値を含むことを特徴とする請求項3記載の符号化装置。
  6. 前記信号処理回路は、映像信号を入力し、周波数成分に変換して係数データを生成し、出力する、ことを特徴とする請求項1記載の符号化装置。
  7. 前記信号処理回路は、映像の1フレームを複数ブロックに分割して得られるブロック毎に、そのブロックに含まれる画素及びそのブロックに隣接する画素に基づいて前記係数データを生成し、
    前記信号処理回路は、前記第1の量子化回路に入力される係数データの生成に用いる前記隣接画素は、入力された前記映像信号から抽出し、前記第2の量子化回路に入力される係数データの生成に用いる前記隣接画素は、前記第2の量子化データを逆量子化した後に前記周波数成分から逆変換した信号から抽出する
    ことを特徴とする請求項6に記載の符号化装置。
  8. 量子化パラメータ算出回路は、所定数のブロックにおいて前記第1の2値シンボルデータのシンボル量を同じ第1の量子化パラメータ毎に積算した結果と、所定数のブロックにおいて前記第1の符号化データの符号量を同じ第1の量子化パラメータ毎に積算した結果とを用いて、第2の量子化パラメータを生成する、ことを特徴とする請求項7記載の符号化装置。
  9. 入力信号を量子化し、符号化する方法であって、量子化により生成される2値シンボルのシンボル量に上限値が定められている符号化方法において、
    入力信号に対して所定の信号処理を行うステップと、
    第1の量子化パラメータを生成するステップと、
    前記所定の信号処理がなされた入力信号を、前記第1の量子化パラメータに基づき量子化して第1の量子化データを生成するステップと、
    前記第1の量子化データに対して2値化を行い、第1の2値シンボルデータを出力するステップと、
    前記第1の2値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第1の符号化データを生成するステップと、
    前記第1の2値シンボルデータのシンボル量、前記第1の符号化データの符号量、第2の量子化パラメータ、前記シンボル量の上限値、及び前記目標符号量に基づいて、第2の量子化パラメータを生成するステップと、
    前記第2の量子化パラメータに基づいて、前記所定の信号処理がなされた入力信号を量子化し、第2の量子化データを生成するステップと、
    前記第2の量子化データに対して2値化を行い、第2の2値シンボルデータを出力するステップと、
    前記第2の2値シンボルデータに対して算術符号化を行い、前記入力信号に対する符号化データを生成し、出力するステップと
    を含むことを特徴とする符号化方法。
JP2008546909A 2006-11-28 2007-10-16 符号化装置及び符号化方法 Active JP5231243B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008546909A JP5231243B2 (ja) 2006-11-28 2007-10-16 符号化装置及び符号化方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006319981 2006-11-28
JP2006319981 2006-11-28
PCT/JP2007/070156 WO2008065822A1 (en) 2006-11-28 2007-10-16 Encoding device and encoding method
JP2008546909A JP5231243B2 (ja) 2006-11-28 2007-10-16 符号化装置及び符号化方法

Publications (2)

Publication Number Publication Date
JPWO2008065822A1 true JPWO2008065822A1 (ja) 2010-03-04
JP5231243B2 JP5231243B2 (ja) 2013-07-10

Family

ID=39467621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008546909A Active JP5231243B2 (ja) 2006-11-28 2007-10-16 符号化装置及び符号化方法

Country Status (5)

Country Link
US (1) US8170359B2 (ja)
EP (1) EP2088784B1 (ja)
JP (1) JP5231243B2 (ja)
CN (1) CN101502122B (ja)
WO (1) WO2008065822A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5257215B2 (ja) * 2009-04-16 2013-08-07 ソニー株式会社 画像符号化装置と画像符号化方法
JP2011029954A (ja) * 2009-07-27 2011-02-10 Sony Corp 画像符号化装置と画像符号化方法
JPWO2011080851A1 (ja) * 2009-12-28 2013-05-09 パナソニック株式会社 画像符号化装置および集積回路
US9235774B2 (en) 2010-06-10 2016-01-12 Thomson Licensing Methods and apparatus for determining quantization parameter predictors from a plurality of neighboring quantization parameters
EP2830064A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for decoding and encoding an audio signal using adaptive spectral tile selection
EP3531700B1 (en) * 2016-10-18 2022-04-06 Panasonic Intellectual Property Management Co., Ltd. Image coding method, transmission method and image coding device
CN111052742A (zh) * 2017-09-30 2020-04-21 深圳市大疆创新科技有限公司 图像处理
CN114424549A (zh) * 2019-10-31 2022-04-29 株式会社索思未来 运动图像编码方法、编码处理方法、运动图像编码装置及编码处理装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2797159B2 (ja) * 1992-03-02 1998-09-17 カシオ計算機株式会社 画像データ圧縮装置及び画像データ圧縮方法
KR100381830B1 (ko) * 1995-03-09 2003-08-02 소니 가부시끼 가이샤 화상신호의부호화방법및그장치
WO1998020483A1 (fr) 1996-11-07 1998-05-14 Matsushita Electric Industrial Co., Ltd. Generateur de vecteur de source sonore, codeur et decodeur vocal
EP1755227B1 (en) 1997-10-22 2008-09-10 Matsushita Electric Industrial Co., Ltd. Multistage vector quantization for speech encoding
US6677869B2 (en) * 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
JP2002252770A (ja) * 2001-02-22 2002-09-06 Matsushita Graphic Communication Systems Inc 画像情報の分類方法,画像符号化方法および画像符号化装置
JP2003018593A (ja) 2001-06-29 2003-01-17 Matsushita Electric Ind Co Ltd 映像符号化方法及び装置、映像符号量割当て方法及び装置、並びに記録媒体
US6850175B1 (en) * 2003-09-18 2005-02-01 Ntt Docomo, Inc. Method and apparatus for arithmetic coding
EP3468043A1 (en) * 2002-09-20 2019-04-10 Ntt Docomo, Inc. Method and apparatus for arithmetic coding
JP2004135252A (ja) 2002-10-09 2004-04-30 Sony Corp 符号化処理方法、符号化装置及び復号化装置
JP4240283B2 (ja) * 2002-10-10 2009-03-18 ソニー株式会社 復号装置及び復号方法
JP2005151391A (ja) 2003-11-19 2005-06-09 Toshiba Corp 動画像符号化方法、動画像符号化装置およびプログラム
JP2005184232A (ja) 2003-12-17 2005-07-07 Sony Corp 符号化装置、プログラム、およびデータ処理方法
JP2005203905A (ja) 2004-01-13 2005-07-28 Sony Corp 画像符号化装置、画像符号化方法並びに画像符号化プログラム
JP4453398B2 (ja) * 2004-03-01 2010-04-21 ソニー株式会社 符号化装置、プログラム、および符号化処理方法
JP4227067B2 (ja) 2004-04-28 2009-02-18 株式会社東芝 動画像符号化方法と装置及びプログラム
US20060176953A1 (en) * 2005-02-04 2006-08-10 Nader Mohsenian Method and system for video encoding with rate control
JP2006319981A (ja) 2005-04-12 2006-11-24 Shigeki Tada 論理差分回路
US9667999B2 (en) * 2005-04-25 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for encoding video data

Also Published As

Publication number Publication date
EP2088784A1 (en) 2009-08-12
JP5231243B2 (ja) 2013-07-10
EP2088784A4 (en) 2011-09-07
US8170359B2 (en) 2012-05-01
US20090263036A1 (en) 2009-10-22
CN101502122B (zh) 2011-06-01
CN101502122A (zh) 2009-08-05
WO2008065822A1 (en) 2008-06-05
EP2088784B1 (en) 2016-07-06

Similar Documents

Publication Publication Date Title
US11463698B2 (en) Selection of the maximum dynamic range of transformed data and the data precision of transform matrices according to the bit depth of input data
JP4354520B2 (ja) 符号化装置
US10893273B2 (en) Data encoding and decoding
US11290751B2 (en) Data encoding and decoding
KR101356733B1 (ko) 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
US11290720B2 (en) Data encoding and decoding
US7884742B2 (en) System and method for efficient compression of digital data
US8718146B2 (en) Method, medium, and system encoding/decoding video data using bitrate adaptive binary arithmetic coding
JP5231243B2 (ja) 符号化装置及び符号化方法
US8780980B2 (en) Video image encoding device
US9544599B2 (en) Context adaptive data encoding
JP5116704B2 (ja) 画像符号化装置及び画像符号化方法
JP2009021775A (ja) 符号化装置及び符号化方法
JP2022539311A (ja) ピクチャのサブセクション用の独立したcabac
JP2007074337A (ja) 符号化装置及び符号化方法
GB2496210A (en) Context adaptive (CABAC) data encoding and decoding
JP5632328B2 (ja) 符号量予測装置及びプログラム
JP2022548685A (ja) 画像データの符号化及び復号化

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130321

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5231243

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150