[go: up one dir, main page]

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

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

Info

Publication number
WO2018190594A1
WO2018190594A1 PCT/KR2018/004143 KR2018004143W WO2018190594A1 WO 2018190594 A1 WO2018190594 A1 WO 2018190594A1 KR 2018004143 W KR2018004143 W KR 2018004143W WO 2018190594 A1 WO2018190594 A1 WO 2018190594A1
Authority
WO
WIPO (PCT)
Prior art keywords
last non
current block
zero
region
syntax element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/KR2018/004143
Other languages
English (en)
French (fr)
Inventor
구문모
김승환
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
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
Priority to EP18784463.4A priority Critical patent/EP3611922B1/en
Priority to CA3060035A priority patent/CA3060035C/en
Priority to KR1020207024246A priority patent/KR102272992B1/ko
Priority to AU2018251489A priority patent/AU2018251489B2/en
Priority to CN202210917838.1A priority patent/CN115297325B/zh
Priority to MX2019012293A priority patent/MX2019012293A/es
Priority to RU2019135694A priority patent/RU2738317C1/ru
Priority to BR112019021593-0A priority patent/BR112019021593A2/pt
Priority to CN201880031914.0A priority patent/CN110622510B/zh
Priority to JP2019556190A priority patent/JP2020517191A/ja
Priority to KR1020227013842A priority patent/KR102509347B1/ko
Priority to KR1020217020295A priority patent/KR102391908B1/ko
Priority to KR1020197033090A priority patent/KR102149023B1/ko
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Priority to US16/605,101 priority patent/US11240536B2/en
Priority to CN202210916620.4A priority patent/CN115297324B/zh
Publication of WO2018190594A1 publication Critical patent/WO2018190594A1/ko
Anticipated expiration legal-status Critical
Priority to AU2021221878A priority patent/AU2021221878B2/en
Priority to US17/553,354 priority patent/US11902592B2/en
Priority to AU2023202899A priority patent/AU2023202899B2/en
Priority to US18/405,834 priority patent/US20240146976A1/en
Priority to AU2024202107A priority patent/AU2024202107B2/en
Priority to US19/012,822 priority patent/US20250150642A1/en
Priority to US19/012,817 priority patent/US20250142131A1/en
Priority to AU2025220893A priority patent/AU2025220893A1/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/136Incoming video signal characteristics or properties
    • 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/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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 and apparatus for encoding and decoding positions of last non-zero coefficients when coding transform coefficients.
  • Entropy coding is a process of generating a raw byte sequence payload (RWSP) by losslessly compressing syntax elements determined through an encoding process.
  • Entropy coding uses syntax statistics to assign short bits to frequently occurring syntax and long bits to syntax that is not syntactically to express syntax elements as concise data.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC uses a context model that is adaptively updated based on the context of the syntax and previously generated symbols during binary arithmetic coding.
  • this CABAC also has a high complexity and has a sequential structure, which makes it difficult to perform parallel execution.
  • An object of the present invention is to propose a method of dividing a transform unit and coding a region to which a last non-zero transform coefficient belongs among the divided regions.
  • An aspect of the present invention provides a method of decoding a video signal, the method comprising: decoding a syntax element indicating a last non-zero region from a bit stream, wherein the last zero is The non-region refers to an area including the last non-zero transform coefficient in the scan order; Dividing the current block into a plurality of sub-regions; And determining a region other than the last zero of the current block among the divided sub regions based on the syntax element.
  • the method may further include decoding index information indicating a position of the last non-zero transform coefficient in the last non-zero area of the current block.
  • the current block by recursively dividing the current block into regions of a lower depth based on a preset partitioning scheme. May be divided into the plurality of sub-regions.
  • the syntax element may include, for each depth, information indicating an area including the last non-zero transform coefficient among areas of a lower depth divided from the current block.
  • dividing the current block into a plurality of sub-regions may include: grouping a width of the current block into a plurality of horizontal direction groups and a plurality of heights of the current block. And grouping into three vertical direction groups, and dividing the current block into the plurality of sub-regions based on the horizontal direction groups and the vertical direction groups.
  • the syntax element may include information about a horizontal direction group or a vertical direction group indicating the last non-zero area among the horizontal direction groups or the vertical direction groups.
  • the method further includes decoding a syntax element indicating a position of the last non-zero transform coefficient within the last non-zero area of the current block, wherein the syntax element indicating the last non-zero area is truncated.
  • a binarized binar code using a truncated unary code and a syntax element indicating the position of the last non-zero transform coefficient may be binarized using a fixed length code.
  • the syntax element indicating the last non-zero region is decoded in a regular mode using a context, and the syntax element indicating the location of the last non-zero transform coefficient does not use a context. Can be decrypted in bypass mode.
  • the method further comprises adaptively determining a parameter set applied to the current block from a previously stored parameter set, wherein the parameter set indicates the number of the horizontal direction groups or the vertical direction groups. It may include at least one of a parameter, a parameter indicating a length of a code allocated to each group, or a parameter indicating a context index used for the code allocated to each group.
  • adaptively determining a parameter set applied to the current block may determine a parameter set applied to the current block based on a probability distribution of positions of the last non-zero transform coefficients.
  • the current block is divided into sub-regions composed of a specific number of pixels, and the specific number may be determined according to a ratio of the width and the height of the current block. .
  • the syntax element may be binarized using a truncated unary code assigned within a range of the specific region. .
  • Another aspect of the present invention provides an apparatus for decoding a video signal, comprising: a syntax element decoder for decoding a syntax element indicating a last non-zero region from a bit stream, wherein The last non-zero region represents a region including a last non-zero transform coefficient in a scan order; A sub region divider for dividing the current block into a plurality of sub regions; And a last non-zero area determiner that determines a non-last zero area of the current block among the divided sub areas based on the syntax element.
  • the amount of data required for signaling the transform coefficient can be reduced.
  • FIG. 1 is a schematic block diagram of an encoder in which encoding of a video signal is performed as an embodiment to which the present invention is applied.
  • FIG. 2 is a schematic block diagram of a decoder in which decoding of a video signal is performed as an embodiment to which the present invention is applied.
  • FIG. 3 is a schematic block diagram of an entropy encoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • FIG. 4 is a schematic block diagram of an entropy decoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • FIG. 7 is a flowchart illustrating a method of encoding position information of a transform coefficient other than the last zero as an embodiment to which the present invention is applied.
  • FIG. 8 is a diagram illustrating a method of encoding position information of a last non-zero transform coefficient through recursive partitioning according to an embodiment to which the present invention is applied.
  • FIG. 9 illustrates an embodiment to which the present invention is applied and illustrates a method of encoding position information of a last non-zero transform coefficient by using a super-pixel.
  • FIG. 10 is a flowchart illustrating a method of decoding position information of a last non-zero transform coefficient according to an embodiment to which the present invention is applied.
  • FIG. 11 is a diagram illustrating an apparatus for decoding position information of transform coefficients other than the last zero as an embodiment to which the present invention is applied.
  • signals, data, samples, pictures, frames, and blocks may be interpreted as appropriate in each coding process.
  • FIG. 1 is a schematic block diagram of an encoder in which encoding of a video signal is performed as an embodiment to which the present invention is applied.
  • the encoder 100 may include an image splitter 110, a transformer 120, a quantizer 130, an inverse quantizer 140, an inverse transformer 150, a filter 160, and a decoder. It may include a decoded picture buffer (DPB) 170, an inter predictor 180, an intra predictor 185, and an entropy encoder 190.
  • DPB decoded picture buffer
  • the image divider 110 may divide the input image (or a picture or a frame) input to the encoder 100 into one or more processing units.
  • the processing unit may be a Coding Tree Unit (CTU), a Coding Unit (CU), a Prediction Unit (PU), or a Transform Unit (TU).
  • CTU Coding Tree Unit
  • CU Coding Unit
  • PU Prediction Unit
  • TU Transform Unit
  • the encoder 100 may generate a residual signal by subtracting the prediction signal output from the inter prediction unit 180 or the intra prediction unit 185 from the input image signal, and the generated residual signal is converted into a conversion unit ( 120).
  • the transformer 120 may generate a transform coefficient by applying a transform technique to the residual signal.
  • the transformation technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a karhunen-loeve transform (KLT), a graph-based transform (GBT), or a conditionally non-linear transform (CNT).
  • DCT discrete cosine transform
  • DST discrete sine transform
  • KLT karhunen-loeve transform
  • GBT graph-based transform
  • CNT conditionally non-linear transform
  • GBT means a conversion obtained from this graph when the relationship information between pixels is represented by a graph.
  • CNT refers to a transform that is generated based on and generates a prediction signal using all previously reconstructed pixels.
  • the conversion process may be applied to pixel blocks having the same size as the square, or may be applied to blocks of variable size rather than square.
  • the quantization unit 130 may quantize the transform coefficients and transmit them to the entropy encoding unit 190, and the entropy encoding unit 190 may entropy code the quantized signal and output the bitstream.
  • the quantized signal output from the quantization unit 130 may be used to generate a prediction signal.
  • the quantized signal may reconstruct the residual signal by applying inverse quantization and inverse transformation through inverse quantization unit 140 and inverse transformation unit 150 in a loop.
  • the reconstructed signal may be generated by adding the reconstructed residual signal to the prediction signal output from the inter predictor 180 or the intra predictor 185.
  • the filtering unit 160 applies filtering to the reconstruction signal and outputs it to the reproduction apparatus or transmits the decoded picture buffer to the decoding picture buffer 170.
  • the filtered signal transmitted to the decoded picture buffer 170 may be used as the reference picture in the inter predictor 180. As such, by using the filtered picture as a reference picture in the inter prediction mode, not only image quality but also encoding efficiency may be improved.
  • the decoded picture buffer 170 may store the filtered picture for use as a reference picture in the inter prediction unit 180.
  • the inter prediction unit 180 performs temporal prediction and / or spatial prediction to remove temporal redundancy and / or spatial redundancy with reference to the reconstructed picture.
  • the motion information may be predicted based on the correlation of the motion information between the neighboring block and the current block.
  • the intra predictor 185 may predict the current block by referring to samples around the block to which current encoding is to be performed.
  • the intra prediction unit 185 may perform the following process to perform intra prediction. First, reference samples necessary for generating a prediction signal may be prepared. The prediction signal may be generated using the prepared reference sample. Then, the prediction mode is encoded. In this case, the reference sample may be prepared through reference sample padding and / or reference sample filtering. Since the reference sample has been predicted and reconstructed, there may be a quantization error. Accordingly, the reference sample filtering process may be performed for each prediction mode used for intra prediction to reduce such an error.
  • the prediction signal generated by the inter predictor 180 or the intra predictor 185 may be used to generate a reconstruction signal or to generate a residual signal.
  • FIG. 2 is a schematic block diagram of a decoder in which decoding of a video signal is performed as an embodiment to which the present invention is applied.
  • the decoder 200 may include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, a filtering unit 240, and a decoded picture buffer unit (DPB) 250. ), An inter predictor 260, and an intra predictor 265.
  • the reconstructed video signal output through the decoder 200 may be reproduced through the reproducing apparatus.
  • the decoder 200 may receive a signal output from the encoder 100 of FIG. 1, and the received signal may be entropy decoded through the entropy decoding unit 210.
  • the inverse quantization unit 220 obtains a transform coefficient from the entropy decoded signal using the quantization step size information.
  • the inverse transformer 230 inversely transforms a transform coefficient to obtain a residual signal.
  • the reconstruction signal is generated by adding the obtained residual signal to the prediction signal output from the inter prediction unit 260 or the intra prediction unit 265.
  • the filtering unit 240 applies filtering to the reconstruction signal and outputs it to the reproduction apparatus or transmits the decoded picture buffer unit 250 to the reproduction device.
  • the filtered signal transmitted to the decoded picture buffer unit 250 may be used as the reference picture in the inter predictor 260.
  • the embodiments described by the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the encoder 100 are respectively the filtering unit 240, the inter prediction unit 260, and the decoder. The same may be applied to the intra predictor 265.
  • FIG. 3 is a schematic block diagram of an entropy encoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the entropy encoding unit 300 to which the present invention is applied includes a binarization unit 310, a context modeling unit 320, a binary arithmetic encoding unit 330, and a memory 360, and the binary arithmetic encoding unit 330 includes: A regular binary encoding unit 340 and a bypass binary encoding unit 350.
  • the regular binary encoding unit 340 and the bypass binary encoding unit 350 may be referred to as a normal coding engine and a bypass coding engine, respectively.
  • the binarization unit 310 may output a binary symbol string composed of a binary value of 0 or 1 by receiving a sequence of data symbols and performing binarization.
  • the binarization unit 310 may map syntax elements into binary symbols.
  • Several different binarization processes such as unary (U), truncated unary (TU), k-th order Exp-Golomb (EGk), and fixed length processes, support binarization. Can be used for The binarization process may be selected based on the type of syntax element.
  • the output binary symbol string is transmitted to the context modeling unit 320.
  • the context modeling unit 320 selects probability information necessary for coding a current block from a memory and transmits the probability information to the binary arithmetic encoding unit 330.
  • the context memory may be selected from the memory 360 based on the syntax element to be coded, and the probability information required for coding the current syntax element may be selected through the bin index binIdx.
  • context refers to information about a probability of occurrence of a symbol
  • context modeling refers to a process of estimating a probability necessary for binary arithmetic coding of the next bin from information about previously coded bins.
  • the context may include a state representing a specific probability value and a Most Probable Symbol (MPS).
  • the context modeler 320 may provide accurate probability estimation necessary to achieve high coding efficiency. Accordingly, different context models may be used for different binary symbols and the probability of such context model may be updated based on the values of previously coded binary symbols.
  • Binary symbols with similar distributions can share the same context model.
  • the context model for each of these binary symbols includes the syntax information of the bin, the bin index (binIdx) indicating the location of the bin in the bin string, the probability of the bin in the neighboring block of the block containing the bin, and the neighboring block for probability estimation. At least one of the decoding values of the specific syntax element of may be used.
  • the binary arithmetic encoding unit 330 includes a regular binary encoding unit 340 and a bypass binary encoding unit 350 to perform entropy encoding on the output string. And output compressed data bits.
  • the regular binary encoding unit 340 performs arithmetic coding based on recursive interval division.
  • an interval (or interval, range) having an initial value of 0 to 1 is divided into two lower intervals based on a probability of a binary symbol.
  • the encoded bits are converted to binary decimal numbers, they provide an offset from which one of intervals representing 0 or 1 can be selected in the course of successive decoding of binary symbol values.
  • the interval can be updated to equalize the selected lower interval, and the interval division process itself is repeated.
  • the spacing and offset have a limited bit precision, so that whenever the spacing falls below a certain value, it is maintained to maintain precision (i.e. to prevent the value from becoming too small to be represented incorrectly or to be lost to zero). Normalization may be necessary. The renormalization may occur after each binary symbol is encoded or decoded.
  • the bypass binary encoding unit 350 performs encoding without a context model, and performs coding by fixing a probability of a bin currently coded to 0.5. This can be used when it is difficult to determine the probability of syntax or when you want to code at high speed.
  • FIG. 4 is a schematic block diagram of an entropy decoding unit to which CABAC (Context-based Adaptive Binary Arithmetic Coding) is applied according to an embodiment to which the present invention is applied.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the entropy decoding unit 400 to which the present invention is applied includes a context modeling unit 410, a binary arithmetic decoding unit 420, a memory 450, and an inverse binarization unit 460, and the binary arithmetic decoding unit 420.
  • a regular binary decoding unit 430 and a bypass binary decoding unit 440 are included.
  • the entropy decoding unit 400 receives the bit stream and checks whether a bypass mode is applied to the current syntax element.
  • the bypass mode means that the coding is performed by fixing the probability of the currently coded bin to 0.5 without using the context model.
  • the regular binary decoding unit 430 performs binary arithmetic decoding according to a regular mode.
  • the context modeling unit 410 selects probability information necessary for decoding the current bitstream from the memory 450 and transmits the probability information to the regular binary decoding unit 430.
  • bypass binary decoding unit 440 performs binary arithmetic decoding according to the bypass mode.
  • the inverse binarization unit 460 receives a binary-type bin decoded by the binary arithmetic decoding unit 420 and converts it into an integer-type syntax element value.
  • the debinarization unit 460 may output the binary bin as it is.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the encoder may perform binarization on the syntax element (S510).
  • the encoder may determine whether to perform binary arithmetic coding according to a normal mode or binary arithmetic coding according to a bypass mode (S520).
  • the encoder may select a context model (S530) and perform binary arithmetic encoding based on the context model (S540).
  • the encoder may update the context model (S550), and may select a suitable context model again based on the updated context model in operation S530.
  • the encoder may perform binary arithmetic encoding based on a probability of 0.5 (S560).
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the decoder may receive a bitstream (S610).
  • the decoder may check whether a regular mode or a bypass mode is applied to the current syntax element (S620).
  • whether to apply the bypass mode may be determined in advance according to the type of syntax.
  • symbols applied with the normal mode and symbols applied with the bypass mode may be combined to form a syntax element.
  • the decoder may check whether a bypass mode is applied to the symbols of the current syntax element.
  • the decoder may select a context model in operation S630 and perform binary arithmetic decoding on the basis of the context model in operation S640.
  • the decoder may update the context model (S650), and may select a suitable context model again based on the updated context model in operation S630.
  • the decoder may perform binary arithmetic decoding based on the probability 0.5 (S660).
  • the decoder may perform inverse binarization on the decoded bin string (S670). For example, a decoded binary type bin may be input and converted into an integer syntax element value.
  • the present invention proposes a method of dividing a transform unit and coding a region to which a last non-zero transform coefficient belongs among the divided regions.
  • the present invention proposes a method of coding a region to which the last non-zero transform coefficient belongs among the divided regions by recursively dividing a transform unit.
  • the present invention proposes a method of coding the position of the last non-zero coefficient while adaptively changing the coding method.
  • the present invention proposes a method of coding the position of the last non-zero coefficient by applying a coding method differently according to various conditions.
  • the present invention proposes a method of coding the position of the last non-zero coefficient using a separate context according to the horizontal and vertical coordinates of the last non-zero coefficient or the size and shape of the transform unit.
  • the present invention proposes a method of coding a group to which the last non-zero coefficient among grouped transform coefficient groups belongs and coding an offset in the group.
  • the present invention proposes a method of coding the position of the last non-zero coefficient in consideration of the case where it is guaranteed that the position of the last non-zero coefficient is in a restricted region.
  • the amount of data required for signaling the transform coefficient can be reduced.
  • the encoder / decoder first encodes / decodes the position information of the last non-zero transform coefficient in order to encode / decode the residual signal. .
  • the encoder / decoder encodes / decodes the positions of the last non-zero transform coefficients (ie, horizontal coordinates and vertical coordinates) in the transform block.
  • the conventional method as the size of the transform block increases, more bits may be required to signal the coordinate value of the last non-zero transform coefficient in the transform block, which may cause a problem in that coding efficiency may be reduced. .
  • the last non-zero transform coefficient (last non- We propose a method of coding a region to which a zero transform coefficient) belongs.
  • the last non-zero transform coefficient (or) is a non-zero coefficient (ie, a significant coefficient) that is positioned last in the scanning order within the current transform unit (or coding unit). It may also be referred to as the last non-zero coefficient, last significant coefficient, and the like.
  • FIG. 7 is a flowchart illustrating a method of encoding position information of a transform coefficient other than the last zero as an embodiment to which the present invention is applied.
  • the method described in this embodiment may be applied to the encoder and the decoder in the same manner, but for convenience of description, the method will be described with reference to the encoder.
  • the encoder obtains a transform coefficient of the current block (S701).
  • the encoder may perform inter or intra prediction to generate a prediction block.
  • the encoder may generate a residual block of the current block by subtracting the prediction block from the original image.
  • the encoder may generate transform coefficients by performing transform on the residual block, and generate quantized transform coefficients by applying quantization to the transform coefficients.
  • the encoder divides the current block into a plurality of sub-regions (or sub-regions) (S702). For example, the encoder can split the current block into N sub-regions. In this case, each sub area may be an area that is exclusively divided from each other, or may be an area that partly or entirely overlaps and is divided.
  • the current block (or current processing block) may be a coding unit, coding block, transform unit, transform block, prediction unit, prediction block, or the like.
  • the encoder encodes a last non-zero region of the current block among the divided sub regions (S703).
  • the last non-zero area indicates an area including the last non-zero coefficient.
  • the encoder indicates index information (or syntax element) indicating a sub-region including the last non-zero transform coefficient among N sub-regions. Can be encoded.
  • the steps S702 and S703 may be performed recursively (repetitively).
  • the encoder may recursively divide (or recursively) into regions having a lower depth in order to express the region to which the last non-zero transform coefficient belongs as a more granular region.
  • the encoder may select a region including the last non-zero coefficient from among N sub-regions, and divide the region including the last non-zero coefficient into M sub-regions (or regions of lower depths) again.
  • the recursive partitioning may be performed K times, or may be performed until the last non-zero region reaches a pixel unit. Detailed description thereof will be described later.
  • the encoder / decoder may or may not subdivide the last nonzero region up to the pixel unit. If the last non-zero region is not subdivided by pixel units, the encoder / decoder may encode / decode coefficients in the last non-zero region (ie, the last non-zero region of the lowest depth) finally determined. For example, after the encoder / decoder encodes / decodes the last non-zero region, an effective map indicating whether each coefficient in the finally determined non-zero region has a nonzero value. (Or an effective coefficient map) can be encoded / decoded.
  • the encoder / decoder encodes information indicating the final subregion in which the last nonzero coefficient exists, and transmits a non-zero coefficient by sending a significant flag for each position for all coefficients in that region.
  • the presence or absence of a (non-zero coefficient) can be encoded / decoded.
  • the method for encoding position information of the last non-zero coefficient (eg, determining the M, N, and K values) through the recursive partitioning is performed by a current block (eg, a coding block or a transform block).
  • a current block eg, a coding block or a transform block.
  • the shape may represent a square block or a non-square block
  • the size may represent the width and height of the current block or the number of pixels (width * height) in the current block.
  • the encoding method of the last non-zero region may be predefined in an encoder / decoder, or may be signaled to an decoder from an encoder in a picture, slice, coding unit, or transformation unit. have.
  • the encoding method of the last non-zero region proposed in the present specification may be used in parallel with a method of transmitting positional information (ie, horizontal coordinates and vertical coordinates in the transformation unit of the last non-zero transformation coefficient) in the existing pixel unit. Can be.
  • the encoder / decoder divides the region where the last non-zero coefficient exists into the region of the lower depth, and then the region where the last non-zero coefficient exists among the regions of the lower depth (that is, Last non-zero region).
  • the lower depth represents the number of divisions of the current block (or the current transformation unit), and the depth may increase by 1 whenever the division is divided from the current block having a depth of zero.
  • the encoder / decoder may code information indicating a region other than the last zero of the region having the lower depth.
  • the last non-zero region may be hierarchically divided into regions having a lower depth.
  • P may be divided into P (k) as shown in Equation 1 below.
  • P may be divided into P (k), and the depth of P (k) may increase by one.
  • the depth of P (k) is one greater than the depth of P.
  • P which includes all the pixels in the current block, has a depth of zero and a depth of P (k) is one.
  • P (k) may be further divided into subregions having a sub-depth, which subdivided into regions of sub-depth again (i.e., areas having an increased depth of 1). Can be.
  • the area of the depth d may be expressed as in Equation 2 below.
  • the region represented by Equation 2 belongs to the i_1 th region (or the region identified by i_1) when the current block of depth 0 (i_0 th region of depth 0) is divided into regions of depth 1.
  • the region represented by Equation 2 represents the i_d th region (or the region identified by i_d) when the current block is finally divided to the depth of d.
  • the current block having a depth of 0 is an entire region, and the value i_0 may have a value of 1.
  • Equation 3 The recursive partitioning described above may be expressed as Equation 3 below.
  • N ⁇ (d) (i_0, i_1, ..., i_d) represents the number of subregions (that is, depth regions of d + 1) divided at the depth of d.
  • Equation 4 the division of the current block can be expressed as in Equation 4 below.
  • the current block of depth 0 may be divided into N regions of depth 1.
  • the encoder / decoder is P ⁇ (d) (i_0, i_1, ..., 1) to P ⁇ (d) (i_0 , i_1, ..., N ⁇ (d-1) (i_0, i_1, ..., i_ (d-1)) can be coded to distinguish.
  • the leaf region refers to an area that is no longer divided in recursive (or hierarchical) partitioning. That is, the encoder / decoder may code an area including the last non-zero transform coefficient for each depth among areas of lower depths divided from the current block.
  • Various entropy coding methods may be applied to code regions of the lower depth that are recursively divided.
  • the encoder / decoder may perform binarization by assigning a binary code to each region, and apply binary arithmetic coding to the binary code.
  • a coding method for distinguishing the subregions of the first region and a subregion of the second region may be different.
  • the encoder / decoder applies binary arithmetic coding to code for distinguishing subregions of the first region and non-binary arithmetic coding to code for distinguishing subregions of the second region.
  • Non-binary arithmetic coding can be applied.
  • Equation 5 it may be divided from the current block to the region of depth d_q, and q may belong to the region of depth d.
  • the ⁇ operator concatenates the codes.
  • q is the area index i_0, i_1,... at each depth.
  • i_ (d_q) belongs to the area identified.
  • FIG. 8 is a diagram illustrating a method of encoding position information of a last non-zero transform coefficient through recursive partitioning according to an embodiment to which the present invention is applied.
  • Equation 4 the set P may be expressed as Equation 6 below.
  • P ⁇ (0) (1) may be divided into three depth 1 regions as shown in Equation 7 below, and a code may be allocated to each divided region.
  • P ⁇ (1) (1,1) and P ⁇ (1) (1,3) may be divided into two and three depth 2 regions, respectively, as shown in Equation 8 below, and each division Code can be assigned to the reserved area.
  • P ⁇ (1) (1,2), P ⁇ (2) (1,1,1), P ⁇ (2) (1,1,2), P ⁇ (2) (1,1,3 ), P ⁇ (2) (1,3,1), P ⁇ (2) (1,3,2) regions may correspond to leaf regions.
  • the code for the position of each coefficient belonging to each leaf region may be allocated as in Equation 9 below.
  • the region P ⁇ (2) (1,1,1) is divided into pixel units, and a code for identifying a coefficient of a specific position in the corresponding region may not be allocated.
  • the encoder / decoder may code position information of the last non-zero transform coefficient as shown in Equation 10 below. .
  • Equation 10 the operator concatenates codes.
  • the method proposed in this embodiment can be applied regardless of the size or shape of the transform block.
  • the present block may be applied not only to a square block but also to a non-square block or any shape.
  • the encoder / decoder may perform binarization by dividing the position information of the last non-zero transform coefficient into a prefix and a suffix.
  • the encoder / decoder may represent the prefix as a truncated unary code and the suffix as a fixed length code.
  • the encoder / decoder may perform binarization by dividing the horizontal coordinates (ie, x coordinates) and vertical coordinates (ie, y coordinates) of the last non-zero transform coefficient into a prefix and a suffix, respectively. Assuming the prefix is represented as a truncated unary code and the suffix is represented as a fixed length code, the encoder / decoder groups the coordinate values and assigns them to each group as shown in Table 1 below. You can assign binary code.
  • the code of Table 1 may be represented by a parameter set B_k shown in Equation 11 below.
  • P_i represents the length of the prefix code for group i.
  • S_i represents the length of the suffix code for group i.
  • P_i may be determined as in Equation 12 below.
  • S_i may satisfy S_i ⁇ 0.
  • C_ (p) (i, j) represents the context index for the j th bin (ie, binary symbol) in the prefix for the group i.
  • 1 ⁇ i ⁇ N, 1 ⁇ j ⁇ P_i, and C_ (p) (i, j) ⁇ 0 may be satisfied.
  • the encoder / decoder may be configured to mean bypass coding when the context index value is 0.
  • C_ (s) (i, j) represents a context index for the j-th bin in the suffix for the group i.
  • 1 ⁇ i ⁇ N, 1 ⁇ j ⁇ S_i, and C_ (s) (i, j) ⁇ 0 may be satisfied.
  • the encoder / decoder may be configured to mean bypass coding when the context index value is 0.
  • Equation 13 Equation 13 below. It can be represented as.
  • the encoder / decoder is used to code the position of the last non-zero transform coefficient. It can support two parameter sets.
  • the parameter set may be referred to as a coding parameter, a coding parameter set, a coding method, or the like.
  • the encoder / decoder is used to code the position of the last non-zero transform coefficient.
  • a specific parameter set may be adaptively determined among the two parameter sets and coded using the determined parameter set.
  • the encoder / decoder may store (or have) various various parameter sets in advance.
  • the parameter set is described by way of example.
  • the encoder / decoder may allocate a code to the position of each pixel (or coefficient) in the current block as shown in Table 2 below.
  • the encoder / decoder may group the width or height of the current block into a plurality of horizontal direction groups or vertical direction groups.
  • the encoder / decoder may map a prefix represented by a cut unary code to each horizontal direction group (or vertical direction groups).
  • the encoder / decoder may map a suffix represented by a fixed length code to the position of the coefficient in the horizontal groups (or vertical groups).
  • the encoder / decoder may code the prefix in a regular mode using a context and code the suffix in a bypass mode without using a context.
  • the position of the last non-zero coefficient of a transform block in an image may have a tendency.
  • applying the normal mode to prefix coding can effectively reflect this tendency (ie, the probability of occurrence of bins), and improve the simplification and parallelization of implementation by applying the bypass mode to suffix coding.
  • the encoder / decoder may map the code so that the length of the suffix is greater than zero from a relatively low group as shown in Table 3 below, and map the code so that the length of the suffix increases more rapidly for subsequent groups.
  • the non-square transform block may reflect the frequently located position of the non-zero transform coefficient in the high frequency region and improve the coding efficiency.
  • the encoder / decoder may map codes such that the length of the suffix is greater than 0 from a relatively high group as shown in Table 4 below.
  • the encoder / decoder may configure the code such that the length of the suffix is larger than 0 as shown in Table 5 below, but the length of the suffix starts from 2.
  • the encoder / decoder may apply regular coding instead of bypass coding for the first bin of the suffix as shown in Table 6 below.
  • the encoder / decoder can code the last non-zero transform coefficient using the changed parameter set while adaptively changing the parameter set.
  • the encoder / decoder may determine the parameter set of the current block based on the probability distribution of the last non-zero transform coefficient.
  • the encoder / decoder may divide the range from 1 to W into M sections. Whenever coding the coordinate values of the last non-zero coefficient, the encoder / decoder may accumulate count values of the section in which the last non-zero coefficient is located. The encoder / decoder may determine the parameter set (or coding method) of the section in which the accumulated count value is highest as the parameter set of the current block. Alternatively, the encoder / decoder may calculate (accumulate) the probability of the last non-zero transform coefficient among M intervals, and then determine a parameter set of the interval having the highest probability value. The encoder / decoder may code the position of the last non-zero transform coefficient of the current block using the determined parameter set.
  • the encoder / decoder may reflect statistical values for all previously coded transform units (ie, TUs) when calculating probabilities for each interval, and statistical values within a currently coded CTU (or maximum coding unit). It may reflect only or may reflect only statistical values for specific location (or specific number) CTUs among neighboring CTUs.
  • the encoder / decoder selects an interval in which the accumulated probability value or the accumulated count value is larger than a specific threshold among M intervals, and sets the parameter set of the selected interval not to the last zero of the current block. It may be determined by a parameter set for coding transform coefficients.
  • coding may be performed using a parameter set for the corresponding section.
  • the preset number may be set differently for each section.
  • the encoder / decoder may determine the parameter set of the current block in a state machine manner that determines the parameter set as a state. For example, assuming that the state corresponding to the section k among the M sections is the current state, the encoder / decoder may set a counter variable for the low frequency direction and a counter variable for the high frequency direction for each state. . The encoder / decoder increments the counter value for the low frequency direction when the low frequency side (i.e., the section with smaller coordinates) is coded than the current interval, and counters for the high frequency direction when the high frequency side (ie, the region with larger coordinates) is coded. You can increase the value.
  • the encoder / decoder may transition the current state in the low frequency direction or the high frequency direction according to the increased counter value. If the current section is coded, all of the counter values for the low frequency direction or the high frequency direction may be decreased. Alternatively, the encoder / decoder may increase the counter value when the section of the low frequency direction (or the high frequency direction) is coded and decrease the counter value toward the high frequency direction (or the low frequency direction).
  • the parameter sets (or coding methods) represented by Table 1 and Equations 12 and 13 described above may be applied to various conditions (eg, quantization parameters, block sizes, block shapes, prediction modes). It can be applied differently accordingly.
  • the encoder / decoder may apply different parameter sets depending on the block size.
  • the encoder / decoder may apply different parameter sets according to the shape of the block.
  • the encoder / decoder may apply different parameter sets for square, long non-square, and long non-square.
  • the encoder / decoder applies different parameter sets for non-square blocks in which the ratio of width and height is 2: 1, 4: 1,8: 1,1: 1,2: 1,4,1: 8, and so on. can do.
  • the encoder / decoder is different for a non-square block having a width and height ratio of 2: 1, depending on the size of the block (e.g. 8 ⁇ 4, 16 ⁇ 8, 32 ⁇ 16, respectively). Parameter sets can be applied.
  • the encoder / decoder may apply different parameter sets to the width and height of the current block in the case of a non-square block. For example, for an 8 ⁇ 4, 16 ⁇ 8, or 32 ⁇ 16 non-square block, the encoder / decoder applies the same parameter set for the long variables 16, 16, and 32, and for the shorter variables 8, 4, and 8. The same parameter set can be applied to the case.
  • the encoder / decoder may apply a different parameter set only for the long side or the short side of the width or height of the non-square block. For example, in the case of blocks 8 ⁇ 16, 16 ⁇ 4, and 32 ⁇ 8, a separate parameter set may be applied to the long sides 16, 16, and 32.
  • the method of adaptively changing the coding method described above and the method of applying the coding method differently according to various conditions may be applied to other coding methods other than the coding methods shown in Table 1 and Equations (12) & (13). It may be.
  • a method of adaptively changing a coding method and a method of applying a coding method differently according to various conditions may be applied independently or a combination of the two methods may be applied.
  • the encoder / decoder may set different state machines according to specific conditions.
  • the encoder / decoder may encode a context set and vertical coordinate for coding the horizontal coordinates. It can be configured to share context sets separately.
  • the context set represents a set of parameters that can be used to determine the context, and may also be referred to as a context, a context model, or the like.
  • the encoder / decoder can apply separate context sets to square blocks, horizontally long non-square blocks, and vertically long non-square blocks, respectively. Individual context sets can be applied only in this case.
  • the encoder / decoder if the current block is a non-square block, the encoder / decoder consists of a specific number of pixels of the current block to code the location of the last non-zero transform coefficient. It can be divided into sub areas. In this case, the specific number may be determined according to the ratio of the width and the height of the current block. It demonstrates with reference to the following drawings.
  • FIG. 9 illustrates an embodiment to which the present invention is applied and illustrates a method of encoding position information of a last non-zero transform coefficient by using a super-pixel.
  • the encoder / decoder may divide the current block in units of super pixels.
  • the super pixel represents a specific number of pixels, and the specific number may be determined according to the ratio of the width and the height of the current block. Since the ratio of the width to the height of the current block is 4, the super pixel can be composed of 4 pixels.
  • the encoder / decoder may code an area of the last non-zero in super pixel units, and code a position of the last non-zero coefficient within the super pixel as an offset. For example, the encoder / decoder may code the last non-zero region by applying the same method as the coding method of the last non-zero coefficient of the existing HEVC when coding the last non-zero region in super pixel units. .
  • the encoder / decoder may code the offset in a variety of ways. For example, if a super pixel is composed of four pixels, the encoder / decoder may assign codes of 00, 01, 10, and 11 to the positions of each pixel. In addition, the encoder / decoder may apply regular coding after allocating separate contexts for two bins in the allocated code. In addition, the encoder / decoder may assign different contexts for the horizontal direction or the vertical direction. In addition, the encoder / decoder may allocate individual contexts for each block size. In addition, as another embodiment, the encoder / decoder may apply the super pixel coding method only when the width and the height are in a specific ratio (for example, 1: 2 or 2: 1).
  • the encoder / decoder can place the last non-zero transform coefficient within a restricted region under certain conditions regardless of block size. For example, an encoder / decoder can be used if the width and height of the current block are greater than or equal to a certain value, or if the block is coded using inter prediction (or inter-screen prediction), or the product of the width and height of the current block is specified. If greater than or equal to the value (ie, the number of pixels in the current block is greater than or equal to a certain number), the last non-zero transform coefficient may be configured to be located in a limited area within the current block.
  • the encoder / decoder may assign a truncated unary prefix code up to the restricted area. For example, in a 64 ⁇ 128 nonsquare block, if it is guaranteed that the last non-zero transform coefficient exists only within the 32 ⁇ 32 region of the upper left, the encoder / decoder is up to 31 for the horizontal and vertical coordinate values. Limited cutting unary code can be applied. In this case, the 111111111 code, not the 1111111110 code, may be allocated as a prefix for the 24 to 31 sections in Table 2 described above.
  • Embodiments 1 to 5 described above may be applied independently, or a plurality of embodiments may be combined and applied.
  • FIG. 10 is a flowchart illustrating a method of decoding position information of a last non-zero transform coefficient according to an embodiment to which the present invention is applied.
  • the decoder decodes a syntax element indicating a last non-zero region from the bit stream (S1001).
  • the last non-zero region indicates a region including a last non-zero transform coefficient in the scanning sequence.
  • the decoder splits the current block into a plurality of sub-regions (S1002).
  • the decoder may divide the current block into the plurality of sub areas by recursively dividing the current block into areas of a lower depth based on a preset partitioning scheme.
  • the decoder may decode information indicating an area including the last non-zero transform coefficient at each lower depth.
  • the decoder may group the width of the current block into a plurality of horizontal direction groups and group the height of the current block into a plurality of vertical direction groups. .
  • the decoder may divide the current block into the plurality of sub regions based on the horizontal direction groups and the vertical direction groups.
  • the decoder may decode information about the horizontal direction group or the vertical direction group indicating the last non-zero area among the horizontal direction groups or the vertical direction groups.
  • syntax elements indicating the last non-zero region are binarized using truncated unary codes, and syntax elements indicating the location of the last non-zero transform coefficient are fixed lengths. length) can be binarized using code.
  • syntax element indicating the last non-zero region is decoded in a regular mode using a context, and the syntax element indicating the location of the last non-zero transform coefficient is bypassed using no context. It can be decrypted in a bypass mode.
  • the decoder may adaptively determine a parameter set applied to the current block among previously stored parameter sets.
  • the parameter set is a parameter indicating the number of the horizontal direction groups or the vertical direction groups, a parameter indicating the length of a code allocated to each group, or a code allocated to each group, as in the example of Equation 11 above. It may include at least one of parameters indicating a context index used in.
  • the decoder may adaptively determine the parameter set applied to the current block based on the probability distribution of the positions of the last non-zero transform coefficients.
  • the decoder may divide the current block into a specific number of pixels determined according to a ratio of the width and the height of the current block.
  • the syntax element may be binarized using a truncated unary code assigned within the range of the specific area.
  • the decoder determines a region other than the last zero of the current block among the sub regions divided in the S1002 based on the syntax element decoded in the S1001 (S1003).
  • the encoder may signal the last non-zero transform coefficient in the last non-zero region to the decoder.
  • the decoder may decode index information indicating the position of the last non-zero transform coefficient in a region other than the last zero of the current block.
  • FIG. 11 is a diagram illustrating an apparatus for decoding position information of transform coefficients other than the last zero as an embodiment to which the present invention is applied.
  • the decoding apparatus implements the functions, processes, and / or methods proposed in FIGS. 6 to 10.
  • the decoding apparatus may include a syntax element decoding unit 1101, a sub region partitioning unit 1102, and a last non-zero region determination unit 1103.
  • the syntax element decoder 1101 decodes a syntax element indicating a last non-zero region from the bit stream.
  • the last non-zero region indicates a region including a last non-zero transform coefficient in the scanning sequence.
  • the sub area divider 1102 divides the current block into a plurality of sub areas.
  • the sub area divider 1102 divides the current block into the plurality of sub areas by recursively dividing the current block into areas having a lower depth based on a preset partitioning scheme. Can be divided into In this case, the sub-region divider 1102 may decode information indicating an area including the last non-zero transform coefficient at each lower depth.
  • the sub-region divider 1102 groups the width of the current block into a plurality of horizontal direction groups and the height of the current block to a plurality of vertical direction groups. Can be grouped together.
  • the sub-region divider 1102 may divide the current block into the plurality of sub-regions based on the horizontal direction groups and the vertical direction groups.
  • the last non-zero area determiner 1103 may decode information about the horizontal direction group or the vertical direction group indicating the last non-zero area among the horizontal direction groups or the vertical direction groups.
  • syntax elements indicating the last non-zero region are binarized using truncated unary codes, and syntax elements indicating the location of the last non-zero transform coefficient are fixed lengths. length) can be binarized using code.
  • syntax element indicating the last non-zero region is decoded in a regular mode using a context, and the syntax element indicating the location of the last non-zero transform coefficient is bypassed using no context. It can be decrypted in a bypass mode.
  • the last non-zero area determiner 1103 may adaptively determine a parameter set applied to the current block among previously stored parameter sets.
  • the parameter set is a parameter indicating the number of the horizontal direction groups or the vertical direction groups, a parameter indicating the length of a code allocated to each group, or a code allocated to each group, as in the example of Equation 11 above. It may include at least one of parameters indicating a context index used in.
  • the last non-zero region determiner 1103 may adaptively determine a parameter set applied to the current block based on the probability distribution of the positions of the last non-zero transform coefficients.
  • the sub-region divider 1102 may divide the current block into a specific number of pixels determined according to a ratio of the width and the height of the current block.
  • the syntax element may be binarized using a truncated unary code assigned within the range of the specific area.
  • the last non-zero area determiner 1103 determines the last non-zero area of the current block among the divided sub areas based on the decoded syntax element.
  • the encoder may signal the last non-zero transform coefficient in the last non-zero region to the decoder.
  • the decoder may decode index information indicating the position of the last non-zero transform coefficient in a region other than the last zero of the current block.
  • the syntax element decoder 1101, the sub region divider 1102, and the last non-zero region determiner 1103 may be organically combined to perform the method proposed by the present invention.
  • the decoding of the syntax element by the syntax element decoding unit 1101 and the division by the sub region dividing unit 1102 may be organically performed at each depth.
  • the embodiments described herein may be implemented and performed on a processor, microprocessor, controller, or chip.
  • the functional units illustrated in FIGS. 1 to 4 may be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip.
  • the decoder and encoder to which the present invention is applied include a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video chat device, a real time communication device such as video communication, a mobile streaming device, Storage media, camcorders, video on demand (VoD) service providing devices, internet streaming service providing devices, three-dimensional (3D) video devices, video telephony video devices, and medical video devices, and the like, for processing video and data signals Can be used for
  • the processing method to which the present invention is applied can be produced in the form of a program executed by a computer, and can be stored in a computer-readable recording medium.
  • Multimedia data having a data structure according to the present invention can also be stored in a computer-readable recording medium.
  • the computer readable recording medium includes all kinds of storage devices for storing computer readable data.
  • the computer-readable recording medium may include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. Can be.
  • the computer-readable recording medium also includes media embodied in the form of a carrier wave (eg, transmission over the Internet).
  • the bit stream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired or wireless communication network.

