WO2014030347A1 - 映像データ2値算術復号装置および映像復号装置 - Google Patents

映像データ2値算術復号装置および映像復号装置 Download PDF

Info

Publication number
WO2014030347A1
WO2014030347A1 PCT/JP2013/004941 JP2013004941W WO2014030347A1 WO 2014030347 A1 WO2014030347 A1 WO 2014030347A1 JP 2013004941 W JP2013004941 W JP 2013004941W WO 2014030347 A1 WO2014030347 A1 WO 2014030347A1
Authority
WO
WIPO (PCT)
Prior art keywords
binary arithmetic
arithmetic decoding
offset
binary
range
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.)
Ceased
Application number
PCT/JP2013/004941
Other languages
English (en)
French (fr)
Inventor
慶一 蝶野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2014531505A priority Critical patent/JPWO2014030347A1/ja
Priority to US14/422,217 priority patent/US20150215633A1/en
Publication of WO2014030347A1 publication Critical patent/WO2014030347A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Definitions

  • the present invention relates to a video decoding apparatus that decodes a bit stream compressed by a video encoding method that performs binary arithmetic encoding of binary data with a fixed probability.
  • Non-Patent Document 1 uses a differential motion vector (abs_mvd_minus2) and a coefficient vector (coeff_abs_level_remaining) as a binary sequence ( It is expressed by binary string), and it is specified that each bin (bin) of binary string is encoded by binary arithmetic coding with fixed probability (hereinafter referred to as bypass coding).
  • the fixed probability is 0.5 ⁇ ⁇ for each of the symbols “1” and “0”.
  • the encoded output for one bin is 1 bit (bit). Accordingly, the length of binary string determines the number of syntax bits, that is, the compression performance of the syntax. In order to improve syntax compression performance, HEVC uses variable length codes for binary string representation of syntax.
  • Fig. 7 is an explanatory diagram showing binary string for the value of abs_mvd_minus2.
  • “1” and “0” in the hatched box represent a prefix bin
  • “1” and “0” in a non-hatched box represent a suffix bin.
  • binary string ⁇ consists of a prefix consisting of consecutive “1” and “0” at the end, and a suffix with the same number of bits as the number of “1” in the prefix (NumPrefixOnes). Variable length code.
  • FIG. 8 is an explanatory diagram showing a process of decoding bin from the bit stream compressed by bypass coding.
  • decoding processing that is, binary arithmetic decoding with a fixed probability is called bypassbydecoding.
  • the range shown in FIG. 8 (b) is each probability interval (probability width) in the arithmetic encoding process and the arithmetic decoding process. In the example shown in Fig. 8, it is a section of "0".
  • the offset is a parameter obtained from the bitstream and indicates a position within the range.
  • the bypass decoder in the video decoding device decodes bin by comparing the offset and the range.
  • Fig. 9 is an explanatory diagram showing the prefix decoding process.
  • FIG. 10 is a flowchart showing bypass decoding described in 9.2.3.2.3 IV of Non-Patent Document 1. Note that Patent Document 1 also describes a process similar to the process shown in the flowchart of FIG.
  • FIG. 11 is a block diagram showing a configuration example of a general fixed binary arithmetic decoder (bypass) decoder 200 that performs bypass decoding, together with a debinarizer 110.
  • the bypass decoder 200 shown in FIG. 11 is a 1-bin bypass decoder (one-bin bypass decoder) that inputs a bit stream via the switch 101 and switches the output destination of the bit stream and decodes the prefix one by one.
  • a suffix bypass decoder (suffix-bin bypass decoder) 103 ⁇ ⁇ which inputs a bit stream via the switch 101 ⁇ and performs a decoding process of the suffix
  • the 1-bin bypass decoder 102 performs the operation of codIOffset
  • read_bits (1) ⁇ after performing the operation of codIOffset codIOffset ⁇ 1 for the codIOffset that is the offset in step S ⁇ b> 21. That is, the 1-bin bypass decoder 102 performs a logical OR operation with read_bits (1) after shifting codIOffset to the left by 1 bit. By the arithmetic processing in step S21, codIOffset is doubled and read_bits (1) is added. Note that codIOffset after the calculation process in step S21 is equivalent to the “offset” shown in FIGS. 8 and 9.
  • the 1-bin bypass decoder 102 compares codIOffset with codIRange which is a range in step S22. When codIOffset is smaller than codIRange, the 1-bin bypass decoder 102 determines bin to be “0” (see step S23).
  • the 1-bin bypass decoder 102 determines bin to be “1” (see step S24). In step S24 ⁇ ⁇ ⁇ ⁇ , the 1-bin bypass decoder 102 performs a codIOffset-codIRange normalization operation for decoding the next bin.
  • the calculation in step S24 corresponds to the process of changing the offset starting point to the P point (see FIG. 9). Assuming that the bypass ⁇ ⁇ decoder is performing the decoding of b1 shown in FIG. 9B, the calculation in step S24 corresponds to a process of changing the offset starting point to the Q point (see FIG. 9B).
  • the 1-bin bypass decoder 102 repeats bypass decoding of one bin from the bitstream until the terminal bin having a value of "0" is decoded.
  • the suffix bypass decoder 103 ⁇ ⁇ decodes the suffix bin ⁇ ⁇ by the number of “1” (NumPrefixOnes) in the decoded prefix. Then, the debinarization unit 110 converts binary string into syntax data and outputs it.
  • bypass decoder 200 can know NumSuffixBin before decoding the suffix. Accordingly, the bypass decoder 200 completes the decoding of the suffix only by performing the arithmetic operation of the binary arithmetic decoding range and offset comparison NumPrefixOnes times after prefetching NumPrefixOnes bits from the bitstream.
  • offset update processing of NumPrefixOnes or less is also necessary.
  • bypass decoder ⁇ ⁇ 200 cannot pre-read bit ⁇ ⁇ because it cannot obtain the number of bin ⁇ ⁇ constituting the prefix beforehand when decoding prefix. Therefore, according to bypass decoding ⁇ described in Non-Patent Document 1 and Patent Document 1, a binary arithmetic decoding range and offset comparison operation is always executed NumPrefixOnes times when a prefix is decoded. That is, the amount of computation when performing binary arithmetic decoding is large.
  • An object of the present invention is to reduce the amount of calculation when performing binary arithmetic decoding.
  • a video data binary arithmetic decoding apparatus is a video data binary arithmetic decoding apparatus that performs binary arithmetic decoding on a binary sequence prefixed with a continuous 1 and a terminal 0, and includes a range of binary arithmetic decoding, , A binary arithmetic decoding offset after N (N: natural number) bit look-ahead from the bitstream is compared, and a continuous one-number determining means is provided for determining the number of consecutive 1 in the binary sequence of N bits.
  • a video data binary arithmetic decoding method is a video data binary arithmetic decoding method for performing binary arithmetic decoding on a binary string prefixed with a continuous 1 and a terminal 0 ⁇ ⁇ , and the binary arithmetic decoding range and The binary arithmetic decoding offset after prefetching N (N: natural number) bits from the bitstream is compared, and the number of consecutive 1 in the binary sequence of N bits is determined.
  • a video data binary arithmetic decoding program is a video data binary arithmetic decoding program for performing binary arithmetic decoding on a binary string prefixed with a continuous 1 and a terminal 0.
  • the arithmetic decoding range is compared with the binary arithmetic decoding offset after N bits (N: natural number) prefetched from the bitstream, and the process of determining the number of consecutive 1 s in the binary sequence of N bits is executed. It is characterized by that.
  • the number of comparison operations between the range and the offset can be reduced, so that the amount of calculation when performing binary arithmetic decoding can be reduced.
  • FIG. 1 (b) is a block diagram showing a configuration of an embodiment of a video decoding device according to the present invention.
  • the video decoding device shown in FIG. 1B is a fixed binary arithmetic decoder (bypass decoder) 100 corresponding to an embodiment of the video data binary arithmetic decoding device, a debinarization unit 110, and transform decoding processing and predictive decoding processing. Including a predictive transform decoding unit 120.
  • the video decoding apparatus may include an adaptive binary arithmetic decoder (not shown).
  • Fig. 2 is a block diagram showing an example of the configuration of the bypass decoder 100.
  • the bypass decoder 100 shown in Fig. 2 is a 1-bin bypass decoder (One-bin bypass decoder) that inputs a bit stream via the switch 101 and switches the output destination of the bit stream and decodes the prefix one by one.
  • 1-bin bypass decoder One-bin bypass decoder
  • a suffix bypass decoder (suffix-bin bypass ⁇ ⁇ decoder) 103 that inputs a bit stream via the switch 101 ⁇ and decodes the suffix
  • a continuous 1 counter section that determines the number of consecutive “1” in the bitstream ( Successive-one Counter :: continuous one-number determining unit) 104, the output of the 1-bin bypass decoder 102, the suffix bin ⁇ output from the suffix bypass decoder 103, and the prefix bin ⁇ ⁇ output from the continuous 1-counter unit 104 Is provided with a switch 105 ⁇ ⁇ for selecting any of the above and outputting it to the binarization canceller 110.
  • the continuous 1 counter unit 104 performs prefetching of the bitstream and determines the number of “1” cells constituting the prefix.
  • the continuous 1 counter unit 104 ⁇ ⁇ ⁇ determines the number of “1” ⁇ constituting the prefix
  • the prefix can also be decoded, so the 1-bin bypass decoder 102 ⁇ does not exist. May be.
  • FIG. 3 is an explanatory diagram showing an example of a process for determining the number of “1” cells constituting the prefix.
  • the continuous 1 counter unit 104B has already read 9 bits (c0, c1, c2, c3, c4, c5, c6, c7, c8) from the bitstream, and further 8 bits (p0). , p1, p2, p3, p4, p5, p6, p7).
  • a to I ⁇ outside the right column of the lower column are expedient codes for specifying elements when each row is regarded as an element.
  • the 17-bit data (p7 is LSB (Least Significant Bit)) consisting of 9 bits that have been read and 8 bits that have been read-ahead are assumed to be offset '.
  • a value obtained by multiplying the range (range) by (2 N -1) (N: the number of read-ahead bits) is defined as a weighted range.
  • “x” represents “1” or “0”.
  • the continuous 1 counter unit 104 ⁇ ⁇ ⁇ determines the number of “1” ⁇ constituting the prefix using the relationship illustrated in FIG. 3.
  • the range of possible binary arithmetic decoding offsets is restricted as shown in Fig. 3, that is, N (N is a natural number) Note that even if bit prefetching is performed, the range that can be offset by binary arithmetic decoding is not N 2 +1 but N + 1. As can be seen from FIG. 3, as the number of consecutive “1” s increases, the upper limit of offset ′ increases according to the power of 2 (2 7 ⁇ m ) corresponding to the position m of “0”. .
  • N times by comparing log 2 (N + 1) times by a method based on binary search without comparing N + 1 ranges as described in Non-Patent Document 1, N times, The number of consecutive “1” s in the binary string included in N bits can be determined.
  • bypass decoder 100 pre-reads a predetermined N bits in prefix decoding, and compares the binary arithmetic decoding range and the offset after N bits pre-read (ie, offset ') log 2 (N + 1) times. Then, the number of consecutive “1” s in the binary string included in the N bits is determined. If the last "0" is not found in the prefetched N bits, the next N bits are prefetched until the last "0" is found and the number of consecutive "1” s is accumulated. That's fine.
  • FIG. 4 ⁇ is a flowchart showing the determination process of NumPrefixOnes by the continuous 1 counter unit 104.
  • peekNbits () represents a function for prefetching N bits from the bitstream.
  • Step S2.1 The continuous 1 counter unit 104 determines whether offset ′ is less than (224 * range). Note that (224 * range) corresponds to the central element (specifically, the lower limit value of the central element) of the arrays A to I illustrated in FIG. However, in the example shown in FIG. 3B, since the number of elements is “9” ⁇ , it corresponds to the fourth element F from the bottom. If offset ′ is less than (224 * range), the process proceeds to step S2.1.1. If offset ′ is equal to or greater than (224 * range), the process proceeds to step S2.2.
  • Step S2.2 The continuous 1 counter unit 104 determines whether or not offset ′ is less than (252 * range). If offset ′ is less than (252 * range), the process proceeds to step S2.2.1. If offset ′ is equal to or greater than (252 * range), the process proceeds to step S2.3. Note that (252 * range) corresponds to the center element between the element A ⁇ ⁇ and the element F ⁇ in the uppermost row in FIG.
  • Step 2.3 (Step S2.3.1)
  • the number of consecutive “1” tiles included in the prefetched 8 bits is determined by a maximum of 4 determinations.
  • step S4 the continuous 1 counter unit 104 updates the offset according to the value of M. That is, when M is not 0 (corresponding to the case where there are one or more consecutive “1” bins), offset 1 is updated as follows (steps S41 and S42).
  • offset ' offset'-((range ⁇ N)-(range ⁇ (NM)))
  • the right side of the above expression corresponds to normalization of the offset (ie, subtraction of range) corresponding to the number of consecutive “1” bins. Further, the continuous 1 counter unit 104 updates the offset as follows based on the offset ′.
  • offset offset '>> max (0, N-M-1) However, max (a, b) is a function that returns the larger value of inputs a and b.
  • the continuous 1 counter unit 104 sets offset 'as offset (steps S41 and S43).
  • step S5 the continuous 1 counter unit 104 updates NumPrefixOnes. That is, the continuous 1 counter unit 104 increments NumPrefixOnes by M.
  • the number of binary arithmetic decoding range and offset comparison operations is log 2 (N + 1). That is, the number of comparison operations can be reduced N-log 2 (N + 1) times compared to the conventional technique.
  • FIG. 5A and FIG. 5B are explanatory diagrams showing pseudo code for realizing the above processing.
  • FIG. 6 (b) is a block diagram showing a configuration example of an information processing system capable of realizing the function of the video decoding device according to the present invention.
  • the information processing system illustrated in FIG. 6B includes a processor 1001, a program memory 1002, a storage medium 1003 for storing video data, and a storage medium 1004 for storing a bitstream.
  • the storage medium 1003 and the storage medium 1004 may be separate storage media, or may be storage areas composed of the same storage medium.
  • a magnetic storage medium such as a hard disk can be used as the storage medium.
  • the program memory 1002 stores programs for realizing the functions of the blocks shown in FIG. 1B and FIG. Then, the processor 1001 implements the functions of the video decoding device shown in FIG. 1B and the bypass decoder 100 shown in FIG. 2B by executing processing according to the program stored in the program memory 1002.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

映像データ2値算術復号装置および映像復号装置
 本発明は、2値データを固定確率で2値算術符号化する映像符号化方式によって圧縮されたビットストリームを復号する映像復号装置に関する。
 H.264/MPEG-4 AVC(Advanced Video Coding )の後継規格であるHEVC(High Efficiency Video Coding)に関して、非特許文献1は、差分動きベクトル(abs_mvd_minus2)および係数ベクトル(coeff_abs_level_remaining )を2値列(binary string )で表現し、固定確率の2値算術符号化(以下、bypass coding と呼ぶ。)によって、binary string の各ビン(bin )を符号化することを規定している。固定確率は、シンボル"1" とシンボル"0" の各々について0.5 である。
 1つのbin に対する符号化出力は1ビット(bit )になる。従って、binary string の長さが、シンタクスのビット数すなわちシンタクスの圧縮性能を決定する。シンタクスの圧縮性能を高めるために、HEVCは、シンタクスの2値列表現に可変長符号を用いる。
 図7 は、abs_mvd_minus2の値に対するbinary string を示す説明図である。図7 において、斜線ボックス中の"1" および"0" は、プリフィックス(prefix)のbin を表し、非斜線ボックス中の"1" および"0" は、サフィックス(suffix)のbin を表す。図7 に示すように、binary string は、連続する"1" と終端の"0" とで構成されるプレフィックス、およびプレフィックス中の"1" の個数(NumPrefixOnes )と同数のビット数のサフィックスで構成される可変長符号である。
 図8 は、bypass coding によって圧縮されたビットストリームからbin を復号する処理を示す説明図である。以下、そのような復号処理すなわち固定確率の2値算術復号を、bypass decoding と呼ぶ。図8 に示されるレンジは、算術符号化処理および算術復号処理における各々の確率の区間(確率幅)である。図8 に示す例では、"0" の区間である。オフセットは、ビットストリームから得られるパラメータであり、レンジ内の位置を示す。
 映像復号装置におけるバイパス復号器は、オフセットとレンジとを比較することによってbin を復号する。
 図9 は、プレフィックスの復号処理を示す説明図である。図9 に示す例では、b0,b1,b2の順にbin が復号される。また、オフセットが図9 に示すような値である場合には、b0=1、b1=1、b2=0と復号される。
 図10は、非特許文献1の9.2.3.2.3 に記載されているbypass decoding を示すフローチャートである。なお、特許文献1にも、図10のフローチャートに示されたような処理と同様の処理が記載されている。
 図11は、bypass decoding を行う、一般的な固定2値算術復号器(bypass decoder)200 の構成例を2値化解除器(De-binarizer)110 とともに示すブロック図である。図11に示すbypass decoder 200は、ビットストリームの出力先を切り替えるスイッチ101 、スイッチ101 を介してビットストリームを入力し1 bin ずつプレフィックスの復号処理を行う1ビンバイパス復号器(One-bin bypass decoder)102 、スイッチ101 を介してビットストリームを入力しサフィックスの復号処理を行うサフィックスバイパス復号器(suffix-bin bypass decoder )103 、および1ビンバイパス復号器102 が出力するプレフィックスのbin とサフィックスバイパス復号器103 が出力するサフィックスのbin とのいずれかを選択して2値化解除器110 に出力するスイッチ105 を備える。
 図10を参照すると、1ビンバイパス復号器102 は、ステップS21 で、オフセットであるcodIOffsetについて、codIOffset=codIOffset<<1の演算を行った後、codIOffset|read_bits(1) の演算を行う。すなわち、1ビンバイパス復号器102 は、codIOffsetを1ビット左シフトした後、read_bits(1)との論理和演算を行う。ステップS21 の演算処理によって、codIOffsetが2 倍され、かつ、read_bits(1)が加算される。なお、ステップS21 の演算処理が行われた後のcodIOffsetが、図8 および図9 に示された「オフセット」に相当する。
 次いで、1ビンバイパス復号器102 は、ステップS22 で、codIOffsetとレンジであるcodIRange とを比較する。codIOffsetがcodIRange よりも小さい場合には、1ビンバイパス復号器102 は、bin を"0" に決定する(ステップS23 参照)。
 codIOffsetがcodIRange 以上である場合には、1ビンバイパス復号器102 は、bin を"1" に決定する(ステップS24 参照)。1ビンバイパス復号器102 は、ステップS24 で、次のbin の復号のために、codIOffset-codIRangeの正規化演算を行う。この段階で、bypass decoderが図9 に示すb0の復号を行っていたとすると、ステップS24 の演算は、オフセットの起点をP 点(図9 参照)に替える処理に相当する。bypass decoderが図9 に示すb1の復号を行っていたとすると、ステップS24 の演算は、オフセットの起点をQ 点(図9 参照)に替える処理に相当する。
 以上の説明から明らかなように、1ビンバイパス復号器102 は、終端の"0" の値のbin を復号するまで、ビットストリームから1つのbin のbypass decoding を繰り返す。そして、サフィックスバイパス復号器103 は、復号したプレフィックス中の"1" の個数(NumPrefixOnes )分だけ、サフィックスのbin を復号する。そして、2値化解除器110 は、binary string をシンタックスデータに変換して出力する。
特表2011-501896号公報
"WD5: Working Draft 5 of High-Efficiency Video Coding", Document: JCTVC-G1103_d8, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, CH, 21-30 November, 2011
 サフィックスのbin の個数(NumSuffixBin)は、NumPrefixOnes と等しい。よって、bypass decoder 200は、サフィックスを復号する前にNumSuffixBinを知ることができる。従って、bypass decoder 200は、ビットストリームからNumPrefixOnes個のbit を先読みした後、2値算術復号のレンジとオフセットの比較演算をNumPrefixOnes回実行するだけで、サフィックスの復号を完了する。ただし、厳密には、NumPrefixOnes回以下のオフセット更新処理(図10におけるステップS24 参照)も必要である。つまり、非特許文献1や特許文献1に記載されたbypass decoding では、2値算術復号のレンジは更新されないことを活用して、サフィックスの復号が行われる。なお、2値算術復号のレンジは更新されないのは、各bin がbypass coding されているためである。
 しかし、bypass decoder 200は、プレフィックスのbin を復号するときに、プレフィックスを構成するbin の個数を事前に得ることができないため、bit の先読みを行えない。従って、非特許文献1や特許文献1に記載されたbypass decoding では、プレフィックスを復号するときに、2値算術復号のレンジとオフセットの比較演算をNumPrefixOnes回必ず実行する。すなわち、2値算術復号を実行するときの演算量が多い。
 本発明は、2値算術復号を実行するときの演算量を低減することを目的とする。
 本発明による映像データ2値算術復号装置は、連続する1 と終端の0 をプレフィックスとする2値列を2値算術復号する映像データ2値算術復号装置であって、2値算術復号のレンジと、ビットストリームからN (N :自然数)ビット先読みした後の2値算術復号オフセットとを比較し、N ビットの2値列中に連続する1 の個数を決定する連続1個数決定手段を備えることを特徴とする。
 本発明による映像データ2値算術復号方法は、連続する1 と終端の0 をプレフィックスとする2値列を2値算術復号する映像データ2値算術復号方法であって、2値算術復号のレンジと、ビットストリームからN (N :自然数)ビット先読みした後の2値算術復号オフセットとを比較し、N ビットの2値列中に連続する1 の個数を決定することを特徴とする。
 本発明による映像データ2値算術復号プログラムは、連続する1 と終端の0 をプレフィックスとする2値列を2値算術復号するための映像データ2値算術復号プログラムであって、コンピュータに、2値算術復号のレンジと、ビットストリームからN ビット(N :自然数)先読みした後の2値算術復号オフセットとを比較し、N ビットの2値列中に連続する1 の個数を決定する処理を実行させることを特徴とする。
 本発明によれば、プレフィックスを復号するときに、レンジとオフセットの比較演算回数を削減できるので、2値算術復号を実行するときの演算量を低減できる。
本発明による映像復号装置の一実施形態の構成を示すブロック図である。 本発明による固定2値算術復号器の構成例を示すブロック図である。 プレフィックスを構成する"1" の個数を判定する処理の一例を示す説明図である。 連続1カウンタ部によるNumPrefixOnes の決定処理を示すフローチャートである。 bypass decoding の擬似コードを示す説明図である。 bypass decoding の擬似コードを示す説明図である。 本発明による映像復号装置の機能を実現可能な情報処理システムの構成例を示すブロック図である。 abs_mvd_minus2に対するbinary string を示す説明図である。 ビットストリームからbin を復号する処理を示す説明図である。 プレフィックスの復号処理を示す説明図である。 バイパス復号(bypass decoding )を示すフローチャートである。 一般的な固定2値算術復号器の構成例を示すブロック図である。
 図1 は、本発明による映像復号装置の一実施形態の構成を示すブロック図である。図1 に示す映像復号装置は、映像データ2値算術復号装置の一実施形態に相当する固定2値算術復号器(bypass decoder)100、2値化解除器110 、および変換復号処理と予測復号処理とを行う予測変換復号部120 を含む。なお、映像復号装置は、適応2値算術復号器(Adaptive Binary Arithmetic decoder:図示せず)を含んでいてもよい。
 図2 は、bypass decoder 100の構成例を示すブロック図である。図2 に示すbypass decoder 100は、ビットストリームの出力先を切り替えるスイッチ101 、スイッチ101 を介してビットストリームを入力し1 bin ずつプレフィックスの復号処理を行う1ビンバイパス復号器(One-bin bypass decoder)102 、スイッチ101 を介してビットストリームを入力しサフィックスの復号処理を行うサフィックスバイパス復号器(suffix-bin bypass decoder )103 、ビットストリーム中の連続する"1" の個数を決定する連続1カウンタ部(Successive-one Counter::連続1個数決定部)104 、および1ビンバイパス復号器102 の出力と、サフィックスバイパス復号器103 が出力するサフィックスのbin と、連続1カウンタ部104 が出力するプレフィックスのbin とのいずれかを選択して2値化解除器110 に出力するスイッチ105 を備える。
 本実施形態では、連続1カウンタ部104 は、ビットストリームの先読みを行い、プレフィックスを構成する"1" の個数を判定する。
 また、本実施形態では、連続1カウンタ部104 が、プレフィックスを構成する"1" の個数を判定するときに、プレフィックスの復号も行うことができるので、1ビンバイパス復号器102 は存在していなくてもよい。
 図3 は、プレフィックスを構成する"1" の個数を判定する処理の一例を示す説明図である。図3 に示す例では、連続1カウンタ部104 は、ビットストリームから既に9 ビット(c0,c1,c2,c3,c4,c5,c6,c7,c8)を読み込み済みであり、さらに8 ビット(p0,p1,p2,p3,p4,p5,p6,p7 )を先読みする。なお、図3 における下欄の右欄外のA ~I は、各行のそれぞれを要素と見なした場合の要素を特定するための便宜的な符号である。
 図3 に示すように、読み込み済みの9 ビットと先読みした8 ビットからなる17ビット(p7がLSB(Least Significant Bit))のデータを、offset' とする。レンジ(range )に(2N-1)(N:先読みビット数)が乗算された値を重み付けrange とする。なお、図3 に示す例では、N=8 であって(2N-1)=255であり、range=0.5 である。また、図3 において、"x"は、"1" または"0" を示す。
 図3 における下欄の最上行に示すように、先読みした8 ビットが全て"1" である場合には、読み込み済みの9 ビット(c0,c1,c2,c3,c4,c5,c6,c7,c8)の値に関わらず、255*range<=offset'が成り立つ。なお、"<="は、「以上」を表す。また、図3 における下欄の最下行に示すように、先読みした8 ビットのうちのMSB(Most Significant Bit )であるp0が"0" である場合には、読み込み済みの9 ビット(c0,c1,c2,c3,c4,c5,c6,c7,c8)の値に関わらず、offset'<128*rangeが成り立つ。
 また、図3 における下欄の最上行と最下行との間の各行に示す値について、図3 における下欄の外に示された関係が成り立つ。
 連続1カウンタ部104 は、図3 に例示された関係を用いて、プレフィックスを構成する"1" の個数を判定する。
 プレフィックスが連続する"1" と終端の"0" で構成されるため、図3 に示すように、2値算術復号のオフセットがとり得る値域が制約されること、つまり、N (N :自然数)ビット先読みしたとしても、2値算術復号のオフセットがとり得る値域は、2N+1ではなく、N+1 となることに着目する。また、図3 から分かるように、連続する"1" の個数が増加するほど、"0" の位置m に応じた2のべき乗(27-m)に応じて、offset' の上限が増加する。すなわち、非特許文献1に記載されているようなN+1 の値域をN 回比較することなく、2分探索に基づいた方法により、log2(N+1) 回の比較を行うことによって、N ビットに含まれる2値列中の連続する"1" の個数を判定できる。
 従って、bypass decoder 100は、プレフィックスの復号において、所定のN ビットを先読みし、2値算術復号のレンジとN ビット先読みした後のオフセット(すなわち、offset' )をlog2(N+1) 回比較し、N ビットに含まれる2値列中の連続する"1" の個数を判定する。なお、先読みしたN ビット中に終端の"0" が見つからなかった場合には、終端の"0" が見つかるまで、次のN ビットの先読みを繰り返して、連続する"1" の個数を累積すればよい。
 次に、連続1カウンタ部104 の動作を説明する。図4 は、連続1カウンタ部104 によるNumPrefixOnes の決定処理を示すフローチャートである。
 NumPrefixOnes の初期値は"0" であるとする。ステップS1で、連続1カウンタ部104 は、offset'=(offset<<N)+peekNbits() の演算を行う。すなわち、offsetを左にN ビットシフトし、ビットストリームから先読みしたN ビットを下位に設定して、offset' とする。なお、peekNbits() は、ビットストリームからN ビットを先読みする関数を表す。
 ステップS2で、連続1カウンタ部104 は、N ビット連続するbin の個数を決定する。すなわち、2分探索(binary search )により、offset' と重み付けrange とを比較してM を決定する。N=8 の場合(図3 参照)には、以下のように2分探索でM を決定する。
(ステップS2.1)連続1カウンタ部104 は、offset' が(224*range) 未満であるか否か判断する。なお、(224*range) は、図3 に例示する配列A ~I の中央の要素(具体的には、中央の要素の下限値)に対応する。ただし、図3 に示す例では要素数は"9" であるから、下から4番目の要素F に対応する。offset' が(224*range) 未満である場合には、ステップS2.1.1に移行する。offset' が(224*range) 以上である場合には、ステップS2.2 に移行する。
(ステップS2.1.1)連続1カウンタ部104 は、offset' が(128*range) 未満であるか否か判断する。offset' が(128*range) 未満である場合には、連続1カウンタ部104 は、M=0 とする(図3 における下欄の最下行参照)。そして、ステップS3 に移行する。offset' が(128*range) 以上である場合には、ステップS2.1.2に移行する。なお、(128*range) は、図3 における最下行の要素I と下から3番目の要素G との間での中央の要素に対応する。
(ステップS2.1.2)連続1カウンタ部104 は、offset' が(192*range) 未満であるか否か判断する。offset' が(192*range) 未満である場合、連続1カウンタ部104 は、M=1 とする(図3 における下欄の下から第2行参照)。そして、ステップS3 に移行する。offset' が(192*range) 以上である場合、連続1カウンタ部104 は、M=2 (図3 における下欄の下から第3行参照)とする。そして、ステップS3 に移行する。なお、(192*range) は、図3 における要素F と要素H との間での中央の要素に対応する。
(ステップS2.2)連続1カウンタ部104 は、offset' が(252*range) 未満であるか否か判断する。offset' が(252*range) 未満である場合、ステップS2.2.1に移行する。offset' が(252*range) 以上である場合、ステップS2.3に移行する。なお、(252*range) は、図3 における最上行の要素A と要素F との間での中央の要素に対応する。
(ステップS2.2.1)連続1カウンタ部104 は、offset' が(240*range) 未満であるか否か判断する。offset' が(240*range) 未満である場合、連続1カウンタ部104 は、M=3 とする(図3 における下欄の下から第4行参照)。そして、ステップS3 に移行する。offset' が(240*range) 以上である場合、ステップS2.2.2に移行する。なお、(240*range) は、図3 における要素D と要素F との間での中央の要素に対応する。
(ステップS2.2.2)連続1カウンタ部104 は、offset' が(248*range) 未満であるか否か判断する。offset' が(248*range) 未満である場合、連続1カウンタ部104 は、M=4 とする(図3 における下欄の上から第5行参照)。そして、ステップS3 に移行する。offset' が(248*range) 以上である場合、連続1カウンタ部104 は、M=5 (図3 における下欄の上から第4行参照)とする。そして、ステップS3 に移行する。
(ステップ2.3 )
(ステップS2.3.1)連続1カウンタ部104 は、offset' が(254*range) 未満であるか否か判断する。offset' が(254*range) 未満である場合、連続1カウンタ部104 は、M=6 とする(図3 における下欄の上から第3行参照)。そして、ステップS3 に移行する。offset' が(254*range) 以上である場合、ステップS2.3.2に移行する。なお、(254*range) は、図3 における要素A と要素C との間での中央の要素に対応する。
(ステップS2.3.2)連続1カウンタ部104 は、offset' が(255*range) 未満であるか否か判断する。offset' が(255*range) 未満である場合、連続1カウンタ部104 は、M=7 とする(図3 における下欄の上から第2行参照)。そして、ステップS3 に移行する。offset' が(255*range) 以上である場合、連続1カウンタ部104 は、M=8 (図3 における最上行参照)とする。そして、ステップS3 に移行する。
 以上のような2分探索によって、先読みした8ビットに含まれる、連続する"1" の個数は、最大でも4回の判定によって決定される。
 ステップS3 では、連続1カウンタ部104 は、ビットストリームのビット位置を更新する。すなわち、M=N の場合(終端の"0" が見い出されなかった場合に相当)、連続1カウンタ部104 は、ビットストリームのビット位置をN 進める。そして、ステップS4 に移行する。M ≠ Nの場合(終端の"0" が見い出された場合に相当)、連続1カウンタ部104 は、ビットストリームのビット位置をM+1 進める。そして、ステップS4 に移行する。
 ステップS4 では、連続1カウンタ部104 は、M の値に応じてoffsetを更新する。すなわち、連続1カウンタ部104 は、M が0 でない場合(1つ以上の連続する"1" のbin が存在する場合に相当)、以下のようにoffset' を更新する(ステップS41,S42 )。
 offset' =offset' -((range<<N) - (range<<(N-M)))
 上記の式の右辺は、連続する"1" のbin の個数に相当する回数のオフセットの正規化(すなわち、range の減算)に相当する。さらに、連続1カウンタ部104 は、offset' に基づいて下記のようにoffsetを更新する。
 offset = offset' >>max(0, N - M - 1) 
ただし、max(a,b)は入力a,bのうち大きなほうの値を返す関数である。
 M が0 の場合(1つ以上の連続する"1" のbin が存在しない場合に相当)、連続1カウンタ部104 は、offset' をoffsetとする(ステップS41,S43 )。
 ステップS5 では、連続1カウンタ部104 は、NumPrefixOnes を更新する。すなわち、連続1カウンタ部104 は、NumPrefixOnes をM インクリメントする。
 ステップS6 では、連続1カウンタ部104 は、M の値を判定する。M がN(=8)の場合にはステップS1に戻る。M がN(=8) 未満の場合には処理を終了する。
 本実施形態では、プレフィックスの復号において、2値算術復号のレンジとオフセットの比較演算回数は、log2(N+1) になる。すなわち、従来技術よりも比較演算回数をN-log2(N+1) 回削減できる。
 図5Aおよび図5Bは、上記の処理を実現するための擬似コードを示す説明図である。なお、擬似コードは、以下の仮定に基づく。
1) オフセット通常先読みビット数が7 ビットとし、プレフィックス用の先読みビット数を8 ビットとする。
2)変数定義:
 extendedCodIOffset:7bit拡張済みオフセットすなわちoffset' (9 + 7 = 16 bits )
 codIRange :レンジ
 curBitNeeded:オフセット無効LSB ビット数 - 8、curBitNeeded=-8 は、16ビット全てが有効、curBitNeeded=-7 は、MSB 15ビットが有効、curBitNeeded=-1は、MSB 9ビットが有効
 なお、上記の実施形態を、ハードウェアで構成することも可能であるが、コンピュータプログラムにより実現することも可能である。
 図6 は、本発明による映像復号装置の機能を実現可能な情報処理システムの構成例を示すブロック図である。図6 に示す情報処理システムは、プロセッサ1001、プログラムメモリ1002、映像データを格納するための記憶媒体1003およびビットストリームを格納するための記憶媒体1004を備える。記憶媒体1003と記憶媒体1004とは、別個の記憶媒体であってもよいし、同一の記憶媒体からなる記憶領域であってもよい。記憶媒体として、ハードディスク等の磁気記憶媒体を用いることができる。
 図6 に示された情報処理システムにおいて、プログラムメモリ1002には、図1 、図2 のそれぞれに示された各ブロックの機能を実現するためのプログラムが格納される。そして、プロセッサ1001は、プログラムメモリ1002に格納されているプログラムに従って処理を実行することによって、図1 に示された映像復号装置および図2 に示されたbypass decoder 100の機能を実現する。
 以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2012年8月22日に出願された日本特許出願2012-183229を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 100  固定2値算術復号器(bypass decoder)
 101  スイッチ
 102  1ビンバイパス復号器(One-bin bypass decoder)
 103  サフィックスバイパス復号器(suffix-bin bypass decoder )
 104  連続1カウンタ部(連続1個数決定部)
 105  スイッチ
 110  2値化解除器
 120  予測変換復号部
 200  固定2値算術復号器(bypass decoder)
 1001 プロセッサ
 1002 プログラムメモリ
 1003 記憶媒体
 1004 記憶媒体

