WO2019143103A1 - 다양한 변환 기술을 사용하는 비디오 코딩 방법 및 장치 - Google Patents

다양한 변환 기술을 사용하는 비디오 코딩 방법 및 장치 Download PDF

Info

Publication number
WO2019143103A1
WO2019143103A1 PCT/KR2019/000603 KR2019000603W WO2019143103A1 WO 2019143103 A1 WO2019143103 A1 WO 2019143103A1 KR 2019000603 W KR2019000603 W KR 2019000603W WO 2019143103 A1 WO2019143103 A1 WO 2019143103A1
Authority
WO
WIPO (PCT)
Prior art keywords
inverse
conversion
type
inverse transform
transform
Prior art date
Application number
PCT/KR2019/000603
Other languages
English (en)
French (fr)
Inventor
안용조
류호찬
Original Assignee
인텔렉추얼디스커버리 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔렉추얼디스커버리 주식회사 filed Critical 인텔렉추얼디스커버리 주식회사
Priority to CN201980008732.6A priority Critical patent/CN111602397B/zh
Priority to CN202410008153.4A priority patent/CN117834918A/zh
Priority to CN202410012069.XA priority patent/CN117834921A/zh
Priority to CN202410009193.0A priority patent/CN117834919A/zh
Priority to CN202410006623.3A priority patent/CN117834917A/zh
Priority to US16/962,730 priority patent/US11166039B2/en
Priority to CN202410015067.6A priority patent/CN117834922A/zh
Priority to CN202410009580.4A priority patent/CN117834920A/zh
Publication of WO2019143103A1 publication Critical patent/WO2019143103A1/ko
Priority to US17/491,955 priority patent/US20220021895A1/en
Priority to US18/472,915 priority patent/US20240022746A1/en

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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch

Definitions

  • the present invention relates to an image decoding apparatus and a method thereof, and more particularly, to a method and apparatus using various conversion techniques in a video compression technique.
  • a conversion technique is a technique of changing the domain of a signal in a spatial domain into a signal in a frequency domain in order to effectively perform quantization and entropy encoding.
  • a method and apparatus for coding a video signal comprising: extracting transform type information for a first inverse transform from a bitstream; selectively transforming inverse transform types into a plurality of inverse transform types using the extracted information; And performing horizontal or vertical inverse transform using the determined inverse transformation type.
  • a video coding method and apparatus for extracting inverse transform type information for a first inverse transform from a bitstream to determine a transform type of a horizontal inverse transform or a vertical inverse transform, And omitting a horizontal inverse transformation or a vertical inverse transformation according to the inverse transformation type.
  • a method and apparatus for video coding including the step of omitting a second inverse transform according to a transform type of a first inverse transform.
  • a method and apparatus for video coding comprising: determining weighted quantization parameters for each frequency according to a first inverse transform type and performing weighted inverse quantization;
  • a method and apparatus for performing a weighted inverse quantization on a frequency-dependent weighted quantization parameter according to a second inverse transformation index there is provided a method and apparatus for performing a weighted inverse quantization on a frequency-dependent weighted quantization parameter according to a second inverse transformation index.
  • encoding efficiency can be improved by selectively using various conversion types in the first conversion or the first inverse conversion.
  • FIG. 1 is a block diagram illustrating a video encoding method and apparatus according to an embodiment of the present invention.
  • FIG. 2 shows a block diagram illustrating the configuration of a video decoding method and apparatus according to an embodiment of the present invention.
  • FIG. 3 illustrates a technique of using various transforms in a transform unit of an encoder according to an embodiment of the present invention.
  • FIG. 4 illustrates a technique of using various inversions in an inverse transform unit of a decoder according to an embodiment of the present invention.
  • FIG. 5 illustrates a procedure for extracting information for a first inverse transform from a bitstream according to an embodiment of the present invention.
  • FIG. 6 illustrates a first inverse transformation process according to various inverse transformation types according to an embodiment of the present invention.
  • FIG. 7 illustrates a second inverse transformation process according to an embodiment of the present invention.
  • FIG. 8 illustrates a method of signaling the use of various inversion techniques according to an embodiment of the present invention by syntax.
  • FIG. 9 illustrates a method of signaling information for performing various inverse transformation techniques in a method and apparatus using various inverse transformation techniques according to an embodiment of the present invention by coding unit syntax among syntaxes in a bitstream.
  • Figure 10 illustrates another example of an inverse transform process in a method and apparatus using various inverse transform techniques in accordance with an embodiment of the present invention.
  • FIG. 11 illustrates a process of performing weighted quantization according to different frequencies when using various inverse transform techniques according to an embodiment of the present invention.
  • FIG. 12 illustrates a process of performing weighted quantization according to different frequencies when using the second inverse transformation technique according to an embodiment of the present invention.
  • FIG. 13 illustrates a method of signaling information for weighted quantization by syntax in performing various inversions or second inversions according to an embodiment of the present invention.
  • a video coding method and apparatus includes the steps of extracting conversion type information for a first inverse conversion from a bitstream, selectively determining an inverse conversion type in a plurality of inverse conversion types using the extracted information, And performing a horizontal direction or a vertical direction inverse transformation using an inverse transformation type.
  • a video coding method and apparatus includes the steps of extracting inverse transform type information for a first inverse transform from a bit stream and determining a transform type of a horizontal inverse transform or a vertical inverse transform, And omitting the inverse transformation or the vertical inverse transformation.
  • the video coding method and apparatus includes omitting the second inverse conversion according to the conversion type of the first inverse conversion.
  • the video coding method and apparatus includes a step of determining whether or not the inverse transform is performed according to the type of the transform coefficient.
  • the video coding method and apparatus includes weighted inverse quantization by determining frequency-dependent weighted quantization parameters according to a first inverse transform type.
  • the video coding method and apparatus includes weighted inverse quantization by determining a weighted quantization parameter for each frequency according to a second inverse transformation index.
  • step or step of ( ⁇ ) used in the present specification does not imply a step for.
  • first, second, etc. may be used to describe various components, but the components should not be limited to these terms. The terms are used only for the purpose of distinguishing one component from another.
  • each constituent unit is described by arranging each constituent unit for convenience of explanation, and at least two constituent units of each constituent unit may be combined to form one constituent unit or one constituent unit may be divided into a plurality of constituent units to perform a function.
  • the integrated embodiments and the separate embodiments of each of these components are also included in the scope of the present invention without departing from the essence of the present invention.
  • FIG. 1 is a block diagram illustrating a video encoding method and apparatus according to an embodiment of the present invention.
  • the video encoding method and apparatus includes an inter picture prediction unit 120, an intra picture prediction unit 125, a subtraction unit 130, a transform unit 140, a quantization unit 150, an entropy encoding unit 160 An inverse transform unit 145, an inverse quantization unit 155, an adding unit 135, a bidirectional filter unit 180, an in-loop filter unit 180, and a reconstruction picture buffer 190.
  • the inter-picture prediction unit 120 performs motion prediction using the reconstructed image stored in the input image 110 and the reconstructed picture buffer 190 to generate a prediction signal.
  • the intra prediction unit 125 performs spatial prediction using the pixel values of neighboring neighboring blocks spatially adjacent to the current block to be encoded, thereby generating a prediction signal.
  • the subtractor 130 generates a residual signal using the input image and the prediction signal generated through the inter-picture predicting unit 120 or the intra-picture predicting unit 125.
  • the conversion unit 140 and the quantization unit 150 convert and quantize the residual signal generated through the subtraction unit 130 to generate a quantized coefficient.
  • the entropy encoding unit 160 performs entropy encoding on the encoding information such as syntax elements and quantized coefficients defined in the video compression standard, and outputs the bitstream.
  • the inverse transform unit 145 and the inverse quantization unit 155 receive the quantized coefficients, perform inverse quantization and inverse transformation in order, and generate a reconstructed residual signal.
  • the adder 135 generates a reconstructed signal using the predictive signal generated through the inter-picture predicting unit 120 or the intra-picture predictor 125 and the reconstructed residual signal.
  • the reconstructed signal is transferred to the in-loop filter unit 180, and one or more in-line filters such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) And is stored in the picture buffer 190.
  • in-line filters such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF)
  • the reconstructed picture stored in the reconstructed picture buffer 190 may be used as a reference picture in the inter-picture predictor 120.
  • FIG. 2 shows a block diagram illustrating the configuration of a video decoding method and apparatus according to an embodiment of the present invention.
  • the video decoding apparatus and method includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra prediction unit 240, an inter prediction unit 250, 260, a bidirectional filter unit 270, an in-loop filter unit 280, and a restored picture buffer 290.
  • the entropy decoding unit 210 decodes the input bitstream 200 and outputs decoded information such as syntax elements and quantized coefficients.
  • the inverse quantization unit 220 and the inverse transformation unit 230 receive the quantization coefficient, perform inverse quantization and inverse transformation in order, and output a residual signal.
  • the intra prediction unit 240 generates a prediction signal by performing spatial prediction using the pixel values of the neighboring decoded neighboring blocks adjacent to the current block to be decoded.
  • the inter-picture prediction unit 250 performs motion compensation using a motion vector extracted from the bit stream and a reconstructed picture stored in the reconstruction picture buffer 280 to generate a prediction signal.
  • the adder 260 generates a reconstruction signal using the prediction signal generated through the intra-picture prediction unit 240 or the inter-picture prediction unit 250 and the reconstructed residual signal.
  • the bidirectional filter unit 270 performs a bidirectional filter on the restored signal generated through the adder 260 to generate a signal to which the filter is applied.
  • the restored signal is transferred to the in-loop filter unit 270 and one or more in-loop filters such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) And is stored in the restored picture buffer 280.
  • in-loop filters such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF)
  • the reconstructed picture stored in the reconstructed picture buffer 280 may be used as a reference picture in the inter-picture predictor 250.
  • FIG. 3 illustrates a technique of using various transforms in a transform unit of an encoder according to an embodiment of the present invention.
  • the transformer 310 of the encoder may include at least one of the first transform unit 320 and the second transform unit 330.
  • the first conversion unit may perform the conversion and the result may be used in the second conversion unit. Alternatively, the conversion can be selectively performed only in either the first conversion unit or the second conversion unit.
  • the horizontal direction conversion and the vertical direction conversion can be performed separately, and the conversion types can be determined for the horizontal direction and the vertical direction, respectively.
  • the conversion type may be determined as any one of a plurality of conversion types that are predefined in the encoder.
  • one of the plurality of conversion types can be selectively used for the horizontal direction or the vertical direction.
  • the plurality of conversion types may be DCT-II, DCT-IV, DCT-V, DCT-VIII, DCT8, DST-I, DST- VII (DST7), or ID (IDentity). Any one of the above-described conversion types may be defined as a default conversion type.
  • the default conversion type may be DCT2, but is not limited thereto.
  • the number of conversion types available in the first conversion unit 320 may be one, two, three, four, five, or more.
  • the number may be a fixed number pre-assigned to the encoder.
  • the encoder may determine the optimal number and may encode information specifying the number of transform types.
  • the information may be signaled at a level of a video sequence, picture, slice, tile, or a predetermined scrap area (e.g., a coding block, a transform block).
  • the number may be variably determined based on the encoding parameter.
  • the encoding parameters include at least one of a size of a block (length of a width and a height), a type, a division type, a division depth, a prediction mode, a type of an inter picture prediction mode, Color difference component), and the like.
  • a block may mean a current block or a neighboring block adjacent to the current block.
  • the current block may refer to a coding block, a prediction block, or a transform block.
  • the number of available conversion types i.e., candidate conversion types
  • the size of the current block is smaller than n, Three, or more.
  • n may be 16 or 32. If the number of candidate conversion types is one, the default conversion mode described above can be used for the candidate conversion type.
  • the ID of the conversion type means that an identity matrix is used as a conversion kernel, and the conversion using the unit matrix can be interpreted to mean that conversion is not performed. Therefore, according to an embodiment of the present invention, when the first conversion unit 320 performs a conversion in a horizontal direction or a vertical direction as one conversion type among a plurality of conversion types, an ID is selected in a horizontal direction or a vertical direction Is omitted. Through this, a conversion skip can be selectively applied to either the horizontal direction or the vertical direction.
  • the horizontal direction conversion is omitted, and when the conversion type ID is selected in the vertical direction, the vertical direction conversion is omitted.
  • the conversion type ID is selected in both the horizontal direction conversion and the vertical direction conversion, it means that both the horizontal direction conversion and the vertical direction conversion are omitted.
  • the bit stream may not include a transform skip flag indicating that the conversion step is not performed.
  • the plurality of conversion types described above may not include the ID.
  • additional information for conversion skipping can be encoded.
  • the information may indicate a flag that specifies whether conversion is performed or skipped.
  • the flag can be encoded in units of one block regardless of the vertical / horizontal directions. Alternatively, the flag can be encoded for each of the vertical direction and the horizontal direction.
  • the encoding may be performed only when the size of the current block is smaller than or equal to a predetermined first threshold value.
  • the first threshold value may indicate a maximum size at which the conversion skip is allowed.
  • the encoder determines the optimal maximum size at which the conversion skip is allowed, and can code and signalize the optimal maximum size.
  • the size of the current block may be expressed by a maximum value or a minimum value of the width and height of the current block.
  • the maximum size may be 4, 8, or 16, 32, 64.
  • Whether or not to use various conversion types in the first conversion unit can be included in the bit stream in the form of a flag.
  • the flag can specify whether to select one of a plurality of conversion types or to use a default conversion type that is predefined in the encoder. For example, if the flag is a first value, the conversion type of the current block is derived from a plurality of conversion types; otherwise, the conversion type of the current block may be derived to the default conversion type.
  • the flag may be selectively encoded based on at least one of a block size, a type, a division type, a prediction mode, a type of an inter picture prediction mode, a value of an intra prediction mode, or a component.
  • the flag can be encoded only when the size of the block is smaller than or equal to m.
  • the size of the block may be defined as the maximum value or the minimum value of the width (W) and height (H) of the block.
  • the value of m may be 8, 16, or 32.
  • the size of the block may be defined as the sum (W + H), the width (W * H), and the like.
  • the flag can be encoded only when the shape of the block is square. That is, if the ratio of the width to the height of the block is not 1, the flag may not be encoded. Conversely, the flag may be encoded only when the shape of the block is rectangular. Alternatively, the flag may be encoded only when the width-to-height ratio (W / H or H / W) of the block is greater than or equal to a predetermined second threshold value, even if the block shape is rectangular. The encoder can determine the ratio of the optimal width to the height and set it to the second threshold value.
  • the flag may be encoded for the lower block only if the division type of the upper block is not the first division type.
  • the partition type comprises at least one of a quadtree (QT), a binary tree (BT) or a ternary tree (TT), wherein the first partition type is any one of the partition types .
  • the flag can be selectively encoded according to the position of the lower block.
  • the upper block when the upper block is divided into BT, the upper block may be composed of two lower blocks (BLK0, BLK1).
  • the flag may be coded only for the left (or upper) sub-block, and not for the right (or lower) sub-block.
  • the flag may not be coded for the left (or upper) sub-block, but may be encoded for only the right (or lower) sub-block.
  • the upper block when the upper block is divided into TTs, the upper block may be composed of three lower blocks (BLK0, BLK1, BLK2).
  • the flag is not encoded for the central lower block BLK1 but can be encoded only for the remaining lower blocks BLK0 and BLK2.
  • the flag can be encoded only for the remaining lower blocks (BLK0, BLK1) without being encoded for the right lower block (BLK2).
  • the flag can be encoded only when the prediction mode of the block is the inter-picture prediction mode.
  • the prediction mode of the block is the inter picture prediction mode
  • it can be encoded only when the inter picture prediction mode is the first mode.
  • the first mode may mean any one of inter-picture prediction modes predefined in the encoder such as merge mode, AMVP mode, and affine mode.
  • the flag may be encoded only when the prediction mode of the block is the intra prediction mode.
  • the prediction mode of the block is the in-picture prediction mode, it can be encoded considering whether the value (or angle) of the intra-picture prediction mode falls within a predetermined range.
  • the flag can be encoded only when the value of the intra-picture prediction mode falls within the range of mode 2 to mode 66.
  • the flag can be encoded only when the component of the block is a luminance component.
  • the conversion type of the chrominance component may be derived based on the conversion type of the luminance component, or may be derived to the default conversion type.
  • the flags can be encoded based on at least two combinations of the above-described embodiments. It goes without saying that the flag may be encoded regardless of at least one of the above-described embodiments.
  • the conversion type of the current block may be set to the default conversion type.
  • any one of the plurality of conversion types can be set as the conversion type of the current block.
  • a method for determining a conversion type of a current block based on a plurality of conversion types will be described.
  • the encoder can determine the optimum conversion type and can include information on the determined conversion type in the bitstream (Embodiment 1).
  • the encoder can encode information on the conversion type (hereinafter referred to as conversion type index) based on the pre-determined table.
  • conversion type index information on the conversion type (hereinafter referred to as conversion type index) based on the pre-determined table. Tables - The promised tables are shown in Table 1 below.
  • the encoder can encode the value of the transformation type index to 0 or 3.
  • the encoder can encode the value of the conversion type index to 1 or 2.
  • trTypeHor means conversion in the horizontal direction
  • trTypeVer means conversion in the vertical direction
  • 1 trTypeHor (or trTypeVer) means any one of the plurality of conversion types described above
  • trTypeHor (or trTypeVer) having a value of 2 can mean another one of the plurality of conversion types described above.
  • Table 1 shows, but is not limited to, (0,0), (1,1), (1,2), (2,1) and (2,2) as examples of combinations of trTypeHor and trTypeVer.
  • a combination of (0,1), (1,0), etc. may be added and at least one of the combinations in Table 1 may be omitted.
  • the number of combinations may be 2, 3, 4, 5, 6, 7 or more.
  • the encoder can determine the conversion type of the current block based on at least one of the size, position, shape, or prediction mode of the block (second embodiment).
  • the transformation type may be determined based on a length comparison between the width and height of the current block.
  • the short-side conversion type of width and height may be determined as the first conversion type
  • the long-side conversion type may be determined as the second conversion type.
  • the first conversion type is any one of a plurality of conversion types
  • the second conversion type is another one of the plurality of conversion types.
  • the first conversion type may be determined as DCT (e.g., DCT2, DCT4, or DCT8)
  • the second conversion type may be determined as DST (e.g., DST4, DST7), and so on.
  • the first conversion type may be determined as DST
  • the second conversion type may be determined as DCT.
  • the width and / or height is greater than or equal to a predetermined third threshold value
  • the conversion type may be determined as the default conversion type.
  • the third threshold value may be 16, 32, or 64.
  • the conversion type can be determined based on the position of the current block.
  • the current block corresponds to a sub-block.
  • the upper block may be divided into a plurality of lower blocks.
  • the partitioning may be performed based on at least one of QT, BT, TT or asymmetry binary tree (ABT).
  • ABT is a technique of dividing one block into two asymmetric sub-blocks SB0 and SB1. That is, the ratio of the widths or heights of SB0 and SB1 is (1: r) or (r: 1), and the r value may be an integer of 2, 3, 4, or more.
  • the encoder determines the optimal ratio, encodes it, and signals it to the decoder.
  • the conversion type can be determined in consideration of the position of the lower block in the upper block.
  • the conversion type of the upper left lower block BLK0 may be determined as the first conversion type
  • the conversion type of the lower right lower block BLK3 may be determined as the second conversion type.
  • the conversion type of the upper left / lower right lower sub-block may be the same for the horizontal / vertical direction.
  • the conversion type of the remaining lower blocks BLK1 and BLK2 may be determined to be the first conversion type and / or the second conversion type.
  • the conversion type of the remaining sub-blocks may be the same for the horizontal / vertical direction.
  • the vertical conversion type may be determined as the first conversion type
  • the horizontal conversion type may be determined as the second conversion type.
  • the lower left lower subblock BLK2 may be determined in the same manner as BLK1.
  • the horizontal conversion type can be determined as the first conversion type
  • the vertical conversion type can be determined as the second conversion type.
  • the conversion type for at least one of BLK1, BLK2, or BLK3 described above may be determined as a default conversion type.
  • the conversion type of the left (or upper) sub-block is determined as the first conversion type and the conversion type of the right (or lower) sub-block is determined as the second conversion type .
  • the conversion type of the left (or upper) sub-block may be the same for the horizontal / vertical direction, or may be different from each other.
  • the horizontal conversion type may be the first conversion type
  • the vertical conversion type may be the second conversion type.
  • the vertical conversion type may be the first conversion type
  • the horizontal conversion type may be the second conversion type.
  • the conversion type of the right (or lower) sub-block may be limited to be the same for the horizontal / vertical directions. Alternatively, the conversion type of the right (or lower) sub-block may be determined differently for the horizontal / vertical direction.
  • the conversion type of the left (or upper) subblock BLK0 is determined as the first conversion type
  • the conversion type of the right (or lower) subblock BLK2 is determined as the Can be determined as a conversion type.
  • the conversion type of the left (or upper) sub-block may be the same for the horizontal / vertical direction, or may be different from each other.
  • the horizontal conversion type may be the first conversion type
  • the vertical conversion type may be the second conversion type.
  • the vertical conversion type may be the first conversion type
  • the horizontal conversion type may be the second conversion type.
  • the conversion type of the right (or lower) sub-block may be limited to be the same for the horizontal / vertical directions. Alternatively, the conversion type of the right (or lower) sub-block may be determined differently for the horizontal / vertical direction.
  • the conversion type of the central sub-block BLK1 may be determined as the first conversion type and / or the second conversion type.
  • the vertical conversion type may be different from the horizontal conversion type.
  • the conversion type for BLK1 may be determined to be a default conversion type that is predefined in the encoder.
  • the conversion type may be determined based on whether the prediction mode of the current block is an inter-picture prediction. For example, a first conversion type or a second conversion type is used when the prediction mode of the current block is an inter-picture prediction, and a default conversion type can be used if it is not. Alternatively, the first conversion type is used when the prediction mode of the current block is inter-picture prediction, and the second conversion type or the default conversion type may be used if not.
  • the above-described embodiments may be applied independently, and the encoder may determine the conversion type based on the combination of the first and second embodiments.
  • the conversion type determined based on the above-described first embodiment may be replaced by the conversion type determined based on the second embodiment.
  • the conversion type determined based on the above-described second embodiment may be replaced by the conversion type determined based on the first embodiment.
  • the first conversion unit may perform conversion based on the determined conversion type.
  • the second conversion unit 330 further performs a conversion on the signal performed by the first conversion unit 320.
  • the performance of the additional conversion may be omitted.
  • the horizontal direction conversion and the vertical direction conversion may be performed in an integrated manner, and the method of the conversion may be determined by the size of the block and the prediction mode of the block.
  • Information on the transform performed by the second transform unit 330 may be included in the bit stream in the form of an index.
  • FIG. 4 illustrates a technique of using various inversions in an inverse transform unit of a decoder according to an embodiment of the present invention.
  • the inverse transformer 410 of the decoder may include at least one of a first inverse transformer 420 and a second inverse transformer 430.
  • the inverse transform is performed in the second inverse transform unit and the result is used in the first inverse transform unit. However, as shown in FIG. 3, the inverse transform may be selectively performed only in either the first inverse transform unit or the second inverse transform unit.
  • the inverse transform type can be determined for the horizontal direction and the vertical direction.
  • the inverse transform type may be determined as any one of a plurality of inverse transform types that are predefined in the decoder.
  • the plurality of inverse transform types include DCT-II, DCT-IV, DCT-V, DCT-VIII, DCT- VII (DST7), or ID (IDentity). Any of the above-described inverse transform types may be defined as a default inverse-transform type.
  • the default inverse transformation type may be DCT2, but is not limited thereto.
  • the number of inverse transform types available in the first inverse transform unit is as shown in FIG. 3, and a detailed description thereof will be omitted.
  • the conversion type ID When the conversion type ID is selected in the horizontal direction inverse conversion, it means that the horizontal direction inversion is omitted, and when the inverse conversion type ID is selected in the vertical direction, the vertical direction inversion is omitted.
  • a conversion skip can be selectively applied to either the horizontal direction or the vertical direction.
  • both the horizontal inverse and vertical inverse transforms select a conversion type ID, then both horizontal inverse and vertical inverse transform are omitted.
  • the plurality of inverse conversion types described above may not include the ID.
  • the information may indicate a flag that specifies whether the inverse conversion is performed or skipped.
  • the flag can be decoded in units of one block regardless of the vertical / horizontal direction.
  • the flag can be decoded for each of the vertical direction and the horizontal direction.
  • the decoding may be performed only when the size of the current block is smaller than or equal to a predetermined first threshold value.
  • the first threshold value may indicate a maximum size at which the conversion skip is allowed.
  • the encoder can determine the optimal maximum size at which the conversion skip is allowed, encode it, and signal it to the decoder.
  • the size of the current block may be expressed by a maximum value or a minimum value of the width and height of the current block.
  • the maximum size may be 4, 8, 16, 32, or 64.
  • Whether or not to use various conversion types in the first inverse transform unit can be determined using flag information included in the bitstream.
  • the flag information is described in detail with reference to FIG. 3, and a detailed description thereof will be omitted.
  • the conversion type of the current block may be set to the default conversion type.
  • one of the plurality of conversion types may be determined as the conversion type of the current block.
  • a method of determining a conversion type of a current block based on a plurality of conversion types is as shown in FIG. 3, and a detailed description thereof will be omitted.
  • the first inverse transform unit may perform an inverse transform on the decoded residual coefficient based on the determined inverse transform type.
  • the matrix for the inverse transform may be predefined in the encoder / decoder for each inverse transformation type.
  • the matrix may be defined as a size of 4x4, 8x8, 16x16, 32x32 or 64x64.
  • the matrix may be defined by a predetermined number of inverse transform types. For example, p1 N1xN1 matrices may be defined for the first inverse transformation type, p2 N2xN2 matrices may be defined for the second inverse transformation type, and p3 N3xN3 matrices may be defined for the default inverse transformation type, respectively.
  • p1 to p3 may be 1, 2, 3, or 4.
  • p1 to p3 may be the same value, and at least one of p1 to p3 may be different from the other.
  • any one of p1 to p3 may be 0.
  • the matrix for the second inverse transformation type may be derived based on the matrix for the first inverse transformation type.
  • the derivation can be performed by rotating the matrix for the first inverse transformation type to a predetermined angle (e.g., 90 degrees, 180 degrees, -90 degrees, -180 degrees).
  • the derivation can be performed by changing the sign of at least one of the components constituting the matrix.
  • the derivation may be performed using both the rotation and the sign change.
  • N1 to N3 may be any of 4, 8, 16, 32, and 64, respectively.
  • N1 to N3 may be the same value, and at least one of N1 to N3 may be different from the other.
  • the decoder may define a 64x64 matrix from which at least one of 4x4, 8x8, 16x16, or 32x32 matrices may be derived.
  • the second inverse transform unit 430 may perform a horizontal inverse transform and a vertical inverse transform in an integrated form.
  • the second inverse transform method may include a block size, a prediction mode of a block, a second inverse transformation index index information.
  • a block or a current block may mean a coding block (CU).
  • the coding block may mean a coding block that is not further divided by a predetermined division type (QT, BT, TT, ABT, etc.).
  • the block or the current block may mean a sub-block further divided in the coding block. That is, the conversion may be performed in units of coding blocks or in units of subblocks. The conversion may be performed for only some of the sub-blocks of the coding block, and the conversion may be omitted for the remaining sub-blocks.
  • the division may be performed based on a predetermined division type (QT, BT, TT, ABT, etc.).
  • the partitioning may be limited to be performed using only QT and / or BT.
  • the number of additional divisions may be limited to one.
  • the division into subblocks may be performed based on predetermined coding parameters.
  • the encoding parameter may mean a flag (sbt_flag) indicating whether the coding block is further divided based on a predetermined division type.
  • the encoding parameter may mean a flag (sbt_flag) indicating whether the conversion is performed for the entire coding block or only for a subblock among a plurality of subblocks in the coding block.
  • the flag sbt_flag may be signaled at a level of at least one of a video sequence, a picture, a slice, or a block.
  • the signaling may be performed based on at least one of the size, shape, or prediction mode of the block.
  • the flag sbt_flag may be signaled only when the size of the block is smaller than or equal to a predetermined fourth threshold value.
  • the size of the block can be expressed by the maximum value or the minimum value of the width and height of the current block.
  • the fourth threshold value may mean a maximum block size in which further division into subblocks is allowed.
  • the flag sbt_flag can be signaled only when the size of the block is equal to or greater than a predetermined fourth threshold value.
  • the size of the block can be expressed by the maximum value or the minimum value of the width and height of the current block.
  • the fourth threshold value may mean a minimum block size allowing further division into sub-blocks.
  • the fourth threshold value may be a fixed value predefined in the encoder / decoder, or may be encoded in the encoder and signaled to the decoder.
  • the flag sbt_flag may be signaled only when the block type is square.
  • the flag sbt_flag may be signaled only when the shape of the block is rectangular.
  • the flag (sbt_flag) can be signaled only when the prediction mode of the block is inter-picture prediction.
  • the flag (sbt_flag) can be signaled only when the prediction mode of the block is intra-picture prediction. Signaling of the flag may be performed regardless of at least one of the size, shape, or prediction mode of the block described above.
  • the information for specifying the subblocks may be signaled.
  • Some subblocks may refer to subblocks containing at least one non-zero transform coefficient. Therefore, the information may be a flag (coded_block_flag) indicating whether or not it includes at least one non-zero conversion coefficient.
  • the flag (coded_block_flag) may be signaled in units of subblocks, respectively.
  • the information may be position information indicating a position of a sub-block having at least one non-zero transform coefficient. For example, when a coding block is divided into QTs, indexes of 0 to 3 can be assigned to subblocks, respectively. When the position information of the index 0 is signaled, the upper left sub-block may be determined as a block having at least one non-zero conversion coefficient.
  • the information may be position information indicating a position of a sub-block having no at least one non-zero transform coefficient. For example, when a coding block is divided into BT, indexes of 0 to 1 can be assigned to subblocks, respectively. If the position information of index 1 is signaled, the right (or lower) subblock is determined as a block that does not have at least one non-zero transform coefficient, and conversely the left (or upper) subblock is determined as at least one nonzero It can be determined as a block having a transform coefficient.
  • the inverse conversion type can be determined only for the sub-block specified by the flag (coded_block_flag) or the position information. That is, information for determining the inverse transform type only for the specified sub-block may be decoded or the inverse process of the inverse transform type described above may be performed. For the sub-blocks not specified by the position information, the value of the transform coefficient may be set to zero.
  • FIGS. 3 and 4 may be applied to the embodiments of FIGS. 5 to 13 in the same or similar manner, and a description thereof will not be repeated.
  • FIG. 5 illustrates a procedure for extracting information for a first inverse transform from a bitstream according to an embodiment of the present invention.
  • a flag indicating whether inverse transform using various inverse transformation types is to be performed is extracted (510) from the bitstream.
  • the information extraction step for various inverse transforms ends.
  • the inverse transform can be performed using a predetermined transform type.
  • the extracted flag indicates inverse transformation using various inverse transformation types, additional information extraction for various inverse transforms is performed.
  • an index value for various inverse transform type determination is extracted.
  • the index value for various inverse transform type determination is extracted 520. Otherwise, various inverse transform types The index value for the decision is not extracted.
  • FIG. 6 illustrates a first inverse transformation process according to various inverse transformation types according to an embodiment of the present invention.
  • a flag indicating whether inverse transform using various inverse transformation types is to be performed is extracted (610) from the bitstream.
  • inverse conversion 630 is performed using a predetermined conversion type.
  • an index value for various inverse transform type determination is extracted (620).
  • the inverse horizontal transform is performed in the inverse transform step 630, and only the vertical inverse transform is performed.
  • the inverse transformation in the vertical direction is omitted in the inverse transformation step 630 and only the inverse inverse transformation is performed.
  • the inverse transform step 730 is omitted.
  • FIG. 7 illustrates a second inverse transformation process according to an embodiment of the present invention.
  • the number of non-zero transform coefficients among the transform coefficients obtained through inverse quantization is counted (710) to determine whether to extract the second inverse transform index.
  • the second inverse transformation index extraction step 720 is omitted.
  • the second inverse transform step 730 is omitted.
  • the second inverse transformation index is extracted (720).
  • inverse transform is performed according to the extracted second inverse transform index.
  • the second inverse transformation method may be determined according to the block size and the prediction mode.
  • FIG. 8 illustrates a method of signaling the use of various inversion techniques according to an embodiment of the present invention by syntax.
  • a block using intra prediction and a block using inter prediction may or may not use a conversion technique that applies various types of conversion types independently of each other. That is, according to an embodiment of the present invention, a conversion technique for applying various types of conversion types is used only in a block using intra-frame prediction, and a conversion technique for applying a fixed conversion type in a block using inter- Can be used.
  • Various inverse transform type use / nonuse of the inverse transform type 820 of a block using intra prediction can be included in a SPS (Sequence Parameter Set) 810 among Network Abstract Layer (NAL) existing in the bitstream.
  • SPS Sequence Parameter Set
  • NAL Network Abstract Layer
  • the various inverse transform type use / nonuse 830 of the block using the inter-picture prediction can be included in the SPS (Sequence Parameter Set) 810 among Network Abstract Layer (NAL) existing in the bitstream.
  • SPS Sequence Parameter Set
  • NAL Network Abstract Layer
  • the use of the second inverse transform 840 may be included in a SPS (Sequence Parameter Set) 810 among Network Abstract Layer (NAL) existing in the bitstream existing in the compressed bitstream.
  • SPS Sequence Parameter Set
  • NAL Network Abstract Layer
  • FIG. 9 illustrates a method for signaling information for performing various transformation techniques in a method of using various inverse transformation techniques according to an embodiment of the present invention by coding unit syntax among syntaxes in a bitstream.
  • a flag 920 indicating whether or not various inversion techniques are used may be included in a coding unit syntax 910 of a Network Abstract Layer (NAL) existing in the compressed bitstream.
  • NAL Network Abstract Layer
  • the second inverse index 940 representing the information about the second inverse transform can be included in the coding unit syntax 1010 of Network Abstract Layer (NAL) existing in the compressed bitstream.
  • NAL Network Abstract Layer
  • Figure 10 illustrates another example of an inverse transform process in a method and apparatus using various inverse transform techniques in accordance with an embodiment of the present invention.
  • Whether or not the various inversion techniques are used may not be included in the bitstream in the form of flags, but may be included in the bitstream only with the inverse transformation type index, and the first inverse conversion process may be determined through the corresponding index.
  • an inverse transform type is determined from an inverse transform type index extraction (1010) from a bit stream.
  • the second inverse transformation index extraction process 1020 and the second inverse transformation process 1030 may be omitted.
  • the first inverse transformation process 1040 may be omitted.
  • a second inverse transformation index is extracted 1020 and a second inverse transformation is performed 1030 according to the extracted index.
  • the horizontal direction inversion type means ID
  • the horizontal direction inverse transformation is omitted in the first inverse transformation step 1040, and only the vertical inverse transformation is performed.
  • the vertical inverse conversion type means ID
  • the vertical inverse conversion is omitted and only the horizontal inverse conversion is performed.
  • the first inverse transformation step 1040 performs both horizontal and vertical inverse transforms.
  • FIG. 11 illustrates a process of performing weighted quantization according to different frequencies when using various inverse transform techniques according to an embodiment of the present invention.
  • frequency dependent weighted inverse quantization may be performed according to the inverse transform type determined by the extracted inverse transform type index.
  • Frequency weighted quantization parameter determination step 1110 and the weighted inverse quantization step 1120 may use weighted quantization parameters included in the bitstream to perform weighted inverse frequency weighting according to the inverse transform type, It is possible to perform inverse quantization.
  • a quantization parameter value is selected according to the inverse transformation type among predefined quantization parameters in case of performing frequency-dependent weighted inverse quantization according to the inverse transformation type. And perform weighted inverse quantization.
  • FIG. 12 illustrates a process of performing weighted quantization according to different frequencies when using the second inverse transformation technique according to an embodiment of the present invention.
  • frequency dependent weighted inverse quantization may be performed according to the extracted second inverse transform index.
  • Weighted inverse quantization can be performed using the quantization parameters included in the bitstream in the weighted quantization parameter determination step 1210 and the weighted inverse quantization step 1220 when frequency dependent weighted inverse quantization is performed according to the second inverse transformation index. have.
  • a weighted quantization parameter determination step 1210 and a weighted inverse quantization step 1220 perform quantization parameters according to a second inverse transformation index among predefined quantization parameters And perform weighted inverse quantization.
  • FIG. 13 illustrates a method of signaling information for weighted quantization by syntax in performing various inversions or second inversions according to an embodiment of the present invention.
  • Information for weighted quantization in the case of performing various inverse transform or second inverse transform may be included in a SPS (Sequence Parameter Set) 1310 among Network Abstract Layer (NAL) existing in the compressed bitstream.
  • SPS Sequence Parameter Set
  • NAL Network Abstract Layer
  • a flag 1320 indicating whether or not weighted quantization is used in performing various inverse transform or second inverse transform may be included in a SPS (Sequence Parameter Set) 1310 among Network Abstract Layer (NAL) existing in the bitstream.
  • SPS Sequence Parameter Set
  • NAL Network Abstract Layer
  • a flag 1330 indicating transmission of a sequence-wise weighted quantization parameter is set as a Sequence Parameter Set (SPS) among Network Abstract Layer (NAL) ) 1310. < / RTI >
  • SPS Sequence Parameter Set
  • the quantization parameters may be included in the bitstream, and the corresponding parameters are extracted (step 1340).
  • Information for weighted quantization in the case of performing various inverse transform or second inverse transform may be included in a PPS (Picture Parameter Set) 1350 among Network Abstract Layer (NAL) existing in the compressed bitstream.
  • PPS Physical Parameter Set
  • NAL Network Abstract Layer
  • the flag 1360 indicating the transmission of the picture unit weighted quantization parameter may be included in a PPS (Picture Parameter Set) 1350 among Network Abstract Layer (NAL) existing in the bitstream.
  • PPS Picture Parameter Set
  • NAL Network Abstract Layer
  • the quantization parameters may be included in the bitstream and the corresponding parameters are extracted (step 1370).
  • the present invention can be used to encode / decode video signals using various conversion techniques.