Landscapes

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

Abstract

본 발명은, 비디오 신호를 복호화하는 방법에 있어서, 비트 스트림으로부터 마지막 0이 아닌 영역(last non-zero region)을 지시하는 신택스 요소(syntax element)를 복호화하는 단계, 여기서 상기 마지막 0이 아닌 영역은 스캔 순서상 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)를 포함하는 영역을 나타냄; 현재 블록을 복수 개의 서브 영역들로 분할하는 단계; 및 상기 신택스 요소에 기초하여 상기 분할된 서브 영역들 중에서 상기 현재 블록의 마지막 0이 아닌 영역을 결정하는 단계를 포함하는 방법을 제공한다.

Description

비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
본 발명은 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치에 관한 것이다. 보다 구체적으로, 변환 계수를 코딩할 때 마지막 0이 아닌 계수(last non-zero coefficient)의 위치를 인코딩, 디코딩하는 방법 및 장치에 관한 것이다.
엔트로피 코딩은 부호화 과정을 통해 결정된 신택스 엘리먼트들을 무손실 압축하여 RBSP(Raw Byte Sequence Payload)를 생성하는 과정이다. 엔트로피 코딩은 신택스의 통계를 이용하여 자주 발생하는 신택스에 대해서는 짧은 비트를 할당하고, 그렇지 않은 신택스에는 긴 비트를 할당하여 신택스 엘리먼트들을 간결한 데이터로 표현한다.
그 중, CABAC(Context-based Adaptive Binary Arithmetic Coding)은 이진 산술 코딩을 수행하는 과정에서 신택스의 컨텍스트와 이전에 발생한 심볼에 기초하여 적응적으로 업데이트된 컨텍스트 모델을 사용한다. 그러나, 이러한 CABAC도 연산량이 많아 복잡도가 높고 순차적 구조를 가지고 있어 병렬 수행이 어려운 문제점이 있다.
따라서, 비디오 압축 기술에 있어서 신택스 엘리먼트를 보다 효율적으로 압축하고 전송할 필요가 있으며, 이를 위해 엔트로피 코딩의 성능을 향상시킬 필요가 있다.
본 발명의 목적은 변환 단위를 분할하여 분할된 영역 중에서 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)가 속하는 영역을 코딩하는 방법을 제안한다.
또한, 본 발명의 목적은 변환 단위를 재귀적으로 분할하여 각각의 분할된 영역 중에서 마지막 0이 아닌 변환 계수가 속하는 영역을 코딩하는 방법을 제안한다.
또한, 본 발명의 목적은 적응적으로 코딩 방법을 변경하면서 마지막 0이 아닌 계수의 위치를 코딩하는 방법을 제안한다.
또한, 본 발명의 목적은 여러 조건에 따라 코딩 방법을 다르게 적용하여 마지막 0이 아닌 계수의 위치를 코딩하는 방법을 제안한다.
또한, 본 발명의 목적은 마지막 0이 아닌 계수의 위치가 제한된 영역 내에 존재하는 것이 보장되는 경우를 고려하여 마지막 0이 아닌 계수의 위치를 코딩하는 방법을 제안한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상은, 비디오 신호를 복호화하는 방법에 있어서, 비트 스트림으로부터 마지막 0이 아닌 영역(last non-zero region)을 지시하는 신택스 요소(syntax element)를 복호화하는 단계, 여기서 상기 마지막 0이 아닌 영역은 스캔 순서상 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)를 포함하는 영역을 나타냄; 현재 블록을 복수 개의 서브 영역들로 분할하는 단계; 및 상기 신택스 요소에 기초하여 상기 분할된 서브 영역들 중에서 상기 현재 블록의 마지막 0이 아닌 영역을 결정하는 단계를 포함할 수 있다.
바람직하게, 상기 현재 블록의 마지막 0이 아닌 영역 내에서 상기 마지막 0이 아닌 변환 계수의 위치를 나타내는 인덱스(index) 정보를 복호화하는 단계를 더 포함할 수 있다.
바람직하게, 상기 현재 블록을 복수 개의 서브 영역들로 분할하는 단계는, 상기 현재 블록을 기 설정된 분할 방식에 기초하여 하위 깊이(lower depth)의 영역들로 재귀적(recursive)으로 분할함으로써 상기 현재 블록을 상기 복수 개의 서브 영역들로 분할할 수 있다.
바람직하게, 상기 신택스 요소는 각각의 깊이마다, 상기 현재 블록으로부터 분할되는 하위 깊이의 영역들 중 상기 마지막 0이 아닌 변환 계수를 포함하는 영역을 지시하는 정보를 포함할 수 있다.
바람직하게, 상기 현재 블록을 복수 개의 서브 영역들로 분할하는 단계는, 상기 현재 블록의 너비(width)를 복수 개의 수평 방향 그룹들로 그룹핑(grouping)하고, 상기 현재 블록의 높이(height)를 복수 개의 수직 방향 그룹들로 그룹핑하는 단계를 포함하고, 상기 수평 방향 그룹들 및 상기 수직 방향 그룹들에 기초하여 상기 현재 블록을 상기 복수 개의 서브 영역들로 분할할 수 있다.
바람직하게, 상기 신택스 요소는 상기 수평 방향 그룹들 또는 상기 수직 방향 그룹들 중 상기 마지막 0이 아닌 영역을 나타내는 수평 방향 그룹 또는 수직 방향 그룹에 대한 정보를 포함할 수 있다.
바람직하게, 상기 현재 블록의 마지막 0이 아닌 영역 내에서 상기 마지막 0이 아닌 변환 계수의 위치를 지시하는 신택스 요소를 복호화하는 단계를 더 포함하고, 상기 마지막 0이 아닌 영역을 지시하는 신택스 요소는 절삭형 단항(truncated unary) 코드를 이용하여 이진화되고, 상기 마지막 0이 아닌 변환 계수의 위치를 지시하는 신택스 요소는 고정 길이(fixed length) 코드를 이용하여 이진화될 수 있다.
바람직하게, 상기 마지막 0이 아닌 영역을 지시하는 신택스 요소는 컨텍스트(context)를 이용하는 정규 모드(regular mode)로 복호화되고, 상기 마지막 0이 아닌 변환 계수의 위치를 지시하는 신택스 요소는 컨텍스트를 이용하지 않는 우회 모드(bypass mode)로 복호화될 수 있다.
바람직하게, 미리 저장된 파라미터 셋(parameter set) 중 상기 현재 블록에 적용되는 파라미터 셋을 적응적으로 결정하는 단계를 더 포함하되, 상기 파라미터 셋은 상기 수평 방향 그룹들 또는 상기 수직 방향 그룹들의 수를 나타내는 파라미터, 각 그룹 별로 할당되는 코드의 길이를 나타내는 파라미터 또는 상기 각 그룹 별로 할당되는 코드에 사용되는 컨텍스트 인덱스를 나타내는 파라미터 중 적어도 하나를 포함할 수 있다.
바람직하게, 상기 현재 블록에 적용되는 파라미터 셋을 적응적으로 결정하는 단계는, 상기 마지막 0이 아닌 변환 계수의 위치의 확률 분포에 기초하여 상기 현재 블록에 적용되는 파라미터 셋을 결정할 수 있다.
바람직하게, 상기 현재 블록이 비정방형 블록인 경우, 상기 현재 블록은 특정 개수의 픽셀들로 구성되는 서브 영역들로 분할되고, 상기 특정 개수는 상기 현재 블록의 너비와 높이의 비율에 따라 결정될 수 있다.
바람직하게, 상기 마지막 0이 아닌 변환 계수가 상기 현재 블록의 특정 영역 내에 존재하는 경우, 상기 신택스 요소는 상기 특정 영역의 범위 내에서 할당되는 절삭형 단항(truncated unary) 코드를 이용하여 이진화될 수 있다.
본 발명의 다른 일 양상은, 비디오 신호를 복호화하는 장치에 있어서, 비트 스트림으로부터 마지막 0이 아닌 영역(last non-zero region)을 지시하는 신택스 요소(syntax element)를 복호화하는 신택스 요소 복호화부, 여기서 상기 마지막 0이 아닌 영역은 스캔 순서상 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)를 포함하는 영역을 나타냄; 현재 블록을 복수 개의 서브 영역들로 분할하는 서브 영역 분할부; 및 상기 신택스 요소에 기초하여 상기 분할된 서브 영역들 중에서 상기 현재 블록의 마지막 0이 아닌 영역을 결정하는 마지막 0이 아닌 영역 결정부를 포함할 수 있다.
본 발명의 실시예에 따르면, 마지막 0이 아닌 계수의 위치 정보를 효과적으로 부호화함으로써, 변환 계수를 시그널링하기 위하여 필요한 데이터 양을 줄일 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 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은 본 발명이 적용되는 일 실시예로서, 마지막 0이 아닌 변환 계수의 위치 정보를 부호화하는 방법을 예시하는 흐름도이다.
도 8은 본 발명이 적용되는 실시예로서, 재귀적 분할을 통한 마지막 0이 아닌 변환 계수의 위치 정보 부호화 방법을 예시하는 도면이다.
도 9는 본 발명이 적용되는 실시예로서, 슈퍼 픽셀(super-pixel)을 이용하여 마지막 0이 아닌 변환 계수의 위치 정보를 부호화하는 방법을 예시하는 도면이다.
도 10은 본 발명이 적용되는 실시예로서, 마지막 0이 아닌 변환 계수의 위치 정보를 복호화하는 방법을 나타내는 흐름도이다.
도 11은 본 발명이 적용되는 실시예로서, 마지막 0이 아닌 변환 계수의 위치 정보를 복호화하는 장치를 나타내는 도면이다.
이하, 본 발명의 실시예들에 따른 예시적인 엘리먼트들 및 동작들이 첨부된 도면들을 참조하여 기술된다. 그러나 상기 도면들을 참조하여 기술되는 본 발명의 상기 엘리먼트들 및 동작들은 단지 실시예들로서 제공되는 것이고, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다는 것을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어를 사용하여 설명한다. 그러한 경우에는 해당 부분의 상세 설명에서 그 의미가 명확하게 기재된다. 따라서, 본 명세서의 설명에서 사용된 용어의 명칭 만에 기초하여 본 발명이 단순 해석되어서는 안 될 것이며 그 해당 용어의 의미까지 파악하여 해석되어야 함을 밝혀두고자 한다.
또한, 본 발명에서 사용되는 용어들은 발명을 설명하기 위해 선택된 일반적인 용어들이나, 유사한 의미를 갖는 다른 용어가 있는 경우보다 적절한 해석을 위해 대체 가능할 것이다. 예를 들어, 신호, 데이터, 샘플, 픽쳐, 프레임, 블록은 각 코딩 과정에서 적절하게 대체되어 해석될 수 있을 것이다.
또한, 본 명세서에서 설명되는 실시예들의 개념과 방법들은, 다른 실시예들에도 적용 가능하며, 본 명세서에서 모두 명시하여 기재하지 않더라도 본 발명의 기술적 사상 범위 내에서 각 실시예들의 조합도 적용 가능할 것이다.
도 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)로 전송한다. 예를 들어, 코딩할 신택스 엘리먼트에 기초하여 상기 메모리(360)에서 컨텍스트 메모리를 선택하고 빈 인덱스(binIdx)를 통해 현재 신택스 엘리먼트 코딩에 필요한 확률 정보를 선택할 수 있다. 여기서, 컨텍스트는 심볼의 발생 확률에 관한 정보를 의미하고, 컨텍스트 모델링은 이전까지 코딩된 빈(bin)들에 대한 정보로부터 다음 빈(bin)의 이진 산술 코딩에 필요한 확률을 추정하는 과정을 의미한다. 그리고, 컨텍스트는 특정 확률 값을 나타내는 상태(state)와 MPS(Most Probable Symbol)로 구성될 수 있다.
상기 컨텍스트 모델링부(320)는 높은 코딩 효율을 성취하기 위해 필요한 정확한 확률 추정을 제공할 수 있다. 이에 따라, 서로 다른 이진 심볼들에 대해 서로 다른 컨텍스트 모델들이 사용될 수 있고 이러한 컨텍스트 모델의 확률은 이전에 코딩된 이진 심볼의 값들을 기반으로 업데이트될 수 있다.
유사한 분포를 가지는 이진 심볼들은 동일한 컨텍스트 모델을 공유할 수 있다. 이러한 각 이진 심볼에 대한 컨텍스트 모델은 확률 추정을 위해, 빈의 신택스 정보, 빈 스트링에서의 빈의 위치를 나타내는 빈 인덱스(binIdx), 빈이 들어 있는 블록의 이웃 블록에 포함된 빈의 확률, 이웃 블록의 특정 신택스 요소의 디코딩 값 중 적어도 하나가 이용될 수 있다.
상기 이진 산술 인코딩부(330)는 정규 이진 인코딩부(regular binary encoding unit)(340) 및 바이패스 이진 인코딩부(bypass binary encoding unit)(350)를 포함하고, 출력된 스트링에 대한 엔트로피 인코딩을 수행하고 압축된 데이터 비트들을 출력한다.
상기 정규 이진 인코딩부(regular binary encoding unit)(340)는 재귀적 간격 분할(recursive interval division)을 기반으로 산술 코딩을 수행한다.
먼저, 0 내지 1의 초기값을 가지는 간격(또는 구간, 범위)이 이진 심볼의 확률을 기반으로 두 개의 하위 간격들로 분할된다. 인코딩된 비트들은 이진 소수로 변환되는 경우 이진 심볼의 값들이 연속적으로 디코딩되는 과정에서 0 또는 1을 나타내는 간격 중 하나를 선택할 수 있는 오프셋을 제공한다.
디코딩된 모드의 이진 심볼 이후에, 상기 간격은 선택된 하위 간격을 동일하게 하기 위해 업데이트될 수 있으며, 상기 간격 분할 과정 자체가 반복된다. 상기 간격 및 오프셋은 제한된 비트 정밀도를 가지며, 따라서 상기 간격이 특정한 값 아래로 떨어질 때마다 정밀도 유지를 위하여(즉, 값이 지나치게 작아져서 부정확하게 표현되거나, 0이 되어 유실되는 것을 방지하기 위하여) 재정규화(renormalization)가 필요할 수 있다. 상기 재정규화(renormalization)는 각각의 이진 심볼이 인코딩 또는 디코딩된 이후에 발생할 수 있다.
상기 바이패스 이진 인코딩부(bypass binary encoding unit)(350)는 컨텍스트 모델 없이 인코딩을 수행하며, 현재 코딩되는 빈(bin)의 확률을 0.5로 고정하여 코딩을 수행한다. 이는 신택스의 확률을 결정하기 어렵거나 고속으로 코딩하고자 할 때 이용될 수 있다.
도 4는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)이 적용되는 엔트로피 디코딩부의 개략적인 블록도를 나타낸다.
본 발명이 적용되는 엔트로피 디코딩부(400)는 컨텍스트 모델링부(410), 이진 산술 디코딩부(420), 메모리(450) 및 역이진화부(460)를 포함하고, 상기 이진 산술 디코딩부(420)는 정규 이진 디코딩부(regular binary decoding unit)(430) 및 바이패스 이진 디코딩부(bypass binary decoding unit)(440)를 포함한다.
상기 엔트로피 디코딩부(400)는 비트 스트림을 수신하고 현재 신택스 요소에 바이패스 모드(bypass mode)가 적용되는지 여부를 확인한다. 여기서, 바이패스 모드(bypass mode)는 컨텍스트 모델을 이용하지 않고, 현재 코딩되는 빈(bin)의 확률을 0.5로 고정하여 코딩을 수행하는 것을 의미한다. 바이패스 모드(bypass mode)가 적용되지 않는 경우, 상기 정규 이진 디코딩부(regular binary decoding unit)(430)는 정규 모드(regular mode)에 따라 이진 산술 디코딩을 수행한다.
이때, 상기 컨텍스트 모델링부(410)는 상기 메모리(450)로부터 현재 비트스트림을 디코딩하는데 필요한 확률 정보를 선택하여 상기 정규 이진 디코딩부(regular binary decoding unit)(430)로 전송한다.
한편, 바이패스 모드(bypass mode)가 적용되는 경우, 상기 바이패스 이진 디코딩부(bypass binary decoding unit)(440)는 바이패스 모드(bypass mode)에 따라 이진 산술 디코딩을 수행한다.
상기 역이진화부(460)는 상기 이진 산술 디코딩부(420)에서 디코딩된 이진수 형태의 빈(bin)을 입력받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력하게 된다. 반면, 이진수 형태의 빈(bin) 또는 빈 스트링(bin string)이 신택스 요소의 값으로 매핑되는 신택스 엘리먼트의 경우, 상기 역이진화부(460)는 상기 이진수 형태의 빈(bin)을 그대로 출력할 수도 있다,
도 5는 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 인코딩 흐름도를 나타낸다.
인코더는, 신택스 엘리먼트에 대해 이진화를 수행할 수 있다(S510).
상기 인코더는, 정규 모드에 따라 이진 산술 코딩을 수행할지 또는 바이패스 모드에 따라 이진 산술 코딩을 수행할지 여부를 확인할 수 있다(S520).
정규 모드의 경우, 상기 인코더는 컨텍스트 모델을 선택할 수 있고(S530), 상기 컨텍스트 모델에 기초하여 이진 산술 인코딩을 수행할 수 있다(S540). 그리고, 상기 인코더는, 컨텍스트 모델을 업데이트할 수 있으며(S550), 상기 S530 단계에서 업데이트된 컨텍스트 모델에 기초하여 다시 적합한 컨텍스트 모델을 선택할 수 있다.
한편, 바이패스 모드의 경우, 상기 인코더는 확률 0.5에 기초하여 이진 산술 인코딩을 수행할 수 있다(S560).
도 6은 본 발명이 적용되는 실시예로서, CABAC(Context-based Adaptive Binary Arithmetic Coding)에 따라 수행되는 디코딩 흐름도를 나타낸다.
먼저, 디코더는 비트스트림을 수신할 수 있다(S610).
상기 디코더는 현재 신택스 요소에 정규 모드(regular mode)가 적용되는지 또는 바이패스 모드(bypass mode)가 적용되는지 여부를 확인할 수 있다(S620). 여기서, 상기 바이패스 모드의 적용 여부는 신택스의 종류에 따라 사전에 결정되어 있을 수 있다.
또한, 정규 모드가 적용되는 심볼들과 바이패스 모드가 적용되는 심볼들이 조합되어 신택스 요소를 구성할 수도 있다. 이 경우, 상기 디코더는 현재 신택스 요소의 심볼들에 바이패스 모드(bypass mode)가 적용되는지 여부를 확인할 수 있다.
상기 S620 단계에서 확인한 결과 정규 모드가 적용되는 경우, 상기 디코더는 컨텍스트 모델을 선택할 수 있고(S630), 상기 컨텍스트 모델에 기초하여 이진 산술 디코딩을 수행할 수 있다(S640). 그리고, 상기 디코더는, 컨텍스트 모델을 업데이트할 수 있으며(S650), 상기 S630 단계에서 업데이트된 컨텍스트 모델에 기초하여 다시 적합한 컨텍스트 모델을 선택할 수 있다.
한편, 상기 S620 단계에서 확인한 결과 바이패스 모드가 적용되는 경우, 상기 디코더는 확률 0.5에 기초하여 이진 산술 디코딩을 수행할 수 있다(S660).
상기 디코더는 디코딩된 빈스트링(bin string)에 대해 역이진화를 수행할 수 있다(S670). 예를 들어, 디코딩된 이진수 형태의 빈(bin)을 입력받아 정수 형태의 신택스 엘리먼트 값으로 변환 출력할 수 있다.
본 발명은 변환 단위를 분할하여 분할된 영역 중에서 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)가 속하는 영역을 코딩하는 방법을 제안한다.
또한, 본 발명은 변환 단위를 재귀적으로 분할하여 각각의 분할된 영역 중에서 마지막 0이 아닌 변환 계수가 속하는 영역을 코딩하는 방법을 제안한다.
또한, 본 발명은 적응적으로 코딩 방법을 변경하면서 마지막 0이 아닌 계수의 위치를 코딩하는 방법을 제안한다.
또한, 본 발명은 여러 조건에 따라 코딩 방법을 다르게 적용하여 마지막 0이 아닌 계수의 위치를 코딩하는 방법을 제안한다.
또한, 본 발명은 마지막 0이 아닌 계수의 수평, 수직 방향 좌표 또는 변환 단위의 크기, 모양에 따라 별도의 컨텍스트를 이용하여 마지막 0이 아닌 계수의 위치를 코딩하는 방법을 제안한다.
또한, 본 발명은 그룹핑(grouping)된 변환 계수 그룹들 중 마지막 0이 아닌 계수가 속한 그룹을 코딩하고 해당 그룹 내 오프셋(offset)을 코딩하는 방법을 제안한다.
또한, 본 발명은 마지막 0이 아닌 계수의 위치가 제한된 영역 내에 존재하는 것이 보장되는 경우를 고려하여 마지막 0이 아닌 계수의 위치를 코딩하는 방법을 제안한다.
본 발명에서 제안하는 방법에 따르면 마지막 0이 아닌 계수의 위치 정보를 효과적으로 부호화함으로써, 변환 계수를 시그널링하기 위하여 필요한 데이터 양을 줄일 수 있다.
실시예 1
기존의 비디오 부호화 표준(예를 들어, HEVC 또는 JVET)에서 인코더/디코더는 잔차 신호를 부호화/복호화하기 위하여 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)의 위치 정보를 먼저 부호화/복호화한다. 이때, 인코더/디코더는 변환 블록 내에서의 마지막 0이 아닌 변환 계수의 위치(즉, 수평 방향 좌표 및 수직 방향 좌표)를 부호화/복호화한다. 기존의 방법에 따르면, 변환 블록의 크기가 클수록 변환 블록 내에서의 마지막 0이 아닌 변환 계수의 좌표 값을 시그널링하기 위하여 많은 비트가 요구될 수 있고, 이로 인해 부호화 효율이 저하될 수 있다는 문제가 있다.
따라서, 본 발명에서는 위와 같은 문제점을 해결하고 마지막 0이 아닌 변환 계수에 대한 위치 정보를 효율적으로 부호화하기 위하여, 변환 단위(또는 부호화 단위)로부터 분할된 영역 중에서 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)가 속하는 영역을 코딩하는 방법을 제안한다. 여기서, 마지막 0이 아닌 변환 계수(또)는 현재 변환 단위(또는 부호화 단위) 내에서 스캔 순서상 마지막에 위치하는 0이 아닌 계수(non-zero coefficient)(즉, 유효 계수(significant coefficient))를 나타내며, 마지막 0이 아닌 계수, 마지막 유효 계수(last significant coefficient) 등으로 지칭될 수도 있다.
도 7은 본 발명이 적용되는 일 실시예로서, 마지막 0이 아닌 변환 계수의 위치 정보를 부호화하는 방법을 예시하는 흐름도이다.
도 7을 참조하면, 본 실시예에서 설명하는 방법은 인코더와 디코더에서 동일하게 적용될 수 있으나, 설명의 편의상 인코더를 기준으로 설명한다.
인코더는 현재 블록의 변환 계수(transform coefficient)를 획득한다(S701). 인코더는 인터 또는 인트라 예측을 수행하여 예측 블록을 생성할 수 있다. 인코더는 원본 영상에서 상기 예측 블록을 감산하여 현재 블록의 잔차 블록을 생성할 수 있다. 인코더는 상기 잔차 블록에 대하여 변환을 수행하여 변환 계수를 생성할 수 있고, 상기 변환 계수에 양자화를 적용함으로써 양자화된 변환 계수를 생성할 수 있다.
인코더는 현재 블록을 복수 개의 서브 영역(또는 하위 영역)들로 분할한다(S702). 예를 들어, 인코더는 현재 블록을 N개의 서브 영역으로 분할할 수 있다. 이 경우, 각각의 서브 영역은 서로 배타적으로(exclusive) 분할된 영역일 수도 있고, 일부 또는 전부의 영역이 중첩되어 분할된 영역일 수도 있다. 현재 블록(또는 현재 처리 블록)은 부호화 단위, 부호화 블록, 변환 유닛, 변환 블록, 예측 유닛, 예측 블록 등일 수 있다.
인코더는 분할된 서브 영역들 중에서 현재 블록의 마지막 0이 아닌 영역(last non-zero region)을 부호화한다(S703). 여기서, 마지막 0이 아닌 영역은 마지막 0이 아닌 계수를 포함하는 영역을 나타낸다. 예를 들어, 현재 블록이 N개의 서브 영역으로 분할되는 경우, 인코더는 N개의 서브 영역들 중에서 상기 마지막 0이 아닌 변환 계수를 포함하는 서브 영역을 지시하는 인덱스 정보(또는 신택스 요소(syntax element))를 부호화할 수 있다.
또한, 상기 S702 단계, S703 단계는 재귀적(반복적)으로 수행될 수도 있다. 다시 말해, 인코더는 마지막 0이 아닌 변환 계수가 속한 영역을 더 세분화된 영역으로 표현하기 위하여 하위 깊이(lower depth)를 가지는 영역들로 재귀적(recurlsive)(또는 반복적)으로 분할할 수 있다. 인코더는 N개의 서브 영역 중에서 마지막 0이 아닌 계수를 포함하는 영역을 선택하고, 상기 마지막 0이 아닌 계수를 포함하는 영역을 다시 M개의 하위 영역(또는 하위 깊이의 영역)들로 분할할 수 있다. 상기 재귀적 분할은 K번 수행될 수 있고, 상기 마지막 0이 아닌 영역이 화소 단위에 이를 때까지 수행될 수도 있다. 이에 대한 자세한 설명은 후술한다.
인코더/디코더는 화소 단위까지 마지막 0이 아닌 영역을 세분화할 수도 있고, 그렇지 않을 수도 있다. 화소 단위까지 마지막 0이 아닌 영역을 세분화하지 않는 경우, 인코더/디코더는 최종적으로 결정된 마지막 0이 아닌 영역(즉, 최하위 심도의 마지막 0이 아닌 영역) 내 계수들을 부호화/복호화할 수 있다. 예를 들어, 인코더/디코더는 상기 마지막 0이 아닌 영역을 부호화/복호화한 후, 상기 최종적으로 결정된 마지막 0이 아닌 영역 내 각 계수들이 0이 아닌 값을 가지는지 여부를 나타내는 유효 맵(significant map)(또는 유효 계수 맵)을 부호화/복호화할 수 있다. 즉, 인코더/디코더는 마지막 0이 아닌 계수가 존재하는 최종적인 하위 영역을 나타내는 정보를 코딩하고, 해당 영역 내 모든 계수들에 대하여 각 위치에 대한 유효 플래그(significant flag)를 전송함으로써 0이 아닌 계수(non-zero coefficient)의 유무를 부호화/복호화할 수 있다.
또한, 일 실시예에서 상기 재귀적 분할을 통한 마지막 0이 아닌 계수의 위치 정보 부호화 방법(예를 들어, 상기 M, N, K 값의 결정)은 현재 블록(예를 들어, 부호화 블록 또는 변환 블록)의 모양 또는 크기에 따라 결정될 수 있다. 예를 들어, 상기 모양은 정방형 블록 또는 비정방형 블록을 나타낼 수 있고, 상기 크기는 현재 블록의 너비(width)와 높이(height) 또는 현재 블록 내 화소수(너비*높이)를 나타낼 수 있다. 상기 마지막 0이 아닌 영역의 부호화 방법(예를 들어, 상기 M, N, K 값의 결정)은 인코더/디코더에 미리 정의되거나, 픽쳐, 슬라이스, 부호화 단위 또는 변환 단위로 인코더로부터 디코더에게 시그널링될 수 있다.
본 명세서에서 제안하는 마지막 0이 아닌 영역의 부호화 방법은 기존의 화소 단위의 위치 정보(즉, 마지막 0이 아닌 변환 계수의 변환 단위 내 수평 방향 좌표 및 수직 방향 좌표)를 전송하는 방법과 병행하여 사용될 수 있다.
이하에서, 재귀적 분할을 통한 마지막 0이 아닌 계수의 위치 정보 부호화 방법을 설명한다.
실시예 2
본 발명의 일 실시예에서, 인코더/디코더는 마지막 0이 아닌 계수가 존재하는 영역을 하위 깊이의 영역으로 분할한 후, 상기 하위 깊이의 영역 중에서 상기 마지막 0이 아닌 계수가 존재하는 영역(즉, 마지막 0이 아닌 영역)을 코딩할 수 있다. 여기서, 하위 깊이는 현재 블록(또는 현재 변환 단위)의 분할 횟수를 나타내며, 깊이가 0인 현재 블록으로부터 분할이 될 때마다 깊이가 1씩 증가할 수 있다. 인코더/디코더는 상기 하위 심도를 가지는 영역 중에서 마지막 0이 아닌 영역을 지시하는 정보를 코딩할 수 있다. 상기 마지막 0이 아닌 영역은 다시 하위 심도를 가지는 영역들로 계층적으로 분할될 수 있다.
현재 블록 내 모든 픽셀(또는 픽셀의 위치)를 포함하는 집합을 P라고 가정할 때, P는 다음의 수학식 1과 같이 P(k)들로 분할될 수 있다.
Figure PCTKR2018004143-appb-M000001
수학식 1을 참조하면, P는 P(k)들로 분할될 수 있고, P(k)의 깊이(depth)는 1증가할 수 있다. P(k)의 깊이는 P의 깊이보다 1만큼 크다. 다시 말해, 현재 블록 내 모든 픽셀을 포함하는 P는 깊이가 0이고, P(k)의 깊이는 1이다.
현재 블록이 재귀적으로 분할되는 경우, P(k)는 다시 하위 깊이를 가지는 하위 영역으로 분할될 수 있고, 상기 하위 영역은 다시 하위 깊이의 영역(즉, 깊이가 1 증가되는 영역)으로 분할될 수 있다.
깊이 d의 영역은 다음의 수학식 2와 같이 표현될 수 있다.
Figure PCTKR2018004143-appb-M000002
수학식 2에 의해 표현되는 영역은 0의 깊이의 현재 블록(0의 깊이의 i_0 번째 영역)이 1의 깊이의 영역으로 분할되었을 때 i_1 번째 영역(또는 i_1에 의해 식별되는 영역)에 속한다. 수학식 2에 의해 표현되는 영역은 최종적으로 현재 블록이 d의 깊이까지 분할되었을 때 i_d 번째 영역(또는 i_d에 의해 식별되는 영역)을 나타낸다. 이때, 0의 깊이의 현재 블록은 전체 영역으로서 i_0 값은 1의 값을 가질 수 있다.
상술한 재귀적 분할은 다음의 수학식 3과 같이 표현할 수 있다.
Figure PCTKR2018004143-appb-M000003
수학식 3을 참조하면, 하위 영역은 서로 배타적으로(exclusive) 분할되는 경우를 가정한다. 여기서, N^(d)(i_0, i_1, … ,i_d)는 d의 깊이에서 분할되는 하위 영역(즉, d+1의 깊이 영역)의 개수를 나타낸다.
수학식 2와 수학식 3의 표기법을 적용하면 다음의 수학식 4와 같이 현재 블록의 분할을 표현할 수 있다.
Figure PCTKR2018004143-appb-M000004
수학식 4를 참조하면, 0의 깊이의 현재 블록은 N개의 1의 깊이의 영역으로 분할될 수 있다.
P^(d)(i_0, i_1, … ,i_d)이 리프(leaf) 영역이 아닌 경우, 인코더/디코더는 P^(d)(i_0, i_1, … ,1) 내지 P^(d)(i_0, i_1, … , N^(d-1)(i_0, i_1, … ,i_(d-1)))를 구분할 수 있는 코드를 코딩할 수 있다. 여기서, 리프 영역은 재귀적(또는 계층적) 분할에서 더 이상 분할되지 않는 영역을 의미한다. 즉, 인코더/디코더는 현재 블록으로부터 분할되는 하위 깊이의 영역들 중에서 각 깊이 마다 마지막 0이 아닌 변환 계수를 포함하는 영역을 코딩할 수 있다.
상기 재귀적으로 분할되는 하위 깊이의 영역들을 코딩하기 위하여 여러 다양한 엔트로피 코딩 방법이 적용될 수 있다. 예를 들어, 인코더/디코더는 각 영역에 이진(binary) 코드를 할당함으로써 이진화(binarization)를 수행할 수 있고, 상기 이진 코드에 이진 산술 코딩(binary arithmetic coding)을 적용할 수 있다. 또한, 현재 블록으로부터 분할된 제 1 영역과 제 2 영역이 각각 복수 개의 하위 영역들로 분할되는 경우, 상기 제 1 영역의 하위 영역들을 구분하기 위한 코딩 방법과 상기 제 2 영역의 하위 영역들을 구분하기 위한 코딩 방법이 다를 수 있다. 예를 들어, 인코더/디코더는 상기 제 1 영역의 하위 영역들을 구분하기 위한 코드에 이진 산술 코딩(binary arithmetic coding)을 적용하고 상기 제 2 영역의 하위 영역들을 구분하기 위한 코드에 비 이진 산술 코딩(non-binary arithmetic coding)을 적용할 수 있다.
리프 영역이 아닌 P^(d)(i_0, i_1, … ,i_d)를 구분하기 위한 코드를 s^(d)(i_0, i_1, … ,i_d)라 하고, 리프 영역인 영역 A 내 마지막 0이 아닌 변환 계수의 위치 q를 나타내는 코드를 s(A,q)라 하면, q를 코딩하기 위한 코드는 다음의 수학식 5와 같이 나타낼 수 있다.
Figure PCTKR2018004143-appb-M000005
수학식 5를 참조하면, 현재 블록으로부터 깊이 d_q의 영역까지 분할될 수 있고, q는 상기 깊이 d의 영역에 속할 수 있다. 여기서, ∏ 연산자는 코드들을 연결(concatenation)한다. q는 각 깊이에서 영역 인덱스 i_0, i_1, … , i_(d_q)에 의해 식별되는 영역에 속한다.
도 8은 본 발명이 적용되는 실시예로서, 재귀적 분할을 통한 마지막 0이 아닌 변환 계수의 위치 정보 부호화 방법을 예시하는 도면이다.
도 8을 참조하면, 현재 블록이 4×4 크기의 변환 블록인 경우를 가정한다. 수학식 4에 따르면 집합 P는 다음의 수학식 6과 같이 표현될 수 있다.
Figure PCTKR2018004143-appb-M000006
P^(0)(1)는 다음의 수학식 7과 같이 3개의 깊이 1의 영역으로 분할될 수 있고, 각각의 분할된 영역에 코드가 할당될 수 있다.
Figure PCTKR2018004143-appb-M000007
그리고, P^(1)(1,1) 및 P^(1)(1,3)은 다음의 수학식 8과 같이 각각 2개 및 3개의 깊이 2의 영역으로 분할될 수 있고, 각각의 분할된 영역에 코드가 할당될 수 있다.
Figure PCTKR2018004143-appb-M000008
이때, P^(1)(1,2), P^(2)(1,1,1), P^(2)(1,1,2), P^(2)(1,1,3), P^(2)(1,3,1), P^(2)(1,3,2) 영역들은 리프 영역들에 해당할 수 있다. 각각의 리프 영역들에 속하는 각 계수의 위치에 대한 코드는 다음의 수학식 9와 같이 할당될 수 있다.
Figure PCTKR2018004143-appb-M000009
여기서, P^(2)(1,1,1) 영역은 화소 단위까지 분할된 영역으로서, 해당 영역 내에서 특정 위치의 계수를 식별하기 위한 코드가 할당되지 않을 수 있다.
수학식 7 내지 9와 같이 코드가 할당되고 마지막 0이 아닌 변환 계수가 q_34에 위치한다고 가정하면, 인코더/디코더는 마지막 0이 아닌 변환 계수의 위치 정보를 다음의 수학식 10과 같이 코딩할 수 있다.
Figure PCTKR2018004143-appb-M000010
수학식 10에서 · 연산자는 코드들을 연결(concatenation)한다.
본 실시예에서 제안하는 방법은 변환 블록의 크기나 모양에 관계 없이 적용될 수 있다. 즉, 현재 블록이 정방형 블록인 경우뿐만 아니라 비정방형 블록 또는 임의의 모양인 경우에도 적용될 수 있다.
실시예 3
본 발명의 일 실시예에서, 인코더/디코더는 마지막 0이 아닌 변환 계수의 위치 정보를 접두사(prefix)와 접미사(suffix)로 분할하여 이진화를 수행할 수 있다. 예를 들어, 인코더/디코더는 접두사를 절삭형 단항(truncated unary) 코드로 표현하고, 접미사를 고정 길이(fixed length) 코드로 표현할 수 있다.
인코더/디코더는 마지막 0이 아닌 변환 계수의 수평 방향 좌표(즉, x 좌표)와 수직 방향 좌표(즉, y 좌표)를 각각 접두사와 접미사로 분할하여 이진화를 수행할 수 있다. 접두사를 절삭형 단항(truncated unary) 코드로 표현하고, 접미사를 고정 길이(fixed length) 코드로 표현한다고 가정하면, 인코더/디코더는 다음의 표 1과 같이 좌표 값을 그룹핑(grouping)하고 각 그룹에 이진 코드를 할당할 수 있다.
Figure PCTKR2018004143-appb-T000001
현재 블록 내 좌표 값들을 N개의 그룹으로 분할하는 경우를 가정하면, 표 1의 코드는 다음의 수학식 11과 같은 파라미터 셋(parameter set) B_k로 표현될 수 있다.
Figure PCTKR2018004143-appb-M000011
여기서, P_i는 그룹 i에 대한 접두사 코드의 길이를 나타낸다. S_i는 그룹 i에 대한 접미사 코드의 길이를 나타낸다. 상기 P_i는 다음의 수학식 12와 같이 결정될 수 있다.
Figure PCTKR2018004143-appb-M000012
그리고, 상기 S_i는 S_i≥0을 만족할 수 있다.
접두사 코드와 접미사 코드 모두 빈(bin)(즉, 이진 심볼) 마다 컨텍스트를 이용하는 정규 코딩(regular coding) 방법이 적용될 수 있다. 즉, 수학식 11에서, C_(p)(i, j)는 그룹 i에 대한 접두사에서 j번째 빈(bin)(즉, 이진 심볼)에 대한 컨텍스트 인덱스를 나타낸다. 이때, 1≤i≤N, 1≤j≤P_i, C_(p)(i, j)≥0을 만족할 수 있다. 전체 컨텍스트의 개수가 N_C개이고 컨텍스트 인덱스가 1부터 시작한다고 가정하면, 인코더/디코더는 상기 컨텍스트 인덱스 값이 0인 경우 우회 코딩(bypass coding)을 의미하도록 구성할 수 있다.
또한, 수학식 11에서, C_(s)(i, j)는 그룹 i에 대한 접미사에서 j번째 빈(bin)에 대한 컨텍스트 인덱스를 나타낸다. 이때, 1≤i≤N, 1≤j≤S_i, C_(s)(i, j)≥0을 만족할 수 있다. 전체 컨텍스트의 개수가 N_C개이고 컨텍스트 인덱스가 1부터 시작한다고 가정하면, 인코더/디코더는 상기 컨텍스트 인덱스 값이 0인 경우 우회 코딩(bypass coding)을 의미하도록 구성할 수 있다.
수학식 11을 바탕으로 인코더/디코더에서 지원하는 모든 파라미터 셋들을 다음의 수학식 13과 같이 집합
Figure PCTKR2018004143-appb-I000001
로 나타낼 수 있다.
Figure PCTKR2018004143-appb-M000013
수학식 13을 참조하면, 인코더/디코더는 마지막 0이 아닌 변환 계수의 위치를 코딩하기 위해
Figure PCTKR2018004143-appb-I000002
개의 파라미터 셋을 지원할 수 있다. 상기 파라미터 셋은 코딩 파라미터, 코딩 파라미터 셋, 코딩 방법 등으로 지칭될 수 있다.
본 발명의 일 실시예에서, 인코더/디코더는 마지막 0이 아닌 변환 계수의 위치를 코딩하기 위해
Figure PCTKR2018004143-appb-I000003
개의 파라미터 셋 중에서 적응적으로 특정 파라미터 셋을 결정하고, 결정된 파라미터 셋을 이용하여 코딩할 수 있다.
복수 개의 파라미터 셋 중에서 적응적으로 특정 파라미터 셋을 결정하기 위해 인코더/디코더는 여러 다양한 파라미터 셋을 미리 저장(또는 구비)할 수 있다. 이하에서, 파라미터 셋을 예를 들어 설명한다.
현재 블록의 너비(width) 또는 높이(height)가 128인 경우를 가정하면, 인코더/디코더는 다음의 표 2와 같이 현재 블록 내 각 화소(또는 계수)의 위치에 코드를 할당할 수 있다.
Figure PCTKR2018004143-appb-T000002
표 2를 참조하면, 인코더/디코더는 현재 블록의 너비 또는 높이를 복수 개의 수평 방향 그룹들 또는 수직 방향 그룹들로 그룹핑(grouping)할 수 있다. 그리고, 인코더/디코더는 각 수평 방향 그룹들(또는 수직 방향 그룹들)에 절삭형 단항 코드로 표현되는 접두사를 매핑할 수 있다. 인코더/디코더는 상기 수평 방향 그룹들(또는 수직 방향 그룹들) 내 계수의 위치에 고정 길이 코드로 표현되는 접미사를 매핑할 수 있다.
이 경우, 인코더/디코더는 상기 접두사를 컨텍스트(context)를 이용하는 정규 모드(regular mode)로 코딩하고, 상기 접미사를 컨텍스트를 이용하지 않는 우회 모드(bypass mode)로 코딩할 수 있다.
일반적으로 영상 내에서 변환 블록의 마지막 0이 아닌 계수의 위치는 경향성을 가질 수 있다. 따라서, 접두사 코딩에 정규 모드를 적용함으로써 이러한 경향성(즉, 빈(bin)의 발생 확률)을 효과적으로 반영할 수 있고, 접미사 코딩에 우회모드를 적용함으로써 구현의 단순화와 병렬화를 향상시킬 수 있다.
인코더/디코더는 다음의 표 3과 같이 상대적으로 낮은 그룹부터 접미사의 길이가 0보다 커지도록 코드를 매핑하고, 이후의 그룹들에 대하여 접미사의 길이가 더 빠르게 증가하도록 코드를 매핑할 수 있다. 이와 같이 코드를 구성함으로써, 비정방형(non-square) 변환 블록에서 마지막 0이 아닌 변환 계수의 위치가 고주파 영역에 빈번하게 위치하는 양상을 반영하고 부호화 효율을 향상시킬 수 있다.
Figure PCTKR2018004143-appb-T000003
또한, 인코더/디코더는 다음의 표 4와 같이 상대적으로 높은 그룹부터 접미사의 길이가 0보다 커지도록 코드를 매핑할 수 있다. 이와 같이 코드를 구성함으로써, 마지막 0이 아닌 변환 계수의 위치가 저주파 영역에 빈번하게 위치하고, 상대적으로 고주파 영역에 위치하는 확률이 급격하게 낮아지는 양상을 효과적으로 반영할 수 있다.
Figure PCTKR2018004143-appb-T000004
또한, 인코더/디코더는 다음의 표 5와 같이 접미사의 길이가 0보다 커지는 지점은 그대로 두되, 접미사의 길이가 2부터 시작하도록 코드를 구성할 수도 있다.
Figure PCTKR2018004143-appb-T000005
또한, 인코더/디코더는 다음의 표 6와 같이 접미사의 첫 번째 빈(bin)에 대해서 우회 코딩이 아닌 정규 코딩을 적용할 수도 있다.
Figure PCTKR2018004143-appb-T000006
앞서 설명한 표1과 수학식 12 및 수학식 13으로 표현되는 파라미터 셋(또는 코딩 방법)들이 인코더/디코더에 미리 설정된(또는 저장된) 경우를 가정한다. 이 경우, 인코더/디코더는 적응적으로 파라미터 셋을 변경하면서, 변경된 파라미터 셋을 이용하여 마지막 0이 아닌 변환 계수를 코딩할 수 있다.
일 실시예에서, 인코더/디코더는 마지막 0이 아닌 변환 계수의 확률 분포에 기초하여 현재 블록의 파라미터 셋을 결정할 수 있다.
예를 들어, 현재 블록 내 좌표 값의 범위가 1~W라 할 때, 인코더/디코더는 상기 1부터 W까지의 범위를 M개의 구간으로 분할할 수 있다. 마지막 0이 아닌 계수의 좌표 값을 코딩할 때마다, 인코더/디코더는 상기 마지막 0이 아닌 계수가 위치하는 구간의 카운트(count) 값을 누적시킬 수 있다. 인코더/디코더는 누적된 카운트 값이 가장 높은 구간의 파라미터 셋(또는 코딩 방법)을 현재 블록의 파라미터 셋으로 결정할 수 있다. 또는, 인코더/디코더는 M개의 구간 중 마지막 0이 아닌 변환 계수가 위치하는 확률을 계산한(누적한) 후, 확률 값이 가장 높은 구간의 파라미터 셋을 결정할 수도 있다. 인코더/디코더는 결정된 파라미터 셋을 이용하여 현재 블록의 마지막 0의 아닌 변환 계수의 위치를 코딩할 수 있다.
이때, 인코더/디코더는 각 구간에 대한 확률을 계산시 이전에 코딩된 모든 변환 단위(즉, TU)들에 대한 통계 값을 반영할 수도 있고, 현재 코딩되는 CTU(또는 최대 부호화 단위) 내의 통계 값만을 반영할 수도 있고 또는 이웃하는 CTU들 중에서 특정 위치(또는 특정 개수) CTU들에 대한 통계 값만을 반영할 수도 있다.
또한, 예를 들어, 인코더/디코더는 M개의 구간 중에서 누적된 확률 값 또는 누적된 카운트 값이 특정 스레숄드(threshold) 보다 큰 구간을 선택하고, 상기 선택된 구간의 파라미터 셋을 현재 블록의 마지막 0이 아닌 변환 계수를 코딩하기 위한 파라미터 셋으로 결정할 수 있다.
또한, 예를 들어, 특정 구간이 코딩 과정에서 미리 설정된 개수만큼 선택된 경우, 해당 구간에 대한 파라미터 셋을 이용하여 코딩할 수 있다. 여기서, 상기 미리 설정된 개수는 구간마다 다르게 설정될 수 있다.
또한, 예를 들어, 인코더/디코더는 파라미터 셋을 스테이트(state)로 결정하는 스테이트 머신(state machine) 방식으로 현재 블록의 파라미터 셋을 결정할 수 있다. 예를 들어, 상기 M개의 구간 중에서 구간 k에 해당하는 스테이트를 현재 스테이트라고 가정하면, 인코더/디코더는 각 스테이트에 대해 저주파 방향에 대한 카운터(counter) 변수와 고주파 방향에 대한 카운터 변수를 설정할 수 있다. 인코더/디코더는 현재 구간보다 저주파 쪽(즉, 좌표가 더 작은 구간)이 코딩되면 저주파 방향에 대한 카운터 값을 증가시키고, 고주파 쪽(즉, 좌표가 더 큰 구간)이 코딩되면 고주파 방향에 대한 카운터 값을 증가시킬 수 있다.
저주파 방향 또는 고주파 방향에 대한 카운터 값이 특정 임계치 값에 도달한 경우, 인코더/디코너는 상기 증가된 카운터 값에 따라 저주파 방향으로 또는 고주파 방향으로 현재 스테이트를 천이할 수 있다. 만약 현재 구간이 코딩된 경우, 저주파 방향 또는 고주파 방향에 대한 카운터 값을 모두 감소시킬 수도 있다. 또는, 인코더/디코더는 저주파 방향(또는 고주파 방향)의 구간이 코딩된 경우, 해당 카운터 값을 증가시켜줌과 동시에 고주파 방향(또는 저주파 방향) 쪽 카운터 값을 감소시킬 수도 있다.
다른 일 실시예에서, 앞서 설명한 표1과 수학식 12 및 수학식 13으로 표현되는 파라미터 셋(또는 코딩 방법)들은 여러 조건(예를 들면, 양자화 파라미터, 블록 크기, 블록 모양, 예측 모드)들에 따라 다르게 적용될 수 있다.
예를 들어, 인코더/디코더는 블록 크기에 따라 다른 파라미터 셋을 적용할 수 있다
또한, 예를 들어, 인코더/디코더는 블록의 모양에 따라 다른 파라미터 셋을 적용할 수 있다. 예를 들어, 인코더/디코더는 정방형, 가로가 긴 비정방형, 세로가 긴 비정방형에 대해 각각 다른 파라미터 셋을 적용할 수 있다. 또한, 인코더/디코더는 비정방형 블록 중, 너비와 높이의 비가 2 : 1, 4 : 1, 8 : 1, 1 : 2, 1 : 4, 1 : 8 등인 경우들에 대해 각각 다른 파라미터 셋을 적용할 수 있다. 또한, 인코더/디코더는 너비와 높이의 비가 2 : 1인 비정방형 블록에 대해, 블록의 크기에 따라(예를 들어, 너비와 높이가 각각 8×4, 16×8, 32×16) 각각 다른 파라미터 셋을 적용할 수 있다.
또한, 예를 들어, 인코더/디코더는 비정방형 블록의 경우 현재 블록의 너비와 높이에 각각 다른 파라미터 셋을 적용할 수 있다. 예를 들어, 8×4, 16×8, 32×16 의 비정방형 블록의 경우, 인코더/디코더는 긴 변인 16, 16, 32에 대해서는 동일한 파라미터 셋을 적용하고, 짧은 변인 8, 4, 8인 경우에 대해서 동일한 파라미터 셋을 적용할 수 있다.
또한, 예를 들어, 인코더/디코더는 비정방형 블록의 너비 또는 높이 중에서, 긴 변 또는 짧은 변에 대해서만 다른 파라미터 셋을 적용할 수 있다. 예를 들어, 8×16, 16×4, 32×8인 블록들의 경우, 긴 변인 16, 16, 32에 대해서는 별도의 파라미터 셋을 적용할 수 있다.
이상에서 설명한 적응적으로 코딩 방법을 변경하는 방법과 여러 조건들에 따라 코딩 방법을 다르게 적용하는 방법은 표 1과 수식 (12)&(13)에서 제시하는 코딩 방법 이외에 다른 임의의 코딩 방법이 적용될 수도 있다. 또한, 적응적으로 코딩 방법을 변경하는 방법과 여러 조건들에 따라 코딩 방법을 다르게 적용하는 방법은 독립적으로 적용될 수도 있고 두 가지 방법이 조합되어 적용될 수도 있다. 예를 들어, 스테이트 머신(state machine) 방식으로 코딩 방법을 적응적으로 변경하는 경우, 인코더/디코더는 특정 조건에 따라 서로 다른 스테이트 머신(state machine)을 설정할 수 있다.
일 실시예에서, 마지막 0이 아닌 변환 계수의 수평 방향 좌표와 수직 방향 좌표를 독립적으로 코딩하는 경우, 인코더/디코더는 수평 방향 좌표를 코딩하기 위한 컨텍스트 셋(context set)과 수직 방향 좌표를 코딩하기 위한 컨텍스트 셋을 별도로 공유하도록 구성할 수 있다. 여기서, 컨텍스트 셋은 컨텍스트를 결정하기 위해 이용될 수 있는 파라미터들의 집합을 나타내며, 컨텍스트, 컨텍스트 모델 등으로 지칭될 수도 있다. 또한, 인코더/디코더는 정방형 블록, 가로 방향으로 긴 비정방형 블록, 세로 방향으로 긴 비정방형 블록에 대해 각각 별도의 컨텍스트 셋을 적용할 수 있으며, 너비와 높이의 비율이 특정 값을 갖는 비정방형의 경우에만 개별적인 컨텍스트 셋을 적용할 수도 있다.
실시예 4
본 발명의 일 실시예에서, 인코더/디코더는 현재 블록이 비정방형(non- square) 블록인 경우, 마지막 0이 아닌 변환 계수의 위치를 코딩하기 위해 현재 블록을 특정 개수의 픽셀들의 집합으로 구성되는 서브 영역으로 분할할 수 있다. 이 경우, 상기 특정 개수는 현재 블록의 너비와 높이의 비율에 따라 결정될 수 있다. 아래의 도면을 참조하여 설명한다.
도 9는 본 발명이 적용되는 실시예로서, 슈퍼 픽셀(super-pixel)을 이용하여 마지막 0이 아닌 변환 계수의 위치 정보를 부호화하는 방법을 예시하는 도면이다.
도 9를 참조하면, 현재 블록이 16×4인 경우를 가정하여 설명한다. 이때, 인코더/디코더는 슈퍼 픽셀(super-pixel) 단위로 현재 블록을 분할할 수 있다. 여기서, 슈퍼 픽셀은 특정 개수의 픽셀들의 집합을 나타내며, 상기 특정 개수는 현재 블록의 너비와 높이의 비율에 따라 결정될 수 있다. 현재 블록의 너비와 높이의 비율이 4이기 때문에, 상기 슈퍼 픽셀은 4개의 픽셀들로 구성될 수 있다.
즉, 비정방형 블록에 대하여 마지막 0이 아닌 변환 계수의 위치를 코딩할 때, 도 9에 도시된 바와 같이 4개의 픽셀을 하나의 슈퍼 픽셀로 구성하면 현재 블록 내 슈퍼 픽셀의 개수가 가로 방향과 세로 방향이 동일하도록 만들 수 있다. 이와 같이 구성하면, 인코더/디코더는 슈퍼 픽셀 단위로 마지막 0이 아닌 영역을 코딩하고, 상기 슈퍼 픽셀 내에서 마지막 0이 아닌 계수의 위치를 오프셋(offset)으로 코딩할 수 있다. 예를 들어, 인코더/디코더는 슈퍼 픽셀 단위로 마지막 0이 아닌 영역을 코딩할 때, 기존 HEVC의 마지막 0이 아닌 계수의 코딩 방법과 동일한 방법을 적용하여 상기 마지막 0이 아닌 영역을 코딩할 수 있다.
또한, 인코더/디코더는 다양한 여러 방법으로 오프셋을 코딩할 수 있다. 예를 들어, 4개의 픽셀로 슈퍼 픽셀이 구성되는 경우, 각 픽셀들의 위치에 인코더/디코더는 00, 01, 10, 11의 코드를 할당할 수 있다. 또한, 인코더/디코더는 상기 할당된 코드에서, 2개의 빈(bin)에 대해 각각 개별적인 컨텍스트를 할당한 후, 정규 코딩(regular coding)을 적용할 수 있다. 또한, 인코더/디코더는 수평 방향 또는 수직 방향에 대해 서로 다른 컨텍스트를 할당할 수 있다. 또한, 인코더/디코더는 블록의 크기 별로 개별적인 컨텍스트를 할당할 수도 있다. 또한, 다른 일 실시예로서 인코더/디코더는 너비와 높이가 특정 비율인 경우(예를 들어, 1:2 또는 2:1 인 경우)에만, 상기 슈퍼 픽셀 단위의 코딩 방법을 적용할 수 있다.
실시예 5
인코더/디코더는 특정 조건 하에서 블록 크기에 관계 없이 마지막 0이 아닌 변환 계수가 제한된 영역 내에 위치하도록 할 수 있다. 예를 들어, 인코더/디코더는 현재 블록의 너비와 높이가 특정 값보다 크거나 같은 경우, 또는 인터 예측(또는 화면간 예측)을 이용하여 코딩된 블록인 경우 또는 현재 블록의 너비와 높이의 곱이 특정 값보다 크거나 같은 경우(즉, 현재 블록 내 픽셀의 개수가 특정 개수 이상인 경우), 마지막 0이 아닌 변환 계수가 현재 블록 내에서 제한된 영역 내에 위치하도록 구성할 수 있다.
이 경우, 인코더/디코더는 상기 제한 영역까지 절삭형 단항 접두사(truncated unary prefix) 코드를 할당할 수 있다. 예를 들어, 64×128의 비정방형 블록에서 마지막 0이 아닌 변환 계수가 좌상단의 32×32 영역 내에만 존재하는 것이 보장되는 경우, 인코더/디코더는 수평 방향 및 수직 방향의 좌표 값에 대해 31까지로 제한된 절삭형 단항 코드를 적용할 수 있다. 이 경우, 앞서 설명한 표 2에서의 24~31 구간에 대한 접두사로서 1111111110 코드가 아닌 111111111 코드를 할당할 수 있다.
전술한 실시예 1 내지 실시예 5는 각각 독립적으로 적용될 수도 있고 복수 개의 실시예가 조합되어 적용될 수도 있다.
도 10은 본 발명이 적용되는 실시예로서, 마지막 0이 아닌 변환 계수의 위치 정보를 복호화하는 방법을 나타내는 흐름도이다.
디코더는 비트 스트림으로부터 마지막 0이 아닌 영역(last non-zero region)을 지시하는 신택스 요소(syntax element)를 복호화한다(S1001). 여기서, 상기 마지막 0이 아닌 영역은 스캔 순서상 마지막 0이 아닌 영역은 스캔 순서상 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)를 포함하는 영역을 나타낸다.
디코더는 현재 블록을 복수 개의 서브 영역들로 분할한다(S1002).
전술한 바와 같이, 디코더는 현재 블록을 기 설정된 분할 방식에 기초하여 하위 깊이(lower depth)의 영역들로 재귀적(recursive)으로 분할함으로써 상기 현재 블록을 상기 복수 개의 서브 영역들로 분할할 수 있다. 이 경우, 디코더는 각각의 하위 깊이에서 마지막 0이 아닌 변환 계수를 포함하는 영역을 지시하는 정보를 복호화할 수 있다.
또한, 전술한 바와 같이, 디코더는 현재 블록의 너비(width)를 복수 개의 수평 방향 그룹들로 그룹핑(grouping)하고, 상기 현재 블록의 높이(height)를 복수 개의 수직 방향 그룹들로 그룹핑할 수 있다. 이 경우, 디코더는 상기 수평 방향 그룹들 및 상기 수직 방향 그룹들에 기초하여 상기 현재 블록을 상기 복수 개의 서브 영역들로 분할할 수 있다. 또한, 디코더는 상기 수평 방향 그룹들 또는 상기 수직 방향 그룹들 중 상기 마지막 0이 아닌 영역을 나타내는 수평 방향 그룹 또는 수직 방향 그룹에 대한 정보를 복호화할 수 있다.
또한, 전술한 바와 같이, 마지막 0이 아닌 영역을 지시하는 신택스 요소는 절삭형 단항(truncated unary) 코드를 이용하여 이진화되고, 마지막 0이 아닌 변환 계수의 위치를 지시하는 신택스 요소는 고정 길이(fixed length) 코드를 이용하여 이진화될 수 있다. 또한, 마지막 0이 아닌 영역을 지시하는 신택스 요소는 컨텍스트(context)를 이용하는 정규 모드(regular mode)로 복호화되고, 상기 마지막 0이 아닌 변환 계수의 위치를 지시하는 신택스 요소는 컨텍스트를 이용하지 않는 우회 모드(bypass mode)로 복호화될 수 있다.
또한, 전술한 바와 같이, 디코더는 미리 저장된 파라미터 셋(parameter set) 중 상기 현재 블록에 적용되는 파라미터 셋을 적응적으로 결정할 수 있다. 여기서, 상기 파라미터 셋은 앞서 수학식 11의 예시와 같이, 상기 수평 방향 그룹들 또는 상기 수직 방향 그룹들의 수를 나타내는 파라미터, 각 그룹 별로 할당되는 코드의 길이를 나타내는 파라미터 또는 상기 각 그룹 별로 할당되는 코드에 사용되는 컨텍스트 인덱스를 나타내는 파라미터 중 적어도 하나를 포함할 수 있다. 디코더는 상기 마지막 0이 아닌 변환 계수의 위치의 확률 분포에 기초하여 상기 현재 블록에 적용되는 파라미터 셋을 적응적으로 결정할 수 있다.
또한, 전술한 바와 같이, 디코더는 현재 블록이 비정방형 블록인 경우, 디코더는 현재 블록의 너비와 높이의 비율에 따라 결정되는 특정 개수의 픽셀들로 현재 블록을 분할할 수 있다. 또한, 마지막 0이 아닌 변환 계수가 현재 블록의 특정 영역 내에 존재하는 경우, 상기 신택스 요소는 상기 특정 영역의 범위 내에서 할당되는 절삭형 단항(truncated unary) 코드를 이용하여 이진화될 수 있다.
디코더는 상기 S1001 단계에서 복호화한 신택스 요소에 기초하여 상기 S1002 단계에서 분할된 서브 영역들 중에서 현재 블록의 마지막 0이 아닌 영역을 결정한다(S1003).
전술한 바와 같이, 인코더는 상기 마지막 0이 아닌 영역 내 마지막 0이 아닌 변환 계수를 디코더에게 시그널링할 수 있다. 이때, 디코더는 현재 블록의 마지막 0이 아닌 영역 내에서 마지막 0이 아닌 변환 계수의 위치를 나타내는 인덱스(index) 정보를 복호화할 수 있다.
도 11은 본 발명이 적용되는 실시예로서, 마지막 0이 아닌 변환 계수의 위치 정보를 복호화하는 장치를 나타내는 도면이다.
도 11을 참조하면, 상기 복호화 장치는 앞서 도 6 내지 도 10에서 제안된 기능, 과정 및/또는 방법을 구현한다. 구체적으로, 상기 복호화 장치는 신택스 요소 복호화부(1101), 서브 영역 분할부(1102) 및 마지막 0이 아닌 영역 결정부(1103)를 포함하여 구성될 수 있다.
신택스 요소 복호화부(1101)는 비트 스트림으로부터 마지막 0이 아닌 영역(last non-zero region)을 지시하는 신택스 요소(syntax element)를 복호화한다. 여기서, 상기 마지막 0이 아닌 영역은 스캔 순서상 마지막 0이 아닌 영역은 스캔 순서상 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)를 포함하는 영역을 나타낸다.
서브 영역 분할부(1102)는 현재 블록을 복수 개의 서브 영역들로 분할한다.
전술한 바와 같이, 서브 영역 분할부(1102)는 현재 블록을 기 설정된 분할 방식에 기초하여 하위 깊이(lower depth)의 영역들로 재귀적(recursive)으로 분할함으로써 상기 현재 블록을 상기 복수 개의 서브 영역들로 분할할 수 있다. 이 경우, 서브 영역 분할부(1102)는 각각의 하위 깊이에서 마지막 0이 아닌 변환 계수를 포함하는 영역을 지시하는 정보를 복호화할 수 있다.
또한, 전술한 바와 같이, 서브 영역 분할부(1102)는 현재 블록의 너비(width)를 복수 개의 수평 방향 그룹들로 그룹핑(grouping)하고, 상기 현재 블록의 높이(height)를 복수 개의 수직 방향 그룹들로 그룹핑할 수 있다. 이 경우, 서브 영역 분할부(1102)는 상기 수평 방향 그룹들 및 상기 수직 방향 그룹들에 기초하여 상기 현재 블록을 상기 복수 개의 서브 영역들로 분할할 수 있다. 또한, 마지막 0이 아닌 영역 결정부(1103)는 상기 수평 방향 그룹들 또는 상기 수직 방향 그룹들 중 상기 마지막 0이 아닌 영역을 나타내는 수평 방향 그룹 또는 수직 방향 그룹에 대한 정보를 복호화할 수 있다.
또한, 전술한 바와 같이, 마지막 0이 아닌 영역을 지시하는 신택스 요소는 절삭형 단항(truncated unary) 코드를 이용하여 이진화되고, 마지막 0이 아닌 변환 계수의 위치를 지시하는 신택스 요소는 고정 길이(fixed length) 코드를 이용하여 이진화될 수 있다. 또한, 마지막 0이 아닌 영역을 지시하는 신택스 요소는 컨텍스트(context)를 이용하는 정규 모드(regular mode)로 복호화되고, 상기 마지막 0이 아닌 변환 계수의 위치를 지시하는 신택스 요소는 컨텍스트를 이용하지 않는 우회 모드(bypass mode)로 복호화될 수 있다.
또한, 전술한 바와 같이, 마지막 0이 아닌 영역 결정부(1103)는 미리 저장된 파라미터 셋(parameter set) 중 상기 현재 블록에 적용되는 파라미터 셋을 적응적으로 결정할 수 있다. 여기서, 상기 파라미터 셋은 앞서 수학식 11의 예시와 같이, 상기 수평 방향 그룹들 또는 상기 수직 방향 그룹들의 수를 나타내는 파라미터, 각 그룹 별로 할당되는 코드의 길이를 나타내는 파라미터 또는 상기 각 그룹 별로 할당되는 코드에 사용되는 컨텍스트 인덱스를 나타내는 파라미터 중 적어도 하나를 포함할 수 있다. 마지막 0이 아닌 영역 결정부(1103)는 상기 마지막 0이 아닌 변환 계수의 위치의 확률 분포에 기초하여 상기 현재 블록에 적용되는 파라미터 셋을 적응적으로 결정할 수 있다.
또한, 전술한 바와 같이, 서브 영역 분할부(1102)는 현재 블록이 비정방형 블록인 경우, 현재 블록의 너비와 높이의 비율에 따라 결정되는 특정 개수의 픽셀들로 현재 블록을 분할할 수 있다. 또한, 마지막 0이 아닌 변환 계수가 현재 블록의 특정 영역 내에 존재하는 경우, 상기 신택스 요소는 상기 특정 영역의 범위 내에서 할당되는 절삭형 단항(truncated unary) 코드를 이용하여 이진화될 수 있다.
마지막 0이 아닌 영역 결정부(1103)는 복호화한 신택스 요소에 기초하여 분할된 서브 영역들 중에서 현재 블록의 마지막 0이 아닌 영역을 결정한다.
전술한 바와 같이, 인코더는 상기 마지막 0이 아닌 영역 내 마지막 0이 아닌 변환 계수를 디코더에게 시그널링할 수 있다. 이때, 디코더는 현재 블록의 마지막 0이 아닌 영역 내에서 마지막 0이 아닌 변환 계수의 위치를 나타내는 인덱스(index) 정보를 복호화할 수 있다.
상기 신택스 요소 복호화부(1101), 서브 영역 분할부(1102) 및 마지막 0이 아닌 영역 결정부(1103)는 본 발명에서 제안하는 방법을 수행하기 위하여 유기적으로 결합되어 구성될 수 있다. 예를 들어, 신택스 요소 복호화부(1101)에 의한 신택스 요소의 복호화와 서브 영역 분할부(1102)에 의한 분할은 각 깊이(depth) 마다 유기적으로 수행될 수 있다.
상기 기술된 것과 같이, 본 발명에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 상기 도 1 내지 4 에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다.
또한, 본 발명이 적용되는 디코더 및 인코더는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 및 데이터 신호를 처리하기 위해 사용될 수 있다.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트 스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.

