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

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

Info

Publication number
WO2018186510A1
WO2018186510A1 PCT/KR2017/003773 KR2017003773W WO2018186510A1 WO 2018186510 A1 WO2018186510 A1 WO 2018186510A1 KR 2017003773 W KR2017003773 W KR 2017003773W WO 2018186510 A1 WO2018186510 A1 WO 2018186510A1
Authority
WO
WIPO (PCT)
Prior art keywords
symbol
bit stream
syntax element
symbols
coding
Prior art date
Application number
PCT/KR2017/003773
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/003773 priority Critical patent/WO2018186510A1/ko
Publication of WO2018186510A1 publication Critical patent/WO2018186510A1/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/17Methods 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 an image region, e.g. an object
    • H04N19/172Methods 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 an image region, e.g. an object the region being a picture, frame or field
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/174Methods 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 an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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 specifically, the present invention relates to a method and apparatus for entropy encoding and decoding a video signal in units of symbols or symbol groups using several bit streams.
  • Entropy coding is a process of generating a raw byte sequence payload (RWSP) by losslessly compressing syntax elements determined through an encoding process.
  • Entropy coding uses syntax statistics to assign short bits to frequently occurring syntax and long bits to syntax that is not syntactically to express syntax elements as concise data.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC uses a context model that is adaptively updated based on the context of the syntax and previously generated symbols during binary arithmetic coding.
  • this CABAC also has a high complexity and has a sequential structure, which makes it difficult to perform parallel execution.
  • An aspect of the present invention provides a method of performing entropy decoding on a video signal, comprising: receiving a video signal consisting of a plurality of bit-streams; Decoding a symbol of a syntax element for each bit stream of the video signal based on a context model; And deriving information of the syntax element using the decoded symbol.
  • decoding said symbol further comprises: checking whether there is a data dependency between a current symbol of a current bit stream and a symbol of another bit stream; If present, the current symbol can be decoded using the decoded information of the symbol of the other bit stream.
  • deriving information of the syntax element further comprises generating a symbol string from the decoded symbol based on a bit stream order indicating an order in which symbols are mapped to the plurality of bit streams. And the information on the syntax element may be derived using the symbol string.
  • the bit stream order may be fixed in advance or may be signaled in units of a sequence, a picture, a slice, a tile, or a block from an encoder.
  • bit stream order may be determined in units of symbols, syntax elements, or symbol groups.
  • the symbol group may consist of a certain number of symbols or a certain number of syntax elements.
  • each symbol in the symbol group is decoded by referring to an individual context model, and the individual context models are shared by the plurality of bit streams.
  • the context set may be determined based on the order of symbols in the symbol group.
  • generating the symbol string further comprises reordering decoded symbols within a symbol group when the bit stream order is determined in symbol group units, wherein the bit stream order and the reordered A symbol string may be generated based on the decoded symbols.
  • a predetermined syntax element may be mapped to a specific bit stream of the plurality of bit streams.
  • the symbol may be a binary symbol or a multi symbol.
  • Another aspect of the present invention provides a method of performing entropy decoding on a video signal, the method comprising: receiving a video signal consisting of a plurality of bit-streams; If a bypass mode is applied to a current syntax element, decoding a symbol of the current syntax element for each bit stream of the video signal; And deriving information of the current syntax element by using the decoded symbol.
  • the deriving information of the current syntax element may include generating a symbol string from the decoded symbol based on a bit stream order indicating an order in which symbols are mapped to the plurality of bit streams. Further, the symbol string may be used to derive information of the current syntax element.
  • the bit stream order may be fixed in advance or may be signaled in units of a sequence, a picture, a slice, a tile, or a block from an encoder.
  • bit stream order may be determined in units of symbols, syntax elements, or symbol groups.
  • the symbol group may consist of a certain number of symbols or a certain number of syntax elements.
  • the symbol may be a binary symbol or a multi symbol.
  • the syntax element to which the bypass mode is applied may be fixedly mapped to a specific bit stream of the plurality of bit streams.
  • the video signal receiving unit for receiving a video signal consisting of a plurality of bit-stream (bit-stream);
  • a symbol decoder configured to decode a symbol of a syntax element for each bit stream of the video signal based on a context model;
  • a syntax element deriving unit for deriving information of the syntax element using the decoded symbol.
  • throughput of entropy coding can be improved by coding and parallelizing symbols into multiple bit streams.
  • the symbols with regular coding and the symbols with bypass coding are assigned to multiple bit streams in parallel to improve throughput and complexity. Can be improved.
  • the throughput of entropy coding can be improved by configuring a symbol group so that data dependency is minimized.
  • FIG. 1 is a schematic block diagram of an encoder in which encoding of a video signal is performed as an embodiment to which the present invention is applied.
  • FIG. 2 is a schematic block diagram of a decoder in which decoding of a video signal is performed as an embodiment to which the present invention is applied.
  • FIG. 3 is a schematic block diagram of an entropy encoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • FIG. 4 is a schematic block diagram of an entropy decoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • FIG. 7 is a flowchart illustrating an entropy encoding method using a plurality of bit streams according to an embodiment to which the present invention is applied.
  • FIG. 8 is a flowchart illustrating an entropy decoding method using a plurality of bit streams according to an embodiment to which the present invention is applied.
  • 9 to 11 are diagrams illustrating a method of performing entropy coding by mapping a binary symbol to a plurality of bit streams as an embodiment to which the present invention is applied.
  • 12 to 14 illustrate embodiments to which the present invention is applied and show a method of performing entropy coding by mapping to a plurality of bit streams in a syntax element unit.
  • FIG. 15 illustrates an embodiment to which the present invention is applied and illustrates a method of performing entropy coding by mapping a symbol group to a plurality of bit streams.
  • FIG. 16 illustrates an embodiment to which the present invention is applied and illustrates a method of performing entropy coding using a context model allocated to each symbol in a symbol group.
  • FIG. 17 illustrates an embodiment to which the present invention is applied and shows a method of performing entropy coding by mapping a binary symbol group to several bit streams.
  • FIG. 18 illustrates an embodiment to which the present invention is applied and shows a method of performing entropy coding by mapping a binary symbol group to several bit streams.
  • FIG. 19 is a flowchart to describe a process of performing entropy decoding on a video signal composed of a plurality of bit streams as an embodiment to which the present invention is applied.
  • signals, data, samples, pictures, frames, and blocks may be interpreted as appropriate in each coding process.
  • FIG. 1 is a schematic block diagram of an encoder in which encoding of a video signal is performed as an embodiment to which the present invention is applied.
  • the encoder 100 may include an image splitter 110, a transformer 120, a quantizer 130, an inverse quantizer 140, an inverse transformer 150, a filter 160, and a decoder. It may include a decoded picture buffer (DPB) 170, an inter predictor 180, an intra predictor 185, and an entropy encoder 190.
  • DPB decoded picture buffer
  • the image divider 110 may divide the input image (or a picture or a frame) input to the encoder 100 into one or more processing units.
  • the processing unit may be a Coding Tree Unit (CTU), a Coding Unit (CU), a Prediction Unit (PU), or a Transform Unit (TU).
  • CTU Coding Tree Unit
  • CU Coding Unit
  • PU Prediction Unit
  • TU Transform Unit
  • the encoder 100 may generate a residual signal by subtracting the prediction signal output from the inter prediction unit 180 or the intra prediction unit 185 from the input image signal, and the generated residual signal is converted into a conversion unit ( 120).
  • the transformer 120 may generate a transform coefficient by applying a transform technique to the residual signal.
  • the transformation technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a karhunen-loeve transform (KLT), a graph-based transform (GBT), or a conditionally non-linear transform (CNT).
  • DCT discrete cosine transform
  • DST discrete sine transform
  • KLT karhunen-loeve transform
  • GBT graph-based transform
  • CNT conditionally non-linear transform
  • GBT means a conversion obtained from this graph when the relationship information between pixels is represented by a graph.
  • CNT refers to a transform that is generated based on and generates a prediction signal using all previously reconstructed pixels.
  • the conversion process may be applied to pixel blocks having the same size as the square, or may be applied to blocks of variable size rather than square.
  • the quantization unit 130 may quantize the transform coefficients and transmit them to the entropy encoding unit 190, and the entropy encoding unit 190 may entropy code the quantized signal and output the bitstream.
  • the quantized signal output from the quantization unit 130 may be used to generate a prediction signal.
  • the quantized signal may reconstruct the residual signal by applying inverse quantization and inverse transformation through inverse quantization unit 140 and inverse transformation unit 150 in a loop.
  • the reconstructed signal may be generated by adding the reconstructed residual signal to the prediction signal output from the inter predictor 180 or the intra predictor 185.
  • the filtering unit 160 applies filtering to the reconstruction signal and outputs it to the reproduction apparatus or transmits the decoded picture buffer to the decoding picture buffer 170.
  • the filtered signal transmitted to the decoded picture buffer 170 may be used as the reference picture in the inter predictor 180. As such, by using the filtered picture as a reference picture in the inter prediction mode, not only image quality but also encoding efficiency may be improved.
  • the decoded picture buffer 170 may store the filtered picture for use as a reference picture in the inter prediction unit 180.
  • the inter prediction unit 180 performs temporal prediction and / or spatial prediction to remove temporal redundancy and / or spatial redundancy with reference to the reconstructed picture.
  • the motion information may be predicted based on the correlation of the motion information between the neighboring block and the current block.
  • the intra predictor 185 may predict the current block by referring to samples around the block to which current encoding is to be performed.
  • the intra prediction unit 185 may perform the following process to perform intra prediction. First, reference samples necessary for generating a prediction signal may be prepared. The prediction signal may be generated using the prepared reference sample. Then, the prediction mode is encoded. In this case, the reference sample may be prepared through reference sample padding and / or reference sample filtering. Since the reference sample has been predicted and reconstructed, there may be a quantization error. Accordingly, the reference sample filtering process may be performed for each prediction mode used for intra prediction to reduce such an error.
  • the prediction signal generated by the inter predictor 180 or the intra predictor 185 may be used to generate a reconstruction signal or to generate a residual signal.
  • FIG. 2 is a schematic block diagram of a decoder in which decoding of a video signal is performed as an embodiment to which the present invention is applied.
  • the decoder 200 may include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, a filtering unit 240, and a decoded picture buffer unit (DPB) 250. ), An inter predictor 260, and an intra predictor 265.
  • the reconstructed video signal output through the decoder 200 may be reproduced through the reproducing apparatus.
  • the decoder 200 may receive a signal output from the encoder 100 of FIG. 1, and the received signal may be entropy decoded through the entropy decoding unit 210.
  • the inverse quantization unit 220 obtains a transform coefficient from the entropy decoded signal using the quantization step size information.
  • the inverse transformer 230 inversely transforms a transform coefficient to obtain a residual signal.
  • the reconstruction signal is generated by adding the obtained residual signal to the prediction signal output from the inter prediction unit 260 or the intra prediction unit 265.
  • the filtering unit 240 applies filtering to the reconstruction signal and outputs it to the reproduction apparatus or transmits the decoded picture buffer unit 250 to the reproduction device.
  • the filtered signal transmitted to the decoded picture buffer unit 250 may be used as the reference picture in the inter predictor 260.
  • the embodiments described by the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the encoder 100 are respectively the filtering unit 240, the inter prediction unit 260, and the decoder. The same may be applied to the intra predictor 265.
  • FIG. 3 is a schematic block diagram of an entropy encoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the entropy encoding unit 300 to which the present invention is applied includes a binarization unit 310, a context modeling unit 320, a binary arithmetic encoding unit 330, and a memory 360, and the binary arithmetic encoding unit 330 includes: A regular binary encoding unit 340 and a bypass binary encoding unit 350.
  • the regular binary encoding unit 340 and the bypass binary encoding unit 350 may be referred to as a normal coding engine and a bypass coding engine, respectively.
  • the binarization unit 310 may output a binary symbol string composed of a binary value of 0 or 1 by receiving a sequence of data symbols and performing binarization.
  • the binarization unit 310 may map syntax elements into binary symbols.
  • Several different binarization processes such as unary (U), truncated unary (TU), k-th order Exp-Golomb (EGk), and fixed length processes, support binarization. Can be used for The binarization process may be selected based on the type of syntax element.
  • the output binary symbol string is transmitted to the context modeling unit 320.
  • the context modeling unit 320 selects probability information necessary for coding a current block from a memory and transmits the probability information to the binary arithmetic encoding unit 330.
  • the context memory may be selected from the memory 360 based on the syntax element to be coded, and the probability information required for coding the current syntax element may be selected through the bin index binIdx.
  • context refers to information about a probability of occurrence of a symbol
  • context modeling refers to a process of estimating a probability necessary for binary arithmetic coding of the next bin from information about previously coded bins.
  • the context may include a state representing a specific probability value and a Most Probable Symbol (MPS).
  • the context modeler 320 may provide accurate probability estimation necessary to achieve high coding efficiency. Accordingly, different context models may be used for different binary symbols and the probability of such context model may be updated based on the values of previously coded binary symbols.
  • Binary symbols with similar distributions can share the same context model.
  • the context model for each of these binary symbols includes the syntax information of the bin, the bin index (binIdx) indicating the location of the bin in the bin string, the probability of the bin in the neighboring block of the block containing the bin, and the neighboring block for probability estimation. At least one of the decoding values of the specific syntax element of may be used.
  • the binary arithmetic encoding unit 330 includes a regular binary encoding unit 340 and a bypass binary encoding unit 350 to perform entropy encoding on the output string. And output compressed data bits.
  • the regular binary encoding unit 340 performs arithmetic coding based on recursive interval division.
  • an interval (or interval, range) having an initial value of 0 to 1 is divided into two lower intervals based on a probability of a binary symbol.
  • the encoded bits are converted to binary decimal numbers, they provide an offset from which one of intervals representing 0 or 1 can be selected in the course of successive decoding of binary symbol values.
  • the interval can be updated to equalize the selected lower interval, and the interval division process itself is repeated.
  • the spacing and offset have limited bit precision, so renormalization may be necessary to prevent overflow each time the spacing falls below a certain value. The renormalization may occur after each binary symbol is encoded or decoded.
  • the bypass binary encoding unit 350 performs encoding without a context model, and performs coding by fixing a probability of a bin currently coded to 0.5. This can be used when it is difficult to determine the probability of syntax or when you want to code at high speed.
  • FIG. 4 is a schematic block diagram of an entropy decoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the entropy decoding unit 400 to which the present invention is applied includes a context modeling unit 410, a binary arithmetic decoding unit 420, a memory 450, and an inverse binarization unit 460, and the binary arithmetic decoding unit 420.
  • a regular binary decoding unit 430 and a bypass binary decoding unit 440 are included.
  • the entropy decoding unit 400 receives the bit stream and checks whether a bypass mode is applied to the current syntax element.
  • the bypass mode means that the coding is performed by fixing the probability of the currently coded bin to 0.5 without using the context model.
  • the regular binary decoding unit 430 performs binary arithmetic decoding according to a regular mode.
  • the context modeling unit 410 selects probability information necessary for decoding the current bitstream from the memory 450 and transmits the probability information to the regular binary decoding unit 430.
  • bypass binary decoding unit 440 performs binary arithmetic decoding according to the bypass mode.
  • the inverse binarization unit 460 receives a binary-type bin decoded by the binary arithmetic decoding unit 420 and converts it into an integer-type syntax element value.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the encoder may perform binarization on the syntax element (S510).
  • the encoder may determine whether to perform binary arithmetic coding according to a normal mode or binary arithmetic coding according to a bypass mode (S520).
  • the encoder may select a context model (S530) and perform binary arithmetic encoding based on the context model (S540).
  • the encoder may update the context model (S550), and may select a suitable context model again based on the updated context model in operation S530.
  • the encoder may perform binary arithmetic encoding based on a probability of 0.5 (S560).
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the decoder may receive a bitstream (S610).
  • the decoder may check whether a regular mode or a bypass mode is applied to the current syntax element (S620).
  • whether to apply the bypass mode may be determined in advance according to the type of syntax.
  • symbols applied with the normal mode and symbols applied with the bypass mode may be combined to form a syntax element.
  • the decoder may check whether a bypass mode is applied to the symbols of the current syntax element.
  • the decoder may select a context model in operation S630 and perform binary arithmetic decoding on the basis of the context model in operation S640.
  • the decoder may update the context model (S650), and may select a suitable context model again based on the updated context model in operation S630.
  • the decoder may perform binary arithmetic decoding based on the probability 0.5 (S660).
  • the decoder may perform inverse binarization on the decoded bin string (S670). For example, a decoded binary type bin may be input and converted into an integer syntax element value.
  • the entropy coding procedure is likely to be a bottleneck of overall performance due to data dependence inherent to arithmetic coding algorithms.
  • a large amount of buffer memory may be needed because several frames must be buffered for real-time processing. Therefore, an improvement in throughput of entropy coding is required.
  • an arithmetic coding method may be mentioned.
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • a binary symbol refers to a symbol having a value of 0 or 1.
  • a multi-symbol ie, a non-binary symbol refers to a symbol that can have three or more values.
  • the set of all possible unit numbers finally input to the arithmetic coding engine may be referred to as alphabet. Accordingly, in the case of a binary symbol, the alphabet may be represented as being composed of 0 and 1, or may be represented as being 0 and 1 as alphabetical symbols.
  • the interval (or interval) of [0, 1] is divided by a probability interval proportional to the probability of occurrence of each symbol.
  • the length of each probability interval is determined in proportion to the probability value for the corresponding symbol.
  • the interval for the currently coded symbol is selected, and the selected interval is used when coding the next symbol. Since the length of the interval continues to get smaller as the symbols are coded, the interval length can be scaled through a renormalization procedure so that the length of the interval is always within a certain range.
  • the probability interval is divided into two, and in multi-symbol (or multi-valued) arithmetic coding, the probability interval is divided by the number of symbols used (ie, the number of alphabet symbols). Except for the number of divided intervals, the arithmetic coding method does not have a difference between binary arithmetic coding and multi-symbol arithmetic coding. In other words, the same arithmetic coding method can be applied to binary arithmetic coding and multi-symbol arithmetic coding.
  • the present invention proposes a method of coding symbols in multiple bit streams and parallelizing them.
  • the present invention proposes a method for parallelizing arithmetic coding by mapping symbols to multiple bit streams in units of symbols, syntax elements, or symbol groups.
  • the present invention proposes a method of coding in parallel by allocating symbols with regular coding and symbols with bypass coding to several bit streams.
  • the present invention proposes a method of mapping symbol groups to multiple bit streams and coding the same by parallel pipelining.
  • CABAC Context Adaptive Binary Arithmetic Coding
  • FIG. 7 is a flowchart illustrating an entropy encoding method using a plurality of bit streams according to an embodiment to which the present invention is applied.
  • the encoder may perform binarization on the syntax element (S701).
  • the encoder may determine whether to perform binary arithmetic coding according to the normal mode or binary arithmetic coding according to the bypass mode (S702).
  • the encoder may switch the bit stream in units of symbols, syntax elements, or symbol groups (S703).
  • the encoder can switch the bit streams on a symbol (ie, bin), syntax element, or symbol group basis to allocate bins to the plurality of bit streams, and perform binary arithmetic encoding on each bit stream. . Detailed description thereof will be described later.
  • Encoding of bins allocated in each bit stream may be performed in the same manner as described above with reference to FIG. 5. That is, the encoder can select a context model (S704) and perform binary arithmetic encoding based on the context model (S705). In addition, the encoder may update the context model (S706), and may select a suitable context model again based on the updated context model in step S704.
  • One syntax element may consist of multiple bins, each bin may be coded using the same context model as the other bins, or may be coded using a different context model. It may be.
  • the bin that is subsequently coded refers to the updated context in the coding process of the previous bin.
  • all bit streams may share the same context model or each bit stream may have a separate context model.
  • the encoder may switch the bit stream in units of bins, syntax elements, or symbol groups (S707). Detailed description thereof will be described later.
  • the encoder may perform binary arithmetic encoding based on the probability 0.5 (S708).
  • an arithmetic encoding engine that writes bit data to each bit stream can be executed in parallel, thereby increasing the throughput of entropy coding. Can be improved.
  • FIG. 8 is a flowchart illustrating an entropy decoding method using a plurality of bit streams according to an embodiment to which the present invention is applied.
  • the decoder may receive a video signal composed of a plurality of bitstreams (S801).
  • the decoder can then decode the symbols in each bit stream. Although decoding is performed in units of symbols in each bit stream, since the decoder reads the bit stream only when renormalization is performed, the reception of the bit stream in step S801 may not be required in units of symbols.
  • the decoder may check whether a regular mode or a bypass mode is applied to the current syntax element (S802).
  • whether to apply the bypass mode may be determined in advance according to the type of syntax.
  • symbols applied with the normal mode and symbols applied with the bypass mode may be combined to form a syntax element.
  • the decoder may check whether a bypass mode is applied to the symbols of the current syntax element.
  • the decoder may select a context model (S803) and perform binary arithmetic decoding based on the context model (S804).
  • the decoder may update the context model (S805), and may select a suitable context model again based on the updated context model in step S803.
  • the decoder may perform binary arithmetic decoding based on the probability 0.5 (S806).
  • the decoder may perform inverse binarization on the decoded bin string (S807).
  • the decoded binary bin may be input and converted into an integer syntax element value.
  • the binstring may be generated from any one of a plurality of bit streams, or may be generated by combining bins decoded from the plurality of bit streams.
  • the bin strings may be generated by combining the decoded bins prior to the step S807.
  • Entropy decoding is performed by switching bit streams in units of bins, syntax elements, or symbol groups, which allows the arithmetic decoding engine to read bit data into each bit stream in parallel, thereby increasing the throughput of entropy coding. Can improve.
  • the encoder / decoder may perform entropy encoding / decoding by mapping bins to a plurality of bit streams in bin units.
  • the encoder / decoder may map and code (or issue) bins on four bit streams.
  • the four bit streams are composed of a first bit stream, a second bit stream, a third bit stream, and a fourth bit stream (hereinafter, referred to as BS1, BS2, BS3, and BS4, respectively, for convenience of description).
  • the encoder / decoder may map each bin to a bit stream in a round-robin manner and code the bins according to the order (or positions) of the bins.
  • the order of bins indicates the order (or location) of bins in a bin string, which is a binary syntax element.
  • bin i which is the i th bin may be mapped to BS (((i-1) mod 4) +1).
  • bin1 may be mapped to BS1, bin2 to BS2, bin3 to BS3, bin4 to BS4, and bin5 to BS1.
  • the encoder / decoder may perform entropy encoding / decoding by switching bit-streams on a bin basis using various methods. It demonstrates with reference to the following drawings.
  • 9 to 11 are diagrams illustrating a method of performing entropy coding by mapping a binary symbol to a plurality of bit streams as an embodiment to which the present invention is applied.
  • the bin may be coded with reference to the coding information of the bin in the previous order.
  • the encoder / decoder waits for coding information of the bin of the previous bin and codes the current bin.
  • the encoder / decoder can code one cycle one bin in a sequence of bins while switching bit streams.
  • previously coded information (e.g., to determine the context used for coding the current bin) May refer to a previously coded bin).
  • the encoder / decoder may code the bin in the next cycle by waiting for the updated context model, previously coded information, etc. in consideration of the data dependency.
  • the encoder / decoder may check the data dependency between the current bin and the symbol (or previously coded information) of the other bin before coding the bins assigned to each bit stream. According to the confirmed result, if there is no data dependency, the encoder / decoder may immediately perform coding for the current bin. If there is a data dependency, it may wait for coded information (or previously coded information) of a symbol of another bit stream and then perform coding for the current bin.
  • the bins can be coded in the corresponding bit stream separately at the same time. For example, if there is no data dependency on the previous bin in the order of the bins, it may be coded in the same cycle, as shown in FIG. 10.
  • the interval containing information of previously coded bins is constantly updated.
  • a variable indicating the start position of the interval hereinafter, referred to as a base
  • a variable representing the length of the interval hereinafter, referred to as length
  • Each of the plurality of bit streams has a length of a base which is a separate set of variables for each bit stream, and each bit stream can represent information of bins that are coded using the respective set of variables (base and length). have.
  • bin1 and bin2 since bin1 and bin2 are not in a data dependency relationship, bin1 and bin2 may be coded in the same cycle. Similarly, bin3, bin4, and bin5 are not data dependent, so they can be coded in the same cycle. On the other hand, since data dependencies exist between bin3 and bin2 and between bin6 and bin5, they cannot be coded in the same cycle. In this case, bin3 and bin6 wait for the coded information of bin2 and bin5, ie, can be coded in the next cycle of the cycle in which the bin in the data dependency relationship is coded.
  • bins in late order in the order of bins may be coded first in another bit stream. That is, bin5 without data dependency may be coded before bin4, and bin13 without data dependency may be coded before bin11 and bin12.
  • the encoder / decoder can code in consideration of the data dependency regardless of the order of the bins in the beanstrings.
  • bit stream allocation order (or bit stream order) may be set in the encoder / decoder in the same manner.
  • the encoder / decoder may specify a bit stream allocation order such as (BS1, BS1, BS1, BS1, BS2, BS2, BS3, BS3, BS4), and select bins in the bit stream allocation order. It can be coded by mapping to the bit stream.
  • the encoder / decoder may perform entropy encoding / decoding by mapping bins to a plurality of bit streams in syntax element units.
  • the encoder / decoder may configure the consecutive bins to be coded in the same bit stream when the consecutive bins belong to the same syntax element.
  • the encoder / decoder may code syntax elements by mapping them to a bit stream in a round-robin manner.
  • the encoder / decoder may perform entropy encoding / decoding by switching bit-streams on a syntax element basis using various methods. It demonstrates with reference to the following drawings.
  • 12 to 14 illustrate embodiments to which the present invention is applied and show a method of performing entropy coding by mapping to a plurality of bit streams in a syntax element unit.
  • each syntax element is mapped to a bit stream in order in a round-robin manner.
  • syntax elements A, B, C, D, and E may be mapped to BS1, BS2, BS3, BS4, and BS1, respectively.
  • A.bini represents the i-th bin of syntax element A.
  • bit stream coded in syntax element units may be switched.
  • each syntax element may be the same kind of syntax element or another kind of syntax element.
  • syntax elements of the same kind refer to syntax elements of the same position on the syntax structure.
  • the syntax elements A and B are rem_intra_luma_pred_mode in the HEVC
  • the syntax elements may be the same kind.
  • other kinds of syntax elements refer to syntax elements at different positions on the syntax structure. Taking HEVC as an example, when syntax element A is mpm_idx and syntax element B is rem_intra_luma_pred_mode, it may correspond to another kind of syntax element.
  • the encoder / decoder may check the data dependency between the current bin and the symbol (or previously coded information) of the other bin before coding the bins assigned to each bit stream. According to the confirmed result, if there is no data dependency, the encoder / decoder may immediately perform coding for the current bin. If there is a data dependency, it may wait for coded information (or previously coded information) of a symbol of another bit stream and then perform coding for the current bin.
  • syntax elements may be coded separately in the corresponding bit stream at the same time. For example, if there is no data dependency on the previous syntax element in sequence, it may be coded in the same cycle, as shown in FIG.
  • syntax element A and B may be coded in the same cycle since syntax element B has no dependency on syntax element A.
  • syntax element G can be coded in the same cycle since syntax element F has no dependency on syntax element J.
  • syntax elements in a later order in the order of syntax elements may be coded first in another bit stream. That is, regardless of the order of the entire syntax elements A, B, C, D, E, F, ..., they may be coded in the bit stream according to the coding order in the allocated bit stream, respectively.
  • the encoder / decoder may code bins in the syntax element while considering data dependency.
  • syntax element M may be coded before syntax element L.
  • a method of allocating a bit-stream in a bin unit in a round-robin manner has been described as an example, but is not limited thereto. That is, a bit robin allocation method different from the round robin method may be applied to the encoder and the decoder in the same manner.
  • bit stream allocation order (or bit stream order) may be set in the encoder / decoder in the same manner.
  • the encoder / decoder may specify a bit stream allocation order such as (BS1, BS1, BS1, BS1, BS2, BS2, BS3, BS3, BS4), and select bins in the bit stream allocation order. It can be coded by mapping to the bit stream.
  • syntax elements of the same kind are coded consecutively, it may be possible not to switch the bit stream.
  • syntax elements A and B of FIG. 10 and syntax elements C and D are the same kind of syntax elements, respectively, syntax elements A and B may be coded in BS1 and syntax elements C and D in BS2. Can be.
  • a certain kind of syntax elements may be configured to be coded by being fixed to a specific bit stream, and the remaining syntax elements may be configured to be coded in the remaining bit streams except for the specific bit stream.
  • the remaining syntax elements except syntax elements (or types of syntax elements) fixed to a specific bit stream may be coded in the remaining bit streams according to the method described with reference to FIGS. 10 to 12.
  • syntax element A is assigned to BS1
  • syntax element B is assigned to BS2
  • the remaining syntax elements, that is, syntax elements C and D can be alternately coded between BS3 and BS4.
  • syntax elements other than syntax elements (or types of syntax elements) specified in the specific bit stream may be set to be coded, and other syntax elements may be set not to be coded.
  • the encoder / decoder has the remaining syntax element types except for C1 and C2 where the bit stream is fixed.
  • the bit stream can be allocated according to the method described in step 14.
  • the encoder / decoder may allocate the remaining syntax element types to the bit stream in a round-robin manner except for all C1 and C2 in which the bit stream is fixed.
  • a symbol sequence (or syntax element of a syntax element) is given such that the syntax element type is C1, C1, C3, C2, C4, C1, C2, C5, C3, C4, C2, C1, C6, C2
  • the encoder / decoder assigns each syntax element type to BS1, BS1, BS2, BS2, BS3, BS1, BS2, BS3, BS4, BS1, BS2, BS1, BS2. Can be mapped to BS2.
  • Regular coding refers to a method of referencing and updating a context and coding symbols.
  • Bypass coding refers to coding all symbols with the same probability. In the case of binary coding, the probability of all symbols is 0.5 for binary symbols.
  • Bypass coding is performed on one bit stream in combination with regular coding. Bypass coding can be performed with much simpler operation compared to regular coding because no context reference and update is required.
  • bypass coding By assigning bypass coding to the bit stream in a manner different from regular coding, it is possible to improve the throughput and complexity of entropy coding.
  • the encoder / decoder may code in a bypass coding mode by alternating bit streams in units of bins.
  • the encoder / decoder may code bins in the bypass coding mode by the method described above with reference to FIGS. 9 to 11.
  • bins coded in the normal coding mode (hereinafter may be referred to as normal coding bins) are independent of bins coded in the bypass coding mode (hereinafter referred to as bypass coding bins). It may be allocated to the bit stream in units of bins or to the bit stream in units of syntax elements.
  • bypass coding does not refer to a context, there is no data dependency due to the context, but there may be a dependency when referencing previously coded information. For example, there may be a data dependency when the number of bins subsequently coded varies according to the value of a previously coded bin. In this case, the encoder / decoder may code bins in several bit streams while considering data dependency.
  • the encoder / decoder may code in a bypass coding mode by alternating bit streams in units of syntax elements.
  • the encoder / decoder may code bins in the bypass coding mode by the method described with reference to FIGS. 12 to 14.
  • the regular coding bins may be allocated to the bit stream in bin units regardless of the bypass coding bins, or may be allocated to the bit stream in syntax element units.
  • the encoder / decoder may alternately code the bit stream in units of a plurality of bypass coding bins.
  • bypass coding can be implemented to handle multiple bins simultaneously, unlike regular coding. Accordingly, the encoder / decoder may group the bypass coding bins in the number that can be processed simultaneously and switch the bit stream in units of the group.
  • the encoder / decoder may allocate a bit stream in units of groups (or groups) of bins that can be processed simultaneously. For example, assuming that the number of concurrently coded bypass coding bins is four and code a syntax element consisting of seven bypass coding bins, the encoder / decoder allocates the preceding four bins to BS1. Then, three subsequent bins can be allocated to BS2.
  • the number of concurrently coded bypass coding bins may be fixedly determined or may be determined in higher level syntax, such as in sequence, picture, and slice units.
  • bit streams may be allocated in units of bundles (or groups) of processable bins. That is, the first one bin and the subsequent bins may be allocated to the bit stream in units. In this case, the bit stream may be coded according to the method described above with reference to FIGS. 9 to 14.
  • the encoder / decoder will tell you that the first bin is in BS1, followed by four bins ( bins and two bins can be coded in BS2 and BS3 respectively.
  • the encoder / decoder may allocate a separate bit stream for bypass coding.
  • the encoder / decoder may allocate an exclusive bit stream for bypass coding only. In this case, the encoder / decoder cannot code regular coding bins in the bit stream.
  • the encoder / decoder may write raw data to or read from the bit stream without performing binary arithmetic encoding / decoding.
  • the encoder / decoder can code bypass coding bins concurrently with the regular coding bins while taking into account data dependencies.
  • the encoder / decoder may allocate one or more bit streams for bypass coding. If a plurality of bit streams are allocated as bit streams for bypass coding, the plurality of bit streams may be coded in units of bins or syntax elements according to the method described above with reference to FIGS. 9 to 14. .
  • the encoder / decoder can be configured to change the bit stream for bypass coding earlier as the case may be.
  • the changed bit stream may be set identically at the encoder and the decoder, or the encoder may signal the changed bit stream information to the decoder.
  • mapping symbol groups to multiple bit streams and coding in a pipelining manner to parallelize entropy coding will be described.
  • the encoder / decoder may group symbols and map symbol groups to several bit streams to perform entropy encoding / decoding. Through symbol grouping, arithmetic coding on multiple bit streams can be pipelined to increase throughput of entropy coding.
  • FIG. 15 illustrates an embodiment to which the present invention is applied and illustrates a method of performing entropy coding by mapping a symbol group to a plurality of bit streams.
  • the symbol group S_i may be composed of four binary symbols s_i1, s_i2, s_i3, and s_i4.
  • the four binary symbols may use a context model (C_1, C_2, C_3, C_4, respectively).
  • all bit streams may share the same context model or each bit stream may have a separate context model.
  • each binary symbol in a symbol group may use the same context or may use a separate context model.
  • the encoder / decoder may alternately code binary symbol groups S1, S2, S3,... Into several bit streams. As described above, each bit stream may have an individual variable set (base, length) indicating an interval.
  • the binary symbol group that is currently coded depends on the coded values of the previous groups or the contexts updated in the coding process, only information available at the time the current symbol in the current symbol group is coded can be used.
  • FIG. 16 illustrates an embodiment to which the present invention is applied and shows a method of performing entropy coding by mapping a binary symbol group to several bit streams.
  • binary symbol groups may be coded in different bit streams BS1, BS2, BS3, BS4 at a distance of one binary symbol (ie, one cycle interval).
  • the encoder / decoder may code symbol groups into several bit streams in a pipelining manner.
  • the symbol group Si is composed of four binary symbols s_i1, s_i2, s_i3, and s_i4, and s_ij refers to the context model C_j.
  • the context set refers to a set of context models composed of a plurality of context models.
  • each symbol in the symbol group may individually refer to a context model.
  • Binary symbol groups are alternately mapped to the bit stream, and one binary symbol may be coded in one cycle in each bit stream.
  • the context C_j may be updated every time the binary symbol is coded.
  • Each symbol may use a different context model according to the order of the symbols in the symbol group. Specifically, s_i1 may use C_1, s_i2 may use C_2, s_i3 may use C_3, and s_i4 may use C_4.
  • C_j ⁇ (k + 1) points to the context in which C_j ⁇ k was updated. That is, the superscript of C_j increases as the context is updated.
  • the context model C_j can be updated at the same time as i representing the symbol group sequence is increased.
  • every symbol s_ij in the symbol group can use the most updated context model.
  • the encoder / decoder cannot be used for context determination because s_13, s_14, s_22, s_23, s_24 are still coded before.
  • the pipeline stall means a delay of symbol coding in a symbol group.
  • the throughput of entropy coding can be improved by grouping symbols so as to minimize data dependency, or by configuring them to not refer to uncoded symbols in a previous symbol group in a context determination process.
  • s_ij is configured to have a dependency only on si0 to si (j-1), one symbol group can be coded every cycle without pipeline stall, thereby improving throughput.
  • FIG. 16 illustrates a case in which four symbol groups are coded in the bit stream (S_1, S_2, S_3, and S_4).
  • the encoder / decoder is continuously followed by the symbol groups S_5, S_6, and S_7. , ...) can be coded into the bit stream, and consequently, one symbol group per cycle after a certain latency.
  • FIG. 17 illustrates an embodiment to which the present invention is applied and shows a method of performing entropy coding by mapping a binary symbol group to several bit streams.
  • s_i3 may be coded in a cycle after s_ (i-1) 4 is coded due to data dependency. Therefore, s_i3 is not coded until s_ (i-1) 4 is coded, so pipeline stall may occur. As such, when a pipeline stall occurs, coding of one symbol group per cycle may not be terminated, thereby reducing coding efficiency.
  • FIG. 18 illustrates an embodiment to which the present invention is applied and shows a method of performing entropy coding by mapping a binary symbol group to several bit streams.
  • the encoder / decoder may change the coding order of s_i3 and s_i4 in the symbol group so that pipeline stall does not occur. That is, since the coding result for s_ (i-1) 4 is available at the time when s_i3 is coded, pipeline stall may not occur.
  • CABAC engines use an independent context model for each bit stream, data dependency due to context reference between symbol groups coded into different bit streams may disappear.
  • the binary symbol group according to the method proposed in the present specification may be determined as follows.
  • the encoder / decoder may simply organize bins constituting one syntax element into a group of binary symbols. In this case, the length of the corresponding binary symbol group may vary according to the value of the syntax element.
  • the encoder / decoder may group bins constituting one syntax element into a predetermined number of bins.
  • the encoder / decoder may configure a binary symbol group with a plurality of syntax elements.
  • the encoder may construct a binary symbol by combining successive syntax elements.
  • the symbol grouping method described above with 4 bit binary codes of consecutively coded remaining level values is coded.
  • the remaining level represents a value remaining after obtaining a base level value for the absolute value of the non-zero coefficient using sig_coeff_flag, coeff_abs_level_greater1_flag, coeff_abs_level_greater2_flag, and the like.
  • the encoder / decoder may perform symbol grouping on a 4-bit binary code basis.
  • the coding efficiency decreases due to the data dependency because the symbols are coded at intervals of one cycle between the symbol groups. Can be.
  • each of the embodiments may be performed independently, or all or some of the embodiments may be selectively combined.
  • 19 is a flowchart illustrating a process of performing entropy decoding on a video signal according to an embodiment to which the present invention is applied.
  • the decoder receives a video signal composed of a plurality of bit streams (S1901).
  • the decoder decodes a symbol of a syntax element for each bit stream of the video signal based on the context model (S1902).
  • the decoder may decode a symbol of a syntax element for each bit stream by the method described above with reference to FIGS. 4, 6, and 8.
  • the plurality of bit streams may each have a separate context model, and the plurality of bit streams may share a context model.
  • the decoder may select a context model for each bit stream and perform binary arithmetic decoding based on the selected context model.
  • symbols in the plurality of bit streams may be mapped in units of symbols, syntax elements, or symbol groups.
  • the symbol group may consist of a specific number of symbols or a specific number of syntax elements.
  • the symbol may be a binary symbol or a multi symbol.
  • the decoder may check whether a data dependency exists between a current symbol of the current bit stream and a symbol of another bit stream.
  • the current symbol may be decoded using the decoded information of the symbol of the other bit stream.
  • the decoder may decode a symbol of the current syntax element for each bit stream of the video signal.
  • the decoder derives information of the syntax element using the decoded symbol (S1903).
  • the decoder may receive a binary-type bin decoded by the method described above with reference to FIGS. 4, 6, and 8 and output a syntax element value.
  • the decoder determines a symbol string from the decoded symbols based on the bit stream order indicating the order in which the symbols are mapped to the plurality of bit streams. symbol string).
  • the decoder may combine symbols decoded in the plurality of bit streams based on the bit stream order.
  • the decoder may derive information of the syntax element from the generated symbol string.
  • a symbol string is derived from the decoded symbol based on a bit stream order indicating an order in which symbols are mapped to the plurality of bit streams. Can be generated.
  • the bit stream order may be fixed in advance at the encoder and the decoder.
  • the encoder and the decoder may allocate the bit stream by cycling the bit stream allocation order in the same cycle.
  • the bit stream order may also be signaled from an encoder.
  • the bit stream order may be signaled in units of sequence, picture, slice, tile, or block from an encoder.
  • each symbol in the symbol group may be decoded with reference to an individual context model.
  • the individual context model may be determined based on the order of symbols in a symbol group in a context set composed of a plurality of context models shared by the plurality of bit streams.
  • the decoder may rearrange (or modify the order of decoded symbols) the decoded symbols in the symbol group to prevent pipelining stall. Can be.
  • a predetermined syntax element may be mapped to a specific bit stream among the plurality of bit streams.
  • syntax element to which the bypass mode is applied may be fixedly mapped to a specific bit stream among the plurality of bit streams.
  • the embodiments described herein may be implemented and performed on a processor, microprocessor, controller, or chip.
  • the functional units illustrated in FIGS. 1 to 4 may be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip.
  • the decoder and encoder to which the present invention is applied include a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video chat device, a real time communication device such as video communication, a mobile streaming device, Storage media, camcorders, video on demand (VoD) service providing devices, internet streaming service providing devices, three-dimensional (3D) video devices, video telephony video devices, and medical video devices, and the like, for processing video and data signals Can be used for
  • the processing method to which the present invention is applied can be produced in the form of a program executed by a computer, and can be stored in a computer-readable recording medium.
  • Multimedia data having a data structure according to the present invention can also be stored in a computer-readable recording medium.
  • the computer readable recording medium includes all kinds of storage devices for storing computer readable data.
  • the computer-readable recording medium may include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. Can be.
  • the computer-readable recording medium also includes media embodied in the form of a carrier wave (eg, transmission over the Internet).
  • the bit stream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired or wireless communication network.