Abstract

본 발명은 영상 복호화 방법 및 장치에 대하여, 비디오 코딩 기술 중 변환/역변환 과정에서 다양한 형태의 변환/역변환을 수행하여 부호화/복호화 효율을 향상시키는 방법 및 장치에 관한 것이다.

Description

다양한 변환 기술을 사용하는 비디오 코딩 방법 및 장치
본 발명은 영상 복호화 장치 및 그 방법에 관한 것으로서, 보다 상세하게는 비디오 압축 기술에서 다양한 변환 기술을 사용하는 방법 및 장치에 관한 것이다.
최근 고해상도, 고화질 비디오에 대한 요구가 증가함에 따라 차세대 비디오 서비스를 위한 고효율 비디오 압축 기술에 대한 필요성이 대두되었다. 이러한 필요성에 기반하여 비디오 압축 표준을 제정하기 위한 연구 및 탐색을 진행하고 있다.
비디오 압축 기술에서 변환 기술은 양자화 및 엔트로피 부호화를 효과적으로 수행하기 위해 공간 영역 (Spatial domain)의 신호를 주파수 영역 (Frequency domain)의 신호로 도메인을 변경하는 기술이다.
본 발명은 비디오 코딩 방법 및 장치에 있어, 부호화기 또는 복호화기의 변환 또는 역 변환 단계에서 다양한 변환 방법을 사용함으로써 기존의 비디오 압축 기술 대비 부호화 효율을 향상시키는 방법 및 장치를 제공하는 것을 그 목적으로 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기 과제를 해결하기 위하여 본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 비트스트림으로부터 제1 역변환을 위한 변환 타입 정보를 추출하는 단계, 상기 추출한 정보를 이용해 다수의 역변환 타입에서 선택적으로 역변환 타입을 결정하는 단계, 상기 결정한 역변환 타입을 이용해 수평방향 또는 수직방향 역변환을 수행하는 단계를 포함한다.
상기 과제를 해결하기 위하여 본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 비트스트림으로부터 제1 역변환을 위한 역변환 타입 정보를 추출하여 수평방향 역변환 또는 수직방향 역변환의 변환 타입을 결정하는 단계, 상기 결정된 역변환 타입에 따라 수평방향 역변환 또는 수직방향 역변환을 생략하는 단계를 포함한다.
상기 과제를 해결하기 위하여 본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 제1 역변환의 변환 타입에 따라 제2 역변환을 생략하는 단계를 포함한다.
상기 과제를 해결하기 위하여 본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 변환 계수의 형태에 따라 역변환 여부를 결정하는 단계를 포함한다.
상기 과제를 해결하기 위하여 본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 제1 역변환 변환 타입에 따라 주파수별 가중 양자화 파라미터를 결정하여 가중 역양자화를 수행하는 단계를 포함한다.
상기 과제를 해결하기 위하여 본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 제2 역변환 인덱스에 따라 주파수별 가중 양자화 파라미터를 결정하여 가중 역양자화를 수행하는 단계를 포함한다.
본 발명은 부호화 효율 향상을 위하여 다양한 변환 기술을 사용하는 방법 및 장치를 제공하는 것을 그 목적으로 한다.
본 발명의 일 실시 예에 따르면, 제1 변환 또는 제1 역변환 단계에서 다양한 변환 타입을 선택적으로 사용함으로써 부호화 효율을 향상 시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 비디오 부호화 방법 및 장치의 구성을 나타내는 블록도를 도시한다.
도 2는 본 발명의 일 실시예에 따른 비디오 복호화 방법 및 장치의 구성을 나타내는 블록도를 도시한다.
도 3은 본 발명의 일 실시예에 따른 부호화기의 변환부에서 다양한 변환을 사용하는 기술을 도시한다.
도 4는 본 발명의 일 실시예에 따른 복호화기의 역변환부에서 다양한 역변환을 사용하는 기술을 도시한다.
도 5는 본 발명의 일 실시예에 따른 비트스트림으로부터 제1 역변환을 위한 정보를 추출하는 순서를 도시한다.
도 6은 본 발명의 일 실시예에 따른 다양한 역변환 타입에 따른 제1 역변환 수행 과정을 도시한다.
도 7은 본 발명의 일 실시예에 따른 제2 역변환 수행 과정을 도시한다.
도 8은 본 발명의 일 실시예에 따른 다양한 역변환 기술의 사용 여부를 신택스 (syntax)에 의하여 시그널링 하는 방법을 도시한다.
도 9는 본 발명의 일 실시예에 따른 다양한 역변환 기술을 사용하는 방법 및 장치에서 다양한 역변환 기술의 수행을 위한 정보를 비트스트림 내의 신택스 (syntax) 중 코딩 유닛 신택스에 의해 시그널링하는 방법을 도시한다.
도 10은 본 발명의 일 실시예에 따른 다양한 역변환 기술을 사용하는 방법 및 장치에서 역변환 과정의 또 다른 예를 도시한다.
도 11은 본 발명의 일 실시예에 따른 다양한 역변환 기술을 사용하는 경우, 서로 다른 주파수별 가중 양자화를 수행하는 과정을 도시한다.
도 12는 본 발명의 일 실시예에 따른 제2 역변환 기술을 사용하는 경우, 서로 다른 주파수별 가중 양자화를 수행하는 과정을 도시한다.
도 13은 본 발명의 일 실시예에 따른 다양한 역변환 또는 제2 역변환을 수행하는 경우, 가중 양자화를 위한 정보를 신택스(syntax)에 의하여 시그널링 하는 방법을 도시한다.
본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 비트스트림으로부터 제1 역변환을 위한 변환 타입 정보를 추출하는 단계, 상기 추출한 정보를 이용해 다수의 역변환 타입에서 선택적으로 역변환 타입을 결정하는 단계, 상기 결정한 역변환 타입을 이용해 수평방향 또는 수직방향 역변환을 수행하는 단계를 포함한다.
본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 비트스트림으로부터 제1 역변환을 위한 역변환 타입 정보를 추출하여 수평방향 역변환 또는 수직방향 역변환의 변환 타입을 결정하는 단계, 상기 결정된 역변환 타입에 따라 수평방향 역변환 또는 수직방향 역변환을 생략하는 단계를 포함한다.
본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 제1 역변환의 변환 타입에 따라 제2 역변환을 생략하는 단계를 포함한다.
본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 변환 계수의 형태에 따라 역변환 여부를 결정하는 단계를 포함한다.
본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 제1 역변환 변환 타입에 따라 주파수별 가중 양자화 파라미터를 결정하여 가중 역양자화를 수행하는 단계를 포함한다.
본 발명의 실시예에 따른 비디오 코딩 방법 및 장치는 제2 역변환 인덱스에 따라 주파수별 가중 양자화 파라미터를 결정하여 가중 역양자화를 수행하는 단계를 포함한다.
하기는 본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우 뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.
또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본 명세서 전체에서 사용되는 정도의 용어 ~(하는) 단계 또는 ~의 단계는 ~를 위한 단계를 의미하지 않는다.
또한, 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
이하 본 명세서에 기재된 본 발명의 다양한 실시예들에서, “~부”, “~기”, “~유닛”, “~모듈”, “~블록” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하 본 발명의 일 실시예에 따라 제안하는 다양한 변환 기술을 사용하는 비디오 코딩 방법 및 장치에 대하여 도 4를 참조하여 구체적으로 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 비디오 부호화 방법 및 장치의 구성을 나타내는 블록도를 도시한다.
일 실시예에 따른 비디오 부호화 방법 및 장치는 화면 간 예측부(120), 화면 내 예측부(125), 감산부(130), 변환부(140), 양자화부(150), 엔트로피 부호화부(160), 역변환부(145), 역양자화부(155), 가산부(135), 양방향 필터부(180), 인루프 필터부(180), 복원 픽쳐 버퍼(190)를 포함할 수 있다.
화면 간 예측부(120)는 입력 영상(110)과 복원 픽쳐 버퍼(190)에 저장되어 있는 복원 영상을 이용하여 움직임 예측을 수행하여 예측 신호를 생성한다.
화면 내 예측부(125)는 부호화되는 현재 블록과 공간적으로 인접하는 기-복원된 주변 블록의 화소 값을 이용하여 공간적 예측을 수행하여 예측 신호를 생성한다.
감산부(130)는 입력 영상과 화면 간 예측부(120) 혹은 화면 내 예측부(125)를 통해 생성된 예측 신호를 이용하여 잔차 신호 (residual signal)를 생성한다.
변환부(140) 및 양자화부(150)는 감산부(130)를 통해 생성된 잔차 신호에 대하여 변환 및 양자화를 수행하여 양자화된 계수 (quantized coefficient)를 생성한다.
엔트로피 부호화부(160)는 비디오 압축 표준에 정의된 신택스 요소 (syntax elements) 및 양자화된 계수 등과 같은 부호화 정보에 대하여 엔트로피 부호화를 수행하여 비트스트림을 출력한다.
역변환부(145) 및 역양자화부(155)는 양자화 계수를 수신하여 역양자화 및 역변환을 차례대로 수행하고, 복원된 잔차 신호를 생성한다.
가산부(135)는 화면 간 예측부(120) 혹은 화면 내 예측부(125)를 통해 생성된 예측 신호와 복원된 잔차 신호를 이용하여 복원 신호를 생성한다.
상기 복원 신호는 인루프 필터부(180)로 전달되어 디블록킹 필터, SAO (Sample Adaptive Offset), ALF (Adaptive Loop Filter)와 같은 하나 혹은 그 이상의 인루프 필터를 적용하여 최종 복원 픽쳐를 생성하여 복원 픽쳐 버퍼(190)에 저장된다.
상기 복원 픽쳐 버퍼(190)에 저장된 복원 픽쳐는 화면 간 예측부(120)에서 참조 픽쳐로 사용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 비디오 복호화 방법 및 장치의 구성을 나타내는 블록도를 도시한다.
일 실시예에 따른 비디오 복호화 장치 및 방법은 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 화면 내 예측부(240), 화면 간 예측부(250), 가산부(260), 양방향 필터부(270), 인루프 필터부(280), 복원 픽쳐 버퍼(290)를 포함할 수 있다.
엔트로피 복호화부(210)는 입력된 비트스트림(200)을 복호화하여 신택스 요소 (syntax elements) 및 양자화된 계수 등과 같은 복호화 정보를 출력한다.
역양자화부(220) 및 역변환부 (230)는 양자화 계수를 수신하여 역양자화 및 역변환을 차례대로 수행하고, 잔차 신호 (residual signal)를 출력한다.
화면 내 예측부(240)는 복호화되는 현재 블록과 인접하는 기-복호화된 주변 블록의 화소 값을 이용하여 공간적 예측을 수행하여 예측 신호를 생성한다.
화면 간 예측부(250)는 비트스트림으로부터 추출된 움직임 벡터와 복원 픽쳐 버퍼(280)에 저장되어 있는 복원 영상을 이용하여 움직임 보상을 수행하여 예측 신호를 생성한다.
가산부(260)는 화면 내 예측부(240) 혹은 화면 간 예측부(250)를 통해 생성된 예측 신호와 복원된 잔차 신호를 이용하여 복원 신호를 생성한다.
양방향 필터부(270)는 가산부(260)를 통해 생성된 복원 신호에 대하여 양방향 필터를 수행하여, 필터가 적용된 신호를 생성한다.
상기 복원 신호는 인루프 필터부(270)로 전달되어 디블록킹 필터, SAO (Sample Adaptive Offset), ALF (Adaptive Loop Filter)와 같은 하나 혹은 그 이상의 인-루프 필터를 적용하여 최종 복원 픽쳐를 생성하여 복원 픽쳐 버퍼(280)에 저장된다.
상기 복원 픽쳐 버퍼(280)에 저장된 복원 픽쳐는 화면 간 예측부(250)에서 참조 픽쳐로 사용될 수 있다.
도 3은 본 발명의 일 실시예에 따른 부호화기의 변환부에서 다양한 변환을 사용하는 기술을 도시한다.
부호화기의 변환부(310)는 제1 변환부(320) 또는 제2 변환부(330) 중 적어도 하나로 구성될 수 있다. 제1 변환부에서 변환을 수행하고 그 결과를 제2 변환부에서 사용할 수 있다. 또는, 제1 변환부 또는 제2 변환부 중 어느 하나에서만 변환이 선택적으로 수행될 수 있다.
제1 변환부(320)에서는 수평방향 변환과 수직방향 변환을 분리하여 수행할 수 있으며, 수평방향과 수직방향에 대해서 변환 타입이 각각 결정될 수 있다. 상기 변환 타입은 부호화기에 기-정의된 복수의 변환 타입 중 어느 하나로 결정될 수 있다.
즉, 본 발명의 일 실시예에 따른 제1 변환부(320)에서는 다수개의 변환 타입 중 하나의 변환 타입을 수평방향 혹은 수직방향 각각에 대하여 선택적으로 사용할 수 있다. 상기 다수개의 변환 타입은 DCT-II(DCT2), DCT-IV(DCT4), DCT-V(DCT5), DCT-VIII(DCT8), DST-I(DST1), DST-IV(DST4), DST-VII(DST7), 또는 ID (IDentity) 중 적어도 하나를 포함할 수 있다. 전술한 변환 타입 중 어느 하나는 디폴트 변환 타입(default transform type)으로 정의될 수 있다. 예를 들어, 상기 디폴트 변환 타입은 DCT2일 수 있으나, 이에 한정되지 아니한다.
제1 변환부(320)에서 이용 가능한 변환 타입의 개수는, 1개, 2개, 3개, 4개, 5개 또는 그 이상일 수 있다. 상기 개수는, 부호화기에 기-약속된 고정된 개수일 수 있다. 또는, 부호화기는 최적의 개수를 결정하고, 변환 타입의 개수를 특정하는 정보를 부호화할 수도 있다. 여기서, 상기 정보는, 비디오 시퀀스, 픽쳐, 슬라이스, 타일 또는 소정의 조각 영역(예를 들어, 코딩 블록, 변환 블록)의 레벨에서 시그날링될 수 있다. 또는, 상기 개수는, 부호화 파라미터에 기초하여 가변적으로 결정될 수도 있다. 상기 부호화 파라미터는, 블록의 크기(너비와 높이의 길이), 형태, 분할 타입, 분할 뎁스, 예측 모드, 화면 간 예측 모드의 종류, 화면 내 예측 모드의 값, 성분(예를 들어, 휘도 성분, 색차 성분) 등을 포함할 수 있다. 여기서, 블록은 현재 블록 또는 현재 블록에 인접한 이웃 블록을 의미할 수 있다. 현재 블록은, 코딩 블록, 예측 블록 또는 변환 블록을 의미할 수 있다.
예를 들어, 현재 블록의 크기가 n보다 큰 경우, 이용 가능한 변환 타입(즉, 후보 변환 타입)의 개수는 1개이고, 현재 블록의 크기가 n보다 작은 경우, 후보 변환 타입의 개수는 2개, 3개 또는 그 이상일 수 있다. 여기서, n 값은 16 또는 32일 수 있다. 후보 변환 타입의 개수가 1개인 경우, 해당 후보 변환 타입으로 전술한 디폴트 변환 모드가 이용될 수 있다.
상기 변환 타입 중 ID (IDentity)는 변환의 커널로써 단위 행렬 (Identity matrix)를 사용하는 것을 의미하며, 단위 행렬을 사용하여 변환을 수행한다는 의미는 변환을 수행하지 않는다는 의미로 해석 될 수 있다. 따라서, 본 발명의 일 실시예에 따르면 제1 변환부(320)에서 다수개의 변환 타입 중 하나의 변환 타입으로 수평방향 혹은 수직방향으로 변환을 수행함에 있어, ID가 선택되는 것은 수평방향 혹은 수직방향의 변환을 생략하는 것을 의미한다. 이를 통해, 수평방향 및 수직방향 중 어느 하나에 대해서 변환 스킵을 선택적으로 적용할 수 있다.
수평방향 변환에서 변환 타입 ID가 선택되면 수평방향 변환을 생략하는 것을 의미하고, 수직방향에서 변환 타입 ID가 선택되면 수직방향 변환을 생략하는 것을 의미한다.
수평방향 변환과 수직방향 변환에서 모두 변환 타입 ID가 선택되면 수평방향 변환과 수직방향 변환을 모두 생략하는 것을 의미한다.
수평방향 변환과 수직방향 변환에서 모두 변환 타입 ID가 선택되면 변환 단계를 수행하지 않음을 의미하는 변환 스킵 플래그 (transform skip flag)를 비트스트림에 포함하지 않을 수 있다.
또는, 전술한 복수의 변환 타입은, 상기 ID를 포함하지 않을 수 있다. 이 경우, 변환 스킵을 위한 별도의 정보가 부호화될 수 있다. 여기서, 상기 정보는, 변환이 수행되는지, 스킵되는지 여부를 특정하는 플래그를 의미할 수 있다. 상기 플래그는, 수직/수평방향에 관계없이 하나의 블록 단위로 부호화될 수 있다. 또는, 상기 플래그는, 수직방향과 수평방향 각각에 대해서 부호화될 수 있다. 상기 부호화는, 현재 블록의 크기가 소정의 제1 문턱값보다 작거나 같은 경우에만 수행될 수 있다. 상기 제1 문턱값은, 변환 스킵이 허용되는 최대크기를 나타낼 수 있다. 부호화기는 변환 스킵이 허용되는 최적의 최대크기를 결정하고, 이를 부호화하여 시그날링할 수 있다. 상기 현재 블록의 크기는, 현재 블록의 너비와 높이 중 최대값 또는 최소값으로 표현될 수 있다. 상기 최대크기는, 4, 8 또는 16,32,64 일 수 있다.
제1 변환부에서 다양한 변환 타입을 사용할지 여부는 플래그 (flag) 형태로 비트스트림에 포함될 수 있다.
여기서, 상기 플래그는, 복수의 변환 타입 중 어느 하나를 선택할지, 아니면 부호화기에 기-정의된 디폴트 변환 타입을 사용할지를 특정할 수 있다. 예를 들어, 상기 플래그가 제1 값인 경우, 현재 블록의 변환 타입은 복수의 변환 타입으로부터 유도되고, 그렇지 않은 경우, 현재 블록의 변환 타입은 디폴트 변환 타입으로 유도될 수 있다.
상기 플래그는, 블록의 크기, 형태, 분할 타입, 예측 모드, 화면 간 예측 모드의 종류, 인트라 예측 모드의 값, 또는 성분 중 적어도 하나에 기초하여 선택적으로 부호화될 수 있다.
일 예로, 상기 플래그는, 블록의 크기가 m보다 작거나 같은 경우에만 부호화될 수 있다. 여기서, 블록의 크기는, 블록의 너비(W)와 높이(H) 중 최대값 또는 최소값으로 정의될 수 있다. 상기 m 값은 8 또는 16 또는 32일 수 있다. 상기 블록의 크기는, 합(W+H), 넓이(W*H) 등으로 정의될 수도 있다.
일 예로, 상기 플래그는, 블록의 형태(shape)가 정사각형인 경우에만 부호화될 수 있다. 즉, 블록의 너비와 높이의 비가 1이 아닌 경우, 상기 플래그는 부호화되지 않을 수 있다. 역으로, 상기 플래그는, 블록의 형태가 직사각형인 경우에만 부호화될 수도 있다. 또는, 상기 플래그는, 블록의 형태가 직사각형인 경우라도 블록의 너비와 높이의 비(W/H 또는 H/W)가 소정의 제2 문턱값보다 크거나 같은 경우에만 부호화될 수도 있다. 부호화기는, 최적의 너비와 높이의 비를 결정하고, 이를 상기 제2 문턱값으로 설정할 수 있다.
일 예로, 상위 블록의 분할 타입이 제1 분할 타입이 아닌 경우에만, 하위 블록에 대해서 상기 플래그가 부호화될 수 있다. 분할 타입은, 쿼드 트리(QT), 바이너리 트리(BT) 또는 터너리 트리(TT) 중 적어도 하나를 포함하고, 상기 제1 분할 타입은 전술한 분할 타입 중 어느 하나(예를 들어, TT)일 수 있다. 상위 블록이 제1 분할 타입으로 분할되는 경우라도, 하위 블록의 위치에 따라 상기 플래그가 선택적으로 부호화될 수 있다.
예를 들어, 상위 블록이 BT로 분할된 경우, 상위 블록은 2개의 하위 블록(BLK0, BLK1)으로 구성될 수 있다. 이때, 상기 플래그는, 좌측(또는 상단) 하위 블록에 대해서만 부호화되고, 우측(또는 하단) 하위 블록에 대해서는 부호화되지 않을 수 있다. 또는, 상기 플래그는, 좌측(또는 상단) 하위 블록에 대해서 부호화되지 않고, 우측(또는 하단) 하위 블록에 대해서만 부호화될 수도 있다.
예를 들어, 상위 블록이 TT로 분할된 경우, 상위 블록은 3개의 하위 블록(BLK0, BLK1, BLK2)으로 구성될 수 있다. 이때, 상기 플래그는, 중앙 하위 블록(BLK1)에 대해서는 부호화되지 않고, 나머지 하위 블록(BLK0, BLK2)에 대해서만 부호화될 수 있다. 또는, 상기 플래그는, 우측 하위 블록(BLK2)에 대해서는 부호화되지 않고, 나머지 하위 블록(BLK0, BLK1)에 대해서만 부호화될 수 있다.
일 예로, 상기 플래그는, 블록의 예측 모드가 화면 간 예측 모드인 경우에만 부호화될 수 있다. 또는, 블록의 예측 모드가 화면 간 예측 모드인 경우라도, 화면 간 예측 모드가 제1 모드인 경우에만 부호화될 수 있다. 여기서, 제1 모드는, 머지 모드, AMVP 모드, 어파인 모드 등 부호화기에 기-정의된 화면 간 예측 모드 중 어느 하나를 의미할 수 있다. 반대로, 상기 플래그는, 블록의 예측 모드가 화면 내 예측 모드인 경우에만 부호화될 수도 있다. 또는, 블록의 예측 모드가 화면 내 예측 모드인 경우라도, 화면 내 예측 모드의 값(또는 각도)이 소정의 범위에 속하는지 여부를 고려하여 부호화될 수 있다. 예를 들어, 상기 화면 내 예측 모드의 값이 모드 2 내지 모드 66의 범위에 속하는 경우에만, 상기 플래그가 부호화될 수 있다.
일 예로, 상기 플래그는, 블록의 성분이 휘도 성분인 경우에만 부호화될 수 있다. 이 경우, 색차 성분의 변환 타입은, 휘도 성분의 변환 타입에 기초하여 유도되거나, 디폴트 변환 타입으로 유도될 수 있다.
전술한 실시예는 독립적으로 적용되는 것은 아니며, 상기 플래그는 전술한 실시예 중 적어도 2개의 조합에 기초하여 부호화될 수 있다. 한편, 상기 플래그는 전술한 실시예 중 적어도 하나와 관계없이 부호화될 수도 있음은 물론이다.
제1 변환부에서 다양한 변환 타입을 사용하지 않는 경우(즉, 플래그가 제1 값인 경우), 현재 블록의 변환 타입은 디폴트 변환 타입으로 설정될 수 있다.
반면, 제1 변환부에서 다양한 변환 타입을 사용하는 경우(즉, 플래그가 제2 값인 경우), 복수의 변환 타입 중 어느 하나를 현재 블록의 변환 타입으로 설정할 수 있다. 이하, 복수의 변환 타입에 기반하여 현재 블록의 변환 타입을 결정하는 방법에 대해서 살펴 보기로 한다.
부호화기는 최적의 변환 타입을 결정하고, 결정된 변환 타입에 대한 정보를 비트스트림에 포함할 수 있다(실시예 1).
부호화기는, 기-약속된 테이블에 기초하여 상기 변환 타입에 대한 정보(이하, 변환 타입 인덱스라 함)를 부호화할 수 있다. 기-약속된 테이블은 아래 표 1과 같다.
변환 타입 인덱스 trTypeHor trTypeVer
1 0 0
0 1 1
1 2 1
2 1 2
3 2 2
trTypeHor과 trTypeVer이 동일한 경우, 부호화기는 변환 타입 인덱스의 값을 0 또는 3으로 부호화할 수 있다. 또는, trTypeHor과 trTypeVer이 서로 다른 경우, 부호화기는 변환 타입 인덱스의 값을 1 또는 2로 부호화할 수 있다.
여기서, trTypeHor은 수평방향의 변환을, trTypeVer은 수직방향의 변환을 각각 의미한다. 1인 trTypeHor(또는, trTypeVer)은 전술한 복수의 변환 타입 중 어느 하나를 의미하고, 2인 trTypeHor(또는, trTypeVer)은 전술한 복수의 변환 타입 중 다른 하나를 의미할 수 있다. 표 1은, trTypeHor과 trTypeVer의 조합의 예로, (0,0), (1,1), (1,2), (2,1), (2,2)를 언급하나, 이에 한정되지 아니한다. 예를 들어, (0,1), (1,0) 등의 조합이 추가될 수 있고, 표 1의 조합 중 적어도 하나가 제외될 수도 있다. 상기 조합의 개수는, 2개, 3개, 4개, 5개, 6개, 7개 또는 그 이상일 수 있다.
부호화기는, 블록의 크기, 위치, 형태 또는 예측 모드 중 적어도 하나에 기초하여 현재 블록의 변환 타입을 결정할 수 있다(실시예 2).
일 예로, 변환 타입은 현재 블록의 너비와 높이 간의 길이 비교에 기초하여 결정될 수 있다. 예를 들어, 너비와 높이 중 짧은 쪽의 변환 타입은 제1 변환 타입으로 결정되고, 긴 쪽의 변환 타입은 제2 변환 타입으로 결정될 수 있다. 여기서, 제1 변환 타입은 복수의 변환 타입 중 어느 하나이며, 제2 변환 타입은 복수의 변환 타입 중 다른 하나이다. 예를 들어, 제1 변환 타입은 DCT(e.g., DCT2, DCT4, 또는 DCT8)로 결정되고, 제2 변환 타입은 DST(e.g., DST4, DST7)로 결정될 수 있으며, 이하 동일하게 해석될 수 있다. 또는 역으로, 제1 변환 타입은 DST로 결정되고, 제2 변환 타입은 DCT로 결정될 수도 있다. 상기 너비 및/또는 높이가 소정의 제3 문턱값보다 크거나 같은 경우, 변환 타입은 디폴트 변환 타입으로 결정될 수 있다. 여기서, 제3 문턱값은 16, 32 또는 64일 수 있다.
일 예로, 변환 타입은, 현재 블록의 위치에 기초하여 결정될 수 있다. 이하 설명에서 현재 블록은 하위 블록에 대응한다. 상위 블록은 복수의 하위 블록으로 분할될 수 있다. 상기 분할은, QT, BT, TT 또는 ABT(asymmetry binary tree) 중 적어도 하나에 기초하여 수행될 수 있다. 여기서, ABT는 하나의 블록을 비대칭의 2개의 서브 블록(SB0, SB1)으로 분할하는 기법이다. 즉, SB0와 SB1의 너비 또는 높이의 비율은, (1:r) 또는 (r:1)이며, r 값은 2, 3, 4, 또는 그 이상의 정수일 수 있다. 부호화기는 최적의 비율을 결정하고, 이를 부호화하여 복호화기로 시그날링할 수 있다.
변환 타입은, 상위 블록 내에서 하위 블록의 위치를 고려하여 결정될 수 있다.
(1) 상위 블록이 QT로 분할된 경우, 좌상단 하위 블록(BLK0)의 변환 타입은 제1 변환 타입으로 결정되고, 우하단 하위 블록(BLK3)의 변환 타입은 제2 변환 타입으로 결정될 수 있다. 상기 좌상단/우하단 하위 블록의 변환 타입은 수평/수직방향에 대해서 동일할 수 있다.
나머지 하위 블록(BLK1, BLK2)의 변환 타입은, 제1 변환 타입 및/또는 제2 변환 타입으로 결정될 수 있다. 상기 나머지 하위 블록의 변환 타입은 수평/수직방향에 대해서 동일할 수 있다. 또는, 우상단 하위 블록(BLK1)에 대해서, 수직 방향의 변환 타입은 제1 변환 타입으로, 수평 방향의 변환 타입은 제2 변환 타입으로 각각 결정될 수 있다. 좌하단 하위 블록(BLK2)는 BLK1과 동일하게 결정될 수 있다. 또는, BLK2에 대해서, 수평 방향의 변환 타입은 제1 변환 타입으로, 수직 방향의 변환 타입은 제2 변환 타입으로 각각 결정될 수 있다.
또는, 전술한 BLK1, BLK2, 또는 BLK3 중 적어도 하나에 대한 변환 타입은, 디폴트 변환 타입으로 결정될 수도 있다.
(2) 상위 블록이 BT 또는 ABT로 분할된 경우, 좌측(또는 상단) 하위 블록의 변환 타입은 제1 변환 타입으로 결정되고, 우측(또는 하단) 하위 블록의 변환 타입은 제2 변환 타입으로 결정될 수 있다.
나아가, 좌측(또는 상단) 하위 블록의 변환 타입은 수평/수직방향에 대해서 동일할 수도 있고, 서로 상이할 수도 있다. 예를 들어, 좌측 하위 블록에 대해서, 수평방향의 변환 타입은 제1 변환 타입이나, 수직방향의 변환 타입은 제2 변환 타입일 수 있다. 또는, 상단 하위 블록에 대해서, 수직방향의 변환 타입은 제1 변환 타입이나, 수평방향의 변환 타입은 제2 변환 타입일 수 있다.
우측(또는 하단) 하위 블록의 변환 타입은 수평/수직방향에 대해서 서로 동일하도록 제한될 수 있다. 또는, 우측(또는 하단) 하위 블록의 변환 타입은 수평/수직방향에 대해서 서로 상이하게 결정될 수도 있다.
(3) 상위 블록이 TT로 분할된 경우, 좌측(또는 상단) 하위 블록(BLK0)의 변환 타입은 제1 변환 타입으로 결정되고, 우측(또는 하단) 하위 블록(BLK2)의 변환 타입은 제2 변환 타입으로 결정될 수 있다.
나아가, 좌측(또는 상단) 하위 블록의 변환 타입은 수평/수직방향에 대해서 동일할 수도 있고, 서로 상이할 수도 있다. 예를 들어, 좌측 하위 블록에 대해서, 수평방향의 변환 타입은 제1 변환 타입이나, 수직방향의 변환 타입은 제2 변환 타입일 수 있다. 또는, 상단 하위 블록에 대해서, 수직방향의 변환 타입은 제1 변환 타입이나, 수평방향의 변환 타입은 제2 변환 타입일 수 있다.
우측(또는 하단) 하위 블록의 변환 타입은 수평/수직방향에 대해서 서로 동일하도록 제한될 수 있다. 또는, 우측(또는 하단) 하위 블록의 변환 타입은 수평/수직방향에 대해서 서로 상이하게 결정될 수도 있다.
한편, 중앙 하위 블록(BLK1)의 변환 타입은, 제1 변환 타입 및/또는 제2 변환 타입으로 결정될 수 있다. BLK1에 대해서, 수직 방향의 변환 타입은 수평 방향의 변환 타입과 상이할 수 있다. 또는, BLK1에 대한 변환 타입은, 부호화기에 기-정의된 디폴트 변환 타입으로 결정될 수도 있다.
일 예로, 변환 타입은, 현재 블록의 예측 모드가 화면 간 예측인지 여부에 기초하여 결정될 수 있다. 예를 들어, 현재 블록의 예측 모드가 화면 간 예측인 경우에는 제1 변환 타입 또는 제2 변환 타입이 이용되고, 그렇지 않은 경우에는 디폴트 변환 타입이 이용될 수 있다. 또는, 현재 블록의 예측 모드가 화면 간 예측인 경우에는 제1 변환 타입이 이용되고, 그렇지 않은 경우에는 제2 변환 타입 또는 디폴트 변환 타입이 이용될 수 있다.
전술한 실시예는 독립적으로 적용될 수도 있고, 부호화기는 제1/제2 실시예의 조합에 기초하여 변환 타입을 결정할 수도 있다. 전술한 제1 실시예에 기초하여 결정된 변환 타입은, 제2 실시예에 기초하여 결정된 변환 타입에 의해서 대체될 수도 있다. 역으로, 전술한 제2 실시예에 기초하여 결정된 변환 타입은, 제1 실시예에 기초하여 결정된 변환 타입에 의해서 대체될 수도 있다.
제1 변환부에서는, 상기 결정된 변환 타입에 기초하여 변환을 수행할 수 있다.
제2 변환부(330)에서는 제1 변환부(320)에서 수행된 신호에 대하여 추가적으로 변환을 수행한다. 상기 추가적 변환의 수행은 생략될 수도 있다.
제2 변환부(330)에서는 수평방향 변환과 수직방향 변환을 통합된 형태로 수행할 수 있으며, 변환의 방법은 블록의 크기 및 블록의 예측모드에 의해 결정될 수 있다.
제2 변환부(330)에서 수행한 변환에 대한 정보는 인덱스 (index) 형태로 비트스트림에 포함될 수 있다.
도 4는 본 발명의 일 실시예에 따른 복호화기의 역변환부에서 다양한 역변환을 사용하는 기술을 도시한다.
복호화기의 역변환부(410)는 제1 역변환부(420) 또는 제2 역변환부(430) 중 적어도 하나로 구성될 수 있다. 제2 역변환부에서 역변환을 수행하고 그 결과를 제1 역변환부에서 사용한다. 다만, 도 3에서 살펴본 바와 같이, 제1 역변환부 또는 제2 역변환부 중 어느 하나에서만 역변환이 선택적으로 수행될 수도 있다.
제1 역변환부(420)에서는 수평방향 역변환과 수직방향 역변환을 분리하여 수행할 수 있으며, 수평 방향과 수직 방향에 대해서 역변환 타입이 각각 결정될 수 있다. 상기 역변환 타입은, 복호화기에 기-정의된 복수의 역변환 타입 중 어느 하나로 결정될 수 있다.
상기 복수의 역변환 타입은 DCT-II(DCT2), DCT-IV(DCT4), DCT-V(DCT5), DCT-VIII(DCT8), DST-I(DST1), DST-IV(DST4), DST-VII(DST7), 또는 ID (IDentity) 중 적어도 하나를 포함할 수 있다. 전술한 역변환 타입 중 어느 하나는 디폴트 역변환 타입(default inverse-transform type)으로 정의될 수 있다. 예를 들어, 상기 디폴트 역변환 타입은 DCT2일 수 있으나, 이에 한정되지 아니한다.
한편, 제1 역변환부에서 이용 가능한 역변환 타입의 개수는 도 3에서 살펴본 바와 같은바, 여기서 자세한 설명은 생략하기로 한다.
수평방향 역변환에서 변환 타입 ID가 선택되면 수평방향 역변환을 생략하는 것을 의미하고, 수직방향에서 역변환 타입 ID가 선택되면 수직방향 역변환을 생략하는 것을 의미한다. 이를 통해, 수평방향 및 수직방향 중 어느 하나에 대해서 변환 스킵을 선택적으로 적용할 수 있다.
수평방향 역변환과 수직방향 역변환에서 모두 변환 타입 ID가 선택되면 수평방향 역변환과 수직방향 역변환을 모두 생략하는 것을 의미한다.
수평방향 역변환과 수직방향 역변환에서 모두 변환 타입 ID가 선택되면 역변환 단계를 수행하지 않음을 의미하는 변환 스킵 플래그 (transform skip flag) 추출을 생략할 수 있다.
또는, 전술한 복수의 역변환 타입은, 상기 ID를 포함하지 않을 수 있다. 이 경우, 변환 스킵을 위한 별도의 정보가 시그날링될 수 있다. 여기서, 상기 정보는, 역변환이 수행되는지, 스킵되는지 여부를 특정하는 플래그를 의미할 수 있다. 상기 플래그는, 수직/수평 방향에 관계없이 하나의 블록 단위로 복호화될 수 있다. 또는, 상기 플래그는, 수직방향과 수평방향 각각에 대해서 복호화될 수 있다. 상기 복호화는, 현재 블록의 크기가 소정의 제1 문턱값보다 작거나 같은 경우에만 수행될 수 있다. 상기 제1 문턱값은, 변환 스킵이 허용되는 최대크기를 나타낼 수 있다. 앞서 언급한 바와 같이, 부호화기는 변환 스킵이 허용되는 최적의 최대크기를 결정하고, 이를 부호화하여 복호화기로 시그날링할 수 있다. 상기 현재 블록의 크기는, 현재 블록의 너비와 높이 중 최대값 또는 최소값으로 표현될 수 있다. 상기 최대크기는, 4, 8, 16, 32, 또는 64일 수 있다.
제1 역변환부에서 다양한 변환 타입을 사용할지 여부는 비트스트림에 포함된 플래그 (flag) 정보를 이용해 결정할 수 있다. 상기 플래그 정보와 관련해서는 도 3에서 자세히 살펴본 바와 같으며, 여기서 자세한 설명은 생략하기로 한다.
상기 플래그 정보가 제1 역변환부에서 다양한 변환 타입을 사용하지 않음을 의미하는 경우(즉, 플래그가 제1 값인 경우), 현재 블록의 변환 타입은 디폴트 변환 타입으로 설정될 수 있다.
상기 플래그 정보가 제1 역변환부에서 다양한 변환 타입을 사용함을 의미하는 경우(즉, 플래그가 제2 값인 경우), 복수의 변환 타입 중 어느 하나를 현재 블록의 변환 타입으로 결정할 수 있다. 복수의 변환 타입에 기반하여 현재 블록의 변환 타입을 결정하는 방법에 대해서는 도 3에서 살펴본 바와 같으며, 여기서 자세한 설명은 생략하기로 한다.
상기 제1 역변환부는, 상기 결정된 역변환 타입에 기초하여, 복호화된 잔차 계수에 대해 역변환을 수행할 수 있다.
상기 역변환을 위한 매트릭스(matrix)는 역변환 타입 별로 부호화기/복호화기에 기-정의될 수 있다. 상기 매트릭스는, 4x4, 8x8, 16x16, 32x32 또는 64x64의 크기로 정의될 수 있다. 상기 매트릭스는, 역변환 타입 별로 소정의 개수만큼 정의될 수 있다. 예를 들어, 제1 역변환 타입에 대해 p1개의 N1xN1 매트릭스가, 제2 역변환 타입에 대해 p2개의 N2xN2 매트릭스가, 디폴트 역변환 타입에 대해 p3개의 N3xN3 매트릭스가 각각 정의될 수 있다.
여기서, p1 내지 p3은, 1, 2, 3, 또는 4일 수 있다. p1 내지 p3은 서로 동일한 값일 수도 있고, p1 내지 p3 중 적어도 하나는 다른 하나와 상이할 수 있다. 또는, p1 내지 p3 중 어느 하나는 0일 수 있다. 예를 들어, p1=1이고, p2=0인 경우, 제2 역변환 타입에 대한 매트릭스는, 제1 역변환 타입에 대한 매트릭스에 기반하여 유도될 수 있다. 상기 유도는, 제1 역변환 타입에 대한 매트릭스를 소정의 각도(e.g., 90도, 180도, -90도, -180도)로 회전하여 수행될 수 있다. 또는, 상기 유도는, 매트릭스를 구성하는 성분 중 적어도 하나의 부호(sign)를 변경하여 수행될 수 있다. 상기 유도는, 상기 회전과 부호 변경을 모두 사용하여 수행될 수도 있다.
상기 N1 내지 N3은 각각 4, 8, 16, 32 또는 64 중 어느 하나일 수 있다. N1 내지 N3은 서로 동일한 값일 수도 있고, N1 내지 N3 중 적어도 하나는 다른 하나와 상이할 수 있다. 복호화기는 64x64 매트릭스를 정의하고, 이로부터 4x4, 8x8, 16x16 또는 32x32 중 적어도 하나의 매트릭스를 유도할 수 있다.
제2 역변환부(430)에서는 수평방향 역변환과 수직방향 역변환을 통합된 형태로 수행할 수 있으며, 제2 역변환의 방법은 블록의 크기, 블록의 예측모드, 비트스트림에 포함된 제2 역변환 인덱스 (index) 정보에 의해 결정될 수 있다.
한편, 도 3 및 도 4에서, 블록 또는 현재 블록은, 코딩 블록(CU)을 의미할 수 있다. 여기서, 코딩 블록은 소정의 분할 타입(QT, BT, TT, ABT 등)에 의해서 더 이상 분할되지 않는 코딩 블록을 의미할 수 있다. 또는, 상기 블록 또는 현재 블록은, 상기 코딩 블록에서 추가적으로 분할된 서브 블록을 의미할 수 있다. 즉, 코딩 블록 단위로 변환이 수행될 수도 있고, 서브 블록 단위로 변환이 수행될 수도 있다. 상기 코딩 블록의 서브 블록 중 일부 서브 블록에 대해서만 변환이 수행되고, 나머지 서브 블록에 대해서는 변환이 생략될 수도 있다.
여기서, 분할은, 소정의 분할 타입(QT, BT, TT, ABT 등)에 기초하여 수행될 수 있다. 또는, 상기 분할은, QT 및/또는 BT만을 이용하여 수행되도록 제한될 수 있다. 상기 추가적인 분할의 횟수는 1회로 한정될 수 있다.
상기 서브 블록으로의 분할은, 소정의 부호화 파라미터에 기초하여 수행될 수 있다. 상기 부호화 파라미터는, 코딩 블록이 소정의 분할 타입에 기초하여 추가적으로 분할되는지 여부를 나타내는 플래그(sbt_flag)를 의미할 수 있다. 또는 상기 부호화 파라미터는, 상기 코딩 블록 전체에 대해서 변환이 수행되는지, 아니면 코딩 블록 내 복수의 서브 블록 중 일부 서브 블록에 대해서만 변환이 수행되는지 여부를 나타내는 플래그(sbt_flag)를 의미할 수 있다.
상기 플래그(sbt_flag)는 비디오 시퀀스, 픽쳐, 슬라이스, 또는 블록 중 적어도 하나의 레벨에서 시그날링될 수 있다. 상기 시그날링은, 블록의 크기, 형태, 또는 예측 모드 중 적어도 하나에 기초하여 수행될 수 있다.
예를 들어, 상기 플래그(sbt_flag)는, 블록의 크기가 소정의 제4 문턱값보다 작거나 같은 경우에만 시그날링될 수 있다. 여기서, 블록의 크기는 현재 블록의 너비와 높이 중 최대값 또는 최소값으로 표현될 수 있다. 상기 제4 문턱값은 서브 블록으로의 추가 분할이 허용되는 최대 블록 크기를 의미할 수 있다. 또는, 플래그(sbt_flag)는, 블록의 크기가 소정의 제4 문턱값보다 크거나 같은 경우에만 시그날링될 수 있다. 여기서, 블록의 크기는 현재 블록의 너비와 높이 중 최대값 또는 최소값으로 표현될 수 있다. 상기 제4 문턱값은 서브 블록으로의 추가 분할이 허용되는 최소 블록 크기를 의미할 수 있다. 상기 제4 문턱값은, 부호화기/복호화기에 기-약속된 고정된 값일 수도 있고, 부호화기에서 부호화되어 복호화기로 시그날링될 수도 있다.
예를 들어, 상기 플래그(sbt_flag)는, 블록의 형태가 정사각형인 경우에만 시그날링될 수 있다. 또는, 상기 플래그(sbt_flag)는, 블록의 형태가 직사각형인 경우에만 시그날링될 수 있다.
예를 들어, 상기 플래그(sbt_flag)는, 블록의 예측 모드가 화면 간 예측인 경우에만 시그날링될 수 있다. 또는, 상기 플래그(sbt_flag)는, 블록의 예측 모드가 화면 내 예측인 경우에만 시그날링될 수 있다. 상기 플래그의 시그날링은, 전술한 블록의 크기, 형태, 또는 예측 모드 중 적어도 하나에 관계없이 수행될 수도 있다.
상기 플래그(sbt_flag)에 따라 일부 서브 블록에 대해서만 변환이 수행되는 경우, 상기 일부 서브 블록을 특정하는 정보가 시그날링될 수 있다. 일부 서브 블록은 적어도 하나의 넌-제로 변환 계수를 포함한 서브 블록을 의미할 수 있다. 따라서, 상기 정보는, 적어도 하나의 넌-제로 변환 계수를 포함하는지 여부를 나타내는 플래그(coded_block_flag)일 수도 있다. 상기 플래그(coded_block_flag)는, 서브 블록의 단위로 각각 시그날링될 수 있다.
또는 상기 정보는, 적어도 하나의 넌-제로 변환 계수를 가진 서브 블록의 위치를 나타내는 위치 정보일 수도 있다. 예를 들어, 코딩 블록이 QT로 분할된 경우, 서브 블록에 0 내지 3의 인덱스가 각각 할당될 수 있다. 인덱스 0의 위치 정보가 시그날링된 경우, 좌상단 서브 블록은 적어도 하나의 넌-제로 변환 계수를 가진 블록으로 결정될 수 있다.
또는, 상기 정보는, 적어도 하나의 넌-제로 변환 계수를 가지지 않은 서브 블록의 위치를 나타내는 위치 정보일 수도 있다. 예를 들어, 코딩 블록이 BT로 분할된 경우, 서브 블록에 0 내지 1의 인덱스가 각각 할당될 수 있다. 인덱스 1의 위치 정보가 시그날링된 경우, 우측(또는 하단) 서브 블록은 적어도 하나의 넌-제로 변환 계수를 가지지 않은 블록으로 결정되고, 반대로 좌측(또는 상단) 서브 블록은 적어도 하나의 넌-제로 변환 계수를 가진 블록으로 결정될 수 있다.
상기 플래그(coded_block_flag) 또는 위치 정보에 의해 특정되는 일부 서브 블록에 대해서만 역변환 타입이 결정될 수 있다. 즉, 상기 특정된 서브 블록에 대해서만 역변환 타입을 결정하기 위한 정보가 복호화되거나 전술한 역변환 타입의 유도 과정이 수행될 수 있다. 상기 위치 정보에 의해 특정되지 않은 서브 블록에 대해서는, 변환 계수의 값이 0으로 설정될 수 있다.
도 3 및 도 4의 실시예는, 도 5 내지 도 13의 실시예에서도 동일/유사하게 적용될 수 있으며, 이하 중복적인 설명은 생략하기로 한다.
도 5는 본 발명의 일 실시예에 따른 비트스트림으로부터 제1 역변환을 위한 정보를 추출하는 순서를 도시한다.
먼저 비트스트림으로부터 다양한 역변환 타입을 사용하는 역변환을 수행할지를 나타내는 플래그 (flag)를 추출(510)한다.
상기 추출한 플래그가 다양한 역변환 타입을 사용하는 역변환 수행을 의미하지 않을 경우, 다양한 역변환을 위한 정보 추출 단계를 끝낸다.
다양한 역변환 타입을 사용하는 역변환을 수행하지 않는 경우, 미리 정해진 변환 타입을 이용해 역변환을 수행할 수 있다.
상기 추출한 플래그가 다양한 역변환 타입을 사용하는 역변환 수행을 의미하는 경우, 다양한 역변환을 위한 추가적인 정보 추출을 수행한다.
화면 내 예측을 수행하는 블록이 아닐 경우, 다양한 역변환 타입 결정을 위한 인덱스 값을 추출한다.
화면 내 예측을 수행하는 블록일 경우, 역양자화 결과로 얻어진 0이 아닌 변환 계수의 개수가 임계 값 (threshold)보다 크면 다양한 역변환 타입 결정을 위한 인덱스 값을 추출(520)하고, 그렇지 않으면 다양한 역변환 타입 결정을 위한 인덱스 값을 추출하지 않는다.
도 6은 본 발명의 일 실시예에 따른 다양한 역변환 타입에 따른 제1 역변환 수행 과정을 도시한다.
먼저 비트스트림으로부터 다양한 역변환 타입을 사용하는 역변환을 수행할지를 나타내는 플래그 (flag)를 추출(610)한다.
상기 추출한 다양한 역변환 타입을 이용한 역변환을 수행할지를 나타내는 플래그가 다양한 역변환 타입을 사용하는 역변환 수행을 의미하지 않는 경우, 미리 정해진 변환 타입을 이용해 역변환(630)을 수행한다.
상기 추출한 다양한 역변환 타입을 이용한 역변환을 수행할지를 나타내는 플래그가 다양한 변환 타입을 사용하는 역변환 수행을 의미하는 경우, 다양한 역변환 타입 결정을 위한 인덱스 값을 추출(620)한다.
상기 추출한 인덱스 값을 통해 얻은 수평 방향 역변환 타입이 ID일 경우, 역변환 수행 단계(630)에서 수평 방향 역변환은 생략하고 수직 방향 역변환만 수행한다.
상기 추출한 인덱스 값을 통해 얻은 수직 방향 역변환 타입이 ID일 경우, 역변환 수행 단계(630)에서 수직 방향 역변환은 생략하고 수평 방향 역변환만 수행한다.
상기 추출한 인덱스 값을 통해 얻은 수평 방향 역변환 타입과 수직 방향 역변환 타입이 모두 ID일 경우, 역변환 수행 단계(730)를 생략한다.
도 7은 본 발명의 일 실시예에 따른 제2 역변환 수행 과정을 도시한다.
먼저 역 양자화를 통해 얻은 변환 계수 중 0이 아닌 변환 계수의 개수를 카운트(710)하여 제2 역변환 인덱스 추출여부를 결정한다.
상기 0이 아닌 변환 계수의 개수가 임계 값보다 많을 경우 제2 역변환 인덱스 추출(720) 단계를 생략한다.
상기 0이 아닌 변환 계수의 개수가 임계 값보다 클 경우 제2 역변환 수행 단계(730)를 생략한다.
상기 0이 아닌 변환 계수의 개수가 임계 값 보다 작을 경우 제2 역변환 인덱스를 추출(720)한다.
제2 역변환 수행(730) 단계에서는 상기 추출한 제2 역변환 인덱스에 따라 역변환을 수행한다.
제2 역변환 수행 단계(730)에서는 블록의 크기, 예측 모드에 따라 제2 역변환 수행 방법이 결정될 수 있다.
도 8은 본 발명의 일 실시예에 따른 다양한 역변환 기술의 사용 여부를 신택스 (syntax)에 의하여 시그널링 하는 방법을 도시한다.
제안하는 다양한 역변환 기술의 사용 여부는 압축된 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 SPS (Sequence Parameter Set) (810) 내에 포함될 수 있다. 또한, 화면 내 예측을 사용하는 블록과 화면 간 예측을 사용하는 블록은 상호 독립적으로 다양한 종류의 변환 타입을 적용하는 변환 기술을 사용하거나 사용하지 않을 수 있다. 즉, 본 발명의 일 실시예에 따르면 화면 내 예측을 사용하는 블록에서만 다양한 종류의 변환 타입을 적용하는 변환 기술을 사용하고, 화면 간 예측을 사용하는 블록에서는 고정된 변환 타입을 적용하는 변환 기술을 사용할 수 있다.
화면 내 예측을 사용하는 블록의 다양한 역변환 타입 사용 여부(820)는 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 SPS (Sequence Parameter Set) (810) 내에 포함될 수 있다.
화면 간 예측을 사용하는 블록의 다양한 역변환 타입 사용 여부(830)는 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 SPS (Sequence Parameter Set) (810) 내에 포함될 수 있다.
제2 역변환의 사용 여부(840)는 압축된 비트스트림 내에 존재하는 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 SPS (Sequence Parameter Set) (810) 내에 포함될 수 있다.
도 9는 본 발명의 일 실시예에 따른 다양한 역변환 기술을 사용하는 방법 및 장치에서 다양한 변환 기술의 수행을 위한 정보를 비트스트림 내의 신택스 (syntax) 중 코딩 유닛 신택스에 의해 시그널링하는 방법을 도시한다.
다양한 역변환 기술의 사용 여부를 의미하는 플래그(920)는 압축된 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 코딩 유닛 신택스(910) 내에 포함될 수 있다.
다양한 역변환 기술의 사용 여부를 나타내는 플래그가 가 다양한 역변환 기술을 사용함을 의미하는 경우, 다양한 역변환 타입 정보를 나타내는 다양한 역변환 타입 인덱스(930)는 압축된 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 코딩 유닛 신택스(910) 내에 포함될 수 있다.
제2 역변환에 대한 정보를 나타내는 제2 역변환 인덱스(940)는 압축된 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 코딩 유닛 신택스(1010) 내에 포함될 수 있다.
도 10은 본 발명의 일 실시예에 따른 다양한 역변환 기술을 사용하는 방법 및 장치에서 역변환 과정의 또 다른 예를 도시한다.
다양한 역변환 기술의 사용 여부는 플래그 형태로 비트스트림에 포함되지 않을 수 있으며, 역변환 타입 인덱스로만 비트스트림에 포함되어 해당 인덱스를 통해 제1 역변환과정의 수행여부를 결정할 수 있다.
먼저, 비트스트림으로부터 역변환 타입 인덱스 추출(1010)을 통해 역변환 타입을 결정한다.
상기 결정한 수평 및 수직 방향 역변환 타입이 모두 ID를 의미하는 경우, 제2 역변환 인덱스 추출 과정(1020) 및 제2 역변환 수행 과정(1030)을 생략할 수 있다.
상기 결정한 수평 및 수직 방향 역변환 타입이 모두 ID를 의미하는 경우, 제1 역변환 수행 과정(1040)을 생략할 수 있다.
상기 결정한 수평 및 수직 방향 역변환 타입이 모두 ID를 의미하는 경우, 역변환을 수행하지 않음을 의미하는 변환 스킵 플래그 (transform skip flag) 추출을 생략할 수 있다.
수평 및 수직 방향 역변환 타입이 모두 ID가 아닌 경우, 제2 역변환 인덱스를 추출(1020)하고 추출한 인덱스에 따라 제2 역변환을 수행(1030)한다.
수평 방향 역변환 타입이 ID를 의미하는 경우 제1 역변환 수행 단계(1040)에서 수평 방향 역변환은 생략하고 수직 방향 역변환만을 수행한다.
수직 방향 역변환 타입이 ID를 의미하는 경우, 제1 역변환 수행 단계(1040)에서 수직 방향 역변환은 생략하고 수평 방향 역변환만을 수행한다.
수평 및 수평 방향 역변환 타입이 모두 ID가 아닌 경우, 제1 역변환 수행 단계(1040)에서 수평 및 수직 방향 역변환을 모두 수행한다.
도 11은 본 발명의 일 실시예에 따른 다양한 역변환 기술을 사용하는 경우, 서로 다른 주파수별 가중 양자화를 수행하는 과정을 도시한다.
다양한 역변환 기술을 사용하는 경우, 추출된 역변환 타입 인덱스에 의해 결정된 역변환 타입에 따라 주파수별 가중 역양자화를 수행할 수 있다.
역변환 타입에 따라 주파수별 가중 역양자화를 수행하는 경우, 주파수별 가중 양자화 파라미터 결정 단계(1110)와 가중 역양자화 수행 단계(1120)에서 비트스트림에 포함된 양자화 파라미터를 이용해 역변환 타입에 따른 주파수별 가중 역양자화를 수행할 수 있다.
역변환 타입에 따라 주파수별 가중 역양자화를 수행하는 경우, 주파수별 가중 양자화 파라미터 결정 단계(1110)와 가중 역양자화 수행 단계(1120)에서 미리 정의된 양자화 파라미터들 중 역변환 타입에 따라 양자화 파라미터 값을 선택하여 가중 역양자화를 수행할 수 있다.
도 12는 본 발명의 일 실시예에 따른 제2 역변환 기술을 사용하는 경우, 서로 다른 주파수별 가중 양자화를 수행하는 과정을 도시한다.
제2 역변환 기술을 사용하는 경우, 추출된 제2 역변환 인덱스에 따라 주파수별 가중 역양자화를 수행할 수 있다.
제2 역변환 인덱스에 따라 주파수별 가중 역양자화를 수행하는 경우, 가중 양자화 파라미터 결정 단계(1210)와 가중 역양자화 수행단계(1220)에서 비트스트림에 포함된 양자화 파라미터를 이용해 가중 역양자화를 수행할 수 있다.
제2 역변환 인덱스에 따라 주파수별 가중 역양자화를 수행하는 경우, 가중 양자화 파라미터 결정 단계(1210)와 가중 역양자화 수행단계(1220)에서 미리 정의된 양자화 파라미터들 중 제2 역변환 인덱스에 따라 양자화 파라미터를 선택하여 가중 역양자화를 수행할 수 있다.
도 13은 본 발명의 일 실시예에 따른 다양한 역변환 또는 제2 역변환을 수행하는 경우, 가중 양자화를 위한 정보를 신택스 (syntax)에 의하여 시그널링 하는 방법을 도시한다.
다양한 역변환 또는 제2 역변환을 수행하는 경우의 가중 양자화를 위한 정보는 압축된 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 SPS (Sequence Parameter Set) (1310) 내에 포함될 수 있다.
다양한 역변환 또는 제2 역변환을 수행하는 경우의 가중 양자화의 사용 여부를 나타내는 플래그(1320)는 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 SPS (Sequence Parameter Set) (1310) 내에 포함될 수 있다.
상기 가중 양자화 여부를 나타내는 플래그(1320)가 가중 양자화 사용을 의미하는 경우, 시퀀스 단위 가중 양자화 파라미터 전송을 의미하는 플래그(1330)가 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 SPS (Sequence Parameter Set) (1310) 내에 포함될 수 있다.
상기 시퀀스 단위 가중 양자화 파라미터 전송을 의미하는 플래그(1330)가 가중 양자화 파라미터 전송을 의미할 경우, 양자화 파라미터들이 비트스트림에 포함될 수 있고, 해당 파라미터들을 추출하는 과정(1340)을 수행한다.
다양한 역변환 또는 제2 역변환을 수행하는 경우의 가중 양자화를 위한 정보는 압축된 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 PPS (Picture Parameter Set) (1350) 내에 포함될 수 있다.
픽쳐 단위 가중 양자화 파라미터 전송을 의미하는 플래그(1360)는 비트스트림 내에 존재하는 NAL (Network Abstract Layer) 중 PPS (Picture Parameter Set) (1350) 내에 포함될 수 있다.
상기 픽쳐 단위 가중 양자화 파라미터 전송을 의미하는 플래그(1360)가 가중 양자화 파라미터 전송을 의미할 경우, 양자화 파라미터들이 비트스트림에 포함될 수 있고, 해당 파라미터들을 추출하는 과정(1370)을 수행한다.
본 발명은 다양한 변환 기술을 사용하여 비디오 신호를 부호화/복호화하는데 이용될 수 있다.

