JP2010171655A - Arithmetic coding apparatus, and arithmetic coding method - Google Patents

Arithmetic coding apparatus, and arithmetic coding method Download PDF

Info

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
Application number
JP2009011355A
Other languages
Japanese (ja)
Inventor
Masashi Kawakami
雅司 川上
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2009011355A priority Critical patent/JP2010171655A/en
Publication of JP2010171655A publication Critical patent/JP2010171655A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To make coding efficiency satisfactory, and to easily initialize a context memory. <P>SOLUTION: During initializing the context memory 114 for storing information between an advantageous symbol (valMPS) and occurrence probability (pStateIdx) of the advantageous symbol of each context in each slice, a combination of valMPS and pStateIdx of each context calculated from three tables is compared with a combination of valMPS and pStateIdx of each context upon the end of coding of the preceding slice stored in the context memory 114 to generate evaluation values. Between the generated evaluation values, a combination of valMPS and pStateIdx to have the best evaluation value is determined as an initial value. <P>COPYRIGHT: (C)2010,JPO&INPIT

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 Patent Document 1, encoding efficiency is increased by appropriately selecting and using an initialization variable table. Specifically, first, initialization is performed using the initialization variable in the first initialization variable table, and encoding is performed until a predetermined number of bits is generated. Next, initialization is performed using the initialization variable in the second initialization variable table, and encoding is similarly performed until a predetermined number of bits is generated. Finally, initialization is performed using the initialization variable of the third initialization variable table, and similarly, encoding is performed until a predetermined number of bits is generated, and the most efficient initialization variable table is selected, Encoding for one slice is performed.

特開2006−279333号公報JP 2006-279333 A ITU−T Recommendation H.264ITU-T Recommendation H. H.264

しかしながら、特許文献1に記載の算術符号化装置では、3つの初期化変数テーブルそれぞれに対して、所定のビット数分だけ符号化を行っているため、多くの処理時間を要するという問題があった。   However, the arithmetic coding apparatus described in Patent Document 1 has a problem that it takes a lot of processing time because it encodes each of the three initialization variable tables by a predetermined number of bits. .

本発明は前述の問題点に鑑み、符号化効率を良好にするとともに、コンテキストメモリを簡単に初期化できるようにすることを目的としている。   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 binarization unit 201, a context calculation unit 202, a context memory 203, a binary arithmetic coding unit 204, and a context memory initialization unit 205.

二値化部201は、差分動きベクトルや、直交変換係数、予測モード等の情報D21を入力し、規格によって定められた二値化処理を行い、二値化シンボル(二値データ)D22を生成する。なお、二値化処理の詳細については、非特許文献1に記載されている。   The binarization unit 201 inputs information D21 such as a differential motion vector, orthogonal transform coefficient, prediction mode, etc., performs binarization processing defined by the standard, and generates a binarized symbol (binary data) D22 To do. The details of the binarization process are described in Non-Patent Document 1.

コンテキストメモリ203には、発生確率が高い優勢シンボル(most probable symbol、以下、valMPS)とその優勢シンボルの発生確率(以下、pStateIdx)との情報がコンテキストインデックス毎に460個格納されている。コンテキスト計算部202は、二値化シンボルD22に基づいて、コンテキストインデックスD23を算出する。そして、コンテキストインデックスD23をアドレスとしてコンテキストメモリ203からvalMPS及びpStateIdxの情報D24を読み出し、二値算術符号化部204に出力する。   The context memory 203 stores 460 pieces of information on the most probable symbol (hereinafter, valMPS) having a high occurrence probability and the occurrence probability (hereinafter, pStateIdx) of the dominant symbol for each context index. The context calculation unit 202 calculates a context index D23 based on the binarized symbol D22. Then, the valMPS and pStateIdx information D24 is read from the context memory 203 using the context index D23 as an address, and output to the binary arithmetic encoding unit 204.

コンテキストメモリ初期化部205は、コンテキストインデックスD23を入力してコンテキストメモリ203の初期化を行うためのものである。コンテキストメモリ203の初期化については、図1の説明において後述する。   The context memory initialization unit 205 receives the context index D23 and initializes the context memory 203. The initialization of the context memory 203 will be described later in the description of FIG.

