WO2019027074A1 - 멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치 - Google Patents

멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치 Download PDF

Info

Publication number
WO2019027074A1
WO2019027074A1 PCT/KR2017/008461 KR2017008461W WO2019027074A1 WO 2019027074 A1 WO2019027074 A1 WO 2019027074A1 KR 2017008461 W KR2017008461 W KR 2017008461W WO 2019027074 A1 WO2019027074 A1 WO 2019027074A1
Authority
WO
WIPO (PCT)
Prior art keywords
symbol
context
msec
probability
coding
Prior art date
Application number
PCT/KR2017/008461
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/008461 priority Critical patent/WO2019027074A1/ko
Publication of WO2019027074A1 publication Critical patent/WO2019027074A1/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/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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present invention relates to a method and apparatus for entropy encoding and decoding video signals. More particularly, the present invention relates to a method for performing multi-symbol mapping for multi-symbol entropy coding.
  • Entropy coding is a process of generating raw byte sequence payload (RBSP) by losslessly compressing syntax elements determined through an encoding process. Entropy coding assigns a short bit to a syntax that occurs frequently using statistics of a syntax, and assigns a long bit to a syntax that does not, thereby expressing the syntax elements as concise data.
  • RBSP raw byte sequence payload
  • entropy coding is likely to become a bottleneck in overall performance due to the data dependence inherent in arithmetic coding algorithms.
  • a buffer memory of a considerable size may be required.
  • the present invention proposes a method for improving the throughput of entropy coding.
  • the present invention proposes a method of mapping syntax elements for video coding to multi-symbol (or non-binary symbol).
  • the present invention proposes a method for reducing the total number of coding symbols in entropy coding.
  • the present invention proposes an efficient symbol mapping method applicable to entropy coding.
  • the present invention provides a method for improving the throughput of entropy coding.
  • the present invention provides a method of mapping syntax elements for video coding to multi-symbol (or non-binary symbol).
  • the present invention provides a method of mapping syntax elements for four regions into a multi-symbol that can have values ranging from 0 to 15.
  • the present invention provides a method for applying binary arithmetic coding through binarization to a value mapped to a multi-symbol up to a specific value range and for remaining values.
  • the present invention provides a method for reducing the total number of coding symbols in entropy coding.
  • the present invention provides an efficient symbol mapping method that can be applied in entropy coding.
  • the present invention can improve the throughput of entropy coding by providing an efficient symbol mapping method that can be applied in entropy coding.
  • the present invention can reduce the total number of coding symbols by mapping syntax elements to a multi-symbol (or a non-binary symbol), thereby reducing throughput, Can be improved. That is, if the number of symbols processed per cycle is kept the same, the total number of coding symbols is reduced, thereby reducing the number of cycles required and improving the throughput.
  • arithmetic coding can be considered as a method of entropy coding, and for an entropy coding method other than arithmetic coding, multi-symbol entropy coding Entropy coding (hereinafter, referred to as 'MSEC') mapping is used.
  • FIG. 1 shows a schematic block diagram of an encoder in which the encoding of a video signal is performed, in which the present invention is applied.
  • Fig. 2 shows a schematic block diagram of a decoder in which decoding of a video signal is performed, according to an embodiment to which the present invention is applied.
  • FIG. 3 shows a schematic block diagram of an entropy encoding unit, to which the present invention is applied.
  • FIG. 4 shows a schematic block diagram of an entropy decoding unit, to which the present invention is applied.
  • Fig. 5 shows a flow chart in which entropy encoding is performed according to an embodiment to which the present invention is applied.
  • FIG. 6 shows a flow chart in which entropy decoding is performed according to an embodiment to which the present invention is applied.
  • FIG. 7 shows a schematic block diagram of an entropy encoding unit for performing a probability update, in which the present invention is applied.
  • FIG. 8 shows a syntax structure to which a multi-symbol entropy coding (MSEC) mapping of a coded block flag (CBF) is applied according to an embodiment of the present invention.
  • MSEC multi-symbol entropy coding
  • FIG. 9 shows a decoding flow chart according to the embodiment of the present invention.
  • FIG. 10 is a diagram for explaining an MSEC mapping of a Coded Sub-Block Flag (CSBF) according to an embodiment of the present invention.
  • CSBF Coded Sub-Block Flag
  • FIG. 11 is a diagram for explaining a method of determining a coding scheme according to a position of a CG (Coefficient Group) including a last coefficient according to an embodiment of the present invention.
  • FIG. 12 is a diagram for explaining a method for determining a context in CSBF coding in units of SCGs according to an embodiment of the present invention. Referring to FIG. 12
  • FIG. 13 is a diagram for explaining a method of grouping CGs (Coefficient Groups) as an embodiment to which the present invention is applied.
  • FIG. 14 is a diagram for explaining an MSEC mapping of a significant_coeff_flag according to an embodiment to which the present invention is applied.
  • 15 to 16 are diagrams for explaining a method of assigning a context offset as embodiments in which the present invention is applied.
  • 17 to 18 are explanatory diagrams of context assignment of significant_coeff_flag according to embodiments of the present invention.
  • FIG. 19 is a diagram for explaining a method of classifying a CG (Coefficient Group) based on at least one of an area or a scan pattern for every TU (Transform Unit) according to an embodiment of the present invention.
  • 23 is a diagram for explaining an MSEC mapping of a position of a last coefficient according to an embodiment to which the present invention is applied.
  • 24 is a diagram for explaining MSEC mapping for part_mode according to an embodiment to which the present invention is applied.
  • 25 is a diagram for explaining an MSEC mapping for intra_chroma_pred_mode according to an embodiment to which the present invention is applied.
  • 26 is a diagram for explaining an MSEC mapping for inter_pred_idc according to an embodiment to which the present invention is applied.
  • 27 is a diagram for explaining an MSEC mapping for split_transform_flag according to an embodiment to which the present invention is applied.
  • FIG. 28 shows a decoding flow chart according to the embodiment of the present invention to which FIG. 26 is applied.
  • the present invention provides a method of performing entropy encoding on a video signal, the method comprising: inputting a multi-symbol, wherein the multi-symbol indicates a symbol having three or more values; Performing a probability update on the information of the multi-symbol; Calculating an interval length based on a final probability determined according to the probability update, and storing a context corresponding to the final probability; And performing multi-symbol arithmetic coding (MSEC) on the multi-symbol based on the context, wherein the section length is calculated based on the number of the multi-symbols. ≪ / RTI >
  • the multi-symbol is mapped by grouping the syntax elements for the four regions, where the region includes a transform unit (TU), a coefficient group (CG), a pixel, a block, Or the like.
  • TU transform unit
  • CG coefficient group
  • pixel a pixel
  • block a block
  • one context is allocated to each of the grouped areas.
  • MSEC is applied to values of a specific range among the values of the multi-symbol, and binary arithmetic coding is applied to the remaining values.
  • the probability interval of the multi-symbol is divided by the number of the multi-symbols.
  • the MSEC is performed by 16-ary arithmetic coding.
  • the MSEC of the coded block flag (CBF) for the chroma is performed when the residual quad-tree depth value is not zero.
  • the present invention provides a method for performing entropy decoding on a video signal, the method comprising: performing initialization for Multi-Symbol Arithmetic Decoding (MSED); Performing a probability update on the decoded multi-symbol based on a current probability state; Calculating an interval length based on a final probability determined according to the probability update, and storing a context corresponding to the final probability; And performing multi-symbol arithmetic decoding (MSED) on the multi-symbol based on the context, wherein the section length is calculated based on the number of the multi-symbols. ≪ / RTI >
  • MSED is applied to values of a specific range among the values of the multi-symbol, and binary arithmetic decoding is applied to the remaining values.
  • the MSED is performed by 16-ary arithmetic decoding.
  • the present invention provides an apparatus for performing entropy encoding on a video signal, the apparatus comprising: a demultiplexer for receiving a multi-symbol representing a symbol having three or more values and performing a probability update on the information of the multi- An update unit; A multi-symbol arithmetic coding (MSEC) module for performing a multi-symbol arithmetic coding (MSEC) on the multi-symbol based on a context corresponding to the final probability, based on a final probability determined according to the probability update An arithmetic coding engine; And a context storage unit for storing the context, wherein the interval length is calculated based on the number of the multi-symbols.
  • a demultiplexer for receiving a multi-symbol representing a symbol having three or more values and performing a probability update on the information of the multi- An update unit
  • MSEC multi-symbol arithmetic coding
  • MSEC multi-sy
  • the present invention relates to an apparatus for performing entropy decoding on a video signal, comprising: a probability update unit for performing a probability update on a decoded multi-symbol based on a current probability state; Performing initialization for Multi-Symbol Arithmetic Decoding (MSED), calculating an interval length based on a final probability determined according to the probability update, and calculating, based on the context corresponding to the final probability, A multi-symbol arithmetic decoding engine that performs Multi-Symbol Arithmetic Decoding (MSED) on the multi-symbol arithmetic decoding; And a context storage unit for storing the context, wherein the interval length is calculated based on the number of the multi-symbols.
  • MSED Multi-Symbol Arithmetic Decoding
  • the term used in the present invention is selected from general terms that are widely used as far as possible, but in a specific case, explanation will be made by using terms selected arbitrarily by the applicant. In such cases, the meaning is clearly stated in the detailed description of the relevant part. Therefore, it should be understood that the present invention should not be construed on the basis of only the name of the term used in the description of the present specification, and the meaning of the corresponding term should be grasped and interpreted.
  • signals, data, samples, pictures, frames, and blocks may be appropriately substituted for each coding process.
  • FIG. 1 shows a schematic block diagram of an encoder in which the encoding of a video signal is performed, in which the present invention is applied.
  • the encoder 100 includes an image divider 110, a transform unit 120, a quantization unit 130, an inverse quantization unit 140, an inverse transform unit 150, a filtering unit 160, A picture buffer (DPB) 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190.
  • an image divider 110 a transform unit 120, a quantization unit 130, an inverse quantization unit 140, an inverse transform unit 150, a filtering unit 160, A picture buffer (DPB) 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190.
  • DPB picture buffer
  • the image divider 110 may divide an 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, 120.
  • the conversion unit 120 may apply a conversion technique to the residual signal to generate a transform coefficient.
  • the transform technique may include at least one of Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loeve Transform (KLT), Graph-Based Transform (GBT), or Conditionally Non-linear Transform .
  • DCT Discrete Cosine Transform
  • DST Discrete Sine Transform
  • KLT Karhunen-Loeve Transform
  • GBT Graph-Based Transform
  • GBT means a transformation obtained from this graph when the relation information between pixels is represented by a graph.
  • the CNT means a transform obtained by generating a prediction signal using all previously reconstructed pixels and obtaining based thereon.
  • the conversion process may be applied to a pixel block having the same size of a square, or to a block having a variable size other than a square.
  • the quantization unit 130 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy encoding unit 190.
  • the entropy encoding unit 190 entropy-codes the quantized signal and outputs the quantized signal as a bitstream.
  • the entropy encoding unit 190 may map syntax elements to multi-symbols.
  • a multi-symbol may include the meaning of a non-binary symbol.
  • the entropy encoding unit 190 may group syntax elements for four regions into a multi-symbol that can have values ranging from 0 to 15 .
  • the entropy encoding unit 190 may map a range of a specific value to a multi-symbol and apply binary arithmetic coding to the remaining values through binarization .
  • the entropy encoding unit 190 receives a multi-symbol representing a symbol having three or more values and performs a probability update on the information of the multi-symbol.
  • a multi-symbol arithmetic coding (MSEC) module for performing a multi-symbol arithmetic coding (MSEC) on the multi-symbol based on a context corresponding to the final probability, based on a final probability determined according to the probability update
  • An arithmetic coding engine And a context storing unit for storing the context, wherein the interval length is calculated based on the number of the multi-symbols.
  • the multi-symbol is mapped by grouping the syntax elements for the four regions, where the region includes a transform unit (TU), a coefficient group (CG), a pixel, a block, Unit corresponding to one of the units.
  • TU transform unit
  • CG coefficient group
  • pixel pixel
  • block Unit corresponding to one of the units.
  • one context is assigned to each of the grouped regions.
  • MSEC is applied to values of a specific range among the values of the multi-symbol, and binary arithmetic coding is applied to the remaining values.
  • the probability interval of the multi-symbol is divided by the number of the multi-symbol.
  • the MSEC is performed by 16-ary arithmetic coding.
  • the MSEC of the coded block flag (CBF) for the chroma is performed when the residual quad-tree depth value is not zero.
  • the quantized signal output from the quantization unit 130 may be used to generate a prediction signal.
  • the quantized signal can be reconstructed by applying inverse quantization and inverse transformation through the inverse quantization unit 140 and the inverse transform unit 150 in the loop.
  • the restored signal can be generated by adding the restored residual signal to the prediction signal output from the inter prediction unit 180 or the intra prediction unit 185.
  • the filtering unit 160 applies filtering to the restored signal and outputs the restored signal to the playback apparatus or the decoded picture buffer 170.
  • the filtered signal transmitted to the decoding picture buffer 170 may be used as a reference picture in the inter prediction unit 180. [ As described above, not only the picture quality but also the coding efficiency can be improved by using the filtered picture as a reference picture in the inter picture prediction mode.
  • 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. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted based on the correlation of motion information between the neighboring block and the current block.
  • the intra prediction unit 185 can predict a current block by referring to samples in the vicinity of a block to be currently encoded.
  • the intraprediction unit 185 may perform the following procedure to perform intraprediction. First, a reference sample necessary for generating a prediction signal can be prepared. Then, a prediction signal can be generated using the prepared reference sample. Thereafter, the prediction mode is encoded. At this time, reference samples can be prepared through reference sample padding and / or reference sample filtering. Since the reference samples have undergone prediction and reconstruction processes, quantization errors may exist. Therefore, a reference sample filtering process can be performed for each prediction mode used for intraprediction to reduce such errors.
  • the prediction signal generated through the inter prediction unit 180 or the intra prediction unit 185 may be used to generate a reconstructed signal or may be used to generate a residual signal.
  • Fig. 2 shows a schematic block diagram of a decoder in which decoding of a video signal is performed, according to an embodiment to which the present invention is applied.
  • the decoder 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, a filtering unit 240, a decoded picture buffer (DPB) 250 ), An inter-prediction unit 260, and an intra-prediction unit 265.
  • the reconstructed video signal output through the decoder 200 can be reproduced through the reproduction apparatus.
  • the decoder 200 may receive the signal output from the encoder 100 of FIG. 1, and the received signal may be entropy-decoded through the entropy decoding unit 210.
  • the entropy decoding unit 210 may include: a probability updating unit that performs a probability update on a decoded multi-symbol based on a current probability state; Performing initialization for Multi-Symbol Arithmetic Decoding (MSED), calculating an interval length based on a final probability determined according to the probability update, and calculating, based on the context corresponding to the final probability, A multi-symbol arithmetic decoding engine that performs Multi-Symbol Arithmetic Decoding (MSED) on the multi-symbol arithmetic decoding; And a context storage unit for storing the context, wherein the section length is calculated based on the number of the multi-symbols.
  • MSED Multi-Symbol Arithmetic Decoding
  • the entropy encoding unit 190 may be applied to the entropy decoding unit 210 in the same manner as the embodiments described above, and redundant description will be omitted.
  • the inverse quantization unit 220 obtains a transform coefficient from the entropy-decoded signal using the quantization step size information.
  • the inverse transform unit 230 obtains the residual signal by inversely transforming the transform coefficient.
  • the restored 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 restored signal and outputs the restored signal to the playback apparatus or the decoded picture buffer unit 250.
  • the filtered signal transmitted to the decoding picture buffer unit 250 may be used as a reference picture in the inter prediction unit 260.
  • the embodiments described in the filtering unit 160, the inter-prediction unit 180 and the intra-prediction unit 185 of the encoder 100 respectively include the filtering unit 240 of the decoder, the inter-prediction unit 260, The same can be applied to the intra prediction unit 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 of the present invention.
  • 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.
  • the binary arithmetic encoding unit 330 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 are the same as those of FIG.
  • 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 receive a sequence of data symbols and perform binarization to output a binary symbol string composed of 0 or 1 binary values.
  • the binarization unit 310 may map syntax elements to binary symbols. Different binarization processes, such as unary (U), truncated unary (TU), k-th Exp-Golomb (EGk), and fixed length processes, Lt; / RTI > The binarization process can 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 the memory, and transmits the selected 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 current syntax element coding may be selected via the empty index binIdx.
  • context refers to information on the probability of occurrence of a symbol
  • context modeling refers to a process of estimating the probability of a bin necessary for binary arithmetic coding with bin as a binarization result.
  • the context modeling unit 320 may provide an accurate probability estimate required to achieve high coding efficiency. Thus, different context models may be used for different binary symbols and the probability of this context model may be updated based on the values of the previously coded binary symbols. At this time, the values of the previously coded binary symbols are stored in the memory 360, and the context modeling unit 320 can use the values of the previously coded binary symbols.
  • Binary symbols with similar distributions may share the same context model.
  • the context model for each of the binary symbols includes binarization information for binarization, bin index (binIdx) indicating the position of the bin in the bin string, binarization of neighboring blocks of a block containing bin, 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 and performs entropy encoding on the output string And outputs the compressed data bits.
  • the regular binary encoding unit 340 performs arithmetic coding based on recursive interval division.
  • an interval (or range) having an initial value of 0 to 1 is divided into two sub-intervals based on the probability of the binary symbol.
  • the encoded bits may be used as an offset to select one of the intervals representing 0 and 1 each time the binary symbol values are successively decoded when converted to a binary prime number.
  • one of the two divided sub-segments is selected when decoding one binary symbol, and the process of dividing the selected sub-segment again based on the binary probability is repeated.
  • the intervals and offsets have limited bit precision and renormalization may be required to prevent the interval length from becoming zero or inaccurate every 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 the probability of a currently coded bin to 0.5. This can be used when it is difficult to determine the probability of a syntax or when coding at a 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 of the present invention.
  • 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, Includes a regular binary decoding unit 430 and a bypass binary decoding unit 440.
  • the entropy decoding unit 400 may determine whether to perform a binary arithmetic decoding according to a regular mode or a binary mode according to a bypass mode. For example, the entropy decoding unit 400 can determine this by checking the bypass flag.
  • the bypass flag indicates whether the bypass mode is bypass mode, the bypass mode does not use the context model, and the probability of the currently coded bin is 0.5 Which means that the coding is performed by fixing.
  • the regular binary decoding unit 430 performs binary arithmetic decoding according to a regular mode .
  • the context modeling unit 410 selects probability information necessary to decode the current bitstream from the memory 450, and transmits the random information to the regular binary decoding unit 430.
  • the bypass binary decoding unit 440 performs binary arithmetic decoding (hereinafter referred to as " bypass mode ") according to a bypass mode, .
  • the inverse binarization unit 460 receives the decoded binary number bin from the binary arithmetic decoding unit 420 and converts the binary value into an integer type syntax element value. However, it is not necessarily the integer element type syntax element value.
  • Fig. 5 shows a flow chart in which entropy encoding is performed according to an embodiment to which the present invention is applied.
  • the entropy encoding unit may code the input symbols (S510) and perform a probability update on the input symbols (S520).
  • the entropy encoding unit may determine a final probability based on the probability update, and the context corresponding to the final probability may be stored in the context storage unit (S530).
  • the stored context may again be used to perform a probability update.
  • the entropy encoding unit may calculate (or update) the section length based on the final probability (S540), and perform the renormalization (S550).
  • FIG. 6 shows a flow chart in which entropy decoding is performed according to an embodiment to which the present invention is applied.
  • the entropy decoding unit may receive the bitstream and perform decoding sequentially from an MSB (Most Significant Bit).
  • the entropy decoding unit may perform the engine initialization and store the offset of the input bits before performing the binary arithmetic decoding.
  • the entropy decoding unit performs the same renormalization process on the syntax element as in the encoder (S610), and may perform the interval update (S620). Thereafter, when re-normalization is required in performing arithmetic coding, a most significant bit (MSB) of an offset can be removed by a left shift operation, and a new bit can be added to an LSB (Least Significant Bit).
  • MSB most significant bit
  • the entropy decoding unit may perform a probability update based on the current probability state and the re-normalized interval length (S630).
  • the current probability state may be determined based on the probability state transition table.
  • the entropy decoding unit may determine a final probability based on the probability update method, and the context corresponding to the final probability may be stored in the context storage unit (S640).
  • the stored context may be used to perform the probability update again.
  • the entropy decoding unit may determine a bin value based on the interval information and the interval offset for all possible input values (S650).
  • FIG. 7 shows a schematic block diagram of an entropy encoding unit for performing a probability update, in which the present invention is applied.
  • the present invention provides a method of mapping syntax elements to multi-symbols. Compared with coding with a binary symbol, the total number of coding symbols is reduced, and throughput can be improved. That is, if the number of symbols to be processed per cycle is kept the same, the number of cycles required decreases as the total number of coding symbols decreases, thereby improving throughput.
  • the encoder or entropy encoding unit to which the present invention is applied may include a context storage unit 710, an arithmetic coding engine 720, a coding data collection unit 730, and a probability update unit 740.
  • the coding data collecting unit 730 may collect symbol information through the arithmetic coding engine 720.
  • the coding data collection unit 730 may request the probability updating unit 740 to update the probability.
  • the probability update unit 740 performs a probability update and the context storage unit 710 may update the structure data of the context corresponding to the result of the probability update.
  • FIG. 8 shows a syntax structure to which a multi-symbol entropy coding (MSEC) mapping of a coded block flag (CBF) is applied according to an embodiment of the present invention.
  • MSEC multi-symbol entropy coding
  • Arithmetic coding is a widely used entropy coding method in current video standards.
  • Context-Adaptive Binary Arithmetic Coding (CABAC) may be used in which the probability for a corresponding symbol is adaptively changed while coding binary symbols.
  • 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 is a symbol having a value of three or more 0 to N-1, N > 2).
  • Arithmetic encoding A set of all possible unit numbers entered into the engine is called an alphabet, in which case the alphabet is composed of 0's and 1's, or 0's and 1's as alphabet symbols. It is said that it is possible.
  • the probability interval of [0, 1] is divided into the probabilities for each symbol value.
  • the length of each interval indicates a probability value for the corresponding symbol value.
  • the divided probability interval is a probability interval applied when coding a current symbol.
  • the current interval is divided in proportion to the probability interval, and the interval for the corresponding symbol is selected. This selected interval becomes the interval to be used when coding the next symbol. Since all the probability values are smaller than 1, symbols are coded and the length of the section is continuously reduced. Therefore, an interval length is scaled by a process called renormalization, The value can always be within a certain range.
  • probability intervals are divided into two.
  • possible symbols for example, alphabet symbol
  • the present invention provides a method for performing multi-symbol mapping of syntax elements for video coding to non-binary symbols.
  • the multi-symbol mapping may be referred to as a multi-symbol entropy coding mapping (MSEC mapping).
  • MSEC mapping multi-symbol entropy coding mapping
  • N-ary AC in the case of MSEC in which N symbols are available.
  • Arithmetic coding can be considered as a method of entropy coding. If an entropy coding scheme other than the arithmetic coding scheme uses a multisymbol scheme, the MSEC mapping scheme proposed in the present specification can be applied .
  • a CBF for four TUs may be mapped to (0 to 15) non-binary symbols having 2 4 symbols, and coding may be applied at one time.
  • the coding for the CBF is performed within the transform_tree () function.
  • the transform_tree () function is recursively called and the TU is coded in a quad-tree fashion, so if the split_transform_flag is 1, the transform_tree routine is internally called 4 times recursively.
  • the present invention can replace four CBF coding with one MSEC mapping by moving the CBF coding in the transform_tree () function to the stage before calling the transform_tree () function.
  • the CBF coding for chroma is performed as described above, and the CBF for luma can be determined according to the CBF value of the chroma component (Cb / Cr).
  • CABAC CABAC can be applied without applying the MSEC mapping of the present invention.
  • CBF is coded using a CABAC when Residue Quad-Tree (RQT) depth is 0, and MSEC can be applied otherwise. If the CBF value for the current RQT depth is 1 and the split_transform_flag is 1 then the chroma CBF coding for the next RQT depth can be replaced with the MSEC one time before the 4 transform_tree () have.
  • RQT Residue Quad-Tree
  • cbf_cb_4x and cbf_cr_4x are syntax elements coded in 16-ary AC, indicating that mae (v) is mapped to MSEC. From cbf_cb_4x and cbf_cr_4x, cbf_cb and cbf_cr can be derived as follows:
  • X0, y0, and y1 in FIG. 8 are the same as x0, x1, y0, and y1 in FIG. 8 and the bits configuring cbf_cb / cr_4x are mapped to cbf_cb /
  • a variety of other methods may be possible, but will be omitted here for the sake of redundant description.
  • FIG. 9 shows a decoding flow chart according to the embodiment of the present invention.
  • FIG. 9 shows a CBF parsing process to which the present invention is applied.
  • log2TrafoSize is greater than 2 (S910).
  • log2TrafoSize represents the size of the conversion unit.
  • step S910 if log2TrafoSize is greater than 2, it can be checked whether trafoDepth is 0 (S911).
  • trafoDepth represents the subdivision level of the coding block for transform coding.
  • cbf_cb is information indicating whether the Cb conversion block includes one or more non-zero transform coefficient levels (not equal to 0)
  • cbf_cr is information indicating whether the Cr conversion block includes one or more non- And information indicating whether or not the coefficient level is included.
  • split_transform_flag If the split_transform_flag is 1, it can be checked whether cbf_cb [x0] [y0] [trafoDepth] is true (S921).
  • step S921 if cbf_cb [x0] [y0] [trafoDepth] is true, cbf_cb_4x can be parsed (S922).
  • cbf_cb_4x represents a syntax element coded by 16-ary AC
  • cbf_cb may be derived by the above-described equation (1).
  • cbf_cr_4x can be parsed (S924).
  • cbf_cr_4x represents a syntax element coded by 16-ary AC
  • cbf_cr can be derived by the above-described equation (1).
  • step S910 if the split_transform_flag is 0, it can be checked whether the condition of the following equation (2) is true (S930).
  • cbf_luma is parsed (S931).
  • cbf_luma indicates whether the luma conversion block includes one or more transform coefficient levels (not equal to 0), which is not zero.
  • Equation (2) if the condition of Equation (2) is false, the CBF parsing process is terminated.
  • FIG. 10 is a diagram for explaining an MSEC mapping of a Coded Sub-Block Flag (CSBF) according to an embodiment of the present invention.
  • CSBF Coded Sub-Block Flag
  • One embodiment of the present invention provides a method of coding a CSBF on a supercoefficient group (hereinafter referred to as 'SCG') unit.
  • SCG means four coefficient groups (CG) which can be grouped into a square.
  • CSBF value for each CG can be bundled from the most significant bit (hereinafter referred to as 'MSB') of the 4 bits along the scan order or the Z-order of the HEVC.
  • the present invention is not limited to this, and it is possible to implement as many as "4! As to which bit the CSBF for each CG is to correspond to.
  • the SCG includes four CGs, and A represents the position of the last significant coefficient.
  • last_significant_coeff_x indicates the x coordinate of the last effective coefficient
  • last_significant_coeff_y indicates the y coordinate of the last valid coefficient.
  • 10A shows the MSEC mapping of the CSBF in the 32x32 block
  • FIG. 10B shows the 16x16 block
  • FIG. 10C shows the case of the 8x8 block.
  • FIG. 11 is a diagram for explaining a method of determining a coding scheme according to a position of a CG (Coefficient Group) including a last coefficient or a DC coefficient according to an embodiment of the present invention.
  • CG Coordinat Group
  • CSBF may not be coded for a CG containing a last coefficient or a DC coefficient.
  • the CSBF may refer to a CSBF bundle, but for simplicity, it is referred to as CSBF. This is because the CSBF value is not known for the remaining CGs in the SCG except for the last coefficient or the CG to which the DC coefficient belongs.
  • the present invention provides various embodiments for coding the CSBF for an SCG containing a last coefficient or a DC coefficient as follows.
  • N-ary AC Arimetic Coding
  • CABAC can be applied in CG unit.
  • 8-ary AC can be applied to SCG including DC coefficient except top-left CG.
  • CABAC can be applied in CG unit.
  • FIG. 12 is a diagram for explaining a method for determining a context in CSBF coding in units of SCGs according to an embodiment of the present invention. Referring to FIG. 12
  • the present invention provides various methods for performing context modeling for CSBF coding in units of SCG as follows.
  • A represents current SCG and B represents neighbor CG.
  • the contexts of Luma and chroma can be determined as shown in Equation (3).
  • s r represents the CSBF value for the right SCG
  • s l represents the CSBF value for the lower SCG
  • the context can be determined based on the sum value. For example, as shown in FIG. 12, one SCG (A) can have a maximum of four neighbor CGs, so that the CSBF sum value of neighboring CGs is 0 to 4. Therefore, the context can be classified according to the sum value as shown in the following Equation 4, and the T value can be 1 to 4.
  • s r1 and s r2 respectively represent the CSBF values for the two right CGs in FIG. 12, and s l1 and s l2 represent the CSBF values for the two lower CGs, respectively.
  • FIG. 13 is a diagram for explaining a method of grouping CGs (Coefficient Groups) as an embodiment to which the present invention is applied.
  • the present invention provides a method of performing other types of grouping, although the SCG may be grouped into four square CGs.
  • a group of CGs to be mapped to the MSEC can be determined as in FIG. Referring to FIG. 13, CGs represented by the same numbers constitute one group. That is, CGs can be grouped differently in reverse order for each diagonal line based on the diagonal scan order. In addition to this grouping method, various grouping methods can be applied. For example, different grouping schemes may be applied based on the size of the TU.
  • FIG. 14 is a diagram for explaining an MSEC mapping of a significant_coeff_flag according to an embodiment to which the present invention is applied.
  • four pixels in a square may be grouped into 16-ary AC by applying a scheme similar to CSBF.
  • the same number of pixels constitute the same group coded as 16-ary AC.
  • 16-ary AC has a symbol value of 0 to 15. Therefore, various methods can be applied to map the significant_coeff_flag of a pixel at a certain position with respect to each bit of 4 bits. For example, it can fill in MSBs of 4 bits according to an inverse scan sequence.
  • the four pixels at the same distance or a similar distance can be grouped and coded as 16-ary AC considering the distance from the DC coefficient.
  • the symbols may be coded from symbols located away from the DC coefficient, in order of closest symbols.
  • 15 to 16 are diagrams for explaining a method of assigning a context offset as embodiments in which the present invention is applied.
  • Context modeling can be configured in a similar way as in HEVC, except that one context is allocated for four pixels.
  • a context is designated in units of pixels.
  • the numbers in FIG. 15 indicate an offset for designating a context.
  • FIG. 15A shows a pattern example of assigning a context offset for each pixel position for a 4x4 TU.
  • FIG. 15B shows a pattern example for assigning a context offset for each pixel position in a CG with respect to a TU other than 4x4. .
  • S r represents the CSBF for the right CG
  • S l represents the CSBF for the lower CG.
  • FIG. 16 shows a case where a context offset is assigned to each group composed of four pixels. For example, when four pixels are grouped, the contexts can be distinguished as shown in FIG.
  • FIG. 16 (a) shows an example of a pattern for assigning context offsets to groups of four pixels for a 4x4 TU
  • FIG. 16 (b) shows an example of a pattern for assigning context offsets to four pixels in a CG for a TU other than 4x4 Lt
  • RTI ID 0.0 &gt
  • a &lt / RTI &gt
  • context offset 0.0 &gt
  • S r represents the CSBF for the right CG
  • S l represents the CSBF for the lower CG.
  • 17 to 18 are explanatory diagrams of context assignment of significant_coeff_flag according to embodiments of the present invention.
  • Fig. 17 shows the context assignment for significant_coeff_flag.
  • Fig. 17 (a) is a table for luma components and
  • Fig. 17 (b) is a table for chroma components.
  • a luma DC coefficient of a top-left CG is assigned a context 0, irrespective of a TU size
  • an 8 x 8 luma, TU is assigned a different context according to a scan pattern (e.g., Diagonal, Vertical / Horizontal)
  • sub-block including DC i.e., CG
  • Iv a 16 x 16 TU and a 32 x 32 TU are assigned the same context.
  • the sub index (SubIdx) means a context offset in each case.
  • the top-left Chroma DC coefficient is assigned 27 contexts regardless of the TU size, and the features (ii), (iii) ) and (iv) do not apply in the case of Chroma.
  • FIG. 18 shows a method of assigning a context to each group composed of four pixels.
  • FIG. 18 (a) is a table for luma components and
  • FIG. 18 (b) is a table for chroma components.
  • FIG. 16 The context offset shown in FIG. 16 can be applied to the MSEC mapping scheme to which the present invention is applied, similar to FIG. 17, which is the same as FIG.
  • FIG. 19 is a diagram for explaining a method of classifying a CG (Coefficient Group) based on at least one of an area or a scan pattern for every TU (Transform Unit) according to an embodiment of the present invention.
  • FIG. 18 can be modified by the following method.
  • a different context set can be allocated for each scan pattern.
  • Luma can be configured not to share contexts for 16 x 16 TUs and 32 x 32 TUs.
  • the region type is divided into a sub-block (CG) including DC and a sub-block (CG) not including DC, and the region type can be further diversified as shown in FIG.
  • FIG. 19 (a) shows subblocks classified into three types, i.e., diagonal scan (a1), horizontal scan (a2), and vertical scan (a3) in 8 x 8 TU.
  • the upper left block 0 represents a DC sub block.
  • FIG. 19 (b) shows a CG type classified according to the region at 16.times.16 TU.
  • the first through fourth embodiments above are applicable for all TU sizes and Luma / Chroma.
  • coeff_abs_level_minus1 is a value obtained by subtracting 1 from the absolute value of the actual coefficient, because it is already known whether it is a non-zero coefficient by a significant_coeff_flag.
  • the range to which the MSEC is applied can be divided as follows.
  • coeff_abs_level_greater1_flag and coeff_abs_level_greater2_flag can be coded in the same way as HEVC, and MSEC can be applied only for coeff_abs_level_remaining.
  • the first scheme applies the MSEC mapping to the value of (coeff_abs_level_minus1 - 1) or (coeff_abs_level_minus1 - 2) according to the values of coeff_abs_level_greater1_flag and coeff_abs_level_greater2_flag
  • the second scheme applies the MSEC mapping to the value of coeff_abs_level_minus1
  • a new variable coeff_abs_level_MSEC to be an object of the MSEC mapping can be defined by the following equations (6) to (7) for the above two schemes, respectively.
  • the present invention provides a method for applying MSEC mapping to coeff_abs_level_MSEC.
  • N-ary AC When the N-ary AC is applied to the MSEC mapping, the allowed range of symbol values is 0 to (N-1).
  • N can be 2 2 , 2 3 , 2 4, and so on. In this case, a value larger than (N-1) can not be encoded into N-ary AC one time.
  • MSEC When MSEC is applied, MSEC with different number of symbols can be applied. For example, if the first applied MSEC is 16-ary AC, then the next applied MSEC may be 8-ary AC.
  • MSEC can be applied to the MSB part of the value [coeff_abs_level_MSEC - (N-1)], MSEC can be applied to the LSB, or other methods can be coded. For example, you can apply the coding of coeff_abs_level_remaining in HEVC in other ways. If 8-ary MSEC is applied, the upper 3 bits of [coeff_abs_level_MSEC - (N-1)] value can be extracted and mapped to MSEC.
  • the method of separately coding the MSB portion can be applied from the first MSEC.
  • selecting the MSB part it is possible to configure the MSEC to extract [0 ⁇ (2 M -2)] upper L bits only when the range of values can be represented by M bits.
  • a can be applied to other coding schemes for the successive one after the remainders obtained by subtracting the remaining (2 M -1) code values.
  • the method of coding the coeff_abs_level_remaining of the HEVC can be applied in the remaining coding.
  • the M and L values may be changed for each step applied.
  • the present invention provides a method for changing the threshold value for limiting the number of binarization tables or switching tables.
  • the value of (coeff_abs_level_minus1 + 1) exceeds a certain threshold value, the value of m is updated to change the binarization table.
  • the number of coefficients having an absolute value larger than 1 in the previous CG is equal to or larger than 1, it can be assigned to the context model 0.
  • “no trailing ones” it is assigned to the context model 1
  • "1 trailing one” is assigned to the context model 2
  • "2 or more trailing ones” is assigned to the context model 3
  • the coefficients after the non-zero coefficients can be assigned to the context model 4.
  • the context can be configured similarly to the context assignment for the significant_coeff_flag.
  • contexts may be allocated based on Luma / Chroma, TU size, scan pattern, CG location, and the like.
  • TUs larger than 8x8 CGs located at the same diagonal can have similar statistical properties, so different contexts are allocated for each region. That is, the indexes for the subblock positions in FIG. 21 are the same as the indexes for the area classification in FIG.
  • FIG. 22 (a) shows the CG unit area classification at 8x8 TU
  • FIG. 22 (b) shows the CG unit area classification at 16 ⁇ 16 TU
  • FIG. 22 (c) Indicates the CG unit area classification.
  • 23 is a diagram for explaining an MSEC mapping of a position of a last coefficient according to an embodiment to which the present invention is applied.
  • the applied context model can be configured to be assigned different contexts based on at least one of Luma / Chroma, TU size. For example, 4 contexts can be allocated for TUs with 4 x 4/8 x 8/16 x 16/32 x 32 TUs, and 4 x 4/8 x 8/16 x 16 sizes for chroma TUs are available, so three contexts can be allocated.
  • the present invention provides various MSEC mapping methods.
  • MSEC is applied only to last_sig_coeff_x_prefix and last_sig_coeff_y_prefix, and last_sig_coeff_x_suffix and last_sig_coeff_y_suffix can be coded by applying the same method as HEVC.
  • the range of last_sig_coeff_x / y_prefix determined by the HEVC depends on the Luma / Chroma and the TU size.
  • Binary codes 0, 10, and 11 are available, so they can be mapped to 3-ary AC.
  • 24 is a diagram for explaining MSEC mapping for part_mode according to an embodiment to which the present invention is applied.
  • the present invention can apply the MSEC mapping only when the Intra CU is divided into four N x N PUs. That is, 16-ary AC can be applied. Also, the context for 16-ary AC can be allocated separately for each I / P / B slice.
  • 25 is a diagram for explaining an MSEC mapping for intra_chroma_pred_mode according to an embodiment to which the present invention is applied.
  • MSEC can be applied by assigning a symbol value for 5-ary AC to the intra_chroma_pred_mode value.
  • different contexts can be allocated for each I / P / B slice.
  • the merge_flag can be mapped to MSEC at one time by moving the coding for merge_flag outside prediction_unit, but the number of MSEC symbols can be changed according to the number of PUs in one CU. Therefore, it is necessary to allocate different contexts from MSECs for each PU segmentation.
  • MaxNumMergeCand is calculated by the five_minus_max_num_merge_cand defined in the slice segment header as follows: In this case, MaxNumMergeCand-ary AC can be coded. For example, the possible MaxNumMergeCand value is 5, so it can be coded as 5-ary AC.
  • 26 is a diagram for explaining an MSEC mapping for inter_pred_idc according to an embodiment to which the present invention is applied.
  • nPbW + nPbH 12
  • nPbW represents the width of the PU
  • nPbH represents the height of the PU.
  • ref_idx_l0 and ref_idx_l1 may have values of 0 to num_ref_idx_l0_active_minus1, 0 to num_ref_idx_l1_active_minus1, respectively.
  • num_ref_idx_l0 / 1_active_minus1 can have a value from 0 to 14, so a maximum of 15-ary AC mapping is possible.
  • (num_ref_idx_l0 / 1_active_minus1 + 1) -ary AC can be applied selectively or 15-ary AC can be applied according to the value of num_ref_idx_l0 / 1_active_minus1.
  • the symbol-specific initialization probability can be set differently according to num_ref_idx_l0 / 1_active_minus1.
  • 27 is a diagram for explaining an MSEC mapping for split_transform_flag according to an embodiment to which the present invention is applied.
  • the present invention can perform coding for four flags at once by properly checking conditions before four recursive calls to the transform_tree function, as in the MSEC mapping for CBF. That is, 16-ary AC can be applied by connecting 4 flags to 4 bits.
  • the split_transform_flag_4x (S2730) of FIG. 27 can be mapped to the split_transform_flag for the subblocks as shown in Equation (9).
  • variable abs_mvd can be defined as shown in Equation 10 below.
  • abs_mvd_greater0_flag and abs_mvd_greater1_flag can be coded as in HEVC and MSEC can be applied when coding abs_mvd_minus2. Alternatively, you can apply MSEC to abs_mvd.
  • abs_mvd_MSEC may be abs_mvd_minus2 or abs_mvd depending on the range of applying MSEC.
  • abs_mvd_MSEC For abs_mvd_MSEC, the same methods as for applying coeff_abs_level_MSEC to MSEC several times can be applied. For example, you can apply the MSEC several times or apply the MSEC to the MSB. For the remaining bins with MSEC applied, they can be coded in the same way as for abs_mvd_minus3 in the HEVC. For example, binarization can perform 1-th order Exp-Golomb and apply bypass coding.
  • FIG. 28 shows a decoding flow chart according to the embodiment of the present invention to which FIG. 26 is applied.
  • FIG. 28 shows a split_transform_flag parsing process to which the present invention is applied.
  • step S2810 if the condition of Equation (11) is true, the split_transform_flag is parsed (S2820). On the other hand, if the condition of Equation (11) is false, split_transform_flag is not parsed.
  • split_transform_flag 1 If split_transform_flag is 1, it can be checked whether the condition of the following Equation 12 is true (S2840).
  • split_transform_flag 0
  • split_transform_flag_4x is parsed (S2850).
  • the embodiments described in the present invention can be implemented and executed on a processor, a microprocessor, a controller, or a chip.
  • the functional units shown in FIGS. 1 to 4 and 7 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 can be applied to multimedia communication devices such as 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 chatting device, (3D) video device, a video telephony video device, and a medical video device, and can be used to process video signals and data signals, Lt; / RTI >
  • the processing method to which the present invention is applied may be produced in the form of a computer-executed program, and may be stored in a computer-readable recording medium.
  • the multimedia data having the 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 in which computer-readable data is stored.
  • the computer readable recording medium includes, 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 .
  • the computer-readable recording medium includes media implemented in the form of a carrier wave (for example, transmission over the Internet).
  • the bit stream generated by the encoding method can be stored in a computer-readable recording medium or transmitted over a wired or wireless communication network.