Landscapes

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

Abstract

본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 복수 개의 비트 스트림(bit-stream)으로 구성된 비디오 신호를 수신하는 단계; 컨텍스트 모델(context model)에 기초하여 상기 비디오 신호의 각 비트 스트림 별로 신택스 요소(syntax element)의 심볼(symbol)을 디코딩하는 단계; 및 상기 디코딩된 심볼을 이용하여 상기 신택스 요소의 정보를 도출하는 단계를 포함하는 방법을 제공한다.

Description

비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
본 발명은 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치에 관한 것이다. 보다 구체적으로, 여러 비트 스트림을 이용하여 심볼(symbol) 또는 심볼 그룹(symbol group) 단위로 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치에 관한 것이다.
엔트로피 코딩은 부호화 과정을 통해 결정된 신택스 엘리먼트들을 무손실 압축하여 RBSP(Raw Byte Sequence Payload)를 생성하는 과정이다. 엔트로피 코딩은 신택스의 통계를 이용하여 자주 발생하는 신택스에 대해서는 짧은 비트를 할당하고, 그렇지 않은 신택스에는 긴 비트를 할당하여 신택스 엘리먼트들을 간결한 데이터로 표현한다.
그 중, CABAC(Context-based Adaptive Binary Arithmetic Coding)은 이진 산술 코딩을 수행하는 과정에서 신택스의 컨텍스트와 이전에 발생한 심볼에 기초하여 적응적으로 업데이트된 컨텍스트 모델을 사용한다. 그러나, 이러한 CABAC도 연산량이 많아 복잡도가 높고 순차적 구조를 가지고 있어 병렬 수행이 어려운 문제점이 있다.
따라서, 비디오 압축 기술에 있어서 신택스 엘리먼트를 보다 효율적으로 압축하고 전송할 필요가 있으며, 이를 위해 엔트로피 코딩의 성능을 향상시킬 필요가 있다.
본 발명의 목적은 엔트로피 코딩의 처리량을 향상시키기 위해 심볼(symbol)들을 여러 비트 스트림(bit stream)에 코딩하여 병렬화하는 방법을 제안한다.
또한, 본 발명의 목적은 심볼(symbol) 또는 신택스 요소(syntax element) 단위로 비트 스트림을 전환하여 산술 코딩을 병렬화하는 방법을 제안한다.
또한, 본 발명의 목적은 정규 코딩(regular coding)을 적용한 심볼들과, 바이패스 코딩(bypass coding)을 적용한 심볼들을 여러 비트 스트림에 할당하여 병렬적으로 코딩하는 방법을 제안한다.
또한, 본 발명의 목적은 심볼 그룹(symbol group)들을 여러 비트 스트림에 매핑하여 파이프라이닝(Pipelining) 방식으로 엔트로피 코딩을 병렬화하는 방법을 제안한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 복수 개의 비트 스트림(bit-stream)으로 구성된 비디오 신호를 수신하는 단계; 컨텍스트 모델(context model)에 기초하여 상기 비디오 신호의 각 비트 스트림 별로 신택스 요소(syntax element)의 심볼(symbol)을 디코딩하는 단계; 및 상기 디코딩된 심볼을 이용하여 상기 신택스 요소의 정보를 도출하는 단계를 포함할 수 있다.
바람직하게, 상기 심볼을 디코딩하는 단계는, 현재 비트 스트림의 현재 심볼과 다른 비트 스트림의 심볼간에 데이터 의존성(data dependency)이 존재하는지 여부를 확인하는 단계를 더 포함하고, 상기 확인 결과 상기 데이터 의존성이 존재하는 경우, 상기 다른 비트 스트림의 심볼의 디코딩된 정보를 이용하여 상기 현재 심볼을 디코딩할 수 있다.
바람직하게, 상기 신택스 요소의 정보를 도출하는 단계는, 상기 복수 개의 비트 스트림에 심볼들이 매핑되는 순서를 나타내는 비트 스트림 순서에 기초하여 상기 디코딩된 심볼로부터 심볼 스트링(symbol string)을 생성하는 단계를 더 포함하고, 상기 심볼 스트링을 이용하여 상기 신택스 요소의 정보를 도출할 수 있다.
바람직하게, 상기 비트 스트림 순서는 미리 고정적으로 설정되거나, 인코더로부터 시퀀스(sequence), 픽처, 슬라이스(slice), 타일(tile) 또는 블록 단위로 시그널링될 수 있다.
바람직하게, 상기 비트 스트림 순서는 심볼, 신택스 요소 또는 심볼 그룹(symbol group) 단위로 결정될 수 있다.
바람직하게, 상기 심볼 그룹은 특정 개수의 심볼 또는 특정 개수의 신택스 요소로 구성될 수 있다.
바람직하게, 상기 비트 스트림 순서가 심볼 그룹 단위로 결정되는 경우, 상기 심볼 그룹 내 각 심볼은 개별적인 컨텍스트 모델을 참조하여 디코딩되고, 상기 개별적인 컨텍스트 모델은 상기 복수 개의 비트 스트림이 공유하는, 복수 개의 컨텍스트 모델로 구성된 컨텍스트 셋(context set)에서 상기 심볼 그룹 내 심볼의 순서에 기초하여 결정될 수 있다.
바람직하게, 상기 비트 스트림 순서가 심볼 그룹 단위로 결정되는 경우 상기 심볼 스트링을 생성하는 단계는, 심볼 그룹 내 디코딩된 심볼들을 재배치(reordering)하는 단계를 더 포함하고, 상기 비트 스트림 순서 및 상기 재배치된 디코딩된 심볼들에 기초하여 심볼 스트링을 생성할 수 있다.
바람직하게, 미리 정해진 신택스 요소가 상기 복수 개의 비트 스트림 중 특정 비트 스트림에 매핑될 수 있다.
바람직하게, 상기 심볼은 이진 심볼(binary symbol) 또는 멀티 심볼(multi symbol)일 수 있다.
본 발명의 다른 일 양상은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 복수 개의 비트 스트림(bit-stream)으로 구성된 비디오 신호를 수신하는 단계; 현재 신택스 요소에 대해 바이패스 모드(bypass mode)가 적용되는 경우, 상기 비디오 신호의 각 비트 스트림 별로 상기 현재 신택스 요소의 심볼(symbol)을 디코딩하는 단계; 및 상기 디코딩된 심볼을 이용하여 상기 현재 신택스 요소의 정보를 도출하는 단계를 포함할 수 있다.
바람직하게, 상기 현재 신택스 요소의 정보를 도출하는 단계는, 상기 복수 개의 비트 스트림에 심볼들이 매핑되는 순서를 나타내는 비트 스트림 순서에 기초하여 상기 디코딩된 심볼로부터 심볼 스트링(symbol string)을 생성하는 단계를 더 포함하고, 상기 심볼 스트링을 이용하여 상기 현재 신택스 요소의 정보를 도출할 수 있다.
바람직하게, 상기 비트 스트림 순서는 미리 고정적으로 설정되거나, 인코더로부터 시퀀스(sequence), 픽처, 슬라이스(slice), 타일(tile) 또는 블록 단위로 시그널링될 수 있다.
바람직하게, 상기 비트 스트림 순서는 심볼, 신택스 요소 또는 심볼 그룹(symbol group) 단위로 결정될 수 있다.
바람직하게, 상기 심볼 그룹은 특정 개수의 심볼 또는 특정 개수의 신택스 요소로 구성될 수 있다.
바람직하게, 상기 심볼은 이진 심볼(binary symbol) 또는 멀티 심볼(multi symbol)일 수 있다.
바람직하게, 상기 바이패스 모드가 적용되는 신택스 요소는 상기 복수 개의 비트 스트림 중 특정 비트 스트림에 고정적으로 매핑될 수 있다.
본 발명의 다른 일 양상은, 복수 개의 비트 스트림(bit-stream)으로 구성된 비디오 신호를 수신하는 비디오 신호 수신부; 컨텍스트 모델(context model)에 기초하여 상기 비디오 신호의 각 비트 스트림 별로 신택스 요소(syntax element)의 심볼(symbol)을 디코딩하는 심볼 디코딩부; 및 상기 디코딩된 심볼을 이용하여 상기 신택스 요소의 정보를 도출하는 신택스 요소 도출부를 포함할 수 있다.
본 발명의 실시예에 따르면, 심볼들을 여러 비트 스트림에 코딩하여 병렬화함으로써 엔트로피 코딩의 처리량(throughput)을 향상시킬 수 있다.
또한, 본 발명의 실시예에 따르면, 정규 코딩(regular coding)을 적용한 심볼들과, 바이패스 코딩(bypass coding)을 적용한 심볼들을 여러 비트 스트림에 할당하여 병렬적으로 코딩함으로써 처리량을 향상시키고고 복잡도를 개선할 수 있다.
또한, 본 발명의 실시예에 따르면, 데이터 의존성(data dependency)이 최소화되도록 심볼 그룹을 구성함으로써 엔트로피 코딩의 처리량을 향상시킬 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호의 인코딩이 수행되는 인코더의 개략적인 블록도를 나타낸다.
도 2는 본 발명이 적용되는 실시예로서, 비디오 신호의 디코딩이 수행되는 디코더의 개략적인 블록도를 나타낸다.
도 3은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 인코딩부의 개략적인 블록도를 나타낸다.
도 4는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 디코딩부의 개략적인 블록도를 나타낸다.
도 5는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 인코딩 흐름도를 나타낸다.
도 6은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 디코딩 흐름도를 나타낸다.
도 7은 본 발명이 적용되는 실시예로서, 복수 개의 비트 스트림(bit-stream)을 이용한 엔트로피 인코딩 방법을 나타내는 흐름도이다.
도 8은 본 발명이 적용되는 실시예로서, 복수 개의 비트 스트림(bit-stream)을 이용한 엔트로피 디코딩 방법을 나타내는 흐름도이다.
도 9 내지 도 11는 본 발명이 적용되는 실시예로서, 이진 심볼(binary symbol)을 여러 비트 스트림(bit-stream)에 매핑하여 엔트로피 코딩을 수행하는 방법을 나타내는 도면이다.
도 12 내지 도 14는 본 발명이 적용되는 실시예로서, 신택스 요소(syntax element) 단위로 여러 비트 스트림(bit-stream)에 매핑하여 엔트로피 코딩을 수행하는 방법을 나타내는 도면이다.
도 15은 본 발명이 적용되는 실시예로서, 심볼 그룹(symbol group)을 여러 비트 스트림(bit-stream)에 매핑하여 엔트로피 코딩을 수행하는 방법을 설명하기 위한 도면이다.
도 16는 본 발명이 적용되는 실시예로서, 심볼 그룹 내 각 심볼에 할당된 컨텍스트 모델(context model)을 이용하여 엔트로피 코딩을 수행하는 방법을 예시하는 도면이다.
도 17는 본 발명이 적용되는 실시예로서, 이진 심볼 그룹(binary symbol group)을 여러 비트 스트림에 매핑하여 엔트로피 코딩을 수행하는 방법을 나타내는 도면이다.
도 18는 본 발명이 적용되는 실시예로서, 이진 심볼 그룹(binary symbol group)을 여러 비트 스트림에 매핑하여 엔트로피 코딩을 수행하는 방법을 나타내는 도면이다.
도 19은 본 발명이 적용되는 실시예로서, 다수의 비트 스트림으로 구성된 비디오 신호에 대해 엔트로피 디코딩을 수행하는 과정을 설명하는 흐름도이다.
이하, 본 발명의 실시예들에 따른 예시적인 엘리먼트들 및 동작들이 첨부된 도면들을 참조하여 기술된다. 그러나 상기 도면들을 참조하여 기술되는 본 발명의 상기 엘리먼트들 및 동작들은 단지 실시예들로서 제공되는 것이고, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다는 것을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어를 사용하여 설명한다. 그러한 경우에는 해당 부분의 상세 설명에서 그 의미가 명확하게 기재된다. 따라서, 본 명세서의 설명에서 사용된 용어의 명칭 만에 기초하여 본 발명이 단순 해석되어서는 안 될 것이며 그 해당 용어의 의미까지 파악하여 해석되어야 함을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어들은 발명을 설명하기 위해 선택된 일반적인 용어들이나, 유사한 의미를 갖는 다른 용어가 있는 경우 보다 적절한 해석을 위해 대체 가능할 것이다. 예를 들어, 신호, 데이터, 샘플, 픽쳐, 프레임, 블록은 각 코딩 과정에서 적절하게 대체되어 해석될 수 있을 것이다.
또한, 본 명세서에서 설명되는 실시예들의 개념과 방법들은, 다른 실시예들에도 적용 가능하며, 본 명세서에서 모두 명시하여 기재하지 않더라도 본 발명의 기술적 사상 범위 내에서 각 실시예들의 조합도 적용 가능할 것이다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호의 인코딩이 수행되는 인코더의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 인코더(100)는 영상 분할부(110), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 필터링부(160), 복호 픽쳐 버퍼(DPB: Decoded Picture Buffer)(170), 인터 예측부(180), 인트라 예측부(185) 및 엔트로피 인코딩부(190)를 포함하여 구성될 수 있다.
영상 분할부(110)는 인코더(100)에 입력된 입력 영상(또는, 픽쳐, 프레임)를 하나 이상의 처리 유닛으로 분할할 수 있다. 예를 들어, 상기 처리 유닛은 코딩 트리 유닛(CTU: Coding Tree Unit), 코딩 유닛(CU: Coding Unit), 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)일 수 있다.
인코더(100)는 입력 영상 신호에서 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호를 감산하여 잔여 신호(residual signal)를 생성할 수 있고, 생성된 잔여 신호는 변환부(120)로 전송된다.
변환부(120)는 잔여 신호에 변환 기법을 적용하여 변환 계수(transform coefficient)를 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)를 이용하여 예측 신호를 생성하고 그에 기초하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(130)는 변환 계수를 양자화하여 엔트로피 인코딩부(190)로 전송하고, 엔트로피 인코딩부(190)는 양자화된 신호를 엔트로피 코딩하여 비트스트림으로 출력할 수 있다.
양자화부(130)로부터 출력된 양자화된 신호는 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 신호는 루프 내의 역양자화부(140) 및 역변환부(150)를 통해 역양자화 및 역변환을 적용함으로써 잔여 신호를 복원할 수 있다. 복원된 잔여 신호를 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호에 더함으로써 복원 신호가 생성될 수 있다.
필터링부(160)는 복원 신호에 필터링을 적용하여 이를 재생 장치로 출력하거나 복호 픽쳐 버퍼(170)에 전송한다. 복호 픽쳐 버퍼(170)에 전송된 필터링된 신호는 인터 예측부(180)에서 참조 픽쳐로 사용될 수 있다. 이처럼, 필터링된 픽쳐를 화면간 예측 모드에서 참조 픽쳐로 이용함으로써 화질 뿐만 아니라 부호화 효율도 향상시킬 수 있다.
복호 픽쳐 버퍼(170)는 필터링된 픽쳐를 인터 예측부(180)에서의 참조 픽쳐로 사용하기 위해 저장할 수 있다.
인터 예측부(180)는 복원 픽쳐를 참조하여 시간적 중복성 및/또는 공간적 중복성을 제거하기 위해 시간적 예측 및/또는 공간적 예측을 수행한다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 예측할 수 있다.
인트라 예측부(185)는 현재 부호화를 진행하려고 하는 블록의 주변에 있는 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 인트라 예측부(185)는 인트라 예측을 수행하기 위해 다음과 같은 과정을 수행할 수 있다. 먼저, 예측 신호를 생성하기 위해 필요한 참조 샘플을 준비할 수 있다. 그리고, 준비된 참조 샘플을 이용하여 예측 신호를 생성할 수 있다. 이후, 예측 모드를 부호화하게 된다. 이때, 참조 샘플은 참조 샘플 패딩 및/또는 참조 샘플 필터링을 통해 준비될 수 있다. 참조 샘플은 예측 및 복원 과정을 거쳤기 때문에 양자화 에러가 존재할 수 있다. 따라서, 이러한 에러를 줄이기 위해 인트라 예측에 이용되는 각 예측 모드에 대해 참조 샘플 필터링 과정이 수행될 수 있다.
상기 인터 예측부(180) 또는 상기 인트라 예측부(185)를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 잔여 신호를 생성하기 위해 이용될 수 있다.
도 2는 본 발명이 적용되는 실시예로서, 비디오 신호의 디코딩이 수행되는 디코더의 개략적인 블록도를 나타낸다.
도 2를 참조하면, 디코더(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 필터링부(240), 복호 픽쳐 버퍼(DPB: Decoded Picture Buffer Unit)(250), 인터 예측부(260) 및 인트라 예측부(265)를 포함하여 구성될 수 있다.
그리고, 디코더(200)를 통해 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
디코더(200)는 도 1의 인코더(100)로부터 출력된 신호을 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(210)를 통해 엔트로피 디코딩될 수 있다.
역양자화부(220)에서는 양자화 스텝 사이즈 정보를 이용하여 엔트로피 디코딩된 신호로부터 변환 계수(transform coefficient)를 획득한다.
역변환부(230)에서는 변환 계수를 역변환하여 잔여 신호를 획득하게 된다.
획득된 잔여 신호를 인터 예측부(260) 또는 인트라 예측부(265)로부터 출력된 예측 신호에 더함으로써 복원 신호가 생성된다.
필터링부(240)는 복원 신호에 필터링을 적용하여 이를 재생 장치로 출력하거나 복호 픽쳐 버퍼부(250)에 전송한다. 복호 픽쳐 버퍼부(250)에 전송된 필터링된 신호는 인터 예측부(260)에서 참조 픽쳐로 사용될 수 있다.
본 명세서에서, 인코더(100)의 필터링부(160), 인터 예측부(180) 및 인트라 예측부(185)에서 설명된 실시예들은 각각 디코더의 필터링부(240), 인터 예측부(260) 및 인트라 예측부(265)에도 동일하게 적용될 수 있다.
도 3은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 인코딩부의 개략적인 블록도를 나타낸다.
본 발명이 적용되는 엔트로피 인코딩부(300)는 이진화부(310), 컨텍스트 모델링부(320), 이진 산술 인코딩부(330) 및 메모리(360)를 포함하고, 상기 이진 산술 인코딩부(330)는 정규 이진 인코딩부(regular binary encoding unit)(340) 및 바이패스 이진 인코딩부(bypass binary encoding unit)(350)를 포함한다. 여기서, 상기 정규 이진 인코딩부(regular binary encoding unit)(340) 및 상기 바이패스 이진 인코딩부(bypass binary encoding unit)(350)는 각각 정규 코딩 엔진, 바이패스 코딩 엔진이라 불릴 수 있다.
상기 이진화부(310)은 데이터 심볼들의 시퀀스를 수신하고 이진화를 수행함으로써 0 또는 1의 이진화된 값으로 구성된 이진 심볼(binary symbol) 스트링을 출력할 수 있다. 상기 이진화부(310)은 신택스(syntax) 요소들을 이진 심볼들로 매핑할 수 있다. 서로 다른 여러 이진화 과정들, 예를 들어, 단항(unary: U), 끝이 잘린 단항(truncated unary: TU), k차 Exp-Golomb(EGk), 및 고정 길이(Fixed Length) 과정 등이 이진화를 위해 사용될 수 있다. 상기 이진화 과정은 신택스 요소의 유형을 기반으로 선택될 수 있다.
출력된 이진 심볼 스트링은 컨텍스트 모델링부(320)으로 전송된다.
상기 컨텍스트 모델링부(320)은 메모리로부터 현재 블록을 코딩하는데 필요한 확률 정보를 선택하여 상기 이진 산술 인코딩부(330)로 전송한다. 예를 들어, 코딩할 신택스 엘리먼트에 기초하여 상기 메모리(360)에서 컨텍스트 메모리를 선택하고 빈 인덱스(binIdx)를 통해 현재 신택스 엘리먼트 코딩에 필요한 확률 정보를 선택할 수 있다. 여기서, 컨텍스트는 심볼의 발생 확률에 관한 정보를 의미하고, 컨텍스트 모델링은 이전까지 코딩된 빈(bin)들에 대한 정보로부터 다음 빈(bin)의 이진 산술 코딩에 필요한 확률을 추정하는 과정을 의미한다. 그리고, 컨텍스트는 특정 확률 값을 나타내는 상태(state)와 MPS(Most Probable Symbol)로 구성될 수 있다.
상기 컨텍스트 모델링부(320)는 높은 코딩 효율을 성취하기 위해 필요한 정확한 확률 추정을 제공할 수 있다. 이에 따라, 서로 다른 이진 심볼들에 대해 서로 다른 컨텍스트 모델들이 사용될 수 있고 이러한 컨텍스트 모델의 확률은 이전에 코딩된 이진 심볼의 값들을 기반으로 업데이트될 수 있다.
유사한 분포를 가지는 이진 심볼들은 동일한 컨텍스트 모델을 공유할 수 있다. 이러한 각 이진 심볼에 대한 컨텍스트 모델은 확률 추정을 위해, 빈의 신택스 정보, 빈 스트링에서의 빈의 위치를 나타내는 빈 인덱스(binIdx), 빈이 들어 있는 블록의 이웃 블록에 포함된 빈의 확률, 이웃 블록의 특정 신택스 요소의 디코딩 값 중 적어도 하나가 이용될 수 있다.
상기 이진 산술 인코딩부(330)는 정규 이진 인코딩부(regular binary encoding unit)(340) 및 바이패스 이진 인코딩부(bypass binary encoding unit)(350)를 포함하고, 출력된 스트링에 대한 엔트로피 인코딩을 수행하고 압축된 데이터 비트들을 출력한다.
상기 정규 이진 인코딩부(regular binary encoding unit)(340)는 재귀적 간격 분할(recursive interval division)을 기반으로 산술 코딩을 수행한다.
먼저, 0 내지 1의 초기값을 가지는 간격(또는 구간, 범위)이 이진 심볼의 확률을 기반으로 두 개의 하위 간격들로 분할된다. 인코딩된 비트들은 이진 소수로 변환되는 경우 이진 심볼의 값들이 연속적으로 디코딩되는 과정에서 0 또는 1을 나타내는 간격 중 하나를 선택할 수 있는 오프셋을 제공한다.
디코딩된 모드의 이진 심볼 이후에, 상기 간격은 선택된 하위 간격을 동일하게 하기 위해 업데이트될 수 있으며, 상기 간격 분할 과정 자체가 반복된다. 상기 간격 및 오프셋은 제한된 비트 정밀도를 가지며, 따라서 상기 간격이 특정한 값 아래로 떨어질 때마다 오버플로우를 방지하기 위해 재정규화(renormalization)가 필요할 수 있다. 상기 재정규화(renormalization)는 각각의 이진 심볼이 인코딩 또는 디코딩된 이후에 발생할 수 있다.
상기 바이패스 이진 인코딩부(bypass binary encoding unit)(350)는 컨텍스트 모델 없이 인코딩을 수행하며, 현재 코딩되는 빈(bin)의 확률을 0.5로 고정하여 코딩을 수행한다. 이는 신택스의 확률을 결정하기 어렵거나 고속으로 코딩하고자 할 때 이용될 수 있다.
도 4는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 디코딩부의 개략적인 블록도를 나타낸다.
본 발명이 적용되는 엔트로피 디코딩부(400)는 컨텍스트 모델링부(410), 이진 산술 디코딩부(420), 메모리(450) 및 역이진화부(460)를 포함하고, 상기 이진 산술 디코딩부(420)는 정규 이진 디코딩부(regular binary decoding unit)(430) 및 바이패스 이진 디코딩부(bypass binary decoding unit)(440)를 포함한다.
상기 엔트로피 디코딩부(400)는 비트 스트림을 수신하고 현재 신택스 요소에 바이패스 모드(bypass mode)가 적용되는지 여부를 확인한다. 여기서, 바이패스 모드(bypass mode)는 컨텍스트 모델을 이용하지 않고, 현재 코딩되는 빈(bin)의 확률을 0.5로 고정하여 코딩을 수행하는 것을 의미한다. 바이패스 모드(bypass mode)가 적용되지 않는 경우, 상기 정규 이진 디코딩부(regular binary decoding unit)(430)는 정규 모드(regular mode)에 따라 이진 산술 디코딩을 수행한다.
이때, 상기 컨텍스트 모델링부(410)는 상기 메모리(450)로부터 현재 비트스트림을 디코딩하는데 필요한 확률 정보를 선택하여 상기 정규 이진 디코딩부(regular binary decoding unit)(430)로 전송한다.
한편, 바이패스 모드(bypass mode)가 적용되는 경우, 상기 바이패스 이진 디코딩부(bypass binary decoding unit)(440)는 바이패스 모드(bypass mode)에 따라 이진 산술 디코딩을 수행한다.
상기 역이진화부(460)는 상기 이진 산술 디코딩부(420)에서 디코딩된 이진수 형태의 빈(bin)을 입력받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력하게 된다.
도 5는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 인코딩 흐름도를 나타낸다.
인코더는, 신택스 엘리먼트에 대해 이진화를 수행할 수 있다(S510).
상기 인코더는, 정규 모드에 따라 이진 산술 코딩을 수행할지 또는 바이패스 모드에 따라 이진 산술 코딩을 수행할지 여부를 확인할 수 있다(S520).
정규 모드의 경우, 상기 인코더는 컨텍스트 모델을 선택할 수 있고(S530), 상기 컨텍스트 모델에 기초하여 이진 산술 인코딩을 수행할 수 있다(S540). 그리고, 상기 인코더는, 컨텍스트 모델을 업데이트할 수 있으며(S550), 상기 S530 단계에서 업데이트된 컨텍스트 모델에 기초하여 다시 적합한 컨텍스트 모델을 선택할 수 있다.
한편, 바이패스 모드의 경우, 상기 인코더는 확률 0.5에 기초하여 이진 산술 인코딩을 수행할 수 있다(S560).
도 6은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 디코딩 흐름도를 나타낸다.
먼저, 디코더는 비트스트림을 수신할 수 있다(S610).
상기 디코더는 현재 신택스 요소에 정규 모드(regular mode)가 적용되는지 또는 바이패스 모드(bypass mode)가 적용되는지 여부를 확인할 수 있다(S620). 여기서, 상기 바이패스 모드의 적용 여부는 신택스의 종류에 따라 사전에 결정되어 있을 수 있다.
또한, 정규 모드가 적용되는 심볼들과 바이패스 모드가 적용되는 심볼들이 조합되어 신택스 요소를 구성할 수도 있다. 이 경우, 상기 디코더는 현재 신택스 요소의 심볼들에 바이패스 모드(bypass mode)가 적용되는지 여부를 확인할 수 있다.
상기 S620 단계에서 확인한 결과 정규 모드가 적용되는 경우, 상기 디코더는 컨텍스트 모델을 선택할 수 있고(S630), 상기 컨텍스트 모델에 기초하여 이진 산술 디코딩을 수행할 수 있다(S640). 그리고, 상기 디코더는 컨텍스트 모델을 업데이트할 수 있으며(S650), 상기 S630 단계에서 업데이트된 컨텍스트 모델에 기초하여 다시 적합한 컨텍스트 모델을 선택할 수 있다.
한편, 상기 S620 단계에서 확인한 결과 바이패스 모드가 적용되는 경우, 상기 디코더는 확률 0.5에 기초하여 이진 산술 디코딩을 수행할 수 있다(S660).
상기 디코더는 디코딩된 빈 스트링(bin string)에 대해 역이진화를 수행할 수 있다(S670). 예를 들어, 디코딩된 이진수 형태의 빈(bin)을 입력받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력할 수 있다.
최근 비디오 표준에서 고화질, 고프레임율, 고해상도의 영상을 코딩하는 경우, 산술 코딩(arithmetic coding) 알고리즘 등에 내재된 데이터 의존성으로 인해 엔트로피 코딩(entropy coding) 절차가 전체 성능의 병목이 될 가능성이 크다. 많은 비트 데이터가 발생하는 프레임들이 연속되는 경우, 실시간 처리를 위해 여러 프레임들을 버퍼링해야 하므로 상당한 크기의 버퍼 메모리가 필요할 수 있다. 따라서, 엔트로피 코딩의 처리량(throughput) 향상이 요구된다.
현재 널리 적용되는 엔트로피 코딩(entropy coding) 방법으로 산술 코딩(arithmetic coding) 방법을 들 수 있다. 예를 들어, H.264, HEVC의 경우 이진 심볼(binary symbol)들에 대한 엔트로피 코딩 방법으로 심볼에 대한 확률이 적응적으로 변하는 CABAC(Context-Adaptive Binary Arithmetic Coding)을 적용한다. 여기서, 이진 심볼(binary symbol)은 0 또는 1의 값을 가지는 심볼을 말한다. 반면에, 멀티 심볼(multi-symbol)(즉, 다치 심볼, non-binary symbol) 은 3개 이상의 값을 가질 수 있는 심볼을 말한다.
산술 코딩 엔진으로 최종 입력되는 가능한 모든 단위 숫자들의 집합은 알파벳(alphabet)으로 지칭될 수 있다. 따라서, 이진 심볼의 경우에는 알파벳이 0과 1로 구성되어 있다고 표현될 수도 있고, 알파벳 심볼로 0과 1이 가능하다고 표현될 수도 있다.
산술 코딩에서 [0, 1]의 간격(또는 구간)(interval)은 각 심볼 발생의 확률에 비례하는 확률 간격으로 나눠진다. 각 확률 간격의 길이는 해당 심볼(symbol)에 대한 확률 값에 비례하여 결정된다. 간격을 각 심볼들의 확률 간격에 비례하여 나눈 후, 상기 현재 코딩되는 심볼에 대한 간격이 선택되고, 상기 선택된 간격이 다음 심볼을 코딩할 때 사용된다. 심볼들이 코딩되면서 간격의 길이는 계속 작아지기 때문에, 재정규화(renormalization) 절차를 통해 간격 길이를 스케일링(scaling)하여, 간격의 길이가 항상 일정 범위 안에 놓이도록 할 수 있다.
이진 산술 코딩에서는 확률 간격이 2개로 나눠지고, 멀티 심볼(또는 다치 심볼) 산술 코딩에서는 확률 간격이 사용되는 심볼의 수만큼(즉, 알파벳 심볼의 수만큼) 나눠진다. 나눠지는 간격의 개수를 제외하면 산술 코딩 방법은 이진 산술 코딩과 멀티 심볼 산술 코딩간에 차이가 존재하지 않는다. 다시 말해, 이진 산술 코딩과 멀티 심볼 산술 코딩에 동일한 산술 코딩 방법이 적용될 수 있다.
본 발명에서는 엔트로피 코딩의 처리량을 향상시키기 위해 심볼들을 여러 비트 스트림에 코딩하여 병렬화하는 방법을 제안한다.
구체적으로, 본 발명에서는 심볼(symbol), 신택스 요소(syntax element) 또는 심볼 그룹(symbol group) 단위로 심볼들을 여러 비트 스트림에 매핑하여 산술 코딩을 병렬화하는 방법을 제안한다.
또한, 본 발명에서는 정규 코딩(regular coding)을 적용한 심볼들과, 바이패스 코딩(bypass coding)을 적용한 심볼들을 여러 비트 스트림에 할당하여 병렬적으로 코딩하는 방법을 제안한다.
또한, 본 발명에서는 심볼 그룹(symbol group)들을 여러 비트 스트림에 매핑하고, 파이프라이닝(Pipelining) 방식으로 코딩하여 병렬화하는 방법을 제안한다.
이하 본 발명의 설명에 있어 설명의 편의를 위해, CABAC (Context Adaptive Binary Arithmetic Coding) 을 기준으로 예를 들어 설명하나, 본 발명이 이에 한정되는 것은 아니다.
또한, 본 발명의 설명에 있어 설명의 편의를 위해, 이진 심볼을 기준으로 예를 들어 설명하나, 본 발명이 이에 한정되는 것은 아니다. 즉, 본 발명에서 제안하는 방법들은 이진 심볼 또는 멀티 심볼에 관계 없이 적용될 수 있다.
도 7은 본 발명이 적용되는 실시예로서, 복수 개의 비트 스트림(bit-stream)을 이용한 엔트로피 인코딩 방법을 나타내는 흐름도이다.
인코더는 신택스 요소(syntax element)에 대해 이진화(Binarization)를 수행할 수 있다(S701).
인코더는 정규 모드에 따라 이진 산술 코딩을 수행할지 또는 바이패스 모드에 따라 이진 산술 코딩을 수행할지 여부를 확인할 수 있다(S702).
정규 모드의 경우, 인코더는 심볼(symbol), 신택스 요소(syntax element) 또는 심볼 그룹(symbol group) 단위로 비트 스트림을 스위칭할 수 있다(S703).
인코더는 심볼(즉, 빈(bin)), 신택스 요소 또는 심볼 그룹 단위로 비트 스트림을 스위칭하여 복수 개의 비트 스트림에 빈(bin)들을 할당하고, 각각의 비트 스트림에서 이진 산술 인코딩을 수행할 수 있다. 이에 대한 상세한 설명은 후술한다.
각각의 비트 스트림에서 할당된 빈(bin)들의 인코딩은 앞서 도 5에서 설명한 방법과 동일하게 수행될 수 있다. 즉, 인코더는 컨텍스트 모델을 선택할 수 있고(S704), 상기 컨텍스트 모델에 기초하여 이진 산술 인코딩을 수행할 수 있다(S705). 그리고, 상기 인코더는, 컨텍스트 모델을 업데이트할 수 있으며(S706), 상기 S704 단계에서 업데이트된 컨텍스트 모델에 기초하여 다시 적합한 컨텍스트 모델을 선택할 수 있다.
하나의 신택스 요소는 여러 개의 빈(bin)들로 구성될 수 있는데, 각 빈(bin)은 다른 빈(bin)들과 동일한 컨텍스트 모델을 사용하여 코딩될 수도 있고, 다른 컨텍스트 모델을 사용하여 코딩될 수도 있다.
만약, 동일한 컨텍스트 모델을 사용하여 코딩되는 경우, 이전 빈(bin)의 코딩 과정에서 업데이트된 컨텍스트를 이후에 코딩되는 빈(bin)이 참조한다. 따라서, 빈(bin)들이 동일한 컨텍스트 모델을 이용하여 코딩되는 경우에는, 빈(bin)들간 데이터 의존성(data dependency)이 존재할 수 있다.
여러 비트 스트림을 이용하여 코딩하는 경우, 모든 비트 스트림이 동일한 컨텍스트 모델을 공유할 수도 있고 비트 스트림 마다 개별적인 컨텍스트 모델을 가질 수도 있다.
비트 스트림 마다 개별적인 컨텍스트 모델을 가지는 경우, 다른 비트 스트림의 코딩 정보에 대한 데이터 의존성이 낮아져 병렬 수행성(parallelism)이 높아질 수 있다.
모든 비트 스트림이 동일한 컨텍스트 모델을 공유하는 경우, 만약 서로 다른 비트 스트림에서 코딩되는 신택스 요소(또는 빈(bin))간에 데이터 의존성이 존재하지 않는다면, 개별적인 컨텍스트 모델을 사용하는 효과를 가짐과 동시에, 전체적인 빈(bin)의 발생 확률을 충분히 반영할 수 있다.
한편, 바이패스 모드의 경우, 인코더는 빈(bin), 신택스 요소 또는 심볼 그룹 단위로 비트 스트림을 스위칭할 수 있다(S707). 이에 대한 상세한 설명은 후술한다.
인코더는 확률 0.5에 기초하여 이진 산술 인코딩을 수행할 수 있다(S708).
빈(bin), 신택스 요소 또는 심볼 그룹 단위로 비트 스트림을 전환하여 인코딩을 수행함으로써, 각 비트 스트림에 비트 데이터를 쓰는 산술 인코딩 엔진을 병렬적으로 수행하도록 할 수 있고, 이를 통해 엔트로피 코딩의 처리량을 향상시킬 수 있다.
도 8은 본 발명이 적용되는 실시예로서, 복수 개의 비트 스트림(bit-stream)을 이용한 엔트로피 디코딩 방법을 나타내는 흐름도이다.
디코더는 복수 개의 비트스트림으로 구성된 비디오 신호를 수신할 수 있다(S801).
그리고, 디코더는 각각의 비트 스트림에서 심볼들을 디코딩할 수 있다. 각각의 비트 스트림에서 심볼 단위로 디코딩이 수행되지만, 디코더는 재정규화(renormalization)가 수행될 때만 비트 스트림을 읽기 때문에, S801 단계에서의 상기 비트 스트림 수신이 심볼 단위로 요구되지 않을 수 있다.
구체적으로, 디코더는 현재 신택스 요소에 정규 모드(regular mode)가 적용되는지 또는 바이패스 모드(bypass mode)가 적용되는지 여부를 확인할 수 있다(S802). 여기서, 상기 바이패스 모드의 적용 여부는 신택스의 종류에 따라 사전에 결정되어 있을 수 있다.
또한, 정규 모드가 적용되는 심볼들과 바이패스 모드가 적용되는 심볼들이 조합되어 신택스 요소를 구성할 수도 있다. 이 경우, 상기 디코더는 현재 신택스 요소의 심볼들에 바이패스 모드(bypass mode)가 적용되는지 여부를 확인할 수 있다.
상기 S802 단계에서 확인한 결과 정규 모드가 적용되는 경우, 디코더는 컨텍스트 모델을 선택할 수 있고(S803), 상기 컨텍스트 모델에 기초하여 이진 산술 디코딩을 수행할 수 있다(S804). 그리고, 디코더는, 컨텍스트 모델을 업데이트할 수 있으며(S805), 상기 S803 단계에서 업데이트된 컨텍스트 모델에 기초하여 다시 적합한 컨텍스트 모델을 선택할 수 있다.
한편, 상기 S802 단계에서 확인한 결과 바이패스 모드가 적용되는 경우, 디코더는 확률 0.5에 기초하여 이진 산술 디코딩을 수행할 수 있다(S806).
디코더는 디코딩된 빈스트링(bin string)에 대해 역이진화를 수행할 수 있다(S807). 예를 들어, 디코딩된 이진수 형태의 빈(bin)을 입력 받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력할 수 있다.
상기 빈스트링은 복수 개의 비트 스트림 중 어느 하나의 비트 스트림으로부터 생성될 수도 있고, 복수 개의 비트 스트림으로부터 디코딩된 빈(bin)들을 조합하여 생성될 수도 있다.
만약 복수 개의 비트 스트림으로부터 디코딩된 빈(bin)들을 조합하여 생성되는 경우, 상기 S807 단계에 앞서 디코딩된 빈(bin)들을 조합하여 빈스트링을 생성하는 단계가 수행될 수 있다.
빈(bin), 신택스 요소 또는 심볼 그룹 단위로 비트 스트림을 전환하여 엔트로피 디코딩을 수행함으로써, 각 비트 스트림에 비트 데이터를 읽는 산술 디코딩 엔진을 병렬적으로 수행하도록 할 수 있고, 이를 통해 엔트로피 코딩의 처리량을 향상시킬 수 있다.
인코더/디코더는 빈(bin) 단위로 복수 개의 비트 스트림(bit-stream)에 빈(bin)들을 매핑하여 엔트로피 인코딩/디코딩을 수행할 수 있다.
이하, 본 발명의 설명에 있어, 설명의 편의를 위해 상기 복수 개의 비트 스트림(bit-stream)이 4개로 구성되는 경우를 가정하여 설명하나, 본 발명이 이에 한정되는 것은 아니다.
인코더/디코더는 4개의 비트 스트림에 빈(bin)들을 매핑하여 코딩(또는 이슈(issue))할 수 있다. 여기서, 상기 4개의 비트 스트림은 제 1 비트 스트림, 제 2 비트 스트림, 제 3 비트 스트림, 제 4 비트 스트림(이하, 설명의 편의상 각각 BS1, BS2, BS3, BS4으로 지칭한다)으로 구성된다.
예를 들어, 인코더/디코더는 라운드 로빈(round-robin) 방식으로 빈(bin)의 순서(또는 위치)에 따라 비트 스트림에 각 빈(bin)들을 매핑하여 코딩할 수 있다. 여기서, 상기 빈(bin)의 순서는 이진화된 신택스 요소인 빈스트링(bin string) 내에서의 빈(bin)의 순서(또는 위치)를 나타낸다.
즉, i 번째 빈(bin)인 bin i 는 BS(((i-1) mod 4)+1)에 매핑될 수 있다. 예를 들어, bin1는 BS1에, bin2는 BS2에, bin3는 BS3에, bin4는 BS4에, bin5는 BS1에 매핑될 수 있다.
인코더/디코더는 다양한 여러 방법을 이용하여 빈(bin) 단위로 비트 스트림(bit-stream)을 스위칭(switching)하여 엔트로피 인코딩/디코딩을 수행할 수 있다. 아래의 도면을 참조하여 설명한다.
도 9 내지 도 11는 본 발명이 적용되는 실시예로서, 이진 심볼(binary symbol)을 여러 비트 스트림(bit-stream)에 매핑하여 엔트로피 코딩을 수행하는 방법을 나타내는 도면이다.
도 9 내지 도 11에서는 각 빈(bin)들이 라운드 로빈(round-robin) 방식으로 순서에 따라 비트 스트림에 매핑되는 경우를 가정한다.
도 9을 참조하면, 각각의 빈(bin)과 이전 순서의 빈(bin) 사이 데이터 의존성이 존재하는 경우를 가정한다.
현재 코딩되는 빈(bin)(이하, 현재 처리 빈(bin) 또는 현재 빈(bin)으로 지칭될 수 있다)과 이전 순서의 빈(bin)간에 의존성(또는 의존성)이 있는 경우, 상기 현재 코딩되는 빈(bin)은 상기 이전 순서의 빈(bin)의 코딩 정보를 참조하여 코딩될 수 있다.
만약 인코더/디코더는 이전 순서의 빈(bin)이 코딩되지 않은 경우, 상기 이전 순서의 빈(bin)의 코딩 정보를 기다려 현재 빈(bin)을 코딩할 수 있다.
따라서, 인코더/디코더는 빈(bin)의 순서에 따라 한 사이클 하나의 빈(bin)을 비트 스트림을 전환하면서 코딩할 수 있다.
빈(bin)들 간에 데이터 의존성이 존재하는 경우는, 예를 들어, 동일한 컨텍스트 모델을 사용하는 경우, 현재 빈(bin)의 코딩에 사용되는 컨텍스트를 결정하기 위하여 이전에 코딩된 정보(예를 들어, 이전에 코딩된 빈(bin)의 값)를 참조하는 경우 등이 있을 수 있다. 이 경우, 인코더/디코더는 데이터 의존성을 고려하여, 업데이트된 컨텍스트 모델, 이전에 코딩된 정보 등을 기다려 다음 사이클에 해당 빈(bin)을 코딩할 수 있다.
인코더/디코더는 각 비트 스트림에 할당된 빈(bin)들을 코딩하기 앞서 현재 빈(bin)과 다른 비트 스트림의 심볼(또는 이전에 코딩된 정보)간 데이터 의존성을 확인할 수 있다. 상기 확인된 결과에 따라, 데이터 의존성이 존재하지 않는 경우에는 인코더/디코더는 바로 상기 현재 빈(bin)에 대한 코딩을 수행할 수 있다. 만약, 데이터 의존성이 존재하는 경우, 다른 비트 스트림의 심볼의 코딩된 정보(또는 이전에 코딩된 정보)를 기다린 후, 현재 빈(bin)에 대한 코딩을 수행할 수 있다.
만약, 빈(bin)들 간에 데이터 의존성이 없는 경우에는 동시에 개별적으로 해당 비트 스트림에 코딩될 수 있다. 예를 들어, 빈(bin)의 순서 상 이전 빈(bin)에 대하여 데이터 의존성이 없는 경우에는 도 10에서 도시하고 있는 바와 같이, 동일 사이클에 코딩될 수 있다.
이진 산술 코딩에서 이전에 코딩된 빈(bin)들의 정보를 포함하고 있는 간격(interval)은 계속 업데이트된다. 그리고, 간격을 표현하기 위해서는 간격의 시작 위치를 나타내는 변수(이하, 베이스(base)라 지칭)와 간격의 길이를 나타내는 변수(이하, 길이(length)라 지칭)가 필요하다.
복수 개의 비트 스트림은 각 비트 스트림마다 개별적인 변수 셋(set)인 베이스의 길이를 가지며, 각각의 비트 스트림은 상기 개별적인 변수 셋(베이스와 길이)를 이용하여 코딩되는 빈(bin)들의 정보를 표현할 수 있다.
도 10을 참조하면, bin1과 bin2는 데이터 의존 관계에 있지 않기 때문에, bin1과 bin2는 동일 사이클에 코딩될 수 있다. 마찬가지로, bin3과 bin4, bin5는 데이터 의존 관계에 있지 않기 때문에, 동일 사이클에 코딩될 수 있다. 반면에, bin3 와 bin2간, bin6와 bin5간 각각 데이터 의존성이 존재하기 때문에, 동일 사이클에 코딩될 수 없다. 이 경우, bin3과 bin6은 각각 bin2와 bin5의 코딩된 정보를 기다려, 즉 데이터 의존성 관계에 있는 빈(bin)이 코딩되는 사이클의 다음 사이클에 코딩될 수 있다.
도 11를 참조하면, 빈의 순서 상으로 늦은 순서의 빈(bin)이 다른 비트 스트림에 먼저 코딩될 수 있다. 즉, 데이터 의존성이 없는 bin5는 bin4 보다 먼저 코딩될 수 있고, 데이터 의존성이 없는 bin13은 bin11, bin12 보다 먼저 코딩될 수 있다.
인코더/디코더는 빈스트링 내 빈의 순서에 관계 없이 데이터 의존성을 고려하여 코딩할 수 있다.
이상에서, 라운드 로빈(round-robin) 방식으로 빈(bin)들을 비트 스트림(bit-stream)에 할당하는 방법을 예로 들어 설명하였으나, 이에 한정되는 것은 아니다. 인코더와 디코더에서 동일하게 라운드 로빈 방식과 다른 비트 스트림 할당 방법이 적용될 수 있다.
예를 들어, 인코더/디코더에서 비트 스트림 할당 순서(또는 비트 스트림 순서)를 동일하게 설정할 수 있다. 예를 들어, 인코더/디코더는 (BS1, BS1, BS1, BS1, BS2, BS2, BS3, BS3, BS4)와 같이 비트 스트림 할당 순서를 정할 수 있고, 상기 비트 스트림 할당 순서를 주기로 빈(bin)들을 비트 스트림에 매핑하여 코딩할 수 있다.
인코더/디코더는 신택스 요소(syntax element) 단위로 복수 개의 비트 스트림에 빈(bin)들을 매핑하여 엔트로피 인코딩/디코딩을 수행할 수 있다.
구체적으로, 인코더/디코더는 연속된 빈(bin)들이 동일한 신택스 요소에 속하는 경우, 상기 연속된 빈(bin)들을 동일한 비트 스트림에 코딩되도록 구성할 수 있다. 예를 들어, 인코더/디코더는 라운드 로빈(round-robin) 방식으로 신택스 요소들을 비트 스트림에 매핑하여 코딩할 수 있다.
인코더/디코더는 다양한 여러 방법을 이용하여 신택스 요소 단위로 비트 스트림(bit-stream)을 스위칭(switching)하여 엔트로피 인코딩/디코딩을 수행할 수 있다. 아래의 도면을 참조하여 설명한다.
도 12 내지 도 14는 본 발명이 적용되는 실시예로서, 신택스 요소(syntax element) 단위로 여러 비트 스트림(bit-stream)에 매핑하여 엔트로피 코딩을 수행하는 방법을 나타내는 도면이다.
도 12 내지 도 14를 참조하면, 각 신택스 요소들이 라운드 로빈(round-robin) 방식으로 순서에 따라 비트 스트림에 매핑되는 경우를 가정한다.
도 12을 참조하면, 신택스 요소 A, B, C, D, E는 각각, BS1, BS2, BS3, BS4, BS1에 매핑될 수 있다. 여기서, A.bini는 신택스 요소 A의 i번째 bin을 나타낸다.
도 12에 도시된 바와 같이 신택스 요소 단위로 코딩되는 비트 스트림이 전환될 수 있다.
여기서, 각각의 신택스 요소들은 동일한 종류의 신택스 요소일 수도 있고, 다른 종류의 신택스 요소일 수도 있다. 여기서, 동일한 종류의 신택스 요소는 신택스 구조 상에서 같은 위치의 신택스 요소를 말한다. HEVC를 예로 들면, 신택스 요소 A, B가 모두 HEVC에서의 rem_intra_luma_pred_mode인 경우 동일한 종류의 신택스 요소일 수 있다. 반면에 다른 종류의 신택스 요소는 신택스 구조 상에서 다른 위치의 신택스 요소를 말한다. HEVC를 예로 들면, 신택스 요소 A는 mpm_idx이고, 신택스 요소 B는 rem_intra_luma_pred_mode인 경우, 다른 종류의 신택스 요소에 해당할 수 있다.
신택스 요소의 첫 번째 빈(bin)이 이전 신택스 요소의 마지막 빈(bin)에 대하여 의존성이 존재하는 경우, 도 12에서 도시하고 있는 바와 같이 사이클 당 하나의 빈(bin)만 코딩될 수 있다.
인코더/디코더는 각 비트 스트림에 할당된 빈(bin)들을 코딩하기 앞서 현재 빈(bin)과 다른 비트 스트림의 심볼(또는 이전에 코딩된 정보)간 데이터 의존성을 확인할 수 있다. 상기 확인된 결과에 따라, 데이터 의존성이 존재하지 않는 경우에는 인코더/디코더는 바로 상기 현재 빈(bin)에 대한 코딩을 수행할 수 있다. 만약, 데이터 의존성이 존재하는 경우, 다른 비트 스트림의 심볼의 코딩된 정보(또는 이전에 코딩된 정보)를 기다린 후, 현재 빈(bin)에 대한 코딩을 수행할 수 있다.
만약, 신택스 요소간에 데이터 의존성이 존재하지 않는 경우에는 동시에 개별적으로 해당 비트 스트림에 코딩될 수 있다. 예를 들어, 순서상 이전 신택스 요소에 대하여 데이터 의존성이 없는 경우에는 도 13에서 도시하고 있는 바와 같이, 동일 사이클에 코딩될 수 있다.
도 13을 참조하면, 신택스 요소 B는 신택스 요소 A에 대하여 의존성이 없기 때문에 신택스 요소 A와 B는 동일 사이클에 코딩될 수 있다. 마찬가지로, 신택스 요소 G는 신택스 요소 F에 대하여, 신택스 요소 K는 신택스 요소 J에 대하여 의존성이 없기 때문에, 동일 사이클에 코딩될 수 있다.
도 14를 참조하면, 신택스 요소의 순서 상 늦은 순서의 신택스 요소가 다른 비트 스트림에 먼저 코딩될 수 있다. 즉, 전체 신택스 요소들(A, B, C, D, E, F, …)간 순서의 순서에 관계없이, 각각 할당된 비트 스트림 내에서의 코딩 순서에 따라 비트 스트림에 코딩될 수 있다. 이때, 인코더/디코더는 데이터 의존성을 고려하면서 신택스 요소 내 빈(bin)들을 코딩할 수 있다.
도 14에서 도시되지 않았지만, 만약, 신택스 요소 M이 L.bin2와 데이터 의존 관계에 있지 않은 경우, 신택스 요소 M은 신택스 요소 L보다 먼저 코딩될 수도 있다.
이상에서, 라운드 로빈(round-robin) 방식으로 빈(bin) 단위의 비트 스트림(bit-stream)에 할당 방법을 예로 들어 설명하였으나, 이에 한정되는 것은 아니다. 즉, 인코더와 디코더에서 동일하게 라운드 로빈 방식과 다른 비트 스트림 할당 방법이 적용될 수 있다.
예를 들어, 인코더/디코더에서 비트 스트림 할당 순서(또는 비트 스트림 순서)를 동일하게 설정할 수 있다. 예를 들어, 인코더/디코더는 (BS1, BS1, BS1, BS1, BS2, BS2, BS3, BS3, BS4)와 같이 비트 스트림 할당 순서를 정할 수 있고, 상기 비트 스트림 할당 순서를 주기로 빈(bin)들을 비트 스트림에 매핑하여 코딩할 수 있다.
또한, 만약 동일한 종류의 신택스 요소들이 연속적으로 코딩되는 경우, 비트 스트림을 전환하지 않도록 할 수도 있다. 예를 들어, 앞서 도 10의 신택스 요소 A와 B, 그리고 신택스 요소 C와 D가 각각 동일한 종류의 신택스 요소인 경우, BS1에서 신택스 요소 A, B를 코딩하고 BS2에서 신택스 요소 C, D를 코딩할 수 있다.
또한, 데이터 의존 관계 등을 고려하여 특정 종류의 신택스 요소들은 특정 비트 스트림에 고정하여 코딩되도록 구성하고, 나머지 신택스 요소들을 상기 특정 비트 스트림을 제외한 나머지 비트 스트림에 코딩되도록 구성할 수 있다.
이때, 특정 비트 스트림에 고정된 신택스 요소(또는 신택스 요소의 종류)들을 제외한 나머지 신택스 요소들은 앞서 도 10 내지 도 12에서 설명한 방법에 따라 나머지 비트 스트림에 코딩될 수 있다. 예를 들어, 앞서 도 12에서 신택스 요소 A는 BS1, 신택스 요소 B는 BS2에 할당하고, 나머지 신택스 요소, 즉, 신택스 요소 C와 D는 BS3, BS4를 번갈아 가면서 코딩할 수 있다.
또한, 예를 들어, 특정 종류의 신택스 요소들을 특정 비트 스트림에 고정하는 경우, 해당 신택스 요소가 코딩되는 특정 루틴(routine)에 대해서만 (예를 들어, transform_tree, prediction_unit의 코딩 등) 상기 특정 비트 스트림에 고정되도록 설정할 수 있다. 이 경우, 예를 들어, 상기 특정 비트 스트림에 지정된 신택스 요소(또는 신택스 요소의 종류) 이외에 다른 신택스 요소들이 코딩되도록 설정할 수도 있고, 다른 신택스 요소들은 코딩되지 않도록 설정할 수도 있다.
만약, 지정된 신택스 요소 이외에 다른 신택스 요소들도 코딩되도록 구성하는 경우, 지정된 신택스 요소들과의 코딩 순서가 인코더와 디코더에서 동일하도록 구성할 필요가 있다.
신택스 요소의 종류를 Cn으로 나타내고, C1, C2가 각각 BS1, BS2에 고정되는 경우를 가정하면, 인코더/디코더는 비트 스트림이 고정된 C1, C2를 제외하고 나머지 신택스 요소 종류는 앞서 도 12내지 도 14에서 설명한 방법에 따라 비트 스트림이 할당되도록 할 수 있다.
예를 들어, 인코더/디코더는 비트 스트림이 고정된 모든 C1, C2를 제외하고 나머지 신택스 요소 종류들을 비트 스트림에 라운드 로빈(round-robin) 방식으로 할당할 수 있다.
예를 들어, 신택스 요소의 종류가 C1, C1, C3, C2, C4, C1, C2, C5, C3, C4, C2, C1, C6, C2와 같이 주어지는 심볼 시퀀스(symbol sequence)(또는 신택스 요소의 시퀀스)를 BS1, BS2, BS3, BS4에 할당하는 경우, 인코더/디코더는 각각의 신택스 요소 종류를 BS1, BS1, BS2, BS2, BS3, BS1, BS2, BS3, BS4, BS1, BS2, BS1, BS2, BS2에 매핑할 수 있다.
이상에서 이진 심볼 단위 또는 신택스 요소 단위로 비트 스트림을 전환하는 엔트로피 코딩 방법을 설명하였다. 이하에서는 정규 코딩(regualar coding)와 바이패스 코딩(bypass coding)을 고려한 비트 스트림 할당 방법을 설명한다.
정규 코딩은 컨텍스트(context)를 참조하고 업데이트하며 심볼들을 코딩하는 방법을 말한다. 바이패스 코딩은 모든 심볼들을 동일한 확률을 이용하여 코딩하는 것을 말한다. 바이패스 코딩에서 이진 심볼의 경우 모든 심볼들의 확률이 0.5가 된다.
바이패스 코딩은 정규 코딩과 혼재되어 하나의 비트 스트림에서 수행된다. 바이패스 코딩은 컨텍스트 참조 및 업데이트가 불필요하기 때문에 정규 코딩과 비교하여 훨씬 간단한 동작으로 수행될 수 있다.
따라서, 바이패스 코딩을 정규 코딩과 다른 방법으로 비트 스트림에 할당함으로써 엔트로피 코딩의 처리량을 향상시키고 복잡도를 개선할 수 있다.
이하에서, 여러 비트 스트림을 사용하여 바이패스 코딩 모드로 코딩되는 빈(bin) 또는 신택스 요소를 코딩하는 방법을 설명한다.
1) 인코더/디코더는 빈(bin) 단위로 비트 스트림을 번갈아가며 바이패스 코딩 모드로 코딩할 수 있다.
이때, 인코더/디코더는 앞서 도 9 내지 도 11에서 설명한 방법에 의해 바이패스 코딩 모드로 빈(bin)들을 코딩할 수 있다.
이 경우, 정규 코딩 모드로 코딩되는 빈(bin)(이하, 정규 코딩 빈이라 호칭될 수 있다)들은 바이패스 코딩 모드로 코딩되는 빈(이하, 바이패스 코딩 빈이라 호칭될 수 있다)들과 무관하게 빈(bin) 단위로 비트 스트림에 할당될 수도 있고, 신택스 요소 단위로 비트 스트림에 할당될 수도 있다.
바이패스 코딩은 컨텍스트를 참조하지 않기 때문에, 컨텍스트로 인한 데이터 의존성은 없지만, 이전에 코딩된 정보를 참조하는 경우에는 의존성이 존재할 수 있다. 예를 들어, 이전에 코딩된 빈(bin)의 값에 따라 이후 코딩된 빈(bin)들의 개수가 달라지는 경우 데이터 의존성이 존재할 수 있다. 이 경우, 인코더/디코더는 데이터 의존성을 고려하면서 여러 비트 스트림에서 빈(bin)들을 코딩할 수 있다.
2) 인코더/디코더는 신택스 요소 단위로 비트 스트림을 번갈아가며 바이패스 코딩 모드로 코딩할 수 있다.
이때, 인코더/디코더는 앞서 도 12 내지 도 14에서 설명한 방법에 의해 바이패스 코딩 모드로 빈(bin)들을 코딩할 수 있다.
이 경우, 정규 코딩 빈들은 바이패스 코딩 빈들과 무관하게 빈(bin) 단위로 비트 스트림에 할당될 수도 있고, 신택스 요소 단위로 비트 스트림에 할당될 수도 있다.
3) 인코더/디코더는 복수 개의 바이패스 코딩 빈들 단위로 비트 스트림을 번갈아가며 코딩할 수 있다.
바이패스 코딩은 정규 코딩과는 달리 여러 개의 빈(bin)들을 동시에 처리할 수 있도록 구현할 수 있다. 따라서, 인코더/디코더는 동시 처리 가능한 개수로 바이패스 코딩 빈들을 그룹핑하고, 상기 그룹 단위로 비트 스트림을 전환할 수 있다.
예를 들어, 인코더/디코더는 동시 처리 가능한 빈(bin) 수의 묶음(또는 그룹) 단위로 비트 스트림을 할당할 수 있다. 예를 들어, 동시 처리 가능한 바이패스 코딩 빈들의 수가 4개이고, 7개의 바이패스 코딩 빈들로 구성된 신택스 요소를 코딩하는 경우를 가정할 때, 인코더/디코더는 앞서는 4개의 빈(bin)들을 BS1에 할당하고, 이후의 3개의 빈(bin)들을 BS2에 할당할 수 있다.
동시 처리 가능한 바이패스 코딩 빈들의 수는 고정적으로 결정될 수도 있고, 시퀀스(sequence), 픽쳐(picture), 슬라이스(slice) 단위와 같은 상위 레벨 신택스에서 결정될 수도 있다.
만약, 신택스 요소 중에서 첫 번째 빈(bin)을 코딩해야 이후의 바이패스 코딩 빈의 개수를 알 수 있는 경우, 앞서는 1개의 바이패스 코딩 빈을 비트 스트림에 할당하고, 뒤이은 바이패스 코딩 빈들을 동시 처리 가능한 빈(bin) 수의 묶음(또는 그룹) 단위로 비트 스트림을 할당할 수 있다. 즉, 처음 1개의 빈(bin)과 뒤이은 빈(bin)들의 묶음을 단위로 비트 스트림에 할당할 수 있다. 이 경우, 앞서 도 9내지 도 14에서 설명한 방법에 따라 비트 스트림에 코딩할 수 있다.
예를 들어, 바이패스 코딩 모드로 첫 번째 빈(bin)을 코딩한 후에 6개의 빈(bin)을 코딩하는 경우, 인코더/디코더는 첫 번째 빈(bin)은 BS1에, 뒤이은 4개의 빈(bin)들과 2개의 빈(bin)들은 각기 BS2와 BS3에 코딩할 수 있다.
4) 인코더/디코더는 바이패스 코딩을 위한 별도의 비트 스트림을 할당할 수 있다.
다시 말해, 인코더/디코더는 바이패스 코딩만을 위한 배타적인 비트 스트림을 할당할 수 있다. 이 경우, 인코더/디코더는 상기 비트 스트림에 정규 코딩 빈들을 코딩할 수 없다.
바이패스 코딩을 위한 배타적인 비트 스트림을 이용하는 경우, 인코더/디코더는 이진 산술 인코딩/디코딩를 수행하지 않고 로우 데이터(raw data)를 상기 비트 스트림에 쓰거나, 상기 비트 스트림으로부터 읽을 수 있다.
인코더/디코더는 데이터 의존성을 고려하면서 바이패스 코딩 빈들을 정규 코딩 빈들과 동시에 코딩할 수 있다.
인코더/디코더는 바이패스 코딩을 위한 비트 스트림을 하나 이상 할당할 수 있다. 만약, 여러 개의 비트 스트림들을 바이패스 코딩을 위한 비트 스트림으로 할당하는 경우, 앞서 도 9 내지 도 14에서 설명한 방법에 따라 상기 여러 개의 비트 스트림들에 빈(bin) 또는 신택스 요소 단위로 코딩할 수 있다.
또한, 예를 들어, 인코더/디코더는 앞서 바이패스 코딩을 위한 비트 스트림을 경우에 따라 변경되도록 구성할 수 있다. 이 경우, 변경되는 비트 스트림을 인코더와 디코더에서 동일하게 설정할 수도 있고, 인코더가 디코더에게 변경되는 비트 스트림 정보를 시그널링할 수도 있다.
이하에서는 심볼 그룹(symbol group)들을 여러 비트 스트림에 매핑하고, 파이프라이닝(pipelining) 방식으로 코딩하여 엔트로피 코딩을 병렬화하는 방법을 설명한다.
인코더/디코더는 심볼들을 그룹핑(grouping)하고, 심볼 그룹들을 여러 비트 스트림들에 매핑하여 엔트로피 인코딩/디코딩을 수행할 수 있다. 심볼 그룹핑(symbol grouping)을 통해 여러 비트 스트림 상에서의 산술 코딩 수행을 파이프라이닝(pipelining)하여 엔트로피 코딩의 처리량을 높일 수 있다.
도 15은 본 발명이 적용되는 실시예로서, 심볼 그룹(symbol group)을 여러 비트 스트림(bit-stream)에 매핑하여 엔트로피 코딩을 수행하는 방법을 설명하기 위한 도면이다.
이하, 본 발명의 설명에 있어, 설명의 편의를 위해 심볼 그룹이 4개의 이진 심볼들로 이루어진 경우를 가정하여 설명하나, 본 발명의 심볼 그룹이 이에 한정되는 것은 아니다.
도 15(a)를 참조하면, 심볼 그룹 S_i는 4개의 이진 심볼(s_i1, s_i2, s_i3, s_i4) 들로 구성될 수 있다. 여기서, 상기 4개의 이진 심볼들은 컨텍스트 모델(각각 C_1, C_2, C_3, C_4)을 사용할 수 있다.
여러 개의 비트 스트림을 이용하여 코딩하는 경우, 모든 비트 스트림이 동일한 컨텍스트 모델를 공유할 수도 있고 비트 스트림 마다 개별적인 컨텍스트 모델을 가질 수도 있다. 또한, 심볼 그룹 내 각각의 이진 심볼들은 동일한 컨텍스트을 사용할 수도 있고, 개별적인 컨텍스트 모델을 사용할 수 있다.
도 15(b)를 참조하면, 인코더/디코더는 이진 심볼 그룹들(S1, S2, S3, …) 을 여러 비트 스트림들에 번갈아가며 코딩할 수 있다. 그리고, 전술한 바와 같이 각 비트 스트림 마다 간격(interval)을 나타내는 개별적인 변수 셋(베이스, 길이)을 가질 수 있다.
하나의 비트 스트림으로 모든 심볼들을 코딩하는 경우, 심볼을 코딩할 때마다 간격이 갱신되기 때문에 데이터 의존성이 발생한다. 따라서, 이 경우 심볼들을 동시에 코딩할 수 없다.
반면에, 여러 비트 스트림을 이용하여 심볼들을 코딩하는 경우, 비트 스트림마다 간격 정보를 인코딩/디코딩하기 때문에, 간격에 대한 데이터 의존성이 완화되어 심볼들을 병렬적으로 코딩할 수 있다.
현재 코딩되는 이진 심볼 그룹이 이전 그룹들의 코딩된 값들 또는 코딩 과정에서 업데이트된 컨텍스트들에 의존하는 경우, 현재 심볼 그룹 내 현재 심볼이 코딩되는 시점에 이용 가능한 정보만을 이용할 수 있다.
만약, 현재 심볼의 코딩 시점에 이전 심볼 그룹이 전부 코딩되지 않았다면, 상기 이전 심볼 그룹 내에서 아직 코딩되지 않은 이진 심볼들은 참조할 수 없다. 이를 고려하여, 심볼 그룹을 이용한 엔트로피 코딩 방법을 구체적으로 설명한다.
도 16는 본 발명이 적용되는 실시예로서, 이진 심볼 그룹(binary symbol group)을 여러 비트 스트림에 매핑하여 엔트로피 코딩을 수행하는 방법을 나타내는 도면이다.
도 16를 참조하면, 이진 심볼 그룹들이 하나의 이진 심볼 만큼의 거리(즉, 한 사이클 간격)를 두고 각각 다른 비트 스트림(BS1, BS2, BS3, BS4)에 코딩될 수 있다.
즉, 인코더/디코더는 심볼 그룹들을 파이프라이닝 방식으로 여러 비트 스트림에 코딩할 수 있다.
심볼 그룹 Si는 4개의 이진 심볼(s_i1, s_i2, s_i3, s_i4)들로 구성되고, s_ij는 컨텍스트 모델 C_j 를 참조하는 경우를 가정한다. 그리고, 상기 4개의 비트 스트림에 대하여 엔트로피 코딩을 수행하는 모든 CABAC 엔진들은 동일한 컨텍스트 셋(context set)을 공유한다고 가정한다. 여기서, 컨텍스트 셋은 복수 개의 컨텍스트 모델로 구성된 컨텍스트 모델의 집합을 말한다.
즉, 여러 비트 스트림이 컨텍스트 셋을 공유하고, 심볼 그룹 내에서 각 심볼들이 개별적으로 컨텍스트 모델을 참조할 수 있다.
이진 심볼 그룹들은 비트 스트림에 번갈아 가며 매핑되고, 각 비트 스트림에서 한 사이클에 하나의 이진 심볼이 코딩될 수 있다. 그리고, 이진 심볼을 코딩할 때마다 컨텍스트 C_j가 업데이트될 수 있다.
심볼 그룹 내 심볼의 순서에 따라 각 심볼들은 서로 다른 컨텍스트 모델을 사용할 수 있다. 구체적으로, s_i1는 C_1을 사용하고, s_i2 는 C_2을 사용하고, s_i3는 C_3을 사용하고, s_i4는 C_4을 사용할 수 있다.
C_j^(k+1)은 C_j^k가 업데이트된 컨텍스트를 가리킨다. 즉, C_j의 위 첨자는 컨텍스트가 업데이트되면서 증가한다.
각 비트 스트림에서 심볼 그룹 내 심볼들이 한 사이클 간격으로 코딩되기 때문에, 심볼 그룹 시퀀스를 나타내는 i가 증가함과 동시에 컨텍스트 모델 C_j가 업데이트될 수 있다.
모든 심볼 그룹들이 한 사이클만큼의 간격을 두고 코딩되기 때문에, 심볼 그룹 내 모든 심볼 s_ij는 가장 업데이트된 컨텍스트 모델을 사용할 수 있다.
전술한 바와 같이, 현재 심볼의 코딩 시점에 이전 심볼 그룹이 전부 코딩되지 않았다면, 상기 이전 심볼 그룹 내에서 아직 코딩되지 않은 이진 심볼들은 참조할 수 없다. 따라서, 현재 심볼 그룹을 코딩할 때 이전 심볼 그룹들을 구성하는 이진 심볼들 중 일부 심볼들은 현재 코딩하는 심볼에 대한 컨텍스트 결정에 활용하지 못할 수 있다. 예를 들어, s_31을 코딩할 때, 인코더/디코더는 s_13, s_14, s_22, s_23, s_24는 아직 코딩되기 전이기 때문에 컨텍스트 결정에 사용할 수 없다.
이전 심볼 그룹의 심볼들 중 일부 심볼들만 코딩된 시점부터 코딩하기 때문에, 만약 이전 심볼 그룹 내 아직 코딩되지 않은 심볼과 현재 코딩하는 심볼 사이에 데이터 의존성이 존재하는 경우, 파이프라인 스톨(pipeline stall)이 발생할 수 있다. 여기서, 파이프라이닝 스톨은 심볼 그룹 내에서 심볼 코딩의 지연을 의미한다.
따라서, 데이터 의존성이 최소화되도록 심볼들을 그룹핑하거나 컨텍스트의 결정 과정 등에서 이전 심볼 그룹 내 코딩되지 않은 심볼을 참조하지 않도록 구성함으로써 엔트로피 코딩의 처리량을 향상시킬 수 있다.
다시 말해, 아직 코딩되지 않은 심볼을 현재 컨텍스트를 결정하는데 사용되지 않도록 구성함으로써 파이프라인 스톨을 최소화하여 병렬 수행성(parallelism) 을 높일 수 있다.
예를 들어, s_ij는 si0 ~ si(j-1)에 대해서만 의존 관계를 갖도록 구성하면, 파이프라인 스톨 없이 매 사이클마다 한 심볼 그룹씩 코딩할 수 있고, 이를 통해 처리량을 향상시킬 수 있다.
도 16에서는 비트 스트림에 코딩되는 심볼 그룹이 4개(S_1, S_2, S_3, S_4)인 경우를 도시하고 있으나, 이는 하나의 예시로서 인코더/디코더는 계속적으로 이후의 심볼 그룹(S_5, S_6, S_7,…)을 비트 스트림에 코딩할 수 있고, 결과적으로 일정한 레이턴시(latency) 이후에 한 사이클 마다 한 심볼 그룹씩 코딩할 수 있다.
도 17는 본 발명이 적용되는 실시예로서, 이진 심볼 그룹(binary symbol group)을 여러 비트 스트림에 매핑하여 엔트로피 코딩을 수행하는 방법을 나타내는 도면이다.
도 17를 참조하면, s_i3과 s_(i-1)4간에 데이터 의존성이 존재하는 경우를 가정한다.
이때, 데이터 의존성으로 인해 s_i3은 s_(i-1)4이 코딩되는 사이클 보다 뒤의 사이클에서 코딩될 수 있다. 따라서, s_(i-1)4이 코딩될 때까지 s_i3이 코딩되지 않아 파이프라인 스톨이 발생할 수 있다. 이와 같이 파이프라인 스톨이 발생하는 경우, 한 사이클 당 한 심볼 그룹에 대한 코딩이 종료되지 않을 수 있고, 이로 인해 코딩 효율이 저하될 수 있다.
반면에, 심볼 그룹들 사이에 데이터 의존성이 존재하는 경우, 심볼 그룹을 구성하는 심볼들의 코딩 순서를 변경함으로써, 파이프라인 스톨의 발생을 막을 수도 있다. 아래의 도면을 참조하여 설명한다.
도 18는 본 발명이 적용되는 실시예로서, 이진 심볼 그룹(binary symbol group)을 여러 비트 스트림에 매핑하여 엔트로피 코딩을 수행하는 방법을 나타내는 도면이다.
도 18를 참조하면, s_i3과 s_(i-1)4간에 데이터 의존성이 존재하는 경우를 가정한다.
이 경우, 인코더/디코더는 심볼 그룹 내 s_i3과 s_i4의 코딩 순서를 변경하여 파이프라인 스톨이 발생하지 않도록 할 수 있다. 즉, s_i3가 코딩되는 시점에 s_(i-1)4에 대한 코딩 결과를 이용할 수 있기 때문에, 파이프라인 스톨이 발생하지 않을 수 있다.
또한, 두 이진 심볼 그룹간에 데이터 의존성이 존재하지 않는 경우에는 동시에 코딩될 수 있다.
또한, CABAC 엔진들이 각 비트 스트림 별로 독립적인 컨텍스트 모델을 사용하는 경우, 서로 다른 비트 스트림으로 코딩되는 심볼 그룹간 컨텍스트 참조로 인한 데이터 의존성은 사라질 수 있다.
본 명세서에서 제안하는 방법에 따른 이진 심볼 그룹은 다음과 같이 결정될 수 있다.
인코더/디코더는 단순히 하나의 신택스 요소를 구성하는 빈들을 이진 심볼 그룹으로 구성할 수 있다. 이 경우, 신택스 요소의 값에 따라 해당하는 이진 심볼 그룹의 길이가 가변적일 수 있다.
또한, 인코더/디코더는 하나의 신택스 요소를 구성하는 빈들을 일정한 개수의 빈들로 나누어 그룹핑할 수 있다.
또한, 인코더/디코더는 이진 심볼 그룹을 복수 개의 신택스 요소들로 구성할 수 있다. 이 경우, 인코더는 연이은 신택스 요소들을 합하여 이진 심볼을 구성할 수 있다.
예를 들어, 레지듀얼 코딩(Residual coding)에서 논-제로 계수(non-zero coefficient)에 대한 remaining level 값을 코딩할 때, 연속하여 코딩되는 remaining level 값의 4 비트 이진 코드들을 앞서 설명한 심볼 그룹핑 방법을 적용하여 코딩할 수 있다. 여기서, remaining level은 sig_coeff_flag, coeff_abs_level_greater1_flag, coeff_abs_level_greater2_flag 등을 사용하여 non-zero coefficient의 절대값에 대한 베이스 레벨(base level) 값을 구한 후 남은 값을 나타낸다.
예를 들어, remaining level 값이 비교적 작은 경우에 대해서 4 비트의 이진 코드를 할당한다고 가정하면(예를 들어, 0부터 14까지의 값을 0000 ~ 1110으로 할당하고, 15 이상의 값의 경우에는 1111값을 할당한 후 15 보다 큰 부분에 대해서 별도로 코딩할 수 있다), 인코더/디코더는 4 비트의 이진 코드 단위로 심볼 그룹핑을 수행할 수 있다.
4 비트 이진 코드에서 최상위 비트부터 최하위 비트까지 심볼 그룹 내 심볼들이 개별적인 컨텍스트 모델을 사용하는 경우, 심볼 그룹간에 한 사이클의 간격을 두고 심볼들이 코딩되기 때문에 데이터 의존성으로 인하여 코딩 효율이 저하되는 문제는 해결될 수 있다.
이상에서 설명한 본 발명의 실시예들은 각 실시예들이 독립적으로 수행될 수도 있고, 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 수행될 수도 있다.
도 19은 본 발명이 적용되는 실시예로서, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 과정을 설명하는 흐름도이다.
디코더는 복수 개의 비트 스트림(bit-stream)으로 구성된 비디오 신호를 수신한다(S1901).
디코더는 컨텍스트 모델(context model)에 기초하여 비디오 신호의 각 비트 스트림 별로 신택스 요소(syntax element)의 심볼(symbol)을 디코딩한다(S1902).
디코더는 앞서 도 4, 도 6, 도 8에서 설명한 방법에 의해 각 비트 스트림 별로 신택스 요소의 심볼을 디코딩할 수 있다.
전술한 바와 같이, 상기 복수 개의 비트 스트림은 각각 개별적인 컨텍스트 모델을 가질 수도 있고, 상기 복수 개의 비트 스트림이 컨텍스트 모델을 공유할 수도 있다.
따라서, 디코더는 각 비트 스트림 별로 컨텍스트 모델을 선택하고 선택된 컨텍스트 모델에 기초하여 이진 산술 디코딩을 수행할 수 있다.
전술한 바와 같이, 상기 복수 개의 비트 스트림에 심볼들은 심볼, 신택스 요소 또는 심볼 그룹(symbol group) 단위로 매핑될 수 있다. 그리고, 상기 심볼 그룹은 특정 개수의 심볼 또는 특정 개수의 신택스 요소로 구성될 수 있다.
또한, 상기 심볼은 이진 심볼(binary symbol)일 수도 있고, 멀티 심볼(multi symbol)일 수도 있다.
또한, 전술한 바와 같이, 디코더는 현재 비트 스트림의 현재 심볼과 다른 비트 스트림의 심볼간에 데이터 의존성(data dependency)이 존재하는지 여부를 확인할 수 있다.
상기 확인 결과 상기 데이터 의존성이 존재하는 경우, 상기 다른 비트 스트림의 심볼의 디코딩된 정보를 이용하여 상기 현재 심볼을 디코딩할 수 있다.
만약, 현재 신택스 요소에 대해 바이패스 모드(bypass mode)가 적용되는 경우, 디코더는 상기 비디오 신호의 각 비트 스트림 별로 상기 현재 신택스 요소의 심볼(symbol)을 디코딩할 수 있다.
디코더는 디코딩된 심볼을 이용하여 상기 신택스 요소의 정보를 도출한다(S1903).
디코더는 앞서 도 4, 도 6, 도8에서 설명한 방법에 의해 디코딩된 이진수 형태의 빈을 입력 받아 신택스 요소 값을 출력할 수 있다.
만약, 심볼들이 심볼 단위 또는 심볼 그룹 단위로 상기 복수 개의 비트 스트림에 매핑되는 경우, 디코더는 상기 복수 개의 비트 스트림에 심볼들이 매핑되는 순서를 나타내는 비트 스트림 순서에 기초하여 상기 디코딩된 심볼로부터 심볼 스트링(symbol string)을 생성할 수 있다.
다시 말해, 디코더는 상기 비트 스트림 순서에 기초하여 상기 복수 개의 비트 스트림에서 디코딩된 심볼들을 조합할 수 있다. 생성된 심볼 스트링으로부터 디코더는 신택스 요소의 정보를 도출할 수 있다.
만약, 현재 신택스 요소에 대해 바이패스 모드(bypass mode)가 적용되는 경우, 상기 복수 개의 비트 스트림에 심볼들이 매핑되는 순서를 나타내는 비트 스트림 순서에 기초하여 상기 디코딩된 심볼로부터 심볼 스트링(symbol string)을 생성할 수 있다.
전술한 바와 같이, 상기 비트 스트림 순서는 인코더와 디코더에서 미리 고정적으로 정해질 수 있다. 예를 들어, 인코더와 디코더가 동일하게 비트 스트림 할당 순서를 주기로 순환하여 비트 스트림을 할당할 수 있다.
또한, 상기 비트 스트림 순서는 인코더로부터 시그널링될 수도 있다. 예를 들어, 상기 비트 스트림 순서는 인코더로부터 시퀀스(sequence), 픽처, 슬라이스(slice), 타일(tile) 또는 블록 단위로 시그널링될 수 있다.
또한, 앞서 도 16에서 설명한 바와 같이, 상기 비트 스트림 순서가 심볼 그룹 단위로 결정되는 경우, 상기 심볼 그룹 내 각 심볼은 개별적인 컨텍스트 모델을 참조하여 디코딩될 수 있다. 이 경우, 상기 개별적인 컨텍스트 모델은 상기 복수 개의 비트 스트림이 공유하는, 복수 개의 컨텍스트 모델로 구성된 컨텍스트 셋(context set)에서 심볼 그룹 내 심볼의 순서에 기초하여 결정될 수 있다.
또한, 앞서 도 18에서 설명한 바와 같이, 상기 비트 스트림 순서가 심볼 그룹 단위로 결정되는 경우 디코더는 파이프라이닝 스톨을 막기 위하여 심볼 그룹 내 디코딩된 심볼들들 재배치(또는 디코딩된 심볼들의 순서를 수정)할 수 있다.
또한, 전술한 바와 같이, 미리 정해진 신택스 요소가 복수 개의 비트 스트림 중 특정 비트 스트림에 매핑될 수 있다.
또한, 바이패스 모드가 적용되는 신택스 요소는 복수 개의 비트 스트림 중 특정 비트 스트림에 고정적으로 매핑될 수 있다.
상기 기술된 것과 같이, 본 발명에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 상기 도 1 내지 4 에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다.
또한, 본 발명이 적용되는 디코더 및 인코더는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 및 데이터 신호를 처리하기 위해 사용될 수 있다.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트 스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.