Claims (13)

  1. 비디오 신호를 복호화하는 방법에 있어서,
    비트 스트림으로부터 마지막 0이 아닌 영역(last non-zero region)을 지시하는 신택스 요소(syntax element)를 복호화하는 단계, 여기서 상기 마지막 0이 아닌 영역은 스캔 순서상 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)를 포함하는 영역을 나타냄;
    현재 블록을 복수 개의 서브 영역들로 분할하는 단계; 및
    상기 신택스 요소에 기초하여 상기 분할된 서브 영역들 중에서 상기 현재 블록의 마지막 0이 아닌 영역을 결정하는 단계를 포함하는 방법.
  2. 제 1항에 있어서,
    상기 현재 블록의 마지막 0이 아닌 영역 내에서 상기 마지막 0이 아닌 변환 계수의 위치를 나타내는 인덱스(index) 정보를 복호화하는 단계를 더 포함하는 방법.
  3. 제 1항에 있어서,
    상기 현재 블록을 복수 개의 서브 영역들로 분할하는 단계는,
    상기 현재 블록을 기 설정된 분할 방식에 기초하여 하위 깊이(lower depth)의 영역들로 재귀적(recursive)으로 분할함으로써 상기 현재 블록을 상기 복수 개의 서브 영역들로 분할하는 방법.
  4. 제 3항에 있어서,
    상기 신택스 요소는 각각의 깊이마다, 상기 현재 블록으로부터 분할되는 하위 깊이의 영역들 중 상기 마지막 0이 아닌 변환 계수를 포함하는 영역을 지시하는 정보를 포함하는 방법.
  5. 제 1항에 있어서,
    상기 현재 블록을 복수 개의 서브 영역들로 분할하는 단계는,
    상기 현재 블록의 너비(width)를 복수 개의 수평 방향 그룹들로 그룹핑(grouping)하고, 상기 현재 블록의 높이(height)를 복수 개의 수직 방향 그룹들로 그룹핑하는 단계를 포함하고,
    상기 수평 방향 그룹들 및 상기 수직 방향 그룹들에 기초하여 상기 현재 블록을 상기 복수 개의 서브 영역들로 분할하는 방법.
  6. 제 5항에 있어서,
    상기 신택스 요소는 상기 수평 방향 그룹들 또는 상기 수직 방향 그룹들 중 상기 마지막 0이 아닌 영역을 나타내는 수평 방향 그룹 또는 수직 방향 그룹에 대한 정보를 포함하는 방법.
  7. 제 6항에 있어서,
    상기 현재 블록의 마지막 0이 아닌 영역 내에서 상기 마지막 0이 아닌 변환 계수의 위치를 지시하는 신택스 요소를 복호화하는 단계를 더 포함하고,
    상기 마지막 0이 아닌 영역을 지시하는 신택스 요소는 절삭형 단항(truncated unary) 코드를 이용하여 이진화되고, 상기 마지막 0이 아닌 변환 계수의 위치를 지시하는 신택스 요소는 고정 길이(fixed length) 코드를 이용하여 이진화되는 방법.
  8. 제 7항에 있어서,
    상기 마지막 0이 아닌 영역을 지시하는 신택스 요소는 컨텍스트(context)를 이용하는 정규 모드(regular mode)로 복호화되고, 상기 마지막 0이 아닌 변환 계수의 위치를 지시하는 신택스 요소는 컨텍스트를 이용하지 않는 우회 모드(bypass mode)로 복호화되는 방법.
  9. 제 5항에 있어서,
    미리 저장된 파라미터 셋(parameter set) 중 상기 현재 블록에 적용되는 파라미터 셋을 적응적으로 결정하는 단계를 더 포함하되,
    상기 파라미터 셋은 상기 수평 방향 그룹들 또는 상기 수직 방향 그룹들의 수를 나타내는 파라미터, 각 그룹 별로 할당되는 코드의 길이를 나타내는 파라미터 또는 상기 각 그룹 별로 할당되는 코드에 사용되는 컨텍스트 인덱스를 나타내는 파라미터 중 적어도 하나를 포함하는 방법.
  10. 제 9항에 있어서,
    상기 현재 블록에 적용되는 파라미터 셋을 적응적으로 결정하는 단계는,
    상기 마지막 0이 아닌 변환 계수의 위치의 확률 분포에 기초하여 상기 현재 블록에 적용되는 파라미터 셋을 결정하는 방법.
  11. 제 1항에 있어서,
    상기 현재 블록이 비정방형 블록인 경우, 상기 현재 블록은 특정 개수의 픽셀들로 구성되는 서브 영역들로 분할되고,
    상기 특정 개수는 상기 현재 블록의 너비와 높이의 비율에 따라 결정되는 방법.
  12. 제 1항에 있어서,
    상기 마지막 0이 아닌 변환 계수가 상기 현재 블록의 특정 영역 내에 존재하는 경우, 상기 신택스 요소는 상기 특정 영역의 범위 내에서 할당되는 절삭형 단항(truncated unary) 코드를 이용하여 이진화되는 방법.
  13. 비디오 신호를 복호화하는 장치에 있어서,
    비트 스트림으로부터 마지막 0이 아닌 영역(last non-zero region)을 지시하는 신택스 요소(syntax element)를 복호화하는 신택스 요소 복호화부, 여기서 상기 마지막 0이 아닌 영역은 스캔 순서상 마지막 0이 아닌 변환 계수(last non-zero transform coefficient)를 포함하는 영역을 나타냄;
    현재 블록을 복수 개의 서브 영역들로 분할하는 서브 영역 분할부; 및
    상기 신택스 요소에 기초하여 상기 분할된 서브 영역들 중에서 상기 현재 블록의 마지막 0이 아닌 영역을 결정하는 마지막 0이 아닌 영역 결정부를 포함하는 장치.