Claims (7)

  1. 비디오 복호화 방법에 있어서,
    비트스트림으로부터 제1 역변환을 위한 변환 타입 정보를 추출하는 단계;
    상기 추출한 정보를 이용해 다수의 역변환 타입에서 선택적으로 역변환 타입을 결정하는 단계; 및
    상기 결정한 역변환 타입을 이용해 수평방향 또는 수직방향 역변환을 수행하는 단계를 포함하는 비디오 복호화 방법.
  2. 제 1항에 있어서,
    비트스트림으로부터 제1 역변환을 위한 변환 타입 정보를 추출하는 단계는
    비트스트림으로부터 제1 역변환 수행 여부를 나타내는 정보를 획득하는 단계; 및
    상기 획득한 정보가 제1 역변환 수행을 의미하는 경우, 추가로 제1 역변환 타입 결정을 위한 정보를 획득하는 단계를 포함하는 비디오 복호화 방법.
  3. 제 1항에 있어서,
    상기 추출한 정보를 이용해 다수의 역변환 타입에서 선택적으로 역변환 타입을 결정하는 단계는
    비트스트림으로부터 추출한 역변환 타입 결정을 위한 정보에 의해 결정된 역변환 타입에 따라 다수의 역변환 타입에서 선택적으로 수평방향 역변환 타입을 결정하는 단계; 및
    비트스트림으로부터 추출한 역변환 타입 결정을 위한 정보에 의해 결정된 역변환 타입에 따라 다수의 역변환 타입에서 선택적으로 수직방향 역변환 타입을 결정하는 단계를 포함하는 비디오 복호화 방법.
  4. 제 1항에 있어서,
    상기 결정한 변환 타입을 이용해 수평 방향 또는 수직 방향 역변환을 수행하는 단계는
    다수의 역변환 타입 중 결정된 수평 방향 역변환 타입을 이용해 제1 역변환을 수행하는 단계; 및
    다수의 역변환 타입 중 결정된 수직 방향 역변환 타입을 이용해 제1 역변환을 수행하는 단계를 포함하는 비디오 복호화 방법.
  5. 비디오 복호화 방법에 있어서,
    비트스트림으로부터 제1 역변환을 위한 역변환 타입 정보를 추출하여 수평방향 역변환 또는 수직방향 역변환의 변환 타입을 결정하는 단계; 및
    상기 결정된 역변환 타입에 따라 수평방향 역변환 또는 수직방향 역변환을 생략하는 단계를 포함하는 비디오 복호화 방법.
  6. 제 5항에 있어서,
    비트스트림으로부터 제1 역변환을 위한 역변환 타입 정보를 추출하여 수평방향 역변환 또는 수직방향 역변환의 변환 타입을 결정하는 단계는
    비트스트림으로부터 제1 역변환을 위한 역변환 타입 정보를 추출하는 단계; 및
    상기 추출한 역변환 타입 정보를 이용해 다양한 역변환 타입 중에서 수평 방향 또는 수직방향 역변환에 사용할 역변환 타입을 결정하는 단계를 포함하는 비디오 복호화 방법.
  7. 제 5항에 있어서,
    상기 결정된 역변환 타입에 따라 수평 방향 역변환 또는 수직방향 역변환을 생략하는 단계는
    결정된 수평방향 역변환을 위한 변환 타입이 역변환을 수행하지 않음을 의미하는 변환 타입일 경우, 수평방향 제1 역변환을 생략하는 단계;
    결정된 수직방향 역변환을 위한 변환 타입이 역변환을 수행하지 않음을 의미하는 변환 타입일 경우, 수직방향 제1 역변환을 생략하는 단계; 및
    결정된 수평방향 역변환을 위한 변환 타입 및 수직방향 역변환을 위한 변환 타입이 역변환을 수행하지 않음을 의미하는 경우, 제1 역변환을 생략하는 단계를 포함하는 비디오 복호화 방법.