Claims (18)

  1. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서,
    복수 개의 비트 스트림(bit-stream)으로 구성된 비디오 신호를 수신하는 단계;
    컨텍스트 모델(context model)에 기초하여 상기 비디오 신호의 각 비트 스트림 별로 신택스 요소(syntax element)의 심볼(symbol)을 디코딩하는 단계; 및
    상기 디코딩된 심볼을 이용하여 상기 신택스 요소의 정보를 도출하는 단계를 포함하는 방법.
  2. 제 1항에 있어서,
    상기 심볼을 디코딩하는 단계는,
    현재 비트 스트림의 현재 심볼과 다른 비트 스트림의 심볼간에 데이터 의존성(data dependency)이 존재하는지 여부를 확인하는 단계를 더 포함하고,
    상기 확인 결과 상기 데이터 의존성이 존재하는 경우, 상기 다른 비트 스트림의 심볼의 디코딩된 정보를 이용하여 상기 현재 심볼을 디코딩하는 방법.
  3. 제 1항에 있어서,
    상기 신택스 요소의 정보를 도출하는 단계는,
    상기 복수 개의 비트 스트림에 심볼들이 매핑되는 순서를 나타내는 비트 스트림 순서에 기초하여 상기 디코딩된 심볼로부터 심볼 스트링(symbol string)을 생성하는 단계를 더 포함하고,
    상기 심볼 스트링을 이용하여 상기 신택스 요소의 정보를 도출하는 방법.
  4. 제 3항에 있어서,
    상기 비트 스트림 순서는 미리 고정적으로 설정되거나, 인코더로부터 시퀀스(sequence), 픽처, 슬라이스(slice), 타일(tile) 또는 블록 단위로 시그널링되는 방법.
  5. 제 3항에 있어서,
    상기 비트 스트림 순서는 심볼, 신택스 요소 또는 심볼 그룹(symbol group) 단위로 결정되는 방법.
  6. 제 5항에 있어서,
    상기 심볼 그룹은 특정 개수의 심볼 또는 특정 개수의 신택스 요소로 구성되는 방법.
  7. 제 5항에 있어서,
    상기 비트 스트림 순서가 심볼 그룹 단위로 결정되는 경우, 상기 심볼 그룹 내 각 심볼은 개별적인 컨텍스트 모델을 참조하여 디코딩되고,
    상기 개별적인 컨텍스트 모델은 상기 복수 개의 비트 스트림이 공유하는, 복수 개의 컨텍스트 모델로 구성된 컨텍스트 셋(context set)에서 상기 심볼 그룹 내 심볼의 순서에 기초하여 결정되는 방법.
  8. 제 5항에 있어서,
    상기 비트 스트림 순서가 심볼 그룹 단위로 결정되는 경우 상기 심볼 스트링을 생성하는 단계는,
    심볼 그룹 내 디코딩된 심볼들을 재배치(reordering)하는 단계를 더 포함하고,
    상기 비트 스트림 순서 및 상기 재배치된 디코딩된 심볼들에 기초하여 심볼 스트링을 생성하는 방법.
  9. 제 1항에 있어서,
    미리 정해진 신택스 요소가 상기 복수 개의 비트 스트림 중 특정 비트 스트림에 매핑되는 방법.
  10. 제 1항에 있어서,
    상기 심볼은 이진 심볼(binary symbol) 또는 멀티 심볼(multi symbol)인 방법.
  11. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서,
    복수 개의 비트 스트림(bit-stream)으로 구성된 비디오 신호를 수신하는 단계;
    현재 신택스 요소에 대해 바이패스 모드(bypass mode)가 적용되는 경우, 상기 비디오 신호의 각 비트 스트림 별로 상기 현재 신택스 요소의 심볼(symbol)을 디코딩하는 단계; 및
    상기 디코딩된 심볼을 이용하여 상기 현재 신택스 요소의 정보를 도출하는 단계를 포함하는 방법.
  12. 제 11항에 있어서,
    상기 현재 신택스 요소의 정보를 도출하는 단계는,
    상기 복수 개의 비트 스트림에 심볼들이 매핑되는 순서를 나타내는 비트 스트림 순서에 기초하여 상기 디코딩된 심볼로부터 심볼 스트링(symbol string)을 생성하는 단계를 더 포함하고,
    상기 심볼 스트링을 이용하여 상기 현재 신택스 요소의 정보를 도출하는 방법.
  13. 제 12항에 있어서,
    상기 비트 스트림 순서는 미리 고정적으로 설정되거나, 인코더로부터 시퀀스(sequence), 픽처, 슬라이스(slice), 타일(tile) 또는 블록 단위로 시그널링되는 방법.
  14. 제 12항에 있어서,
    상기 비트 스트림 순서는 심볼, 신택스 요소 또는 심볼 그룹(symbol group) 단위로 결정되는 방법.
  15. 제 14항에 있어서,
    상기 심볼 그룹은 특정 개수의 심볼 또는 특정 개수의 신택스 요소로 구성되는 방법.
  16. 제 11항에 있어서,
    상기 심볼은 이진 심볼(binary symbol) 또는 멀티 심볼(multi symbol)인 방법.
  17. 제 11항에 있어서,
    상기 바이패스 모드가 적용되는 신택스 요소는 상기 복수 개의 비트 스트림 중 특정 비트 스트림에 고정적으로 매핑되는 방법.
  18. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서,
    복수 개의 비트 스트림(bit-stream)으로 구성된 비디오 신호를 수신하는 비디오 신호 수신부;
    컨텍스트 모델(context model)에 기초하여 상기 비디오 신호의 각 비트 스트림 별로 신택스 요소(syntax element)의 심볼(symbol)을 디코딩하는 심볼 디코딩부; 및
    상기 디코딩된 심볼을 이용하여 상기 신택스 요소의 정보를 도출하는 신택스 요소 도출부를 포함하는 장치.
PCT/KR2017/003773 2017-04-06 2017-04-06 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 WO2018186510A1 (ko)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
WO2018186510A1 true WO2018186510A1 (ko) 2018-10-11

Family

ID=63712730

Family Applications (1)

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

Country Status (1)

Country Link
WO (1) WO2018186510A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110049137A (ko) * 2009-11-04 2011-05-12 한국전자통신연구원 병렬 처리 스케일러블 비디오 부/복호화 방법 및 장치
KR20120004319A (ko) * 2010-07-06 2012-01-12 한국전자통신연구원 병렬적으로 엔트로피 부호화 및 복호화를 수행하는 장치 및 방법
KR20140022042A (ko) * 2011-04-01 2014-02-21 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
KR20150003239A (ko) * 2012-04-11 2015-01-08 퀄컴 인코포레이티드 비디오 코딩을 위한 파면 병렬 프로세싱
KR20150033194A (ko) * 2013-09-23 2015-04-01 삼성전자주식회사 병렬 부호화/복호화 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110049137A (ko) * 2009-11-04 2011-05-12 한국전자통신연구원 병렬 처리 스케일러블 비디오 부/복호화 방법 및 장치
KR20120004319A (ko) * 2010-07-06 2012-01-12 한국전자통신연구원 병렬적으로 엔트로피 부호화 및 복호화를 수행하는 장치 및 방법
KR20140022042A (ko) * 2011-04-01 2014-02-21 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
KR20150003239A (ko) * 2012-04-11 2015-01-08 퀄컴 인코포레이티드 비디오 코딩을 위한 파면 병렬 프로세싱
KR20150033194A (ko) * 2013-09-23 2015-04-01 삼성전자주식회사 병렬 부호화/복호화 방법 및 장치