PCT/KR2018/004143 2017-04-13 2018-04-09 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 Ceased WO2018190594A1 (ko)

Priority Applications (23)

Application Number Priority Date Filing Date Title
KR1020197033090A KR102149023B1 (ko) 2017-04-13 2018-04-09 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
KR1020207024246A KR102272992B1 (ko) 2017-04-13 2018-04-09 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
AU2018251489A AU2018251489B2 (en) 2017-04-13 2018-04-09 Method and device for entropy encoding, decoding video signal
CN202210917838.1A CN115297325B (zh) 2017-04-13 2018-04-09 熵编码和解码视频信号的方法和设备
MX2019012293A MX2019012293A (es) 2017-04-13 2018-04-09 Metodo y dispositivo para codificacion y decodificacion de entropia de señal de video.
RU2019135694A RU2738317C1 (ru) 2017-04-13 2018-04-09 Способ и устройство для энтропийного кодирования и декодирования видеосигнала
CA3060035A CA3060035C (en) 2017-04-13 2018-04-09 Method and device for entropy encoding and decoding video signal
CN201880031914.0A CN110622510B (zh) 2017-04-13 2018-04-09 熵编码和解码视频信号的方法和设备
JP2019556190A JP2020517191A (ja) 2017-04-13 2018-04-09 ビデオ信号をエントロピエンコード、デコードする方法及び装置
KR1020227013842A KR102509347B1 (ko) 2017-04-13 2018-04-09 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
US16/605,101 US11240536B2 (en) 2017-04-13 2018-04-09 Method and device for entropy encoding, decoding video signal
EP18784463.4A EP3611922B1 (en) 2017-04-13 2018-04-09 Method for decoding and encoding a video signal
BR112019021593-0A BR112019021593A2 (pt) 2017-04-13 2018-04-09 Método e dispositivo para codificação e decodificação entrópica de sinais de vídeo
KR1020217020295A KR102391908B1 (ko) 2017-04-13 2018-04-09 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
CN202210916620.4A CN115297324B (zh) 2017-04-13 2018-04-09 熵编码和解码视频信号的方法和设备
AU2021221878A AU2021221878B2 (en) 2017-04-13 2021-08-26 Method and device for entropy encoding, decoding video signal
US17/553,354 US11902592B2 (en) 2017-04-13 2021-12-16 Method and device for entropy encoding, decoding video signal
AU2023202899A AU2023202899B2 (en) 2017-04-13 2023-05-09 Method and device for entropy encoding, decoding video signal
US18/405,834 US20240146976A1 (en) 2017-04-13 2024-01-05 Method and device for entropy encoding, decoding video signal
AU2024202107A AU2024202107B2 (en) 2017-04-13 2024-04-02 Method and device for entropy encoding, decoding video signal
US19/012,822 US20250150642A1 (en) 2017-04-13 2025-01-07 Method and device for entropy encoding, decoding video signal
US19/012,817 US20250142131A1 (en) 2017-04-13 2025-01-07 Method and device for entropy encoding, decoding video signal
AU2025220893A AU2025220893A1 (en) 2017-04-13 2025-08-26 Method and device for entropy encoding, decoding video signal

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762484899P 2017-04-13 2017-04-13
US62/484,899 2017-04-13

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/605,101 A-371-Of-International US11240536B2 (en) 2017-04-13 2018-04-09 Method and device for entropy encoding, decoding video signal
US17/553,354 Continuation US11902592B2 (en) 2017-04-13 2021-12-16 Method and device for entropy encoding, decoding video signal