Claims (7)

  1.  連続する1 と終端の0 をプレフィックスとする2値列を2値算術復号する映像データ2値算術復号装置であって、
     2値算術復号のレンジと、ビットストリームからN (N :自然数)ビット先読みした後の2値算術復号オフセットとを比較し、前記N ビットの2値列中に連続する1 の個数を決定する連続1個数決定手段を備える
     ことを特徴とする映像データ2値算術復号装置。
  2.  連続1個数決定手段は、レンジとオフセットとを比較しながら2分探索により連続する1 の個数を決定する
     請求項1記載の映像データ2値算術復号装置。
  3.  連続する1 と終端の0 をプレフィックスとする2値列を2値算術復号する映像復号装置であって、
     請求項1又は請求項2記載の映像データ2値算術復号装置を備えることを特徴とする映像復号装置。
  4.  連続する1 と終端の0 をプレフィックスとする2値列を2値算術復号する映像データ2値算術復号方法であって、
     2値算術復号のレンジと、ビットストリームからN (N :自然数)ビット先読みした後の2値算術復号オフセットとを比較し、前記N ビットの2値列中に連続する1 の個数を決定する
     ことを特徴とする映像データ2値算術復号方法。
  5.  レンジとオフセットとを比較しながら2分探索により連続する1 の個数を決定する請求項4記載の映像データ2値算術復号方法。
  6.  連続する1 と終端の0 をプレフィックスとする2値列を2値算術復号するための映像データ2値算術復号プログラムであって、
     コンピュータに、
     2値算術復号のレンジと、ビットストリームからN ビット(N :自然数)先読みした後の2値算術復号オフセットとを比較し、前記N ビットの2値列中に連続する1 の個数を決定する処理を実行させるための映像データ2値算術復号プログラム。
  7.  コンピュータに、レンジとオフセットとを比較しながら2分探索により連続する1 の個数を決定する処理を実行させるための
     請求項6記載の映像データ2値算術復号プログラム。
PCT/JP2013/004941 2012-08-22 2013-08-21 映像データ2値算術復号装置および映像復号装置 Ceased WO2014030347A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014531505A JPWO2014030347A1 (ja) 2012-08-22 2013-08-21 映像データ2値算術復号装置および映像復号装置
US14/422,217 US20150215633A1 (en) 2012-08-22 2013-08-21 Image-data binary arithmetic decoding device and image decoding device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012183229 2012-08-22
JP2012-183229 2012-08-22

Publications (1)

Publication Number Publication Date
WO2014030347A1 true WO2014030347A1 (ja) 2014-02-27

Family

ID=50149673

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/004941 Ceased WO2014030347A1 (ja) 2012-08-22 2013-08-21 映像データ2値算術復号装置および映像復号装置

Country Status (3)

Country Link
US (1) US20150215633A1 (ja)
JP (1) JPWO2014030347A1 (ja)
WO (1) WO2014030347A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024091925A1 (en) * 2022-10-25 2024-05-02 Google Llc Improved entropy bypass coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11163737A (ja) * 1997-12-01 1999-06-18 Hirobumi Nakamura 情報源の符号化及び復号化の高速化装置
JP2011501896A (ja) * 2007-09-27 2011-01-13 クゥアルコム・インコーポレイテッド 最適cabac復号器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1238787C (zh) * 2003-10-17 2006-01-25 清华大学 嵌入式实时操作系统的二分查找式任务调度方法
TWI343192B (en) * 2009-06-12 2011-06-01 Ind Tech Res Inst Decoding method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11163737A (ja) * 1997-12-01 1999-06-18 Hirobumi Nakamura 情報源の符号化及び復号化の高速化装置
JP2011501896A (ja) * 2007-09-27 2011-01-13 クゥアルコム・インコーポレイテッド 最適cabac復号器

