WO2019190098A1 - 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 - Google Patents
영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 Download PDFInfo
- Publication number
- WO2019190098A1 WO2019190098A1 PCT/KR2019/003101 KR2019003101W WO2019190098A1 WO 2019190098 A1 WO2019190098 A1 WO 2019190098A1 KR 2019003101 W KR2019003101 W KR 2019003101W WO 2019190098 A1 WO2019190098 A1 WO 2019190098A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- transform
- information
- mode
- current block
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
Definitions
- the present invention relates to a method and apparatus for encoding / decoding an image, and more particularly, to a method and apparatus for encoding / decoding a video image based on transform, shuffling, rearrangement, and flipping.
- HD high definition
- UHD ultra high definition
- An inter-screen prediction technique for predicting pixel values included in the current picture from a picture before or after the current picture using an image compression technology, an intra-prediction technology for predicting pixel values included in the current picture using pixel information in the current picture, There are various techniques such as transformation and quantization techniques for compressing the energy of the residual signal, entropy coding technique for assigning short codes to high-frequency values and long codes for low-frequency values. Image data can be effectively compressed and transmitted or stored.
- An object of the present invention is to provide a method and apparatus for encoding / decoding an image having improved encoding / decoding efficiency.
- Another object of the present invention is to provide a method and apparatus for transforming, shuffling, rearranging, and / or flipping-based image encoding / decoding to improve encoding / decoding efficiency.
- Another object of the present invention is to provide an image encoding / decoding method and apparatus for improving the conversion efficiency of an image.
- An image decoding method includes selecting one transform kernel among a plurality of transform kernels, performing inverse transform on a residual block of a current block based on the selected transform kernel, and Restoring the current block based on the inverse transformed residual block.
- the selecting of the transform kernel may be performed based on information on the transform kernel signaled and included in the bitstream.
- selecting the transform kernel may be performed based on at least one of the size and shape of the residual block.
- the conversion kernel to be applied to the horizontal transformation of the residual block when the horizontal length of the residual block is included in a predetermined range, and the horizontal length is not greater than the vertical length of the residual block, the conversion kernel to be applied to the horizontal transformation of the residual block may be a second transform kernel. .
- the predetermined range may range from 4 samples to 16 samples.
- the first transform kernel may be DST-7
- the second transform kernel may be DCT-2
- the step of selecting the transform kernel, the size of the residual block and the intra prediction It may be performed based on at least one of the modes.
- the transform kernel is used.
- the selecting may be performed based on the information about the division of the current block and the information about the position in the current block of the sub residual block.
- the information about the division of the current block may include at least one of division direction information indicating whether the division direction is vertical division or horizontal division and division ratio information indicating the division ratio. Can be.
- information about the division of the current block and information about the position of the sub residual block may be included in the bitstream and signaled.
- a method of encoding an image selecting one transform kernel among a plurality of transform kernels, performing transform on a residual block of a current block based on the selected transform kernel, and The method may include encoding the current block based on the transformed residual block.
- the information on the selected transform kernel may be included in the bitstream and signaled.
- selecting the transform kernel may be performed based on at least one of the size and shape of the residual block.
- the transform kernel to be applied to the horizontal transformation of the residual block when the horizontal length of the residual block is included in a predetermined range, and the horizontal length is not greater than the vertical length of the residual block, the transform kernel to be applied to the horizontal transformation of the residual block may be a second transform kernel. .
- the predetermined range may be from 4 samples to 16 samples
- the first transform kernel may be DST-7
- the second transform kernel may be DCT-2.
- the step of selecting the transform kernel, the size of the residual block and the intra prediction It may be performed based on at least one of the modes.
- the transform kernel is used.
- the selecting may be performed based on the information about the division of the current block and the information about the position in the current block of the sub residual block.
- the information about the division of the current block may include at least one of division direction information indicating whether the direction of division is vertical division or horizontal division and division ratio information indicating the division ratio. Can be.
- information on the division of the current block and information on the position of the sub residual block may be included in the bitstream and signaled.
- a computer-readable recording medium is a computer-readable recording medium storing a bitstream received by an image decoding apparatus and used to recover a current block included in an image.
- a residual information of a current block wherein the residual information is recovered and used to generate a residual block of the current block, the residual block being inversely transformed based on a selected one of a plurality of transform kernels
- the inverse transformed residual block may be used to recover the current block.
- a computer-readable recording medium can store a bitstream generated by the video encoding method according to the present invention.
- an image encoding / decoding method and apparatus with improved encoding / decoding efficiency can be provided.
- a method and apparatus for transforming, shuffling, rearranging, and / or flipping-based image encoding / decoding for improving encoding / decoding efficiency may be provided.
- an image encoding / decoding method and apparatus for improving the conversion efficiency of an image may be provided.
- a recording medium storing a bitstream generated by the video encoding / decoding method or apparatus of the present invention.
- FIG. 1 is a block diagram illustrating a configuration of an encoding apparatus according to an embodiment of the present invention.
- FIG. 2 is a block diagram illustrating a configuration of a decoding apparatus according to an embodiment of the present invention.
- FIG. 3 is a diagram schematically illustrating a division structure of an image when encoding and decoding an image.
- FIG. 4 is a diagram for explaining an embodiment of an intra prediction process.
- 5 is a diagram for describing an embodiment of an inter prediction process.
- FIG. 6 is a diagram for describing a process of transform and quantization.
- FIG. 7 is a diagram illustrating a basis vector in the frequency domain of DCT-2 according to the present invention.
- FIG. 9 illustrates a 2N ⁇ 2N prediction unit (PU) of an 8 ⁇ 8 coding unit (CU) predicted in an inter mode obtained by experimenting a “Cactus” sequence in a low delay-P profile environment. Is a diagram illustrating a distribution of average residual values according to positions in a circle.
- FIG. 10 is a 3D graph illustrating a residual signal distribution characteristic of a 2N ⁇ 2N prediction unit PU of an 8 ⁇ 8 coding unit CU predicted in an inter mode.
- FIG. 11 is a diagram illustrating a distribution feature of a residual signal in a 2N ⁇ 2N prediction unit (PU) mode of a coding unit (CU) according to the present invention.
- FIG. 12 illustrates residual signal distribution characteristics before and after shuffling of a 2N ⁇ 2N prediction unit (PU) according to the present invention.
- FIG. 13 illustrates an example of 4x4 residual data rearrangement of a subblock according to the present invention.
- FIG. 14A and 14B illustrate an embodiment of a transform unit (TU) partition structure of a coding unit (CU) and a shuffling method of a transform unit (TU) according to a prediction unit (PU) mode. It is a figure for demonstrating.
- TU transform unit
- CU coding unit
- PU prediction unit
- FIG. 15 is a diagram illustrating a result of performing DCT-2 and SDST transformation according to the residual signal distribution of the 2N ⁇ 2N prediction unit (PU).
- FIG 16 illustrates an SDST process according to the present invention.
- FIG. 17 is a diagram illustrating distribution characteristics of a partition of a transform unit (TU) and a magnitude of a residual absolute value for each prediction unit (PU) partition mode of an inter-screen predicted coding unit (CU) according to the present invention. to be.
- FIG. 18 is a diagram for describing a residual signal scanning order and a relocation order of a transform unit TU having a depth zero in a prediction unit PU according to an embodiment of the present invention.
- FIG. 19 is a flowchart illustrating a DCT-2 or SDST selective encoding process through rate-distortion optimization (RDO) according to the present invention.
- 20 is a flowchart illustrating a process of selecting and decoding DCT-2 or SDST according to the present invention.
- 21 is a flowchart illustrating a decoding process using the SDST according to the present invention.
- 22 and 23 illustrate positions where residual rearrangement is performed in the encoder and the decoder according to the present invention, respectively.
- 24 is a diagram for explaining an embodiment of a decoding method using the SDST method according to the present invention.
- 25 is a diagram for explaining one embodiment of an encoding method using an SDST method according to the present invention.
- FIG. 26 is a diagram for describing an embodiment of an encoding process of a method for performing after flipping.
- FIG. 27 illustrates an embodiment of a decoding process of a method of performing flipping after inverse transform.
- FIG. 28 illustrates an embodiment of an encoding process of a method of performing flipping after transformation.
- FIG. 29 illustrates an embodiment of a decoding process of a method of performing inverse transform after flipping.
- FIG. 30 is a diagram for describing an embodiment of an encoding process of a method of performing flipping after quantization.
- FIG. 31 illustrates an embodiment of a decoding process of a method of performing dequantization after flipping.
- 32 is a diagram to describe performing flipping on a residual block.
- FIG. 33 is a diagram illustrating an embodiment of implementing hardware flipping on a residual block having a size of 8 ⁇ 8 in hardware.
- 34 is a diagram to describe performing flipping and transformation on a residual block.
- first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
- the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
- any component of the invention When any component of the invention is said to be “connected” or “connected” to another component, it may be directly connected to or connected to that other component, but other components may be present in between. It should be understood that it may. On the other hand, when a component is referred to as being “directly connected” or “directly connected” to another component, it should be understood that there is no other component in between.
- each component shown in the embodiments of the present invention are shown independently to represent different characteristic functions, and do not mean that each component is made of separate hardware or one software component unit.
- each component is included in each component for convenience of description, and at least two of the components may be combined into one component, or one component may be divided into a plurality of components to perform a function.
- Integrated and separate embodiments of the components are also included within the scope of the present invention without departing from the spirit of the invention.
- Some components of the present invention are not essential components for performing essential functions in the present invention but may be optional components for improving performance.
- the present invention can be implemented including only the components essential for implementing the essentials of the present invention except for the components used for improving performance, and the structure including only the essential components except for the optional components used for improving performance. Also included in the scope of the present invention.
- an image may mean one picture constituting a video and may represent a video itself.
- "encoding and / or decoding of an image” may mean “encoding and / or decoding of a video” and may mean “encoding and / or decoding of one of the images constituting the video.” It may be.
- video and “video” may be used interchangeably and may be used interchangeably.
- the target image may be an encoding target image that is a target of encoding and / or a decoding target image that is a target of decoding.
- the target image may be an input image input to the encoding apparatus or may be an input image input to the decoding apparatus.
- the target image may have the same meaning as the current image.
- image image
- picture picture
- the target block may be an encoding target block that is a target of encoding and / or a decoding target block that is a target of decoding.
- the target block may be a current block that is a target of current encoding and / or decoding.
- target block and current block may be used interchangeably and may be used interchangeably.
- block and “unit” may be used interchangeably and may be used interchangeably. Or “block” may indicate a particular unit.
- region and “segment” may be used interchangeably.
- the specific signal may be a signal representing a specific block.
- the original signal may be a signal representing a target block.
- the prediction signal may be a signal representing a prediction block.
- the residual signal may be a signal representing a residual block.
- each of the specified information, data, flag, index and element, attribute, etc. may have a value.
- the value "0" of information, data, flags, indexes, elements, attributes, etc. may represent a logical false or first predefined value. In other words, the value "0", false, logical false and the first predefined value can be used interchangeably.
- the value "1" of information, data, flags, indexes, elements, attributes, etc. may represent a logical true or second predefined value. In other words, the value "1", true, logical true and the second predefined value can be used interchangeably.
- i When a variable such as i or j is used to indicate a row, column or index, the value of i may be an integer greater than or equal to zero and may be an integer greater than or equal to one. In other words, in embodiments, rows, columns, indexes, etc. may be counted from zero, and counted from one.
- Encoder refers to a device that performs encoding. That is, it may mean an encoding device.
- Decoder Means an apparatus that performs decoding. That is, it may mean a decoding device.
- An MxN array of samples An MxN array of samples.
- M and N may refer to positive integer values, and the block may refer to a two-dimensional sample array.
- a block may mean a unit.
- the current block may mean an encoding target block to be encoded at the time of encoding, and a decoding target block to be decoded at the time of decoding.
- the current block may be at least one of a coding block, a prediction block, a residual block, and a transform block.
- Sample The basic unit of a block. It can be expressed as a value from 0 to 2 Bd -1 according to the bit depth (B d ).
- B d bit depth
- a sample may be used in the same meaning as a pixel or a pixel. That is, samples, pixels, and pixels may have the same meaning.
- Unit may mean a unit of image encoding and decoding.
- the unit may be a region obtained by dividing one image.
- a unit may mean a divided unit when a single image is divided into subdivided units to be encoded or decoded. That is, one image may be divided into a plurality of units.
- a predetermined process may be performed for each unit.
- One unit may be further divided into subunits having a smaller size than the unit.
- the unit may be a block, a macroblock, a coding tree unit, a coding tree block, a coding unit, a coding block, a prediction.
- the unit may mean a unit, a prediction block, a residual unit, a residual block, a transform unit, a transform block, or the like.
- the unit may refer to a luma component block, a chroma component block corresponding thereto, and a syntax element for each block in order to refer to the block separately.
- the unit may have various sizes and shapes, and in particular, the shape of the unit may include a geometric figure that may be represented in two dimensions such as a rectangle, a trapezoid, a triangle, a pentagon, as well as a square.
- the unit information may include at least one of a type of a unit indicating a coding unit, a prediction unit, a residual unit, a transform unit, and the like, a size of a unit, a depth of a unit, an encoding and decoding order of the unit, and the like.
- Coding tree unit consists of two color difference component (Cb, Cr) coding tree blocks associated with one luminance component (Y) coding tree block. It may also mean including the blocks and syntax elements for each block.
- Each coding tree unit uses one or more partitioning methods, such as a quad tree, a binary tree, and a ternary tree, to form subunits such as a coding unit, a prediction unit, and a transformation unit. Can be divided. It may be used as a term for referring to a sample block that becomes a processing unit in a decoding / encoding process of an image, such as splitting an input image.
- the quad tree may mean a quarternary tree.
- the predetermined range may be defined as at least one of the maximum size and the minimum size of the coding block that can be split only by the quadtree.
- Information representing the maximum / minimum size of a coding block that allows quadtree-type partitioning may be signaled through a bitstream, and the information may be transmitted in units of at least one of a sequence, a picture parameter, a tile group, or a slice (segment). May be signaled.
- the maximum / minimum size of the coding block may be a fixed size pre-configured to the encoder / decoder.
- the size of the coding block corresponds to 256x256 to 64x64, it may be split only into quadtrees.
- the size of the coding block is larger than the size of the maximum transform block, it may be possible to divide only the quadtree.
- the divided block may be at least one of an encoding block and a transform block.
- the information (eg, split_flag) indicating the splitting of the coding block may be a flag indicating whether the quadtree is split.
- the size of the coding block is within a predetermined range, it may be possible to divide only into a binary tree or a three-split tree. In this case, the above description about the quadtree can be equally applied to the binary tree or the three-split tree.
- Coding Tree Block A term used to refer to any one of a Y coded tree block, a Cb coded tree block, and a Cr coded tree block.
- Neighbor block It may mean a block adjacent to the current block.
- the block adjacent to the current block may mean a block in which the boundary of the current block is in contact or a block located within a predetermined distance from the current block.
- the neighboring block may mean a block adjacent to a vertex of the current block.
- the block adjacent to the vertex of the current block may be a block vertically adjacent to a neighboring block horizontally adjacent to the current block or a block horizontally adjacent to a neighboring block vertically adjacent to the current block.
- the neighboring block may mean a restored neighboring block.
- Reconstructed Neighbor Block A neighboring block that is already encoded or decoded in a spatial / temporal manner around the current block.
- the restored neighboring block may mean a restored neighboring unit.
- the reconstructed spatial neighboring block may be a block in the current picture and a block already reconstructed through encoding and / or decoding.
- the reconstructed temporal neighboring block may be a reconstructed block or its neighboring block at a position corresponding to the current block of the current picture in the reference picture.
- the root node in the tree structure may correspond to the first unit that is not divided.
- the highest node may be called the root node.
- the highest node may have a minimum depth value.
- the highest node may have a depth of level 0.
- a node having a depth of level 1 may represent a unit created as the first unit is divided once.
- a node with a depth of level 2 may represent a unit created as the first unit is split twice.
- a node with a depth of level n may represent a unit generated as the first unit is divided n times.
- the leaf node may be the lowest node or may be a node that cannot be further divided.
- the depth of the leaf node may be at the maximum level. For example, the predefined value of the maximum level may be three.
- the root node has the shallowest depth and the leaf node has the deepest depth.
- the level at which the unit exists may mean the unit depth.
- Bitstream may mean a string of bits including encoded image information.
- Parameter Set Corresponds to header information among structures in the bitstream. At least one of a video parameter set, a sequence parameter set, a picture parameter set, and an adaptation parameter set may be included in the parameter set.
- the parameter set may also include tile group, slice header, and tile header information.
- the tile group may mean a group including several tiles, and may have the same meaning as a slice.
- Parsing This may mean determining a value of a syntax element by entropy decoding the bitstream or may mean entropy decoding itself.
- This may mean at least one of a syntax element, a coding parameter, a value of a transform coefficient, and the like, of a coding / decoding target unit.
- the symbol may mean an object of entropy encoding or a result of entropy decoding.
- Prediction mode Information indicating a mode encoded / decoded by intra prediction or a mode encoded / decoded by inter prediction.
- a prediction unit may mean a basic unit for performing prediction, such as inter prediction, intra prediction, inter compensation, intra compensation, motion compensation, and the like.
- One prediction unit may be divided into a plurality of partitions or a plurality of lower prediction units having a smaller size.
- the plurality of partitions may also be a basic unit in performing prediction or compensation.
- the partition generated by the partitioning of the prediction unit may also be the prediction unit.
- Prediction Unit Partition This may mean a form in which a prediction unit is divided.
- Reference Picture List may mean a list including one or more reference pictures used for inter prediction or motion compensation.
- the types of reference picture lists may be LC (List Combined), L0 (List 0), L1 (List 1), L2 (List 2), L3 (List 3), and the like. Lists can be used.
- Inter Prediction Indicator This may mean an inter prediction direction (unidirectional prediction, bidirectional prediction, etc.) of the current block. Alternatively, this may mean the number of reference pictures used when generating the prediction block of the current block. Alternatively, this may mean the number of prediction blocks used when performing inter prediction or motion compensation on the current block.
- Prediction list utilization flag Indicates whether a prediction block is generated using at least one reference picture in a specific reference picture list.
- the prediction list utilization flag may be derived using the prediction list utilization flag, and conversely, the prediction list utilization flag may be derived using the inter prediction prediction indicator. For example, when the prediction list utilization flag indicates 0 as the first value, it may indicate that the prediction block is not generated by using the reference image in the reference picture list, and when the 1 indicates the second value, the reference It may represent that the prediction block can be generated using the image list.
- Reference Picture Index This may mean an index indicating a specific reference picture in the reference picture list.
- Reference Picture refers to an image referenced by a specific block for inter prediction or motion compensation.
- the reference image may be an image including a reference block referenced by the current block for inter prediction or motion compensation.
- reference picture and reference picture may be used in the same sense and may be used interchangeably.
- Motion Vector This may be a 2D vector used for inter prediction or motion compensation.
- the motion vector may mean an offset between an encoding / decoding target block and a reference block.
- (mvX, mvY) may represent a motion vector.
- mvX may represent a horizontal component and mvY may represent a vertical component.
- the search range may be a two-dimensional area in which a search for a motion vector is performed during inter prediction.
- the size of the search region may be M ⁇ N.
- M and N may each be a positive integer.
- Motion Vector Candidate When a motion vector is predicted, it may mean a block that is a prediction candidate or a motion vector of the block. In addition, the motion vector candidate may be included in the motion vector candidate list.
- a motion vector candidate list may mean a list constructed using one or more motion vector candidates.
- a motion vector candidate index may refer to an indicator indicating a motion vector candidate in a motion vector candidate list. It may be an index of a motion vector predictor.
- Motion Information at least at least one of a motion vector, a reference picture index, an inter prediction prediction indicator, as well as a prediction list utilization flag, a reference picture list information, a reference picture, a motion vector candidate, a motion vector candidate index, a merge candidate, a merge index, and the like. It may mean information including one.
- a merge candidate list may mean a list constructed using one or more merge candidates.
- the merge candidate may mean a spatial merge candidate, a temporal merge candidate, a combined merge candidate, a combined both prediction merge candidate, a zero merge candidate, and the like.
- the merge candidate may include motion information such as an inter prediction prediction indicator, a reference image index for each list, a motion vector, a prediction list utilization flag, and an inter prediction prediction indicator.
- the index may indicate an indicator indicating a merge candidate in the merge candidate list.
- the merge index may indicate a block in which a merge candidate is derived among blocks reconstructed adjacent to the current block in a spatial / temporal manner.
- the merge index may indicate at least one of motion information included in the merge candidate.
- a transform unit may mean a basic unit for performing residual signal encoding / decoding such as transform, inverse transform, quantization, inverse quantization, and transform coefficient encoding / decoding.
- One transform unit may be divided into a plurality of lower transform units having a smaller size.
- the transform / inverse transform may include at least one of a primary transform / inverse transform and a secondary transform / inverse transform.
- Scaling This may mean a process of multiplying a factor by a quantized level.
- the transform coefficients can be generated as a result of scaling on the quantized level. Scaling can also be called dequantization.
- Quantization Parameter A value used when generating a quantized level using a transform coefficient in quantization. Or, it may mean a value used when generating a transform coefficient by scaling a quantized level in inverse quantization.
- the quantization parameter may be a value mapped to a quantization step size.
- a quantization parameter may mean a difference value between the predicted quantization parameter and the quantization parameter of the encoding / decoding target unit.
- Scan refers to a method of ordering coefficients in a unit, block, or matrix. For example, sorting a two-dimensional array into a one-dimensional array is called a scan. Alternatively, arranging the one-dimensional array in the form of a two-dimensional array may also be called a scan or an inverse scan.
- a transform coefficient may mean a coefficient value generated after the transform is performed in the encoder. Or, it may mean a coefficient value generated after performing at least one of entropy decoding and dequantization in the decoder.
- the quantized level or the quantized transform coefficient level obtained by applying the quantization to the transform coefficient or the residual signal may also be included in the meaning of the transform coefficient.
- Quantized Level A value generated by performing quantization on a transform coefficient or a residual signal in an encoder. Or, it may mean a value that is the object of inverse quantization before performing inverse quantization in the decoder. Similarly, the quantized transform coefficient level resulting from the transform and quantization may also be included in the meaning of the quantized level.
- Non-zero Transform Coefficient may mean a transform coefficient whose value is not zero or a transform coefficient level or quantized level whose size is not zero.
- Quantization Matrix A matrix used in a quantization or inverse quantization process to improve the subjective or objective image quality of an image.
- the quantization matrix may also be called a scaling list.
- Quantization Matrix Coefficient It may mean each element in the quantization matrix. Quantization matrix coefficients may also be referred to as matrix coefficients.
- a predetermined matrix may mean a predetermined quantization matrix defined in the encoder and the decoder.
- Non-default Matrix A non-default matrix, which is not defined in the encoder and the decoder, may be a quantization matrix signaled by a user.
- FIG. 1 is a block diagram illustrating a configuration of an encoding apparatus according to an embodiment of the present invention.
- the encoding apparatus 100 may be an encoder, a video encoding apparatus, or an image encoding apparatus.
- the video may include one or more images.
- the encoding apparatus 100 may sequentially encode one or more images.
- the encoding apparatus 100 may include a motion predictor 111, a motion compensator 112, an intra predictor 120, a switch 115, a subtractor 125, a transformer 130, and quantization.
- the unit 140 may include an entropy encoder 150, an inverse quantizer 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference picture buffer 190.
- the encoding apparatus 100 may encode the input image in an intra mode and / or an inter mode.
- the encoding apparatus 100 may generate a bitstream including the encoded information through encoding of the input image, and may output the generated bitstream.
- the generated bitstream can be stored in a computer readable recording medium or can be streamed via a wired / wireless transmission medium.
- the switch 115 may be switched to intra, and when the inter mode is used as the prediction mode, the switch 115 may be switched to inter.
- the intra mode may mean an intra prediction mode
- the inter mode may mean an inter prediction mode.
- the encoding apparatus 100 may generate a prediction block for the input block of the input image.
- the encoding apparatus 100 may encode the residual block by using a difference between the input block and the prediction block.
- the input image may be referred to as a current image that is a target of current encoding.
- the input block may be referred to as a current block or an encoding target block that is a target of the current encoding.
- the intra prediction unit 120 may use a sample of a block that is already encoded / decoded around the current block as a reference sample.
- the intra predictor 120 may perform spatial prediction on the current block by using the reference sample, and generate prediction samples on the input block through spatial prediction.
- Intra prediction may refer to intra prediction.
- the motion predictor 111 may search an area that best matches the input block from the reference image in the motion prediction process, and derive a motion vector using the searched area. .
- a search area may be used as the area.
- the reference picture may be stored in the reference picture buffer 190.
- the reference picture buffer 190 may be stored in the reference picture buffer 190.
- the motion compensator 112 may generate a prediction block for the current block by performing motion compensation using the motion vector.
- inter prediction may mean inter prediction or motion compensation.
- the motion predictor 111 and the motion compensator 112 may generate a prediction block by applying an interpolation filter to a part of a reference image when the motion vector does not have an integer value.
- a motion prediction and a motion compensation method of a prediction unit included in a coding unit based on a coding unit may include a skip mode, a merge mode, and an improved motion vector prediction. It may determine whether the advanced motion vector prediction (AMVP) mode or the current picture reference mode is used, and may perform inter prediction or motion compensation according to each mode.
- AMVP advanced motion vector prediction
- the subtractor 125 may generate a residual block using the difference between the input block and the prediction block.
- the residual block may be referred to as the residual signal.
- the residual signal may mean a difference between the original signal and the prediction signal.
- the residual signal may be a signal generated by transforming, quantizing, or transforming and quantizing a difference between the original signal and the prediction signal.
- the residual block may be a residual signal in block units.
- the transform unit 130 may generate transform coefficients by performing transform on the residual block and output the generated transform coefficients.
- the transform coefficient may be a coefficient value generated by performing transform on the residual block.
- the transform unit 130 may omit the transform on the residual block.
- Quantized levels can be generated by applying quantization to transform coefficients or residual signals.
- the quantized level may also be referred to as a transform coefficient.
- the quantization unit 140 may generate a quantized level by quantizing the transform coefficient or the residual signal according to the quantization parameter, and may output the generated quantized level. In this case, the quantization unit 140 may quantize the transform coefficients using the quantization matrix.
- the entropy encoder 150 may generate a bitstream by performing entropy encoding according to probability distribution on values calculated by the quantizer 140 or coding parameter values calculated in the encoding process. And output a bitstream.
- the entropy encoder 150 may perform entropy encoding on information about a sample of an image and information for decoding an image.
- the information for decoding the image may include a syntax element.
- the entropy encoder 150 may use an encoding method such as exponential Golomb, context-adaptive variable length coding (CAVLC), or context-adaptive binary arithmetic coding (CABAC) for entropy encoding.
- CAVLC context-adaptive variable length coding
- CABAC context-adaptive binary arithmetic coding
- the entropy encoder 150 may perform entropy coding using a variable length coding (VLC) table.
- VLC variable length coding
- the entropy coding unit 150 derives the binarization method of the target symbol and the probability model of the target symbol / bin, and then derives the derived binarization method, the probability model, and the context model. Arithmetic coding may also be performed using.
- the entropy encoder 150 may change a two-dimensional block form coefficient into a one-dimensional vector form through a transform coefficient scanning method to encode a transform coefficient level (quantized level).
- the coding parameter may include information derived from an encoding process or a decoding process as well as information (flag, index, etc.) encoded by an encoder and signaled to a decoder, such as a syntax element, and may be encoded or decoded. May mean necessary information.
- signaling a flag or index may mean that the encoder entropy encodes the flag or index and includes the flag or index in the bitstream, and the decoder may encode the flag or index from the bitstream. It may mean entropy decoding.
- the encoded current image may be used as a reference image for another image to be processed later. Accordingly, the encoding apparatus 100 may reconstruct or decode the encoded current image and store the reconstructed or decoded image as a reference image in the reference picture buffer 190.
- the quantized level may be dequantized in inverse quantization unit 160.
- the inverse transform unit 170 may perform an inverse transform.
- the inverse quantized and / or inverse transformed coefficients may be summed with the prediction block via the adder 175.
- a reconstructed block may be generated by adding the inverse quantized and / or inverse transformed coefficients with the prediction block.
- the inverse quantized and / or inverse transformed coefficient may mean a coefficient in which at least one or more of inverse quantization and inverse transformation have been performed, and may mean a reconstructed residual block.
- the recovery block may pass through the filter unit 180.
- the filter unit 180 may add at least one of a deblocking filter, a sample adaptive offset (SAO), an adaptive loop filter (ALF), and the like to a reconstructed sample, a reconstructed block, or a reconstructed image. Applicable
- the filter unit 180 may be referred to as an in-loop filter.
- the deblocking filter may remove block distortion generated at boundaries between blocks.
- it may be determined whether to apply the deblocking filter to the current block based on samples included in several columns or rows included in the block.
- different filters may be applied according to the required deblocking filtering strength.
- a sample offset may be used to add an appropriate offset to the sample value to compensate for encoding errors.
- the sample adaptive offset may correct the offset with respect to the original image in units of samples with respect to the deblocked image. After dividing the samples included in the image into a predetermined number of areas, an area to be offset may be determined and an offset may be applied to the corresponding area, or an offset may be applied in consideration of edge information of each sample.
- the adaptive loop filter may perform filtering based on a comparison value between the reconstructed image and the original image. After dividing a sample included in an image into a predetermined group, a filter to be applied to the corresponding group may be determined and filtering may be performed for each group. Information related to whether to apply the adaptive loop filter may be signaled for each coding unit (CU), and the shape and filter coefficient of the adaptive loop filter to be applied according to each block may vary.
- CU coding unit
- the reconstructed block or the reconstructed image that has passed through the filter unit 180 may be stored in the reference picture buffer 190.
- the reconstructed block that has passed through the filter unit 180 may be part of the reference image.
- the reference image may be a reconstructed image composed of reconstructed blocks that have passed through the filter unit 180.
- the stored reference image may then be used for inter prediction or motion compensation.
- FIG. 2 is a block diagram illustrating a configuration of a decoding apparatus according to an embodiment of the present invention.
- the decoding apparatus 200 may be a decoder, a video decoding apparatus, or an image decoding apparatus.
- the decoding apparatus 200 may include an entropy decoder 210, an inverse quantizer 220, an inverse transform unit 230, an intra predictor 240, a motion compensator 250, and an adder 255.
- the filter unit 260 may include a reference picture buffer 270.
- the decoding apparatus 200 may receive a bitstream output from the encoding apparatus 100.
- the decoding apparatus 200 may receive a bitstream stored in a computer readable recording medium or may receive a bitstream streamed through a wired / wireless transmission medium.
- the decoding apparatus 200 may decode the bitstream in an intra mode or an inter mode.
- the decoding apparatus 200 may generate a reconstructed image or a decoded image through decoding, and output the reconstructed image or the decoded image.
- the switch When the prediction mode used for decoding is an intra mode, the switch may be switched to intra. When the prediction mode used for decoding is an inter mode, the switch may be switched to inter.
- the decoding apparatus 200 may obtain a reconstructed residual block by decoding the input bitstream, and generate a prediction block. When the reconstructed residual block and the prediction block are obtained, the decoding apparatus 200 may generate a reconstruction block to be decoded by adding the reconstructed residual block and the prediction block.
- the decoding target block may be referred to as a current block.
- the entropy decoder 210 may generate symbols by performing entropy decoding according to a probability distribution of the bitstream.
- the generated symbols may include symbols in the form of quantized levels.
- the entropy decoding method may be an inverse process of the above-described entropy encoding method.
- the entropy decoder 210 may change the one-dimensional vector form coefficient into a two-dimensional block form through a transform coefficient scanning method in order to decode the transform coefficient level (quantized level).
- the quantized level may be inverse quantized by the inverse quantizer 220 and inversely transformed by the inverse transformer 230.
- the quantized level may be generated as a reconstructed residual block as a result of inverse quantization and / or inverse transformation.
- the inverse quantization unit 220 may apply a quantization matrix to the quantized level.
- the intra predictor 240 may generate the prediction block by performing spatial prediction on the current block using a sample value of an already decoded block around the decoding target block.
- the motion compensator 250 may generate a prediction block by performing motion compensation on the current block using the reference image stored in the motion vector and the reference picture buffer 270.
- the motion compensator 250 may generate a prediction block by applying an interpolation filter to a portion of the reference image.
- it may be determined whether a motion compensation method of a prediction unit included in the coding unit is a skip mode, a merge mode, an AMVP mode, or a current picture reference mode based on the coding unit, and each mode According to the present invention, motion compensation may be performed.
- the adder 255 may generate a reconstructed block by adding the reconstructed residual block and the predictive block.
- the filter unit 260 may apply at least one of a deblocking filter, a sample adaptive offset, and an adaptive loop filter to the reconstructed block or the reconstructed image.
- the filter unit 260 may output the reconstructed image.
- the reconstructed block or reconstructed picture may be stored in the reference picture buffer 270 to be used for inter prediction.
- the reconstructed block that has passed through the filter unit 260 may be part of the reference image.
- the reference image may be a reconstructed image composed of reconstructed blocks that have passed through the filter unit 260.
- the stored reference image may then be used for inter prediction or motion compensation.
- 3 is a diagram schematically illustrating a division structure of an image when encoding and decoding an image. 3 schematically shows an embodiment in which one unit is divided into a plurality of sub-units.
- a coding unit may be used in encoding and decoding.
- a coding unit may be used as a basic unit of image encoding / decoding.
- the coding unit may be used as a unit that separates the intra prediction mode and the inter prediction mode during image encoding / decoding.
- the coding unit may be a basic unit used for a process of prediction, transform, quantization, inverse transform, inverse quantization, or encoding / decoding of transform coefficients.
- the image 300 is sequentially divided into units of a largest coding unit (LCU), and a split structure is determined by units of an LCU.
- the LCU may be used as the same meaning as a coding tree unit (CTU).
- the division of the unit may mean division of a block corresponding to the unit.
- the block division information may include information about a depth of a unit.
- the depth information may indicate the number and / or degree of division of the unit.
- One unit may be divided into a plurality of sub-units hierarchically with depth information based on a tree structure. In other words, the unit and the lower unit generated by the division of the unit may correspond to the node and the child node of the node, respectively.
- Each divided subunit may have depth information.
- the depth information may be information indicating the size of a CU and may be stored for each CU. Since the unit depth indicates the number and / or degree of division of the unit, the division information of the lower unit may include information about the size of the lower unit.
- the partition structure may mean a distribution of a coding unit (CU) in the CTU 310. This distribution may be determined according to whether to divide one CU into a plurality of CUs (two or more positive integers including 2, 4, 8, 16, etc.).
- the horizontal and vertical sizes of the CUs created by splitting are either half of the horizontal and vertical sizes of the CU before splitting, or smaller than the horizontal and vertical sizes of the CU before splitting, depending on the number of splits.
- Can have A CU may be recursively divided into a plurality of CUs. By recursive partitioning, the size of at least one of the horizontal size and vertical size of the divided CU can be reduced compared to at least one of the horizontal size and vertical size of the CU before splitting.
- Partitioning of a CU can be done recursively up to a predefined depth or a predefined size.
- the depth of the CTU may be 0, and the depth of the smallest coding unit (SCU) may be a predefined maximum depth.
- the CTU may be a coding unit having a maximum coding unit size as described above, and the SCU may be a coding unit having a minimum coding unit size.
- the division starts from the CTU 310, and the depth of the CU increases by one each time the division reduces the horizontal size and / or vertical size of the CU.
- a CU that is not divided may have a size of 2N ⁇ 2N.
- a CU of 2N ⁇ 2N size may be divided into four CUs having an N ⁇ N size. The size of N can be reduced by half for every 1 increase in depth.
- information on whether the CU is split may be expressed through split information of the CU.
- the split information may be 1 bit of information. All CUs except the SCU may include partition information. For example, if the value of the partition information is the first value, the CU may not be split, and if the value of the partition information is the second value, the CU may be split.
- a zero-depth CTU may be a 64x64 block. 0 may be the minimum depth.
- An SCU of depth 3 may be an 8x8 block. 3 may be the maximum depth.
- CUs of 32x32 blocks and 16x16 blocks may be represented by depth 1 and depth 2, respectively.
- the horizontal and vertical sizes of the divided four coding units may each have a size of half compared to the horizontal and vertical sizes of the coding unit before being split. have.
- the four divided coding units may each have a size of 16x16.
- quad-tree partitions quad-tree partitions
- the horizontal or vertical size of the divided two coding units may have a half size compared to the horizontal or vertical size of the coding unit before splitting.
- the two split coding units may have a size of 16x32.
- the two divided coding units may each have a size of 8x16.
- the coding unit when one coding unit is divided into three coding units, the coding unit may be divided into three coding units by dividing the horizontal or vertical size of the coding unit in a ratio of 1: 2: 1 before being split.
- the divided three coding units when a 16x32 size coding unit is horizontally divided into three coding units, the divided three coding units may have sizes of 16x8, 16x16, and 16x8, respectively, from an upper side.
- the divided three coding units when a 32x32 size coding unit is vertically divided into three coding units, the divided three coding units may have sizes of 8x32, 16x32, and 8x32 from the left, respectively.
- the coding unit When one coding unit is divided into three coding units, it may be said that the coding unit is divided into ternary-tree partitions.
- the CTU 320 of FIG. 3 is an example of a CTU to which all of quadtree division, binary tree division, and three division tree division are applied.
- quadtree splitting may be preferentially applied to CTUs.
- a coding unit that can no longer be quadtree split may correspond to a leaf node of the quadtree.
- the coding unit corresponding to the leaf node of the quadtree may be a root node of a binary tree and / or a three split tree. That is, the coding unit corresponding to the leaf node of the quadtree may be binary tree split, 3-split tree split, or no longer split.
- quadrature splitting is not performed on the coding unit generated by binary tree splitting or tri-partitioning of the coding unit corresponding to the leaf node of the quadtree, thereby signaling block division and / or splitting information. It can be done effectively.
- the division of the coding unit corresponding to each node of the quadtree may be signaled using quad division information.
- Quad division information having a first value (eg, '1') may indicate that the corresponding coding unit is quadtree divided.
- Quad division information having a second value (eg, '0') may indicate that the corresponding coding unit is not quadtree divided.
- the quad division information may be a flag having a predetermined length (eg, 1 bit).
- Priority may not exist between binary tree partitioning and 3-partition tree partitioning. That is, the coding unit corresponding to the leaf node of the quadtree may be binary tree split or 3 split tree split. In addition, the coding unit generated by binary tree splitting or tri-partition splitting may be further divided into binary tree split or tri-partition splitting or no longer split.
- Partitioning when there is no priority between binary tree partitioning and 3-partition tree partitioning may be referred to as a multi-type tree partition. That is, the coding unit corresponding to the leaf node of the quadtree may be the root node of a multi-type tree.
- the splitting of the coding unit corresponding to each node of the composite tree may be signaled using at least one of splitting information of splitting tree, splitting direction information, and splitting tree information. Partition information, split direction information, and split tree information may be signaled sequentially for splitting coding units corresponding to each node of the complex tree.
- the splitting information of the composite tree having the first value may indicate that the corresponding coding unit is split into the composite tree.
- the splitting information of the composite tree having the second value (eg, '0') may indicate that the corresponding coding unit is not split in the composite tree.
- the coding unit may further include split direction information.
- the split direction information may indicate the split direction of the complex tree split.
- the split direction information having the first value (eg, '1') may indicate that the corresponding coding unit is split in the vertical direction.
- the split direction information having a second value (eg, '0') may indicate that the corresponding coding unit is split in the horizontal direction.
- the coding unit may further include split tree information.
- the split tree information may indicate a tree used for compound tree split.
- the split tree information having a first value (eg, '1') may indicate that the corresponding coding unit is binary tree split.
- Split tree information having a second value (eg, '0') may indicate that the corresponding coding unit is divided into three split trees.
- the split information, split tree information, and split direction information may each be flags having a predetermined length (eg, 1 bit).
- At least one of quad split information, split tree information, split direction information, and split tree information may be entropy encoded / decoded.
- information of the neighboring coding unit adjacent to the current coding unit may be used.
- the split form (split state, split tree and / or split direction) of the left coding unit and / or the upper coding unit is likely to be similar to the split form of the current coding unit. Therefore, context information for entropy encoding / decoding of the information of the current coding unit can be derived based on the information of the neighboring coding unit.
- the information of the neighboring coding unit may include at least one of quad splitting information of the corresponding coding unit, splitting information of the composite tree, splitting direction information, and splitting tree information.
- binary tree splitting may be performed preferentially.
- binary tree splitting is applied first, and the coding unit corresponding to the leaf node of the binary tree may be set as the root node of the 3-split tree.
- quadtree splitting and binary tree splitting may not be performed on a coding unit corresponding to a node of a three split tree.
- a coding unit that is no longer split by quadtree splitting, binary tree splitting, and / or 3 splittree splitting may be a unit of encoding, prediction, and / or transform. That is, the coding unit may no longer be split for prediction and / or transformation. Therefore, a partitioning structure, partitioning information, etc. for splitting a coding unit into prediction units and / or transform units may not exist in the bitstream.
- the corresponding coding unit may be recursively split until the size is equal to or smaller than the size of the maximum transform block.
- the coding unit may be divided into four 32x32 blocks for transformation.
- the coding unit may be divided into two 32x32 blocks for transformation. In this case, whether to split the coding unit for transformation is not signaled separately, but may be determined by comparing the width or length of the coding unit with the width or length of the maximum transform block.
- the coding unit when the width of the coding unit is larger than the width of the largest transform block, the coding unit may be divided into two vertically. In addition, when the height of the coding unit is larger than the length of the largest transform block, the coding unit may be divided into two horizontally.
- Information about the maximum and / or minimum size of the coding unit may be signaled or determined at a higher level of the coding unit.
- the higher level may be, for example, a sequence level, a picture level, a tile level, a tile group level, a slice level, and the like.
- the minimum size of the coding unit may be determined as 4 ⁇ 4.
- the maximum size of the transform block may be determined to be 64x64.
- the minimum size of the transform block may be determined as 4 ⁇ 4.
- Information about the minimum size (quadtree minimum size) of the coding unit corresponding to the leaf node of the quadtree and / or the maximum depth (maximum depth of the composite tree) from the root node to the leaf node of the composite tree is encoded. It may be signaled or determined at a higher level of the unit.
- the higher level may be, for example, a sequence level, a picture level, a slice level, a tile group level, a tile level, and the like.
- the information about the quadtree minimum size and / or the information about the maximum depth of the composite tree may be signaled or determined for each of the slice in the picture and the slice between the pictures.
- Difference information about the size of the CTU and the maximum size of the transform block may be signaled or determined at a higher level of the coding unit.
- the higher level may be, for example, a sequence level, a picture level, a slice level, a tile group level, a tile level, and the like.
- Information about the maximum size (binary tree maximum size) of the coding unit corresponding to each node of the binary tree may be determined based on the size of the coding tree unit and the difference information.
- the maximum size (maximum size of the three-split tree) of the coding unit corresponding to each node of the three-split tree may have a different value depending on the slice type.
- the maximum size of the three-split tree may be 32x32.
- the maximum size of the three-split tree may be 128x128.
- the minimum size of the coding unit corresponding to each node of the binary tree (binary tree minimum size) and / or the minimum size of the coding unit corresponding to each node of the three split tree (three split tree minimum size) is the minimum size of the coding block. Can be set to size.
- the binary tree maximum size and / or the split tree maximum size may be signaled or determined at the slice level.
- the binary tree minimum size and / or the split tree minimum size may be signaled or determined at the slice level.
- quad split information, split tree information, split tree information, and / or split direction information may or may not be present in the bitstream.
- the coding unit does not include quad split information, and the quad split information may be inferred as a second value.
- the coding unit is Binary tree splitting and / or three splitting tree splitting may not be possible. Accordingly, splitting information of the composite tree is not signaled and can be inferred as a second value.
- the size (horizontal and vertical) of the coding unit corresponding to the node of the complex tree is the same as the binary tree minimum size (horizontal and vertical), or the size (horizontal and vertical) of the coding unit is the minimum size (horizontal) of the split tree.
- the coding unit may not be binary tree split and / or 3 split tree split. Accordingly, splitting information of the composite tree is not signaled and can be inferred as a second value. This is because, when the coding unit divides the binary tree and / or divides the tri-tree, a coding unit smaller than the minimum size of the binary tree and / or the minimum size of the tri-partition tree is generated.
- the coding unit may not be binary tree split and / or 3 split tree split. Accordingly, splitting information of the composite tree is not signaled and can be inferred as a second value.
- the composite type may be used only when at least one of vertical binary tree splitting, horizontal binary splitting, vertical triangular splitting, and horizontal triangular splitting is possible for a coding unit corresponding to a node of the composite tree.
- Information on whether to split the tree may be signaled. Otherwise, the coding unit may not be binary-tree split and / or tri-partition split. Accordingly, splitting information of the composite tree is not signaled and can be inferred as a second value.
- Division direction information may be signaled. Otherwise, the split direction information may not be signaled and may be inferred as a value indicating a split direction.
- the encoding unit corresponding to the node of the complex tree may be both vertical binary tree splitting and vertical triangular splitting, or both horizontal binary splitting and horizontal splitting may be performed.
- the split tree information may be signaled. Otherwise, the split tree information is not signaled and can be inferred as a value indicating a splittable tree.
- FIG. 4 is a diagram for explaining an embodiment of an intra prediction process.
- Arrows from the center to the outside of FIG. 4 may indicate prediction directions of intra prediction modes.
- Intra picture encoding and / or decoding may be performed using reference samples of neighboring blocks of the current block.
- the neighboring block may be a restored neighboring block.
- intra picture encoding and / or decoding may be performed using a value or encoding parameter of a reference sample included in the reconstructed neighboring block.
- the prediction block may mean a block generated as a result of performing the intra prediction.
- the prediction block may correspond to at least one of a CU, a PU, and a TU.
- the unit of a prediction block may be the size of at least one of a CU, a PU, and a TU.
- the prediction block may be a block in the form of a square having a size of 2x2, 4x4, 16x16, 32x32, or 64x64, or a rectangular block having a size of 2x8, 4x8, 2x16, 4x16, and 8x16.
- the intra prediction may be performed according to the intra prediction mode for the current block.
- the number of intra prediction modes that the current block may have may be a predetermined fixed value or may be a value determined differently according to an attribute of the prediction block.
- the attributes of the prediction block may include the size of the prediction block and the shape of the prediction block.
- the number of intra prediction modes may be fixed to N regardless of the size of the block. Or, for example, the number of intra prediction modes may be 3, 5, 9, 17, 34, 35, 36, 65, 67, or the like. Alternatively, the number of intra prediction modes may differ depending on the size of the block and / or the type of color component. For example, the number of intra prediction modes may vary depending on whether the color component is a luma signal or a chroma signal. For example, as the size of the block increases, the number of intra prediction modes may increase. Alternatively, the number of intra prediction modes of the luminance component block may be greater than the number of intra prediction modes of the chrominance component block.
- the intra prediction mode may be a non-directional mode or a directional mode.
- the non-directional mode may be a DC mode or a planar mode
- the angular mode may be a prediction mode having a specific direction or angle.
- the intra prediction mode may be expressed by at least one of a mode number, a mode value, a mode number, a mode angle, and a mode direction.
- the number of intra prediction modes may be one or more M including the non-directional and directional modes.
- a step of checking whether samples included in the reconstructed neighboring block are available as reference samples of the current block to predict the current block in the screen may be performed. If there is a sample that is not available as the reference sample of the current block, the sample value of the sample that is not available as the reference sample by using a value obtained by copying and / or interpolating at least one sample value included in the restored neighboring block. After replacing it, it can be used as a reference sample of the current block.
- a filter may be applied to at least one of the reference sample or the prediction sample based on at least one of the intra prediction mode and the size of the current block.
- the weighted sum of the upper and left reference samples of the current sample, the upper right and lower left reference samples of the current block, according to the position in the prediction block of the sample to be predicted is used.
- the sample value of the sample to be predicted may be generated.
- an average value of the upper and left reference samples of the current block may be used.
- the prediction block may be generated using the upper, left, upper right and / or lower left reference samples of the current block. Real number interpolation may be performed to generate predictive sample values.
- the intra prediction mode of the current block may be entropy encoded / decoded by predicting the intra prediction mode of a block existing around the current block.
- information indicating that the intra prediction modes of the current block and the neighboring blocks are the same may be signaled using predetermined flag information.
- indicator information on the same intra prediction mode as the intra prediction mode of the current block among the intra prediction modes of the plurality of neighboring blocks may be signaled. If the intra prediction modes of the current block and the neighboring block are different, entropy encoding / decoding may be performed based on the intra prediction mode of the neighboring block to entropy encode / decode the intra prediction mode information of the current block.
- 5 is a diagram for describing an embodiment of an inter prediction process.
- the rectangle illustrated in FIG. 5 may represent an image.
- arrows in FIG. 5 may indicate prediction directions.
- Each picture may be classified into an I picture (Intra Picture), a P picture (Predictive Picture), a B picture (Bi-predictive Picture), and the like.
- I pictures may be encoded / decoded through intra prediction without inter prediction.
- the P picture may be encoded / decoded through inter prediction using only reference pictures existing in one direction (eg, forward or reverse direction).
- the B picture may be encoded / decoded through inter prediction using reference images existing in both directions (eg, forward and reverse).
- the B picture may be encoded / decoded through inter prediction using reference images existing in bidirectional directions or inter prediction using reference images existing in one of forward and reverse directions.
- the bidirectional can be forward and reverse.
- the encoder may perform inter prediction or motion compensation
- the decoder may perform motion compensation corresponding thereto.
- Inter prediction or motion compensation may be performed using a reference image and motion information.
- the motion information on the current block may be derived during inter prediction by each of the encoding apparatus 100 and the decoding apparatus 200.
- the motion information may be derived using motion information of the restored neighboring block, motion information of a collocated block (col block), and / or a block adjacent to the call block.
- the call block may be a block corresponding to a spatial position of the current block in a collocated picture (col picture).
- the call picture may be one picture among at least one reference picture included in the reference picture list.
- the method of deriving the motion information may vary depending on the prediction mode of the current block.
- a prediction mode applied for inter prediction may include an AMVP mode, a merge mode, a skip mode, a current picture reference mode, and the like.
- the merge mode may be referred to as a motion merge mode.
- a motion vector candidate list may be generated.
- a motion vector candidate may be derived using the generated motion vector candidate list.
- the motion information of the current block may be determined based on the derived motion vector candidate.
- the motion vector of the collocated block or the motion vector of the block adjacent to the collocated block may be referred to as a temporal motion vector candidate, and the restored motion vector of the neighboring block is a spatial motion vector candidate. It may be referred to as).
- the encoding apparatus 100 may calculate a motion vector difference (MVD) between the motion vector and the motion vector candidate of the current block, and may entropy-encode the MVD.
- the encoding apparatus 100 may generate a bitstream by entropy encoding a motion vector candidate index.
- the motion vector candidate index may indicate an optimal motion vector candidate selected from the motion vector candidates included in the motion vector candidate list.
- the decoding apparatus 200 may entropy decode the motion vector candidate index from the bitstream, and select the motion vector candidate of the decoding target block from the motion vector candidates included in the motion vector candidate list using the entropy decoded motion vector candidate index. .
- the decoding apparatus 200 may derive the motion vector of the decoding object block through the sum of the entropy decoded MVD and the motion vector candidate.
- the bitstream may include a reference picture index and the like indicating the reference picture.
- the reference image index may be entropy encoded and signaled from the encoding apparatus 100 to the decoding apparatus 200 through a bitstream.
- the decoding apparatus 200 may generate a prediction block for the decoding target block based on the derived motion vector and the reference image index information.
- the merge mode may mean merging of motions for a plurality of blocks.
- the merge mode may refer to a mode of deriving motion information of the current block from motion information of neighboring blocks.
- a merge candidate list may be generated using motion information of the restored neighboring block and / or motion information of the call block.
- the motion information may include at least one of 1) a motion vector, 2) a reference picture index, and 3) an inter prediction prediction indicator.
- the prediction indicator may be unidirectional (L0 prediction, L1 prediction) or bidirectional.
- the merge candidate list may represent a list in which motion information is stored.
- the motion information stored in the merge candidate list includes motion information (spatial merge candidate) of neighboring blocks adjacent to the current block and motion information (temporary merge candidate (collocated)) of the block corresponding to the current block in the reference picture. temporal merge candidate)), new motion information generated by a combination of motion information already present in the merge candidate list, and zero merge candidate.
- the encoding apparatus 100 may generate a bitstream by entropy encoding at least one of a merge flag and a merge index, and may signal the decoding apparatus 200.
- the merge flag may be information indicating whether to perform a merge mode for each block
- the merge index may be information on which one of neighboring blocks adjacent to the current block is merged.
- the neighboring blocks of the current block may include at least one of a left neighboring block, a top neighboring block, and a temporal neighboring block of the current block.
- the skip mode may be a mode in which motion information of a neighboring block is applied to the current block as it is.
- the encoding apparatus 100 may entropy-code information about which block motion information to use as the motion information of the current block and signal the decoding apparatus 200 through the bitstream. In this case, the encoding apparatus 100 may not signal a syntax element regarding at least one of motion vector difference information, an encoding block flag, and a transform coefficient level (quantized level) to the decoding apparatus 200.
- the current picture reference mode may mean a prediction mode using a pre-restored region in the current picture to which the current block belongs. In this case, a vector may be defined to specify the pre-restored region.
- Whether the current block is encoded in the current picture reference mode may be encoded using a reference picture index of the current block.
- a flag or index indicating whether the current block is a block encoded in the current picture reference mode may be signaled or may be inferred through the reference picture index of the current block.
- the current picture When the current block is encoded in the current picture reference mode, the current picture may be added at a fixed position or an arbitrary position in the reference picture list for the current block.
- the fixed position may be, for example, a position at which the reference picture index is 0 or the last position.
- a separate reference image index indicating the arbitrary position may be signaled.
- FIG. 6 is a diagram for describing a process of transform and quantization.
- a quantized level may be generated by performing a transform and / or quantization process on the residual signal.
- the residual signal may be generated as a difference between an original block and a prediction block (intra-prediction block or inter-prediction block).
- the prediction block may be a block generated by intra prediction or inter prediction.
- the transformation may include at least one of a primary transformation and a secondary transformation. When the primary transform is performed on the residual signal, the transform coefficient may be generated, and the secondary transform coefficient may be generated by performing the secondary transform on the transform coefficient.
- the primary transform may be performed using at least one of a plurality of pre-defined transformation methods.
- the plurality of pre-defined transformation methods may include a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), or a Karhunen-Loeve Transform (KLT) based transformation.
- Secondary transform may be performed on the transform coefficient generated after the primary transform is performed.
- the transformation method applied during the primary transform and / or the secondary transform may be determined according to at least one of encoding parameters of the current block and / or the neighboring block.
- transformation information indicating a transformation method may be signaled.
- Quantization may be performed by performing quantization on the result of the primary transform and / or the secondary transform or the residual signal to generate a quantized level.
- the quantized level may be scanned according to at least one of a top right diagonal scan, a vertical scan, and a horizontal scan based on at least one of an intra prediction mode or a block size / shape. For example, it can be changed into a one-dimensional vector form by scanning the coefficients of the block using up-right diagonal scanning.
- a vertical scan that scans two-dimensional block shape coefficients in a column direction instead of a right upper diagonal scan may be used, and a horizontal scan that scans two-dimensional block shape coefficients in a row direction may be used.
- the scanned quantized level may be entropy coded and included in the bitstream.
- the decoder may entropy decode the bitstream to generate quantized levels.
- the quantized levels may be inverse scanned and aligned in the form of two-dimensional blocks. In this case, at least one of the upper right diagonal scan, the vertical scan, and the horizontal scan may be performed as a reverse scanning method.
- Inverse quantization can be performed on the quantized level, the second inverse transform can be performed according to whether or not the second inverse transform is performed, and the first inverse transform is performed according to whether or not the first inverse transform is performed on the result of the second inverse transform.
- Generated residual signal can be generated.
- the encoding of the existing video coding includes an intra / inter prediction step for predicting an original block that is a large part of the current original image, a predicted prediction block and an original block.
- the transform and quantization step of the residual block which is the difference of
- the entropy coding step which is a probability-based lossless compression method for the coefficients of the transform and quantized blocks and the compression information obtained in the preceding stage
- the original A bitstream which is a compressed form of an image, is formed and transmitted to a decoder or stored in a recording medium.
- Shuffling and Discrete Sine Transform (hereinafter referred to as "SDST), which will be described later in the specification, is intended to increase the efficiency of the transformation to improve the compression efficiency.
- the SDST method according to the present invention is discrete sine instead of discrete cosine transform type-2 (hereinafter, “DCT-II” or “DCT-2”), which is a transform kernel widely used in video coding.
- DCT-II discrete cosine transform type-2
- DCT-7 Discrete Sine Transform type-7
- a high objective video quality can be obtained even at a relatively low bit amount compared to the conventional video coding method.
- DST-7 may be applied to data of a residual block.
- DST-7 application to the residual block may be performed based on the prediction mode corresponding to the residual block. For example, it may be applied to the residual block encoded in the inter mode (inter picture mode).
- the DST-7 may be applied after rearranging or shuffling data of the residual block.
- shuffling refers to rearrangement of image data, and can be referred to as residual signal rearrangement or flipping.
- the residual block may have the same meaning as a residual, residual block, residual signal, residual signal, residual data, or residual data.
- the residual block may include a reconstructed residual, a reconstructed residual block, a reconstructed residual signal, a reconstructed residual signal, a reconstructed residual data, or a reconstructed residual data, in which a residual block is reconstructed in an encoder and a decoder. It may have the same meaning as.
- the SDST may use DST-7 as a conversion kernel.
- the transform kernel of the SDST is not limited to the DST-7, and the discrete sine transform type-1 (DST-1), the discrete sine transform type-2, DST-2), Discrete Sine Transform type-3 (DST-3),... Discrete Sine Transform type-n (DST-n), Discrete Cosine Transform type-1 (DCT-1), Discrete Cosine Transform type-2 -2, DCT-2), Discrete Cosine Transform type-3 (DCT-3),... At least one of various types of DST and DCT, such as Discrete Cosine Transform type-n (DCT-n), may be used. Where n is a positive integer of 1 or greater
- Equation 1 may represent a method of performing 1D DCT-2 according to an embodiment of the present invention.
- N may represent a block size
- k may be a position of a frequency component
- x n may represent a value of an n th coefficient in the spatial domain.
- DCT-2 of the two-dimensional domain may be possible by performing a horizontal transform and a vertical transform on the residual block using Equation 1 above.
- the DCT-2 conversion kernel may be defined by Equation 2 below.
- X k may be a basis vector according to a position in the frequency domain
- N may represent the size of the frequency domain.
- FIG. 7 is a diagram illustrating a basis vector in the frequency domain of DCT-2 according to the present invention. 7 shows the frequency characteristics of DCT-2 in the frequency domain.
- the value calculated through the X 0 basis vector of the DCT-2 may mean a DC component.
- DCT-2 can be used for the conversion process for the remaining blocks, such as 4x4, 8x8, 16x16, 32x32 size.
- DCT-2 may be selectively used based on at least one of the size of the residual block, the color component (eg, luminance component, chrominance component) of the residual block, or a prediction mode corresponding to the residual block. For example, if a 4x4 sized residual block encoded in an intra mode (intra picture mode) and a component of the residual block is a luminance component, DCT-2 may not be used. For example, if the horizontal length of the residual block encoded in the intra mode is within a predetermined range (for example, 4 pixels or more and 16 pixels or less), and the horizontal length is not larger than the vertical length, the first transform kernel is used for horizontal conversion. Can be used. Otherwise, a second transform kernel can be used for horizontal transform.
- a predetermined range for example, 4 pixels or more and 16 pixels or less
- the first transform kernel may be used for vertical conversion. Otherwise, a second transform kernel can be used for the vertical transform.
- the first transform kernel and the second transform kernel may be different. That is, the horizontal transform method and the vertical transform method of the block encoded in the intra mode may be implicitly determined based on the shape of the block under a predetermined condition.
- the first transform kernel may be DST-7
- the second transform kernel may be DCT-2.
- the residual block may have the same meaning as the transform block because it is a target of transform.
- the prediction mode may mean inter prediction or intra prediction. In the case of intra prediction, the prediction mode may mean intra prediction mode or intra prediction direction.
- Transformation through the DCT-2 transform kernel may show a high compression efficiency for a block having a small change between neighboring pixels, such as an image background.
- it may not be suitable as a conversion kernel for regions having complex patterns, such as texture images. This is because, when a block having low correlation between neighboring pixels is converted through DCT-2, a large number of conversion coefficients may occur in the high frequency component of the frequency domain. If the conversion coefficient occurs frequently in the high frequency region, the compression efficiency of the image may be reduced. In order to improve the compression efficiency, a coefficient having a large value is generated near the low frequency component, and the coefficient value should be as close to zero as possible in the high frequency component.
- Equation 3 may represent a method of performing one-dimensional DST-7 according to an embodiment of the present invention.
- N may mean the size of the block
- k is the position of the frequency component
- x n may mean the value of the n th coefficient in the spatial domain.
- DST-7 of the two-dimensional domain may be possible by performing a horizontal transform and a vertical transform on the residual block using Equation 3 above.
- the DST-7 transform kernel may be defined by Equation 4 below.
- X k may represent the K th base vector of DST-7
- i may represent a position in the frequency domain
- N may represent a size of the frequency domain.
- the DST-7 may be used for a conversion process for residual blocks having at least one or more sizes of 2x2, 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, and the like.
- DST-7 may be applied to a rectangular block rather than a square block.
- DST-7 may be applied to at least one of vertical transformation and horizontal transformation of rectangular blocks having different horizontal and vertical sizes, such as 8x4, 16x8, 32x4, and 64x16.
- DCT-2 may be applied to horizontal transformation and vertical transformation of the square block.
- DST-7 may be applied to the horizontal transformation and the vertical transformation of the square block.
- the DST-7 may include at least one of a size of a residual block, a color component (eg, a luminance component and a color difference component) of the residual block, a prediction mode corresponding to the residual block, an intra prediction mode (direction), and a shape of the residual block. It can optionally be used based on one. For example, if a 4x4 sized residual block encoded in the intra mode and a component of the residual block is a luminance component, DST-7 may be used.
- the prediction mode may mean inter prediction or intra prediction.
- the prediction mode may mean intra prediction mode or intra prediction direction. For example, the selection of the conversion method based on the block shape may not be available for the color difference component.
- the intra prediction mode when the intra prediction mode is inter prediction between color components, selection of a conversion method based on a block shape may not be available.
- the conversion method for the chrominance component may be specified by information signaled through the bitstream.
- the transformation method for the current block may include an intra prediction mode and / or a block size (horizontal and / or vertical size). Can be determined based on For example, when the intra prediction mode is non-directional (DC or Planar), when the horizontal length (vertical length) is included in a predetermined range, the first transform kernel is used for horizontal transformation (vertical transformation), Otherwise, a second transform kernel can be used.
- the first transform kernel and the second transform kernel may be different.
- the first transform kernel may be DST-7 and the second transform kernel may be DCT-2.
- the predetermined range may be, for example, 4 pixels to 16 pixels.
- the same kernel eg, the second transform kernel
- different transform kernels may be used for adjacent intra-picture prediction modes. For example, if the second transform kernel and the first transform kernel are used for the horizontal and vertical transforms of the mode 27, respectively, the first transform kernel and the first transform kernel for the horizontal and vertical transforms of the mode 26 and the mode 28 adjacent to the mode 27 are respectively. 2 translation kernels are available.
- the first basis vector x 0 of DST-7 has a curved shape. This allows the DST-7 to achieve higher conversion performance for blocks with larger spatial variation in the image than the DCT-2.
- the DST-7 may be used in transforming a 4x4 transform unit (TU) in an intra predicted coding unit (CU). This may be due to the nature of intra prediction, and as the distance from the reference sample becomes greater, the error amount increases, so that the DST-7 having higher conversion efficiency may be used. That is, in the case of a block in which the amount of the residual signal increases as the distance from the (0, 0) position in the block in the spatial domain increases, the block can be efficiently compressed using DST-7.
- TU 4x4 transform unit
- CU intra predicted coding unit
- the conversion efficiency of the DST-7 and the DCT-2 can be known by checking the distribution characteristic of the residual signal in the CU, PU, or TU block.
- FIG. 9 illustrates a 2N ⁇ 2N prediction unit (PU) of an 8 ⁇ 8 coding unit (CU) predicted in an inter mode obtained by experimenting a “Cactus” sequence in a low delay-P profile environment. Is a diagram illustrating a distribution of average residual values according to positions in a circle.
- the left figure of FIG. 9 separately displays a relatively large upper 30% value among average residual signal values in a block, and the right figure shows a relative value among average residual signal values in a block as shown in the left figure. This large top 70% value is shown separately.
- Residual signal distribution in the 2Nx2N PU of the 8x8 CU predicted in the inter mode through FIG. 9 is such that small values of the residual signal values are concentrated near the center of the block, and remain as the farther from the middle point of the block. It can be seen that the signal value has a characteristic of increasing. That is, it can be seen that the residual signal value increases at the block boundary.
- Such residual signal distribution characteristics are common to the residual signals in the PU regardless of the CU size and the PU partition modes (2Nx2N, 2NxN, Nx2N, NxN, nRx2N, nLx2N, 2NxnU, and 2NxnD) that the CU predicted between screens may have. May be a feature.
- FIG. 10 is a 3D graph illustrating a residual signal distribution characteristic of a 2N ⁇ 2N prediction unit PU of an 8 ⁇ 8 coding unit CU predicted in an inter mode.
- the conversion of the residual signal in the PU of the CU predicted between screens based on the residual signal distribution characteristics according to FIGS. 9 and 10 may be more efficient using DST-7 instead of DCT-2.
- SDST which is one of conversion methods using DST-7 as a conversion kernel
- a block may mean any one of a CU, a PU, and a TU.
- SDST according to the present invention can be performed in two steps.
- the first step is to shuffle the residual signals in the PU of the CU predicted in inter mode (inter picture mode) or intra mode (in picture mode).
- the second step is to apply DST-7 to the residual signal in the shuffled block.
- the residual signals arranged in the current block may be scanned according to the first direction and rearranged according to the second direction. That is, shuffling may be performed by scanning the residual signals arranged in the current block in a first direction and rearranging the residual signals in the second direction.
- the residual signal may mean a signal representing a difference signal between the original signal and the prediction signal. That is, the residual signal may mean a signal before performing at least one of the transformation and the quantization. Alternatively, the residual signal may mean a signal form in which at least one of conversion and quantization is performed. In addition, the residual signal may mean a restored residual signal. That is, the residual signal may mean a signal in which at least one of inverse transformation and inverse quantization is performed. Also, the residual signal may mean a signal before performing at least one of inverse transformation and inverse quantization.
- the first direction may include a raster scan order, an up-right diagonal scan order, a horizontal scan order, and a vertical scan order. order).
- the first direction may be defined as at least one of the following (1) to (10).
- At least one of the scanning directions of the above (1) to (10) may also be selectively used in the second direction (or rearrangement direction).
- the first direction and the second direction may be the same or may be different from each other.
- Scanning and rearranging the residual signal may be performed in the current block unit.
- the rearrangement may mean arranging the residual signals scanned in the block according to the first direction in blocks having the same size in the second direction. At this time, the size of the block scanned in the first direction and the size of the rearranged block in the second direction may be different from each other.
- the scan and rearrangement are expressed separately according to the first direction and the second direction, respectively, the scan and the rearrangement may be performed in one process with respect to the first direction.
- the remaining signals in the block may be scanned from the top row to the bottom row, but one row may be scanned from right to left and stored (rearranged) in the block.
- the scan and rearrangement of the residual signal may be performed in units of predetermined sub-blocks in the current block.
- the subblock may be a block equal to or smaller than the current block.
- the subblock may be a block divided into quadtree, binary tree, and the like from the current block.
- the subblock units may have a fixed size and / or shape (eg 4x4, 4x8, 8x8, ... NxM, where N and M are positive integers).
- the size and / or shape of the subblock unit may be variably derived.
- the size and / or shape of the subblock unit may be determined depending on the size, shape, and / or prediction mode (inter, intra) of the current block.
- the scan direction and / or rearrangement direction may be adaptively determined according to the position of the subblock. In this case, different scan directions and / or rearrangement directions may be used for each subblock, and all or some of the subblocks belonging to the current block may use the same scan direction and / or rearrangement direction.
- FIG. 11 is a diagram illustrating a distribution feature of a residual signal in a 2N ⁇ 2N prediction unit (PU) mode of a coding unit (CU) according to the present invention.
- a PU is divided into four subblocks in a quadtree structure, and an arrow advancing direction of each subblock represents a residual signal distribution.
- an arrow progress direction of each subblock indicates a direction in which a residual signal increases. This is due to a distribution characteristic that the residual signals in the PU have in common regardless of the PU partitioning mode. Therefore, a shuffling operation for rearranging the residual signals of each subblock may be performed to have a distribution characteristic suitable for DST-7 transform.
- FIG. 12 illustrates residual signal distribution characteristics before and after shuffling of a 2N ⁇ 2N prediction unit (PU) according to the present invention.
- the upper block shows a distribution before shuffling of the residual signal in the 2N ⁇ 2N PU of the 8 ⁇ 8 CU predicted in the inter mode.
- Equation 5 below represents a value according to the position of each residual signal in the upper block of FIG.
- the lower block of FIG. 12 shows the residual signal distribution characteristic in the 2N ⁇ 2N PU after shuffling.
- Equation 6 shows a method of performing shuffling according to a position in a PU of each subblock in four subblocks divided into a quadtree structure in a PU.
- Wk and Hk mean the width or height of the kth subblock (k ⁇ ⁇ blk0, blk1, blk2, blk3 ⁇ ) in the PU, respectively, and blk0 to blk3 denote each subblock divided into quadtree structures in the PU. it means.
- x and y mean horizontal and vertical positions in each subblock.
- a (x, y), b (x, y), c (x, y), and d (x, y) indicate positions before shuffling each residual signal as shown in the upper block of FIG. 12.
- a '(x, y), b' (x, y), c '(x, y), and d' (x, y) indicate the positions of the residual signals changed through shuffling as shown in the lower block of FIG. .
- FIG. 13 illustrates an example of 4x4 residual data rearrangement of a subblock according to the present invention.
- a subblock means any one of a plurality of subblocks belonging to an 8x8 prediction block.
- FIG. 13A shows the position of the original residual data before rearrangement
- FIG. 13B shows the rearranged position of the residual data.
- the value of the residual data may be gradually increased from the position (0,0) to the position (3,3).
- residual data in one horizontal and / or vertical one dimension in each subblock may have a data distribution in the form of a basis vector shown in FIG. 8.
- the shuffling according to the present invention may rearrange the residual data of each sub-block so that the residual data distribution is suitable for the above-described form of the DST-7 basis vector.
- the DST-7 transform may be applied to the rearranged data for each subblock unit.
- the sub block may be additionally partitioned into a quadtree structure based on the depth of the TU, or a rearrangement process may be selectively performed.
- a rearrangement process may be selectively performed.
- an NxN subblock belonging to a 2Nx2N PU may be divided into N / 2xN / 2 blocks, and a rearrangement process may be applied to each N / 2xN / 2 block.
- quadtree based TU partitioning may be performed repeatedly until the minimum TU size is reached.
- DCT-2 transform may be applied to the 2N ⁇ 2N block. At this time, the rearrangement of the residual data may not be performed.
- the partition structure of the TU performing SDST may be defined as being divided into quadtree structures based on the PU.
- 14A and 14B illustrate an embodiment of a transform unit (TU) partition structure of a coding unit (CU) and a shuffling method of a transform unit (TU) according to a prediction unit (PU) mode. It is a figure for demonstrating. 14 (a) and 14 (b) show a quadtree splitting structure of a TU according to the TU depth for each asymmetric splitting mode (2NxnU, 2NxnD, nRx2N, nLx2N) of an inter predicted PU.
- asymmetric splitting mode (2NxnU, 2NxnD, nRx2N, nLx2N
- the thick solid line of each block represents a PU in a CU
- the thin solid line represents a TU.
- S0, S1, S2, and S3 in each TU represent a shuffling method of the residual signal in the TU defined in Equation 6 described above.
- the depth 0 TU of each PU has the same block size as the corresponding PU (for example, the size of the depth 0 TU in the 2N ⁇ 2N PU is equal to the size of the PU).
- shuffling for the residual signal in the depth 0 TU will be described later with reference to FIG. 18.
- At least one of the CUs, PUs, and TUs has a rectangular shape (eg, 2NxnU, 2NxnD, nRx2N, nLx2N)
- two, four, at least one or more of the CU, PU, and TU before the residual signal rearrangement It can be divided into N subblocks, such as 6, 8, 16, and apply the residual signal rearrangement to the divided subblocks.
- At least one of the CUs, PUs, and TUs has a square shape (eg, 2Nx2N, NxN), four, eight, sixteen, etc., at least one or more of the CUs, PUs, and TUs before the residual signal rearrangement It is possible to divide into N subblocks and to apply residual signal rearrangement to the divided subblocks.
- the TU when the TU is divided from a CU or a PU, when the TU is the highest depth (not divided), the TU is divided into N subblocks such as 2, 4, 6, 8, 16, etc. Thereafter, residual signal rearrangement may be performed in units of divided subblocks.
- a residual signal rearrangement is performed when the CUs, PUs, and TUs have different shapes or sizes, respectively, but the residual signal rearrangements have the same form in which at least two of the CUs, PUs, and TUs are the same. Or it may be applied to the same size.
- 14 (a) and 14 (b) describe the asymmetric division modes of the inter predicted PU, but are not limited thereto.
- the division of the TU and the TU of the symmetric division modes 2NxN and Nx2N of the PU are described. Shuffling can be applied.
- DST-7 conversion may be performed for each TU in the PU on which shuffling is performed. At this time, if the CU, PU and TU all have the same size and shape, it is possible to perform the DST-7 transform for one block.
- performing the DST-7 transform after shuffling may be more efficient than performing the DCT-2 transform regardless of the size of the CU and the PU partition mode.
- the residual signal distribution is not in view of i) minimizing energy loss after quantization and ii) reducing bit usage during entropy coding. Compared with high compression efficiency.
- FIG. 15 is a diagram illustrating a result of performing DCT-2 and SDST transformation according to the residual signal distribution of the 2N ⁇ 2N prediction unit (PU).
- FIG. 15 shows a distribution in which the residual signal increases from the center to the boundary when the PU partitioning mode of the CU is 2N ⁇ 2N.
- the figure shown in the middle of FIG. 15 shows the distribution of the residual signal that has performed DCT-2 transform on the TU of depth 1 in the PU
- the diagram shown on the right side of FIG. 15 shows the TU of depth 1 in the PU.
- the residual signal distribution after performing the DST-7 transform (SDST) after shuffling is shown.
- the unit of the block on which the DST-7 transformation is performed performs SDST on a TU unit defined in the PU.
- the TU may be quadtree split or binary tree split from the PU unit to the maximum depth. . This means that the DST-7 transform can be performed after shuffling not only for square blocks but also for rectangular blocks.
- a residual block having the same size as the block may be decoded for the inter prediction block, or a sub residual block corresponding to a part of the block may be decoded. Information for this may be signaled for the block, which may be a flag, for example.
- the information about the transform kernel may be determined by decoding the information included in the bitstream.
- a transform kernel for the corresponding sub residual block may be determined based on the type of the sub residual block and / or information specifying a position in the block.
- information about the type of the sub residual block and / or the location within the block may be included in the bitstream and signaled.
- the determination of the transform kernel based on the type of the sub residual block and / or the position in the block may not be performed.
- a predetermined transform kernel eg, DCT-2
- a predetermined transform kernel may be applied to blocks larger than 32x32, or information about the transform kernel may be explicitly signaled.
- the width or height of the block is greater than 32, the determination of the transform kernel based on the type of sub residual block and / or the position in the block may not be performed.
- a predetermined transform kernel eg, DCT-2
- the information about the type of the sub residual block may be partition information of the corresponding block.
- the division information of the block may be, for example, division direction information indicating one of a horizontal division and a vertical division.
- the partition information of the block may include partition ratio information.
- the split ratio may include 1: 1, 1: 3 and / or 3: 1.
- the split direction information and split ratio information may be signaled in separate syntax elements or may be signaled in one syntax element.
- the information about the position of the sub residual block may indicate a position within the block.
- the information about the position may indicate one of left and right sides.
- the information about the position may indicate one of the top and bottom.
- the transform kernel of the sub residual block may be determined based on the type information and / or location information.
- the transform kernel can be determined independently for horizontal transform and vertical transform.
- the translation kernel may be determined based on the split direction.
- the first transform kernel may be applied to the vertical transformation and in the case of horizontal division.
- the first transform kernel or the second transform kernel may be applied to the horizontal transform in the case of vertical division and the vertical transform in the case of horizontal division.
- the second transform kernel may be applied to the horizontal transform of the left position and the first transform kernel may be applied to the horizontal transform of the right position.
- the second transform kernel may be applied to the vertical transform of the upper position
- the first transform kernel may be applied to the vertical transform of the lower position
- the first transform kernel and the second transform kernel may be DST-7 and DCT-8, respectively.
- the first transform kernel and the second transform kernel may be DST-7 and DCT-2, respectively.
- the present invention is not limited thereto, and any two different conversion kernels among the various conversion kernels mentioned herein may be used as the first and second conversion kernels, respectively.
- the block may mean a CU or a TU.
- the sub residual block may mean a Sub-TU.
- FIG 16 illustrates an SDST process according to the present invention.
- the residual signal of the TU which is the target of conversion, is input (S2110).
- the TU may be a divided TU in the PU in which the prediction mode is the inter mode.
- Shuffling may be performed on the TU to be converted (S2120).
- the SDST process may be performed in the order of performing a DST-7 transform on the shuffled TU (S2130), performing a quantization (S2140), and a series of subsequent processes.
- shuffling and DST-7 transform may be performed on a block in which the prediction mode is intra mode.
- an inter predicted block is described, but the present invention is not limited thereto and the following method may be applied to an intra predicted block.
- FIG. 17 is a diagram illustrating distribution characteristics of a partition of a transform unit (TU) and a magnitude of a residual absolute value for each prediction unit (PU) partition mode of an inter-screen predicted coding unit (CU) according to the present invention. to be.
- a TU may be quadtree split or binary tree split from a CU to a maximum depth, and there may be a total of K partition modes.
- K is a positive integer, for example, K is 8 in FIG.
- the SDST uses the residual signal distribution characteristic in the PU in the inter predicted CU as described with reference to FIG. 10.
- the TU may be divided into a quadtree structure or a binary tree structure from the PU. That is, a TU having a depth of 0 may correspond to a PU, and a TU having a depth of 1 may correspond to each of subblocks obtained by dividing a PU into a quadtree structure or a binary tree structure once.
- Each block of FIG. 17 shows a form in which a TU is partitioned to depth 2 for each of the PU partitioning modes of the inter predicted CU.
- the thick solid line indicates the PU
- the thin solid line indicates the TU
- the arrow direction of each TU may indicate the direction in which the residual signal value in the corresponding TU increases.
- Each TU may perform the shuffling mentioned in the description of the shuffling step according to the position in the PU.
- shuffling may be performed in various ways in addition to the method described with respect to the shuffling step.
- One of them starts scanning from the residual signal at the center position of the PU block, scans the surrounding residual signal by drawing a circle in the boundary direction of the block, and then zigzags the scanned residual signal from the (0,0) position of the PU again. zig-zag) relocate in the order of scanning.
- FIG. 18 is a diagram for describing a residual signal scanning order and a relocation order of a transform unit TU having a depth zero in a prediction unit PU according to an embodiment of the present invention.
- FIG. 18 (a) and (b) show a scanning order for shuffling
- FIG. 18 (c) shows a rearrangement order for SDST.
- DST-7 transform may be performed on the remaining signals in each shuffled TU, and quantization and entropy encoding may be performed.
- Such a shuffling method uses a residual signal distribution characteristic in a TU according to a PU partitioning mode, and may optimize the residual signal distribution to increase efficiency of a next step, DST-7 conversion.
- SDST may be performed according to the SDST process of FIG. 16 described above with respect to all TUs in the PU predicted by the encoder.
- TU partitioning may be performed from the PU up to a maximum depth of 2 as shown in FIG. 17.
- Shuffling may be performed on the residual signals in each TU using the residual signal distribution characteristics in the TU of FIG. 17.
- quantization and entropy encoding may be performed.
- the decoder performs DST-7 inverse transform on each TU in the inter predicted PU and performs inverse shuffling on the reconstructed residual signal when performing residual signal recovery of the TU in the inter predicted PU. You can get it.
- This SDST method has an advantage in that there is no flag or information that must be signaled to the decoder because SDST is applied to the method of converting all TUs in the inter predicted PU. That is, the SDST method may be performed without additional signaling for the SDST method.
- At least one of two or more conversion methods may be selected and applied to convert the corresponding PU.
- DCT-2 and SDST may be selected and applied to convert the corresponding PU.
- the amount of computation in the encoder can be increased compared to the embodiment in which SDST is performed for all TUs in the inter predicted PU.
- the compression efficiency can be improved because a more efficient conversion method is selected between DCT-2 and SDST.
- FIG. 19 is a flowchart illustrating a DCT-2 or SDST selective encoding process through rate-distortion optimization (RDO) according to the present invention.
- a residual signal of a TU to be converted may be input (S2410).
- S2410 By comparing the cost of the TU obtained by performing the DCT-2 to each TU in the PU predicted by the inter mode (S2420) and the cost of the TU obtained by performing the shuffling (S2430) and the DST-7 (S2440) In view of the distortion, an optimal conversion mode (eg, DST-2 or SDST) of the corresponding TU may be determined (S2450).
- quantization (S2460) and entropy encoding may be performed on the transformed TU according to the determined transformation mode.
- the TU may select an optimal conversion mode among SDST and DCT-2 only when one of the following conditions is satisfied.
- the TU must be a CU or quadtree split or binary tree split regardless of the PU split mode.
- TU must be a PU or quadtree split or binary tree split according to PU split mode.
- TU is not split from CU regardless of PU splitting mode.
- Condition i) is a method of selecting DCT-2 or SDST as a conversion mode in terms of rate-distortion optimization for a TU obtained by quad-tree partitioning, binary-tree partitioning, or CU-partition regardless of the PU partitioning mode. .
- Condition ii) relates to an embodiment that performs SDST for all TUs in an inter predicted PU. That is, DCT-2 and SDST are performed on a TU obtained by quadtree splitting, binary tree splitting, or PU size division according to the PU partitioning mode, and the conversion mode of the TU is determined in consideration of the respective costs.
- Condition iii) determines a conversion mode of a TU by performing DCT-2 and SDST without splitting a CU or a TU in a CU unit having the same size as the TU, regardless of the PU partitioning mode.
- 20 is a flowchart illustrating a process of selecting and decoding DCT-2 or SDST according to the present invention.
- the signaled SDST flag may be referred to for each TU (S2510).
- the SDST flag may be a flag indicating whether the SDST is used as the conversion mode.
- the conversion mode of the TU is determined as the SDST mode, performs the DST-7 inverse transform on the remaining signals in the TU (S2530), and in the TU in which the DST-7 inverse conversion is performed. Inversely shuffling using Equation 6 described above with respect to the residual signal according to the position of the TU in the PU (S2540), a finally reconstructed residual signal may be obtained (S2560).
- the conversion mode of the TU is determined to be the DCT-2 mode, and the DCT-2 inverse conversion is performed on the residual signal in the TU (S2550) to restore the restored residual signal. Can be obtained (S2560).
- residual data may be rearranged.
- the residual data may mean residual data corresponding to the inter predicted PU.
- integer transformations derived from DST-7 can be used in the SDST method.
- sdst_flag may be signaled for selective use of DCT-2 or DST-7.
- sdst_flag may be signaled in units of TUs.
- sdst_flag may indicate that it is required to identify whether to perform SDST.
- 21 is a flowchart illustrating a decoding process using the SDST according to the present invention.
- sdst_flag may be entropy decoded in units of TUs (S2610).
- SDST when the depth of the TU is 0 (S2620-Yes), SDST is not used, and DCT-2 can be used to restore the TU (S2670 and S2680). This is because the SDST can be performed between 1 to the maximum TU depth value.
- the TU may be restored without performing an inverse transform.
- the conversion mode of the TU is not the conversion skip mode, and the cbf value of the TU is not 0 (S2630-No), the sdst_flag value can be checked (S2640). ).
- the inverse transform based on the DST-7 is performed (S2650), and the inverse shuffling of the remaining data of the TU can be performed (S2660) to restore the TU. (S2680).
- the inverse transform based on the DCT-2 is performed (S2670), and the TU can be restored (S2680).
- the signal to be shuffled or rearranged may be at least one of a residual signal before inverse transformation, a residual signal before inverse quantization, a residual signal after inverse transformation, a residual signal after inverse quantization, a restored residual signal, and a restored block signal.
- FIG. 21 illustrates that the sdst_flag is signaled in units of TUs
- the sdst_flag may be selectively signaled based on at least one of a conversion mode of the TU or a cbf value of the TU. For example, when the transform mode of the TU is the transform skip mode and / or when the cbf value of the TU is 0, sdst_flag may not be signaled. In addition, even when the depth of the TU is 0, sdst_flag may not be signaled.
- sdst_flag has been described as being signaled in TU units, it may be signaled in a predetermined unit.
- sdst_flag may be signaled in at least one unit of a video, a sequence, a picture, a slice, a tile, an encoding tree unit, an encoding unit, a prediction unit, and a transform unit.
- selected transform mode information may be entropy encoded / decoded through an n-bit flag or an index (n is a positive integer of 1 or more) in TU units.
- the conversion mode information may indicate at least one or more, such as whether the TU performs conversion through DCT-2, conversion through SDST, and conversion through DST-7.
- entropy encoding / decoding of corresponding transform mode information may be performed in a bypass mode.
- entropy encoding / decoding of transform mode information may be omitted and may not be signaled.
- entropy encoding / decoding of the transform mode information may be omitted and may not be signaled.
- the coded block flag is 0, the inverse transform process is skipped in the decoder, so that the corresponding block can be restored even if the transform mode information does not exist in the decoder.
- the conversion mode information is not limited to indicating the conversion mode through a flag, and may be implemented in the form of a pre-defined table and an index.
- the pre-defined table may be a conversion mode available for each index.
- DCT-n or DST-n (n is a positive integer) may be applied instead of DCT-2.
- the conversion of the DCT-2 or the SDST may be performed separately in the horizontal direction and the vertical direction.
- the same conversion mode may be used for the horizontal direction and the vertical direction, and different conversion modes may be used for each other.
- transform mode information on whether DCT-2, SDST, or DST-7 is used for each of the horizontal and vertical directions may be entropy encoded / decoded, respectively.
- the transform mode information may be signaled, for example, as an index, and the transform kernel indicated by the same index may be the same for an intra prediction picture and an inter prediction picture block.
- the transform mode information may be entropy encoded / decoded in at least one or more units among CUs, PUs, TUs, and block units.
- the conversion mode information may be signaled according to a luminance component or a chrominance component.
- the conversion mode information may be signaled according to the Y component, the Cb component, or the Cr component.
- transform mode information on whether DCT-2 or SDST is performed for the Y component is signaled, signaling is performed in the Y component without separate transform mode information signaling in at least one of the Cb component and the Cr component.
- the transformed mode information may be used as the transformed mode of the corresponding block.
- the transform mode information may be entropy encoded / decoded by an arithmetic coding method using a context model. If the conversion mode information is implemented in the form of a pre-defined table and an index, entropy encoding / decoding may be performed by an arithmetic encoding method using a context model for all or some of the bins.
- the transform mode information may be selectively entropy encoded / decoded according to the block size. For example, when the size of the current block is 64x64 or more, the transform mode information may not be entropy encoded / decoded, and when it is 32x32 or less, the transform mode information may be entropy encoded / decoded.
- one of the DCT-2, DST-7, and SDST methods may be performed without entropy encoding / decoding the transform mode information.
- entropy encoding / decoding may not be performed regardless of the non-zero transform coefficient or the position in the block of the quantized level.
- transform mode information may not be entropy encoded / decoded only when the non-zero transform coefficient or the quantized level exists in the upper left position of the block.
- L may be a positive integer including 0, and may be 1, for example.
- entropy encoding / decoding may be performed.
- J is a positive integer.
- the conversion mode information may be limited in the use of some conversion modes depending on the conversion mode of the collocated block, or the binarization method of the conversion information may be changed in such a manner that the conversion mode of the call block is expressed in fewer bits. have.
- the above-described SDST may be limitedly used based on at least one of a prediction mode, an intra prediction mode, an inter prediction mode, a TU depth (depth), a size, and a shape of the current block.
- the SDST may be used when the current block is encoded in the inter mode.
- the minimum / maximum depth in which the SDST is allowed may be defined.
- SDST may be used when the depth of the current block is equal to or larger than the minimum depth, or SDST may be used when the depth of the current block is equal to or smaller than the maximum depth.
- the minimum / maximum depth may be a fixed value or may be variably determined based on information indicating the minimum / maximum depth.
- Information indicative of the minimum / maximum depth may be signaled from the encoder and derived at the decoder based on the attributes (eg, size, depth and / or shape) of the current / peripheral block.
- the minimum / maximum size in which SDST is allowed may be defined. Similarly, SDST may be used when the size of the current block is equal to or larger than the minimum size, or SDST may be used when the size of the current block is equal to or smaller than the maximum size.
- the minimum / maximum size may be a fixed value or may be variably determined based on information indicating the minimum / maximum size. Information indicating the minimum / maximum size may be signaled from the encoder and derived at the decoder based on the attributes (eg, size, depth and / or shape) of the current / peripheral block. For example, when the current block is 4x4, DCT-2 may be used as a transform method, and entropy encoding / decoding of transform mode information on whether DCT-2 or SDST is used may not be performed.
- the type of block in which SDST is allowed may be defined.
- SDST may be used when the type of the current block is a type of a defined block.
- a block type in which SDST is not allowed may be defined.
- SDST may not be used when the shape of the current block is a shape of a defined block.
- the type of block in which SDST is allowed or disallowed may be fixed and information about it may be signaled from the encoder. Or may be derived at the decoder based on attributes (eg, size, depth and / or shape) of the current / peripheral block.
- the type of block in which SDST is allowed or disallowed may mean, for example, M, N and / or the ratio of M and N in an M ⁇ N block.
- DCT-2 or DST-7 is used as a conversion method, and entropy encoding / decoding of the conversion mode information on which conversion method is used. If the DST-7 is used as a conversion method, the residual signal rearrangement process may be performed.
- DCT-2 or SDST may be used as the conversion method, and entropy encoding / decoding of the conversion mode information on which conversion method is used.
- the conversion method may be selectively used according to the partition type of the CU and the PU or the shape of the current block.
- DCT-2 when the partition type of the CU and the PU or the current block type is 2N ⁇ 2N, DCT-2 may be used, and DCT-2 or SDST may be selectively used for the remaining partition and block types.
- DCT-2 may be used, and DCT-2 or SDST may be selectively used for the remaining partition types and block types.
- DCT-2 may be used, and DCT-2 or SDST may be selectively used for the remaining partitions and block.
- scanning and inverse scanning of transform coefficients may be performed on a divided block basis.
- scanning and inverse scanning of transform coefficients may be performed in units of undivided current blocks.
- the transform / inverse transform using the SDST or the DST-7 may be performed according to at least one of an intra prediction mode (direction) of the current block, a size of the current block, and a component of the current block (either luminance component or chrominance component). Can be.
- DST-1 may be used instead of DST-7 at the time of conversion / inverse conversion using the SDST or the DST-7.
- DCT-4 may be used instead of the DST-7 in the conversion / inverse conversion using the SDST or the DST-7.
- the rearrangement method used for rearranging the residual signals of the SDST or the DST-7 may be applied when the DCT-2 is converted / inversely transformed. That is, even when using the DCT-2, the residual signal may be rearranged or the residual signal may be rotated using a predetermined angle.
- the SDST of the present invention aims at improving image compression efficiency by changing a conversion, shuffling, rearrangement, and / or flipping method.
- Performing DST-7 by shuffling the residual signal can exhibit high compression efficiency because it effectively reflects the residual signal distribution characteristic in the PU.
- the rearrangement method described below may be applied to at least one or more embodiments of the above-described SDST method.
- the residual signal rearrangement process may be implemented by a horizontal flipping and a vertical flipping method.
- the residual signal rearrangement method may be implemented through flipping as in the following (1) to (4). Rearrangement described below may mean flipping.
- r '(x, y) is the residual signal after rearrangement and r (x, y) is the residual signal before rearrangement.
- w and h represent the width and height of the block, respectively, and x and y represent the position of the residual signal in the block.
- the reverse rearrangement method of the rearrangement method using flipping may be performed by the same process as the rearrangement method. That is, the residual signal rearranged using the horizontal flipping can be restored to the original residual signal arrangement by performing the horizontal flipping once again.
- the rearrangement method performed by the encoder and the inverse rearrangement method performed by the decoder may be the same flipping method.
- a residual block can be obtained before performing flipping.
- a residual block can be obtained before performing flipping, and this is expressed as an equation.
- the residual block can be obtained before performing the flipping.
- the flipping based residual signal shuffling / rearrangement method may be used without dividing the current block. That is, in the SDST method, the current block (TU, etc.) is divided into sub-blocks and the DST-7 is used for each sub-block. However, in the case of using the flipping-based residual signal shuffling / rearrangement method In the present invention, the DST-7 transformation may be performed after performing a flipping on all or part of the current block without dividing the current block into subblocks. In addition, when using the flipping-based residual signal shuffling / rearrangement method, the DST-7 inverse transform may be performed without dividing the current block into subblocks, and then all or part of the current block may be flipped.
- a maximum size (MxN) and / or a minimum size (OxP) of a block that can perform flipping-based residual signal shuffling / rearrangement may be defined.
- the size may include at least one of the width (M or O) of the horizontal size and the height (N or P) of the vertical size.
- the M, N, O, P may be a positive integer.
- the maximum size of the block and / or the minimum size of the block may be values predefined in the encoder / decoder or information signaled to the decoder in the encoder.
- the SDST flag which is transform mode information indicating whether flipping and DST-7 are used as the transform mode, may not be signaled.
- the horizontal one-dimensional transformation can only be performed with DCT-2.
- the vertical one-dimensional transformation may be performed by performing one-dimensional longitudinal transformation using the DST-7 after vertical flipping, or performing one-dimensional longitudinal transformation using the DST-7 without flipping.
- the SDST flag which is transform mode information indicating whether to use flipping as the transform mode, may be signaled only for the vertical one-dimensional transform.
- the horizontal one-dimensional transformation is performed after the horizontal flipping.
- One-dimensional transverse transformation may be performed using the DST-7, or one-dimensional transverse transformation may be performed using the DST-7 without flipping, and the vertical one-dimensional transformation may be performed using only DCT-2.
- the SDST flag which is transform mode information indicating whether to use flipping as the transform mode, may be signaled only for the horizontal one-dimensional transform.
- the SDST flag which is transform mode information indicating whether to use flipping and DST-7 transform as the transform mode, may not be signaled.
- the size of the current block is larger than the maximum size that can perform the flipping method, only the DCT-2 transform or the DST-7 transform may be used.
- the flipping and DST-7 transforms are not used for the 64x64 block, and only the DCT-2 transform may be used.
- the SDST flag which is transform mode information indicating whether flipping and DST-7 are used as the transform mode
- the SDST flag which is the transform mode information indicating whether the flip mode and the DST-7 are used as the transform mode, may be signaled.
- the memory space for storing the DST-7 transform used for the 64x64 block can be saved.
- the maximum size that can perform the flipping method is 32x32 and the minimum size is 4x4, only the flipping method is used for a 64x64 size block, and a DCT-2 or DST-7 transform may be used.
- the MxN size square block may be quadtree-divided into four blocks to perform a DST-7 transform after performing a shuffling / rearrangement method using flipping for each subblock.
- a flipping method may be explicitly signaled for each subblock.
- the flipping method may be signaled with a fixed length code of 2 bits and signaled with a truncated unary code.
- a binarization method based on the occurrence probability of the flipping method may be used according to each divided block.
- M and N may be positive integers, for example, may be 64x64.
- the MxN size square block may be quadtree-divided into four blocks to perform a DST-7 transform after performing a shuffling / rearrangement method using flipping for each subblock.
- the flipping method for each subblock may be implicitly determined. For example, transverse and longitudinal flipping can be determined for the first (left top) subblock, longitudinal flipping can be determined for the second (top right) subblock, and for the third (lower left) subblock. Transverse flipping can be determined and can be determined by not performing flipping for the fourth (right bottom) subblock. As such, when the implicit determination of the flipping method is performed, signaling for the flipping method is not necessary.
- M and N may be positive integers, for example, may be 64x64.
- a flipping method may be explicitly signaled for each subblock.
- the flipping method may be signaled with a fixed length code of 2 bits and signaled with a truncated unary code.
- a binarization method based on a probability of occurrence of the flipping method may be used according to each subblock.
- M and N may be a positive integer, for example 8x8.
- the subblocks can be shuffled / rearranged using flipping for each subblock and then DST-7 transformed. have.
- the flipping method for each subblock may be implicitly determined. Transverse flipping may be determined for the first (left) subblock, and no flipping may be determined for the second (right) subblock. As such, when the implicit determination of the flipping method is performed, signaling for the flipping method is not necessary.
- M and N may be a positive integer, for example 4x4.
- the flipping method for each subblock may be implicitly determined. Vertical flipping may be determined for the first (upper) subblock, and no flipping may be determined for the second (lower) subblock. As such, when the implicit determination of the flipping method is performed, signaling for the flipping method is not necessary.
- M and N may be a positive integer, for example 4x4.
- DCT-2 transform / inverse transform is performed on MxN-sized blocks, subblocks are generated by dividing the block into quadtrees or binary trees, and then the DST-7 transform / inverse transform is performed after each subblock is flipped. At least one of the two methods of performing may be applied. In this case, the flipping method may be performed differently according to the relative position in the block that is the parent block of each subblock, and this may be implicitly determined.
- M and N are positive integers, for example, M and N may be 64. That is, the block of MxN size may be a block having a relatively large block size.
- flipping for the corresponding subblock may be determined as horizontal and vertical flipping.
- flipping for the corresponding subblock may be determined as vertical flipping.
- flipping for the corresponding subblock may be determined as horizontal flipping.
- Entropy encoding / decoding of the flipping-based residual signal shuffling / rearrangement method usage information may be performed using the transform mode information. That is, the same method as that performed by the encoder may be performed by the decoder through signaling of the transform mode information. For example, when the flag bit indicating the conversion mode information has the first value, the flipping-based residual signal shuffling / rearrangement method and the DST-7 may be used as the conversion / inverse conversion method, and the flag bit may be the second. If you have a value, you can use another transform / inverse transform method. In this case, the transformation mode information may be entropy encoded / decoded for each block.
- another transform / inverse transform method may be a DCT-2 transform / inverse transform method.
- entropy encoding / decoding of the transform mode information may be omitted and not signaled in a transform skip mode or any one of a residual differential PCM (RPDCM) mode and a lossless mode.
- RPDCM residual differential PCM
- the transform mode information may be entropy using at least one of the depth of the current block, the size of the current block, the shape of the current block, the transform mode information of the neighboring block, the encoding block flag of the current block, and whether the transform skip mode of the current block is used. It can be encoded / decoded. For example, when the coding block flag of the current block is 0, entropy encoding / decoding of the transform mode information may be omitted and may not be signaled.
- the transform mode information may be predictively encoded / decoded from transform mode information of a block reconstructed around the current block during entropy encoding / decoding.
- the transform mode information may be signaled based on at least one of encoding parameters of a current block and a neighboring block.
- At least one of the four flipping methods (no flipping, horizontal flipping, vertical flipping, horizontal and vertical flipping) using the flipping method information may be a flag or an index (flipping_idx). It can be entropy encoded / decoded in the form. That is, the same flipping method as that performed by the encoder can be performed by the decoder by signaling the flipping method information.
- the conversion mode information may include flipping method information.
- entropy encoding / decoding of the flipping method information may be omitted and not signaled in one of the transform skip mode, the RDPCM (Residual Differential PCM) mode, and the lossless mode.
- the flipping method information uses at least one of a depth of a current block, a size of a current block, a shape of a current block, information on a flipping method of a neighboring block, a coded block flag of a current block, and whether to use a transform skip mode of the current block. Can be entropy encoded / decoded.
- entropy encoding / decoding of the flipping method information may be omitted and may not be signaled.
- the flipping method information may be predictively encoded / decoded from the flipping method information of a block reconstructed around the current block during entropy encoding / decoding.
- the flipping method information may be signaled based on at least one of encoding parameters of a current block and a neighboring block.
- the residual signal rearrangement method is not limited to the above-described residual signal rearrangement, and the shuffling may be implemented by rotating the residual signal in the block at a predetermined angle.
- the predetermined angle herein may mean 0 degrees, 90 degrees, 180 degrees, -90 degrees, -180 degrees, 270 degrees, -270 degrees, 45 degrees, -45 degrees, 135 degrees, -135 degrees, or the like.
- the information on the angle may be entropy encoded / decoded in the form of a flag or an index, and may be performed similarly to the signaling method for the transform mode information.
- the angular information may be predictively encoded / decoded from angular information of a block reconstructed around the current block during entropy encoding / decoding.
- SDST or DST-7 may be performed after partitioning the current block, but SDST or DST-7 may be performed in the current block unit without partitioning the current block.
- the predetermined angle may be determined differently according to the position of the subblock.
- a method of rearranging through rotation only for a subblock of a specific position (eg, the first subblock) among the subblocks may be limitedly used.
- the rearrangement using a predetermined angle can be applied to the entire current block.
- the current block to be rearranged may be at least one of a residual block before inverse transform, a residual block before inverse quantization, a residual block after inverse transform, a residual block after inverse quantization, a restored residual block, and a restored block.
- the transform may be performed by rearranging or rotating the coefficients of the transform matrix for transform so that the same effect as the residual signal rearrangement or rotation is obtained, and applying the same to the pre-arranged residual signal. That is, by performing the transformation using the rearrangement of the transformation matrix instead of the residual signal rearrangement, the same effect as the method of performing the residual signal rearrangement and transformation may be obtained.
- the rearrangement of the coefficients of the transformation matrix may be performed in the same manner as the residual signal rearrangement methods described above, and the signaling method of information necessary for this may be the same as the signaling method of information necessary for the residual signal rearrangement method described above. Can be performed.
- some of the residual signal rearrangement methods mentioned in the above description about the shuffling step may be determined by the encoder as an optimal rearrangement method, and the information about the determined rearrangement method (the flipping method information) may be signaled to the decoder.
- the encoder may signal information about the residual signal rearrangement method to the decoder by 2 bits.
- the rearrangement method having a high probability of occurrence may be encoded using fewer bits, and the rearrangement method having a lower probability of occurrence may be encoded using relatively many bits.
- the four rearrangement methods may be signaled by the unary code (for example, (0, 10, 110, 111) or (1, 01, 001, 000)) cut in the order of high probability of occurrence.
- the occurrence probability of the rearrangement method may vary according to encoding parameters such as the prediction mode of the current CU, the intra prediction mode (direction) of the PU, and the motion vector of the neighboring block, information about the rearrangement method according to the encoding parameter
- the coding method of (flip method information) can be used differently. For example, since the probability of occurrence of the rearrangement method may be different according to the prediction mode of the intra prediction, a small bit is allocated to the rearrangement method having a high probability of occurrence for each intra mode, and high for the rearrangement method having a low probability of occurrence. In some cases, bits may be allocated, or in some cases, a rearrangement method having a very low probability of occurrence may not be used and no bits may be allocated.
- the prediction mode of the current block (inter mode or intra mode), intra picture prediction mode (including directional mode and non-directional mode), inter picture prediction mode, block size, block type (square or non-square), luminance / color difference signal,
- a rearrangement set including at least one of the residual signal rearrangement methods may be configured according to at least one of the conversion mode information and the like.
- the rearrangement may mean flipping.
- a rearrangement set including at least one of the residual signal rearrangement methods may be configured based on at least one of encoding parameters of the current block and the neighboring block.
- At least one of the following rearrangement sets may be selected according to at least one of the prediction mode, the intra prediction mode, the inter prediction mode, the block size, the block type, the luminance / color difference signal status, and the conversion mode information of the current block. Can be. In addition, at least one of the rearrangement sets may be selected based on at least one of encoding parameters of the current block and the neighboring block.
- the rearrangement set includes 'no flipping', 'horizontal flipping', 'vertical flipping', and 'horizontal and vertical flipping'. ) 'May be included. Below are examples of rearrangement sets.
- At least one of the residual signal rearrangement methods may be used for rearrangement of the current block.
- the residual signal in the rearrangement set according to at least one of the prediction mode, the intra prediction mode, the inter prediction mode, the block size, the block shape, the luminance / color difference signal, the conversion mode information, the flipping method information, etc. of the current block. At least one of the rearrangement methods may be selected. In addition, at least one of the residual signal rearrangement methods in the rearrangement set may be selected based on at least one of encoding parameters of the current block and the neighboring block.
- At least one rearrangement set may be configured according to the prediction mode of the current block. For example, a plurality of rearrangement sets may be configured when the prediction mode of the current block is intra prediction, and one rearrangement set may be configured when the prediction mode of the current block is inter prediction.
- At least one rearrangement set may be configured according to the intra prediction mode of the current block.
- one rearrangement set may be configured when the intra prediction mode of the current block is the non-directional mode, and a plurality of rearrangement sets may be configured when the intra prediction mode of the current block is the directional mode. .
- At least one rearrangement set may be configured according to the size of the current block. For example, one rearrangement set may be configured when the size of the current block is greater than 16 ⁇ 16, and multiple rearrangement sets may be configured when the size of the current block is less than or equal to 16 ⁇ 16.
- At least one rearrangement set may be configured according to the shape of the current block.
- one rearrangement set may be configured when the current block is in a square shape, and a plurality of rearrangement sets may be configured when the current block is in a square shape.
- At least one rearrangement set may be configured according to the luminance / color difference signal of the current block.
- one rearrangement set may be configured when the current block is a color difference signal
- a plurality of rearrangement sets may be configured when the current block is a luminance signal.
- an index for a residual signal rearrangement method may be entropy encoded / decoded based on the rearrangement set. At this time, the index may be entropy encoded / decoded into a variable length code or a fixed length code.
- binarization and debinarization of an index for the residual signal rearrangement method may be performed based on the rearrangement set.
- the index may be binarized and debinarized into a variable length code or a fixed length code.
- the rearrangement set may have a table form in the encoder and the decoder, and may be calculated through an equation.
- the rearrangement set may be configured to have symmetric.
- the table for the rearrangement set may be configured to have symmetry.
- the table may be configured to have symmetry with respect to the intra prediction mode.
- the rearrangement set may be configured according to at least one of whether the intra prediction mode is included in a specific range and whether the intra prediction mode is even or odd.
- Tables below show an example of a method of encoding / decoding a residual signal rearrangement method according to a prediction mode and an intra prediction mode (direction) of a current block.
- Intra prediction direction Intra prediction mode
- Residual Signal Rearrangement Method One
- (1) to (4) in the Residual Signal Rearrangement Method column of Table 1 indicate an index for a scanning / rearrangement sequence, an index for a predetermined angle value, or a predetermined flipping method for the residual signal rearrangement described previously.
- the residual signal rearrangement method such as an index can be specified.
- a * in the residual signal rearrangement method column of Table 1 implicitly uses the rearrangement method without signaling, and a-indicates that the rearrangement method is not used in that case.
- the implicitly using the rearrangement method may mean that the rearrangement method is used using transform mode information (sdst_flag or sdst flag) without entropy encoding / decoding of the index for the residual signal rearrangement method.
- the residual signal rearrangement methods (1) to (4) include (1) no flipping, (2) horizontal flipping, and (3) vertical flipping. And (4) horizontal and vertical flipping, respectively. Also, 0, 1, 10, 11, 110, 111, etc. may be a result of binarization / debinarization used to entropy encode / decode the residual signal rearrangement method. As the binarization / debinarization method, a fixed length code or a cut unary code or a unary code may be used.
- the current block corresponds to at least one of each prediction mode and each intra prediction mode (direction)
- at least one rearrangement method may be used in the encoder and the decoder.
- the 45-degree diagonal direction may mean a direction toward the upper left position in the current block or a direction toward the current block at the upper left position of the current block.
- Intra prediction direction Residual Signal Rearrangement Method (One) (2) (3) (4) In screen Horizontal or near horizontal mode 0 - One - In screen Vertical or near vertical mode 0 One - - In screen 45 degree diagonal or near 45 degree diagonal * - - - In screen Otherwise 00 01 10 11 Between screens N / A 00 01 10 11
- At least one rearrangement method may be used in the encoder and the decoder.
- Intra prediction direction Intra prediction mode
- Residual Signal Rearrangement Method One
- At least one rearrangement method may be used in the encoder and the decoder.
- Intra prediction direction Residual Signal Rearrangement Method (One) (2) (3) (4) In screen Even 0 10 11 - In screen odd number 0 - 10 11 Between screens N / A 00 01 10 11
- At least one rearrangement method may be used in the encoder and the decoder.
- the current block is an intra mode and the intra prediction direction is even, at least one of no flipping, horizontal flipping, and vertical flipping may be used as a residual signal rearrangement method.
- at least one of no flipping, vertical flipping, horizontal and vertical flipping may be used as the residual signal rearrangement method.
- Intra prediction direction Intra prediction mode
- Residual Signal Rearrangement Method One
- At least one rearrangement method may be used in the encoder and the decoder.
- Intra prediction direction Residual Signal Rearrangement Method (One) (2) (3) (4) In screen Even mode, not non-directional mode 0 10 11 - In screen Odd mode, not non-directional mode 0 - 10 11 In screen Non-directional mode (DC mode or planar mode) 00 01 10 11 Between screens N / A 00 01 10 11
- At least one rearrangement method may be used in the encoder and the decoder.
- Intra prediction direction Intra prediction mode
- Residual Signal Rearrangement Method One
- At least one rearrangement method may be used in the encoder and the decoder.
- Intra prediction direction Intra prediction mode
- Residual Signal Rearrangement Method One
- At least one rearrangement method may be used in the encoder and the decoder.
- At least one rearrangement method may be used in the encoder and the decoder.
- Intra prediction direction Residual Signal Rearrangement Method (One) (2) (3) (4) In screen Horizontal or near horizontal mode 0 - 10 11 In screen Vertical or near vertical mode 0 10 - 11 In screen 45 degree diagonal or near 45 degree diagonal * - - - In screen 135 degree diagonal or close to 135 degree diagonal 0 10 11 - In screen -45 degree diagonal or -45 degree diagonal mode 0 10 11 - In screen Otherwise 00 01 10 11 Between screens N / A 0 110 10 111
- the 135-degree diagonal direction may mean a direction toward the top right position in the current block or a direction toward the current block from the top right position of the current block.
- the value for the 135 degree diagonal mode may be 6.
- the diagonal direction of ⁇ 45 degrees may mean a direction toward the bottom right position of the current block or a direction toward the current block from the bottom right position of the current block.
- the value for the -45 degree diagonal mode may be two.
- Intra prediction direction Intra prediction mode
- Residual Signal Rearrangement Method One
- At least one rearrangement method may be used in the encoder and the decoder.
- Intra prediction direction Intra prediction mode
- Residual Signal Rearrangement Method One
- At least one rearrangement method may be used in the encoder and the decoder.
- the current block corresponds to at least one of each prediction mode and each intra prediction mode (direction)
- at least one rearrangement method may be used in the encoder and the decoder.
- the residual signal rearrangement method may mean a type of transformation.
- both the horizontal transform and the vertical transform may mean the first transform kernel.
- the horizontal transform and the vertical transform may mean a second transform kernel and a first transform kernel, respectively.
- the horizontal transform and the vertical transform may mean a first transform kernel and a second transform kernel, respectively.
- the horizontal transform and the vertical transform may mean a second transform kernel and a second transform kernel, respectively.
- the first transform kernel may be DST-7
- the second transform kernel may be DCT-8.
- the intra prediction mode is a planar mode or a DC mode
- four retransmissions are performed using a truncated unary code based on a frequency of occurrence. Entropy encoding / decoding of the information on the arrangement method (the flipping method information) can be performed.
- the probability of the rearrangement method (1) and / or the rearrangement method (3) may be high.
- one bit may be used for each of the two rearrangement methods to entropy encode / decode the information on the rearrangement method.
- the meaning of the mode close to the horizontal direction may mean that the value of the specific mode is included between the value for the horizontal direction mode-K to the value for the horizontal direction mode + K.
- K may be an integer.
- the specific mode may be referred to as a mode close to the horizontal direction.
- the specific mode may not be called a mode close to the horizontal direction.
- the probability of the rearrangement method (1) and / or the rearrangement method (2) may be high.
- entropy encoding / decoding of the information on the rearrangement method may be performed using 1 bit in each of the two methods.
- the meaning of the mode close to the vertical direction may mean that a value of a specific mode is included between a value for the vertical direction mode-K and a value for the vertical direction mode + K.
- K may be an integer.
- the specific mode may be a mode close to the vertical direction.
- the specific mode may not be called a mode close to the vertical direction.
- the probability of the remaining rearrangement methods (2), (3) and (4) may be very low compared to that of the rearrangement method (1). have. In this case, only one method may be applied, and the method may be used implicitly without signaling information about the rearrangement method.
- the meaning of the mode close to the 45 degree diagonal direction may mean that the value of the specific mode is included between the value for the 45 degree diagonal direction mode-K to the value for the 45 degree diagonal direction mode + K.
- K may be an integer.
- the specific mode may be a mode close to the 45-degree diagonal direction.
- the specific mode may not be a mode close to the 45 degree diagonal direction.
- the information about the rearrangement method may be entropy coded / decoded using the unary code or unary code cut only for the rearrangement methods (1), (2), and (3).
- the information on the rearrangement method can be entropy coded / decoded by the unary code or unary code cut only for the rearrangement methods (1), (3) and (4).
- the probability of occurrence of the rearrangement methods (1) to (4) can be seen as being equal, and the information on the rearrangement method can be entropy encoded / decoded using a 2-bit fixed length code.
- Arithmetic coding / decoding may be used for the code.
- the code may be entropy encoded / decoded in a bypass mode without using arithmetic coding using a context model.
- the conversion / inverse conversion can be performed by selecting one of two methods of converting / inversely transforming to DST-7 or DCT-2 to / from DCT-2 without flipping on an area in a picture or a current block in a CTU or an entire picture or a group of pictures. Can be.
- entropy encoding / decoding of 1-bit flag information (conversion mode information) indicating whether to use DST-7 or DCT-2 on a current block basis can be performed.
- This method can be used for the case where the energy of the residual signal is farther from the reference sample, or for reducing the computational complexity in encoding and decoding.
- Information on the region in which the method is used may be signaled in units of CTU or slice, or in units of PPS, SPS, or other specific region, and a 1-bit flag may be signaled in an on / off format.
- DCT-2 transform / inverse transform DST-7 transform / inverse transform without flipping, or vertical flipping after region or CTU or the current block in the picture group or the entire picture group.
- Information on which of the three methods is to be selected may be implicitly selected using the neighboring information of the current block, or may be explicitly selected through signaling of the index (transformation mode information or flipping method information). .
- the index signaling may be signaled with a unary code that is cut as 0 such that DCT-2 is 0, DST-7 is 10 without longitudinal flipping, and DST-7 is 11 after longitudinal flipping.
- the binarization of the DCT-2 and the DST-7 may be signaled by changing the size of the current block and surrounding information.
- the first binary number of the binary numbers may be signaled in CU units and the remaining binary numbers may be signaled in TU or PU units.
- Information on the region in which the method is used may be signaled in units of CTU or slice, or in units of PPS, SPS, or other specific region, and a 1-bit flag may be signaled in an on / off format.
- DCT-2 Transform / Inverse Transform DST-7 Transform / Inverse Transform without Flipping
- DST-7 Transform / Inverse Transform or Vertical Flipping for Region or CTU or Current Block in Picture or Current Group in Picture
- one of the four methods of DST-7 transform / inverse transform can be selected to perform the transform / inverse transform.
- Information about which of the four methods to select may be implicitly selected using the neighboring information of the current block, or may be explicitly selected through signaling of the index (transformation mode information or flipping method information). .
- the index signaling may be signaled with a unary code that is cut as follows: DCT-2 is 0, DST-7 is 10 without flipping, DST-7 is 110 after transverse flipping, and DST-7 is 111 after longitudinal flipping. .
- the binarization of the DCT-2 and the DST-7 may be signaled interchangeably according to the size of the current block and surrounding information.
- the first binary number of the binary numbers may be signaled in CU units and the remaining binary numbers may be signaled in TU or PU units. Depending on the intra prediction mode, only some of the four methods can be used.
- the intra prediction mode is smaller than the diagonal prediction mode, is in DC mode, or is in Planar mode, only three methods of DCT-2, DST-7 without longitudinal flipping and DST-7 after longitudinal flipping Can be used.
- the conversion mode information or the flipping method information may be signaled as DCT-2 is 0, DST-7 is 10 without vertical flipping, and DST-7 is 11 after longitudinal flipping.
- the intra prediction mode has a larger value than the diagonal prediction mode, only three methods of DCT-2, DST-7 without horizontal flipping, and DST-7 after transverse flipping may be used.
- the conversion mode information or the flipping method information may be signaled as DCT-2 is 0, DST-7 is 10 without ripping, and DST-7 is 11 after lateral flipping.
- the information on the region in which the method is used may be signaled in a CTU unit or slice unit or a unit indicating a PPS unit, an SPS unit, or other specific region, and a 1-bit flag may be signaled in an on / off format.
- DCT-2 Transform / Inverse Transform DST-7 Transform / Inverse Transform without Flipping
- DST-7 Transform / Inverse Transform Vertical Flipping After Performing Horizontal Flipping on Regions or CTUs or Current Blocks in a Picture
- one of five methods of DST-7 transform / inverse transform can be selected to perform transform / inverse transform.
- Information on which one of five methods to select a transform may be implicitly selected using the neighboring information of the current block, or may be explicitly selected through signaling of an index (transformation mode information or flipping method information). .
- DCT-2 0 DST-7 is 10 without flipping
- DST-7 110 after horizontal flipping
- DST-7 is 1110 after vertical flipping
- 7 may be signaled with a truncated unary code, such as 1111.
- the binarization of the DCT-2 and the DST-7 may be signaled interchangeably according to the size of the current block and surrounding information.
- the first binary number of the binary numbers may be signaled in CU units and the remaining binary numbers may be signaled in TU or PU units. Further, the first binary number and the second and third binary numbers of the binary numbers may be distinguished to signal information with a fixed length code.
- DCT-2 is 0, DST-7 is 000 without flipping, DST-7 is 001 after transverse flipping, 001 after longitudinal flipping, and DST-7 is 010 after transverse flipping, and DST after transverse and longitudinal flipping.
- transform mode information or flipping method information may be signaled, such as 011.
- only some of the five methods may be used depending on the intra prediction mode. For example, when the intra prediction mode is a prediction mode close to the horizontal prediction mode, only three transformation methods of DCT-2, DST-7 without vertical flipping, and DST-7 after longitudinal flipping may be used. In this case, the conversion mode information or the flipping method information may be signaled as DCT-2 is 0, DST-7 is 10 without vertical flipping, and DST-7 is 11 after longitudinal flipping.
- the intra prediction mode is a prediction mode close to the vertical prediction mode
- only three transformation methods of DCT-2, DST-7 without horizontal flipping, and DST-7 after horizontal flipping may be used.
- the conversion mode information or the flipping method information may be signaled as DCT-2 is 0, DST-7 is 10 without ripping, and DST-7 is 11 after lateral flipping.
- the intra prediction mode is a prediction mode close to the diagonal prediction mode
- only two transformation methods of DCT-2 and DST-7 may be used without flipping.
- conversion mode information or flipping method information may be signaled as 0 for DCT-2 and 1 for DST-7 without flipping.
- DCT-2, DST-7 without flipping, DST-7 after horizontal flipping, DST-7 after vertical flipping, and horizontal and vertical flipping can be used.
- the index for the conversion method may be signaled in the truncated unary code or fixed length code scheme or otherwise.
- the intra prediction mode is a non-directional mode
- DCT-2, DST-7 without flipping, DST-7 after horizontal flipping, DST-7 after vertical flipping, and horizontal and vertical direction After flipping all five conversion methods of the DST-7 can be used.
- the index for the conversion method may be signaled in the truncated unary code or fixed length code scheme or otherwise.
- DCT-2 For example, if the intra prediction mode is odd mode, four conversion methods are DCT-2, DST-7 without flipping, DST-7 after longitudinal flipping, and DST-7 after horizontal and longitudinal flipping. Can be used.
- DCT-2 is 0,
- DST-7 is 10 without flipping, vertical flipping is followed by DST-7 is 110, and transverse and longitudinal flipping is followed by conversion mode information or flipping method as 111. Information can be signaled.
- the intra prediction mode is an even mode
- four transformation methods may be used: DCT-2, DST-7 without flipping, DST-7 after horizontal flipping, and DST-7 after vertical flipping.
- DCT-2 is 0,
- DST-7 is 10 without flipping
- DST-7 is 110 after horizontal flipping
- DST-7 is 111 after vertical flipping. May be signaled.
- Information on the region in which the method is used may be signaled in units of CTU or slice, or in units of PPS, SPS, or other specific region, and a 1-bit flag may be signaled in an on / off format.
- 22 and 23 illustrate positions where residual rearrangement is performed in the encoder and the decoder according to the present invention, respectively.
- the encoder may perform residual signal rearrangement before performing the DST-7 conversion process.
- the residual signal rearrangement may be performed between the transform process and the quantization process in the encoder, or the residual signal rearrangement may be performed after the quantization process is performed.
- a residual signal rearrangement may be performed after the DST-7 inverse transform process is performed in the decoder.
- the residual signal rearrangement may be performed between the inverse quantization process and the inverse transform process in the decoder, or the residual signal rearrangement may be performed before the inverse quantization process is performed.
- 24 is a diagram for explaining an embodiment of a decoding method using the SDST method according to the present invention.
- a transform mode of a current block may be determined (S2910), and residual data of the current block may be inversely transformed according to the transform mode of the current block (S2920).
- residual data of the inversely transformed current block may be rearranged according to the transform mode of the current block.
- the transformation mode may include at least one of a shuffling disc sine transform (SDST), a shuffling disc cosine transform (SDCT), a discrete sine transform (DST), and a discrete cosine transform (DCT).
- SDST shuffling disc sine transform
- SDCT shuffling disc cosine transform
- DST discrete sine transform
- DCT discrete cosine transform
- the SDST mode may indicate a mode for performing inverse transformation in the DST-7 transformation mode and performing rearrangement of the inversely transformed residual data.
- the SDCT mode may indicate a mode for performing inverse transform in the DCT-2 transform mode and performing rearrangement of the inverse transformed residual data.
- the DST mode may indicate a mode in which inverse transformation is performed in the DST-7 transformation mode and in which rearrangement of the inverse transformed residual data is not performed.
- the DCT mode may indicate a mode in which inverse transform is performed in the DCT-2 transform mode and no rearrangement of the inverse transformed residual data is performed.
- the reordering of the residual data may be performed only when the transform mode of the current block is one of SDST and SDCT.
- DST-7 conversion mode Although the inverse transformation is performed in the above-described SDST and DST modes in the DST-7 conversion mode, other DST-based conversion modes such as DST-1 and DST-2 may be used.
- the step of determining the conversion mode of the current block may include obtaining the conversion mode information of the current block from the bitstream and determining the conversion mode of the current block based on the conversion mode information.
- the conversion mode of the current block may be determined based on at least one of a prediction mode of the current block, depth information of the current block, a size of the current block, and a shape of the current block.
- the transform mode of the current block may be determined as one of SDST and SDCT.
- the first direction order is one of a raster scan order, an up-right diagonal scan order, a horizontal scan order, and a vertical scan order. It can be either.
- the first direction order may be defined as follows.
- any one of the above-described directions may be selectively used.
- the first direction and the second direction may be the same or may be different from each other.
- the residual data of the inversely transformed current block may be rearranged in units of subblocks in the current block.
- the residual data may be rearranged based on the position of the sub block in the current block. Rearrangement of the residual data based on the position of the sub block is described in detail in Equation 6 above, and thus redundant description will be avoided.
- the residual data of the inversely transformed current block may be rearranged by rotating the residual data arranged in the inversely transformed current block by a predetermined angle.
- the residual data of the inversely transformed current block may be rearranged by flipping the residual data arranged in the inversely transformed current block according to a flipping method.
- determining the conversion mode of the current block may include obtaining flipping method information from the bitstream and determining the flipping method of the current block based on the flipping method information. have.
- 25 is a diagram for explaining one embodiment of an encoding method using an SDST method according to the present invention.
- the conversion mode of the current block may be determined (S3010).
- residual data of the current block may be rearranged according to a conversion mode of the current block.
- residual data of the rearranged current block may be converted according to the conversion mode of the current block.
- the transformation mode may include at least one of a shuffling disc sine transform (SDST), a shuffling disc cosine transform (SDCT), a discrete sine transform (DST), and a discrete cosine transform (DCT).
- SDST shuffling disc sine transform
- SDCT shuffling disc cosine transform
- DST discrete sine transform
- DCT discrete cosine transform
- the determining of the transform mode of the current block may be determined based on at least one of a prediction mode of the current block, depth information of the current block, a size of the current block, and a shape of the current block.
- the transform mode of the current block may be determined as one of SDST and SDCT.
- the residual data of the current block may be rearranged in units of sub blocks within the current block.
- rearranging the residual data of the current block may rearrange the residual data based on the position of the sub block in the current block.
- the residual data of the current block may be rearranged by rotating the residual data arranged in the current block at a predetermined angle.
- the residual data arranged in the current block may be flipped and rearranged according to a flipping method.
- the image decoder using the SDST method according to the present invention determines the conversion mode of the current block, inversely transforms the residual data of the current block according to the conversion mode of the current block, and It may include an inverse transform unit for rearranging the residual data.
- the transformation mode may include at least one of a shuffling disc sine transform (SDST), a shuffling disc cosine transform (SDCT), a discrete sine transform (DST), and a discrete cosine transform (DCT).
- the image decoder using the SDST method according to the present invention determines the transform mode of the current block, rearranges the residual data of the current block according to the transform mode of the current block, and reorders the current block according to the transform mode of the current block. It may include an inverse transform unit for inversely transforming the residual data of the.
- the transformation mode may include at least one of a shuffling disc sine transform (SDST), a shuffling disc cosine transform (SDCT), a discrete sine transform (DST), and a discrete cosine transform (DCT).
- the image encoder using the SDST method according to the present invention determines the transform mode of the current block, rearranges the residual data of the current block according to the transform mode of the current block, and rearranges the current block according to the transform mode of the current block. It may include a conversion unit for converting the residual data of the.
- the transformation mode may include at least one of a shuffling disc sine transform (SDST), a shuffling disc cosine transform (SDCT), a discrete sine transform (DST), and a discrete cosine transform (DCT).
- the image encoder using the SDST method according to the present invention determines a conversion mode of the current block, converts residual data of the current block according to the conversion mode of the current block, and residuals of the converted current block according to the conversion mode of the current block. It may include a conversion unit for rearranging the data.
- the transformation mode may include at least one of a shuffling disc sine transform (SDST), a shuffling disc cosine transform (SDCT), a discrete sine transform (DST), and a discrete cosine transform (DCT).
- the bitstream generated by the encoding method using the SDST method according to the present invention may include determining a transform mode of the current block, rearranging residual data of the current block according to the transform mode of the current block, and transform mode of the current block. Transforming the residual data of the current block rearranged according to the above, wherein the transform mode includes a shuffling disc sine transform (SDST), a shuffling disc cosine transform (SDCT), a discrete sine transform (DST), and a discrete cosine transform (DCT). It may include at least one of.
- SDST shuffling disc sine transform
- SDCT shuffling disc cosine transform
- DST discrete sine transform
- DCT discrete cosine transform
- 26 to 31 show examples of positions where a flipping method is performed in an encoder or a decoder according to the present invention.
- FIG. 26 is a diagram for describing an embodiment of an encoding process of a method for performing after flipping.
- FIG. 27 illustrates an embodiment of a decoding process of a method of performing flipping after inverse transform.
- a residual signal is generated by subtracting an inter-screen or intra-screen prediction signal from an original signal for a current block, and then selecting one of DCT-2 transform, flipping, and DST-7 transform as a conversion method.
- the transform method is a DCT-2 transform
- a transform coefficient may be generated by performing transform on the residual signal using the DCT-2 transform. If the conversion method is flipping and DST-7 conversion method, select one of the four flipping methods (no flipping, horizontal flipping, vertical flipping, horizontal and vertical flipping) After performing the flipping on the signal, the transform coefficient may be generated by transforming the residual signal that is flipped using the DST-7 transform. Quantization may be performed on the transform coefficients to generate quantized levels.
- a transform coefficient may be generated by performing inverse quantization by receiving a quantized level.
- a method corresponding to the method selected during the DCT-2 inverse transform or the DST-7 inverse transform and flipping may be selected. That is, when the DCT-2 transform is performed during the encoding process, the DCT-2 inverse transform may be performed during the decoding process. In addition, when the flipping and DST-7 transform methods are performed in the encoding process, the inverse transform and flipping may be performed in the decoding process.
- the inverse transform method is a DCT-2 inverse transform
- the inverse transform may be performed on the transform coefficients using the DCT-2 inverse transform to generate a reconstructed residual signal.
- the inverse transform method is a DST-7 inverse transform and flipping method
- four inverse flipping methods (no flipping, horizontal) are performed after performing an inverse transform on the residual coefficients using the DST-7 inverse transform to generate a reconstructed residual signal.
- Directional flipping, longitudinal flipping, horizontal and vertical flipping may be selected to perform the flipping on the reconstructed residual signal to generate the flipped and reconstructed residual signal.
- a reconstruction signal may be generated by adding the inter prediction or intra picture prediction signal to the reconstructed residual signal or the flipped and reconstructed residual signal.
- FIG. 28 illustrates an embodiment of an encoding process of a method of performing flipping after transformation.
- FIG. 29 illustrates an embodiment of a decoding process of a method of performing inverse transform after flipping.
- a residual signal is generated by subtracting an inter-screen or intra-screen prediction signal from an original signal for a current block, and then selecting one of DCT-2 conversion, DST-7 conversion, and flipping as a conversion method.
- the transform method is a DCT-2 transform
- a transform coefficient may be generated by performing transform on the residual signal using the DCT-2 transform.
- the conversion method is the DST-7 transform and the flipping method
- four flipping methods no flipping, horizontal flipping, vertical flipping
- One of ripping, transverse and longitudinal flipping may be selected to flip the transform coefficients to generate flipped transform coefficients.
- Quantization may be performed on the transform coefficient or the flipped transform coefficient to generate a quantized level.
- rearrangement may be performed on the transform coefficients.
- the method of performing the reordering may be the same method as flipping, the method of performing a second transformation for rotating the axis at the zero point of the transformation, and the method of changing the positive and negative signs of the transformation coefficients to each other. And so on.
- a transform coefficient may be generated by receiving inverse quantization by receiving a quantized level.
- a method corresponding to the method selected in the encoding process is selected. That is, when the DCT-2 transform is performed in the encoding process, the DCT-2 inverse transform may be performed in the decoding process.
- the flipping and the DST-7 inverse transform may be performed in the decoding process.
- the inverse transform method is a DCT-2 inverse transform
- the inverse transform may be performed on the transform coefficients using the DCT-2 inverse transform to generate a reconstructed residual signal.
- the inverse transform method is the flipping and DST-7 inverse transform methods, select one of the four flipping methods (no flipping, horizontal flipping, vertical flipping, horizontal and vertical flipping)
- the inverted residual signal may be generated by performing an inverse transform on the flipped transform coefficients using the inverse transform of the DST-7.
- the reconstructed signal may be generated by adding the inter prediction or intra picture prediction signal to the reconstructed residual signal.
- FIG. 30 is a diagram for describing an embodiment of an encoding process of a method of performing flipping after quantization.
- FIG. 31 illustrates an embodiment of a decoding process of a method of performing dequantization after flipping.
- a residual signal is generated by subtracting an inter-screen or intra-screen prediction signal from an original signal for a current block, and then, one of DCT-2 and DST-7 may be selected as a conversion method.
- the transform method is a DCT-2 transform
- a transform coefficient may be generated by performing transform on the residual signal using the DCT-2 transform.
- transform coefficients may be generated by performing transform on the residual signal using the DST-7 transform.
- Quantization may be performed on the transform coefficients to generate quantized levels.
- the transform method is a DST-7 transform, one of four flipping methods (no flipping, horizontal flipping, vertical flipping, horizontal flipping and vertical flipping) is selected on the quantized level.
- a flipped quantized level By performing flipping on the quantized level, a flipped quantized level can be generated.
- reordering of the quantized levels may be performed.
- the method of performing reordering may be the same method as flipping, and may be a method in which a second transformation for rotating an axis at the zero point of the transformation is performed, and changing a positive and negative sign of a quantized level from each other. Method and the like.
- an inverse transform method corresponding to a method selected in a coding process among DCT-2 inverse transform or DST-7 inverse transform is selected as an inverse transform method by receiving a quantized level. That is, when the DCT-2 transform is performed during the encoding process, the DCT-2 inverse transform may be performed during the decoding process. In addition, when the DST-7 transform is performed in the encoding process, the DST-7 inverse transform may be performed in the decoding process.
- the inverse transform method is a DCT-2 inverse transform
- the inverse quantization may be performed on the quantized level to generate transform coefficients, and then the residual signal may be generated by performing an inverse transform on the transform coefficients using the DCT-2 inverse transform.
- the inverse transform method is the DST-7 inverse transform method, select one of four flipping methods (no flipping, horizontal flipping, vertical flipping, horizontal and vertical flipping) to the quantized level. After performing flipping, transform coefficients may be generated by performing inverse quantization on the flipped quantized level.
- the DST-7 inverse transform may be used to generate a reconstructed residual signal by performing an inverse transform on the transform coefficients.
- the reconstructed signal may be generated by adding the inter prediction or intra picture prediction signal to the reconstructed residual signal.
- the position at which the flipping method is performed at the decoder may be determined based on the information about the flipping position signaled from the encoder.
- 32 is a diagram to describe performing flipping on a residual block.
- At least one of 'no flipping', 'horizontal flipping', 'vertical flipping', and 'horizontal direction and vertical flipping' may be performed on the residual block.
- the position of the sample in the residual block may be changed according to the flipping type.
- FIG. 33 is a diagram illustrating an embodiment of implementing hardware flipping on a residual block having a size of 8 ⁇ 8 in hardware.
- the address value addr used when reading data from the residual block memory is changed to M-1-addr so that the vertical value for the MxN block is changed.
- Directional flipping can be performed. That is, vertical flipping may be implemented by reading the data in the remaining blocks by changing the memory row address for the MxN block instead of the vertical flipping operation.
- horizontal flipping with respect to the MxN block may be performed by changing a data value in a reverse order and reading the residual block memory. That is, the horizontal flipping may be implemented by changing the order of reading data values of the MxN blocks instead of the horizontal flipping operation. For example, if the data stored in memory is a, b, c, d, e, f, g, h, the data values are read in the order of h, g, f, e, d, c, b, a. Horizontal flipping can be performed by coming.
- 34 is a diagram to describe performing flipping and transformation on a residual block.
- AMT Adaptive Multiple Transform
- At least one of the transforms used herein may be used to construct an AMT set.
- at least one transform is added to the AMT transform set for each intra- and inter-screen encoded / decoded block, as well as transforms such as DCT-2, DCT-5, DCT-8, DST-1, and DST-7.
- DCT-2, DCT-5, DCT-8, DST-1, and DST-7 can be added.
- DST-4 and intentity transtorm may be added to the AMT transform set for inter-screen coded / decoded blocks
- KMT-1 and KLT-2 are AMT for intra coded / decoded blocks. Can be added to a transform set.
- a transform corresponding to a block having a size such as 4x24 or 8x48 instead of a power of 2 may be added.
- seven transform sets having four transform pairs for each set may be defined as shown in Table 14 below.
- Prediction mode Transformation pair set T 0, in picture ⁇ (DST-4, DST-4), (DST-7, DST-7), (DST-4, DCT-8), (DCT-8, DST-4) ⁇ T 1, in- screen ⁇ (DST-7, DST-7), (DST-7, DCT-5), (DCT-5, DST-7), (DST-1, DCT-5) ⁇ T 2, on screen ⁇ (DST-7, DST-7), (DST-7, DCT-8), (DCT-8, DST-7), (DCT-5, DCT-5) ⁇ T 3, in- screen ⁇ (DST-4, DST-4), (DST-4, DCT-5), (DCT-8, DST-4), (DST-1, DST-7) ⁇ T 4, In Screen ⁇ (DST-4, DST-7), (DST-7, DCT-5), (DCT-8, DST-7), (DST-1, DST-7) ⁇ T 5, In Screen ⁇ (DST-7, DST-7), (DST-7, DCT-5), (DCT-8, DST
- the first item of the conversion pair may mean a conversion in the vertical direction
- the second item may mean a conversion in the horizontal direction.
- the transform pair set in Table 14 may be defined such that each of the seven transform sets is allocated based on different intra prediction modes and different block sizes.
- T 0 to T 6 may mean a set of transform pairs usable for each block size. For example, T 0 is 2x2 block size, T 1 is 4x4 block size, T 2 is 8x8 block size, T 3 is 16x16 block size, T 4 is 32x32 block size, T 5 is 64x64 block size, T 6 is 128x128 The equality transform can be applied to blocks that do not exceed 16x16.
- the identity transformation may be applied to a block having a mode close to the horizontal and vertical intra picture prediction direction, and the mode close to the horizontal and / or vertical intra picture prediction direction may be defined as a threshold value based on the size of the block. Can be. For example, if the transform index is 3 and the block satisfies the above condition, the horizontal and / or vertical identity transform may be applied.
- two transform sets having four transform pairs for each set may be defined as shown in Table 15 below.
- T 1 screen to screen ⁇ (DCT-8, DCT-8), (DCT-8, DST-7), (DST-7, DCT-8), (DST-7, DST-7) ⁇ T 1
- T 0 and T 1 may mean a set of transform pairs that can be used corresponding to the block size.
- a transform set including KLTs ie, T 1, screen
- T 0 for a block having a size larger than 16 ⁇ 16
- the screen may be applied between the.
- the adjustment step may be defined using block-band orthogonal matrices for transforming a DCT-2 series transform into a form similar to an AMT transform.
- the primary transform set for AMT used herein may be configured with DCT-2, DCT-8, DST-4, DST-7 transform, etc., and the primary transform set is DCT-8, DST. It may also consist of -4 and DST-7 transforms.
- the DST-7 transformation matrix may be implemented by performing flipping, sign change, etc. based on the DCT-8 transformation matrix.
- two-dimensional transform sets may be configured using the transforms and used in an inter-screen encoding / decoding process.
- a 2D transform set as shown in Table 16 below may be used.
- TrIdxpredModIdx 0 One 2 3 0 DST4, DST4 DST7, DST7 DST4, DCT8 DCT8, DST4 One DST7, DST7 DST7, DCT2 DCT2, DST7 DCT2, DCT8 2 DST7, DST7 DST7, DCT8 DCT8, DST7 DCT2, DST7 3 DST4, DST4 DST4, DCT2 DCT8, DST4 DCT2, DST7 4 DST4, DST7 DST7, DCT2 DCT8, DST7 DCT2, DST7 5 DST7, DST7 DST7, DCT2 DCT8, DST7 DCT2, DST7 6 DST7, DST7 DST7, DCT2 DCT2, DST7 DCT2, DST7 DCT2, DST7 DCT2, DST7
- Table 16 shows transform sets for vertical and horizontal transforms for each prediction mode (predModIdx) and transform index (TrIdx).
- the AMT transform set may be replaced with a transform set using DCT-8 and DST-7. Can be.
- At least one of AMT transform usage information (AMT flag) and transform index information (AMT index) may not be signaled to the decoder without applying the AMT transform in the block. Can be.
- the transformation matrices of DCT-8, DST-1, and DCT-5 included in the AMT transformation set used herein may be replaced with other transformation matrices.
- Flipped DST-7 may be used instead of DCT-8.
- DST-6 may be used instead of DST-1.
- DCT-2 may be used instead of DCT-5.
- the flipped transformation matrices of DST-7 and DST-6 may be derived from DST-7 as shown in Equation 7 below.
- the AMT transformation including the transformation columns of the DCT-8, DST-1, and DCT-5 may be applied to both the luminance component and the chrominance component.
- the transform for the luminance component can be determined based on the explicitly signaled AMT index representing the set of mode-dependent transforms and the horizontal and vertical transforms.
- the transformation may be determined in the same manner as the transformation determination method for the luminance component, but the number of transformation candidates may be smaller than the number of transformation candidates of the luminance component.
- the transformation may be determined by a 1-bit flag indicating whether the AMT index is the same as the call block or basic transformation (DCT-2xDCT-2) of the luminance component.
- the AMT can select between horizontal and vertical conversion in DCT-2, DST-7 and flipped DST-7 (FDST-7).
- an AMT flag may be defined.
- An AMT flag of 0 may indicate that DCT-2 is used for both a horizontal transform and a vertical transform, and an AMT flag of 1 may indicate that another transform according to the AMT index is used.
- the use of AMT can be allowed only if both the width and the height of the block are less than or equal to 64.
- the AMT flag may be determined by the intra prediction mode. In the even intra prediction mode, an AMT flag may be implicitly assigned to 1, and in the even intra prediction mode, an AMT flag may be implicitly assigned to 0. In addition, in the odd intra prediction mode, an AMT flag may be implicitly assigned to 1, and in the even intra prediction mode, an AMT flag may be implicitly assigned to 0.
- a transform set in which two transforms DST-7 and DCT-8 are added may be used, and the maximum block size to which AMT is applied may be limited to a size of 32 ⁇ 32.
- Forward N ⁇ N DST-7 with a Discrete Fourier Transform (DFT) of 2N + 1 length may be implemented to obtain N ⁇ N DST-7.
- the 2N + 1 FFT can be reconstructed into a two-dimensional FFT.
- DCT-8 may be derived through code change and reordering immediately before and after DST-7 calculation in DST-7.
- the DST-7 can be reused to implement the DCT-8.
- the transform or inverse transform on the current block may be performed only on the subblocks in the current block.
- the sub block may be a sub block of the upper left position of the current block.
- the horizontal length and the vertical length of the sub block may be independently determined.
- the horizontal length (or vertical length) of the sub block may be determined according to the type of the transform kernel applied to the horizontal transform or inverse transform (or vertical transform or inverse transform).
- the horizontal length may be 32 samples.
- the transform kernel applied to the horizontal transform or the inverse transform is not DCT-2, for example, DST-7 or DCT-8, the horizontal length may be 16 samples.
- the vertical length may be 32 samples.
- the transform kernel applied to the vertical transform or the inverse transform is not DCT-2, for example, DST-7 or DCT-8
- the vertical length may be 16 samples.
- the subblock cannot be larger than the current block, when the length of the current block is smaller than the length of the derived subblock (eg, 32 samples or 16 samples), the length of the block in which the transform or inverse transform is performed is equal to the length of the current block. Can be determined by length.
- the transform or inverse transform may not be performed on samples in the current block not included in the sub block, and all sample values of the samples may be set to '0'.
- the subblock may include a residual signal that is a difference between an input signal and a prediction signal, or a transform coefficient having a form in which the residual signal is converted.
- the intra prediction mode dependent transform of the luminance component and the chrominance component may be represented as shown in Tables 17 and 18, respectively.
- Table 17 shows a transformation mapping table for luminance components
- Table 18 shows a transformation mapping table for chrominance components.
- position dependent transform can be used for the residual signal in the merge mode.
- the transformation of the residual signal in the merge mode may vary depending on a spatial motion vector predictor (MVP) candidate used for motion compensation of the current block.
- MVP spatial motion vector predictor
- Table 19 shows a mapping table between MVP locations and transformations.
- DST-7 and DCT-2 may be used as horizontal and vertical transformations, respectively.
- DCT-2 and DST-7 may be used as horizontal and vertical transformations, respectively.
- DCT-2 may be used as the primary transform.
- Entropy encoding / decoding of transform usage information combining the AMT transform usage information as the primary transform and the non-separable secondary transform (NSST) transform usage information as the secondary transform may be performed.
- the use of AMT and NSST may be indicated by a single conversion index. Instead of independently signaling the indices of the primary and secondary transforms, the primary and secondary transforms may be combined and signaled by one transform index.
- the combined transform index can be used for both the luminance component and the chrominance component.
- the transform used herein may be selected from N predefined transform candidate sets for each block.
- N may be a positive integer.
- Each of the transform candidates may specify a first order horizontal transform, a first order vertical transform, and a second order transform (which may be the same as the identity transform).
- the list of transform candidates may vary depending on block size and prediction mode.
- the selected transform can be signaled as follows. If the coding block flag is 1, a flag indicating whether a first transform of the candidate list is used may be transmitted. If the flag specifying whether the first transform of the candidate list is used is 0, then the following may apply: If the number of non-zero transform coefficient levels is greater than the threshold, a transform index indicating the transform candidate used may be transmitted. ; Otherwise a second transform of the list can be used.
- NSST which is a secondary transform
- DCT-2 is used as the primary transform as the primary transform.
- horizontal transformation or vertical transformation may select DST-7 without signaling when the horizontal or vertical is independently less than or equal to four.
- the AMT flag may be signaled when the number of nonzero transform coefficients is greater than the threshold.
- the threshold In the case of an inter-block, the threshold may be set to 2. In the case of blocks in the screen, the threshold may be set to zero. If the number of non-zero transform coefficients is greater than two, the AMT index may be signaled. Otherwise, it can be estimated as zero.
- NSST for a block of in-screen luminance components, if the sum of the number of nonzero transform coefficients of the upper left 8x8 or 4x4 luminance and the number of nonzero AC coefficients of the upper left 8x8 or 4x4 chrominance component is greater than 2, then the NSST index is May be signaled.
- DST-7 may be used instead of DCT-2 when the width of the block is smaller than or equal to K for the residual block. If the height of the block is less than or equal to L, DST-7 may be used instead of DCT-2 for one-dimensional vertical transformation. And even if the width or height of the block is less than or equal to K, DCT-2 can be used when the intra prediction mode is LM (linear model) chroma mode.
- K and L are positive integers, for example four.
- the K and L may have the same or different values.
- the residual block may be a block encoded in an intra mode.
- the residual block may be a color difference block.
- the transform / inverse transform may be performed by using a transform kernel or a transform matrix on which the flipping is performed.
- the transformed / inverse transform kernel or the transformed / inverse transform matrix on which flipping has been performed may be a kernel or matrix defined to the encoder / decoder by performing flipping.
- the flipping may be at least one of no flipping, horizontal flipping, vertical flipping, horizontal and vertical flipping.
- information on whether to use the transform / inverse transform that has been flipped may be signaled.
- the information on whether the flipped transform or inverse transform is used may be signaled for the horizontal transform / inverse transform and the vertical transform / inverse transform, respectively.
- transform / inverse transform may be performed by flipping the transform kernel or the transform matrix in the encoding / decoding process.
- the transform / inverse transform is performed by flipping the transform / inverse transform matrix, the same effect as the flipping of the residual signal can be obtained.
- the flipping may be at least one of no flipping, horizontal flipping, vertical flipping, horizontal and vertical flipping. In this case, it is possible to signal whether information is performed to flip the transform / inverse transform matrix.
- whether to perform flipping on the transform / inverse transform matrix may be signaled for each of the horizontal direction transform / inverse transform and the vertical direction transform / inverse transform.
- the flipping method for the non-directional mode is performed before / after the transform / inverse transform for the current block. Flipping can be performed.
- the flipping method for the main directional mode is used to transfer the transform / inverse transform for the current block. Flipping can be performed after /.
- the main directional mode may be at least one of a vertical mode, a horizontal mode, and a diagonal mode.
- the transform coefficients present in the regions of M / 2 to M and N / 2 to N during or after the transformation may be set to a value of zero.
- M and N are positive integers, for example, may be 64x64.
- a right shift operation may be performed by K on the transform coefficients generated after the transform.
- the right shift operation may be performed by K on the temporary transform coefficient generated after the horizontal transform.
- the right shift operation may be performed by K on the temporary transform coefficient generated after the vertical conversion. Where K is a positive integer.
- the right shift operation may be performed by K on the reconstructed residual signal generated after the inverse transform.
- the right shift operation may be performed by K on the temporary transform coefficient generated after the horizontal inverse transform.
- the right shift operation may be performed by K on the temporary transform coefficient generated after the vertical inverse transform. Where K is a positive integer.
- At least one of the flipping methods may be performed on at least one of signals generated after the horizontal / inverse transform, the horizontal / inverse transform, the vertical / inverse transform, and the vertical / inverse transform. have.
- the flipping method information used in the horizontal direction transformation / inverse transformation or the vertical direction transformation / inverse transformation may be signaled.
- DCT-4 may be used instead of the DST-7. Since the 2 N -1 size DCT-4 transform / inverse transform matrix can be extracted from the 2 N size DCT-2 transform / inverse transform matrix, only the DCT-2 transform / inverse transform matrix in the encoder / decoder is used instead of DCT-4. Since it can be stored, the memory requirement of the encoder / decoder can be reduced. In addition, since the 2N-1 size DCT-4 transform / inverse transform logic can be utilized from the 2N size DCT-2 transform / inverse transform logic, the chip area required to implement the encoder / decoder is May decrease.
- the above example is not applied only to the DCT-2 and the DCT-4, but the transformation matrix or the transformation logic shared by at least one of the types of the DST transform / inverse transform and at least one of the types of the DCT transform / inverse transform
- the above example can be applied. That is, another transform / inverse transform matrix or logic may be extracted and used from one transform / inverse transform matrix or logic.
- another transform / inverse transform matrix or logic may be extracted from one transform / inverse transform matrix or logic.
- another transform / inverse transform matrix may be extracted from one transform / inverse transform matrix in at least one of a matrix unit, a basis vector unit, and a matrix coefficient unit.
- another transform / inverse transform may be used for transform / inverse transform of the current block instead of a specific transform / inverse transform.
- another transform / inverse transform may be used for transform / inverse transform of the current block instead of a specific transform / inverse transform.
- M and N are positive integers.
- the specific transform / inverse transform and the other transform / inverse transform may be a transform / inverse transform defined in an encoder / decoder.
- At least one of the conversion of DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 and the like used in the present specification is DCT-4, DCT-8, DCT-2, DST.
- At least one of the transforms calculated based on a transform of -4, DST-1, and DST-7 may be used.
- the calculated transform may be a transform calculated by changing coefficient values in a transformation matrix such as DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7.
- the coefficient values in the transformation matrix of the DCT-4, DCT-8, DCT-2, DST-4, DST-1, and DST-7 may have integer values.
- the transform of DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 may be an integer transform.
- the calculated coefficient value in the transformation matrix may have an integer value. That is, the calculated transform may be an integer transform.
- the calculated transform performs a left shift operation by N on coefficient values in the transformation matrix of the DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7, and the like. One result, where N may be a positive integer.
- the DCT-Q and DST-W conversions may include the DCT-Q and DST-W conversions and the DCT-Q and DST-W inverse transforms.
- Q and W may have a positive value of 1 or more, for example 1 to 9 may be used in the same meaning as I to IX.
- the conversion of the DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7, etc. used in the present specification is not limited to the corresponding conversion, and the DCT-Q and DST-W conversions. At least one of the DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 may be used in place of the conversion.
- Q and W may have a positive value of 1 or more, for example 1 to 9 may be used in the same meaning as I to IX.
- the transform used in the present specification may be performed in the form of a square transform in the case of a square block, may be performed in the form of a non-square transformation in the case of a non-square block, and includes at least one of a square block and a non-square block.
- the transformation may be performed in a square transform form on the corresponding region, and in the case of the non-square region including at least one of the square block and the non-square block, the transformation may be performed in the non-square transformation form on the corresponding region.
- the information on the rearrangement method in the present specification may be flipping method information.
- the transform used herein may mean at least one of a transform and an inverse transform.
- the information about the horizontal transform and the vertical transform may be information signaled from the encoder to the decoder, and may not be signaled according to the size information such as the horizontal size or the vertical size of the block, and may be signaled in a predetermined manner in the encoder / decoder.
- the information may be implicitly determined.
- the horizontal size or the vertical size of the block when the horizontal size or the vertical size of the block is 1, it may mean that the transformation is not performed in the corresponding direction.
- the 16x1 block may mean that the horizontal transformation is performed in the horizontal direction without performing the vertical transformation in the vertical direction.
- the 1x32 block may mean that the vertical transformation is performed in the vertical direction without performing the horizontal transformation in the horizontal direction.
- An image may be encoded / decoded using at least one or at least one combination of the above embodiments.
- the order of applying the embodiment may be different in the encoder and the decoder, and the order of applying the embodiment may be the same in the encoder and the decoder.
- the above embodiment may be performed with respect to each of the luminance and chrominance signals, and the same embodiment may be performed with respect to the luminance and the chrominance signals.
- the shape of the block to which the embodiments of the present invention are applied may have a square shape or a non-square shape.
- the above embodiments of the present invention may be applied according to at least one of a coding block, a prediction block, a transform block, a block, a current block, a coding unit, a prediction unit, a transform unit, a unit, and a current unit.
- the size here may be defined as a minimum size and / or a maximum size for the above embodiments to be applied, or may be defined as a fixed size to which the above embodiments are applied.
- the first embodiment may be applied at the first size
- the second embodiment may be applied at the second size. That is, the embodiments may be applied in combination according to the size.
- the above embodiments of the present invention may be applied only when the minimum size or more and the maximum size or less. That is, the above embodiments may be applied only when the block size is included in a certain range.
- the above embodiments may be applied only when the size of the current block is 8x8 or more.
- the above embodiments may be applied only when the size of the current block is 4x4.
- the above embodiments may be applied only when the size of the current block is 16x16 or less.
- the above embodiments may be applied only when the size of the current block is 16x16 or more and 64x64 or less.
- the above embodiments of the present invention can be applied according to a temporal layer.
- a separate identifier is signaled to identify the temporal layer to which the embodiments are applicable and the embodiments can be applied to the temporal layer specified by the identifier.
- the identifier here may be defined as the lowest layer and / or the highest layer to which the embodiment is applicable, or may be defined as indicating a specific layer to which the embodiment is applied.
- a fixed temporal layer to which the embodiment is applied may be defined.
- the above embodiments may be applied only when the temporal layer of the current image is the lowest layer.
- the above embodiments may be applied only when the temporal layer identifier of the current image is one or more.
- the above embodiments may be applied only when the temporal layer of the current image is the highest layer.
- a slice type or tile group type to which the above embodiments of the present invention are applied is defined, and the above embodiments of the present invention may be applied according to the corresponding slice type or tile group type.
- the methods are described based on a flowchart as a series of steps or units, but the present invention is not limited to the order of steps, and certain steps may occur in a different order or simultaneously from other steps as described above. Can be. Also, one of ordinary skill in the art appreciates that the steps shown in the flowcharts are not exclusive, that other steps may be included, or that one or more steps in the flowcharts may be deleted without affecting the scope of the present invention. I can understand.
- Embodiments according to the present invention described above may be implemented in the form of program instructions that may be executed by various computer components, and may be recorded in a computer-readable recording medium.
- the computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.
- Program instructions recorded on the computer-readable recording medium may be those specially designed and configured for the present invention, or may be known and available to those skilled in the computer software arts.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs, DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
- Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
- the hardware device may be configured to operate as one or more software modules to perform the process according to the invention, and vice versa.
- the present invention can be used to encode / decode an image.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 변환 기반의 영상 부호화/복호화 방법 및 장치에 관한 것이다. 본 발명에 따른 영상 복호화 방법은, 복수의 변환 커널들 중 하나의 변환 커널을 선택하는 단계, 상기 선택된 변환 커널에 기초하여 현재 블록의 잔여 블록에 대해 역변환을 수행하는 단계, 및 상기 역변환된 잔여 블록에 기초하여 상기 현재 블록을 복원하는 단계를 포함할 수 있다.
Description
본 발명은 영상의 부호화/복호화 방법 및 장치에 관한 것으로, 보다 상세하게는 변환(transform), 셔플링, 재배열, 플리핑에 기반하여 비디오 영상을 부호화/복호화하는 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 더 높은 해상도 및 화질을 갖는 영상에 대한 고효율 영상 부호화(encoding)/복호화(decoding) 기술이 요구된다.
영상 압축 기술로 현재 픽처의 이전 또는 이후 픽처로부터 현재 픽처에 포함된 화소값을 예측하는 화면간 예측 기술, 현재 픽처 내의 화소 정보를 이용하여 현재 픽처에 포함된 화소값을 예측하는 화면내 예측 기술, 잔여 신호의 에너지를 압축하기 위한 변환 및 양자화 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
본 발명은 부호화/복호화 효율이 향상된 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 부호화/복호화 효율을 향상시키기 위한 변환, 셔플링, 재배열 및/또는 플리핑 기반의 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 영상의 변환 효율을 향상시키기 위한 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 본 발명의 영상 부호화/복호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체를 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 영상 복호화 방법은, 복수의 변환 커널들 중 하나의 변환 커널을 선택하는 단계, 상기 선택된 변환 커널에 기초하여 현재 블록의 잔여 블록에 대해 역변환을 수행하는 단계, 및 상기 역변환된 잔여 블록에 기초하여 상기 현재 블록을 복원하는 단계를 포함할 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 변환 커널을 선택하는 단계는, 비트스트림에 포함되어 시그널링되는 변환 커널에 관한 정보에 기초하여 수행될 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 현재 블록이 화면내 예측된 블록인 경우, 상기 변환 커널을 선택하는 단계는, 상기 잔여 블록의 크기 및 형태 중 적어도 하나에 기초하여 수행될 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 잔여 블록의 가로 길이가 소정의 범위에 포함되고, 상기 가로 길이가 상기 잔여 블록의 세로 길이보다 크지 않은 경우, 상기 잔여 블록의 수평 변환에 적용될 변환 커널은 제1 변환 커널이고, 상기 잔여 블록의 가로 길이가 소정의 범위에 포함되지 않거나, 상기 가로 길이가 상기 세로 길이보다 큰 경우, 상기 잔여 블록의 수평 변환에 적용될 변환 커널은 제2 변환 커널일 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 소정의 범위는 4 샘플부터 16 샘플까지의 범위일 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 제1 변환 커널은 DST-7이고, 상기 제2 변환 커널은 DCT-2일 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 현재 블록에 포함된 복수의 서브 블록들 각각에 대해 화면내 예측이 수행되는 경우, 상기 변환 커널을 선택하는 단계는, 상기 잔여 블록의 크기 및 화면내 예측 모드 중 적어도 하나에 기초하여 수행될 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 현재 블록이 화면간 예측된 블록이고, 상기 현재 블록을 분할하여 획득한 블록들 중 하나의 서브 잔여 블록에 대해서만 상기 변환이 수행되는 경우, 상기 변환 커널을 선택하는 단계는, 상기 현재 블록의 분할에 관한 정보 및 상기 서브 잔여 블록의 상기 현재 블록 내 위치에 관한 정보에 기초하여 수행될 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 현재 블록의 분할에 관한 정보는, 분할의 방향이 수직 분할인지 수평 분할인지 지시하는 분할 방향 정보 및 분할 비율을 지시하는 분할 비율 정보 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 현재 블록의 분할에 관한 정보 및 상기 서브 잔여 블록의 위치에 관한 정보는 비트스트림에 포함되어 시그널링될 수 있다.
본 발명의 다른 실시예에 따른 영상 부호화 방법은, 복수의 변환 커널들 중 하나의 변환 커널을 선택하는 단계, 상기 선택된 변환 커널에 기초하여 현재 블록의 잔여 블록에 대해 변환을 수행하는 단계, 및 상기 변환된 잔여 블록에 기초하여 상기 현재 블록을 부호화하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 선택된 변환 커널에 관한 정보는 비트스트림에 포함되어 시그널링될 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 현재 블록이 화면내 예측된 블록인 경우, 상기 변환 커널을 선택하는 단계는, 상기 잔여 블록의 크기 및 형태 중 적어도 하나에 기초하여 수행될 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 잔여 블록의 가로 길이가 소정의 범위에 포함되고, 상기 가로 길이가 상기 잔여 블록의 세로 길이보다 크지 않은 경우, 상기 잔여 블록의 수평 변환에 적용될 변환 커널은 제1 변환 커널이고, 상기 잔여 블록의 가로 길이가 소정의 범위에 포함되지 않거나, 상기 가로 길이가 상기 세로 길이보다 큰 경우, 상기 잔여 블록의 수평 변환에 적용될 변환 커널은 제2 변환 커널일 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 소정의 범위는 4 샘플부터 16 샘플까지의 범위이고, 상기 제1 변환 커널은 DST-7이고, 상기 제2 변환 커널은 DCT-2일 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 현재 블록에 포함된 복수의 서브 블록들 각각에 대해 화면내 예측이 수행되는 경우, 상기 변환 커널을 선택하는 단계는, 상기 잔여 블록의 크기 및 화면내 예측 모드 중 적어도 하나에 기초하여 수행될 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 현재 블록이 화면간 예측된 블록이고, 상기 현재 블록을 분할하여 획득한 블록들 중 하나의 서브 잔여 블록에 대해서만 상기 변환이 수행되는 경우, 상기 변환 커널을 선택하는 단계는, 상기 현재 블록의 분할에 관한 정보 및 상기 서브 잔여 블록의 상기 현재 블록 내 위치에 관한 정보에 기초하여 수행될 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 현재 블록의 분할에 관한 정보는, 분할의 방향이 수직 분할인지 수평 분할인지 지시하는 분할 방향 정보 및 분할 비율을 지시하는 분할 비율 정보 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 현재 블록의 분할에 관한 정보 및 상기 서브 잔여 블록의 위치에 관한 정보는 비트스트림에 포함되어 시그널링될 수 있다.
본 발명의 또 다른 실시예에 따른 컴퓨터 판독 가능한 기록 매체는, 영상 복호화 장치에 수신되고 영상에 포함된 현재 블록을 복원하는데 이용되는 비트스트림을 저장한 컴퓨터 판독가능한 기록 매체로서, 상기 비트스트림은 상기 현재 블록의 잔여 정보를 포함하고, 상기 잔여 정보는 복원되어 상기 현재 블록의 잔여 블록을 생성하기 위해 이용되고, 상기 잔여 블록은 복수의 변환 복수의 변환 커널들 중 선택된 하나의 변환 커널에 기초하여 역변환되고, 상기 역변환된 잔여 블록은 상기 현재 블록을 복원하기 위해 이용될 수 있다.
본 발명의 또 다른 실시예에 따른 컴퓨터 판독 가능한 기록 매체는, 본 발명에 따른 영상 부호화 방법에 의해 생성된 비트스트림을 저장할 수 있다.
본 발명에 따르면, 부호화/복호화 효율이 향상된 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 발명에 따르면, 부호화/복호화 효율을 향상시키기 위한 변환, 셔플링, 재배열 및/또는 플리핑 기반의 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 발명에 따르면, 영상의 변환 효율을 향상시키기 위한 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 발명에 따르면, 본 발명의 영상 부호화/복호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체가 제공될 수 있다.
도 1은 본 발명이 적용되는 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 본 발명이 적용되는 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 영상을 부호화 및 복호화할 때의 영상의 분할 구조를 개략적으로 나타내는 도면이다.
도 4는 화면 내 예측 과정의 실시예를 설명하기 위한 도면이다.
도 5는 화면 간 예측 과정의 실시예를 설명하기 위한 도면이다.
도 6은 변환 및 양자화의 과정을 설명하기 위한 도면이다.
도 7은 본 발명에 따른 DCT-2의 주파수 도메인에서의 기저 벡터(basis vector)를 도시한 도면이다.
도 8은 본 발명에 따른 DST-7의 각 주파수 도메인에서의 기저 벡터(basis vector)를 도시한 도면이다.
도 9는 “Cactus” 시퀀스(sequence)를 로우 딜레이-P 프로파일(Low Delay-P profile) 환경에서 실험하여 구한, 인터 모드(inter mode)로 예측된 8x8 코딩 유닛(CU)의 2Nx2N 예측 유닛(PU) 내 위치에 따른 평균 잔여(residual) 값의 분포를 나타내는 도면이다.
도 10은 화면간 예측 모드(inter mode)로 예측된 8x8 코딩 유닛(CU)의 2Nx2N 예측 유닛(PU) 내 잔여 신호 분포 특성을 나타내는 3차원 그래프이다.
도 11은 본 발명에 따른 코딩 유닛(CU)의 2Nx2N 예측 유닛(PU) 모드에서 잔여 신호의 분포 특징을 도시한 도면이다.
도 12는 본 발명에 따른 2Nx2N 예측 유닛(PU)의 셔플링(shuffling) 전후의 잔여 신호 분포 특징을 도시한 도면이다.
도 13은 본 발명에 따른 서브블록의 4x4 잔여 데이터 재배열의 일 예를 도시한 도면이다.
도 14(a) 및 도 14(b)는 예측 유닛(PU) 모드에 따른 코딩 유닛(CU)의 변환 유닛(TU) 분할 구조와 변환 유닛(TU)의 셔플링(shuffling) 방법의 실시예를 설명하기 위한 도면이다.
도 15는 2Nx2N 예측 유닛(PU)의 잔여 신호 분포에 따라 DCT-2 변환과 SDST 변환을 수행한 결과를 설명하기 위한 도면이다.
도 16은 본 발명에 따른 SDST 과정을 도시한 도면이다.
도 17은 본 발명에 따른 화면간 예측된 코딩 유닛(CU)의 예측 유닛(PU) 분할 모드(partition mode) 별로 변환 유닛(TU)의 분할 및 잔여 절대값의 크기의 분포 특성을 설명하기 위한 도면이다.
도 18은 본 발명의 일 실시예에 따라 예측 유닛(PU) 내 깊이(depth) 0인 변환 유닛(TU)의 잔여 신호 스캐닝(scanning) 순서와 재배치 순서를 설명하기 위한 도면이다.
도 19는 본 발명에 따른 율-왜곡 최적화(RDO)를 통한 DCT-2 또는 SDST 선택 인코딩 과정을 나타내는 순서도이다.
도 20은 본 발명에 따른 DCT-2 또는 SDST를 선택하여 디코딩하는 과정을 나타내는 순서도이다.
도 21은 본 발명에 따른 SDST를 이용한 디코딩 과정을 나타내는 순서도이다.
도 22 및 도 23은 각각 본 발명에 따른 인코더 및 디코더에서 잔여 신호 재배열(residual rearrangement)이 수행되는 위치를 나타낸다.
도 24는 본 발명에 따른 SDST 방법을 이용한 복호화 방법의 일 실시예를 설명하기 위한 도면이다.
도 25는 본 발명에 따른 SDST 방법을 이용한 부호화 방법의 일 실시예를 설명하기 위한 도면이다.
도 26은 플리핑 후 변환을 수행하는 방법의 부호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 27은 역변환 후 플리핑을 수행하는 방법의 복호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 28은 변환 후 플리핑을 수행하는 방법의 부호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 29는 플리핑 후 역변환을 수행하는 방법의 복호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 30은 양자화 후 플리핑을 수행하는 방법의 부호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 31은 플리핑 후 역양자화를 수행하는 방법의 복호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 32는 잔여 블록에 대한 플리핑 수행을 설명하기 위한 도면이다.
도 33은 8x8 크기의 잔여 블록에 대한 플리핑 수행을 하드웨어로 구현하기 위한 일 실시예를 도시한 도면이다.
도 34는 잔여 블록에 대한 플리핑 수행 및 변환을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다. 후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.
본 발명에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 발명의 어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 발명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 즉, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
본 발명의 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하고, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
이하에서 영상은 동영상(video)을 구성하는 하나의 픽처(picture)를 의미할 수 있으며, 동영상 자체를 나타낼 수도 있다. 예를 들면, "영상의 부호화 및/또는 복호화"는 "동영상의 부호화 및/또는 복호화"를 의미할 수 있으며, "동영상을 구성하는 영상들 중 하나의 영상의 부호화 및/또는 복호화"를 의미할 수도 있다.
이하에서, 용어들 "동영상" 및 "비디오"는 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
이하에서, 대상 영상은 부호화의 대상인 부호화 대상 영상 및/또는 복호화의 대상인 복호화 대상 영상일 수 있다. 또한, 대상 영상은 부호화 장치로 입력된 입력 영상일 수 있고, 복호화 장치로 입력된 입력 영상일 수 있다. 여기서, 대상 영상은 현재 영상과 동일한 의미를 가질 수 있다.
이하에서, 용어들 "영상", "픽처", "프레임(frame)" 및 "스크린(screen)"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
이하에서, 대상 블록은 부호화의 대상인 부호화 대상 블록 및/또는 복호화의 대상인 복호화 대상 블록일 수 있다. 또한, 대상 블록은 현재 부호화 및/또는 복호화의 대상인 현재 블록일 수 있다. 예를 들면, 용어들 "대상 블록" 및 "현재 블록"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
이하에서, 용어들 "블록" 및 "유닛"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다. 또는 "블록"은 특정한 유닛을 나타낼 수 있다.
이하에서, 용어들 "영역(region)" 및 "세그먼트(segment)"는 서로 교체되어 사용될 수 있다.
이하에서, 특정한 신호는 특정한 블록을 나타내는 신호일 수 있다. 예를 들면, 원(original) 신호는 대상 블록을 나타내는 신호일 수 있다. 예측(prediction) 신호는 예측 블록을 나타내는 신호일 수 있다. 잔여(residual) 신호는 잔여 블록(residual block)을 나타내는 신호일 수 있다.
실시예들에서, 특정된 정보, 데이터, 플래그(flag), 색인(index) 및 요소(element), 속성(attribute) 등의 각각은 값을 가질 수 있다. 정보, 데이터, 플래그, 색인 및 요소, 속성 등의 값 "0"은 논리 거짓(logical false) 또는 제1 기정의된(predefined) 값을 나타낼 수 있다. 말하자면, 값 "0", 거짓, 논리 거짓 및 제1 기정의된 값은 서로 대체되어 사용될 수 있다. 정보, 데이터, 플래그, 색인 및 요소, 속성 등의 값 "1"은 논리 참(logical true) 또는 제2 기정의된 값을 나타낼 수 있다. 말하자면, 값 "1", 참, 논리 참 및 제2 기정의된 값은 서로 대체되어 사용될 수 있다.
행, 열 또는 색인(index)을 나타내기 위해 i 또는 j 등의 변수가 사용될 때, i의 값은 0 이상의 정수일 수 있으며, 1 이상의 정수일 수도 있다. 말하자면, 실시예들에서 행, 열 및 색인 등은 0에서부터 카운트될 수 있으며, 1에서부터 카운트될 수 있다.
용어 설명
부호화기(Encoder): 부호화(Encoding)를 수행하는 장치를 의미한다. 즉, 부호화 장치를 의미할 수 있다.
복호화기(Decoder): 복호화(Decoding)를 수행하는 장치를 의미한다. 즉, 복호화 장치를 의미할 수 있다.
블록(Block): 샘플(Sample)의 MxN 배열이다. 여기서 M과 N은 양의 정수 값을 의미할 수 있으며, 블록은 흔히 2차원 형태의 샘플 배열을 의미할 수 있다. 블록은 유닛을 의미할 수 있다. 현재 블록은 부호화 시 부호화의 대상이 되는 부호화 대상 블록, 복호화 시 복호화의 대상이 되는 복호화 대상 블록을 의미할 수 있다. 또한, 현재 블록은 부호화 블록, 예측 블록, 잔여 블록, 변환 블록 중 적어도 하나일 수 있다.
샘플(Sample): 블록을 구성하는 기본 단위이다. 비트 깊이 (bit depth, Bd)에 따라 0부터 2Bd - 1까지의 값으로 표현될 수 있다. 본 발명에서 샘플은 화소 또는 픽셀과 같은 의미로 사용될 수 있다. 즉, 샘플, 화소, 픽셀은 서로 같은 의미를 가질 수 있다.
유닛(Unit): 영상 부호화 및 복호화의 단위를 의미할 수 있다. 영상의 부호화 및 복호화에 있어서, 유닛은 하나의 영상을 분할한 영역일 수 있다. 또한, 유닛은 하나의 영상을 세분화 된 유닛으로 분할하여 부호화 혹은 복호화 할 때 그 분할된 단위를 의미할 수 있다. 즉, 하나의 영상은 복수의 유닛들로 분할될 수 있다. 영상의 부호화 및 복호화에 있어서, 유닛 별로 기정의된 처리가 수행될 수 있다. 하나의 유닛은 유닛에 비해 더 작은 크기를 갖는 하위 유닛으로 더 분할될 수 있다. 기능에 따라서, 유닛은 블록(Block), 매크로블록(Macroblock), 부호화 트리 유닛(Coding Tree Unit), 부호화 트리 블록(Coding Tree Block), 부호화 유닛(Coding Unit), 부호화 블록(Coding Block), 예측 유닛(Prediction Unit), 예측 블록(Prediction Block), 잔여 유닛(Residual Unit), 잔여 블록(Residual Block), 변환 유닛(Transform Unit), 변환 블록(Transform Block) 등을 의미할 수 있다. 또한, 유닛은 블록과 구분하여 지칭하기 위해 휘도(Luma) 성분 블록과 그에 대응하는 색차(Chroma) 성분 블록 그리고 각 블록에 대한 구문 요소를 포함한 것을 의미할 수 있다. 유닛은 다양한 크기와 형태를 가질 수 있으며, 특히 유닛의 형태는 정사각형뿐만 아니라 직사각형, 사다리꼴, 삼각형, 오각형 등 2차원으로 표현될 수 있는 기하학적 도형을 포함할 수 있다. 또한, 유닛 정보는 부호화 유닛, 예측 유닛, 잔여 유닛, 변환 유닛 등을 가리키는 유닛의 타입, 유닛의 크기, 유닛의 깊이, 유닛의 부호화 및 복호화 순서 등 중 적어도 하나 이상을 포함할 수 있다.
부호화 트리 유닛(Coding Tree Unit): 하나의 휘도 성분(Y) 부호화 트리 블록과 관련된 두 색차 성분(Cb, Cr) 부호화 트리 블록들로 구성된다. 또한, 상기 블록들과 각 블록에 대한 구문 요소를 포함한 것을 의미할 수도 있다. 각 부호화 트리 유닛은 부호화 유닛, 예측 유닛, 변환 유닛 등의 하위 유닛을 구성하기 위하여 쿼드트리(quad tree), 이진트리(binary tree), 3분할트리(ternary tree) 등 하나 이상의 분할 방식을 이용하여 분할될 수 있다. 입력 영상의 분할처럼 영상의 복/부호화 과정에서 처리 단위가 되는 샘플 블록을 지칭하기 위한 용어로 사용될 수 있다. 여기서, 쿼드트리는 4분할트리(quarternary tree)를 의미할 수 있다.
부호화 블록의 크기가 소정의 범위 내에 속하는 경우에는 쿼드트리로만 분할이 가능할 수 있다. 여기서, 소정의 범위는 쿼드트리만으로 분할이 가능한 부호화 블록의 최대 크기 및 최소 크기 중 적어도 하나로 정의될 수 있다. 쿼드트리 형태의 분할이 허용되는 부호화 블록의 최대/최소 크기를 나타내는 정보는 비트스트림을 통해 시그널링될 수 있고, 해당 정보는 시퀀스, 픽처 파라미터, 타일 그룹, 또는 슬라이스(세그먼트) 중 적어도 하나의 단위로 시그널링될 수 있다. 또는, 부호화 블록의 최대/최소 크기는 부호화기/복호화기에 기-설정된 고정된 크기일 수도 있다. 예를 들어, 부호화 블록의 크기가 256x256 내지 64x64 에 해당하는 경우에는 쿼드트리로만 분할이 가능할 수 있다. 또는 부호화 블록의 크기가 최대 변환 블록의 크기 보다 큰 경우에는 쿼드트리로만 분할이 가능할 수 있다. 이때, 상기 분할되는 블록은 부호화 블록 또는 변환 블록 중 적어도 하나일 수 있다. 이러한 경우에 부호화 블록의 분할을 나타내는 정보(예컨대, split_flag)는 쿼드트리 분할 여부를 나타내는 플래그일 수 있다. 부호화 블록의 크기가 소정의 범위 내에 속하는 경우에는 이진트리 또는 3분할트리로만 분할이 가능할 수 있다. 이 경우, 쿼드트리에 관한 상기 설명은 이진트리 또는 3분할트리에 대해서도 동일하게 적용될 수 있다.
부호화 트리 블록(Coding Tree Block): Y 부호화 트리 블록, Cb 부호화 트리 블록, Cr 부호화 트리 블록 중 어느 하나를 지칭하기 위한 용어로 사용될 수 있다.
주변 블록(Neighbor block): 현재 블록에 인접한 블록을 의미할 수 있다. 현재 블록에 인접한 블록은 현재 블록에 경계가 맞닿은 블록 또는 현재 블록으로부터 소정의 거리 내에 위치한 블록을 의미할 수 있다. 주변 블록은 현재 블록의 꼭지점에 인접한 블록을 의미할 수 있다. 여기에서, 현재 블록의 꼭지점에 인접한 블록이란, 현재 블록에 가로로 인접한 이웃 블록에 세로로 인접한 블록 또는 현재 블록에 세로로 인접한 이웃 블록에 가로로 인접한 블록일 수 있다. 주변 블록은 복원된 주변 블록을 의미할 수도 있다.
복원된 주변 블록(Reconstructed Neighbor Block): 현재 블록 주변에 공간적(Spatial)/시간적(Temporal)으로 이미 부호화 혹은 복호화된 주변 블록을 의미할 수 있다. 이때, 복원된 주변 블록은 복원된 주변 유닛을 의미할 수 있다. 복원된 공간적 주변 블록은 현재 픽처 내의 블록이면서 부호화 및/또는 복호화를 통해 이미 복원된 블록일 수 있다. 복원된 시간적 주변 블록은 참조 영상 내에서 현재 픽처의 현재 블록과 대응하는 위치의 복원된 블록 또는 그 주변 블록일 수 있다.
유닛 깊이(Depth): 유닛이 분할된 정도를 의미할 수 있다. 트리 구조(Tree Structure)에서 가장 상위 노드(Root Node)는 분할되지 않은 최초의 유닛에 대응할 수 있다. 가장 상위 노드는 루트 노드로 칭해질 수 있다. 또한, 가장 상위 노드는 최소의 깊이 값을 가질 수 있다. 이 때, 가장 상위 노드는 레벨(Level) 0의 깊이를 가질 수 있다. 레벨 1의 깊이를 갖는 노드는 최초의 유닛이 한 번 분할됨에 따라 생성된 유닛을 나타낼 수 있다. 레벨 2의 깊이를 갖는 노드는 최초의 유닛이 두 번 분할됨에 따라 생성된 유닛을 나타낼 수 있다. 레벨 n의 깊이를 갖는 노드는 최초의 유닛이 n번 분할됨에 따라 생성된 유닛을 나타낼 수 있다. 리프 노드(Leaf Node)는 가장 하위의 노드일 수 있으며, 더 분할될 수 없는 노드일 수 있다. 리프 노드의 깊이는 최대 레벨일 수 있다. 예를 들면, 최대 레벨의 기정의된 값은 3일 수 있다. 루트 노드는 깊이가 가장 얕고, 리프 노드는 깊이가 가장 깊다고 할 수 있다. 또한, 유닛을 트리 구조로 표현했을 때 유닛이 존재하는 레벨이 유닛 깊이를 의미할 수 있다.
비트스트림(Bitstream): 부호화된 영상 정보를 포함하는 비트의 열을 의미할 수 있다.
파라미터 세트(Parameter Set): 비트스트림 내의 구조 중 헤더(header) 정보에 해당한다. 비디오 파라미터 세트(video parameter set), 시퀀스 파라미터 세트(sequence parameter set), 픽처 파라미터 세트(picture parameter set), 적응 파라미터 세트(adaptation parameter set) 중 적어도 하나가 파라미터 세트에 포함될 수 있다. 또한, 파라미터 세트는 타일 그룹, 슬라이스(slice) 헤더 및 타일(tile) 헤더 정보를 포함할 수도 있다. 또한, 상기 타일 그룹은 여러 타일을 포함하는 그룹을 의미할 수 있으며, 슬라이스와 동일한 의미일 수 있다.
파싱(Parsing): 비트스트림을 엔트로피 복호화하여 구문 요소(Syntax Element)의 값을 결정하는 것을 의미하거나, 엔트로피 복호화 자체를 의미할 수 있다.
심볼(Symbol): 부호화/복호화 대상 유닛의 구문 요소, 부호화 파라미터(coding parameter), 변환 계수(Transform Coefficient)의 값 등 중 적어도 하나를 의미할 수 있다. 또한, 심볼은 엔트로피 부호화의 대상 혹은 엔트로피 복호화의 결과를 의미할 수 있다.
예측 모드(Prediction Mode): 화면 내 예측으로 부호화/복호화되는 모드 또는 화면 간 예측으로 부호화/복호화되는 모드를 지시하는 정보일 수 있다.
예측 유닛(Prediction Unit): 화면 간 예측, 화면 내 예측, 화면 간 보상, 화면 내 보상, 움직임 보상 등 예측을 수행할 때의 기본 단위를 의미할 수 있다. 하나의 예측 유닛은 더 작은 크기를 가지는 복수의 파티션(Partition) 또는 복수의 하위 예측 유닛들로 분할 될 수도 있다. 복수의 파티션들 또한 예측 또는 보상의 수행에 있어서의 기본 단위일 수 있다. 예측 유닛의 분할에 의해 생성된 파티션 또한 예측 유닛일 수 있다.
예측 유닛 파티션(Prediction Unit Partition): 예측 유닛이 분할된 형태를 의미할 수 있다.
참조 영상 리스트(Reference Picture List): 화면 간 예측 혹은 움직임 보상에 사용되는 하나 이상의 참조 영상들을 포함하는 리스트를 의미할 수 있다. 참조 영상 리스트의 종류는 LC (List Combined), L0 (List 0), L1 (List 1), L2 (List 2), L3 (List 3) 등이 있을 수 있으며, 화면 간 예측에는 1개 이상의 참조 영상 리스트들이 사용될 수 있다.
화면 간 예측 지시자(Inter Prediction Indicator): 현재 블록의 화면 간 예측 방향(단방향 예측, 쌍방향 예측 등)을 의미할 수 있다. 또는, 현재 블록의 예측 블록을 생성할 때 사용되는 참조 영상의 개수를 의미할 수 있다. 또는, 현재 블록에 대해 화면 간 예측 혹은 움직임 보상을 수행할 때 사용되는 예측 블록의 개수를 의미할 수 있다.
예측 리스트 활용 플래그(prediction list utilization flag): 특정 참조 영상 리스트 내 적어도 하나의 참조 영상을 이용하여 예측 블록을 생성하는지 여부를 나타낸다. 예측 리스트 활용 플래그를 이용하여 화면 간 예측 지시자를 도출할 수 있고, 반대로 화면 간 예측 지시자를 이용하여 예측 리스트 활용 플래그를 도출할 수 있다. 예를 들어, 예측 리스트 활용 플래그가 제1 값인 0을 지시하는 경우, 해당 참조 영상 리스트 내 참조 영상을 이용하여 예측 블록을 생성하지 않는 것을 나타낼 수 있고, 제2 값인 1을 지시하는 경우, 해당 참조 영상 리스트를 이용하여 예측 블록을 생성할 수 있는 것을 나타낼 수 있다.
참조 영상 색인(Reference Picture Index): 참조 영상 리스트에서 특정 참조 영상을 지시하는 색인을 의미할 수 있다.
참조 영상(Reference Picture): 화면 간 예측 혹은 움직임 보상을 위해서 특정 블록이 참조하는 영상을 의미할 수 있다. 또는, 참조 영상은 화면 간 예측 또는 움직임 보상을 위해 현재 블록이 참조하는 참조 블록을 포함하는 영상일 수 있다. 이하, 용어 "참조 픽처" 및 "참조 영상"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
움직임 벡터(Motion Vector): 화면 간 예측 혹은 움직임 보상에 사용되는 2차원 벡터일 수 있다. 움직임 벡터는 부호화/복호화 대상 블록과 참조 블록 사이의 오프셋을 의미할 수 있다. 예를 들어, (mvX, mvY)는 움직임 벡터를 나타낼 수 있다. mvX는 수평(horizontal) 성분, mvY는 수직(vertical) 성분을 나타낼 수 있다.
탐색 영역(Search Range): 탐색 영역은 화면 간 예측 중 움직임 벡터에 대한 탐색이 이루어지는 2차원의 영역일 수 있다. 예를 들면, 탐색 영역의 크기는 MxN일 수 있다. M 및 N은 각각 양의 정수일 수 있다.
움직임 벡터 후보(Motion Vector Candidate): 움직임 벡터를 예측할 때 예측 후보가 되는 블록 혹은 그 블록의 움직임 벡터를 의미할 수 있다. 또한, 움직임 벡터 후보는 움직임 벡터 후보 리스트에 포함될 수 있다.
움직임 벡터 후보 리스트(Motion Vector Candidate List): 하나 이상의 움직임 벡터 후보들을 이용하여 구성된 리스트를 의미할 수 있다.
움직임 벡터 후보 색인(Motion Vector Candidate Index): 움직임 벡터 후보 리스트 내의 움직임 벡터 후보를 가리키는 지시자를 의미할 수 있다. 움직임 벡터 예측기(Motion Vector Predictor)의 색인(index)일 수 있다.
움직임 정보(Motion Information): 움직임 벡터, 참조 영상 색인, 화면 간 예측 지시자 뿐만 아니라 예측 리스트 활용 플래그, 참조 영상 리스트 정보, 참조 영상, 움직임 벡터 후보, 움직임 벡터 후보 색인, 머지 후보, 머지 색인 등 중 적어도 하나를 포함하는 정보를 의미할 수 있다.
머지 후보 리스트(Merge Candidate List): 하나 이상의 머지 후보들을 이용하여 구성된 리스트를 의미할 수 있다.
머지 후보(Merge Candidate): 공간적 머지 후보, 시간적 머지 후보, 조합된 머지 후보, 조합 양예측 머지 후보, 제로 머지 후보 등을 의미할 수 있다. 머지 후보는 화면 간 예측 지시자, 각 리스트에 대한 참조 영상 색인, 움직임 벡터, 예측 리스트 활용 플래그, 화면 간 예측 지시자 등의 움직임 정보를 포함할 수 있다.
머지 색인(Merge Index): 머지 후보 리스트 내 머지 후보를 가리키는 지시자를 의미할 수 있다. 또한, 머지 색인은 공간적/시간적으로 현재 블록과 인접하게 복원된 블록들 중 머지 후보를 유도한 블록을 지시할 수 있다. 또한, 머지 색인은 머지 후보가 가지는 움직임 정보 중 적어도 하나를 지시할 수 있다.
변환 유닛(Transform Unit): 변환, 역변환, 양자화, 역양자화, 변환 계수 부호화/복호화와 같이 잔여 신호(residual signal) 부호화/복호화를 수행할 때의 기본 단위를 의미할 수 있다. 하나의 변환 유닛은 분할되어 더 작은 크기를 가지는 복수의 하위 변환 유닛들로 분할될 수 있다. 여기서, 변환/역변환은 1차 변환/역변환 및 2차 변환/역변환 중 적어도 하나 이상을 포함할 수 있다.
스케일링(Scaling): 양자화된 레벨에 인수를 곱하는 과정을 의미할 수 있다. 양자화된 레벨에 대한 스케일링의 결과로 변환 계수를 생성할 수 있다. 스케일링을 역양자화(dequantization)라고도 부를 수 있다.
양자화 매개변수(Quantization Parameter): 양자화에서 변환 계수를 이용하여 양자화된 레벨(quantized level)을 생성할 때 사용하는 값을 의미할 수 있다. 또는, 역양자화에서 양자화된 레벨을 스케일링하여 변환 계수를 생성할 때 사용하는 값을 의미할 수도 있다. 양자화 매개변수는 양자화 스텝 크기(step size)에 매핑된 값일 수 있다.
잔여 양자화 매개변수(Delta Quantization Parameter): 예측된 양자화 매개변수와 부호화/복호화 대상 유닛의 양자화 매개변수의 차분(difference) 값을 의미할 수 있다.
스캔(Scan): 유닛, 블록 혹은 행렬 내 계수의 순서를 정렬하는 방법을 의미할 수 있다. 예를 들어, 2차원 배열을 1차원 배열 형태로 정렬하는 것을 스캔이라고 한다. 또는, 1차원 배열을 2차원 배열 형태로 정렬하는 것도 스캔 혹은 역 스캔(Inverse Scan)이라고 부를 수 있다.
변환 계수(Transform Coefficient): 부호화기에서 변환을 수행하고 나서 생성된 계수 값을 의미할 수 있다. 또는, 복호화기에서 엔트로피 복호화 및 역양자화 중 적어도 하나를 수행하고 나서 생성된 계수 값을 의미할 수도 있다. 변환 계수 또는 잔여 신호에 양자화를 적용한 양자화된 레벨 또는 양자화된 변환 계수 레벨도 변환 계수의 의미에 포함될 수 있다.
양자화된 레벨(Quantized Level): 부호화기에서 변환 계수 또는 잔여 신호에 양자화를 수행하여 생성된 값을 의미할 수 있다. 또는, 복호화기에서 역양자화를 수행하기 전 역양자화의 대상이 되는 값을 의미할 수도 있다. 유사하게, 변환 및 양자화의 결과인 양자화된 변환 계수 레벨도 양자화된 레벨의 의미에 포함될 수 있다.
넌제로 변환 계수(Non-zero Transform Coefficient): 값의 크기가 0이 아닌 변환 계수 혹은 값의 크기가 0이 아닌 변환 계수 레벨 혹은 양자화된 레벨을 의미할 수 있다.
양자화 행렬(Quantization Matrix): 영상의 주관적 화질 혹은 객관적 화질을 향상시키기 위해서 양자화 혹은 역양자화 과정에서 이용하는 행렬을 의미할 수 있다. 양자화 행렬을 스케일링 리스트(scaling list)라고도 부를 수 있다.
양자화 행렬 계수(Quantization Matrix Coefficient): 양자화 행렬 내의 각 원소(element)를 의미할 수 있다. 양자화 행렬 계수를 행렬 계수(matrix coefficient)라고도 할 수 있다.
기본 행렬(Default Matrix): 부호화기와 복호화기에서 미리 정의되어 있는 소정의 양자화 행렬을 의미할 수 있다.
비 기본 행렬(Non-default Matrix): 부호화기와 복호화기에서 미리 정의되지 않고, 사용자에 의해서 시그널링되는 양자화 행렬을 의미할 수 있다.
통계값(statistic value): 연산 가능한 특정 값들을 가지는 변수, 부호화 파라미터, 상수 등 적어도 하나에 대한 통계값은 해당 특정 값들의 평균값, 가중평균값, 가중합값, 최소값, 최대값, 최빈값, 중간값, 보간값 중 적어도 하나 이상일 수 있다.
도 1은 본 발명이 적용되는 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
부호화 장치(100)는 인코더, 비디오 부호화 장치 또는 영상 부호화 장치일 수 있다. 비디오는 하나 이상의 영상들을 포함할 수 있다. 부호화 장치(100)는 하나 이상의 영상들을 순차적으로 부호화할 수 있다.
도 1을 참조하면, 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 픽처 버퍼(190)를 포함할 수 있다.
부호화 장치(100)는 입력 영상에 대해 인트라 모드 및/또는 인터 모드로 부호화를 수행할 수 있다. 또한, 부호화 장치(100)는 입력 영상에 대한 부호화를 통해 부호화된 정보를 포함하는 비트스트림을 생성할 수 있고, 생성된 비트스트림을 출력할 수 있다. 생성된 비트스트림은 컴퓨터 판독가능한 기록 매체에 저장될 수 있거나, 유/무선 전송 매체를 통해 스트리밍될 수 있다. 예측 모드로 인트라 모드가 사용되는 경우 스위치(115)는 인트라로 전환될 수 있고, 예측 모드로 인터 모드가 사용되는 경우 스위치(115)는 인터로 전환될 수 있다. 여기서 인트라 모드는 화면 내 예측 모드를 의미할 수 있으며, 인터 모드는 화면 간 예측 모드를 의미할 수 있다. 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성할 수 있다. 또한, 부호화 장치(100)는 예측 블록이 생성된 후, 입력 블록 및 예측 블록의 차분(residual)을 사용하여 잔여 블록을 부호화할 수 있다. 입력 영상은 현재 부호화의 대상인 현재 영상으로 칭해질 수 있다. 입력 블록은 현재 부호화의 대상인 현재 블록 혹은 부호화 대상 블록으로 칭해질 수 있다.
예측 모드가 인트라 모드인 경우, 인트라 예측부(120)는 현재 블록의 주변에 이미 부호화/복호화된 블록의 샘플을 참조 샘플로서 이용할 수 있다. 인트라 예측부(120)는 참조 샘플을 이용하여 현재 블록에 대한 공간적 예측을 수행할 수 있고, 공간적 예측을 통해 입력 블록에 대한 예측 샘플들을 생성할 수 있다. 여기서 인트라 예측은 화면 내 예측을 의미할 수 있다.
예측 모드가 인터 모드인 경우, 움직임 예측부(111)는, 움직임 예측 과정에서 참조 영상으로부터 입력 블록과 가장 매치가 잘 되는 영역을 검색할 수 있고, 검색된 영역을 이용하여 움직임 벡터를 도출할 수 있다. 이때, 상기 영역으로 탐색 영역을 사용할 수 있다. 참조 영상은 참조 픽처 버퍼(190)에 저장될 수 있다. 여기서, 참조 영상에 대한 부호화/복호화가 처리되었을 때 참조 픽처 버퍼(190)에 저장될 수 있다.
움직임 보상부(112)는 움직임 벡터를 이용하는 움직임 보상을 수행함으로써 현재 블록에 대한 예측 블록을 생성할 수 있다. 여기서 인터 예측은 화면 간 예측 혹은 움직임 보상을 의미할 수 있다.
상기 움직임 예측부(111)과 움직임 보상부(112)는 움직임 벡터의 값이 정수 값을 가지지 않을 경우에 참조 영상 내의 일부 영역에 대해 보간 필터(Interpolation Filter)를 적용하여 예측 블록을 생성할 수 있다. 화면 간 예측 혹은 움직임 보상을 수행하기 위해 부호화 유닛을 기준으로 해당 부호화 유닛에 포함된 예측 유닛의 움직임 예측 및 움직임 보상 방법이 스킵 모드(Skip Mode), 머지 모드(Merge Mode), 향상된 움직임 벡터 예측(Advanced Motion Vector Prediction; AMVP) 모드, 현재 픽처 참조 모드 중 어떠한 방법인지 여부를 판단할 수 있고, 각 모드에 따라 화면 간 예측 혹은 움직임 보상을 수행할 수 있다.
감산기(125)는 입력 블록 및 예측 블록의 차분을 사용하여 잔여 블록을 생성할 수 있다. 잔여 블록은 잔여 신호로 칭해질 수도 있다. 잔여 신호는 원 신호 및 예측 신호 간의 차이(difference)를 의미할 수 있다. 또는, 잔여 신호는 원신호 및 예측 신호 간의 차이를 변환(transform)하거나, 양자화하거나, 또는 변환 및 양자화함으로써 생성된 신호일 수 있다. 잔여 블록은 블록 단위의 잔여 신호일 수 있다.
변환부(130)는 잔여 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 생성할 수 있고, 생성된 변환 계수를 출력할 수 있다. 여기서, 변환 계수는 잔여 블록에 대한 변환을 수행함으로써 생성된 계수 값일 수 있다. 변환 생략(transform skip) 모드가 적용되는 경우, 변환부(130)는 잔여 블록에 대한 변환을 생략할 수도 있다.
변환 계수 또는 잔여 신호에 양자화를 적용함으로써 양자화된 레벨(quantized level)이 생성될 수 있다. 이하, 실시예들에서는 양자화된 레벨도 변환 계수로 칭해질 수 있다.
양자화부(140)는 변환 계수 또는 잔여 신호를 양자화 매개변수에 따라 양자화함으로써 양자화된 레벨을 생성할 수 있고, 생성된 양자화된 레벨을 출력할 수 있다. 이때, 양자화부(140)에서는 양자화 행렬을 사용하여 변환 계수를 양자화할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터(Coding Parameter) 값들 등에 대하여 확률 분포에 따른 엔트로피 부호화를 수행함으로써 비트스트림(bitstream)을 생성할 수 있고, 비트스트림을 출력할 수 있다. 엔트로피 부호화부(150)는 영상의 샘플에 관한 정보 및 영상의 복호화를 위한 정보에 대한 엔트로피 부호화를 수행할 수 있다. 예를 들면, 영상의 복호화를 위한 정보는 구문 요소(syntax element) 등을 포함할 수 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼(symbol)에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 엔트로피 부호화부(150)는 엔트로피 부호화를 위해 지수 골롬(exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법을 사용할 수 있다. 예를 들면, 엔트로피 부호화부(150)는 가변 길이 부호화(Variable Length Coding/Code; VLC) 테이블을 이용하여 엔트로피 부호화를 수행할 수 있다. 또한 엔트로피 부호화부(150)는 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법, 확률 모델, 문맥 모델(Context Model)을 사용하여 산술 부호화를 수행할 수도 있다.
엔트로피 부호화부(150)는 변환 계수 레벨(양자화된 레벨)을 부호화하기 위해 변환 계수 스캐닝(Transform Coefficient Scanning) 방법을 통해 2차원의 블록 형태(form) 계수를 1차원의 벡터 형태로 변경할 수 있다.
부호화 파라미터(Coding Parameter)는 구문 요소와 같이 부호화기에서 부호화되어 복호화기로 시그널링되는 정보(플래그, 색인 등)뿐만 아니라, 부호화 과정 혹은 복호화 과정에서 유도되는 정보를 포함할 수 있으며, 영상을 부호화하거나 복호화할 때 필요한 정보를 의미할 수 있다. 예를 들어, 유닛/블록 크기, 유닛/블록 깊이, 유닛/블록 분할 정보, 유닛/블록 형태, 유닛/블록 분할 구조, 쿼드트리 형태의 분할 여부, 이진트리 형태의 분할 여부, 이진트리 형태의 분할 방향(가로 방향 혹은 세로 방향), 이진트리 형태의 분할 형태(대칭 분할 혹은 비대칭 분할), 3분할트리 형태의 분할 여부, 3분할트리 형태의 분할 방향(가로 방향 혹은 세로 방향), 3분할트리 형태의 분할 형태(대칭 분할 혹은 비대칭 분할), 복합형트리 형태의 분할 여부, 복합형트리 형태의 분할 방향(가로 방향 혹은 세로 방향), 복합형트리 형태의 분할 형태(대칭 분할 혹은 비대칭 분할), 복합형트리 형태의 분할 트리(이진트리 혹은 3분할 트리), 예측 모드(화면 내 예측 또는 화면 간 예측), 화면 내 휘도 예측 모드/방향, 화면 내 색차 예측 모드/방향, 화면 내 분할 정보, 화면 간 분할 정보, 부호화 블록 분할 플래그, 예측 블록 분할 플래그, 변환 블록 분할 플래그, 참조 샘플 필터링 방법, 참조 샘플 필터 탭, 참조 샘플 필터 계수, 예측 블록 필터링 방법, 예측 블록 필터 탭, 예측 블록 필터 계수, 예측 블록 경계 필터링 방법, 예측 블록 경계 필터 탭, 예측 블록 경계 필터 계수, 화면 내 예측 모드, 화면 간 예측 모드, 움직임 정보, 움직임 벡터, 움직임 벡터 차분, 참조 영상 색인, 화면 간 예측 방향, 화면 간 예측 지시자, 예측 리스트 활용 플래그, 참조 영상 리스트, 참조 영상, 움직임 벡터 예측 색인, 움직임 벡터 예측 후보, 움직임 벡터 후보 리스트, 머지 모드 사용 여부, 머지 색인, 머지 후보, 머지 후보 리스트, 스킵(skip) 모드 사용 여부, 보간 필터 종류, 보간 필터 탭, 보간 필터 계수, 움직임 벡터 크기, 움직임 벡터 표현 정확도, 변환 종류, 변환 크기, 1차 변환 사용 여부 정보, 2차 변환 사용 여부 정보, 1차 변환 색인, 2차 변환 색인, 잔여 신호 유무 정보, 부호화 블록 패턴(Coded Block Pattern), 부호화 블록 플래그(Coded Block Flag), 양자화 매개변수, 잔여 양자화 매개변수, 양자화 행렬, 화면 내 루프 필터 적용 여부, 화면 내 루프 필터 계수, 화면 내 루프 필터 탭, 화면 내 루프 필터 모양/형태, 디블록킹 필터 적용 여부, 디블록킹 필터 계수, 디블록킹 필터 탭, 디블록킹 필터 강도, 디블록킹 필터 모양/형태, 적응적 샘플 오프셋 적용 여부, 적응적 샘플 오프셋 값, 적응적 샘플 오프셋 카테고리, 적응적 샘플 오프셋 종류, 적응적 루프 필터 적용 여부, 적응적 루프 필터 계수, 적응적 루프 필터 탭, 적응적 루프 필터 모양/형태, 이진화/역이진화 방법, 문맥 모델 결정 방법, 문맥 모델 업데이트 방법, 레귤러 모드 수행 여부, 바이패스 모드 수행 여부, 문맥 빈, 바이패스 빈, 중요 계수 플래그, 마지막 중요 계수 플래그, 계수 그룹 단위 부호화 플래그, 마지막 중요 계수 위치, 계수 값이 1보다 큰지에 대한 플래그, 계수 값이 2보다 큰지에 대한 플래그, 계수 값이 3보다 큰지에 대한 플래그, 나머지 계수 값 정보, 부호(sign) 정보, 복원된 휘도 샘플, 복원된 색차 샘플, 잔여 휘도 샘플, 잔여 색차 샘플, 휘도 변환 계수, 색차 변환 계수, 휘도 양자화된 레벨, 색차 양자화된 레벨, 변환 계수 레벨 스캐닝 방법, 복호화기 측면 움직임 벡터 탐색 영역의 크기, 복호화기 측면 움직임 벡터 탐색 영역의 형태, 복호화기 측면 움직임 벡터 탐색 횟수, CTU 크기 정보, 최소 블록 크기 정보, 최대 블록 크기 정보, 최대 블록 깊이 정보, 최소 블록 깊이 정보, 영상 디스플레이/출력 순서, 슬라이스 식별 정보, 슬라이스 타입, 슬라이스 분할 정보, 타일 그룹 식별 정보, 타일 그룹 타입, 타일 그룹 분할 정보, 타일 식별 정보, 타일 타입, 타일 분할 정보, 픽처 타입, 입력 샘플 비트 심도, 복원 샘플 비트 심도, 잔여 샘플 비트 심도, 변환 계수 비트 심도, 양자화된 레벨 비트 심도, 휘도 신호에 대한 정보, 색차 신호에 대한 정보 중 적어도 하나의 값 또는 조합된 형태가 부호화 파라미터에 포함될 수 있다.
여기서, 플래그 혹은 색인을 시그널링(signaling)한다는 것은 인코더에서는 해당 플래그 혹은 색인을 엔트로피 부호화(Entropy Encoding)하여 비트스트림(Bitstream)에 포함하는 것을 의미할 수 있고, 디코더에서는 비트스트림으로부터 해당 플래그 혹은 색인을 엔트로피 복호화(Entropy Decoding)하는 것을 의미할 수 있다.
부호화 장치(100)가 인터 예측을 통한 부호화를 수행할 경우, 부호화된 현재 영상은 이후에 처리되는 다른 영상에 대한 참조 영상으로서 사용될 수 있다. 따라서, 부호화 장치(100)는 부호화된 현재 영상을 다시 복원 또는 복호화할 수 있고, 복원 또는 복호화된 영상을 참조 영상으로 참조 픽처 버퍼(190)에 저장할 수 있다.
양자화된 레벨은 역양자화부(160)에서 역양자화(dequantization)될 수 있고. 역변환부(170)에서 역변환(inverse transform)될 수 있다. 역양자화 및/또는 역변환된 계수는 가산기(175)를 통해 예측 블록과 합해질 수 있다, 역양자화 및/또는 역변환된 계수와 예측 블록을 합함으로써 복원 블록(reconstructed block)이 생성될 수 있다. 여기서, 역양자화 및/또는 역변환된 계수는 역양자화 및 역변환 중 적어도 하나 이상이 수행된 계수를 의미하며, 복원된 잔여 블록을 의미할 수 있다.
복원 블록은 필터부(180)를 거칠 수 있다. 필터부(180)는 디블록킹 필터(deblocking filter), 샘플 적응적 오프셋(Sample Adaptive Offset; SAO), 적응적 루프 필터(Adaptive Loop Filter; ALF) 등 적어도 하나를 복원 샘플, 복원 블록 또는 복원 영상에 적용할 수 있다. 필터부(180)는 루프내 필터(in-loop filter)로 칭해질 수도 있다.
디블록킹 필터는 블록들 간의 경계에서 발생한 블록 왜곡을 제거할 수 있다. 디블록킹 필터를 수행할지 여부를 판단하기 위해 블록에 포함된 몇 개의 열 또는 행에 포함된 샘플을 기초로 현재 블록에 디블록킹 필터 적용할지 여부를 판단할 수 있다. 블록에 디블록킹 필터를 적용하는 경우 필요한 디블록킹 필터링 강도에 따라 서로 다른 필터를 적용할 수 있다.
샘플 적응적 오프셋을 이용하여 부호화 에러를 보상하기 위해 샘플 값에 적정 오프셋(offset) 값을 더할 수 있다. 샘플 적응적 오프셋은 디블록킹을 수행한 영상에 대해 샘플 단위로 원본 영상과의 오프셋을 보정할 수 있다. 영상에 포함된 샘플을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 샘플의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다.
적응적 루프 필터는 복원 영상 및 원래의 영상을 비교한 값에 기반하여 필터링을 수행할 수 있다. 영상에 포함된 샘플을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. 적응적 루프 필터를 적용할지 여부에 관련된 정보는 부호화 유닛(Coding Unit, CU) 별로 시그널링될 수 있고, 각각의 블록에 따라 적용될 적응적 루프 필터의 모양 및 필터 계수는 달라질 수 있다.
필터부(180)를 거친 복원 블록 또는 복원 영상은 참조 픽처 버퍼(190)에 저장될 수 있다. 필터부(180)를 거친 복원 블록은 참조 영상의 일부일 수 있다. 말하자면, 참조 영상은 필터부(180)를 거친 복원 블록들로 구성된 복원 영상일 수 있다. 저장된 참조 영상은 이후 화면 간 예측 혹은 움직임 보상에 사용될 수 있다.
도 2는 본 발명이 적용되는 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
복호화 장치(200)는 디코더, 비디오 복호화 장치 또는 영상 복호화 장치일 수 있다.
도 2를 참조하면, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 가산기(255), 필터부(260) 및 참조 픽처 버퍼(270)를 포함할 수 있다.
복호화 장치(200)는 부호화 장치(100)에서 출력된 비트스트림을 수신할 수 있다. 복호화 장치(200)는 컴퓨터 판독가능한 기록 매체에 저장된 비트스트림을 수신하거나, 유/무선 전송 매체를 통해 스트리밍되는 비트스트림을 수신할 수 있다. 복호화 장치(200)는 비트스트림에 대하여 인트라 모드 또는 인터 모드로 복호화를 수행할 수 있다. 또한, 복호화 장치(200)는 복호화를 통해 복원된 영상 또는 복호화된 영상을 생성할 수 있고, 복원된 영상 또는 복호화된 영상을 출력할 수 있다.
복호화에 사용되는 예측 모드가 인트라 모드인 경우 스위치가 인트라로 전환될 수 있다. 복호화에 사용되는 예측 모드가 인터 모드인 경우 스위치가 인터로 전환될 수 있다.
복호화 장치(200)는 입력된 비트스트림을 복호화하여 복원된 잔여 블록(reconstructed residual block)을 획득할 수 있고, 예측 블록을 생성할 수 있다. 복원된 잔여 블록 및 예측 블록이 획득되면, 복호화 장치(200)는 복원된 잔여 블록과 및 예측 블록을 더함으로써 복호화 대상이 되는 복원 블록을 생성할 수 있다. 복호화 대상 블록은 현재 블록으로 칭해질 수 있다.
엔트로피 복호화부(210)는 비트스트림에 대한 확률 분포에 따른 엔트로피 복호화를 수행함으로써 심볼들을 생성할 수 있다. 생성된 심볼들은 양자화된 레벨 형태의 심볼을 포함할 수 있다. 여기에서, 엔트로피 복호화 방법은 상술된 엔트로피 부호화 방법의 역과정일 수 있다.
엔트로피 복호화부(210)는 변환 계수 레벨(양자화된 레벨)을 복호화하기 위해 변환 계수 스캐닝 방법을 통해 1차원의 벡터 형태 계수를 2차원의 블록 형태로 변경할 수 있다.
양자화된 레벨은 역양자화부(220)에서 역양자화될 수 있고, 역변환부(230)에서 역변환될 수 있다. 양자화된 레벨은 역양자화 및/또는 역변환이 수행된 결과로서, 복원된 잔여 블록으로 생성될 수 있다. 이때, 역양자화부(220)는 양자화된 레벨에 양자화 행렬을 적용할 수 있다.
인트라 모드가 사용되는 경우, 인트라 예측부(240)는 복호화 대상 블록 주변의 이미 복호화된 블록의 샘플 값을 이용하는 공간적 예측을 현재 블록에 대해 수행함으로써 예측 블록을 생성할 수 있다.
인터 모드가 사용되는 경우, 움직임 보상부(250)는 움직임 벡터 및 참조 픽처 버퍼(270)에 저장되어 있는 참조 영상을 이용하는 움직임 보상을 현재 블록에 대해 수행함으로써 예측 블록을 생성할 수 있다. 상기 움직임 보상부(250)는 움직임 벡터의 값이 정수 값을 가지지 않을 경우에 참조 영상 내의 일부 영역에 대해 보간 필터를 적용하여 예측 블록을 생성할 수 있다. 움직임 보상을 수행하기 위해 부호화 유닛을 기준으로 해당 부호화 유닛에 포함된 예측 유닛의 움직임 보상 방법이 스킵 모드, 머지 모드, AMVP 모드, 현재 픽처 참조 모드 중 어떠한 방법인지 여부를 판단할 수 있고, 각 모드에 따라 움직임 보상을 수행할 수 있다.
가산기(255)는 복원된 잔여 블록 및 예측 블록을 가산하여 복원 블록을 생성할 수 있다. 필터부(260)는 디블록킹 필터, 샘플 적응적 오프셋 및 적응적 루프 필터 등 적어도 하나를 복원 블록 또는 복원 영상에 적용할 수 있다. 필터부(260)는 복원 영상을 출력할 수 있다. 복원 블록 또는 복원 영상은 참조 픽처 버퍼(270)에 저장되어 인터 예측에 사용될 수 있다. 필터부(260)를 거친 복원 블록은 참조 영상의 일부일 수 있다. 말하자면, 참조 영상은 필터부(260)를 거친 복원 블록들로 구성된 복원 영상일 수 있다. 저장된 참조 영상은 이후 화면 간 예측 혹은 움직임 보상에 사용될 수 있다.
도 3은 영상을 부호화 및 복호화할 때의 영상의 분할 구조를 개략적으로 나타내는 도면이다. 도 3은 하나의 유닛이 복수의 하위 유닛으로 분할되는 실시예를 개략적으로 나타낸다.
영상을 효율적으로 분할하기 위해, 부호화 및 복호화에 있어서, 부호화 유닛(Coding Unit; CU)이 사용될 수 있다. 영상 부호화/복호화의 기본 단위로서 부호화 유닛이 사용될 수 있다. 또한, 영상 부호화/복호화 시 화면 내 예측 모드 및 화면 간 예측 모드가 구분되는 단위로 부호화 유닛을 사용할 수 있다. 부호화 유닛은 예측, 변환, 양자화, 역변환, 역양자화, 또는 변환 계수의 부호화/복호화의 과정을 위해 사용되는 기본 단위일 수 있다.
도 3을 참조하면, 영상(300)은 최대 부호화 유닛(Largest Coding Unit; LCU) 단위로 순차적으로 분할되고, LCU 단위로 분할 구조가 결정된다. 여기서, LCU는 부호화 트리 유닛(Coding Tree Unit; CTU)과 동일한 의미로 사용될 수 있다. 유닛의 분할은 유닛에 해당하는 블록의 분할을 의미할 수 있다. 블록 분할 정보에는 유닛의 깊이(depth)에 관한 정보가 포함될 수 있다. 깊이 정보는 유닛이 분할되는 회수 및/또는 정도를 나타낼 수 있다. 하나의 유닛은 트리 구조(tree structure)를 기초로 깊이 정보를 가지고 계층적으로 복수의 하위 유닛들로 분할될 수 있다. 말하자면, 유닛 및 상기의 유닛의 분할에 의해 생성된 하위 유닛은 노드 및 상기의 노드의 자식 노드에 각각 대응할 수 있다. 각각의 분할된 하위 유닛은 깊이 정보를 가질 수 있다. 깊이 정보는 CU의 크기를 나타내는 정보일 수 있고, 각 CU마다 저장될 수 있다. 유닛 깊이는 유닛이 분할된 회수 및/또는 정도를 나타내므로, 하위 유닛의 분할 정보는 하위 유닛의 크기에 관한 정보를 포함할 수도 있다.
분할 구조는 CTU(310) 내에서의 부호화 유닛(Coding Unit; CU)의 분포를 의미할 수 있다. 이러한 분포는 하나의 CU를 복수(2, 4, 8, 16 등을 포함하는 2 이상의 양의 정수)의 CU들로 분할할지 여부에 따라 결정할 수 있다. 분할에 의해 생성된 CU의 가로 크기 및 세로 크기는 각각 분할 전의 CU의 가로 크기의 절반 및 세로 크기의 절반이거나, 분할된 개수에 따라 분할 전의 CU의 가로 크기보다 작은 크기 및 세로 크기보다 작은 크기를 가질 수 있다. CU는 복수의 CU로 재귀적으로 분할될 수 있다. 재귀적 분할에 의해, 분할된 CU의 가로 크기 및 세로 크기 중 적어도 하나의 크기가 분할 전의 CU의 가로 크기 및 세로 크기 중 적어도 하나에 비해 감소될 수 있다. CU의 분할은 기정의된 깊이 또는 기정의된 크기까지 재귀적으로 이루어질 수 있다. 예컨대, CTU의 깊이는 0일 수 있고, 최소 부호화 유닛(Smallest Coding Unit; SCU)의 깊이는 기정의된 최대 깊이일 수 있다. 여기서, CTU는 상술된 것과 같이 최대의 부호화 유닛 크기를 가지는 부호화 유닛일 수 있고, SCU는 최소의 부호화 유닛 크기를 가지는 부호화 유닛일 수 있다. CTU(310)로부터 분할이 시작되고, 분할에 의해 CU의 가로 크기 및/또는 세로 크기가 줄어들 때마다 CU의 깊이는 1씩 증가한다. 예를 들면, 각각의 깊이 별로, 분할되지 않는 CU는 2Nx2N 크기를 가질 수 있다. 또한, 분할되는 CU의 경우, 2Nx2N 크기의 CU가 NxN 크기를 가지는 4개의 CU들로 분할될 수 있다. N의 크기는 깊이가 1씩 증가할 때마다 절반으로 감소할 수 있다.
또한, CU가 분할되는지 여부에 대한 정보는 CU의 분할 정보를 통해 표현될 수 있다. 분할 정보는 1비트의 정보일 수 있다. SCU를 제외한 모든 CU는 분할 정보를 포함할 수 있다. 예를 들면, 분할 정보의 값이 제1 값이면, CU가 분할되지 않을 수 있고, 분할 정보의 값이 제2 값이면, CU가 분할될 수 있다.
도 3을 참조하면, 깊이가 0인 CTU는 64x64 블록일 수 있다. 0은 최소 깊이일 수 있다. 깊이가 3인 SCU는 8x8 블록일 수 있다. 3은 최대 깊이일 수 있다. 32x32 블록 및 16x16 블록의 CU는 각각 깊이 1 및 깊이 2로 표현될 수 있다.
예를 들어, 하나의 부호화 유닛이 4개의 부호화 유닛으로 분할 될 경우, 분할된 4개의 부호화 유닛의 가로 및 세로 크기는 분할되기 전 부호화 유닛의 가로 및 세로 크기와 비교하여 각각 절반의 크기를 가질 수 있다. 일 예로, 32x32 크기의 부호화 유닛이 4개의 부호화 유닛으로 분할 될 경우, 분할된 4개의 부호화 유닛은 각각 16x16의 크기를 가질 수 있다. 하나의 부호화 유닛이 4개의 부호화 유닛으로 분할 될 경우, 부호화 유닛은 쿼드트리(quad-tree) 형태로 분할(쿼드트리 분할, quad-tree partition)되었다고 할 수 있다.
예를 들어, 하나의 부호화 유닛이 2개의 부호화 유닛으로 분할 될 경우, 분할된 2개의 부호화 유닛의 가로 혹은 세로 크기는 분할되기 전 부호화 유닛의 가로 혹은 세로 크기와 비교하여 절반의 크기를 가질 수 있다. 일 예로, 32x32 크기의 부호화 유닛이 2개의 부호화 유닛으로 세로로 분할 될 경우, 분할된 2개의 부호화 유닛은 각각 16x32의 크기를 가질 수 있다. 일 예로, 8x32 크기의 부호화 유닛이 2개의 부호화 유닛으로 가로로 분할 될 경우, 분할된 2개의 부호화 유닛은 각각 8x16의 크기를 가질 수 있다. 하나의 부호화 유닛이 2개의 부호화 유닛으로 분할 될 경우, 부호화 유닛은 이진트리(binary-tree) 형태로 분할(이진트리 분할, binary-tree partition)되었다고 할 수 있다.
예를 들어, 하나의 부호화 유닛이 3개의 부호화 유닛으로 분할 될 경우, 분할되기 전 부호화 유닛의 가로 혹은 세로 크기를 1:2:1의 비율로 분할함으로써, 3개의 부호화 유닛으로 분할 할 수 있다. 일 예로, 16x32 크기의 부호화 유닛이 3개의 부호화 유닛으로 가로로 분할 될 경우, 분할된 3개의 부호화 유닛은 상측부터 각각 16x8, 16x16 및 16x8의 크기를 가질 수 있다. 일 예로, 32x32 크기의 부호화 유닛이 3개의 부호화 유닛으로 세로로 분할 될 경우, 분할된 3개의 부호화 유닛은 좌측부터 각각 8x32, 16x32 및 8x32의 크기를 가질 수 있다. 하나의 부호화 유닛이 3개의 부호화 유닛으로 분할 될 경우, 부호화 유닛은 3분할트리(ternary-tree) 형태로 분할(3분할트리 분할, ternary-tree partition)되었다고 할 수 있다.
도 3의 CTU(320)는 쿼드트리 분할, 이진트리 분할 및 3분할트리 분할이 모두 적용된 CTU의 일 예이다.
전술한 바와 같이, CTU를 분할하기 위해, 쿼드트리 분할, 이진트리 분할 및 3분할트리 분할 중 적어도 하나가 적용될 수 있다. 각각의 분할은 소정의 우선 순위에 기초하여 적용될 수 있다. 예컨대, CTU에 대해 쿼드트리 분할이 우선적으로 적용될 수 있다. 더 이상 쿼드트리 분할될 수 없는 부호화 유닛은 쿼드트리의 리프 노드에 해당될 수 있다. 쿼드트리의 리프 노드에 해당하는 부호화 유닛은 이진트리 및/또는 3분할트리의 루트 노드가 될 수 있다. 즉, 쿼드트리의 리프 노드에 해당하는 부호화 유닛은 이진트리 분할되거나 3분할트리 분할되거나 또는 더 이상 분할되지 않을 수 있다. 이 때, 쿼드트리의 리프 노드에 해당하는 부호화 유닛을 이진트리 분할하거나 3분할트리 분할하여 생성된 부호화 유닛에 대해서는 다시 쿼드트리 분할이 수행되지 않도록 함으로써, 블록의 분할 및/또는 분할 정보의 시그널링을 효과적으로 수행할 수 있다.
쿼드트리의 각 노드에 해당하는 부호화 유닛의 분할은 쿼드 분할 정보를 이용하여 시그널링될 수 있다. 제1값(예컨대, '1')을 갖는 쿼드 분할 정보는 해당 부호화 유닛이 쿼드트리 분할됨을 지시할 수 있다. 제2값(예컨대, '0')을 갖는 쿼드 분할 정보는 해당 부호화 유닛이 쿼드트리 분할되지 않음을 지시할 수 있다. 쿼드 분할 정보는 소정의 길이(예컨대, 1비트)를 갖는 플래그일 수 있다.
이진트리 분할과 3분할트리 분할 사이에는 우선순위가 존재하지 않을 수 있다. 즉, 쿼드트리의 리프 노드에 해당하는 부호화 유닛은 이진트리 분할되거나 3분할트리 분할될 수 있다. 또한, 이진트리 분할 또는 3분할트리 분할에 의해 생성된 부호화 유닛은 다시 이진트리 분할 또는 3분할트리 분할되거나 또는 더 이상 분할되지 않을 수 있다.
이진트리 분할과 3분할트리 분할 사이에 우선순위가 존재하지 않는 경우의 분할은 복합형트리 분할(multi-type tree partition)이라고 호칭할 수 있다. 즉, 쿼드트리의 리프 노드에 해당하는 부호화 유닛은 복합형트리(multi-type tree)의 루트 노드가 될 수 있다. 복합형트리의 각 노드에 해당하는 부호화 유닛의 분할은 복합형트리의 분할 여부 정보, 분할 방향 정보 및 분할 트리 정보 중 적어도 하나를 이용하여 시그널링될 수 있다. 상기 복합형트리의 각 노드에 해당하는 부호화 유닛의 분할을 위해 순차적으로 분할 여부 정보, 분할 방향 정보 및 분할 트리 정보가 시그널링될 수도 있다.
제1값(예컨대, '1')을 갖는 복합형트리의 분할 여부 정보는 해당 부호화 유닛이 복합형트리 분할됨을 지시할 수 있다. 제2값(예컨대, '0')을 갖는 복합형트리의 분할 여부 정보는 해당 부호화 유닛이 복합형트리 분할되지 않음을 지시할 수 있다.
복합형트리의 각 노드에 해당하는 부호화 유닛이 복합형트리 분할되는 경우, 해당 부호화 유닛은 분할 방향 정보를 더 포함할 수 있다. 분할 방향 정보는 복합형트리 분할의 분할 방향을 지시할 수 있다. 제1값(예컨대, '1')을 갖는 분할 방향 정보는 해당 부호화 유닛이 세로 방향으로 분할됨을 지시할 수 있다. 제2값(예컨대, '0')을 갖는 분할 방향 정보는 해당 부호화 유닛이 가로 방향으로 분할됨을 지시할 수 있다.
복합형트리의 각 노드에 해당하는 부호화 유닛이 복합형트리 분할되는 경우, 해당 부호화 유닛은 분할 트리 정보를 더 포함할 수 있다. 분할 트리 정보는 복합형트리 분할을 위해 사용된 트리를 지시할 수 있다. 제1값(예컨대, '1')을 갖는 분할 트리 정보는 해당 부호화 유닛이 이진트리 분할됨을 지시할 수 있다. 제2값(예컨대, '0')을 갖는 분할 트리 정보는 해당 부호화 유닛이 3분할트리 분할됨을 지시할 수 있다.
분할 여부 정보, 분할 트리 정보 및 분할 방향 정보는 각각 소정의 길이(예컨대, 1비트)를 갖는 플래그일 수 있다.
쿼드 분할 정보, 복합형트리의 분할 여부 정보, 분할 방향 정보 및 분할 트리 정보 중 적어도 하나는 엔트로피 부호화/복호화될 수 있다. 상기 정보들의 엔트로피 부호화/복호화를 위해, 현재 부호화 유닛에 인접한 주변 부호화 유닛의 정보가 이용될 수 있다. 예컨대, 좌측 부호화 유닛 및/또는 상측 부호화 유닛의 분할 형태(분할 여부, 분할 트리 및/또는 분할 방향)는 현재 부호화 유닛의 분할 형태와 유사할 확률이 높다. 따라서, 주변 부호화 유닛의 정보에 기초하여, 현재 부호화 유닛의 정보의 엔트로피 부호화/복호화를 위한 컨텍스트 정보를 유도할 수 있다. 이때, 주변 부호화 유닛의 정보에는 해당 부호화 유닛의 쿼드 분할 정보, 복합형트리의 분할 여부 정보, 분할 방향 정보 및 분할 트리 정보 중 적어도 하나가 포함될 수 있다.
다른 실시예로서, 이진트리 분할과 3분할트리 분할 중, 이진트리 분할이 우선적으로 수행될 수 있다. 즉, 이진트리 분할이 먼저 적용되고, 이진트리의 리프 노드에 해당하는 부호화 유닛을 3분할트리의 루트 노드로 설정할 수도 있다. 이 경우, 3분할트리의 노드에 해당하는 부호화 유닛에 대해서는 쿼드트리 분할 및 이진트리 분할이 수행되지 않을 수 있다.
쿼드트리 분할, 이진트리 분할 및/또는 3분할트리 분할에 의해 더 이상 분할되지 않는 부호화 유닛은 부호화, 예측 및/또는 변환의 단위가 될 수 있다. 즉, 예측 및/또는 변환을 위해 부호화 유닛이 더 이상 분할되지 않을 수 있다. 따라서, 부호화 유닛을 예측 유닛 및/또는 변환 유닛으로 분할하기 위한 분할 구조, 분할 정보 등이 비트스트림에 존재하지 않을 수 있다.
다만, 분할의 단위가 되는 부호화 유닛의 크기가 최대 변환 블록의 크기보다 큰 경우, 해당 부호화 유닛은 최대 변환 블록의 크기와 같거나 또는 작은 크기가 될 때까지 재귀적으로 분할될 수 있다. 예컨대, 부호화 유닛의 크기가 64x64이고, 최대 변환 블록의 크기가 32x32인 경우, 상기 부호화 유닛은 변환을 위해, 4개의 32x32 블록으로 분할될 수 있다. 예컨대, 부호화 유닛의 크기가 32x64이고, 최대 변환 블록의 크기가 32x32인 경우, 상기 부호화 유닛은 변환을 위해, 2개의 32x32 블록으로 분할될 수 있다. 이 경우, 변환을 위한 부호화 유닛의 분할 여부는 별도로 시그널링되지 않고, 상기 부호화 유닛의 가로 또는 세로와 최대 변환 블록의 가로 또는 세로의 비교에 의해 결정될 수 있다. 예컨대, 부호화 유닛의 가로가 최대 변환 블록의 가로보다 큰 경우, 부호화 유닛은 세로로 2등분 될 수 있다. 또한, 부호화 유닛의 세로가 최대 변환 블록의 세로보다 큰 경우, 부호화 유닛은 가로로 2등분 될 수 있다.
부호화 유닛의 최대 및/또는 최소 크기에 관한 정보, 변환 블록의 최대 및/또는 최소 크기에 관한 정보는 부호화 유닛의 상위 레벨에서 시그널링되거나 결정될 수 있다. 상기 상위 레벨은 예컨대, 시퀀스 레벨, 픽처 레벨, 타일 레벨, 타일 그룹 레벨, 슬라이스 레벨 등일 수 있다. 예컨대, 부호화 유닛의 최소 크기는 4x4로 결정될 수 있다. 예컨대, 변환 블록의 최대 크기는 64x64로 결정될 수 있다. 예컨대, 변환 블록의 최소 크기는 4x4로 결정될 수 있다.
쿼드트리의 리프 노드에 해당하는 부호화 유닛의 최소 크기(쿼드트리 최소 크기)에 관한 정보 및/또는 복합형트리의 루트 노드에서 리프 노드에 이르는 최대 깊이(복합형트리 최대 깊이)에 관한 정보는 부호화 유닛의 상위 레벨에서 시그널링되거나 결정될 수 있다. 상기 상위 레벨은 예컨대, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 그룹 레벨, 타일 레벨 등일 수 있다. 상기 쿼드트리 최소 크기에 관한 정보 및/또는 상기 복합형트리 최대 깊이에 관한 정보는 화면 내 슬라이스와 화면 간 슬라이스의 각각에 대해 시그널링되거나 결정될 수 있다.
CTU의 크기와 변환 블록의 최대 크기에 대한 차분 정보는 부호화 유닛의 상위 레벨에서 시그널링되거나 결정될 수 있다. 상기 상위 레벨은 예컨대, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 그룹 레벨, 타일 레벨 등일 수 있다. 이진트리의 각 노드에 해당하는 부호화 유닛의 최대 크기(이진트리 최대 크기)에 관한 정보는 부호화 트리 유닛의 크기와 상기 차분 정보를 기반으로 결정될 수 있다. 3분할트리의 각 노드에 해당하는 부호화 유닛의 최대 크기(3분할트리 최대 크기)는 슬라이스의 타입에 따라 다른 값을 가질 수 있다. 예컨대, 화면 내 슬라이스인 경우, 3분할트리 최대 크기는 32x32일 수 있다. 또한, 예컨대, 화면 간 슬라이스인 경우, 3분할 트리 최대 크기는 128x128일 수 있다. 예컨대, 이진트리의 각 노드에 해당하는 부호화 유닛의 최소 크기(이진트리 최소 크기) 및/또는 3분할트리의 각 노드에 해당하는 부호화 유닛의 최소 크기(3분할트리 최소 크기)는 부호화 블록의 최소 크기로 설정될 수 있다.
또 다른 예로, 이진트리 최대 크기 및/또는 3분할트리 최대 크기는 슬라이스 레벨에서 시그널링되거나 결정될 수 있다. 또한, 이진트리 최소 크기 및/또는 3분할트리 최소 크기는 슬라이스 레벨에서 시그널링되거나 결정될 수 있다.
전술한 다양한 블록의 크기 및 깊이 정보에 기초하여, 쿼드 분할 정보, 복합형트리의 분할 여부 정보, 분할 트리 정보 및/또는 분할 방향 정보 등이 비트스트림에 존재하거나 존재하지 않을 수 있다.
예컨대, 부호화 유닛의 크기가 쿼드트리 최소 크기보다 크지 않으면, 상기 부호화 유닛은 쿼드 분할 정보를 포함하지 않고, 해당 쿼드 분할 정보는 제2값으로 추론될 수 있다.
예컨대, 복합형트리의 노드에 해당하는 부호화 유닛의 크기(가로 및 세로)가 이진트리 최대 크기(가로 및 세로) 및/또는 3분할트리 최대 크기(가로 및 세로)보다 큰 경우, 상기 부호화 유닛은 이진트리 분할 및/또는 3분할트리 분할되지 않을 수 있다. 그에 따라, 상기 복합형트리의 분할 여부 정보는 시그널링되지 않고, 제2값으로 추론될 수 있다.
또는, 복합형트리의 노드에 해당하는 부호화 유닛의 크기(가로 및 세로)가 이진트리 최소 크기(가로 및 세로)와 동일하거나, 부호화 유닛의 크기(가로 및 세로)가 3분할트리 최소 크기(가로 및 세로)의 두 배와 동일한 경우, 상기 부호화 유닛은 이진트리 분할 및/또는 3분할트리 분할되지 않을 수 있다. 그에 따라, 상기 복합형트리의 분할 여부 정보는 시그널링되지 않고, 제2값으로 추론될 수 있다. 왜냐하면, 상기 부호화 유닛을 이진트리 분할 및/또는 3분할트리 분할할 경우, 이진트리 최소 크기 및/또는 3분할트리 최소 크기보다 작은 부호화 유닛이 생성되기 때문이다.
또는, 복합형트리의 노드에 해당하는 부호화 유닛의 복합형트리 내의 깊이가 복합형트리 최대 깊이와 동일한 경우, 상기 부호화 유닛은 이진트리 분할 및/또는 3분할트리 분할되지 않을 수 있다. 그에 따라, 상기 복합형트리의 분할 여부 정보는 시그널링되지 않고, 제2값으로 추론될 수 있다.
또는, 복합형트리의 노드에 해당하는 부호화 유닛에 대해 수직 방향 이진트리 분할, 수평 방향 이진트리 분할, 수직 방향 3분할트리 분할 및 수평 방향 3분할트리 분할 중 적어도 하나가 가능한 경우에만, 상기 복합형트리의 분할 여부 정보를 시그널링할 수 있다. 그렇지 않은 경우, 상기 부호화 유닛은 이진트리 분할 및/또는 3분할트리 분할되지 않을 수 있다. 그에 따라, 상기 복합형트리의 분할 여부 정보는 시그널링되지 않고, 제2값으로 추론될 수 있다.
또는, 복합형트리의 노드에 해당하는 부호화 유닛에 대해 수직 방향 이진트리 분할과 수평 방향 이진트리 분할이 모두 가능하거나, 수직 방향 3분할트리 분할과 수평 방향 3분할트리 분할이 모두 가능한 경우에만, 상기 분할 방향 정보를 시그널링할 수 있다. 그렇지 않은 경우, 상기 분할 방향 정보는 시그널링되지 않고, 분할이 가능한 방향을 지시하는 값으로 추론될 수 있다.
또는, 복합형트리의 노드에 해당하는 부호화 유닛에 대해 수직 방향 이진트리 분할과 수직 방향 3분할트리 분할이 모두 가능하거나, 수평 방향 이진트리 분할과 수평 방향 3분할트리 분할이 모두 가능한 경우에만, 상기 분할 트리 정보를 시그널링할 수 있다. 그렇지 않은 경우, 상기 분할 트리 정보는 시그널링되지 않고, 분할이 가능한 트리를 지시하는 값으로 추론될 수 있다.
도 4는 화면 내 예측 과정의 실시예를 설명하기 위한 도면이다.
도 4의 중심으로부터 외곽으로의 화살표들은 화면 내 예측 모드들의 예측 방향들을 나타낼 수 있다.
화면 내 부호화 및/또는 복호화는 현재 블록의 주변 블록의 참조 샘플을 이용하여 수행될 수 있다. 주변 블록은 복원된 주변 블록일 수 있다. 예를 들면, 화면 내 부호화 및/또는 복호화는 복원된 주변 블록이 포함하는 참조 샘플의 값 또는 부호화 파라미터를 이용하여 수행될 수 있다.
예측 블록은 화면 내 예측의 수행의 결과로 생성된 블록을 의미할 수 있다. 예측 블록은 CU, PU 및 TU 중 적어도 하나에 해당할 수 있다. 예측 블록의 단위는 CU, PU 및 TU 중 적어도 하나의 크기일 수 있다. 예측 블록은 2x2, 4x4, 16x16, 32x32 또는 64x64 등의 크기를 갖는 정사각형의 형태의 블록일 수 있고, 2x8, 4x8, 2x16, 4x16 및 8x16 등의 크기를 갖는 직사각형 모양의 블록일 수도 있다.
화면 내 예측은 현재 블록에 대한 화면 내 예측 모드에 따라 수행될 수 있다. 현재 블록이 가질 수 있는 화면 내 예측 모드의 개수는 기정의된 고정된 값일 수 있으며, 예측 블록의 속성에 따라 다르게 결정된 값일 수 있다. 예를 들면, 예측 블록의 속성은 예측 블록의 크기 및 예측 블록의 형태 등을 포함할 수 있다.
화면 내 예측 모드의 개수는 블록의 크기에 관계없이 N개로 고정될 수 있다. 또는, 예를 들면, 화면 내 예측 모드의 개수는 3, 5, 9, 17, 34, 35, 36, 65, 또는 67 등일 수 있다. 또는, 화면 내 예측 모드의 개수는 블록의 크기 및/또는 색 성분(color component)의 타입에 따라 상이할 수 있다. 예를 들면, 색 성분이 휘도(luma) 신호인지 아니면 색차(chroma) 신호인지에 따라 화면 내 예측 모드의 개수가 다를 수 있다. 예컨대, 블록의 크기가 커질수록 화면 내 예측 모드의 개수는 많아질 수 있다. 또는 휘도 성분 블록의 화면 내 예측 모드의 개수는 색차 성분 블록의 화면 내 예측 모드의 개수보다 많을 수 있다.
화면 내 예측 모드는 비방향성 모드 또는 방향성 모드일 수 있다. 비방향성 모드는 DC 모드 또는 플래너(Planar) 모드일 수 있으며, 방향성 모드(angular mode)는 특정한 방향 또는 각도를 가지는 예측 모드일 수 있다. 상기 화면 내 예측 모드는 모드 번호, 모드 값, 모드 숫자, 모드 각도, 모드 방향 중 적어도 하나로 표현될 수 있다. 화면 내 예측 모드의 개수는 상기 비방향성 및 방향성 모드를 포함하는 하나 이상의 M개 일 수 있다.
현재 블록을 화면 내 예측하기 위해 복원된 주변 블록에 포함되는 샘플들이 현재 블록의 참조 샘플로 이용 가능한지 여부를 검사하는 단계가 수행될 수 있다. 현재 블록의 참조 샘플로 이용할 수 없는 샘플이 존재할 경우, 복원된 주변 블록에 포함된 샘플들 중 적어도 하나의 샘플 값을 복사 및/또는 보간한 값을 이용하여 참조 샘플로 이용할 수 없는 샘플의 샘플 값으로 대체한 후, 현재 블록의 참조 샘플로 이용할 수 있다.
화면 내 예측 시 화면 내 예측 모드 및 현재 블록의 크기 중 적어도 하나에 기반하여 참조 샘플 또는 예측 샘플 중 적어도 하나에 필터를 적용할 수 있다.
플래너 모드의 경우, 현재 블록의 예측 블록을 생성할 때, 예측 대상 샘플의 예측 블록 내 위치에 따라, 현재 샘플의 상단 및 좌측 참조 샘플, 현재 블록의 우상단 및 좌하단 참조 샘플의 가중합을 이용하여 예측 대상 샘플의 샘플값을 생성할 수 있다. 또한, DC 모드의 경우, 현재 블록의 예측 블록을 생성할 때, 현재 블록의 상단 및 좌측 참조 샘플들의 평균 값을 이용할 수 있다. 또한, 방향성 모드의 경우 현재 블록의 상단, 좌측, 우상단 및/또는 좌하단 참조 샘플을 이용하여 예측 블록을 생성 할 수 있다. 예측 샘플 값 생성을 위해 실수 단위의 보간을 수행 할 수도 있다.
현재 블록의 화면 내 예측 모드는 현재 블록의 주변에 존재하는 블록의 화면 내 예측 모드로부터 예측하여 엔트로피 부호화/복호화할 수 있다. 현재 블록과 주변 블록의 화면 내 예측 모드가 동일하면 소정의 플래그 정보를 이용하여 현재 블록과 주변 블록의 화면 내 예측 모드가 동일하다는 정보를 시그널링할 수 있다. 또한, 복수 개의 주변 블록의 화면 내 예측 모드 중 현재 블록의 화면 내 예측 모드와 동일한 화면 내 예측 모드에 대한 지시자 정보를 시그널링 할 수 있다. 현재 블록과 주변 블록의 화면 내 예측 모드가 상이하면 주변 블록의 화면 내 예측 모드를 기초로 엔트로피 부호화/복호화를 수행하여 현재 블록의 화면 내 예측 모드 정보를 엔트로피 부호화/복호화할 수 있다.
도 5는 화면 간 예측 과정의 실시예를 설명하기 위한 도면이다.
도 5에 도시된 사각형은 영상을 나타낼 수 있다. 또한, 도 5에서 화살표는 예측 방향을 나타낼 수 있다. 각 영상은 부호화 타입에 따라 I 픽처(Intra Picture), P 픽처(Predictive Picture), B 픽처(Bi-predictive Picture) 등으로 분류될 수 있다.
I 픽처는 화면 간 예측 없이 화면 내 예측을 통해 부호화/복호화될 수 있다. P 픽처는 단방향(예컨대, 순방향 또는 역방향)에 존재하는 참조 영상만을 이용하는 화면 간 예측을 통해 부호화/복호화될 수 있다. B 픽처는 쌍방향(예컨대, 순방향 및 역방향)에 존재하는 참조 영상들을 이용하는 화면 간 예측을 통해 부호화/복호화 될 수 있다. 또한, B 픽처인 경우, 쌍방향에 존재하는 참조 영상들을 이용하는 화면 간 예측 또는 순방향 및 역방향 중 일 방향에 존재하는 참조 영상을 이용하는 화면 간 예측을 통해 부호화/복호화될 수 있다. 여기에서, 쌍방향은 순방향 및 역방향일 수 있다. 여기서, 화면 간 예측이 사용되는 경우, 부호화기에서는 화면 간 예측 혹은 움직임 보상을 수행할 수 있고, 복호화기에서는 그에 대응하는 움직임 보상을 수행할 수 있다.
아래에서, 실시예에 따른 화면 간 예측에 대해 구체적으로 설명된다.
화면 간 예측 혹은 움직임 보상은 참조 영상 및 움직임 정보를 이용하여 수행될 수 있다.
현재 블록에 대한 움직임 정보는 부호화 장치(100) 및 복호화 장치(200)의 각각에 의해 화면 간 예측 중 도출될 수 있다. 움직임 정보는 복원된 주변 블록의 움직임 정보, 콜 블록(collocated block; col block)의 움직임 정보 및/또는 콜 블록에 인접한 블록을 이용하여 도출될 수 있다. 콜 블록은 이미 복원된 콜 픽처(collocated picture; col picture) 내에서 현재 블록의 공간적 위치에 대응하는 블록일 수 있다. 여기서, 콜 픽처는 참조 영상 리스트에 포함된 적어도 하나의 참조 영상 중에서 하나의 픽처일 수 있다.
움직임 정보의 도출 방식은 현재 블록의 예측 모드에 따라 다를 수 있다. 예를 들면, 화면 간 예측을 위해 적용되는 예측 모드로서, AMVP 모드, 머지 모드, 스킵 모드, 현재 픽처 참조 모드 등이 있을 수 있다. 여기서 머지 모드를 움직임 병합 모드(motion merge mode)라고 지칭할 수 있다.
예를 들면, 예측 모드로서, AMVP가 적용되는 경우, 복원된 주변 블록의 움직임 벡터, 콜 블록의 움직임 벡터, 콜 블록에 인접한 블록의 움직임 벡터, (0, 0) 움직임 벡터 중 적어도 하나를 움직임 벡터 후보로 결정하여 움직임 벡터 후보 리스트(motion vector candidate list)를 생성할 수 있다. 생성된 움직임 벡터 후보 리스트를 이용하여 움직임 벡터 후보를 유도할 수 있다. 유도된 움직임 벡터 후보를 기반으로 현재 블록의 움직임 정보를 결정할 수 있다. 여기서, 콜 블록의 움직임 벡터 또는 콜 블록에 인접한 블록의 움직임 벡터를 시간적 움직임 벡터 후보(temporal motion vector candidate)라 지칭할 수 있고, 복원된 주변 블록의 움직임 벡터를 공간적 움직임 벡터 후보(spatial motion vector candidate)라 지칭할 수 있다.
부호화 장치(100)는 현재 블록의 움직임 벡터 및 움직임 벡터 후보 간의 움직임 벡터 차분(MVD: Motion Vector Difference)을 계산할 수 있고, MVD를 엔트로피 부호화할 수 있다. 또한, 부호화 장치(100)는 움직임 벡터 후보 색인을 엔트로피 부호화하여 비트스트림을 생성할 수 있다. 움직임 벡터 후보 색인은 움직임 벡터 후보 리스트에 포함된 움직임 벡터 후보 중에서 선택된 최적의 움직임 벡터 후보를 지시할 수 있다. 복호화 장치(200)는 움직임 벡터 후보 색인을 비트스트림으로부터 엔트로피 복호화하고, 엔트로피 복호화된 움직임 벡터 후보 색인을 이용하여 움직임 벡터 후보 리스트에 포함된 움직임 벡터 후보 중에서 복호화 대상 블록의 움직임 벡터 후보를 선택할 수 있다. 또한, 복호화 장치(200)는 엔트로피 복호화된 MVD 및 움직임 벡터 후보의 합을 통해 복호화 대상 블록의 움직임 벡터를 도출할 수 있다.
비트스트림은 참조 영상을 지시하는 참조 영상 색인 등을 포함할 수 있다. 참조 영상 색인은 엔트로피 부호화되어 비트스트림을 통해 부호화 장치(100)로부터 복호화 장치(200)로 시그널링될 수 있다. 복호화 장치(200)는 유도된 움직임 벡터와 참조 영상 색인 정보에 기반하여 복호화 대상 블록에 대한 예측 블록을 생성할 수 있다.
움직임 정보의 도출 방식의 다른 예로, 머지 모드가 있다. 머지 모드란 복수의 블록들에 대한 움직임의 병합을 의미할 수 있다. 머지 모드는 현재 블록의 움직임 정보를 주변 블록의 움직임 정보로부터 유도하는 모드를 의미할 수 있다. 머지 모드가 적용되는 경우, 복원된 주변 블록의 움직임 정보 및/또는 콜 블록의 움직임 정보를 이용하여 머지 후보 리스트(merge candidate list)를 생성할 수 있다. 움직임 정보는 1) 움직임 벡터, 2) 참조 영상 색인, 및 3) 화면 간 예측 지시자 중 적어도 하나를 포함할 수 있다. 예측 지시자는 단방향 (L0 예측, L1 예측) 또는 쌍방향일 수 있다.
머지 후보 리스트는 움직임 정보들이 저장된 리스트를 나타낼 수 있다. 머지 후보 리스트에 저장되는 움직임 정보는, 현재 블록에 인접한 주변 블록의 움직임 정보(공간적 머지 후보(spatial merge candidate)) 및 참조 영상에서 현재 블록에 대응되는(collocated) 블록의 움직임 정보(시간적 머지 후보(temporal merge candidate)), 이미 머지 후보 리스트에 존재하는 움직임 정보들의 조합에 의해 생성된 새로운 움직임 정보 및 제로 머지 후보 중 적어도 하나일 수 있다.
부호화 장치(100)는 머지 플래그(merge flag) 및 머지 색인(merge index) 중 적어도 하나를 엔트로피 부호화하여 비트스트림을 생성한 후 복호화 장치(200)로 시그널링할 수 있다. 머지 플래그는 블록 별로 머지 모드를 수행할지 여부를 나타내는 정보일 수 있고, 머지 색인은 현재 블록에 인접한 주변 블록들 중 어떤 블록과 머지를 할 것인가에 대한 정보일 수 있다. 예를 들면, 현재 블록의 주변 블록들은 현재 블록의 좌측 인접 블록, 상단 인접 블록 및 시간적 인접 블록 중 적어도 하나를 포함할 수 있다.
스킵 모드는 주변 블록의 움직임 정보를 그대로 현재 블록에 적용하는 모드일 수 있다. 스킵 모드가 사용되는 경우, 부호화 장치(100)는 어떤 블록의 움직임 정보를 현재 블록의 움직임 정보로서 이용할 것인지에 대한 정보를 엔트로피 부호화하여 비트스트림을 통해 복호화 장치(200)에 시그널링할 수 있다. 이때, 부호화 장치(100)는 움직임 벡터 차분 정보, 부호화 블록 플래그 및 변환 계수 레벨(양자화된 레벨) 중 적어도 하나에 관한 구문 요소를 복호화 장치(200)에 시그널링하지 않을 수 있다.
현재 픽처 참조 모드는 현재 블록이 속한 현재 픽처 내의 기-복원된 영역을 이용한 예측 모드를 의미할 수 있다. 이때, 상기 기-복원된 영역을 특정하기 위해 벡터가 정의될 수 있다. 현재 블록이 현재 픽처 참조 모드로 부호화되는지 여부는 현재 블록의 참조 영상 색인을 이용하여 부호화될 수 있다. 현재 블록이 현재 픽처 참조 모드로 부호화된 블록인지 여부를 나타내는 플래그 혹은 색인이 시그널링될 수도 있고, 현재 블록의 참조 영상 색인을 통해 유추될 수도 있다. 현재 블록이 현재 픽처 참조 모드로 부호화된 경우, 현재 픽처는 현재 블록을 위한 참조 영상 리스트 내에서 고정 위치 또는 임의의 위치에 추가될 수 있다. 상기 고정 위치는 예를 들어, 참조 영상 색인이 0인 위치 또는 가장 마지막 위치일 수 있다. 현재 픽쳐가 참조 영상 리스트 내에서 임의의 위치에 추가되는 경우, 상기 임의의 위치를 나타내는 별도의 참조 영상 색인이 시그널링될 수도 있다.
도 6은 변환 및 양자화의 과정을 설명하기 위한 도면이다.
도 6에 도시된 바와 같이 잔여 신호에 변환 및/또는 양자화 과정을 수행하여 양자화된 레벨이 생성될 수 있다. 상기 잔여 신호는 원본 블록과 예측 블록(화면 내 예측 블록 혹은 화면 간 예측 블록) 간의 차분으로 생성될 수 있다. 여기에서, 예측 블록은 화면 내 예측 또는 화면 간 예측에 의해 생성된 블록일 수 있다. 여기서, 변환은 1차 변환 및 2차 변환 중 적어도 하나를 포함할 수 있다. 잔여 신호에 대해서 1차 변환을 수행하면 변환 계수가 생성될 수 있고, 변환 계수에 2차 변환을 수행하여 2차 변환 계수를 생성할 수 있다.
1차 변환(Primary Transform)은 기-정의된 복수의 변환 방법 중 적어도 하나를 이용하여 수행될 수 있다. 일예로, 기-정의된 복수의 변환 방법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform) 또는 KLT(Karhunen-Loeve Transform) 기반 변환 등을 포함할 수 있다. 1차 변환이 수행 후 생성되는 변환 계수에 2차 변환(Secondary Transform)을 수행할 수 있다. 1차 변환 및/또는 2차 변환시에 적용되는 변환 방법은 현재 블록 및/또는 주변 블록의 부호화 파라미터 중 적어도 하나에 따라 결정될 수 있다. 또는 변환 방법을 지시하는 변환 정보가 시그널링될 수도 있다.
1차 변환 및/또는 2차 변환이 수행된 결과 또는 잔여 신호에 양자화를 수행하여 양자화된 레벨을 생성할 수 있다. 양자화된 레벨은 화면 내 예측 모드 또는 블록 크기/형태 중 적어도 하나를 기준으로 우상단 대각 스캔, 수직 스캔, 수평 스캔 중 적어도 하나에 따라 스캐닝(scanning) 될 수 있다. 예를 들어, 우상단(up-right) 대각 스캐닝을 이용하여 블록의 계수를 스캔함으로써 1차원 벡터 형태로 변경시킬 수 있다. 변환 블록의 크기 및/또는 화면 내 예측 모드에 따라 우상단 대각 스캔 대신 2차원의 블록 형태 계수를 열 방향으로 스캔하는 수직 스캔, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔이 사용될 수도 있다. 스캐닝된 양자화된 레벨은 엔트로피 부호화되어 비트스트림에 포함될 수 있다.
복호화기에서는 비트스트림을 엔트로피 복호화하여 양자화된 레벨을 생성할 수 있다. 양자화된 레벨은 역 스캐닝(Inverse Scanning)되어 2차원의 블록 형태로 정렬될 수 있다. 이때, 역 스캐닝의 방법으로 우상단 대각 스캔, 수직 스캔, 수평 스캔 중 적어도 하나가 수행될 수 있다.
양자화된 레벨에 역양자화를 수행할 수 있고, 2차 역변환 수행 여부에 따라 2차 역변환을 수행할 수 있고, 2차 역변환이 수행된 결과에 1차 역변환 수행 여부에 따라 1차 역변환을 수행하여 복원된 잔여 신호가 생성될 수 있다.
이하에서는 비디오 코딩 과정 중 하나인 변환(transform) 방법 개선을 통한 비디오 압축 효율 향상 방법에 대해 설명하도록 한다. 좀 더 구체적으로 기존 비디오 코딩의 부호화(encoding)는 크게 현재 원본 영상의 일부분인 원본 블록을 예측하는 화면내(intra)/화면간(inter) 예측 단계, 예측된 예측 블록(prediction block)과 원본 블록의 차이인 잔여 블록(residual block)의 변환 및 양자화(quantization) 단계, 변환 및 양자화된 블록의 계수와 앞 단에서 얻어진 압축 정보에 대한 확률 기반 무손실 압축 방법인 엔트로피 코딩(entropy coding) 단계를 거쳐 원본 영상의 압축 형태인 비트스트림(bitstream)을 형성하고, 이를 복호화기(decoder)로 전송하거나 기록 매체에 저장한다. 본 명세서에서 후술할 셔플링 및 이산 정현 변환(Shuffling and Discrete Sine Transform, 이하, “SDST”)은 변환의 효율성을 증가시켜 압축 효율을 향상시키기 위한 것이다.
본 발명에 따른 SDST 방법은 비디오 코딩에서 널리 이용하는 변환 커널(transform kernel)인 이산 여현 변환 타입-2(Discrete Cosine Transform type-2, 이하, “DCT-II” 또는 “DCT-2”) 대신 이산 정현 변환 타입-7(Discrete Sine Transform type-7, 이하, “DST-VII” 또는 “DST-7”)을 사용함으로써 영상들이 공통적으로 갖는 주파수 특성을 더 잘 반영할 수 있다.
본 발명의 변환 방법에 따르면, 기존의 비디오 코딩 방법 대비 비교적 낮은 비트량에서도 높은 객관적 비디오 화질을 얻을 수 있다.
DST-7은 잔여 블록(residual block)의 데이터에 적용될 수 있다. 잔여 블록에 대한 DST-7 적용은 잔여 블록에 대응하는 예측 모드에 기반하여 수행될 수 있다. 예를 들어, 인터 모드(화면간 모드)로 부호화된 잔여 블록에 적용될 수 있다. 본 발명의 일 실시 예에 따라 DST-7은 잔여 블록의 데이터를 재배열 혹은 셔플링(shuffling)한 이후에 적용될 수 있다. 여기서, 셔플링은 영상 데이터의 재배열을 의미하며, 동등한 의미로 잔여 신호 재배열(rearrangement) 혹은 플리핑(flipping)이라고 할 수 있다. 여기서, 잔여 블록은 레지듀얼(residual), 잔차 블록, 잔차 신호, 잔여 신호, 잔차 데이터 또는 잔여 데이터와 동일한 의미를 가질 수 있다. 또한, 잔여 블록은 잔여 블록이 부호화기와 복호화기에서 복원된 형태인 복원된 레지듀얼(reconstructed residual), 복원된 잔차 블록, 복원된 잔차 신호, 복원된 잔여 신호, 복원된 잔차 데이터 또는 복원된 잔여 데이터와 동일한 의미를 가질 수도 있다.
본 발명의 일 실시 예에 따른 SDST는 DST-7을 변환 커널로 사용할 수 있다. 이 때, SDST의 변환 커널은 DST-7에 한정되는 것은 아니고, 이산 정현 변환 타입-1(Discrete Sine Transform type-1, DST-1), 이산 정현 변환 타입-2(Discrete Sine Transform type-2, DST-2), 이산 정현 변환 타입-3(Discrete Sine Transform type-3, DST-3), …, 이산 정현 변환 타입-n(Discrete Sine Transform type-n, DST-n), 이산 여현 변환 타입-1(Discrete Cosine Transform type-1, DCT-1), 이산 여현 변환 타입-2(Discrete Cosine Transform type-2, DCT-2), 이산 여현 변환 타입-3(Discrete Cosine Transform type-3, DCT-3), …, 이산 여현 변환 타입-n(Discrete Cosine Transform type-n, DCT-n) 등 DST 및 DCT의 여러 타입 중 적어도 하나를 이용할 수 있다. (여기서, n은 1 이상의 양의 정수)
아래와 같은 수학식 1은 본 발명의 일 실시 예에 따른 1차원 DCT-2의 수행 방법을 나타낼 수 있다. 여기서, N은 블록의 크기, k는 주파수 성분의 위치, xn은 공간 도메인에서 n번째 계수의 값을 나타낼 수 있다.
2차원 도메인의 DCT-2는, 상기 수학식 1을 이용하여 잔여 블록에 대해 수평 변환(horizontal transform) 및 수직 변환(vertical transform)을 수행함으로써 가능할 수 있다.
DCT-2 변환 커널은 아래와 같은 수학식 2로 정의될 수 있다. 여기서, Xk 는 주파수 도메인에서 위치에 따른 기저 벡터(basis vector), N은 주파수 도메인의 크기를 나타낼 수 있다.
한편, 도 7은 본 발명에 따른 DCT-2의 주파수 도메인에서의 기저 벡터(basis vector)를 도시한 도면이다. 도 7은 주파수 도메인에서의 DCT-2의 주파수 특성을 나타낸다. 여기서, DCT-2의 X0 기저 벡터를 통해 계산된 값은 DC 성분을 의미할 수 있다.
DCT-2는 4x4, 8x8, 16x16, 32x32 크기 등의 잔여 블록에 대한 변환 과정에 이용될 수 있다.
한편, DCT-2는 잔여 블록의 크기, 잔여 블록의 색 성분(예를 들어, 휘도 성분, 색차 성분) 또는 잔여 블록에 대응하는 예측 모드 중 적어도 하나에 기초하여 선택적으로 이용될 수 있다. 예를 들어, 인트라 모드(화면내 모드)로 부호화된 4x4 크기의 잔여 블록이고, 해당 잔여 블록의 성분이 휘도 성분인 경우, DCT-2가 이용되지 않을 수 있다. 예를 들어, 인트라 모드로 부호화된 잔여 블록의 가로 길이가 소정의 범위(예컨대, 4 픽셀 이상 16 픽셀 이하)에 속하고, 가로 길이가 세로 길이보다 크지 않으면, 수평 변환을 위해 제1 변환 커널이 이용될 수 있다. 그렇지 않으면, 수평 변환을 위해 제2 변환 커널이 이용될 수 있다. 예를 들어, 인트라 모드로 부호화된 잔여 블록의 세로 길이가 4 픽셀 이상 16 픽셀 이하에 속하고, 세로 길이가 가로 길이보다 크지 않으면, 수직 변환을 위해 제1 변환 커널이 이용될 수 있다. 그렇지 않으면, 수직 변환을 위해 제2 변환 커널이 이용될 수 있다. 상기 제1 변환 커널 및 제2 변환 커널은 상이할 수 있다. 즉, 인트라 모드로 부호화된 블록의 수평 변환 및 수직 변환 방법은 소정의 조건 하에서, 블록의 형태에 기반하여 암묵적으로 결정될 수 있다. 예컨대, 제1 변환 커널은 DST-7, 제2 변환 커널은 DCT-2일 수 있다. 이 때, 잔여 블록은 변환의 대상이므로 변환 블록과 같은 의미일 수 있다. 여기서, 예측 모드는 화면간(inter) 예측 혹은 화면내(intra) 예측을 의미할 수 있다. 또한, 예측 모드는 화면내 예측일 경우 화면내 예측 모드 혹은 화면내 예측 방향을 의미할 수 있다
DCT-2 변환 커널을 통한 변환은, 영상의 배경과 같이 주변 화소(pixel) 간의 변화가 적은 특성의 블록에 대해 높은 압축 효율을 보일 수 있다. 하지만, 텍스쳐(texture) 영상처럼 복잡한 패턴(pattern)을 갖는 영역에 대한 변환 커널로는 적합하지 않을 수 있다. 왜냐하면, 주변 화소(pixel) 간의 상관 관계(correlation)가 낮은 블록을 DCT-2를 통해 변환할 경우 주파수 도메인의 고주파 성분에 많은 변환 계수가 발생할 수 있기 때문이다. 고주파 영역에서 변환 계수가 빈번히 발생하게 되면, 영상의 압축 효율을 감소할 수 있다. 압축 효율 향상을 위해서는 저주파수 성분 근처에서 큰 값을 갖는 계수가 발생하고, 고주파 성분에서는 되도록 계수의 값이 0에 가까워져야 한다.
아래의 수학식 3은 본 발명의 일 실시 예에 따른 1차원 DST-7의 수행 방법를 나타낼 수 있다. 여기서, N은 블록의 크기, k는 주파수 성분의 위치, xn은 공간 도메인에서 n번째 계수의 값을 의미할 수 있다.
2차원 도메인의 DST-7은, 상기 수학식 3을 이용하여 잔여 블록에 대해 수평 변환(horizontal transform) 및 수직 변환(vertical transform)을 수행함으로써 가능할 수 있다.
DST-7 변환 커널은 아래의 수학식 4로 정의될 수 있다. 여기서, Xk는 DST-7의 K번째 기저 벡터를, i는 주파수 도메인에서의 위치를, N은 주파수 도메인의 크기를 나타낼 수 있다.
DST-7은 2x2, 4x4, 8x8, 16x16, 32x32, 64x64, 128x128 등 중 적어도 하나 이상의 크기의 잔여 블록에 대한 변환 과정에 이용될 수 있다.
한편, DST-7은 정사각형(square) 블록이 아닌 직사각형(rectangular) 블록에 적용될 수 있다. 예를 들어, 8x4, 16x8, 32x4, 64x16 등 가로 크기와 세로 크기가 서로 다른 직사각형 블록의 수직 변환 및 수평 변환 중 적어도 하나 이상에 DST-7이 적용될 수 있다. 복수의 변환 방법의 선택적 적용이 가용한 경우, 정사각형 블록의 수평 변환 및 수직 변환에 대해서는 DCT-2를 적용할 수 있다. 복수의 변환 방법의 선택적 적용이 불가용한 경우, 정사각형 블록의 수평 변환 및 수직 변환에 대해서는 DST-7을 적용할 수 있다.
또한, DST-7은 잔여 블록의 크기, 잔여 블록의 색 성분(예를 들어, 휘도 성분, 색차 성분), 잔여 블록에 대응하는 예측 모드, 화면내 예측 모드(방향), 잔여 블록의 형태 중 적어도 하나에 기초하여 선택적으로 이용될 수 있다. 예를 들어, 인트라 모드로 부호화된 4x4 크기의 잔여 블록이고 해당 잔여 블록의 성분이 휘도 성분인 경우, DST-7이 이용될 수 있다. 이 때, 예측 모드는 화면간(inter) 예측 혹은 화면내(intra) 예측을 의미할 수 있다. 또한, 예측 모드는 화면내 예측일 경우 화면내 예측 모드 혹은 화면내 예측 방향을 의미할 수 있다. 예를 들어, 색차 성분에 대해서는 블록 형태에 기반한 변환 방법의 선택이 가용하지 않을 수 있다. 예를 들어, 화면내 예측 모드가 색 성분간 예측인 경우, 블록 형태에 기반한 변환 방법의 선택은 가용하지 않을 수 있다. 예를 들어, 색차 성분에 대한 변환 방법은 비트스트림을 통해 시그널링되는 정보에 의해서 특정될 수 있다. 현재 블록이 복수의 서브 블록들로 분할되고 각각의 서브 블록에 대해 화면내 예측이 수행되는 경우, 현재 블록에 대한 변환 방법은 화면내 예측 모드 및/또는 블록의 크기(가로 및/또는 세로의 크기)에 기초하여 결정될 수 있다. 예를 들어, 화면내 예측 모드가 비방향성(DC 또는 Planar)인 경우, 가로 길이(세로 길이)가 소정의 범위에 포함되는 경우, 수평 변환(수직 변환)을 위해 제1 변환 커널이 이용되고, 그렇지 않은 경우, 제2 변환 커널이 이용될 수 있다. 상기 제1 변환 커널과 제2 변환 커널은 상이할 수 있다. 예컨대, 제1 변환 커널은 DST-7이고, 제2 변환 커널은 DCT-2일 수 있다. 상기 소정의 범위는 예컨대, 4 픽셀 내지 16 픽셀일 수 있다. 블록의 크기가 상기 소정의 범위에 포함되지 않는 경우, 수평 변환 및 수직 변환을 위해 동일한 커널(예컨대, 제2 변환 커널)이 이용될 수 있다. 블록의 크기가 상기 소정의 범위에 포함되는 경우, 서로 인접한 화면내 예측 모드들에 대해 서로 다른 변환 커널이 이용될 수 있다. 예컨대, 모드 27의 수평 변환 및 수직 변환을 위해 각각 제2 변환 커널 및 제1 변환 커널을 이용한다면, 모드 27에 인접한 모드 26 및 모드 28의 수평 변환 및 수직 변환을 위해 각각 제1 변환 커널 및 제2 변환 커널을 이용할 수 있다.
한편, 도 8은 본 발명에 따른 DST-7의 각 주파수 도메인에서의 기저 벡터(basis vector)를 도시한 도면이다. 도 8을 참고하면, DST-7의 첫번째 기저 벡터(x0)는 곡선의 형태를 띠고 있다. 이를 통해 DST-7은 DCT-2에 비해 영상에서 공간적 변화가 큰 블록에 대해 더 높은 변환 성능을 보일 것으로 예측할 수 있다.
화면내(intra) 예측된 코딩 유닛(CU) 내 4x4 변환 유닛(TU)에 대한 변환 시 DST-7을 사용할 수 있다. 이는 intra 예측의 특성상 참조 샘플(reference sample)에서 거리가 멀어질수록 에러(error)량이 증가하는 것을 반영하여 더 높은 변환 효율을 보이는 DST-7을 사용할 수 있다. 즉, 공간 도메인에서 블록 내 (0, 0) 위치를 기준으로 거리가 멀어질수록 잔여 신호의 양이 증가하는 블록의 경우, DST-7을 이용해서 해당 블록을 효율적으로 압축할 수 있다.
상술한 바와 같이, 변환 효율 증대를 위해서 영상의 주파수 특성에 알맞는 변환 커널을 사용하는 것이 중요할 수 있다. 특히 변환은 원본 블록에 대한 잔여 블록에 대해 수행되기 때문에 CU 또는 PU 또는 TU 블록 내 잔여 신호의 분포 특성을 확인함으로써 DST-7과 DCT-2의 변환 효율을 알 수 있다.
도 9는 “Cactus” 시퀀스(sequence)를 로우 딜레이-P 프로파일(Low Delay-P profile) 환경에서 실험하여 구한, 인터 모드(inter mode)로 예측된 8x8 코딩 유닛(CU)의 2Nx2N 예측 유닛(PU) 내 위치에 따른 평균 잔여(residual) 값의 분포를 나타내는 도면이다.
도 9를 참조하면, 도 9의 좌측 도면은 블록 내 평균 잔여 신호 값들 중 상대적으로 큰 상위 30%의 값을 별도로 표시한 것이고, 우측 도면은 좌측 도면과 같은 블록 내 평균 잔여 신호 값들 중 상대적으로 값이 큰 상위 70%의 값을 별도로 표시하고 있다.
도 9를 통해 인터 모드(inter mode)로 예측된 8x8 CU의 2Nx2N PU 내 잔여 신호 분포는 잔여 신호 값의 크기가 작은 값들이 주로 블록의 가운데 부근에 밀집되고, 블록의 중간 지점에서 멀어질수록 잔여 신호 값이 커지는 특성을 가짐을 알 수 있다. 즉, 블록 경계에서 잔여 신호 값이 커지는 것을 알 수 있다. 이와 같은 잔여 신호 분포 특성은 CU 크기와 화면간 예측된 CU가 가질 수 있는 PU 분할 모드(2Nx2N, 2NxN, Nx2N, NxN, nRx2N, nLx2N, 2NxnU, 2NxnD)에 상관없이 PU 내 잔여 신호가 갖는 공통적인 특징일 수 있다.
도 10은 화면간 예측 모드(inter mode)로 예측된 8x8 코딩 유닛(CU)의 2Nx2N 예측 유닛(PU) 내 잔여 신호 분포 특성을 나타내는 3차원 그래프이다.
도 10을 참조하면, 블록 내 중앙 부근에는 상대적으로 작은 값의 잔여 신호가 집중적으로 분포하고, 블록 경계에 가까운 잔여 신호일수록 상대적으로 더 큰 값을 가짐을 확인할 수 있다.
도 9 및 도 10에 따른 잔여 신호 분포 특성을 바탕으로 화면간 예측된 CU의 PU 내 잔여 신호의 변환은 DCT-2가 아닌 DST-7을 이용하면 더 효율적일 수 있다.
이하에서는, DST-7을 변환 커널로 사용하는 변환 방법 중 하나인 SDST에 대해 설명하도록 한다.
이하에서, 블록은 CU, PU 및 TU 중 어느 하나를 의미할 수 있다.
본 발명에 따른 SDST는 두 단계로 수행될 수 있다. 첫번째 단계는 인터 모드(화면간 모드) 혹은 인트라 모드(화면내 모드)로 예측된 CU의 PU 내 잔여 신호를 셔플링하는 단계이다. 두번째 단계는 셔플링된 블록 내 잔여 신호에 DST-7을 적용하는 단계이다.
현재 블록(예컨데, CU, PU 또는 TU) 내에 배열된 잔여 신호를 제1 방향에 따라 스캔하고, 이를 제2 방향에 따라 재배열할 수 있다. 즉, 현재 블록 내에 배열된 잔여 신호를 제1 방향에 따라 스캔하고, 이를 제2 방향에 따라 재배열하여 셔플링을 수행할 수 있다. 이 때, 잔여 신호는 원본 신호와 예측 신호 사이의 차분 신호를 나타내는 신호를 의미할 수 있다. 즉, 잔여 신호는 변환과 양자화 중 적어도 하나를 수행하기 전인 신호를 의미할 수 있다. 또는, 잔여 신호는 변환과 양자화 중 적어도 하나 이상이 수행된 신호 형태를 의미할 수 있다. 또한, 잔여 신호는 복원된 잔여 신호를 의미할 수 있다. 즉, 잔여 신호는 역변환과 역양자화 중 적어도 하나 이상이 수행된 신호를 의미할 수 있다. 또한, 잔여 신호는 역변환과 역양자화 중 적어도 하나를 수행하기 전인 신호를 의미할 수 있다.
한편, 제1 방향(또는 스캔 방향)은 래스터 스캔 순서(Raster scan order), 위-오른쪽 대각선 스캔 순서(Up-Right Digonal scan order), 수평 스캔 순서(Horizontal scan order), 수직 스캔 순서(Vertical scan order) 중 어느 하나일 수 있다. 또한, 제1 방향은 아래의 (1) 내지 (10) 중 적어도 하나로 정의될 수 있다.
(1) 상단 행(row)에서 하단 행으로 스캔하되, 하나의 행에서는 좌측에서 우측으로 스캔
(2) 상단 행(row)에서 하단 행으로 스캔하되, 하나의 행에서는 우측에서 좌측으로 스캔
(3) 하단 행(row)에서 상단 행으로 스캔하되, 하나의 행에서는 좌측에서 우측으로 스캔
(4) 하단 행(row)에서 상단 행으로 스캔하되, 하나의 행에서는 우측에서 좌측으로 스캔
(5) 좌측 열(column)에서 우측 열로 스캔하되, 하나의 열에서는 상단에서 하단으로 스캔
(6) 좌측 열(column)에서 우측 열로 스캔하되, 하나의 열에서는 하단에서 상단으로 스캔
(7) 우측 열(column)에서 좌측 열로 스캔하되, 하나의 열에서는 상단에서 하단으로 스캔
(8) 우측 열(column)에서 좌측 열로 스캔하되, 하나의 열에서는 하단에서 상단으로 스캔
(9) 나선 형태로 스캔: 블록 내부(또는 외부)에서 블록 외부(또는 내부)로, 시계/반시계 방향으로 스캔
(10) 대각 스캔: 블록 내 하나의 꼭지점에서 시작하여, 좌상단, 우상단, 좌하단 또는 우하단 방향으로 대각 스캔
한편, 제2 방향(또는 재배열 방향)도 상기 (1) 내지 (10)의 스캔 방향 중 적어도 하나가 선택적으로 이용될 수 있다. 제1 방향과 제2 방향은 동일할 수도 있고, 서로 상이할 수도 있다.
잔여 신호에 대한 스캔 및 재배열 과정은 현재 블록 단위로 수행될 수 있다.
여기서, 재배열은 블록 내에서 제1 방향에 따라 스캔한 잔여 신호를 동일한 크기의 블록에 제2 방향에 따라 배열하는 것을 의미할 수 있다. 이 때, 제1 방향에 따라 스캔한 블록의 크기와 제2 방향에 따라 재배열한 블록의 크기는 서로 상이할 수 있다.
또한, 여기서 스캔과 재배열은 각각 제1 방향 및 제2 방향에 따라 별도로 수행되는 것으로 표현했지만, 스캔과 재배열은 제1 방향에 대해서 하나의 과정으로 수행될 수 있다. 예를 들어, 블록 내 잔여 신호에 대해서 상단 행에서 하단 행으로 스캔하되, 하나의 행에서는 우측에서 좌측으로 스캔하여 블록에 저장(재배열)할 수 있다.
한편, 잔여 신호에 대한 스캔 및 재배열 과정은 현재 블록 내 소정의 서브블록(sub-block) 단위로 수행될 수 있다. 여기서, 서브블록은 현재 블록과 같거나 작은 블록일 수 있다. 상기 서브블록은 현재 블록으로부터 쿼드트리, 이진트리 형태 등으로 분할된 블록일 수 있다.
서브블록 단위는 고정된 크기 및/또는 형태(예를 들어, 4x4, 4x8, 8x8, … NxM, 여기서, N과 M은 양의 정수)를 가질 수 있다. 또한, 서브블록 단위의 크기 및/또는 형태는 가변적으로 유도될 수도 있다. 일 예로, 현재 블록의 크기, 형태, 및/또는 예측 모드(인터, 인트라)에 종속적(dependent)으로 서브블록 단위의 크기 및/또는 형태가 결정될 수 있다.
서브블록의 위치에 따라 스캔 방향 및/또는 재배열 방향이 적응적으로 결정될 수 있다. 이 경우, 서브블록 별로 서로 상이한 스캔 방향 및/또는 재배열 방향을 사용할 수도 있고, 현재 블록에 속한 서브블록들 전부 또는 일부는 동일한 스캔 방향 및/또는 재배열 방향을 사용할 수도 있다.
도 11은 본 발명에 따른 코딩 유닛(CU)의 2Nx2N 예측 유닛(PU) 모드에서 잔여 신호의 분포 특징을 도시한 도면이다.
도 11을 참조하면, PU가 쿼드트리 구조로 4개의 서브블록으로 분할되어 있고, 각 서브블록의 화살표 진행 방향은 잔여 신호 분포의 특성을 나타낸다. 구체적으로, 각 서브블록의 화살표 진행 방향은 잔여 신호가 커지는 방향을 나타낸다. 이는 PU 분할 모드(PU partitioning mode)에 상관없이 PU 내 잔여 신호가 공통적으로 가지는 분포 특성 때문이다. 따라서, DST-7 변환에 적합한 분포 특성을 갖도록 각 서브블록의 잔여 신호를 재배열하는 셔플링 작업을 수행할 수 있다.
도 12는 본 발명에 따른 2Nx2N 예측 유닛(PU)의 셔플링(shuffling) 전후의 잔여 신호 분포 특징을 도시한 도면이다.
도 12를 참조하면, 위쪽 블록은 인터 모드로 예측된 8x8 CU의 2Nx2N PU 내 잔여 신호의 셔플링 이전의 분포를 보여준다. 아래의 수학식 5는 도 12의 위쪽 블록 내 각 잔여 신호의 위치에 따른 값을 나타낸다.
인터 모드로 예측된 CU의 PU 내 잔여 신호의 분포 특성에 의해, 도 12의 위쪽 블록 내 중앙 영역에는 비교적 작은 값을 갖는 잔여 신호가 많이 분포하고, 위쪽 블록의 경계로 진행할수록 큰 값을 갖는 잔여 신호가 많이 분포한다.
도 12의 아래쪽 블록은 셔플링을 수행한 이후의 2Nx2N PU 내 잔여 신호 분포 특성을 보여준다. 이는 셔플링을 수행한 PU의 서브블록 별 잔여 신호의 분포가 DST-7의 첫번째 기저 벡터에 적합한 잔여 신호의 분포임을 보여준다. 즉, 각 서브블록 내 잔여 신호는 (0, 0) 위치에서 멀어질수록 더 큰 값을 갖기 때문에 변환 수행 시, DST-7을 통해 주파수 변환된 변환 계수 값들이 저주파수 영역에 집중되어 나타날 수 있다.
아래와 같은 수학식 6은 PU에서 쿼드트리 구조로 분할된 4개의 서브블록에서 각각의 서브블록의 PU 내의 위치에 따른 셔플링 수행 방법을 나타낸다.
여기서, Wk, Hk는 각각 PU에서 k번째 서브블록(k∈{blk0,blk1,blk2,blk3})의 너비 또는 높이를 의미하고, blk0~blk3은 PU에서 쿼드트리 구조로 분할된 각 서브블록을 의미한다. 그리고, x, y 는 각 서브블록 내에서 가로, 세로 위치를 의미한다. a(x,y), b(x,y), c(x,y), d(x,y)는 도 12의 위쪽 블록과 같이 각 잔여 신호의 셔플링 수행 전 위치를 나타낸다. a'(x,y), b'(x,y), c'(x,y), d'(x,y)는 도 12의 아래쪽 블록과 같이 셔플링을 통해 변경된 잔여 신호의 위치를 나타낸다.
도 13은 본 발명에 따른 서브블록의 4x4 잔여 데이터 재배열의 일 예를 도시한 도면이다.
도 13을 참조하면, 서브블록은 8x8 예측 블록에 속한 복수의 서브블록 중 어느 하나를 의미한다. 도 13의 (a)는 재배열 전 원본 잔여 데이터의 위치를 나타내고, 도 13의 (b)는 잔여 데이터의 재배열된 위치를 나타낸다.
도 13의 (c)를 참조하면, 잔여 데이터의 값은 (0,0) 위치에서 (3,3)의 위치로 갈수록 점진적으로 증가될 수 있다. 여기서, 각 서브블록 내 수평 및/또는 수직 1차원의 잔여 데이터는 도 8에서 도시한 기저 벡터의 형태로 데이터 분포를 가질 수 있다.
즉, 본 발명에 따른 셔플링은 잔여 데이터 분포가 전술한 DST-7 기저 벡터의 형태에 적합하도록 각 서브 블록의 잔여 데이터를 재배열할 수 있다. 각 서브 블록에 대한 셔플링 이후에 DST-7 변환이 각 서브 블록 단위로 재배열된 데이터에 적용될 수 있다.
한편, 서브 블록은, TU의 뎁스(depth, 깊이)에 기반하여 추가적으로 쿼드트리 구조로 분할(partitioning)되거나, 재배열 과정이 선택적으로 수행될 수 있다. 예를 들어, TU의 뎁스가 2인 경우, 2Nx2N PU에 속한 NxN 서브 블록은 N/2xN/2 블록으로 분할될 수 있고, 재배열 과정이 각 N/2xN/2 블록에 적용될 수 있다. 여기서, 쿼드트리 기반의 TU 분할은 최소 TU 크기가 될 때까지 반복적으로 수행될 수 있다.
또한, TU의 뎁스가 0인 경우, 2Nx2N 블록에 DCT-2 변환이 적용될 수 있다. 이 때 잔여 데이터의 재배열은 수행하지 않을 수 있다.
한편, 본 발명에 따른 SDST 방법은 PU 블록 내 잔여 신호의 분포 특징을 이용하기 때문에 SDST를 수행하는 TU의 분할 구조는 PU를 기준으로 쿼드트리 구조로 분할되는 것으로 정의될 수 있다.
도 14(a) 및 도 14(b)는 예측 유닛(PU) 모드에 따른 코딩 유닛(CU)의 변환 유닛(TU) 분할 구조와 변환 유닛(TU)의 셔플링(shuffling) 방법의 실시예를 설명하기 위한 도면이다. 도 14(a) 및 도 14(b)는 TU 깊이에 따른 TU의 쿼드트리 분할 구조를, 인터 예측된 PU의 비대칭 분할 모드(2NxnU, 2NxnD, nRx2N, nLx2N)별로 보여준다.
도 14(a) 및 도 14(b)를 참조하면, 각 블록의 굵은 실선은 CU 내 PU를 나타내고, 얇은 실선은 TU를 나타낸다. 그리고, 각 TU 내 S0, S1, S2, S3는 상술한 수학식 6에 정의된 TU 내 잔여 신호의 셔플링 방법을 나타낸다.
한편, 도 14(a) 및 도 14(b)에서 각 PU의 깊이 0 TU는 해당 PU와 블록 크기가 같다(예컨데, 2Nx2N PU 에서 깊이 0 TU의 크기는 PU의 크기와 같다). 여기서, 깊이 0 TU 내 잔여 신호에 대한 셔플링은 도 18을 참조하여 후술한다.
또한, CU, PU 및 TU 중 적어도 하나 이상이 직사각형 형태(예컨대, 2NxnU, 2NxnD, nRx2N, nLx2N)를 가질 경우에, 잔여 신호 재배열 전에 CU, PU 및 TU 중 적어도 하나 이상을 2개, 4개, 6개, 8개, 16개 등 N개의 서브블록으로 분할하고, 분할된 서브블록에 잔여 신호 재배열을 적용할 수 있다.
또한, CU, PU 및 TU 중 적어도 하나 이상이 정사각형 형태(예컨대, 2Nx2N, NxN)를 가질 경우에, 잔여 신호 재배열 전에 CU, PU 및 TU 중 적어도 하나 이상을 4개, 8개, 16개 등 N개의 서브블록으로 분할하고, 분할된 서브블록에 잔여 신호 재배열을 적용할 수 있다.
또한, 상기 TU가 CU 혹은 PU로부터 분할될 경우, TU가 최상위 깊이인 경우(분할되지 않는 경우), TU를 2개, 4개, 6개, 8개, 16개 등 N개의 서브블록으로 분할한 후, 분할된 서브블록 단위로 잔여 신호 재배열을 수행할 수 있다.
상기 예에서 CU, PU 및 TU가 각각 다른 형태 혹은 다른 크기를 가질 경우에 잔여 신호 재배열을 수행하는 예를 나타냈지만, 상기 잔여 신호 재배열은 CU, PU 및 TU 중 적어도 2개 이상이 같은 형태 혹은 같은 크기를 가질 경우에도 적용될 수 있다.
한편, 도 14(a) 및 도 14(b)에서는 인터 예측된 PU의 비대칭 분할 모드에 대해 설명하지만 이에 한정되지 않고, PU의 대칭 분할 모드(2NxN, Nx2N)에 대해서도 상기 TU의 분할 및 TU의 셔플링을 적용할 수 있다.
셔플링이 수행된 PU 내 각 TU에 대하여 DST-7 변환을 수행할 수 있다. 이 때, CU, PU 및 TU가 모두 동일한 크기와 형태를 가질 경우, 하나의 블록에 대해서 DST-7 변환을 수행할 수 있다.
인터 예측된 PU 블록의 잔여 신호 분포 특징을 고려하면, CU의 크기와 PU 분할 모드에 상관없이 셔플링 이후 DST-7 변환을 수행하는 것이 DCT-2 변환을 수행하는 것보다 더 효율적일 수 있다.
변환 이후, 저주파수 성분(특히, DC 성분) 근처에 변환 계수들이 더욱 많이 분포하면, i) 양자화 이후 에너지 손실의 최소화 및 ii) 엔트로피 코딩 과정에서의 비트 사용량 절감이라는 관점에서 잔여 신호 분포가 그렇지 않은 경우에 비해 높은 압축 효율을 보인다.
도 15는 2Nx2N 예측 유닛(PU)의 잔여 신호 분포에 따라 DCT-2 변환과 SDST 변환을 수행한 결과를 설명하기 위한 도면이다.
도 15의 좌측에 도시된 도면은 CU의 PU 분할 모드가 2Nx2N일 때 잔여 신호가 중앙에서 경계로 갈수록 증가하는 분포를 나타낸다. 또한, 도 15의 중간에 도시된 도면은 PU 내 깊이 1의 TU에 대하여 DCT-2 변환을 수행한 잔여 신호의 분포를 보여주고, 도 15의 우측에 도시된 도면은 PU 내 깊이 1의 TU에 대하여 셔플링 수행 후 DST-7 변환(SDST)을 수행한 잔여 신호 분포를 보여준다.
도 15를 참조하면, 위에서 언급한 잔여 신호 분포 특성을 갖는 PU의 TU에 대해 DCT-2를 수행하였을때 보다 SDST를 수행하였을때, 좀 더 많은 계수들이 저주파수 성분 근처에 밀집하고, 고주파 성분 쪽의 계수들은 더 작은 값을 갖는 것을 알 수 있다. 상기 변환 특성에 따르면, 인터 예측된 PU의 잔여 신호를 변환할 때, DCT-2 대신 SDST를 수행하는 것이 압축 효율 측면에서 유리하다는 것을 알 수 있다.
DST-7 변환이 수행되는 블록의 단위는 PU에서 정의된 TU 단위로 SDST를 수행하며, 도 14를 참조하여 설명한 바와 같이, TU는 PU 단위로부터 최대 깊이까지 쿼드트리 분할 혹은 이진트리 분할될 수 있다. 이는 DST-7 변환이 정사각형 블록뿐만 아니라, 직사각형 블록에 대하여도 셔플링 후 수행될 수 있음을 의미한다.
예컨대, 화면간 예측된 블록에 대해, 블록과 동일 크기의 잔여 블록이 복호화될 수도 있고, 블록의 일부에 해당하는 서브 잔여 블록이 복호화될 수도 있다. 이를 위한 정보가 블록에 대해 시그널링 될 수 있고, 상기 정보는 예컨대, 플래그일 수 있다. 블록과 동일 크기의 잔여 블록이 복호화되는 경우, 변환 커널에 대한 정보는 비트스트림에 포함된 정보를 복호화함으로써 결정될 수 있다. 블록의 일부에 해당하는 서브 잔여 블록이 복호화되는 경우, 서브 잔여 블록의 타입 및/또는 블록내 위치를 특정하는 정보에 기초하여 해당 서브 잔여 블록에 대한 변환 커널이 결정될 수 있다. 예컨대, 상기 서브 잔여 블록의 타입 및/또는 블록내 위치에 관한 정보는 비트스트림에 포함되어 시그널링될 수 있다. 이 때, 상기 블록이 32x32 보다 큰 경우, 서브 잔여 블록의 타입 및/또는 블록내 위치에 기초한 변환 커널의 결정은 수행되지 않을 수 있다. 예컨대, 32x32보다 큰 블록에 대해서는 소정의 변환 커널(예컨대, DCT-2)이 적용되거나, 또는 변환 커널에 대한 정보가 명시적으로 시그널링될 수 있다. 또는 상기 블록의 너비 또는 높이가 32보다 큰 경우, 서브 잔여 블록의 타입 및/또는 블록내 위치에 기초한 변환 커널의 결정은 수행되지 않을 수 있다. 예컨대, 64x8 블록에 대해서는 소정의 변환 커널(예컨대, DCT-2)이 적용되거나, 또는 변환 커널에 대한 정보가 명시적으로 시그널링될 수 있다.
상기 서브 잔여 블록의 타입에 관한 정보는 해당 블록의 분할 정보일 수 있다. 상기 블록의 분할 정보는, 예컨대, 수평 분할 또는 수직 분할 중 하나를 지시하는 분할 방향 정보일 수 있다. 또는 상기 블록의 분할 정보는 분할 비율 정보를 포함할 수 있다. 예컨대, 분할 비율은 1:1, 1:3 및/또는 3:1을 포함할 수 있다. 상기 분할 방향 정보와 분할 비율 정보는 별개의 구문 요소로 시그널링될 수도 있고, 하나의 구문 요소로 시그널링될 수도 있다.
상기 서브 잔여 블록의 위치에 관한 정보는, 블록 내에서의 위치를 지시할 수 있다. 예컨대, 블록의 분할이 수직 분할인 경우, 상기 위치에 관한 정보는 좌측 및 우측 중 하나를 지시할 수 있다. 또한, 블록의 분할이 수평 분할인 경우, 상기 위치에 관한 정보는 상단 및 하단 중 하나를 지시할 수 있다.
상기 서브 잔여 블록의 변환 커널은 상기 타입 정보 및/또는 위치 정보에 기초하여 결정될 수 있다. 상기 변환 커널은 수평 변환 및 수직 변환에 대해 독립적으로 결정될 수 있다. 예컨대, 상기 변환 커널은 상기 분할 방향에 기초하여 결정될 수 있다. 예컨대, 수직 분할인 경우는 수직 변환에 대해, 수평 분할인 경우는 수평 변환에 대해 제1 변환 커널을 적용할 수 있다. 예컨대, 수직 분할인 경우의 수평 변환 및 수평 분할인 경우의 수직 변환에 대해서는 제1 변환 커널 또는 제2 변환 커널을 적용할 수 있다. 예컨대, 수직 분할인 경우 좌측 위치의 수평 변환에 대해서는 제2 변환 커널, 우측 위치의 수평 변환에 대해서는 제1 변환 커널을 적용할 수 있다. 또한, 수평 분할인 경우 상측 위치의 수직 변환에 대해서는 제2 변환 커널, 하측 위치의 수직 변환에 대해서는 제1 변환 커널을 적용할 수 있다. 예컨대, 상기 제1 변환 커널 및 제2 변환 커널은 각각 DST-7 및 DCT-8일 수 있다. 예컨대, 상기 제1 변환 커널 및 제2 변환 커널은 각각 DST-7 및 DCT-2일 수 있다. 그러나, 이에 한정되지 않으며, 본 명세서에서 언급된 다양한 변환 커널들 중 서로 다른 임의의 2개의 변환 커널들이 각각 제1 및 제2 변환 커널로서 사용될 수도 있다. 여기서, 상기 블록은 CU 혹은 TU를 의미할 수 있다. 또한, 상기 서브 잔여 블록은 Sub-TU를 의미할 수 있다.
도 16은 본 발명에 따른 SDST 과정을 도시한 도면이다.
변환의 대상인 TU의 잔여 신호가 입력된다(S2110). 이 때, TU는 예측 모드가 인터 모드인 PU 내 분할된 TU일 수 있다. 변환 대상인 TU에 대해 셔플링이 수행될 수 있다(S2120). 그리고, 셔플링된 TU에 대하여 DST-7 변환을 수행하고(S2130), 양자화(quantization, S2140) 및 일련의 이후 과정을 수행하는 순서로 SDST 과정이 진행될 수 있다.
한편, 예측 모드가 인트라 모드인 블록에 대해서도 셔플링 및 DST-7 변환이 수행될 수 있다.
이하에서는, 부호화기에서 SDST 변환을 구현하는 일 실시예로, i) 인터 예측된 PU 내 모든 TU에 대해 SDST를 수행하는 방법 및 ii) 율-왜곡 최적화(Rate-Distortion Optimization)를 통해 SDST 또는 DCT-2를 선택적으로 수행하는 방법에 대하여 설명하도록 한다. 이하의 방법에서는 인터 예측된 블록에 대해서 설명하고 있지만, 이에 한정되는 것은 아니며 인트라 예측된 블록에도 하기의 방법이 적용될 수 있다.
도 17은 본 발명에 따른 화면간 예측된 코딩 유닛(CU)의 예측 유닛(PU) 분할 모드(partition mode) 별로 변환 유닛(TU)의 분할 및 잔여 절대값의 크기의 분포 특성을 설명하기 위한 도면이다.
도 17을 참조하면, 인터 예측 모드에서 TU는 CU로부터 최대 뎁스까지 쿼드트리 분할 혹은 이진트리 분할될 수 있고, PU의 분할 모드(partition mode)는 총 K가지 경우가 존재할 수 있다. 여기서, K는 양의 정수이며, 예컨대, 도 17에서 K는 8이다.
본 발명에 따른 SDST는 도 10을 참조하여 설명한 바와 같이 인터 예측된 CU 내 PU에서의 잔여 신호 분포 특성을 이용한다. 또한, TU는 PU로부터 쿼드트리 구조 혹은 이진트리 구조로 분할될 수 있다. 즉, 깊이가 0인 TU는 PU에 대응될 수 있고, 깊이가 1인 TU는 PU를 쿼드트리 구조 혹은 이진트리 구조로 한번 분할하여 획득한 서브블록의 각각에 대응될 수 있다.
도 17의 각 블록은 인터 예측된 CU의 PU 분할 모드의 각각에 대해 TU가 깊이 2까지 분할되는 형태를 보여준다. 여기서, 굵은 실선은 PU을 나타내며, 얇은 실선은 TU를 나타내고, 각 TU의 화살표 방향은 해당 TU 내 잔여 신호 값이 커지는 방향을 나타낼 수 있다. 각 TU는 PU 내 위치에 따라 상기 셔플링 단계에 관한 설명에서 언급된 셔플링을 수행할 수 있다.
특히 깊이 0의 TU의 경우, 상기 셔플링 단계에 관하여 제시된 방법 이외에도 다양한 방법으로 셔플링을 수행할 수 있다.
그 중 하나는 PU 블록의 가운데 위치의 잔여 신호부터 스캐닝하기 시작하여 블록의 경계 방향으로 원을 그리며 주위의 잔여 신호를 스캐닝하고, 스캐닝한 잔여 신호를 다시 PU의 (0,0) 위치부터 지그재그(zig-zag) 스캐닝 순으로 재배치하는 방법이다.
도 18은 본 발명의 일 실시예에 따라 예측 유닛(PU) 내 깊이(depth) 0인 변환 유닛(TU)의 잔여 신호 스캐닝(scanning) 순서와 재배치 순서를 설명하기 위한 도면이다.
도 18의 (a)와 (b)는 셔플링을 위한 스캐닝 순서를 도시하고, 도 18의 (c)는 SDST를 위한 재배열 순서를 도시한다.
셔플링된 각 TU 내 잔여 신호에 대해 DST-7 변환이 수행되고, 양자화 및 엔트로피 부호화 등이 수행될 수 있다. 이와 같은 셔플링 방법은 PU 분할 모드에 따른 TU 내 잔여 신호 분포 특성을 이용한 것으로, 다음 단계인 DST-7 변환의 효율 증대를 위해 잔여 신호 분포를 최적화할 수 있다.
인코더에서 인터 예측된 PU 내 모든 TU에 대해 상술한 도 16의 SDST 과정에 따라 SDST가 수행될 수 있다. 인터 예측된 CU의 PU 분할 모드에 따라 도 17에 도시된 바와 같은 형태로 PU로부터 최대 깊이 2까지 TU 분할이 수행될 수 있다. 도 17의 TU 내 잔여 신호 분포 특성을 이용하여 각 TU 내 잔여 신호에 대해 셔플링이 수행될 수 있다. 이 후, DST-7 변환 커널을 이용한 변환이 수행된 후 양자화 및 엔트로피 부호화 등이 수행될 수 있다.
디코더는 인터 예측된 PU 내 TU의 잔여 신호 복원 수행 시, 인터 예측된 PU 내 각 TU에 대하여 DST-7 역변환을 수행하고, 복원된 잔여 신호를 역 셔플링(inverse shuffling)하여 복원된 잔여 신호를 얻을 수 있다. 이러한 SDST 방법은 인터 예측된 PU 내 모든 TU의 변환 방법에 SDST를 적용하기 때문에 추가적으로 디코더에 시그널링해야 하는 플래그(flag) 또는 정보가 없다는 장점이 있다. 즉, SDST 방법에 대한 별도의 시그널링 없이 상기 SDST 방법이 수행될 수 있다.
한편, 인터 예측된 PU 내 모든 TU에 대해 SDST가 수행되는 경우라도 셔플링 단계에 관하여 상기에서 설명한 잔여 신호의 재배열 방법 중 일부를 최적의 재배열 방법으로 부호화기에서 결정하고, 결정된 재배열 방법에 대한 정보를 복호화기로 시그널링할 수 있다.
SDST를 수행하는 다른 실시예로서, 해당 PU의 변환을 위해 둘 이상의 변환 방법(예컨대, DCT-2와 SDST) 중 적어도 하나를 선택하여 적용할 수 있다. 이 방법에 따르면, 인터 예측된 PU 내 모든 TU에 대해 SDST를 수행하는 실시예에 비해 부호화기에서의 연산량은 증가할 수 있다. 그러나, DCT-2와 SDST 중 더 효율적인 변환 방법을 선택하기 때문에 압축 효율이 향상될 수 있다.
도 19는 본 발명에 따른 율-왜곡 최적화(RDO)를 통한 DCT-2 또는 SDST 선택 인코딩 과정을 나타내는 순서도이다.
도 19를 참조하면, 변환 대상인 TU의 잔여 신호가 입력될 수 있다(S2410). 인터 모드로 예측되는 PU 내 각 TU에 DCT-2를 수행(S2420)하여 얻어진 TU의 비용(cost)과 셔플링(S2430) 및 DST-7을 수행(S2440)하여 얻어진 TU의 비용을 비교함으로써 율-왜곡 관점에서 해당 TU의 최적의 변환 모드(예컨대, DST-2 혹은 SDST)를 결정할 수 있다(S2450). 그리고, 결정된 변환 모드에 따라 변환된 TU에 양자화(S2460) 및 엔트로피 부호화 등이 수행될 수 있다.
한편, TU는 아래 조건들 중 어느 하나를 만족하는 경우에만 SDST 및 DCT-2 중 최적의 변환 모드를 선택할 수 있다.
i) TU는 PU 분할 모드와 상관없이 CU이거나 또는 CU를 쿼드트리 분할 또는 이진트리 분할한 것이어야 한다.
ii) TU는 PU 분할 모드에 따라 PU이거나 또는 PU를 쿼드트리 분할 또는 이진트리 분할한 것이어야 한다.
iii) TU는 PU 분할 모드와 상관없이 CU로부터 분할되지 않는다.
조건 i)은 PU 분할 모드에 상관없이 CU를 쿼드트리 분할 또는 이진트리 분할하거나 또는 CU 크기로 분할하여 획득된 TU에 대하여 율-왜곡 최적화 관점에서 DCT-2 혹은 SDST를 변환 모드로 선택하는 방법이다.
조건 ii)는 인터 예측된 PU 내 모든 TU에 대해 SDST를 수행하는 실시예와 관련된 것이다. 즉, PU 분할 모드에 따라 PU를 쿼드트리 분할 또는 이진트리 분할하거나 또는 PU 크기로 분할하여 획득된 TU에 DCT-2 및 SDST를 수행하고, 각각의 비용을 고려하여 TU의 변환 모드를 결정한다.
조건 iii)은 PU 분할 모드에 관계없이, TU와 동일한 크기를 가지는 CU 단위에서 CU 혹은 TU를 분할하지 않고, DCT-2 및 SDST를 수행하여 TU의 변환 모드를 결정한다.
특정 PU 분할 모드의 깊이 0 TU 블록에 대한 율-왜곡 비용(RD cost)을 비교할 때, 깊이 0 TU에 대해 SDST를 수행한 결과에 대한 비용과, 깊이 0 TU에 대해 DCT-2를 수행한 결과에 대한 비용의 비교를 통해, 깊이 0 TU의 변환 모드를 선택할 수 있다.
도 20은 본 발명에 따른 DCT-2 또는 SDST를 선택하여 디코딩하는 과정을 나타내는 순서도이다.
도 20을 참조하면, 시그널링된 SDST flag를 TU마다 참조할 수 있다(S2510). 여기서, SDST flag는 변환 모드로 SDST를 사용하는지 여부를 지시하는 플래그일 수 있다.
SDST flag가 true인 경우(S2520 - Yes), TU의 변환 모드는 SDST 모드로 결정되고, TU 내 잔여 신호에 DST-7 역 변환을 수행하고(S2530), DST-7 역 변환이 수행된 TU 내 잔여 신호에 대해 PU 내 TU의 위치에 따라 상술한 수학식 6을 이용한 역 셔플링을 수행하여(S2540), 최종적으로 복원된 잔여 신호를 획득할 수 있다(S2560).
한편, SDST flag가 true가 아닌 경우(S2520 - No), TU의 변환 모드는 DCT-2 모드로 결정되고, TU 내 잔여 신호에 DCT-2 역 변환을 수행하여(S2550), 복원된 잔여 신호를 획득할 수 있다(S2560).
SDST 방법이 사용되는 경우, 잔여 데이터가 재배열될 수 있다. 여기서, 잔여 데이터는 인터 예측된 PU에 대응되는 잔여 데이터를 의미할 수 있다. 분리 속성(separable property)을 사용하여 DST-7로부터 유도된 정수 변환을 SDST의 방법으로 사용할 수 있다.
한편, DCT-2 또는 DST-7의 선택적 이용을 위해 sdst_flag가 시그널링(signaling)될 수 있다. sdst_flag는 TU 단위로 시그널링될 수 있다. sdst_flag는 SDST 수행 여부를 식별하기 위해 요구됨을 나타낼 수 있다.
도 21은 본 발명에 따른 SDST를 이용한 디코딩 과정을 나타내는 순서도이다.
도 21을 참조하면, sdst_flag는 TU 단위로 엔트로피 복호화될 수 있다(S2610).
우선, TU의 뎁스가 0인 경우(S2620 - Yes), SDST는 사용되지 않고, DCT-2가 사용되어 TU를 복원할 수 있다(S2670 및 S2680). 이는 SDST는 TU의 뎁스가 1에서 최대 TU 뎁스값 사이에서 수행될 수 있기 때문이다.
또한, TU의 뎁스가 0이 아니라도(S2620 - No) TU의 변환 모드가 변환 스킵 모드인 경우 및/또는 TU의 부호화 블록 플래그(cbf,coded block flag) 값이 0인 경우(S2630 - Yes), 역변환을 수행하지 않고 TU를 복원할 수 있다(S2680).
한편, TU의 뎁스가 0이 아니고(S2620 - No), TU의 변환 모드가 변환 스킵 모드가 아닌 경우 및 TU의 cbf 값이 0이 아닌 경우(S2630 - No), sdst_flag 값을 확인할 수 있다(S2640).
여기서, sdst_flag의 값이 1인 경우(S2640 - Yes), DST-7 기반의 역변환이 수행되고(S2650), TU의 잔여 데이터에 대한 역 셔플링을 수행하여(S2660), TU를 복원할 수 있다(S2680). 반면, sdst_flag의 값이 0인 경우(S2640 - No), DCT-2 기반의 역변환을 수행하여(S2670), TU를 복원할 수 있다(S2680).
여기서, 셔플링 혹은 재배열의 대상이 되는 신호는 역변환 전 잔여 신호, 역양자화 전 잔여 신호, 역변환 이후 잔여 신호, 역양자화 이후 잔여 신호, 복원된 잔여 신호, 복원된 블록 신호 중 적어도 하나 이상일 수 있다.
한편, 도 21에서는 sdst_flag를 TU 단위로 시그널링한다고 설명하였으나, sdst_flag는 TU의 변환 모드 또는 TU의 cbf 값 중 적어도 하나에 기초하여 선택적으로 시그널링될 수 있다. 예를 들어, TU의 변환 모드가 변환 스킵 모드인 경우 및/또는 TU의 cbf 값이 0인 경우, sdst_flag는 시그널링되지 않을 수 있다. 또한, TU의 뎁스가 0인 경우에도 sdst_flag는 시그널링되지 않을 수 있다.
한편, sdst_flag를 TU 단위로 시그널링한다고 설명하였으나, 소정의 단위로 시그널링 될 수 있다. 예컨대, 비디오, 시퀀스, 픽처, 슬라이스, 타일, 부호화 트리 유닛, 부호화 유닛, 예측 유닛, 변환 유닛 중 적어도 하나 이상의 단위로 sdst_flag를 시그널링할 수 있다.
도 20의 SDST flag, 도 21의 sdst_flag의 실시예처럼 선택된 변환 모드 정보는 TU 단위에서 n-비트 플래그 혹은 인덱스(n은 1이상의 양의 정수)를 통해 엔트로피 부호화/복호화될 수 있다. 변환 모드 정보는 TU가 DCT-2를 통해 변환을 수행하였는지, SDST를 통해 변환을 수행하였는지, DST-7을 통해 변환을 수행하였는지 등 적어도 하나 이상을 지시할 수 있다.
인터 예측된 PU 내 TU일 경우에만 해당 변환 모드 정보를 바이패스 모드(bypass mode)로 엔트로피 부호화/복호화할 수 있다. 또한 변환 생략 모드(transform skip mode)이거나 RDPCM(Residual Differential PCM) 모드 및 무손실 모드(lossless mode) 중 적어도 하나인 경우에도 변환 모드 정보의 엔트로피 부호화/복호화는 생략되고, 시그널링되지 않을 수 있다.
또한, 블록의 부호화 블록 플래그(coded block flag)가 0인 경우에도 변환 모드 정보의 엔트로피 부호화/복호화는 생략되고, 시그널링되지 않을 수 있다. 부호화 블록 플래그가 0인 경우 디코더에서 역변환 과정이 생략되므로 변환 모드 정보가 디코더에서 존재하지 않아도 해당 블록의 복원이 가능하다.
다만, 변환 모드 정보는 플래그를 통해서 변환 모드를 나타내는 것으로 한정되지 아니하며, 기-정의된 테이블과 인덱스의 형태로 구현될 수도 있다. 여기서, 기-정의된 테이블은 인덱스 별로 이용 가능한 변환 모드가 정의된 것일 수 있다.
한편, 도 19 내지 도 21에서 SDST 또는 DCT-2를 선택적으로 이용하는 것으로 설명하였지만 이에 한정되지 않고, DCT-2 대신 DCT-n 또는 DST-n (n은 양의 정수)이 적용될 수도 있다.
또한, DCT-2 혹은 SDST의 변환은 가로 방향과 세로 방향으로 분리되어 수행될 수 있다. 가로 방향과 세로 방향에 대해서 서로 동일한 변환 모드가 이용될 수도 있고, 서로 상이한 변환 모드가 이용될 수도 있다.
또한, 가로 방향과 세로 방향 각각에 대해 DCT-2를 사용했는지, SDST를 사용했는지, DST-7를 사용했는지에 대한 변환 모드 정보를 각각 엔트로피 부호화/복호화할 수 있다. 상기 변환 모드 정보는 예컨대, 인덱스로서 시그널링될 수 있으며, 동일 인덱스가 지시하는 변환 커널은 화면내 예측된 블록 및 화면간 예측된 블록에 대해 동일할 수 있다.
또한, 변환 모드 정보는 CU, PU, TU, 블록 단위 중 적어도 하나 이상의 단위에서 엔트로피 부호화/복호화될 수 있다.
또한, 변환 모드 정보는 휘도 성분 혹은 색차 성분에 따라 시그널링될 수 있다. 다시 말하여, 변환 모드 정보는 Y 성분 혹은 Cb 성분 혹은 Cr 성분에 따라 시그널링될 수 있다. 예를 들어, Y 성분에 대해서 DCT-2를 수행했는지, SDST를 수행했는지에 대한 변환 모드 정보가 시그널링되는 경우, Cb 성분 및 Cr 성분 중 적어도 하나 이상에서 별도의 변환 모드 정보 시그널링 없이 Y 성분에서 시그널링되는 변환 모드 정보를 해당 블록의 변환 모드로 이용할 수 있다.
여기서, 변환 모드 정보는 문맥 모델(context model)을 이용하는 산술 부호화 방법으로 엔트로피 부호화/복호화될 수 있다. 만약, 변환 모드 정보가 기-정의된 테이블과 인덱스의 형태로 구현될 경우, 여러 개의 빈(bin)들 중 전부 혹은 일부 빈들에 대해서만 문맥 모델을 이용하는 산술 부호화 방법으로 엔트로피 부호화/복호화될 수 있다.
또한, 변환 모드 정보는 블록 크기에 따라 선택적으로 엔트로피 부호화/복호화될 수 있다. 예를 들어, 현재 블록의 크기가 64x64 이상일 경우 변환 모드 정보는 엔트로피 부호화/복호화되지 않고, 32x32 이하일 경우에 변환 모드 정보는 엔트로피 부호화/복호화될 수 있다.
또한, 현재 블록 내에 0이 아닌 변환 계수 혹은 양자화된 레벨이 L개 존재할 경우, 변환 모드 정보를 엔트로피 부호화/복호화하지 않고, DCT-2 혹은 DST-7 혹은 SDST 방법 중 한가지 방법을 수행할 수 있다. 이때, 상기 0이 아닌 변환 계수 혹은 양자화된 레벨의 블록 내의 위치에 상관없이 변환 모드 정보를 엔트로피 부호화/복호화하지 않을 수 있다. 또한, 상기 0이 아닌 변환 계수 혹은 양자화된 레벨이 블록 내 좌상단 위치에 존재할 경우에만 변환 모드 정보를 엔트로피 부호화/복호화하지 않을 수 있다. 여기서, L은 0을 포함한 양의 정수일 수 있고, 예를 들어 1일 수 있다.
또한, 현재 블록 내에 0이 아닌 변환 계수 혹은 양자화된 레벨이 J개 이상 존재할 경우, 변환 모드 정보를 엔트로피 부호화/복호화할 수 있다. 이때, J는 양의 정수이다.
또한, 변환 모드 정보는 콜 블록(Collocated Block)의 변환 모드에 따라 일부 변환 모드의 사용이 제한되거나, 콜 블록의 변환 모드를 보다 적은 비트로 표현하는 방식으로 변환 정보의 이진화(Binarization) 방법이 달라질 수 있다.
상술한 SDST는 현재 블록의 예측 모드, 화면내 예측 모드, 화면간 예측 모드, TU 뎁스(깊이), 크기 및 형태 중 적어도 하나에 기초하여 제한적으로 이용될 수도 있다.
예를 들어, SDST는 현재 블록이 인터 모드로 부호화된 경우에 이용될 수 있다.
SDST가 허용되는 최소/최대 뎁스가 정의될 수 있다. 이 경우, 현재 블록의 뎁스가 최소 뎁스와 같거나 큰 경우에 SDST가 이용될 수 있고, 또는 현재 블록의 뎁스가 최대 뎁스와 같거나 작은 경우에 SDST가 이용될 수도 있다. 여기서, 최소/최대 뎁스는 고정된 값일 수도 있고, 최소/최대 뎁스를 나타내는 정보에 기초하여 가변적으로 결정될 수도 있다. 최소/최대 뎁스를 나타내는 정보는 인코더로부터 시그널링될 수도 있고, 현재/주변 블록의 속성(예컨대, 크기, 뎁스 및/또는 형태)에 기초하여 디코더에서 유도될 수도 있다.
SDST가 허용되는 최소/최대 크기가 정의될 수도 있다. 마찬가지로, 현재 블록의 크기가 최소 크기와 같거나 큰 경우에 SDST가 이용될 수 있고, 또는 현재 블록의 크기가 최대 크기와 같거나 작은 경우에 SDST가 이용될 수도 있다. 여기서, 최소/최대 크기는 고정된 값일 수도 있고, 최소/최대 크기를 나타내는 정보에 기초하여 가변적으로 결정될 수도 있다. 최소/최대 크기를 나타내는 정보는 인코더로부터 시그널링될 수도 있고, 현재/주변 블록의 속성(예컨대, 크기, 뎁스 및/또는 형태)에 기초하여 디코더에서 유도될 수도 있다. 예를 들어, 현재 블록이 4x4인 경우 DCT-2를 변환 방법으로 사용하고, DCT-2를 사용했는지 SDST를 사용했는지에 대한 변환 모드 정보를 엔트로피 부호화/복호화하지 않을 수 있다.
SDST가 허용되는 블록의 형태가 정의될 수도 있다. 이 경우, 현재 블록의 형태가 정의된 블록의 형태인 경우에 SDST가 이용될 수 있다. 또는 SDST가 허용되지 않는 블록의 형태가 정의될 수 있다. 이 경우, 현재 블록의 형태가 정의된 블록의 형태인 경우에 SDST가 이용되지 않을 수 있다. SDST가 허용되는 또는 허용되지 않는 블록의 형태는 고정된 것일 수도 있고, 이에 관한 정보가 인코더로부터 시그널링 될 수도 있다. 또는 현재/주변 블록의 속성(예컨대, 크기, 뎁스 및/또는 형태)에 기초하여 디코더에서 유도될 수도 있다. SDST가 허용되는 또는 허용되지 않는 블록의 형태는 예컨대, MxN 블록에 있어서, M, N 및/또는 M과 N의 비율을 의미할 수 있다.
또한, TU의 깊이가 0인 경우에는 변환 방법으로 DCT-2 혹은 DST-7을 사용하고, 어떤 변환 방법을 사용했는지에 대한 변환 모드 정보를 엔트로피 부호화/복호화할 수 있다. 만약, DST-7을 변환 방법으로 사용할 경우, 잔여 신호의 재배열 과정을 수행할 수 있다. 또한, TU의 깊이가 1이상인 경우에는 변환 방법으로 DCT-2 혹은 SDST를 사용하고, 어떤 변환 방법을 사용했는지에 대한 변환 모드 정보를 엔트로피 부호화/복호화할 수 있다.
또한, CU 및 PU의 분할 형태 혹은 현재 블록의 형태에 따라 변환 방법을 선택적으로 사용할 수 있다.
일 실시예에 따르면, CU 및 PU의 분할 형태 혹은 현재 블록의 형태가 2Nx2N인 경우 DCT-2를 사용하고, 나머지 분할 및 블록 형태에 대해서는 DCT-2 또는 SDST를 선택적으로 사용할 수 있다.
그리고, CU 및 PU의 분할 형태 혹은 현재 블록의 형태가 2NxN 혹은 Nx2N인 경우 DCT-2를 사용하고, 나머지 분할 형태 및 블록 형태에 대해서는 DCT-2 또는 SDST를 선택적으로 사용할 수 있다.
그리고, CU 및 PU의 분할 형태 혹은 현재 블록의 형태가 nRx2N 혹은 nLx2N 혹은 2NxnU 혹은 2NxnD인 경우 DCT-2를 사용하고, 나머지 분할 형태 및 블록 형태에 대해서는 DCT-2 또는 SDST를 선택적으로 사용할 수 있다.
한편, 현재 블록에서 분할된 블록 단위로 SDST 혹은 DST-7가 수행될 때, 분할된 블록 단위로 변환 계수(양자화된 레벨)에 대한 스캐닝 및 역스캐닝이 수행될 수 있다. 또한, 현재 블록에서 분할된 블록 단위로 SDST 혹은 DST-7가 수행될 때, 분할되지 않은 현재 블록 단위로 변환 계수(양자화된 레벨)에 대한 스캐닝 및 역스캐닝이 수행될 수 있다.
또한, 상기 SDST 혹은 DST-7을 이용한 변환/역변환은 현재 블록의 화면내 예측 모드(방향), 현재 블록의 크기, 현재 블록의 성분(휘도 성분인지 색차 성분인지) 중 적어도 하나 이상에 따라 수행될 수 있다.
그리고, 상기 SDST 혹은 DST-7을 이용한 변환/역변환 시에 DST-7 대신 DST-1을 이용할 수 있다. 또한, 상기 SDST 혹은 DST-7을 이용한 변환/역변환 시에 DST-7 대신 DCT-4를 이용할 수 있다.
또한, 상기 DCT-2를 이용한 변환/역변환 시에 SDST 혹은 DST-7의 잔여 신호의 재배열에서 이용한 재배열 방법을 적용할 수 있다. 즉, DCT-2를 이용할 경우에도 잔여 신호의 재배열 혹은 소정의 각도를 이용한 잔여 신호의 회전을 수행할 수 있다.
이하에서, 셔플링 방법 및 시그널링 방법에 관한 다양한 변형례 및 실시예를 설명한다.
본 발명의 SDST는 변환, 셔플링, 재배열 및/또는 플리핑 방법의 변경을 통한 영상 압축 효율 향상을 목적으로 한다. 잔여 신호의 셔플링을 통한 DST-7 수행은 PU 내 잔여 신호 분포 특성을 효과적으로 반영하기 때문에 높은 압축 효율을 보일 수 있다.
셔플링 단계에 관한 상기 설명에서 잔여 신호 재배열 방법에 대해 알아보았다. 아래에서는 상술한 잔여 신호 재배열을 위한 셔플링 방법 외에 다른 구현 방법에 대해 알아보도록 한다.
아래에서 설명하는 재배열 방법은 상술한 SDST 방법에 관한 실시예 중 적어도 하나 이상에 적용될 수 있다.
잔여 신호 재배열을 구현하는데 있어서 하드웨어 복잡도를 최소화하기 위하여 가로 플리핑(flipping)과 세로 플리핑 방법으로 잔여 신호 재배열 과정을 구현할 수 있다. 잔여 신호 재배열 방법은 다음의 (1) 내지 (4)와 같이 플리핑을 통해 구현될 수 있다. 후술되는 재배열은 플리핑을 의미할 수 있다.
(1) r'(x,y)=r(x,y) ; 플리핑 수행 안함 (no flipping)
(2) r'(x,y)=r(w-1-x,y) ; 가로 방향 플리핑 (horizontal flipping)
(3) r'(x,y)=r(x,h-1-y) ; 세로 방향 플리핑 (vertical flipping)
(4) r'(x,y)=r(w-1-x,h-1-y) ; 가로 방향 및 세로 방향 플리핑 (horizontal and vertical flipping)
r'(x,y)는 재배열 후 잔여 신호이며, r(x,y)는 재배열 이전 잔여 신호이다. w와 h는 각각 블록의 너비와 높이를 의미하며, x, y는 블록 내 잔여 신호의 위치를 나타낸다. 플리핑을 사용하는 재배열 방법의 역 재배열 방법은 재배열 방법과 동일한 과정으로 수행될 수 있다. 즉, 가로 방향 플리핑을 사용하여 재배열된 잔여 신호는 다시 한번 가로 방향 플리핑을 수행함으로써 원래의 잔여 신호 배열로 복원될 수 있다. 부호화기에서 수행하는 재배열 방법과 복호화기에서 수행하는 역 재배열 방법은 서로 동일한 플리핑 방법일 수 있다.
예를 들어, 가로 방향 플리핑을 수행한 잔여 블록에 가로 방향 플리핑을 수행하면, 플리핑 수행 전 잔여 블록을 얻을 수 있으며 이를 수식으로 표현하면 다음과 같다.
r'(w-1-x, y) = r(w-1-(w-1-x), y) = r(x,y).
예를 들어, 세로 방향 플리핑을 수행한 잔여 블록에 세로 방향 플리핑을 수행하면, 플리핑 수행 전 잔여 블록을 얻을 수 있으며 이를 수식으로 표현하면 다음과 같다.
r'(x, h-1-y)=r(x,h-1-(h-1-y)) = r(x,y).
예를 들어, 가로 방향 및 세로 방향 플리핑을 수행한 잔여 블록에 가로 방향 및 세로 방향 플리핑을 수행하면, 플리핑 수행 전 잔여 블록을 얻을 수 있으며 이를 수식으로 표현하면 다음과 같다.
r'(w-1-x, h-1-y) = r(w-1-(w-1-x), h-1-(h-1-y)) = r(x,y).
상기 플리핑 기반 잔여 신호 셔플링/재배열 방법은 현재 블록을 분할하지 않은 채로 사용할 수 있다. 즉, 상기 SDST 방법에서는 현재 블록(TU 등)을 서브블록(sub-block)으로 분할하고 서브블록 별로 DST-7을 사용하는 것을 설명하였지만, 플리핑 기반 잔여 신호 셔플링/재배열 방법을 사용할 경우에는 현재 블록을 서브블록으로 분할하지 않고 현재 블록 전체 혹은 일부에 대해서 플리핑을 수행한 후 DST-7 변환을 수행할 수 있다. 또한, 플리핑 기반 잔여 신호 셔플링/재배열 방법을 사용할 경우에는 현재 블록을 서브블록으로 분할하지 않고 DST-7 역변환을 수행한 후 현재 블록 전체 혹은 일부에 대해서 플리핑을 수행할 수 있다.
플리핑 기반 잔여 신호 셔플링/재배열을 수행할 수 있는 블록의 최대 크기(MxN) 및/또는 최소 크기(OxP)가 정의될 수 있다. 여기서, 크기에는 가로 크기인 너비(M 혹은 O)와 세로 크기인 높이(N 혹은 P) 중 적어도 하나 이상이 포함될 수 있다. 상기, M, N, O, P는 양의 정수일 수 있다. 상기 블록의 최대 크기 및/또는 블록의 최소 크기는 부호화기/복호화기에서 기정의된 값일 수도 있고, 부호화기에서 복호화기로 시그널링되는 정보일 수도 있다.
예를 들어, 현재 블록의 크기가 플리핑 방법을 수행할 수 있는 최소 크기보다 작다면, 플리핑 및 DST-7 변환을 수행하지 않고 DCT-2 변환만을 수행할 수 있다. 이 때, 변환 모드로 플리핑 및 DST-7을 사용하는지 여부를 지시하는 변환 모드 정보인 SDST flag는 시그널링되지 않을 수 있다.
예를 들어, 블록의 너비만 플리핑 방법을 수행할 수 있는 최소 너비 보다 작고 블록의 높이는 플리핑 방법을 수행할 수 있는 최소 높이보다 큰 경우, 가로 방향 1차원 변환은 DCT-2 만으로 수행할 수 있으며, 세로 방향 1차원 변환은 세로 방향 플리핑 후 DST-7을 이용하여 1차원 세로 변환을 수행하거나, 플리핑 없이 DST-7을 이용하여 1차원 세로 변환을 수행할 수 있다. 이 때, 변환 모드로 플리핑을 사용하는지 여부를 지시하는 변환 모드 정보인 SDST flag는 세로 방향 1차원 변환에 대해서만 시그널링될 수 있다.
예를 들어, 블록의 높이만 플리핑 방법을 수행할 수 있는 최소 너비 보다 작고, 블록의 너비는 플리핑 방법을 수행할 수 있는 최소 너비보다 큰 경우, 가로 방향 1차원 변환은 가로 방향 플리핑 후 DST-7을 이용하여 1차원 가로 변환을 수행하거나, 플리핑 없이 DST-7을 이용하여 1차원 가로 변환을 수행할 수 있으며, 세로 방향 1차원 변환은 DCT-2 만으로 수행할 수 있다. 이 때, 변환 모드로 플리핑을 사용하는지 여부를 지시하는 변환 모드 정보인 SDST flag는 가로 방향 1차원 변환에 대해서만 시그널링될 수 있다.
예를 들어, 현재 블록의 크기가 플리핑 방법을 수행할 수 있는 최대 크기보다 크다면, 플리핑 및 DST-7 변환을 사용하지 않고 DCT-2 변환만을 사용할 수 있다. 이 때, 변환 모드로 플리핑 및 DST-7 변환을 사용하는지 여부를 지시하는 변환 모드 정보인 SDST flag는 시그널링되지 않을 수 있다.
예를 들어, 현재 블록의 크기가 플리핑 방법을 수행할 수 있는 최대 크기보다 크다면, DCT-2 변환 혹은 DST-7 변환만을 사용할 수 있다.
예를 들어, 플리핑 방법을 수행할 수 있는 최대 크기가 32x32이고, 최소 크기가 4x4라면, 64x64 크기의 블록에는 플리핑 및 DST-7 변환이 사용되지 않고, DCT-2 변환만 사용될 수 있다. 이 때, 64x64 크기의 블록에 대해서는 변환 모드로 플리핑 및 DST-7을 사용하는지 여부를 지시하는 변환 모드 정보인 SDST flag는 시그널링되지 않을 수 있다. 또한, 4x4 크기의 블록 내지 32x32 크기의 블록에서는 변환 모드로 플리핑 및 DST-7을 사용하는지 여부를 지시하는 변환 모드 정보인 SDST flag를 시그널링할 수 있다. 이러한 경우, 64x64 크기의 블록에 대해서는 DST-7 변환을 사용하지 않으므로, 64x64 크기의 블록에 사용되는 DST-7 변환을 저장할 메모리 공간을 절약할 수 있다.
예를 들어, 플리핑 방법을 수행할 수 있는 최대 크기가 32x32이고, 최소 크기가 4x4라면, 64x64 크기의 블록에는 플리핑 방법만 사용되지 않고, DCT-2 혹은 DST-7 변환이 사용될 수 있다.
예를 들어, MxN 크기의 정사각형 블록을 4개의 블록으로 쿼드트리 분할하여, 각각의 서브블록에 대해 플리핑을 이용하여 셔플링/재배열 방법을 수행한 후 DST-7 변환을 수행할 수 있다. 이 때, 각각의 서브블록들에 대해 플리핑 방법을 명시적으로 시그널링할 수 있다. 플리핑 방법은 2비트의 고정 길이(fixed length) 코드로 시그널링될 수 있으며, 절삭된 단항(truncated unary) 코드로 시그널링될 수 있다. 또한, 각각의 분할된 블록에 따라 플리핑 방법의 발생 확률에 근거한 이진화 방법을 사용할 수도 있다. 여기서, M과 N은 양의 정수일 수 있고, 예를 들어 64x64일 수 있다.
예를 들어, MxN 크기의 정사각형 블록을 4개의 블록으로 쿼드트리 분할하여, 각각의 서브블록에 대해 플리핑을 이용하여 셔플링/재배열 방법을 수행한 후 DST-7 변환을 수행할 수 있다. 각각의 서브블록들에 대한 플리핑 방법은 암묵적으로 결정될 수도 있다. 예컨대, 첫번째 (좌측 상단) 서브블록에 대해서는 가로 방향 및 세로 방향 플리핑이 결정될 수 있고, 두번째 (우측 상단) 서브블록에 대해서는 세로 방향 플리핑이 결정될 수 있으며, 세번째 (좌측 하단) 서브블록에 대해서는 가로 방향 플리핑이 결정될 수 있고, 네번째 (우측 하단) 서브블록에 대해서는 플리핑 수행 안함으로 결정될 수 있다. 이와 같이 플리핑 방법을 암묵적으로 결정할 경우 플리핑 방법에 대한 시그널링은 필요하지 않다. 여기서, M과 N은 양의 정수일 수 있고, 예를 들어 64x64일 수 있다.
예를 들어, 2MxN 크기의 직사각형 블록을 2개의 MxN 정사각형 블록으로 이진트리 분할하여, 각각의 분할된 블록에 대해 플리핑을 이용하여 셔플링/재배열 방법을 수행한 후 DST-7 변환을 수행할 수 있다. 이때, 각각의 서브블록들에 대해 플리핑 방법을 명시적으로 시그널링할 수 있다. 플리핑 방법은 2비트의 고정 길이(fixed length) 코드로 시그널링될 수 있으며, 절삭된 단항(truncated unary) 코드로 시그널링될 수 있다. 또한, 각각의 서브블록에 따라 플리핑 방법의 발생 확률에 근거한 이진화 방법을 사용할 수도 있다. 여기서, M과 N은 양의 정수일 수 있고, 예를 들어 8x8일 수 있다.
예를 들어, 2MxN 크기의 직사각형 블록을 2개의 MxN 정사각형 블록으로 이진트리 분할하여, 각각의 서브블록에 대해 플리핑을 이용하여 셔플링/재배열 방법을 수행한 후 DST-7 변환을 수행할 수 있다. 각각의 서브블록들에 대한 플리핑 방법은 암묵적으로 결정될 수도 있다. 첫번째 (좌측) 서브블록에 대해서는 가로 방향 플리핑이 결정될 수 있고, 두번째 (우측) 서브블록에 대해서는 플리핑 수행 안함으로 결정될 수 있다. 이와 같이 플리핑 방법을 암묵적으로 결정할 경우 플리핑 방법에 대한 시그널링은 필요하지 않다. 여기서, M과 N은 양의 정수일 수 있고, 예를 들어 4x4일 수 있다.
예를 들어, Mx2N 크기의 직사각형 블록을 2개의 MxN 정사각형 블록으로 이진트리 분할하여, 각각의 서브블록에 대해 플리핑을 이용하여 셔플링/재배열 방법을 수행한 후 DST-7 변환을 수행할 수 있다. 각각의 서브블록들에 대한 플리핑 방법은 암묵적으로 결정될 수도 있다. 첫번째 (상단) 서브블록에 대해서는 세로 방향 플리핑이 결정될 수 있고, 두번째 (하단) 서브블록에 대해서는 플리핑 수행 안함으로 결정될 수 있다. 이와 같이 플리핑 방법을 암묵적으로 결정할 경우 플리핑 방법에 대한 시그널링은 필요하지 않다. 여기서, M과 N은 양의 정수일 수 있고, 예를 들어 4x4일 수 있다.
MxN 크기의 블록에 대하여 DCT-2 변환/역변환을 수행하는 방법과 해당 블록을 쿼드트리 또는 이진트리로 분할하여 서브블록을 생성한 후 각각의 서브블록에 대해 플리핑 후 DST-7 변환/역변환을 수행하는 방법의 2가지 방법 중 적어도 하나를 적용할 수 있다. 이 때 각각의 서브블록의 부모블록인 블록에서의 상대적 위치에 따라 플리핑 방법을 다르게 수행할 수 있으며 이를 암묵적으로 결정할 수 있다. 여기서, M, N은 양의 정수이며, 예를 들어 M과 N은 64일 수 있다. 즉, 상기 MxN 크기의 블록은 상대적으로 블록의 크기가 큰 블록일 수 있다.
- 좌측 상단 서브블록인 경우 해당 서브블록에 대한 플리핑은 가로 방향 및 세로 방향 플리핑으로 결정될 수 있다.
- 우측 상단 서브블록인 경우 해당 서브블록에 대한 플리핑은 세로 플리핑으로 결정될 수 있다.
- 좌측 하단 서브블록인 경우 해당 서브블록에 대한 플리핑은 가로 플리핑으로 결정될 수 있다.
- 우측 하단 서브블록인 경우 해당 서브블록에 대한 플리핑은 수행하지 않는 것으로 결정될 수 있다.
변환 모드 정보를 이용하여 플리핑 기반 잔여 신호 셔플링/재배열 방법 사용 정보(sdst_flag 혹은 sdst flag)를 엔트로피 부호화/복호화할 수 있다. 즉, 변환 모드 정보에 대한 시그널링을 통해서 부호화기에서 수행한 방법과 동일한 방법을 복호화기에서 수행할 수 있다. 예를 들어, 변환 모드 정보를 지시하는 플래그 비트가 제1 값을 가질 경우 플리핑 기반 잔여 신호 셔플링/재배열 방법과 DST-7을 변환/역변환 방법으로 사용할 수 있고, 상기 플래그 비트가 제2 값을 가질 경우, 다른 변환/역변환 방법을 사용할 수 있다. 이 때, 변환 모드 정보는 블록 별로 엔트로피 부호화/복호화될 수 있다. 여기서, 다른 변환/역변환 방법은 DCT-2 변환/역변환 방법일 수 있다. 또한, 변환 생략 모드(transform skip mode)이거나 RDPCM(Residual Differential PCM) 모드 및 무손실 모드 중 어느 하나인 경우에 상기 변환 모드 정보의 엔트로피 부호화/복호화는 생략되고, 시그널링되지 않을 수 있다.
상기 변환 모드 정보는 현재 블록의 깊이, 현재 블록의 크기, 현재 블록의 형태, 주변 블록의 변환 모드 정보, 현재 블록의 부호화 블록 플래그 및 현재 블록의 변환 생략 모드 사용 여부 중 적어도 하나 이상을 이용해서 엔트로피 부호화/복호화될 수 있다. 예를 들어, 현재 블록의 부호화 블록 플래그가 0인 경우 변환 모드 정보의 엔트로피 부호화/복호화는 생략되고, 시그널링되지 않을 수 있다. 또한, 상기 변환 모드 정보는 엔트로피 부호화/복호화 시 현재 블록의 주변에 복원된 블록의 변환 모드 정보로부터 예측 부호화/복호화될 수 있다. 또한, 상기 변환 모드 정보는 현재 블록 및 주변 블록의 부호화 파라미터 중 적어도 하나에 기반하여 시그널링될 수 있다.
또한, 플리핑 방법 정보를 이용하여 상기 4가지 플리핑 방법들 (플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑) 중 적어도 하나는 플래그 혹은 인덱스(flipping_idx) 형태로 엔트로피 부호화/복호화될 수 있다. 즉, 플리핑 방법 정보를 시그널링함으로써 부호화기에서 수행한 플리핑 방법과 동일한 플리핑 방법을 복호화기에서 수행할 수 있다. 상기 변환 모드 정보는 플리핑 방법 정보를 포함할 수 있다.
또한, 변환 생략 모드(transform skip mode)이거나 RDPCM(Residual Differential PCM) 모드, 무손실 모드 중 어느 하나인 경우에 플리핑 방법 정보의 엔트로피 부호화/복호화는 생략되고, 시그널링되지 않을 수 있다. 상기 플리핑 방법 정보는 현재 블록의 깊이, 현재 블록의 크기, 현재 블록의 형태, 주변 블록의 플리핑 방법 정보, 현재 블록의 부호화 블록 플래그, 현재 블록의 변환 생략 모드 사용 여부 중 적어도 하나 이상을 이용해서 엔트로피 부호화/복호화될 수 있다. 예를 들어, 현재 블록의 부호화 블록 플래그가 0인 경우 플리핑 방법 정보의 엔트로피 부호화/복호화는 생략되고, 시그널링되지 않을 수 있다. 또한, 상기 플리핑 방법 정보는 엔트로피 부호화/복호화 시 현재 블록의 주변에 복원된 블록의 플리핑 방법 정보로부터 예측 부호화/복호화될 수 있다. 또한, 상기 플리핑 방법 정보는 현재 블록 및 주변 블록의 부호화 파라미터 중 적어도 하나에 기반하여 시그널링될 수 있다.
또한, 잔여 신호 재배열 방법은 이전에 상술한 잔여 신호 재배열에 한정되지 아니하며, 블록 내 잔여 신호를 소정의 각도로 회전하여 셔플링을 구현할 수도 있다. 여기서의 소정의 각도는 0도, 90도, 180도, -90도, -180도, 270도, -270도, 45도, -45도, 135도, -135도 등을 의미할 수 있다. 이 때, 각도에 대한 정보는 플래그 형태 혹은 인덱스 형태로 엔트로피 부호화/복호화될 수 있고, 상기 변환 모드 정보에 대한 시그널링 방법과 유사하게 수행될 수 있다.
또한, 상기 각도 정보는 엔트로피 부호화/복호화 시 현재 블록의 주변에 복원된 블록의 각도 정보로부터 예측 부호화/복호화될 수 있다. 각도 정보를 이용하여 재배열할 경우 현재 블록에 대해 분할 후 SDST 혹은 DST-7을 수행할 수도 있지만, 현재 블록에 대한 분할 없이 현재 블록 단위로 SDST 혹은 DST-7을 수행할 수도 있다.
소정의 각도는 서브블록의 위치에 따라 상이하게 결정될 수 있다. 서브블록들 중 특정 위치(예를 들어, 첫번째 서브블록)의 서브블록에 대해서만 회전을 통해 재배열하는 방식을 제한적으로 이용할 수도 있다. 또한, 소정의 각도를 이용한 재배열은 현재 블록 전체에 대해 적용될 수 있다. 이 때, 재배열의 대상이 되는 현재 블록은 역변환 전 잔여 블록, 역양자화 전 잔여 블록, 역변환 이후 잔여 블록, 역양자화 이후 잔여 블록, 복원된 잔여 블록, 복원된 블록 중 적어도 하나일 수 있다.
한편, 잔여 신호 재배열 또는 회전과 동일한 효과가 나타나도록 변환을 위한 변환 행렬의 계수를 재배열하거나 회전하고, 이를 기-배열된 잔여 신호에 적용하여 변환을 수행할 수도 있다. 즉, 잔여 신호 재배열 대신 변환 행렬에 대한 재배열을 이용해서 변환을 수행하여, 잔여 신호 재배열과 변환을 수행하는 방법과 동일한 효과를 얻을 수 있다. 이 때, 변환 행렬의 계수의 재배열은 상술한 잔여 신호 재배열 방법들과 동일한 방법으로 수행될 수 있으며, 이에 필요한 정보들의 시그널링 방법도 상술한 잔여 신호 재배열 방법에 필요한 정보들의 시그널링 방법과 동일하게 수행될 수 있다.
한편, 셔플링 단계에 관한 상기 설명에서 언급된 잔여 신호 재배열 방법 중 일부를 최적의 재배열 방법으로 부호화기에서 결정하고, 결정된 재배열 방법에 대한 정보(플리핑 방법 정보)를 복호화기로 시그널링할 수 있다. 일 예로, 4가지 재배열 방법을 사용한다면 부호화기는 잔여 신호 재배열 방법에 대한 정보를 2비트만큼 복호화기로 시그널링할 수 있다.
또한, 사용하는 재배열 방법들 각각의 발생확률이 서로 다른 경우 발생확률이 높은 재배열 방법은 적은 비트를 사용하여 부호화하고 발생확률이 낮은 재배열 방법은 상대적으로 많은 비트를 사용하여 부호화할 수 있다. 일 예로, 4가지 재배열 방법을 발생확률이 높은 순서로 하여 절삭된 단항 코드(예컨대, (0, 10, 110, 111) 혹은 (1, 01, 001, 000))로 시그널링할 수 있다.
그리고, 현재 CU의 예측 모드, PU의 화면내 예측 모드(방향), 주변 블록의 움직임 벡터 등 부호화 파라미터에 따라서 재배열 방법의 발생확률이 변할 수 있기 때문에, 부호화 파라미터에 따라 재배열 방법에 대한 정보(플리핑 방법 정보)의 부호화 방법을 다르게 사용할 수 있다. 일 예로, 화면내 예측의 예측 모드에 따라서 재배열 방법의 발생확률이 다를 수 있기 때문에 각각의 인트라 모드에 대해 발생확률이 높은 재배열 방법에 적은 비트를 할당하고 발생확률이 낮은 재배열 방법에 높은 비트를 할당하거나, 경우에 따라 발생확률이 매우 적은 재배열 방법은 사용하지 않고 비트도 할당하지 않을 수 있다.
현재 블록의 예측 모드(인터 모드 혹은 인트라 모드), 화면내 예측 모드(방향성 모드 및 비방향성 모드 포함), 화면간 예측 모드, 블록 크기, 블록 형태(정방형 혹은 비정방형), 휘도/색차 신호 여부, 변환 모드 정보 등 중 적어도 하나에 따라 잔여 신호 재배열 방법들 중 적어도 하나가 포함된 재배열 세트를 구성할 수 있다. 상기 재배열은 플리핑을 의미할 수 있다. 또한, 현재 블록 및 주변 블록의 부호화 파라미터 중 적어도 하나에 기반하여 잔여 신호 재배열 방법들 중 적어도 하나가 포함된 재배열 세트를 구성될 수 있다.
또한, 현재 블록의 예측 모드, 화면내 예측 모드, 화면간 예측 모드, 블록 크기, 블록 형태, 휘도/색차 신호 여부, 변환 모드 정보 등 중 적어도 하나에 따라 아래와 같은 재배열 세트들 중 적어도 하나가 선택될 수 있다. 또한, 현재 블록 및 주변 블록의 부호화 파라미터 중 적어도 하나에 기반하여 재배열 세트들 중 적어도 하나가 선택될 수 있다.
재배열 세트는 '플리핑 수행 안함 (no flipping)', '가로 방향 플리핑 (horizontal flipping)', '세로 방향 플리핑 (vertical flipping)' 및 '가로 방향 및 세로 방향 플리핑 (horizontal and vertical flipping)' 중 적어도 하나를 포함할 수 있다. 아래에서는 재배열 세트의 예시들을 나타낸다.
1. 플리핑 수행 안함
2. 가로 방향 플리핑
3. 세로 방향 플리핑
4. 가로 방향 및 세로 방향 플리핑
5. 플리핑 수행 안함, 가로 방향 플리핑
6. 플리핑 수행 안함, 세로 방향 플리핑
7. 플리핑 수행 안함, 가로 방향 및 세로 방향 플리핑
8. 가로 방향 플리핑, 세로 방향 플리핑
9. 가로 방향 플리핑, 가로 방향 및 세로 방향 플리핑
10. 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑
11. 플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑
12. 플리핑 수행 안함, 가로 방향 플리핑, 가로 방향 및 세로 방향 플리핑
13. 플리핑 수행 안함, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑
14. 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑
15. 플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑
상기 재배열 세트를 기반으로 잔여 신호 재배열 방법들 중 적어도 하나가 현재 블록의 재배열에 사용될 수 있다.
또한, 현재 블록의 예측 모드, 화면내 예측 모드, 화면간 예측 모드, 블록 크기, 블록 형태, 휘도/색차 신호 여부, 변환 모드 정보, 플리핑 방법 정보 등 중 적어도 하나에 따라 재배열 세트에서 잔여 신호 재배열 방법들 중 적어도 하나가 선택될 수 있다. 또한, 현재 블록 및 주변 블록의 부호화 파라미터 중 적어도 하나에 기반하여 재배열 세트에서 잔여 신호 재배열 방법들 중 적어도 하나가 선택될 수 있다.
현재 블록의 예측 모드에 따라 적어도 하나의 재배열 세트가 구성될 수 있다. 예를 들어, 현재 블록의 예측 모드가 화면내 예측인 경우 다수의 재배열 세트가 구성될 수 있고, 현재 블록의 예측 모드가 화면간 예측인 경우 1개의 재배열 세트가 구성될 수 있다.
현재 블록의 화면내 예측 모드에 따라 적어도 하나의 재배열 세트가 구성될 수 있다. 예를 들어, 현재 블록의 화면내 예측 모드가 비방향성 모드인 경우 1개의 재배열 세트가 구성될 수 있고, 현재 블록의 화면내 예측 모드가 방향성 모드인 경우 다수의 재배열 세트가 구성될 수 있다.
현재 블록의 크기에 따라 적어도 하나의 재배열 세트가 구성될 수 있다. 예를 들어, 현재 블록의 크기가 16x16보다 큰 경우 1개의 재배열 세트가 구성될 수 있고, 현재 블록의 크기가 16x16보다 작거나 같은 경우 다수의 재배열 세트가 구성될 수 있다.
현재 블록의 형태에 따라 적어도 하나의 재배열 세트가 구성될 수 있다. 예를 들어, 현재 블록이 정방형 형태인 경우 1개의 재배열 세트가 구성될 수 있고, 현재 블록이 비정방형 형태인 경우 다수의 재배열 세트가 구성될 수 있다.
현재 블록의 휘도/색차 신호 여부에 따라 적어도 하나의 재배열 세트가 구성될 수 있다. 예를 들어, 현재 블록이 색차 신호인 경우 1개의 재배열 세트가 구성될 수 있고, 현재 블록이 휘도 신호인 경우 다수의 재배열 세트가 구성될 수 있다.
또한, 상기 재배열 세트를 기반으로 잔여 신호 재배열 방법에 대한 인덱스가 엔트로피 부호화/복호화될 수 있다. 이 때, 상기 인덱스를 가변 길이 코드 혹은 고정 길이 코드로 엔트로피 부호화/복호화할 수 있다.
또한, 상기 재배열 세트를 기반으로 잔여 신호 재배열 방법에 대한 인덱스의 이진화 및 역이진화(debinarization)가 수행될 수 있다. 이 때, 상기 인덱스를 가변 길이 코드 혹은 고정 길이 코드로 이진화 및 역이진화할 수 있다.
또한, 상기 재배열 세트는 부호화기와 복호화기에서 테이블 형태로 가질 수 있으며, 식을 통해서 계산될 수 있다.
또한, 상기 재배열 세트는 대칭성(symmetric)을 가지도록 구성될 수 있다. 예를 들어, 상기 재배열 세트에 대한 테이블이 대칭성을 가지도록 구성될 수 있다. 이 때, 화면내 예측 모드에 대해 대칭성을 가지도록 테이블이 구성될 수 있다.
또한, 상기 재배열 세트는 화면내 예측 모드가 특정 범위에 포함되는지 여부 및 화면내 예측 모드가 짝수인지 홀수인지 여부 중 적어도 하나에 따라 구성될 수 있다.
아래의 표들에서는 현재 블록의 예측 모드 및 화면내 예측 모드(방향)에 따라 잔여 신호 재배열 방법을 부호화/복호화하는 방법에 대한 예시를 보인다.
또한, 아래의 표들에서 잔여 신호 재배열 방법 중 적어도 하나에 대한 사용을 플리핑 방법 정보를 이용하여 지시할 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 수평 방향 혹은 수평 방향에 가까운 모드 | 0 | - | 1 | - |
화면내 | 수직 방향 혹은 수직 방향에 가까운 모드 | 0 | 1 | - | - |
화면내 | 45도 대각선 방향 혹은 45도 대각선 방향에 가까운 모드 | * | - | - | - |
화면내 | 짝수 | 0 | 10 | 11 | - |
화면내 | 홀수 | 0 | - | 10 | 11 |
화면내 | 나머지 경우(otherwise) | 0 | 110 | 10 | 111 |
화면간 | N/A | 00 | 01 | 10 | 11 |
표 1의 잔여 신호 재배열 방법 열의 (1) 내지 (4)는 이전에 설명한 잔여 신호 재배열을 위한 스캐닝/재배열 순서에 대한 인덱스, 소정의 각도 값에 대한 인덱스 혹은 소정의 플리핑 방법에 대한 인덱스 등 잔여 신호 재배열 방법을 특정할 수 있다. 표 1의 잔여 신호 재배열 방법 열의 * 표시는 시그널링 없이 암묵적으로 해당 재배열 방법을 사용한다는 의미이며, - 표시는 해당 경우에는 해당 재배열 방법을 사용하지 않는다는 의미이다. 상기 암묵적으로 해당 재배열 방법을 사용한다는 의미는 잔여 신호 재배열 방법에 대한 인덱스의 엔트로피 부호화/복호화 없이 변환 모드 정보(sdst_flag 혹은 sdst flag)를 이용해서 해당 재배열 방법이 사용되는 것을 의미할 수 있다.상기 잔여 신호 재배열 방법 (1) 내지 (4)는 (1) 플리핑 수행 안함 (no flipping), (2) 가로 방향 플리핑 (horizontal flipping), (3) 세로 방향 플리핑 (vertical flipping) 및 (4) 가로 방향 및 세로 방향 플리핑 (horizontal and vertical flipping)을 각각 의미할 수 있다. 또한, 상기 0, 1, 10, 11, 110, 111 등은 상기 잔여 신호 재배열 방법을 엔트로피 부호화/복호화하기 위해 사용되는 이진화/역이진화의 결과일 수 있다. 상기 이진화/역이진화 방법으로 고정 길이 코드 혹은 절삭된 단항 코드 혹은 단항 코드 등이 사용될 수 있다.
상기 표 1과 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다. 여기서, 45도 대각선 방향은 현재 블록에서 좌상단 위치를 향하는 방향 혹은 현재 블록의 좌상단 위치에서 현재 블록을 향하는 방향을 의미할 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 수평 방향 혹은 수평 방향에 가까운 모드 | 0 | - | 1 | - |
화면내 | 수직 방향 혹은 수직 방향에 가까운 모드 | 0 | 1 | - | - |
화면내 | 45도 대각선 방향 혹은 45도 대각선 방향에 가까운 모드 | * | - | - | - |
화면내 | 나머지 경우(otherwise) | 00 | 01 | 10 | 11 |
화면간 | N/A | 00 | 01 | 10 | 11 |
또 다른 예로, 상기 표 2와 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 수평 방향 혹은 수평 방향에 가까운 모드 | 0 | - | 1 | - |
화면내 | 수직 방향 혹은 수직 방향에 가까운 모드 | 0 | 1 | - | - |
화면내 | 45도 대각선 방향 혹은 45도 대각선 방향에 가까운 모드 | * | - | - | - |
화면내 | 나머지 경우(otherwise) | 0 | 110 | 10 | 111 |
화면간 | N/A | 0 | 110 | 10 | 111 |
또 다른 예로, 상기 표 3과 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 짝수 | 0 | 10 | 11 | - |
화면내 | 홀수 | 0 | - | 10 | 11 |
화면간 | N/A | 00 | 01 | 10 | 11 |
또 다른 예로, 상기 표 4와 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다. 예를 들어, 현재 블록이 인트라 모드이며 화면내 예측 방향이 짝수일 경우, 잔여 신호 재배열 방법으로 플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑 방법 중 적어도 하나를 사용할 수 있다. 또한, 현재 블록이 인트라 모드이며 화면내 예측 방향이 홀수일 경우, 잔여 신호 재배열 방법으로 플리핑 수행 안함, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑 방법 중 적어도 하나를 사용할 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 짝수 | 0 | 10 | 11 | - |
화면내 | 홀수 | 0 | - | 10 | 11 |
화면내 | 비방향성 모드 (DC 모드 혹은 Planar 모드) | 0 | 110 | 10 | 111 |
화면간 | N/A | 00 | 01 | 10 | 11 |
또 다른 예로, 상기 표 5와 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 비방향성 모드가 아닌 짝수 모드 | 0 | 10 | 11 | - |
화면내 | 비방향성 모드가 아닌 홀수 모드 | 0 | - | 10 | 11 |
화면내 | 비방향성 모드 (DC 모드 혹은 Planar 모드) | 00 | 01 | 10 | 11 |
화면간 | N/A | 00 | 01 | 10 | 11 |
또 다른 예로, 상기 표 6과 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 수평 방향 혹은 수평 방향에 가까운 모드 | 0 | 11 | 10 | - |
화면내 | 수직 방향 혹은 수직 방향에 가까운 모드 | 0 | 10 | 11 | - |
화면내 | 45도 대각선 방향 혹은 45도 대각선 방향에 가까운 모드 | * | - | - | - |
화면내 | 나머지 경우(otherwise) | 0 | 110 | 10 | 111 |
화면간 | N/A | 0 | 110 | 10 | 111 |
또 다른 예로, 상기 표 7과 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 수평 방향 혹은 수평 방향에 가까운 모드 | 0 | - | 10 | 11 |
화면내 | 수직 방향 혹은 수직 방향에 가까운 모드 | 0 | 10 | - | 11 |
화면내 | 45도 대각선 방향 혹은 45도 대각선 방향에 가까운 모드 | * | - | - | - |
화면내 | 나머지 경우(otherwise) | 0 | 110 | 10 | 111 |
화면간 | N/A | 0 | 110 | 10 | 111 |
또 다른 예로, 상기 표 8과 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다.
예측 모드 | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | |
화면내 | 0 | 110 | 10 | 111 |
화면간 | 00 | 01 | 10 | 11 |
또 다른 예로, 상기 표 9와 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 수평 방향 혹은 수평 방향에 가까운 모드 | 0 | - | 10 | 11 |
화면내 | 수직 방향 혹은 수직 방향에 가까운 모드 | 0 | 10 | - | 11 |
화면내 | 45도 대각선 방향 혹은 45도 대각선 방향에 가까운 모드 | * | - | - | - |
화면내 | 135도 대각선 방향 혹은 135도 대각선 방향에 가까운 모드 | 0 | 10 | 11 | - |
화면내 | -45도 대각선 방향 혹은 -45도 대각선 방향에 가까운 모드 | 0 | 10 | 11 | - |
화면내 | 나머지 경우(otherwise) | 00 | 01 | 10 | 11 |
화면간 | N/A | 0 | 110 | 10 | 111 |
또 다른 예로, 상기 표 10과 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다. 여기서, 135도 대각선 방향은 현재 블록에서 우상단 위치를 향하는 방향 혹은 현재 블록의 우상단 위치에서 현재 블록을 향하는 방향을 의미할 수 있다. 예를 들어, 135도 대각선 방향 모드에 대한 값은 6일 수 있다. 여기서, -45도 대각선 방향은 현재 블록에서 우하단 위치를 향하는 방향 혹은 현재 블록의 우하단 위치에서 현재 블록을 향하는 방향을 의미할 수 있다. 예를 들어, -45도 대각선 방향 모드에 대한 값은 2일 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 수평 방향 혹은 수평 방향에 가까운 모드이며 홀수 모드 | 0 | - | 1 | - |
화면내 | 수평 방향 혹은 수평 방향에 가까운 모드이며 짝수 모드 | 0 | 1 | - | - |
화면내 | 수직 방향 혹은 수직 방향에 가까운 모드이며 홀수 모드 | 0 | 1 | - | - |
화면내 | 수직 방향 혹은 수직 방향에 가까운 모드이며 짝수 모드 | 0 | - | 1 | - |
화면내 | 45도 대각선 방향 혹은 45도 대각선 방향에 가까운 모드이며 홀수 모드 | * | - | - | - |
화면내 | 45도 대각선 방향 혹은 45도 대각선 방향에 가까운 모드이며 짝수 모드 | - | - | - | * |
화면내 | 나머지 경우(otherwise) | 0 | 110 | 10 | 111 |
화면간 | N/A | 0 | 110 | 10 | 111 |
또 다른 예로, 상기 표 11과 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다.
예측 모드 | 화면내 예측 방향(화면내 예측 모드) | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | ||
화면내 | 수평 방향 혹은 수평 방향에 가까운 모드이며 홀수 모드 | 0 | - | 1 | - |
화면내 | 수평 방향 혹은 수평 방향에 가까운 모드이며 짝수 모드 | 0 | - | - | 1 |
화면내 | 수직 방향 혹은 수직 방향에 가까운 모드이며 홀수 모드 | 0 | 1 | - | - |
화면내 | 수직 방향 혹은 수직 방향에 가까운 모드이며 짝수 모드 | 0 | - | - | 1 |
화면내 | 45도 대각선 방향 혹은 45도 대각선 방향에 가까운 모드 | * | - | - | - |
화면내 | 나머지 경우(otherwise) | 0 | 10 | 11 | - |
화면간 | N/A | 0 | 110 | 10 | 111 |
또 다른 예로, 상기 표 12와 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다.
예측 모드 | 잔여 신호 재배열 방법 | |||
(1) | (2) | (3) | (4) | |
화면내 및 화면간 | 0 | 10 | 110 | 1110 |
또 다른 예로, 상기 표 13과 같이, 현재 블록이 각 예측 모드 및 각 화면내 예측 모드(방향) 중 적어도 하나에 해당할 경우, 적어도 하나의 재배열 방법이 인코더 및 디코더에서 사용될 수 있다.여기서, 상기 잔여 신호 재배열 방법은 변환의 종류를 의미할 수 있다. 예를 들어, 잔여 신호 재배열 방법이 (1)인 경우, 가로 변환 및 세로 변환은 모두 제1 변환 커널을 의미할 수 있다. 또 다른 예로, 잔여 신호 재배열 방법이 (2)인 경우, 가로 변환 및 세로 변환은 각각 제2 변환 커널 및 제1 변환 커널을 의미할 수 있다. 또 다른 예로, 잔여 신호 재배열 방법이 (3)인 경우, 가로 변환 및 세로 변환은 각각 제1 변환 커널 및 제2 변환 커널을 의미할 수 있다. 또 다른 예로, 잔여 신호 재배열 방법이 (4)인 경우, 가로 변환 및 세로 변환은 각각 제2 변환 커널 및 제2 변환 커널을 의미할 수 있다. 예컨대, 제1 변환 커널은 DST-7, 제2 변환 커널은 DCT-8일 수 있다.화면내 예측 모드가 Planar 모드 또는 DC 모드인 경우, 발생 빈도에 근거한 절삭된 단항 코드를 이용하여 4가지 재배열 방법에 대한 정보(플리핑 방법 정보)를 엔트로피 부호화/복호화할 수 있다.
화면내 예측 방향이 수평 방향 혹은 수평 방향에 가까운 모드인 경우 재배열 방법 (1) 및/또는 재배열 방법 (3)의 확률이 높을 수 있다. 이러한 경우 상기 두 개의 재배열 방법에 각각 1비트를 사용하여 재배열 방법에 대한 정보를 엔트로피 부호화/복호화할 수 있다. 여기서, 수평 방향에 가까운 모드의 의미는 특정 모드의 값이 수평 방향 모드에 대한 값 - K 내지 수평 방향 모드에 대한 값 + K 사이에 포함되는 것을 의미할 수 있다. 여기서, K는 정수일 수 있다. 예를 들어, 수평 방향 모드에 대한 값이 18이고 K가 4이고 특정 모드가 20인 경우, 특정 모드는 수평 방향에 가까운 모드라고 할 수 있다. 예를 들어, 수평 방향 모드에 대한 값이 18이고 K가 4이고 특정 모드가 26인 경우, 특정 모드는 수평 방향에 가까운 모드라고 할 수 없다.
화면내 예측 방향이 수직 방향 혹은 수직 방향에 가까운 모드인 경우 재배열 방법 (1) 및/또는 재배열 방법 (2)의 확률이 높을 수 있다. 이러한 경우 상기 두 방법에 각각 1비트를 사용하여 재배열 방법에 대한 정보를 엔트로피 부호화/복호화 할 수 있다. 여기서, 수직 방향에 가까운 모드의 의미는 특정 모드의 값이 수직 방향 모드에 대한 값 - K 내지 수직 방향 모드에 대한 값 + K 사이에 포함되는 것을 의미할 수 있다. 여기서, K는 정수일 수 있다. 예를 들어, 수직 방향 모드에 대한 값이 50이고 K가 2이고 특정 모드가 51인 경우, 특정 모드는 수직 방향에 가까운 모드라고 할 수 있다. 예를 들어, 수직 방향 모드에 대한 값이 50이고 K가 8이고 특정 모드가 20인 경우, 특정 모드는 수직 방향에 가까운 모드라고 할 수 없다.
화면내 예측 방향이 45도 대각선 방향 혹은 45도 대각선 방향에 가까운 모드인 경우 재배열 방법 (1)의 확률에 비해 나머지 재배열 방법 (2), (3) 및 (4)의 확률이 매우 낮을 수 있다. 이러한 경우 상기 한가지 방법만 적용하며, 재배열 방법에 대한 정보의 시그널링 없이 암묵적으로 상기 방법을 사용할 수 있다. 여기서, 45도 대각선 방향에 가까운 모드의 의미는 특정 모드의 값이 45도 대각선 방향 모드에 대한 값 - K 내지 45도 대각선 방향 모드에 대한 값 + K 사이에 포함되는 것을 의미할 수 있다. 여기서, K는 정수일 수 있다. 예를 들어, 45도 대각선 방향 모드에 대한 값이 34이고 K가 2이고 특정 모드가 36인 경우, 특정 모드는 45도 대각선 방향에 가까운 모드라고 할 수 있다. 예를 들어, 45도 대각선 방향 모드에 대한 값이 34이고 K가 8이고 특정 모드가 10인 경우, 특정 모드는 45도 대각선 방향에 가까운 모드라고 할 수 없다.
화면내 예측 방향이 짝수인 경우, 재배열 방법 (1), (2) 및 (3)에 대해서만 절삭된 단항 코드 혹은 단항 코드로 재배열 방법에 대한 정보를 엔트로피 부호화/복호화 할 수 있다.
화면내 예측 방향이 홀수인 경우, 재배열 방법 (1), (3) 및 (4)에 대해서만 절삭된 단항 코드 혹은 단항 코드로 재배열 방법에 대한 정보를 엔트로피 부호화/복호화 할 수 있다.
기타 화면내 예측 방향에 대해서는 재배열 방법 (4)의 발생확률이 낮을 수 있으므로 재배열 방법 (1), (2) 및 (3)에 대해서만 절삭된 단항 코드 혹은 단항 코드로 재배열 방법에 대한 정보를 엔트로피 부호화/복호화 할 수 있다.
화면간 예측인 경우 재배열 방법 (1) 내지 (4)의 발생확률을 동등하게 볼 수 있으며, 2비트의 고정 길이 코드로 재배열 방법에 대한 정보를 엔트로피 부호화/복호화할 수 있다.
상기 코드에 대해 산술 부호화/복호화를 사용할 수 있다. 또한, 상기 코드에 대해 문맥 모델을 사용하는 산술 부호화(arithmetic coding)를 사용하지 않고 바이패스(bypass) 모드로 엔트로피 부호화/복호화할 수 있다.
픽처 내의 영역 또는 CTU 또는 픽처 전체 또는 픽처 그룹 내 현재 블록에 대하여 플리핑 없이 DST-7로 변환/역변환하거나 혹은 DCT-2로 변환/역변환하는 2가지 방법 중 하나를 선택하여 변환/역변환을 수행할 수 있다. 이 경우 현재 블록 단위로 DST-7 또는 DCT-2를 사용할지 여부를 나타내는 1비트 플래그 정보(변환 모드 정보)를 엔트로피 부호화/복호화할 수 있다. 이 방법은 잔여 신호의 에너지가 참조 샘플과 거리가 멀수록 큰 경우나, 부호화 및 복호화 시의 계산 복잡도 감소를 위해 사용될 수 있다. 이 방법이 사용되는 영역에 대한 정보는 CTU 단위 또는 슬라이스 단위 또는 PPS 단위, SPS 단위 또는 기타 특정 영역을 나타내는 단위로 시그널링될 수 있으며 on/off 형식으로 1비트 플래그가 시그널링될 수 있다.
픽처 내의 영역 또는 CTU 또는 픽처 전체 또는 픽처 그룹 내 현재 블록에 대하여 DCT-2 변환/역변환, 플리핑 없이 DST-7 변환/역변환 또는 세로 방향 플리핑 수행 후 DST-7 변환/역변환의 3가지 방법 중 하나를 선택하여 변환/역변환을 수행할 수 있다. 3가지의 방법 중 어떠한 방법을 선택할지에 대한 정보는 현재 블록의 주변 정보를 이용하여 암묵적으로 선택될 수 있으며, 인덱스(변환 모드 정보 혹은 플리핑 방법 정보) 시그널링을 통해 명시적으로 선택될 수도 있다. 인덱스 시그널링은 DCT-2는 0, 플리핑 없이 DST-7은 10, 세로 방향 플리핑 후 DST-7은 11과 같이 절삭된 단항 코드로 시그널링될 수 있다. 또한, 현재 블록의 크기 및 주변 정보에 따라 DCT-2와 DST-7의 이진화가 서로 바뀌어 시그널링 될 수 있다. 또한, 상기 이진수들 중 첫번째 이진수는 CU 단위로 시그널링되고 나머지 이진수들은 TU 혹은 PU 단위로 시그널링될 수도 있다. 이 방법이 사용되는 영역에 대한 정보는 CTU 단위 또는 슬라이스 단위 또는 PPS 단위, SPS 단위 또는 기타 특정 영역을 나타내는 단위로 시그널링될 수 있으며 on/off 형식으로 1비트 플래그가 시그널링될 수 있다.
픽처 내의 영역 또는 CTU 또는 픽처 전체 또는 픽처 그룹 내 현재 블록에 대하여 DCT-2 변환/역변환, 플리핑 없이 DST-7 변환/역변환, 가로 방향 플리핑 수행 후 DST-7 변환/역변환 또는 세로 방향 플리핑 수행 후 DST-7 변환/역변환의 4가지 방법 중 하나를 선택하여 변환/역변환을 수행할 수 있다. 4가지의 방법 중 어떠한 방법을 선택할지에 대한 정보는 현재 블록의 주변 정보를 이용하여 암묵적으로 선택될 수 있으며, 인덱스(변환 모드 정보 혹은 플리핑 방법 정보) 시그널링을 통해 명시적으로 선택될 수도 있다. 인덱스 시그널링은 DCT-2는 0, 플리핑 없이 DST-7은 10, 가로 방향 플리핑 후 DST-7은 110, 세로 방향 플리핑 후 DST-7은 111과 같이 절삭된 단항 코드로 시그널링될 수 있다. 또한, 현재 블록의 크기 및 주변 정보에 따라 DCT-2와 DST-7의 이진화가 서로 바뀌어 시그널링될 수 있다. 또한, 상기 이진수들 중 첫번째 이진수는 CU 단위로 시그널링되고 나머지 이진수들은 TU 혹은 PU 단위로 시그널링될 수도 있다. 화면내 예측 모드에 따라 4가지 방법 중 일부만 사용할 수 있다. 예를 들어, 화면내 예측 모드가 대각선 예측 모드보다 값이 작거나 DC 모드이거나 Planar 모드인 경우, DCT-2, 플리핑 없이 DST-7 및 세로 방향 플리핑 후 DST-7의 3가지 방법만이 사용될 수 있다. 이 경우, DCT-2는 0, 플리핑 없이 DST-7은 10, 세로 방향 플리핑 후 DST-7은 11과 같이 변환 모드 정보 혹은 플리핑 방법 정보가 시그널링될 수 있다. 예를 들어, 화면내 예측 모드가 대각선 예측 모드보다 값이 클 경우, DCT-2, 플리핑 없이 DST-7 및 가로 방향 플리핑 후 DST-7의 3가지 방법만이 사용될 수 있다. 이 경우에는 DCT-2는 0, 플리핑 없이 DST-7은 10, 가로 방향 플리핑 후 DST-7은 11과 같이 변환 모드 정보 혹은 플리핑 방법 정보가 시그널링될 수 있다. 이 방법이 사용되는 영역에 대한 정보는 CTU 단위 또는 슬라이스 단위 또는 PPS 단위, SPS 단위 또는 기타 특정 영역을 나타내는 단위에서 시그널링될 수 있으며 on/off 형식으로 1비트 플래그가 시그널링될 수 있다.
픽처 내의 영역 또는 CTU 또는 픽처 전체 또는 픽처 그룹 내 현재 블록에 대하여 DCT-2 변환/역변환, 플리핑 없이 DST-7 변환/역변환, 가로 방향 플리핑 수행 후 DST-7 변환/역변환, 세로 방향 플리핑 수행 후 DST-7 변환/역변환 또는 가로 방향 및 세로 방향 플리핑 수행 후 DST-7 변환/역변환의 5가지 방법 중 하나를 선택하여 변환/역변환을 수행할 수 있으다. 5가지의 방법 중 어떠한 변환을 선택할지에 대한 정보는 현재 블록의 주변 정보를 이용하여 암묵적으로 선택될 수 있으며, 인덱스(변환 모드 정보 혹은 플리핑 방법 정보) 시그널링을 통해 명시적으로 선택될 수도 있다. 인덱스 시그널링은 DCT-2 는 0, 플리핑 없이 DST-7은 10, 가로 방향 플리핑 후 DST-7은 110, 세로 방향 플리핑 후 DST-7은 1110, 가로 방향 및 세로 방향 플리핑 후 DST-7은 1111과 같이 절삭된 단항 코드로 시그널링될 수 있다. 또한, 현재 블록의 크기 및 주변 정보에 따라 DCT-2와 DST-7의 이진화가 서로 바뀌어 시그널링될 수 있다. 또한, 상기 이진수들 중 첫번째 이진수는 CU 단위로 시그널링될 수 있으며 나머지 이진수들은 TU 혹은 PU 단위로 시그널링될 수도 있다. 또한, 상기 이진수들 중 첫번째 이진수와 두번째 및 세번째 이진수를 구분하여 고정 길이 코드로 정보를 시그널링할 수도 있다. 예를 들어, DCT-2는 0, 플리핑 없이 DST-7은 000, 가로 방향 플리핑 후 DST-7은 001, 세로 방향 플리핑 후 DST-7은 010, 가로 방향 및 세로 방향 플리핑 후 DST-7은 011과 같이 변환 모드 정보 혹은 플리핑 방법 정보가 시그널링될 수 있다. 또한, 화면내 예측 모드에 따라 5가지 방법 중 일부만 사용할 수 있다. 예를 들어, 화면내 예측 모드가 가로 방향 예측 모드와 가까운 예측 모드인 경우, DCT-2, 플리핑 없이 DST-7 및 세로 방향 플리핑 후 DST-7의 3가지 변환 방법만 사용할 수 있다. 이 경우, DCT-2는 0, 플리핑 없이 DST-7은 10, 세로 방향 플리핑 후 DST-7은 11과 같이 변환 모드 정보 혹은 플리핑 방법 정보가 시그널링될 수 있다.
예를 들어, 화면내 예측 모드가 세로 방향 예측 모드와 가까운 예측 모드인 경우, DCT-2, 플리핑 없이 DST-7 및 가로 방향 플리핑 후 DST-7의 3가지 변환 방법만 사용할 수 있다. 이 경우에는 DCT-2는 0, 플리핑 없이 DST-7은 10, 가로 방향 플리핑 후 DST-7은 11과 같이 변환 모드 정보 혹은 플리핑 방법 정보가 시그널링될 수 있다.
예를 들어, 화면내 예측 모드가 대각선 방향 예측 모드와 가까운 예측 모드인 경우, DCT-2 및 플리핑 없이 DST-7의 2가지 변환 방법만 사용할 수 있다. 이 경우에는 DCT-2는 0, 플리핑 없이 DST-7은 1과 같이 변환 모드 정보 혹은 플리핑 방법 정보가 시그널링될 수 있다.
예를 들어, 상기 3가지 경우가 전부 아닐 경우에는 DCT-2, 플리핑 없이 DST-7, 가로 방향 플리핑 후 DST-7, 세로 방향 플리핑 후 DST-7, 및 가로 방향 및 세로 방향 플리핑 후 DST-7의 5가지 변환 방법을 모두 사용할 수 있다. 상기 변환 방법에 대한 인덱스는 상기 절삭된 단항 코드 혹은 고정 길이 코드 방식 또는 다른 방식으로 시그널링될 수 있다.
예를 들어, 화면내 예측 모드가 비방향성 모드인 경우, DCT-2, 플리핑 없이 DST-7, 가로 방향 플리핑 후 DST-7, 세로 방향 플리핑 후 DST-7, 및 가로 방향 및 세로 방향 플리핑 후 DST-7의 5가지 변환 방법을 모두 사용할 수 있다. 상기 변환 방법에 대한 인덱스는 상기 절삭된 단항 코드 혹은 고정 길이 코드 방식 또는 다른 방식으로 시그널링될 수 있다.
예를 들어, 화면내 예측 모드가 홀수 모드라면, DCT-2, 플리핑 없이 DST-7, 세로 방향 플리핑 후 DST-7, 및 가로 방향 및 세로 방향 플리핑 후 DST-7의 4가지 변환 방법을 사용할 수 있다. 이 경우 DCT-2는 0, 플리핑 없이 DST-7은 10, 세로 방향 플리핑 후 DST-7은 110, 가로 방향 및 세로 방향 플리핑 후 DST-7은 111과 같이 변환 모드 정보 혹은 플리핑 방법 정보가 시그널링될 수 있다.
예를 들어, 화면내 예측 모드가 짝수 모드라면 DCT-2, 플리핑 없이 DST-7, 가로 방향 플리핑 후 DST-7, 및 세로 방향 플리핑 후 DST-7의 4가지 변환 방법을 사용할 수 있다. 이 경우에는 DCT-2는 0, 플리핑 없이 DST-7은 10, 가로 방향 플리핑 후 DST-7은 110, 세로 방향 플리핑 후 DST-7은 111과 같이 변환 모드 정보 혹은 플리핑 방법 정보가 시그널링될 수 있다. 이 방법이 사용되는 영역에 대한 정보는 CTU 단위 또는 슬라이스 단위 또는 PPS 단위, SPS 단위 또는 기타 특정 영역을 나타내는 단위로 시그널링될 수 있으며 on/off 형식으로 1비트 플래그가 시그널링될 수 있다.
도 22 및 도 23은 각각 본 발명에 따른 인코더 및 디코더에서 잔여 신호 재배열(residual rearrangement)이 수행되는 위치를 나타낸다.
도 22를 참조하면, 인코더에서는 DST-7 변환 과정 수행 전에 잔여 신호 재배열이 수행될 수 있다. 도 22에는 도시하지 않았지만, 인코더에서는 변환 과정과 양자화 과정 사이에 잔여 신호 재배열이 수행되거나, 양자화 과정 수행 후에 잔여 신호 재배열이 수행될 수도 있다.
도 23을 참조하면, 디코더에서는 DST-7 역변환 과정 수행 후에 잔여 신호 재배열이 수행될 수 있다. 도 23에는 도시하지 않았지만, 디코더에서는 역양자화 과정과 역변환 과정 사이에 잔여 신호 재배열이 수행되거나, 역양자화 과정 수행 전에 잔여 신호 재배열이 수행될 수도 있다.
이상에서는 도 7 내지 도 23을 참조하여 본 발명에 따른 SDST 방법에 대해 설명하였다. 이하에서는 도 24 및 도 25를 참조하여 본 발명에 따른 SDST 방법이 적용된 복호화 방법, 부호화 방법, 복호화기, 부호화기 및 비트스트림에 대해 구체적으로 설명하도록 한다.
도 24는 본 발명에 따른 SDST 방법을 이용한 복호화 방법의 일 실시예를 설명하기 위한 도면이다.
도 24를 참조하면, 먼저 현재 블록의 변환 모드를 결정하고(S2910), 현재 블록의 변환 모드에 따라 현재 블록의 잔여 데이터들을 역변환할 수 있다(S2920).
그리고, 현재 블록의 변환 모드에 따라 역변환된 현재 블록의 잔여 데이터들을 재배열할 수 있다(S2930).
여기서, 변환 모드는 SDST(Shuffling Discrete Sine Transform), SDCT(Shuffling Discrete cosine Transform), DST(Discrete Sine Transform) 및 DCT(Discrete Cosine Transform) 중 적어도 하나를 포함할 수 있다.
SDST 모드는 DST-7 변환 모드로 역변환을 수행하고, 역변환된 잔여 데이터들의 재배열을 수행하는 모드를 지시할 수 있다.
SDCT 모드는 DCT-2 변환 모드로 역변환을 수행하고, 역변환된 잔여 데이터들의 재배열을 수행하는 모드를 지시할 수 있다.
DST 모드는 DST-7 변환 모드로 역변환을 수행하고, 역변환된 잔여 데이터들의 재배열은 수행하지 않는 모드를 지시할 수 있다.
DCT 모드는 DCT-2 변환 모드로 역변환을 수행하고, 역변환된 잔여 데이터들의 재배열은 수행하지 않는 모드를 지시할 수 있다.
따라서, 현재 블록의 변환 모드가 SDST 및 SDCT 중 어느 하나인 경우에만, 상기 잔여 데이터들을 재배열하는 단계를 수행할 수 있다.
상술한 SDST 및 DST 모드에 대해 DST-7 변환 모드로 역변환을 수행한다고 설명하였으나, DST-1, DST-2 등 다른 DST 기반의 변환 모드를 이용할 수도 있다.
한편, 현재 블록의 변환 모드를 결정하는 단계(S2910)는 현재 블록의 변환 모드 정보를 비트스트림으로부터 획득하는 단계 및 변환 모드 정보에 기초하여 상기 현재 블록의 변환 모드를 결정하는 단계를 포함할 수 있다.
또한, 현재 블록의 변환 모드를 결정하는 단계(S2910)는 현재 블록의 예측 모드, 상기 현재 블록의 깊이 정보, 상기 현재 블록의 크기 및 상기 현재 블록의 형태 중 적어도 하나에 기초하여 결정할 수 있다.
구체적으로, 현재 블록의 예측 모드가 인터 예측 모드인 경우, 현재 블록의 변환 모드는 SDST 및 SDCT 중 어느 하나로 결정될 수 있다.
한편, 역변환된 현재 블록의 잔여 데이터들을 재배열하는 단계(S2930)는, 역변환된 현재 블록내에 배열된 잔여 데이터들을 제1 방향 순서대로 스캐닝하는 단계 및 제1 방향으로 스캐닝한 잔여 데이터들을 제2 방향 순서대로 상기 역변환된 현재 블록내에 재배열하는 단계를 포함할 수 있다. 여기서, 제1 방향 순서는 래스터 스캔 순서(Raster scan order), 위-오른쪽 대각선 스캔 순서(Up-Right Digonal scan order), 수평 스캔 순서(Horizontal scan order), 및 수직 스캔 순서(Vertical scan order) 중 어느 하나일 수 있다. 또한, 제1 방향 순서는 아래와 같이 정의될 수 있다.
(1) 상단 행(row)에서 하단 행으로 스캔하되, 하나의 행에서는 좌측에서 우측으로 스캔
(2) 상단 행(row)에서 하단 행으로 스캔하되, 하나의 행에서는 우측에서 좌측으로 스캔
(3) 하단 행(row)에서 상단 행으로 스캔하되, 하나의 행에서는 좌측에서 우측으로 스캔
(4) 하단 행(row)에서 상단 행으로 스캔하되, 하나의 행에서는 우측에서 좌측으로 스캔
(5) 좌측 열(column)에서 우측 열로 스캔하되, 하나의 열에서는 상단에서 하단으로 스캔
(6) 좌측 열(column)에서 우측 열로 스캔하되, 하나의 열에서는 하단에서 상단으로 스캔
(7) 우측 열(column)에서 좌측 열로 스캔하되, 하나의 열에서는 상단에서 하단으로 스캔
(8) 우측 열(column)에서 좌측 열로 스캔하되, 하나의 열에서는 하단에서 상단으로 스캔
(9) 나선 형태로 스캔: 블록 내부(또는 외부)에서 블록 외부(또는 내부)로, 시계/반시계 방향으로 스캔
한편, 제2 방향 순서는 상술한 방향 중 어느 하나가 선택적으로 이용될 수 있다. 제1 방향과 제2 방향은 동일할 수도 있고, 서로 상이할 수도 있다.
또한, 역변환된 현재 블록의 잔여 데이터들을 재배열하는 단계(S2930)는, 현재 블록 내 서브 블록 단위로 재배열할 수 있다. 이 경우, 현재 블록 내의 서브 블록의 위치에 기초하여 잔여 데이터들을 재배열할 수 있다. 서브 블록의 위치에 기초하여 잔여 데이터들을 재배열하는 것은 상술한 수학식 6에서 자세히 설명하였는바 중복설명은 피하도록 한다.
또한, 역변환된 현재 블록의 잔여 데이터들을 재배열하는 단계(S2930)는, 역변환된 현재 블록내에 배열된 잔여 데이터들을 기정의된 각도로 회전하여 재배열할 수 있다.
또한, 역변환된 현재 블록의 잔여 데이터들을 재배열하는 단계(S2930)는, 역변환된 현재 블록내에 배열된 잔여 데이터들을 플리핑(flipping) 방법에 따라 플리핑하여 재배열할 수 있다. 이 경우, 현재 블록의 변환 모드를 결정하는 단계(S2910)는 플리핑 방법 정보를 비트스트림으로부터 획득하는 단계 및 플리핑 방법 정보에 기초하여 상기 현재 블록의 플리핑 방법을 결정하는 단계를 포함할 수 있다.
도 25는 본 발명에 따른 SDST 방법을 이용한 부호화 방법의 일 실시예를 설명하기 위한 도면이다.
도 25를 참조하면, 현재 블록의 변환 모드를 결정할 수 있다(S3010).
그리고, 현재 블록의 변환 모드에 따라 현재 블록의 잔여 데이터들을 재배열할 수 있다(S3020).
그리고, 현재 블록의 변환 모드에 따라 재배열된 현재 블록의 잔여 데이터들을 변환할 수 있다(S3030).
여기서, 변환 모드는 SDST(Shuffling Discrete Sine Transform), SDCT(Shuffling Discrete cosine Transform), DST(Discrete Sine Transform) 및 DCT(Discrete Cosine Transform) 중 적어도 하나를 포함할 수 있다. SDST, SDCT, DST 및 DCT 모드에 대한 설명은 도 24에서 하였는 바 중복설명은 피하도록 한다.
한편, 현재 블록의 변환 모드가 SDST 및 SDCT 중 어느 하나인 경우에만, 잔여 데이터를 재배열하는 단계들을 수행할 수 있다.
또한, 현재 블록의 변환 모드를 결정하는 단계(S3010)는, 현재 블록의 예측 모드, 현재 블록의 깊이 정보, 현재 블록의 크기 및 현재 블록의 형태 중 적어도 하나에 기초하여 결정할 수 있다.
여기서, 현재 블록의 예측 모드가 인터 예측 모드인 경우, 현재 블록의 변환 모드는 SDST 및 SDCT 중 어느 하나로 결정될 수 있다.
한편, 현재 블록의 잔여 데이터들을 재배열하는 단계(S3020)는, 현재 블록내에 배열된 잔여 데이터들을 제1 방향 순서에 따라 스캐닝하는 단계 및 제1 방향으로 스캐닝한 잔여 데이터들을 제2 방향 순서에 따라 상기 현재 블록내에 재배열하는 단계를 포함할 수 있디.
또한, 현재 블록의 잔여 데이터들을 재배열하는 단계(S3020)는, 현재 블록 내 서브 블록 단위로 재배열할 수 있다.
이 경우, 현재 블록의 잔여 데이터들을 재배열하는 단계(S3020)는, 현재 블록 내의 서브 블록의 위치에 기초하여 잔여 데이터들을 재배열할 수 있다.
한편, 현재 블록의 잔여 데이터들을 재배열하는 단계(S3020)는, 현재 블록내에 배열된 잔여 데이터들을 기정의된 각도로 회전하여 재배열할 수 있다.
한편, 현재 블록의 잔여 데이터들을 재배열하는 단계(S3020)는, 현재 블록내에 배열된 잔여 데이터들을 플리핑(flipping) 방법에 따라 플리핑하여 재배열할 수 있다.
본 발명에 따른 SDST 방법을 이용한 영상 복호화기는 현재 블록의 변환 모드를 결정하여, 현재 블록의 변환 모드에 따라 상기 현재 블록의 잔여 데이터들을 역변환하고, 현재 블록의 변환 모드에 따라 상기 역변환된 현재 블록의 잔여 데이터들을 재배열하는 역변환부를 포함할 수 있다. 여기서, 변환 모드는 SDST(Shuffling Discrete Sine Transform), SDCT(Shuffling Discrete cosine Transform), DST(Discrete Sine Transform) 및 DCT(Discrete Cosine Transform) 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 SDST 방법을 이용한 영상 복호화기는 현재 블록의 변환 모드를 결정하여, 현재 블록의 변환 모드에 따라 현재 블록의 잔여 데이터들을 재배열하고, 현재 블록의 변환 모드에 따라 상기 재배열된 현재 블록의 잔여 데이터들을 역변환하는 역변환부를 포함할 수 있다. 여기서, 변환 모드는 SDST(Shuffling Discrete Sine Transform), SDCT(Shuffling Discrete cosine Transform), DST(Discrete Sine Transform) 및 DCT(Discrete Cosine Transform) 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 SDST 방법을 이용한 영상 부호화기는 현재 블록의 변환 모드를 결정하여, 현재 블록의 변환 모드에 따라 상기 현재 블록의 잔여 데이터들을 재배열하고, 현재 블록의 변환 모드에 따라 재배열된 현재 블록의 잔여 데이터들을 변환하는 변환부를 포함할 수 있다. 여기서, 변환 모드는 SDST(Shuffling Discrete Sine Transform), SDCT(Shuffling Discrete cosine Transform), DST(Discrete Sine Transform) 및 DCT(Discrete Cosine Transform) 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 SDST 방법을 이용한 영상 부호화기는 현재 블록의 변환 모드를 결정하여, 현재 블록의 변환 모드에 따라 현재 블록의 잔여 데이터들을 변환하고, 현재 블록의 변환 모드에 따라 상기 변환된 현재 블록의 잔여 데이터들을 재배열하는 변환부를 포함할 수 있다. 여기서, 변환 모드는 SDST(Shuffling Discrete Sine Transform), SDCT(Shuffling Discrete cosine Transform), DST(Discrete Sine Transform) 및 DCT(Discrete Cosine Transform) 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 SDST 방법을 이용한 부호화 방법에 의해 생성된 비트스트림은 현재 블록의 변환 모드를 결정하는 단계, 현재 블록의 변환 모드에 따라 현재 블록의 잔여 데이터들을 재배열하는 단계 및 현재 블록의 변환 모드에 따라 재배열된 현재 블록의 잔여 데이터를 변환하는 단계를 포함하고, 변환 모드는 SDST(Shuffling Discrete Sine Transform), SDCT(Shuffling Discrete cosine Transform), DST(Discrete Sine Transform) 및 DCT(Discrete Cosine Transform) 중 적어도 하나를 포함할 수 있다.
도 26 내지 도 31은 본 발명에 따른 인코더 혹은 디코더에서 플리핑 방법이 수행되는 위치에 관한 예들을 나타낸다.
도 26은 플리핑 후 변환을 수행하는 방법의 부호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 27은 역변환 후 플리핑을 수행하는 방법의 복호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 26을 참조하면, 현재 블록에 대한 원본 신호로부터 화면간 혹은 화면내 예측 신호를 감산하여 잔여 신호를 생성한 후, 변환 방법으로 DCT-2 변환 또는 플리핑 및 DST-7 변환 중 하나를 선택할 수 있다. 변환 방법이 DCT-2 변환인 경우, DCT-2 변환을 이용하여 잔여 신호에 대해 변환을 수행하여 변환 계수를 생성할 수 있다. 변환 방법이 플리핑 및 DST-7 변환 방법인 경우, 4가지 플리핑 방법들 (플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑) 중 하나를 선택하여 잔여 신호에 대해 플리핑을 수행한 후 DST-7 변환을 이용하여 플리핑된 잔여 신호에 변환을 수행하여 변환 계수를 생성할 수 있다. 상기 변환 계수에 양자화를 수행하여 양자화된 레벨을 생성할 수 있다.
도 27을 참조하면, 양자화된 레벨을 입력 받아 역양자화를 수행하여 변환 계수를 생성할 수 있다. DCT-2 역변환 또는 DST-7 역변환 및 플리핑 중 부호화 과정에서 선택한 방법에 대응하는 방법을 선택할 수 있다. 즉, 부호화 과정에 DCT-2 변환을 수행한 경우, 복호화 과정에서 DCT-2 역변환을 수행할 수 있다. 또한, 부호화 과정에서 플리핑 및 DST-7 변환 방법을 수행한 경우, 복호화 과정에서 DST-7 역변환 및 플리핑을 수행할 수 있다. 역변환 방법이 DCT-2 역변환인 경우, DCT-2 역변환을 이용하여 변환 계수에 대해 역변환을 수행하여 복원된 잔여 신호를 생성할 수 있다. 역변환 방법이 DST-7 역변환 및 플리핑 방법인 경우, DST-7 역변환을 이용하여 잔여 계수에 대해 역변환을 수행하여 복원된 잔여 신호를 생성한 후 4가지 플리핑 방법들 (플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑) 중 하나를 선택하여 복원된 잔여 신호에 대해 플리핑을 수행하여 플리핑 및 복원된 잔여 신호를 생성할 수 있다. 상기 복원된 잔여 신호 혹은 상기 플리핑 및 복원된 잔여 신호에 화면간 혹은 화면내 예측 신호를 가산하여 복원 신호를 생성할 수 있다.
도 28은 변환 후 플리핑을 수행하는 방법의 부호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 29는 플리핑 후 역변환을 수행하는 방법의 복호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 28을 참조하면, 현재 블록에 대한 원본 신호로부터 화면간 혹은 화면내 예측 신호를 감산하여 잔여 신호를 생성한 후, 변환 방법으로 DCT-2 변환 또는 DST-7 변환 및 플리핑 중 하나를 선택할 수 있다. 변환 방법이 DCT-2 변환인 경우, DCT-2 변환을 이용하여 잔여 신호에 대해 변환을 수행하여 변환 계수를 생성할 수 있다. 변환 방법이 DST-7 변환 및 플리핑 방법인 경우, DST-7 변환을 이용하여 잔여 신호에 대해 변환을 수행한 후 4가지 플리핑 방법들 (플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑) 중 하나를 선택하여 변환 계수에 대해 플리핑을 수행하여 플리핑된 변환 계수를 생성할 수 있다. 상기 변환 계수 혹은 상기 플리핑된 변환 계수에 양자화를 수행하여 양자화된 레벨을 생성할 수 있다. 또한, 상기 변환 계수에 플리핑을 수행할 때, 변환 계수들에 대한 재정렬을 수행할 수 있다. 재정렬을 수행하는 방법은 플리핑과 동일한 방법일 수 있고, 변환 기저의 영점에서의 축을 회전시키기 위한 제2의 변환이 수행되는 방법이 될 수 있고, 변환 계수의 양수와 음수 부호를 서로 변경하는 방법 등이 될 수 있다.
도 29를 참조하면, 양자화된 레벨을 입력받아 역양자화를 수행하여 변환 계수를 생성할 수 있다. DCT-2 역변환 또는 플리핑 및 DST-7 역변환 중 부호화 과정에서 선택한 방법에 대응하는 방법을 선택한다. 즉, 부호화 과정에서 DCT-2 변환을 수행한 경우, 복호화 과정에서 DCT-2 역변환을 수행할 수 있다. 또한, 부호화 과정에서 DST-7 변환 및 플리핑 방법을 수행한 경우, 복호화 과정에서 플리핑 및 DST-7 역변환을 수행할 수 있다. 역변환 방법이 DCT-2 역변환인 경우, DCT-2 역변환을 이용하여 변환 계수에 대해 역변환을 수행하여 복원된 잔여 신호를 생성할 수 있다. 역변환 방법이 플리핑 및 DST-7 역변환 방법인 경우, 4가지 플리핑 방법들 (플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑) 중 하나를 선택하여 변환 계수에 대해 플리핑을 수행한 후 DST-7 역변환을 이용하여 플리핑된 변환 계수에 대해 역변환을 수행함으로써 복원된 잔여 신호를 생성할 수 있다. 상기 복원된 잔여 신호에 화면간 혹은 화면내 예측 신호를 가산하여 복원 신호를 생성할 수 있다.
도 30은 양자화 후 플리핑을 수행하는 방법의 부호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 31은 플리핑 후 역양자화를 수행하는 방법의 복호화 과정의 일 실시예를 설명하기 위한 도면이다.
도 30을 참조하면, 현재 블록에 대한 원본 신호로부터 화면간 혹은 화면내 예측 신호를 감산하여 잔여 신호를 생성한 후, 변환 방법으로 DCT-2 변환 또는 DST-7 변환 중 하나를 선택할 수 있다. 변환 방법이 DCT-2 변환인 경우, DCT-2 변환을 이용하여 잔여 신호에 대해 변환을 수행함으로써 변환 계수를 생성할 수 있다. 변환 방법이 DST-7 변환인 경우, DST-7 변환을 이용하여 잔여 신호에 대해 변환을 수행함으로써 변환 계수를 생성할 수 있다. 상기 변환 계수에 양자화를 수행하여 양자화된 레벨을 생성할 수 있다. 또한, 변환 방법이 DST-7 변환인 경우 양자화된 레벨에 4가지 플리핑 방법들 (플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑) 중 하나를 선택하여 양자화된 레벨에 플리핑을 수행함으로써 플리핑된 양자화된 레벨을 생성할 수 있다. 또한, 상기 양자화된 레벨에 대해 플리핑을 수행할 때, 양자화된 레벨들에 대한 재정렬을 수행할 수 있다. 재정렬을 수행하는 방법은 플리핑과 동일한 방법일 수 있고, 변환 기저의 영점에서의 축을 회전시키기 위한 제 2의 변환이 수행되는 방법이 될 수 있고, 양자화된 레벨의 양수와 음수 부호를 서로 변경하는 방법 등이 될 수 있다.
도 31을 참조하면, 양자화된 레벨을 입력받아 역변환 방법으로 DCT-2 역변환 또는 DST-7 역변환 중 부호화 과정에서 선택한 방법에 대응하는 역변환 방법을 선택한다. 즉, 부호화 과정에 DCT-2 변환을 수행한 경우, 복호화 과정에서 DCT-2 역변환을 수행할 수 있다. 또한, 부호화 과정에서 DST-7 변환을 수행한 경우, 복호화 과정에서 DST-7 역변환을 수행할 수 있다. 역변환 방법이 DCT-2 역변환인 경우, 양자화된 레벨에 역양자화를 수행하여 변환 계수를 생성한 후 DCT-2 역변환을 이용하여 변환 계수에 대해 역변환을 수행함으로써 복원된 잔여 신호를 생성할 수 있다. 역변환 방법이 DST-7 역변환 방법인 경우, 4가지 플리핑 방법들 (플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑) 중 하나를 선택하여 양자화된 레벨에 플리핑을 수행한 후 플리핑된 양자화된 레벨에 역양자화를 수행함으로써 변환 계수를 생성할 수 있다. DST-7 역변환을 이용하여 상기 변환 계수에 대해 역변환을 수행함으로써 복원된 잔여 신호를 생성할 수 있다. 상기 복원된 잔여 신호에 화면간 혹은 화면내 예측 신호를 가산하여 복원 신호를 생성할 수 있다.
한편, 디코더에서 플리핑 방법이 수행되는 위치는 인코더로부터 시그널링 되는 플리핑 위치에 관한 정보에 기초하여 결정될 수 있다.
도 32는 잔여 블록에 대한 플리핑 수행을 설명하기 위한 도면이다.
도 32를 참조하면, 잔여 블록에 대해서 '플리핑 수행 안함', '가로 방향 플리핑', '세로 방향 플리핑', 및 '가로 방향 및 세로 방향 플리핑' 중 적어도 하나를 수행할 수 있다. 도 32에 도시된 바와 같이, 플리핑 종류에 따라 잔여 블록 내 샘플의 위치가 변경될 수 있다.
도 33은 8x8 크기의 잔여 블록에 대한 플리핑 수행을 하드웨어로 구현하기 위한 일 실시예를 도시한 도면이다.
도 33을 참조하면, MxN 잔여 블록에 대한 세로 방향 플리핑의 하드웨어 구현 시, 잔여 블록 메모리에서 데이터를 읽어올 때 사용되는 주소 값(addr)을 M-1-addr로 변경하여 MxN 블록에 대한 세로 방향 플리핑을 수행할 수 있다. 즉, 세로 방향 플리핑 연산 대신 MxN 블록에 대한 메모리 행 주소(row address)를 변경하여 잔여 블록 내 데이터를 읽음으로써 세로 방향 플리핑을 구현할 수 있다.
MxN 잔여 블록에 대한 가로 방향 플리핑의 하드웨어 구현 시, 잔여 블록 메모리에서 데이터 값을 역순으로 변경하여 읽음으로써 MxN 블록에 대한 가로 방향 플리핑을 수행할 수 있다. 즉, 가로 방향 플리핑 연산 대신 MxN 블록에 대한 데이터 값을 읽는 순서를 변경하여 가로 방향 플리핑을 구현할 수 있다. 예를 들어, 메모리에 저장된 데이터의 순서가 a, b, c, d, e, f, g, h인 경우, h, g, f, e, d, c, b, a 순서대로 데이터 값을 읽어옴으로써 가로 방향 플리핑을 수행할 수 있다.
도 34는 잔여 블록에 대한 플리핑 수행 및 변환을 설명하기 위한 도면이다.
도 34를 참조하면, 잔여 블록에 대해서 '플리핑 수행 안함(No-Flip)', '가로 방향 플리핑(H-Flip)', '세로 방향 플리핑(V-Flip)', 및 '가로 방향 및 세로 방향 플리핑(HV-Flip)' 중 적어도 하나를 수행하고, DST-7 변환을 수행할 수 있다. 도 34에 도시된 바와 같이, 플리핑 종류에 따라 잔여 블록 내 샘플의 위치가 변경되어 DST-7 변환이 수행될 수 있다.
다음은 본 명세서에서 사용된 변환들 중 적어도 하나를 이용해서 적응적 다중 변환(AMT; Adaptive Multiple Transform) 방법을 사용하는 예를 나타낸다.
본 명세서에서 사용된 변환들 중 적어도 하나를 이용하여 AMT 세트를 구성할 수 있다. 예를 들어, DCT-2, DCT-5, DCT-8, DST-1 및 DST-7 등의 변환뿐만 아니라 화면내 및 화면간 부호화/복호화된 각 블록에 대해 적어도 하나의 변환이 AMT 변환 세트에 추가될 수 있다. 구체적으로, DST-4와 항등 변환(intentity transtorm)이 화면간 부호화/복호화된 블록에 대한 AMT 변환 세트에 추가될 수 있고, KLT-1과 KLT-2가 화면내 부호화/복호화된 블록에 대한 AMT 변환 세트에 추가될 수 있다.
2의 거듭 제곱이 아니라 4x24, 8x48과 같은 크기를 가지는 블록에 대응되는 변환이 추가될 수 있다. 예를 들어, 화면내 부호화/복호화 과정에서, 아래의 표 14와 같이 각 세트마다 4개의 변환쌍을 가지는 7개의 변환 세트가 정의될 수 있다.
예측모드 | 변환쌍 세트 |
T0, 화면내 | { (DST-4, DST-4), (DST-7, DST-7), (DST-4, DCT-8), (DCT-8, DST-4) } |
T1, 화면내 | { (DST-7, DST-7), (DST-7, DCT-5), (DCT-5, DST-7), (DST-1, DCT-5) } |
T2, 화면내 | { (DST-7, DST-7), (DST-7, DCT-8), (DCT-8, DST-7), (DCT-5, DCT-5) } |
T3, 화면내 | { (DST-4, DST-4), (DST-4, DCT-5), (DCT-8, DST-4), (DST-1, DST-7) } |
T4, 화면내 | { (DST-4, DST-7), (DST-7, DCT-5), (DCT-8, DST-7), (DST-1, DST-7) } |
T5, 화면내 | { (DST-7, DST-7), (DST-7, DCT-5), (DCT-8, DST-7), (DST-1, DST-7) } |
T6, 화면내 | { (DST-7, DST-7), (DST-7, DCT-5), (DCT-5, DST-7), (DST-1, DST-7) }. |
상기 표 14에서 변환쌍의 첫번째 항목은 수직 방향의 변환, 두번째 항목은 수평 방향의 변환을 의미할 수 있다. 상기 표 14의 변환쌍 세트는 상이한 화면내 예측 모드들 및 상이한 블록 크기들에 기반하여 7개의 변환 세트 각각이 할당되도록 정의될 수 있다. 상기 표 14에서 T0 내지 T6은 각 블록 크기에 대응하여 사용 가능한 변환쌍 세트를 의미할 수 있다. 예를 들어, T0는 2x2 블록 크기, T1은 4x4 블록 크기, T2는 8x8 블록 크기, T3는 16x16 블록 크기, T4는 32x32 블록 크기, T5는 64x64 블록 크기, T6는 128x128 블록 크기에 사용될 수 있다.항등 변환은 16x16을 초과하지 않는 블록에 대해 적용될 수 있다. 또한, 항등 변환은 수평 및 수직의 화면내 예측 방향에 가까운 모드를 가지는 블록에 대해 적용될 수 있으며, 상기 수평 및/또는 수직의 화면내 예측 방향에 가까운 모드는 블록의 크기에 기반한 임계값으로 정의될 수 있다. 예를 들어, 변환 인덱스가 3이고 블록이 상기 조건을 만족하면, 수평 및/또는 수직 항등 변환이 적용될 수 있다.
한편, 화면간 부호화/복호화 과정에서, 아래의 표 15와 같이 각 세트마다 4개의 변환쌍을 가지는 2개의 변환 세트가 정의될 수 있다.
T0, 화면간 | { (DCT-8, DCT-8), (DCT-8, DST-7), (DST-7, DCT-8), (DST-7, DST-7) } |
T1, 화면간 | { (KLT-1, KLT-1), (KLT-1, KLT-2), (KLT-2, KLT-1), (KLT-2, KLT-2) } |
상기 표 15에서 T0 및 T1은 블록 크기에 대응하여 사용 가능한 변환쌍 세트를 의미할 수 있다. 예를 들어, 상기 표 15에서 16x16보다 작거나 같은 크기를 가지는 블록에 대해 KLTs이 포함된 변환 세트(즉, T1,
화면간)가 적용될 수 있으며, 16x16보다 큰 크기를 가지는 블록에 대해서는 T0,
화면간 이 적용될 수 있다.또한, DCT-2 계열의 변환 및 조정 단계만을 이용하여 AMT 변환을 근사하는 방법을 사용할 수 있다. 상기 조정 단계는 DCT-2 계열의 변환을 AMT 변환에 유사한 형태로 변형하기 위한 블록-대역 직교 행렬들(block-band orthogonal matirces)을 사용하여 정의될 수 있다.
본 명세서에서 사용된 AMT를 위한 1차 변환(primary transform) 세트는 DCT-2, DCT-8, DST-4, DST-7 변환 등으로 구성할 수 있으며, 1차 변환 세트는 DCT-8, DST-4 및 DST-7 변환들로 구성할 수도 있다. 또한, DST-7 변환 행렬은 DCT-8 변환 행렬을 기반으로 플리핑, 부호 변경 등을 수행함으로써 구현될 수 있다.
예를 들어, 상기 변환들을 이용해서 2차원 변환 세트(즉, 수평 및 수직 변환)를 구성하여 화면간 부호화/복호화 과정에서 사용할 수 있다. 화면내 부호화/복호화 과정에서 아래의 표 16과 같은 2차원 변환 세트가 이용될 수 있다.
TrIdxpredModIdx | 0 | 1 | 2 | 3 |
0 | DST4,DST4 | DST7,DST7 | DST4,DCT8 | DCT8,DST4 |
1 | DST7,DST7 | DST7,DCT2 | DCT2,DST7 | DCT2,DCT8 |
2 | DST7,DST7 | DST7,DCT8 | DCT8,DST7 | DCT2,DST7 |
3 | DST4,DST4 | DST4,DCT2 | DCT8,DST4 | DCT2,DST7 |
4 | DST4,DST7 | DST7,DCT2 | DCT8,DST7 | DCT2,DST7 |
5 | DST7,DST7 | DST7,DCT2 | DCT8,DST7 | DCT2,DST7 |
6 | DST7,DST7 | DST7,DCT2 | DCT2,DST7 | DCT2,DST7 |
상기 표 16은 각 예측 모드(predModIdx) 및 변환 인덱스(TrIdx)에 대한 수직 및 수평 변환에 대한 변환 세트를 나타낸다.또한, 상기 AMT 변환 세트는 DCT-8 및 DST-7을 이용하는 변환 세트로 대체될 수 있다.
또한, 블록의 가로 또는 세로의 크기가 32 픽셀을 초과하면, 해당 블록에서는 AMT 변환을 적용하지 않고 복호화기로 AMT 변환 사용 정보(AMT 플래그) 및 변환 인덱스 정보(AMT 인덱스) 중 적어도 하나가 시그널링되지 않을 수 있다.
본 명세서에서 사용된 AMT 변환 세트에 포함되는 DCT-8, DST-1 및 DCT-5의 변환 행렬은 다른 변환 행렬로 대체될 수 있다. DCT-8 대신 플리핑된 DST-7이 사용될 수 있다. DST-1 대신 DST-6이 사용될 수 있다. DCT-5 대신 DCT-2가 사용될 수 있다.
상기 플립핑된 DST-7 및 DST-6의 변환 행렬은 아래의 수학식 7과 같이 DST-7에서 각각 유도될 수 있다.
또한, 휘도 성분 및 색차 성분 모두에 대해 상기 DCT-8, DST-1 및 DCT-5의 변환렬을 포함하는 AMT 변환이 적용될 수 있다.
휘도 성분에 대한 변환은 모드-종속 변환 세트 및 수평 및 수직 변환을 나타내는 명시적으로 시그널링된 AMT 인덱스를 기반으로 결정될 수 있다.
색차 성분/화면내 모드의 경우, 변환은 휘도 성분에 대한 변환 결정 방법과 동일하게 결정될 수 있으나, 변환 후보의 수는 휘도 성분의 변환 후보의 수보다 작을 수 있다.
색차 성분/화면간 모드의 경우, 변환은 AMT 인덱스가 휘도 성분의 콜 블록 또는 기본 변환(DCT-2xDCT-2)과 동일한지를 나타내는 1비트 플래그에 의해 결정될 수 있다.
또한, AMT는 DCT-2, DST-7 및 플리핑된 DST-7 (FDST-7)에서 수평 변환 및 수직 변환을 선택할 수 있다. 또한, AMT 플래그가 정의될 수 있다. AMT 플래그가 0이면 DCT-2가 수평 변환 및 수직 변환 모두에 사용되는 것을 나타낼 수 있으며, AMT 플래그가 1이면 AMT 인덱스에 따른 다른 변환이 사용되는 것을 나타낼 수 있다. 블록의 가로 및 세로 모두가 64보다 작거나 같은 경우에만 AMT 사용이 허용될 수 있다. AMT 플래그는 화면내 예측 모드에 의해 결정될 수 있다. 짝수 화면내 예측 모드는 암묵적으로 AMT 플래그가 1로 할당되고 홀수 화면내 예측 모드는 암묵적으로 AMT 플래그가 0으로 할당될 수 있다. 또한, 홀수 화면내 예측 모드는 암묵적으로 AMT 플래그가 1로 할당되고 짝수 화면내 예측 모드는 암묵적으로 AMT 플래그가 0으로 할당될 수 있다.
두 개의 변환 DST-7 및 DCT-8이 추가된 변환 세트가 사용될 수 있으며, AMT가 적용되는 최대 블록 크기는 32x32의 크기로 제한될 수 있다. 2N+1 길이의 DFT(Discrete Fourier Transform)를 가진 순방향 N×N DST-7이 N×N DST-7을 획득하기 위해 구현될 수 있다. 2N+1 FFT는 2차원 FFT로 재구성될 수 있다. DCT-8은 DST-7에서 DST-7 계산 직전과 직후에 부호 변경 및 순서 재지정(reordering)을 통해 유도될 수 있다. 따라서, DST-7은 DCT-8을 구현하는데 재사용될 수 있다.
현재 블록에 대한 변환 혹은 역변환은 현재 블록 내의 서브 블록에 대해서만 수행될 수 있다. 예컨대, 상기 서브 블록은 현재 블록의 좌상단 위치의 서브 블록일 수 있다. 상기 서브 블록의 가로 길이와 세로 길이는 각각 독립적으로 결정될 수 있다. 예컨대, 상기 서브 블록의 가로 길이(또는 세로 길이)는 수평 변환 혹은 역변환 (또는 수직 변환 혹은 역변환)에 적용되는 변환 커널의 종류에 따라 결정될 수 있다. 예컨대, 수평 변환 혹은 역변환에 적용되는 변환 커널이 DCT-2인 경우, 가로 길이는 32 샘플일 수 있다. 예컨대, 수평 변환 혹은 역변환에 적용되는 변환 커널이 DCT-2가 아니고, 예컨대, DST-7 또는 DCT-8인 경우, 가로 길이는 16 샘플일 수 있다. 마찬가지로, 예컨대, 수직 변환 혹은 역변환에 적용되는 변환 커널이 DCT-2인 경우, 세로 길이는 32 샘플일 수 있다. 예컨대, 수직 변환 혹은 역변환에 적용되는 변환 커널이 DCT-2가 아니고, 예컨대, DST-7 또는 DCT-8인 경우, 세로 길이는 16 샘플일 수 있다. 또한, 서브 블록은 현재 블록보다 클 수 없으므로, 상기 유도된 서브 블록의 길이(예컨대, 32 샘플 또는 16 샘플)보다 현재 블록의 길이가 작을 경우, 변환 혹은 역변환이 수행되는 블록의 길이는 현재 블록의 길이로 결정될 수 있다. 상기 서브 블록에 포함되지 않은 현재 블록 내 영역내 샘플들에 대해서는 변환 혹은 역변환이 수행되지 않고, 해당 샘플들의 샘플값이 모두 '0'으로 설정될 수 있다. 여기서, 상기 서브 블록에는 입력 신호와 예측 신호의 차분인 잔여 신호 혹은 잔여 신호가 변환된 형태인 변환 계수가 포함될 수 있다.
화면내 및 화면간 부호화/복호화 과정에서 암묵적으로 AMT 변환을 결정할 수 있다.
휘도 성분 및 색차 성분의 화면내 예측 모드에 종속적인 변환(intra prediction mode dependent transform)은 각각 아래의 표 17 및 표 18과 같이 나타낼 수 있다.
화면내 예측 모드 | 수평 변환 | 수직 변환 | 블록 크기 제한 |
PlanarAng. 31,32,34,36,37 | DST-7 | DST-7 | Width <= 64 && Height <= 64 |
DCAng. 33, 35 | DCT-2 | DCT-2 | Width <= 64 && Height <= 64 |
Ang. 2, 4, 6 ... 28,30Ang. 39,41,43 ...63,65 | DST-7 | DCT-2 | Width <= 64 && Height <= 64 |
Ang. 3,5,7 ... 27,29Ang. 38,40,42 ...64,66 | DCT-2 | DST-7 | Width <= 64 && Height <= 64 |
화면내 예측 모드 | 수평 변환 | 수직 변환 | 블록 크기 제한 |
LM modes | DST-7 | DST-7 | Width <= 8 && Height <= 8 |
Planar | DST-7 | DST-7 | Width <= 16 && Height <= 16 |
Hor | DST-7 | DCT-2 | Width <= 16 && Height <= 32 |
Ver, VDIA | DCT-2 | DST-7 | Width <= 32 && Height <= 16 |
여기서 표 17은 휘도 성분에 대한 변환 매핑 표를 나타내고, 표 18은 색차 성분에 대한 변환 매핑 표를 나타낸다.또한, 머지 모드의 잔여 신호에 대해 위치 종속적인 변환(position dependent transform)을 사용할 수 있다. 머지 모드의 잔여 신호에 대한 변환은 현재 블록의 움직임 보상에 이용된 공간적 움직임 벡터 예측자(spatial motion vector predictor, MVP) 후보에 따라 달라질 수 있다.
아래의 표 19는 MVP 위치 및 변환 간의 매핑 표를 나타낸다.
MVP 위치 | 수평 변환 | 수직 변환 | 블록 크기 제한 |
L (left) | DST-7 | DCT-2 | Width <= 32 && Height <= 32 |
A (above) | DCT-2 | DST-7 | Width <= 32 && Height <= 32 |
상기 표 19에서 좌측(left) MVP 후보의 경우 DST-7 및 DCT-2가 각각 수평 및 수직 변환으로 사용될 수 있다. 또한, 상단(above) MVP 후보의 경우 DCT-2 및 DST-7이 각각 수평 및 수직 변환으로 사용될 수 있다. 다른 경우에는 DCT-2가 기본 변환으로 사용될 수 있다.1차 변환인 AMT 변환 사용 정보와 2차 변환인 NSST(non-separable secondary transform) 변환 사용 정보를 결합한 변환 사용 정보를 엔트로피 부호화/복호화할 수 있으며, AMT와 NSST의 사용은 단일 변환 인덱스로 표시될 수 있다. 1차(primary) 및 2차(secondary) 변환의 인덱스를 독립적으로 시그널링하는 대신, 1차 및 2차 변환은 하나의 변환 인덱스에 의해 결합되어 시그널링될 수 있다. 또한, 휘도 성분 및 색차 성분 모두에 상기 결합된 변환 인덱스를 사용할 수 있다.
또한, 본 명세서에서 사용된 상기 변환은 각 블록에 대해 N개의 기정의된 변환 후보 세트 중에서 선택될 수 있다. 여기서, N은 양의 정수일 수 있다. 변환 후보들 각각은 1차 수평 변환, 1차 수직 변환 및 2차 변환(항등 변환과 동일할 수도 있음)을 지정할 수 있다. 변환 후보들의 리스트는 블록 크기 및 예측 모드에 따라 달라질 수 있다. 선택된 변환은 다음과 같이 시그널링될 수 있다. 부호화 블록 플래그가 1이면, 후보 리스트의 제1 변환이 사용되는지를 지정하는 플래그가 전송될 수 있다. 후보 리스트의 제1 변환이 사용되는지를 지정하는 플래그가 0이면, 다음이 적용될 수 있다: 0이 아닌 변환 계수 레벨의 수가 임계값보다 큰 경우, 사용된 변환 후보를 나타내는 변환 인덱스가 전송될 수 있다; 그렇지 않으면 상기 리스트의 제2 변환이 사용될 수 있다.
또한, 2차 변환인 NSST는 1차 변환으로 DCT-2가 기본 변환으로 사용될 때만 사용될 수 있다. 또한, 수평 변환 또는 수직 변환은 가로 또는 세로가 독립적으로 4보다 작거나 같을 때 시그널링 없이 DST-7을 선택할 수 있다.
또한, 0이 아닌 변환 계수의 수가 임계값보다 클 때 AMT 플래그가 시그널링될 수 있다. 화면간 블록의 경우 임계값은 2로 설정될 수 있다. 화면내 블록의 경우 임계값은 0으로 설정될 수 있다. 0이 아닌 변환 계수의 수가 2보다 큰 경우 AMT 인덱스는 시그널링될 수 있다. 그렇지 않으면, 0으로 추정될 수 있다. NSST의 경우, 화면내 휘도 성분의 블록에 대해, 좌상단 8x8 또는 4x4 휘도의 0이 아닌 변환 계수의 수와 좌상단 8x8 또는 4x4 색차 성분의 0이 아닌 AC 계수의 수의 합이 2보다 크면 NSST 인덱스가 시그널링될 수 있다.
잔여 블록에 대해 블록의 너비가 K보다 작거나 같은 경우 1차원 수평 변환에 DCT-2 대신 DST-7가 이용될 수 있다. 블록의 높이가 L보다 작거나 같은 경우 1차원 수직 변환에 DCT-2 대신 DST-7가 이용될 수 있다. 그리고 블록의 너비 혹은 높이가 K보다 작거나 같더라도 화면내 예측 모드가 LM(linear model) chroma 모드 인 경우 DCT-2를 사용할 수 있다. 여기서, K 및 L은 양의 정수이고, 예를 들어 4일 수 있다. 또한, 상기 K 및 L은 서로 같거나 다른 값을 가질 수 있다. 또한, 상기 잔여 블록은 인트라 모드로 부호화된 블록일 수 있다. 또한, 상기 잔여 블록은 색차 블록일 수 있다.
상기 플리핑 방법을 잔여 신호에 수행하는 대신, 플리핑이 수행된 변환 커널(kernel) 혹은 변환 행렬(matrix)을 이용해서 변환/역변환을 수행할 수 있다. 여기서, 플리핑이 수행된 변환/역변환 커널 혹은 변환/역변환 행렬은 플리핑이 수행되어 부호화기/복호화기에 기정의된 커널 혹은 행렬일 수 있다. 이러한 경우 플리핑된 변환/역변환 행렬을 이용해서 변환/역변환을 수행하므로 잔여 신호에 플리핑을 수행하는 것과 동일한 효과를 얻을 수 있다. 여기서, 플리핑은 플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑 중 적어도 하나일 수 있다. 이러한 경우 플리핑이 수행된 변환/역변환의 사용 여부 정보를 시그널링할 수 있다. 또한, 플리핑이 수행된 변환/역변환의 사용 여부 정보를 가로 방향 변환/역변환 및 세로 방향 변환/역변환 각각에 대해서 시그널링할 수 있다.
또한, 상기 플리핑 방법을 잔여 신호에 수행하는 대신, 부호화/복호화 과정에서 변환 커널 혹은 변환 행렬에 플리핑을 수행하여 변환/역변환을 수행할 수 있다. 이러한 경우 변환/역변환 행렬에 플리핑을 수행하여 변환/역변환을 수행하므로 잔여 신호에 플리핑을 수행하는 것과 동일한 효과를 얻을 수 있다. 여기서, 플리핑은 플리핑 수행 안함, 가로 방향 플리핑, 세로 방향 플리핑, 가로 방향 및 세로 방향 플리핑 중 적어도 하나일 수 있다. 이러한 경우 변환/역변환 행렬에 플리핑을 수행하는지 여부 정보를 시그널링할 수 있다. 또한, 변환/역변환 행렬에 플리핑을 수행하는지 여부 정보를 가로 방향 변환/역변환 및 세로 방향 변환/역변환 각각에 대해서 시그널링할 수 있다.
상기 플리핑 방법이 화면내 예측 모드에 기반하여 결정되고, 현재 블록의 화면내 예측 모드로 2개 이상이 사용될 경우, 비방향성 모드에 대한 플리핑 방법으로 현재 블록에 대한 변환/역변환의 전/후에 플리핑을 수행할 수 있다.
또한, 상기 플리핑 방법이 화면내 예측 모드에 기반하여 결정되고, 현재 블록의 화면내 예측 모드로 2개 이상이 사용될 경우, 주요 방향성 모드에 대한 플리핑 방법으로 현재 블록에 대한 변환/역변환의 전/후에 플리핑을 수행할 수 있다. 여기서, 주요 방향성 모드는 수직 모드, 수평 모드, 대각선 모드들 중 적어도 하나일 수 있다.
상기 변환의 크기가 MxN보다 크거나 같을 경우, 변환 수행 시 혹은 변환 수행 후 M/2 내지 M, 및 N/2 내지 N의 영역에 존재하는 변환 계수는 모두 0의 값으로 설정할 수 있다. 여기서, M과 N은 양의 정수이고, 예를 들어, 64x64일 수 있다.
메모리 요구량 감소를 위해, 상기 변환 수행 후 생성되는 변환 계수에 K만큼 우측 쉬프트 연산을 수행할 수 있다. 또한, 상기 가로 변환 수행 후 생성되는 임시 변환 계수에 K만큼 우측 쉬프트 연산을 수행할 수 있다. 또한, 상기 세로 변환 수행 후 생성되는 임시 변환 계수에 K만큼 우측 쉬프트 연산을 수행할 수 있다. 여기서, K는 양의 정수이다.
메모리 요구량 감소를 위해, 상기 역변환 수행 후 생성되는 복원된 잔여 신호에 K만큼 우측 쉬프트 연산을 수행할 수 있다. 또한, 상기 가로 역변환 수행 후 생성되는 임시 변환 계수에 K만큼 우측 쉬프트 연산을 수행할 수 있다. 또한, 상기 세로 역변환 수행 후 생성되는 임시 변환 계수에 K만큼 우측 쉬프트 연산을 수행할 수 있다. 여기서, K는 양의 정수이다.
가로 방향 변환/역변환 수행 전, 가로 방향 변환/역변환 수행 후, 세로 방향 변환/역변환 수행 전, 세로 방향 변환/역변환 수행 후 생성되는 신호들 중 적어도 하나에 상기 플리핑 방법 중 적어도 하나를 수행할 수 있다. 이러한 경우, 상기 가로 방향 변환/역변환 혹은 세로 방향 변환/역변환에서 사용한 플리핑 방법 정보를 시그널링할 수 있다.
또한, 상기 DST-7 대신 DCT-4를 이용할 수 있다. 2N 크기의 DCT-2 변환/역변환 행렬에서 2N-1 크기의 DCT-4 변환/역변환 행렬을 추출해서 사용할 수 있기 때문에, DCT-4 대신 DCT-2 변환/역변환 행렬만 부호화기/복호화기에서 저장할 수 있으므로, 부호화기/복호화기의 메모리 요구량이 감소될 수 있다. 또한, 2N-1 크기의 DCT-4 변환/역변환 로직을 2N 크기의 DCT-2 변환/역변환 로직(logic)으로부터 활용할 수 있기 때문에, 부호화기/복호화기를 구현하는데 필요한 칩 면적(chip area)이 감소할 수 있다. 여기서, 상기 DCT-2 및 상기 DCT-4에 대해서만 상기 예가 적용되는 것은 아니고, DST 변환/역변환의 종류들 중 적어도 하나 및 DCT 변환/역변환의 종류들 중 적어도 하나에서 서로 공유되는 변환 행렬 혹은 변환 로직이 있을 경우 상기 예가 적용될 수 있다. 즉, 하나의 변환/역변환 행렬 혹은 로직으로부터 또 다른 하나의 변환/역변환 행렬 혹은 로직을 추출하여 사용할 수 있다. 또한, 특정 변환/역변환 크기일 경우, 하나의 변환/역변환 행렬 혹은 로직으로부터 또 다른 하나의 변환/역변환 행렬 혹은 로직을 추출하여 사용할 수 있다. 또한, 행렬 단위, 기저 벡터(basis vector) 단위, 행렬 계수 단위 중 적어도 하나의 단위로 하나의 변환/역변환 행렬로부터 또 다른 하나의 변환/역변환 행렬을 추출할 수 있다.
또한, 현재 블록이 MxN 크기보다 작을 경우, 특정 변환/역변환 대신 다른 변환/역변환을 현재 블록의 변환/역변환에 사용할 수 있다. 또한, 현재 블록이 MxN 크기보다 클 경우, 특정 변환/역변환 대신 다른 변환/역변환을 현재 블록의 변환/역변환에 사용할 수 있다. 여기서, M과 N은 양의 정수이다. 상기 특정 변환/역변환 및 다른 변환/역변환은 부호화기/복호화기에서 기정의된 변환/역변환일 수 있다.
또한, 본 명세서에서 사용된 DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 등의 변환 중 적어도 하나를 DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 등의 변환을 기반으로 산출된 변환들 중 적어도 하나로 대체하여 사용할 수 있다. 여기서, 상기 산출된 변환은 DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 등의 변환 행렬(matrix) 내 계수 값을 변경하여 산출된 변환일 수 있다. 또한, 상기 DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 등의 변환 행렬 내 계수 값은 정수 값을 가질 수 있다. 즉, 상기 DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 등의 변환은 정수 변환(integer transform)일 수 있다. 또한, 상기 산출된 변환 행렬 내 계수 값은 정수 값을 가질 수 있다. 즉, 상기 상기 산출된 변환은 정수 변환일 수 있다. 또한, 상기 산출된 변환은 상기 DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 등의 변환 행렬 내 계수 값에 N만큼 좌측 쉬프트(left shift) 연산을 수행한 결과일 수 있으며, 여기서 N는 양의 정수일 수 있다.
상기 DCT-Q 및 DST-W 변환은 상기 DCT-Q 및 DST-W 변환과 상기 DCT-Q 및 DST-W 역변환을 포함한 의미할 수 있다. 여기서, Q 및 W는 1 이상의 양수 값을 가질 수 있고, 예를 들어 1 내지 9는 I 내지 IX와 동일한 의미로 사용될 수 있다.
또한, 본 명세서에서 사용된 DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 등의 변환은 해당 변환에만 한정되는 것은 아니고, DCT-Q 및 DST-W 변환 중 적어도 하나가 상기 DCT-4, DCT-8, DCT-2, DST-4, DST-1, DST-7 변환을 대체하여 사용될 수 있다. 여기서, Q 및 W는 1 이상의 양수 값을 가질 수 있고, 예를 들어 1 내지 9는 I 내지 IX와 동일한 의미로 사용될 수 있다.
또한, 본 명세서에서 사용된 상기 변환은 정방형 블록인 경우 정방형 변환 형태로 수행될 수 있고, 비정방형 블록인 경우 비정방형 변환 형태로 수행될 수 있고, 정방형 블록 및 비정방형 블록을 적어도 하나를 포함하는 정방형 영역인 경우 해당 영역에 정방형 변환 형태로 변환이 수행될 수 있고, 정방형 블록 및 비정방형 블록을 적어도 하나를 포함하는 비정방형 영역인 경우 해당 영역에 비정방형 변환 형태로 변환이 수행될 수 있다.
또한, 본 명세서에서 상기 재배열 방법에 대한 정보는 플리핑 방법 정보일 수 있다.
또한, 본 명세서에서 사용된 변환은 변환 및 역변환 중 적어도 하나를 의미할 수 있다.
상기의 실시예들은 부호화기 및 복호화기에서 같은 방법으로 수행될 수 있다.
상기 실시예들에서 가로 변환 및 세로 변환에 관한 정보는 부호화기에서 복호화기로 시그널링되는 정보일 수도 있고, 블록의 가로 크기 혹은 세로 크기 등의 크기 정보에 따라 시그널링되지 않고 부호화기/복호화기에서 기설정된 방식대로 암묵적으로 결정되는 정보일 수 있다.
상기 실시예들에서 블록의 가로 크기 혹은 세로 크기가 1인 경우, 해당 방향에 대해서는 변환을 수행하지 않는 것을 의미할 수 있다. 예를 들어, 16x1 블록에 대해서는 세로 방향에 대해 세로 변환을 수행하지 않고, 가로 방향에 대해 가로 변환을 수행하는 것을 의미할 수 있다. 또 다른 예로, 1x32 블록에 대해서는 가로 방향에 대해 가로 변환을 수행하지 않고, 세로 방향에 대해 세로 변환을 수행하는 것을 의미할 수 있다.
상기 실시예들 중 적어도 하나 혹은 적어도 하나의 조합을 이용해서 영상을 부호화/복호화할 수 있다.
상기 실시예를 적용하는 순서는 부호화기와 복호화기에서 상이할 수 있고, 상기 실시예를 적용하는 순서는 부호화기와 복호화기에서 동일할 수 있다.
휘도 및 색차 신호 각각에 대하여 상기 실시예를 수행할 수 있고, 휘도 및 색차 신호에 대한 상기 실시예를 동일하게 수행할 수 있다.
본 발명의 상기 실시예들이 적용되는 블록의 형태는 정방형(square) 형태 혹은 비정방형(non-square) 형태를 가질 수 있다.
본 발명의 상기 실시예들은 부호화 블록, 예측 블록, 변환 블록, 블록, 현재 블록, 부호화 유닛, 예측 유닛, 변환 유닛, 유닛, 현재 유닛 중 적어도 하나의 크기에 따라 적용될 수 있다. 여기서의 크기는 상기 실시예들이 적용되기 위해 최소 크기 및/또는 최대 크기로 정의될 수도 있고, 상기 실시예가 적용되는 고정 크기로 정의될 수도 있다. 또한, 상기 실시예들은 제1 크기에서는 제1의 실시예가 적용될 수도 있고, 제2 크기에서는 제2의 실시예가 적용될 수도 있다. 즉, 상시 실시예들은 크기에 따라 복합적으로 적용될 수 있다. 또한, 본 발명의 상기 실시예들은 최소 크기 이상 및 최대 크기 이하일 경우에만 적용될 수도 있다. 즉, 상기 실시예들을 블록 크기가 일정한 범위 내에 포함될 경우에만 적용될 수도 있다.
예를 들어, 현재 블록의 크기가 8x8 이상일 경우에만 상기 실시예들이 적용될 수 있다. 예를 들어, 현재 블록의 크기가 4x4일 경우에만 상기 실시예들이 적용될 수 있다. 예를 들어, 현재 블록의 크기가 16x16 이하일 경우에만 상기 실시예들이 적용될 수 있다. 예를 들어, 현재 블록의 크기가 16x16 이상이고 64x64 이하일 경우에만 상기 실시예들이 적용될 수 있다.
본 발명의 상기 실시예들은 시간적 계층(temporal layer)에 따라 적용될 수 있다. 상기 실시예들이 적용 가능한 시간적 계층을 식별하기 위해 별도의 식별자(identifier)가 시그널링되고, 해당 식별자에 의해 특정된 시간적 계층에 대해서 상기 실시예들이 적용될 수 있다. 여기서의 식별자는 상기 실시예가 적용 가능한 최하위 계층 및/또는 최상위 계층으로 정의될 수도 있고, 상기 실시예가 적용되는 특정 계층을 지시하는 것으로 정의될 수도 있다. 또한, 상기 실시예가 적용되는 고정된 시간적 계층이 정의될 수도 있다.
예를 들어, 현재 영상의 시간적 계층이 최하위 계층일 경우에만 상기 실시예들이 적용될 수 있다. 예를 들어, 현재 영상의 시간적 계층 식별자가 1 이상인 경우에만 상기 실시예들이 적용될 수 있다. 예를 들어, 현재 영상의 시간적 계층이 최상위 계층일 경우에만 상기 실시예들이 적용될 수 있다.
본 발명의 상기 실시예들이 적용되는 슬라이스 종류(slice type) 혹은 타일 그룹 종류가 정의되고, 해당 슬라이스 종류 혹은 타일 그룹 종류에 따라 본 발명의 상기 실시예들이 적용될 수 있다.
상술한 실시예들에서, 방법들은 일련의 단계 또는 유닛으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
본 발명은 영상을 부호화/복호화하는데 이용될 수 있다.
Claims (20)
- 복수의 변환 커널들 중 하나의 변환 커널을 선택하는 단계;상기 선택된 변환 커널에 기초하여 현재 블록의 잔여 블록에 대해 역변환을 수행하는 단계; 및상기 역변환된 잔여 블록에 기초하여 상기 현재 블록을 복원하는 단계를 포함하는 영상 복호화 방법.
- 제1항에 있어서,상기 변환 커널을 선택하는 단계는,비트스트림에 포함되어 시그널링되는 변환 커널에 관한 정보에 기초하여 수행되는 영상 복호화 방법.
- 제1항에 있어서,상기 현재 블록이 화면내 예측된 블록인 경우,상기 변환 커널을 선택하는 단계는,상기 잔여 블록의 크기 및 형태 중 적어도 하나에 기초하여 수행되는 영상 복호화 방법.
- 제3항에 있어서,상기 잔여 블록의 가로 길이가 소정의 범위에 포함되고, 상기 가로 길이가 상기 잔여 블록의 세로 길이보다 크지 않은 경우, 상기 잔여 블록의 수평 변환에 적용될 변환 커널은 제1 변환 커널이고,상기 잔여 블록의 가로 길이가 소정의 범위에 포함되지 않거나, 상기 가로 길이가 상기 세로 길이보다 큰 경우, 상기 잔여 블록의 수평 변환에 적용될 변환 커널은 제2 변환 커널인 영상 복호화 방법.
- 제4항에 있어서,상기 소정의 범위는 4 샘플부터 16 샘플까지의 범위인 영상 복호화 방법.
- 제4항에 있어서,상기 제1 변환 커널은 DST-7이고, 상기 제2 변환 커널은 DCT-2인 영상 복호화 방법.
- 제1항에 있어서,상기 현재 블록에 포함된 복수의 서브 블록들 각각에 대해 화면내 예측이 수행되는 경우,상기 변환 커널을 선택하는 단계는,상기 잔여 블록의 크기 및 화면내 예측 모드 중 적어도 하나에 기초하여 수행되는 영상 복호화 방법.
- 제1항에 있어서,상기 현재 블록이 화면간 예측된 블록이고, 상기 현재 블록을 분할하여 획득한 블록들 중 하나의 서브 잔여 블록에 대해서만 상기 변환이 수행되는 경우,상기 변환 커널을 선택하는 단계는,상기 현재 블록의 분할에 관한 정보 및 상기 서브 잔여 블록의 상기 현재 블록 내 위치에 관한 정보에 기초하여 수행되는 영상 복호화 방법.
- 제8항에 있어서,상기 현재 블록의 분할에 관한 정보는,분할의 방향이 수직 분할인지 수평 분할인지 지시하는 분할 방향 정보 및 분할 비율을 지시하는 분할 비율 정보 중 적어도 하나를 포함하는 영상 복호화 방법.
- 제8항에 있어서,상기 현재 블록의 분할에 관한 정보 및 상기 서브 잔여 블록의 위치에 관한 정보는 비트스트림에 포함되어 시그널링되는 영상 복호화 방법.
- 복수의 변환 커널들 중 하나의 변환 커널을 선택하는 단계;상기 선택된 변환 커널에 기초하여 현재 블록의 잔여 블록에 대해 변환을 수행하는 단계; 및상기 변환된 잔여 블록에 기초하여 상기 현재 블록을 부호화하는 단계를 포함하는 영상 부호화 방법.
- 제11항에 있어서,상기 선택된 변환 커널에 관한 정보는 비트스트림에 포함되어 시그널링되는 영상 부호화 방법.
- 제11항에 있어서,상기 현재 블록이 화면내 예측된 블록인 경우,상기 변환 커널을 선택하는 단계는,상기 잔여 블록의 크기 및 형태 중 적어도 하나에 기초하여 수행되는 영상 부호화 방법.
- 제13항에 있어서,상기 잔여 블록의 가로 길이가 소정의 범위에 포함되고, 상기 가로 길이가 상기 잔여 블록의 세로 길이보다 크지 않은 경우, 상기 잔여 블록의 수평 변환에 적용될 변환 커널은 제1 변환 커널이고,상기 잔여 블록의 가로 길이가 소정의 범위에 포함되지 않거나, 상기 가로 길이가 상기 세로 길이보다 큰 경우, 상기 잔여 블록의 수평 변환에 적용될 변환 커널은 제2 변환 커널인 영상 부호화 방법.
- 제14항에 있어서,상기 소정의 범위는 4 샘플부터 16 샘플까지의 범위이고,상기 제1 변환 커널은 DST-7이고, 상기 제2 변환 커널은 DCT-2인 영상 부호화 방법.
- 제11항에 있어서,상기 현재 블록에 포함된 복수의 서브 블록들 각각에 대해 화면내 예측이 수행되는 경우,상기 변환 커널을 선택하는 단계는,상기 잔여 블록의 크기 및 화면내 예측 모드 중 적어도 하나에 기초하여 수행되는 영상 부호화 방법.
- 제11항에 있어서,상기 현재 블록이 화면간 예측된 블록이고, 상기 현재 블록을 분할하여 획득한 블록들 중 하나의 서브 잔여 블록에 대해서만 상기 변환이 수행되는 경우,상기 변환 커널을 선택하는 단계는,상기 현재 블록의 분할에 관한 정보 및 상기 서브 잔여 블록의 상기 현재 블록 내 위치에 관한 정보에 기초하여 수행되는 영상 부호화 방법.
- 제17항에 있어서,상기 현재 블록의 분할에 관한 정보는,분할의 방향이 수직 분할인지 수평 분할인지 지시하는 분할 방향 정보 및 분할 비율을 지시하는 분할 비율 정보 중 적어도 하나를 포함하는 영상 부호화 방법.
- 제17항에 있어서,상기 현재 블록의 분할에 관한 정보 및 상기 서브 잔여 블록의 위치에 관한 정보는 비트스트림에 포함되어 시그널링되는 영상 부호화 방법.
- 영상 복호화 장치에 수신되고 영상에 포함된 현재 블록을 복원하는데 이용되는 비트스트림을 저장한 컴퓨터 판독가능한 기록 매체로서,상기 비트스트림은 상기 현재 블록의 잔여 정보를 포함하고,상기 잔여 정보는 복원되어 상기 현재 블록의 잔여 블록을 생성하기 위해 이용되고,상기 잔여 블록은 복수의 변환 복수의 변환 커널들 중 선택된 하나의 변환 커널에 기초하여 역변환되고,상기 역변환된 잔여 블록은 상기 현재 블록을 복원하기 위해 이용되는 컴퓨터 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201980031926.8A CN112106373A (zh) | 2018-03-28 | 2019-03-18 | 用于图像编/解码的方法和装置及存储比特流的记录介质 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180036083 | 2018-03-28 | ||
KR10-2018-0036083 | 2018-03-28 | ||
KR20180071610 | 2018-06-21 | ||
KR10-2018-0071610 | 2018-06-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019190098A1 true WO2019190098A1 (ko) | 2019-10-03 |
Family
ID=68059324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/003101 WO2019190098A1 (ko) | 2018-03-28 | 2019-03-18 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR20190113591A (ko) |
CN (1) | CN112106373A (ko) |
WO (1) | WO2019190098A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114556943A (zh) * | 2020-04-03 | 2022-05-27 | Oppo广东移动通信有限公司 | 变换方法、编码器、解码器以及存储介质 |
WO2024124178A1 (en) * | 2022-12-08 | 2024-06-13 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and apparatus for transform training and coding |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX2022004307A (es) * | 2019-10-11 | 2022-06-08 | Electronics & Telecommunications Res Inst | Metodo y dispositivo de codificacion/decodificacion de informacion de transformacion, y medio de almacenamiento de flujo de bits. |
CN114600455A (zh) * | 2019-11-26 | 2022-06-07 | 韩国电子通信研究院 | 图像编码/解码方法和设备以及存储比特流的记录介质 |
CN116848844A (zh) * | 2021-02-23 | 2023-10-03 | Oppo广东移动通信有限公司 | 编解码方法、编解码设备、编解码系统以及计算机可读存储介质 |
CN117296323A (zh) * | 2021-04-22 | 2023-12-26 | 抖音视界有限公司 | 基于特征的变换选择 |
CN113727105B (zh) * | 2021-09-08 | 2022-04-26 | 北京医百科技有限公司 | 一种深度图压缩方法、装置、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170058335A (ko) * | 2014-09-19 | 2017-05-26 | 엘지전자 주식회사 | 분리 가능한 변환에 기초하여 적응적으로 비디오 신호를 인코딩 및 디코딩하는 방법 및 장치 |
KR20170107452A (ko) * | 2015-01-26 | 2017-09-25 | 퀄컴 인코포레이티드 | 예측 잔차를 위한 향상된 다수의 변환들 |
KR20180001485A (ko) * | 2016-06-24 | 2018-01-04 | 한국전자통신연구원 | 변환 기반의 영상 부호화/복호화 방법 및 장치 |
KR20180014655A (ko) * | 2016-08-01 | 2018-02-09 | 한국전자통신연구원 | 영상 부호화/복호화 방법 |
KR20180021879A (ko) * | 2015-06-29 | 2018-03-05 | 비<>컴 | 디지털 이미지를 인코딩하기 위한 방법, 디코딩 방법, 디바이스들, 및 연관 컴퓨터 프로그램들 |
-
2019
- 2019-03-18 KR KR1020190030514A patent/KR20190113591A/ko not_active Application Discontinuation
- 2019-03-18 WO PCT/KR2019/003101 patent/WO2019190098A1/ko active Application Filing
- 2019-03-18 CN CN201980031926.8A patent/CN112106373A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170058335A (ko) * | 2014-09-19 | 2017-05-26 | 엘지전자 주식회사 | 분리 가능한 변환에 기초하여 적응적으로 비디오 신호를 인코딩 및 디코딩하는 방법 및 장치 |
KR20170107452A (ko) * | 2015-01-26 | 2017-09-25 | 퀄컴 인코포레이티드 | 예측 잔차를 위한 향상된 다수의 변환들 |
KR20180021879A (ko) * | 2015-06-29 | 2018-03-05 | 비<>컴 | 디지털 이미지를 인코딩하기 위한 방법, 디코딩 방법, 디바이스들, 및 연관 컴퓨터 프로그램들 |
KR20180001485A (ko) * | 2016-06-24 | 2018-01-04 | 한국전자통신연구원 | 변환 기반의 영상 부호화/복호화 방법 및 장치 |
KR20180014655A (ko) * | 2016-08-01 | 2018-02-09 | 한국전자통신연구원 | 영상 부호화/복호화 방법 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114556943A (zh) * | 2020-04-03 | 2022-05-27 | Oppo广东移动通信有限公司 | 变换方法、编码器、解码器以及存储介质 |
WO2024124178A1 (en) * | 2022-12-08 | 2024-06-13 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and apparatus for transform training and coding |
Also Published As
Publication number | Publication date |
---|---|
CN112106373A (zh) | 2020-12-18 |
KR20190113591A (ko) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020185022A1 (ko) | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 | |
WO2018012830A1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
WO2017222334A1 (ko) | 변환 기반의 영상 부호화/복호화 방법 및 장치 | |
WO2020004987A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2019098758A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2019177354A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2018226015A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2020180162A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2018016823A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2019172705A1 (ko) | 샘플 필터링을 이용한 영상 부호화/복호화 방법 및 장치 | |
WO2020060185A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2019182385A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2020256447A1 (ko) | 2차 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2017222237A1 (ko) | 화면 내 예측 방법 및 장치 | |
WO2020005031A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2020060184A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2019190098A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2019027241A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2018174617A1 (ko) | 블록 형태에 기반한 예측 방법 및 장치 | |
WO2021015581A1 (ko) | 기하학적 분할을 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체 | |
WO2020060243A1 (ko) | 경계 처리를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2020060244A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2020050600A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2020184977A1 (ko) | 화면 내 블록 복사 기반 부호화/복호화 방법, 장치 및 비트스트림 저장매체 | |
WO2021049890A1 (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: 19778214 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: 19778214 Country of ref document: EP Kind code of ref document: A1 |