JP2010171655A - Arithmetic coding apparatus, and arithmetic coding method - Google Patents
Arithmetic coding apparatus, and arithmetic coding method Download PDFInfo
- Publication number
- JP2010171655A JP2010171655A JP2009011355A JP2009011355A JP2010171655A JP 2010171655 A JP2010171655 A JP 2010171655A JP 2009011355 A JP2009011355 A JP 2009011355A JP 2009011355 A JP2009011355 A JP 2009011355A JP 2010171655 A JP2010171655 A JP 2010171655A
- Authority
- JP
- Japan
- Prior art keywords
- evaluation
- context
- occurrence
- stored
- dominant
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
本発明は算術符号化装置、算術符号化方法、プログラム及び記憶媒体に関し、特に、コンテキストメモリの初期化を行うために用いて好適な技術に関する。 The present invention relates to an arithmetic encoding device, an arithmetic encoding method, a program, and a storage medium, and particularly to a technique suitable for use in initializing a context memory.
近年、ディジタル信号処理や、LSIの高集積化、高速化などの進歩により、動画像や静止画像、音声などの大量のディジタル情報を高能率に符号化し、記録媒体へ記録したり、通信媒体による伝送を行ったりすることが可能になった。このような技術を応用して、最近ではディジタルハイビジョン放送や、地上波ディジタル放送が開始された。また、ディジタルビデオカメラ等の高性能化が進み、撮影画像が高画質化されている。 In recent years, with advances in digital signal processing, high integration and high speed of LSI, a large amount of digital information such as moving images, still images, and voices can be efficiently encoded and recorded on a recording medium, or by a communication medium It has become possible to perform transmission. Recently, digital high-definition broadcasting and terrestrial digital broadcasting have been started by applying such technology. In addition, the performance of digital video cameras and the like has been improved, and photographed images have been improved in image quality.
画像符号化の規格としては、近年、ITU−Tによって策定されたH.264等が注目されている(例えば、非特許文献1参照)。このH.264では、従来の映像符号化の規格であるMPEGよりも高能率に符号化を実現している。H.264において高能率に符号化を実現させたものの一つとしてエントロピー符号化がある。高能率のエントロピー符号化を実現する方式としてH.264では、算術符号化を用いたCABAC(Context-based Adaptive Binary Arithmetic Coding)が使用可能である。 As an image coding standard, H.264, which has been formulated by ITU-T in recent years. H.264 and the like are attracting attention (see, for example, Non-Patent Document 1). This H. In H.264, encoding is realized with higher efficiency than MPEG which is a conventional video encoding standard. H. One of the H.264 implementations of highly efficient encoding is entropy encoding. As a method for realizing high-efficiency entropy coding, H.264 is used. In H.264, CABAC (Context-based Adaptive Binary Arithmetic Coding) using arithmetic coding can be used.
しかし、CABAC方式では、スライスの先頭において、0から459までのアドレスを持ち、1アドレス7ビットのデータを保持するコンテキストメモリと呼ばれる記憶装置の初期化を行う必要がある。なお、1スライスの符号化が終了した時点で、コンテキストメモリが初期化されるので、スライスの先頭においては、符号化中の画像の性質を反映させた符号化ができない。 However, in the CABAC system, it is necessary to initialize a storage device called a context memory that has addresses from 0 to 459 at the head of a slice and holds 7-bit data for one address. Note that since the context memory is initialized at the time when encoding of one slice is completed, encoding reflecting the property of the image being encoded cannot be performed at the head of the slice.
コンテキストメモリを初期化する方法としては、例えば3つの初期化変数テーブルを用いてコンテキストメモリを初期化することが行われている。例えば、特許文献1に記載の算術符号化装置では、初期化変数テーブルを適切に選択して使用することによって符号化効率を上げている。具体的には、まず、第1の初期化変数テーブルの初期化変数を用いて初期化を行い、所定のビット数が発生するまで符号化を行う。次に、第2の初期化変数テーブルの初期化変数を用いて初期化を行い、同様に所定のビット数が発生するまで符号化を行う。最後に、第3の初期化変数テーブルの初期化変数を用いて初期化を行い、同様に所定のビット数が発生するまで符号化を行い、最も効率が良い初期化変数テーブルを選択して、1スライス分の符号化を行っている。
As a method of initializing the context memory, for example, the context memory is initialized using three initialization variable tables. For example, in the arithmetic encoding device described in
しかしながら、特許文献1に記載の算術符号化装置では、3つの初期化変数テーブルそれぞれに対して、所定のビット数分だけ符号化を行っているため、多くの処理時間を要するという問題があった。
However, the arithmetic coding apparatus described in
本発明は前述の問題点に鑑み、符号化効率を良好にするとともに、コンテキストメモリを簡単に初期化できるようにすることを目的としている。 An object of the present invention is to improve the coding efficiency and to easily initialize a context memory in view of the above-mentioned problems.
本発明の算術符号化装置は、コンテキスト毎の優勢シンボルと前記優勢シンボルの発生確率との情報を格納するコンテキストメモリをスライス毎に初期化するとともに、前記コンテキストメモリに格納された優勢シンボル及び発生確率の情報を用いて二値データの算術符号化を行う算術符号化装置であって、前記コンテキスト毎の優勢シンボル及び発生確率の複数の組み合わせの情報を格納する記憶手段と、前記記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価手段と、前記評価手段によって生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定手段とを有することを特徴とする。 The arithmetic coding apparatus according to the present invention initializes, for each slice, a context memory that stores information on a dominant symbol for each context and the occurrence probability of the dominant symbol, and the dominant symbol and occurrence probability stored in the context memory. An arithmetic encoding device that performs arithmetic encoding of binary data using the information of the storage unit, the storage unit storing information of a plurality of combinations of dominant symbols and occurrence probabilities for each context, and stored in the storage unit An evaluation means for generating an evaluation value by comparing a plurality of combinations of the dominant symbols and occurrence probabilities with a combination of the dominant symbols and occurrence probabilities for each context at the end of encoding of the previous slice, and generated by the evaluation means Based on the evaluated value, the dominant symbol for storing in the context memory at the time of initialization And characterized in that it has an initial value determining means for determining an initial value of the probability.
本発明の算術符号化方法は、コンテキスト毎の優勢シンボルと前記優勢シンボルの発生確率との情報を格納するコンテキストメモリをスライス毎に初期化するとともに、前記コンテキストメモリに格納された優勢シンボル及び発生確率の情報を用いて二値データの算術符号化を行う算術符号化方法であって、記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価工程と、前記評価工程において生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定工程とを有することを特徴とする。 The arithmetic coding method of the present invention initializes, for each slice, a context memory that stores information on the dominant symbol for each context and the occurrence probability of the dominant symbol, and the dominant symbol and occurrence probability stored in the context memory. Is an arithmetic coding method for performing binary data arithmetic coding using a plurality of combinations of dominant symbols and occurrence probabilities stored in the storage means, and each context at the end of the previous slice encoding. An evaluation step for generating an evaluation value by comparing a combination of the prevailing symbol and the occurrence probability, and a preferential symbol to be stored in the context memory at the time of initialization based on the evaluation value generated in the evaluation step And an initial value determining step for determining an initial value of the occurrence probability.
本発明のプログラムは、コンテキスト毎の優勢シンボルと前記優勢シンボルの発生確率との情報を格納するコンテキストメモリをスライス毎に初期化するとともに、前記コンテキストメモリに格納された優勢シンボル及び発生確率の情報を用いて二値データの算術符号化を行う算術符号化方法の各工程をコンピュータに実行させるプログラムであって、記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価工程と、前記評価工程において生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定工程とをコンピュータに実行させることを特徴とする。 The program of the present invention initializes, for each slice, a context memory that stores information on the dominant symbol for each context and the probability of occurrence of the dominant symbol, and also stores information on the dominant symbol and occurrence probability stored in the context memory. A program that causes a computer to execute each step of an arithmetic encoding method that performs arithmetic encoding of binary data using a plurality of combinations of dominant symbols and occurrence probabilities stored in storage means, and a code of a previous slice An evaluation step for generating an evaluation value by comparing a combination of the dominant symbol and occurrence probability for each context at the end of the initialization, and in the context memory at the time of initialization based on the evaluation value generated in the evaluation step A dominant symbol for storing and an initial value determining step for determining an initial value of an occurrence probability. Characterized in that to execute the Yuta.
本発明の記憶媒体は、前記に記載のプログラムを記憶したことを特徴とする。 The storage medium of the present invention stores the program described above.
本発明によれば、コンテキストメモリの初期化を行う際に、符号化効率を良好にするとともに、符号化を行う手間を不要にしてコンテキストメモリを簡単に初期化することができる。 According to the present invention, when the context memory is initialized, the encoding efficiency is improved, and the context memory can be easily initialized without the need for encoding.
(第1の実施形態)
以下、本発明の実施形態について図面を参照しながら説明する。
まず、図2を参照しながら、CABACの符号化処理について説明する。図2は、本実施形態におけるCABAC方式の算術符号化装置200の構成例を示すブロック図である。
図2において、CABAC方式の算術符号化装置200は、二値化部201、コンテキスト計算部202、コンテキストメモリ203、二値算術符号化部204、及びコンテキストメモリ初期化部205により構成されている。
(First embodiment)
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
First, the CABAC encoding process will be described with reference to FIG. FIG. 2 is a block diagram showing a configuration example of the CABAC arithmetic coding apparatus 200 according to the present embodiment.
In FIG. 2, the CABAC method arithmetic coding apparatus 200 includes a
二値化部201は、差分動きベクトルや、直交変換係数、予測モード等の情報D21を入力し、規格によって定められた二値化処理を行い、二値化シンボル(二値データ)D22を生成する。なお、二値化処理の詳細については、非特許文献1に記載されている。
The
コンテキストメモリ203には、発生確率が高い優勢シンボル(most probable symbol、以下、valMPS)とその優勢シンボルの発生確率(以下、pStateIdx)との情報がコンテキストインデックス毎に460個格納されている。コンテキスト計算部202は、二値化シンボルD22に基づいて、コンテキストインデックスD23を算出する。そして、コンテキストインデックスD23をアドレスとしてコンテキストメモリ203からvalMPS及びpStateIdxの情報D24を読み出し、二値算術符号化部204に出力する。
The
コンテキストメモリ初期化部205は、コンテキストインデックスD23を入力してコンテキストメモリ203の初期化を行うためのものである。コンテキストメモリ203の初期化については、図1の説明において後述する。
The context
二値算術符号化部204は、二値化シンボルD22と、valMPS及びpStateIdxの情報D24とに基づいて算術符号化処理を行い、その結果D26を外部に出力する。二値算術符号化部204は、二値化シンボル毎に算術符号化を行い、その都度、コンテキストメモリ203にvalMPS及びpStateIdxの情報D25を出力して更新する。これにより、符号化中の画像の性質にあった符号化を実現している。
The binary
次に、図3を参照しながら、二値算術符号化部204の動作をより詳細に説明する。
図3において、二値算術符号化部204は、領域を指定するcodIRange及びcodILowと呼ばれる変数を用いて算術符号化の処理を行う。算術符号化では、シンボルが取り得る値の個数分で数直線を分割する。ここでは二値算術符号化なので、数直線を2分割する。分割する際の各領域の大きさは各シンボルの発生確率に基づいて決定する。
Next, the operation of the binary
In FIG. 3, a binary
図2に示した例によれば、まず、コンテキストインデックスD23に基づいてコンテキストメモリ203から読み出されたvalMPS及びpStateIdxの情報D24を入力する。この時、入力されたpStateIdxの情報に基づいてcodIRangeの幅を決定する。図3に示す時刻t1の領域のcodIRangeは、発生確率が高いシンボルの領域の幅を示しており、codILowは、領域の下限値を示している。なお、pStateIdxは、0から63までの値を取り、値が63に近い程、codIRangeの幅が大きくなる。
According to the example shown in FIG. 2, first, the valMPS and pStateIdx information D24 read from the
時刻t1において、二値化部201から出力された二値化シンボルD22を1ビットずつ入力する。このとき、入力した二値化シンボルと、valMPSとが一致していた場合は、時刻t2における全領域をcodIRangeの幅の分に設定する。
At time t1, the binarized symbol D22 output from the
次に、時刻t2において、新たなpStateIdx及びvalMPSの情報D24を入力し、同じように領域を分割する。図3に示す例では、領域301が時刻t2におけるcodIRangeになり、下限302が時刻t2におけるcodILowとなる。次の二値化シンボルを同様に1ビットずつ入力し、二値化シンボルとvalMPSとが異なっていた場合は、領域303を時刻t3における全領域として選択する。時刻t3でも同様にpStateIdxに基づいて領域を分割する。下限304が時刻t3におけるcodILowであり、領域305が時刻t3におけるcodIRangeとなる。
Next, at time t2, new pStateIdx and valMPS information D24 are input, and the region is divided in the same manner. In the example shown in FIG. 3, the
このように分割を繰り返して二値算術符号化を進めていくと、領域が狭くなり領域を表現できなくなる。そこでCABAC方式では、codIRangeの幅が0x100より小さくなると正規化処理(以下、Renorm処理)を行い、表現精度を保っている。また、Renorm処理を行う際に、codILowの値に基づいて符号を出力する。なお、この動作の詳細については、非特許文献1に記載されている。
If the division is repeated in this manner and binary arithmetic coding proceeds, the area becomes narrower and the area cannot be expressed. Therefore, in the CABAC method, when the width of codIRange becomes smaller than 0x100, normalization processing (hereinafter referred to as Renorm processing) is performed to maintain expression accuracy. Also, when performing the Renorm process, a code is output based on the value of codILow. The details of this operation are described in
二値算術符号化において、valMPSと二値化シンボルとが一致せずcodIRangeが急速に縮小すると、その分Renorm処理の発生頻度が高くなり、符号も多く発生してしまう。したがって、valMPSと二値化シンボルとが一致する頻度が高いと、Renorm処理の発生頻度が低くなり、符号の発生も抑えられ、符号化効率が良くなる。そこでCABAC方式では、二値化シンボルの1ビットを符号化する毎にvalMPS及びpStateIdxを更新することにより、符号化を進めていくに従ってvalMPSと二値化シンボルとが一致しやすくしている。この結果、符号化効率が良好になる。 In binary arithmetic coding, if valMPS and the binarized symbol do not match and codIRange is rapidly reduced, the frequency of occurrence of the Renorm processing is increased accordingly, and more codes are generated. Therefore, if the frequency with which the valMPS matches the binarized symbol is high, the occurrence frequency of the Renorm process is reduced, the generation of codes is suppressed, and the encoding efficiency is improved. Therefore, in the CABAC system, valMPS and pStateIdx are updated every time one bit of a binarized symbol is encoded, so that the valMPS and the binarized symbol easily coincide with each other as the encoding proceeds. As a result, encoding efficiency is improved.
次に、コンテキストメモリの初期化の動作について図4及び図5を参照しながら説明する。
図4は、非特許文献1に記載されているコンテキストメモリの初期化に用いる変数(m,n)と、コンテキストインデックス(以下、ctxIdx)と、cabac_init_idcとの関係を示す図である。なお、図4においては、ctxIdxは11から23までを示しているが、ctxIdxは0から459まで定義されている。
Next, the context memory initialization operation will be described with reference to FIGS.
FIG. 4 is a diagram illustrating a relationship among variables (m, n), a context index (hereinafter referred to as “ctxIdx”), and cabac_init_idc used for initialization of the context memory described in
cabac_init_idcは、スライスヘッダに含まれており、コンテキストメモリの初期化の時に使用されるものである。例えば、スライスの先頭において、スライスヘッダのcabac_init_idcの値が0だった場合は、図4において、cabac_init_idcが0である行のmとnとを用いて初期化する。 cabac_init_idc is included in the slice header and is used when the context memory is initialized. For example, if the value of cabac_init_idc in the slice header is 0 at the beginning of the slice, initialization is performed using m and n in the row where cabac_init_idc is 0 in FIG.
ここで、従来のコンテキストメモリの初期化の動作について図5を参照しながら説明する。図5は、従来のコンテキストメモリの初期化を行うための構成例を示すブロック図である。
図5において、コンテキストメモリの初期化を行う際には、第1の初期化変数テーブル511と、第2の初期化変数テーブル512と、第3の初期化変数テーブル513と、選択部501と、初期値生成部502と、コンテキストメモリ503とを用いている。
A conventional context memory initialization operation will now be described with reference to FIG. FIG. 5 is a block diagram showing a configuration example for initializing a conventional context memory.
In FIG. 5, when initializing the context memory, the first initialization variable table 511, the second initialization variable table 512, the third initialization variable table 513, the
第1の初期化変数テーブルには、cabac_init_idcが0の場合の初期化変数m及びnの情報がctxIdx分保持されている。また、第2の初期化変数テーブルにはcabac_init_idcが1の場合の初期化変数m及びnの情報がctxIdx分保持されている。同様に第3の初期化変数テーブルにはcabac_init_idcが2の場合の初期化変数m及びnの情報がctxIdx分格納されている。 In the first initialization variable table, information on initialization variables m and n when cabac_init_idc is 0 is held for ctxIdx. The second initialization variable table holds information about initialization variables m and n when cabac_init_idc is 1, for ctxIdx. Similarly, in the third initialization variable table, information on initialization variables m and n when cabac_init_idc is 2 is stored for ctxIdx.
ctxIdx生成部504は、0から459の信号を生成し、第1の初期化変数テーブル511と、第2の初期化変数テーブル512と、第3の初期化変数テーブル513とに出力する。第1の初期化変数テーブル511と、第2の初期化変数テーブル512と、第3の初期化変数テーブル513とにctxIdxが入力されると、選択部501は、ctxIdxをアドレスとして初期化変数m及びnの情報を各テーブルから読み出す。ここで、D50は第1の初期化変数テーブル511から出力される初期化変数m及びnの情報であり、D51は第2の初期化変数テーブル512から出力される初期化変数m及びnの情報である。また、D52は第3の初期化変数テーブル513から出力される初期化変数m及びnの情報である。
The
初期化変数m及びnの情報D50〜D52を選択部501が入力すると、スライスヘッダに含まれるcabac_init_idcの値に従って所定の値に対応する初期化変数の情報D53を初期値生成部502に出力する。なお、スライスヘッダのcabac_init_idcの値に対応した初期化変数テーブルのみにctxIdxを供給するようにしてもよい。
When the
初期値生成部502は、入力した初期化変数m及びnの情報D53から、m及びnの値を以下の数1に示す式に入力し、さらに以下の数2に示す式を用いてコンテキストメモリに格納するためのvalMPS及びpStateIdxの値を算出する。
The initial
ここで、Clip3(x,y,z)は、z<xの時はClip3(x,y,z)=xであり、z>yの時はClip3(x,y,z)=yであり、それ以外の時は、Clip3(x,y,z)=zである。また、スライス毎に異なる不図示の量子化パラメータ(SliceQPy)を入力し、初期値を生成する。 Here, Clip3 (x, y, z) is Clip3 (x, y, z) = x when z <x, and Clip3 (x, y, z) = y when z> y. In other cases, Clip3 (x, y, z) = z. Also, a different quantization parameter (SliceQPy) (not shown) is input for each slice, and an initial value is generated.
以上のようにvalMPS及びpStateIdxの値をctxIdx460個分算出し、valMPS及びpStateIdxの情報D54を0から459までのアドレスを持ち、1アドレス7ビットのデータを保持するコンテキストメモリ503に出力する。さらに、ctxIdx(コンテキストインデックス)D55をコンテキストメモリ503のライトアドレスとして出力する。以上の処理によってコンテキストメモリの初期化を行う。
As described above, the valMPS and pStateIdx values for ctxIdx460 are calculated, and the valMPS and pStateIdx information D54 is output to the
以上説明したコンテキストメモリの初期化動作は、スライスの先頭で必ず行われる。ここで、第1の初期化変数テーブルから第3の初期化変数テーブルのうち、どの初期化変数テーブルを用いてコンテキストメモリを初期化するかについては様々な方法が考えられる。例えば、特許文献1に記載の方法を用いて初期化変数テーブルを選択すると、所定のビット数分だけ符号化を行っているため、多くの処理時間を要してしまう。そこで本実施形態では、より簡単に好適な初期化変数テーブルを決定する手順について説明する。
The context memory initialization operation described above is always performed at the head of the slice. Here, various methods can be considered as to which initialization variable table is used to initialize the context memory from the first initialization variable table to the third initialization variable table. For example, when an initialization variable table is selected using the method described in
図1は、本実施形態に係るコンテキストメモリ初期化部205の構成例を示すブロック図である。
図1において、コンテキストメモリ初期化部205は、第1の初期化変数テーブル101と、第2の初期化変数テーブル102と、第3の初期化変数テーブル103とを備えている。そして、それぞれの初期化変数テーブル101〜103には、ctxIdxとcabac_init_idc毎の初期化変数m及びnの情報とが格納されている。
FIG. 1 is a block diagram illustrating a configuration example of the context
In FIG. 1, the context
第1の初期値生成部104は、スライス毎に異なる量子化パラメータ(SliceQPy)と、第1の初期化変数テーブル101からコンテキストインデックス(ctxIdx)毎に初期化変数m及びnの情報D11とを入力する。また、第2の初期値生成部105は、量子化パラメータ(SliceQPy)と、第2の初期化変数テーブル102からコンテキストインデックス(ctxIdx)毎に初期化変数m及びnの情報D12とを入力する。同様に、第3の初期値生成部106は、量子化パラメータ(SliceQPy)と、第3の初期化変数テーブル103からコンテキストインデックス(ctxIdx)毎に初期化変数m及びnの情報D13とを入力する。
The first initial
そして、第1の初期値生成部104は、数1及び数2に示した式を用いてctxIdx毎にvalMPS及びpStateIdxを算出し、valMPS及びpStateIdxの情報D14を第1の初期値記憶部107に出力して記憶する。第2の初期値生成部105及び第3の初期値生成部106も同様に算出して、それぞれvalMPS及びpStateIdxの情報D15、D16をそれぞれ第2の初期値記憶部108、第3の初期値記憶部109に出力して記憶する。
Then, the first initial
第1の評価部110は、前スライスの符号化が終了した時点でのコンテキストメモリ114に記憶されたvalMPS及びpStateIdxの情報D25を入力する。さらに、第1の初期値記憶部107からvalMPS及びpStateIdxの情報D17を読み出す。次に、前スライスの符号化が終了した時点でのvalMPS及びpStateIdxと、第1の初期値記憶部107に記憶されたvalMPS及びpStateIdxとの差分絶対値をそれぞれctxIdx毎に取る。そして、差分絶対値に基づく評価値を決定し、評価値の情報D20を初期値決定部113に出力する。また、第2の評価部111及び第3の評価部112も同様に、それぞれvalMPS及びpStateIdxの情報D18、D19を読み出し、それぞれが決定した評価値の情報D21、D22を初期値決定部113に出力する。
The
初期値決定部113は、入力された3つの評価値の中から最も評価が高い評価値の初期値(valMPS及びpStateIdx)を選択する。そして、選択した初期値の情報D23とそれに対応するctxIdxD24とをコンテキストメモリ114に出力する。
The initial
第1の初期化変数テーブル101〜第3の初期化変数テーブル103は、ROMなどの記憶装置で実現させるものである。また、図4に示したように、cabac_init_idcにおける0、1、2の何れかの値と、0から459の中のctxIdxの値とが与えられると、cabac_init_idcとctxIdxとに対応した初期化変数m及びnの情報が読み出される。 The first initialization variable table 101 to the third initialization variable table 103 are realized by a storage device such as a ROM. Also, as shown in FIG. 4, when any value of 0, 1, 2 in cabac_init_idc and the value of ctxIdx from 0 to 459 are given, initialization variable m corresponding to cabac_init_idc and ctxIdx And n information is read out.
第1の評価部110〜第3の評価部112は、前回のスライスの最後もしくは、今回のスライスの先頭において、まず、コンテキストメモリ114に保持されているctxIdxの値が0のvalMPS及びpStateIdxの情報を入力する。そして、第1の初期値記憶部107〜第3の初期値記憶部109のそれぞれに記憶されているctxIdxの値が0のvalMPS及びpStateIdxの情報をそれぞれ入力する。なお、コンテキストメモリ114に保持されているvalMPS及びpStateIdxは、前スライスの符号化が終了した時点でのvalMPS及びpStateIdxである。
The
次に、第1の評価部110は、入力された2つのpStateIdxの差分絶対値を算出する。同時に第2の評価部111及び第3の評価部112も同様の差分絶対値を算出する。そして、3つの差分絶対値のうち、値が大きい順にポイントを付加していく。ここで、付加するポイントはペナルティとしての減点方式の評価値であり、評価値が大きいと初期値と前スライスの最終状態との差が大きいことを示している。ただし、valMPSが異なる場合は、ある所定のポイントを付加するようにする。このような評価をctxIdxの値が0から459まで行い、それぞれのcabac_init_idcの評価値の情報D20〜D22を初期値決定部113に出力する。
Next, the
初期値決定部113は、評価値の情報D20〜D22を入力し、最終的に評価値が最も小さい(良好な)valMPS及びpStateIdxの初期値を生成した初期化変数テーブルのvalMPS及びpStateIdxの初期値を選択する。そして、その初期値を用いてコンテキストメモリ114の初期化を行う。具体的には、最も評価値が良好なcabac_init_idcを用いたvalMPS及びpStateIdxの初期値の情報D23をctxIdxD24とともに出力し、コンテキストメモリ114に格納していく。これにより、前スライスにおいて更新してきたvalMPS及びpStateIdxに最も近い値を継承することができ、画像の性質にあった符号化がスライスの先頭から可能となる。また、各cabac_init_idcの初期値を用いて符号化しないようにしたので最適なcabac_init_idcを選択する時間も低減される。
The initial
図6は、本実施形態に係るコンテキストメモリ初期化部205のコンテキスト毎の動作手順の一例を示すフローチャートである。
まず、ステップS61において、第1の評価部110は、スライスの先頭であるか否かを判断する。スライスの先頭であるか否かを判断する際には、スライスごとに異なるSliceQPyの値に変化があった場合に、スライスの先頭であるものと判断するようにしてもよい。この判断の結果、スライスの先頭である場合は、ステップS62に遷移する。一方、ステップS61の判断の結果、スライスの先頭でない場合はそのまま待機する。なお、第2の評価部111及び第3の評価部112においても同様の処理を行う。
FIG. 6 is a flowchart illustrating an example of an operation procedure for each context of the context
First, in step S61, the
次に、ステップS62において、第1の評価部110は、第1の初期化変数テーブル101から算出された優勢シンボル(valMPS)及びその発生確率(pStateIdx)の初期値の情報を第1の初期値記憶部107から読み出す。そして、コンテキストメモリ114に記憶された前スライスの符号化終了時における優勢シンボル(valMPS)及びその発生確率(pStateIdx)の情報を入力する。そして、2つのpStateIdxを比較し、その差分絶対値を算出する。なお、第2の評価部111及び第3の評価部112においても同様の処理を行う。
Next, in step S62, the
次に、ステップS63において、第1の評価部110〜第3の評価部112は、ステップS62で算出した差分絶対値に基づいて評価値を決定する。具体的には、第1の評価部110〜第3の評価部112のそれぞれにおいて算出された3つの差分絶対値を比較して、最も大きかったものに対して評価値としてペナルティを加算する。また、その次に差分評価値が大きいものに対してもペナルティを加算する。そして、このようにして算出した評価値を一旦保持しておき、次のステップS64に遷移する。
Next, in step S63, the
次に、ステップS64において、ctxIdxの値が459までカウントされたか否かを判断する。これはctxIdxにおける全ての評価値を算出するために必要なステップである。この判断の結果、ctxIdxが459に満たない場合はステップS65に遷移し、ctxIdxが459になった場合はステップS66に遷移する。 Next, in step S64, it is determined whether or not the value of ctxIdx has been counted up to 459. This is a necessary step for calculating all evaluation values in ctxIdx. As a result of this determination, if ctxIdx is less than 459, the process proceeds to step S65, and if ctxIdx is 459, the process proceeds to step S66.
次に、ステップS65において、ctxIdxの値をインクリメントし、ステップS62の処理に遷移する。一方、ステップS66においては、初期値決定部113は、ステップS61からステップS65までの処理で得られたcabac_init_idc毎の評価値のうち、最も低い(最も良好な)評価値を選択する。そして、選択した評価値のcabac_init_idcを用いて優勢シンボル(valMPS)及びその発生確率(pStateIdx)の初期化を行い、初期化処理を終了する。
Next, in step S65, the value of ctxIdx is incremented, and the process proceeds to step S62. On the other hand, in step S66, the initial
なお、第1の初期値生成部104がcabac_init_idc毎の優勢シンボルと発生確率との初期値を算出するタイミングとしては、ステップS62において行ってもよく、スライスの先頭になる前に予め保持しておいてもよい。
Note that the timing at which the first initial
以上のように本実施形態によれば、各テーブルから評価値を算出して最も良好な組み合わせを選択するようにしたので、前スライスの最終状態に近い優勢シンボルと発生確率との初期値が得られる。これにより、前スライスにおいて更新してきたvalMPS及びpStateIdxに最も近い値を継承することができ、画像の性質にあった符号化がスライスの先頭から可能となる。 As described above, according to this embodiment, since the evaluation value is calculated from each table and the best combination is selected, the initial values of the dominant symbol and the occurrence probability close to the final state of the previous slice are obtained. It is done. As a result, the values closest to valMPS and pStateIdx updated in the previous slice can be inherited, and encoding suitable for the properties of the image can be performed from the head of the slice.
なお、本実施形態では、初期化の際に、前スライスの最終状態に近い優勢シンボルと発生確率との初期値を用いるようにしたが、シーンチェンジが存在する場合には、画像の性質が前スライスの最終状態とは大きく異なることが考えられる。そこで、シーンチェンジを検出した場合には、本実施形態における処理を停止し、従来の方法により初期値を決定するようにしてもよい。 In this embodiment, the initial value of the dominant symbol and the occurrence probability close to the final state of the previous slice is used at the time of initialization. However, when there is a scene change, the image characteristics are It may be very different from the final state of the slice. Therefore, when a scene change is detected, the processing in this embodiment may be stopped and the initial value may be determined by a conventional method.
また、本実施形態においては、初期化の際に、前スライスの最終状態に近い優勢シンボルと発生確率との初期値を用いるようにしたが、タイプが異なる前スライスよりもタイプが同じ前々スライスを用いた方がよい場合もある。この場合、符号化の対象となるスライスが例えばPスライスである場合、時間的に最も近い同じタイプであるPスライスの優勢シンボル及び発生確率を用いてもよい。 In this embodiment, the initial value of the dominant symbol and the occurrence probability close to the final state of the previous slice is used at the time of initialization. However, the previous slice of the same type than the previous slice of a different type. It may be better to use. In this case, if the slice to be encoded is, for example, a P slice, the dominant symbol and occurrence probability of the P slice of the same type closest in time may be used.
(本発明に係る他の実施形態)
前述した本発明の実施形態における算術符号化装置を構成する各手段、並びに算術符号化方法の各工程は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記憶したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
(Other embodiments according to the present invention)
Each means constituting the arithmetic coding apparatus and each step of the arithmetic coding method in the embodiment of the present invention described above can be realized by operating a program stored in a RAM or ROM of a computer. This program and a computer-readable storage medium storing the program are included in the present invention.
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。 In addition, the present invention can be implemented as, for example, a system, apparatus, method, program, storage medium, or the like. Specifically, the present invention may be applied to a system including a plurality of devices. The present invention may be applied to an apparatus composed of a single device.
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図6に示すフローチャートに対応したプログラム)を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。 The present invention includes a case where a software program (in the embodiment, a program corresponding to the flowchart shown in FIG. 6) for realizing the functions of the above-described embodiments is directly or remotely supplied to a system or apparatus. This includes the case where the system or the computer of the apparatus is also achieved by reading and executing the supplied program code.
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。 Accordingly, since the functions of the present invention are implemented by computer, the program code installed in the computer also implements the present invention. In other words, the present invention includes a computer program itself for realizing the functional processing of the present invention.
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。 In that case, as long as it has the function of a program, it may be in the form of object code, a program executed by an interpreter, script data supplied to the OS, and the like.
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。 Examples of the storage medium for supplying the program include a flexible disk, a hard disk, an optical disk, and a magneto-optical disk. Further, there are MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card, ROM, DVD (DVD-ROM, DVD-R) and the like.
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。 As another program supply method, there is a method of connecting to a homepage on the Internet using a browser of a client computer. It can also be supplied by downloading the computer program itself of the present invention or a compressed file including an automatic installation function from a homepage to a storage medium such as a hard disk.
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。 It can also be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different homepage. That is, the present invention includes a WWW server that allows a plurality of users to download a program file for realizing the functional processing of the present invention on a computer.
また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。 As another method, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and encrypted from a homepage via the Internet to users who have cleared predetermined conditions. Download the key information to be solved. It is also possible to execute the encrypted program by using the key information and install the program on a computer.
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。 Further, the functions of the above-described embodiments are realized by the computer executing the read program. Furthermore, based on the instructions of the program, an OS or the like running on the computer performs part or all of the actual processing, and the functions of the above-described embodiments can be realized by the processing.
さらに、その他の方法として、まず記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。 As another method, a program read from a storage medium is first written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer. Then, based on the instructions of the program, the CPU or the like provided in the function expansion board or function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are also realized by the processing.
101 第1の初期化変数テーブル
102 第2の初期化変数テーブル
103 第3の初期化変数テーブル
104 第1の初期値生成部
105 第2の初期値生成部
106 第3の初期値生成部
107 第1の初期値記憶部
108 第2の初期値記憶部
109 第3の初期値記憶部
110 第1の評価部
111 第2の評価部
112 第3の評価部
113 初期値決定部
114 コンテキストメモリ
201 二値化部
202 コンテキスト計算部
203 コンテキストメモリ
204 二値算術符号化部
205 コンテキストメモリ初期化部
101 First initialization variable table 102 Second initialization variable table 103 Third initialization variable table 104 First initial
Claims (9)
前記コンテキスト毎の優勢シンボル及び発生確率の複数の組み合わせの情報を格納する記憶手段と、
前記記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価手段と、
前記評価手段によって生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定手段とを有することを特徴とする算術符号化装置。 A context memory that stores information on the dominant symbol for each context and the probability of occurrence of the dominant symbol is initialized for each slice, and binary data is stored using the information on the dominant symbol and the probability of occurrence stored in the context memory. An arithmetic encoding device that performs arithmetic encoding,
Storage means for storing information of a plurality of combinations of dominant symbols and occurrence probabilities for each context;
Evaluation means for generating an evaluation value by comparing a plurality of combinations of dominant symbols and occurrence probabilities stored in the storage means with a combination of dominant symbols and occurrence probabilities for each context at the end of encoding of the previous slice; ,
And an initial value determining means for determining an initial value of a dominant symbol and an occurrence probability to be stored in the context memory at the time of initialization based on the evaluation value generated by the evaluation means. Encoding device.
記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価工程と、
前記評価工程において生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定工程とを有することを特徴とする算術符号化方法。 A context memory that stores information on the dominant symbol for each context and the probability of occurrence of the dominant symbol is initialized for each slice, and binary data is stored using the information on the dominant symbol and the probability of occurrence stored in the context memory. An arithmetic encoding method for performing arithmetic encoding,
An evaluation step for generating an evaluation value by comparing a plurality of combinations of dominant symbols and occurrence probabilities stored in the storage means with a combination of dominant symbols and occurrence probabilities for each context at the end of encoding of the previous slice;
And an initial value determining step of determining an initial value of a dominant symbol and an occurrence probability to be stored in the context memory at the time of initialization based on the evaluation value generated in the evaluation step. Encoding method.
記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価工程と、
前記評価工程において生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定工程とをコンピュータに実行させることを特徴とするプログラム。 A context memory that stores information on the dominant symbol for each context and the probability of occurrence of the dominant symbol is initialized for each slice, and binary data is stored using the information on the dominant symbol and the probability of occurrence stored in the context memory. A program for causing a computer to execute each step of an arithmetic encoding method for performing arithmetic encoding,
An evaluation step for generating an evaluation value by comparing a plurality of combinations of dominant symbols and occurrence probabilities stored in the storage means with a combination of dominant symbols and occurrence probabilities for each context at the end of encoding of the previous slice;
An initial value determining step for determining a dominant symbol and an initial value of occurrence probability to be stored in the context memory at the time of initialization based on the evaluation value generated in the evaluation step is performed. Program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009011355A JP2010171655A (en) | 2009-01-21 | 2009-01-21 | Arithmetic coding apparatus, and arithmetic coding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009011355A JP2010171655A (en) | 2009-01-21 | 2009-01-21 | Arithmetic coding apparatus, and arithmetic coding method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010171655A true JP2010171655A (en) | 2010-08-05 |
Family
ID=42703355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009011355A Pending JP2010171655A (en) | 2009-01-21 | 2009-01-21 | Arithmetic coding apparatus, and arithmetic coding method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010171655A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012134757A (en) * | 2010-12-21 | 2012-07-12 | Nippon Telegr & Teleph Corp <Ntt> | Context adaptation entropy encoding method, context adaptation entropy decoding method, context adaptation entropy encoding apparatus, context adaptation entropy decoding apparatus and program thereof |
JP2015504292A (en) * | 2012-01-19 | 2015-02-05 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Context-adaptive entropy coding with reduced initial value set |
CN106059593A (en) * | 2010-09-30 | 2016-10-26 | 夏普株式会社 | Methods and systems for context initialization in video coding and decoding |
-
2009
- 2009-01-21 JP JP2009011355A patent/JP2010171655A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059593A (en) * | 2010-09-30 | 2016-10-26 | 夏普株式会社 | Methods and systems for context initialization in video coding and decoding |
JP2012134757A (en) * | 2010-12-21 | 2012-07-12 | Nippon Telegr & Teleph Corp <Ntt> | Context adaptation entropy encoding method, context adaptation entropy decoding method, context adaptation entropy encoding apparatus, context adaptation entropy decoding apparatus and program thereof |
JP2015504292A (en) * | 2012-01-19 | 2015-02-05 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Context-adaptive entropy coding with reduced initial value set |
US9654772B2 (en) | 2012-01-19 | 2017-05-16 | Qualcomm Incorporated | Context adaptive entropy coding with a reduced initialization value set |
JP2017225132A (en) * | 2012-01-19 | 2017-12-21 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Context adaptive entropy coding with reduced initialization value set |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11871002B2 (en) | Iterative techniques for encoding video content | |
JP7359153B2 (en) | Image processing device and method | |
JP4878262B2 (en) | Entropy encoding device | |
US7408487B2 (en) | Method and apparatus for CABAC-based encoding having high compression ratio using improved context model selection and method and apparatus for CABAC-based decoding | |
JP6706357B2 (en) | Method, coding device and corresponding computer program for coding a current block of a first image component with respect to a reference block of at least one second image component | |
US7242328B1 (en) | Variable length coding for sparse coefficients | |
JP2008118304A (en) | Decoding apparatus and decoding method | |
JP2006197610A (en) | Context-adaptive variable length coding apparatus and methods | |
KR20230143160A (en) | Techniques for creating encoding ladders for each title | |
JP2010171655A (en) | Arithmetic coding apparatus, and arithmetic coding method | |
JP2011176407A (en) | Image encoder, image decoder, image encoding method, image decoding method and program therefor | |
JP4865662B2 (en) | Entropy encoding apparatus, entropy encoding method, and computer program | |
JP2015503284A (en) | Method and associated device for determining changeable elements of an encoded bitstream | |
JP4734047B2 (en) | Process and apparatus for compressing video documents | |
JP4850806B2 (en) | Entropy encoding apparatus, entropy encoding method, and computer program | |
JP5181816B2 (en) | Image processing apparatus, image processing method, computer program, and information recording medium | |
JP6280266B2 (en) | Decoding device and decoding method | |
US8260070B1 (en) | Method and system to generate a compressed image utilizing custom probability tables | |
Kamal | Iteration free fractal image compression for color images using vector quantization, genetic algorithm and simulated annealing | |
JP2005217871A (en) | Arithmetic decoding apparatus and arithmetic decoding program | |
JP6080077B2 (en) | Image encoding method and image encoding apparatus | |
JP2004253889A (en) | Image processing apparatus and method | |
JP2014116835A (en) | Decoding device, encoding device, decoding method and encoding method | |
JP5862399B2 (en) | Information processing apparatus and information processing program | |
JP2009033367A (en) | Image processor and method therefor |