Also Published As

Publication number Publication date
JPWO2014030347A1 (ja) 2016-07-28
US20150215633A1 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
CN107835431B (zh) 对视频编码的方法和设备以及对视频解码的方法和设备
KR101826294B1 (ko) 이미지들을 코딩 및 디코딩하는 방법, 코딩 및 디코딩 디바이스 및 그에 대응하는 컴퓨터 프로그램들
US8526750B2 (en) Method and apparatus for encoding/decoding image by using adaptive binarization
US20140205006A1 (en) Super macro block based intra coding method and apparatus
JP2016076963A (ja) ビデオコーディングにおける並列コンテキスト計算
JP6036822B2 (ja) 映像量子化パラメータ符号化方法、映像量子化パラメータ復号方法、装置およびプログラム
US11234023B2 (en) Features of range asymmetric number system encoding and decoding
JPWO2008065822A1 (ja) 符号化装置及び符号化方法
CN107105274B (zh) 对视频量化参数解码的方法
CN108353174A (zh) 并行算术译码技术
JP6149971B2 (ja) 映像量子化パラメータ符号化方法及び映像量子化パラメータ復号方法
JP2022103284A (ja) 映像符号化装置、映像復号装置、及びこれらのプログラム
WO2014030347A1 (ja) 映像データ2値算術復号装置および映像復号装置
AU2015252148B2 (en) Image quantization parameter encoding method and image quantization parameter decoding method
CN103702129A (zh) 视频编码方法与视频编码装置
HK1232706A1 (en) Image quantization parameter decoding method
HK1234934A1 (en) Image quantization parameter decoding method
HK1232706A (en) Image quantization parameter decoding method
HK1234934A (en) Image quantization parameter decoding method
HK1194886B (en) Method for coding video quantization parameter and method for decoding video quantization parameter
HK1234936A (en) Method for decoding video quantization parameter
HK1194886A (en) Method for coding video quantization parameter and method for decoding video quantization parameter
HK1232707A (en) Image quantization parameter encoding method and image quantization parameter decoding method
HK1234935A1 (en) Image quantization parameter decoding method
HK1234936A1 (en) Method for decoding video quantization parameter

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13831504

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014531505

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14422217

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13831504

Country of ref document: EP

Kind code of ref document: A1