二値算術符号化部204は、二値化シンボルD22と、valMPS及びpStateIdxの情報D24とに基づいて算術符号化処理を行い、その結果D26を外部に出力する。二値算術符号化部204は、二値化シンボル毎に算術符号化を行い、その都度、コンテキストメモリ203にvalMPS及びpStateIdxの情報D25を出力して更新する。これにより、符号化中の画像の性質にあった符号化を実現している。   The binary arithmetic coding unit 204 performs arithmetic coding processing based on the binarized symbol D22 and the information D24 of valMPS and pStateIdx, and outputs the result D26 to the outside. The binary arithmetic encoding unit 204 performs arithmetic encoding for each binarized symbol, and outputs and updates valMPS and pStateIdx information D25 to the context memory 203 each time. Thereby, the encoding suitable for the property of the image being encoded is realized.

次に、図3を参照しながら、二値算術符号化部204の動作をより詳細に説明する。
図3において、二値算術符号化部204は、領域を指定するcodIRange及びcodILowと呼ばれる変数を用いて算術符号化の処理を行う。算術符号化では、シンボルが取り得る値の個数分で数直線を分割する。ここでは二値算術符号化なので、数直線を2分割する。分割する際の各領域の大きさは各シンボルの発生確率に基づいて決定する。
Next, the operation of the binary arithmetic encoding unit 204 will be described in more detail with reference to FIG.
In FIG. 3, a binary arithmetic encoding unit 204 performs arithmetic encoding processing using variables called codIRange and codILow that specify regions. In arithmetic coding, a number line is divided by the number of values that a symbol can take. Since binary arithmetic coding is used here, the number line is divided into two. The size of each area at the time of division is determined based on the probability of occurrence of each symbol.

図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 context memory 203 based on the context index D23 is input. At this time, the width of codIRange is determined based on the input pStateIdx information. The codIRange of the region at time t1 shown in FIG. 3 indicates the width of the symbol region having a high probability of occurrence, and codILow indicates the lower limit value of the region. Note that pStateIdx takes a value from 0 to 63, and the closer the value is to 63, the greater the width of codIRange.

時刻t1において、二値化部201から出力された二値化シンボルD22を1ビットずつ入力する。このとき、入力した二値化シンボルと、valMPSとが一致していた場合は、時刻t2における全領域をcodIRangeの幅の分に設定する。   At time t1, the binarized symbol D22 output from the binarization unit 201 is input bit by bit. At this time, if the input binarized symbol matches valMPS, the entire region at time t2 is set to the width of codIRange.

次に、時刻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 region 301 is codIRange at time t2, and the lower limit 302 is codILow at time t2. Similarly, the next binarized symbol is input bit by bit, and if the binarized symbol and valMPS are different, the region 303 is selected as the entire region at time t3. Similarly at time t3, the region is divided based on pStateIdx. The lower limit 304 is codILow at time t3, and the region 305 is codIRange at time t3.

このように分割を繰り返して二値算術符号化を進めていくと、領域が狭くなり領域を表現できなくなる。そこで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 Non-Patent Document 1.

二値算術符号化において、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 Non-Patent Document 1. In FIG. 4, ctxIdx indicates 11 to 23, but ctxIdx is defined from 0 to 459.

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 selection unit 501, An initial value generation unit 502 and a context memory 503 are used.

第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 ctxIdx generation unit 504 generates a signal from 0 to 459 and outputs the signal to the first initialization variable table 511, the second initialization variable table 512, and the third initialization variable table 513. When ctxIdx is input to the first initialization variable table 511, the second initialization variable table 512, and the third initialization variable table 513, the selection unit 501 uses the ctxIdx as an address as an initialization variable m. And n information is read from each table. Here, D50 is information on the initialization variables m and n output from the first initialization variable table 511, and D51 is information on the initialization variables m and n output from the second initialization variable table 512. It is. D52 is information on initialization variables m and n output from the third initialization variable table 513.

初期化変数m及びnの情報D50〜D52を選択部501が入力すると、スライスヘッダに含まれるcabac_init_idcの値に従って所定の値に対応する初期化変数の情報D53を初期値生成部502に出力する。なお、スライスヘッダのcabac_init_idcの値に対応した初期化変数テーブルのみにctxIdxを供給するようにしてもよい。   When the selection unit 501 inputs the information D50 to D52 of the initialization variables m and n, the initialization variable information D53 corresponding to a predetermined value is output to the initial value generation unit 502 according to the value of cabac_init_idc included in the slice header. Note that ctxIdx may be supplied only to the initialization variable table corresponding to the value of cabac_init_idc in the slice header.

初期値生成部502は、入力した初期化変数m及びnの情報D53から、m及びnの値を以下の数1に示す式に入力し、さらに以下の数2に示す式を用いてコンテキストメモリに格納するためのvalMPS及びpStateIdxの値を算出する。   The initial value generation unit 502 inputs the values of m and n from the input information D53 of the initialization variables m and n into the formula shown in the following formula 1, and further uses the formula shown in the following formula 2 to The values of valMPS and pStateIdx for storing in are calculated.

Figure 2010171655
Figure 2010171655

Figure 2010171655
Figure 2010171655

ここで、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 context memory 503 having addresses 0 to 459 and holding 7 bits of data for one address. Further, ctxIdx (context index) D55 is output as the write address of the context memory 503. The context memory is initialized by the above processing.

以上説明したコンテキストメモリの初期化動作は、スライスの先頭で必ず行われる。ここで、第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 Patent Document 1, encoding is performed for a predetermined number of bits, which requires a lot of processing time. Therefore, in the present embodiment, a procedure for determining a suitable initialization variable table more easily will be described.

図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 memory initialization unit 205 according to the present embodiment.
In FIG. 1, the context memory initialization unit 205 includes a first initialization variable table 101, a second initialization variable table 102, and a third initialization variable table 103. In each of the initialization variable tables 101 to 103, ctxIdx and information on initialization variables m and n for each cabac_init_idc are stored.

第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 value generation unit 104 receives a different quantization parameter (SliceQPy) for each slice, and information D11 of initialization variables m and n for each context index (ctxIdx) from the first initialization variable table 101. To do. In addition, the second initial value generation unit 105 inputs the quantization parameter (SliceQPy) and the information D12 of the initialization variables m and n for each context index (ctxIdx) from the second initialization variable table 102. Similarly, the third initial value generation unit 106 inputs a quantization parameter (SliceQPy) and information D13 of initialization variables m and n for each context index (ctxIdx) from the third initialization variable table 103. .

そして、第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 value generation unit 104 calculates valMPS and pStateIdx for each ctxIdx using the equations shown in Equation 1 and Equation 2, and stores the information D14 of valMPS and pStateIdx in the first initial value storage unit 107. Output and store. The second initial value generation unit 105 and the third initial value generation unit 106 calculate in the same manner, and information D15 and D16 of valMPS and pStateIdx, respectively, are stored in the second initial value storage unit 108 and the third initial value storage, respectively. The data is output to the unit 109 and stored.

第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 first evaluation unit 110 receives the valMPS and pStateIdx information D25 stored in the context memory 114 at the time when the previous slice has been encoded. Further, the information D17 of valMPS and pStateIdx is read from the first initial value storage unit 107. Next, an absolute difference value between valMPS and pStateIdx at the time when encoding of the previous slice is completed and valMPS and pStateIdx stored in the first initial value storage unit 107 is obtained for each ctxIdx. Then, the evaluation value based on the absolute difference value is determined, and the evaluation value information D20 is output to the initial value determination unit 113. Similarly, the second evaluation unit 111 and the third evaluation unit 112 read the information D18 and D19 of valMPS and pStateIdx, respectively, and output the information D21 and D22 of the evaluation values determined to the initial value determination unit 113, respectively. To do.

初期値決定部113は、入力された3つの評価値の中から最も評価が高い評価値の初期値(valMPS及びpStateIdx)を選択する。そして、選択した初期値の情報D23とそれに対応するctxIdxD24とをコンテキストメモリ114に出力する。   The initial value determination unit 113 selects the initial value (valMPS and pStateIdx) of the evaluation value having the highest evaluation from the three input evaluation values. Then, the selected initial value information D23 and the corresponding ctxIdxD24 are output to the context memory 114.

第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 first evaluation unit 110 to the third evaluation unit 112, at the end of the previous slice or the start of the current slice, first, information on valMPS and pStateIdx having a value of ctxIdx held in the context memory 114 of 0 Enter. Then, valMPS and pStateIdx information each having a ctxIdx value of 0 stored in each of the first initial value storage unit 107 to the third initial value storage unit 109 are input. Note that valMPS and pStateIdx held in the context memory 114 are valMPS and pStateIdx at the time when encoding of the previous slice is completed.

