JP4936574B2 - Encoding apparatus and control method thereof - Google Patents
Encoding apparatus and control method thereof Download PDFInfo
- Publication number
- JP4936574B2 JP4936574B2 JP2011045692A JP2011045692A JP4936574B2 JP 4936574 B2 JP4936574 B2 JP 4936574B2 JP 2011045692 A JP2011045692 A JP 2011045692A JP 2011045692 A JP2011045692 A JP 2011045692A JP 4936574 B2 JP4936574 B2 JP 4936574B2
- Authority
- JP
- Japan
- Prior art keywords
- section
- output
- normalization
- bits
- unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本発明は、画像データ等のデジタル情報から生成された2値シンボル列を算術符号化する技術に関するものである。 The present invention relates to a technique for arithmetically encoding a binary symbol sequence generated from digital information such as image data.
近年、デジタル信号処理技術の進歩により、動画像や静止画像、音声等、大量のデジタル情報を高能率符号化し、小型記録媒体への記録や通信媒体による伝送を行うことが可能になっている。このような技術を応用し、テレビ放送やビデオカメラの映像をストリームに変換できる映像符号化装置の開発が行われている。動画像の映像符号化方法の中では、とりわけITU−Tが策定した規格H.264(別名MPEG4 Part10/AVC)が注目されている。昨今における高能率符号化の圧縮効果は、エントロピー符号化によるものが大きく、特に効率の高いエントロピー符号化方法として算術符号化が挙げられ、上記のH.264においても採用されている。
In recent years, with the advancement of digital signal processing technology, it has become possible to perform high-efficiency encoding of a large amount of digital information such as moving images, still images, and voices, and to perform recording on a small recording medium or transmission via a communication medium. By applying such technology, video encoding devices capable of converting TV broadcast and video camera images into streams have been developed. Among video coding methods for moving images, the standard H.264 established by ITU-T, among others. H.264 (also known as
H.264ではContext−based Adaptive Binary Arithmetic Codingと呼ばれる算術符号化(以下、CABACと称す)と、Context−based Adaptive Variable length Codingと呼ばれる可変長符号化(以下、CAVLCと称す)とが採用されている。 H. H.264 employs arithmetic coding called Context-based Adaptive Binary Arithmetic Coding (hereinafter referred to as CABAC) and variable-length coding called Context-based Adaptive Variable length Coding (hereinafter referred to as CAVLC).
前記CABAC及びCAVLCに着目した先行例として、特許文献1が提案されている。この特許文献1の「画像情報符号化方法及び画像情報復号方法」には、CABACへの入出力データ量を制限し、復号化器の処理時間を保証することを目的とした発明が開示されている。
図5は従来の算術符号化方法の処理手順を示すフローチャートである。なお、この処理手順はITU−T H.264規格書により定められており、公知のものである。H.264における算術符号化、すなわちCABACは、2値シンボルの入力に対応している。 FIG. 5 is a flowchart showing a processing procedure of a conventional arithmetic coding method. This processing procedure is described in ITU-T H.264. It is defined by the H.264 standard and is known. H. The arithmetic coding in H.264, ie CABAC, corresponds to the input of binary symbols.
図5においてステップS900でシンボルの入力が終了したか否かを判定し、未完であると判断した場合にはステップS901にてシンボルを入力する。ここで入力されるシンボルとは0または1の2値シンボルである。次にステップS902は区間を分割する。区間とは、0から1023までの整数領域内で下端と長さによって表現される。区間の分割とは、2値シンボルの発生確率の比により、区間を二つに分けることである。例えば、シンボル“0”の発生確率が75%で、シンボル“1”の発生確率が25%の場合、区間は75:25の比で分割する(この場合、シンボル“0”を優勢シンボル、シンボル“1”を劣勢シンボルと呼ぶ)。続くステップS903は、前記入力シンボルに従って、この分割された区間のいずれか一方を選択する。 In FIG. 5, it is determined whether or not the input of the symbol is completed in step S900. If it is determined that the input is not complete, the symbol is input in step S901. The symbol input here is a binary symbol of 0 or 1. Next, step S902 divides the section. The section is expressed by a lower end and a length in an integer area from 0 to 1023. The division of the section is to divide the section into two according to the ratio of occurrence probability of binary symbols. For example, when the occurrence probability of the symbol “0” is 75% and the occurrence probability of the symbol “1” is 25%, the section is divided at a ratio of 75:25 (in this case, the symbol “0” is the dominant symbol, the symbol “1” is called the inferior symbol). In subsequent step S903, one of the divided sections is selected in accordance with the input symbol.
例えば、図6のように、現在の区間が下端の値が21、長さ320で表されているとする。0と1の発生確率が75%と25%の場合とする。今、入力したシンボルが“1”であるとき、“1”の区間が選択される。この結果、新たな下端は261、長さは80となる。 For example, as shown in FIG. 6, it is assumed that the current section is represented by a lower end value of 21 and a length of 320. Assume that the occurrence probability of 0 and 1 is 75% and 25%. If the input symbol is “1”, the section “1” is selected. As a result, the new lower end is 261 and the length is 80.
次にステップS904では、新たな区間の長さが256未満であるか否かを判定する。区間の長さが256以上の場合は、ステップS900へと戻る。また、図6で説明した例のように区間の長さ80となり、256を下回る場合は、ここでステップS905へ分岐する。 In step S904, it is determined whether the length of the new section is less than 256. If the length of the section is 256 or more, the process returns to step S900. If the section length is 80 as in the example described with reference to FIG. 6 and is less than 256, the process branches to step S905.
ステップS905では、区間の下端の値が256未満であるか否かを判定する。区間の下端が256未満の場合はステップS906へ分岐し、符号列として“0”を出力し、ステップS907は後述する保留ビット数に相当する個数の“1”を符号列として出力する。また、保留ビット数はここでゼロにリセットされる。ステップS908は、区間の正規化を行う。正規化とは、256未満になった区間の長さを拡大し、以降の処理の精度を確保する処理である。このステップS908では、下端の値と区間の長さをそれぞれ2倍にする。 In step S905, it is determined whether the lower end value of the section is less than 256. If the lower end of the section is less than 256, the process branches to step S906, where “0” is output as a code string, and step S907 outputs a number “1” corresponding to the number of reserved bits described later as a code string. The reserved bit number is reset to zero here. Step S908 normalizes the section. Normalization is a process of enlarging the length of a section less than 256 and ensuring the accuracy of subsequent processing. In step S908, the lower end value and the section length are each doubled.
ステップS905において、下端が256以上であると判定した場合、処理はステップS909に分岐し、区間の下端が512未満か否かを判定する。区間の下端が512未満の場合にはステップS910へ、512以上の場合にはステップS912へ分岐する。 If it is determined in step S905 that the lower end is 256 or more, the process branches to step S909, and it is determined whether the lower end of the section is less than 512. If the lower end of the section is less than 512, the process branches to step S910. If it is 512 or more, the process branches to step S912.
ステップS912では、符号列として“1”を出力し、ステップS913では後述する保留ビット数に相当する個数の“0”を続く符号列として出力する。保留ビット数はここでもゼロにリセットされる。ステップS914では、区間の正規化を行う。このステップによる正規化では、下端から512を引いて2倍した値を新たな下端とし、また、区間の長さを2倍する。 In step S912, “1” is output as a code string, and in step S913, “0” corresponding to the number of reserved bits described later is output as a subsequent code string. The number of reserved bits is again reset to zero. In step S914, the section is normalized. In normalization by this step, the value obtained by subtracting 512 from the lower end and doubling it is used as the new lower end, and the length of the section is doubled.
また、ステップS909において、下端が512を下回る場合はステップS910へ分岐し、保留ビット数を1つ増加させる。続いてステップS911では、区間の正規化を行う。このステップS911による正規化は、下端から256を引き2倍、区間も2倍する。例えば図6の例では、下端が10になり(=(261−256)×2)、区間の長さは160(=80×2)。また、保留ビットも“1”に増加する。これら正規化処理の各ステップの後、再度ステップS904へ戻って、区間の長さが256以上になるまで、同様に正規化処理を繰り返す。 In step S909, if the lower end is less than 512, the process branches to step S910 to increase the number of reserved bits by one. In step S911, the section is normalized. In the normalization in step S911, 256 is subtracted from the lower end, and the section is also doubled. For example, in the example of FIG. 6, the lower end is 10 (= (261-256) × 2), and the length of the section is 160 (= 80 × 2). Further, the reserved bit is also increased to “1”. After each step of these normalization processes, the process returns to step S904 again, and the normalization process is repeated in the same manner until the length of the section becomes 256 or more.
例えば図6の例では、正規化後の区間の長さは160なので、再度ステップS904からステップS905へ進む。下端が10なので、ステップS906へと進み、“0”を出力、先ほど保留ビット数を1に増加しているので、1個の“1”を出力する(ステップS907)。すなわち符号列“01”が出力される。さらに正規化のステップS908により、下端を2倍の20、区間の長さも2倍の320とする。ここで区間の長さは256以上となるので、ステップS904からS900へと戻る。このステップS900により入力シンボルの終了を検知し、ステップS915の終了処理ステップへ分岐するまで上記処理を繰り返す。 For example, in the example of FIG. 6, since the length of the section after normalization is 160, the process proceeds from step S904 to step S905 again. Since the lower end is 10, the process proceeds to step S906, where “0” is output, and since the number of reserved bits has been increased to 1 earlier, one “1” is output (step S907). That is, the code string “01” is output. Further, in the normalization step S908, the lower end is doubled to 20 and the section length is also doubled to 320. Here, since the length of the section is 256 or more, the process returns from step S904 to S900. In step S900, the end of the input symbol is detected, and the above processing is repeated until the process branches to the end processing step of step S915.
本発明者は、以上の従来の算術符号化方法には、2つの問題点があると考えた。第1には、ステップS904からS914までのループにより、ひとつの入力シンボルを処理するためのステップ数が非常に多いことである。これは、ソフトウェアによる処理時間の増大や、ハードウェアによる回路規模を増大の要因となる。第2には、ステップS910における、保留ビット数の増加が繰り返されると、その値の保持に必要なメモリが多くなり、更に保留ビットの解消処理であるステップS907、S913の処理回数も増大する点である。 The present inventor considered that the above conventional arithmetic coding method has two problems. First, the number of steps for processing one input symbol is very large by the loop from step S904 to step S914. This causes an increase in processing time by software and an increase in circuit scale by hardware. Second, when the increase in the number of reserved bits in step S910 is repeated, the memory required for holding the value increases, and the number of times of processing in steps S907 and S913, which is a process for eliminating the reserved bits, also increases. It is.
本発明はかかる問題に鑑みなされたものであり、算術符号化をハードウェアに適用するのであれば、回路を簡略化できて消費電力を少なくすることを可能にし、ソフトウェアに適用するのであれば、処理の簡略化に伴うメモリ消費量の削減と高速処理を可能ならしめる技術を提供することにある。 The present invention has been made in view of such a problem, and if arithmetic coding is applied to hardware, the circuit can be simplified and power consumption can be reduced, and if applied to software, It is an object of the present invention to provide a technology that enables reduction of memory consumption and high-speed processing due to simplification of processing.
かかる課題を解決するため、例えば本発明の符号化装置は以下の構成を備える。すなわち、
符号化対象の2値シンボルを順に入力し、0以上1未満の小数点以下の値を示す2進データを符号化データとして生成し、生成した符号化データを出力する算術符号化を用いた符号化装置であって、
2値シンボルを入力する度に、有限精度で表現される数直線上の区間を、優勢シンボルと劣勢シンボルの発生確率の比に従って2分割すると共に、入力した2値シンボルの値に従って、分割した一方の区間を選択することを繰り返す区間選択手段と、
該区間選択手段で選択した選択区間の長さに基づき、当該選択区間の長さを拡大するための正規化処理の回数を判定する正規化回数判定手段と、
前記選択区間に基づき、符号化データとして出力することが可能な出力ビット数を算出する算出手段と、
該算出手段で算出した出力ビット数が0より多い場合、当該出力ビット数分の符号化データを、前記選択区間の上端又は下端の値に基づいて生成し、出力すると共に、保留ビット数が非0である場合に前記保留ビット数に応じたビット数のデータを出力すると共に、前記保留ビット数をゼロクリアする符号化データ出力手段と、
前記正規化回数判定手段で判定した回数を示す値から、前記算出手段で算出した出力ビット数で示される値を減じた結果を、前記保留ビット数に加算する保留ビット更新手段と、
前記正規化回数判定手段で判定された正規化回数分だけ、前記選択区間の正規化を行なう正規化手段とを備える。
In order to solve this problem, for example, the encoding apparatus of the present invention has the following configuration. That is,
Encoding using arithmetic coding that sequentially inputs binary symbols to be encoded, generates binary data indicating a decimal point value of 0 or more and less than 1 as encoded data, and outputs the generated encoded data A device,
Each time a binary symbol is input, a section on a number line expressed with finite precision is divided into two according to the ratio of the probability of occurrence of the dominant symbol and the inferior symbol, and is divided according to the value of the input binary symbol. and the district between the selection means to repeat the selection of the section,
Based on the length of the selection period selected in said section between selection means, and the normalized count determining means for determining the number of normalization processing for expanding the length of the selected segment,
Based on prior Symbol selection section, a calculating means for calculating the number of output bits that can be output as encoded data,
If the calculated output number of output bits calculated in unit is greater than 0, the encoded data having the output bits minutes, generated based on the value of the upper or lower end of the front Symbol selection period, and outputs, the number of pending bit An encoded data output means for outputting the number of bits corresponding to the number of reserved bits when non-zero, and clearing the number of reserved bits to zero,
A reserved bit update unit that adds a result obtained by subtracting a value indicated by the number of output bits calculated by the calculation unit from the value indicating the number of times determined by the normalization number determination unit to the reserved bit number;
Normalization means for normalizing the selected section by the number of times of normalization determined by the normalization frequency determination means.
本発明によれば、保留ビット数を増加する処理の回数がこれまでの技術よりも少なくできるので、ハードウェアに適用するのであれば、回路を簡略化できて消費電力を少なくすることを可能になる。また、ソフトウェアに適用するのであれば、処理の簡略化に伴うメモリ消費量の削減と処理を更に高速なものとすることが可能になる。 According to the present invention, the number of times of increasing the number of reserved bits can be reduced as compared with the conventional technology. Therefore, when applied to hardware, the circuit can be simplified and the power consumption can be reduced. Become. Further, if applied to software, it is possible to reduce the memory consumption accompanying the simplification of processing and to further speed up the processing.
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。 Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
<第1の実施形態>
図7は、本実施形態による装置の構成例を示すブロック図である。101は映像入力部、102は変換部、103は量子化部、104はCAVLC符号化部、105はCABAC符号化部、106は2値化部、107は算術符号化部、108は選択部、109はストリーム出力部である。本実施形態における符号化装置は、H.264規格に基づき、以下の手順で高能率符号化処理を行う。なお、本符号化装置は撮像装置(ビデオカメラ)や映像記録再生装置に適用可能な構成である。
<First Embodiment>
FIG. 7 is a block diagram illustrating a configuration example of the apparatus according to the present embodiment. 101 is a video input unit, 102 is a conversion unit, 103 is a quantization unit, 104 is a CAVLC coding unit, 105 is a CABAC coding unit, 106 is a binarization unit, 107 is an arithmetic coding unit, 108 is a selection unit, Reference numeral 109 denotes a stream output unit. The encoding apparatus in this embodiment is an H.264 standard. Based on the H.264 standard, high-efficiency encoding processing is performed in the following procedure. Note that this encoding apparatus is applicable to an imaging apparatus (video camera) and a video recording / reproducing apparatus.
映像入力部101から入力されるデジタル映像信号は、変換部102に供給される。変換部102は、入力したデジタル映像信号で表わされる画像データを、例えば16×16画素で構成されるブロックに分割し、各ブロック毎に係数列へ変換する。この変換部102は、動き予測処理、動き補償処理及び直交変換処理(周波数変換)などにより、ブロックにおける情報量の視覚的な冗長性を削減する。
The digital video signal input from the
変換部102の変換処理で得られた係数列は、量子化部103へ供給される。量子化部103は、入力した係数列を、予め設定された量子化パラメータに従って量子化する。
The coefficient sequence obtained by the conversion process of the
この量子化部103における量子化パラメータの大小に応じて、係数列の情報量は削減される。量子化された係数列は、CAVLC符号化部104とCABAC符号化部105に供給される。CAVLC符号化部104については、本発明に直接関係が無いので詳細な説明は省略し、CABAC符号化部105について説明する。
The information amount of the coefficient sequence is reduced according to the size of the quantization parameter in the
CABAC符号化部105内の2値化部106は、入力した係数列を0、1の2値シンボル列へ変換する。
The
算術符号化部107は、2値化部106で2値化された2値シンボル列の順次を入力し、後述する手順に従った処理を行なうことで、圧縮した算術符号化データ列を生成し出力する。この時、2値化部106はテーブルによって各係数を2値シンボル列へ1対1に変換できるので、処理は1係数単位に実行することができる。一方、算術符号化部107は、2値シンボル1つずつ処理を行う必要がある。
The
CAVLC符号化部104によって発生した符号列と、算術符号化が行われたCABAC符号化部105によって発生した符合列は、それぞれ選択部108に供給され、選択部108によっていずれか一方の符号列(ストリーム)が出力として選択される。その後、選択されたストリームがストリーム出力部109より出力される。
The code sequence generated by the
本実施形態における特徴は、図7における算術符号化部107にある。そこで、この算術符号化部107を更に詳しく説明する。
The feature of this embodiment is the
算術符号化は、既に説明したように、入力されるシンボルの値に応じて区間の分割、選択を繰り返し、0以上の1未満の小数点の値を符号化結果とするものである。0以上の1未満の小数点の値は、「0.xxx…(xは0または1)」の形式となるので、整数部分と小数点を除いた「xxx…」が符号化データとなる。小数点第1位のビットは、十進数の“0.5”を示し、小数点第2位のビットは“0.25”を示す。つまり、小数点第i桁のビットで表わされる値は、小数点第i−1桁のビットで表わされる値の半分と言える。例えば、十進数の“0.75”は2進数では“0.11”と表現できる。 As described above, arithmetic coding is such that division and selection are repeated according to the value of an input symbol, and a decimal point value of 0 or more and less than 1 is used as an encoding result. Since the decimal point value of 0 or more and less than 1 is in the format of “0.xxx... (X is 0 or 1)”, “xxx...” Excluding the integer part and the decimal point is the encoded data. The bit at the first decimal point indicates “0.5” in decimal, and the bit at the second decimal point indicates “0.25”. That is, the value represented by the i-th digit of the decimal point can be said to be half of the value represented by the (i-1) -th bit of the decimal point. For example, a decimal number “0.75” can be expressed as a binary number “0.11”.
また、電子回路、又は、コンピュータプログラムで処理するわけであるから、区間の下端、上端、区間長さは限られたビット数のレジスタで表現しなければならない。ところが、各小数点以下の桁のビットを求めていくと、それに応じて区間の長さは次第に狭くなっていく。つまり、区間の下端と上端を定義するレジスタの値の差は次第に小さくなっていき、シンボルの発生確率の比で区間を分割する際の精度が低くなっていく。それゆえ、使用するビット数を有効に機能するようにするため、区間の長さある閾値未満となったとき、その区間の長さを拡大する処理が必要になる。この区間の長さの拡大処理を正規化と言う。 Further, since processing is performed by an electronic circuit or a computer program, the lower end, upper end, and section length of the section must be expressed by a register having a limited number of bits. However, as the number of digits after each decimal point is obtained, the length of the section is gradually reduced accordingly. That is, the difference between the register values defining the lower end and the upper end of the interval is gradually reduced, and the accuracy when the interval is divided by the ratio of the occurrence probability of symbols is lowered. Therefore, in order to effectively function the number of bits to be used, when the length of the section becomes less than a certain threshold value, it is necessary to expand the length of the section. The process of enlarging the length of this section is called normalization.
図1は、本実施形態における算術符号化部107における算術符号化処理手順を示すフローチャートである。以下、このフローチャートに従って算術符号化部107の処理内容を説明する。
FIG. 1 is a flowchart showing an arithmetic coding processing procedure in the
先ず、ステップS100では、符号化すべきシンボルの入力が終了したか否かを判断する。この判断は、入力したシンボルの個数を計数し、その個数が予め定められた符号化単位であるシンボル数になったか否かで判断すればよい。 First, in step S100, it is determined whether or not input of symbols to be encoded has been completed. This determination may be made by counting the number of input symbols and determining whether the number has reached the number of symbols that is a predetermined coding unit.
符号化処理が未完であると判断した場合には、ステップS101に処理を進め、シンボルを1つ入力する。本実施形態での符号化対象のシンボルは、2値化部106から出力される0または1の2値シンボルである。
If it is determined that the encoding process is incomplete, the process proceeds to step S101, and one symbol is input. The encoding target symbol in this embodiment is a binary symbol of 0 or 1 output from the
次にステップS102では、区間を分割する。符号化の開始時の区間は0乃至1023の範囲である。すなわち、下端が0、区間の長さが1024であり、下端を0、上端の1023を整数の“1”と見立て、その間が小数点以下を表わすものとして定義する。この場合、下端と上端はそれぞれ10ビットのレジスタで記憶保持すれば良いことになる。
Next, in step S102, the section is divided. The interval at the start of encoding ranges from 0 to 1023. That is, the lower end is 0, the section length is 1024, the lower end is defined as 0, and the
ステップS102の区間の分割処理とは、入力した2値シンボルの発生確率の比により、区間を2つに分けることである。例えば、0の発生確率が75%で、1の発生確率が25%の場合、区間は75:25の比で分割される。 The division processing of the section in step S102 is to divide the section into two according to the ratio of the occurrence probability of the input binary symbols. For example, if the occurrence probability of 0 is 75% and the occurrence probability of 1 is 25%, the section is divided at a ratio of 75:25.
続くステップS103では、入力シンボルに従って、この分割された区間のいずれか一方を選択する。例えば、図6のように、現在の区間の下端が“21”、その区間の長さが“320”であり、シンボル0と1の発生確率が75%、25%であるとする。今、入力したシンボルが“1”であった場合、1の区間が選択され、新たな下端は“261”、その区間の長さは“80”となる。
In subsequent step S103, one of the divided sections is selected according to the input symbol. For example, as shown in FIG. 6, it is assumed that the lower end of the current section is “21”, the length of the section is “320”, and the occurrence probabilities of
次にステップS104は、新たな区間の長さを閾値“256”と比較する。区間の長さが“256”以上の場合は、ステップS100へと戻る。 In step S104, the length of the new section is compared with the threshold “256”. When the length of the section is “256” or more, the process returns to step S100.
また、図6に示すように、区間の長さが“80”となって、“256”を下回る場合、処理はステップS105に分岐する。 As shown in FIG. 6, when the length of the section is “80” and is less than “256”, the process branches to step S105.
ステップS105では、区間の下端の値を判定する。下端の値が“512”に満たない場合、処理はステップS106に分岐する。このステップS106では、区間の上端の値が“512”未満であるか否かを判定する。 In step S105, the value at the lower end of the section is determined. If the value at the lower end is less than “512”, the process branches to step S106. In this step S106, it is determined whether or not the value at the upper end of the section is less than “512”.
ステップS106にて、上端の値が“512”未満であると判定した場合、ステップS107に処理を進める。 If it is determined in step S106 that the upper end value is less than “512”, the process proceeds to step S107.
ステップS107に処理を進むのは、選択した区間の上下端の値が共に“512”以下の場合である。従って、ステップS107では、“0”を符号化後のビットとして出力する。そして、続くステップS108では、その時点での保留ビット数で示される数だけ“1”を出力した後、保留ビット数を“0”にリセットする。なお、ステップS108に処理が進んだ直後の保留ビット数が“0”の場合には、何もしない。そして、ステップS109にて、区間の正規化を行う。このステップS109での正規化処理とは、“256”未満となった区間を拡大し、以降の符号化処理の精度を確保する処理である。このステップS109では、下端の値を2倍にした値を更新後の区間の下端の値とする。また、区間の長さを2倍にし、その結果を更新後の区間の長さとする。そして、ステップS104に戻る。 The process proceeds to step S107 when both the upper and lower values of the selected section are “512” or less. Accordingly, in step S107, “0” is output as the encoded bit. In step S108, “1” is output by the number indicated by the number of reserved bits at that time, and then the number of reserved bits is reset to “0”. If the number of reserved bits immediately after the processing proceeds to step S108 is “0”, nothing is done. In step S109, the section is normalized. The normalization process in step S109 is a process of enlarging a section that is less than “256” and ensuring the accuracy of the subsequent encoding process. In this step S109, the value obtained by doubling the lower end value is set as the lower end value of the updated section. In addition, the length of the section is doubled, and the result is set as the length of the updated section. Then, the process returns to step S104.
一方、ステップS105にて、選択区間の下端の値が“512”以上であると判定した場合、処理はステップS112に分岐する。すなわち、現在の区間の上端及び下端の値が共に、“512”以上である場合である。ステップS112では、注目桁の値として“1”を符号化後のビットとして出力する。続くステップS113では、保留ビット数で示される数の“0”を出力した後、保留ビット数を“0”にリセットする。そして、ステップS114にて、区間の正規化を行う。このステップS114での正規化処理とは、“256”未満となった区間を拡大し、以降の符号化処理の精度を確保する処理である。このステップS114では、下端の値から512を減じ、その減算結果を2倍にした値を更新後の下端の値にする。また、区間の長さを2倍した結果を、更新後の区間の長さとする。この後、処理はステップS104に戻る。 On the other hand, if it is determined in step S105 that the value of the lower end of the selected section is “512” or more, the process branches to step S112. That is, both the upper and lower values of the current section are “512” or more. In step S112, “1” is output as the value of the target digit as a bit after encoding. In the subsequent step S113, the number of reserved bits “0” is output, and then the number of reserved bits is reset to “0”. In step S114, the section is normalized. The normalization process in step S114 is a process of enlarging a section that is less than “256” and ensuring the accuracy of the subsequent encoding process. In this step S114, 512 is subtracted from the lower end value, and the value obtained by doubling the subtraction result is set to the updated lower end value. Further, the result of doubling the length of the section is set as the length of the updated section. Thereafter, the process returns to step S104.
また、ステップS106にて、区間の上端の値が“512”以上であると判断した場合、処理はステップS110に進む。ステップS110に進むのは、区間の下端の値が“512”未満であり、区間の上端の値が“512”以上の場合である。つまり、注目桁のビットが“0”か、“1”かは、現時点では未定であることを示している。それ故、ステップS110にて、保留ビット数を1つ増加させる。続いて、ステップS111にて、区間の正規化を行う。このステップS111における正規化は、区間の下端の値から“256”を減じ、その減算結果を2倍にした値を更新後の下端の値とする。また、区間の長さを2倍にした結果を更新後の区間の長さとする処理を行なう。この後、処理はステップS104に戻る。 If it is determined in step S106 that the value at the upper end of the section is “512” or more, the process proceeds to step S110. The process proceeds to step S110 when the lower end value of the section is less than “512” and the upper end value of the section is “512” or more. That is, whether the bit of the target digit is “0” or “1” indicates that it is not determined at this time. Therefore, in step S110, the number of reserved bits is increased by one. Subsequently, in step S111, the section is normalized. In the normalization in step S111, “256” is subtracted from the value at the lower end of the section, and the value obtained by doubling the subtraction result is set as the updated lower end value. In addition, a process of setting the result of doubling the length of the section to the length of the updated section is performed. Thereafter, the process returns to step S104.
こうして、符号化すべき全シンボルについてステップS100乃至S114の処理を終えると、ステップS115の終了処理を行なう。この終了処理では、直前までの処理で決定された区間の上端、下端の間にあって、二進表記で都合の良い値を1つ決定し、その決定した値に従って、未出力の桁のビットを出力する処理を行なう。例えば、区間の上端の値が、区間の下端の値と等しくなったものとし(区間の長さが0になったものとし)、その際の符号化ビット及び保留ビットを出力する。 Thus, when the processes of steps S100 to S114 are completed for all symbols to be encoded, the end process of step S115 is performed. In this end processing, one convenient value is determined in binary notation between the upper and lower ends of the section determined in the previous processing, and a bit of an unoutput digit is output according to the determined value. The process to do is performed. For example, it is assumed that the value at the upper end of the interval is equal to the value at the lower end of the interval (the length of the interval is 0), and the encoded bits and reserved bits at that time are output.
以上、本実施形態の算術符号化部107の処理内容を説明した。本実施形態の処理は、先に説明した図5の前述した従来方法よりも、保留ビット数を増加させるステップの実行回数を半減させることが可能になる。
The processing contents of the
例えば、図6の例では、区間選択により得られた新しい区間の下端の値が“261”である。従来方法では、ステップS905、S909による分岐で、保留ビット数を増加させるステップS910へと進む。 For example, in the example of FIG. 6, the value of the lower end of the new section obtained by section selection is “261”. In the conventional method, the process proceeds to step S910 in which the number of reserved bits is increased by branching from steps S905 and S909.
これに対し、本実施形態によれば、区間の下端の値が“261”で、尚且つ、区間の上端の値が“341”(=261+80)であるから、ステップS105、106の分岐処理で、ステップS107以降の処理を行なう。すなわち、上記の場合、本実施形態によれば、保留ビットを増加する処理は行なわない。 On the other hand, according to the present embodiment, the value at the lower end of the section is “261” and the value at the upper end of the section is “341” (= 261 + 80). Then, the processing after step S107 is performed. That is, in the above case, according to the present embodiment, the process of increasing the reserved bit is not performed.
また、ステップS107では、符号化データとしてビット“0”を出力する。この後、処理はステップS108に進むが、図6の場合、保留ビット数がゼロのままである。従って、このステップS108は無処理となる。そして、ステップS109の正規化では、現在の区間の下端の値と区間の長さをそれぞれ2倍にする。すなわち、区間の下端の値は“522”、区間の長さが“160”になる。この後、ステップS104に戻るが、区間の長さ“160”は、閾値“256”未満であるので、ステップS104、S105による分岐処理を経たのち、ステップS112に処理が進む。ステップS112では、“1”を出力し、ステップS113は無処理となる。そして、ステップS114の正規化処理の結果、区間の下端の値は“20”(=(522−512)×2)、区間の長さは“320”(=160×2)となる。 In step S107, bit “0” is output as encoded data. Thereafter, the process proceeds to step S108. In the case of FIG. 6, the number of reserved bits remains zero. Accordingly, this step S108 is not processed. In the normalization in step S109, the value of the lower end of the current section and the length of the section are each doubled. That is, the value at the lower end of the section is “522” and the length of the section is “160”. Thereafter, the process returns to step S104. Since the section length “160” is less than the threshold value “256”, the process proceeds to step S112 after the branch process in steps S104 and S105. In step S112, “1” is output, and step S113 is not processed. As a result of the normalization process in step S114, the value of the lower end of the section is “20” (= (522-512) × 2), and the length of the section is “320” (= 160 × 2).
以上により、出力される符号化データは“01”となり、区間の下端の値は“20”、区間の長さは“320”となる。ここで注目すべき点は、本実施形態の場合、保留ビットの増加処理を行なっていないにもかかわらず、図5に示した従来方法と同じ出力、同じ区間状態になっていることである。 As a result, the encoded data to be output is “01”, the value at the lower end of the section is “20”, and the length of the section is “320”. What should be noted here is that, in the case of this embodiment, the same output and the same section state as the conventional method shown in FIG.
ここで、従来技術と本実施形態の処理の違いを図2を用いて説明する。図2は正規化前の区間を上端と下端の範囲で分類したベン図である。 Here, the difference between the processing of the prior art and the present embodiment will be described with reference to FIG. FIG. 2 is a Venn diagram in which sections before normalization are classified by the range of the upper end and the lower end.
従来方法では、区間の長さが“256”未満となり、符号化データとしてビット“0”を出力するのは、その区間が下端の値が“256”未満の領域201のみである。すなわち、残る領域202、203では保留ビットを増加させる処理を行なわざるをえない。
In the conventional method, the length of the section is less than “256”, and the bit “0” is output as encoded data only in the
一方、本実施形態による方法では、区間の長さが“256”未満であるとき、区間が領域201、202の条件を満たすとき、符号化データとしてビット“0”を出力する。そして、保留ビットを増加させるのは、領域203、すなわち、区間の上端の値が“512”以上であり、区間の下端の値が“512”未満の場合のみである。
On the other hand, in the method according to the present embodiment, when the length of the section is less than “256”, when the section satisfies the conditions of the
このように本実施形態の如く、分類に上端を取り入れて詳細化することで、区間が本来保留する必要の無い領域202にあるときに、“0”を符号化データとして出力することで、保留ビット増加の処理の回数は、従来技術の半分まで減らすことが可能になる。因に、区間の下端の値が“512”以上を示す領域204では、符号化データのビットとして“1”を出力する。従って、区間の下端の値が“512”以上を示す領域204における、本実施形態の処理は、従来技術と方法と一致する。
In this way, as shown in this embodiment, the classification is refined by incorporating the upper end, and when the section is in the
図8は、実施形態における算術符号化部107の具体的な内部のブロック構成図である。
FIG. 8 is a block diagram showing a specific internal configuration of the
本実施形態の算術符号化部107は、図示の如く、入力部801、制御部802、終了処理部803、出力切替部804、区間更新部805、正規化部806、出力ビット生成部807、保留ビット処理部808で構成される。この構成における動作を、再び、図1のフローチャートと対応づけて説明する。
As shown in the figure, the
入力部801は、ステップS101にて、2値化部106から2値シンボルを順次入力する。また、入力部801は、入力したシンボル数が符号化単位の予め設定された個数になったことを検知すると、終了判定信号を制御部802に出力する。
The
区間更新部805はステップS102による区間の分割とステップS103における区間の選択を行い、選択された区間の上端と下端の値を示す信号を制御部802と正規化部806へ供給する。
The
制御部802は各ブロックから供給される信号に基づき、制御信号を各ブロックへ供給する。
The
終了処理部803は、制御部からのトリガー信号により、ステップS115における終了処理を行い、終了ビット列を出力切替部804に供給する。
The
出力ビット生成部807は制御部802からの制御信号に従い、“0”もしくは“1”を出力切替部804へ供給する。この処理は、図1におけるステップS107もしくはステップS112に相当する。
The output
保留ビット処理部808は制御部802からの制御信号に従い、ステップS108、ステップS110、ステップS113における保留ビット列を出力切替部804へ供給する。
The reserved
出力切替部804は制御部802からの制御信号に従い、終了処理部803、出力ビット生成部807、保留ビット処理部808から供給されるビット列のいずれかを選択し出力する。
The
正規化部806は制御部802からの制御信号と、区間更新部からの上端と下端の値を表す信号を受け取り、区間を正規化して新たな区間の上端と下端を区間更新部805へ供給する。この処理は、図1のステップS109、S111、S114に相当するものであるが、いずれの処理を行なうかは、制御部802からの制御信号によって決定される。正規化により変更された上端と下端の値は、区間更新部805を経由して、制御部802へ供給される。
The
制御部802は、図1のフローチャートの分岐処理であるステップS100、S104、S105、S106の判断に依存し、これら各ブロックを制御するための信号を生成することになる。
The
以上説明したように本実施形態によれば、2値シンボル列を符号化する際に、保留ビット数を増加する処理回数を、これまでの半分に減らすことが可能になり、尚且つ、生成される符号化データのコンパチビリティも保証することが可能になる。従って、ハードウェアによる回路規模の増大を防ぐ事が可能になる。 As described above, according to the present embodiment, when a binary symbol sequence is encoded, the number of times of increasing the number of reserved bits can be reduced to half that of the previous number, and the number of generated bits can be reduced. It is also possible to guarantee the compatibility of encoded data. Therefore, it is possible to prevent an increase in circuit scale due to hardware.
また、符号化対象の画像データを入力する入力装置(ビデオカメラ、イメージスキャナ、或いは、非圧縮の画像データを蓄積する蓄積装置)を有し、それ以外の図7に示す各構成要素をマイクロコンピュータ等の高度な制御部と、その制御部が実行するプログラムを記憶したRAMによって構成することも勿論可能である。また、図7における算術符号化部107のみ、マイクロコンピュータとそれが実行するソフトウェアによって実現させても構わない。
Further, it has an input device (video camera, image scanner, or storage device for storing uncompressed image data) for inputting image data to be encoded, and the other components shown in FIG. Of course, it is also possible to use a high-level control unit such as a RAM and a RAM storing a program executed by the control unit. Further, only the
<第2の実施形態>
本発明に係る第2の実施形態を説明する。図3は、本第2の実施形態における算術符号化部107の処理手順を示すフローチャートである。算術符号化部107以外は、第1の実施形態と同じとし、その説明は省略する。
<Second Embodiment>
A second embodiment according to the present invention will be described. FIG. 3 is a flowchart showing a processing procedure of the
以下、図3のフローチャートに従って、算術符号化部107の処理手順を説明する。
Hereinafter, the processing procedure of the
先ず、ステップS300では、符号化すべきシンボルの入力が終了したか否かを判断する。この判断は、入力したシンボルの個数を計数し、その個数が予め定められた符号化単位であるシンボル数になったか否かで判断すればよい。 First, in step S300, it is determined whether or not input of symbols to be encoded has been completed. This determination may be made by counting the number of input symbols and determining whether the number has reached the number of symbols that is a predetermined coding unit.
符号化処理が未完であると判断した場合には、ステップS301に処理を進め、シンボルを1つ入力する。本実施形態での符号化対象のシンボルは、2値化部106から出力される0または1の2値シンボルである。
If it is determined that the encoding process is incomplete, the process proceeds to step S301, and one symbol is input. The encoding target symbol in this embodiment is a binary symbol of 0 or 1 output from the
次にステップS302では、区間を分割する。符号化の開始時には、区間の下端が0、区間の長さが1024である。 Next, in step S302, the section is divided. At the start of encoding, the lower end of the section is 0 and the length of the section is 1024.
ステップS302の区間の分割処理とは、入力した2値シンボルの発生確率の比により、区間を2つに分けることである。例えば、0の発生確率が75%で、1の発生確率が25%の場合、区間は75:25の比で分割される。続く、ステップS303では、入力シンボルに従って、この分割された区間のいずれか一方を選択する。例えば、図6のように、区間が下端21と長さ320で表されていて、シンボル“0”と“1”の発生確率が75%と25%の場合とする。この場合、入力シンボルが“1”であった場合には、1の区間が選択され、新たな区間の下端は“261”、長さは“80”となる。
The division processing of the section in step S302 is to divide the section into two according to the ratio of the occurrence probability of the input binary symbols. For example, if the occurrence probability of 0 is 75% and the occurrence probability of 1 is 25%, the section is divided at a ratio of 75:25. In step S303, one of the divided sections is selected according to the input symbol. For example, as shown in FIG. 6, it is assumed that the section is represented by the
次にステップS304では、ステップS303で選択した新たな区間の長さによって、正規化回数を算出する。既に述べたように、正規化処理は、区間の長さが256未満の時に発生し、区間の長さを2倍にする処理である。そして、正規化処理は、区間の長さが256以上となるまで繰り返される。 In step S304, the number of times of normalization is calculated based on the length of the new section selected in step S303. As already described, the normalization process is a process that occurs when the length of the section is less than 256 and doubles the length of the section. Then, the normalization process is repeated until the length of the section becomes 256 or more.
即ち、区間の長さと正規化回数との関係は次の通りとなる。
・区間の長さ128以上、256未満の場合は正規化回数は1回、
・区間の長さが64以上、128未満の場合には正規化回数は2回、
・区間の長さが32以上、64未満の場合には正規化回数は3回、
・区間の長さが16以上、32未満の場合には正規化回数は4回、
・区間の長さが8以上、16未満の場合には正規化回数は5回、
・区間の長さが4以上、8未満の場合には正規化回数は6回。
That is, the relationship between the section length and the number of normalizations is as follows.
・ If the section length is 128 or more and less than 256, the normalization count is 1
・ If the section length is 64 or more and less than 128, the normalization count is 2
・ If the section length is 32 or more and less than 64, the number of normalization is 3 times,
・ If the section length is 16 or more and less than 32, the normalization count is 4 times.
・ If the section length is 8 or more and less than 16, the number of normalization is 5 times.
・ If the section length is 4 or more and less than 8, the number of normalization is 6 times.
上記を考察すると、区間の長さを9ビットで2進表現した場合、正規化回数は、最上位ビット(MSB)から最下位ビット(LSB)に向かうゼロの連続数と一致する。従って、ステップS304では、MSBからゼロの連続数をカウントし、そのカウントした値を正規化回数として求める。なお、正規化回数を求める方法は上記に限らない。例えば、2を低とする区間の長さの対数を求め、その対数の小数点以下を切り捨てる。そして、切り捨てた対数を、8から減じた値を、正規化回数としても構わない。ただし、前者の方が、単純な処理、又は、単純な回路構成で実現できる。 Considering the above, when the length of the section is expressed in binary form with 9 bits, the number of normalizations coincides with the number of consecutive zeros from the most significant bit (MSB) to the least significant bit (LSB). Accordingly, in step S304, the number of consecutive zeros is counted from the MSB, and the counted value is obtained as the number of normalizations. The method for obtaining the number of normalizations is not limited to the above. For example, the logarithm of the length of the interval in which 2 is low is obtained, and the decimal part of the logarithm is rounded down. A value obtained by subtracting the rounded down logarithm from 8 may be used as the normalization count. However, the former can be realized by a simple process or a simple circuit configuration.
続いてステップS305では、確定して出力する符号ビット数を算出する。保留ビットの増加の処理が無ければ、正規化回数と確定出力ビット数は一致する。 In step S305, the number of code bits to be determined and output is calculated. If there is no processing for increasing the reserved bits, the number of normalizations and the number of determined output bits match.
例えば、図4の区間401、402、403はいずれも、その区間の長さが“128”以上、“256”未満であることを示している。従って、区間401、402、403に対する正規化回数は1回である。区間401は、その上端が“512”未満であるため、“0”を符号化データのビットとして出力する。区間402は、その下端が“512”以上であるため、“1”を出力する。
For example, each of the
一方、区間403は、その下端が“512”未満であり、上端が“512”以上であるため、保留ビットを1増加させるだけで、この時点での符号化データのビットの出力は行なわない。すなわち、或る区間の上端と下端の間に閾値“512”が存在する場合には、保留ビットを“1”だけ増加させ、符号化データの出力は行なわない。
On the other hand, since the lower end of the
上記を更に詳しく検討すると、次のようになる。 The above is examined in more detail as follows.
区間の上端、下端を10ビットで表わすとする。或る区間の上端と下端が共に“512”未満であるとき、上端及び下端の最上位ビット(MSB)は共に“0”となる。また、或る区間の上端と下端が共に“512”以上であるとき、上端及び下端のMSBは共に“1”となる。そして、区間が“512”を跨ぐ、すなわち、下端<512≦上端の場合、上端と下端のMSBは一致しない。 Assume that the upper and lower ends of the section are represented by 10 bits. When the upper end and the lower end of a certain section are both less than “512”, the most significant bits (MSB) of the upper end and the lower end are both “0”. When both the upper end and the lower end of a certain section are “512” or more, the MSBs of the upper end and the lower end are both “1”. When the section spans “512”, that is, when the lower end <512 ≦ the upper end, the MSBs of the upper end and the lower end do not match.
従って、上端と下端のMSBが一致するとき、出力ビットの1個が確定する。そして、上端と下端のMSBが不一致の場合、保留ビットを“1”だけ増加させれば良いことになる。複数回の正規化回数の場合も同様に考えることが出来る。 Therefore, when the upper and lower MSBs match, one of the output bits is determined. If the MSBs at the upper end and the lower end do not match, the reserved bit should be increased by “1”. The same can be considered for the case of multiple times of normalization.
再び、図4に着目する。図4における区間404は、その下端が“270”、上端が“389”、区間の長さが“119”(=389−270)であることを示している、
先に説明した第1の実施形態の手順によると、2回の正規化回数の結果、2ビットの符号“01”が出力される。出力ビット数が“2”となるのは、1回目の正規化後の区間の上端と下端が“512”を跨がず、さらに上端と下端が2倍された後の2回目の正規化後の区間も“512”を跨がないからである。別な言い方をすれば、1回目の正規化後の区間が“256”を跨いでいなければ、2倍される2回目の正規化後の区間は“512”を跨がない、と言える。すなわち、区間の上端と下端が“512”を跨がなければ出力ビット数は1、さらに、その区間が“256”も跨がなければ出力ビット数は2、さらに“128”も跨がなければ出力ビット数は3というように判定する。結局のところ、区間の上端と下端を10ビットで二進表現したとき、両者の最上位ビットからの一致ビット数が出力ビット数に等しいことになる。ただし、出力ビット数は、許容正規化回数を超えることは無いので、許容正規化回数を上限として出力ビット数をクリップする。
Again, pay attention to FIG. The
According to the procedure of the first embodiment described above, a 2-bit code “01” is output as a result of the two times of normalization. The number of output bits is “2” after the first normalization after the upper and lower ends of the section after the first normalization do not cross “512” and the upper and lower ends are doubled. This is because this section does not cross "512". In other words, if the section after the first normalization does not cross “256”, it can be said that the section after the second normalization that is doubled does not cross “512”. That is, if the upper and lower ends of the section do not cross “512”, the number of output bits is 1, and if the section does not cross “256”, the number of output bits is 2, and if “128” does not cross The number of output bits is determined as 3. After all, when the upper end and lower end of the section are expressed in binary with 10 bits, the number of coincidence bits from the most significant bit of both is equal to the number of output bits. However, since the number of output bits does not exceed the allowable number of normalizations, the number of output bits is clipped with the allowable number of normalizations as an upper limit.
図3の説明に戻る。以上のように算出した出力ビット数が決定されるが、ステップS306では、出力ビット数が“1”以上であるか否かを判定する。出力ビット数が“1”以上であると判定した場合には、ステップS307乃至ステップS309の処理を実行する。 Returning to the description of FIG. The number of output bits calculated as described above is determined. In step S306, it is determined whether or not the number of output bits is “1” or more. When it is determined that the number of output bits is “1” or more, the processing from step S307 to step S309 is executed.
このステップS307乃至S309では、ビット列を符号として出力する。この時、出力されるビット列は、区間の上記の上端と下端の一致ビット列そのものである。 In steps S307 to S309, the bit string is output as a code. At this time, the output bit string is the matching bit string itself at the upper end and the lower end of the section.
例えば、図4の区間404の場合、その上端は“389”であり、下端は“270”である。これを二進数で表現すると、上端は“0110000101”、下端は“0100001110”である。従って、両者は最上位ビットから2ビット“01”が一致するので、一致ビット列“01”を出力する。
For example, in the case of the
次にステップS310では、保留ビット数の更新を行う。前記正規化回数から出力ビット数を減じた値を保留ビット数に加える。この後、ステップS311において、区間の正規化を行う。下端から前記出力ビット列を除去(ゼロにする)し、前記正規化回数分だけ2倍にする処理を繰り返す。また、区間の長さも同様に前記正規化回数分だけ2倍を繰り返す。ここで2倍をN回繰り返すことは、Nビットの左シフト算に置き換えても同じである。 In step S310, the number of reserved bits is updated. A value obtained by subtracting the number of output bits from the number of normalizations is added to the number of reserved bits. Thereafter, in step S311, the section is normalized. The process of removing the output bit string from the lower end (making it zero) and doubling it by the number of times of normalization is repeated. Similarly, the length of the section is repeated twice as much as the number of times of normalization. Here, repeating N times N times is the same even if it is replaced with N-bit left shift calculation.
上記ステップS307乃至S309のビット列を出力する工程で、もし保留ビット数が1以上の場合には、まずステップS307では出力ビット列の先頭ビットのみを出力する。そして、ステップS308で該先頭ビットの反転ビットを保留ビット数分だけ出力する。そしてステップS309では、残りの出力ビット列を出力する。 In the step of outputting the bit string in steps S307 to S309, if the number of reserved bits is 1 or more, first in step S307, only the first bit of the output bit string is output. In step S308, the inverted bits of the first bit are output by the number of reserved bits. In step S309, the remaining output bit strings are output.
例えば、図4の区間404となったときに、保留ビット数が仮に“3”であったとする。この場合、出力ビット列“01”の先頭ビット“0”をまず出力し、続いて“0”を反転した“1”を保留ビット数分の3個、すなわち“111”を出力する。そして、残りのビット列“1”(“01”の2ビット目)をステップS309で出力する。よって、このステップで出力される符号化データは“01111”となる。なお、保留ビット数はここでゼロにリセットされる。
For example, assume that the reserved bit count is “3” when the
以下、ステップS300に戻り、入力シンボルの終了を判定するまで、ステップS301乃至S311の処理を繰り返し、入力シンボルの終了を判定した場合にはステップS315の終了処理を行なう。 Thereafter, returning to step S300, the processes of steps S301 to S311 are repeated until the end of the input symbol is determined. When the end of the input symbol is determined, the end process of step S315 is performed.
図3のフローチャートからもわかるように、正規化回数や出力ビットの数を算出して、一括して処理しているため、従来の方法に比べ、ループ構造が格段に少なくなっていることがわかる。また、1入力シンボルに対して1回のループで処理できることもわかる。 As can be seen from the flowchart of FIG. 3, since the number of normalizations and the number of output bits are calculated and processed collectively, it can be seen that the loop structure is remarkably reduced compared to the conventional method. . It can also be seen that one input symbol can be processed in a single loop.
図9は、上述した処理を行なうための、本第2の実施形態における算術符号化部107の内部ブロック構成図である。本第2の実施形態の算術符号化部107は入力部901、制御部902、終了処理部903、出力切替部904、区間更新部905、正規化部906、出力ビット生成部907、保留ビット処理部908、一致ビット検出部909、区間長算出部910を備える。以下、各処理部の動作を、図3のフローチャートに対応付けて説明する。
FIG. 9 is an internal block configuration diagram of the
入力部901はステップS301にて、2値化部106からの2値シンボルを順次入力する。また、入力部801は、入力したシンボル数が、符号化単位である予め設定された個数になったことを検出すると、終了判定信号を制御部902に出力する。
In step S301, the
区間更新部905は、ステップS302の区間の分割処理と、ステップS303の区間の選択処理を行なう。そして、区間更新部905は、選択された区間の上端と下端の値を示す信号を一致ビット検出部909、区間長算出部910、正規化部906へ供給する。
The
一致ビット検出部909は、区間更新部905から供給される上端と下端の値を比較し、2進表現における最上位ビットから連続して一致するビット数をカウントする。この処理は、ステップS305に相当し、一致したビットの数を制御部902へ供給する。
The coincidence
区間長算出部910は、区間更新部905から供給される上端の値から下端の値を減じて区間の長さを算出する処理(ステップS304に相当)を行ない、その区間の長さを示す信号を制御部902に供給する。
The section
制御部902は、区間長算出部910より入力した区間の長さから必要な正規化の回数を算出し、正規化回数を正規化部906へ供給する。
The
正規化部906は制御部902から供給される正規化回数に従い、区間更新部から供給された上端と下端の値を正規化して新たな区間の上端と下端を区間更新部905へ供給する。この処理はステップS311に相当し、ループ処理することなく単一のステップで、前記回数分の正規化を処理する。
The
また、制御部902は各ブロックから供給される信号に基づき、制御信号を各ブロックへ供給する。
Further, the
制御部902は、入力部901からの終了判定信号を受信した場合に、終了処理部903にトリガ信号を出力する。終了処理部903は、制御部902からのトリガ信号により、ステップS315に相当する終了処理を行ない、終了ビット列を出力切替部904に出力する。
The
出力ビット生成部907は制御部902からの制御信号に従い、“0”もしくは“1”を出力切替部904へ供給する。この処理は、図3のフローチャートにおけるステップS307およびステップS309に相当し、一致ビット検出部909が検出した一致ビット数に相当する個数の出力ビットを生成する。
The output
保留ビット処理部908は制御部902からの制御信号に従い、ステップS308、ステップS310における保留ビット列を出力切替部904へ供給する。
The reserved
出力切替部904は制御部902からの制御信号に従い、終了処理部903、出力ビット生成部907、保留ビット処理部908から供給されるビット列のいずれかを選択し出力する。
The
なお、制御部902は、図3のフローチャートのステップS300及びS306に相当する分岐判定処理に相当する処理を行ない、各ブロックの制御信号を発行することになる。
Note that the
以上説明したように本第2の実施形態によれば、従来と比べ、算術符号化の処理のループ処理を削減し、また、保留ビット数の増加を抑制することが可能になる。その結果、より少ない回路規模や消費電力で処理可能な算術符号化装置を提供できる。 As described above, according to the second embodiment, it is possible to reduce the loop processing of arithmetic coding processing and to suppress an increase in the number of reserved bits as compared with the conventional case. As a result, it is possible to provide an arithmetic coding apparatus that can process with a smaller circuit scale and power consumption.
また、符号化対象の画像データを入力する入力装置(ビデオカメラ、イメージスキャナやビデオカメラ等の撮像装置、或いは、非圧縮の画像データを蓄積する蓄積装置)を有し、それ以外の図7に示す各構成要素をマイクロコンピュータ等の高度な制御部と、その制御部が実行するプログラムを記憶したRAMによって構成することも勿論可能である。また、図7における算術符号化部107のみを、マイクロコンピュータとそれが実行するソフトウェアを格納するメモリによって実現させても構わない。
7 has an input device for inputting image data to be encoded (an imaging device such as a video camera, an image scanner or a video camera, or a storage device for storing uncompressed image data). It is of course possible to configure each component shown by an advanced control unit such as a microcomputer and a RAM that stores a program executed by the control unit. Further, only the
また、第1、第2の実施形態では、撮像装置(ビデオカメラ)や映像記録再生装置に適用した例を説明したが、符号化対象情報として2値シンボルを生成する構成を備える装置であれば適用できるので、上記実施形態によって本発明が限定されるものではない。 Further, in the first and second embodiments, the example applied to the imaging apparatus (video camera) and the video recording / reproducing apparatus has been described. However, any apparatus having a configuration for generating a binary symbol as encoding target information may be used. Since the present invention can be applied, the present invention is not limited by the above embodiment.
また、通常、ソフトウェア、すなわち、コンピュータプログラムは、CD−ROM等のコンピュータ可読記憶媒体に格納されている。そして、そのコンピュータ可読記憶媒体を、コンピュータの読取り装置(例えばCD−ROMドライブ)にセットし、システムにコピーもしくはインストールすることで、そのコンピュータが該当するコンピュータプログラムを実行可能にすることができる。従って、かかるコンピュータ可読記憶媒体も本発明の範疇に入るのは明らかである。 In general, software, that is, a computer program is stored in a computer-readable storage medium such as a CD-ROM. Then, the computer readable storage medium is set in a computer reading device (for example, a CD-ROM drive) and copied or installed in the system, so that the computer can execute the corresponding computer program. Therefore, it is obvious that such a computer readable storage medium falls within the scope of the present invention.
Claims (7)
2値シンボルを入力する度に、有限精度で表現される数直線上の区間を、優勢シンボルと劣勢シンボルの発生確率の比に従って2分割すると共に、入力した2値シンボルの値に従って、分割した一方の区間を選択することを繰り返す区間選択手段と、
該区間選択手段で選択した選択区間の長さに基づき、当該選択区間の長さを拡大するための正規化処理の回数を判定する正規化回数判定手段と、
前記選択区間に基づき、符号化データとして出力することが可能な出力ビット数を算出する算出手段と、
該算出手段で算出した出力ビット数が0より多い場合、当該出力ビット数分の符号化データを、前記選択区間の上端又は下端の値に基づいて生成し、出力すると共に、保留ビット数が非0である場合に前記保留ビット数に応じたビット数のデータを出力すると共に、前記保留ビット数をゼロクリアする符号化データ出力手段と、
前記正規化回数判定手段で判定した回数を示す値から、前記算出手段で算出した出力ビット数で示される値を減じた結果を、前記保留ビット数に加算する保留ビット更新手段と、
前記正規化回数判定手段で判定された正規化回数分だけ、前記選択区間の正規化を行なう正規化手段と
を備えることを特徴とする符号化装置。 Encoding using arithmetic coding that sequentially inputs binary symbols to be encoded, generates binary data indicating a decimal point value of 0 or more and less than 1 as encoded data, and outputs the generated encoded data A device,
Each time a binary symbol is input, a section on a number line expressed with finite precision is divided into two according to the ratio of the probability of occurrence of the dominant symbol and the inferior symbol, and is divided according to the value of the input binary symbol. and the district between the selection means to repeat the selection of the section,
Based on the length of the selection period selected in said section between selection means, and the normalized count determining means for determining the number of normalization processing for expanding the length of the selected segment,
Based on prior Symbol selection section, a calculating means for calculating the number of output bits that can be output as encoded data,
If the calculated output number of output bits calculated in unit is greater than 0, the encoded data having the output bits minutes, generated based on the value of the upper or lower end of the front Symbol selection period, and outputs, the number of pending bit An encoded data output means for outputting the number of bits corresponding to the number of reserved bits when non-zero, and clearing the number of reserved bits to zero,
A reserved bit update unit that adds a result obtained by subtracting a value indicated by the number of output bits calculated by the calculation unit from the value indicating the number of times determined by the normalization number determination unit to the reserved bit number;
An encoding apparatus comprising: normalization means for normalizing the selected section by the number of normalization times determined by the normalization number determination means.
入力した画像データを周波数変換する周波数変換手段と、
周波数変換して得られた係数データを量子化する量子化手段と、
該量子化手段による量子化後の係数データを2値化し、前記2値シンボルとして出力する2値化手段と
を備えることを特徴とする請求項1乃至3のいずれか1項に記載の符号化装置。 Furthermore, image data input means for inputting image data;
A frequency conversion means for converting the frequency of the input image data;
A quantization means for quantizing coefficient data obtained by frequency conversion;
The encoding according to any one of claims 1 to 3 , further comprising: binarizing means that binarizes coefficient data quantized by the quantizing means and outputs the binarized symbol data. apparatus.
2値シンボルを入力する度に、有限精度で表現される数直線上の区間を、優勢シンボルと劣勢シンボルの発生確率の比に従って2分割すると共に、入力した2値シンボルの値に従って、分割した一方の区間を選択することを繰り返す区間選択工程と、
該区間選択工程で選択した選択区間の長さに基づき、当該選択区間の長さを拡大するための正規化処理の回数を判定する正規化回数判定工程と、
前記選択区間に基づき、符号化データとして出力することが可能な出力ビット数を算出する算出工程と、
該算出工程で算出した出力ビット数が0より多い場合、当該出力ビット数分の符号化データを、前記選択区間の上端又は下端の値に基づいて生成し、出力すると共に、保留ビット数が非0である場合に前記保留ビット数に応じたビット数のデータを出力すると共に、前記保留ビット数をゼロクリアする符号化データ出力工程と、
前記正規化回数判定工程で判定した回数を示す値から、前記算出工程で算出した出力ビット数で示される値を減じた結果を、前記保留ビット数に加算する保留ビット更新工程と、
前記正規化回数判定工程で判定された正規化回数分だけ、前記選択区間の正規化を行なう正規化工程と
を備えることを特徴とする符号化装置の制御方法。 Encoding using arithmetic coding that sequentially inputs binary symbols to be encoded, generates binary data indicating a decimal point value of 0 or more and less than 1 as encoded data, and outputs the generated encoded data An apparatus control method comprising:
Each time a binary symbol is input, a section on a number line expressed with finite precision is divided into two according to the ratio of the probability of occurrence of the dominant symbol and the inferior symbol, and is divided according to the value of the input binary symbol. and the district between the selection process is repeated to select the interval,
Based on the length of the selection period selected in about compartment between election択工, normalized count determination step of determining the number of normalization processing for expanding the length of the selected segment,
Based on prior Symbol selection section, a calculation step of calculating the number of output bits that can be output as encoded data,
If the calculated output number of output bits calculated in step is larger than 0, the encoded data having the output bits minutes, generated based on the value of the upper or lower end of the front Symbol selection period, and outputs, the number of pending bit An encoded data output step of outputting data of the number of bits corresponding to the number of reserved bits when non-zero, and clearing the number of reserved bits to zero;
A reserved bit update step of adding a result obtained by subtracting a value indicated by the number of output bits calculated in the calculation step from the value indicating the number of times determined in the normalization number determination step to the reserved bit number;
And a normalization step of normalizing the selected section by the number of times of normalization determined in the normalization frequency determination step.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011045692A JP4936574B2 (en) | 2011-03-02 | 2011-03-02 | Encoding apparatus and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011045692A JP4936574B2 (en) | 2011-03-02 | 2011-03-02 | Encoding apparatus and control method thereof |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006298214A Division JP4717780B2 (en) | 2006-11-01 | 2006-11-01 | Encoding apparatus and control method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011176831A JP2011176831A (en) | 2011-09-08 |
JP4936574B2 true JP4936574B2 (en) | 2012-05-23 |
Family
ID=44689197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011045692A Expired - Fee Related JP4936574B2 (en) | 2011-03-02 | 2011-03-02 | Encoding apparatus and control method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4936574B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160105848A (en) * | 2014-01-01 | 2016-09-07 | 엘지전자 주식회사 | Method and apparatus for performing an arithmetic coding for data symbols |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3018990B2 (en) * | 1996-07-18 | 2000-03-13 | 日本電気株式会社 | Arithmetic coding device |
SI1550219T1 (en) * | 2002-05-02 | 2009-04-30 | Fraunhofer Ges Forschung | Method and arrangement for arithmetically encoding and decoding binary states, corresponding computer program, and corresponding computer-readable storage medium |
JP4240283B2 (en) * | 2002-10-10 | 2009-03-18 | ソニー株式会社 | Decoding device and decoding method |
JP4453398B2 (en) * | 2004-03-01 | 2010-04-21 | ソニー株式会社 | Encoding apparatus, program, and encoding processing method |
FR2903269B1 (en) * | 2006-06-28 | 2008-10-03 | Assistance Tech Et Etude De Ma | DEVICE AND METHOD FOR CABAC TYPE ENCODING |
-
2011
- 2011-03-02 JP JP2011045692A patent/JP4936574B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011176831A (en) | 2011-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4717780B2 (en) | Encoding apparatus and control method thereof | |
KR100624432B1 (en) | Context adaptive binary arithmetic decoder method and apparatus | |
JP5736032B2 (en) | Adaptive binarization for arithmetic coding | |
KR100648258B1 (en) | Context-based adaptive binary arithmetic decoder of pipeline structure for high speed decoding operation | |
US6950040B2 (en) | Coding apparatus, program and data processing method | |
US20200177919A1 (en) | Method for Producing Video Coding and Programme-Product | |
US6677869B2 (en) | Arithmetic coding apparatus and image processing apparatus | |
US7365660B2 (en) | Method and device for decoding syntax element in CABAC decoder | |
JPH0793586B2 (en) | Data compression model selection method and system | |
EP1832000A1 (en) | Device and data method for selective compression and decompression and data format for compressed data | |
CN110291793B (en) | Method and apparatus for range derivation in context adaptive binary arithmetic coding | |
CN110915213A (en) | Method and apparatus for range acquisition in context adaptive binary arithmetic coding and decoding | |
JP2006129467A (en) | Lossless adaptive encoding/decoding of integer data | |
EP3991303A1 (en) | Features of range asymmetric number system encoding and decoding | |
JPH11340838A (en) | Coder and decoder | |
JP4936574B2 (en) | Encoding apparatus and control method thereof | |
JP2008311803A (en) | Arithmetic decoding method, arithmetic decoding device and arithmetic decoding program | |
KR102296153B1 (en) | Dedicated arithmetic encoding instruction | |
JP3620506B2 (en) | MQ-CODER type arithmetic encoding / decoding device and renormalization method | |
JP2007116501A (en) | Arithmetic encoding and decoding device | |
JP4743884B2 (en) | Image coding apparatus and control method thereof | |
JP2008131526A (en) | Moving image coding apparatus, and moving image coding program | |
JP3127513B2 (en) | Encoding device | |
TW202218431A (en) | Arithmetic encoder for arithmetically encoding and arithmetic decoder for arithmetically decoding a sequence of information values, methods for arithmetically encoding and decoding a sequence of information values and computer program for implementing these methods | |
Ulacha et al. | A High Efficienct Binary Arithmetic Coder for Lossless Audio Compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120210 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120217 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120220 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150302 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150302 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |