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

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

Info

Publication number
WO2017086765A2
WO2017086765A2 PCT/KR2016/013458 KR2016013458W WO2017086765A2 WO 2017086765 A2 WO2017086765 A2 WO 2017086765A2 KR 2016013458 W KR2016013458 W KR 2016013458W WO 2017086765 A2 WO2017086765 A2 WO 2017086765A2
Authority
WO
WIPO (PCT)
Prior art keywords
bypass
syntax
block
context model
flag
Prior art date
Application number
PCT/KR2016/013458
Other languages
English (en)
French (fr)
Other versions
WO2017086765A3 (ko
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 KR1020187014908A priority Critical patent/KR20180074773A/ko
Priority to US15/777,847 priority patent/US10609374B2/en
Priority to CN201680075101.2A priority patent/CN108432248A/zh
Priority to EP16866717.8A priority patent/EP3379832A4/en
Publication of WO2017086765A2 publication Critical patent/WO2017086765A2/ko
Publication of WO2017086765A3 publication Critical patent/WO2017086765A3/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present invention relates to a method and apparatus for entropy encoding and decoding video signals. More specifically, the present invention relates to a method of adaptively selecting a context model and a method of adaptively using a bypass mode when using CABAC (Context-based Adaptive Binary Arithmetic Coding).
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • Entropy coding is a process of generating a raw byte sequence payload (RWSP) by losslessly compressing syntax elements determined through an encoding process.
  • Entropy coding uses syntax statistics to assign short bits to frequently occurring syntax and long bits to syntax that is not syntactically to express syntax elements as concise data.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC uses a probabilistic model that is adaptively updated based on the context of 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.
  • the present invention proposes a method for improving the prediction performance of a context model when performing CABAC.
  • the present invention proposes a method of using a bypass mode-based CABAC (CABAC) for all syntaxes on a block basis.
  • CABAC bypass mode-based CABAC
  • the present invention proposes a method of using a bypass mode-based CABAC (CABAC) for a specific syntax on a block basis and a grouping method for defining a specific syntax.
  • CABAC bypass mode-based CABAC
  • the present invention is to propose a method of deriving the presence or absence of adaptive bypass mode-based CABAC (CABAC) on a block basis.
  • CABAC adaptive bypass mode-based CABAC
  • the present invention proposes a method of selecting a context model according to a block size and a syntax value of a neighboring block.
  • the present invention is to propose a method for updating a probability model based on syntax statistics in slice units.
  • the present invention proposes a binarization update method based on syntax statistics in a slice unit.
  • the present invention proposes a method of selecting a context model based on a neighboring block.
  • the present invention proposes a method of selecting a context model based on a block size.
  • the present invention intends to define a flag indicating whether to update the context model based on syntax statistics of the previous slice.
  • the present invention seeks to define a context model initial value used to update the context model.
  • the present invention proposes a method of updating a context model based on syntax statistics of a previous slice.
  • the present invention seeks to define a bypass flag that indicates whether it is in bypass mode.
  • the present invention intends to propose a method of classifying syntax by groups in order to adaptively apply a bypass mode.
  • the present invention intends to define a bypass group index for adaptively applying a bypass mode.
  • the present invention proposes a method of performing bypass mode arithmetic decoding based on a bypass group index.
  • the present invention proposes a method of inducing a bypass mode of a current block.
  • the present invention seeks to define a bypass temporal prediction flag that indicates whether to predict the bypass flag from a previous frame.
  • An object of the present invention is to propose a method for performing bypass mode arithmetic decoding based on a bypass temporal prediction flag.
  • the present invention can improve the performance of entropy coding by performing block model and syntax values of neighboring blocks or updating the context model based on the syntax of the syntax of the previous slice in order to improve the prediction performance of the context model. have.
  • entropy encoding when performing CABAC, may be performed using a bypass mode for all syntaxes of a block in a block unit, thereby improving performance of entropy encoding.
  • 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 block diagram illustrating a method of selecting a context model based on a neighboring block according to an embodiment to which the present invention is applied.
  • FIG. 8 is a flowchart illustrating a method of selecting a context model using a left block and an upper block according to an embodiment to which the present invention is applied.
  • FIG. 9 is a block diagram illustrating a method of selecting a context model based on a block size according to an embodiment to which the present invention is applied.
  • FIG. 10 illustrates an index value of a context model according to a block size and syntax values of a neighboring block according to an embodiment to which the present invention is applied.
  • 11 is an embodiment to which the present invention is applied and is a syntax for a flag indicating whether to perform an update based on syntax statistics of a previous slice.
  • 12 is an embodiment to which the present invention is applied and is a syntax for a context model initial value used to update a context model.
  • FIG. 13 is a flowchart illustrating a method of updating a context model based on syntax statistics of a previous slice in an embodiment to which the present invention is applied.
  • FIG. 14 illustrates a table for explaining a probability-based binarization updating method according to an embodiment to which the present invention is applied.
  • FIG. 15 is a block diagram illustrating the number of binarization bins and CABAC bins per block as an embodiment to which the present invention is applied.
  • FIG. 16 is an embodiment to which the present invention is applied and is a syntax defining a bypass flag indicating whether a bypass mode is used.
  • FIG. 17 is a table illustrating a method of classifying syntax by groups in order to adaptively apply a bypass mode as an embodiment to which the present invention is applied.
  • 18 is an embodiment to which the present invention is applied and is a syntax for defining a bypass group index for adaptively applying a bypass mode.
  • FIG. 19 is a flowchart illustrating a process of performing bypass mode arithmetic decoding based on a bypass group index according to an embodiment to which the present invention is applied.
  • 20 is a block diagram illustrating a method of inducing a bypass mode of a current block according to an embodiment to which the present invention is applied.
  • FIG. 21 is an embodiment to which the present invention is applied and is a syntax for a bypass temporal prediction flag indicating whether a bypass flag is predicted from a previous frame.
  • FIG. 22 is a flowchart illustrating a process of performing bypass mode arithmetic decoding based on a bypass temporal prediction flag according to an embodiment to which the present invention is applied.
  • a method of performing entropy decoding on a video signal comprising: obtaining a context model initial value for a current slice; Calculating a probability value based on syntax statistics of the previous slice; Deriving weight values for a context model initial value for the current slice and a probability value based on syntax statistics of the previous slice; And updating the context model initial value for the current slice using the weight values.
  • the method further comprises the step of obtaining an update flag indicating whether to perform an update on the context model from the video signal, when the update is performed on the context model according to the update flag, The context model initial value for the current slice is obtained.
  • the method further comprises obtaining a difference value between the context model initial value for the current slice and the context model initial value for the previous slice, wherein the context model initial value for the current slice is the difference. It is characterized in that obtained based on the value.
  • the difference value is characterized in that it is obtained for each syntax element.
  • the method comprises: deriving a context model for a syntax element from a neighboring block; And performing entropy decoding using the context model, wherein the context model is derived using at least one of a block size or a block partition depth.
  • the context model may be derived based on a result of comparing the size of the neighboring block with the size of the current block.
  • the context model is determined based on a syntax element value of the neighboring block for each partition depth of the current block.
  • the present invention provides a method of performing entropy decoding on a video signal, the method comprising: obtaining a bypass group index from the video signal, wherein the bypass group index is a bypass mode. ) Is an index indicating the group of specific syntaxes to which it applies; Identifying syntax elements corresponding to the bypass group index; Obtaining a bypass flag indicating whether to apply a bypass mode to the syntax elements; And when bypass mode is applied to a specific syntax according to the bypass flag, performing bypass binary arithmetic decoding on the specific syntax.
  • the bypass group index is obtained in units of slices, and the bypass flag is obtained in units of blocks.
  • the bypass group index corresponds to at least one group that can be combined from coding unit syntax, prediction unit syntax, prediction information syntax, transform unit syntax, and quantization coefficient syntax.
  • the bypass flag is characterized in that it is derived to the corresponding block of the previous slice or previous frame.
  • the corresponding block is a block at the same position as the current block or a block at a position indicated by the motion vector of the current block.
  • the method further comprises obtaining a bypass temporal prediction flag from the video signal, wherein the bypass temporal prediction flag derives a bypass flag from a previous frame or previous slice. It is characterized by indicating whether or not.
  • the present invention provides an apparatus for performing entropy decoding on a video signal, comprising: a memory storing a probability value based on syntax statistics of a previous slice; And obtain a context model initial value for the current slice, derive a probability value based on syntax statistics of the previous slice, and weight the probability value based on the context model initial value for the current slice and syntax statistics of the previous slice. And a context modeling unit for deriving values and updating a context model initial value for the current slice using the weight values.
  • the context modeling unit obtains an update flag indicating whether to update a context model from the video signal, and when an update is performed on the context model according to the update flag, The context model initial value is obtained.
  • the present invention provides an apparatus for performing entropy decoding on a video signal, comprising: a parser configured to parse a bypass group index from the video signal; And identify syntax elements corresponding to the bypass group index, obtain a bypass flag indicating whether to apply a bypass mode to the syntax elements, and obtain a bypass mode for a specific syntax according to the bypass flag. Is applied, a binary arithmetic decoding unit performing bypass binary arithmetic decoding on the specific syntax, wherein the bypass group index is an index indicating a group of specific syntaxes to which a bypass mode is applied. It provides a device characterized by.
  • signals, data, samples, pictures, frames, and blocks may be interpreted as appropriate in each coding process.
  • FIG. 1 is a schematic block diagram of an encoder in which encoding of a video signal is performed as an embodiment to which the present invention is applied.
  • the encoder 100 may include an image splitter 110, a transformer 120, a quantizer 130, an inverse quantizer 140, an inverse transformer 150, a filter 160, and a decoder. It may include a decoded picture buffer (DPB) 170, an inter predictor 180, an intra predictor 185, and an entropy encoder 190.
  • DPB decoded picture buffer
  • the image divider 110 may divide the input image (or a picture or a frame) input to the encoder 100 into one or more processing units.
  • the processing unit may be a Coding Tree Unit (CTU), a Coding Unit (CU), a Prediction Unit (PU), or a Transform Unit (TU).
  • CTU Coding Tree Unit
  • CU Coding Unit
  • PU Prediction Unit
  • TU Transform Unit
  • the encoder 100 may generate a residual signal by subtracting the prediction signal output from the inter prediction unit 180 or the intra prediction unit 185 from the input image signal, and the generated residual signal is converted into a conversion unit ( 120).
  • the transformer 120 may generate a transform coefficient by applying a transform technique to the residual signal.
  • the transformation technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a karhunen-loeve transform (KLT), a graph-based transform (GBT), or a conditionally non-linear transform (CNT).
  • DCT discrete cosine transform
  • DST discrete sine transform
  • KLT karhunen-loeve transform
  • GBT graph-based transform
  • CNT conditionally non-linear transform
  • GBT means a conversion obtained from this graph when the relationship information between pixels is represented by a graph.
  • CNT refers to a transform that is generated based on and generates a prediction signal using all previously reconstructed pixels.
  • the conversion process may be applied to pixel blocks having the same size as the square, or may be applied to blocks of variable size rather than square.
  • the quantization unit 130 may quantize the transform coefficients and transmit them to the entropy encoding unit 190, and the entropy encoding unit 190 may entropy code the quantized signal and output the bitstream.
  • the quantized signal output from the quantization unit 130 may be used to generate a prediction signal.
  • the quantized signal may reconstruct the residual signal by applying inverse quantization and inverse transformation through inverse quantization unit 140 and inverse transformation unit 150 in a loop.
  • the reconstructed signal may be generated by adding the reconstructed residual signal to the prediction signal output from the inter predictor 180 or the intra predictor 185.
  • the filtering unit 160 applies filtering to the reconstruction signal and outputs it to the reproduction apparatus or transmits the decoded picture buffer to the decoding picture buffer 170.
  • the filtered signal transmitted to the decoded picture buffer 170 may be used as the reference picture in the inter predictor 180. As such, by using the filtered picture as a reference picture in the inter prediction mode, not only image quality but also encoding efficiency may be improved.
  • the decoded picture buffer 170 may store the filtered picture for use as a reference picture in the inter prediction unit 180.
  • the inter prediction unit 180 performs temporal prediction and / or spatial prediction to remove temporal redundancy and / or spatial redundancy with reference to the reconstructed picture.
  • the motion information may be predicted based on the correlation of the motion information between the neighboring block and the current block.
  • the intra predictor 185 may predict the current block by referring to samples around the block to which current encoding is to be performed.
  • the intra prediction unit 185 may perform the following process to perform intra prediction. First, reference samples necessary for generating a prediction signal may be prepared. The prediction signal may be generated using the prepared reference sample. Then, the prediction mode is encoded. In this case, the reference sample may be prepared through reference sample padding and / or reference sample filtering. Since the reference sample has been predicted and reconstructed, there may be a quantization error. Accordingly, the reference sample filtering process may be performed for each prediction mode used for intra prediction to reduce such an error.
  • the prediction signal generated by the inter predictor 180 or the intra predictor 185 may be used to generate a reconstruction signal or to generate a residual signal.
  • FIG. 2 is a schematic block diagram of a decoder in which decoding of a video signal is performed as an embodiment to which the present invention is applied.
  • the decoder 200 may include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, a filtering unit 240, and a decoded picture buffer unit (DPB) 250. ), An inter predictor 260, and an intra predictor 265.
  • the reconstructed video signal output through the decoder 200 may be reproduced through the reproducing apparatus.
  • the decoder 200 may receive a signal output from the encoder 100 of FIG. 1, and the received signal may be entropy decoded through the entropy decoding unit 210.
  • the inverse quantization unit 220 obtains a transform coefficient from the entropy decoded signal using the quantization step size information.
  • the inverse transformer 230 inversely transforms a transform coefficient to obtain a residual signal.
  • the reconstruction signal is generated by adding the obtained residual signal to the prediction signal output from the inter prediction unit 260 or the intra prediction unit 265.
  • the filtering unit 240 applies filtering to the reconstruction signal and outputs it to the reproduction apparatus or transmits the decoded picture buffer unit 250 to the reproduction device.
  • the filtered signal transmitted to the decoded picture buffer unit 250 may be used as the reference picture in the inter predictor 260.
  • the embodiments described by the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the encoder 100 are respectively the filtering unit 240, the inter prediction unit 260, and the decoder. The same may be applied to the intra predictor 265.
  • FIG. 3 is a schematic block diagram of an entropy encoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the entropy encoding unit 300 to which the present invention is applied includes a binarization unit 310, a context modeling unit 320, a binary arithmetic encoding unit 330, and a memory 360, and the binary arithmetic encoding unit 330 includes: A regular binary encoding unit 340 and a bypass binary encoding unit 350.
  • the regular binary encoding unit 340 and the bypass binary encoding unit 350 may be referred to as a normal coding engine and a bypass coding engine, respectively.
  • the binarization unit 310 may output a binary symbol string composed of a binary value of 0 or 1 by receiving a sequence of data symbols and performing binarization.
  • the binarization unit 310 may map syntax elements into binary symbols.
  • Several different binarization processes such as unary (U), truncated unary (TU), k-th order Exp-Golomb (EGk), and fixed length processes, support binarization. Can be used for The binarization process may be selected based on the type of syntax element.
  • the output binary symbol string is transmitted to the context modeling unit 320.
  • the context modeling unit 320 selects probability information necessary for coding a current block from a memory and transmits the probability information to the binary arithmetic encoding unit 330.
  • the context memory may be selected based on the syntax element to be coded, and the probability information required for coding the current syntax element may be selected through the bin index binIdx.
  • context refers to information about a probability of occurrence of a symbol
  • context modeling refers to a process of estimating a probability of a bin required for binary arithmetic coding by using a bin, which is a binarization result.
  • the context modeler 320 may provide accurate probability estimation necessary to achieve high coding efficiency. Accordingly, different context models may be used for different binary symbols and the probability of such context model may be updated based on the values of previously coded binary symbols. In this case, values of previously coded binary symbols may be stored in the memory 360, and the context modeling unit 320 may use values of previously coded binary symbols.
  • Binary symbols with similar distributions can share the same context model.
  • the context model for each of these binary symbols includes at least one of syntax information of a bin, a bin index (binIdx) indicating a bin position in a bin string, and a probability of a bin included in a neighboring block of the block containing the bin, for probability estimation. Can be used.
  • the binary arithmetic encoding unit 330 includes a regular binary encoding unit 340 and a bypass binary encoding unit 350 to perform entropy encoding on the output string. And output compressed data bits.
  • the regular binary encoding unit 340 performs arithmetic coding based on recursive interval division.
  • a section (or range) having an initial value of 0 to 1 is divided into two lower sections based on the probability of a binary symbol.
  • the encoded bits when converted to binary fractions, provide an offset that selects one of two lower intervals representing the value of the decoded binary symbol.
  • the interval can be updated to equalize the selected subsection, and the interval division process itself is repeated.
  • the intervals and offsets have limited bit precision, so renormalization may be needed to prevent overflow each time the interval falls below a certain value. The renormalization may occur after each binary symbol is decoded.
  • the bypass binary encoding unit 350 performs encoding without a context model, and performs coding by fixing a probability of a bin currently coded to 0.5. This can be used when it is difficult to determine the probability of syntax or when you want to code at high speed.
  • FIG. 4 is a schematic block diagram of an entropy decoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the entropy decoding unit 400 to which the present invention is applied includes a context modeling unit 410, a binary arithmetic decoding unit 420, a memory 450, and an inverse binarization unit 460, and the binary arithmetic decoding unit 420.
  • a regular binary decoding unit 430 and a bypass binary decoding unit 440 are included.
  • the entropy decoding unit 400 may receive a bitstream and check a bypass flag therefrom.
  • the bypass flag indicates whether the bypass mode is in the bypass mode, and the bypass mode does not use a context model, and the probability of the currently coded bin is 0.5. It means fixing by coding.
  • the regular binary decoding unit 430 When not in the bypass mode according to the bypass flag, the regular binary decoding unit 430 performs binary arithmetic decoding according to a regular mode. .
  • the 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.
  • the bypass binary decoding unit 440 performs binary arithmetic decoding according to the bypass mode. Do this.
  • the inverse binarization unit 460 receives a binary-type bin decoded by the binary arithmetic decoding unit 420 and converts it into an integer-type syntax element value.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the encoder may perform binarization on the syntax element (S510).
  • the encoder may determine whether to perform binary arithmetic coding according to a normal mode or binary arithmetic coding according to a bypass mode (S520). For example, the encoder may identify whether the normal mode or the bypass mode is based on the bypass flag. For example, when the bypass flag is 1, the encoder indicates a bypass mode. 0 indicates normal mode.
  • the encoder may select a probability model (S530) and perform binary arithmetic encoding based on the probability model (S540).
  • the encoder may update the probabilistic model (S550), and may select a suitable probabilistic model based on the updated probabilistic model in step 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 extracts a bypass flag from the bitstream and checks whether it is in the normal mode or the bypass mode (S620).
  • the bypass flag may be determined in advance according to the type of syntax.
  • the decoder may select a probabilistic model (S630) and perform binary arithmetic decoding based on the probabilistic model (S640).
  • the decoder may update the probability model (S650), and may select a suitable probability model again based on the updated probability model in step S630.
  • the decoder may perform binary arithmetic decoding based on the probability 0.5 (S660).
  • the decoder may perform inverse binarization on the decoded bin string (S670). For example, a decoded binary type bin may be input and converted into an integer syntax element value.
  • FIG. 7 is a block diagram illustrating a method of selecting a context model based on a neighboring block according to an embodiment to which the present invention is applied.
  • the current block is referred to as C
  • the left block adjacent to the current block is referred to as L
  • the upper block is referred to as A.
  • the context model for the syntax of the current block C may be determined using at least one of a left block L or an upper block A, which is a neighboring block. Equation 1 shows a method of selecting a context model using the left block and the upper block.
  • availableL and availableA indicate whether a left block and an upper block exist, respectively, and condL and condA mean a value of a corresponding syntax for the left block and the upper block, respectively.
  • three context models may be used according to a syntax value of a neighboring block.
  • the context model may be determined according to the syntax value of the neighboring block regardless of the size of the current block or the size of the neighboring block.
  • statistical characteristics of syntax elements may vary according to the size of a block to be encoded. Accordingly, the present invention proposes a new method for selecting a context model based on block size and statistical characteristics.
  • FIG. 8 is a flowchart illustrating a method of selecting a context model using a left block and an upper block according to an embodiment to which the present invention is applied.
  • the method of selecting a context model according to the present invention may be applied to both an encoder and a decoder, and will be described with reference to a decoder for convenience of description.
  • the decoder may derive the left block and the upper block neighboring the current block (S810). That is, it may be checked whether the left block and the upper block adjacent to the current block are available.
  • the decoder may derive a syntax value from at least one of the left block and the upper block (S820).
  • the decoder may determine a context model based on a syntax value of at least one of the left block and the upper block (S830).
  • the decoder may derive a context index (CtxIdx) value (S840).
  • the decoder may perform binary arithmetic decoding based on the context index (CtxIdx) value (S850).
  • FIG. 9 is a block diagram illustrating a method of selecting a context model based on a block size according to an embodiment to which the present invention is applied.
  • the method of selecting a context model according to the present invention may be applied to both an encoder and a decoder, and will be described with reference to a decoder for convenience of description.
  • the decoder may select the context model based on at least one of the block size and the syntax value of the neighboring block. For example, referring to FIG. 9, in the case of the C1 block, the context model may be selected using the syntax values of the blocks L1 and A1 adjacent to the left and the upper sides, and in the case of the C2 block, the blocks L2 adjacent to the left and the upper sides may be selected. A context model can be selected using the syntax value of A2. When adjacent blocks such as L2 are divided, at least one of the divided blocks may be used, and FIG. 9 illustrates a case of using an L2 block.
  • the context model may be selected in consideration of the block size and syntax values of neighboring blocks.
  • Equation 2 shows a method of selecting a context model using a left block, an upper block, and a quad tree depth.
  • QTDepth means the quad tree depth value of the current block.
  • the QTDepth value may have a value from 0 to 5.
  • AvailableL and availableA indicate whether a left block and an upper block exist, respectively, and condL and condA mean syntax values of a left block and an upper block for a corresponding syntax, respectively.
  • nine context models may be used according to a syntax value of a neighboring block.
  • FIG. 10 illustrates an index value of a context model according to a block size and syntax values of a neighboring block according to an embodiment to which the present invention is applied.
  • the CtxIdx value is determined differently according to the syntax of the block size and the syntax value of the neighboring block.
  • CtxIdx may have values of 0, 1, and 2, and the CtxIdx value may be determined according to the sum of syntax values of neighboring blocks. If the syntax value of the left block and the upper block is 0, the CtxIdx value is 0. If the syntax value of any one of the left block and the upper block is 1, the CtxIdx value is 1, and if the syntax values of the left block and the upper block are all 1, The CtxIdx value is two.
  • CtxIdx may have 3, 4, and 5 values, and the CtxIdx value may be determined according to the syntax value of the neighboring block.
  • the CtxIdx may have 6, 7, 8 values, and the CtxIdx value may be determined according to the syntax value of the neighboring block.
  • 11 is an embodiment to which the present invention is applied and is a syntax for a flag indicating whether to perform an update based on syntax statistics of a previous slice.
  • the present invention may update a context model or change a binarization method based on statistics of a corresponding syntax in a slice unit.
  • cabac_update_flag (S1110) is a flag on whether to apply an update based on statistics of syntax of a previous slice. If the cabac_update_flag value is 1, the context model is updated. If the cabac_update_flag value is 0, the context model is not updated.
  • whether to update all syntaxes may be specified in a slice header, but the present invention is not limited thereto. For example, it can be defined at other levels (sequence parameter set, picture parameter set, coding tree unit, coding unit, transform unit, etc.) or to determine whether to update the context model for each syntax. It may be.
  • 12 is an embodiment to which the present invention is applied and is a syntax for a context model initial value used to update a context model.
  • the update may be performed by directly transmitting an initial value of the context model.
  • the decoder may first acquire a flag indicating whether to update an context model (S1210). For example, as described above with reference to FIG. 11, the decoder may acquire cabac_update_flag to determine whether to update the context model.
  • a context model initial value for updating the context model may be obtained (S1230).
  • the syntax representing the context model initial value may be represented as cabac_init_value_diff.
  • the context model initial value may be defined as a difference value between the context model initial value of the current slice and the context model initial value of the previous slice.
  • the context model initial value for performing an update on the context model may be transmitted for each syntax.
  • FIG. 13 is a flowchart illustrating a method of updating a context model based on syntax statistics of a previous slice in an embodiment to which the present invention is applied.
  • the decoder may accumulate and update statistical properties for syntax in the previous slice. That is, the initial value of the new context model may be determined by using a weighted sum of the statistical value obtained from the previous slice and the initial value of the context model in the current slice.
  • the decoder may acquire a context model initial value for the current slice (S1310).
  • the context model initial value may be directly transmitted, but the present invention is not limited thereto.
  • the difference between the context model initial value for the previous slice and the context model initial value for the current slice may be transmitted, from which the context model initial value for the current slice may be derived.
  • the decoder may calculate a probability value based on syntax statistics of a previous slice (S1320).
  • the decoder may derive weight values for a context model initial value for the current slice and a probability value based on syntax statistics of the previous slice (S1330).
  • the decoder may update the context model initial value for the current slice by applying weight values to the context model initial value for the current slice and the probability value based on syntax statistics of the previous slice (S1340). .
  • Equation 3 shows how to update the context model based on the statistical properties of the syntax in the previous slice.
  • Ctx init represents an initial value of the context model defined in the current slice
  • Ctx slice (i-1) represents a probability value obtained from the statistics of syntax actually occurring in the previous slice
  • w1 and w2 represent weight values for updating the context model initial value for the current slice.
  • FIG. 14 illustrates a table for explaining a probability-based binarization updating method according to an embodiment to which the present invention is applied.
  • the present invention may directly update the initial probability value of the context model or change the binarization mapping to suit the probability distribution. That is, the binarization method can be adaptively changed according to the probability distribution of the syntax generated in the previous slice.
  • the symbol 0 having the highest probability may be binarized into one bit, and the other symbols may be binarized in truncated unary form according to a probability distribution. have.
  • FIG. 15 is a block diagram illustrating the number of binarization bins and CABAC bins per block as an embodiment to which the present invention is applied.
  • each block may be encoded in a bypass mode for all syntaxes in the block.
  • the maximum number of bins can be limited to the number of binarization bins.
  • the number of binarization bins is 50 bits, but 55 bits are generated by CABAC, so that entropy encoding is inefficient.
  • encoding all the syntax in the block using the bypass mode can generate 50 bits, saving 5 bits.
  • FIG. 16 is an embodiment to which the present invention is applied and is a syntax defining a bypass flag indicating whether a bypass mode is used.
  • FIG. 16 shows a syntax for adaptively applying a bypass mode in the proposed block unit.
  • the present invention may transmit a flag at a coding unit level or a flag at a largest coding block unit (eg, coding tree unit).
  • a bypass flag (bypass_flag) is transmitted at the coding unit level, and is decoded at the front of the block syntax.
  • bypass_flag If the bypass flag (bypass_flag) value is 1, all syntaxes in the block are decoded in bypass mode, and if the bypass flag (bypass_flag) value is 0, the syntax in the block is syntax-specific according to the conventional method. It is decoded by a predetermined regular mode or bypass mode.
  • the probabilistic model for each syntax may or may not update according to a corresponding value.
  • FIG. 17 is a table illustrating a method of classifying syntax by groups in order to adaptively apply a bypass mode as an embodiment to which the present invention is applied.
  • the specific syntax in a block may be encoded in a bypass mode for each block. This is because the case in which all syntaxes in one block are in the bypass mode may not be as efficient as in the case of using the regular mode.
  • the present invention proposes a method of adaptively using the bypass mode.
  • a bypass mode may be used when the quantized coefficient is not included.
  • certain syntaxes may be grouped and a regular mode or a bypass mode may be applied for each group.
  • FIG. 17 an embodiment of classifying syntax for each group is shown.
  • group 1 may include coding unit syntax.
  • the coding unit syntax may include at least one syntax among split_cu_flag, cu_transquant_bypass_flag, cu_skip_flag, pred_mode_flag, or part_mode.
  • split_cu_flag is a flag indicating whether a coding unit is split into coding units of half horizontal and vertical size
  • cu_transquant_bypass_flag is a scaling, transform process
  • in-loop filtering in -loop filtering
  • cu_skip_flag is a flag indicating whether the coding unit is skipped
  • pred_mode_flag is a flag indicating whether the current coding unit is coded in inter prediction mode or intra prediction mode
  • part_mode represents a partitioning mode of a current coding unit.
  • Group 2 may include prediction unit syntax in addition to group 1.
  • the prediction unit syntax may include at least one syntax of merge_flag or merge_idx.
  • merge_flag is a flag indicating whether inter prediction parameters for the current prediction unit are predicted from neighboring inter prediction partitions
  • merge_idx indicates a merge candidate index of the merge candidate list.
  • Group 3 may include prediction information syntax in addition to group 2.
  • the prediction information syntax may include at least one syntax among an intra prediction mode, a motion vector prediction index, an inter prediction direction index, a reference image index, and a motion vector difference value.
  • Group 4 may include transform unit syntax in addition to group 3.
  • the transform unit syntax may include at least one syntax of split_transform_flag, cbf, or delta_qp.
  • split_transform_flag is a flag indicating whether a block is split into blocks of half horizontal and vertical size for transform coding
  • cbf includes one or more non-zero transform coefficient levels of the transform block.
  • a flag indicating whether there is one, and delta_qp indicates a difference value between the quantization parameter of the current coding unit and its prediction value.
  • Group 5 may include quantization coefficient syntaxes in addition to group 4.
  • the quantization coefficient syntax may include at least one syntax of transform_skip_flag, last_sig_coeff, sig_coeff_flag, or coeff_abs_level related to encoding of the quantization coefficients.
  • transform_skip_flag is a flag indicating whether a transform is applied to a related transform block
  • last_sig_coeff indicates position information of the last coefficient according to a scanning order in the transform block
  • sig_coeff_flag indicates that the transform coefficient level is not equal to the transform coefficient position in the current transform block. It is a flag indicating whether or not it is non-zero
  • coeff_abs_level is a flag indicating whether there is a conversion coefficient level larger than a specific value at a scanning position.
  • 18 is an embodiment to which the present invention is applied and is a syntax for defining a bypass group index for adaptively applying a bypass mode.
  • FIG. 18 a syntax of adaptively applying a bypass mode by using syntax grouping information in a slice unit is illustrated.
  • a bypass group index for applying a bypass mode in at least one level of a slice header, a picture parameter set, or a sequence parameter set may be transmitted.
  • the bypass group index is an index indicating a group of specific syntaxes to which the bypass mode is applied.
  • the five groups described with reference to FIG. 17 may be assigned to bypass group indexes 0 to 4, respectively.
  • the bypass group index may be used to adaptively apply the bypass mode.
  • bypass_group_idx a bypass group index (bypass_group_idx) is transmitted in a slice header, and it is possible to determine which syntax to apply the bypass mode to in each block.
  • bypass_flag indicating whether to apply the bypass mode in a block unit
  • the present invention is not limited thereto. Even when one block decodes using the bypass mode, the probabilistic model for each syntax may or may not update according to a corresponding value.
  • FIG. 19 is a flowchart illustrating a process of performing bypass mode arithmetic decoding based on a bypass group index according to an embodiment to which the present invention is applied.
  • the decoder may parse the bypass group index from the bitstream (S1910).
  • the bypass group index is an index indicating a group of specific syntaxes to which the bypass mode is applied.
  • the five groups described with reference to FIG. 17 may be assigned to bypass group indexes 0 to 4, respectively.
  • the bypass group index may be used to adaptively apply the bypass mode.
  • the bypass mode may be basically applied to syntax elements corresponding to the bypass group index, but the present invention is not limited thereto. For example, it may be determined whether to apply the bypass mode for each specific syntax again for the syntax elements corresponding to the bypass group index.
  • the decoder may identify syntax elements corresponding to the bypass group index and determine a target syntax to apply the bypass mode (S1920).
  • the decoder may receive a bypass flag indicating whether to apply the bypass mode to a specific syntax at a level equal to or lower than a level at which the bypass group index is parsed (S1930). ).
  • the bypass group index (bypass_group_idx) may be parsed from a slice header, and the bypass flag may be received at a block level.
  • bypass flag it is possible to determine which syntax in each block to apply the bypass mode, and if the bypass mode is applied to perform bypass binary arithmetic decoding on the syntax or a specific syntax in the block. It may be (S1940).
  • 20 is a block diagram illustrating a method of inducing a bypass mode of a current block according to an embodiment to which the present invention is applied.
  • a method of deriving in a decoder whether a bypass mode is applied to each block is proposed.
  • the present invention can derive the bypass mode information of the current block in the N frame by using the bypass mode information used in the N-1 frame.
  • FIG. 20 illustrates the use of bypass mode information of an N-1 frame
  • the present invention is not limited thereto and may use bypass mode information of a previous frame.
  • bypass mode information of another block in the same frame may be used instead of a frame unit, or a bypass mode of a neighboring block may be used.
  • the bypass mode information of the co-located block may be used as it is.
  • bypass mode information of the block of the position indicated by the motion vector of the current block may be used.
  • the above embodiments may be performed based on a block size.
  • the above embodiments may be applied only when the sizes X1 and X3 of the corresponding blocks of the previous frame are greater than or equal to the current blocks C1 and C3 as shown in FIG. 20. That is, when the size of the corresponding block X2 of the previous frame is smaller than the current block C2, the bypass mode flag value may not be used.
  • FIG. 21 is an embodiment to which the present invention is applied and is a syntax for a bypass temporal prediction flag indicating whether a bypass flag is predicted from a previous frame.
  • the present invention proposes a method of defining a bypass temporal prediction flag at the slice level.
  • the bypass temporal prediction flag indicates whether to predict the bypass flag from a previous frame.
  • the decoder may obtain a bypass temporal prediction flag on a slice header basis, and thus determine whether to predict the bypass flag from a previous frame. At this time, the bypass mode flag of the previous frame may be used directly.
  • the bypass mode flag value may be derived by calculating the actual occurrence probability.
  • the syntax for the bypass mode may not be transmitted on a block basis.
  • FIG. 22 is a flowchart illustrating a process of performing bypass mode arithmetic decoding based on a bypass temporal prediction flag according to an embodiment to which the present invention is applied.
  • the present invention proposes a method of deriving a bypass flag from a previous frame based on a bypass temporal prediction flag and performing bypass mode arithmetic decoding using the same.
  • the decoder may parse the bypass temporal prediction flag from the bitstream (S2210).
  • the bypass temporal prediction flag may be obtained from a slice header.
  • the present invention is not limited thereto and includes a sequence parameter set, a picture parameter set, a frame, a slice, a coding tree unit, and a coding unit. , May be obtained from at least one of a prediction unit, a transform unit, or a block.
  • the decoder may derive the corresponding block of the previous slice (or the previous frame) (S2220).
  • the corresponding block may mean a block at the same position as the current block.
  • the corresponding block may mean a block of a position indicated by the motion vector of the current block.
  • bypass_temporal_pred_flag 1
  • bypass_temporal_pred_flag 0
  • the decoder may determine whether to derive the corresponding block of the previous slice (or previous frame) based on the block size. For example, if the prediction block of the corresponding block is greater than or equal to the prediction block of the current block, the information of the corresponding block is used. If the prediction block of the corresponding block is smaller than the prediction block of the current block, the information of the corresponding block is not used. You may not.
  • the decoder may derive a bypass flag of the corresponding block and determine whether to apply a bypass mode to the current block based on the bypass flag value (S2230).
  • the decoder may perform bypass binary arithmetic decoding on the current block, otherwise perform arithmetic decoding according to a normal mode. (S2240).
  • 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 signals 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.
  • 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)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 현재 슬라이스에 대한 컨텍스트 모델 초기값을 획득하는 단계; 이전 슬라이스의 신택스 통계에 기초한 확률 값을 산출하는 단계; 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값과 상기 이전 슬라이스의 신택스 통계에 기초한 확률 값에 대한 가중치 값들을 유도하는 단계; 및 상기 가중치 값들을 이용하여, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값을 업데이트하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.

Description

비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
본 발명은 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치에 관한 것이다. 보다 구체적으로, CABAC(Context-based Adaptive Binary Arithmetic Coding)을 이용하는 경우 적응적으로 컨텍스트 모델(context model)을 선택하는 방법 및 적응적으로 바이패스 모드(bypass mode)를 이용하는 방법에 관한 것이다.
엔트로피 코딩은 부호화 과정을 통해 결정된 신택스 엘리먼트들을 무손실 압축하여 RBSP(Raw Byte Sequence Payload)를 생성하는 과정이다. 엔트로피 코딩은 신택스의 통계를 이용하여 자주 발생하는 신택스에 대해서는 짧은 비트를 할당하고, 그렇지 않은 신택스에는 긴 비트를 할당하여 신택스 엘리먼트들을 간결한 데이터로 표현한다.
그 중, CABAC(Context-based Adaptive Binary Arithmetic Coding)은 이진 산술 코딩을 수행하는 과정에서 신택스의 컨텍스트와 이전에 발생한 심볼에 기초하여 적응적으로 업데이트된 확률 모델을 사용한다. 그러나, 이러한 CABAC도 연산량이 많아 복잡도가 높고 순차적 구조를 가지고 있어 병렬 수행이 어려운 문제점이 있다.
따라서, 비디오 압축 기술에 있어서 신택스 엘리먼트를 보다 효율적으로 압축하고 전송할 필요가 있으며, 이를 위해 엔트로피 코딩의 성능을 향상시킬 필요가 있다.
본 발명은 CABAC 수행시 컨텍스트 모델의 예측 성능을 높이기 위한 방법을 제안하고자 한다.
본 발명은, 블록 단위에서 모든 신택스에 대해서 바이패스 모드 기반 CABAC(bypass mode-based CABAC)을 사용하는 방법을 제안하고자 한다.
본 발명은, 블록 단위에서 특정 신택스에 대해서 바이패스 모드 기반 CABAC(bypass mode-based CABAC)을 사용하는 방법 및 특정 신택스를 규정하는 그룹화 방법을 제안하고자 한다.
본 발명은, 블록 단위의 적응적 바이패스 모드 기반 CABAC(adaptive bypass mode-based CABAC)의 적용 유무를 유도하는 방법 제안하고자 한다.
본 발명은, 블록 크기와 이웃 블록의 신택스 값에 따라서 컨텍스트 모델을 선택하는 방법을 제안하고자 한다.
본 발명은, 슬라이스 단위에서 신택스의 통계를 기반으로 확률 모델 업데이트 방법을 제안하고자 한다.
본 발명은, 슬라이스 단위에서 신택스의 통계를 기반으로 이진화 업데이트 방법을 제안하고자 한다.
본 발명은, 이웃 블록에 기초하여 컨텍스트 모델을 선택하는 방법을 제안하고자 한다.
본 발명은, 블록 크기에 기초하여 컨텍스트 모델을 선택하는 방법을 제안하고자 한다.
본 발명은, 이전 슬라이스의 신택스 통계를 기반으로 컨텍스트 모델을 업데이트할지 여부를 나타내는 플래그를 정의하고자 한다.
본 발명은, 컨텍스트 모델을 업데이트하기 위해 이용되는 컨텍스트 모델 초기값을 정의하고자 한다.
본 발명은, 이전 슬라이스의 신택스 통계에 기초하여 컨텍스트 모델을 업데이트하는 방법을 제안하고자 한다.
본 발명은, 바이패스 모드(bypass mode)인지 여부를 나타내는 바이패스 플래그(bypass flag)를 정의하고자 한다.
본 발명은, 바이패스 모드(bypass mode)를 적응적으로 적용하기 위해 그룹별로 신택스를 분류하는 방법을 제안하고자 한다.
본 발명은, 바이패스 모드(bypass mode)를 적응적으로 적용하기 위한 바이패스 그룹 인덱스(bypass group index)를 정의하고자 한다.
본 발명은, 바이패스 그룹 인덱스(bypass group index)에 기초하여 바이패스 모드 산술 디코딩(bypass mode arithmetic decoding)을 수행하는 방법을 제안하고자 한다.
본 발명은, 현재 블록의 바이패스 모드를 유도하는 방법을 제안하고자 한다.
본 발명은, 이전 프레임으로부터 바이패스 플래그를 예측할지 여부를 나타내는 바이패스 시간적 예측 플래그(bypass temporal prediction flag)를 정의하고자 한다.
본 발명은, 바이패스 시간적 예측 플래그(bypass temporal prediction flag)에 기초하여 바이패스 모드 산술 디코딩(bypass mode arithmetic decoding)을 수행하는 방법을 제안하고자 한다.
본 발명은 CABAC 수행시, 컨텍스트 모델의 예측 성능을 높이기 위하여 블록 크기와 이웃 블록의 신택스 값을 이용하거나 이전 슬라이스의 신택스의 통계를 기반으로 컨텍스트 모델을 업데이트함으로써, 엔트로피 부호화에 대한 성능을 향상시킬 수 있다.
본 발명은 CABAC 수행시, 블록 단위에서 해당 블록의 모든 신택스를 바이패스 모드(bypass mode)를 이용하여 엔트로피 부호화를 수행함으로써, 엔트로피 부호화에 대한 성능을 향상시킬 수 있다.
도 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은 본 발명이 적용되는 실시예로서, 이웃 블록에 기초하여 컨텍스트 모델을 선택하는 방법을 설명하기 위한 블록 관계도를 나타낸다.
도 8은 본 발명이 적용되는 실시예로서, 좌측 블록과 상측 블록을 이용하여 컨텍스트 모델을 선택하는 방법을 나타내는 흐름도이다.
도 9는 본 발명이 적용되는 실시예로서, 블록 크기에 기초하여 컨텍스트 모델을 선택하는 방법을 설명하기 위한 블록 관계도를 나타낸다.
도 10은 본 발명이 적용되는 실시예로서, 블록 크기와 이웃 블록의 신택스 값에 따른 컨텍스트 모델의 인덱스 값을 나타낸다.
도 11은 본 발명이 적용되는 실시예로서, 이전 슬라이스의 신택스 통계를 기반으로 업데이트를 수행할지 여부를 나타내는 플래그에 대한 신택스이다.
도 12는 본 발명이 적용되는 실시예로서, 컨텍스트 모델을 업데이트하기 위해 이용되는 컨텍스트 모델 초기값에 대한 신택스이다.
도 13은 본 발명이 적용되는 실시예로서, 이전 슬라이스의 신택스 통계에 기초하여 컨텍스트 모델을 업데이트하는 방법을 나타내는 흐름도이다.
도 14는 본 발명이 적용되는 실시예로서, 확률 기반 이진화 업데이트 방법을 설명하기 위한 표를 나타낸다.
도 15는 본 발명이 적용되는 실시예로서, 블록 별 이진화 빈(bin) 수와 CABAC 빈(bin) 수를 설명하기 위한 블록 관계도이다.
도 16은 본 발명이 적용되는 실시예로서, 바이패스 모드(bypass mode)인지 여부를 나타내는 바이패스 플래그(bypass flag)를 정의하는 신택스이다.
도 17은 본 발명이 적용되는 실시예로서, 바이패스 모드(bypass mode)를 적응적으로 적용하기 위해 그룹별로 신택스를 분류하는 방법을 설명하기 위한 표이다.
도 18은 본 발명이 적용되는 실시예로서, 바이패스 모드(bypass mode)를 적응적으로 적용하기 위한 바이패스 그룹 인덱스(bypass group index)를 정의하는 신택스이다.
도 19는 본 발명이 적용되는 실시예로서, 바이패스 그룹 인덱스(bypass group index)에 기초하여 바이패스 모드 산술 디코딩(bypass mode arithmetic decoding)을 수행하는 과정을 설명하는 흐름도이다.
도 20은 본 발명이 적용되는 실시예로서, 현재 블록의 바이패스 모드를 유도하는 방법을 설명하기 위한 블록 관계도이다.
도 21은 본 발명이 적용되는 실시예로서, 이전 프레임으로부터 바이패스 플래그를 예측할지 여부를 나타내는 바이패스 시간적 예측 플래그(bypass temporal prediction flag)에 대한 신택스이다.
도 22는 본 발명이 적용되는 실시예로서, 바이패스 시간적 예측 플래그(bypass temporal prediction flag)에 기초하여 바이패스 모드 산술 디코딩(bypass mode arithmetic decoding)을 수행하는 과정을 설명하는 흐름도이다.
본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, 현재 슬라이스에 대한 컨텍스트 모델 초기값을 획득하는 단계; 이전 슬라이스의 신택스 통계에 기초한 확률 값을 산출하는 단계; 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값과 상기 이전 슬라이스의 신택스 통계에 기초한 확률 값에 대한 가중치 값들을 유도하는 단계; 및 상기 가중치 값들을 이용하여, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값을 업데이트하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.
본 발명에서, 상기 방법은, 상기 비디오 신호로부터 컨텍스트 모델에 대해 업데이트를 수행할지 여부를 나타내는 업데이트 플래그를 획득하는 단계를 더 포함하되, 상기 업데이트 플래그에 따라 컨텍스트 모델에 대해 업데이트가 수행되는 경우, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값이 획득되는 것을 특징으로 한다.
본 발명에서, 상기 방법은, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값과 이전 슬라이스에 대한 컨텍스트 모델 초기값 간의 차이값을 획득하는 단계를 더 포함하고, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값은 상기 차이값에 기초하여 획득되는 것을 특징으로 한다.
본 발명에서, 상기 차이값은 신택스 요소마다 획득되는 것을 특징으로 한다.
본 발명에서, 상기 방법은, 이웃 블록으로부터 신택스 요소에 대한 컨텍스트 모델을 유도하는 단계; 및 상기 컨텍스트 모델을 이용하여 엔트로피 디코딩을 수행하는 단계를 더 포함하되, 상기 컨텍스트 모델은 블록 크기 또는 블록 분할 깊이 중 적어도 하나를 이용하여 유도되는 것을 특징으로 한다.
본 발명에서, 상기 컨텍스트 모델은, 상기 이웃 블록의 크기와 현재 블록의 크기의 비교 결과에 기초하여 유도되는 것을 특징으로 한다.
본 발명에서, 상기 컨텍스트 모델은, 현재 블록의 분할 깊이 별로 상기 이웃 블록의 신택스 요소 값에 기초하여 결정되는 것을 특징으로 한다.
본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서, .상기 비디오 신호로부터 바이패스 그룹 인덱스(bypass group index)를 획득하는 단계, 여기서, 상기 바이패스 그룹 인덱스는 바이패스 모드(bypass mode)가 적용되는 특정 신택스들의 그룹을 나타내는 인덱스임; 상기 바이패스 그룹 인덱스에 대응되는 신택스 요소들을 확인하는 단계; 상기 신택스 요소들에 대해 바이패스 모드를 적용할지 여부를 나타내는 바이패스 플래그를 획득하는 단계; 및 상기 바이패스 플래그에 따라 특정 신택스에 대해 바이패스 모드가 적용되는 경우, 상기 특정 신택스에 대해 바이패스 이진 산술 디코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.
본 발명에서, 상기 바이패스 그룹 인덱스는 슬라이스 단위로 획득되고, 상기 바이패스 플래그는 블록 단위로 획득되는 것을 특징으로 한다.
본 발명에서, 상기 바이패스 그룹 인덱스는, 코딩 유닛 신택스, 예측 유닛 신택스, 예측 정보 신택스, 변환 유닛 신택스 및 양자화 계수 신택스로부터 조합 가능한 적어도 하나의 그룹에 대응되는 것을 특징으로 한다.
본 발명에서, 상기 바이패스 플래그는 이전 슬라이스 또는 이전 프레임의 대응 블록으로 유도되는 것을 특징으로 한다.
본 발명에서, 상기 대응 블록은 현재 블록과 동일 위치에 있는 블록이거나 상기 현재 블록의 움직임 벡터가 가리키는 위치의 블록인 것을 특징으로 한다.
본 발명에서, 상기 방법은, 상기 비디오 신호로부터 바이패스 시간적 예측 플래그(bypass temporal prediction flag)를 획득하는 단계를 더 포함하되, 상기 바이패스 시간적 예측 플래그는 이전 프레임 또는 이전 슬라이스로부터 바이패스 플래그를 유도할지 여부를 나타내는 것을 특징으로 한다.
본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서, 이전 슬라이스의 신택스 통계에 기초한 확률 값을 저장하고 있는 메모리; 및 현재 슬라이스에 대한 컨텍스트 모델 초기값을 획득하고, 상기 이전 슬라이스의 신택스 통계에 기초한 확률 값을 유도하고, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값과 상기 이전 슬라이스의 신택스 통계에 기초한 확률 값에 대한 가중치 값들을 유도하고, 상기 가중치 값들을 이용하여 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값을 업데이트하는 컨텍스트 모델링부를 포함하는 것을 특징으로 하는 장치를 제공한다.
본 발명에서, 상기 컨텍스트 모델링부는, 상기 비디오 신호로부터 컨텍스트 모델에 대해 업데이트를 수행할지 여부를 나타내는 업데이트 플래그를 획득하고, 상기 업데이트 플래그에 따라 컨텍스트 모델에 대해 업데이트가 수행되는 경우, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값이 획득되는 것을 특징으로 한다.
본 발명은, 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서, 상기 비디오 신호로부터 바이패스 그룹 인덱스(bypass group index)를 파싱하는 파싱부; 및 상기 바이패스 그룹 인덱스에 대응되는 신택스 요소들을 확인하고, 상기 신택스 요소들에 대해 바이패스 모드를 적용할지 여부를 나타내는 바이패스 플래그를 획득하고, 상기 바이패스 플래그에 따라 특정 신택스에 대해 바이패스 모드가 적용되는 경우, 상기 특정 신택스에 대해 바이패스 이진 산술 디코딩을 수행하는 이진 산술 디코딩부를 포함하되, 상기 바이패스 그룹 인덱스는 바이패스 모드(bypass mode)가 적용되는 특정 신택스들의 그룹을 나타내는 인덱스인 것을 특징으로 하는 장치를 제공한다.
이하, 본 발명의 실시예들에 따른 예시적인 엘리먼트들 및 동작들이 첨부된 도면들을 참조하여 기술된다. 그러나 상기 도면들을 참조하여 기술되는 본 발명의 상기 엘리먼트들 및 동작들은 단지 실시예들로서 제공되는 것이고, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다는 것을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어를 사용하여 설명한다. 그러한 경우에는 해당 부분의 상세 설명에서 그 의미가 명확하게 기재된다. 따라서, 본 명세서의 설명에서 사용된 용어의 명칭 만에 기초하여 본 발명이 단순 해석되어서는 안 될 것이며 그 해당 용어의 의미까지 파악하여 해석되어야 함을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어들은 발명을 설명하기 위해 선택된 일반적인 용어들이나, 유사한 의미를 갖는 다른 용어가 있는 경우 보다 적절한 해석을 위해 대체 가능할 것이다. 예를 들어, 신호, 데이터, 샘플, 픽쳐, 프레임, 블록은 각 코딩 과정에서 적절하게 대체되어 해석될 수 있을 것이다.
또한, 본 명세서에서 설명되는 실시예들의 개념과 방법들은, 다른 실시예들에도 적용가능하며, 본 명세서에서 모두 명시하여 기재하지 않더라도 본 발명의 기술적 사상 범위 내에서 각 실시예들의 조합도 적용가능할 것이다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호의 인코딩이 수행되는 인코더의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 인코더(100)는 영상 분할부(110), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 필터링부(160), 복호 픽쳐 버퍼(DPB: Decoded Picture Buffer)(170), 인터 예측부(180), 인트라 예측부(185) 및 엔트로피 인코딩부(190)를 포함하여 구성될 수 있다.
영상 분할부(110)는 인코더(100)에 입력된 입력 영상(또는, 픽쳐, 프레임)를 하나 이상의 처리 유닛으로 분할할 수 있다. 예를 들어, 상기 처리 유닛은 코딩 트리 유닛(CTU: Coding Tree Unit), 코딩 유닛(CU: Coding Unit), 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)일 수 있다.
인코더(100)는 입력 영상 신호에서 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호를 감산하여 잔여 신호(residual signal)를 생성할 수 있고, 생성된 잔여 신호는 변환부(120)로 전송된다.
변환부(120)는 잔여 신호에 변환 기법을 적용하여 변환 계수(transform coefficient)를 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen?Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)를 이용하여 예측 신호를 생성하고 그에 기초하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(130)는 변환 계수를 양자화하여 엔트로피 인코딩부(190)로 전송하고, 엔트로피 인코딩부(190)는 양자화된 신호를 엔트로피 코딩하여 비트스트림으로 출력할 수 있다.
양자화부(130)로부터 출력된 양자화된 신호는 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 신호는 루프 내의 역양자화부(140) 및 역변환부(150)를 통해 역양자화 및 역변환을 적용함으로써 잔여 신호를 복원할 수 있다. 복원된 잔여 신호를 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호에 더함으로써 복원 신호가 생성될 수 있다.
필터링부(160)는 복원 신호에 필터링을 적용하여 이를 재생 장치로 출력하거나 복호 픽쳐 버퍼(170)에 전송한다. 복호 픽쳐 버퍼(170)에 전송된 필터링된 신호는 인터 예측부(180)에서 참조 픽쳐로 사용될 수 있다. 이처럼, 필터링된 픽쳐를 화면간 예측 모드에서 참조 픽쳐로 이용함으로써 화질 뿐만 아니라 부호화 효율도 향상시킬 수 있다.
복호 픽쳐 버퍼(170)는 필터링된 픽쳐를 인터 예측부(180)에서의 참조 픽쳐로 사용하기 위해 저장할 수 있다.
인터 예측부(180)는 복원 픽쳐를 참조하여 시간적 중복성 및/또는 공간적 중복성을 제거하기 위해 시간적 예측 및/또는 공간적 예측을 수행한다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 예측할 수 있다.
인트라 예측부(185)는 현재 부호화를 진행하려고 하는 블록의 주변에 있는 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 인트라 예측부(185)는 인트라 예측을 수행하기 위해 다음과 같은 과정을 수행할 수 있다. 먼저, 예측 신호를 생성하기 위해 필요한 참조 샘플을 준비할 수 있다. 그리고, 준비된 참조 샘플을 이용하여 예측 신호를 생성할 수 있다. 이후, 예측 모드를 부호화하게 된다. 이때, 참조 샘플은 참조 샘플 패딩 및/또는 참조 샘플 필터링을 통해 준비될 수 있다. 참조 샘플은 예측 및 복원 과정을 거쳤기 때문에 양자화 에러가 존재할 수 있다. 따라서, 이러한 에러를 줄이기 위해 인트라 예측에 이용되는 각 예측 모드에 대해 참조 샘플 필터링 과정이 수행될 수 있다.
상기 인터 예측부(180) 또는 상기 인트라 예측부(185)를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 잔여 신호를 생성하기 위해 이용될 수 있다.
도 2는 본 발명이 적용되는 실시예로서, 비디오 신호의 디코딩이 수행되는 디코더의 개략적인 블록도를 나타낸다.
도 2를 참조하면, 디코더(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 필터링부(240), 복호 픽쳐 버퍼(DPB: Decoded Picture Buffer Unit)(250), 인터 예측부(260) 및 인트라 예측부(265)를 포함하여 구성될 수 있다.
그리고, 디코더(200)를 통해 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
디코더(200)는 도 1의 인코더(100)로부터 출력된 신호을 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(210)를 통해 엔트로피 디코딩될 수 있다.
역양자화부(220)에서는 양자화 스텝 사이즈 정보를 이용하여 엔트로피 디코딩된 신호로부터 변환 계수(transform coefficient)를 획득한다.
역변환부(230)에서는 변환 계수를 역변환하여 잔여 신호를 획득하게 된다.
획득된 잔여 신호를 인터 예측부(260) 또는 인트라 예측부(265)로부터 출력된 예측 신호에 더함으로써 복원 신호가 생성된다.
필터링부(240)는 복원 신호에 필터링을 적용하여 이를 재생 장치로 출력하거나 복호 픽쳐 버퍼부(250)에 전송한다. 복호 픽쳐 버퍼부(250)에 전송된 필터링된 신호는 인터 예측부(260)에서 참조 픽쳐로 사용될 수 있다.
본 명세서에서, 인코더(100)의 필터링부(160), 인터 예측부(180) 및 인트라 예측부(185)에서 설명된 실시예들은 각각 디코더의 필터링부(240), 인터 예측부(260) 및 인트라 예측부(265)에도 동일하게 적용될 수 있다.
도 3은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 인코딩부의 개략적인 블록도를 나타낸다.
본 발명이 적용되는 엔트로피 인코딩부(300)는 이진화부(310), 컨텍스트 모델링부(320), 이진 산술 인코딩부(330) 및 메모리(360)를 포함하고, 상기 이진 산술 인코딩부(330)는 정규 이진 인코딩부(regular binary encoding unit)(340) 및 바이패스 이진 인코딩부(bypass binary encoding unit)(350)를 포함한다. 여기서, 상기 정규 이진 인코딩부(regular binary encoding unit)(340) 및 상기 바이패스 이진 인코딩부(bypass binary encoding unit)(350)는 각각 정규 코딩 엔진, 바이패스 코딩 엔진이라 불릴 수 있다.
상기 이진화부(310)은 데이터 심볼들의 시퀀스를 수신하고 이진화를 수행함으로써 0 또는 1의 이진화된 값으로 구성된 이진 심볼(bin) 스트링을 출력할 수 있다. 상기 이진화부(310)은 신택스(syntax) 요소들을 이진 심볼들로 매핑할 수 있다. 서로 다른 여러 이진화 과정들, 예를 들어, 단항(unary: U), 끝이 잘린 단항(truncated unary: TU), k차 Exp-Golomb (EGk), 및 고정 길이(Fixed Length) 과정 등이 이진화를 위해 사용될 수 있다. 상기 이진화 과정은 신택스 요소의 유형을 기반으로 선택될 수 있다.
출력된 이진 심볼 스트링은 컨텍스트 모델링부(320)으로 전송된다.
상기 컨텍스트 모델링부(320)은 메모리로부터 현재 블록을 코딩하는데 필요한 확률 정보를 선택하여 상기 이진 산술 인코딩부(330)로 전송한다. 예를 들어, 코딩할 신택스 엘리먼트에 기초하여 컨텍스트 메모리를 선택하고 빈 인덱스(binIdx)를 통해 현재 신택스 엘리먼트 코딩에 필요한 확률 정보를 선택할 수 있다. 여기서, 컨텍스트는 심볼의 발생 확률에 관한 정보를 의미하고, 컨텍스트 모델링은 이진화 결과인 빈(bin)을 입력으로 하여 이진 산술 코딩에 필요한 빈(bin)의 확률을 추정하는 과정을 의미한다.
상기 컨텍스트 모델링부(320)는 높은 코딩 효율을 성취하기 위해 필요한 정확한 확률 추정을 제공할 수 있다. 이에 따라, 서로 다른 이진 심볼들에 대해 서로 다른 컨텍스트 모델들이 사용될 수 있고 이러한 컨텍스트 모델의 확률은 이전에 코딩된 이진 심볼의 값들을 기반으로 업데이트될 수 있다. 이때, 이전에 코딩된 이진 심볼의 값들은 상기 메모리(360)에 저장되고, 상기 컨텍스트 모델링부(320)는 이로부터 이전에 코딩된 이진 심볼의 값들을 이용할 수 있다.
유사한 분포를 가지는 이진 심볼들은 동일한 컨텍스트 모델을 공유할 수 있다. 이러한 각 이진 심볼에 대한 컨텍스트 모델은 확률 추정을 위해, 빈의 신택스 정보, 빈 스트링에서의 빈의 위치를 나타내는 빈 인덱스(binIdx), 빈이 들어 있는 블록의 이웃 블록에 포함된 빈의 확률 중 적어도 하나가 이용될 수 있다.
상기 이진 산술 인코딩부(330)는 정규 이진 인코딩부(regular binary encoding unit)(340) 및 바이패스 이진 인코딩부(bypass binary encoding unit)(350)를 포함하고, 출력된 스트링에 대한 엔트로피 인코딩을 수행하고 압축된 데이터 비트들을 출력한다.
상기 정규 이진 인코딩부(regular binary encoding unit)(340)는 재귀적 구간 분할(recursive interval division)을 기반으로 산술 코딩을 수행한다.
먼저, 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 flag)를 확인할 수 있다. 여기서, 바이패스 플래그(bypass flag)는 바이패스 모드(bypass mode)인지 여부를 나타내고, 상기 바이패스 모드(bypass mode)는 컨텍스트 모델을 이용하지 않고, 현재 코딩되는 빈(bin)의 확률을 0.5로 고정하여 코딩을 수행하는 것을 의미한다.
상기 바이패스 플래그(bypass flag)에 따라 바이패스 모드(bypass mode)가 아닌 경우, 상기 정규 이진 디코딩부(regular binary decoding unit)(430)는 정규 모드(regular mode)에 따라 이진 산술 디코딩을 수행한다.
이때, 상기 컨텍스트 모델링부(410)는 상기 메모리(450)로부터 현재 비트스트림을 디코딩하는데 필요한 확률 정보를 선택하여 상기 정규 이진 디코딩부(regular binary decoding unit)(430)로 전송한다.
한편, 상기 바이패스 플래그(bypass flag)에 따라 바이패스 모드(bypass mode)인 경우, 상기 바이패스 이진 디코딩부(bypass binary decoding unit)(440)는 바이패스 모드(bypass mode)에 따라 이진 산술 디코딩을 수행한다.
상기 역이진화부(460)는 상기 이진 산술 디코딩부(420)에서 디코딩된 이진수 형태의 빈(bin)을 입력받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력하게 된다.
도 5는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 인코딩 흐름도를 나타낸다.
인코더는, 신택스 엘리먼트에 대해 이진화를 수행할 수 있다(S510).
상기 인코더는, 정규 모드에 따라 이진 산술 코딩을 수행할지 또는 바이패스 모드에 따라 이진 산술 코딩을 수행할지 여부를 확인할 수 있다(S520). 예를 들어, 상기 인코더는 바이패스 플래그(bypass flag)에 기초하여 정규 모드인지 바이패스 모드인지 여부를 확인할 수 있으며, 예를 들어 상기 바이패스 플래그(bypass flag)가 1이면 바이패스 모드를 나타내고, 0이면 정규 모드를 나타낼 수 있다.
정규 모드의 경우, 상기 인코더는 확률 모델을 선택할 수 있고(S530), 상기 확률 모델에 기초하여 이진 산술 인코딩을 수행할 수 있다(S540). 그리고, 상기 인코더는, 확률 모델을 업데이트할 수 있으며(S550), 상기 S530 단계에서 업데이트된 확률 모델에 기초하여 다시 적합한 확률 모델을 선택할 수 있다.
한편, 바이패스 모드의 경우, 상기 인코더는 확률 0.5에 기초하여 이진 산술 인코딩을 수행할 수 있다(S560).
도 6은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 디코딩 흐름도를 나타낸다.
먼저, 디코더는 비트스트림을 수신할 수 있다(S610).
상기 디코더는 상기 비트스트림으로부터 바이패스 플래그(bypass flag)를 추출하여 정규 모드인지 바이패스 모드인지 여부를 확인할 수 있다(S620). 여기서, 상기 바이패스 플래그(bypass flag)는 신택스의 종류에 따라 사전에 결정되어 있을 수 있다.
상기 바이패스 플래그(bypass flag)가 정규 모드를 나타내는 경우, 상기 디코더는 확률 모델을 선택할 수 있고(S630), 상기 확률 모델에 기초하여 이진 산술 디코딩을 수행할 수 있다(S640). 그리고, 상기 디코더는, 확률 모델을 업데이트할 수 있으며(S650), 상기 S630 단계에서 업데이트된 확률 모델에 기초하여 다시 적합한 확률 모델을 선택할 수 있다.
한편, 상기 바이패스 플래그(bypass flag)가 바이패스 모드를 나타내는 경우, 상기 디코더는 확률 0.5에 기초하여 이진 산술 디코딩을 수행할 수 있다(S660).
상기 디코더는 디코딩된 빈스트링(bin string)에 대해 역이진화를 수행할 수 있다(S670). 예를 들어, 디코딩된 이진수 형태의 빈(bin)을 입력받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력할 수 있다.
도 7은 본 발명이 적용되는 실시예로서, 이웃 블록에 기초하여 컨텍스트 모델을 선택하는 방법을 설명하기 위한 블록 관계도를 나타낸다.
상기 도 7을 살펴보면, 현재 블록을 C, 현재 블록에 인접한 좌측 블록을 L, 상측 블록을 A라 한다. 현재 블록 C의 신택스에 대한 컨텍스트 모델은 이웃 블록인 좌측 블록 (L) 이나 상측 블록 (A) 중 적어도 하나를 이용하여 결정될 수 있다. 다음 수학식 1은 상기 좌측 블록과 상기 상측 블록을 이용하여 컨텍스트 모델을 선택하는 방법을 나타낸다.
수학식 1
Figure PCTKR2016013458-appb-M000001
여기서, availableL과 availableA는 각각 좌측 블록과 상측 블록이 존재하는지 여부를 나타내며, condL과 condA는 각각 좌측 블록과 상측 블록에 대한 해당 신택스의 값을 의미한다.
상기 수학식 1에 따르면, 이웃 블록의 신택스 값에 따라서 3개의 컨텍스트 모델이 사용될 수 있다. 상기 컨텍스트 모델은 현재 블록의 크기 또는 이웃 블록의 크기에 상관없이 이웃 블록의 신택스 값에 따라 결정될 수 있다. 그러나, 일반적으로 부호화되는 블록의 크기에 따라 신택스 요소의 통계적인 특성이 다를 수 있다. 따라서, 본 발명에서는 블록 크기 및 통계적 특성에 기초하여 컨텍스트 모델을 선택하는 새로운 방법을 제안한다.
도 8은 본 발명이 적용되는 실시예로서, 좌측 블록과 상측 블록을 이용하여 컨텍스트 모델을 선택하는 방법을 나타내는 흐름도이다.
본 발명에 따라 컨텍스트 모델을 선택하는 방법은 인코더 및 디코더에서 모두 적용될 수 있으며, 설명의 편의상 디코더를 기준으로 설명하도록 한다.
먼저, 디코더는 현재 블록에 이웃하는 좌측 블록 및 상측 블록을 유도할 수 있다(S810). 즉, 현재 블록에 인접하는 좌측 블록 및 상측 블록이 이용가능한지 확인할 수 있다.
상기 좌측 블록 및 상기 상측 블록 중 적어도 하나가 이용가능한 경우, 상기 디코더는 상기 좌측 블록 및 상기 상측 블록 중 적어도 하나로부터 신택스 값을 유도할 수 있다(S820).
그리고, 상기 디코더는 상기 좌측 블록 및 상기 상측 블록 중 적어도 하나의 신택스 값에 기초하여 컨텍스트 모델을 결정할 수 있다(S830).
상기 결정된 컨텍스트 모델에 기초하여, 상기 디코더는 컨텍스트 인덱스(CtxIdx) 값을 유도할 수 있다(S840).
상기 디코더는, 상기 컨텍스트 인덱스(CtxIdx) 값에 기초하여 이진 산술 디코딩을 수행할 수 있다(S850).
도 9는 본 발명이 적용되는 실시예로서, 블록 크기에 기초하여 컨텍스트 모델을 선택하는 방법을 설명하기 위한 블록 관계도를 나타낸다.
본 발명에 따라 컨텍스트 모델을 선택하는 방법은 인코더 및 디코더에서 모두 적용될 수 있으며, 설명의 편의상 디코더를 기준으로 설명하도록 한다.
본 발명의 일실시예로, 디코더는 블록 크기와 주변 블록의 신택스 값 중 적어도 하나에 기초하여 컨텍스트 모델을 선택할 수 있다. 예를 들어, 도 9를 살펴보면, C1 블록의 경우, 좌측 및 상측에 인접한 블록들 L1, A1의 신택스 값을 이용하여 컨텍스트 모델을 선택할 수 있고, C2블록의 경우 좌측 및 상측에 인접한 블록들 L2, A2의 신택스 값을 이용하여 컨텍스트 모델을 선택할 수 있다. L2와 같이 인접한 블록이 분할되어 있는 경우, 분할된 블록들 중 적어도 하나를 이용할 수 있으며, 도 9의 경우 L2 블록을 이용하는 경우를 나타낸다.
또한, C1 블록과 C2 블록은 크기가 다르기 때문에 신택스 특성이 다를 수 있다. 따라서, 블록 크기 및 주변 블록의 신택스 값을 함께 고려하여 컨텍스트 모델을 선택할 수 있다.
아래 수학식 2는 좌측 블록과 상측 블록, 그리고 쿼드 트리 깊이를 이용하여 컨텍스트 모델을 선택하는 방법을 보여준다.
수학식 2
Figure PCTKR2016013458-appb-M000002
여기서, QTDepth 는 현재 블록의 쿼드 트리 깊이 값을 의미한다. 예를 들어, CU 크기를 8 x 8부터 256 x 256 까지 허용하는 경우 QTDepth 값은 0부터 5의 값을 가질 수 있다. 그리고, availableL과 availableA는 각각 좌측 블록과 상측 블록이 존재하는지 여부를 나타내며, condL과 condA는 각각 해당 신택스에 대한 좌측 블록과 상측 블록의 신택스 값을 의미한다. 상기 수학식 2에 따르면, 주변 블록의 신택스 값에 따라 9개의 컨텍스트 모델이 사용될 수 있다.
이에 대한 구체적인 실시예들은 도 10에서 보다 상세히 설명하도록 한다.
도 10은 본 발명이 적용되는 실시예로서, 블록 크기와 이웃 블록의 신택스 값에 따른 컨텍스트 모델의 인덱스 값을 나타낸다.
상기 도 10을 살펴보면, 블록 크기를 8 x 8부터 256 x 256 까지 허용하는 경우 블록 크기 및 이웃 블록의 신택스 값에 따라 CtxIdx 값이 다르게 결정되는 것을 확인할 수 있다.
예를 들어, 블록 크기가 256 x 256 또는 128 x 128인 경우 CtxIdx 은 0, 1, 2 값을 가질 수 있으며, 이웃 블록의 신택스 값의 합에 따라 CtxIdx 값이 결정될 수 있다. 좌측 블록과 상측 블록의 신택스 값이 모두 0이면 CtxIdx 값은 0이고, 좌측 블록과 상측 블록 중 어느 하나의 신택스 값이 1이면 CtxIdx 값은 1이고, 좌측 블록과 상측 블록의 신택스 값이 모두 1이면 CtxIdx 값은 2이다.
마찬가지로, 블록 크기가 64 x 64 또는 32 x 32인 경우 CtxIdx 은 3, 4, 5 값을 가질 수 있으며, 이웃 블록의 신택스 값에 따라 CtxIdx 값이 결정될 수 있다.
또한, 블록 크기가 16 x 16 또는 8 x 8인 경우 CtxIdx 은 6, 7, 8 값을 가질 수 있으며, 이웃 블록의 신택스 값에 따라 CtxIdx 값이 결정될 수 있다.
도 11은 본 발명이 적용되는 실시예로서, 이전 슬라이스의 신택스 통계를 기반으로 업데이트를 수행할지 여부를 나타내는 플래그에 대한 신택스이다.
본 발명은, 슬라이스 단위에서 해당 신택스의 통계를 기반으로 컨텍스트 모델을 업데이트하거나 이진화 방법을 변경할 수 있다.
도 11을 살펴보면, 컨텍스트 모델에 대해 업데이트를 수행할지 여부를 나타내는 플래그에 대한 신택스를 나타낸다. 예를 들어, cabac_update_flag (S1110)는 이전 슬라이스의 신택스의 통계를 기반으로 업데이트를 적용할지 여부에 대한 플래그이다. cabac_update_flag 값이 1이면 컨텍스트 모델에 대해 업데이트를 수행하고, cabac_update_flag 값이 0이면 컨텍스트 모델에 대해 업데이트를 수행하지 않는다.
또한, 상기 도 11의 cabac_update_flag 와 같이 모든 신택스에 대한 업데이트 수행 여부를 슬라이스 헤더에서 지정할 수 있으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 다른 레벨(시퀀스 파라미터 셋, 픽쳐 파라미터 셋, 코딩 트리 유닛, 코딩 유닛, 변환 유닛 등)에서도 정의할 수 있고, 또는 신택스 각각에 대해서 컨텍스트 모델에 대한 업데이트를 수행할지 여부를 결정하도록 할 수도 있다.
이하에서는, 컨텍스트 모델에 대해 업데이트를 수행하는 방법을 설명하도록 한다.
도 12는 본 발명이 적용되는 실시예로서, 컨텍스트 모델을 업데이트하기 위해 이용되는 컨텍스트 모델 초기값에 대한 신택스이다.
컨텍스트 모델을 업데이트하는 방법의 일실시예로, 컨텍스트 모델의 초기 값을 직접 전송함으로써 업데이트를 수행할 수 있다.
상기 도 12를 살펴보면, 디코더는 먼저 컨텍스트 모델에 대해 업데이트를 수행할지 여부를 나타내는 플래그를 획득할 수 있다(S1210). 예를 들어, 상기 도 11에서 설명한 바와 같이, 상기 디코더는 cabac_update_flag 를 획득하여 컨텍스트 모델에 대해 업데이트를 수행할지 여부를 확인할 수 있다.
상기 확인 결과, cabac_update_flag 가 1이면(S1220), 컨텍스트 모델에 대해 업데이트를 수행하기 위한 컨텍스트 모델 초기값을 획득할 수 있다(S1230). 예를 들어, 컨텍스트 모델 초기값을 나타내는 신택스를 cabac_init_value_diff 로 나타낼 수 있다. 여기서, 상기 컨텍스트 모델 초기값은 현재 슬라이스의 컨텍스트 모델 초기값과 이전 슬라이스의 컨텍스트 모델 초기값과의 차이값으로 정의될 수 있다.
다른 실시예로, 컨텍스트 모델에 대해 업데이트를 수행하기 위한 컨텍스트 모델 초기값은 각 신택스마다 전송될 수도 있다.
도 13은 본 발명이 적용되는 실시예로서, 이전 슬라이스의 신택스 통계에 기초하여 컨텍스트 모델을 업데이트하는 방법을 나타내는 흐름도이다.
컨텍스트 모델을 업데이트하는 일실시예로, 디코더는 이전 슬라이스에서의 신택스에 대한 통계적 특성을 누적하여 업데이트 할 수 있다. 즉, 이전 슬라이스로부터 획득한 통계 기반의 확률값과 현재 슬라이스에서의 컨텍스트 모델의 초기값에 대한 가중치 합을 이용하여 새로운 컨텍스트 모델의 초기값을 결정할 수 있다.
먼저, 디코더는 현재 슬라이스에 대한 컨텍스트 모델 초기값을 획득할 수 있다(S1310). 여기서, 상기 컨텍스트 모델 초기값은 직접 해당 값이 전송될 수 있으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 이전 슬라이스에 대한 컨텍스트 모델 초기값과 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값 간의 차이값이 전송되고, 이로부터 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값을 유도할 수 있다.
상기 디코더는, 이전 슬라이스의 신택스 통계에 기초한 확률 값을 산출할 수 있다(S1320).
상기 디코더는, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값과 상기 이전 슬라이스의 신택스 통계에 기초한 확률 값에 대한 가중치 값들을 유도할 수 있다(S1330).
그리고, 상기 디코더는 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값과 상기 이전 슬라이스의 신택스 통계에 기초한 확률 값에 대해 가중치 값들을 적용하여, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값을 업데이트할 수 있다(S1340).
아래 수학식 3은 이전 슬라이스에서의 신택스에 대한 통계적 특성에 기초하여 컨텍스트 모델을 업데이트하는 방법을 보여준다.
수학식 3
Figure PCTKR2016013458-appb-M000003
여기서, Ctxinit 은 현재 슬라이스에서 정의하고 있는 컨텍스트 모델의 초기값을 나타내고, Ctxslice(i-1) 은 이전 슬라이스에서 실제 발생한 신택스의 통계로부터 구한 확률값을 나타낸다. w1과 w2는 현재 슬라이스에 대한 컨텍스트 모델 초기값을 업데이트하기 위한 가중치 값을 나타낸다.
도 14는 본 발명이 적용되는 실시예로서, 확률 기반 이진화 업데이트 방법을 설명하기 위한 표를 나타낸다.
본 발명은, 컨텍스트 모델의 초기 확률값을 직접 업데이트할 수도 있고, 이진화 매핑을 확률 분포에 맞게 변경할 수도 있다. 즉, 이전 슬라이스에서 발생한 신택스의 확률 분포에 따라서 이진화 방법을 적응적으로 바꿀 수 있다.
상기 도 14는 확률 기반 이진화 업데이트 방법을 보여준다.
4개의 심볼 값이 있을 때, 2 비트로 이진화가 가능하다. 이 때, 이진화의 첫 번째 비트는 0의 발생확률이 높은 확률 모델을 사용한다고 할 때, 많이 발생하는 심볼에 대해서 이진화 코드 “00”과 “01”을 할당해 주어야 한다. 그런데, 상기 도 14에서는 심볼 1보다 심볼 2의 발생확률이 높기 때문에 도 14(a)에서와 같이 심볼 2를 “01”로 이진화를 하는 것이 효과적일 수 있다.
본 발명의 다른 실시예로, 도 14(b)에서와 같이 가장 높은 확률을 가지는 심볼 0을 한 비트로 이진화하고 나머지 심볼에 대해서는 확률 분포에 따라 절삭된 단항(truncated unary) 형태로 이진화를 수행할 수도 있다.
도 15는 본 발명이 적용되는 실시예로서, 블록 별 이진화 빈(bin) 수와 CABAC 빈(bin) 수를 설명하기 위한 블록 관계도이다.
본 발명의 일실시예로, 각 블록 별로 블록 내의 모든 신택스에 대해 바이패스 모드(bypass mode)로 부호화를 할 수 있다.
상기 도 15는 블록 별 이진화 빈 수와 CABAC 빈 수를 보여준다. 대부분의 블록들은 CABAC으로 발생한 빈 수가 이진화에 의한 빈 수보다 적게 되어 엔트로피 부호화가 효율적이지만, 특정 블록들 (예를 들어, A, B, C, D 블록)들은 CABAC으로 발생한 빈 수가 이진화에 의한 빈 수보다 크게 되어 엔트로피 부호화가 비효율적일 수 있다.
이러한 경우에는 정규 모드(regular mode) 대신 바이패스 모드(bypass mode)를 사용하면, 최대의 빈 수를 이진화 빈 수로 제한할 수 있다. 예를 들어, 상기 도 15의 D 블록의 경우, 이진화 빈 수는 50 비트이나 CABAC에 의해서 55 비트가 발생하여, 엔트로피 부호화가 비효율적이다. 이 블록에 대해서 블록 내의 모든 신택스를 바이패스 모드(bypass mode)를 사용하여 부호화하면 50 비트가 발생하여 5 비트를 절약할 수 있다.
마찬가지로, A, B, C 블록의 경우에도 CABAC으로 발생한 빈 수가 이진화에 의한 빈 수보다 크므로, 이들에 대해서도 바이패스 모드(bypass mode)를 사용하면, 20 비트가 발생하여 각각 3비트, 5비트, 2비트를 절약할 수 있게 된다.
도 16은 본 발명이 적용되는 실시예로서, 바이패스 모드(bypass mode)인지 여부를 나타내는 바이패스 플래그(bypass flag)를 정의하는 신택스이다.
상기 도 16은 제안하는 블록 단위에서 적응적으로 바이패스 모드(bypass mode)를 적용하는 신택스를 보여준다. 본 발명은 코딩 유닛(coding unit) 레벨에서 플래그를 전송하거나 가장 큰 부호화 블록 단위 (예를 들어, coding tree unit)에서 플래그를 전송할 수도 있다. 상기 도 16의 경우 코딩 유닛 레벨에서 바이패스 플래그(bypass_flag)를 전송하여, 블록 신택스의 가장 앞에서 복호화된다.
바이패스 플래그(bypass_flag) 값이 1인 경우, 블록 내의 모든 신택스는 바이패스 모드(bypass mode)로 복호화되고, 바이패스 플래그(bypass_flag)값이 0인 경우, 블록 내의 신택스는 기존의 방법대로 신택스 별로 정해진 정규 모드(regular mode) 또는 바이패스 모드(bypass mode)에 의해서 복호화 된다.
또한, 하나의 블록이 바이패스 모드(bypass mode)를 이용하여 복호화하는 경우에도, 각 신택스에 대한 확률 모델은 해당 값에 따라 업데이트를 수행하거나 수행하지 않을 수도 있다.
도 17은 본 발명이 적용되는 실시예로서, 바이패스 모드(bypass mode)를 적응적으로 적용하기 위해 그룹별로 신택스를 분류하는 방법을 설명하기 위한 표이다.
본 발명의 실시예로, 각 블록 별로 블록 내의 특정 신택스를 바이패스 모드(bypass mode)로 부호화를 할 수 있다. 하나의 블록 내의 모든 신택스를 바이패스 모드(bypass mode)로 하는 경우에는 정규 모드(regular mode)를 사용하는 경우보다 효율적이지 않을 수 있기 때문이다.
따라서, 본 발명은 적응적으로 바이패스 모드(bypass mode)를 사용하는 방법을 제안한다.
첫번째 예로, 양자화된 계수를 포함하지 않는 경우 바이패스 모드(bypass mode)를 사용할 수 있다.
두번째 예로, 특정 신택스들을 그룹핑하고 그룹별로 정규 모드(regular mode) 또는 바이패스 모드(bypass mode)를 적용할 수 있다.
상기 도 17을 살펴보면, 각 그룹 별로 신택스를 분류하는 실시예를 보여준다.
예를 들어, 그룹 1은 부호화 유닛 신택스를 포함할 수 있다. 구체적 예로, 상기 부호화 유닛 신택스는 split_cu_flag, cu_transquant_bypass_flag, cu_skip_flag, pred_mode_flag, 또는 part_mode 중 적어도 하나의 신택스를 포함할 수 있다. 여기서, split_cu_flag는 코딩 유닛이 하프 수평 및 수직 크기(half horizontal and vertical size)의 코딩 유닛들로 분할되는지 여부를 나타내는 플래그이고, cu_transquant_bypass_flag는 스케일링(scaling), 변환(transform) 과정 및 인루프 필터링(in-loop filtering) 과정이 바이패스되는지 여부를 나타내는 플래그이고, cu_skip_flag 는 코딩 유닛이 스킵되는지 여부를 나타내는 플래그이고, pred_mode_flag는 현재 코딩 유닛이 인터 예측 모드 또는 인트라 예측 모드로 코딩되었는지 여부를 나타내는 플래그이며, part_mode는 현재 코딩 유닛의 파티셔닝 모드(partitioning mode)를 나타낸다.
그룹 2는 그룹 1에 추가적으로 예측 유닛 신택스를 포함할 수 있다. 구체적 예로, 상기 예측 유닛 신택스는 merge_flag 또는 merge_idx 중 적어도 하나의 신택스를 포함할 수 있다. 여기서, merge_flag 는 현재 예측 유닛에 대한 인터 예측 파라미터들이 이웃하는 인터 예측 파티션으로부터 예측되는지 여부를 나타내는 플래그이고, merge_idx는 머지 후보 리스트의 머지 후보 인덱스를 나타낸다.
그룹 3은 그룹 2에 추가적으로 예측 정보 신택스를 포함할 수 있다. 구체적 예로, 상기 예측 정보 신택스는 화면 내 예측 모드, 움직임 벡터 예측 인덱스, 화면 간 예측 방향 인덱스, 참조 영상 인덱스, 움직임 벡터 차분 값 중 적어도 하나의 신택스를 포함할 수 있다.
그룹 4는 그룹 3에 추가적으로 변환 유닛 신택스를 포함할 수 있다. 구체적 예로, 상기 변환 유닛 신택스는 split_transform_flag, cbf, 또는 delta_qp 중 적어도 하나의 신택스를 포함할 수 있다. 여기서, split_transform_flag는 변환 코딩을 위해 블록이 하프 수평 및 수직 크기(half horizontal and vertical size)의 블록들로 분할되는지 여부를 나타내는 플래그이고, cbf 는 변환 블록이 1이상의 0이 아닌 변환 계수 레벨을 포함하고 있는지 여부를 나타내는 플래그이며, delta_qp는 현재 코딩 유닛의 양자화 파라미터와 그 예측값 간의 차이값을 나타낸다.
그룹 5는 그룹 4에 추가적으로 양자화 계수 신택스들이 포함될 수 있다. 구체적 예로, 상기 양자화 계수 신택스는 양자화 계수의 부호화에 관련된 transform_skip_flag, last_sig_coeff, sig_coeff_flag, 또는 coeff_abs_level 중 적어도 하나의 신택스를 포함할 수 있다. 여기서, transform_skip_flag는 변환이 관련 변환 블록에 적용되는지 여부를 나타내는 플래그이고, last_sig_coeff는 변환 블록 내 스캐닝 오더에 따른 마지막 계수의 위치 정보를 나타내고, sig_coeff_flag는 현재 변환 블록 내 변환 계수 위치에서 변환 계수 레벨이 넌-제로(non-zero)인지 여부를 나타내는 플래그이며, coeff_abs_level는 스캐닝 위치에서 특정값보다 큰 변환 계수 레벨이 존재하는지 여부를 나타내는 플래그이다.
그룹 5의 경우 블록 내의 모든 신택스를 바이패스 모드(bypass mode)로 부호화하는 것과 같다.
도 18은 본 발명이 적용되는 실시예로서, 바이패스 모드(bypass mode)를 적응적으로 적용하기 위한 바이패스 그룹 인덱스(bypass group index)를 정의하는 신택스이다.
상기 도 18을 살펴보면, 슬라이스 단위에서 신택스 그룹핑 정보를 이용하여 적응적으로 바이패스 모드(bypass mode)를 적용하는 신택스를 보여준다.
본 발명은, 슬라이스 헤더, 픽쳐 파라미터 셋 또는 시퀀스 파라미터 셋 중 적어도 하나의 레벨에서 바이패스 모드를 적용하기 위한 바이패스 그룹 인덱스(bypass group index)를 전송할 수 있다. 여기서, 상기 바이패스 그룹 인덱스(bypass group index)는 바이패스 모드가 적용되는 특정 신택스들의 그룹을 나타내는 인덱스이다. 예를 들어, 상기 도 17에서 설명한 5개의 그룹들은 각각 바이패스 그룹 인덱스(bypass group index) 0 내지 4로 할당될 수 있다. 상기 바이패스 그룹 인덱스(bypass group index)는 적응적으로 바이패스 모드(bypass mode)를 적용하기 위해 이용될 수 있다.
상기 도 18를 살펴보면, 슬라이스 헤더에서 바이패스 그룹 인덱스(bypass_group_idx)를 전송하고, 각 블록에서 어떠한 신택스에 대해 바이패스 모드를 적용할지를 결정할 수 있다.
이 경우, 블록 단위에서의 바이패스 모드를 적용할지 여부를 나타내는 바이패스 플래그(bypass_flag)를 전송할 수 있으나, 본 발명은 이에 한정되지 않는다. 하나의 블록이 바이패스 모드(bypass mode)를 사용하여 복호화하는 경우에도 각 신택스에 대한 확률 모델은 해당 값에 따라 업데이트를 수행하거나 수행하지 않을 수도 있다.
도 19는 본 발명이 적용되는 실시예로서, 바이패스 그룹 인덱스(bypass group index)에 기초하여 바이패스 모드 산술 디코딩(bypass mode arithmetic decoding)을 수행하는 과정을 설명하는 흐름도이다.
디코더는, 비트스트림으로부터 바이패스 그룹 인덱스(bypass group index)를 파싱할 수 있다(S1910). 여기서, 상기 바이패스 그룹 인덱스(bypass group index)는 바이패스 모드가 적용되는 특정 신택스들의 그룹을 나타내는 인덱스이다. 예를 들어, 상기 도 17에서 설명한 5개의 그룹들은 각각 바이패스 그룹 인덱스(bypass group index) 0 내지 4로 할당될 수 있다. 상기 바이패스 그룹 인덱스(bypass group index)는 적응적으로 바이패스 모드(bypass mode)를 적용하기 위해 이용될 수 있다.
한편, 상기 바이패스 그룹 인덱스(bypass group index)에 대응되는 신택스 요소들은 기본적으로 바이패스 모드가 적용될 수 있으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 상기 바이패스 그룹 인덱스(bypass group index)에 대응되는 신택스 요소들에 대해서도 다시 특정 신택스별로 바이패스 모드를 적용할지 여부를 결정할 수있다.
예를 들어, 상기 디코더는, 상기 바이패스 그룹 인덱스(bypass group index)에 대응되는 신택스 요소들을 확인하고, 바이패스 모드를 적용할 대상 신택스를 결정할 수 있다(S1920).
상기 디코더는, 상기 바이패스 그룹 인덱스(bypass group index)를 파싱한 레벨과 같거나 더 하위의 레벨에서, 특정 신택스에 대해 바이패스 모드를 적용할지 여부를 나타내는 바이패스 플래그를 수신할 수 있다(S1930). 예를 들어, 슬라이스 헤더에서 바이패스 그룹 인덱스(bypass_group_idx)를 파싱하고, 블록 레벨에서 상기 바이패스 플래그를 수신할 수 있다
상기 바이패스 플래그에 기초하여, 각 블록에서 어떠한 신택스에 대해 바이패스 모드를 적용할지를 결정할 수 있고, 바이패스 모드가 적용되는 경우 해당 블록 내 신택스들 또는 특정 신택스에 대해 바이패스 이진 산술 디코딩을 수행할 수 있다(S1940).
도 20은 본 발명이 적용되는 실시예로서, 현재 블록의 바이패스 모드를 유도하는 방법을 설명하기 위한 블록 관계도이다.
본 발명의 일실시예로, 각 블록에 대해 바이패스 모드(bypass mode)가 적용되는지 여부를 디코더에서 유도하는 방법을 제안한다.
상기 도 20에서, 음영으로 표시된 영역을 바이패스 모드(bypass mode)에 의해서 디코딩된 블록이라고 가정한다.
본 발명은, N-1 프레임에서 사용한 바이패스 모드(bypass mode) 정보를 이용하여, N 프레임에서 현재 블록의 바이패스 모드(bypass mode) 정보를 유도할 수 있다. 상기 도 20에서는 N-1 프레임의 바이패스 모드(bypass mode) 정보를 이용하는 것을 설명하고 있으나, 본 발명은 이에 한정되지 않으며 이전 프레임의 바이패스 모드(bypass mode) 정보를 이용할 수도 있다. 또한, 프레임 단위가 아닌 동일 프레임 내 다른 블록의 바이패스 모드(bypass mode) 정보를 이용할 수도 있으며, 이웃 블록의 바이패스 모드(bypass mode)를 이용할 수도 있다.
일실시예로, 현재 디코딩하려는 블록과 동일한 위치의 블록(co-located block)의 바이패스 모드(bypass mode) 정보를 그대로 사용할 수도 있다.
또는, 현재 블록의 움직임 벡터가 가르키는 위치의 블록의 바이패스 모드(bypass mode) 정보를 사용할 수도 있다.
또한, 상기 실시예들은, 블록 크기에 기초하여 수행될 수 있다. 예를 들어, 상기 실시예들은, 상기 도 20에서와 같이, 이전 프레임의 대응 블록의 크기(X1, X3)가 현재 블록(C1, C3)보다 크거나 같은 경우에만 적용될 수 있다. 즉, 이전 프레임의 대응 블록(X2)의 크기가 현재 블록(C2)보다 작은 경우에는 바이패스 모드(bypass mode) 플래그 값을 사용하지 않을 수 있다.
도 21은 본 발명이 적용되는 실시예로서, 이전 프레임으로부터 바이패스 플래그를 예측할지 여부를 나타내는 바이패스 시간적 예측 플래그(bypass temporal prediction flag)에 대한 신택스이다.
본 발명은, 슬라이스 레벨에서 바이패스 시간적 예측 플래그(bypass temporal prediction flag)를 정의하는 방법을 제안한다. 상기 바이패스 시간적 예측 플래그(bypass temporal prediction flag)는 이전 프레임으로부터 바이패스 플래그를 예측할지 여부를 나타낸다.
예를 들어, 상기 바이패스 시간적 예측 플래그(bypass temporal prediction flag)는 bypass_temporal_pred_flag 로 표현될 수 있으며, bypass_temporal_pred_flag =1 이면 현재 슬라이스는 이전 프레임으로부터 바이패스 플래그를 예측할 수 있고, bypass_temporal_pred_flag =0 이면 현재 슬라이스는 이전 프레임으로부터 바이패스 플래그를 예측하지 않는다.
디코더는, 슬라이스 헤더 단위로 바이패스 시간적 예측 플래그(bypass temporal prediction flag)를 획득할 수 있으며, 그에 따라 이전 프레임으로부터 바이패스 플래그를 예측할지 여부를 결정할 수 있다. 이 때, 이전 프레임의 바이패스 모드 플래그를 직접 이용할 수도 있다.
또는 이전 프레임이 바이패스 모드를 사용하지 않는 프레임인 경우, 실제 발생 확률에 대한 계산을 통하여 바이패스 모드 플래그 값을 유도할 수도 있다.
또한, 상기 바이패스 시간적 예측 플래그(bypass temporal prediction flag)가 사용되는 경우에는 블록 단위에서 바이패스 모드에 대한 신택스를 전송하지 않을 수 있다.
도 22는 본 발명이 적용되는 실시예로서, 바이패스 시간적 예측 플래그(bypass temporal prediction flag)에 기초하여 바이패스 모드 산술 디코딩(bypass mode arithmetic decoding)을 수행하는 과정을 설명하는 흐름도이다.
본 발명은, 바이패스 시간적 예측 플래그(bypass temporal prediction flag)에 기초하여 이전 프레임으로부터 바이패스 플래그를 유도하고, 이를 이용하여 바이패스 모드 산술 디코딩(bypass mode arithmetic decoding)을 수행하는 방법을 제안한다.
디코더는 비트스트림으로부터 바이패스 시간적 예측 플래그(bypass temporal prediction flag)를 파싱할 수 있다(S2210). 이 경우, 상기 바이패스 시간적 예측 플래그(bypass temporal prediction flag)는 슬라이스 헤더로부터 획득될 수 있으나, 본 발명은 이에 한정되지 않으며, 시퀀스 파라미터 셋, 픽쳐 파라미터 셋, 프레임, 슬라이스, 코딩 트리 유닛, 코딩 유닛, 예측 유닛, 변환 유닛, 또는 블록 중 적어도 하나로부터 획득될 수 있다.
바이패스 시간적 예측 플래그(bypass temporal prediction flag)에 따라 이전 슬라이스로(또는 이전 프레임)부터 바이패스 플래그를 유도하는 경우, 상기 디코더는 이전 슬라이스(또는 이전 프레임)의 대응 블록을 유도할 수 있다(S2220). 여기서, 상기 대응 블록은 현재 블록과 동일 위치에 있는 블록을 의미할 수 있다. 또는 상기 대응 블록은 상기 현재 블록의 움직임 벡터가 가르키는 위치의 블록을 의미할 수 있다.
예를 들어, bypass_temporal_pred_flag = 1 이면, 상기 디코더는 이전 프레임 또는 이전 슬라이스에서 대응 블록을 유도할 수 있고, bypass_temporal_pred_flag =0이면, 상기 디코더는 이전 프레임 또는 이전 슬라이스에서 대응 블록을 유도하지 않는다.
일실시예로, 상기 디코더는 블록 크기에 기초하여 이전 슬라이스(또는 이전 프레임)의 대응 블록을 유도할지 여부를 결정할 수 있다. 예를 들어, 대응 블록의 예측 블록이 현재 블록의 예측 블록보다 크거나 같은 경우 대응 블록의 정보를 이용하고, 대응 블록의 예측 블록이 현재 블록의 예측 블록보다 작은 경우에는 대응 블록의 정보를 이용하지 않을 수 있다.
상기 디코더는 상기 대응 블록의 바이패스 플래그를 유도하고, 상기 바이패스 플래그 값에 기초하여 상기 현재 블록에 대해 바이패스 모드를 적용할지 여부를 결정할 수 있다(S2230).
상기 바이패스 플래그에 따라 상기 현재 블록에 대해 바이패스 모드가 적용되는 경우, 상기 디코더는 상기 현재 블록에 대해 바이패스 이진 산술 디코딩을 수행하고, 그렇지 않은 경우 정규 모드에 따른 산술 디코딩을 수행할 수 있다(S2240).
상기 기술된 것과 같이, 본 발명에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 상기 도 1 내지 4 에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다.
또한, 본 발명이 적용되는 디코더 및 인코더는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 및 데이터 신호를 처리하기 위해 사용될 수 있다.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트 스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.

Claims (15)

  1. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서,
    현재 슬라이스에 대한 컨텍스트 모델 초기값을 획득하는 단계;
    이전 슬라이스의 신택스 통계에 기초한 확률 값을 산출하는 단계;
    상기 현재 슬라이스에 대한 컨텍스트 모델 초기값과 상기 이전 슬라이스의 신택스 통계에 기초한 확률 값에 대한 가중치 값들을 유도하는 단계; 및
    상기 가중치 값들을 이용하여, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값을 업데이트하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 방법은,
    상기 비디오 신호로부터 컨텍스트 모델에 대해 업데이트를 수행할지 여부를 나타내는 업데이트 플래그를 획득하는 단계
    를 더 포함하되,
    상기 업데이트 플래그에 따라 컨텍스트 모델에 대해 업데이트가 수행되는 경우, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값이 획득되는 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 방법은,
    상기 현재 슬라이스에 대한 컨텍스트 모델 초기값과 이전 슬라이스에 대한 컨텍스트 모델 초기값 간의 차이값을 획득하는 단계
    를 더 포함하고,
    상기 현재 슬라이스에 대한 컨텍스트 모델 초기값은 상기 차이값에 기초하여 획득되는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 차이값은 신택스 요소마다 획득되는 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 상기 방법은,
    이웃 블록으로부터 신택스 요소에 대한 컨텍스트 모델을 유도하는 단계; 및
    상기 컨텍스트 모델을 이용하여 엔트로피 디코딩을 수행하는 단계
    를 더 포함하되,
    상기 컨텍스트 모델은 블록 크기 또는 블록 분할 깊이 중 적어도 하나를 이용하여 유도되는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 컨텍스트 모델은, 상기 이웃 블록의 크기와 현재 블록의 크기의 비교 결과에 기초하여 유도되는 것을 특징으로 하는 방법.
  7. 제5항에 있어서,
    상기 컨텍스트 모델은, 현재 블록의 분할 깊이 별로 상기 이웃 블록의 신택스 요소 값에 기초하여 결정되는 것을 특징으로 하는 방법.
  8. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 방법에 있어서,
    상기 비디오 신호로부터 바이패스 그룹 인덱스(bypass group index)를 획득하는 단계, 여기서, 상기 바이패스 그룹 인덱스는 바이패스 모드(bypass mode)가 적용되는 특정 신택스들의 그룹을 나타내는 인덱스임;
    상기 바이패스 그룹 인덱스에 대응되는 신택스 요소들을 확인하는 단계;
    상기 신택스 요소들에 대해 바이패스 모드를 적용할지 여부를 나타내는 바이패스 플래그를 획득하는 단계; 및
    상기 바이패스 플래그에 따라 특정 신택스에 대해 바이패스 모드가 적용되는 경우, 상기 특정 신택스에 대해 바이패스 이진 산술 디코딩을 수행하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 바이패스 그룹 인덱스는 슬라이스 단위로 획득되고, 상기 바이패스 플래그는 블록 단위로 획득되는 것을 특징으로 하는 방법.
  10. 제8항에 있어서,
    상기 바이패스 그룹 인덱스는, 코딩 유닛 신택스, 예측 유닛 신택스, 예측 정보 신택스, 변환 유닛 신택스 및 양자화 계수 신택스로부터 조합 가능한 적어도 하나의 그룹에 대응되는 것을 특징으로 하는 방법.
  11. 제8항에 있어서,
    상기 바이패스 플래그는 이전 슬라이스 또는 이전 프레임의 대응 블록으로 유도되는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 대응 블록은 현재 블록과 동일 위치에 있는 블록이거나 상기 현재 블록의 움직임 벡터가 가리키는 위치의 블록인 것을 특징으로 하는 방법.
  13. 제11항에 있어서, 상기 방법은,
    상기 비디오 신호로부터 바이패스 시간적 예측 플래그(bypass temporal prediction flag)를 획득하는 단계
    를 더 포함하되,
    상기 바이패스 시간적 예측 플래그는 이전 프레임 또는 이전 슬라이스로부터 바이패스 플래그를 유도할지 여부를 나타내는 것을 특징으로 하는 방법.
  14. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서,
    이전 슬라이스의 신택스 통계에 기초한 확률 값을 저장하고 있는 메모리; 및
    현재 슬라이스에 대한 컨텍스트 모델 초기값을 획득하고, 상기 이전 슬라이스의 신택스 통계에 기초한 확률 값을 유도하고, 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값과 상기 이전 슬라이스의 신택스 통계에 기초한 확률 값에 대한 가중치 값들을 유도하고, 상기 가중치 값들을 이용하여 상기 현재 슬라이스에 대한 컨텍스트 모델 초기값을 업데이트하는 컨텍스트 모델링부
    를 포함하는 것을 특징으로 하는 장치.
  15. 비디오 신호에 대해 엔트로피 디코딩을 수행하는 장치에 있어서,
    상기 비디오 신호로부터 바이패스 그룹 인덱스(bypass group index)를 파싱하는 파싱부; 및
    상기 바이패스 그룹 인덱스에 대응되는 신택스 요소들을 확인하고, 상기 신택스 요소들에 대해 바이패스 모드를 적용할지 여부를 나타내는 바이패스 플래그를 획득하고, 상기 바이패스 플래그에 따라 특정 신택스에 대해 바이패스 모드가 적용되는 경우, 상기 특정 신택스에 대해 바이패스 이진 산술 디코딩을 수행하는 이진 산술 디코딩부
    를 포함하되,
    상기 바이패스 그룹 인덱스는 바이패스 모드(bypass mode)가 적용되는 특정 신택스들의 그룹을 나타내는 인덱스인 것을 특징으로 하는 장치.
PCT/KR2016/013458 2015-11-22 2016-11-22 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 WO2017086765A2 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020187014908A KR20180074773A (ko) 2015-11-22 2016-11-22 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
US15/777,847 US10609374B2 (en) 2015-11-22 2016-11-22 Method and apparatus for entropy-encoding and entropy-decoding video signal
CN201680075101.2A CN108432248A (zh) 2015-11-22 2016-11-22 用于对视频信号进行熵编码和解码的方法和设备
EP16866717.8A EP3379832A4 (en) 2015-11-22 2016-11-22 METHOD AND DEVICE FOR ENTROPY DECODING AND DECODING A VIDEO SIGNAL

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562258517P 2015-11-22 2015-11-22
US201562258515P 2015-11-22 2015-11-22
US62/258,515 2015-11-22
US62/258,517 2015-11-22

Publications (2)

Publication Number Publication Date
WO2017086765A2 true WO2017086765A2 (ko) 2017-05-26
WO2017086765A3 WO2017086765A3 (ko) 2017-07-27

Family

ID=58718076

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/013458 WO2017086765A2 (ko) 2015-11-22 2016-11-22 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치

Country Status (5)

Country Link
US (1) US10609374B2 (ko)
EP (1) EP3379832A4 (ko)
KR (1) KR20180074773A (ko)
CN (1) CN108432248A (ko)
WO (1) WO2017086765A2 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101947286B1 (ko) * 2017-11-29 2019-02-12 울산과학기술원 메모리 컨트롤 장치 및 방법
WO2020071832A1 (ko) * 2018-10-05 2020-04-09 엘지전자 주식회사 변환 계수 코딩 방법 및 그 장치
WO2020071879A1 (ko) * 2018-10-05 2020-04-09 엘지전자 주식회사 변환 계수 코딩 방법 및 그 장치
WO2020071856A1 (ko) * 2018-10-05 2020-04-09 엘지전자 주식회사 변환 계수 코딩 방법 및 장치
CN113412626A (zh) * 2019-01-12 2021-09-17 Lg 电子株式会社 在图像编译系统中使用残差信息的图像解码方法及其装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10694202B2 (en) * 2016-12-01 2020-06-23 Qualcomm Incorporated Indication of bilateral filter usage in video coding
US10484695B2 (en) * 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
CN116320411A (zh) * 2018-03-29 2023-06-23 日本放送协会 图像编码装置、图像解码装置以及程序
EP4231646A3 (en) * 2018-10-09 2023-11-01 Samsung Electronics Co., Ltd. Video decoding method and apparatus, and video encoding method and apparatus
WO2020108574A1 (en) * 2018-11-28 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Improving method for transform or quantization bypass mode
WO2020125798A1 (en) 2018-12-22 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Intra block copy mode with dual tree partition
EP3886438A4 (en) * 2018-12-24 2022-01-19 Huawei Technologies Co., Ltd. FLAG BIT CONTEXT MODELING METHOD AND APPARATUS
CN111435993B (zh) 2019-01-14 2022-08-26 华为技术有限公司 视频编码器、视频解码器及相应方法
WO2020149608A1 (ko) * 2019-01-14 2020-07-23 엘지전자 주식회사 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
EP3910950A4 (en) * 2019-02-19 2022-07-13 LG Electronics Inc. VIDEO DECODING METHOD USING RESIDUAL INFORMATION IN A VIDEO CODING SYSTEM AND APPARATUS THEREOF
WO2020180102A1 (ko) 2019-03-04 2020-09-10 엘지전자 주식회사 영상 코딩 시스템에서 컨텍스트 코딩된 사인 플래그를 사용하는 영상 디코딩 방법 및 그 장치
WO2020189978A1 (ko) * 2019-03-15 2020-09-24 삼성전자 주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
WO2023193724A1 (en) * 2022-04-05 2023-10-12 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
WO2024041369A1 (en) * 2022-08-25 2024-02-29 Mediatek Inc. Method and apparatus of entropy coding for subpictures

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430238B2 (en) * 2004-12-10 2008-09-30 Micronas Usa, Inc. Shared pipeline architecture for motion vector prediction and residual decoding
KR100664936B1 (ko) * 2005-04-13 2007-01-04 삼성전자주식회사 코딩 효율이 향상된 컨텍스트 기반 적응적 산술 코딩 및디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오 코딩및 디코딩 방법과 이를 위한 장치
US8189683B2 (en) * 2006-11-28 2012-05-29 General Instrument Corporation Method and system for providing single cycle context weight update leveraging context address look ahead
US20120163448A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Coding the position of a last significant coefficient of a video block in video coding
WO2012134246A2 (ko) * 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
RU2464649C1 (ru) * 2011-06-01 2012-10-20 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ обработки звукового сигнала
US8995523B2 (en) * 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
EP2533538A3 (en) 2011-06-10 2013-03-20 Research In Motion Limited Method and system to reduce modelling overhead for data compression
US20130114691A1 (en) * 2011-11-03 2013-05-09 Qualcomm Incorporated Adaptive initialization for context adaptive entropy coding
US9998727B2 (en) * 2012-09-19 2018-06-12 Qualcomm Incorporated Advanced inter-view residual prediction in multiview or 3-dimensional video coding
CN105659605B (zh) * 2013-10-18 2019-05-21 Lg 电子株式会社 用于解码多视图视频的视频解码方法和装置
US20150334425A1 (en) * 2014-05-14 2015-11-19 Blackberry Limited Adaptive context initialization

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101947286B1 (ko) * 2017-11-29 2019-02-12 울산과학기술원 메모리 컨트롤 장치 및 방법
US11470319B2 (en) 2018-10-05 2022-10-11 Lg Electronics Inc. Method and device for coding transform coefficient
US11245904B2 (en) 2018-10-05 2022-02-08 Lg Electronics Inc. Method for coding transform coefficient and device therefor
WO2020071856A1 (ko) * 2018-10-05 2020-04-09 엘지전자 주식회사 변환 계수 코딩 방법 및 장치
KR20210041086A (ko) * 2018-10-05 2021-04-14 엘지전자 주식회사 변환 계수 코딩 방법 및 장치
CN112913246A (zh) * 2018-10-05 2021-06-04 Lg电子株式会社 用于编码变换系数的方法及其装置
US11843778B2 (en) 2018-10-05 2023-12-12 Rosedale Dynamics Llc Transform coefficient coding method and device therefor
US11240508B2 (en) 2018-10-05 2022-02-01 Lg Electronics, Inc. Transform coefficient coding method and device therefor
WO2020071879A1 (ko) * 2018-10-05 2020-04-09 엘지전자 주식회사 변환 계수 코딩 방법 및 그 장치
WO2020071832A1 (ko) * 2018-10-05 2020-04-09 엘지전자 주식회사 변환 계수 코딩 방법 및 그 장치
KR102533227B1 (ko) 2018-10-05 2023-05-17 엘지전자 주식회사 변환 계수 코딩 방법 및 장치
US11750813B2 (en) 2018-10-05 2023-09-05 Lg Electronics Inc. Method and device for coding transform coefficient
CN112913246B (zh) * 2018-10-05 2023-09-15 Lg电子株式会社 用于编码变换系数的方法及其装置
CN113412626A (zh) * 2019-01-12 2021-09-17 Lg 电子株式会社 在图像编译系统中使用残差信息的图像解码方法及其装置
CN113412626B (zh) * 2019-01-12 2024-01-23 Lg 电子株式会社 在图像编译系统中使用残差信息的图像解码方法及其装置

Also Published As

Publication number Publication date
EP3379832A4 (en) 2019-04-17
EP3379832A2 (en) 2018-09-26
CN108432248A (zh) 2018-08-21
US20180338144A1 (en) 2018-11-22
US10609374B2 (en) 2020-03-31
WO2017086765A3 (ko) 2017-07-27
KR20180074773A (ko) 2018-07-03

Similar Documents

Publication Publication Date Title
WO2017086765A2 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2018190594A1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2018128322A1 (ko) 영상 처리 방법 및 이를 위한 장치
WO2013002555A2 (ko) 산술부호화를 수반한 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2014007524A1 (ko) 비디오의 엔트로피 부호화 방법 및 장치, 비디오의 엔트로피 복호화 방법 및 장치
WO2013115572A1 (ko) 계층적 데이터 단위의 양자화 파라메터 예측을 포함하는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
WO2013069991A1 (ko) 비디오의 산술 부호화 방법 및 그 장치, 비디오의 산술 복호화 방법 및 그 장치
WO2013157794A1 (ko) 변환 계수 레벨의 엔트로피 부호화 및 복호화를 위한 파라메터 업데이트 방법 및 이를 이용한 변환 계수 레벨의 엔트로피 부호화 장치 및 엔트로피 복호화 장치
WO2018070713A1 (ko) 크로마 성분에 대한 인트라 예측 모드를 유도하는 방법 및 장치
WO2013066051A1 (ko) 변환 계수 레벨의 엔트로피 부호화 및 복호화를 위한 컨텍스트 모델 결정 방법 및 장치
WO2020213944A1 (ko) 영상 코딩에서 매트릭스 기반의 인트라 예측을 위한 변환
WO2017065592A1 (ko) 비디오 신호의 인코딩, 디코딩 방법 및 그 장치
WO2018066809A1 (ko) 크로마 성분 코딩 유닛 분할 방법 및 장치
WO2021040400A1 (ko) 팔레트 모드 기반 영상 또는 비디오 코딩
WO2020204419A1 (ko) 적응적 루프 필터 기반 비디오 또는 영상 코딩
WO2020071879A1 (ko) 변환 계수 코딩 방법 및 그 장치
WO2021040398A1 (ko) 팔레트 이스케이프 코딩 기반 영상 또는 비디오 코딩
WO2020197274A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2016129980A1 (ko) 변환 도메인 예측을 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
WO2018190595A1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2021066618A1 (ko) 변환 스킵 및 팔레트 코딩 관련 정보의 시그널링 기반 영상 또는 비디오 코딩
WO2020180043A1 (ko) Lmcs에 기반한 영상 코딩 방법 및 그 장치
WO2020185039A1 (ko) 레지듀얼 코딩 방법 및 장치
WO2021040488A1 (ko) 팔레트 모드에서의 이스케이프 이진화 기반 영상 또는 비디오 코딩
WO2021040319A1 (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: 16866717

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 15777847

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20187014908

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2016866717

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2016866717

Country of ref document: EP

Effective date: 20180622