Publications (1)

Publication Number Publication Date
WO2018190594A1 true WO2018190594A1 (ko) 2018-10-18

Family

ID=63793448

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/004143 Ceased WO2018190594A1 (ko) 2017-04-13 2018-04-09 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치

Country Status (11)

Country Link
US (5) US11240536B2 (ko)
EP (1) EP3611922B1 (ko)
JP (1) JP2020517191A (ko)
KR (4) KR102509347B1 (ko)
CN (3) CN115297325B (ko)
AU (5) AU2018251489B2 (ko)
BR (1) BR112019021593A2 (ko)
CA (2) CA3222632A1 (ko)
MX (2) MX2019012293A (ko)
RU (3) RU2738317C1 (ko)
WO (1) WO2018190594A1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020162732A1 (ko) * 2019-02-09 2020-08-13 엘지전자 주식회사 비디오 신호를 처리하기 위한 방법 및 장치
WO2020166977A1 (ko) * 2019-02-12 2020-08-20 엘지전자 주식회사 비디오 신호를 처리하기 위한 방법 및 장치
CN111587575A (zh) * 2018-12-17 2020-08-25 Lg电子株式会社 基于高频归零确定变换系数扫描顺序的方法及其设备
WO2021025530A1 (ko) * 2019-08-08 2021-02-11 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021036979A1 (en) * 2019-08-24 2021-03-04 Beijing Bytedance Network Technology Co., Ltd. Residual coefficients coding
JP2021510022A (ja) * 2018-11-12 2021-04-08 エルジー エレクトロニクス インコーポレイティド 高周波ゼロイングに基づいて変換係数をコーディングする方法及びその装置
CN113966611A (zh) * 2019-06-09 2022-01-21 北京字节跳动网络技术有限公司 视频编解码中的重要系数信令
KR20220031061A (ko) * 2019-08-08 2022-03-11 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102509347B1 (ko) 2017-04-13 2023-03-14 엘지전자 주식회사 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
US11128866B2 (en) * 2018-10-18 2021-09-21 Qualcomm Incorporated Scans and last coefficient position coding for zero-out transforms
BR112021017154A2 (pt) 2019-03-05 2021-11-09 Fraunhofer Ges Forschung Aparelho que compreende um codificador ou decodificador, método para codificar ou decodificar dados de imagem ou de vídeo e produto de programa de computador
WO2022114770A1 (ko) * 2020-11-24 2022-06-02 현대자동차주식회사 기하학적 변환에 기반하는 블록 복사를 이용하는 인트라 예측방법과 장치
CN116888965A (zh) 2021-04-12 2023-10-13 Oppo广东移动通信有限公司 系数编解码方法、编码器、解码器以及计算机存储介质
KR20240027581A (ko) 2021-06-29 2024-03-04 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 인코딩 및 디코딩 방법, 비트 스트림, 인코더, 디코더 및 컴퓨터 저장 매체
WO2023113551A1 (ko) * 2021-12-17 2023-06-22 주식회사 케이티 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체
US20250227302A1 (en) * 2022-06-02 2025-07-10 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Video encoding method, video decoding method, non-transitory computer-readable medium
WO2024205274A2 (ko) * 2023-03-29 2024-10-03 현대자동차주식회사 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013099892A1 (ja) * 2011-12-28 2013-07-04 シャープ株式会社 算術復号装置、画像復号装置、および、算術符号化装置
KR20130095309A (ko) * 2010-12-03 2013-08-27 퀄컴 인코포레이티드 비디오 코딩 시 비디오 블록의 마지막 유효 계수의 포지션의 별도 코딩
KR20130116754A (ko) * 2012-04-16 2013-10-24 주식회사 팬택 엔트로피 부복호화 방법 및 이러한 방법을 사용하는 장치
KR20140120891A (ko) * 2011-12-20 2014-10-14 모토로라 모빌리티 엘엘씨 효율적인 변환 유닛 인코딩을 위한 방법 및 장치
KR20150064165A (ko) * 2012-10-01 2015-06-10 퀄컴 인코포레이티드 비디오 코딩에서 4:2:2 샘플 포맷에 대한 코딩된 블록 플래그 (cbf) 코딩
KR20160038063A (ko) * 2010-04-13 2016-04-06 지이 비디오 컴프레션, 엘엘씨 유효성 맵 및 변환 계수 블록의 코딩

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
PT2592832T (pt) * 2010-07-09 2016-09-20 Samsung Electronics Co Ltd Método e aparelho para codificar/descodificar por entropia um coeficiente de transformação
CN104093020B (zh) 2011-03-10 2017-11-17 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
CN107465927B (zh) 2011-06-16 2020-05-12 Ge视频压缩有限责任公司 一种从数据流中解码视频的解码器和解码方法,以及将视频编码到数据流中的编码器和编码方法
CN102186087B (zh) * 2011-06-24 2013-06-12 哈尔滨工业大学 用于二进制算术编码可并行的非零系数上下文建模方法
US9253508B2 (en) * 2011-11-04 2016-02-02 Futurewei Technologies, Inc. Differential pulse code modulation intra prediction for high efficiency video coding
US10390046B2 (en) * 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
US20130114667A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Binarisation of last position for higher throughput
MX370956B (es) * 2012-01-20 2020-01-10 Ge Video Compression Llc Codificación de coeficiente de transformada
JP2013187869A (ja) * 2012-03-09 2013-09-19 Sharp Corp 算術復号装置、算術符号化装置、画像復号装置、および画像符号化装置
US9521410B2 (en) * 2012-04-26 2016-12-13 Qualcomm Incorporated Quantization parameter (QP) coding in video coding
EP2858353B1 (en) * 2012-06-01 2019-03-20 Velos Media International Limited Arithmetic decoding device, image decoding device, arithmetic encoding device, and image encoding device
US9319684B2 (en) * 2012-08-21 2016-04-19 Qualcomm Incorporated Alternative transform in scalable video coding
US9854235B2 (en) 2012-08-31 2017-12-26 Blackberry Limited Methods and devices for entropy coding in scalable video compression
CN103024380B (zh) * 2012-12-10 2016-04-13 浙江大学 一种数据的熵编码方法和装置
SG10201507028PA (en) * 2013-01-04 2015-10-29 Samsung Electronics Co Ltd Method for entropy-encoding slice segment and apparatus therefor, and method for entropy-decoding slice segment and apparatus therefor
WO2014110652A1 (en) * 2013-01-16 2014-07-24 Blackberry Limited Context determination for entropy coding of run-length encoded transform coefficients
US10412396B2 (en) * 2013-01-16 2019-09-10 Blackberry Limited Transform coefficient coding for context-adaptive binary entropy coding of video
GB2521828A (en) * 2013-12-23 2015-07-08 Sony Corp Data encoding and decoding
CN104270641B (zh) 2014-09-30 2018-12-14 杭州华为数字技术有限公司 变换系数的处理方法和装置
WO2016200234A1 (ko) * 2015-06-11 2016-12-15 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
CN108353179A (zh) * 2015-09-10 2018-07-31 三星电子株式会社 编码设备、解码设备及其编码方法和解码方法
US10440399B2 (en) * 2015-11-13 2019-10-08 Qualcomm Incorporated Coding sign information of video data
EP3270594A1 (en) * 2016-07-15 2018-01-17 Thomson Licensing Method and apparatus for advanced cabac context adaptation for last coefficient coding
US10972733B2 (en) * 2016-07-15 2021-04-06 Qualcomm Incorporated Look-up table for enhanced multiple transform
EP3306924A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to picture data
KR102509347B1 (ko) 2017-04-13 2023-03-14 엘지전자 주식회사 비디오 신호를 인코딩, 디코딩하는 방법 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160038063A (ko) * 2010-04-13 2016-04-06 지이 비디오 컴프레션, 엘엘씨 유효성 맵 및 변환 계수 블록의 코딩
KR20130095309A (ko) * 2010-12-03 2013-08-27 퀄컴 인코포레이티드 비디오 코딩 시 비디오 블록의 마지막 유효 계수의 포지션의 별도 코딩
KR20140120891A (ko) * 2011-12-20 2014-10-14 모토로라 모빌리티 엘엘씨 효율적인 변환 유닛 인코딩을 위한 방법 및 장치
WO2013099892A1 (ja) * 2011-12-28 2013-07-04 シャープ株式会社 算術復号装置、画像復号装置、および、算術符号化装置
KR20130116754A (ko) * 2012-04-16 2013-10-24 주식회사 팬택 엔트로피 부복호화 방법 및 이러한 방법을 사용하는 장치
KR20150064165A (ko) * 2012-10-01 2015-06-10 퀄컴 인코포레이티드 비디오 코딩에서 4:2:2 샘플 포맷에 대한 코딩된 블록 플래그 (cbf) 코딩

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3611922A4 *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021510022A (ja) * 2018-11-12 2021-04-08 エルジー エレクトロニクス インコーポレイティド 高周波ゼロイングに基づいて変換係数をコーディングする方法及びその装置
CN114374839B (zh) * 2018-11-12 2023-06-20 Lg电子株式会社 图像解码方法、图像编码方法和数据发送方法
US11659205B2 (en) 2018-11-12 2023-05-23 Lg Electronics Inc. Method of coding transform coefficient based on high frequency zeroing and apparatus thereof
CN114374839A (zh) * 2018-11-12 2022-04-19 Lg电子株式会社 图像解码方法、图像编码方法和数据发送方法
US11218733B2 (en) 2018-11-12 2022-01-04 Lg Electronics Inc. Method of coding transform coefficient based on high frequency zeroing and apparatus thereof
CN115426495A (zh) * 2018-12-17 2022-12-02 Lg电子株式会社 图像编码/解码方法及发送数据的方法
CN111587575B (zh) * 2018-12-17 2022-09-16 Lg电子株式会社 基于高频归零确定变换系数扫描顺序的方法及其设备
JP2021510943A (ja) * 2018-12-17 2021-04-30 エルジー エレクトロニクス インコーポレイティド 高周波ゼロイングに基づいて変換係数スキャン順序を決定する方法及び装置
CN115426495B (zh) * 2018-12-17 2024-05-28 Lg电子株式会社 图像编码/解码方法及发送数据的方法
CN115442608B (zh) * 2018-12-17 2024-05-24 Lg电子株式会社 图像编码/解码方法及发送数据的方法
US11838512B2 (en) 2018-12-17 2023-12-05 Lg Electronics Inc. Method of determining transform coefficient scan order based on high frequency zeroing and apparatus thereof
CN111587575A (zh) * 2018-12-17 2020-08-25 Lg电子株式会社 基于高频归零确定变换系数扫描顺序的方法及其设备
CN115442608A (zh) * 2018-12-17 2022-12-06 Lg电子株式会社 图像编码/解码方法及发送数据的方法
US12010342B2 (en) 2019-02-09 2024-06-11 Lg Electronics Inc. Method and device for processing video signal
WO2020162732A1 (ko) * 2019-02-09 2020-08-13 엘지전자 주식회사 비디오 신호를 처리하기 위한 방법 및 장치
US12407859B2 (en) 2019-02-12 2025-09-02 Lg Electronics Inc. Method for processing image on basis of transform and device therefor
WO2020166977A1 (ko) * 2019-02-12 2020-08-20 엘지전자 주식회사 비디오 신호를 처리하기 위한 방법 및 장치
US11863766B2 (en) 2019-06-09 2024-01-02 Beijing Bytedance Network Techonogy Co., Ltd. Significant coefficient signaling in video coding
US12439061B2 (en) 2019-06-09 2025-10-07 Beijing Bytedance Network Technology Co., Ltd. Significant coefficient signaling in video coding
CN113966611A (zh) * 2019-06-09 2022-01-21 北京字节跳动网络技术有限公司 视频编解码中的重要系数信令
CN113966611B (zh) * 2019-06-09 2023-12-15 北京字节跳动网络技术有限公司 视频编解码中的重要系数信令
KR20220031063A (ko) * 2019-08-08 2022-03-11 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
KR20220031061A (ko) * 2019-08-08 2022-03-11 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
KR102837564B1 (ko) * 2019-08-08 2025-07-22 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
KR102840889B1 (ko) * 2019-08-08 2025-07-30 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021025530A1 (ko) * 2019-08-08 2021-02-11 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
CN114365492B (zh) * 2019-08-24 2023-12-15 北京字节跳动网络技术有限公司 残差系数编解码
WO2021036979A1 (en) * 2019-08-24 2021-03-04 Beijing Bytedance Network Technology Co., Ltd. Residual coefficients coding
US12166988B2 (en) 2019-08-24 2024-12-10 Beijing Bytedance Network Technology Co., Ltd. Residual coefficients coding
CN114365492A (zh) * 2019-08-24 2022-04-15 北京字节跳动网络技术有限公司 残差系数编解码