Similar Documents

Publication Publication Date Title
WO2017086765A2 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2018190594A1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2013002555A2 (ko) 산술부호화를 수반한 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2011087323A2 (en) Method and apparatus for encoding and decoding image by using large transform unit
WO2020009556A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2013157794A1 (ko) 변환 계수 레벨의 엔트로피 부호화 및 복호화를 위한 파라메터 업데이트 방법 및 이를 이용한 변환 계수 레벨의 엔트로피 부호화 장치 및 엔트로피 복호화 장치
WO2013066051A1 (ko) 변환 계수 레벨의 엔트로피 부호화 및 복호화를 위한 컨텍스트 모델 결정 방법 및 장치
WO2018207956A1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2020213944A1 (ko) 영상 코딩에서 매트릭스 기반의 인트라 예측을 위한 변환
WO2016076677A1 (ko) 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치
WO2020167097A1 (ko) 영상 코딩 시스템에서 인터 예측을 위한 인터 예측 타입 도출
WO2020116961A1 (ko) 이차 변환에 기반한 영상 코딩 방법 및 그 장치
WO2015056941A1 (ko) 다계층 기반의 영상 부호화/복호화 방법 및 장치
WO2020071879A1 (ko) 변환 계수 코딩 방법 및 그 장치
WO2021040487A1 (ko) 영상 코딩 시스템에서 레지듀얼 데이터 코딩에 대한 영상 디코딩 방법 및 그 장치
WO2020197274A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2018190595A1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2021040319A1 (ko) 비디오/영상 코딩 시스템에서 라이스 파라미터 도출 방법 및 장치
WO2021040492A1 (ko) 비디오/영상 코딩 시스템에서 변환 계수 코딩 방법 및 장치
WO2021066618A1 (ko) 변환 스킵 및 팔레트 코딩 관련 정보의 시그널링 기반 영상 또는 비디오 코딩
WO2020185039A1 (ko) 레지듀얼 코딩 방법 및 장치
WO2021071187A1 (ko) 비디오/영상 코딩 시스템에서 라이스 파라미터 도출 방법 및 장치
WO2021040407A1 (ko) 영상 코딩 시스템에서 단순화된 레지듀얼 데이터 코딩을 사용하는 영상 디코딩 방법 및 그 장치
WO2021034100A1 (ko) 영상 코딩 시스템에서 무손실 코딩을 적용하는 영상 디코딩 방법 및 그 장치
WO2018186510A1 (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: 17904961

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

Country of ref document: EP

Kind code of ref document: A1