Landscapes

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

Abstract

본 발명은, 비디오 신호에 대해 엔트로피 인코딩을 수행하는 방법에 있어서, 멀티 심볼(multi-symbol)을 입력받는 단계, 여기서 상기 멀티 심볼은 3개 이상의 값을 갖는 심볼을 나타냄; 상기 멀티 심볼의 정보에 대해 확률 업데이트를 수행하는 단계; 상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트를 저장하는 단계; 및 상기 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 코딩(Multi-Symbol Arithmetic Coding, MSEC)을 수행하는 단계를 포함하되, 상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 하는 방법을 제공한다.

Description

멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치
본 발명은 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치에 관한 것이다. 보다 구체적으로, 멀티 심볼 엔트로피 코딩(multi-symbol entropy coding)을 위한 멀티 심볼 매핑(multi-symbol mapping)을 수행하는 방법에 관한 것이다.
엔트로피 코딩은 부호화 과정을 통해 결정된 신택스 엘리먼트들을 무손실 압축하여 RBSP(Raw Byte Sequence Payload)를 생성하는 과정이다. 엔트로피 코딩은 신택스의 통계를 이용하여 자주 발생하는 신택스에 대해서는 짧은 비트를 할당하고, 그렇지 않은 신택스에는 긴 비트를 할당하여 신택스 엘리먼트들을 간결한 데이터로 표현한다.
고화질, 고프레임율, 고해상도의 영상을 코딩하는 경우 산술 코딩 알고리즘(arithmetic coding algorithm) 등에 내재된 데이터 의존성으로 인해 엔트로피 코딩 부분이 전체 성능의 병목이 될 가능성이 크다. 또한, 많은 비트량이 발생하는 프레임들이 연속되는 경우 실시간 처리를 위해 수개의 프레임을 버퍼링해야 하므로 시스템 구현상 상당한 크기의 버퍼 메모리가 요구될 수 있다.
따라서, 엔트로피 코딩시 쓰루풋(throughput)을 향상시킬 수 있는 효율적인 방법이 필요하다.
본 발명은, 엔트로피 코딩의 쓰루풋(throughput)을 향상시키기 위한 방법을 제안하고자 한다.
본 발명은, 비디오 코딩을 위한 신택스 요소들(syntax elements)을 멀티 심볼(multi-symbol) (또는 비이진 심볼(non-binary symbol))로 매핑하는 방법을 제안하고자 한다.
본 발명은, 엔트로피 코딩시 전체 코딩 심볼 수를 줄일 수 있는 방법을 제안하고자 한다.
본 발명은, 엔트로피 코딩시 적용될 수 있는 효율적인 심볼 매핑 방법을 제안하고자 한다.
본 발명은, 엔트로피 코딩의 쓰루풋(throughput)을 향상시키기 위한 방법을 제공한다.
본 발명은, 비디오 코딩을 위한 신택스 요소들(syntax elements)을 멀티 심볼(multi-symbol) (또는 비이진 심볼(non-binary symbol))로 매핑하는 방법을 제공한다.
본 발명은, 4개의 영역에 대한 신택스 요소들(syntax elements)을 그룹핑하여 0~15까지의 값을 가질 수 있는 멀티 심볼(multi-symbol)로 매핑하는 방법을 제공한다.
본 발명은, 특정 값의 범위까지는 멀티 심볼(multi-symbol)로 매핑하고 남은 값에 대해서는 이진화(binarization)를 통해 이진 산술 코딩(binary arithmetic coding)을 적용하는 방법을 제공한다.
본 발명은, 엔트로피 코딩시 전체 코딩 심볼 수를 줄일 수 있는 방법을 제공한다.
본 발명은, 엔트로피 코딩시 적용될 수 있는 효율적인 심볼 매핑 방법을 제공한다.
본 발명은 엔트로피 코딩시 적용될 수 있는 효율적인 심볼 매핑 방법을 제공함으로써 엔트로피 코딩의 쓰루풋(throughput)을 향상시킬 수 있다.
또한, 본 발명은 신택스 요소들(syntax elements)을 멀티 심볼(multi-symbol) (또는 비이진 심볼(non-binary symbol))로 매핑함으로써 전체 코딩 심볼 수를 줄일 수 있고, 이를 통해 쓰루풋(throughput)을 향상시킬 수 있다. 즉, 사이클 당 처리하는 심볼 수가 동일하게 유지되는 경우 전체 코딩 심볼 수가 줄어들게 됨으로써 소요되는 사이클 수가 줄게 되어 쓰루풋(throughput)이 향상된다.
또한, 산술 코딩(arithmetic coding)은 엔트로피 코딩(entropy coding)의 한 방식으로 생각할 수 있고, 산술 코딩(arithmetic coding) 이외의 다른 엔트로피 코딩(entropy coding) 방식에 대해서도, 멀티 심볼 엔트로피 코딩(Multi-Symbol Entropy Coding, 이하 ‘MSEC’라 함) 매핑이 이용되는 다양한 실시예들이 적용될 수 있다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호의 인코딩이 수행되는 인코더의 개략적인 블록도를 나타낸다.
도 2는 본 발명이 적용되는 실시예로서, 비디오 신호의 디코딩이 수행되는 디코더의 개략적인 블록도를 나타낸다.
도 3은 본 발명이 적용되는 실시예로서, 엔트로피 인코딩부의 개략적인 블록도를 나타낸다.
도 4는 본 발명이 적용되는 실시예로서, 엔트로피 디코딩부의 개략적인 블록도를 나타낸다.
도 5는 본 발명이 적용되는 실시예로서, 엔트로피 인코딩이 수행되는 흐름도를 나타낸다.
도 6은 본 발명이 적용되는 실시예로서, 엔트로피 디코딩이 수행되는 흐름도를 나타낸다.
도 7은 본 발명이 적용되는 실시예로서, 확률 업데이트를 수행하는 엔트로피 인코딩부의 개략적인 블록도를 나타낸다.
도 8은 본 발명이 적용되는 실시예로서, Coded Block Flag(CBF)의 멀티 심볼 엔트로피 코딩(Multi-Symbol Entropy Coding, 이하 ‘MSEC’라 함) 매핑(mapping)이 적용되는 신택스 구조를 나타낸다.
도 9는 본 발명이 적용되는 실시예로서, 상기 도 8에 대한 디코딩 흐름도를 나타낸다.
도 10은 본 발명이 적용되는 실시예로서, Coded Sub-Block Flag(CSBF)의 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
도 11 은 본 발명이 적용되는 실시예로서, 마지막 계수(last coefficient)가 포함된 CG(Coefficient Group)의 위치에 따라 코딩 방식을 결정하는 방법을 설명하기 위한 도면이다.
도 12는 본 발명이 적용되는 실시예로서, SCG 단위의 CSBF 코딩시 컨텍스트를 결정하는 방법을 설명하기 위한 도면이다.
도 13은 본 발명이 적용되는 실시예로서, CG(Coefficient Group)들을 그룹핑하는 방법을 설명하기 위한 도면이다.
도 14는 본 발명이 적용되는 실시예로서, significant_coeff_flag의 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
도 15내지 도 16은 본 발명이 적용되는 실시예들로서, 컨텍스트 오프셋을 할당하는 방법을 설명하기 위한 도면이다.
도 17내지 도 18은 본 발명이 적용되는 실시예들로서, significant_coeff_flag의 컨텍스트 할당을 설명하기 위한 도면이다.
도 19는 본 발명이 적용되는 실시예로서, TU(Transform Unit)마다 영역 또는 스캔 패턴 중 적어도 하나에 기초하여 CG(Coefficient Group)를 분류하는 방법을 설명하기 위한 도면이다.
도 20 내지 도 22는 본 발명이 적용되는 실시예들로서, MSEC에 대한 컨텍스트 모델링의 다양한 방법을 나타낸다.
도 23은 본 발명이 적용되는 실시예로서, 마지막 계수(last coefficient)의 위치에 대한MSEC 매핑(mapping)을 설명하기 위한 도면이다.
도 24는 본 발명이 적용되는 실시예로서, part_mode에 대해 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
도 25는 본 발명이 적용되는 실시예로서, intra_chroma_pred_mode에 대해 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
도 26은 본 발명이 적용되는 실시예로서, inter_pred_idc에 대해 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
도 27은 본 발명이 적용되는 실시예로서, split_transform_flag에 대해 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
도 28은 본 발명이 적용되는 실시예로서, 상기 도 26에 대한 디코딩 흐름도를 나타낸다.
본 발명은, 비디오 신호에 대해 엔트로피 인코딩을 수행하는 방법에 있어서, 멀티 심볼(multi-symbol)을 입력받는 단계, 여기서 상기 멀티 심볼은 3개 이상의 값을 갖는 심볼을 나타냄; 상기 멀티 심볼의 정보에 대해 확률 업데이트를 수행하는 단계; 상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트를 저장하는 단계; 및 상기 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 코딩(Multi-Symbol Arithmetic Coding, MSEC)을 수행하는 단계를 포함하되, 상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 하는 방법을 제공한다.
본 발명에서, 상기 멀티 심볼은 4개의 영역에 대한 신택스 요소들을 그룹핑함으로서 매핑되고, 여기서 상기 영역은 변환 유닛(transform unit, TU), 계수 그룹(coefficient group, CG), 픽셀, 블록, 또는 코딩 유닛 중 어느 하나에 대응되는 것을 특징으로 한다.
본 발명에서, 상기 그룹된 영역마다 하나의 컨텍스트가 할당되는 것을 특징으로 한다.
본 발명에서, 상기 멀티 심볼의 값들 중 특정 범위의 값들에 대해서는 MSEC를 적용하고, 나머지 값들에 대해서는 이진 산술 코딩을 적용하는 것을 특징으로 한다.
본 발명에서, 상기 멀티 심볼(multi-symbol)의 확률 구간은 상기 멀티 심볼의 개수만큼 분할되는 것을 특징으로 한다.
본 발명에서, 상기 멀티 심볼이 크로마에 대한 CBF(Coded Block Flag)에 대응되는 경우, 상기 MSEC는 16-Ary 산술 코딩에 의해 수행되는 것을 특징으로 한다.
본 발명에서, 상기 크로마에 대한 CBF(Coded Block Flag)의 MSEC는 레지듀얼 쿼드트리 깊이(Residual Quad-Tree depth) 값이 0이 아닐 경우에 수행되는 것을 특징으로 한다.
본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 멀티 심볼 산술 디코딩(Multi-Symbol Arithmetic Decoding, MSED)을 위한 초기화를 수행하는 단계; 현재 확률 상태에 기초하여, 디코딩된 멀티 심볼에 대해 확률 업데이트를 수행하는 단계; 상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트를 저장하는 단계; 및 상기 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 디코딩(Multi-Symbol Arithmetic Decoding, MSED)을 수행하는 단계를 포함하되, 상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 하는 방법을 제공한다.
본 발명에서, 상기 멀티 심볼의 값들 중 특정 범위의 값들에 대해서는 MSED를 적용하고, 나머지 값들에 대해서는 이진 산술 디코딩을 적용하는 것을 특징으로 한다.
본 발명에서, 상기 멀티 심볼이 크로마에 대한 CBF(Coded Block Flag)에 대응되는 경우, 상기 MSED는 16-Ary 산술 디코딩에 의해 수행되는 것을 특징으로 한다.
본 발명은, 비디오 신호에 대해 엔트로피 인코딩을 수행하는 장치에 있어서, 3개 이상의 값을 갖는 심볼을 나타내는 멀티 심볼(multi-symbol)을 입력받고, 상기 멀티 심볼의 정보에 대해 확률 업데이트를 수행하는 확률 업데이트부; 상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 코딩(Multi-Symbol Arithmetic Coding, MSEC)을 수행하는 멀티 심볼 산술 코딩 엔진; 및 상기 컨텍스트를 저장하는 컨텍스트 저장부를 포함하되, 상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 하는 장치를 제공한다.
본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서, 현재 확률 상태에 기초하여, 디코딩된 멀티 심볼에 대해 확률 업데이트를 수행하는 확률 업데이트부; 멀티 심볼 산술 디코딩(Multi-Symbol Arithmetic Decoding, MSED)을 위한 초기화를 수행하고, 상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 디코딩(Multi-Symbol Arithmetic Decoding, MSED)을 수행하는 멀티 심볼 산술 디코딩 엔진; 및 상기 컨텍스트를 저장하는 컨텍스트 저장부를 포함하되, 상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 하는 장치를 제공한다.
이하, 본 발명의 실시예들에 따른 예시적인 엘리먼트들 및 동작들이 첨부된 도면들을 참조하여 기술된다. 그러나 상기 도면들을 참조하여 기술되는 본 발명의 상기 엘리먼트들 및 동작들은 단지 실시예들로서 제공되는 것이고, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다는 것을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어를 사용하여 설명한다. 그러한 경우에는 해당 부분의 상세 설명에서 그 의미가 명확하게 기재된다. 따라서, 본 명세서의 설명에서 사용된 용어의 명칭 만에 기초하여 본 발명이 단순 해석되어서는 안 될 것이며 그 해당 용어의 의미까지 파악하여 해석되어야 함을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어들은 발명을 설명하기 위해 선택된 일반적인 용어들이나, 유사한 의미를 갖는 다른 용어가 있는 경우 보다 적절한 해석을 위해 대체 가능할 것이다. 예를 들어, 신호, 데이터, 샘플, 픽쳐, 프레임, 블록은 각 코딩 과정에서 적절하게 대체되어 해석될 수 있을 것이다.
또한, 본 명세서에서 설명되는 실시예들의 개념과 방법들은, 다른 실시예들에도 적용가능하며, 본 명세서에서 모두 명시하여 기재하지 않더라도 본 발명의 기술적 사상 범위 내에서 각 실시예들의 조합도 적용가능할 것이다.
도 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)는 양자화된 신호를 엔트로피 코딩하여 비트스트림으로 출력할 수 있다.
본 발명의 일실시예로, 상기 엔트로피 인코딩부(190)는 신택스 요소들(syntax elements)을 멀티 심볼(multi-symbol)로 매핑할 수 있다. 본 명세서에서, 멀티 심볼(multi-symbol)은 비이진 심볼(non-binary symbol)의 의미를 포함할 수 있다.
일실시예로, 상기 엔트로피 인코딩부(190)는 4개의 영역에 대한 신택스 요소들(syntax elements)을 그룹핑하여 0~15까지의 값을 가질 수 있는 멀티 심볼(multi-symbol)로 매핑할 수 있다.
다른 일실시예로, 상기 엔트로피 인코딩부(190)는 특정 값의 범위까지는 멀티 심볼(multi-symbol)로 매핑하고 남은 값에 대해서는 이진화(binarization)를 통해 이진 산술 코딩(binary arithmetic coding)을 적용할 수 있다.
일실시예로, 상기 엔트로피 인코딩부(190)는 3개 이상의 값을 갖는 심볼을 나타내는 멀티 심볼(multi-symbol)을 입력받고, 상기 멀티 심볼의 정보에 대해 확률 업데이트를 수행하는 확률 업데이트부; 상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 코딩(Multi-Symbol Arithmetic Coding, MSEC)을 수행하는 멀티 심볼 산술 코딩 엔진; 및 상기 컨텍스트를 저장하는 컨텍스트 저장부를 포함하고, 이때 상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 한다.
일실시예로, 상기 멀티 심볼은 4개의 영역에 대한 신택스 요소들을 그룹핑함으로서 매핑되고, 여기서 상기 영역은 변환 유닛(transform unit, TU), 계수 그룹(coefficient group, CG), 픽셀, 블록, 또는 코딩 유닛 중 어느 하나에 대응되는 것을 특징으로 한다.
일실시예로, 상기 그룹된 영역마다 하나의 컨텍스트가 할당되는 것을 특징으로 한다.
일실시예로, 상기 멀티 심볼의 값들 중 특정 범위의 값들에 대해서는 MSEC를 적용하고, 나머지 값들에 대해서는 이진 산술 코딩을 적용하는 것을 특징으로 한다.
일실시예로, 상기 멀티 심볼(multi-symbol)의 확률 구간은 상기 멀티 심볼의 개수만큼 분할되는 것을 특징으로 한다.
일실시예로, 상기 멀티 심볼이 크로마에 대한 CBF(Coded Block Flag)에 대응되는 경우, 상기 MSEC는 16-Ary 산술 코딩에 의해 수행되는 것을 특징으로 한다.
일실시예로, 상기 크로마에 대한 CBF(Coded Block Flag)의 MSEC는 레지듀얼 쿼드트리 깊이(Residual Quad-Tree depth) 값이 0이 아닐 경우에 수행되는 것을 특징으로 한다.
양자화부(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)를 통해 엔트로피 디코딩될 수 있다.
본 발명의 일실시예로, 상기 엔트로피 디코딩부(210)는, 현재 확률 상태에 기초하여 디코딩된 멀티 심볼에 대해 확률 업데이트를 수행하는 확률 업데이트부; 멀티 심볼 산술 디코딩(Multi-Symbol Arithmetic Decoding, MSED)을 위한 초기화를 수행하고, 상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 디코딩(Multi-Symbol Arithmetic Decoding, MSED)을 수행하는 멀티 심볼 산술 디코딩 엔진; 및 상기 컨텍스트를 저장하는 컨텍스트 저장부를 포함하되, 상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 한다.
또한, 앞서 상기 엔트로피 인코딩부(190)에서 적용된 실시예들이 마찬가지로 상기 엔트로피 디코딩부(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을 나타내는 간격들 중 하나를 선택할 수 있는 오프셋으로 사용될 수 있다..
구간 분할 과정에 있어서, 한 이진 심볼을 디코딩할 때 상기 두 개의 분할된 하위 구간들 중 하나가 선택되며, 선택된 하위 구간에 대해 다시 해당 이진 확률을 기반으로 분할되는 과정을 반복하게 된다. 상기 구간 및 오프셋은 제한된 비트 정밀도를 가지며, 따라서 상기 구간이 특정한 값 아래로 떨어질 때마다 구간 길이 값이 0이 되거나 부정확해 지는 것을 방지하기 위해 재정규화(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는 본 발명이 적용되는 실시예로서, 엔트로피 인코딩이 수행되는 흐름도를 나타낸다.
엔트로피 인코딩부는, 입력 심볼들을 코딩하고(S510), 이에 대해 확률 업데이트를 수행할 수 있다(S520).
상기 엔트로피 인코딩부는, 상기 확률 업데이트에 기초하여 최종 확률을 결정할 수 있고, 상기 최종 확률에 대응되는 컨텍스트는 컨텍스트 저장부에 저장될 수 있다(S530). 상기 저장된 컨텍스트는 다시 확률 업데이트를 수행하기 위해 이용될 수 있다.
상기 엔트로피 인코딩부는, 상기 최종 확률에 기초하여 구간 길이를 산출(또는 업데이트)하고(S540), 재정규화를 수행할 수 있다(S550).
도 6은 본 발명이 적용되는 실시예로서, 엔트로피 디코딩이 수행되는 흐름도를 나타낸다.
엔트로피 디코딩부는, 비트스트림을 입력 받아 MSB(Most Significant Bit) 부터 차례로 디코딩을 수행할 수 있다. 상기 엔트로피 디코딩부는 이진 산술 디코딩을 수행하기 전, 엔진 초기화를 하고 입력 비트의 오프셋을 저장할 수 있다.
상기 엔트로피 디코딩부는 신택스 요소에 대해 상기 인코더에서와 동일한 재정규화 과정을 수행하고(S610), 구간 업데이트를 수행할 수 있다(S620). 이후, 산술 코딩 수행시 재정규화가 필요한 경우 왼쪽 쉬프트 연산(left shift operation)을 통해 오프셋의 MSB(Most Significant Bit)를 제거하고 LSB(Least Significant Bit)에 새로운 비트를 추가할 수 있다.
상기 엔트로피 디코딩부는, 현재 확률 상태 및 재정규화된 구간 길이에 기초하여 확률 업데이트를 수행할 수 있다(S630). 여기서, 상기 현재 확률 상태는 확률 상태 천이 테이블에 기초하여 결정될 수 있다.
상기 엔트로피 디코딩부는, 상기 확률 업데이트 방법에 기초하여 최종 확률을 결정할 수 있고, 상기 최종 확률에 대응되는 컨텍스트는 컨텍스트 저장부에 저장될 수 있다(S640). 여기서, 상기 저장된 컨텍스트는 다시 확률 업데이트를 수행하기 위해 이용될 수 있다.
상기 엔트로피 디코딩부는, 모든 가능한 입력 값들에 대한 구간 정보들과 구간 오프셋에 기초하여 빈(bin) 값을 결정할 수 있다(S650).
도 7은 본 발명이 적용되는 실시예로서, 확률 업데이트를 수행하는 엔트로피 인코딩부의 개략적인 블록도를 나타낸다.
최근 비디오 표준에서는 고화질, 고프레임율, 고해상도의 영상을 코딩하는 경우 산술 코딩(arithmetic coding) 알고리즘 등에 내재된 데이터 의존성으로 인해 엔트로피 코딩(entropy coding) 부분이 전체 성능의 병목이 될 가능성이 크다. 또한, 많은 비트량이 발생되는 프레임들이 연속되는 경우 실시간 처리를 위해 복수개의 프레임을 버퍼링해야 하므로 시스템 구현 상 상당한 크기의 버퍼 메모리가 요구될 수 있다.
따라서, 엔트로피 코딩(entropy coding) 부분의 쓰루풋(throughput) 향상이 필요하며, 이를 위해 본 발명은 신택스 요소(syntax element)들을 멀티 심볼(multi-symbol)로 매핑하는 방법을 제공한다. 이를 이진 심볼(binary symbol)로 코딩할 때와 비교하면, 전체 코딩 심볼 수가 줄어들게 되어 쓰루풋(throughput)을 향상시킬 수 있다. 즉, 사이클 당 처리하는 심볼 수가 동일하게 유지되는 경우 전체 코딩 심볼 수가 줄어들면 소요되는 사이클 수도 줄게 되어 쓰루풋(throughput)이 향상되는 것이다.
상기 도 7을 살펴보면, 본 발명이 적용되는 인코더 또는 엔트로피 인코딩부는 컨텍스트 저장부(710), 산술 코딩 엔진(720), 코딩 데이터 수집부(730) 및 확률 업데이트부(740)를 포함할 수 있다.
먼저, 상기 코딩 데이터 수집부(730)는 상기 산술 코딩 엔진(720)을 통해 심볼 정보를 수집할 수 있다. 그리고, 상기 코딩 데이터 수집부(730)는 상기 확률 업데이트부(740)에 확률 업데이트를 요청할 수 있다.
상기 확률 업데이트부(740)는 확률 업데이트를 수행하고, 상기 컨텍스트 저장부(710)는 상기 확률 업데이트의 결과에 대응되는 컨텍스트의 구조 데이터(structure data)를 갱신할 수 있다.
도 8은 본 발명이 적용되는 실시예로서, Coded Block Flag(CBF)의 멀티 심볼 엔트로피 코딩(Multi-Symbol Entropy Coding, 이하 ‘MSEC’라 함) 매핑(mapping)이 적용되는 신택스 구조를 나타낸다.
현재의 비디오 표준들에서 널리 적용되는 엔트로피 코딩(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) 값이 특정 범위 안에 항상 놓이도록 할 수 있다.
이진 산술 코딩(Binary arithmetic coding)에서는 확률 구간이 2개로 나누어 지고, 멀티 심볼(또는 비이진 심볼) 산술 코딩(multi-symbol (or non-binary symbol) arithmetic coding)에서는 가능한 심볼(예를 들어, alphabet symbol)의 수만큼 확률 구간이 나누어진다.
본 발명은 비디오 코딩을 위한 신택스 요소(syntax element)들을 비이진 심볼(non-binary symbol)로 멀티 심볼 매핑(multi-symbol mapping)을 수행하는 방법을 제공한다.
본 명세서에서, 상기 멀티 심볼 매핑(multi-symbol mapping)을 멀티 심볼 엔트로피 코딩 매핑(MSEC mapping)이라 부를 수도 있다. 그리고, N개의 심볼이 이용 가능한 MSEC 의 경우 N-ary AC로 표기할 수 있다.
산술 코딩(Arithmetic coding)은 엔트로피 코딩의 한 방식으로 생각할 수 있으며, 상기 산술 코딩(Arithmetic coding) 이외의 다른 엔트로피 코딩 방식에서도 멀티 심볼을 이용한다면, 본 명세서에서 제안하는 MSEC 매핑 방식을 적용할 수 있다.
(실시예1) Coded Block Flag (이하, ‘CBF’라 함)의 MSEC 매핑
본 발명의 일실시예는, 기본적으로 4개의 TU에 대한 CBF를 24개의 심볼을 가진 (0~15) 비이진 심볼(non-binary symbol)에 매핑하여 한번에 코딩하는 방식을 적용할 수 있다.
도 8을 살펴보면, CBF에 대한 코딩은 transform_tree() 함수 내에서 이루어진다. 상기 transform_tree() 함수는 재귀적으로 호출되며 TU가 쿼드트리(quad-tree) 방식으로 코딩되므로 split_transform_flag가 1이면 transform_tree 루틴은 내부적으로 4번 재귀 호출된다. 따라서, 본 발명은 transform_tree() 함수에서의 CBF 코딩을 transform_tree() 함수 호출 전 단계로 이동함으로써 4번의 CBF 코딩을 MSEC 매핑 한 번으로 대체할 수 있다.
일실시예로, 크로마(chroma)에 대한 CBF 코딩은 상술한 바와 같이 수행되고, 루마(luma)에 대한 CBF는 크로마(chroma) 성분(Cb/Cr)의 CBF 값에 따라 결정될 수 있다.
따라서, 루마(luma)의 경우 4개의 블록들로 분할될 때, 분할된 블록들에 대한 CBF를 코딩할지 여부를 알 수 없기 때문에 본 발명의 MSEC 매핑을 적용하지 않고 CABAC을 적용할 수 있다.
크로마(chroma)의 경우 레지듀얼 쿼드트리(Residual Quad-Tree, 이하 ‘RQT’라 함) 깊이(depth)가 0일 때는 CABAC을 이용해서 CBF를 코딩하고, 그렇지 않으면 MSEC을 적용할 수 있다. 현재 RQT 깊이(depth)에 대한 CBF 값이 1이고 split_transform_flag가 1이라면 다음 RQT 깊이(depth)에 대한 크로마(chroma) CBF 코딩을 4번의 transform_tree() 함수를 재귀 호출하기 전에 MSEC 한 번으로 대체할 수 있다.
예를 들어, 상기 도 8을 살펴보면, cbf_cb_4x와 cbf_cr_4x는 16-ary AC로 코딩되는 신택스 요소(syntax element)들이며, mae(v)는 MSEC로 매핑되었다는 것을 나타낸다. cbf_cb_4x와 cbf_cr_4x로부터 cbf_cb와 cbf_cr은 다음 수학식 1과 같이 유도될 수 있다.
Figure PCTKR2017008461-appb-M000001
상기 수학식 1에서 x0, x1, y0, y1은 상기 도 8의 x0, x1, y0, y1과 동일하며, cbf_cb/cr_4x를 구성하는 비트들을 cbf_cb/cr들에 매핑하는 방법에 대해서는 상기 수학식 1 외에도 다양한 방법이 가능할 수 있으나, 본 명세서에서는 중복적인 설명으로 인해 생략하도록 한다.
크로마(chroma) CBF 코딩에 쓰이는 컨텍스트 셋(context set)은 다양하게 설정할 수 있다. 예를 들어, RQT 깊이(depth) 값에 따라 3개의 컨텍스트를 할당할 수 있다. 구체적 예로, RQT 깊이(depth) 값은 trafoDepth라는 변수로 표현될 수 있고, 이는 루마(Luma) 크기를 기초하여 설정될 수 있다. 32x32 크기의 경우 trafoDepth = 0, 16x16 크기의 경우 trafoDepth = 1, 8x8 크기의 경우 trafoDepth = 2 일 수 있다.
도 9는 본 발명이 적용되는 실시예로서, 상기 도 8에 대한 디코딩 흐름도를 나타낸다.
상기 도 9는 본 발명이 적용되는 CBF 파싱 과정을 나타낸다.
먼저, log2TrafoSize 가 2보다 큰지 여부를 확인할 수 있다(S910). 여기서, log2TrafoSize는 변환 유닛의 크기를 나타낸다.
S910 단계의 결과에 따라, log2TrafoSize 가 2보다 크면, trafoDepth 가 0인지 여부를 확인할 수 있다(S911). 여기서, trafoDepth는 변환 코딩을 위한 코딩 블록의 서브 분할 레벨(subdivision level)을 나타낸다.
S911 단계의 결과에 따라, trafoDepth 가 0이면, cbf_cb 및 cbf_cr 을 파싱할 수 있다(S912). 여기서, cbf_cb 는 Cb 변환 블록이 하나 이상의 0이 아닌 변환 계수 레벨(one or more transform coefficient levels not equal to 0)을 포함하고 있는지 여부를 나타내는 정보이고, cbf_cr 은 Cr 변환 블록이 하나 이상의 0이 아닌 변환 계수 레벨을 포함하고 있는지 여부를 나타내는 정보이다.
반면, trafoDepth 가 0이 아니면, split_transform_flag를 파싱한다(S920).
한편, S910 단계의 결과에 따라, log2TrafoSize 가 2보다 크지 않으면, split_transform_flag를 파싱할 수 있다(S920). 여기서, split_transform_flag 는 변환 코딩을 위해 블록이 4개의 정방형 블록들로 스플릿(split)되는지 여부를 나타낸다. 예를 들어, split_transform_flag = 1 이면 블록은 4개의 정방형 블록들로 스플릿되고, split_transform_flag = 0 이면 블록은 서브 블록들로 스플릿되지 않는다.
상기 split_transform_flag가 1이면, cbf_cb [x0][y0][trafoDepth] 가 참인지 여부를 확인할 수 있다(S921).
S921 단계의 결과에 따라, cbf_cb [x0][y0][trafoDepth] 가 참이면, cbf_cb_4x 를 파싱할 수 있다(S922). 여기서, cbf_cb_4x 는 16-ary AC으로 코딩되는 신택스 요소를 나타내며, cbf_cb 는 상기 수학식 1에 의해 유도될 수 있다.
반면, cbf_cb [x0][y0][trafoDepth] 가 거짓이면, cbf_cr [x0][y0][trafoDepth] 가 참인지 여부를 확인할 수 있다(S923).
S923 단계의 결과에 따라, cbf_cr [x0][y0][trafoDepth] 가 참이면, cbf_cr_4x 를 파싱할 수 있다(S924). 여기서, cbf_cr_4x 는 16-ary AC으로 코딩되는 신택스 요소를 나타내며, cbf_cr 은 상기 수학식 1에 의해 유도될 수 있다.
반면, cbf_cr [x0][y0][trafoDepth] 가 거짓이면, 4개의 각 파티션 블록에 대해 CBF 파싱 과정을 호출할 수 있다(S925).
한편, S910 단계의 결과에 따라, 상기 split_transform_flag가 0이면, 아래 수학식 2의 조건이 참인지 여부를 확인할 수 있다(S930).
Figure PCTKR2017008461-appb-M000002
S930 단계의 결과에 따라, 상기 수학식 2의 조건이 참이면, cbf_luma 를 파싱한다(S931). 여기서, cbf_luma 는 루마 변환 블록이 0이 아닌 1이상의 변환 계수 레벨(one or more transform coefficient levels not equal to 0)을 포함하고 있는지 여부를 나타낸다.
반면, 상기 수학식 2의 조건이 거짓이면, CBF 파싱 과정은 종료된다.
도 10은 본 발명이 적용되는 실시예로서, Coded Sub-Block Flag(CSBF)의 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
(실시예2) Coded Sub-Block Flag (CSBF)의 MSEC 매핑
본 발명의 일실시예는, 수퍼 계수 그룹(Super Coefficient Group, 이하 ‘SCG’라 함) 단위로 CSBF를 코딩하는 방법을 제공한다. 여기서, SCG는 도 10(a)에서와 같이, 정방형으로 그룹핑될 수 있는 4개의 계수 그룹(Coefficient Group, 이하 ‘CG’라 함)을 의미한다.
예를 들어, SCG 내부의 CG들에 대한 CSBF 값들을 묶을 때, 총 4개의 빈(bin)이 묶이므로 0~15까지 심볼에 매핑될 수 있다. 이때, HEVC의 스캔 오더 또는 Z 오더(Z-order)를 따라 4 bit 중 최상위비트(Most Significant Bit, 이하 ‘MSB’라 함)부터 각 CG에 대한 CSBF 값을 묶을 수 있다.
한편, 본 발명은 이에 한정되지 않으며, 각 CG에 대한 CSBF를 어떤 비트(bit)에 대응시킬지에 대해서는 “4!” 개 만큼의 실시예가 가능하다.
상기 도 10(a)를 살펴보면, SCG는 4개의 CG를 포함하고 있음을 알 수 있고, A는 마지막 유효 계수(last significant coefficient)의 위치를 나타낸다. 여기서, last_significant_coeff_x 는 상기 마지막 유효 계수의 x 좌표를 나타내고, last_significant_coeff_y 는 상기 마지막 유효 계수의 y 좌표를 나타낸다. 또한, 상기 도 10(a)는 32x32 블록에서의 CSBF의 MSEC 매핑을 나타내고, 도 10(b)는 16x16 블록, 도 10(c)는 8x8 블록의 경우를 나타낸다.
도 11 은 본 발명이 적용되는 실시예로서, 마지막 계수(last coefficient)나 DC 계수가 포함된 CG(Coefficient Group)의 위치에 따라 코딩 방식을 결정하는 방법을 설명하기 위한 도면이다.
(실시예3) 마지막 계수(last coefficient)나 DC 계수가 포함된 SCG의 CSBF 코딩 방법
마지막 계수(last coefficient)나 DC 계수가 포함된 CG에 대해서는 CSBF를 코딩하지 않을 수 있다.
그러나, SCG 단위일 경우, 마지막 계수(last coefficient)나 DC 계수가 포함된 SCG에 대해서는 CSBF를 코딩할 필요가 있다. 여기서, 상기 CSBF는 CSBF 묶음을 의미할 수 있으나, 편의상 CSBF라 표기하도록 한다. 이는, SCG 내에서 마지막 계수(last coefficient)나 DC 계수가 속한 CG를 제외한 나머지 CG들에 대해서는 CSBF 값을 모르기 때문이다.
따라서, 본 발명은 마지막 계수(last coefficient)나 DC 계수가 포함된 SCG에 대해 CSBF를 코딩하는 다양한 실시예들을 다음과 같이 제공한다.
첫째, 마지막 계수(last coefficient)가 포함된 SCG의 경우 마지막 계수(last coefficient)가 포함된 CG의 위치에 따라 N-ary AC(Arithmetic Coding) 를 적용할 수 있다.
예를 들어, 도 11(a), 도 11(b) 및 도 11(c)의 경우, 마지막 계수(last coefficient)가 포함된 CG의 위치에 따라 각각 8-ary AC, 4-ary AC 및 Binary AC가 적용될 수 있다. 그리고, 도 11(d)과 같이, 좌상측(top-left) CG에 마지막 계수(last coefficient)가 포함되는 경우에는 CSBF를 코딩하지 않을 수 있다.
둘째, 마지막 계수(last coefficient)가 포함된 SCG의 경우는 CG 단위로 CABAC을 적용할 수 있다.
셋째, DC 계수가 포함된 SCG의 경우는 좌상측(top-left) CG를 제외하고 8-ary AC를 적용할 수 있다.
넷째, DC 계수가 포함된 SCG의 경우는 CG 단위로 CABAC을 적용할 수 있다.
도 12는 본 발명이 적용되는 실시예로서, SCG 단위의 CSBF 코딩시 컨텍스트를 결정하는 방법을 설명하기 위한 도면이다.
(실시예4) SCG 단위의 CSBF 코딩시 컨텍스트를 결정하는 방법
본 발명은, SCG 단위의 CSBF 코딩에 대한 컨텍스트 모델링(context modeling)을 수행하는 다양한 방법들을 다음과 같이 제공한다.
상기 도 12를 살펴보면, A는 현재 SCG를 나타내고, B는 이웃 CG를 나타낸다.
첫째, 우측SCG와 하측 SCG의 CSBF 값(0~15)에 기초하여, 다음 수학식 3과 같이 루마(Luma)와 크로마(chroma)의 컨텍스트를 결정할 수 있다.
Figure PCTKR2017008461-appb-M000003
여기서, sr 은 우측 SCG에 대한 CSBF 값을 나타내고, sl 은 하측 SCG에 대한 CSBF 값을 나타낸다.
둘째, 현재 SCG에 대해 이미 코딩된 이웃 CG들의 CSBF 값을 합한 후, 합산 값에 기초하여 컨텍스트를 결정할 수 있다. 예를 들어, 상기 도 12와 같이 하나의 SCG (A)는 최대 4개의 이웃 CG들을 가질 수 있으므로, 이웃 CG들의 CSBF 합산 값은 0 ~ 4까지 가능하다. 따라서, 이 합산 값에 따라 다음 수학식 4와 같이 컨텍스트를 구분할 수 있으며, T 값은 1 ~ 4까지 가능하다.
Figure PCTKR2017008461-appb-M000004
여기서, sr1 및 sr2은 각각 상기 도 12의 2개의 우측 CG들에 대한 CSBF 값들을 나타내고, sl1 및 sl2 은 각각 2개의 하측 CG들에 대한 CSBF 값을 나타낸다.
도 13은 본 발명이 적용되는 실시예로서, CG(Coefficient Group)들을 그룹핑하는 방법을 설명하기 위한 도면이다.
(실시예5) CG(Coefficient Group)들을 그룹핑하는 방법
본 발명은, SCG를 정방형 4개의 CG를 그룹핑할 수도 있지만, 다른 형태의 그룹핑을 수행하는 방법을 제공한다.
예를 들어, 가로, 세로 길이가 각기 4개의 CG로 구성되고, 총 16개의 CG들로 구성된 SCG가 있다고 가정할 수 있다. 이 경우, 0 ~ (216-1)의 값을 갖는 심볼로 매핑할 수 있다.
다른 예로, 도 13에서와 같이 MSEC으로 매핑할 CG들의 그룹을 결정할 수 있다. 상기 도 13을 살펴보면, 같은 숫자로 표기된 CG들은 하나의 그룹을 구성한다. 즉, 대각 스캔 오더에 기초하여 대각선 라인마다 역순으로 CG들을 다르게 그룹핑할 수 있다. 이러한 그룹핑 방식 외에 다양한 그룹핑 방식이 적용될 수 있다. 예를 들어, TU의 크기에 기초하여 서로 다른 그룹핑 방식을 적용할 수 있다.
도 14는 본 발명이 적용되는 실시예로서, significant_coeff_flag의 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
(실시예6) significant_coeff_flag의 MSEC 매핑
본 발명의 일실시예로, CSBF와 유사한 방식을 적용하여 정방형의 4개의 픽셀을 묶어서 16-ary AC로 코딩할 수 있다.
예를 들어, 도 14(a)에서, 같은 숫자로 표기된 픽셀들은 16-ary AC로 코딩되는 동일한 그룹을 구성한다. 16-ary AC에서는 0~15의 심볼 값을 가지므로 4 bit 의 각 비트에 대해 어떤 위치에 있는 픽셀의 significant_coeff_flag를 매핑할지에 대해 다양한 방법이 적용될 수 있다. 예를 들어, 역스캔(inverse scan) 순서를 따라 4 bit 중 MSB부터 채워나갈 수 있다.
또한, 4개의 픽셀을 그룹핑하는 다른 방법도 적용될 수 있다. 예를 들어, 도 14(b)에서와 같이, DC 계수로부터의 거리를 고려하여 동일한 거리 또는 비슷한 거리에 있는 픽셀 4개를 묶어 16-ary AC로 코딩할 수 있다. 또는, DC 계수로부터 멀리 위치한 심볼에서부터 가까운 심볼 순으로 코딩할 수도 있다.
도 15내지 도 16은 본 발명이 적용되는 실시예들로서, 컨텍스트 오프셋을 할당하는 방법을 설명하기 위한 도면이다.
(실시예7) 컨텍스트 오프셋을 할당하는 방법
컨텍스트 모델링(Context modeling)의 경우 HEVC에서와 유사한 방식으로 구성할 수 있으나 4개의 픽셀에 대해 하나의 context가 할당되는 것이 다르다.
도 15를 살펴보면, 컨텍스트 모델링(Context modeling)의 경우 픽셀 단위로 컨텍스트가 지정되는 것을 확인할 수 있다. 여기서, 상기 도 15의 숫자들은 컨텍스트를 지정하기 위한 오프셋(offset)을 의미한다.
도 15(a)는 4x4 크기의 TU에 대한 픽셀 위치마다 컨텍스트 오프셋을 할당하는 패턴 예를 나타내고, 도 15(b)는 4x4 이외 크기의 TU에 대한 CG 내 픽셀 위치마다 컨텍스트 오프셋을 할당하는 패턴 예를 나타낸다. 여기서, Sr은 우측 CG에 대한 CSBF를 나타내고, Sl은 하측 CG에 대한 CSBF를 나타낸다.
한편, 도 16은 4개의 픽셀로 구성된 그룹마다 컨텍스트 오프셋을 할당하는 경우를 나타낸다. 예를 들어, 4개의 픽셀을 그룹핑하면 상기 도 16과 같이 컨텍스트들을 구분할 수 있다.
도 16(a)는 4x4 크기의 TU에 대한 4개의 픽셀들로 이루어진 그룹마다 컨텍스트 오프셋을 할당하는 패턴 예를 나타내고, 도 16(b)는 4x4 이외 크기의 TU에 대한 CG 내 4개의 픽셀들로 이루어진 그룹마다 컨텍스트 오프셋을 할당하는 패턴 예를 나타낸다. 여기서, Sr은 우측 CG에 대한 CSBF를 나타내고, Sl은 하측 CG에 대한 CSBF를 나타낸다.
도 17내지 도 18은 본 발명이 적용되는 실시예들로서, significant_coeff_flag의 컨텍스트 할당을 설명하기 위한 도면이다.
(실시예8) significant_coeff_flag의 컨텍스트 할당 방법
도 17은 significant_coeff_flag에 대한 컨텍스트 할당을 나타내며, 도 17(a)는 루마 성분에 대한 표이고 도 17(b)는 크로마 성분에 대한 표이다.
상기 도 17(a)를 살펴보면, (i) 좌상측(Top-left) CG의 루마(luma) DC 계수에는 TU 크기에 상관없이 0번 컨텍스트를 할당하고, (ii) 8 x 8 루마(luma) TU에 대해서는 스캔 패턴(예를 들어, 대각(Diagonal), 수직/수평(Vertical/Horizontal))에 따라 다른 컨텍스트를 할당하고, (iii) DC를 포함한 서브 블록(sub-block)(i.e. CG)과 그렇지 않은 서브 블록(sub-block)에 대해 다른 컨텍스트를 할당하며, (iv) 16 x 16 TU와 32 x 32 TU는 동일한 컨텍스트가 할당된다. 상기 도 17에서, 서브 인덱스(SubIdx)는 각 경우에서의 컨텍스트 오프셋(context offset)을 의미한다.
상기 도 17(b)를 살펴보면, 좌상측(Top-left)의 크로마(Chroma) DC 계수에는 TU 크기에 상관없이 27번 컨텍스트를 할당하며, 위 루마(luma)의 특징들 (ii), (iii), (iv)는 크로마(Chroma)의 경우에는 적용되지 않는다.
한편, 도 18은 4개의 픽셀들로 구성된 그룹마다 컨텍스트를 할당하는 방법을 나타내며, 도 18(a)는 루마 성분에 대한 표이고 도 18(b)는 크로마 성분에 대한 표이다.
본 발명이 적용되는 MSEC 매핑 방식에 대해 상기 도 17과 유사하게 도 16에 표시된 컨텍스트 오프셋을 적용할 수 있으며, 이는 상기 도 18에서와 같다.
도 19는 본 발명이 적용되는 실시예로서, TU(Transform Unit)마다 영역 또는 스캔 패턴 중 적어도 하나에 기초하여 CG(Coefficient Group)를 분류하는 방법을 설명하기 위한 도면이다.
(실시예9) CG(Coefficient Group)를 분류하는 방법
상기 도 18의 실시예는 다음과 같은 방법에 의해 수정될 수 있다.
첫째, 4 x 4 TU에 대해서도 8 x 8 TU에서와 마찬가지로 스캔 패턴(scan pattern) 별로 다른 컨텍스트 셋(context set)을 할당할 수 있다.
둘째, 수직 스캔(Vertical scan)과 수평 스캔(horizontal scan)에 대해 상기 도 18과 같이 컨텍스트를 공유하지 않고 분리하도록 구성할 수 있다.
셋째, 루마(Luma)에서 16 x 16 TU와 32 x 32 TU에 대한 컨텍스트를 공유하지 않도록 구성할 수 있다.
넷째, 상기 도 18의 실시예에서는 영역(region) 타입을 단순히 DC가 포함된 서브 블록(CG)과 그렇지 않은 서브 블록(CG)으로 나누고 있는데, 도 19에서와 같이 보다 다양하게 분류할 수 있다.
예를 들어, 도 19(a)는 8 x 8 TU에서 서브 블록을 3가지 타입, 즉 대각 스캔(a1), 수평 스캔(a2), 수직 스캔(a3)으로 분류하는 것을 나타낸다. 여기서, 좌상측 블록(0)은 DC 서브 블록을 나타낸다.
그리고, 도 19(b)는 16x16 TU에서 영역에 따라 분류한 CG 타입을 나타낸다. 물론, 위 첫째 내지 넷째의 실시예들은 모든 TU 크기와 루마/크로마(Luma/Chroma)에 대해 적용가능하다.
도 20 내지 도 22는 본 발명이 적용되는 실시예들로서, MSEC에 대한 컨텍스트 모델링의 다양한 방법을 나타낸다.
(실시예10)coeff_abs_level_greater1_flag, coeff_abs_level_greater2_flag, coeff_abs_level_remaining에 대한 MSEC 매핑
coeff_abs_level_minus1이라는 새로운 변수를 다음 수학식 5와 같이 정의할 수 있다.
Figure PCTKR2017008461-appb-M000005
여기서, coeff_abs_level_minus1은 실제 계수의 절대값에서 1을 뺀 값이 되며, 이는 significant_coeff_flag에 의해 넌제로 계수(non-zero coefficient)인지 여부가 이미 알려졌기 때문이다.
먼저, 3가지 신택스 요소(syntax element)들, coeff_abs_level_greater1_flag, coeff_abs_level_greater2_flag, coeff_abs_level_remaining, 에 대해, MSEC 가 적용되는 범위를 다음과 같이 구분할 수 있다.
첫째, coeff_abs_level_greater1_flag과 coeff_abs_level_greater2_flag를 HEVC와 동일한 방식으로 코딩하고, coeff_abs_level_remaining에 대해서만 MSEC을 적용할 수 있다.
둘째, coeff_abs_level_greater1_flag과 coeff_abs_level_greater2_flag를 코딩하지 않고 coeff_abs_level_minus1에 대해 직접 MSEC을 적용한다.
상기 2가지 방식에서, 첫번째 방식은 coeff_abs_level_greater1_flag와 coeff_abs_level_greater2_flag 값에 따라 (coeff_abs_level_minus1 - 1) 또는 (coeff_abs_level_minus1 - 2) 값에 대해 MSEC 매핑을 적용하게 되고, 두번째 방식은 coeff_abs_level_minus1 값에 대해 MSEC 매핑을 적용하게 되므로, MSEC 매핑의 대상이 되는 새로운 변수 coeff_abs_level_MSEC를 상기 2가지 방식에 대해 각각 다음 수학식 6 내지 7과 같이 정의할 수 있다.
Figure PCTKR2017008461-appb-M000006
Figure PCTKR2017008461-appb-M000007
(실시예11) coeff_abs_level_MSEC에 대한 MSEC 매핑
본 발명은, coeff_abs_level_MSEC에 MSEC 매핑을 적용하는 방법을 제공한다. MSEC 매핑으로 N-ary AC를 적용한다고 했을 때 허용되는 심볼 값의 범위는 0 ~ (N-1)이다. 여기서, N은 22, 23, 24 등이 가능하다. 이 경우, (N-1)보다 큰 값은 N-ary AC 한 번으로 코딩할 수 없게 된다.
따라서, coeff_abs_level_MSEC = 0 ~ (N-2)에 대해서는 N-ary AC 한 번에 코딩이 끝나게 되고, N-1 이상의 값에 대해서는 일단 N-1 값을 N-ary AC로 코딩하고 coeff_abs_level_MSEC - (N-1) 값에 대해서는 다양한 방법들로 코딩할 수 있다. 이하, 다양한 방법들을 설명하도록 한다.
(실시예11-1) 다시 n 번의 (n ≥ 0) MSEC을 적용하는 방법
(1) MSEC을 적용할 때마다 심볼 개수가 각기 다른 MSEC를 적용할 수 있다. 예를 들어, 맨 처음에 적용한 MSEC가 16-ary AC라면 다음에 적용하는 MSEC은 8-ary AC일 수 있다.
(2) 첫 번째 적용한 MSEC는 0 ~ (N-2) 값을 커버하도록 하고, 두 번째 MSEC은 [coeff_abs_level_MSEC - (N-1)] ~ [coeff_abs_level_MSEC - (N-1) + (N’-2)] 값을 커버하도록 하며 (여기서, 두 번째 MSEC은 N’-ary AC 적용), 남은 값인 [coeff_abs_level_MSEC - (N-1) - (N’-1)]에 대해서는 세 번째 MSEC를 적용할 수 있다. 즉, 각 MSEC가 커버할 수 있는 범위들로 나누어서 MSEC들을 연이어 적용할 수 있다.
(3) [coeff_abs_level_MSEC - (N-1)] 값의 MSB 부분에 대해 MSEC를 적용하고 LSB에 대해서는 MSEC를 적용하거나 다른 방식으로 코딩할 수 있다. 예를 들어, 다른 방식으로 HEVC에서 coeff_abs_level_remaining을 코딩하는 방식을 적용할 수 있다. 8-ary MSEC을 적용한다면 [coeff_abs_level_MSEC - (N-1)] 값의 상위 3 bit 부분을 추출하여 MSEC로 매핑할 수 있다.
MSB 부분을 별도로 코딩하는 방식은, 첫번째 MSEC부터 적용할 수 있다. MSB 부분을 선택할 때 값의 범위가 M bit로 표현될 수 있는 범위로 들어왔을 때만 [0 ~ (2M-2)] 상위 L bit를 추출하여 MSEC를 적용하도록 구성할 수 있다. M bit로 표현될 수 있는 범위가 아닐 때는 (2M-1)을 코딩한 후 나머지 (2M-1) 값을 뺀 나머지 값에 대해 연속된 다른 코딩 방식을 적용할 수 있다. 예를 들어, MSB 부분에 대해서만 MSEC을 적용한 후 나머지 코딩에서는 HEVC의 coeff_abs_level_remaining을 코딩하는 방식을 적용할 수 있다. 여기서, 상기 M, L 값은 적용되는 단계마다 달라질 수 있다.
(실시예11-2) n 번의 (n ≥ 0) MSEC 적용 후 HEVC의 coeff_abs_level_remaining을 코딩하는 방식을 그대로 적용하거나 또는 변형하여 적용하는 방법
본 발명은, 이진화 테이블(binarization table) 수를 제한하거나 테이블을 전환하는 임계값을 바꾸는 방법을 제공한다.
HEVC에서는 라이스 파라미터(Rice parameter)에 따라 5개(m= 0~4)의 이진화 테이블(binarization table)이 이용되고, 한 CG에 대한 코딩이 시작될 때마다 m = 0으로 설정된다. 또한 (coeff_abs_level_minus1 + 1) 값이 일정 임계값을 초과하면 m 값을 업데이트하여 이진화 테이블(binarization table)을 전환(change)한다. HEVC에서는 해당 임계값을 (3 x 2m)으로 두고 있으며, (coeff_abs_level_minus1 + 1) > (3 x 2m)을 만족하면 m = min(4, m+1)로 업데이트한다. 따라서, 연속된 MSEC 적용 후 남은 값에 대해서는 HEVC의 coeff_abs_level_remaining 값과 통계적으로 다를 수 있으므로, m 값의 범위를 변경하거나 임계값을 조절할 수 있다.
(실시예11-3) MSEC에 대해 컨텍스트 모델링을 수행하는 방법
(1) MSEC에 대해 컨텍스트 모델링을 수행하기 위해 coeff_abs_level_greater1_flag에 대한 컨텍스트 할당 방식과 유사한 방식을 이용할 수 있다.
예를 들어, 이전 CG에서 절대값이 1보다 큰 계수의 개수가 0보다 큰지 여부에 따라 적용하는 컨텍스트 셋(context set)을 구분할 수 있다.
도 20을 살펴보면, MSEC 코딩에서, 이전 CG에서 절대값이 1보다 큰 계수의 개수가 1이상인 경우 컨텍스트 모델 0으로 할당할 수 있다. 그리고, 초기에 “no trailing ones” 인 경우 컨텍스트 모델 1로 할당하고, “1 trailing one”인 경우 컨텍스트 모델 2로 할당하고, “2 or more trailing ones”인 경우 컨텍스트 모델 3으로 할당하고, 8개 넌제로 계수(8 non-zero coefficients) 이후의 계수에 대해서는 컨텍스트 모델 4로 할당할 수 있다.
(2) 도 21과 같이, significant_coeff_flag에 대한 컨텍스트 할당과 유사하게 컨텍스트를 구성할 수 있다.
예를 들어, 루마/크로마(Luma/Chroma), TU 크기, 스캔 패턴, CG 위치 등에 기초하여 다른 컨텍스트를 할당할 수 있다. 8x8 크기 이상의 TU에 대해서는 같은 대각선에 위치한 CG들은 유사한 통계적 특성을 가질 수 있으므로, 영역 별로 다른 컨텍스트를 할당하였다. 즉, 상기 도 21의 서브 블록 위치(Subblock position)에 대한 인덱스(index)들은 도 22의 영역 구분을 위한 인덱스(index)와 같다.
상기 도 22를 살펴보면, 도 22(a)는 8x8 TU에서의 CG 단위 영역 구분을 나타내고, 도 22(b)는 16x16 TU에서의 CG 단위 영역 구분을 나타내며, 도 22(c)는 32x32 TU에서의 CG 단위 영역 구분을 나타낸다.
도 23은 본 발명이 적용되는 실시예로서, 마지막 계수(last coefficient)의 위치에 대한MSEC 매핑(mapping)을 설명하기 위한 도면이다.
(실시예 12) 마지막 계수(Last coefficient) 위치에 대한 MSEC 매핑
TU의 최대 크기가 32 x 32인 경우, X 방향과 Y 방향에 대해 각기 32-ary AC을 적용하는 방식이 가능하다. 적용되는 컨텍스트 모델(context model)은 루마/크로마(Luma/Chroma), TU 크기 중 적어도 하나에 기초하여 각기 다른 컨텍스트가 할당되도록 구성할 수 있다. 예를 들어, 루마에 대해서는 4 x 4 / 8 x 8 / 16 x 16 / 32 x 32 크기의 TU가 가능하므로 4개의 컨텍스트를 할당하고, 크로마에 대해서는 4 x 4 / 8 x 8 / 16 x 16 크기의 TU가 가능하므로 3개의 컨텍스트를 할당할 수 있다.
이 외에, 본 발명은 다양한 MSEC 매핑 방법들을 제공한다.
(1) last_sig_coeff_x_prefix와 last_sig_coeff_y_prefix에 대해서만 MSEC을 적용하고 last_sig_coeff_x_suffix와 last_sig_coeff_y_suffix에 대해서는 HEVC와 동일한 방법을 적용하여 코딩할 수 있다.
HEVC에서 정해진 last_sig_coeff_x/y_prefix의 범위는 루마/크로마(Luma/Chroma)와 TU 크기에 따라 다르며, Luma 4x4, Luma 8x8, Luma 16x16, Luma 32x32, Chroma 4x4, Chroma 8x8, Chroma 16x16에 대해 각기, [0, 3], [0, 5], [0, 7], [0, 9], [0, 3], [0, 5], [0, 7]의 범위를 갖는다. 따라서, 컨텍스트마다 다른 N-ary AC를 적용할 수 있다.
(2) 도 23과 같이, 2N개의 영역으로 바꾸고 2N-ary AC를 적용하여 마지막 계수(last coefficient)가 어떤 영역에 속하는지를 구분한다. N = 4라면 8 x 8 TU부터는 영역 안에서 어디에 위치하는지를 추가적으로 코딩해 주어야 한다. 8 x 8 TU의 경우는 한 개의 영역이 4개의 픽셀로 구분되므로 X 방향과 Y 방향으로 각기 1 bit씩 두어 CABAC 코딩을 적용할 수 있다. 16 x 16 TU와 32 x 32 TU인 경우는 영역의 크기가 각기 4 x 4, 8 x 8이 되므로, HEVC에서 4 x 4 TU와 8 x 8 TU의 마지막 계수(last coefficient)를 코딩하는 방식을 그대로 적용할 수 있다.
(실시예 12) 기타 syntax element들에 대한 MSEC 매핑 방법들
이하에서는, 기타 syntax element들에 대한 MSEC 매핑 방법들을 설명하도록 한다.
(실시예 12-1) sao_type_idx_luma, sao_type_idx_chroma 의 MSEC 매핑
이진 코드(Binary code)로 0, 10, 11이 가능하므로 3-ary AC에 매핑 가능하다.
도 24는 본 발명이 적용되는 실시예로서, part_mode에 대해 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
(실시예 12-2) part_mode 의 MSEC 매핑
도 24를 살펴보면, 인트라/인터(intra/inter), CU 크기, AMP(asymmetric motion partitions) 적용 여부 중 적어도 하나에 기초하여 코딩되는 part_mode의 수와 해당 이진 코드(binary code)가 다르다는 것을 확인할 수 있다.
따라서, 각 경우마다 심볼 개수가 다른 MSEC을 적용할 필요가 있고 각기 다른 컨텍스트를 할당할 수 있다. 상기 도 24에서, (1), (2), (3), (4), (5)의 경우 각각 2-ary AC (또는 CABAC), 3-ary AC, 7-ary AC, 3-ary AC, 4-ary AC를 적용할 수 있으며, 각각 별도의 컨텍스트를 할당할 수 있다.
(실시예 12-3) prev_intra_luma_pred_flag 의 MSEC 매핑
본 발명은, Intra CU에서 N x N PU 4개로 분할되는 경우에 한하여 MSEC 매핑을 적용할 수 있다. 즉, 16-ary AC를 적용할 수 있다. 또한, I/P/B 슬라이스마다 별도로 16-ary AC에 대한 컨텍스트를 할당할 수 있다.
도 25는 본 발명이 적용되는 실시예로서, intra_chroma_pred_mode에 대해 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
(실시예 12-4) intra_chroma_pred_mode 의 MSEC 매핑
도 25에서와 같이 intra_chroma_pred_mode 값에 5-ary AC에 대한 심볼 값을 할당하여 MSEC을 적용할 수 있다. 또한, I/P/B 슬라이스 별로 다른 컨텍스트를 할당할 수 있다.
(실시예 12-5) merge_flag 의 MSEC 매핑
merge_flag에 대한 코딩을 prediction_unit 외부로 이동하여 여러 개의 PU에 대한 merge_flag를 한번에 MSEC로 매핑할 수 있으나, 한 CU 내의 PU 개수에 따라 MSEC 심볼 수는 달라질 수 있다. 따라서, 각 PU 분할의 경우마다 다른 종류의 MSEC과 다른 컨텍스트를 할당할 필요가 있다.
(실시예 12-6) merge_idx 의 MSEC 매핑
머지 후보(Merge candidate)의 수만큼의 심볼을 가진 MSEC를 적용할 수 있다. 최대 머지 후보(merge candidate) 수(MaxNumMergeCand)는 슬라이스 세그먼트 헤더(slice segment header)에 정의된 five_minus_max_num_merge_cand에 의해 다음 수학식 8과 같이 계산되며, 이 경우 MaxNumMergeCand-ary AC로 코딩될 수 있다. 예를 들어, 가능한 MaxNumMergeCand 값이 5이므로 5-ary AC로 코딩될 수 있다.
Figure PCTKR2017008461-appb-M000008
도 26은 본 발명이 적용되는 실시예로서, inter_pred_idc에 대해 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
(실시예 12-7) inter_pred_idc 의 MSEC 매핑
도 26에서와 같이, (nPbW + nPbH) != 12인 경우는 3-ary AC를 적용하고 (nPbW + nPbH) == 12인 경우는 CABAC을 적용할 수 있다. 여기서, nPbW는 PU의 너비(width)를 나타내고, nPbH는 PU의 높이(height)를 나타낸다.
또한, (nPbW + nPbH) != 12인 경우는 해당 CU의 깊이(depth) 값에 따라 다른 컨텍스트를 할당하고, (nPbW + nPbH) == 12인 경우는 별도의 컨텍스트를 할당할 수도 있다.
(실시예 12-8) ref_idx_l0, ref_idx_l1 의 MSEC 매핑
ref_idx_l0과 ref_idx_l1은 각기 0 ~ num_ref_idx_l0_active_minus1, 0 ~ num_ref_idx_l1_active_minus1의 값을 가질 수 있다. num_ref_idx_l0/1_active_minus1은 0 ~ 14까지의 값을 가질 수 있으므로 최대 15-ary AC 매핑이 가능하다.
따라서, num_ref_idx_l0/1_active_minus1 값에 따라 선별적으로 (num_ref_idx_l0/1_active_minus1 + 1)-ary AC를 적용하거나 15-ary AC를 적용할 수 있다. 단, num_ref_idx_l0/1_active_minus1에 따라 심볼 별 초기화 확률을 다르게 설정할 수 있다.
도 27은 본 발명이 적용되는 실시예로서, split_transform_flag에 대해 MSEC 매핑(mapping)을 설명하기 위한 도면이다.
(실시예 12-9) split_transform_flag 의 MSEC 매핑
도 27을 살펴보면, 본 발명은 CBF에 대한 MSEC 매핑과 마찬가지로 transform_tree 함수에 대한 4번의 재귀 호출 전에 적절히 조건을 체크하여 4개의 플래그(flag)에 대한 코딩을 한 번에 수행할 수 있다. 즉, 4개의 플래그 를 4 bit로 연결하여 16-ary AC를 적용할 수 있다.
HEVC에서는 (5 - log2TrafoSize) 값으로 컨텍스트를 결정하므로 MSEC에서도 유사한 방식으로 컨텍스트를 할당할 수 있다. 예를 들어, log2TrafoSize = 5, 4, 3일 때(즉, Split을 적용하는 블록의 크기가 32 x 32, 16 x 16, 8 x 8일 때) split이 발생할 수 있으므로, I/P/B 슬라이스 타입(slice type)마다 3개의 컨텍스트를 할당할 수 있다. 상기 도 27의 split_transform_flag_4x (S2730)는 다음 수학식 9와 같이 하위 블록들에 대한 split_transform_flag로 매핑될 수 있다.
Figure PCTKR2017008461-appb-M000009
split_transform_flag_4x를 구성하는 4개의 비트들을 split_transform_flag에 어떻게 매핑할지에 대해서는 상기 예 이외에도 다양한 방법들이 가능하다. 예를 들어, 상기 예와 반대의 순서로 비트들을 매핑할 수도 있다.
(실시예 12-10) abs_mvd_greater0_flag, abs_mvd_greater1_flag, abs_mvd_ minus2 의 MSEC 매핑
abs_mvd라는 변수는 다음 수학식 10과 같이 정의할 수 있다.
Figure PCTKR2017008461-appb-M000010
여기서, abs_mvd_greater0_flag = 0일 때는 abs_mvd_greater1_flag와 abs_mvd_minus2도 모두 0이며, abs_mvd_greater1_flag = 0일 때는 abs_mvd_minus2도 0이다.
변환 계수(Transform coefficient)의 절대값을 코딩할 때와 마찬가지로, abs_mvd_greater0_flag와 abs_mvd_greater1_flag는 HEVC에서와 동일하게 코딩하고 abs_mvd_minus2를 코딩할 때 MSEC를 적용할 수 있다. 또는 abs_mvd에 MSEC를 적용할 수 있다.
따라서, MSEC를 적용하는 값을 abs_mvd_MSEC이라고 하면 abs_mvd_MSEC는 MSEC를 적용하는 범위에 따라 abs_mvd_minus2 또는 abs_mvd가 될 수도 있다.
abs_mvd_MSEC에 대해서는 coeff_abs_level_MSEC에 여러 번 MSEC를 적용할 때와 동일한 방식들을 적용할 수 있다. 예를 들어, 여러 번 MSEC를 적용하거나 또는 MSB에 대해 MSEC을 적용할 수 있다. MSEC를 적용하고 남은 빈(bin)들에 대해서는, HEVC에서 abs_mvd_minus3을 코딩하는 것과 동일한 방식으로 코딩할 수 있다. 예를 들어, 이진화(binarization)는 1-th order Exp-Golomb을 수행하고, 바이패스 코딩(bypass coding)을 적용할 수 있다.
도 28은 본 발명이 적용되는 실시예로서, 상기 도 26에 대한 디코딩 흐름도를 나타낸다.
상기 도 28은 본 발명이 적용되는 split_transform_flag 파싱 과정을 나타낸다.
먼저, 아래 수학식 11의 조건이 참인지 여부를 확인할 수 있다(S2810).
Figure PCTKR2017008461-appb-M000011
S2810 단계의 결과에 따라, 상기 수학식 11의 조건이 참이면, split_transform_flag 를 파싱한다(S2820). 반면, 상기 수학식 11의 조건이 거짓이면, split_transform_flag 는 파싱되지 않는다.
그리고, split_transform_flag 값이 1인지 여부를 확인할 수 있다(S2830).
split_transform_flag 가 1이면, 아래 수학식 12의 조건이 참인지 여부를 확인할 수 있다(S2840).
Figure PCTKR2017008461-appb-M000012
반면, split_transform_flag 가 0이면, split_transform_flag 파싱 과정은 종료된다.
S2830 단계의 결과에 따라, 상기 수학식 12의 조건이 참이면, split_transform_flag_4x 를 파싱한다(S2850).
반면, 상기 수학식 12의 조건이 거짓이면, 4개의 각 파티션 블록에 대해 split_transform_flag 파싱 과정을 호출한다(S2860).
상기 기술된 것과 같이, 본 발명에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 상기 도 1 내지 4 및 도 7에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다.
또한, 본 발명이 적용되는 디코더 및 인코더는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 및 데이터 신호를 처리하기 위해 사용될 수 있다.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트 스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.

Claims (15)

  1. 비디오 신호에 대해 엔트로피 인코딩을 수행하는 방법에 있어서,
    멀티 심볼(multi-symbol)을 입력받는 단계, 여기서 상기 멀티 심볼은 3개 이상의 값을 갖는 심볼을 나타냄;
    상기 멀티 심볼의 정보에 대해 확률 업데이트를 수행하는 단계;
    상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트를 저장하는 단계; 및
    상기 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 코딩(Multi-Symbol Arithmetic Coding, MSEC)을 수행하는 단계
    를 포함하되,
    상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 멀티 심볼은 4개의 영역에 대한 신택스 요소들을 그룹핑함으로서 매핑되고, 여기서 상기 영역은 변환 유닛(transform unit, TU), 계수 그룹(coefficient group, CG), 픽셀, 블록, 또는 코딩 유닛 중 어느 하나에 대응되는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 그룹된 영역마다 하나의 컨텍스트가 할당되는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 멀티 심볼의 값들 중 특정 범위의 값들에 대해서는 MSEC를 적용하고, 나머지 값들에 대해서는 이진 산술 코딩을 적용하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 멀티 심볼(multi-symbol)의 확률 구간은 상기 멀티 심볼의 개수만큼 분할되는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 멀티 심볼이 크로마에 대한 CBF(Coded Block Flag)에 대응되는 경우, 상기 MSEC는 16-Ary 산술 코딩에 의해 수행되는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 크로마에 대한 CBF(Coded Block Flag)의 MSEC는 레지듀얼 쿼드트리 깊이(Residual Quad-Tree depth) 값이 0이 아닐 경우에 수행되는 것을 특징으로 하는 방법.
  8. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서,
    멀티 심볼 산술 디코딩(Multi-Symbol Arithmetic Decoding, MSED)을 위한 초기화를 수행하는 단계;
    현재 확률 상태에 기초하여, 디코딩된 멀티 심볼에 대해 확률 업데이트를 수행하는 단계;
    상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트를 저장하는 단계; 및
    상기 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 디코딩(Multi-Symbol Arithmetic Decoding, MSED)을 수행하는 단계
    를 포함하되,
    상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 멀티 심볼은 4개의 영역에 대한 신택스 요소들을 그룹핑함으로서 매핑되고, 여기서 상기 영역은 변환 유닛(transform unit, TU), 계수 그룹(coefficient group, CG), 픽셀, 블록, 또는 코딩 유닛 중 어느 하나에 대응되는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 그룹된 영역마다 하나의 컨텍스트가 할당되는 것을 특징으로 하는 방법.
  11. 제8항에 있어서,
    상기 멀티 심볼의 값들 중 특정 범위의 값들에 대해서는 MSED를 적용하고, 나머지 값들에 대해서는 이진 산술 디코딩을 적용하는 것을 특징으로 하는 방법.
  12. 제8항에 있어서,
    상기 멀티 심볼이 크로마에 대한 CBF(Coded Block Flag)에 대응되는 경우, 상기 MSED는 16-Ary 산술 디코딩에 의해 수행되는 것을 특징으로 하는 방법.
  13. 제12항에 있어서,
    상기 크로마에 대한 CBF(Coded Block Flag)의 MSED는 레지듀얼 쿼드트리 깊이(Residual Quad-Tree depth) 값이 0이 아닐 경우에 수행되는 것을 특징으로 하는 방법.
  14. 비디오 신호에 대해 엔트로피 인코딩을 수행하는 장치에 있어서,
    3개 이상의 값을 갖는 심볼을 나타내는 멀티 심볼(multi-symbol)을 입력받고, 상기 멀티 심볼의 정보에 대해 확률 업데이트를 수행하는 확률 업데이트부;
    상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 코딩(Multi-Symbol Arithmetic Coding, MSEC)을 수행하는 멀티 심볼 산술 코딩 엔진; 및
    상기 컨텍스트를 저장하는 컨텍스트 저장부
    를 포함하되,
    상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 하는 장치.
  15. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서,
    현재 확률 상태에 기초하여, 디코딩된 멀티 심볼에 대해 확률 업데이트를 수행하는 확률 업데이트부;
    멀티 심볼 산술 디코딩(Multi-Symbol Arithmetic Decoding, MSED)을 위한 초기화를 수행하고, 상기 확률 업데이트에 따라 결정된 최종 확률에 기초하여 구간 길이를 산출하고, 상기 최종 확률에 대응되는 컨텍스트에 기초하여 상기 멀티 심볼에 대해 멀티 심볼 산술 디코딩(Multi-Symbol Arithmetic Decoding, MSED)을 수행하는 멀티 심볼 산술 디코딩 엔진; 및
    상기 컨텍스트를 저장하는 컨텍스트 저장부
    를 포함하되,
    상기 구간 길이는 상기 멀티 심볼의 개수에 기초하여 산출되는 것을 특징으로 하는 장치.
PCT/KR2017/008461 2017-08-04 2017-08-04 멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치 WO2019027074A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2017/008461 WO2019027074A1 (ko) 2017-08-04 2017-08-04 멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2017/008461 WO2019027074A1 (ko) 2017-08-04 2017-08-04 멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2019027074A1 true WO2019027074A1 (ko) 2019-02-07

Family

ID=65233801

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/008461 WO2019027074A1 (ko) 2017-08-04 2017-08-04 멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2019027074A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113508587A (zh) * 2019-02-19 2021-10-15 Lg 电子株式会社 在视频编译系统中使用残差信息的视频解码方法及其设备
CN113615183A (zh) * 2019-03-12 2021-11-05 交互数字Vc控股公司 用于视频编解码的残差编解码中常规二进制位的灵活分配

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120026020A1 (en) * 2010-07-28 2012-02-02 Research In Motion Limited Method and device for compression of binary sequences by grouping multiple symbols
KR20130002298A (ko) * 2011-06-28 2013-01-07 삼성전자주식회사 엔트로피 부호화/복호화 방법 및 장치
US20130287120A1 (en) * 2012-04-30 2013-10-31 Nyeong-kyu Kwon Bitrate estimation devices and bitrate estimation methods thereof
KR20150103044A (ko) * 2010-07-28 2015-09-09 노키아 코포레이션 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치
KR101642629B1 (ko) * 2012-04-11 2016-07-25 퀄컴 인코포레이티드 비디오 코딩에서의 바이패스 코딩된 구문 엘리먼트들의 그룹화

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120026020A1 (en) * 2010-07-28 2012-02-02 Research In Motion Limited Method and device for compression of binary sequences by grouping multiple symbols
KR20150103044A (ko) * 2010-07-28 2015-09-09 노키아 코포레이션 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치
KR20130002298A (ko) * 2011-06-28 2013-01-07 삼성전자주식회사 엔트로피 부호화/복호화 방법 및 장치
KR101642629B1 (ko) * 2012-04-11 2016-07-25 퀄컴 인코포레이티드 비디오 코딩에서의 바이패스 코딩된 구문 엘리먼트들의 그룹화
US20130287120A1 (en) * 2012-04-30 2013-10-31 Nyeong-kyu Kwon Bitrate estimation devices and bitrate estimation methods thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113508587A (zh) * 2019-02-19 2021-10-15 Lg 电子株式会社 在视频编译系统中使用残差信息的视频解码方法及其设备
CN113615183A (zh) * 2019-03-12 2021-11-05 交互数字Vc控股公司 用于视频编解码的残差编解码中常规二进制位的灵活分配

Similar Documents

Publication Publication Date Title
WO2020262995A1 (ko) 2차 변환을 이용하는 비디오 신호 처리 방법 및 장치
WO2017086765A2 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2017086746A1 (ko) 화면내 예측 모드 부호화/복호화 방법 및 장치
WO2020180102A1 (ko) 영상 코딩 시스템에서 컨텍스트 코딩된 사인 플래그를 사용하는 영상 디코딩 방법 및 그 장치
WO2012043989A2 (ko) 블록 분할 방법 및 복호화 장치
WO2018217024A1 (ko) 다양한 블록 크기를 지원하는 영상 부호화 또는 복호화를 위한 장치 및 방법
WO2019050385A2 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2013066051A1 (ko) 변환 계수 레벨의 엔트로피 부호화 및 복호화를 위한 컨텍스트 모델 결정 방법 및 장치
WO2015093890A1 (ko) 인트라 예측을 수반한 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2014010943A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018124333A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2021040492A1 (ko) 비디오/영상 코딩 시스템에서 변환 계수 코딩 방법 및 장치
WO2016190627A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020171681A1 (ko) 인트라 예측 기반 비디오 신호 처리 방법 및 장치
WO2014107069A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2015056941A1 (ko) 다계층 기반의 영상 부호화/복호화 방법 및 장치
WO2021040319A1 (ko) 비디오/영상 코딩 시스템에서 라이스 파라미터 도출 방법 및 장치
WO2013157769A1 (ko) 엔트로피 부복호화 방법 및 이러한 방법을 사용하는 장치
WO2021172912A1 (ko) 사인 데이터 하이딩 관련 영상 디코딩 방법 및 그 장치
WO2021040487A1 (ko) 영상 코딩 시스템에서 레지듀얼 데이터 코딩에 대한 영상 디코딩 방법 및 그 장치
WO2021006700A1 (ko) 영상 코딩 시스템에서 레지듀얼 코딩 방법에 대한 플래그를 사용하는 영상 디코딩 방법 및 그 장치
WO2019027074A1 (ko) 멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치
WO2021201549A1 (ko) 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치
WO2021182816A1 (ko) 직사각형 슬라이스의 크기 정보를 선택적으로 부호화 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020149594A1 (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: 17920573

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

Country of ref document: EP

Kind code of ref document: A1