Also Published As

Publication number Publication date
CN115297324B (zh) 2024-11-19
KR20190132519A (ko) 2019-11-27
AU2024202107B2 (en) 2025-05-29
JP2020517191A (ja) 2020-06-11
US20250142131A1 (en) 2025-05-01
KR102509347B1 (ko) 2023-03-14
CN115297325B (zh) 2025-01-28
US20240146976A1 (en) 2024-05-02
US11902592B2 (en) 2024-02-13
AU2018251489B2 (en) 2021-05-27
KR20210083404A (ko) 2021-07-06
RU2768379C1 (ru) 2022-03-24
CA3060035A1 (en) 2018-10-18
MX2019012293A (es) 2020-01-20
KR20200102551A (ko) 2020-08-31
CN110622510A (zh) 2019-12-27
US20220109892A1 (en) 2022-04-07
EP3611922A1 (en) 2020-02-19
AU2021221878B2 (en) 2023-02-09
CA3222632A1 (en) 2018-10-18
CN110622510B (zh) 2022-08-23
AU2021221878A1 (en) 2021-09-23
AU2018251489A1 (en) 2019-12-05
AU2023202899B2 (en) 2024-01-04
EP3611922B1 (en) 2025-05-28
AU2025220893A1 (en) 2025-09-11
RU2753238C1 (ru) 2021-08-12
EP3611922A4 (en) 2020-08-19
KR102149023B1 (ko) 2020-08-28
MX2023008336A (es) 2023-07-25
US11240536B2 (en) 2022-02-01
CN115297324A (zh) 2022-11-04
CA3060035C (en) 2024-01-02
KR20220057647A (ko) 2022-05-09
KR102272992B1 (ko) 2021-07-06
KR102391908B1 (ko) 2022-04-28
RU2738317C1 (ru) 2020-12-11
US20250150642A1 (en) 2025-05-08
AU2023202899A1 (en) 2023-05-25
BR112019021593A2 (pt) 2020-05-12
AU2024202107A1 (en) 2024-05-02
CN115297325A (zh) 2022-11-04
US20200396488A1 (en) 2020-12-17