PCT/KR2019/000603 2018-01-17 2019-01-15 다양한 변환 기술을 사용하는 비디오 코딩 방법 및 장치 WO2019143103A1 (ko)

Priority Applications (10)

Application Number Priority Date Filing Date Title
CN201980008732.6A CN111602397B (zh) 2018-01-17 2019-01-15 使用各种变换技术的视频编码方法和装置
CN202410008153.4A CN117834918A (zh) 2018-01-17 2019-01-15 对视频进行解码或编码的方法和用于发送比特流的方法
CN202410012069.XA CN117834921A (zh) 2018-01-17 2019-01-15 对视频进行解码或编码的方法和用于发送比特流的方法
CN202410009193.0A CN117834919A (zh) 2018-01-17 2019-01-15 对视频进行解码或编码的方法和用于发送比特流的方法
CN202410006623.3A CN117834917A (zh) 2018-01-17 2019-01-15 对视频进行解码或编码的方法和用于发送比特流的方法
US16/962,730 US11166039B2 (en) 2018-01-17 2019-01-15 Method and device for video coding using various transform techniques
CN202410015067.6A CN117834922A (zh) 2018-01-17 2019-01-15 对视频进行解码或编码的方法和发送数据的方法
CN202410009580.4A CN117834920A (zh) 2018-01-17 2019-01-15 对视频进行解码或编码的方法和用于发送比特流的方法
US17/491,955 US20220021895A1 (en) 2018-01-17 2021-10-01 Method and device for video coding using various transform techniques
US18/472,915 US20240022746A1 (en) 2018-01-17 2023-09-22 Method and device for video coding using various transform techniques

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180005898 2018-01-17
KR10-2018-0005898 2018-01-17

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/962,730 A-371-Of-International US11166039B2 (en) 2018-01-17 2019-01-15 Method and device for video coding using various transform techniques
US17/491,955 Continuation US20220021895A1 (en) 2018-01-17 2021-10-01 Method and device for video coding using various transform techniques