次に、第1の評価部110は、入力された2つのpStateIdxの差分絶対値を算出する。同時に第2の評価部111及び第3の評価部112も同様の差分絶対値を算出する。そして、3つの差分絶対値のうち、値が大きい順にポイントを付加していく。ここで、付加するポイントはペナルティとしての減点方式の評価値であり、評価値が大きいと初期値と前スライスの最終状態との差が大きいことを示している。ただし、valMPSが異なる場合は、ある所定のポイントを付加するようにする。このような評価をctxIdxの値が0から459まで行い、それぞれのcabac_init_idcの評価値の情報D20〜D22を初期値決定部113に出力する。   Next, the first evaluation unit 110 calculates the absolute difference between the two input pStateIdx. At the same time, the second evaluation unit 111 and the third evaluation unit 112 also calculate the same absolute difference value. Then, points are added in descending order of the three difference absolute values. Here, the added point is an evaluation value of a penalty method as a penalty, and a large evaluation value indicates that a difference between the initial value and the final state of the previous slice is large. However, when valMPS is different, a certain predetermined point is added. Such evaluation is performed with the value of ctxIdx from 0 to 459, and the evaluation value information D20 to D22 of each cabac_init_idc is output to the initial value determination unit 113.

初期値決定部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 value determination unit 113 receives the evaluation value information D20 to D22, and finally generates the initial values of valMPS and pStateIdx having the smallest (good) evaluation values. The initial values of the valMPS and pStateIdx of the initialization variable table Select. Then, the context memory 114 is initialized using the initial value. Specifically, the initial value information D23 of valMPS and pStateIdx using cabac_init_idc having the best evaluation value is output together with ctxIdxD24 and stored in the context memory 114. 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 addition, since encoding is not performed using the initial value of each cabac_init_idc, the time for selecting the optimum cabac_init_idc is also reduced.

図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 memory initialization unit 205 according to the present embodiment.
First, in step S61, the first evaluation unit 110 determines whether or not it is the head of a slice. When determining whether or not it is the head of a slice, if there is a change in the value of SliceQPy that differs for each slice, it may be determined that it is the head of a slice. If the result of this determination is that it is the head of a slice, the process proceeds to step S62. On the other hand, if the result of determination in step S61 is not the head of the slice, the process waits as it is. The same process is performed in the second evaluation unit 111 and the third evaluation unit 112.

次に、ステップS62において、第1の評価部110は、第1の初期化変数テーブル101から算出された優勢シンボル(valMPS)及びその発生確率(pStateIdx)の初期値の情報を第1の初期値記憶部107から読み出す。そして、コンテキストメモリ114に記憶された前スライスの符号化終了時における優勢シンボル(valMPS)及びその発生確率(pStateIdx)の情報を入力する。そして、2つのpStateIdxを比較し、その差分絶対値を算出する。なお、第2の評価部111及び第3の評価部112においても同様の処理を行う。   Next, in step S62, the first evaluation unit 110 uses the initial value information of the dominant symbol (valMPS) calculated from the first initialization variable table 101 and the occurrence probability (pStateIdx) as the first initial value. Read from the storage unit 107. Then, the information of the dominant symbol (valMPS) and the occurrence probability (pStateIdx) at the end of encoding of the previous slice stored in the context memory 114 is input. Then, the two pStateIdx are compared, and the absolute value of the difference is calculated. The same process is performed in the second evaluation unit 111 and the third evaluation unit 112.

次に、ステップS63において、第1の評価部110〜第3の評価部112は、ステップS62で算出した差分絶対値に基づいて評価値を決定する。具体的には、第1の評価部110〜第3の評価部112のそれぞれにおいて算出された3つの差分絶対値を比較して、最も大きかったものに対して評価値としてペナルティを加算する。また、その次に差分評価値が大きいものに対してもペナルティを加算する。そして、このようにして算出した評価値を一旦保持しておき、次のステップS64に遷移する。   Next, in step S63, the first evaluation unit 110 to the third evaluation unit 112 determine an evaluation value based on the difference absolute value calculated in step S62. Specifically, three difference absolute values calculated in each of the first evaluation unit 110 to the third evaluation unit 112 are compared, and a penalty is added as an evaluation value to the largest value. A penalty is also added to the next largest difference evaluation value. Then, the evaluation value calculated in this way is temporarily held, and the process proceeds to the next step S64.

次に、ステップ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 value determination unit 113 selects the lowest (best) evaluation value among the evaluation values for each cabac_init_idc obtained by the processing from step S61 to step S65. Then, the dominant symbol (valMPS) and its occurrence probability (pStateIdx) are initialized using the selected evaluation value cabac_init_idc, and the initialization process is terminated.

なお、第1の初期値生成部104がcabac_init_idc毎の優勢シンボルと発生確率との初期値を算出するタイミングとしては、ステップS62において行ってもよく、スライスの先頭になる前に予め保持しておいてもよい。   Note that the timing at which the first initial value generation unit 104 calculates the initial value of the dominant symbol and occurrence probability for each cabac_init_idc may be performed in step S62, and is stored in advance before becoming the head of the slice. May be.