Similar Documents

Publication Publication Date Title
WO2018190594A1 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2017086765A2 (ko) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
WO2018128322A1 (ko) 영상 처리 방법 및 이를 위한 장치
WO2019117636A1 (ko) 비분리 2차 변환에 기반한 영상 코딩 방법 및 그 장치
WO2011087323A2 (en) Method and apparatus for encoding and decoding image by using large transform unit
WO2016204531A1 (ko) 블록 경계에 따라 적응적으로 필터링을 수행하는 방법 및 장치
WO2017209328A1 (ko) 영상 코딩 시스템에서 인트라 예측 방법 및 장치
WO2014007524A1 (ko) 비디오의 엔트로피 부호화 방법 및 장치, 비디오의 엔트로피 복호화 방법 및 장치
WO2013115572A1 (ko) 계층적 데이터 단위의 양자화 파라메터 예측을 포함하는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
WO2013157794A1 (ko) 변환 계수 레벨의 엔트로피 부호화 및 복호화를 위한 파라메터 업데이트 방법 및 이를 이용한 변환 계수 레벨의 엔트로피 부호화 장치 및 엔트로피 복호화 장치
WO2013069991A1 (ko) 비디오의 산술 부호화 방법 및 그 장치, 비디오의 산술 복호화 방법 및 그 장치
WO2020050702A1 (ko) 다중 변환 커널을 사용하는 비디오 신호 처리 방법 및 장치
WO2020162737A1 (ko) 이차 변환을 이용하는 비디오 신호 처리 방법 및 장치
WO2016072744A1 (ko) 이진 산술 부호화/복호화를 위한 확률 갱신 방법 및 이를 이용한 엔트로피 부호화/복호화 장치
WO2020071879A1 (ko) 변환 계수 코딩 방법 및 그 장치
WO2020060282A1 (ko) 변환 계수 레벨 코딩 방법 및 그 장치
WO2021040319A1 (ko) 비디오/영상 코딩 시스템에서 라이스 파라미터 도출 방법 및 장치
WO2016122251A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019240539A1 (ko) Cabac에 기반한 엔트로피 코딩 방법 및 그 장치
WO2021040407A1 (ko) 영상 코딩 시스템에서 단순화된 레지듀얼 데이터 코딩을 사용하는 영상 디코딩 방법 및 그 장치
WO2020141856A1 (ko) 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
WO2020071832A1 (ko) 변환 계수 코딩 방법 및 그 장치
WO2016129980A1 (ko) 변환 도메인 예측을 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
WO2021071187A1 (ko) 비디오/영상 코딩 시스템에서 라이스 파라미터 도출 방법 및 장치
WO2020180043A1 (ko) Lmcs에 기반한 영상 코딩 방법 및 그 장치

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 122021006675

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 3060035

Country of ref document: CA

Ref document number: 2019556190

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112019021593

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 20197033090

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2018784463

Country of ref document: EP

Effective date: 20191113

ENP Entry into the national phase

Ref document number: 2018251489

Country of ref document: AU

Date of ref document: 20180409

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 112019021593

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20191014

WWG Wipo information: grant in national office

Ref document number: 2018784463

Country of ref document: EP