Publications (1)

Publication Number Publication Date
WO2019143103A1 true WO2019143103A1 (ko) 2019-07-25

Family

ID=67301075

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/000603 WO2019143103A1 (ko) 2018-01-17 2019-01-15 다양한 변환 기술을 사용하는 비디오 코딩 방법 및 장치

Country Status (4)

Country Link
US (3) US11166039B2 (ko)
KR (1) KR20190088020A (ko)
CN (7) CN117834921A (ko)
WO (1) WO2019143103A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11166039B2 (en) * 2018-01-17 2021-11-02 Intellectual Discovery Co., Ltd. Method and device for video coding using various transform techniques
US11496737B2 (en) * 2018-10-05 2022-11-08 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording medium storing bitstream
CN114208198A (zh) * 2019-01-31 2022-03-18 联发科技股份有限公司 视频编码中用于帧内分区的转换类型分配方法和装置
US11284071B2 (en) * 2019-12-12 2022-03-22 Google Llc Combination of mode-dependent and fixed transform types in video coding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011031044A2 (ko) * 2009-09-14 2011-03-17 에스케이텔레콤 주식회사 고해상도 동영상의 부호화/복호화 방법 및 장치
WO2014007524A1 (ko) * 2012-07-02 2014-01-09 삼성전자 주식회사 비디오의 엔트로피 부호화 방법 및 장치, 비디오의 엔트로피 복호화 방법 및 장치
KR101549910B1 (ko) * 2011-10-17 2015-09-03 주식회사 케이티 화면 내 예측 모드에 기초한 적응적인 변환 방법 및 이러한 방법을 사용하는 장치
KR20170089035A (ko) * 2011-10-18 2017-08-02 주식회사 케이티 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기
KR20170140145A (ko) * 2012-06-29 2017-12-20 한국전자통신연구원 영상 부호화/복호화 방법 및 장치

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9635368B2 (en) * 2009-06-07 2017-04-25 Lg Electronics Inc. Method and apparatus for decoding a video signal
KR101474756B1 (ko) * 2009-08-13 2014-12-19 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
CN102934436B (zh) * 2010-04-13 2016-06-08 三星电子株式会社 使用基于根据树结构确定的编码单元的预测单元的视频编码方法和视频编码设备以及使用基于根据树结构确定的编码单元的预测单元的视频解码方法和视频解码设备
KR101791242B1 (ko) * 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
KR101373814B1 (ko) * 2010-07-31 2014-03-18 엠앤케이홀딩스 주식회사 예측 블록 생성 장치
KR101943049B1 (ko) * 2011-06-30 2019-01-29 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
BR112014009435B1 (pt) * 2011-10-19 2023-01-17 Kt Corporation Método para decodificar um sinal de vídeo tendo um bloco atual a ser decodificado com um aparelho de decodificação
US10390046B2 (en) * 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
ES2729781T3 (es) * 2012-06-01 2019-11-06 Velos Media Int Ltd Dispositivo de decodificación aritmética, aparato de decodificación de imágenes, dispositivo de codificación aritmética y aparato de codificación de imágenes
CN115052158A (zh) * 2012-07-02 2022-09-13 韩国电子通信研究院 视频编码/解码方法和非暂时性计算机可读记录介质
KR101462637B1 (ko) * 2013-02-28 2014-11-21 성균관대학교산학협력단 영상 부호화/복호화 방법 및 장치
US20140286412A1 (en) * 2013-03-25 2014-09-25 Qualcomm Incorporated Intra dc prediction for lossless coding in video coding
JPWO2015053115A1 (ja) * 2013-10-11 2017-03-09 ソニー株式会社 復号装置および復号方法、並びに、符号化装置および符号化方法
US10382795B2 (en) * 2014-12-10 2019-08-13 Mediatek Singapore Pte. Ltd. Method of video coding using binary tree block partitioning
US10616604B2 (en) * 2015-09-01 2020-04-07 Qualcomm Incorporated Coefficient level coding in video coding
KR20180021942A (ko) * 2016-08-22 2018-03-06 광운대학교 산학협력단 보안 카메라용 영상 코덱에서 블록 분할 정보 전송 방법 및 장치
WO2018044087A1 (ko) * 2016-08-31 2018-03-08 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN116744023A (zh) * 2016-11-25 2023-09-12 株式会社Kt 用于对视频进行编码和解码的方法
US10708591B2 (en) * 2017-03-20 2020-07-07 Qualcomm Incorporated Enhanced deblocking filtering design in video coding
EP3383045A1 (en) * 2017-03-27 2018-10-03 Thomson Licensing Multiple splits prioritizing for fast encoding
EP3383044A1 (en) * 2017-03-27 2018-10-03 Thomson Licensing Reducing redundancy between tree types
US11166039B2 (en) * 2018-01-17 2021-11-02 Intellectual Discovery Co., Ltd. Method and device for video coding using various transform techniques
CN116600141A (zh) * 2018-03-27 2023-08-15 株式会社Kt 对图像进行解码或编码的方法以及图像数据的传送方法
WO2019231206A1 (ko) * 2018-05-30 2019-12-05 디지털인사이트주식회사 영상 부호화/복호화 방법 및 장치
MX2021014277A (es) * 2019-05-24 2022-01-06 Digital Insights Inc Metodo y aparato de codificacion de video que utilizan conjunto de parametros adaptativos.

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011031044A2 (ko) * 2009-09-14 2011-03-17 에스케이텔레콤 주식회사 고해상도 동영상의 부호화/복호화 방법 및 장치
KR101549910B1 (ko) * 2011-10-17 2015-09-03 주식회사 케이티 화면 내 예측 모드에 기초한 적응적인 변환 방법 및 이러한 방법을 사용하는 장치
KR20170089035A (ko) * 2011-10-18 2017-08-02 주식회사 케이티 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기
KR20170140145A (ko) * 2012-06-29 2017-12-20 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
WO2014007524A1 (ko) * 2012-07-02 2014-01-09 삼성전자 주식회사 비디오의 엔트로피 부호화 방법 및 장치, 비디오의 엔트로피 복호화 방법 및 장치

