JPWO2008065814A1 - 符号化装置 - Google Patents

符号化装置 Download PDF

Info

Publication number
JPWO2008065814A1
JPWO2008065814A1 JP2008546905A JP2008546905A JPWO2008065814A1 JP WO2008065814 A1 JPWO2008065814 A1 JP WO2008065814A1 JP 2008546905 A JP2008546905 A JP 2008546905A JP 2008546905 A JP2008546905 A JP 2008546905A JP WO2008065814 A1 JPWO2008065814 A1 JP WO2008065814A1
Authority
JP
Japan
Prior art keywords
code amount
circuit
encoding
quantization parameter
arithmetic
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
JP2008546905A
Other languages
English (en)
Other versions
JP4354520B2 (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
Application granted granted Critical
Publication of JP4354520B2 publication Critical patent/JP4354520B2/ja
Publication of JPWO2008065814A1 publication Critical patent/JPWO2008065814A1/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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

符号化装置は、入力信号から生成された、複数のコンテキストを持つ、多値データを2値シンボル列に変換する2値化回路(131)と、2値シンボル列から所定の符号化単位の予測符号量を算出する算術符号量概算回路(200)と、予測符号量に基づき入力信号に対する算術符号化を行う符号化回路(102)とを備える。算術符号量概算回路(200)は、2値シンボル列をコンテキストに基づいて複数のグループに分ける選択器(230)と、複数のグループに分けられた2値シンボル列を、少なくとも算術符号化における区間の幅に基づいてグループの予測符号量を算出する、複数の符号量概算回路(211〜214)と、全ての符号量概算回路からの予測符号量を加算して、所定の符号化単位の予測符号量を出力する加算器(231)とを有する。

Description

本発明は、符号化装置及び方法に関し、特に、算術符号化を適用した符号化装置及び方法に関する。
算術符号化は、情報源シンボルの発生確率に応じて情報量を理論限界まで可逆圧縮できる技術である。画像符号化の分野では、JPEG2000規格(ISO/IEC15444)、H.264/MPEG4−AVC規格(非特許文献1参照。以下「H.264規格」と称す。)等に採用されている。H.264規格においては、コンテキスト適応算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)として、シンタックスの確率特性に応じた効率の高い符号化を実現している。
H.264規格におけるコンテキスト適応算術符号化について、図22を用いて説明する。図22は、コンテキスト適応算術符号化回路を説明する図である。
図22においてコンテキスト適応算術符号化回路145は、2値化回路130、コンテキスト計算回路520、及び算術符号化回路140から構成される。以下、この回路の動作について説明する。
2値化回路130は変換係数データ、フラグ等の符号化情報からなる多値入力データに対して2値化を行う。2値化は、制御情報から、入力データの種類であるシンタックスエレメント(syntax element)を判別し、データの確率特性によって、表1に示すユーナリー・バイナライゼーション(unary binarization)や固定長バイナライゼーション(fixed−length binarization)等の方式を用いて行われる。
Figure 2008065814
表1に示すユーナリー・バイナライゼーションでは、多値入力データ0,1,2,3,4,5・・・を、それぞれ2値シンボル(Bin string)0,10,110,1110,11110,111110・・・に変換することで2値化を行っている。2値化された2値シンボル(バイナリ)列は、(2値)算術符号化回路140に入力される。ユーナリー・バイナライゼーションは、変換係数のレベルを示すcoeff_abs_level_minus1において、14以下の値を2値化するために用いられる。
コンテキスト計算回路520は、シンタックスエレメントを示す制御情報に基づいて、2値シンボル列における現在の1ビットを符号化するために用いるコンテキストインデックス(以下「ctxIdx」と称す。)の値をH.264規格で定められた表2より求める。
Figure 2008065814
表2より、ctxIdxは0から459までの460個の値を取りうる。1個のシンタックスエレメントに対して、スライスタイプによりctxIdxの選択が異なる。また、例えばスライスタイプIにおけるmb_field_decoding_flagのctxIdxが70−72となっているように、ctxIdxの値が複数個存在するシンタックスエレメントに対するctxIdxの値を決定するには、オフセット値ctxIdxOffset及び増分値ctxIdxIncの値に基づき、ctxIdx=ctxIdxOffset+ctxIdxIncの演算により求められる。ctxIdxOffsetは、表3(H.264規格の表より一部抜粋)に示すシンタックスエレメント固有の値であり、ctxIdxIncはシンタックスエレメント毎に決められた規則(H.264規格参照)によって複数の値から一意に決定される。mb_field_decoding_flagの場合、ctxIdxOffset=70であり、ctxIdxIncは条件に応じて0から2のいずれかの値が選択される。
コンテキスト計算回路520は、スライスの開始時に460個のctxIdxの値毎に図23に示す計算により発生確率情報を初期化して記憶する。発生確率情報とは、2値シンボルの0又は1のうち発生確率の高い方のシンボルを示すMPS(valMPS)と、発生確率を示すpState(pStateIdx)の組を含む。求められたctxIdxの値に対応した発生確率情報を「コンテキスト情報」と呼ぶ。
コンテキスト計算回路520は、コンテキスト情報を生成して算術符号化回路140に入力する。このように、算術符号化を行うシンタックスエレメントによって算術符号化回路140に入力されるシンボルの発生確率つまりコンテキスト情報が適応的に切り替わる。これにより、2値シンボルの発生確率が動的に変わる2値シンボル列に対して、最適な算術符号化が可能となる。ここで、一定区間の多値入力データを処理した際に発生した出力符号の総ビット長を「符号量」と呼ぶ。
算術符号化回路140の動作概念を、図24を用いて説明する。ctxIdxがある値で一定となっており、コンテキスト情報から得た発生確率が、シンボル0は0.75(2進数で0.11)、シンボル1は0.25であり、{0,0,0,1}のバイナリ列が入力された場合を考える。この場合、図24(a)に示すように、現在のコンテキスト情報は、発生確率の高い方のシンボルを示すMPS=0、発生確率pState=0.11で表される。実際のpStateIdxは、0から63の範囲を取るインデックス値で表現されるが、ここでは簡単のため2進数の確率値とする。コンテキスト情報は、今回の2値算術符号化により更新され、コンテキスト計算回路520に戻される。コンテキスト計算回路520では、対応するctxIdxの発生確率情報を更新する。この値は、次回に同じctxIdxの符号化が行われる時に再利用される。
図24(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ビットに圧縮されたことになる。
算術符号化回路140の実際の動作では、前記区間を有限語長で扱うため、区間の左端の値をcodILow(0.01010001等)、区間の幅をcodIRange(0.00011011等)として、codILow及びcodIRangeの値に応じて出力ビットを確定し、codIRange及びcodILowを1ビット左シフトして区間の分解能を上げるリノーマライゼーションと呼ぶ処理が行われる。実際の1ビットの算術符号化処理は図25及び図26のフローチャートに従って行われる。
図25は2値バイナリ(以下「Bin」と称す。)1個の入力に対する算術符号化処理(820)であり、変数の初期化(821)、BinがMPSであるかの判定(822)、MPSでない場合にはcodILow及びcodIRangeの更新(823)、pStateIdxの値の判定(824)、MPSの反転(825)、発生確率pStateIdxの更新(826、827)、リノーマライゼーション(830)から成る。図25はリノーマライゼーション830の処理を示している。
ところで、図25及び図26におけるcodIRange及びcodILowは内部状態変数であり、スライス先頭でのみ初期化される。図24に示した4ビットの入力値を符号化した直後にctxIdxが異なる入力値を符号化する場合でも、コンテキスト情報のみが変更され、codIRange及びcodILowは4ビット符号化した直後の値が用いられる。変換係数データを算術符号化する際には、輝度64係数のsignificant_coeff_flag、輝度64係数のcoeff_abs_level_minus1、色差DC成分のsignificant_coeff_flag、色差AC成分のcoeff_abs_level_minus1といったctxIdxの異なる多値入力データを連続して符号化するが、内部状態を初期化するのはスライス先頭のみであるため、これらを含む全てのシンタックスエレメントはスライス内では逐次符号化するしかなく、並列に処理できないことになる。
一方、動画像符号化においては、様々な特性を持つ入力画像を所定のビットレートに圧縮するため、各マクロブロックを符号化する際の量子化パラメータを適切に制御して、符号量制御を行う必要がある。符号量制御の精度を高めるためには、スライス、フレーム、GOP(Group Of Pictures)といった単位でパラメータを変更して繰り返し符号化を行うことが一般的である。繰り返し符号化には、主に符号量を予測するための仮符号化と、最終的な符号化の2種類の符号化が含まれる。
従来の仮符号化の方式は、最終的な符号化と同様、実際にエントロピー符号化を行うものと、エントロピー符号化を行わずに代替の演算を行うものとに大別される。従来の符号化装置において前者の方式は、エントロピー符号化に可変長符号化(Variable Length Coding)を用いる場合が一般的であった。しかし、近年、エントロピー符号化として算術符号化を用いる方式が提案されている。前述のように算術符号化はビット単位の符号化処理でありスライス内で逐次符号化するしかないため、算術符号化を仮符号化に適用すると、膨大な処理量が必要となってしまう。故にリアルタイム処理の必要とされる回路において、算術符号化を仮符号化に適用することは非常に困難である。
そのため、最終的な符号化において算術符号化を用いる場合の仮符号化の方式としては、後者の方式(エントロピー符号化の代替の演算を行う)が提案されている。例えば特許文献1は、算術符号化を行わず、入力2値シンボル量を出力符号量の予測値とすることで、最適な符号化モードを選択する際の処理量を削減する。また特許文献2のように関数を用いて予測する方式も提案されている。
特開2005−318296号公報 特開2005−203905号公報 ISO/IEC14496−10 Advanced video coding for generic audiovisual services
しかしながら、算術符号化を用いた符号化装置において、算術符号化を行わずに仮符号化を行う従来の方式では、符号量の予測を精度よく行うことができないという課題があった。
すなわち、前述の特許文献1で示された方式では、複数の符号化モード間の相対比較としてはある程度機能するが、算術符号化を行わないため符号量の予測値を適切に算出することはできない。また、特許文献2で示された方式では、算術符号化の演算とは全く異なるため、正確な符号量の予測が行えない。
本発明はこのような課題に鑑み、算術符号化を用いた符号化装置において、算術符号化の近似演算を行いながらも、回路での処理時間を大幅に削減した精度の高い符号量予測方式を提供することを目的とする。
本発明は、仮符号化において、2値シンボル列をコンテキストに基づき複数のグループに分け、各グループに分類された2値シンボル列に対して並列に算術符号量概算処理を行うことで予測符号量を求める。
より具体的には、本発明に係る符号化装置は、入力信号から、複数のコンテキストを持ち、所定の符号化単位(例えば、マクロブロック)の多値データを生成するブロック化回路と、ブロック化回路により生成された多値データを2値シンボル列に変換する2値化回路と、2値シンボル列から、前記符号化単位の予測符号量を算出する算術符号量概算回路と、予測符号量に基づいて、入力信号に対する算術符号化を行う符号化回路とを備える。算術符号量概算回路は、所定の符号化単位に含まれる前記2値シンボル列をコンテキストに基づいて複数のグループに分ける選択器と、グループ毎に用意された回路であって、複数のグループに分けられた2値シンボル列を、少なくとも算術符号化における区間の幅に基づいてグループの予測符号量を算出する、複数の符号量概算回路と、全ての符号量概算回路からの予測符号量を加算して、所定の符号化単位の予測符号量を出力する加算器とを有する。
本発明によれば、算術符号化を用いた符号化装置において、コンテキストに基づいて分けられた複数のグループに対する算術符号化の近似演算を並列に行うことが可能となり、算術符号化に近い演算を行いながらも算術符号化と比較して処理時間を大幅に削減できる。これにより動作周波数を低く抑えた回路を用いて高精度の符号量予測に基づく符号化装置を実現できる。また、高画質な映像符号化装置を提供することができる。
映像符号化装置の構成図 算術符号量概算回路の構成図 算術符号量概算回路での並列処理を説明した図 算術符号量概算回路が処理対象とするシンタックスエレメントを示す図 逐次処理での1ユニットの符号量概算処理を示すフローチャート ユニット初期化処理を示すフローチャート 1Binの符号量概算処理を示すフローチャート 1Binの符号量加算処理を示すフローチャート 1ユニットの微小符号量概算処理を示すフローチャート 小数符号量テーブルを説明する図 ユーナリー・バイナライゼーションの1ユニットの符号量概算処理を示す フローチャート ユニット内の全Binに対する符号量概算処理を示すフローチャート 整数符号量テーブルを説明する図 整数符号量テーブルの初期化を説明する図 バイパス時の1ユニットの符号量概算処理を示すフローチャート 算術符号量概算回路の予測精度を示す図 (a)1920×1080画素で構成される1フレームを示した図、(b)120×68マクロブロックで構成される1フレームを示す図 仮量子化パラメータの選択例を示す図 仮量子化パラメータの選択例を示す図 符号量積算メモリに蓄積されるデータ例を示す図 最適量子化パラメータの算出方法を説明するための図 従来のコンテキスト適応算術符号化回路を説明する図 発生確率情報の初期化を説明する図 算術符号化の概念を説明する図 1Binの入力に対する算術符号化処理を示すフローチャート リノーマライゼーション処理を示すフローチャート
符号の説明
100 映像符号化装置
101 第一の符号化回路
102 第二の符号化回路
111 量子化パラメータ発生回路
112 量子化パラメータ算出回路
121 第一の量子化回路
122 第二の量子化回路
124 逆量子化回路
131 第一の2値化回路
132 第二の2値化回路
142 算術符号化回路
151 フレームメモリ
152 予測モードメモリ
153 符号量積算メモリ
161 第一のブロック化回路
162 第二のブロック化回路
171 第一のイントラ予測生成回路
172 第二のイントラ予測生成回路
173 予測モード検出回路
181 第一のDCT回路
182 第二のDCT回路
184 逆DCT回路
191 映像信号入力
192 出力ビットストリーム/E
200 算術符号量概算回路
211〜214 算術符号量概算回路
230 選択器
231 加算器
以下、本発明の実施の形態について図面を参照しながら説明する。
1.映像符号化装置の構成
本実施の形態では、フレーム内で復号可能なイントラフレームを符号化対象として、動作周波数を低く抑えた回路を用いて高精度の符号量予測に基づく符号量制御を行う映像符号化装置について説明する。
図1に本発明の実施の形態による映像符号化装置の構成例を示す。図1において、映像符号化装置100は、仮符号化を行う第一の符号化回路101、最終的な符号化を行う第二の符号化回路102、フレームメモリ151、予測モードメモリ152、及び符号量積算メモリ153から構成される。
第一の符号化回路101は、入力信号をブロック化するための第一のブロック化回路161、予測モード検出回路173、第一のイントラ予測生成回路171、直交変換回路としての第一のDCT回路181、量子化パラメータ発生回路111、第一の量子化回路121、第一の2値化回路131、及び算術符号量概算回路200から構成される。
第二の符号化回路102は、第二のブロック化回路162、第二のイントラ予測生成回路172、第二のDCT回路182、量子化パラメータ算出回路112、第二の量子化回路122、第二の2値化回路132、算術符号化回路142、逆量子化回路124、及び逆DCT回路184から構成される。
以上のように構成された映像符号化装置について、以下その動作を説明する。
2.映像符号化装置の動作
映像符号化装置は映像信号191をフレーム単位で入力し、処理する。以下では、説明の便宜上、1フレームの映像信号に対する処理の流れについて説明する。
映像符号化装置100に1フレームのディジタル映像信号191が入力されると、第一の符号化回路101は、入力した1フレームのディジタル映像信号に対して仮符号化を行う。この仮符号化において、予測モード検出回路173により検出された予測モード値が予測モードメモリ152に、算術符号量概算回路200により出力された符号量が符号量積算メモリ153にそれぞれ格納される。
映像符号化装置100に入力されたディジタル映像信号191はフレームメモリ151に格納されて1フレーム以内の一定時間だけ遅延されて、第二の符号化回路102に出力される。第二の符号化回路102は1フレームのディジタル映像信号を符号化して得られたストリーム192を出力する。第二の符号化回路102での符号化においては、予測モードメモリ152に格納された予測モード値、及び符号量積算メモリ153に格納された符号量を入力して、同じフレームに対する符号化が行われる。以下、第一及び第二の符号化回路101、102それぞれの詳細な処理について説明する。
2.1 第一の符号化回路による仮符号化
第一の符号化回路101による仮符号化の処理を説明する。
ブロック化回路161は、ディジタル映像信号191を受け、1フレーム分の映像信号を16×16画素からなる複数のマクロブロックにブロック化する。マクロブロックは、後述するDCTやイントラ予測の単位となるブロックを複数個含む。
イントラ予測生成回路171は、16×16画素のマクロブロック毎に、入力されたディジタル映像信号の画素と、入力されたディジタル映像信号191の画像に隣接する画素とから、そのマクロブロックの各画素の値を種々の予測モードで予測(イントラ予測)する。なお、イントラ予測は、マクロブロック単位の代わりに、8×8画素ブロックや4×4画素ブロックの単位でも行われる。
予測モード検出回路173は入力したディジタル映像信号191から予測モード値の検出を行う。予測モード値には、フィールドマクロブロック復号フラグ(mb_field_decoding_flag)、輝度4×4イントラ予測モード(Intra4x4PredMode)、輝度8×8イントラ予測モード(Intra8x8PredMode)、色差イントラ予測モード(intra_chroma_pred_mode)が含まれる。検出された予測モード値は予測モードメモリ152に蓄積される。
入力されたディジタル映像信号191において符号化対象のマクロブロックの各画素値と、イントラ予測生成回路171により作成された、符号化対象のマクロブロックの画素予測値との差分値が計算されて、16×16画素の差分値のブロックが生成され、DCT回路181に出力される。このイントラ予測は、マクロブロック単位の代わりに、8×8画素ブロックや4×4画素ブロックの単位でも行われる。
DCT回路181は、差分値のブロックに対してDCT(離散コサイン変換)等の直交変換処理を行う。この処理は、通常4×4画素や8×8画素のブロック単位に行われ、周波数成分の係数データが出力される。係数データは量子化回路121に入力され、量子化パラメータ発生回路111により与えられた量子化パラメータにしたがい量子化される。量子化パラメータは、量子化パラメータ発生回路111により、複数のパラメータ候補の中から選択して決定される。
量子化回路121により量子化された係数データは2値化回路131にて2値化される。算術符号量概算回路200は、2値化された係数データから予測符号量を求め、出力する。算術符号量概算回路200の出力する予測符号量は、符号量積算メモリ153に記録される。
2.1.1 算術符号量概算回路の動作
算術符号量概算回路200は、算術符号化に近い演算を行うことで、マクロブロック単位毎に予測符号量すなわち算術符号化の符号量の概算値を求める。図2に算術符号量概算回路200の構成を示す。算術符号量概算回路200は、コンテキスト計算回路521、選択器230、第一ないし第四の符号量概算回路211〜214、及び加算器231により構成される。第一ないし第四の符号量概算回路211〜214は、スライスに対するコンテキストインデックス(ctxidx)の値に応じて選択される。
以上のように構成される算術符号量概算回路200について以下その動作を説明する。
多値入力データ501は、2値化回路130において2値シンボル(バイナリ)列503に変換される。2値化回路131は、図22におけるコンテキスト適応算術符号化回路145に含まれる2値化回路130と基本的には同じ回路であるが、2値シンボル列503は必ずしもシリアル出力でなくとも良く、パラレル出力としても良い。コンテキスト計算回路521は、多値入力データ501と同時に入力される制御情報502に基づいて、現在のコンテキストインデックス(ctxIdx)505を選択器230に出力する。選択器230は、コンテキストインデックス(ctxIdx)505に基づいて、現在の2値シンボル503を、第一ないし第四の符号量概算回路211〜214のいずれかに割り振る。第一及び第二の符号量概算回路211、212は輝度に関するデータを処理し、第三及び第四の符号量概算回路213、214は色差に関するデータを処理するように2値シンボルが割り振られる。
算術符号量概算回路200では、第一ないし第四の符号量概算回路211〜214において同時に符号量概算処理を実施するため、図3に示すように並列処理が可能となり、符号量概算のための処理時間を短縮できる。
コンテキストインデックス(ctxIdx)に基づく、2値シンボル503の、符号量概算回路211〜214への割り振り方について図4を参照してより具体的に説明する。
図4は、表1のresidual_block_cabac()に属するシンタックスエレメントに関して、ctxIdxと、割り振られる第一ないし第四の符号量概算回路211〜214との対応を説明した図である。同図より、例えばctxIdx=402であれば、輝度のsignificant_coeff_flagに属するので、第一の符号量概算回路211が選択される。なお、coeff_sign_flagは、算術符号化にてバイパスされるため表1には示されていないが、符号量概算回路ではバイパスとして扱い符号量の概算に用いられる。
以上のようにして各符号量概算回路211〜214により算出された符号量は、加算器231にて加算され、一定区間毎に予測符号量290として出力される。
各符号量概算回路211〜214で実行される処理は、図5、図11及び図15のそれぞれのフローチャートで示す3つの処理がある。図11に示す処理は、coeff_abs_level_minus1のように、2値化処理においてユーナリー・バイナライゼーションを用いるシンタックスエレメントに対して適用される。図5に示す処理は、図11に示す処理の適用対象でない通常のシンタックスエレメントに対して適用する逐次処理を示す。図15に示す処理は、前述したバイパスとして扱われた2値シンボル(以下「Bin」と称す。)を適用対象とする処理である。図5、図11及び図15のそれぞれの処理はユニット単位で実行される。ユニットとは、2値シンボル(Bin)の集合であり、通常ctxIdxの値が連続して同じとなるBinの集合に設定される。
(a)逐次処理による算術符号量概算処理
図5〜図9を参照し、逐次処理による符号量概算処理を説明する。図5は、逐次処理による1ユニットの符号量概算処理のフローチャートを示している。本符号量概算処理では、最初に(ユニットの開始時に)ユニット初期化処理(S11)を行い、次に1Binの符号量概算処理(S12)をユニットが終了するまで繰返し(S13)、最後に(ユニットの終了時に)1ユニットの微小符号量概算処理(S14)を行って終了する。
図6を参照し、上記ステップS11のユニット初期化処理の詳細を説明する。ユニット初期化処理では、区間の幅(codIRange)、ユニット符号量の整数部分(又は整数符号量)(codeLengthInt)、ユニット符号量の小数部分(又は小数符号量)(codeLengthFrac)をそれぞれ初期化する(S21)。ユニット符号量は、このように整数部分と小数部分に分かれており、小数の精度で符号量概算が行われる。codeLengthFracは、小数点以下を9ビット精度で表しており、0から511までの値を取り得る。
図7を参照し、上記ステップS12の1Binの符号量概算処理の詳細を説明する。1Binの符号量概算処理では、最初に変数の初期化(S31)を行う。次にBinがMPSであるかの判定を行う(S32)。MPSでない場合にはcodIRangeを更新し(S33)、pStateIdxの値を判定する(S34)。pStateIdxの値が0の場合、MPSの反転を行い(S35)、発生確率pStateIdxを更新する(S36)。ステップS32にてBinがMPSである場合には、pStateIdxの更新のみを行う(S37)。最後に1Binの符号量加算処理(S38)を行って処理を終了する。図7のフローチャートは、図25に示した算術符号化処理のフローチャートに準じており、ステップS33でcodILowを計算しない点と、図25のリノーマライゼーションのステップ(S830)の代わりに1Binの符号量加算処理(S38)を実施する点とが異なる。
図8を参照し、上記ステップS38の1Binの符号量加算処理の詳細を説明する。1Binの符号量加算処理では、codIRangeが0x100以上の値になるまで、codIRangeを1ビット左シフトしてユニット符号量の整数部分codeLengthIntを1加算する処理が繰り返される(S41、S42)。図8のフローチャートは、図26に示したリノーマライゼーションのフローチャートにおいて、codIRangeを操作する部分のみを抽出し、codIRangeの左シフト回数を符号量に加算する処理を加えたものに等しい。
図9を参照し、上記ステップS14の1ユニットの微小符号量概算処理の動作を説明する。図9に示す1ユニットの微小符号量概算処理では、ユニット符号量の小数部分codeLengthFracを、テーブル参照関数readTableCdFrac()によって求める(S51)。図10に、テーブル参照関数readTableCdFrac()を示す。小数符号量テーブルmTblは256個の定数から構成される(図10(a)参照)。小数符号量テーブルmTblは、関数initTableCdFrac()により初期化される(図10(b)参照)。小数符号量テーブルmTblは、mTbl[0]=511、mTbl[255]=1となる対数のテーブルである。codIRange=256の時にmTbl[0]=511となり、codIRange=511の時にmTbl[255]=1となる。概念的にはcodIRangeが512に近いほどMPSが相対的に多く出現していたので、小数符号量が短くなる。また、codIRangeが256に近いほどLPSが相対的に多く出現していたので、小数符号量が長くなる。この関係がinitTableCdFrac()内の式に示す対数のカーブにより高い精度で近似される。
(b)ユーナリー・バイナライゼーションを用いるシンタックスエレメントに対する符号量概算処理
図11を参照し、ユーナリー・バイナライゼーションを用いるシンタックスエレメントに対する符号量概算処理を説明する。
図11に示す、ユーナリー・バイナライゼーションの符号量概算処理では、最初にユニット初期化処理(S61)を行い、次にユニット内の全Binに対する符号量概算処理(S62)を行って、最後に1ユニットの微小符号量概算処理(S63)を行って終了する。図11に示す1ユニットの符号量概算処理は、図5で示した逐次処理の1ユニットの符号量概算処理と比較し1て、1Binの符号量概算処理(S12)のステップの繰り返し処理を、ユニット内の全Binに対する符号量概算処理(S62)で置換えたものである。
図11に示すユーナリー・バイナライゼーションの符号量概算処理を適用するシンタックスエレメントを、coeff_abs_level_minus1を例として用いて説明する。coeff_abs_level_minus1は、表1に示すBinの位置binIdxによりctxIdxが異なる。このため、binIdx=0を除いて1≦binIdx≦13の範囲のBinを1個のユニットとする。つまり、表1の「Value of syntax element」の欄が1以上14以下のものが対象となる。最大値が14となるのは、最大値binIdx=13が符号「1」で終わるトランケーテッド(Truncated)形式になっているためである。binIdx=1以降の符号「1」の数を変数run_lengthで表すと、run_lengthは0以上13以下の値を取る。なお、binIdx=14以上はバイパスとなるから、この例ではcoeff_abs_level_minus1の値が1以上となる全ての係数に対して、バイパス部分を除いてユーナリー・バイナライゼーションの符号量概算処理が適用される。
図12を参照し、上記ステップS62のユニット内の全Binに対する符号量概算処理の詳細を説明する。まず全Binに対する符号量の加算を行う(S71)。この処理は、ユニット符号量の整数部分codeLengthIntを、テーブル参照関数readTableCdInt()を用いて加算し、codIRangeをテーブル参照関数readTableRng()を用いて更新することで行われる。次に全Binに対するコンテキスト情報の更新を行う(S72)。この処理は、valMPSをテーブル参照関数readTableMps()を用いて更新し、pStateIdxをテーブル参照関数readTableState()を用いて更新することで行われる。
ここで、図13を参照し、各テーブル参照関数を説明する。図13に示すように、ビットの最大値が13であるため、MAX_RUN=13と定義している。テーブル参照関数:readTableCdInt()、readTableRng()、readTableMps()、readTableState()は、それぞれ整数符号量テーブル(mCdlIntTbl)、レンジテーブル(mRngTbl)、MPSテーブル(mMpsTbl)、pStateテーブル(mStateTbl)を参照して値を返す。これらのテーブルは、2値シンボル列の全ての符号パターンと全ての出現確率パターンを入力とする。
図14を参照し、各テーブルの初期化処理の詳細を説明する。初期化関数initTableCdInt()を、全てのrun_length、valMPS、pStateIdxに対して実行することで、整数符号量テーブル(mCdlIntTbl)、レンジテーブル(mRngTbl)、MPSテーブル(mMpsTbl)、pStateテーブル(mStateTbl)が全て初期化される。この初期化処理は、図5に示す逐次処理による1ユニットの符号量概算処理の演算に従っている。図14のProc1Bin(binVal,&valMPS,&pStateIdx)は、図5の1Binの符号量概算処理(S12)に対応しており、binVal、valMPS、pStateIdx、codIRangeに対して図7の処理と等価な処理が行われる。但し、図7の1Binの符号量加算処理(S38)は、図14内の2箇所のwhile処理にて行われる。以上により、全てのBinに対する符号量の整数部分が一括して計算可能な各テーブルが初期化される。
(c)バイパスとして扱われたBinに対する算術符号量概算処理
図15を参照し、バイパスとして扱われたBinに対する1ユニットの符号量概算処理の詳細を説明する。本符号量概算処理は、ユニット初期化処理(S81)を行った後、ユニットが終了するまでユニット符号量の整数部分codeLengthIntを1ずつ加算する(S82、S83)。つまり、本符号量概算処理は、1Binの符号量を単に1ビットの符号量としてカウントする。
図2に示す加算器231は、以上の図5、図11、図15に示す3つの符号量概算処理により得られたユニット符号量の概算値から予測符号量を以下のように計算する。
マクロブロックに含まれる全てのユニットに対して、全ての符号量概算回路211〜214から出力されたユニット符号量の整数部分(codeLengthInt)及びユニット符号量の小数部分(codeLengthFrac)をそれぞれ加算して、マクロブロックの予測符号量の整数部分(MBcodeLengthInt)、マクロブロックの予測符号量の小数部分(MBcodeLengthFrac)を計算する。最終的なマクロブロックの予測符号量MBcodeLengthは、次式で求められる。
MBcodeLength=MBcodeLengthInt+
(MBcodeLengthFrac>>9) (1)
次に、以上で説明した1ユニットの符号量概算処理(図5、図11、図15参照)が、ユニット毎に並列に処理可能である理由を説明する。
前述したようにコンテキスト適応型算術符号化を並列処理するための障害であった内部状態codIRange及びcodILowの2つに関して、codIRangeは図6に示すユニット初期化処理にてユニット毎に固定値に初期化されており、codILowは図5から図15に示した全体の処理の中に存在しない。よって各ユニットの符号量概算処理は、図3に示すように回路上で時間的に並列に実施することが可能となる。
また図11を参照して説明したように、1ユニットの符号量概算処理(ユーナリー・バイナライゼーション)は複数のBinを一括に処理可能である。これは一定範囲のユーナリー・バイナライゼーションの符号群と、全てのvalMPSと、全てのpStateIdxとの組合せに基づくテーブルを用意することで可能となる。
算術符号量概算回路200が高い精度でマクロブロックの符号量を近似するための条件について説明する。
その条件とは、図5、図11、図15に示す1ユニットの符号量概算処理を図2に示した第一から第四の符号量概算回路211〜214に適用した上で、図4に示したように符号量概算回路全体(#1〜#4の合計)で網羅するctxIdxによる発生符号量のマクロブロック全体の発生符号量に占める割合が、100%に近いことである。図4の例では、residual_block_cabac()に属するシンタックスエレメントの発生符号量がマクロブロック全体の発生符号量の100%に近いという前提で、符号量概算処理に用いるシンタックスエレメントを選定している。よって、これら以外のシンタックスエレメントの占める発生符号量が無視できない場合には、そのシンタックスエレメントも符号量概算処理の対象とする必要がある。
図16は、本実施形態による算術符号量概算回路200の予測符号量290の予測精度を示した図である。図16は、マクロブロック単位の予測符号量と算術符号化による発生符号量との誤差の割合を、1フレーム(8160マクロブロック)に渡りプロットしたものである。統計的性質の異なる4種類のフレーム(Sequence#1〜#4)に対して、平均0.47%、標準偏差1.55%の誤差であり、高い精度が得られている。
2.2 第二の符号化回路による最終的な符号化
図1における第二の符号化回路102の符号化の動作を説明する。第一の符号化回路101により1フレームの仮符号化が終了すると、フレームメモリ151に蓄積された1フレームの映像信号が、ブロック化回路162に入力される。符号化対象のマクロブロックの各画素値は、予測モードメモリ152から読み出した予測モード値に基づいてイントラ予測生成回路172が生成した画素予測値との差分値が計算される。差分値のブロックに対してDCT回路182にてDCTが行われ、周波数成分の係数データが出力される。係数データは量子化回路122に入力されて量子化される。この際の量子化パラメータは、量子化パラメータ算出回路112により算出される。量子化された係数データは2値化回路132にて2値シンボルに変換され、算術符号化回路142にて符号化されてビットストリーム192として出力される。
2.3 第一の符号化回路101での仮符号化における量子化パラメータの設定
第一の符号化回路101における仮符号化の具体例を、図17(a)に示すような1920×1080画素の1フレームの符号化においてスライス単位に最適な量子化パラメータを算出する例を用いて説明する。
図17(b)に示すように1920×1080画素のフレームは、16×16画素のマクロブロックが8160(=120×68)個で構成される。フレームを分割するスライスは、任意の連続したマクロブロックの集合として定義できるが、一例として1個のスライスが2040個のマクロブロックを含み、1フレームが4個のスライスで構成される場合を考える。この場合、N=Nmb=2040(=8160/4)と設定できる。
仮符号化の開始前に、第一の符号化回路101の量子化回路121で使用される仮量子化パラメータQP(n)を決定する。仮量子化パラメータは、マクロブロック毎に複数の候補の中から1つを選択して設定される。すなわち1個のマクロブロックに対する仮量子化パラメータQP(n)は、任意の異なるQ種類の代表量子化パラメータqp(x)(x=0,1,…,Q−1)から1個を選んで、当該マクロブロックの仮量子化パラメータQP(n)に設定することで決定できる。
例えば、「0」と「20」の2種類の代表量子化パラメータqp(x)={0,20}を与える場合を考える。ここで、F(x)={A,A,…,AQ−1}(Aは整数)の表記は、F(0)=A、F(1)=A、…F(Q−1)=AQ−1を意味するものとする。各マクロブロックの仮量子化パラメータは、各仮量子化パラメータの出現頻度が等しくなるように、2種類の代表量子化パラメータの中から選択する。この例では、半数のマクロブロックに量子化パラメータ「0」を、残り半数のマクロブロックに量子化パラメータ「20」を与える。また、仮量子化パラメータがスライス内で偏るのを防ぐため、スライス内に交互又はランダムに仮量子化パラメータを配置する。例えば、プログレッシブ走査においては、図18(a)に示すように通常のラスタスキャン順に交互に仮量子化パラメータを与え、インターレース走査では図18(b)に示すようにマクロブロックの対毎に交互に仮量子化パラメータを与えることができる。
仮符号化における代表量子化パラメータqp(x)の種類Qと、その値qp(x)(x=0,1,…,Q−1)の決定方法について、図19を用いて説明する。
量子化回路121で用いられる代表量子化パラメータの種類Qは、2040(1スライスに含まれるマクロブロック数)の約数とすることができる、又はインターレース走査用の符号化を行うため、マクロブロックを対にする場合は、その1/2である1020の約数とすることができる。このようにして代表量子化パラメータの種類Qを設定すれば、スライス内で任意の代表量子化パラメータが出現する回数を一定にできる。例えばプログレッシブの場合、Qとしては2040の約数である5、10、20が選択できる。それぞれのQの場合の、1個のスライス内における各代表量子化パラメータの出現回数は408回、204回、102回となる。
代表量子化パラメータqp(x)としては、エンコーダで選択できる量子化パラメータの範囲から異なる値をQ個選択する。この場合、最適な符号化のための符号量予測が行い易くなるように、それらの値を適度に分散させるのが好ましい。例えば、1スライスに含まれるマクロブロック数が2040で、エンコーダで選択できる量子化パラメータQPが0から51の範囲である場合、代表量子化パラメータqp1として、図19(a)に示すように、Q=10、qp(x)={0,4,8,12,16,22,28,34,42,51}を選択することができる。このとき、プログレッシブ方式の場合は、図19(b)に示すように仮量子化パラメータが適用され、インターレース方式の場合は、図19(c)に示すように仮量子化パラメータが割当られる。また、代表量子化パラメータには、量子化パラメータの最大値及び最小値が含まれるようにするのが好ましい。
第一の符号化回路101における仮符号化の結果として符号量積算メモリ153に蓄積されるデータについて説明する。仮符号化では、N=2040個のマクロブロックを含むスライス1個に対し、同じ代表量子化パラメータqp(x)を使用したマクロブロック毎に、算術符号量概算回路200から出力された予測符号量R(n)の総和を計算する。その総和をQP別予測符号量r(x)とし、符号量積算メモリ153に蓄積する。図20の例では、qp(x)={0,4,8,12,16,22,28,34,42,51}(x=0,1,…,9)の各々に対し、代表量子化パラメータ毎に予測符号量R(n)の総和を取ったQP別予測符号量r(x)={95626,82252,64451,48648,31785,19098,10373,5439,2259,1261}を符号量積算メモリ153に蓄積することになる。
2.4 第二の符号化回路での最終的な符号化における量子化パラメータの算出
第二の符号化回路102の量子化パラメータ算出回路112での最終的な符号化における最適量子化パラメータQP(n)の算出方法を、図21の具体例を用いて説明する。ここで、ビットレート、フレームレート、フレームの複雑度、スライスの符号化タイプなどの情報を用いて割り当てたスライスの目標符号量T=300000ビットを仮定する。
代表量子化パラメータqp(x)とQP別予測符号量r(x)から、量子化パラメータQPとスライス予測符号量の関係を図21のように座標軸にプロットすることができる。r(x)は、各x=QPに対して204個ずつのマクロブロックの予測符号量の総和になっているから、各QPに対するスライス予測符号量は、r(x)を10倍することで求められる。また、プロットしたスライス予測符号量を線形補間して全てのQP値(0≦QP≦51)に対するスライス予測符号量のグラフを作成することができる。スライスの目標符号量T=300000と、このグラフとの交点を求めることで、目標符号量を発生するのに最適な量子化パラメータQPoptを求めることができる。QPoptの算出は、線形補間により、式(2)で求められる。
QPopt=q+{QP(q+1)−QP(q)}×{Q*r(q)−T}/
{Q×r(q)−Q×r(q+1)} (2)
但し、qは0≦q≦Q−1の整数であり、Q×r(q+1)≦T≦Q×r(q)を満たす値とする。ここでは、1スライスを通じて1つの最適量子化パラメータを使用することとしている。また、すべてのqに対しT>Q×r(q)となる場合はq=0、すべてのqに対しT<Q×r(q)となる場合はq=Q−1とする。
スライスの目標符号量T=300000ビットであるので、式(2)を用いて、QPoptは16.84となる。
QPopt=16+(22−16)×(317850−300000)/
(317850−190980)≒16.84
量子化パラメータは整数であるので、17を最適量子化パラメータQPoptとする。また、小数点以下の値によっては小さい側の値16を選択する場合もある。
以上のようにして最適量子化パラメータQP(n)=QPoptを算出できる。また、QPoptをN個のマクロブロックの符号化に対する初期値として用い、それ以降の量子化パラメータは動的に変更することも可能である。
以上説明したように、本実施形態による算術符号量概算回路200を用いて、映像符号化装置における出力ビットストリーム192を得ることができる。
以上では、表2のresidual_block_cabac()に含まれるシンタックスエレメントを対象として算術符号量概算回路200を構成する例を示したが、mb_pred()やmacroblock_layer()など他の全てのシンタックスエレメントを対象としてもよい。この場合、基本的には図4に示す、対象とするctxIdxの範囲を拡張すればよい。
3.変形例
本実施の形態では、イントラフレームのみを符号化対象として算術符号量概算回路200を構成する例を説明したが、フレーム間予測を用いるPフレームやBフレームを符号化対象とする場合でも、適用可能である。PフレームやBフレームでは動きベクトルに必要となる符号量が多くなるため、表2のmb_pred()やsub_mb_pred()に含まれるシンタックスエレメントを処理対象に加えれば良い。
本実施の形態では、図2に示すように4個の符号量概算回路を用いる例を説明したが、符号量概算回路の数は任意にできるのは明らかである。また、ユーナリー・バイナライゼーションを例にとってBinの逐次処理を行わずに一括処理できる例を説明したが、本実施の形態の思想が、ユーナリー・バイナライゼーション以外の2値化方法にも適用できることは明らかである。整数部のテーブルと小数部のテーブルを分けて説明したが、codIRangeの値に基づいてテーブルを統合することも可能である。
本実施の形態では、Nをスライス単位に含まれるマクロブロック数に設定した。しかし、より小さい単位で仮符号化と符号化を行うことで算術符号量概算回路200から予測符号量R(n)を得て、その結果を仮量子化パラメータの選択に反映するような場合は、Nの値を、符号化単位に合わせた小さい値に設定してもよい。また、Nを固定値として説明したが、Nをフレーム単位又はその他の単位で動的に変化させることも可能である。また、スライス予測符号量のグラフを線形補間して求める例を示したが、スプライン補間等、高度な数値補間も可能である。
本実施の形態では仮符号化を1回のみ行う例を示したが、リアルタイムの符号化が必要でない場合や、仮符号化をパイプライン化又は並列化することにより一定の遅延で多くの処理が行える場合には、仮符号化を何回行っても良い。
本実施の形態を用いて符号化したビットストリームは、テープ、光ディスク、磁気ディスク、半導体メモリといった記録媒体に記録して、再配布可能な形式にすることができる。
4.まとめ
以上のように本実施形態によれば、2値シンボル列のコンテキストに応じて設けられた複数の概算処理回路を並列動作させることで、コンテキストに基づいて分けられた複数のグループに対する算術符号化の近似演算を並列に行うことが可能とする。2値シンボル列に対する算術符号化の符号量の概算値を求める。これにより、算術符号化に近い演算を行いながらも正規の算術符号化と比較して処理時間を大幅に削減でき、よって、動作周波数を低く抑えた回路を用いて高精度の符号量予測に基づく符号化装置を実現できる。そのような符号化装置を用いて高画質な映像符号化装置を提供することができる。
本発明によれば、動作周波数を低く抑えた回路を用いて高精度の符号量予測に基づく、高画質な符号化装置を実現できるため、カメラレコーダや録画装置など小さい回路規模でリアルタイム動作が必要な記録装置にも有効である。
本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の開示に限定されず、添付の請求の範囲によってのみ限定され得る。なお、本出願は日本国特許出願、特願2006−323384号(2006年11月30日提出)に関連し、それらの内容は参照することにより本文中に組み入れられる。
本発明は、符号化装置及び方法に関し、特に、算術符号化を適用した符号化装置及び方法に関する。
算術符号化は、情報源シンボルの発生確率に応じて情報量を理論限界まで可逆圧縮できる技術である。画像符号化の分野では、JPEG2000規格(ISO/IEC15444)、H.264/MPEG4−AVC規格(非特許文献1参照。以下「H.264規格」と称す。)等に採用されている。H.264規格においては、コンテキスト適応算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)として、シンタックスの確率特性に応じた効率の高い符号化を実現している。
H.264規格におけるコンテキスト適応算術符号化について、図22を用いて説明する。図22は、コンテキスト適応算術符号化回路を説明する図である。
図22においてコンテキスト適応算術符号化回路145は、2値化回路130、コンテキスト計算回路520、及び算術符号化回路140から構成される。以下、この回路の動作について説明する。
2値化回路130は変換係数データ、フラグ等の符号化情報からなる多値入力データに対して2値化を行う。2値化は、制御情報から、入力データの種類であるシンタックスエレメント(syntax element)を判別し、データの確率特性によって、表1に示すユーナリー・バイナライゼーション(unary binarization)や固定長バイナライゼーション(fixed−length binarization)等の方式を用いて行われる。
Figure 2008065814
表1に示すユーナリー・バイナライゼーションでは、多値入力データ0,1,2,3,4,5・・・を、それぞれ2値シンボル(Bin string)0,10,110,1110,11110,111110・・・に変換することで2値化を行っている。2値化された2値シンボル(バイナリ)列は、(2値)算術符号化回路140に入力される。ユーナリー・バイナライゼーションは、変換係数のレベルを示すcoeff_abs_level_minus1において、14以下の値を2値化するために用いられる。
コンテキスト計算回路520は、シンタックスエレメントを示す制御情報に基づいて、2値シンボル列における現在の1ビットを符号化するために用いるコンテキストインデックス(以下「ctxIdx」と称す。)の値をH.264規格で定められた表2より求める。
Figure 2008065814
表2より、ctxIdxは0から459までの460個の値を取りうる。1個のシンタックスエレメントに対して、スライスタイプによりctxIdxの選択が異なる。また、例えばスライスタイプIにおけるmb_field_decoding_flagのctxIdxが70−72となっているように、ctxIdxの値が複数個存在するシンタックスエレメントに対するctxIdxの値を決定するには、オフセット値ctxIdxOffset及び増分値ctxIdxIncの値に基づき、ctxIdx=ctxIdxOffset+ctxIdxIncの演算により求められる。ctxIdxOffsetは、表3(H.264規格の表より一部抜粋)に示すシンタックスエレメント固有の値であり、ctxIdxIncはシンタックスエレメント毎に決められた規則(H.264規格参照)によって複数の値から一意に決定される。mb_field_decoding_flagの場合、ctxIdxOffset=70であり、ctxIdxIncは条件に応じて0から2のいずれかの値が選択される。
コンテキスト計算回路520は、スライスの開始時に460個のctxIdxの値毎に図23に示す計算により発生確率情報を初期化して記憶する。発生確率情報とは、2値シンボルの0又は1のうち発生確率の高い方のシンボルを示すMPS(valMPS)と、発生確率を示すpState(pStateIdx)の組を含む。求められたctxIdxの値に対応した発生確率情報を「コンテキスト情報」と呼ぶ。
コンテキスト計算回路520は、コンテキスト情報を生成して算術符号化回路140に入力する。このように、算術符号化を行うシンタックスエレメントによって算術符号化回路140に入力されるシンボルの発生確率つまりコンテキスト情報が適応的に切り替わる。これにより、2値シンボルの発生確率が動的に変わる2値シンボル列に対して、最適な算術符号化が可能となる。ここで、一定区間の多値入力データを処理した際に発生した出力符号の総ビット長を「符号量」と呼ぶ。
算術符号化回路140の動作概念を、図24を用いて説明する。ctxIdxがある値で一定となっており、コンテキスト情報から得た発生確率が、シンボル0は0.75(2進数で0.11)、シンボル1は0.25であり、{0,0,0,1}のバイナリ列が入力された場合を考える。この場合、図24(a)に示すように、現在のコンテキスト情報は、発生確率の高い方のシンボルを示すMPS=0、発生確率pState=0.11で表される。実際のpStateIdxは、0から63の範囲を取るインデックス値で表現されるが、ここでは簡単のため2進数の確率値とする。コンテキスト情報は、今回の2値算術符号化により更新され、コンテキスト計算回路520に戻される。コンテキスト計算回路520では、対応するctxIdxの発生確率情報を更新する。この値は、次回に同じctxIdxの符号化が行われる時に再利用される。
図24(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ビットに圧縮されたことになる。
算術符号化回路140の実際の動作では、前記区間を有限語長で扱うため、区間の左端の値をcodILow(0.01010001等)、区間の幅をcodIRange(0.00011011等)として、codILow及びcodIRangeの値に応じて出力ビットを確定し、codIRange及びcodILowを1ビット左シフトして区間の分解能を上げるリノーマライゼーションと呼ぶ処理が行われる。実際の1ビットの算術符号化処理は図25及び図26のフローチャートに従って行われる。
図25は2値バイナリ(以下「Bin」と称す。)1個の入力に対する算術符号化処理(820)であり、変数の初期化(821)、BinがMPSであるかの判定(822)、MPSでない場合にはcodILow及びcodIRangeの更新(823)、pStateIdxの値の判定(824)、MPSの反転(825)、発生確率pStateIdxの更新(826、827)、リノーマライゼーション(830)から成る。図25はリノーマライゼーション830の処理を示している。
ところで、図25及び図26におけるcodIRange及びcodILowは内部状態変数であり、スライス先頭でのみ初期化される。図24に示した4ビットの入力値を符号化した直後にctxIdxが異なる入力値を符号化する場合でも、コンテキスト情報のみが変更され、codIRange及びcodILowは4ビット符号化した直後の値が用いられる。変換係数データを算術符号化する際には、輝度64係数のsignificant_coeff_flag、輝度64係数のcoeff_abs_level_minus1、色差DC成分のsignificant_coeff_flag、色差AC成分のcoeff_abs_level_minus1といったctxIdxの異なる多値入力データを連続して符号化するが、内部状態を初期化するのはスライス先頭のみであるため、これらを含む全てのシンタックスエレメントはスライス内では逐次符号化するしかなく、並列に処理できないことになる。
一方、動画像符号化においては、様々な特性を持つ入力画像を所定のビットレートに圧縮するため、各マクロブロックを符号化する際の量子化パラメータを適切に制御して、符号量制御を行う必要がある。符号量制御の精度を高めるためには、スライス、フレーム、GOP(Group Of Pictures)といった単位でパラメータを変更して繰り返し符号化を行うことが一般的である。繰り返し符号化には、主に符号量を予測するための仮符号化と、最終的な符号化の2種類の符号化が含まれる。
従来の仮符号化の方式は、最終的な符号化と同様、実際にエントロピー符号化を行うものと、エントロピー符号化を行わずに代替の演算を行うものとに大別される。従来の符号化装置において前者の方式は、エントロピー符号化に可変長符号化(Variable Length Coding)を用いる場合が一般的であった。しかし、近年、エントロピー符号化として算術符号化を用いる方式が提案されている。前述のように算術符号化はビット単位の符号化処理でありスライス内で逐次符号化するしかないため、算術符号化を仮符号化に適用すると、膨大な処理量が必要となってしまう。故にリアルタイム処理の必要とされる回路において、算術符号化を仮符号化に適用することは非常に困難である。
そのため、最終的な符号化において算術符号化を用いる場合の仮符号化の方式としては、後者の方式(エントロピー符号化の代替の演算を行う)が提案されている。例えば特許文献1は、算術符号化を行わず、入力2値シンボル量を出力符号量の予測値とすることで、最適な符号化モードを選択する際の処理量を削減する。また特許文献2のように関数を用いて予測する方式も提案されている。
特開2005−318296号公報 特開2005−203905号公報 ISO/IEC14496−10 Advanced video coding for generic audiovisual services
しかしながら、算術符号化を用いた符号化装置において、算術符号化を行わずに仮符号化を行う従来の方式では、符号量の予測を精度よく行うことができないという課題があった。
すなわち、前述の特許文献1で示された方式では、複数の符号化モード間の相対比較としてはある程度機能するが、算術符号化を行わないため符号量の予測値を適切に算出することはできない。また、特許文献2で示された方式では、算術符号化の演算とは全く異なるため、正確な符号量の予測が行えない。
本発明はこのような課題に鑑み、算術符号化を用いた符号化装置において、算術符号化の近似演算を行いながらも、回路での処理時間を大幅に削減した精度の高い符号量予測方式を提供することを目的とする。
本発明は、仮符号化において、2値シンボル列をコンテキストに基づき複数のグループに分け、各グループに分類された2値シンボル列に対して並列に算術符号量概算処理を行うことで予測符号量を求める。
より具体的には、本発明に係る符号化装置は、入力信号から、複数のコンテキストを持ち、所定の符号化単位(例えば、マクロブロック)の多値データを生成するブロック化回路と、ブロック化回路により生成された多値データを2値シンボル列に変換する2値化回路と、2値シンボル列から、前記符号化単位の予測符号量を算出する算術符号量概算回路と、予測符号量に基づいて、入力信号に対する算術符号化を行う符号化回路とを備える。算術符号量概算回路は、所定の符号化単位に含まれる前記2値シンボル列をコンテキストに基づいて複数のグループに分ける選択器と、グループ毎に用意された回路であって、複数のグループに分けられた2値シンボル列を、少なくとも算術符号化における区間の幅に基づいてグループの予測符号量を算出する、複数の符号量概算回路と、全ての符号量概算回路からの予測符号量を加算して、所定の符号化単位の予測符号量を出力する加算器とを有する。
本発明によれば、算術符号化を用いた符号化装置において、コンテキストに基づいて分けられた複数のグループに対する算術符号化の近似演算を並列に行うことが可能となり、算術符号化に近い演算を行いながらも算術符号化と比較して処理時間を大幅に削減できる。これにより動作周波数を低く抑えた回路を用いて高精度の符号量予測に基づく符号化装置を実現できる。また、高画質な映像符号化装置を提供することができる。
以下、本発明の実施の形態について図面を参照しながら説明する。
1.映像符号化装置の構成
本実施の形態では、フレーム内で復号可能なイントラフレームを符号化対象として、動作周波数を低く抑えた回路を用いて高精度の符号量予測に基づく符号量制御を行う映像符号化装置について説明する。
図1に本発明の実施の形態による映像符号化装置の構成例を示す。図1において、映像符号化装置100は、仮符号化を行う第一の符号化回路101、最終的な符号化を行う第二の符号化回路102、フレームメモリ151、予測モードメモリ152、及び符号量積算メモリ153から構成される。
第一の符号化回路101は、入力信号をブロック化するための第一のブロック化回路161、予測モード検出回路173、第一のイントラ予測生成回路171、直交変換回路としての第一のDCT回路181、量子化パラメータ発生回路111、第一の量子化回路121、第一の2値化回路131、及び算術符号量概算回路200から構成される。
第二の符号化回路102は、第二のブロック化回路162、第二のイントラ予測生成回路172、第二のDCT回路182、量子化パラメータ算出回路112、第二の量子化回路122、第二の2値化回路132、算術符号化回路142、逆量子化回路124、及び逆DCT回路184から構成される。
以上のように構成された映像符号化装置について、以下その動作を説明する。
2.映像符号化装置の動作
映像符号化装置は映像信号191をフレーム単位で入力し、処理する。以下では、説明の便宜上、1フレームの映像信号に対する処理の流れについて説明する。
映像符号化装置100に1フレームのディジタル映像信号191が入力されると、第一の符号化回路101は、入力した1フレームのディジタル映像信号に対して仮符号化を行う。この仮符号化において、予測モード検出回路173により検出された予測モード値が予測モードメモリ152に、算術符号量概算回路200により出力された符号量が符号量積算メモリ153にそれぞれ格納される。
映像符号化装置100に入力されたディジタル映像信号191はフレームメモリ151に格納されて1フレーム以内の一定時間だけ遅延されて、第二の符号化回路102に出力される。第二の符号化回路102は1フレームのディジタル映像信号を符号化して得られたストリーム192を出力する。第二の符号化回路102での符号化においては、予測モードメモリ152に格納された予測モード値、及び符号量積算メモリ153に格納された符号量を入力して、同じフレームに対する符号化が行われる。以下、第一及び第二の符号化回路101、102それぞれの詳細な処理について説明する。
2.1 第一の符号化回路による仮符号化
第一の符号化回路101による仮符号化の処理を説明する。
ブロック化回路161は、ディジタル映像信号191を受け、1フレーム分の映像信号を16×16画素からなる複数のマクロブロックにブロック化する。マクロブロックは、後述するDCTやイントラ予測の単位となるブロックを複数個含む。
イントラ予測生成回路171は、16×16画素のマクロブロック毎に、入力されたディジタル映像信号の画素と、入力されたディジタル映像信号191の画像に隣接する画素とから、そのマクロブロックの各画素の値を種々の予測モードで予測(イントラ予測)する。なお、イントラ予測は、マクロブロック単位の代わりに、8×8画素ブロックや4×4画素ブロックの単位でも行われる。
予測モード検出回路173は入力したディジタル映像信号191から予測モード値の検出を行う。予測モード値には、フィールドマクロブロック復号フラグ(mb_field_decoding_flag)、輝度4×4イントラ予測モード(Intra4x4PredMode)、輝度8×8イントラ予測モード(Intra8x8PredMode)、色差イントラ予測モード(intra_chroma_pred_mode)が含まれる。検出された予測モード値は予測モードメモリ152に蓄積される。
入力されたディジタル映像信号191において符号化対象のマクロブロックの各画素値と、イントラ予測生成回路171により作成された、符号化対象のマクロブロックの画素予測値との差分値が計算されて、16×16画素の差分値のブロックが生成され、DCT回路181に出力される。このイントラ予測は、マクロブロック単位の代わりに、8×8画素ブロックや4×4画素ブロックの単位でも行われる。
DCT回路181は、差分値のブロックに対してDCT(離散コサイン変換)等の直交変換処理を行う。この処理は、通常4×4画素や8×8画素のブロック単位に行われ、周波数成分の係数データが出力される。係数データは量子化回路121に入力され、量子化パラメータ発生回路111により与えられた量子化パラメータにしたがい量子化される。量子化パラメータは、量子化パラメータ発生回路111により、複数のパラメータ候補の中から選択して決定される。
量子化回路121により量子化された係数データは2値化回路131にて2値化される。算術符号量概算回路200は、2値化された係数データから予測符号量を求め、出力する。算術符号量概算回路200の出力する予測符号量は、符号量積算メモリ153に記録される。
2.1.1 算術符号量概算回路の動作
算術符号量概算回路200は、算術符号化に近い演算を行うことで、マクロブロック単位毎に予測符号量すなわち算術符号化の符号量の概算値を求める。図2に算術符号量概算回路200の構成を示す。算術符号量概算回路200は、コンテキスト計算回路521、選択器230、第一ないし第四の符号量概算回路211〜214、及び加算器231により構成される。第一ないし第四の符号量概算回路211〜214は、スライスに対するコンテキストインデックス(ctxidx)の値に応じて選択される。
以上のように構成される算術符号量概算回路200について以下その動作を説明する。
多値入力データ501は、2値化回路130において2値シンボル(バイナリ)列503に変換される。2値化回路131は、図22におけるコンテキスト適応算術符号化回路145に含まれる2値化回路130と基本的には同じ回路であるが、2値シンボル列503は必ずしもシリアル出力でなくとも良く、パラレル出力としても良い。コンテキスト計算回路521は、多値入力データ501と同時に入力される制御情報502に基づいて、現在のコンテキストインデックス(ctxIdx)505を選択器230に出力する。選択器230は、コンテキストインデックス(ctxIdx)505に基づいて、現在の2値シンボル503を、第一ないし第四の符号量概算回路211〜214のいずれかに割り振る。第一及び第二の符号量概算回路211、212は輝度に関するデータを処理し、第三及び第四の符号量概算回路213、214は色差に関するデータを処理するように2値シンボルが割り振られる。
算術符号量概算回路200では、第一ないし第四の符号量概算回路211〜214において同時に符号量概算処理を実施するため、図3に示すように並列処理が可能となり、符号量概算のための処理時間を短縮できる。
コンテキストインデックス(ctxIdx)に基づく、2値シンボル503の、符号量概算回路211〜214への割り振り方について図4を参照してより具体的に説明する。
図4は、表1のresidual_block_cabac()に属するシンタックスエレメントに関して、ctxIdxと、割り振られる第一ないし第四の符号量概算回路211〜214との対応を説明した図である。同図より、例えばctxIdx=402であれば、輝度のsignificant_coeff_flagに属するので、第一の符号量概算回路211が選択される。なお、coeff_sign_flagは、算術符号化にてバイパスされるため表1には示されていないが、符号量概算回路ではバイパスとして扱い符号量の概算に用いられる。
以上のようにして各符号量概算回路211〜214により算出された符号量は、加算器231にて加算され、一定区間毎に予測符号量290として出力される。
各符号量概算回路211〜214で実行される処理は、図5、図11及び図15のそれぞれのフローチャートで示す3つの処理がある。図11に示す処理は、coeff_abs_level_minus1のように、2値化処理においてユーナリー・バイナライゼーションを用いるシンタックスエレメントに対して適用される。図5に示す処理は、図11に示す処理の適用対象でない通常のシンタックスエレメントに対して適用する逐次処理を示す。図15に示す処理は、前述したバイパスとして扱われた2値シンボル(以下「Bin」と称す。)を適用対象とする処理である。図5、図11及び図15のそれぞれの処理はユニット単位で実行される。ユニットとは、2値シンボル(Bin)の集合であり、通常ctxIdxの値が連続して同じとなるBinの集合に設定される。
(a)逐次処理による算術符号量概算処理
図5〜図9を参照し、逐次処理による符号量概算処理を説明する。図5は、逐次処理による1ユニットの符号量概算処理のフローチャートを示している。本符号量概算処理では、最初に(ユニットの開始時に)ユニット初期化処理(S11)を行い、次に1Binの符号量概算処理(S12)をユニットが終了するまで繰返し(S13)、最後に(ユニットの終了時に)1ユニットの微小符号量概算処理(S14)を行って終了する。
図6を参照し、上記ステップS11のユニット初期化処理の詳細を説明する。ユニット初期化処理では、区間の幅(codIRange)、ユニット符号量の整数部分(又は整数符号量)(codeLengthInt)、ユニット符号量の小数部分(又は小数符号量)(codeLengthFrac)をそれぞれ初期化する(S21)。ユニット符号量は、このように整数部分と小数部分に分かれており、小数の精度で符号量概算が行われる。codeLengthFracは、小数点以下を9ビット精度で表しており、0から511までの値を取り得る。
図7を参照し、上記ステップS12の1Binの符号量概算処理の詳細を説明する。1Binの符号量概算処理では、最初に変数の初期化(S31)を行う。次にBinがMPSであるかの判定を行う(S32)。MPSでない場合にはcodIRangeを更新し(S33)、pStateIdxの値を判定する(S34)。pStateIdxの値が0の場合、MPSの反転を行い(S35)、発生確率pStateIdxを更新する(S36)。ステップS32にてBinがMPSである場合には、pStateIdxの更新のみを行う(S37)。最後に1Binの符号量加算処理(S38)を行って処理を終了する。図7のフローチャートは、図25に示した算術符号化処理のフローチャートに準じており、ステップS33でcodILowを計算しない点と、図25のリノーマライゼーションのステップ(S830)の代わりに1Binの符号量加算処理(S38)を実施する点とが異なる。
図8を参照し、上記ステップS38の1Binの符号量加算処理の詳細を説明する。1Binの符号量加算処理では、codIRangeが0x100以上の値になるまで、codIRangeを1ビット左シフトしてユニット符号量の整数部分codeLengthIntを1加算する処理が繰り返される(S41、S42)。図8のフローチャートは、図26に示したリノーマライゼーションのフローチャートにおいて、codIRangeを操作する部分のみを抽出し、codIRangeの左シフト回数を符号量に加算する処理を加えたものに等しい。
図9を参照し、上記ステップS14の1ユニットの微小符号量概算処理の動作を説明する。図9に示す1ユニットの微小符号量概算処理では、ユニット符号量の小数部分codeLengthFracを、テーブル参照関数readTableCdFrac()によって求める(S51)。図10に、テーブル参照関数readTableCdFrac()を示す。小数符号量テーブルmTblは256個の定数から構成される(図10(a)参照)。小数符号量テーブルmTblは、関数initTableCdFrac()により初期化される(図10(b)参照)。小数符号量テーブルmTblは、mTbl[0]=511、mTbl[255]=1となる対数のテーブルである。codIRange=256の時にmTbl[0]=511となり、codIRange=511の時にmTbl[255]=1となる。概念的にはcodIRangeが512に近いほどMPSが相対的に多く出現していたので、小数符号量が短くなる。また、codIRangeが256に近いほどLPSが相対的に多く出現していたので、小数符号量が長くなる。この関係がinitTableCdFrac()内の式に示す対数のカーブにより高い精度で近似される。
(b)ユーナリー・バイナライゼーションを用いるシンタックスエレメントに対する符号量概算処理
図11を参照し、ユーナリー・バイナライゼーションを用いるシンタックスエレメントに対する符号量概算処理を説明する。
図11に示す、ユーナリー・バイナライゼーションの符号量概算処理では、最初にユニット初期化処理(S61)を行い、次にユニット内の全Binに対する符号量概算処理(S62)を行って、最後に1ユニットの微小符号量概算処理(S63)を行って終了する。図11に示す1ユニットの符号量概算処理は、図5で示した逐次処理の1ユニットの符号量概算処理と比較し1て、1Binの符号量概算処理(S12)のステップの繰り返し処理を、ユニット内の全Binに対する符号量概算処理(S62)で置換えたものである。
図11に示すユーナリー・バイナライゼーションの符号量概算処理を適用するシンタックスエレメントを、coeff_abs_level_minus1を例として用いて説明する。coeff_abs_level_minus1は、表1に示すBinの位置binIdxによりctxIdxが異なる。このため、binIdx=0を除いて1≦binIdx≦13の範囲のBinを1個のユニットとする。つまり、表1の「Value of syntax element」の欄が1以上14以下のものが対象となる。最大値が14となるのは、最大値binIdx=13が符号「1」で終わるトランケーテッド(Truncated)形式になっているためである。binIdx=1以降の符号「1」の数を変数run_lengthで表すと、run_lengthは0以上13以下の値を取る。なお、binIdx=14以上はバイパスとなるから、この例ではcoeff_abs_level_minus1の値が1以上となる全ての係数に対して、バイパス部分を除いてユーナリー・バイナライゼーションの符号量概算処理が適用される。
図12を参照し、上記ステップS62のユニット内の全Binに対する符号量概算処理の詳細を説明する。まず全Binに対する符号量の加算を行う(S71)。この処理は、ユニット符号量の整数部分codeLengthIntを、テーブル参照関数readTableCdInt()を用いて加算し、codIRangeをテーブル参照関数readTableRng()を用いて更新することで行われる。次に全Binに対するコンテキスト情報の更新を行う(S72)。この処理は、valMPSをテーブル参照関数readTableMps()を用いて更新し、pStateIdxをテーブル参照関数readTableState()を用いて更新することで行われる。
ここで、図13を参照し、各テーブル参照関数を説明する。図13に示すように、ビットの最大値が13であるため、MAX_RUN=13と定義している。テーブル参照関数:readTableCdInt()、readTableRng()、readTableMps()、readTableState()は、それぞれ整数符号量テーブル(mCdlIntTbl)、レンジテーブル(mRngTbl)、MPSテーブル(mMpsTbl)、pStateテーブル(mStateTbl)を参照して値を返す。これらのテーブルは、2値シンボル列の全ての符号パターンと全ての出現確率パターンを入力とする。
図14を参照し、各テーブルの初期化処理の詳細を説明する。初期化関数initTableCdInt()を、全てのrun_length、valMPS、pStateIdxに対して実行することで、整数符号量テーブル(mCdlIntTbl)、レンジテーブル(mRngTbl)、MPSテーブル(mMpsTbl)、pStateテーブル(mStateTbl)が全て初期化される。この初期化処理は、図5に示す逐次処理による1ユニットの符号量概算処理の演算に従っている。図14のProc1Bin(binVal,&valMPS,&pStateIdx)は、図5の1Binの符号量概算処理(S12)に対応しており、binVal、valMPS、pStateIdx、codIRangeに対して図7の処理と等価な処理が行われる。但し、図7の1Binの符号量加算処理(S38)は、図14内の2箇所のwhile処理にて行われる。以上により、全てのBinに対する符号量の整数部分が一括して計算可能な各テーブルが初期化される。
(c)バイパスとして扱われたBinに対する算術符号量概算処理
図15を参照し、バイパスとして扱われたBinに対する1ユニットの符号量概算処理の詳細を説明する。本符号量概算処理は、ユニット初期化処理(S81)を行った後、ユニットが終了するまでユニット符号量の整数部分codeLengthIntを1ずつ加算する(S82、S83)。つまり、本符号量概算処理は、1Binの符号量を単に1ビットの符号量としてカウントする。
図2に示す加算器231は、以上の図5、図11、図15に示す3つの符号量概算処理により得られたユニット符号量の概算値から予測符号量を以下のように計算する。
マクロブロックに含まれる全てのユニットに対して、全ての符号量概算回路211〜214から出力されたユニット符号量の整数部分(codeLengthInt)及びユニット符号量の小数部分(codeLengthFrac)をそれぞれ加算して、マクロブロックの予測符号量の整数部分(MBcodeLengthInt)、マクロブロックの予測符号量の小数部分(MBcodeLengthFrac)を計算する。最終的なマクロブロックの予測符号量MBcodeLengthは、次式で求められる。
MBcodeLength=MBcodeLengthInt+
(MBcodeLengthFrac>>9) (1)
次に、以上で説明した1ユニットの符号量概算処理(図5、図11、図15参照)が、ユニット毎に並列に処理可能である理由を説明する。
前述したようにコンテキスト適応型算術符号化を並列処理するための障害であった内部状態codIRange及びcodILowの2つに関して、codIRangeは図6に示すユニット初期化処理にてユニット毎に固定値に初期化されており、codILowは図5から図15に示した全体の処理の中に存在しない。よって各ユニットの符号量概算処理は、図3に示すように回路上で時間的に並列に実施することが可能となる。
また図11を参照して説明したように、1ユニットの符号量概算処理(ユーナリー・バイナライゼーション)は複数のBinを一括に処理可能である。これは一定範囲のユーナリー・バイナライゼーションの符号群と、全てのvalMPSと、全てのpStateIdxとの組合せに基づくテーブルを用意することで可能となる。
算術符号量概算回路200が高い精度でマクロブロックの符号量を近似するための条件について説明する。
その条件とは、図5、図11、図15に示す1ユニットの符号量概算処理を図2に示した第一から第四の符号量概算回路211〜214に適用した上で、図4に示したように符号量概算回路全体(#1〜#4の合計)で網羅するctxIdxによる発生符号量のマクロブロック全体の発生符号量に占める割合が、100%に近いことである。図4の例では、residual_block_cabac()に属するシンタックスエレメントの発生符号量がマクロブロック全体の発生符号量の100%に近いという前提で、符号量概算処理に用いるシンタックスエレメントを選定している。よって、これら以外のシンタックスエレメントの占める発生符号量が無視できない場合には、そのシンタックスエレメントも符号量概算処理の対象とする必要がある。
図16は、本実施形態による算術符号量概算回路200の予測符号量290の予測精度を示した図である。図16は、マクロブロック単位の予測符号量と算術符号化による発生符号量との誤差の割合を、1フレーム(8160マクロブロック)に渡りプロットしたものである。統計的性質の異なる4種類のフレーム(Sequence#1〜#4)に対して、平均0.47%、標準偏差1.55%の誤差であり、高い精度が得られている。
2.2 第二の符号化回路による最終的な符号化
図1における第二の符号化回路102の符号化の動作を説明する。第一の符号化回路101により1フレームの仮符号化が終了すると、フレームメモリ151に蓄積された1フレームの映像信号が、ブロック化回路162に入力される。符号化対象のマクロブロックの各画素値は、予測モードメモリ152から読み出した予測モード値に基づいてイントラ予測生成回路172が生成した画素予測値との差分値が計算される。差分値のブロックに対してDCT回路182にてDCTが行われ、周波数成分の係数データが出力される。係数データは量子化回路122に入力されて量子化される。この際の量子化パラメータは、量子化パラメータ算出回路112により算出される。量子化された係数データは2値化回路132にて2値シンボルに変換され、算術符号化回路142にて符号化されてビットストリーム192として出力される。
2.3 第一の符号化回路101での仮符号化における量子化パラメータの設定
第一の符号化回路101における仮符号化の具体例を、図17(a)に示すような1920×1080画素の1フレームの符号化においてスライス単位に最適な量子化パラメータを算出する例を用いて説明する。
図17(b)に示すように1920×1080画素のフレームは、16×16画素のマクロブロックが8160(=120×68)個で構成される。フレームを分割するスライスは、任意の連続したマクロブロックの集合として定義できるが、一例として1個のスライスが2040個のマクロブロックを含み、1フレームが4個のスライスで構成される場合を考える。この場合、N=Nmb=2040(=8160/4)と設定できる。
仮符号化の開始前に、第一の符号化回路101の量子化回路121で使用される仮量子化パラメータQP(n)を決定する。仮量子化パラメータは、マクロブロック毎に複数の候補の中から1つを選択して設定される。すなわち1個のマクロブロックに対する仮量子化パラメータQP(n)は、任意の異なるQ種類の代表量子化パラメータqp(x)(x=0,1,…,Q−1)から1個を選んで、当該マクロブロックの仮量子化パラメータQP(n)に設定することで決定できる。
例えば、「0」と「20」の2種類の代表量子化パラメータqp(x)={0,20}を与える場合を考える。ここで、F(x)={A,A,…,AQ−1}(Aは整数)の表記は、F(0)=A、F(1)=A、…F(Q−1)=AQ−1を意味するものとする。各マクロブロックの仮量子化パラメータは、各仮量子化パラメータの出現頻度が等しくなるように、2種類の代表量子化パラメータの中から選択する。この例では、半数のマクロブロックに量子化パラメータ「0」を、残り半数のマクロブロックに量子化パラメータ「20」を与える。また、仮量子化パラメータがスライス内で偏るのを防ぐため、スライス内に交互又はランダムに仮量子化パラメータを配置する。例えば、プログレッシブ走査においては、図18(a)に示すように通常のラスタスキャン順に交互に仮量子化パラメータを与え、インターレース走査では図18(b)に示すようにマクロブロックの対毎に交互に仮量子化パラメータを与えることができる。
仮符号化における代表量子化パラメータqp(x)の種類Qと、その値qp(x)(x=0,1,…,Q−1)の決定方法について、図19を用いて説明する。
量子化回路121で用いられる代表量子化パラメータの種類Qは、2040(1スライスに含まれるマクロブロック数)の約数とすることができる、又はインターレース走査用の符号化を行うため、マクロブロックを対にする場合は、その1/2である1020の約数とすることができる。このようにして代表量子化パラメータの種類Qを設定すれば、スライス内で任意の代表量子化パラメータが出現する回数を一定にできる。例えばプログレッシブの場合、Qとしては2040の約数である5、10、20が選択できる。それぞれのQの場合の、1個のスライス内における各代表量子化パラメータの出現回数は408回、204回、102回となる。
代表量子化パラメータqp(x)としては、エンコーダで選択できる量子化パラメータの範囲から異なる値をQ個選択する。この場合、最適な符号化のための符号量予測が行い易くなるように、それらの値を適度に分散させるのが好ましい。例えば、1スライスに含まれるマクロブロック数が2040で、エンコーダで選択できる量子化パラメータQPが0から51の範囲である場合、代表量子化パラメータqp1として、図19(a)に示すように、Q=10、qp(x)={0,4,8,12,16,22,28,34,42,51}を選択することができる。このとき、プログレッシブ方式の場合は、図19(b)に示すように仮量子化パラメータが適用され、インターレース方式の場合は、図19(c)に示すように仮量子化パラメータが割当られる。また、代表量子化パラメータには、量子化パラメータの最大値及び最小値が含まれるようにするのが好ましい。
第一の符号化回路101における仮符号化の結果として符号量積算メモリ153に蓄積されるデータについて説明する。仮符号化では、N=2040個のマクロブロックを含むスライス1個に対し、同じ代表量子化パラメータqp(x)を使用したマクロブロック毎に、算術符号量概算回路200から出力された予測符号量R(n)の総和を計算する。その総和をQP別予測符号量r(x)とし、符号量積算メモリ153に蓄積する。図20の例では、qp(x)={0,4,8,12,16,22,28,34,42,51}(x=0,1,…,9)の各々に対し、代表量子化パラメータ毎に予測符号量R(n)の総和を取ったQP別予測符号量r(x)={95626,82252,64451,48648,31785,19098,10373,5439,2259,1261}を符号量積算メモリ153に蓄積することになる。
2.4 第二の符号化回路での最終的な符号化における量子化パラメータの算出
第二の符号化回路102の量子化パラメータ算出回路112での最終的な符号化における最適量子化パラメータQP(n)の算出方法を、図21の具体例を用いて説明する。ここで、ビットレート、フレームレート、フレームの複雑度、スライスの符号化タイプなどの情報を用いて割り当てたスライスの目標符号量T=300000ビットを仮定する。
代表量子化パラメータqp(x)とQP別予測符号量r(x)から、量子化パラメータQPとスライス予測符号量の関係を図21のように座標軸にプロットすることができる。r(x)は、各x=QPに対して204個ずつのマクロブロックの予測符号量の総和になっているから、各QPに対するスライス予測符号量は、r(x)を10倍することで求められる。また、プロットしたスライス予測符号量を線形補間して全てのQP値(0≦QP≦51)に対するスライス予測符号量のグラフを作成することができる。スライスの目標符号量T=300000と、このグラフとの交点を求めることで、目標符号量を発生するのに最適な量子化パラメータQPoptを求めることができる。QPoptの算出は、線形補間により、式(2)で求められる。
QPopt=q+{QP(q+1)−QP(q)}×{Q*r(q)−T}/
{Q×r(q)−Q×r(q+1)} (2)
但し、qは0≦q≦Q−1の整数であり、Q×r(q+1)≦T≦Q×r(q)を満たす値とする。ここでは、1スライスを通じて1つの最適量子化パラメータを使用することとしている。また、すべてのqに対しT>Q×r(q)となる場合はq=0、すべてのqに対しT<Q×r(q)となる場合はq=Q−1とする。
スライスの目標符号量T=300000ビットであるので、式(2)を用いて、QPoptは16.84となる。
QPopt=16+(22−16)×(317850−300000)/
(317850−190980)≒16.84
量子化パラメータは整数であるので、17を最適量子化パラメータQPoptとする。また、小数点以下の値によっては小さい側の値16を選択する場合もある。
以上のようにして最適量子化パラメータQP(n)=QPoptを算出できる。また、QPoptをN個のマクロブロックの符号化に対する初期値として用い、それ以降の量子化パラメータは動的に変更することも可能である。
以上説明したように、本実施形態による算術符号量概算回路200を用いて、映像符号化装置における出力ビットストリーム192を得ることができる。
以上では、表2のresidual_block_cabac()に含まれるシンタックスエレメントを対象として算術符号量概算回路200を構成する例を示したが、mb_pred()やmacroblock_layer()など他の全てのシンタックスエレメントを対象としてもよい。この場合、基本的には図4に示す、対象とするctxIdxの範囲を拡張すればよい。
3.変形例
本実施の形態では、イントラフレームのみを符号化対象として算術符号量概算回路200を構成する例を説明したが、フレーム間予測を用いるPフレームやBフレームを符号化対象とする場合でも、適用可能である。PフレームやBフレームでは動きベクトルに必要となる符号量が多くなるため、表2のmb_pred()やsub_mb_pred()に含まれるシンタックスエレメントを処理対象に加えれば良い。
本実施の形態では、図2に示すように4個の符号量概算回路を用いる例を説明したが、符号量概算回路の数は任意にできるのは明らかである。また、ユーナリー・バイナライゼーションを例にとってBinの逐次処理を行わずに一括処理できる例を説明したが、本実施の形態の思想が、ユーナリー・バイナライゼーション以外の2値化方法にも適用できることは明らかである。整数部のテーブルと小数部のテーブルを分けて説明したが、codIRangeの値に基づいてテーブルを統合することも可能である。
本実施の形態では、Nをスライス単位に含まれるマクロブロック数に設定した。しかし、より小さい単位で仮符号化と符号化を行うことで算術符号量概算回路200から予測符号量R(n)を得て、その結果を仮量子化パラメータの選択に反映するような場合は、Nの値を、符号化単位に合わせた小さい値に設定してもよい。また、Nを固定値として説明したが、Nをフレーム単位又はその他の単位で動的に変化させることも可能である。また、スライス予測符号量のグラフを線形補間して求める例を示したが、スプライン補間等、高度な数値補間も可能である。
本実施の形態では仮符号化を1回のみ行う例を示したが、リアルタイムの符号化が必要でない場合や、仮符号化をパイプライン化又は並列化することにより一定の遅延で多くの処理が行える場合には、仮符号化を何回行っても良い。
本実施の形態を用いて符号化したビットストリームは、テープ、光ディスク、磁気ディスク、半導体メモリといった記録媒体に記録して、再配布可能な形式にすることができる。
4.まとめ
以上のように本実施形態によれば、2値シンボル列のコンテキストに応じて設けられた複数の概算処理回路を並列動作させることで、コンテキストに基づいて分けられた複数のグループに対する算術符号化の近似演算を並列に行うことが可能とする。2値シンボル列に対する算術符号化の符号量の概算値を求める。これにより、算術符号化に近い演算を行いながらも正規の算術符号化と比較して処理時間を大幅に削減でき、よって、動作周波数を低く抑えた回路を用いて高精度の符号量予測に基づく符号化装置を実現できる。そのような符号化装置を用いて高画質な映像符号化装置を提供することができる。
本発明によれば、動作周波数を低く抑えた回路を用いて高精度の符号量予測に基づく、高画質な符号化装置を実現できるため、カメラレコーダや録画装置など小さい回路規模でリアルタイム動作が必要な記録装置にも有効である。
本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の開示に限定されず、添付の請求の範囲によってのみ限定され得る。なお、本出願は日本国特許出願、特願2006−323384号(2006年11月30日提出)に関連し、それらの内容は参照することにより本文中に組み入れられる。
映像符号化装置の構成図 算術符号量概算回路の構成図 算術符号量概算回路での並列処理を説明した図 算術符号量概算回路が処理対象とするシンタックスエレメントを示す図 逐次処理での1ユニットの符号量概算処理を示すフローチャート ユニット初期化処理を示すフローチャート 1Binの符号量概算処理を示すフローチャート 1Binの符号量加算処理を示すフローチャート 1ユニットの微小符号量概算処理を示すフローチャート 小数符号量テーブルを説明する図 ユーナリー・バイナライゼーションの1ユニットの符号量概算処理を示す フローチャート ユニット内の全Binに対する符号量概算処理を示すフローチャート 整数符号量テーブルを説明する図 整数符号量テーブルの初期化を説明する図 バイパス時の1ユニットの符号量概算処理を示すフローチャート 算術符号量概算回路の予測精度を示す図 (a)1920×1080画素で構成される1フレームを示した図、(b)120×68マクロブロックで構成される1フレームを示す図 仮量子化パラメータの選択例を示す図 仮量子化パラメータの選択例を示す図 符号量積算メモリに蓄積されるデータ例を示す図 最適量子化パラメータの算出方法を説明するための図 従来のコンテキスト適応算術符号化回路を説明する図 発生確率情報の初期化を説明する図 算術符号化の概念を説明する図 1Binの入力に対する算術符号化処理を示すフローチャート リノーマライゼーション処理を示すフローチャート
符号の説明
100 映像符号化装置
101 第一の符号化回路
102 第二の符号化回路
111 量子化パラメータ発生回路
112 量子化パラメータ算出回路
121 第一の量子化回路
122 第二の量子化回路
124 逆量子化回路
131 第一の2値化回路
132 第二の2値化回路
142 算術符号化回路
151 フレームメモリ
152 予測モードメモリ
153 符号量積算メモリ
161 第一のブロック化回路
162 第二のブロック化回路
171 第一のイントラ予測生成回路
172 第二のイントラ予測生成回路
173 予測モード検出回路
181 第一のDCT回路
182 第二のDCT回路
184 逆DCT回路
191 映像信号入力
192 出力ビットストリーム/E
200 算術符号量概算回路
211〜214 算術符号量概算回路
230 選択器
231 加算器
より具体的には、本発明に係る符号化装置は、入力信号から、複数のコンテキストを持ち、所定の符号化単位(例えば、マクロブロック)の多値データを生成するブロック化回路と、ブロック化回路により生成された多値データを2値シンボル列に変換する2値化回路と、2値シンボル列から、前記符号化単位の予測符号量を算出する算術符号量概算回路と、予測符号量と符号化時に与えるべき所定の符号量とに基づいて、量子化パラメータを制御することにより、入力信号に対する算術符号化を行う符号化回路とを備える。算術符号量概算回路は、所定の符号化単位に含まれる前記2値シンボル列をコンテキストに基づいて複数のグループに分ける選択器と、グループ毎に用意された回路であって、複数のグループに分けられた2値シンボル列を、少なくとも算術符号化における区間の幅に基づいてグループの予測符号量を算出する、複数の符号量概算回路と、全ての符号量概算回路からの予測符号量を加算して、所定の符号化単位の予測符号量を出力する加算器とを有する。
代表量子化パラメータqp(x)とQP別予測符号量r(x)から、量子化パラメータQPとスライス予測符号量の関係を図21のように座標軸にプロットすることができる。r(x)は、各x=QPに対して204個ずつのマクロブロックの予測符号量の総和になっているから、各QPに対するスライス予測符号量は、r(x)を10倍することで求められる。また、プロットしたスライス予測符号量を線形補間して全てのQP値(0≦QP≦51)に対するスライス予測符号量のグラフを作成することができる。スライスの目標符号量T=300000と、このグラフとの交点を求めることで、目標符号量を発生するのに最適な量子化パラメータQPoptを求めることができる。QPoptの算出は、線形補間により、式(2)で求められる。
PoptQP (q)+{QP(q+1)−QP(q)}×{Q×(q)
−T}/{Q×r(q)−Q×r(q+1)} (2)


Claims (10)

  1. 入力信号から、複数のコンテキストを持ち、所定の符号化単位の多値データを生成するブロック化回路と、
    前記ブロック化回路により生成された多値データを2値シンボル列に変換する2値化回路と、
    前記2値シンボル列から、前記符号化単位の予測符号量を算出する算術符号量概算回路と、
    前記予測符号量に基づいて、前記入力信号に対する算術符号化を行う符号化回路とを備え、
    前記算術符号量概算回路は、
    所定の符号化単位に含まれる前記2値シンボル列を前記コンテキストに基づいて複数のグループに分ける選択器と、
    前記グループ毎に用意された回路であって、前記複数のグループに分けられた2値シンボル列を、少なくとも算術符号化における区間の幅に基づいてグループの予測符号量を算出する、複数の符号量概算回路と、
    全ての符号量概算回路からの予測符号量を加算して、所定の符号化単位の予測符号量を出力する加算器とを有する、
    ことを特徴とする符号化装置。
  2. 前記符号量概算回路は、連続して同一のコンテキストを持つ前記2値シンボルをまとめた単位であるユニットに対して、前記区間の幅を前記ユニットの開始時に所定の初期値に設定することを特徴とする、請求項1に記載の符号化装置。
  3. 前記符号量概算回路は、前記2値シンボル列の全ての符号パターンと全ての出現確率パターンを入力とするテーブルに基づいて整数符号量に変換し、前記グループの予測符号量に加算することを特徴とする、請求項1に記載の符号化装置。
  4. 前記符号量概算回路は、前記ユニットの終了時に前記区間の幅の対数で近似されたテーブルに基づいて前記区間の幅を小数符号量に変換し、前記グループの予測符号量に加算することを特徴とする、請求項2に記載の符号化装置。
  5. 第1の量子化パラメータを生成する量子化パラメータ発生回路と、
    前記第1の量子化パラメータに基づいて、前記入力信号に基づいて生成された係数データを量子化して前記多値データを生成する第1の量子化回路と、
    第2の量子化パラメータを生成する量子化パラメータ算出回路と、
    前記第2の量子化パラメータに基づいて、前記入力信号に基づいて生成された係数データを量子化して第2の多値データを生成する第2の量子化回路と、
    前記第2の多値データに対して算術符号化を行う算術符号化回路とをさらに備え、
    前記量子化パラメータ算出回路は、前記第1の量子化パラメータと、前記所定の符号化単位の予測符号量と、符号化時に与えるべき所定の符号量とに基づいて、前記第2の量子化パラメータを算出する
    ことを特徴とする請求項1記載の符号化装置。
  6. 前記量子化パラメータ発生回路は、Q個(Qは2以上の自然数)の代表量子化パラメータを設定しておき、前記Q個の代表量子化パラメータから、前記所定の符号化単位毎に任意の一個の量子化パラメータを選択することにより、N個(Nは2以上の自然数)の前記係数データを量子化するための第1の量子化パラメータを生成する、ことを特徴とする請求項5に記載の符号化装置。
  7. 前記NはN=L×Q(Lは自然数)を満たすことを特徴とする、請求項6に記載の符号化装置。
  8. 前記Q個の代表量子化パラメータは、量子化パラメータの最大値及び最小値を必ず含むように構成したことを特徴とする、請求項6に記載の符号化装置。
  9. 前記入力信号は映像信号であり、前記係数データは、前記入力信号を周波数成分に変換した係数であることを特徴とする、請求項5に記載の符号化装置。
  10. 前記コンテキストは、少なくとも映像信号における輝度の係数データ及び色差の係数データの間で異なる値であり、前記選択器は、少なくとも前記輝度の係数データと前記色差の係数データを異なる前記グループに分けることを特徴とする、請求項9に記載の符号化装置。
JP2008546905A 2006-11-30 2007-10-11 符号化装置 Active JP4354520B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006323384 2006-11-30
JP2006323384 2006-11-30
PCT/JP2007/069824 WO2008065814A1 (en) 2006-11-30 2007-10-11 Coder

Publications (2)

Publication Number Publication Date
JP4354520B2 JP4354520B2 (ja) 2009-10-28
JPWO2008065814A1 true JPWO2008065814A1 (ja) 2010-03-04

Family

ID=39467613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008546905A Active JP4354520B2 (ja) 2006-11-30 2007-10-11 符号化装置

Country Status (5)

Country Link
US (1) US7839312B2 (ja)
EP (1) EP2091257B1 (ja)
JP (1) JP4354520B2 (ja)
CN (1) CN101502123B (ja)
WO (1) WO2008065814A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4569840B2 (ja) 2007-09-12 2010-10-27 ソニー株式会社 画像符号化装置、画像符号化方法
BRPI0904325A2 (pt) 2008-06-27 2015-06-30 Sony Corp Dispositivo e método de processamento de imagem.
US8270744B2 (en) 2008-06-27 2012-09-18 Sony Corporation Image processing apparatus and image processing method
RU2479942C2 (ru) 2008-06-27 2013-04-20 Сони Корпорейшн Устройство обработки изображения и способ обработки изображения
WO2009157579A1 (ja) 2008-06-27 2009-12-30 ソニー株式会社 画像処理装置及び画像処理方法
JP5373909B2 (ja) * 2008-08-19 2013-12-18 トムソン ライセンシング 圧縮ビデオにおける構文要素のcabac/avc準拠の透かし入れ
CN102187583B (zh) * 2008-08-19 2013-09-11 汤姆森特许公司 基于上下文的自适应二进制算术编码(cabac)的视频流兼容性
BRPI0916944B1 (pt) 2008-08-19 2020-07-21 Contentarmor Método e aparelho para inserir marca dágua em vídeo codificado
US8948443B2 (en) 2008-08-19 2015-02-03 Thomson Licensing Luminance evaluation
US8824727B2 (en) 2008-08-20 2014-09-02 Thomson Licensing Selection of watermarks for the watermarking of compressed video
JP5274317B2 (ja) * 2009-03-17 2013-08-28 パナソニック株式会社 符号量推定装置、符号量推定方法、符号量推定プログラムおよび、符号量推定集積回路
JP5396302B2 (ja) * 2010-02-08 2014-01-22 パナソニック株式会社 映像信号符号化装置及び映像信号符号化方法
JP5753200B2 (ja) 2010-02-09 2015-07-22 トムソン ライセンシングThomson Licensing 伝搬マップを使用する透かし検出
KR101791078B1 (ko) * 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
JP5632328B2 (ja) * 2010-06-14 2014-11-26 日本電信電話株式会社 符号量予測装置及びプログラム
US10349070B2 (en) * 2010-09-30 2019-07-09 Texas Instruments Incorporated Simplified binary arithmetic coding engine
US9762918B2 (en) * 2011-05-27 2017-09-12 Hfi Innovation Inc. Method and apparatus for line buffer reduction for video processing
US8798139B1 (en) 2011-06-29 2014-08-05 Zenverge, Inc. Dual-pipeline CABAC encoder architecture
US9258565B1 (en) * 2011-06-29 2016-02-09 Freescale Semiconductor, Inc. Context model cache-management in a dual-pipeline CABAC architecture
BR112013003521B1 (pt) * 2011-07-18 2022-03-03 Sun Patent Trust Método de codificação de imagem, método de decodificação de imagem, aparelho de codificação de imagem, aparelho de decodificação de imagem e aparelho de codificação e decodificação de imagem
CN110234009B (zh) * 2012-01-20 2021-10-29 维洛媒体国际有限公司 色度量化参数扩展的解码方法及装置
CN102447908B (zh) * 2012-01-31 2014-01-08 北京工业大学 一种面向hevc参数编码的上下文简化方法
US9237344B2 (en) 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
CN103428523B (zh) * 2012-05-22 2015-07-08 华为技术有限公司 评估视频质量的方法和装置
CN103024380B (zh) * 2012-12-10 2016-04-13 浙江大学 一种数据的熵编码方法和装置
GB2513110A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
JP6495834B2 (ja) * 2016-01-05 2019-04-03 日本電信電話株式会社 映像符号化方法、映像符号化装置及び映像符号化プログラム
CN108989825B (zh) * 2018-07-18 2021-05-07 北京奇艺世纪科技有限公司 一种算术编码方法、装置及电子设备
US11343495B2 (en) * 2020-06-03 2022-05-24 Tencent America LLC Methods of simplification of temporal filtering

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2797159B2 (ja) 1992-03-02 1998-09-17 カシオ計算機株式会社 画像データ圧縮装置及び画像データ圧縮方法
JPH08116534A (ja) * 1994-10-18 1996-05-07 Seiko Epson Corp 画像データ符号化装置およびその方法並びに画像データ復号化装置およびその方法
KR100381830B1 (ko) 1995-03-09 2003-08-02 소니 가부시끼 가이샤 화상신호의부호화방법및그장치
DE69708693C5 (de) 1996-11-07 2021-10-28 Godo Kaisha Ip Bridge 1 Verfahren und Vorrichtung für CELP Sprachcodierung oder -decodierung
JPH1155528A (ja) * 1997-08-01 1999-02-26 Sharp Corp 画像符号化装置
CA2684452C (en) 1997-10-22 2014-01-14 Panasonic Corporation Multi-stage vector quantization for speech encoding
JP3391251B2 (ja) * 1998-03-25 2003-03-31 三菱電機株式会社 適応確率推定方法及び適応符号化方法並びに適応復号方法
JP2002252770A (ja) 2001-02-22 2002-09-06 Matsushita Graphic Communication Systems Inc 画像情報の分類方法,画像符号化方法および画像符号化装置
US6677869B2 (en) 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
JP2003018593A (ja) * 2001-06-29 2003-01-17 Matsushita Electric Ind Co Ltd 映像符号化方法及び装置、映像符号量割当て方法及び装置、並びに記録媒体
CN105356887B (zh) 2002-09-20 2019-07-26 株式会社Ntt都科摩 算术编码的方法和设备
US6850175B1 (en) 2003-09-18 2005-02-01 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 動画像符号化方法、動画像符号化装置およびプログラム
US7362809B2 (en) * 2003-12-10 2008-04-22 Lsi Logic Corporation Computational reduction in motion estimation based on lower bound of cost function
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
KR100521724B1 (ko) 2005-05-17 2005-10-14 설근수 동영상을 이용한 언어학습방법

Also Published As

Publication number Publication date
WO2008065814A1 (en) 2008-06-05
JP4354520B2 (ja) 2009-10-28
EP2091257B1 (en) 2017-12-27
EP2091257A1 (en) 2009-08-19
CN101502123B (zh) 2011-08-17
US7839312B2 (en) 2010-11-23
EP2091257A4 (en) 2011-06-22
US20100007532A1 (en) 2010-01-14
CN101502123A (zh) 2009-08-05

Similar Documents

Publication Publication Date Title
JP4354520B2 (ja) 符号化装置
US11671599B2 (en) Data encoding and decoding
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
US10893273B2 (en) Data encoding and decoding
EP3020196B1 (en) Data encoding and decoding
JP5524072B2 (ja) 動画像符号化装置
US9544599B2 (en) Context adaptive data encoding
JP5231243B2 (ja) 符号化装置及び符号化方法
JP2009021775A (ja) 符号化装置及び符号化方法
WO2013068733A1 (en) Context adaptive data encoding
JP2007074337A (ja) 符号化装置及び符号化方法
JP5632328B2 (ja) 符号量予測装置及びプログラム
WO2013068732A1 (en) Context adaptive data encoding

Legal Events

Date Code Title Description
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: 20090630

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090729

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4354520

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120807

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130807

Year of fee payment: 4