WO2018194190A1 - 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 - Google Patents

비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 Download PDF

Info

Publication number
WO2018194190A1
WO2018194190A1 PCT/KR2017/004141 KR2017004141W WO2018194190A1 WO 2018194190 A1 WO2018194190 A1 WO 2018194190A1 KR 2017004141 W KR2017004141 W KR 2017004141W WO 2018194190 A1 WO2018194190 A1 WO 2018194190A1
Authority
WO
WIPO (PCT)
Prior art keywords
probability state
bins
interval length
probability
multiple input
Prior art date
Application number
PCT/KR2017/004141
Other languages
English (en)
French (fr)
Inventor
구문모
Original Assignee
엘지전자(주)
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 엘지전자(주) filed Critical 엘지전자(주)
Priority to PCT/KR2017/004141 priority Critical patent/WO2018194190A1/ko
Publication of WO2018194190A1 publication Critical patent/WO2018194190A1/ko

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/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/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

Definitions

  • the present invention relates to a method and apparatus for entropy encoding and decoding video signals. More specifically, the present invention relates to a method of performing context-based Adaptive Binary Arithmetic Coding (CABAC) probability update for simultaneously processing a plurality of bins.
  • CABAC Adaptive Binary Arithmetic Coding
  • Entropy coding is a process of generating a raw byte sequence payload (RWSP) by losslessly compressing syntax elements determined through an encoding process.
  • Entropy coding uses syntax statistics to assign short bits to frequently occurring syntax and long bits to syntax that is not syntactically to express syntax elements as concise data.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the present invention seeks to propose a method for improving the throughput of entropy coding.
  • the present invention proposes a structure for coding a plurality of bins into a single or multiple bitstreams.
  • the present invention aims to propose an efficient probability updating method that can be applied when simultaneously coding a plurality of bins.
  • the present invention provides a method for improving the throughput of entropy coding.
  • the present invention provides a method of performing a probability update based on at least one of a probability state transition table or a range length table for a plurality of bins.
  • the present invention provides a method for decoding a plurality of bin values based on at least one of interval information or interval offset values for all possible input values.
  • the present invention can improve the throughput of entropy coding by providing an efficient probability updating method that can be applied when simultaneously coding a plurality of bins.
  • the present invention makes it possible to apply an approximation through a table look-up only once when reflecting coding results of a plurality of bins at once in a probability update, and more accurate range length.
  • the performance of entropy coding can be improved.
  • FIG. 1 is a schematic block diagram of an encoder in which encoding of a video signal is performed as an embodiment to which the present invention is applied.
  • FIG. 2 is a schematic block diagram of a decoder in which decoding of a video signal is performed as an embodiment to which the present invention is applied.
  • FIG. 3 is a schematic block diagram of an entropy encoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • FIG. 4 is a schematic block diagram of an entropy decoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • FIG. 7 is a diagram for describing a process of simultaneously processing a plurality of bins as an embodiment to which the present invention is applied.
  • FIG. 8 is an embodiment to which the present invention is applied and schematically illustrates a probability updating unit for explaining a process of outputting a next state based on a table according to an input combination when two bins are processed simultaneously. Represents a block diagram.
  • 9 to 10 are diagrams for describing binary coded coding using a range length table and a probability transition table as embodiments to which the present invention is applied.
  • FIG. 11 is a diagram for describing a process of acquiring a new range length with a single table look-up for input coded data according to an embodiment to which the present invention is applied.
  • FIG. 12 illustrates an embodiment to which the present invention is applied and illustrates a method of accessing a probability state transition table based on whether a plurality of bins refer to the same context.
  • FIG. 13 is a flowchart illustrating a process of performing encoding based on a multiple input probability state transition table according to an embodiment to which the present invention is applied.
  • FIG. 14 is a flowchart illustrating a process of performing decoding based on a multiple input probability state transition table according to an embodiment to which the present invention is applied.
  • FIG. 15 illustrates a Least Probable Symbol (LPS) probability table as an embodiment to which the present invention is applied.
  • LPS Least Probable Symbol
  • FIG. 16 illustrates a probability state transition table for two input bins as an embodiment to which the present invention is applied.
  • FIG. 17 is an embodiment to which the present invention is applied and shows all probability state tables considering the probability state transition process of FIG. 16.
  • FIG. 18 illustrates a table in which the probability values of FIG. 17 are applied to medians of four ranges according to an embodiment to which the present invention is applied.
  • FIG. 19 illustrates a table for decoding a bin value in comparison with an interval offset value according to an embodiment to which the present invention is applied.
  • FIG. 20 is a diagram for describing section division according to configuration of input bins according to an embodiment to which the present invention is applied.
  • a method of performing entropy encoding on a video signal comprising: receiving at least one bitstream comprising a plurality of bins; And performing a probability update based on context information corresponding to the plurality of bins, wherein the performing of the probability update comprises: performing a next step from a multi-input probability state transition table defined based on a current probability state; Identifying a probability state, wherein the predefined multiple input probability state transition table represents next probability state values for all possible combinations of the plurality of bins and the current probability state; Calculating a new interval length from a predefined multiple input interval length table based on the current probability state, wherein the predefined multiple input interval length table represents a table for approximating a product of interval length and probability; And performing renormalization on the new section length.
  • the plurality of bins are processed simultaneously.
  • the context information when the plurality of bins are included in one bitstream, the context information is characterized in that one common context set.
  • the context information when the plurality of bins are included in a plurality of bitstreams, the context information includes at least one context set, and the at least one context set respectively corresponds to the plurality of bitstreams. It is characterized by.
  • the predefined multiple input interval length table is defined based on a result of multiplying a probability value of the current probability state by a median value of a range interval.
  • a method of performing entropy decoding on a video signal comprising: receiving at least one bitstream comprising a plurality of bins; And performing entropy decoding on the bitstream, wherein performing entropy decoding comprises: performing initialization for binary arithmetic decoding; Identifying a next probability state from a predefined multiple input probability state transition table based on a current probability state, wherein the predefined multiple input probability state transition table is defined between the plurality of bins and the current probability state.
  • the context information is one common context set. It features.
  • the context information when the probability update is performed based on context information corresponding to the plurality of bins, and the plurality of bins are included in the plurality of bitstreams, the context information includes at least one context set. And each of the at least one context set corresponds to the plurality of bitstreams.
  • the present invention provides an apparatus for performing entropy encoding on a video signal, comprising: a bitstream receiver configured to receive at least one bitstream including a plurality of bins; And an entropy encoding unit configured to perform a probability update based on context information corresponding to the plurality of bins, wherein the entropy encoding unit comprises a next probability state from a multi-input probability state transition table defined based on a current probability state.
  • a probability updating unit for checking a value and calculating a new interval length from a predefined multi-input interval length table based on the current probability state; And a renormalization unit for renormalizing the new interval length, wherein the predefined multiple input probability state transition table includes a next probability for every possible combination between the plurality of bins and the current probability state. And a predetermined multiple input interval length table representing a table for approximating the product of the interval length and the probability.
  • the context information indicates one common context set and the plurality of bins.
  • the context information includes at least one context set, and the at least one context set corresponds to the plurality of bitstreams, respectively.
  • the present invention provides an apparatus for performing entropy decoding on a video signal, comprising: a bitstream receiver configured to receive at least one bitstream including a plurality of bins; And an entropy decoding unit for performing entropy decoding on the bitstream, wherein the entropy decoding unit comprises: an initialization unit performing initialization for binary arithmetic decoding; Determine a next probability state from a predefined multi-input probability state transition table based on a current probability state, calculate a new interval length from the predefined multiple input interval length table based on the current probability state, and calculate the new interval length And a probability updater for determining a value of the plurality of bins based on the predetermined multi-input probability state transition table in all possible combinations between the plurality of bins and the current probability state. And a predetermined multiple input interval length table representing a table for approximating a product of the interval length and the probability.
  • signals, data, samples, pictures, frames, and blocks may be interpreted as appropriate in each coding process.
  • FIG. 1 is a schematic block diagram of an encoder in which encoding of a video signal is performed as an embodiment to which the present invention is applied.
  • the encoder 100 may include an image splitter 110, a transformer 120, a quantizer 130, an inverse quantizer 140, an inverse transformer 150, a filter 160, and a decoder. It may include a decoded picture buffer (DPB) 170, an inter predictor 180, an intra predictor 185, and an entropy encoder 190.
  • DPB decoded picture buffer
  • the image divider 110 may divide the input image (or a picture or a frame) input to the encoder 100 into one or more processing units.
  • the processing unit may be a Coding Tree Unit (CTU), a Coding Unit (CU), a Prediction Unit (PU), or a Transform Unit (TU).
  • CTU Coding Tree Unit
  • CU Coding Unit
  • PU Prediction Unit
  • TU Transform Unit
  • the encoder 100 may generate a residual signal by subtracting the prediction signal output from the inter prediction unit 180 or the intra prediction unit 185 from the input image signal, and the generated residual signal is converted into a conversion unit ( 120).
  • the transformer 120 may generate a transform coefficient by applying a transform technique to the residual signal.
  • the transformation technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a karhunen-loeve transform (KLT), a graph-based transform (GBT), or a conditionally non-linear transform (CNT).
  • DCT discrete cosine transform
  • DST discrete sine transform
  • KLT karhunen-loeve transform
  • GBT graph-based transform
  • CNT conditionally non-linear transform
  • GBT means a conversion obtained from this graph when the relationship information between pixels is represented by a graph.
  • CNT refers to a transform that is generated based on and generates a prediction signal using all previously reconstructed pixels.
  • the conversion process may be applied to pixel blocks having the same size as the square, or may be applied to blocks of variable size rather than square.
  • the quantization unit 130 may quantize the transform coefficients and transmit them to the entropy encoding unit 190, and the entropy encoding unit 190 may entropy code the quantized signal and output the bitstream.
  • the quantized signal output from the quantization unit 130 may be used to generate a prediction signal.
  • the quantized signal may reconstruct the residual signal by applying inverse quantization and inverse transformation through inverse quantization unit 140 and inverse transformation unit 150 in a loop.
  • the reconstructed signal may be generated by adding the reconstructed residual signal to the prediction signal output from the inter predictor 180 or the intra predictor 185.
  • the filtering unit 160 applies filtering to the reconstruction signal and outputs it to the reproduction apparatus or transmits the decoded picture buffer to the decoding picture buffer 170.
  • the filtered signal transmitted to the decoded picture buffer 170 may be used as the reference picture in the inter predictor 180. As such, by using the filtered picture as a reference picture in the inter prediction mode, not only image quality but also encoding efficiency may be improved.
  • the decoded picture buffer 170 may store the filtered picture for use as a reference picture in the inter prediction unit 180.
  • the inter prediction unit 180 performs temporal prediction and / or spatial prediction to remove temporal redundancy and / or spatial redundancy with reference to the reconstructed picture.
  • the motion information may be predicted based on the correlation of the motion information between the neighboring block and the current block.
  • the intra predictor 185 may predict the current block by referring to samples around the block to which current encoding is to be performed.
  • the intra prediction unit 185 may perform the following process to perform intra prediction. First, reference samples necessary for generating a prediction signal may be prepared. The prediction signal may be generated using the prepared reference sample. Then, the prediction mode is encoded. In this case, the reference sample may be prepared through reference sample padding and / or reference sample filtering. Since the reference sample has been predicted and reconstructed, there may be a quantization error. Accordingly, the reference sample filtering process may be performed for each prediction mode used for intra prediction to reduce such an error.
  • the prediction signal generated by the inter predictor 180 or the intra predictor 185 may be used to generate a reconstruction signal or to generate a residual signal.
  • FIG. 2 is a schematic block diagram of a decoder in which decoding of a video signal is performed as an embodiment to which the present invention is applied.
  • the decoder 200 may include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, a filtering unit 240, and a decoded picture buffer unit (DPB) 250. ), An inter predictor 260, and an intra predictor 265.
  • the reconstructed video signal output through the decoder 200 may be reproduced through the reproducing apparatus.
  • the decoder 200 may receive a signal output from the encoder 100 of FIG. 1, and the received signal may be entropy decoded through the entropy decoding unit 210.
  • the inverse quantization unit 220 obtains a transform coefficient from the entropy decoded signal using the quantization step size information.
  • the inverse transformer 230 inversely transforms a transform coefficient to obtain a residual signal.
  • the reconstruction signal is generated by adding the obtained residual signal to the prediction signal output from the inter prediction unit 260 or the intra prediction unit 265.
  • the filtering unit 240 applies filtering to the reconstruction signal and outputs it to the reproduction apparatus or transmits the decoded picture buffer unit 250 to the reproduction device.
  • the filtered signal transmitted to the decoded picture buffer unit 250 may be used as the reference picture in the inter predictor 260.
  • the embodiments described by the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the encoder 100 are respectively the filtering unit 240, the inter prediction unit 260, and the decoder. The same may be applied to the intra predictor 265.
  • FIG. 3 is a schematic block diagram of an entropy encoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the entropy encoding unit 300 to which the present invention is applied includes a binarization unit 310, a context modeling unit 320, a binary arithmetic encoding unit 330, and a memory 360, and the binary arithmetic encoding unit 330 includes: A regular binary encoding unit 340 and a bypass binary encoding unit 350.
  • the regular binary encoding unit 340 and the bypass binary encoding unit 350 may be referred to as a normal coding engine and a bypass coding engine, respectively.
  • the binarization unit 310 may output a binary symbol string composed of a binary value of 0 or 1 by receiving a sequence of data symbols and performing binarization.
  • the binarization unit 310 may map syntax elements into binary symbols.
  • Several different binarization processes such as unary (U), truncated unary (TU), k-th order Exp-Golomb (EGk), and fixed length processes, support binarization. Can be used for The binarization process may be selected based on the type of syntax element.
  • the output binary symbol string is transmitted to the context modeling unit 320.
  • the context modeling unit 320 selects probability information necessary for coding a current block from a memory and transmits the probability information to the binary arithmetic encoding unit 330.
  • the context memory may be selected based on the syntax element to be coded, and the probability information required for coding the current syntax element may be selected through the bin index binIdx.
  • context refers to information about a probability of occurrence of a symbol
  • context modeling refers to a process of estimating a probability of a bin required for binary arithmetic coding by using a bin, which is a binarization result.
  • the context modeler 320 may provide accurate probability estimation necessary to achieve high coding efficiency. Accordingly, different context models may be used for different binary symbols and the probability of such context model may be updated based on the values of previously coded binary symbols. In this case, values of previously coded binary symbols may be stored in the memory 360, and the context modeling unit 320 may use values of previously coded binary symbols.
  • Binary symbols with similar distributions can share the same context model.
  • the context model for each of these binary symbols is used to determine the syntax of the bin, the bin index (binIdx) indicating the location of the bin in the bin string, and the neighboring block of the block containing the bin for probability estimation. At least one of the decoded values of the syntax element may be used.
  • the binary arithmetic encoding unit 330 includes a regular binary encoding unit 340 and a bypass binary encoding unit 350 to perform entropy encoding on the output string. And output compressed data bits.
  • the regular binary encoding unit 340 performs arithmetic coding based on recursive interval division.
  • a section (or range) having an initial value of 0 to 1 is divided into two lower sections based on the probability of a binary symbol.
  • the encoded bits may be used as an offset for selecting one of intervals representing 0 and 1 each time binary symbol values are continuously decoded when they are converted to binary decimal numbers.
  • interval segmentation process when decoding a binary symbol, one of the two divided subsections is selected, and the process of splitting the selected subsection based on the corresponding binary probability is repeated.
  • the intervals and offsets have limited bit precision, so renormalization may be needed to prevent overflow each time the interval falls below a certain value. The renormalization may occur after each binary symbol is decoded.
  • the bypass binary encoding unit 350 performs encoding without a context model, and performs coding by fixing a probability of a bin currently coded to 0.5. This can be used when it is difficult to determine the probability of syntax or when you want to code at high speed.
  • FIG. 4 is a schematic block diagram of an entropy decoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the entropy decoding unit 400 to which the present invention is applied includes a context modeling unit 410, a binary arithmetic decoding unit 420, a memory 450, and an inverse binarization unit 460, and the binary arithmetic decoding unit 420.
  • a regular binary decoding unit 430 and a bypass binary decoding unit 440 are included.
  • the entropy decoding unit 400 may receive a bitstream and determine whether to perform binary arithmetic decoding according to a regular mode or binary arithmetic decoding according to a bypass mode. For example, the entropy decoding unit 400 may determine this by checking a bypass flag.
  • the bypass flag indicates whether the bypass mode is in the bypass mode, and the bypass mode does not use a context model, and the probability of the currently coded bin is 0.5. It means fixing by coding.
  • the regular binary decoding unit 430 When not in the bypass mode according to the bypass flag, the regular binary decoding unit 430 performs binary arithmetic decoding according to a regular mode. .
  • the bypass binary decoding unit 440 performs binary arithmetic decoding according to the bypass mode. Do this.
  • the inverse binarization unit 460 receives a binary-type bin decoded by the binary arithmetic decoding unit 420 and converts it into an integer-type syntax element value. However, it does not necessarily need to be a syntax element value of integer type.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the encoder may perform binarization on the syntax element (S510).
  • the encoder may determine whether to perform binary arithmetic coding according to a normal mode or binary arithmetic coding according to a bypass mode (S520). For example, the encoder may identify whether the normal mode or the bypass mode is based on the bypass flag. For example, when the bypass flag is 1, the encoder indicates a bypass mode. 0 indicates normal mode.
  • the encoder may select a context model (S530) and perform binary arithmetic encoding based on the context model (S540).
  • the encoder may update the context model (S550), and may select a suitable context model again based on the updated context model in operation S530.
  • the decoder may receive a bitstream (S610).
  • the decoder may select a context model (S630) and perform binary arithmetic decoding based on the context model (S640).
  • the decoder may update the context model (S650), and may select a suitable context model again based on the updated context model in operation S630.
  • the decoder may perform binary arithmetic decoding based on the probability 0.5 (S660).
  • the decoder may perform inverse binarization on the decoded bin string (S670). For example, a decoded binary type bin may be input and converted into an integer syntax element value.
  • FIG. 7 is a diagram for describing a process of simultaneously processing a plurality of bins as an embodiment to which the present invention is applied.
  • the present invention proposes a probability updating method that can be efficiently implemented in a situation where a plurality of bins are simultaneously coded with CABAC (Context-based Adaptive Binary Arithmetic Coding).
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the schemes proposed in the present invention can be applied regardless of the number of simultaneously coded bitstreams or whether the context is shared between bitstreams, but mainly when one bitstream is used or the context is shared between bitstreams. Can be applied.
  • entropy coding is likely to be a bottleneck of overall performance due to data dependence inherent to arithmetic coding algorithms when coding high-definition, high frame rate, and high resolution images.
  • a plurality of frames must be buffered for real-time processing, and therefore, a considerable size of buffer memory may be required in a system implementation.
  • the present invention proposes a structure for coding a plurality of bins into a single or multiple bitstreams.
  • the present invention provides an efficient probability update that can be applied when simultaneously coding a plurality of bins. Suggest a method.
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • a binary symbol refers to a symbol having a value of 0 or 1
  • a multi-symbol, a non-binary symbol, or a multi-value symbol includes three or more values ( Refers to a symbol that can have 0 to N-1, N> 2).
  • the set of all possible unit numbers input to the arithmetic encoding engine is called alphabet, in which case it is said that the alphabet consists of 0 and 1, or that the alphabet symbol is 0 and 1 Some say it is possible.
  • a probability interval of [0, 1] is divided into probabilities for each symbol value, and the length of each interval indicates a probability value for a corresponding symbol value.
  • the divided probability interval is a probability interval applied when coding the current symbol, and the currently given interval is divided in proportion to the probability interval, and then the interval for the corresponding symbol is selected. This selected section becomes a section to be used when coding the next symbol. Since all probability values are less than 1, the interval length continues to decrease as symbols are coded. Therefore, the interval length is scaled by scaling the interval length through a process called renormalization. You can ensure that the value is always within a certain range.
  • the present invention assumes simultaneous processing of a plurality of binary symbols (or bins) in a CABAC engine.
  • a plurality of bins at the same time as shown in Figure 7 may be coded into a plurality of bitstreams or may be coded into a single bitstream.
  • One bitstream outputs interval information containing information of all the symbols to be coded, wherein the interval information is assigned to a variable representing the interval starting and a length variable.
  • the variable representing the interval starting may be represented by "base”
  • the length variable may be represented by "length”
  • the bitstream may be represented by a (base, length) pair.
  • the plurality of bins may be coded into at least one bitstream by referring to a context stored in the context storage unit 720.
  • a context stored in the context storage unit 720.
  • s i1 , s i2 , s i3 , and s i4 refer to bins that are simultaneously coded
  • s i1 , s i2 , s i3 , and s i4 refer to the same context.
  • Each may be coded into a first bitstream, a second bitstream, a third bitstream, and a fourth bitstream.
  • the present invention is not limited thereto, and s i1 , s i2 , s i3 , and s i4 may be coded with reference to different contexts.
  • the first to fourth bitstreams may be represented by (base1, length1) to (base4, length4), respectively.
  • the probability updating unit 710 may process corresponding bins based on its context for each bitstream. Alternatively, a plurality of bins may be processed simultaneously based on the same context.
  • FIG. 8 is an embodiment to which the present invention is applied and schematically illustrates a probability updating unit for explaining a process of outputting a next state based on a table according to an input combination when two bins are processed simultaneously. Represents a block diagram.
  • the probability updater 710 of FIG. 7 configures a table for all combinations when N bins are processed simultaneously and outputs next states at once. can do.
  • the table may be configured of (curr. State, next state).
  • M is when the Most Probable Symbol (MPS) is input
  • L is when the Least Probable Symbol (LPS) is input
  • MM is when two MPS is input
  • ML is when the MPS and LPS are input in succession
  • LM is When LPS and MPS are input successively
  • LL shows the case where two LPS are input.
  • the table as shown in FIG. 8 may be configured in consideration of all input combinations, but there is a disadvantage in that the size of the table increases due to the large number of combinations.
  • a table for obtaining interval lengths for the next LPS by receiving two upper bits of the probability state and the interval length variable as an index may be defined.
  • an index in which the seventh bit of the interval length variable is referred to as a Most Significant Bit (MSB) and the sixth bit as a Least Significant Bit (LSB) may be input.
  • the table may be configured by calculating interval length values for the input combination M / L / MM / ML / LM / LL.
  • two bins are coded into one bitstream and follow a probability state transition table, for the MM / ML / LM / LL in the table of FIG.
  • the table for obtaining the next state or the length of the next LPS section may be configured differently.
  • the 7th bit and the 6th bit of the current interval length variable are extracted, and the interval length for the first LPS is obtained through a table look-up.
  • the most significant two bits except for the most significant bit may be extracted from the range variable.
  • the seventh bit and the sixth bit may be extracted again from the updated interval length value, and the interval length for the second LPS may be obtained in the same manner.
  • the updated probability state may be given as a table input for the second LPS.
  • a table may be constructed by calculating a product of a probability due to a first LPS and a probability due to a second LPS as a probability for LL, and newly calculating an interval length value corresponding to the probability value.
  • 9 to 10 are diagrams for describing binary coded coding using a range length table and a probability transition table as embodiments to which the present invention is applied.
  • FIG. 9 illustrates a case where two input binary symbols are coded
  • FIG. 10 performs the process of FIG. 9 as well as result values of a probability state and a range length. Also shown is the intermediate state value.
  • a method for calculating a range length through two table lookups for two input binary symbols is provided.
  • a range length table and a probability transition table for calculating a range length are accessed twice, and the range is finally obtained.
  • the range length can be calculated.
  • the present invention provides a method for calculating a range length through a single table lookup to improve accuracy.
  • FIG. 11 is a diagram for describing a process of acquiring a new range length with a single table look-up for input coded data according to an embodiment to which the present invention is applied.
  • FIG. 11 illustrates how to calculate a corresponding entry when the range index qRangeIdx and the input coding data LL are input as a table index.
  • a renormalized range length value and a left shift amount for renormalization may be possible.
  • Equation 1 When the probability value corresponding to each probability state is multiplied by the intermediate value, a new range length can be calculated as shown in Equation 1 below.
  • the encoder checks the change in the probability state for the input coded data LL based on the probability state transition table of FIG. 11 (b), and then calculates the probability in each probability state from FIG. 11 (a). By multiplying all obtained intermediate values, a new range length can be calculated.
  • the encoder may obtain a final range length by performing scaling such that the new range length is within the range of [256, 512].
  • the final range length may be obtained by performing renormalization as shown in Equation 2 below. This is referred to herein as a renormalized range length.
  • the present invention can apply the above method to all range index (qRangeIdx) and input coding data (M / L / MM / ML / LM / LL) so that each corresponding entry value can be calculated and accordingly You can organize the table.
  • the normalized range length value is 283, and in the case of the embodiment of FIG. 9, the normalized range length value is 264, which shows different result values.
  • a left shift amount for renormalization is defined as a table entry ( Even if not included in the table entry, it can be configured to derive the left shift amount during the renormalization process while maintaining sufficient accuracy.
  • FIG. 12 illustrates an embodiment to which the present invention is applied and illustrates a method of accessing a probability state transition table based on whether a plurality of bins refer to the same context.
  • the present invention can be configured to access at least one probability state transition table based on whether a plurality of bins refer to the same context.
  • bin2 when two bins bin1 and bin2 use the same context, bin2 may be input to the second probability state transition table so that only the next probability state 1 may be effectively output. have.
  • bin1 is input to the first probability state transition table and the next probability state 1 (next state 1).
  • bin2 is input to the second probability state transition table, and the next probability state 2 may be output.
  • the probability state transition table may be accessed twice in succession as shown in FIG. 12.
  • the present invention can be configured to approach the table for obtaining the LPS interval length even in two consecutive times in the same manner.
  • the present invention can be configured similarly to FIG. 12 even when the number of bins processed simultaneously is three or more. However, it may have a different structure depending on which context each bin refers to or whether the referring contexts overlap.
  • FIG. 13 is a flowchart illustrating a process of performing encoding based on a multiple input probability state transition table according to an embodiment to which the present invention is applied.
  • an input consisting of a plurality of bins may be referred to as “multiple input” for convenience.
  • the encoder may access a probability state transition table and / or a range length table to which the present invention is applied (S1320 and S1330).
  • the probability state transition table to which the present invention is applied may be referred to as a multi-input probability state transition table
  • the range length table to which the present invention is applied may be referred to as a multi-input range length table.
  • the encoder may check a change in a probability state of input coded data based on the multiple input probability state transition table (S1320). For example, the encoder can identify a probability state that is transitioned according to a current probability state pStateIdx for the input coded data.
  • the encoder may acquire a new range length based on the multiple input range length table (S1330). For example, the encoder may obtain a median of the range lengths based on the multiple input range length table, and multiply the median value by the probability at each probability state based on the multiple input probability state transition table. By doing so, a new range length can be calculated.
  • the encoder may acquire a renormalized range length by performing normalization or scaling so that the new range length is included in a range length interval (S1340).
  • the encoder may output a bitstream after the above process (S1350).
  • FIG. 14 is a flowchart illustrating a process of performing decoding based on a multiple input probability state transition table according to an embodiment to which the present invention is applied.
  • the decoder may receive the bitstream and sequentially decode the MSB (Most Significant Bit) in operation S1410.
  • the decoder may initialize the engine and store the offset of the input bits before performing binary arithmetic decoding.
  • the decoder may perform the same renormalization process on the syntax element as in the encoder (S1420). Subsequently, when renormalization is required when performing arithmetic coding, the MSB (Most Significant Bit) of the offset may be removed and a new bit may be added to the Least Significant Bit (LSB) through a left shift operation.
  • MSB Most Significant Bit
  • the decoder may access the multiple input range length table based on the current probability state and the renormalized range length (S1430), and thus obtain a new range length.
  • the current probability state may be determined based on a multiple input probability state transition table.
  • the decoder may determine a plurality of bin values based on interval information and interval offset for all possible input values (S1440).
  • the multiple input range length table and / or the multiple input probability state transition table to which the present invention is applied may be accessed (S1430 and S1450).
  • FIG. 15 illustrates a Least Probable Symbol (LPS) probability table as an embodiment to which the present invention is applied.
  • LPS Least Probable Symbol
  • the present invention defines a new Least Probable Symbol (LPS) probability table according to the input combination.
  • LPS Least Probable Symbol
  • the Least Probable Symbol (LPS) probability table of FIG. 15 may be used to provide a multiple input probability state transition table and a multiple input range length table.
  • the existing probability state transition table represents the next probability state for one input bin. Accordingly, the probability state transition table (multiple input probability state transition table) for a plurality of bins to which the present invention is applied may be used as the number of bins of the probability state transition table for one input bin. It can be obtained by applying repeatedly. For example, a probability state transition table for two input bins will be described in detail later with reference to FIG. 16.
  • FIG. 16 illustrates a probability state transition table for two input bins as an embodiment to which the present invention is applied.
  • the MPS value is changed. That is, if the LM input is input when the probability state index pStateIdx is 0, the MPS value is changed by the first input L, so the second input M is equal to L in terms of state transition.
  • FIG. 17 is an embodiment to which the present invention is applied and shows all probability state tables considering the probability state transition process of FIG. 16.
  • the table of FIG. 18 may be obtained.
  • the median values represent median values of the range length ranges according to the range index qRangeIdx of FIG. 11A
  • the table of FIG. 18 shows a case where the product of the probability value and the median value of FIG. 17 is obtained. Indicates.
  • FIG. 18 illustrates a table in which the probability values of FIG. 17 are applied to intermediate values of four range length sections in an embodiment to which the present invention is applied.
  • Tables 18 (a) and 18 (b) to which the present invention is applied show values obtained by multiplying the probability value of FIG. 17 by the median value of the range length range and then multiplying 128. For example, since the original range value was a 9-bit value with the most significant bit of 1, multiplying by 128 results in a number that can be represented by 16 bits.
  • the renormalization may be performed by applying a left shift operation such that the most significant bit of the 16-bit number becomes 1, and only after the upper 9 bits are left or the lower 7 bit value is rounded up, the upper 9 bits are If left alone, the bit length for the original range value can be maintained.
  • FIG. 19 illustrates a table for decoding a bin value in comparison with an interval offset value according to an embodiment to which the present invention is applied.
  • 19 (a) and 19 (b) are tables for decoding a bin value compared to a section offset value at the time of decoding.
  • the interval may be divided as shown in FIG. 20 according to the configuration of input bins.
  • FIG. 20 is a diagram for describing section division according to configuration of input bins according to an embodiment to which the present invention is applied.
  • M when there is only one bin to decode currently, as shown in FIG.
  • M can be obtained by subtracting L from the entire interval.
  • L may be stored instead of M in the table of FIG. 19.
  • the length of the LL may be calculated as "(total section length)-(MM + ML + LM)" and the length of the LM is "(MM + ML + LM). )-(MM + ML) ".
  • the information provided by the table of FIG. 19 may be generated based on the table information of FIG. 18.
  • MM + ML + LM is the cumulative length of MM, ML and LM.
  • FIG. 18 if only one of M and L is included, the other one may be known. If only three of MM, ML, LM, and LL are included, the other one may be known.
  • the embodiments described herein may be implemented and performed on a processor, microprocessor, controller, or chip.
  • the functional units illustrated in FIGS. 1 to 4, 7 to 8, and 12 may be implemented on a computer, a processor, a microprocessor, a controller, or a chip.
  • the decoder and encoder to which the present invention is applied include a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video chat device, a real time communication device such as video communication, a mobile streaming device, Storage media, camcorders, video on demand (VoD) service providing devices, internet streaming service providing devices, three-dimensional (3D) video devices, video telephony video devices, and medical video devices, and the like, for processing video and data signals Can be used for
  • the processing method to which the present invention is applied can be produced in the form of a program executed by a computer, and can be stored in a computer-readable recording medium.
  • Multimedia data having a data structure according to the present invention can also be stored in a computer-readable recording medium.
  • the computer readable recording medium includes all kinds of storage devices for storing computer readable data.
  • the computer-readable recording medium may include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. Can be.
  • the computer-readable recording medium also includes media embodied in the form of a carrier wave (eg, transmission over the Internet).
  • the bit stream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired or wireless communication network.

Abstract

본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 복수개의 빈(bin)들을 포함하는 적어도 하나의 비트스트림을 수신하는 단계; 및 상기 비트스트림에 대해 엔트로피 디코딩을 수행하는 단계를 포함하되, 상기 엔트로피 디코딩을 수행하는 단계는, 이진 산술 디코딩을 위한 초기화를 수행하는 단계; 현재 확률 상태에 기초하여 기정의된 다중 입력 확률 상태 천이 테이블로부터 다음 확률 상태를 확인하는 단계, 여기서 상기 기정의된 다중 입력 확률 상태 천이 테이블은 상기 복수개의 빈(bin)들과 상기 현재 확률 상태 간의 모든 가능한 조합에 대한 다음 확률 상태 값들을 나타냄; 상기 현재 확률 상태에 기초하여 기정의된 다중 입력 구간 길이 테이블로부터 새로운 구간 길이를 산출하는 단계, 여기서 상기 기정의된 다중 입력 구간 길이 테이블은 구간 길이와 확률의 곱을 근사화하기 위한 테이블을 나타냄; 및 상기 새로운 구간 길이에 기초하여 상기 복수개의 빈(bin)들의 값을 결정하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.

Description

비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
본 발명은 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치에 관한 것이다. 보다 구체적으로, 복수개의 빈(bin)들을 동시에 처리하기 위한 CABAC(Context-based Adaptive Binary Arithmetic Coding) 확률 업데이트를 수행하는 방법에 관한 것이다.
엔트로피 코딩은 부호화 과정을 통해 결정된 신택스 엘리먼트들을 무손실 압축하여 RBSP(Raw Byte Sequence Payload)를 생성하는 과정이다. 엔트로피 코딩은 신택스의 통계를 이용하여 자주 발생하는 신택스에 대해서는 짧은 비트를 할당하고, 그렇지 않은 신택스에는 긴 비트를 할당하여 신택스 엘리먼트들을 간결한 데이터로 표현한다.
그 중, CABAC(Context-based Adaptive Binary Arithmetic Coding)은 이진 산술 코딩을 수행하는 과정에서 신택스의 컨텍스트와 이전에 발생한 심볼에 기초하여 적응적으로 업데이트된 컨텍스트 모델을 사용한다. 그러나, 산술 코딩 알고리즘(arithmetic coding algorithm) 등에 내재된 데이터 의존성으로 인해 엔트로피 코딩 부분이 전체 성능의 병목이 될 가능성이 크다.
또한, 많은 비트량이 발생하는 프레임들이 연속되는 경우 실시간 처리를 위해 수개의 프레임을 버퍼링해야 하므로 시스템 구현상 상당한 크기의 버퍼 메모리가 요구될 수 있다.
따라서, 엔트로피 코딩의 쓰루풋(throughput)을 향상시키고, 나아가 복수개의 빈(bin) 들을 동시에 코딩할 때 적용될 수 있는 효율적인 확률 갱신 방법이 필요하다.
본 발명은, 엔트로피 코딩의 쓰루풋(throughput)을 향상시키기 위한 방법을 제안하고자 한다.
본 발명은, 복수개의 빈(bin) 들을 단일 또는 다수의 비트스트림으로 코딩하는 구조를 제안하고자 한다.
본 발명은, 복수개의 빈(bin) 들을 동시에 코딩할 때 적용될 수 있는 효율적인 확률 갱신 방법을 제안하고자 한다.
본 발명은, 엔트로피 코딩의 쓰루풋(throughput)을 향상시키기 위한 방법을 제공한다.
본 발명은, 복수개의 빈(bin) 들에 대한 확률 상태 천이 테이블(probability state transition table) 또는 레인지 길이 테이블(range length table) 중 적어도 하나에 기초하여 확률 갱신을 수행하는 방법을 제공한다.
본 발명은, 모든 가능한 입력 값들에 대한 구간 정보 또는 구간 오프셋 값 중 적어도 하나에 기초하여 복수개의 빈(bin) 값들을 디코딩하는 방법을 제공한다.
본 발명은 복수개의 빈(bin) 들을 동시에 코딩할 때 적용될 수 있는 효율적인 확률 갱신 방법을 제공함으로써 엔트로피 코딩의 쓰루풋(throughput)을 향상시킬 수 있다.
또한, 본 발명은 복수개의 빈(bin) 들에 대한 코딩 결과를 확률 갱신에 한꺼번에 반영할 때 테이블 룩업(table look-up)을 통한 근사를 한 번만 적용할 수 있도록 하고, 보다 정확한 레인지 길이(range length) 값을 구할 수 있는 방법을 제공함으로써, 엔트로피 부호화에 대한 성능을 향상시킬 수 있다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호의 인코딩이 수행되는 인코더의 개략적인 블록도를 나타낸다.
도 2는 본 발명이 적용되는 실시예로서, 비디오 신호의 디코딩이 수행되는 디코더의 개략적인 블록도를 나타낸다.
도 3은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 인코딩부의 개략적인 블록도를 나타낸다.
도 4는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 디코딩부의 개략적인 블록도를 나타낸다.
도 5는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 인코딩 흐름도를 나타낸다.
도 6은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 디코딩 흐름도를 나타낸다.
도 7은 본 발명이 적용되는 실시예로서, 복수개의 빈(bin)들을 동시에 처리하는 과정을 설명하기 위한 도면이다.
도 8은 본 발명이 적용되는 실시예로서, 2개의 빈(bin)들이 동시에 처리되는 경우 입력 조합에 따른 테이블에 기초하여 다음 상태(next state)를 출력하는 과정을 설명하기 위한 확률 업데이트부의 개략적인 블록도를 나타낸다.
도 9 내지 도 10은 본 발명이 적용되는 실시예들로서, 레인지 길이 테이블 및 확률 천이 테이블을 이용하여 이진 심볼을 코딩하는 것을 설명하기 위한 도면이다.
도 11은 본 발명이 적용되는 실시예로서, 입력 코딩 데이터에 대한 테이블 룩업(table look-up) 한번으로 새로운 레인지 길이(range length)를 획득하는 과정을 설명하기 위한 도면이다.
도 12는 본 발명이 적용되는 실시예로서, 복수개의 빈(bin)들이 동일 컨텍스트를 참조하는지 여부에 기초하여 확률 상태 천이 테이블에 접근하는 방법을 설명하기 위한 도면이다.
도 13은 본 발명이 적용되는 실시예로서, 다중 입력 확률 상태 천이 테이블에 기초하여 인코딩을 수행하는 과정을 나타내는 흐름도이다.
도 14는 본 발명이 적용되는 실시예로서, 다중 입력 확률 상태 천이 테이블에 기초하여 디코딩을 수행하는 과정을 나타내는 흐름도이다.
도 15는 본 발명이 적용되는 실시예로서, LPS(Least Probable Symbol) 확률 테이블(probability table)을 나타낸다.
도 16은 본 발명이 적용되는 실시예로서, 2개의 입력 빈(bin)들에 대한 확률 상태 천이 테이블(probability state transition table)을 나타낸다.
도 17은 본 발명이 적용되는 실시예로서, 상기 도 16의 확률 상태 천이 과정을 고려한 모든 확률 상태 테이블을 나타낸다.
도 18은 본 발명이 적용되는 실시예로서, 상기 도 17의 확률 값들을 4개의 레인지의 중간값들에 적용한 테이블을 나타낸다.
도 19는 본 발명이 적용되는 실시예로서, 구간 오프셋 값과 비교하여 빈(bin) 값을 디코딩하기 위한 테이블을 나타낸다.
도 20은 본 발명이 적용되는 실시예로서, 입력 빈(bin)들의 구성에 따른 구간 분할을 설명하기 위한 도면이다.
본 발명은, 비디오 신호에 대해 엔트로피 인코딩을 수행하는 방법에 있어서, 복수개의 빈(bin)들을 포함하는 적어도 하나의 비트스트림을 수신하는 단계; 및 상기 복수개의 빈들에 대응되는 컨텍스트 정보에 기초하여 확률 업데이트를 수행하는 단계;를 포함하되, 상기 확률 업데이트를 수행하는 단계는, 현재 확률 상태에 기초하여 기정의된 다중 입력 확률 상태 천이 테이블로부터 다음 확률 상태를 확인하는 단계, 여기서 상기 기정의된 다중 입력 확률 상태 천이 테이블은 상기 복수개의 빈(bin)들과 상기 현재 확률 상태 간의 모든 가능한 조합에 대한 다음 확률 상태 값들을 나타냄; 상기 현재 확률 상태에 기초하여 기정의된 다중 입력 구간 길이 테이블로부터 새로운 구간 길이를 산출하는 단계, 여기서 상기 기정의된 다중 입력 구간 길이 테이블은 구간 길이와 확률의 곱을 근사화하기 위한 테이블을 나타냄; 및 상기 새로운 구간 길이에 대해 재정규화를 수행하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.
본 발명에서, 상기 복수개의 빈(bin)들은 동시에 처리되는 것을 특징으로 한다.
본 발명에서, 상기 복수개의 빈(bin)들이 하나의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 공통된 하나의 컨텍스트 셋인 것을 특징으로 한다.
본 발명에서, 상기 복수개의 빈(bin)들이 복수개의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 적어도 하나의 컨텍스트 셋을 포함하고, 상기 적어도 하나의 컨텍스트 셋은 각각 상기 복수개의 비트스트림에 대응되는 것을 특징으로 한다.
본 발명에서, 상기 기정의된 다중 입력 구간 길이 테이블은 상기 현재 확률 상태의 확률값과 레인지 구간의 중간값을 곱한 결과 값에 기초하여 정의된 것을 특징으로 한다.
본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 복수개의 빈(bin)들을 포함하는 적어도 하나의 비트스트림을 수신하는 단계; 및 상기 비트스트림에 대해 엔트로피 디코딩을 수행하는 단계를 포함하되, 상기 엔트로피 디코딩을 수행하는 단계는, 이진 산술 디코딩을 위한 초기화를 수행하는 단계; 현재 확률 상태에 기초하여 기정의된 다중 입력 확률 상태 천이 테이블로부터 다음 확률 상태를 확인하는 단계, 여기서 상기 기정의된 다중 입력 확률 상태 천이 테이블은 상기 복수개의 빈(bin)들과 상기 현재 확률 상태 간의 모든 가능한 조합에 대한 다음 확률 상태 값들을 나타냄; 상기 현재 확률 상태에 기초하여 기정의된 다중 입력 구간 길이 테이블로부터 새로운 구간 길이를 산출하는 단계, 여기서 상기 기정의된 다중 입력 구간 길이 테이블은 구간 길이와 확률의 곱을 근사화하기 위한 테이블을 나타냄; 및 상기 새로운 구간 길이에 기초하여 상기 복수개의 빈(bin)들의 값을 결정하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.
본 발명에서, 확률 업데이트가 상기 복수개의 빈들에 대응되는 컨텍스트 정보에 기초하여 수행되고, 상기 복수개의 빈(bin)들이 하나의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 공통된 하나의 컨텍스트 셋인 것을 특징으로 한다.
본 발명에서, 확률 업데이트가 상기 복수개의 빈들에 대응되는 컨텍스트 정보에 기초하여 수행되고, 상기 복수개의 빈(bin)들이 복수개의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 적어도 하나의 컨텍스트 셋을 포함하고, 상기 적어도 하나의 컨텍스트 셋은 각각 상기 복수개의 비트스트림에 대응되는 것을 특징으로 한다.
본 발명은, 비디오 신호에 대해 엔트로피 인코딩을 수행하는 장치에 있어서, 복수개의 빈(bin)들을 포함하는 적어도 하나의 비트스트림을 수신하는 비트스트림 수신부; 및 상기 복수개의 빈들에 대응되는 컨텍스트 정보에 기초하여 확률 업데이트를 수행하는 엔트로피 인코딩부;를 포함하되, 상기 엔트로피 인코딩부는, 현재 확률 상태에 기초하여 기정의된 다중 입력 확률 상태 천이 테이블로부터 다음 확률 상태를 확인하고, 상기 현재 확률 상태에 기초하여 기정의된 다중 입력 구간 길이 테이블로부터 새로운 구간 길이를 산출하는 확률 업데이트부; 및 상기 새로운 구간 길이에 대해 재정규화를 수행하는 재정규화부를 포함하고, 상기 기정의된 다중 입력 확률 상태 천이 테이블은 상기 복수개의 빈(bin)들과 상기 현재 확률 상태 간의 모든 가능한 조합에 대한 다음 확률 상태 값들을 나타내고, 상기 기정의된 다중 입력 구간 길이 테이블은 구간 길이와 확률의 곱을 근사화하기 위한 테이블을 나타내는 것을 특징으로 하는 장치를 제공한다.
본 발명에서, 상기 복수개의 빈(bin)들은 동시에 처리되고, 상기 복수개의 빈(bin)들이 하나의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 공통된 하나의 컨텍스트 셋을 나타내고, 상기 복수개의 빈(bin)들이 복수개의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 적어도 하나의 컨텍스트 셋을 포함하고, 상기 적어도 하나의 컨텍스트 셋은 각각 상기 복수개의 비트스트림에 대응되는 것을 특징으로 한다.
본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서, 복수개의 빈(bin)들을 포함하는 적어도 하나의 비트스트림을 수신하는 비트스트림 수신부; 및 상기 비트스트림에 대해 엔트로피 디코딩을 수행하는 엔트로피 디코딩부를 포함하되, 상기 엔트로피 디코딩부는, 이진 산술 디코딩을 위한 초기화를 수행하는 초기화부; 현재 확률 상태에 기초하여 기정의된 다중 입력 확률 상태 천이 테이블로부터 다음 확률 상태를 확인하고, 상기 현재 확률 상태에 기초하여 기정의된 다중 입력 구간 길이 테이블로부터 새로운 구간 길이를 산출하고, 상기 새로운 구간 길이에 기초하여 상기 복수개의 빈(bin)들의 값을 결정하는 확률 업데이트부를 포함하고, 상기 기정의된 다중 입력 확률 상태 천이 테이블은 상기 복수개의 빈(bin)들과 상기 현재 확률 상태 간의 모든 가능한 조합에 대한 다음 확률 상태 값들을 나타내고, 상기 기정의된 다중 입력 구간 길이 테이블은 구간 길이와 확률의 곱을 근사화하기 위한 테이블을 나타내는 것을 특징으로 하는 장치를 제공한다.
이하, 본 발명의 실시예들에 따른 예시적인 엘리먼트들 및 동작들이 첨부된 도면들을 참조하여 기술된다. 그러나 상기 도면들을 참조하여 기술되는 본 발명의 상기 엘리먼트들 및 동작들은 단지 실시예들로서 제공되는 것이고, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다는 것을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어를 사용하여 설명한다. 그러한 경우에는 해당 부분의 상세 설명에서 그 의미가 명확하게 기재된다. 따라서, 본 명세서의 설명에서 사용된 용어의 명칭 만에 기초하여 본 발명이 단순 해석되어서는 안 될 것이며 그 해당 용어의 의미까지 파악하여 해석되어야 함을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어들은 발명을 설명하기 위해 선택된 일반적인 용어들이나, 유사한 의미를 갖는 다른 용어가 있는 경우 보다 적절한 해석을 위해 대체 가능할 것이다. 예를 들어, 신호, 데이터, 샘플, 픽쳐, 프레임, 블록은 각 코딩 과정에서 적절하게 대체되어 해석될 수 있을 것이다.
또한, 본 명세서에서 설명되는 실시예들의 개념과 방법들은, 다른 실시예들에도 적용가능하며, 본 명세서에서 모두 명시하여 기재하지 않더라도 본 발명의 기술적 사상 범위 내에서 각 실시예들의 조합도 적용가능할 것이다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호의 인코딩이 수행되는 인코더의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 인코더(100)는 영상 분할부(110), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 필터링부(160), 복호 픽쳐 버퍼(DPB: Decoded Picture Buffer)(170), 인터 예측부(180), 인트라 예측부(185) 및 엔트로피 인코딩부(190)를 포함하여 구성될 수 있다.
영상 분할부(110)는 인코더(100)에 입력된 입력 영상(또는, 픽쳐, 프레임)를 하나 이상의 처리 유닛으로 분할할 수 있다. 예를 들어, 상기 처리 유닛은 코딩 트리 유닛(CTU: Coding Tree Unit), 코딩 유닛(CU: Coding Unit), 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)일 수 있다.
인코더(100)는 입력 영상 신호에서 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호를 감산하여 잔여 신호(residual signal)를 생성할 수 있고, 생성된 잔여 신호는 변환부(120)로 전송된다.
변환부(120)는 잔여 신호에 변환 기법을 적용하여 변환 계수(transform coefficient)를 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)를 이용하여 예측 신호를 생성하고 그에 기초하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(130)는 변환 계수를 양자화하여 엔트로피 인코딩부(190)로 전송하고, 엔트로피 인코딩부(190)는 양자화된 신호를 엔트로피 코딩하여 비트스트림으로 출력할 수 있다.
양자화부(130)로부터 출력된 양자화된 신호는 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 신호는 루프 내의 역양자화부(140) 및 역변환부(150)를 통해 역양자화 및 역변환을 적용함으로써 잔여 신호를 복원할 수 있다. 복원된 잔여 신호를 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호에 더함으로써 복원 신호가 생성될 수 있다.
필터링부(160)는 복원 신호에 필터링을 적용하여 이를 재생 장치로 출력하거나 복호 픽쳐 버퍼(170)에 전송한다. 복호 픽쳐 버퍼(170)에 전송된 필터링된 신호는 인터 예측부(180)에서 참조 픽쳐로 사용될 수 있다. 이처럼, 필터링된 픽쳐를 화면간 예측 모드에서 참조 픽쳐로 이용함으로써 화질 뿐만 아니라 부호화 효율도 향상시킬 수 있다.
복호 픽쳐 버퍼(170)는 필터링된 픽쳐를 인터 예측부(180)에서의 참조 픽쳐로 사용하기 위해 저장할 수 있다.
인터 예측부(180)는 복원 픽쳐를 참조하여 시간적 중복성 및/또는 공간적 중복성을 제거하기 위해 시간적 예측 및/또는 공간적 예측을 수행한다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 예측할 수 있다.
인트라 예측부(185)는 현재 부호화를 진행하려고 하는 블록의 주변에 있는 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 인트라 예측부(185)는 인트라 예측을 수행하기 위해 다음과 같은 과정을 수행할 수 있다. 먼저, 예측 신호를 생성하기 위해 필요한 참조 샘플을 준비할 수 있다. 그리고, 준비된 참조 샘플을 이용하여 예측 신호를 생성할 수 있다. 이후, 예측 모드를 부호화하게 된다. 이때, 참조 샘플은 참조 샘플 패딩 및/또는 참조 샘플 필터링을 통해 준비될 수 있다. 참조 샘플은 예측 및 복원 과정을 거쳤기 때문에 양자화 에러가 존재할 수 있다. 따라서, 이러한 에러를 줄이기 위해 인트라 예측에 이용되는 각 예측 모드에 대해 참조 샘플 필터링 과정이 수행될 수 있다.
상기 인터 예측부(180) 또는 상기 인트라 예측부(185)를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 잔여 신호를 생성하기 위해 이용될 수 있다.
도 2는 본 발명이 적용되는 실시예로서, 비디오 신호의 디코딩이 수행되는 디코더의 개략적인 블록도를 나타낸다.
도 2를 참조하면, 디코더(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 필터링부(240), 복호 픽쳐 버퍼(DPB: Decoded Picture Buffer Unit)(250), 인터 예측부(260) 및 인트라 예측부(265)를 포함하여 구성될 수 있다.
그리고, 디코더(200)를 통해 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
디코더(200)는 도 1의 인코더(100)로부터 출력된 신호을 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(210)를 통해 엔트로피 디코딩될 수 있다.
역양자화부(220)에서는 양자화 스텝 사이즈 정보를 이용하여 엔트로피 디코딩된 신호로부터 변환 계수(transform coefficient)를 획득한다.
역변환부(230)에서는 변환 계수를 역변환하여 잔여 신호를 획득하게 된다.
획득된 잔여 신호를 인터 예측부(260) 또는 인트라 예측부(265)로부터 출력된 예측 신호에 더함으로써 복원 신호가 생성된다.
필터링부(240)는 복원 신호에 필터링을 적용하여 이를 재생 장치로 출력하거나 복호 픽쳐 버퍼부(250)에 전송한다. 복호 픽쳐 버퍼부(250)에 전송된 필터링된 신호는 인터 예측부(260)에서 참조 픽쳐로 사용될 수 있다.
본 명세서에서, 인코더(100)의 필터링부(160), 인터 예측부(180) 및 인트라 예측부(185)에서 설명된 실시예들은 각각 디코더의 필터링부(240), 인터 예측부(260) 및 인트라 예측부(265)에도 동일하게 적용될 수 있다.
도 3은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 인코딩부의 개략적인 블록도를 나타낸다.
본 발명이 적용되는 엔트로피 인코딩부(300)는 이진화부(310), 컨텍스트 모델링부(320), 이진 산술 인코딩부(330) 및 메모리(360)를 포함하고, 상기 이진 산술 인코딩부(330)는 정규 이진 인코딩부(regular binary encoding unit)(340) 및 바이패스 이진 인코딩부(bypass binary encoding unit)(350)를 포함한다. 여기서, 상기 정규 이진 인코딩부(regular binary encoding unit)(340) 및 상기 바이패스 이진 인코딩부(bypass binary encoding unit)(350)는 각각 정규 코딩 엔진, 바이패스 코딩 엔진이라 불릴 수 있다.
상기 이진화부(310)은 데이터 심볼들의 시퀀스를 수신하고 이진화를 수행함으로써 0 또는 1의 이진화된 값으로 구성된 이진 심볼(bin) 스트링을 출력할 수 있다. 상기 이진화부(310)은 신택스(syntax) 요소들을 이진 심볼들로 매핑할 수 있다. 서로 다른 여러 이진화 과정들, 예를 들어, 단항(unary: U), 끝이 잘린 단항(truncated unary: TU), k차 Exp-Golomb (EGk), 및 고정 길이(Fixed Length) 과정 등이 이진화를 위해 사용될 수 있다. 상기 이진화 과정은 신택스 요소의 유형을 기반으로 선택될 수 있다.
출력된 이진 심볼 스트링은 컨텍스트 모델링부(320)으로 전송된다.
상기 컨텍스트 모델링부(320)은 메모리로부터 현재 블록을 코딩하는데 필요한 확률 정보를 선택하여 상기 이진 산술 인코딩부(330)로 전송한다. 예를 들어, 코딩할 신택스 엘리먼트에 기초하여 컨텍스트 메모리를 선택하고 빈 인덱스(binIdx)를 통해 현재 신택스 엘리먼트 코딩에 필요한 확률 정보를 선택할 수 있다. 여기서, 컨텍스트는 심볼의 발생 확률에 관한 정보를 의미하고, 컨텍스트 모델링은 이진화 결과인 빈(bin)을 입력으로 하여 이진 산술 코딩에 필요한 빈(bin)의 확률을 추정하는 과정을 의미한다.
상기 컨텍스트 모델링부(320)는 높은 코딩 효율을 성취하기 위해 필요한 정확한 확률 추정을 제공할 수 있다. 이에 따라, 서로 다른 이진 심볼들에 대해 서로 다른 컨텍스트 모델들이 사용될 수 있고 이러한 컨텍스트 모델의 확률은 이전에 코딩된 이진 심볼의 값들을 기반으로 업데이트될 수 있다. 이때, 이전에 코딩된 이진 심볼의 값들은 상기 메모리(360)에 저장되고, 상기 컨텍스트 모델링부(320)는 이로부터 이전에 코딩된 이진 심볼의 값들을 이용할 수 있다.
유사한 분포를 가지는 이진 심볼들은 동일한 컨텍스트 모델을 공유할 수 있다. 이러한 각 이진 심볼에 대한 컨텍스트 모델은 확률 추정을 위해, 빈(bin)의 신택스 정보, 빈 스트링에서의 빈의 위치를 나타내는 빈 인덱스(binIdx), 빈(bin)이 들어 있는 블록의 이웃 블록의 특정 신택스 요소의 디코딩된 값 중 적어도 하나가 이용될 수 있다.
상기 이진 산술 인코딩부(330)는 정규 이진 인코딩부(regular binary encoding unit)(340) 및 바이패스 이진 인코딩부(bypass binary encoding unit)(350)를 포함하고, 출력된 스트링에 대한 엔트로피 인코딩을 수행하고 압축된 데이터 비트들을 출력한다.
상기 정규 이진 인코딩부(regular binary encoding unit)(340)는 재귀적 구간 분할(recursive interval division)을 기반으로 산술 코딩을 수행한다.
먼저, 0 내지 1의 초기값을 가지는 구간(또는 범위)이 이진 심볼의 확률을 기반으로 두 개의 하위 구간들로 분할된다. 인코딩된 비트들은 이진 소수로 변환되는 경우 이진 심볼 값들이 연속적으로 디코딩되는 과정에서 매번 0과 1을 나타내는 간격들 중 하나를 선택할 수 있는 오프셋으로 사용될 수 있다..
구간 분할 과정에 있어서, 한 이진 심볼을 디코딩할 때 상기 두 개의 분할된 하위 구간들 중 하나가 선택되며, 선택된 하위 구간에 대해 다시 해당 이진 확률을 기반으로 분할되는 과정을 반복하게 된다. 상기 구간 및 오프셋은 제한된 비트 정밀도를 가지며, 따라서 상기 구간이 특정한 값 아래로 떨어질 때마다 오버플로우를 방지하기 위해 재정규화(renormalization)가 필요할 수 있다. 상기 재정규화(renormalization)는 각각의 이진 심볼이 디코딩된 이후에 발생할 수 있다.
상기 바이패스 이진 인코딩부(bypass binary encoding unit)(350)는 컨텍스트 모델 없이 인코딩을 수행하며, 현재 코딩되는 빈(bin)의 확률을 0.5로 고정하여 코딩을 수행한다. 이는 신택스의 확률을 결정하기 어렵거나 고속으로 코딩하고자 할 때 이용될 수 있다.
도 4는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 디코딩부의 개략적인 블록도를 나타낸다.
본 발명이 적용되는 엔트로피 디코딩부(400)는 컨텍스트 모델링부(410), 이진 산술 디코딩부(420), 메모리(450) 및 역이진화부(460)를 포함하고, 상기 이진 산술 디코딩부(420)는 정규 이진 디코딩부(regular binary decoding unit)(430) 및 바이패스 이진 디코딩부(bypass binary decoding unit)(440)를 포함한다.
상기 엔트로피 디코딩부(400)는 비트스트림을 수신하고 그로부터 정규 모드(regular mode)에 따라 이진 산술 디코딩을 수행할지 바이패스 모드(bypass mode)에 따라 이진 산술 디코딩을 수행할지 여부를 결정할 수 있다. 예를 들어, 상기 엔트로피 디코딩부(400)는 바이패스 플래그(bypass flag)를 확인함으로써 이를 결정할 수 있다. 여기서, 바이패스 플래그(bypass flag)는 바이패스 모드(bypass mode)인지 여부를 나타내고, 상기 바이패스 모드(bypass mode)는 컨텍스트 모델을 이용하지 않고, 현재 코딩되는 빈(bin)의 확률을 0.5로 고정하여 코딩을 수행하는 것을 의미한다.
상기 바이패스 플래그(bypass flag)에 따라 바이패스 모드(bypass mode)가 아닌 경우, 상기 정규 이진 디코딩부(regular binary decoding unit)(430)는 정규 모드(regular mode)에 따라 이진 산술 디코딩을 수행한다.
이때, 상기 컨텍스트 모델링부(410)는 상기 메모리(450)로부터 현재 비트스트림을 디코딩하는데 필요한 확률 정보를 선택하여 상기 정규 이진 디코딩부(regular binary decoding unit)(430)로 전송한다.
한편, 상기 바이패스 플래그(bypass flag)에 따라 바이패스 모드(bypass mode)인 경우, 상기 바이패스 이진 디코딩부(bypass binary decoding unit)(440)는 바이패스 모드(bypass mode)에 따라 이진 산술 디코딩을 수행한다.
상기 역이진화부(460)는 상기 이진 산술 디코딩부(420)에서 디코딩된 이진수 형태의 빈(bin)을 입력받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력하게 된다. 다만, 반드시 정수 형태의 신택스 엘리먼트 값일 필요는 없다.
도 5는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 인코딩 흐름도를 나타낸다.
인코더는, 신택스 엘리먼트에 대해 이진화를 수행할 수 있다(S510).
상기 인코더는, 정규 모드에 따라 이진 산술 코딩을 수행할지 또는 바이패스 모드에 따라 이진 산술 코딩을 수행할지 여부를 확인할 수 있다(S520). 예를 들어, 상기 인코더는 바이패스 플래그(bypass flag)에 기초하여 정규 모드인지 바이패스 모드인지 여부를 확인할 수 있으며, 예를 들어 상기 바이패스 플래그(bypass flag)가 1이면 바이패스 모드를 나타내고, 0이면 정규 모드를 나타낼 수 있다.
정규 모드의 경우, 상기 인코더는 컨텍스트 모델을 선택할 수 있고(S530), 상기 컨텍스트 모델에 기초하여 이진 산술 인코딩을 수행할 수 있다(S540). 그리고, 상기 인코더는, 컨텍스트 모델을 업데이트할 수 있으며(S550), 상기 S530 단계에서 업데이트된 컨텍스트 모델에 기초하여 다시 적합한 컨텍스트 모델을 선택할 수 있다.
한편, 바이패스 모드의 경우, 상기 인코더는 확률 0.5에 기초하여 이진 산술 인코딩을 수행할 수 있다(S560).
도 6은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 디코딩 흐름도를 나타낸다.
먼저, 디코더는 비트스트림을 수신할 수 있다(S610).
상기 디코더는 정규 모드(regular mode)에 따라 이진 산술 디코딩을 수행할지 바이패스 모드(bypass mode)에 따라 이진 산술 디코딩을 수행할지 여부를 결정할 수 있다. 예를 들어, 상기 디코더는 상기 비트스트림으로부터 바이패스 플래그(bypass flag)를 추출하여 정규 모드인지 바이패스 모드인지 여부를 확인할 수 있다(S620). 여기서, 상기 바이패스 플래그(bypass flag)는 신택스의 종류에 따라 사전에 결정되어 있을 수 있으며, 또는 신택스를 구성하는 심볼들 내에서도 정규 모드 또는 바이패스 모드가 혼합되어 있을 수도 있다.
상기 바이패스 플래그(bypass flag)가 정규 모드를 나타내는 경우, 상기 디코더는 컨텍스트 모델을 선택할 수 있고(S630), 상기 컨텍스트 모델에 기초하여 이진 산술 디코딩을 수행할 수 있다(S640). 그리고, 상기 디코더는, 컨텍스트 모델을 업데이트할 수 있으며(S650), 상기 S630 단계에서 업데이트된 컨텍스트 모델에 기초하여 다시 적합한 컨텍스트 모델을 선택할 수 있다.
한편, 상기 바이패스 플래그(bypass flag)가 바이패스 모드를 나타내는 경우, 상기 디코더는 확률 0.5에 기초하여 이진 산술 디코딩을 수행할 수 있다(S660).
상기 디코더는 디코딩된 빈스트링(bin string)에 대해 역이진화를 수행할 수 있다(S670). 예를 들어, 디코딩된 이진수 형태의 빈(bin)을 입력받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력할 수 있다.
도 7은 본 발명이 적용되는 실시예로서, 복수개의 빈(bin)들을 동시에 처리하는 과정을 설명하기 위한 도면이다.
본 발명은 복수개의 빈(bin)들이 동시에 CABAC(Context-based Adaptive Binary Arithmetic Coding)으로 코딩되는 상황에서 효율적으로 구현될 수 있는 확률 갱신 방법들을 제시한다.
본 발명에서 제안하는 방식들은 동시에 코딩되는 비트스트림 개수나 비트스트림들 간의 컨텍스트(context) 공유 여부 등에 관계 없이 적용될 수 있으나 주로 비트스트림이 하나이거나 비트스트림들 간에 컨텍스트(context)를 공유하는 경우에 주로 적용될 수 있다.
또한, 복수개의 빈(bin)들에 대한 코딩 결과를 확률 갱신에 한꺼번에 반영할 때 테이블 룩업(table look-up)을 통한 근사를 여러 번 적용하지 않고 한 번만 적용할 수 있도록 하고, 보다 정확한 레인지 길이 값(range length value)을 구할 수 있는 방법도 제시한다.
최근 비디오 표준에서는 고화질, 고프레임율, 고해상도의 영상을 코딩하는 경우 산술 코딩(arithmetic coding) 알고리즘 등에 내재된 데이터 의존성으로 인해 엔트로피 코딩(entropy coding) 부분이 전체 성능의 병목이 될 가능성이 크다. 또한, 많은 비트량이 발생되는 프레임들이 연속되는 경우 실시간 처리를 위해 복수개의 프레임을 버퍼링해야 하므로 시스템 구현 상 상당한 크기의 버퍼 메모리가 요구될 수 있다.
따라서, 엔트로피 코딩(entropy coding) 부분의 쓰루풋(throughput) 향상이 필요하며, 이를 위해 본 발명은 복수개의 빈(bin)들을 단일 또는 다수의 비트스트림으로 코딩하는 구조를 제안한다. 다만, 복수개의 빈(bin)들을 동시에 처리하게 되면 코딩 데이터 조합의 수가 많아져 확률 갱신 과정이 복잡해질 수 있기 때문에, 본 발명은 복수개의 빈(bin)들을 동시에 코딩할 때 적용될 수 있는 효율적인 확률 갱신 방법을 제안한다.
현재의 비디오 표준들에서 널리 적용되는 엔트로피 코딩(entropy coding) 방법으로 산술 코딩(arithmetic coding)을 들 수 있다. 예를 들어, 이진 심볼(binary symbol)들을 코딩하면서 해당 심볼(symbol)에 대한 확률이 적응적으로 변하는 CABAC(Context-Adaptive Binary Arithmetic Coding)이 이용될 수 있다. 여기서, 이진 심볼(binary symbol)은 0 또는 1의 값을 가지는 심볼(symbol)을 말하며, 멀티 심볼(multi-symbol), 비이진 심볼(non-binary symbol), 또는 다치 심볼은 3개 이상의 값(0~N-1, N > 2) 을 가질 수 있는 심볼(symbol)을 말한다. 산술 인코딩(arithmetic encoding) 엔진으로 입력되는 가능한 모든 단위 숫자들의 집합을 알파벳(alphabet)이라고 하고, 이 경우 알파벳(alphabet)이 0과 1로 구성되어 있다고 하거나 알파벳 심볼(alphabet symbol)로 0과 1이 가능하다고 말하기도 한다.
산술 코딩(arithmetic coding)에서는 [0, 1]의 확률 구간을 각 심볼(symbol) 값에 대한 확률들로 나누게 되는데 각 구간의 길이는 해당 심볼(symbol) 값에 대한 확률 값을 가리킨다. 이 나누어진 확률 구간이 현재의 심볼(symbol)을 코딩할 때 적용되는 확률 구간이며, 현재 주어진 구간을 이 확률 구간에 비례하여 나눈 후 해당 심볼(symbol)에 대한 구간을 선택하게 된다. 이 선택된 구간이 다음 심볼(symbol)을 코딩할 때 사용될 구간이 된다. 모든 확률 값은 1보다 작기 때문에 심볼(symbol)들이 코딩되면서 계속 구간 길이가 작아지게 되므로, 재정규화(renormalization)라는 과정을 통해 구간 길이(interval length)를 스케일링(scaling)함으로써 구간 길이(interval length) 값이 특정 범위 안에 항상 놓이도록 할 수 있다.
본 발명은, CABAC 엔진에서 복수개의 이진 심볼(binary symbol)들(또는 빈(bin)들)을 동시에 처리하는 것을 가정한다. 복수개의 빈(bin)들을 동시에 처리할 때는 상기 도 7과 같이 복수개의 비트스트림으로 코딩할 수도 있고 단일 비트스트림으로 코딩할 수도 있다. 하나의 비트스트림은 코딩되는 모든 심볼(symbol)들의 정보를 함축하고 있는 구간 정보(interval information)를 출력하고, 여기서 상기 구간 정보(interval information)는 구간 시작(interval starting)을 나타내는 변수와 길이 변수에 의해 정의될 수 있다. 예를 들어, 상기 구간 시작(interval starting)을 나타내는 변수는 "base" 로 표시하고, 길이 변수는 "length" 로 표시할 수 있으며, 비트스트림은 (base, length) 쌍으로 표현할 수 있다.
상기 도 7을 살펴보면, 복수개의 빈(bin)들이 입력되면, 컨텍스트 저장부(720)에 저장된 컨텍스트를 참조하여 적어도 하나의 비트스트림으로 코딩될 수 있다. 예를 들어, 상기 도 7의 경우, si1, si2, si3, si4는 동시에 코딩되는 빈(bin)들을 말하며, 상기 si1, si2, si3, si4는 동일한 컨텍스트를 참조하여 각각 제1비트스트림, 제2비트스트림, 제3비트스트림, 제4비트스트림으로 코딩될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며 상기 si1, si2, si3, si4는 서로 다른 컨텍스트를 참조하여 코딩될 수도 있다. 상기 제1비트스트림 내지 상기 제4비트스트림은 각각 (base1, length1) 내지 (base4, length4)로 표현될 수 있다.
확률 업데이트부(probability updating unit)(710)는 각 비트스트림마다 자신의 컨텍스트에 기초하여 대응되는 빈(bin)들을 처리할 수 있다. 또는, 동일한 컨텍스트에 기초하여 복수개의 빈(bin)들을 동시에 처리할 수도 있다.
도 8은 본 발명이 적용되는 실시예로서, 2개의 빈(bin)들이 동시에 처리되는 경우 입력 조합에 따른 테이블에 기초하여 다음 상태(next state)를 출력하는 과정을 설명하기 위한 확률 업데이트부의 개략적인 블록도를 나타낸다.
본 발명의 일실시예로, 상기 도 7의 확률 업데이트부(710)는 N 개의 빈(bin)들이 동시에 처리되는 경우 모든 조합들에 대한 테이블을 구성하여 한 번에 다음 상태(next state)들을 출력할 수 있다. 여기서, 상기 테이블은 (curr. state, next state)로 구성될 수 있다.
예를 들어, N = 2, 즉 2개의 빈(bin)들이 동시에 처리되는 경우를 가정하면, 도 8에서와 같이 총 6개의 입력 조합(M, L, MM, ML, LM, LL)이 가능하다. 여기서, M은 MPS(Most Probable Symbol)가 입력되는 경우, L은 LPS(Least Probable Symbol)가 입력되는 경우, MM은 MPS 2개가 입력되는 경우, ML은 MPS와 LPS가 연이어 입력되는 경우, LM은 LPS와 MPS가 연이어 입력되는 경우, LL은 LPS 2개가 입력되는 경우를 나타낸다.
상기 도 8의 경우, 동시에 2개의 빈(bin)들이 처리될 수 있으므로 2개까지 서로 다른 컨텍스트를 사용할 수 있다. 그리고, 2개의 테이블 액세스 요청(table access request)를 받을 수 있도록 구성되어 있다.
N > 2인 경우에 대해서도 모든 입력 조합들을 고려하여 상기 도8에서와 같은 테이블을 구성할 수 있으나 조합 수가 많아져 테이블의 크기가 커지는 단점이 존재한다. 상기 도 8에서 제시된 테이블 이외에도, 확률 상태와 구간 길이 변수(interval length variable)의 상위 비트 2개를 인덱스로 입력 받아 다음 LPS에 대한 구간 길이를 구하는 테이블을 정의할 수 있다. 예를 들어, 구간 길이 변수의 7번째 비트(bit)를 MSB(Most Significant Bit)로 하고, 6번째 비트(bit)를 LSB(Least Significant Bit)로 하는 인덱스를 입력 받을 수 있다. 이 경우, 입력 조합 M/L/MM/ML/LM/LL에 대해 각기 구간 길이 값을 계산하여 해당 테이블을 구성할 수 있다.
본 발명의 일실시예로, 2개의 빈(bin)들이 하나의 비트스트림으로 코딩되고 확률 상태 천이 테이블(probability state transition table)을 따르되, 상기 도 8의 테이블에서 MM/ML/LM/LL에 대한 다음 상태(next state) 또는 다음 LPS의 구간 길이를 구하기 위한 테이블을 다르게 구성할 수 있다.
예를 들어, LL이 입력되었을 때 현재 구간 길이 변수의 7번째 비트(bit)와 6번째 비트(bit)를 추출하고, 테이블 룩업(table look-up)을 통해 첫번째 LPS에 대한 구간 길이를 획득할 수 있다. 예를 들어, 레인지 변수(range variable)에서 최상위 비트(bit)를 제외한 나머지 최상위 2 비트(bit)를 추출할 수 있다.
이 후, 갱신된 구간 길이 값에서 다시 7번째 비트(bit)와 6번째 비트(bit)를 추출하고 동일한 방식으로 두번째 LPS에 대한 구간 길이를 획득할 수 있다. 여기서, 두번째 LPS에 대해서는 갱신된 확률 상태를 테이블 입력으로 줄 수 있다.
다른 실시예로, 첫번째 LPS로 인한 확률과 두번째 LPS로 인한 확률의 곱을 LL에 대한 확률로 계산하고 이 확률 값에 대응하는 구간 길이 값을 새롭게 계산하여 테이블을 구축할 수 있다.
이에 대해서는 도 9 내지 도 12에서 보다 상세히 설명하도록 한다.
도 9 내지 도 10은 본 발명이 적용되는 실시예들로서, 레인지 길이 테이블 및 확률 천이 테이블을 이용하여 이진 심볼을 코딩하는 것을 설명하기 위한 도면이다.
상기 도 9는 2개의 입력 이진 심볼(binary symbol)을 코딩하는 경우를 나타내고, 상기 도 10은 확률 상태(probability state)와 레인지 길이(range length)의 결과 값들뿐만 아니라, 상기 도 9의 과정을 수행한 후의 결과인 중간 상태(Intermediate state) 값도 나타낸다.
본 발명의 일실시예로, 2개의 입력 이진 심볼(binary symbol)에 대해 두 번의 테이블 룩업을 통해 레인지 길이(range length)를 산출하는 방법을 제공한다.
먼저, 상기 도 9를 살펴보면, 현재 확률 상태 인덱스(pStateIdx)가 19이면 레인지 길이(range length) 값의 7번째 비트(bit)와 6번째 비트(bit)는 "10"을 나타낸다. 즉, 최상위 비트를 제외한 나머지 최상위 2 비트를 의미하고, 이때 qRangeIdx = 2 이다.
이때, 입력 이진 심볼(binary symbol)로 LL이 주어진 경우, 레인지 길이(range length)를 계산하기 위한 레인지 길이 테이블(range length table)과 확률 천이 테이블(probability transition table)을 2번 액세스하여 최종적으로 레인지 길이(range length)를 산출할 수 있다.
그러나, 이러한 경우, 레인지 길이(range length) 값과 확률의 곱셈 두 번을 각각 테이블 룩업(table look-up)으로 근사하기 때문에 최종적으로 산출되는 레인지 길이(range length) 값이 부정확할 가능성이 크다.
따라서, 본 발명에서는 보다 정확도를 향상시키기 위해 한번의 테이블 룩업을 통해 레인지 길이(range length)를 산출하는 방법을 제공한다.
도 11은 본 발명이 적용되는 실시예로서, 입력 코딩 데이터에 대한 테이블 룩업(table look-up) 한번으로 새로운 레인지 길이(range length)를 획득하는 과정을 설명하기 위한 도면이다.
일실시예로, 상기 도 11은 레인지 인덱스(qRangeIdx)와 입력 코딩 데이터 LL을 테이블 인덱스로 입력했을 때, 해당 엔트리(entry)를 어떻게 계산하는지를 보여준다. 엔트리(entry)의 형태로는 재정규화된 레인지 길이(range length) 값과 재정규화를 위한 레프트 쉬프트 어마운트(left shift amount)가 가능할 수 있다.
도 11(a)를 살펴보면, 입력 코딩 데이터에 대한 테이블 엔트리(table entry)를 구하기 위해, 인코더는 레인지 인덱스(qRangeIdx)에 대응되는 레인지 길이(range length) 구간의 중간값을 산출할 수 있다. 예를 들어, qRangeIdx = 2 이면, 그에 대응되는 레인지 길이(range length) 구간은 [384,448) 이고, 중간값은 416 이다.
그리고, 상기 인코더는, 입력 코딩 데이터에 대한 확률 상태(probability state)의 변화를 확인할 수 있고, 이후 각 확률 상태에 대응되는 확률값을 상기 중간값에 곱함으로써 새로운 레인지 길이(range length)를 산출할 수 있다. 예를 들어, 확률 상태 인덱스 pStateIdx = 19이고, 입력 코딩 데이터가 LL 인 경우, 상기 입력 코딩 데이터 LL에 대한 확률 상태(probability state)의 변화를 확인하면, 상기 도 11(b)에 따라 19 -> 15 -> 12 와 같이 변하는 것을 확인할 수 있다.
그리고, 각 확률 상태에 대응되는 확률값을 상기 중간값에 곱하면 다음 수학식 1과 같이 새로운 레인지 길이(range length)를 산출할 수 있다.
수학식 1
Figure PCTKR2017004141-appb-M000001
여기서, 416 은 qRangeIdx = 2 에 대응되는 레인지 길이(range length) 구간의 중간값을 나타내고, 도 11(c)를 살펴보면, 0.18574449 는 pStateIdx = 19 에 대응되는 LPS 확률값을 나타내며, 0.22879875 는 pStateIdx = 15 에 대응되는 LPS 확률값을 나타낸다.
이와 같이, 인코더는 도 11(b)의 확률 상태 천이 테이블에 기초하여 입력 코딩 데이터 LL에 대한 확률 상태(probability state)의 변화를 확인한 후, 각 확률 상태에서의 확률을 상기 도 11(a)로부터 획득한 중간값에 모두 곱함으로써 새로운 레인지 길이(range length)를 산출할 수 있다.
상기 인코더는 상기 새로운 레인지 길이(range length)가 [256, 512) 범위 안에 포함되도록 스케일링을 수행함으로써 최종 레인지 길이(range length)를 획득할 수 있다. 예를 들어, 다음 수학식 2와 같이 재정규화를 수행함으로써 최종 레인지 길이(range length)를 획득할 수 있다. 본 명세서에서는 이를 재정규화된 레인지 길이(renormalized range length)라 한다.
수학식 2
Figure PCTKR2017004141-appb-M000002
본 발명은, 모든 레인지 인덱스(qRangeIdx)와 입력 코딩 데이터(M/L/MM/ML/LM/LL)에 대해 상기 방법을 적용함으로써, 각각의 대응되는 엔트리(entry) 값을 계산할 수 있고 그에 따라 테이블을 구성할 수 있다.
상기 실시예에 따른 재정규화된 레인지 길이(renormalized range length) 값은 283이고, 상기 도 9의 실시예의 경우 재정규화된 레인지 길이(renormalized range length) 값은 264로 서로 다른 결과 값을 보여준다.
한편, 상기 실시예에서 재정규화되기 전 새로운 레인지 길이 값(17.67921256)을 적절한 소수점 자리까지 표시할 수 있는 고정 소수점 숫자로 표현할 수 있다면 재정규화를 위한 레프트 쉬프트 어마운트(left shift amount)를 테이블 엔트리(table entry)에 포함시키지 않더라도 충분한 정확도를 유지하면서 레프트 쉬프트 어마운트(left shift amount)를 재정규화 과정에서 유도하도록 구성할 수 있다.
도 12는 본 발명이 적용되는 실시예로서, 복수개의 빈(bin)들이 동일 컨텍스트를 참조하는지 여부에 기초하여 확률 상태 천이 테이블에 접근하는 방법을 설명하기 위한 도면이다.
본 발명은, 복수개의 빈(bin)들이 동일 컨텍스트를 참조하는지 여부에 기초하여 적어도 하나의 확률 상태 천이 테이블에 접근하도록 구성할 수 있다.
일실시예로, 2개의 빈(bin)들(bin1, bin2)이 동일한 컨텍스트를 이용하는 경우, bin2는 제2 확률 상태 천이 테이블로 입력되어 다음 확률 상태1(next state 1)만 유효하게 출력될 수 있다.
다른 실시예로, 2개의 빈(bin)들(bin1, bin2)이 각각 서로 다른 컨텍스트(ctx1, ctx2)를 이용하는 경우, bin1은 제1 확률 상태 천이 테이블로 입력되어 다음 확률 상태1(next state 1)이 출력되고, bin2는 제2 확률 상태 천이 테이블로 입력되어 다음 확률 상태2(next state 2)가 출력될 수 있다.
이와 같이 모든 빈(bin)들의 입력 조합에 대해 해당 테이블들을 새롭게 구성하는 것이 아니라 상기 도 12에서와 같이 확률 상태 천이 테이블을 연속해서 두 번 접근하도록 구성할 수도 있다.
또한, 본 발명은 동일한 방식으로 LPS 구간(interval) 길이를 획득하기 위한 테이블도 두 번 연속해도 접근하도록 구성할 수 있다.
또한, 본 발명은 동시에 처리하는 빈(bin)들의 수가 3개 이상인 경우에도 상기 도 12와 유사하게 구성할 수 있다. 다만, 각 빈(bin)이 어떤 컨텍스트를 참조하는지 또는 참조하는 컨텍스트가 겹치는지 여부 등에 따라 서로 다른 구조를 가질 수 있다.
도 13은 본 발명이 적용되는 실시예로서, 다중 입력 확률 상태 천이 테이블에 기초하여 인코딩을 수행하는 과정을 나타내는 흐름도이다.
본 명세서에서, 복수개의 빈(bin)들로 이루어진 입력을 편의상 "다중 입력"이라 칭할 수 있다.
인코더는, 복수개의 빈(bin)들이 입력되면(S1310), 본 발명이 적용되는 확률 상태 천이 테이블 및/또는 레인지 길이 테이블에 액세스할 수 있다(S1320, S1330). 여기서, 본 발명이 적용되는 확률 상태 천이 테이블을 다중 입력 확률 상태 천이 테이블이라 부를 수 있고, 본 발명이 적용되는 레인지 길이 테이블을 다중 입력 레인지 길이 테이블이라 부를 수 있다.
상기 인코더는, 상기 다중 입력 확률 상태 천이 테이블에 기초하여 입력 코딩 데이터에 대한 확률 상태(probability state)의 변화를 확인할 수 있다(S1320). 예를 들어, 상기 인코더는 상기 입력 코딩 데이터에 대한 현재 확률 상태(pStateIdx)에 따라 천이되는 확률 상태를 확인할 수 있다.
상기 인코더는, 다중 입력 레인지 길이 테이블에 기초하여 새로운 레인지 길이를 획득할 수 있다(S1330). 예를 들어, 상기 인코더는 상기 다중 입력 레인지 길이 테이블에 기초하여 레인지 길이의 중간값을 획득할 수 있고, 상기 다중 입력 확률 상태 천이 테이블에 기초하여 각 확률 상태에서의 확률을 상기 중간값에 모두 곱함으로써 새로운 레인지 길이(range length)를 산출할 수 있다.
상기 인코더는, 상기 새로운 레인지 길이(range length)가 레인지 길이 구간 안에 포함되도록 재정규화 또는 스케일링을 수행함으로써 재정규화된 레인지 길이(renormalized range length)를 획득할 수 있다(S1340).
상기 인코더는, 상기의 과정을 거친 후 비트스트림을 출력할 수 있다(S1350).
도 14는 본 발명이 적용되는 실시예로서, 다중 입력 확률 상태 천이 테이블에 기초하여 디코딩을 수행하는 과정을 나타내는 흐름도이다.
디코더는, 비트스트림을 입력 받아 MSB(Most Significant Bit) 부터 차례로 디코딩을 수행할 수 있다(S1410). 상기 디코더는 이진 산술 디코딩을 수행하기 전, 엔진 초기화를 하고 입력 비트의 오프셋을 저장할 수 있다.
상기 디코더는 신택스 요소에 대해 상기 인코더에서와 동일한 재정규화 과정을 수행할 수 있다(S1420). 이후, 산술 코딩 수행시 재정규화가 필요한 경우 왼쪽 쉬프트 연산(left shift operation)을 통해 오프셋의 MSB(Most Significant Bit)를 제거하고 LSB(Least Significant Bit)에 새로운 비트를 추가할 수 있다.
상기 디코더는, 현재 확률 상태 및 재정규화된 레인지 길이에 기초하여 다중 입력 레인지 길이 테이블에 액세스할 수 있고(S1430), 그에 따라 새로운 레인지 길이를 획득할 수 있다. 여기서, 상기 현재 확률 상태는 다중 입력 확률 상태 천이 테이블에 기초하여 결정될 수 있다.
상기 디코더는, 모든 가능한 입력 값들에 대한 구간 정보들과 구간 오프셋에 기초하여 복수개의 빈(bin) 값을 결정할 수 있다(S1440).
상기와 같이, 복수개의 빈 값이 결정되면(S1440), 본 발명이 적용되는 다중 입력 레인지 길이 테이블 및/또는 다중 입력 확률 상태 천이 테이블에 액세스할 수 있다(S1430, S1450).
도 15는 본 발명이 적용되는 실시예로서, LPS(Least Probable Symbol) 확률 테이블(probability table)을 나타낸다.
본 발명은, 입력 조합에 따른 새로운 LPS(Least Probable Symbol) 확률 테이블(probability table)을 정의한다.
본 발명의 일실시예로, 다중 입력 확률 상태 천이 테이블 및 다중 입력 레인지 길이 테이블을 제공하기 위해 상기 도 15의 LPS(Least Probable Symbol) 확률 테이블(probability table)을 이용할 수 있다.
기존의 확률 상태 천이 테이블은 입력 빈(bin) 1개에 대한 다음 확률 상태(next probability state)를 나타낸다. 따라서, 본 발명이 적용되는 복수개의 빈(bin)들에 대한 확률 상태 천이 테이블(다중 입력 확률 상태 천이 테이블)은 입력 빈(bin) 1개에 대한 확률 상태 천이 테이블을 빈(bin)의 개수만큼 반복해서 적용하는 방식으로 획득될 수 있다. 예를 들어, 2개의 입력 빈(bin)들에 대한 확률 상태 천이 테이블은 이하 도 16에서 상세히 설명하도록 한다.
도 16은 본 발명이 적용되는 실시예로서, 2개의 입력 빈(bin)들에 대한 확률 상태 천이 테이블(probability state transition table)을 나타낸다.
상기 도 16을 살펴보면, 확률 상태 인덱스(pStateIdx)가 0과 1일 때 MPS 값은 변하게 된다. 즉, 확률 상태 인덱스(pStateIdx)가 0일 때 LM 입력이 들어왔다면 첫 번째 입력 L에 의해 MPS 값이 바뀌게 되므로 상태 천이 관점에서 두 번째 입력 M은 L과 같게 된다.
마찬가지로, 현재 확률 상태 인덱스(pStateIdx)가 1일 때 LL 입력에 대해 MPS의 변화를 고려하면 LM과 동등하게 된다. 상기 현재 확률 상태 인덱스(pStateIdx)가 1일 때 입력이 LL이면 MPS 값이 바뀌게 된다.
도 17은 본 발명이 적용되는 실시예로서, 상기 도 16의 확률 상태 천이 과정을 고려한 모든 확률 상태 테이블을 나타낸다.
상기 도 17(a) 및 도 17(b)를 살펴보면, M과 L에 대한 확률들을 더하면 1이 되고, MM, ML, LM, LL에 대한 확률들을 더하면 1이 되는 것을 확인할 수 있다. 이는 입력 1개 또는 2개일 때의 가능한 모든 경우들에 대한 확률을 나타내기 때문이다.
한편, 상기 도 17(a) 및 도 17(b)에서 제시한 확률 값들을 4개의 레인지 길이의 구간에 대한 중간값들에 모두 적용하면, 다음 도 18의 테이블을 획득할 수 있다. 여기서, 상기 중간값들은 도 11(a)의 레인지 인덱스(qRangeIdx)에 따른 레인지 길이의 구간에 대한 중간값을 나타내고, 상기 도 18의 테이블은 상기 도 17의 확률값과 중간값의 곱을 모두 구한 경우를 나타낸다.
도 18은 본 발명이 적용되는 실시예로서, 상기 도 17의 확률 값들을 4개의 레인지 길이의 구간의 중간값들에 적용한 테이블을 나타낸다.
본 발명이 적용되는 도 18(a) 및 도 18(b)를 의 테이블은 상기 도 17의 확률값과 레인지 길이의 구간에 대한 중간값을 곱한 후, 128을 추가로 곱한 값들을 나타낸다. 예를 들어, 원래의 레인지 값은 맨 상위 비트가 1인 9 비트 값이었으므로 128을 곱하게 되면 16 비트로 표현 가능한 숫자가 된다.
따라서, 16 비트 수의 맨 상위 비트가 1이 되도록 왼쪽 쉬프트 연산(left shift operation)을 적용하여 재정규화를 수행할 수 있고, 상위 9 비트만 남기거나 하위 7 비트 값을 보고 반올림한 후 상위 9 비트만 남기게 되면 원래의 레인지 값에 대한 비트 길이를 유지할 수 있다.
도 19는 본 발명이 적용되는 실시예로서, 구간 오프셋 값과 비교하여 빈(bin) 값을 디코딩하기 위한 테이블을 나타낸다.
상기 도 19(a) 및 도 19(b)는 디코딩 시에 구간 오프셋 값과 비교하여 빈(bin) 값을 디코딩하기 위한 테이블이다.
예를 들어, 구간을 [0, 1]의 범위로 정규화했다고 가정했을 때, 입력 빈(bin)들의 구성에 따라 구간은 도 20에서와 같이 분할될 수 있다.
도 20은 본 발명이 적용되는 실시예로서, 입력 빈(bin)들의 구성에 따른 구간 분할을 설명하기 위한 도면이다.
본 발명의 실시예에 따르면, 현재 디코딩하는 빈(bin)이 1개인 경우 도 20(a)와 같이 M 값만 알면 전체 구간에 대한 정보를 알 수 있다. 또는, L 값을 알아도 전체 구간에서 L을 빼면 M을 구할 수도 있다.
다른 예로, 상기 도 19의 테이블에서 M 대신에 L을 저장할 수도 있다.
한편, 현재 디코딩하는 빈(bin)이 2개라면 상기 도 20(b)에서와 같이 MM, MM+ML, MM+ML+LM을 전체 구간에 대한 정보를 알 수 있다.
이 경우, 마찬가지로 상기 도 19에서 LL, LL+LM, LL+LM+ML을 저장하고 있어도 약간의 계산을 통해 구간 오프셋이 어떤 구간에 속하는지를 구분해 낼 수 있다.
다른 예로, 상기 도 19의 테이블 정보만으로도 각 입력의 경우에 대한 구간 길이를 알 수도 있다. 예를 들어, 상기 도 20(b)에서 알 수 있듯이 LL의 길이는 "(전체 구간 길이) - (MM+ML+LM)"와 같이 계산할 수 있고, LM의 길이는 "(MM+ML+LM) - (MM+ML)"를 계산함으로써 알 수 있다.
다른 예로, 상기 도 18의 테이블 정보에 기초하여 상기 도 19의 테이블에서 제공하는 정보를 생성할 수도 있다. 예를 들어, MM+ML+LM은 MM, ML, LM의 길이를 누적하면 된다. 또한, 상기 도 18에서도 M과 L 중에 하나만 포함하면 나머지 하나를 알 수 있으며, MM, ML, LM, LL 중에서도 3 개만 포함시키면 나머지 하나를 알 수 있다.
상기 기술된 것과 같이, 본 발명에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 상기 도 1 내지 4, 도 7 내지 8 및 도 12에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다.
또한, 본 발명이 적용되는 디코더 및 인코더는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 및 데이터 신호를 처리하기 위해 사용될 수 있다.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트 스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.

Claims (15)

  1. 비디오 신호에 대해 엔트로피 인코딩을 수행하는 방법에 있어서,
    복수개의 빈(bin)들을 포함하는 적어도 하나의 비트스트림을 수신하는 단계; 및
    상기 복수개의 빈들에 대응되는 컨텍스트 정보에 기초하여 확률 업데이트를 수행하는 단계;
    를 포함하되,
    상기 확률 업데이트를 수행하는 단계는,
    현재 확률 상태에 기초하여 기정의된 다중 입력 확률 상태 천이 테이블로부터 다음 확률 상태를 확인하는 단계, 여기서 상기 기정의된 다중 입력 확률 상태 천이 테이블은 상기 복수개의 빈(bin)들과 상기 현재 확률 상태 간의 모든 가능한 조합에 대한 다음 확률 상태 값들을 나타냄;
    상기 현재 확률 상태에 기초하여 기정의된 다중 입력 구간 길이 테이블로부터 새로운 구간 길이를 산출하는 단계, 여기서 상기 기정의된 다중 입력 구간 길이 테이블은 구간 길이와 확률의 곱을 근사화하기 위한 테이블을 나타냄; 및
    상기 새로운 구간 길이에 대해 재정규화를 수행하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 복수개의 빈(bin)들은 동시에 처리되는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 복수개의 빈(bin)들이 하나의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 공통된 하나의 컨텍스트 셋인 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 복수개의 빈(bin)들이 복수개의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 적어도 하나의 컨텍스트 셋을 포함하고, 상기 적어도 하나의 컨텍스트 셋은 각각 상기 복수개의 비트스트림에 대응되는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 기정의된 다중 입력 구간 길이 테이블은 상기 현재 확률 상태의 확률값과 레인지 구간의 중간값을 곱한 결과 값에 기초하여 정의된 것을 특징으로 하는 방법.
  6. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서,
    복수개의 빈(bin)들을 포함하는 적어도 하나의 비트스트림을 수신하는 단계; 및
    상기 비트스트림에 대해 엔트로피 디코딩을 수행하는 단계
    를 포함하되,
    상기 엔트로피 디코딩을 수행하는 단계는,
    이진 산술 디코딩을 위한 초기화를 수행하는 단계;
    현재 확률 상태에 기초하여 기정의된 다중 입력 확률 상태 천이 테이블로부터 다음 확률 상태를 확인하는 단계, 여기서 상기 기정의된 다중 입력 확률 상태 천이 테이블은 상기 복수개의 빈(bin)들과 상기 현재 확률 상태 간의 모든 가능한 조합에 대한 다음 확률 상태 값들을 나타냄;
    상기 현재 확률 상태에 기초하여 기정의된 다중 입력 구간 길이 테이블로부터 새로운 구간 길이를 산출하는 단계, 여기서 상기 기정의된 다중 입력 구간 길이 테이블은 구간 길이와 확률의 곱을 근사화하기 위한 테이블을 나타냄; 및
    상기 새로운 구간 길이에 기초하여 상기 복수개의 빈(bin)들의 값을 결정하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 복수개의 빈(bin)들은 동시에 처리되는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    확률 업데이트가 상기 복수개의 빈들에 대응되는 컨텍스트 정보에 기초하여 수행되고,
    상기 복수개의 빈(bin)들이 하나의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 공통된 하나의 컨텍스트 셋인 것을 특징으로 하는 방법.
  9. 제7항에 있어서,
    확률 업데이트가 상기 복수개의 빈들에 대응되는 컨텍스트 정보에 기초하여 수행되고,
    상기 복수개의 빈(bin)들이 복수개의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 적어도 하나의 컨텍스트 셋을 포함하고, 상기 적어도 하나의 컨텍스트 셋은 상기 복수개의 비트스트림에 대응되는 것을 특징으로 하는 방법.
  10. 제6항에 있어서,
    상기 기정의된 다중 입력 구간 길이 테이블은 상기 현재 확률 상태의 확률값과 레인지 구간의 중간값을 곱한 결과 값에 기초하여 정의된 것을 특징으로 하는 방법.
  11. 비디오 신호에 대해 엔트로피 인코딩을 수행하는 장치에 있어서,
    복수개의 빈(bin)들을 포함하는 적어도 하나의 비트스트림을 수신하는 비트스트림 수신부; 및
    상기 복수개의 빈들에 대응되는 컨텍스트 정보에 기초하여 확률 업데이트를 수행하는 엔트로피 인코딩부;
    를 포함하되,
    상기 엔트로피 인코딩부는,
    현재 확률 상태에 기초하여 기정의된 다중 입력 확률 상태 천이 테이블로부터 다음 확률 상태를 확인하고, 상기 현재 확률 상태에 기초하여 기정의된 다중 입력 구간 길이 테이블로부터 새로운 구간 길이를 산출하는 확률 업데이트부; 및
    상기 새로운 구간 길이에 대해 재정규화를 수행하는 재정규화부
    를 포함하고,
    상기 기정의된 다중 입력 확률 상태 천이 테이블은 상기 복수개의 빈(bin)들과 상기 현재 확률 상태 간의 모든 가능한 조합에 대한 다음 확률 상태 값들을 나타내고, 상기 기정의된 다중 입력 구간 길이 테이블은 구간 길이와 확률의 곱을 근사화하기 위한 테이블을 나타내는 것을 특징으로 하는 장치.
  12. 제11항에 있어서,
    상기 복수개의 빈(bin)들은 동시에 처리되고,
    상기 복수개의 빈(bin)들이 하나의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 공통된 하나의 컨텍스트 셋을 나타내고,
    상기 복수개의 빈(bin)들이 복수개의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 적어도 하나의 컨텍스트 셋을 포함하고, 상기 적어도 하나의 컨텍스트 셋은 각각 상기 복수개의 비트스트림에 대응되는 것을 특징으로 하는 장치.
  13. 제11항에 있어서,
    상기 기정의된 다중 입력 구간 길이 테이블은 상기 현재 확률 상태의 확률값과 레인지 구간의 중간값을 곱한 결과 값에 기초하여 정의된 것을 특징으로 하는 장치.
  14. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서,
    복수개의 빈(bin)들을 포함하는 적어도 하나의 비트스트림을 수신하는 비트스트림 수신부; 및
    상기 비트스트림에 대해 엔트로피 디코딩을 수행하는 엔트로피 디코딩부
    를 포함하되,
    상기 엔트로피 디코딩부는,
    이진 산술 디코딩을 위한 초기화를 수행하는 초기화부;
    현재 확률 상태에 기초하여 기정의된 다중 입력 확률 상태 천이 테이블로부터 다음 확률 상태를 확인하고, 상기 현재 확률 상태에 기초하여 기정의된 다중 입력 구간 길이 테이블로부터 새로운 구간 길이를 산출하고, 상기 새로운 구간 길이에 기초하여 상기 복수개의 빈(bin)들의 값을 결정하는 확률 업데이트부
    를 포함하고,
    상기 기정의된 다중 입력 확률 상태 천이 테이블은 상기 복수개의 빈(bin)들과 상기 현재 확률 상태 간의 모든 가능한 조합에 대한 다음 확률 상태 값들을 나타내고, 상기 기정의된 다중 입력 구간 길이 테이블은 구간 길이와 확률의 곱을 근사화하기 위한 테이블을 나타내는 것을 특징으로 하는 장치.
  15. 제14항에 있어서,
    상기 복수개의 빈(bin)들은 동시에 처리되고,
    상기 확률 업데이트부는 상기 복수개의 빈들에 대응되는 컨텍스트 정보에 기초하여 확률 업데이트를 수행하고,
    상기 복수개의 빈(bin)들이 하나의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 공통된 하나의 컨텍스트 셋을 나타내고,
    상기 복수개의 빈(bin)들이 복수개의 비트스트림에 포함되어 있는 경우, 상기 컨텍스트 정보는 적어도 하나의 컨텍스트 셋을 포함하고, 상기 적어도 하나의 컨텍스트 셋은 각각 상기 복수개의 비트스트림에 대응되는 것을 특징으로 하는 장치.
PCT/KR2017/004141 2017-04-18 2017-04-18 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 WO2018194190A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2017/004141 WO2018194190A1 (ko) 2017-04-18 2017-04-18 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2017/004141 WO2018194190A1 (ko) 2017-04-18 2017-04-18 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2018194190A1 true WO2018194190A1 (ko) 2018-10-25

Family

ID=63855832

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/004141 WO2018194190A1 (ko) 2017-04-18 2017-04-18 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2018194190A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140017016A (ko) * 2011-06-03 2014-02-10 퀄컴 인코포레이티드 비디오 데이터의 컨텍스트 적응 코딩
US20140169445A1 (en) * 2007-12-31 2014-06-19 Musa Jahanghir Systems and Apparatuses For Performing CABAC Parallel Encoding and Decoding
KR20140085546A (ko) * 2011-10-27 2014-07-07 퀄컴 인코포레이티드 비디오 코딩을 위한 이진 산술 코더에서의 상태의 매핑
JP2015115665A (ja) * 2013-12-09 2015-06-22 日本電信電話株式会社 二値算術符号化装置、二値算術符号化方法及び二値算術符号化プログラム
KR20170021814A (ko) * 2011-02-21 2017-02-28 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140169445A1 (en) * 2007-12-31 2014-06-19 Musa Jahanghir Systems and Apparatuses For Performing CABAC Parallel Encoding and Decoding
KR20170021814A (ko) * 2011-02-21 2017-02-28 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20140017016A (ko) * 2011-06-03 2014-02-10 퀄컴 인코포레이티드 비디오 데이터의 컨텍스트 적응 코딩
KR20140085546A (ko) * 2011-10-27 2014-07-07 퀄컴 인코포레이티드 비디오 코딩을 위한 이진 산술 코더에서의 상태의 매핑
JP2015115665A (ja) * 2013-12-09 2015-06-22 日本電信電話株式会社 二値算術符号化装置、二値算術符号化方法及び二値算術符号化プログラム

Similar Documents

Publication Publication Date Title
WO2017086765A2 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2018190594A1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2020071830A1 (ko) 히스토리 기반 움직임 정보를 이용한 영상 코딩 방법 및 그 장치
WO2011087323A2 (en) Method and apparatus for encoding and decoding image by using large transform unit
WO2020050702A1 (ko) 다중 변환 커널을 사용하는 비디오 신호 처리 방법 및 장치
WO2015009036A1 (ko) 시간적 서브 레이어 정보에 기반한 인터 레이어 예측 방법 및 장치
WO2016104854A1 (ko) 부호화 방법 및 장치와 복호화 방법 및 장치
WO2016076677A1 (ko) 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치
WO2019221472A1 (ko) 참조 샘플을 이용하는 비디오 신호 처리 방법 및 장치
WO2020071879A1 (ko) 변환 계수 코딩 방법 및 그 장치
WO2018207956A1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2020071832A1 (ko) 변환 계수 코딩 방법 및 그 장치
WO2021025485A1 (ko) 비디오 부호화 및 복호화를 위한 엔트로피 코딩
WO2021040319A1 (ko) 비디오/영상 코딩 시스템에서 라이스 파라미터 도출 방법 및 장치
WO2015194913A1 (ko) 영상의 부호화/복호화 방법 및 이를 이용하는 장치
WO2019240539A1 (ko) Cabac에 기반한 엔트로피 코딩 방법 및 그 장치
WO2018190595A1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2020185039A1 (ko) 레지듀얼 코딩 방법 및 장치
WO2020180043A1 (ko) Lmcs에 기반한 영상 코딩 방법 및 그 장치
WO2020141856A1 (ko) 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
WO2018194190A1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2021137589A1 (ko) 영상 디코딩 방법 및 그 장치
WO2021040488A1 (ko) 팔레트 모드에서의 이스케이프 이진화 기반 영상 또는 비디오 코딩
WO2021137588A1 (ko) 픽처 헤더를 포함하는 영상 정보를 코딩하는 영상 디코딩 방법 및 그 장치
WO2021107622A1 (ko) 영상/비디오 코딩 방법 및 장치

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: 17906123

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17906123

Country of ref document: EP

Kind code of ref document: A1