以上のように本実施形態によれば、各テーブルから評価値を算出して最も良好な組み合わせを選択するようにしたので、前スライスの最終状態に近い優勢シンボルと発生確率との初期値が得られる。これにより、前スライスにおいて更新してきた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.

本発明の実施形態に係るコンテキストメモリ初期化部の構成例を示すブロック図である。It is a block diagram which shows the structural example of the context memory initialization part which concerns on embodiment of this invention. 本発明の実施形態におけるCABAC方式の算術符号化装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the arithmetic encoding apparatus of the CABAC system in embodiment of this invention. 二値算術符号化の動作の一例を示す概念図である。It is a conceptual diagram which shows an example of the operation | movement of binary arithmetic coding. コンテキストメモリの初期化に用いる変数(m,n)と、コンテキストインデックスと、cabac_init_idcとの関係を示す図である。It is a figure which shows the relationship between the variable (m, n) used for initialization of a context memory, a context index, and cabac_init_idc. 従来のコンテキストメモリの初期化を行うための構成例を示すブロック図である。It is a block diagram which shows the structural example for initializing the conventional context memory. 本発明の実施形態に係るコンテキストメモリ初期化部の動作手順の一例を示すフローチャートである。It is a flowchart which shows an example of the operation | movement procedure of the context memory initialization part which concerns on embodiment of this invention.

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 value generation unit 105 Second initial value generation unit 106 Third initial value generation unit 107 1 initial value storage unit 108 second initial value storage unit 109 third initial value storage unit 110 first evaluation unit 111 second evaluation unit 112 third evaluation unit 113 initial value determination unit 114 context memory 201 2 Valuation unit 202 context calculation unit 203 context memory 204 binary arithmetic encoding unit 205 context memory initialization unit

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.
前記初期値決定手段は、前記記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせのうち、前記評価値が最も良好である組み合わせを前記コンテキストメモリに格納する初期値として決定することを特徴とする請求項1に記載の算術符号化装置。   The initial value determining means determines, as an initial value to be stored in the context memory, a combination having the best evaluation value among a plurality of combinations of dominant symbols and occurrence probabilities stored in the storage means. The arithmetic coding apparatus according to claim 1. 前記評価手段は、前記記憶手段に記憶された前記優勢シンボルの発生確率と、前回のスライスの符号化終了時の優勢シンボルの発生確率との差分絶対値を算出し、前記算出した差分絶対値に基づいて評価値を生成することを特徴とする請求項1又は2に記載の算術符号化装置。   The evaluation means calculates a difference absolute value between the occurrence probability of the dominant symbol stored in the storage means and the occurrence probability of the dominant symbol at the end of encoding of the previous slice, and calculates the difference absolute value The arithmetic coding device according to claim 1, wherein an evaluation value is generated based on the arithmetic coding device. 前記評価手段は、前記優勢シンボル及び発生確率の比較の結果に応じて評価値に重みを付加することを特徴とする請求項1に記載の算術符号化装置。   The arithmetic coding apparatus according to claim 1, wherein the evaluation unit adds a weight to the evaluation value according to a result of comparison between the dominant symbol and the occurrence probability. 前記評価手段は、前回に符号化したスライスのタイプと次に符号化するスライスのタイプとが異なる場合は、時間的に最も近い同じタイプであるスライスの優勢シンボル及び発生確率を用いて評価値を生成することを特徴とする請求項1に記載の算術符号化装置。   If the type of the previously encoded slice and the type of the next encoded slice are different, the evaluation means calculates the evaluation value using the dominant symbol and occurrence probability of the slice that is the closest in time. The arithmetic coding apparatus according to claim 1, wherein the arithmetic coding apparatus is generated. 前記評価手段は、前回に符号化したスライスと次に符号化するスライスとの間にシーンチェンジが存在する場合には、評価値を生成しないようにすることを特徴とする請求項1に記載の算術符号化装置。   2. The evaluation unit according to claim 1, wherein the evaluation unit does not generate an evaluation value when a scene change exists between a previously encoded slice and a next encoded slice. Arithmetic coding 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.
請求項8に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。   A computer-readable storage medium storing the program according to claim 8.
JP2009011355A 2009-01-21 2009-01-21 Arithmetic coding apparatus, and arithmetic coding method Pending JP2010171655A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (5)

* Cited by examiner, † Cited by third party
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