Also Published As

Publication number Publication date
KR20190088020A (ko) 2019-07-25
CN111602397B (zh) 2024-01-23
US20220021895A1 (en) 2022-01-20
US20200351511A1 (en) 2020-11-05
US20240022746A1 (en) 2024-01-18
CN117834918A (zh) 2024-04-05
CN117834919A (zh) 2024-04-05
CN117834920A (zh) 2024-04-05
CN117834922A (zh) 2024-04-05
CN117834921A (zh) 2024-04-05
CN111602397A (zh) 2020-08-28
US11166039B2 (en) 2021-11-02
CN117834917A (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
WO2018080135A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2017188652A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018088805A1 (ko) 비디오 신호 처리 방법 및 장치
WO2012023762A2 (ko) 인트라 예측 복호화 방법
WO2020050684A1 (ko) 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2018044087A1 (ko) 비디오 신호 처리 방법 및 장치
WO2011087297A2 (en) Method and apparatus for encoding video by using deblocking filtering, and method and apparatus for decoding video by using deblocking filtering
WO2014171713A1 (ko) 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치
WO2013002586A2 (ko) 영상의 인트라 예측 부호화, 복호화 방법 및 장치
WO2011126281A2 (en) Method and apparatus for encoding video by performing in-loop filtering based on tree-structured data unit, and method and apparatus for decoding video by performing the same
WO2012081879A1 (ko) 인터 예측 부호화된 동영상 복호화 방법
WO2018236028A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2013154366A1 (ko) 블록 정보에 따른 변환 방법 및 이러한 방법을 사용하는 장치
WO2019143103A1 (ko) 다양한 변환 기술을 사용하는 비디오 코딩 방법 및 장치
WO2018044089A1 (ko) 비디오 신호 처리 방법 및 장치
WO2013109123A1 (ko) 인트라 예측 처리 속도 향상을 위한 비디오의 부호화 방법 및 장치, 비디오의 복호화 방법 및 장치
WO2020050702A1 (ko) 다중 변환 커널을 사용하는 비디오 신호 처리 방법 및 장치
WO2013032312A2 (ko) 율-왜곡 최적화를 위한 영상 부호화/복호화 방법 및 이를 수행하는 장치
WO2016114583A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020130600A1 (ko) 예측 모드를 시그널링하는 비디오 신호 처리 방법 및 장치
WO2020242145A1 (ko) 적응적 파라미터 셋을 사용하는 비디오 코딩 방법 및 장치
WO2019194484A1 (ko) 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2016064123A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020013609A1 (ko) 화면내 예측 기반의 비디오 코딩 방법 및 장치
WO2021060801A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19740684

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19740684

Country of ref document: EP

Kind code of ref document: A1