WO2025225965A1 - Video encoding method and apparatus based on adaptive transform mode, and video decoding method and apparatus - Google Patents
Video encoding method and apparatus based on adaptive transform mode, and video decoding method and apparatusInfo
- Publication number
- WO2025225965A1 WO2025225965A1 PCT/KR2025/005214 KR2025005214W WO2025225965A1 WO 2025225965 A1 WO2025225965 A1 WO 2025225965A1 KR 2025005214 W KR2025005214 W KR 2025005214W WO 2025225965 A1 WO2025225965 A1 WO 2025225965A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- current block
- transformation
- mode
- information
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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/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/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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Definitions
- the present disclosure relates to the field of video encoding and decoding. More specifically, the present disclosure relates to a transform coding method and device that performs transform coding using a plurality of transform modes with variously set sizes and shapes of transform blocks, and efficiently signals transform mode information used in transform coding.
- codecs include High Efficiency Video Coding (HEVC) and Versatile Video Coding (VVC).
- HEVC High Efficiency Video Coding
- VVC Versatile Video Coding
- Video coding standards utilize transform coding techniques to improve compression performance.
- Transform coding is a compression technique that transforms residual values in the pixel domain into the frequency domain and uses them as the target of coding.
- Existing video coding standards utilize discrete cosine transforms (DCTs) and discrete sine transforms (DSTs) to convert these values into frequency values.
- DCTs discrete cosine transforms
- DSTs discrete sine transforms
- the transform is set in units of TU (Transform Unit) and the conversion is performed.
- TU Transform Unit
- the block size corresponding to the CU is divided into Quad-tree method through the RQT process, and then the conversion process is performed for each divided size.
- a 32x32 CU is divided into blocks such as 32x32, 16x16, 8x8, and 4x4 and the conversion is performed.
- the HEVC/H.265 standard enables a conversion process that considers the characteristics of the residual through the RQT process, but has the disadvantage of not being able to create an optimized split size because all splits are centered around Quad-tree splits.
- transformation is basically performed in a block size equal to the CU size, except in special cases. Since the CU block size can be determined as a non-square block, the transformation block size can also be rectangular rather than square, enabling transformation that reflects the characteristics of the residual. While the VVC/H.266 standard supports adaptive partitioning block sizes for transform, there is a possibility that the optimized transformation process may not be performed if the CU block size and the residual distribution are different.
- the present disclosure provides a video decoding method and device, and a video encoding method and device that perform transform coding using a plurality of transform modes in which the sizes and shapes of transform blocks are set in various ways.
- Embodiments of the present disclosure disclose multiple transformation modes with various sizes and shapes of transformation blocks.
- embodiments of the present disclosure disclose a video encoding method and apparatus for transmitting conversion mode information regarding various conversion modes through a bitstream.
- embodiments of the present disclosure disclose a video decoding method and apparatus for determining a transform block based on transform mode information regarding various transform modes received through a bitstream.
- encoding and decoding of a video are performed using a plurality of transformation modes in which the sizes and shapes of transformation blocks are set in various ways, thereby providing a more flexible transformation block partitioning structure according to image characteristics, and improving the compression efficiency of the image.
- FIG. 1 is a block diagram illustrating an encoding device according to an embodiment of the present invention.
- FIG. 2 is a block diagram illustrating a decryption device according to an embodiment of the present disclosure.
- FIG. 3A is a diagram illustrating an example of a block partitioning structure according to one embodiment of the present disclosure.
- FIG. 3b is a diagram illustrating an example of a multi-type tree structure according to one embodiment of the present disclosure.
- FIG. 4 is a diagram illustrating an example of a block partitioning tree structure according to one embodiment of the present disclosure.
- FIG. 5 is a diagram illustrating an example of candidate transformation modes available for a transformation process of a current block (CU or sub-block) according to one embodiment of the present disclosure.
- FIG. 6 is a flowchart of a video encoding method according to one embodiment of the present disclosure.
- FIG. 7 is a flow chart of a video decoding method according to one embodiment of the present disclosure.
- FIG. 8a is a flow chart showing an example of a process in which a video encoder (100) adaptively configures conversion mode information.
- FIG. 8b is a flow chart showing an example of a process in which a video decoder (200) adaptively determines conversion mode information.
- FIG. 8c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- FIG. 8d is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- FIG. 9a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- FIG. 9b is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- FIG. 9c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- FIG. 9d is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- FIG. 10a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- FIG. 10b is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- FIG. 10c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- FIG. 10d is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- FIG. 11a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- Figure 11b is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- FIG. 11c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- FIG. 11d is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- FIG. 12a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- Figure 12b is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- FIG. 12c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- FIG. 12d is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- a video decoding method includes the steps of: determining at least one candidate transformation mode available for transformation of a current block from among a plurality of candidate transformation modes; determining a transformation mode applied to transformation of the current block from among the at least one candidate transformation mode; determining a transformation block used for inverse transformation of the current block based on the determined transformation mode; and performing inverse transformation on the current block in units of the transformation blocks.
- the plurality of candidate transformation modes include a transformation mode that uses a transformation block of the same size as the current block, and a transformation mode that uses a transformation block obtained by dividing the current block in at least one of a horizontal direction and a vertical direction at a predetermined ratio.
- the plurality of candidate transformation modes include a transformation mode that uses a transformation block obtained by dividing the current block into two parts in a ratio of 1:A (A is a natural number) in at least one of a horizontal direction and a vertical direction, into three parts in a ratio of 1:1:B (B is a natural number), into three parts in a ratio of 1:C:1 (C is a natural number), into three parts in a ratio of D:1:1 (D is a natural number), or into four parts in a ratio of 1:1:1:1.
- the plurality of candidate transformation modes include a first transformation mode using a transformation block having a width and height equal to the width and height of the current block, a second transformation mode using two transformation blocks having a size of width x height/2 by horizontally dividing the current block into two, a third transformation mode using four transformation blocks having a size of width x height/4 by horizontally dividing the current block into four, a fourth transformation mode using two transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2 by horizontally dividing the current block into three at a ratio of 1:2:1, a fifth transformation mode using two transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2 by horizontally dividing the current block into three at a ratio of 1:1:2, a fifth transformation mode using two transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2 by horizontally dividing the current block into three at a ratio of 2:1:1,
- a sixth transformation mode
- At least one candidate transform mode available for the inverse transform of the current block is determined for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and the at least one candidate transform mode is determined based on at least one of current frame information, slice information, partitioning information of the current block, a size of the current block, a shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, a size of the parent block, a shape of the parent block, prediction mode information of the parent block, transform mode information of a neighboring block of the current block, a maximum value of a transform coefficient included in the current block, and a position of a last non-zero transform coefficient of the current block according to a predetermined scanning order.
- At least one candidate transform mode available for inverse transformation of the current block is determined based on transform mode support information signaled for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit.
- At least one candidate transform mode available for the inverse transform of the current block is explicitly determined based on transform mode support information signaled for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and a final candidate transform mode is determined based on additional information among candidate transform modes, wherein the additional information is at least one of current frame information, slice information, partitioning information of a current block, a size of a current block, a shape of a current block, prediction mode information of a current block, partitioning information of a parent block including the current block, a size of a parent block, a shape of a parent block, prediction mode information of a parent block, transform mode information of a neighboring block of the current block, a maximum value of a transform coefficient included in the current block, and a position of a last non-zero transform coefficient of the current block according to a predetermined scanning order.
- the transform mode applied to the inverse transform of the current block is determined from among the at least one candidate transform mode based on at least one of current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transform mode information of a neighboring block of the current block, the maximum value of a transform coefficient included in the current block, and the position of the last non-zero transform coefficient of the current block according to a predetermined scanning order.
- the transformation mode applied to the inverse transformation of the current block is determined from among at least one candidate transformation mode determined based on transformation mode information signaled for each unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit.
- the step of determining a transformation mode applied to the inverse transformation of the current block includes the steps of: determining vertical divisibility and horizontal divisibility of the current block; identifying semantics of transformation mode information in a bitstream based on the vertical divisibility and horizontal divisibility of the current block; and determining the transformation mode of the current block based on the transformation mode information.
- the transformation mode information when the current block is divisible in both the vertical direction and the horizontal direction, is index information indicating one of the candidate transformation modes, and when the current block is divisible in only one of the vertical direction and the horizontal direction, the transformation mode information includes i) information indicating a division direction of the current block among the vertical direction and the horizontal direction, and ii) information indicating whether to divide according to the division direction, and when the current block is not divisible in either the vertical direction or the horizontal direction, the transformation mode information is not included in the bitstream, and the transformation block of the current block is determined to have the same size and shape as the current block.
- the transformation mode information when the current block is divisible in both the vertical direction and the horizontal direction, is index information indicating one of the candidate transformation modes, and when the current block is divisible in only one of the vertical direction and the horizontal direction, the transformation mode information includes i) information indicating a division direction of the current block among the vertical direction and the horizontal direction, and ii) information indicating one transformation mode among a plurality of transformation modes applicable according to the divisible direction, and when the current block is not divisible in either the vertical direction or the horizontal direction, the transformation mode information is not included in the bitstream, and the transformation block of the current block is determined to have the same size and shape as the current block.
- the step of determining a transformation mode applied to the inverse transformation of the current block includes: determining vertical divisibility and horizontal divisibility of the current block; if the current block is arbitrarily incapable of both vertical divisibility and horizontal divisibility based on the determined vertical divisibility and horizontal divisibility and transformation mode information obtained from a bitstream indicates that the current block is not to be divided, determining a transformation mode that does not divide the current block while using a transformation block having the same size and shape as the current block as the transformation mode of the current block; obtaining information indicating one of candidate prediction modes in which the current block is arbitrarily divisible in one of the vertical divisibility and horizontal divisibility directions and is divided in one of the vertical divisibility and horizontal divisibility directions from the transformation mode information obtained from the bitstream; and determining the transformation mode of the current block based on the information indicating one of the candidate prediction modes.
- the step of determining a transformation mode applied to the inverse transformation of the current block includes: determining a vertical divisibility and a horizontal divisibility of the current block and a number of possible divisibility times of the current block; if, based on the determined vertical divisibility and horizontal divisibility, the current block is arbitrarily incapable of both vertical divisibility and horizontal divisibility and transformation mode information acquired from a bitstream indicates that the current block is not divisible, determining a transformation mode that does not divide the current block while using a transformation block having the same size and shape as the current block as the transformation mode of the current block; if the current block is arbitrarily divisible in one of the vertical divisibility and the horizontal divisibility directions, obtaining information indicating one of the remaining candidate prediction modes, excluding a transformation mode that exceeds the number of possible divisibility times among candidate prediction modes that are divided in one of the vertical divisibility directions or the horizontal divisibility directions based on the number of possible divisibility times; and determining a transformation mode of the
- the step of determining at least one candidate transformation mode available for inverse transformation of the current block limits the candidate transformation mode or does not perform segmentation for inverse transformation of the current block based on at least one of a result of comparing the size of the current block with the size of a predetermined data unit, the length of a smaller side among the width and height of the current block, the total number of pixels included in the current block, a result of comparing the size of the current block with the size of a processing unit, and whether the current block satisfies a predetermined boundary condition.
- the method further comprises: determining a context model based on at least one of current frame information, slice information, partitioning information of a current block, a size of the current block, a shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, a size of the parent block, a shape of the parent block, prediction mode information of the parent block, transform mode information of a neighboring block of the current block, a maximum value of a transform coefficient included in the current block, and a position of a last non-zero transform coefficient of the current block according to a predetermined scanning order; and decoding transform mode information included in the bitstream based on the determined context model.
- a video decoding device for performing the video decoding method and a computer-readable recording medium recording a program for executing the video decoding method are included.
- a video encoding method comprises the steps of: determining at least one candidate transformation mode available for transformation of a current block from among a plurality of candidate transformation modes; determining a transformation mode applied to transformation of the current block from among the at least one candidate transformation mode; determining a transformation block used for transformation of the current block based on the determined transformation mode; and performing transformation on the current block in units of the transformation blocks.
- a video encoding device for performing the video encoding method and a computer-readable recording medium recording a program for executing the video encoding method are included.
- the preferred embodiments of the present invention implemented below omit, as much as possible, the system functional components that are already provided in each system functional configuration or are commonly provided in the technical field to which the present invention belongs, and focus on explaining the functional components that must be additionally provided for the present invention.
- a device that encodes an image to generate a video signal bitstream is referred to as an encoding device, an encoding device, or an encoder
- a device that decodes the video signal bitstream to restore an image is referred to as a decoding device, a decoding device, or a decoder.
- a pixel or pel is the smallest unit that constitutes an image, and the terms pixel and sample can be used interchangeably.
- a sample can generally represent a pixel or a pixel value, or it can represent only a pixel or pixel value of the luminance component, or only a pixel or pixel value of the chroma component.
- the unit is used to refer to a basic unit of image processing or a specific location of a picture, and represents an image area including at least one of a luminance component and a chrominance component.
- the unit can be used as a concept including a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), and a transform unit (TU).
- a block represents an image area including a specific component among luminance components and chrominance components
- an MxN block can represent a set of samples or transform coefficients consisting of M columns and N rows.
- the terms unit, block, partition, signal, and area may be used interchangeably.
- a picture refers to a field or a frame, and these can be used interchangeably.
- the image is an interlaced image
- one frame is divided into an odd (or odd, top) field and an even (or even, bottom) field, and each field is composed of a single picture unit, which can be encoded or decoded.
- the image is a progressive image
- one frame can be composed as a picture, which can be encoded or decoded.
- FIG. 1 is a block diagram illustrating an encoding device according to an embodiment of the present invention, and is intended to explain the configuration and operation of a video encoder for encoding an image.
- a video encoder (100) may be configured to include a transformation unit (110), a quantization unit (120), an inverse quantization unit (130), an inverse transformation unit (140), a filtering unit (150), a prediction unit (160), a DPB (Decoded Picture Buffer, 170), and an entropy coding unit (180).
- the conversion unit (110) converts the residual signal, which is the difference between the input video signal and the prediction signal generated by the prediction unit (160), to obtain a conversion coefficient value.
- the Discrete Cosine Transform (DCT), the Discrete Sine Transform (DST), or the Wavelet Transform can be used.
- DCT Discrete Cosine Transform
- DST Discrete Sine Transform
- Wavelet Transform can be used.
- the transform kernel used for transforming the residual block may be a transform kernel having separable vertical and horizontal transform properties.
- the transform for the residual block may be performed separately as vertical and horizontal transforms.
- the encoder may perform a vertical transform by applying the transform kernel in the vertical direction of the residual block.
- the encoder may perform a horizontal transform by applying the transform kernel in the horizontal direction of the residual block.
- the transform kernel may be used as a term referring to a set of parameters used for transforming the residual signal, such as a transform matrix, a transform array, a transform function, or a transform, and may be any one of a plurality of available kernels, and transform kernels based on different transform types may be used for each of the vertical transform and the horizontal transform.
- the transformation coefficients may be distributed such that higher coefficients are distributed toward the upper left corner of the block, and coefficients closer to '0' are distributed toward the lower right corner of the block. Furthermore, as the current block size increases, there is a possibility that many '0' coefficients exist in the lower right area. To reduce the transformation complexity of large blocks, only the upper left area can be left, and the remaining areas can be reset to '0'.
- error signals may exist only in some regions of a coding block, in which case the conversion process may be performed only on some arbitrary regions. For example, in a block of size 2Nx2N, error signals may exist only in the first 2NxN block, in which case the conversion process may be performed only on the first 2NxN block, but the conversion process may not be performed on the second 2NxN block and may not be encoded or decoded.
- the encoder may perform additional transformations before the transform coefficients are quantized.
- the transformation method described above may be referred to as a primary transform, and the additional transformation may be referred to as a secondary transform.
- the secondary transform can be optional for each residual block.
- the encoder can improve coding efficiency by performing the secondary transform in areas where it is difficult to focus energy in the low-frequency region using the primary transform alone.
- a secondary transformation may be additionally performed on blocks in which residual values appear significantly in directions other than the horizontal or vertical direction of the residual block, and the secondary transformation may not be performed separately into vertical transformation and horizontal transformation, unlike the primary transformation.
- Such a secondary transformation may be referred to as a low frequency non-separable transform (LFNST).
- the quantization unit (120) quantizes the transformation coefficient value output from the transformation unit (110).
- a method is used in which, instead of coding the picture signal as is, a picture is predicted using an already coded area through a prediction unit (160), and a restored picture is obtained by adding a residual value between the original picture and the predicted picture to the predicted picture.
- the encoder can perform a process of reconstructing the current encoded block.
- the inverse quantization unit (130) inversely quantizes the transform coefficient values, and the inverse transformation unit (140) restores the residual values using the inverse quantized transform coefficient values.
- the filtering unit (150) performs filtering operations using a deblocking filter, a sample adaptive offset (SAO), an adaptive loop filter (ALF), etc. to improve the quality of the restored picture and enhance encoding efficiency.
- a deblocking filter a sample adaptive offset (SAO), an adaptive loop filter (ALF), etc.
- SAO sample adaptive offset
- ALF adaptive loop filter
- a deblocking filter is a filter for removing distortion within a block generated at the boundary between blocks in a restored picture.
- the encoder can determine whether to apply a deblocking filter to a boundary based on the distribution of pixels included in several columns or rows based on an arbitrary boundary within a block.
- the filtering unit (150) can apply a long filter, a strong filter, or a weak filter depending on the deblocking filtering strength, and can process horizontal filtering and vertical filtering in parallel.
- Sample Adaptive Offset can be used to correct the offset from the original image on a pixel-by-pixel basis for a residual block to which a deblocking filter is applied.
- the filtering unit (150) can use a method (Band Offset) that divides the pixels included in the image into a certain number of regions, determines the regions to perform offset correction, and applies the offset to the regions.
- the filtering unit (150) can use a method (Edge Offset) that applies the offset by considering the edge information of each pixel.
- Adaptive Loop Filtering is a method that divides pixels in an image into predetermined groups, determines a filter to be applied to each group, and performs differential filtering for each group.
- Information regarding whether to apply an adaptive loop filter can be signaled on a coding unit basis, and the shape and filter coefficients of the ALF filter to be applied can vary depending on the block. Furthermore, the same adaptive loop filter can be applied regardless of the characteristics of the target block.
- the filtered picture can be stored in DPB (170) to be used as a reference picture.
- the prediction unit (160) includes an intra/IBC prediction unit (161) and an inter prediction unit (165).
- the intra/IBC prediction unit (161) performs intra prediction and IBC prediction within the current picture
- the inter prediction unit (165) performs inter prediction to predict the current picture using a reference picture stored in the DPB (170).
- the intra/IBC prediction unit (161) performs intra prediction from restored areas within the current picture and transmits intra encoding information to the entropy coding unit (180).
- the intra encoding information may include at least one of an intra prediction mode, an MPM (Most Probable Mode) flag, an MPM index, and information about a reference sample.
- the intra/IBC prediction unit (161) can perform IBC (Intra BLock Copy) prediction from restored samples within the current picture and transmit IBC encoding information to the entropy coding unit (180).
- IBC Intra BLock Copy
- the intra/IBC prediction unit (161) obtains a block vector value indicating a reference area used for prediction of the current area by referring to a specific area within the current picture, and can perform IBC prediction using the obtained block vector value.
- the intra/IBC prediction unit (161) can transmit IBC encoding information including at least one of the size information of the reference area and block vector information (index information for block vector prediction of the current block within the motion candidate list, block vector difference information) to the entropy coding unit (160).
- the inter prediction unit (165) refers to a specific area of the restored reference picture to find the part most similar to the current area, obtains a motion vector value which is the distance between the areas, and transmits motion information (reference direction indication information (L0 prediction, L1 prediction, bidirectional prediction), reference picture index, motion vector information, etc.) for the obtained reference area to the entropy coding unit (180).
- motion information reference direction indication information (L0 prediction, L1 prediction, bidirectional prediction), reference picture index, motion vector information, etc.) for the obtained reference area to the entropy coding unit (180).
- the inter prediction unit (165) performs motion compensation using motion information to generate a prediction block for the current block, and transmits inter encoding information including motion information for the reference area to the entropy coding unit (180).
- the quantized transform coefficients in the form of a two-dimensional array can be rearranged into a one-dimensional array for entropy coding.
- the method of scanning the quantized transform coefficients can be determined according to the size of the transform block and the intra prediction mode, and diagonal, vertical, and horizontal scans can be applied, and the scan information can be signaled on a block-by-block basis or derived from the decoder according to a set rule.
- the entropy coding unit (180) generates a bitstream by entropy coding information representing quantized transform coefficients, intra-coding information, and inter-coding information, and for this purpose, a variable length coding (VLC) method and an arithmetic coding method can be used.
- VLC variable length coding
- VLC Variable-length coding
- variable length coding method a context-based adaptive variable length coding (CAVLC) method can be used.
- CAVLC context-based adaptive variable length coding
- Arithmetic coding converts consecutive data symbols into a single prime number using the probability distribution of each data symbol, thereby obtaining the optimal prime number bits required to express each symbol.
- CABAC context-based adaptive binary arithmetic code
- CABAC is a binary arithmetic encoding method that utilizes multiple context models generated based on experimentally derived probabilities.
- the context models can also be referred to as context models.
- the encoder binarizes each symbol using methods such as exp-Golomb.
- the binarized 0s and 1s can be represented as bins.
- Context initialization initializes the occurrence probability of each symbol, determined by the symbol type, quantization parameter (QP), and slice type (I, P, B).
- QP quantization parameter
- I, P, B slice type
- the context model provides the probability of occurrence of the Least Probable Symbol (LPS) or Most Probable Symbol (MPS) for the symbol currently being coded, and information (valMPS) on which empty value between 0 and 1 corresponds to the MPS.
- LPS Least Probable Symbol
- MPS Most Probable Symbol
- valMPS information on which empty value between 0 and 1 corresponds to the MPS.
- One of several context models is selected through a context index (ctxIdx), and the context index can be derived through information of the block currently to be encoded or information of surrounding blocks.
- Initialization for binary arithmetic coding is performed based on the probability model selected from the context model.
- Binary arithmetic coding is performed by dividing the data into probability intervals based on the occurrence probabilities of 0 and 1, and then encoding the probability interval corresponding to the bin to be processed becomes the entire probability interval for the next bin to be processed.
- the location information within the probability interval processed for the last bin is output.
- a renormalization process is performed to expand the probability interval and output the corresponding location information.
- a probability update process can be performed, which sets a new probability for the next bin to be processed based on the information from the processed bin.
- NAL Network Abstraction Layer
- VCL Video Coding Layer
- non-VCL NAL units containing parameter information for decoding video data
- various types of VCL or non-VCL NAL units may exist.
- a NAL unit consists of NAL header information and data, a Raw Byte Sequence Payload (RBSP).
- the NAL header information includes summary information about the RBSP.
- the RBSP of a VCL NAL unit contains an integer number of encoded coding tree units.
- the bitstream In order to decode a bitstream in a decoder, the bitstream must first be divided into NAL units, and then each divided NAL unit must be decoded. Meanwhile, the information required for decoding the bitstream can be transmitted as part of a picture parameter set (PPS), a sequence parameter set (SPS), a video parameter set (VPS), etc.
- PPS picture parameter set
- SPS sequence parameter set
- VPS video parameter set
- the configuration and operation of the encoder described with reference to FIG. 1 are according to one embodiment of the present invention, and some configurations may be omitted or added as needed.
- FIG. 2 is a block diagram illustrating a decoding device according to one embodiment of the present disclosure, and is intended to explain the configuration and operation of a video decoder for decoding a video.
- a video decoder (200) may be configured to include an entropy decoding unit (210), an inverse quantization unit (220), an inverse transformation unit (230), a filtering unit (240), a prediction unit (260), and a DPB (Decoded Picture Buffer, 270).
- an entropy decoding unit (210) may be configured to include an entropy decoding unit (210), an inverse quantization unit (220), an inverse transformation unit (230), a filtering unit (240), a prediction unit (260), and a DPB (Decoded Picture Buffer, 270).
- a DPB Decoded Picture Buffer
- the entropy decoding unit (210) entropy decodes the bitstream to extract transform coefficient information, intra-coding information, inter-coding information, etc. for each region.
- the entropy decoding unit (210) can obtain a binary code for transform coefficient information of a specific area from a bitstream, and can obtain a quantized transform coefficient by de-binarizing the binary code.
- the inverse quantization unit (220) inversely quantizes the quantized transform coefficients, and the inverse transformation unit (230) restores the residual value using the inverse quantized transform coefficients.
- the residual value obtained from the inverse transformation unit (230) is combined with the predicted value obtained from the prediction unit (260) to restore the original pixel value.
- the filtering unit (240) performs a filtering operation using a deblocking filter, a sample adaptive offset, an adaptive loop filter, etc. to improve the image quality of the restored picture, and the filtered picture can be output or stored in the DPB (270) to be used as a reference picture for the next picture.
- the prediction unit (260) includes an intra/IBC prediction unit (261) and an inter prediction unit (265), and generates a prediction picture by utilizing the encoding type decoded through the entropy decoding unit (210), the transform coefficient for each region, and the intra/inter encoding information.
- the decoded region of the current picture or other pictures containing the current block can be used.
- a picture (or tile/slice) that performs intra prediction or intra BC prediction using only the current picture for restoration is called an intra picture or I picture (or tile/slice), and a picture (or tile/slice) that can perform all of intra prediction, inter prediction, and intra BC prediction is called an inter picture (or tile/slice).
- a picture (or tile/slice) that uses at most one motion vector and reference picture index to predict sample values of each block among inter-pictures (or tiles/slices) is called a predictive picture or P-picture (or tile/slice)
- a picture (or tile/slice) that uses at most two motion vectors and reference picture indices is called a bi-predictive picture or B-picture (or tile/slice).
- a P picture uses at most one motion information set to predict each block
- a B picture uses at most two motion information sets to predict each block.
- a motion information set may include one or more motion vectors and one reference picture index.
- the intra/IBC prediction unit (261) generates a prediction block using intra encoding information and restored samples within the current picture, and the intra encoding information may include at least one of an intra prediction mode, an MPM (Most Probable Mode) flag, and an MPM index.
- the intra/IBC prediction unit (261) can predict sample values of the current block using restored samples located on the left and/or upper side of the current block as reference samples.
- the reference samples may be samples adjacent to the left boundary of the current block and/or samples adjacent to the upper boundary, and may be samples located on a line within a preset distance from the left boundary of the current block among samples of neighboring blocks of the current block and/or samples located on a line within a preset distance from the upper boundary of the current block.
- the neighboring blocks of the current block may include at least one of a left (L) block, an upper (A) block, a below left (BL) block, an above right (AR) block, or an above left (AL) block adjacent to the current block.
- the intra/IBC prediction unit (261) can restore the current region by referring to a specific region including restored samples within the current picture. To this end, the intra/IBC prediction unit (261) can perform IBC prediction using IBC encoding information obtained from the entropy decoding unit (210), and the IBC encoding information can include block vector information.
- the inter prediction unit (265) generates a prediction block using the reference picture and inter encoding information stored in the DPB (270), and the inter encoding information may include a set of motion information (reference picture index, motion vector information, etc.) of the current block for the reference block.
- the inter encoding information may include a set of motion information (reference picture index, motion vector information, etc.) of the current block for the reference block.
- inter prediction can include L0 prediction, L1 prediction, and bi-prediction.
- L0 prediction refers to prediction using a single reference picture included in the L0 picture list
- L1 prediction refers to prediction using a single reference picture included in the L1 picture list.
- a set of motion information e.g., motion vector and reference picture index
- two reference regions can be used. These two reference regions may exist in the same reference picture or in different pictures. Accordingly, in the two sets of motion information used in the biprediction method, two motion vectors may correspond to the same reference picture index or to different reference picture indices.
- the reference pictures are pictures that are located temporally before or after the current picture, and may be completed pictures that have already been restored, and the two reference areas used in the pair prediction method may be areas selected from the L0 picture list and the L1 picture list, respectively.
- the inter prediction unit (265) can obtain a reference block of the current block using a motion vector and a reference picture index, and the reference block exists in a reference picture corresponding to the reference picture index.
- sample values of a block specified by a motion vector or their interpolated values can be used as a predictor of the current block.
- an 8-tap interpolation filter can be used for the luminance signal
- a 4-tap interpolation filter can be used for the chrominance signal.
- the configuration and operation of the decoder described with reference to FIG. 2 are according to one embodiment of the present disclosure, and some configurations may be omitted or added as needed, and the decoder may decode an image by performing the reverse process of the encoding method of the encoder described above.
- the block partitioning process according to the present disclosure may be performed in the aforementioned video encoder (100), and partitioning-related information may be encoded in the entropy coding unit (180) and transmitted to the video decoder (200) in the form of a bitstream.
- the video encoder (100) may perform encoding procedures, such as prediction, transformation, block restoration, and filtering, based on the determined block partitioning structure.
- the entropy decoding unit (210) of the video decoder (200) can parse a bitstream to obtain block partitioning-related information and determine a block partitioning structure based on the block partitioning-related information.
- the video decoder (200) can perform a decoding procedure, such as prediction, inverse transformation, block restoration, and filtering, based on the determined block partitioning structure.
- the block partitioning process according to the present disclosure can be implicitly performed based on various additional information related to the current block in the video encoder (100) and the video decoder (200).
- the block partitioning process according to the present disclosure may be performed by encoding some information related to partitioning in an entropy coding unit (180) and transmitting it to a video decoder (200) in the form of a bitstream, and implicitly determining other information related to partitioning.
- a video is a sequence of pictures, and each picture that makes up the video can be encoded by dividing it into sub-pictures, slices, tiles, etc.
- a sub-picture can include one or more slices or tiles.
- a slice can contain multiple tiles or subpictures, and a tile can contain multiple subpictures or slices.
- Subpictures, slices, and tiles can be encoded or decoded independently of each other, which is effective for parallel processing and improved processing speed. However, since encoded information of adjacent subpictures, slices, and tiles cannot be used, the amount of bits may increase.
- a coding tree unit can correspond to a coding tree block (CTB).
- a coding tree unit can also be referred to as a super block (SB).
- a CTU may include an encoding tree block of luma samples and two encoding tree blocks of corresponding chroma samples.
- a CTU may include a luma block of luma samples and two corresponding blocks of chroma samples of a corresponding size smaller than or equal to the size of the luma block, depending on the color format.
- the maximum allowable size of a CTU may be different from the maximum allowable size of a CTU for a transformation. For example, the maximum allowable size of a luma block within a CTU may be 128x128.
- a CTU can be partitioned into coding units (CUs) based on a quad-tree (QT) structure.
- a CTU can be partitioned based on a predetermined block partitioning tree structure.
- each coding unit can have a square or rectangular shape.
- a CTU can be first partitioned into a quad-tree structure. Thereafter, leaf nodes of the quad-tree structure can be further partitioned by a multi-type tree structure or a predetermined block partitioning tree structure.
- a CTU can be partitioned based on a multi-type tree structure partitioning including not only a quad-tree but also a binary-tree (BT) and a ternary-tree (TT).
- BT binary-tree
- TT ternary-tree
- FIG. 3A is a diagram illustrating an example of a block partitioning structure according to one embodiment of the present disclosure.
- the video encoder (100) divides the picture into blocks of a predetermined size. These blocks of a predetermined size may be referred to as CTUs or SBs. Based on luma, the blocks of a predetermined size may be 64X64 or 128X128.
- the video encoder (100) can partition the current block according to a partitioning structure as illustrated in FIG. 3A.
- the video encoder (100) can use the current block as is without partitioning it (NONE), divide the current block horizontally into two (HORZ), divide the current block vertically into two (VERT), divide the current block into four equal-sized blocks (SPLIT), divide the current block horizontally asymmetrically (HORZ_A, HORZ_B), divide the current block vertically asymmetrically (VERT_A, VERT_B), divide the current block into four horizontally (HORZ_4), or divide the current block into four vertically (VERT_4).
- the partitioning process according to the partitioning structure of Fig. 3a can be performed recursively. That is, one of the partitions divided according to the partitioning structure can be divided again according to the partitioning structure of Fig. 3a.
- This recursive partitioning process can be limited according to the block size and the partitioning mode. That is, the recursive partitioning process can be performed only for blocks larger than a certain size, or the recursive partitioning process can be performed only for blocks divided according to a specific partitioning mode.
- each partition divided into a quadtree structure (SPLIT) can be recursively divided according to one of the ten tree structures illustrated in Fig.
- the partition determined according to one of the remaining nine tree structures can be determined as a final leaf node that is no longer divided into other partitions.
- the leaf node that is no longer divided according to the block partitioning structure of Fig. 3a can be referred to as a CU or a sub-block (SB). These CUs can be used for prediction and transformation procedures.
- Specific partitioning information may be signaled to indicate whether the current encoding unit is partitioned according to the block partitioning structure of FIG. 3A.
- the specific partitioning information may include mode information indicating one of the block partitioning structures of FIG. 3A, a flag indicating whether the partitioning direction is horizontal/vertical, or a flag indicating the partitioning type.
- FIG. 3b is a diagram illustrating an example of a multi-type tree structure according to one embodiment of the present disclosure.
- the video encoder (100) divides the picture into blocks of a predetermined size.
- the blocks (CTUs) of the predetermined size can be divided based on the multi-type tree structure illustrated in FIG. 3b.
- the division process according to the multi-type tree structure of FIG. 3b can be performed recursively.
- the multi-type tree structure may include six split types as illustrated in FIG. 3B.
- the six split types may include using the current block as is without splitting it (NO SPLIT), splitting the current block into four equal-sized blocks (QUADTREE), vertical binary splitting (SPLIT_BT_VER), horizontal binary splitting (SPLIT_BT_HOR), vertical ternary splitting (SPLIT_TT_VER), and horizontal ternary splitting (SPLIT_TT_HOR).
- vertical binary splitting may be referred to as vertical binary tree splitting
- horizontal binary splitting may be referred to as horizontal binary tree splitting
- vertical ternary splitting may be referred to as vertical 3-split tree splitting
- horizontal ternary splitting may be referred to as horizontal 3-split tree splitting.
- Leaf nodes of the multi-type tree structure may be referred to as CUs. These CUs can be used for prediction and transformation procedures.
- Vertical binary tree partitioning and horizontal binary tree partitioning are methods of dividing the current encoding unit into two encoding units by dividing it in half horizontally or vertically, respectively. For example, if a 32x32 sized encoding unit is vertically partitioned into two encoding units according to vertical binary tree partitioning, the two partitioned encoding units can each have a size of 16x32.
- Vertical 3-tree splitting and horizontal 3-tree splitting splitting split the current coding unit into three coding units by splitting the width or height in a ratio of 1:2:1, respectively.
- the three split coding units may have sizes of 16x8, 16x16, and 16x8 from the top, respectively.
- the three split coding units may have sizes of 8x32, 16x32, and 8x32 from the left, respectively.
- Specified split information may be signaled to indicate whether the current encoding unit is split according to a multi-type tree structure.
- Split information related to splitting of the multi-type tree structure may include a flag (mtt_split_cu_vertical_flag) indicating whether the splitting direction according to the multi-type tree structure is vertical and a flag (mtt_split_cu_binary_flag) indicating whether the splitting type is a binary split type or a ternary split type. If the value of mtt_split_cu_vertical_flag is 0, it may indicate that the splitting direction according to the multi-type tree structure of the current encoding unit is horizontal, and if it is 1, it may indicate that the splitting direction is vertical.
- mtt_split_cu_binary_flag it may indicate that the splitting according to the multi-type tree structure of the current encoding unit is ternary, that is, split into three, and if it is 1, it may indicate that the splitting according to the multi-type tree structure is binary, that is, split into two.
- the video encoder (100) encodes the bitstream by including the split information (mtt_split_cu_vertical_flag, mtt_split_cu_binary_flag) according to the multi-type tree structure, and the video decoder (200) can determine the multi-type tree structure of the encoding unit by parsing the split information (mtt_split_cu_vertical_flag, mtt_split_cu_binary_flag) included in the bitstream.
- the split information mtt_split_cu_vertical_flag, mtt_split_cu_binary_flag
- FIG. 4 is a diagram illustrating an example of a block partitioning tree structure according to one embodiment of the present disclosure.
- a picture (400) is divided into coding tree units (CTUs), and a division structure is determined for each CTU.
- Each CTU can be hierarchically divided into a plurality of lower coding units with depth information (cqtdepth) based on the tree structure.
- the depth information (cqtdepth) is a variable indicating the depth divided from the CTU to the current coding unit, and the cqtDepth of the CTU is set to 0, and as the CTU is divided into quadtrees, the cqtdepth may increase by a predetermined value, for example, 1.
- the cqtdepth of the divided coding unit may increase by a predetermined value, for example, 1, whenever the horizontal size and/or vertical size of the CU is reduced by half due to the division.
- the split information can be 1-bit flag information. All CUs, except for coding units that are no longer split, can include split information. For example, if the value of the split information is the first value, the CU may not be split, and if the value of the split information is the second value, the CU may be split.
- the split information can be a flag (split_qt_flag) indicating whether the current coding unit is split into coding units of a lower depth according to a quad-type tree structure.
- split_qt_flag If the split information (split_qt_flag) is 0, it can indicate that the current coding unit is not split, and if the split information (split_qt_flag) is 1, it can indicate that the current coding unit is split into two horizontally and vertically according to the quad-type tree structure and split into four coding units of a lower depth.
- split_qt_flag split information for the CTU (410) and the coding units included in the CTU (410) will be described. If the CTU (410) is no longer split into coding units of lower depths, the split information (split_qt_flag) of the CTU (410) is set to 0. In order to have a split structure as shown in FIG.
- the information (split_qt_flag) is set to 1
- the split information (split_qt_flag) of the remaining coding units (420a 420b, 420c) is set to 0, and since the four coding units (430a, 430b, 430c, 440d)
- the following parameters may be included in one or more of the positions of the Sequence Parameter Set (SPS), the Picture Parameter Set (PPS), the Picture Header (PH), and the Slice Header (SH) in HLS (High-Level Syntax) and signaled from the video encoder (100) to the video decoder (200).
- SPS Sequence Parameter Set
- PPS Picture Parameter Set
- PH Picture Header
- SH Slice Header
- CTU size which is a parameter indicating the size of the root node of the quadtree
- MinQTSize which is a parameter indicating the minimum available size of the quadtree leaf node
- MaxBTSize which is a parameter indicating the maximum available size of the binary tree root node
- MaxTTSize which is a parameter indicating the maximum available size of the ternary tree root node
- MaxMttDepth which is a parameter indicating the maximum allowed hierarchy depth of the multitype tree split from the quadtree leaf node
- MinBtSize which is a parameter indicating the minimum available leaf node size of the binary tree
- MinTtSize which is a parameter indicating the minimum available leaf node size of the ternary tree.
- the CTU size can be set to a 128x128 luma block and two 64x64 chroma blocks corresponding to the luma block.
- MinQTSize can be set to 16x16
- MaxBtSize can be set to 128x1208
- MaxTtSzie can be set to 64x64
- MinBtSize and MinTtSize can be set to 4x4
- MaxMttDepth can be set to 4.
- Quadtree partitioning can be applied to the CTU to generate quadtree leaf nodes.
- the quadtree leaf nodes can be called leaf QT nodes.
- the quadtree leaf nodes can have sizes from 16x16 (e.g.
- MinQTSize 128x128 (e.g. the CTU size).
- 128x1208 it may not be further split into binary trees/ternary trees. This is because even if it is split, it exceeds MaxBtsize and MaxTtszie (i.e. 64x64).
- a leaf QT node can be further split into a multitype tree. Therefore, a leaf QT node is a root node for a multitype tree, and a leaf QT node can have a multitype tree depth (mttDepth) of 0. If the multitype tree depth reaches MaxMttdepth (e.g., 4), no further splits may be considered.
- MaxMttdepth e.g. 4
- the encoder may omit signaling of the splitting information. In this case, the decoder may derive the splitting information as a predetermined value.
- the block partitioning structure according to the present disclosure is not limited to that illustrated in FIGS. 3A and 3B and may be added or modified.
- the block partitioning modes illustrated in FIGS. 3A and 3B may be combined, or the block partitioning structure may be determined by excluding some block partitioning modes.
- the video encoder (100) can determine CUs, which are leaf nodes that are no longer divided, based on the block partitioning structure exemplified in FIGS. 3a and 3b, and perform prediction and transformation on a CU-by-CU basis.
- CUs which are leaf nodes that are no longer divided
- FIGS. 3a and 3b the block partitioning structure exemplified in FIGS. 3a and 3b
- a transformation block which is a block unit in which transformation is performed on a CU-by-CU basis, will be described.
- FIG. 5 is a diagram illustrating an example of candidate transformation modes available for a transformation process of a current block (CU or sub-block) according to one embodiment of the present disclosure.
- the shape and size of a transformation block for adaptively applying transformation coding are determined in advance to determine whether to apply transformation in units of blocks, and the video encoder (100) and the video decoder (200) can perform the transformation process in units of the same blocks.
- the transformation process performed in units of blocks in the video encoder (100) and the reverse transformation process which is the reverse process of the transformation process performed in units of blocks in the video decoder (200), may both be referred to as transformation processes.
- Candidate transformation modes applicable to the transformation process of the current block may include a transformation mode that uses a transformation block of the same size as the current block, and a transformation mode that uses a transformation block obtained by dividing the current block at a predetermined ratio in at least one of the horizontal and vertical directions.
- the plurality of candidate transformation modes may include a transformation mode that utilizes a transformation block obtained by dividing the current block into two parts in a ratio of 1:A (where A is a natural number) in at least one of the horizontal and vertical directions, into three parts in a ratio of 1:1:B (where B is a natural number), into three parts in a ratio of 1:C:1 (where C is a natural number), into three parts in a ratio of D:1:1 (where D is a natural number), or into four parts in a ratio of 1:1:1:1.
- A is a natural number
- the plurality of candidate transformation modes may include a transformation mode that utilizes a transformation block obtained by dividing the current block into two parts in a ratio of 1:A (where A is a natural number) in at least one of the horizontal and vertical directions, into three parts in a ratio of 1:1:B (where B is a natural number), into three parts in a ratio of 1:C:1 (where C is a natural number), into three parts in a ratio of
- the plurality of candidate transformation modes include a first transformation mode (501) that uses a transformation block having the same width and height as the width and height of the current block, a second transformation mode (502) that uses two transformation blocks having a size of width x height/2 that divide the current block into two horizontally, a third transformation mode (503) that uses four transformation blocks having a size of width x height/4 that divide the current block into four horizontally, a fourth transformation mode (504) that divides the current block into three horizontally at a ratio of 1:2:1 and uses two transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2, a fifth transformation mode (505) that divides the current block into three horizontally at a ratio of 1:1:2 and uses two transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2, and a fifth transformation mode (506) that divides the current block into three horizontally at a ratio of 1:1:2 and uses A
- a tenth transformation mode (510) using a transformation block having a size of height an eleventh transformation mode (511) using two transformation blocks having a size of width/4 x height which divide the current block into three parts in a ratio of 1:1:2 in the vertical direction and one transformation block having a size of width/2 x height, a twelfth transformation mode (512) using two transformation blocks having a size of width/4 x height which divide the current block into three parts in a ratio of 2:1:1 in the vertical direction and one transformation block having a size of width/2 x height, a thirteenth transformation mode (513) using two transformation blocks having a size of width x height/4 which divide the current block into three parts in a ratio of 1:2:1 in the vertical direction and two transformation blocks having a size of width/2 x height/2 which divide the width x height/2 block into two parts in the vertical direction again, and a thirteenth transformation mode (514) using four transformation blocks having a size of width/2 x height/2 which divide the current block into two parts in the horizontal and vertical directions.
- the candidate transformation modes applicable to the transformation process of the current block may be adaptively configured by selecting only some or all of the first transformation mode to the fourteenth transformation mode illustrated in FIG. 5. Furthermore, the candidate transformation modes are not limited to those illustrated in FIG. 5, and transformation modes that divide the current block into different shapes and sizes may be included.
- various transformation processes such as DCT and DST, can be performed on a partitioned block basis.
- a transformation skip in which a transformation process is not applied to each partitioned block basis, may be applied depending on each candidate transformation mode.
- a candidate transformation mode may be derived in units of sequence, GOP, Picture, Slice, Tile, CTU, CU, and TU.
- at least one candidate transformation mode may be implicitly determined based on at least one piece of information (hereinafter, referred to as βadditional informationβ) from among current frame information, slice information, partitioning information of a current block, a size of a current block, a shape of a current block, prediction mode information of a parent block including the current block, a size of a parent block, a shape of a parent block, prediction mode information of a parent block, transformation mode information of a neighboring block of the current block, a maximum value of a transformation coefficient included in the current block, and a position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order.
- At least one of the 14 candidate transformation modes may be derived to configure the candidate transformation mode of the current transformation block.
- the video encoder (100) and the video decoder (200) may derive candidate transformation modes applicable to the current block based on the additional information in the same manner.
- the candidate transformation mode according to one embodiment of the present disclosure can be arbitrarily set in units of sequence, GOP, Picture, Slice, Tile, CTU, CU, and TU.
- the video encoder (100) and the video decoder (200) can arbitrarily determine a candidate transformation mode applicable to the current block and perform transformation processing on the current block using the determined candidate transformation mode.
- the video encoder (100) and the video decoder (200) can set the candidate transformation modes applicable to the current block to be identical in advance and perform transformation processing on the current block using the candidate transformation mode set in advance.
- the current block belonging to an I-frame or an I-slice may be configured with all of the 14 candidate transformation modes exemplified in FIG. 5 as candidate transformation modes applicable to the current block, and the current block belonging to a P/B frame or a P/B slice may be configured with only some of the 14 candidate transformation modes exemplified in FIG. 5 as candidate transformation modes applicable to the current block.
- the current block belonging to an I-frame (I-slice) may be configured with candidate transformation modes including the 14 candidate transformation modes of FIG.
- the current block belonging to a P/B-frame may be configured with transformation modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) as candidate transformation modes.
- transformation modes 1, 2, 3, 4, 8, 9, 10, and 14 501, 502, 503, 504, 508, 509, 510, and 514.
- the transformation modes included in the candidate transformation modes applicable to the current block may be changed based on frame or slice type information.
- candidate transformation modes applicable to the current block may be adaptively configured based on prediction mode information of the current block.
- the intra-predicted current block may be configured with transformation modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) among the 14 candidate transformation modes of FIG. 5, and the inter-predicted current block may be configured with transformation modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) as candidate transformation modes.
- the present invention is not limited thereto, and the transformation modes included in the candidate transformation modes applicable to the current block may be changed based on the prediction mode.
- only some of the 14 candidate transformation modes illustrated in FIG. 5 may be configured as candidate transformation modes applicable to the current block, and if the size of the current block is less than or equal to the predetermined size, only some of the 14 candidate transformation modes illustrated in FIG. 5 may be configured as candidate transformation modes applicable to the current block.
- transformation modes 1, 2, 3, 4, 8, 9, 10, and 14 may be configured as candidate transformation modes, and if the current block is less than or equal to 32x32 (both the width and the height are less than or equal to 32), all 14 modes may be set to be supported.
- the candidate transformation modes applicable to the current block may be adaptively configured based on the result of comparing the maximum or minimum of the width and height of the current block with a predetermined threshold length instead of the size of the current block.
- candidate transformation modes applicable to the current block may be adaptively configured based on the shape of the current block. For example, if the width of the current block is greater than the height by a predetermined factor or more, a transformation block type that is vertically divided is likely to be selected. In this way, if the length of one side of the width and the height of the current block is greater than the length of the other side by a predetermined factor or more, a transformation mode that supports a more suitable form of transformation block among horizontal division or vertical division may be included in the candidate transformation modes.
- all candidate transformations may be configured to include a transformation mode that supports a transformation block that vertically divides the current block when the width of the current block is greater than the height by a predetermined factor or more
- all candidate transformations may be configured to include a transformation mode that supports a transformation block that horizontally divides the current block when the height of the current block is greater than the width by a predetermined factor or more.
- candidate transformation modes are configured around candidate transformation modes suitable for vertical division, so that transformation modes 1, 8, 9, 10, 11, 12, 13, and 14 (501, 508, 509, 510, 511, 512, 513, and 514) are configured as candidate transformation modes applicable to the current block
- candidate transformation modes are configured around candidate transformation modes suitable for horizontal division, so that transformation modes 1, 2, 3, 4, 5, 6, 7, and 14 (501, 502, 503, 504, 505, 506, 507, and 514) are configured as candidate transformation modes applicable to the current block.
- Conversion modes 1 and 14 (501, 514) may be included as default conversion modes in the candidate conversion modes. However, the conversion modes included in the candidate conversion modes applicable to the current block may be changed based on the width and height of the current block.
- a candidate transformation mode applicable to the current block may be determined based on the segmentation information of the parent block to which the current block belongs. As illustrated in FIGS. 3A and 3B described above, a candidate transformation mode applicable to the current block may be determined based on the segmentation information of the parent block of a higher depth to which the current block belongs, which is a CU that is no longer segmented.
- the candidate transformation modes are configured around candidate transformation modes suitable for vertical division, so that transformation modes 1, 8, 9, 10, 11, 12, 13, and 14 (501, 508, 509, 510, 511, 512, 513, and 514) are configured as candidate transformation modes applicable to the current block
- the candidate transformation modes are configured around candidate transformation modes suitable for horizontal division, so that transformation modes 1, 2, 3, 4, 5, 6, 7, and 14 (501, 502, 503, 504, 505, 506, 507, and 514) are configured as candidate transformation modes applicable to the current block.
- the transformation mode included in the candidate transformation modes applicable to the current block may be changed based on the partitioning information of the parent block to which the current block belongs.
- a candidate transformation mode applicable to the current block may be determined based on transformation mode information applied to neighboring blocks of the current block.
- the candidate transformation mode may be determined based on transformation mode information of at least one neighboring block among neighboring blocks located to the left, above, upper right, and lower left of the current block.
- candidate transformation modes are configured mainly with modes suitable for vertical division, so that transformation modes 1, 8, 9, 10, 11, 12, 13, and 14 (501, 508, 509, 510, 511, 512, 513, and 514) are configured as candidate transformation modes applicable to the current block
- candidate transformation modes are configured mainly with modes suitable for horizontal division, so that transformation modes 1, 2, 3, 4, 5, 6, 7, and 14 (501, 502, 503, 504, 505, 506, 507, and 514) are configured as candidate transformation modes applicable to the current block.
- the transformation mode included in the candidate transformation modes applicable to the current block may be changed based on the transformation mode information applied to the surrounding blocks of the current block.
- At least one candidate transformation mode available for inverse transformation of a current block can be explicitly determined based on transformation mode support information signaled for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit.
- the video encoder (100) includes transformation mode support information for at least one unit among a sequence parameter set (SPS), a picture parameter set (PPS), an adaptive parameter set (APS), a slice header, a CTU, a CU, and a TU syntax and transmits the transformation mode support information for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and the video decoder (200) can determine a candidate transformation mode supported for each unit from the corresponding transformation mode support information.
- SPS sequence parameter set
- PPS picture parameter set
- APS adaptive parameter set
- the video encoder (100) includes transformation mode support information in an SPS, and the video decoder (200) can determine a candidate transformation mode supported for each sequence unit from the corresponding transformation mode support information.
- the video encoder (100) when adaptively setting the transformation mode in block units such as slices, CTUs, CUs, and TUs, the video encoder (100) includes transformation mode support information in the SPS, and the video decoder (200) can determine a candidate transformation mode supported for each block unit such as slices, CTUs, CUs, and TUs from the transformation mode support information.
- At least one candidate transformation mode may be explicitly configured based on additional information, such as at least one of current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of a neighboring block of the current block, the maximum value of a transformation coefficient included in the current block, and the position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order.
- additional information such as at least one of current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of a neighboring block of the current block, the maximum value of a transformation coefficient included in the
- one or more pieces of information regarding whether to configure a candidate transformation mode based on at least one of the aforementioned additional information may be explicitly included in the SPS, PPS, APS, slice header, CTU, CU, and TU syntax.
- information indicating that the candidate transformation mode is configured differently for each frame or slice type may be explicitly included in at least one of the SPS, PPS, APS, and slice header.
- the video encoder (100) transmits information indicating that the candidate transformation mode is configured differently for each frame or slice type by including it in the bitstream, and the video decoder (200) can determine whether the candidate transformation mode is configured differently for each frame or slice type from the information. If the information included in the bitstream indicates that the candidate transformation mode is configured differently for each frame or slice type, the video decoder (200) can configure the candidate transformation mode differently for each frame or slice type. For example, if the information explicitly signaled in the bitstream indicates that the candidate transformation mode is configured differently for each frame or slice type, the video decoder (200) can configure all of the 14 candidate transformation modes illustrated in FIG.
- information indicating whether to adaptively configure a candidate transformation mode to be applied to the current block based on at least one of the aforementioned additional information may be included in the SPS, PPS, APS, slice header, CTU, CU, and TU syntax.
- candidate transformation mode information supported for at least one unit among SPS, PPS, APS, slice header, CTU, CU, TU syntax may be explicitly signaled for at least one unit among sequence, GOP, picture, slice, CTU, CU, TU unit.
- the SPS may include information indicating conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) that are candidate conversion modes applied to the current sequence unit.
- Combinations of candidate conversion modes applicable to each predetermined data unit are set in advance as elements of a table, and index information indicating one of the elements of the pre-set table may be used as candidate conversion mode information.
- the video encoder (100) sets a candidate conversion mode for each predetermined data unit and includes information indicating the set candidate conversion mode in the bitstream, and the video decoder (200) can configure a candidate conversion mode to be applied to the current data unit from the candidate conversion mode information.
- At least one candidate transformation mode available for the inverse transformation of the current block can be configured by combining the explicit candidate transformation mode configuration method and the implicit candidate transformation mode configuration method described above.
- a candidate transformation mode is explicitly determined based on transformation mode support information signaled for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and a final candidate transformation mode can be derived based on additional information among the explicitly determined candidate transformation modes.
- the additional information can include at least one of current frame information, slice information, partitioning information of a current block, a size of a current block, a shape of a current block, prediction mode information of a current block, partitioning information of a parent block including the current block, a size of a parent block, a shape of a parent block, prediction mode information of a parent block, transformation mode information of a neighboring block of the current block, a maximum value of a transformation coefficient included in the current block, and a position of a last non-zero transformation coefficient of the current block according to a predetermined scanning order, as described above.
- a first candidate transformation mode can be explicitly configured based on transformation mode support information signaled for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and a final second candidate transformation mode can be derived from the first candidate transformation mode based on at least one of the additional information. For example, among the 14 conversion modes of FIG.
- conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 are configured as the first candidate conversion modes in the current sequence unit, and then, based on additional information such as the block size, if the size of the current block exceeds 32X32, only conversion modes 1, 2, 8, and 14 (501, 502, 508, and 514) among the first candidate conversion modes are configured as the final second candidate conversion modes, and if the size of the current block is 32X32 or less, conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, and 514) are configured as the final second candidate conversion modes. 509, 510, 514) can all be configured as the final second candidate conversion mode.
- all of the 14 candidate transformation modes illustrated in FIG. 5 may be configured as the first candidate transformation modes, and in the current block belonging to the P/B frame or P/B slice, some of the 14 candidate transformation modes illustrated in FIG. 5, namely transformation modes 1, 8, 9, 10, 11, 12, 13, and 14 (501, 508, 509, 510, 511, 512, 513, and 514), may be configured as the first candidate transformation modes. Then, from these first candidate transformation modes, a final second candidate transformation mode may be configured based on the shape of the current block. For example, if the width of the current block is greater than a predetermined ratio than the height, a transformation block type that is vertically divided is likely to be selected.
- a transformation mode that supports a more suitable form of transformation block among horizontal division or vertical division among the transformation modes included in the first candidate transformation mode may be included in the final second candidate transformation mode.
- the candidate transformation mode is configured based on the shape of the block included in the I frame or I slice, as described above, all of the 14 candidate transformation modes illustrated in FIG. 5 are configured as the first candidate transformation mode for the current block belonging to the I frame or I slice.
- the second candidate transformation mode is configured around candidate transformation modes suitable for vertical division, and transformation modes 1, 8, 9, 10, 11, 12, 13, and 14 (501, 508, 509, 510, 511, 512, 513, and 514) are configured as final second candidate transformation modes applicable to the current block, and when the height of the current block is more than twice the width, the second candidate transformation mode is configured around candidate transformation modes suitable for horizontal division, and transformation modes 1, 2, 3, 4, 5, 6, 7, and 14 (501, 502, 503, 504, 505, 506, 507, and 514) can be configured as second candidate transformation modes applicable to the current block.
- the final candidate transformation mode applicable to the current block can be determined by adding or removing a transformation mode included in the explicitly configured candidate transformation mode based on at least one of the additional information from the explicitly configured candidate transformation mode.
- the 1st transformation mode (501) that does not divide the current block and the 14th transformation mode (514) that divides the current block into four can always be included in the candidate transformation mode even when the candidate transformation mode is adaptively configured based on additional information.
- the video encoder (100) determines a final transformation mode applied to the current block from among the transformation modes included in the candidate transformation modes.
- the final transformation mode applied to the current block may be determined implicitly, or an optimal transformation mode from an RDO perspective may be determined and information indicating the determined transformation mode may be explicitly included in the bitstream.
- embodiments of setting a transformation mode applied to the current block from among the candidate transformation modes will be described.
- one of the candidate transformation modes may be determined as the transformation mode of the current block based on at least one of additional information such as current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of a neighboring block of the current block, a maximum value of a transformation coefficient included in the current block, and a position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order.
- additional information such as current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of a neighboring block of the current block, a maximum value of a
- the video encoder (100) and the video decoder (200) can determine the transformation mode of the current block as one of the candidate transformation modes based on at least one of the aforementioned additional information in the same manner. For example, when using the size of the current block as the additional information, the video encoder (100) and the video decoder (200) can determine the first transformation mode (501) that does not split the current block as the transformation mode of the current block if the size of the current block is the minimum block size for which transformation is supported, and can perform the transformation process without splitting the current block.
- the video encoder (100) and the video decoder (200) can select one transformation mode set in advance from among the transformable transformation modes by considering the maximum transformable block size among the determined candidate transformation modes if the current block exceeds the maximum transformable block size. For example, if the size of the current block is 128 β 128 and the maximum convertible block size is 64 β 64, the 14th conversion mode (514) that divides the current block into four parts can be selected for conversion of the current block.
- the video encoder (100) and the video decoder (200) can determine the transformation mode of the current block based on the transformation mode information used in the surrounding blocks of the current block. For example, if the second transformation mode (502) is selected in both blocks located to the left and above the current block, and the second transformation mode (502) is included in the candidate transformation modes of the current block, the second transformation mode (502) can be determined as the transformation mode of the current block.
- the video encoder (100) and the video decoder (200) can equally determine the transformation mode of the current block by applying a pre-set method. In this case, separate transformation mode information may not be included in the bitstream.
- the transformation mode applied to the transformation of the current block can be explicitly determined based on transformation mode information signaled for at least one unit among a sequence, GOP, picture, slice, CTU, CU, and TU unit.
- the video encoder (100) transmits information on the transformation mode applied to the current block by including it in one of the data units of a sequence, GOP, picture, slice, CTU, CU, and TU, and the video decoder (200) can determine the transformation mode of the current block from the transformation mode information included in the data unit.
- the video encoder (100) can apply the transformation mode included in the candidate transformation modes and apply an evaluation criterion such as RDO to determine the optimal transformation mode, and can include information indicating the determined transformation mode in the bitstream.
- the video encoder (100) can select the optimal conversion mode among the eight modes based on evaluation criteria such as RDO, and include information about the selected optimal conversion mode in the bitstream and transmit it to the video decoder (200).
- transformation mode information when transformation mode information is explicitly signaled, only some transformation modes among candidate transformation modes of the current block may be evaluated by the video encoder (100) according to a predetermined evaluation criterion, and a bitstream including the selected final transformation mode information may be transmitted to the video decoder (200).
- Whether to evaluate only some transformation modes may be determined based on at least one of additional information such as current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of the parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of the neighboring blocks of the current block, the maximum value of the transformation coefficient included in the current block, and the position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order.
- additional information such as current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of the parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of the neighboring blocks of the current block, the maximum value of the transformation coefficient included in the current block, and the position of the last non
- a transformation block type that is vertically divided is likely to be selected.
- a transformation mode that is not suitable for horizontal or vertical division is excluded from the candidate transformation modes, and only the remaining candidate transformation modes can be evaluated for selecting the final transformation mode.
- a transformation mode that supports a transformation block that horizontally divides the current block among the candidate transformation modes is excluded from the candidate transformation modes, and if the height of the current block is greater than the width by a predetermined factor or more, a transformation mode that supports a transformation block that vertically divides the current block can be excluded from the candidate transformation modes.
- the candidate transformation modes are determined as transformation modes 1, 2, 3, 4, 8, 9, and 10 (501, 502, 503, 504, 508, 509, and 510)
- transformation modes 2, 3, and 4 which are suitable candidate transformation modes for horizontal division, are excluded from the candidate transformation modes, and only transformation modes 1, 8, 9, 10, and 14 (501, 508, 509, 510, and 514) can be used for evaluation to select the optimal transformation mode.
- candidate transformation modes 8, 9, and 10 which are suitable candidate transformation modes for vertical division, are excluded from the candidate transformation modes, and only transformation modes 1, 2, 3, 4, and 14 (501, 502, 503, 504, and 514) can be used for evaluation to select the optimal transformation mode.
- the first transformation mode (501) which does not divide the current block
- the fourteenth transformation mode (514) which divides the current block into four, can always be included in the candidate transformation modes regardless of additional information.
- the transformation mode information may be hierarchically configured. For example, a 1-bit flag indicating the use of a split transformation mode among the candidate transformation modes for the current block may be transmitted. If the current block is not split and the transformation is performed as is in the current block, such as the first transformation mode (501) of FIG. 5, the corresponding flag is set to 0. That is, if the current block is not split, the transformation mode information may be configured with only a 1-bit flag. If the current block is split, such as the second to fourteenth transformation modes (502 to 514) of FIG. 5, the corresponding flag may be set to 1.
- the conversion mode information may additionally include i) information indicating a split direction, ii) information indicating one of a plurality of conversion modes according to the split direction.
- the information indicating the split direction '0' may be set to indicate horizontal splitting
- the split direction flag '1' may be set to indicate vertical splitting, or vice versa.
- the information indicating one of a plurality of conversion modes according to the split direction may be set to indicate one of a plurality of conversion modes that split the current block in the corresponding splitting direction.
- the information indicating the split direction is set to '0'
- the current block is split into one of four conversion modes in the horizontal direction, such as the second to fifth conversion modes (502 to 505)
- the information may be set to have one of '00', '01', '10', and '11' corresponding to the second to fifth conversion modes (502 to 505).
- values indicating multiple conversion modes can be set by applying various codes such as unary coding, fixed length coding, variable length coding, and exponential golomb coding.
- the transformation mode information may be adaptively configured to efficiently transmit the transformation mode applied to the current block.
- the vertical divisibility and horizontal divisibility of the current block may be determined, and the transformation mode information may be adaptively configured based on the determined vertical divisibility and horizontal divisibility of the current block.
- additional information such as current frame information, slice information, partitioning information of the current block, size of the current block, shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, size of the parent block, shape of the parent block, prediction mode information of the parent block, transformation mode information of a neighboring block of the current block, maximum value of a transformation coefficient included in the current block, and position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order may be used in the process of configuring the transformation mode information.
- the vertical and horizontal divisibility of the current block can be determined by identifying the types of all transformation modes applicable to the current block by considering the transformation modes included in the candidate transformation mode. Furthermore, the vertical and horizontal divisibility of the current block can be determined based on the aforementioned additional information.
- the video encoder (100) can determine the vertical divisibility and horizontal divisibility of the current block, adaptively determine the semantics of transformation mode information based on the vertical divisibility and horizontal divisibility of the current block, and set the transformation mode information of the current block to include in the bitstream.
- the video decoder (200) can identify the semantics of transformation mode information obtained from the bitstream based on the vertical divisibility and horizontal divisibility of the current block, and determine the transformation mode of the current block based on the transformation mode information.
- the transformation mode information can be set as index information indicating one of the candidate transformation modes.
- the index information can be set by applying various codes such as unary coding, fixed length coding, variable length coding, and exponential global coding. For example, if transformation modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate transformation modes applicable to the current block, and if the current block can be split in both horizontal and vertical directions, information indicating one of the candidate transformation modes 1, 2, 8, and 14 (501, 502, 508, and 514) can be set as the transformation mode information.
- the conversion mode information may be set to include i) information indicating the splitting direction of the current block among the vertical and horizontal directions, and ii) information indicating whether or not to split according to the splitting direction. i) If the information indicating the splitting direction of the current block among the vertical and horizontal directions is set to '0', it may indicate horizontal splitting, and if set to '1', it may indicate vertical splitting, or vice versa. ii) If the information indicating whether or not to split according to the splitting direction is set to '0', it may indicate non-split in the corresponding direction, and if set to '1', it may indicate splitting in the corresponding direction.
- the conversion mode information may be set to '01', including '0', which is the first bit indicating horizontal splitting of the current block, and '1' indicating splitting in the corresponding horizontal direction.
- the transformation mode information may be set to include i) information indicating the splitting direction of the current block among the vertical direction and the horizontal direction, and ii) information indicating one of the selectable transformation modes according to the splitting direction. i) If the information indicating the splitting direction of the current block among the vertical direction and the horizontal direction is set to '0', it may indicate horizontal division, and if it is set to '1', it may indicate vertical division, or vice versa. ii) The information indicating one of the selectable transformation modes according to the splitting direction may have a variable length depending on the number of selectable transformation modes.
- the current block is divided horizontally and four conversion modes (502, 503, 504, 505) of conversion modes 2, 3, 4, and 5 (502 to 506) that divide the current block in the horizontal direction are selectable
- information indicating one of the selectable conversion modes according to the division direction may be set to one of the values of '00', '01', '10', and '11' corresponding to the four conversion modes of conversion modes 2, 3, 4, and 5 (502, 503, 504, 505).
- the code configuration is not limited thereto and may be set in various ways such as unary coding, fixed length coding, variable length coding, and exponential global coding.
- the transformation mode information is not included in the bitstream, and the transformation block of the current block can be determined to have the same size and shape as the current block. If the current block is not divisible in either the vertical or horizontal direction, the video encoder (100) does not separately transmit the transformation mode information, and the video decoder (200) can determine the transformation mode 1 (501) as the transformation mode of the current block without parsing the syntax corresponding to the separate transformation mode information.
- the video encoder (100) can adaptively configure transformation mode information to efficiently transmit the transformation mode applied to the current block.
- the video encoder (100) can determine the vertical divisibility and horizontal divisibility of the current block, and adaptively configure the transformation mode information based on the determined vertical divisibility and horizontal divisibility of the current block.
- the video encoder (100) can configure candidate transformation modes based on the statistical ratio of transformation modes previously selected in the transformation mode determination process, determine one optimal transformation mode by applying an optimal transformation mode evaluation criterion such as RDO, and transmit information on the determined transformation mode by including it in the bitstream.
- the vertical divisibility and horizontal divisibility of the current block can be determined based on at least one of various additional information such as boundary conditions or the size of the current block.
- conversion modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate conversion modes
- a process in which a video encoder (100) adaptively configures conversion mode information for an optimal conversion mode among the candidate conversion modes is described.
- FIG. 8a is a flow chart showing an example of a process in which a video encoder (100) adaptively configures conversion mode information.
- the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 8, and 14 (501, 502, 508, and 514).
- the video encoder (100) determines the horizontal and vertical divisibility of the current block (S801), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S802) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
- the video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S803), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' as information indicating whether i) vertical or horizontal division exists in the bitstream (S804). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
- '0' indicates non-division (no vertical or horizontal division exists
- the video encoder (100) can configure the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists. If the current block is divided, information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 8, and 14 (502, 508, 514), excluding transformation mode 1 (501) in which the current block is not divided, needs to be additionally transmitted.
- the additionally transmitted transformation mode information may be adaptively configured depending on whether the current block is arbitrarily divisible in the vertical or horizontal direction and the configuration of the candidate transformation mode.
- the additionally transmitted transformation mode information may be adaptively configured to identify one of the transformation modes included in the candidate transformation mode, in which the current block is divided in only one direction, and one of the 14 transformation modes (514) in which the current block is divided into four. For example, if the current block is arbitrarily divisible in only one direction, either vertical or horizontal, the video encoder (100) may transmit information indicating one of the transformation modes in which the current block is divided in the divisible direction and the 14 transformation modes (514) in which the current block is divided into four directions, by adding the information to the transformation mode information.
- the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S805), and if the current block can be divided only horizontally, information indicating the transformation mode of the current block among transformation modes 2 and 14 (502, 514), excluding transformation mode 8 (508) in which the current block is divided vertically (for example, '0' indicates transformation mode 2 (502), '1' indicates transformation mode 14 (514)) can be set and added to the bitstream (S806).
- conversion mode 1 is determined as the optimal conversion mode of the current block, and if the current block can only be horizontally split, the video encoder (100) determines '10', which is composed of '1', the first bit indicating whether to split, and '0', which indicates conversion mode 2 among conversion modes 2 and 14, as conversion mode information and adds it to the bitstream.
- the optimal conversion mode of the current block is conversion mode 14 (514)
- '11' is set as conversion mode information.
- the video encoder (100) determines whether the current block is divisible only in the vertical direction (S807), if the current block is not divisible only in the horizontal direction, and if the current block is divisible only in the vertical direction, information indicating the conversion mode of the current block among conversion modes (508, 514) 8 and 14, excluding conversion mode 2 (502) in which the current block is divided horizontally (for example, '0' indicates conversion mode 8 (508), '1' indicates conversion mode 14 (514)) can be set and added to the bitstream (S808).
- transformation modes 1, 2, 8, and 14 are determined as candidate transformation modes of the current block, and transformation mode 8 is determined as the optimal transformation mode of the current block, and if the current block can only be vertically divided, the video encoder (100) determines '10', which is composed of '1', the first bit indicating division as transformation mode information, and '0', which indicates transformation mode 8 among transformation modes 2 and 14, as transformation mode information, and adds it to the bitstream.
- the optimal transformation mode of the current block is transformation mode 14 (514), '11' is set as the transformation mode information.
- the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 8, and 14 (502, 508, and 514) and add it to the bitstream (S809).
- Fig. 8b is a flowchart illustrating an example of a process in which a video decoder (200) adaptively determines conversion mode information.
- the process in Fig. 8b corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 8a, and is a process in which a video decoder (200) determines a conversion mode.
- the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 8a (S811), and if the current block is arbitrarily impossible to be divided vertically or horizontally, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S812).
- the video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S813). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S815). In this case, the video decoder (200) can end the transformation mode determination process of the current block without parsing additional transformation mode information.
- the video decoder (200) can determine the transformation mode of the current block by parsing the bit information following the first bit of the transformation mode information if the current block is capable of at least one of vertical division or horizontal division and the first bit of the transformation mode information is obtained as '1' from the bitstream. That is, if the first bit of the transformation mode information from the bitstream is '1', i.e., if it is determined that at least vertical or horizontal division exists in the current block, the video decoder (200) can determine the possibility of horizontal division or vertical division of the current block, and parse additional bits following the first bit of the transformation mode information based on the possibility of horizontal or vertical division to determine the transformation mode of the current block.
- the video decoder (200) determines whether the current block can only be horizontally divided (S815), and if the current block can only be horizontally divided, information indicating the transformation mode of the current block among transformation modes 2 and 14 (502, 514), excluding transformation mode 8 (508) in which the current block is vertically divided (for example, '0' indicates transformation mode 2 (502), and '1' indicates transformation mode 14 (514)) can be obtained from the bitstream (S816).
- the video decoder (100) may determine the transformation mode of the current block as transformation mode 2 (502) based on the transformation mode information when '10' consisting of '1' indicating division of the current block and '0' indicating transformation mode 2 is obtained as transformation mode information.
- the video decoder (200) may determine that the transformation mode of the current block is transformation mode 14 (514).
- the video decoder (200) determines whether the current block is capable of only vertical division (S817). If the current block is capable of only vertical division, the video decoder (200) can obtain information indicating the transformation mode of the current block from among transformation modes (508, 514) 8 and 14, excluding transformation mode 2 (502) in which the current block is horizontally divided, from the bitstream (for example, '0' indicates transformation mode 8 (508), '1' indicates transformation mode 14 (514)).
- the video decoder (100) can determine the transformation mode of the current block as transformation mode 8 (508) based on the transformation mode information if the transformation mode information is '10', which is composed of '1' indicating division of the current block and '0' indicating transformation mode 8. In the above example, if '11' is acquired as conversion mode information, the video decoder (200) can determine that the conversion mode of the current block is conversion mode 14 (514).
- the video decoder (200) can obtain transformation mode information indicating the transformation mode of the current block from among the transformation modes 2, 8, and 14 (502, 508, and 514) from the bitstream, and determine the transformation mode indicated by the parsed transformation mode information as the transformation mode of the current block (S819).
- FIG. 8c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514).
- the video encoder (100) determines the horizontal and vertical divisibility of the current block (S821), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S822) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
- the video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S823), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' in the bitstream as information indicating whether i) vertical or horizontal division exists (S824). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
- '0' indicates non-division (no vertical or horizontal division exists
- the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then determines whether information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) excluding transformation mode 1 (501) in which the current block is not divided should be additionally transmitted.
- the current block can be split in only one of the horizontal and vertical directions, and there is only one transformation mode among the candidate transformation modes in which the current block is split in the corresponding splittable direction, then information indicating a separate transformation mode does not need to be additionally transmitted. This is because if the video decoder (200) obtains '1' indicating that vertical or horizontal division exists as the first bit of the transformation mode information, and the current block can be split in only one of the horizontal and vertical directions, and there is only one transformation mode among the candidate transformation modes in which the current block is split in the corresponding splittable direction, then the only transformation mode in which the current block is split in the corresponding splittable direction can be determined as the transformation mode of the current block without any additional information.
- the video encoder (100) determines whether the current block can be arbitrarily divided only in the horizontal direction (S825), and if the current block can be divided only in the horizontal direction, determines the second transformation mode (502), which is a transformation mode that divides in the horizontal direction, as the transformation mode of the current block (S826), and does not transmit any additional transformation mode information separately. In this case, only '1' indicating that there is vertical or horizontal division in the current block set in the previous step (S823) is added to the bitstream as transformation mode information.
- the video encoder (100) determines whether the current block can be arbitrarily divided only in the vertical direction (S827), and if the current block can be divided only in the vertical direction, determines the 8th transformation mode (508), which is a transformation mode that divides in the vertical direction, as the transformation mode of the current block and does not transmit any additional transformation mode information. In this case, only '1', which indicates that there is vertical or horizontal division in the current block set in the previous step (S823), is added to the bitstream as transformation mode information.
- the video encoder (100) can set information indicating the conversion mode of the current block among the conversion modes 2, 8, and 14 (502, 508, and 514) and add it to the bitstream (S829).
- Fig. 8d is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- the process in Fig. 8d corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 8c, and is a process in which a video decoder (200) determines a conversion mode.
- the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 8c (S831), and if the current block is arbitrarily impossible to be vertically divided or horizontally divided, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S832).
- the video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S833). For example, if the current block is arbitrarily capable of at least one of vertical division and horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S834). In this case, the video decoder (200) can end the transformation mode determination process of the current block without parsing additional transformation mode information.
- the video decoder (200) obtains '1' as the first bit of the transformation mode information indicating the presence of vertical or horizontal division, and the current block can be divided in only one of the horizontal or vertical directions, and there is only one transformation mode in which the current block is divided in the corresponding divisible direction among the candidate transformation modes, then only one transformation mode in which the current block is divided in the corresponding divisible direction can be determined as the transformation mode of the current block without any additional information.
- the video decoder (200) determines whether the current block can be arbitrarily divided only in the horizontal direction (S835), and if the current block can be divided only in the horizontal direction, determines the second transformation mode (502), which is a transformation mode that divides in the horizontal direction, as the transformation mode of the current block (S836). In this case, only '1', which indicates that there is a vertical or horizontal division in the current block parsed in the previous step (S833), is used as the transformation mode information.
- the video decoder (100) determines whether the current block can be arbitrarily divided only in the vertical direction (S837), and if the current block can be divided only in the vertical direction, determines the 8th transformation mode (508), which is a transformation mode that divides in the vertical direction, as the transformation mode of the current block (S838). Even in this case, only '1', which indicates that there is a vertical or horizontal division in the current block parsed in the previous step (S833), is used as the transformation mode information.
- the video decoder (200) obtains information indicating the conversion mode of the current block from among the conversion modes 2, 8, and 14 (502, 508, and 514) from the bitstream, and determines the conversion mode of the current block based on the obtained conversion mode information (S839).
- FIG. 9a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514).
- the video encoder (100) determines the horizontal and vertical divisibility of the current block (S901), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S902) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
- the video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S903), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' as information indicating whether i) vertical or horizontal division exists in the bitstream (S904). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
- '0' indicates non-division (no vertical or horizontal division exists
- the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514), excluding transformation mode 1 (501) in which the current block is not divided.
- the video encoder (100) may set additional transformation mode information in consideration of the number of possible divisions of the current block.
- the number of possible splits can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of possible splits of the current block for determining a conversion block can be limited to a predetermined number of times (e.g., once).
- the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S905). If the number of splits of the current block is limited to 1, the video encoder (100) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among the 2nd, 3rd, 8th, 9th, and 14th conversion modes (502, 503, 508, 509, 514) included in the candidate conversion modes, excluding the 1st conversion mode (501), determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) (S906), and adds information indicating one of the 2nd and 8th conversion modes (502, 508) to the bitstream as additional conversion mode information.
- the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S907), and if the current block can be divided only in the horizontal direction, the video encoder determines the transformation mode of the current block among the transformation modes 2 and 3 (502, 503), which are transformation modes for horizontal division (S908), and adds information indicating one of the transformation modes 2 and 3 (502, 503) to the bitstream as additional transformation mode information.
- the video encoder (100) determines whether the current block can be split only in the vertical direction (S909), and if the current block can be split only in the vertical direction, determines the conversion mode of the current block among conversion modes 8 and 9 (508, 509), which are conversion modes for splitting in the vertical direction (S910), and adds information indicating one of conversion modes 8 and 9 (508, 509) to the bitstream as additional conversion mode information.
- the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) and add it to the bitstream (S911).
- Fig. 9b is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- the process in Fig. 9b corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 9a, and is a process in which a video decoder (200) determines a conversion mode.
- the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 9a (S931), and if the current block is arbitrarily impossible to be divided vertically or horizontally, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S932).
- the video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S933). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S934). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
- the video decoder (200) When the video decoder (200) obtains '1' as the first bit of the conversion mode information indicating the presence of vertical or horizontal division, it determines whether the current block is larger than the minimum division block size for which the number of divisions is limited (S935).
- the video decoder (200) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among candidate conversion modes including the 2nd, 3rd, 8th, 9th, and 14th conversion modes (502, 503, 508, 509, 514) except the 1st conversion mode (501), parses conversion mode information indicating the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) from the bitstream, and determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) based on the acquired additional conversion mode information (S936).
- the video decoder (200) determines whether the current block can be split only in the horizontal direction (S937), and if the current block can be split only in the horizontal direction, parses information indicating one of the conversion modes 2 and 3 (502, 503), which are conversion modes for splitting in the horizontal direction, from the bitstream, and determines the conversion mode of the current block among the conversion modes 2 and 503 (502, 503) based on the acquired additional conversion mode information (S938).
- the video decoder (200) determines whether the current block can be split only in the vertical direction (S939), and if the current block can be split only in the vertical direction, the video decoder parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 8 and 9 (508, 509), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines the transformation mode of the current block from among the transformation modes 8 and 9 (508, 509) based on the acquired additional transformation mode information (S940).
- the video decoder (200) parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) from the bitstream, and determines the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) based on the acquired additional transformation mode information (S941).
- FIG. 9c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514).
- the video encoder (100) determines the horizontal and vertical divisibility of the current block (S951), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S952) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
- the video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S953), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' in the bitstream as information indicating whether i) vertical or horizontal division exists (S954). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
- '0' indicates non-division (no vertical or horizontal division exists
- the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514), excluding transformation mode 1 (501) in which the current block is not divided.
- the video encoder (100) may set additional transformation mode information in consideration of the number of possible divisions of the current block.
- the number of possible splits can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of possible splits of the current block for determining a conversion block can be limited to a predetermined number of times (e.g., once).
- the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S955). If the number of splits of the current block is limited to 1, the video encoder (100) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among the 2nd, 3rd, 8th, 9th, and 14th conversion modes (502, 503, 508, 509, 514) included in the candidate conversion modes, excluding the 1st conversion mode (501), determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) (S956), and adds information indicating one of the 2nd and 8th conversion modes (502, 508) to the bitstream as additional conversion mode information.
- the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S957), and if the current block can be divided only in the horizontal direction, determines the transformation mode of the current block among the transformation modes 2, 3, and 14 (502, 503, and 514), which are transformation modes for horizontal division (S958), and adds information indicating one of the transformation modes 2, 3, and 14 (502, 503, and 514) to the bitstream as additional transformation mode information.
- the video encoder (100) determines whether the current block can be split only in the vertical direction (S959), and if the current block can be split only in the vertical direction, determines the conversion mode of the current block among conversion modes 8, 9, and 14 (508, 509, 514), which are conversion modes for splitting in the vertical direction (S960), and adds information indicating one of conversion modes 8, 9, and 14 (508, 509, 514) to the bitstream as additional conversion mode information.
- the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) and add it to the bitstream (S961).
- Fig. 9d is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- the process in Fig. 9d corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 9c, and is a process in which a video decoder (200) determines a conversion mode.
- the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 9c (S971), and if the current block is arbitrarily impossible to be divided vertically or horizontally, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S972).
- the video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S973). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S974). In this case, the video decoder (200) can end the transformation mode determination process of the current block without parsing additional transformation mode information.
- the video decoder (200) When the video decoder (200) obtains '1' as the first bit of the conversion mode information indicating the presence of vertical or horizontal division, it determines whether the current block is larger than the minimum division block size for which the number of divisions is limited (S975).
- the video decoder (200) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among candidate conversion modes including the 2nd, 3rd, 8th, 9th, and 14th conversion modes (502, 503, 508, 509, 514) except the 1st conversion mode (501), parses conversion mode information indicating the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) from the bitstream, and determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) based on the acquired additional conversion mode information (S976).
- the video decoder (200) determines whether the current block can be split only in the horizontal direction (S977), and if the current block can be split only in the horizontal direction, it parses information indicating one of the conversion modes 2, 3, and 14 (502, 503, 514) that are conversion modes for splitting in the horizontal direction from the bitstream, and determines the conversion mode of the current block among the conversion modes 2, 3, and 14 (502, 503, 514) based on the acquired additional conversion mode information (S978).
- the video decoder (200) determines whether the current block can be split only in the vertical direction (S979), and if the current block can be split only in the vertical direction, the video decoder parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 8, 9, and 14 (508, 509, and 514), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines the transformation mode of the current block from among the transformation modes 8, 9, and 14 (508, 509, and 514) based on the acquired additional transformation mode information (S980).
- the video decoder (200) parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) from the bitstream, and determines the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) based on the acquired additional transformation mode information (S981).
- FIG. 10a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514).
- the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1001), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1002) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
- the video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1003), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' as information indicating whether i) vertical or horizontal division exists in the bitstream (S1004). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
- '0' indicates non-division (no vertical or horizontal division exists
- the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits or implicitly sets information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514), excluding transformation mode 1 (501) in which the current block is not divided.
- the video encoder (100) first determines whether the current block is divisible in both the vertical and horizontal directions (S1005). If the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) and add it to the bitstream (S1006).
- the video encoder (100) may set additional transformation mode information considering the number of times the current block can be divided.
- the number of times the current block can be divided may be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block may be limited to a predetermined number (e.g., once).
- the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S1007). If the number of splits of the current block is limited to 1, the video encoder (100) determines the splittable direction of the current block among the horizontal and vertical directions. Specifically, the video encoder (100) determines whether the current block can be split only in the horizontal direction (S1008), and if the current block can be split only in the vertical direction and not the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 8 (508) (S1009), and does not add any additional transformation mode information to the bitstream. In addition, if the current block can be split only in the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 2 (502) (S1010), and does not add any additional transformation mode information to the bitstream.
- transformation mode 8 transformation mode 8
- the video encoder (100) determines the transformation mode of the current
- the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1011), and if the current block can be divided only in the horizontal direction, determines the transformation mode of the current block among the transformation modes 2 and 3 (502, 503), which are transformation modes for horizontal division (S1012), and adds information indicating one of the transformation modes 2 and 3 (502, 503) to the bitstream as additional transformation mode information.
- the video encoder (100) determines whether the current block can be split only in the vertical direction (S1013), and if the current block can be split only in the vertical direction, determines the transformation mode of the current block among the transformation modes 8 and 9 (508, 509), which are transformation modes for splitting in the vertical direction (S1014), and adds information indicating one of the transformation modes 8 and 9 (508, 509) to the bitstream as additional transformation mode information.
- Fig. 10b is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- the process in Fig. 10b corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 10a, and is a process in which a video decoder (200) determines a conversion mode.
- the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 10a (S1021), and if the current block is arbitrarily impossible to be divided vertically or horizontally, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1022).
- the video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1023). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1024). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
- the video decoder (200) determines whether the current block is divisible in both horizontal and vertical directions (S1025). If the current block is divisible in both horizontal and vertical directions, the video decoder (100) may additionally parse information indicating the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) from the bitstream, and determine the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) based on the parsed additional transformation mode information (S1026).
- the video decoder (100) can determine whether to parse additional transformation mode information by considering the number of times the current block can be divided.
- the number of times the current block can be divided can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block can be limited to a predetermined number (e.g., once).
- the video decoder (200) determines whether the current block is larger than or equal to the minimum split block size that limits the number of splits (S1027), and if the size of the current block is smaller than the minimum split block size, and the number of splits of the current block is limited to 1, the video decoder (200) determines the splittable direction of the current block among the horizontal and vertical directions again. Specifically, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1028), and if the current block can be split only in the vertical direction and not the horizontal direction, the video decoder (200) determines the transformation mode of the current block as the 8th transformation mode (508) without parsing additional transformation mode information separately (S1029). In addition, the video decoder (200) determines the transformation mode of the current block as the 2nd transformation mode (502) without parsing additional transformation mode information separately if the current block can be split only in the horizontal direction (S1030).
- the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1031), and if the current block can be split only in the horizontal direction, it parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 2 and 3 (502, 503), which are transformation modes for splitting in the horizontal direction, from the bitstream, and determines one of transformation modes 2 and 3 (502, 503) as the transformation mode of the current block based on the parsed additional transformation mode information (S1032).
- the video decoder (200) determines whether the current block can be split only in the vertical direction (S1033), and if the current block can be split only in the vertical direction, it parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 8 and 9 (508, 509), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines one of transformation modes 8 and 9 (508, 509) as the transformation mode of the current block based on the parsed additional transformation mode information (S1034).
- FIG. 10c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514).
- the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1041), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1042) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
- the video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1043), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' in the bitstream as information indicating whether i) vertical or horizontal division exists (S1044). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
- '0' indicates non-division (no vertical or horizontal division exists
- the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits or implicitly sets information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514), excluding transformation mode 1 (501) in which the current block is not divided.
- the video encoder (100) first determines whether the current block is divisible in both the vertical and horizontal directions (S1045). If the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) and add it to the bitstream (S1046).
- the video encoder (100) may set additional transformation mode information considering the number of times the current block can be divided.
- the number of times the current block can be divided may be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block may be limited to a predetermined number (e.g., once).
- the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S1047). If the number of splits of the current block is limited to 1, the video encoder (100) determines the splittable direction of the current block among the horizontal and vertical directions. Specifically, the video encoder (100) determines whether the current block can be split only in the horizontal direction (S1048), and if the current block can be split only in the vertical direction and not the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 8 (508) (S1049), and does not add any additional transformation mode information to the bitstream. In addition, if the current block can be split only in the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 2 (502) (S1050), and does not add any additional transformation mode information to the bitstream.
- transformation mode 8 transformation mode 8
- the video encoder (100) determines the transformation mode of the current
- the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1051), and if the current block can be divided only in the horizontal direction, determines the transformation mode of the current block among the transformation modes 2, 3, and 14 (502, 503, and 514), which are transformation modes for horizontal division (S1052), and adds information indicating one of the transformation modes 2, 3, and 14 (502, 503, and 514) to the bitstream as additional transformation mode information.
- the video encoder (100) determines whether the current block can be split only in the vertical direction (S1053), and if the current block can be split only in the vertical direction, determines the transformation mode of the current block among the transformation modes 8, 9, and 14 (508, 509, and 514), which are transformation modes for splitting in the vertical direction (S1054), and adds information indicating one of the transformation modes 8, 9, and 14 (508, 509, and 514) to the bitstream as additional transformation mode information.
- Fig. 10d is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- the process in Fig. 10d corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 10c, and is a process in which a video decoder (200) determines a conversion mode.
- the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 10c (S1061), and if the current block is arbitrarily impossible to be vertically divided or horizontally divided, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1062).
- the video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1063). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1064). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
- the video decoder (200) determines whether the current block is divisible in both horizontal and vertical directions (S1065). If the current block is divisible in both horizontal and vertical directions, the video decoder (100) may additionally parse information indicating the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) from the bitstream, and determine the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) based on the parsed additional transformation mode information (S1066).
- the video decoder (100) can determine whether to parse additional transformation mode information by considering the number of times the current block can be divided.
- the number of times the current block can be divided can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block can be limited to a predetermined number (e.g., once).
- the video decoder (200) determines whether the current block is larger than or equal to the minimum split block size that limits the number of splits (S1067), and if the size of the current block is smaller than the minimum split block size, and the number of splits of the current block is limited to 1, the video decoder (200) determines the splittable direction of the current block among the horizontal and vertical directions again. Specifically, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1068), and if the current block can be split only in the vertical direction and not the horizontal direction, the video decoder (200) determines the transformation mode of the current block as the 8th transformation mode (508) without parsing additional transformation mode information separately (S1069). In addition, the video decoder (200) determines the transformation mode of the current block as the 2nd transformation mode (502) without parsing additional transformation mode information separately if the current block can be split only in the horizontal direction (S1070).
- the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1071), and if the current block can be split only in the horizontal direction, it parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 2, 3, and 14 (502, 503, and 514), which are transformation modes for splitting in the horizontal direction, from the bitstream, and determines one of transformation modes 2, 3, and 14 (502, 503, and 514) as the transformation mode of the current block based on the parsed additional transformation mode information (S1072).
- the video decoder (200) determines whether the current block can be split only in the vertical direction (S1073), and if the current block can be split only in the vertical direction, it parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 8, 9, and 14 (508, 509, 514), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines one of transformation modes 8, 9, 14 (508, 509, 514) as the transformation mode of the current block based on the parsed additional transformation mode information (S1074).
- FIG. 11a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 4, 8, 9, 10, 14 (501, 502, 503, 504, 508, 509, 510, 514).
- the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1101), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1102) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
- the video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1103), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' as information indicating whether i) vertical or horizontal division exists in the bitstream (S1104). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
- '0' indicates non-division (no vertical or horizontal division exists
- the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether the vertical or horizontal division of i) exists, and then additionally indicates the transformation mode determined as the optimal transformation mode of the current block among the transformation modes 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) except for the transformation mode 1 (501) in which the current block is not divided. Transmit.
- the video encoder (100) can set additional transformation mode information considering the number of times the current block can be divided.
- the number of times the current block can be divided can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining the transformation block can be limited to a predetermined number (e.g., once).
- the video encoder (100) determines whether the size of the current block is greater than or equal to the minimum split block size for which the number of splits is limited (S1105). If the number of times the current block is divided is limited to one, the video encoder (100) determines the conversion modes (502, 508) that divide the current block only once among the conversion modes (502, 503, 504, 508, 509, 510, 514) included in the candidate conversion modes, excluding the conversion mode (501), and determines the conversion mode of the current block among the conversion modes (502, 508) of the 2nd and 8th blocks (S1106), and adds information indicating one of the conversion modes (502, 508) of the 2nd and 8th blocks to the bitstream as additional conversion mode information.
- the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1107), and if the current block can be divided only in the horizontal direction, the video encoder determines the transformation mode of the current block among the transformation modes 2, 3, and 4 (502, 503, and 504), which are transformation modes for horizontal division (S1108), and adds information indicating one of the transformation modes 2, 3, and 4 (502, 503, and 504) to the bitstream as additional transformation mode information.
- the video encoder (100) determines whether the current block can be split only in the vertical direction (S1109), and if the current block can be split only in the vertical direction, determines the transformation mode of the current block among transformation modes 8, 9, and 10 (508, 509, 510), which are transformation modes for splitting in the vertical direction (S1110), and configures information indicating one of the transformation modes 8, 9, and 10 (508, 509, 510) as additional transformation mode information and adds it to the bitstream.
- the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) and add it to the bitstream (S1111).
- Fig. 11b is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- the process in Fig. 11b corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 11a, and is a process in which a video decoder (200) determines a conversion mode.
- the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 11a (S1121), and if the current block is arbitrarily impossible to be vertically divided or horizontally divided, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1122).
- the video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1123). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1124). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
- the video decoder (200) When the video decoder (200) obtains '1' indicating the presence of vertical or horizontal division as the first bit of the conversion mode information, it determines whether the current block is larger than the minimum division block size for which the number of divisions is limited (S1125).
- the video decoder (200) determines the conversion modes (502, 508) that split the current block only once among candidate conversion modes including conversion modes (502, 503, 504, 508, 509, 510, 514) excluding conversion mode 1 (501), parses conversion mode information indicating the conversion mode of the current block among conversion modes (502, 508) from the bitstream, and determines the conversion mode of the current block among conversion modes (502, 508) 2 and 8 based on the acquired additional conversion mode information (S1126).
- the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1127), and if the current block can be split only in the horizontal direction, it parses information indicating one of the conversion modes 2, 3, and 4 (502, 503, 504) that is a conversion mode for splitting in the horizontal direction from the bitstream, and determines the conversion mode of the current block among the conversion modes 2, 3, and 504 (502, 503, 504) based on the acquired additional conversion mode information (S1128).
- the video decoder (200) determines whether the current block can be split only in the vertical direction (S1129), and if the current block can be split only in the vertical direction, the video decoder parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 8, 9, and 10 (508, 509, 510), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines the transformation mode of the current block from among the transformation modes 8, 9, and 10 (508, 509, 510) based on the acquired additional transformation mode information (S1130).
- the video decoder (200) parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) from the bitstream, and determines the transformation mode of the current block from among the transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) based on the acquired additional transformation mode information (S1131).
- Figure 11c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514).
- the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1141), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1142) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
- the video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1143), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' as information indicating whether i) vertical or horizontal division exists in the bitstream (S1144). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
- '0' indicates non-division (no vertical or horizontal division exists
- the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514), excluding transformation mode 1 (501) in which the current block is not divided.
- the video encoder (100) can set additional transformation mode information considering the number of times the current block can be split.
- the number of times the current block can be split can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be split for determining the transformation block can be limited to a predetermined number (e.g., once).
- the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S1145). If the number of splits of the current block is limited to 1, the video encoder (100) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among the 2nd, 3rd, 4th, 8th, 9th, 10th, and 14th conversion modes (502, 503, 508, 509, 514) included in the candidate conversion modes, excluding the 1st conversion mode (501), determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) (S1146), and adds information indicating one of the 2nd and 8th conversion modes (502, 508) to the bitstream as additional conversion mode information.
- the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1147), and if the current block can be divided only in the horizontal direction, the video encoder determines the transformation mode of the current block among the transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514), which are transformation modes for horizontal division (S1148), and adds information indicating one of the transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514) to the bitstream as additional transformation mode information.
- the video encoder (100) determines whether the current block can be split only in the vertical direction (S1149), and if the current block can be split only in the vertical direction, determines the transformation mode of the current block among the transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514) that are transformation modes for splitting in the vertical direction (S1150), and adds information indicating one of the transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514) to the bitstream as additional transformation mode information.
- the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) and add it to the bitstream (S1151).
- Fig. 11d is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- the process in Fig. 11d corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 11c, and is a process in which a video decoder (200) determines a conversion mode.
- the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 11c (S1161), and if the current block is arbitrarily impossible to be vertically divided or horizontally divided, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1162).
- the video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1163). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1164). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
- the video decoder (200) When the video decoder (200) obtains '1' as the first bit of the conversion mode information indicating the presence of vertical or horizontal division, it determines whether the current block is larger than the minimum division block size for which the number of divisions is limited (S1165).
- the video decoder (200) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among candidate conversion modes including the 2nd, 3rd, 4th, 8th, 9th, 10th, and 14th conversion modes (502, 503, 504, 508, 509, 510, 514) excluding the 1st conversion mode (501), parses conversion mode information indicating the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) from the bitstream, and determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) based on the obtained additional conversion mode information (S1166).
- the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1167), and if the current block can be split only in the horizontal direction, parses information indicating one of the conversion modes 2, 3, 4, and 14 (502, 503, 504, and 514) that are conversion modes for splitting in the horizontal direction from the bitstream, and determines the conversion mode of the current block among the conversion modes 2, 3, 4, and 14 (502, 503, 504, and 514) based on the acquired additional conversion mode information (S1168).
- the video decoder (200) determines whether the current block can be split only in the vertical direction (S1169), and if the current block can be split only in the vertical direction, the video decoder parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514), which are transformation modes in which the current block is split in the vertical direction, from the bitstream, and determines the transformation mode of the current block from among the transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514) based on the acquired additional transformation mode information (S1170).
- the video decoder (200) parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) from the bitstream, and determines the transformation mode of the current block from among the transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) based on the acquired additional transformation mode information (S1171).
- FIG. 12a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514).
- the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1201), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1202) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
- the video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1203), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' in the bitstream as information indicating whether i) vertical or horizontal division exists (S1204). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
- '0' indicates non-division (no vertical or horizontal division exists
- the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) excluding transformation mode 1 (501) in which the current block is not divided. Set implicitly.
- the video encoder (100) first determines whether the current block is divisible in both the vertical and horizontal directions (S1205). If the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) and add it to the bitstream (S1206).
- the video encoder (100) may set additional transformation mode information considering the number of times the current block can be divided.
- the number of times the current block can be divided may be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block may be limited to a predetermined number (e.g., once).
- the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S1207). If the number of splits of the current block is limited to 1, the video encoder (100) determines the splittable direction of the current block among the horizontal and vertical directions. Specifically, the video encoder (100) determines whether the current block can be split only in the horizontal direction (S1208), and if the current block can be split only in the vertical direction and not the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 8 (508) (S1209), and does not add any additional transformation mode information to the bitstream. In addition, if the current block can be split only in the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 2 (502) (S1210), and does not add any additional transformation mode information to the bitstream.
- transformation mode 8 transformation mode 8
- the video encoder (100) determines the transformation mode of the current
- the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1211), and if the current block can be divided only in the horizontal direction, the video encoder determines the transformation mode of the current block among the transformation modes 2, 3, and 4 (502, 503, and 504), which are transformation modes for horizontal division (S1212), and adds information indicating one of the transformation modes 2, 3, and 4 (502, 503, and 504) to the bitstream as additional transformation mode information.
- the video encoder (100) determines whether the current block can be split only in the vertical direction (S1213), and if the current block can be split only in the vertical direction, determines the transformation mode of the current block among transformation modes 8, 9, and 10 (508, 509, 510), which are transformation modes for splitting in the vertical direction (S1214), and adds information indicating one of the transformation modes 8, 9, and 10 (508, 509, 510) to the bitstream as additional transformation mode information.
- Fig. 12b is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- the process in Fig. 12b corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 12a, and is a process in which a video decoder (200) determines a conversion mode.
- the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 12a (S1221), and if the current block is arbitrarily impossible to be divided vertically or horizontally, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1222).
- the video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1223). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1224). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
- the video decoder (200) determines whether the current block is divisible in both horizontal and vertical directions (S1225). If the current block is divisible in both horizontal and vertical directions, the video decoder (100) may additionally parse information indicating the transformation mode of the current block from among transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) from the bitstream, and determine the transformation mode of the current block from among transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) based on the parsed additional transformation mode information (S1226).
- the video decoder (100) can determine whether to parse additional transformation mode information by considering the number of times the current block can be divided.
- the number of times the current block can be divided can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block can be limited to a predetermined number (e.g., once).
- the video decoder (200) determines whether the current block is larger than or equal to the minimum split block size that limits the number of splits (S1227), and if the size of the current block is smaller than the minimum split block size, and the number of splits of the current block is limited to 1, the video decoder (200) determines the splittable direction of the current block among the horizontal and vertical directions again. Specifically, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1228), and if the current block can be split only in the vertical direction and not the horizontal direction, the video decoder (200) determines the transformation mode of the current block as the 8th transformation mode (508) without parsing additional transformation mode information separately (S1229). In addition, the video decoder (200) determines the transformation mode of the current block as the 2nd transformation mode (502) without parsing additional transformation mode information separately (S1230) if the current block can be split only in the horizontal direction.
- the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1231), and if the current block can be split only in the horizontal direction, it parses additional conversion mode information indicating the conversion mode of the current block from among conversion modes 2, 3, and 4 (502, 503, and 504), which are conversion modes for splitting in the horizontal direction, from the bitstream, and determines one of conversion modes 2, 3, and 4 (502, 503, and 504) as the conversion mode of the current block based on the parsed additional conversion mode information (S1232).
- the video decoder (200) determines whether the current block can be split only in the vertical direction (S1233), and if the current block can be split only in the vertical direction, it parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 8, 9, and 10 (508, 509, 510), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines one of transformation modes 8, 9, and 10 (508, 509, 510) as the transformation mode of the current block based on the parsed additional transformation mode information (S1234).
- FIG. 12c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
- the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514).
- the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1241), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1242) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
- the video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1243), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' in the bitstream as information indicating whether i) vertical or horizontal division exists (S1244). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
- '0' indicates non-division (no vertical or horizontal division exists
- the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) excluding transformation mode 1 (501) in which the current block is not divided. Set implicitly.
- the video encoder (100) first determines whether the current block is divisible in both the vertical and horizontal directions (S1245). If the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) and add it to the bitstream (S1246).
- the video encoder (100) may set additional transformation mode information considering the number of times the current block can be divided.
- the number of times the current block can be divided may be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block may be limited to a predetermined number (e.g., once).
- the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S1247). If the number of splits of the current block is limited to 1, the video encoder (100) determines the splittable direction of the current block among the horizontal and vertical directions. Specifically, the video encoder (100) determines whether the current block can be split only in the horizontal direction (S1248), and if the current block can be split only in the vertical direction and not the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 8 (508) (S1249), and does not add any additional transformation mode information to the bitstream. In addition, if the current block can be split only in the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 2 (502) (S1250), and does not add any additional transformation mode information to the bitstream.
- transformation mode 8 transformation mode 8
- the video encoder (100) determines the transformation mode of the current
- the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1251), and if the current block can be divided only in the horizontal direction, the video encoder determines the transformation mode of the current block among the transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514), which are transformation modes for horizontal division (S1252), and adds information indicating one of the transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514) to the bitstream as additional transformation mode information.
- the video encoder (100) determines whether the current block can be split only in the vertical direction (S1253), and if the current block can be split only in the vertical direction, determines the conversion mode of the current block among conversion modes 8, 9, 10, and 14 (508, 509, 510, and 514), which are conversion modes for splitting in the vertical direction (S1254), and adds information indicating one of conversion modes 8, 9, 10, and 14 (508, 509, 510, and 514) to the bitstream as additional conversion mode information.
- Fig. 12d is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information.
- the process in Fig. 12d corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 12c, and is a process in which a video decoder (200) determines a conversion mode.
- the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 12c (S1261), and if the current block is arbitrarily impossible to be divided in both the vertical and horizontal directions, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1262).
- the video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1263). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1264). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
- the video decoder (200) determines whether the current block is divisible in both horizontal and vertical directions (S1265). If the current block is divisible in both horizontal and vertical directions, the video decoder (100) may additionally parse information indicating the transformation mode of the current block from among transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) from the bitstream, and determine the transformation mode of the current block from among transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) based on the parsed additional transformation mode information (S1266).
- the video decoder (100) can determine whether to parse additional transformation mode information by considering the number of times the current block can be divided.
- the number of times the current block can be divided can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block can be limited to a predetermined number (e.g., once).
- the video decoder (200) determines whether the current block is larger than or equal to the minimum split block size that limits the number of splits (S1267), and if the size of the current block is smaller than the minimum split block size, and the number of splits of the current block is limited to 1, the video decoder (200) determines the splittable direction of the current block among the horizontal and vertical directions again. Specifically, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1268), and if the current block can be split only in the vertical direction and not the horizontal direction, the video decoder (200) determines the transformation mode of the current block as the 8th transformation mode (508) without parsing additional transformation mode information separately (S1269). In addition, the video decoder (200) determines the transformation mode of the current block as the 2nd transformation mode (502) without parsing additional transformation mode information separately (S1270) if the current block can be split only in the horizontal direction.
- the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1271), and if the current block can be split only in the horizontal direction, the video decoder parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514), which are transformation modes for splitting in the horizontal direction, from the bitstream, and determines one of transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514) as the transformation mode of the current block based on the parsed additional transformation mode information (S1272).
- the video decoder (200) determines whether the current block can be split only in the vertical direction (S1273), and if the current block can be split only in the vertical direction, the video decoder parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines one of transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514) as the transformation mode of the current block based on the parsed additional transformation mode information (S1274).
- the transformation mode information may be configured based on statistical information of the transformation mode determined as the transformation mode before the current block.
- the transformation mode statistical information applied to the surrounding blocks of the current block may be used.
- the vertical divisibility and the horizontal divisibility of the current block may be determined based on the statistical ratio information of the transformation mode applied to the surrounding blocks of the current block, and the transformation mode information may be adaptively configured based on the determined vertical divisibility and horizontal divisibility of the current block. For example, when only the transformation mode 1 (501) in which no division is performed is used as the transformation mode of the surrounding blocks located above and to the left of the current block, the vertical and horizontal divisibility of the current block may be determined to not exist.
- the current block can be determined to have only the possibility of horizontal division.
- the current block can be determined to have only the possibility of vertical division.
- the current block can be determined to be divisible in both horizontal and vertical directions.
- the video encoder (100) can determine the vertical divisibility and horizontal divisibility of the current block based on the transformation mode statistical information applied to the surrounding blocks, adaptively determine the semantics of the transformation mode information based on the vertical divisibility and horizontal divisibility of the current block, and set the transformation mode information of the current block to include in the bitstream.
- the video decoder (200) can determine the vertical divisibility and horizontal divisibility of the current block based on the transformation mode statistical information applied to the surrounding blocks, identify the semantics of the transformation mode information obtained from the bitstream based on the vertical divisibility and horizontal divisibility of the current block, and determine the transformation mode of the current block based on the transformation mode information.
- the transformation mode information is not included in the bitstream, and the transformation block of the current block may be determined to have the same size and shape as the current block. That is, if the current block is not divisible in either the vertical or horizontal direction, the separate transformation mode information may be skipped, and the first transformation mode (501) may be determined as the transformation mode of the current block.
- the transformation mode information includes i) information indicating whether a vertical or horizontal division exists (e.g., '0' indicates indivisibility, '1' indicates division), and if the information in i) indicates division such as '1', the transformation mode information may additionally include ii) information indicating one of the candidate transformation modes.
- transformation modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate transformation modes applicable to the current block, and if the current block is determined to be divisible in at least one of the horizontal and vertical division directions, information indicating '1' as information indicating whether a vertical or horizontal division exists and one of the transformation modes 2, 8, and 14 (502, 508, and 514) excluding transformation mode 1 (501) may be set as the transformation mode information.
- the transformation mode information may include i) information indicating whether a vertical or horizontal split exists (e.g., '0' means not split, '1' means split) and additionally ii) information indicating one of the candidate transformation modes that are split in the splittable direction. For example, if transformation modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate transformation modes applicable to the current block, and the current block can be split only in the horizontal direction among the horizontal and vertical divisions, information indicating whether a vertical or horizontal split exists, '1', and information indicating one of transformation mode 2 (502) and transformation mode 14 (514) may be set as the transformation mode information.
- '1' may be set as information indicating whether vertical or horizontal division exists, and information indicating one of the 8th conversion mode (507) and the 14th conversion mode (514) may be set as conversion mode information.
- the transformation mode information in order to efficiently transmit the transformation mode applied to the current block, may be configured based on transformation mode statistical information or additional information applied to a neighboring block processed before the current block. Based on the transformation mode statistical information or additional information, a final candidate transformation mode may be determined among candidate transformation modes, and transformation mode information indicating one candidate transformation mode among the final candidate transformation modes may be set. Based on the statistical ratio information or additional information of the transformation modes applied to neighboring blocks of the current block, the vertical divisibility and the horizontal divisibility of the current block may be determined, and the transformation mode information may be adaptively configured based on the determined vertical divisibility and horizontal divisibility of the current block.
- conversion modes 1, 2, 3, 8, 9, and 14 are determined as candidate conversion modes of the current block, and conversion mode information is set to signal the optimal conversion mode determined among these six conversion modes.
- the transformation mode information is not included in the bitstream, and the transformation block of the current block may be determined to have the same size and shape as the current block. That is, if the current block is not divisible in either the vertical or horizontal direction, the separate transformation mode information may be skipped, and the first transformation mode (501) may be determined as the transformation mode of the current block.
- the conversion mode information includes i) information indicating whether a vertical or horizontal division exists (e.g., '0' indicates no division, '1' indicates division), and if the information in i) indicates division as '1', the conversion mode information may additionally include ii) information indicating one of the remaining candidate conversion modes, excluding conversion mode 1 (501), namely conversion modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514).
- the current block can be split only in one of the vertical and horizontal directions, and the number of times the current block can be split is 1 based on the size information of the current block, and only the minimum number of times the current block can be split, information indicating one of the candidate conversion modes among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514), conversion mode 2 (502) in which one division is performed in the horizontal direction and conversion mode 8 (508) in which one division is performed in the vertical direction can be set as conversion mode information.
- the current block can be split only in one of the vertical and horizontal directions, and the number of times the current block can be split is one or more based on the size information of the current block, information indicating one of the conversion modes 2 and 3 (502, 503) in which one or more splits are performed in the horizontal direction and one or more conversion modes 8 and 9 (508, 509) in which one or more splits are performed in the vertical direction among the candidate conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) can be set as the conversion mode information.
- conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) are determined as candidate conversion modes of the current block, and conversion mode information is set to signal the optimal conversion mode determined among these eight conversion modes.
- the transformation mode information is not included in the bitstream, and the transformation block of the current block may be determined to have the same size and shape as the current block. That is, if the current block is not divisible in either the vertical or horizontal direction, the separate transformation mode information may be skipped, and the first transformation mode (501) may be determined as the transformation mode of the current block.
- the conversion mode information includes i) information indicating whether a vertical or horizontal division exists (e.g., '0' indicates no division, '1' indicates division), and if the information in i) indicates division as '1', the conversion mode information may additionally include ii) information indicating one of the candidate conversion modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514), excluding conversion mode 1 (501).
- the current block can be split only in one of the vertical and horizontal directions, and the number of times the current block can be split is one based on the size information of the current block, and only the minimum number of times the current block can be split, among the conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) included in the candidate conversion mode, a conversion mode in which no split is performed in the horizontal or vertical direction once is excluded from the candidate conversion mode, and information indicating one of the conversion mode 2 (502) in which a split is performed once in the horizontal direction and the conversion mode 8 (508) in which a split is performed once in the vertical direction can be set as the conversion mode information.
- the current block can be split in only one of the vertical and horizontal directions, and the number of times the current block can be split is one or more based on the size information of the current block, among the conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) included in the candidate conversion modes, conversion modes in which at least one division in the horizontal or vertical direction is not performed are excluded from the candidate conversion modes, and information indicating one of the conversion modes 2, 3, and 4 (502, 503, and 504) in which at least one division is performed in the horizontal direction, and the conversion modes 8, 9, and 10 (508, 509, and 510) in which at least one division is performed in the vertical direction among the candidate conversion modes can be set as the conversion mode information.
- the video encoder (100) includes transformation mode information of the current block in the bitstream according to one of various methods, and the video decoder (200) can parse the transformation mode information included in the bitstream to determine the transformation mode applied to the current block.
- the conversion mode information can be set in various ways such as unary coding, fixed length coding, variable length coding, and exponential global coding.
- the conversion mode information can be set as the conversion mode information.
- the present invention is not limited thereto, and the conversion mode information can be set by applying various coding methods.
- a final candidate transformation mode may be determined by eliminating transformation modes that are not applicable to the current block among the transformation modes included in the candidate transformation modes based on the additional information of the current block or the statistical information of the surrounding blocks, and transformation mode information indicating the transformation mode applied to the current block among the transformation modes included in the determined final candidate transformation mode may be transmitted.
- current frame information, slice information, partitioning information of the current block the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of the parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of the surrounding blocks of the current block, the maximum value of the transformation coefficient included in the current block, the position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order, etc.
- additional information current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of the parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of the surrounding blocks of the current block, the maximum value of the transformation coefficient included in the current block, the position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order, etc.
- the transformation modes applicable to the current block may be limited or certain transformation modes may be excluded depending on certain conditions, as follows.
- the 14th transformation mode (514) that divides the current partition into four is allowed, and in other cases, the 14th transformation mode (514) can be set not to be allowed.
- the length of the smaller side of the width or height of the current block is equal to the minimum convertible length, it may be set that no splitting is performed for the conversion of the current block. That is, if the length of the smaller side of the width or height of the current block is equal to the minimum convertible length, only the first conversion mode (501) may be set to be allowed.
- - Transformation modes can be set to allow the current block to be split only if the length of the smaller side of the width or height of the current block is greater than or equal to a predetermined length (e.g., 4 or 8).
- - Transformation modes can be set to allow the current block to be split only when the total number of pixels belonging to the current block is greater than or equal to a predetermined number.
- the size of the current block is larger than the size of a processing unit, which is a data unit used in a processing process in a video encoder (100) or a video decoder (200), only a conversion mode using a conversion block smaller than the size of the processing unit may be set to be allowed.
- a processing unit which is a data unit used in a processing process in a video encoder (100) or a video decoder (200)
- the transformation mode that cannot be performed according to the boundary condition can be set to not be allowed.
- the candidate transformation mode applicable to the current block can be finally determined.
- a context model for coding transformation mode information can be constructed based on additional information related to the current block.
- the context model can be constructed based on additional information such as current frame information, slice information, partitioning information of the current block, size of the current block, shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, size of the parent block, shape of the parent block, prediction mode information of the parent block, transformation mode information of a neighboring block of the current block, maximum value of a transformation coefficient included in the current block, and position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order.
- different context models can be configured based on the size of the current block.
- blocks can be classified into categories such as blocks with a size less than 8x8, blocks with a size greater than or equal to 8x8 but less than 16x16, blocks with a size greater than or equal to 16x16 but less than 32x32, and blocks with a size greater than or equal to 32x32, and a different context model can be configured for each category.
- a context model can be constructed based on the transformation modes used in surrounding blocks.
- a context model can be constructed based on the selected modes of the left and upper blocks, and transformation mode information can be coded based on this.
- Another example is the association between syntaxes that constitute transformation mode information.
- FIG. 6 is a flowchart of a video encoding method according to one embodiment of the present disclosure.
- the video encoder (100) can determine a CU, which is a leaf node that is no longer divided, based on the block partitioning structure exemplified in FIGS. 3a, 3b, etc. described above, and perform prediction and transformation on a CU basis.
- the video encoder (100) determines at least one candidate transformation mode available for transformation of the current block from among the plurality of candidate transformation modes illustrated in FIG. 5 described above to perform transformation (S610).
- the plurality of candidate transformation modes may include a transformation mode that uses a transformation block of the same size as the current block, and a transformation mode that uses a transformation block obtained by dividing the current block at a predetermined ratio in at least one of the horizontal and vertical directions.
- the video encoder (100) may determine the candidate transformation mode based on the aforementioned additional information or statistical information of the transformation mode used in the surrounding blocks.
- the video encoder (100) may determine the candidate transformation mode for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and may add transformation mode support information that can be supported for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit to the bitstream.
- the video encoder (100) determines the transformation mode applied to the transformation of the current block from among at least one candidate transformation mode (S620).
- the transformation mode applied to the transformation of the current block may be implicitly set based on additional information, or may include information explicitly indicating the transformation mode applied to the current block.
- the transformation mode applied to the current block may be signaled according to one of the various embodiments described above, and a detailed description thereof will be omitted.
- the video encoder (100) determines a transformation block to be used for transformation of the current block based on the determined transformation mode (S630), and performs transformation for the current block in units of transformation blocks (S640).
- FIG. 7 is a flow chart of a video decoding method according to one embodiment of the present disclosure.
- the video decoder (200) can determine a CU, which is a leaf node that is no longer divided, based on block partitioning information included in the bitstream, and perform prediction and inverse transformation processes on a CU basis.
- the video encoder (200) determines at least one candidate transformation mode available for transformation of the current block from among the plurality of candidate transformation modes illustrated in FIG. 5 described above in order to perform inverse transformation (S710).
- the plurality of candidate transformation modes may include a transformation mode that uses a transformation block of the same size as the current block, and a transformation mode that uses a transformation block obtained by dividing the current block at a predetermined ratio in at least one of the horizontal and vertical directions.
- the video decoder (200) may determine the candidate transformation mode based on the statistical information of the transformation mode used in the aforementioned additional information or the surrounding blocks.
- the video decoder (200) may obtain transformation mode support information that can be supported for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit from a bitstream, and determine the candidate transformation mode for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit based on the transformation mode support information.
- the video decoder (200) determines the transformation mode applied to the transformation of the current block among at least one candidate transformation mode (S720).
- the transformation mode applied to the transformation of the current block may be implicitly set based on additional information, or explicitly set from transformation mode information included in the bitstream.
- the transformation mode applied to the current block may be signaled according to one of the various embodiments described above, and a detailed description thereof will be omitted.
- the video decoder (200) determines a transformation block to be used for inverse transformation of the current block based on the determined transformation mode (S730), and performs inverse transformation for the current block in units of transformation blocks (S740).
- the methods described herein may be performed by a processor of a video encoder or video decoder.
- the encoder may generate a bitstream that is decoded by a video signal processing method, and the bitstream generated by the encoder may be stored in a computer-readable, non-transitory storage medium (recording medium).
- embodiments of the present invention described above may be implemented through various means.
- the embodiments of the present invention may be implemented using hardware, firmware, software, or a combination thereof.
- Computer-readable media may be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer-readable media may include both computer storage media and communication media.
- Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules, or other data.
- Communication media typically includes other data, such as computer-readable instructions, data structures, or program modules, in a modulated data signal, or other transport mechanism, and includes any information delivery media.
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
λ³Έ κ°μλ λΉλμ€μ λΆνΈν λ° λ³΅νΈν λΆμΌμ κ΄ν κ²μ΄λ€. λ³΄λ€ κ΅¬μ²΄μ μΌλ‘, λ³Έ κ°μλ λ³ν λΈλ‘μ ν¬κΈ° λ° ννλ₯Ό λ€μνκ² μ€μ ν 볡μ κ°μ λ³ν λͺ¨λλ₯Ό μ΄μ©νμ¬ λ³ν μ½λ©μ μννλ©°, λ³ν μ½λ©μ μ΄μ©λ λ³ν λͺ¨λ μ 보λ₯Ό ν¨μ¨μ μΌλ‘ μκ·Έλλ§νλ λ³ν λ°©λ² λ° μ₯μΉμ κ΄ν κ²μ΄λ€.The present disclosure relates to the field of video encoding and decoding. More specifically, the present disclosure relates to a transform coding method and device that performs transform coding using a plurality of transform modes with variously set sizes and shapes of transform blocks, and efficiently signals transform mode information used in transform coding.
κ³ ν΄μλ λλ κ³ νμ§ μμ 컨ν νΈλ₯Ό μ¬μ, μ μ₯ν μ μλ νλμ¨μ΄μ κ°λ° λ° λ³΄κΈμ λ°λΌ, κ³ ν΄μλ λλ κ³ νμ§ μμ 컨ν νΈλ₯Ό ν¨κ³Όμ μΌλ‘ λΆνΈν λλ 볡νΈν νλ μ½λ±(codec)μ νμμ±μ΄ μ¦κ°νκ³ μλ€. μ΅κ·Όμλ μ΄λ¬ν κ³ ν΄μλ λλ κ³ νμ§ μμ 컨ν νΈλ₯Ό ν¨κ³Όμ μΌλ‘ μμΆνκΈ° μν λ°©λ²λ€μ΄ μ€μλκ³ μλ€. λνμ μΈ μ½λ±μ μλ‘μ HEVC(High Efficiency Video Coding) λ° VVC(Versatile Video Coding) λ±μ΄ μλ€.With the development and widespread adoption of hardware capable of playing and storing high-resolution or high-definition video content, the need for codecs that effectively encode or decode this content is increasing. Recently, methods for effectively compressing such high-definition or high-definition video content have been implemented. Representative examples of codecs include High Efficiency Video Coding (HEVC) and Versatile Video Coding (VVC).
λΉλμ€ μ½λ© νμ€μμλ μμΆ μ±λ₯μ ν₯μμν€κΈ° μν΄ λ³ν(Transform) μ½λ© κΈ°λ²μ νμ©νκ³ μλ€. λ³ν μ½λ©μ ν½μ λλ©μΈμ μλ μμ°¨ κ°μ μ£Όνμ λλ©μΈμΌλ‘ λ³κ²½νμ¬ μ½λ©μ λμμΌλ‘ μΌλ μμΆ κΈ°λ²μ΄λ€. κΈ°μ‘΄ λΉλμ€ μ½λ© νμ€μμλ DCT(Discrete Cosine Transform), DST(Discrete Sine Transform)λ±μ νμ©νμ¬ μ£Όνμ κ°μΌλ‘ λ³κ²½νλλ°, μ΄λ λ³κ²½λλ λΈλ‘ μ¬μ΄μ¦μ λν μ νμ±μ΄ μ‘΄μ¬νλ€. ν΄λΉ μ νμ±μΌλ‘ μΈνμ¬ μ΅μ νλ μμΆμ±λ₯μ μ 곡νμ§ λͺ»νλ μ΄μκ° λ°μνλ€.Video coding standards utilize transform coding techniques to improve compression performance. Transform coding is a compression technique that transforms residual values in the pixel domain into the frequency domain and uses them as the target of coding. Existing video coding standards utilize discrete cosine transforms (DCTs) and discrete sine transforms (DSTs) to convert these values into frequency values. However, there are limitations on the block size that can be changed. These limitations lead to issues with providing optimal compression performance.
HEVC/H.265 νμ€μ κ²½μ° νΈλμ€νΌμ TU(Transform unit) λ¨μλ‘ μ€μ λκ³ λ³νμ΄ μ΄λ£¨μ΄ μ§λ€. λ¨Όμ CU(Coding Unit)μ ν΄λΉνλ λΈλ‘ μ¬μ΄μ¦λ RQTκ³Όμ μ ν΅νμ¬ Quad-tree λ°©μμΌλ‘ λΆν λ ν λΆν λ μ¬μ΄μ¦μ λ°λΌ κ°κ° λ³νκ³Όμ μ΄ μ΄λ£¨μ΄ μ§λ€. μλ₯Ό λ€μ΄ 32x32 CUλ 32x32, 16x16, 8x8,4x4λ±μ λΈλ‘λ€λ‘ λΆν λμ΄ λ³νμ΄ μ΄λ£¨μ΄μ§λ€.For the HEVC/H.265 standard, the transform is set in units of TU (Transform Unit) and the conversion is performed. First, the block size corresponding to the CU (Coding Unit) is divided into Quad-tree method through the RQT process, and then the conversion process is performed for each divided size. For example, a 32x32 CU is divided into blocks such as 32x32, 16x16, 8x8, and 4x4 and the conversion is performed.
HEVC/H.265 νμ€μμλ RQTκ³Όμ μ ν΅ν΄ μμ°¨μ νΉμ±μ κ³ λ €ν λ³νκ³Όμ μ κ°λ₯νκ² νμ§λ§, λͺ¨λ λΆν μ΄ Quad-tree λΆν μ μ€μ¬μΌλ‘ μ΄λ£¨μ΄μ Έ μ΅μ νλ λΆν μ¬μ΄μ¦λ₯Ό λ§λ€μ΄λ΄μ§ λͺ»νλ λ¨μ μ΄ μ‘΄μ¬νλ€.The HEVC/H.265 standard enables a conversion process that considers the characteristics of the residual through the RQT process, but has the disadvantage of not being able to create an optimized split size because all splits are centered around Quad-tree splits.
VVC/H.266 νμ€μ κ²½μ° λ³νμ νΉμν κ²½μ°λ₯Ό μ μΈνκ³ κΈ°λ³Έμ μΌλ‘ CUμ¬μ΄μ¦μ λμΌν λΈλ‘ μ¬μ΄μ¦λ‘ λ³νμ΄ μ΄λ£¨μ΄μ§λ€. CUλΈλ‘ μ¬μ΄μ¦κ° non-square λΈλ‘μΌλ‘ κ²°μ λ μ μκΈ° λλ¬Έμ λ³ν λΈλ‘ μ¬μ΄μ¦λ μ μ¬κ°νμ΄ μλ μ§μ¬κ°ν ννκ° κ°λ₯νμ¬ μμ°¨μ νΉμ±μ΄ λ°μλ λ³νμ μνν μ μλ€. VVC/H.266 νμ€μμλ νΈλμ€νΌμ μν μ μμ λΆν λΈλ‘ ν¬κΈ°λ₯Ό μ§μνμ§λ§, CUλΈλ‘ μ¬μ΄μ¦μ μμ°¨μ λΆν¬κ° μμ΄ν κ²½μ°μλ μ΅μ νλ λ³ν κ³Όμ μ μννμ§ λͺ»ν κ°λ₯μ±μ΄ μ‘΄μ¬νλ€.For the VVC/H.266 standard, transformation is basically performed in a block size equal to the CU size, except in special cases. Since the CU block size can be determined as a non-square block, the transformation block size can also be rectangular rather than square, enabling transformation that reflects the characteristics of the residual. While the VVC/H.266 standard supports adaptive partitioning block sizes for transform, there is a possibility that the optimized transformation process may not be performed if the CU block size and the residual distribution are different.
λ³Έ κ°μλ λ³ν λΈλ‘μ ν¬κΈ° λ° ννλ₯Ό λ€μνκ² μ€μ ν 볡μ κ°μ λ³ν λͺ¨λλ₯Ό μ΄μ©νμ¬ λ³ν μ½λ©μ μννλ λΉλμ€ λμ½λ© λ°©λ² λ° μ₯μΉ, λΉλμ€ μΈμ½λ© λ°©λ² λ° μ₯μΉλ₯Ό μ 곡νκΈ° μν κ²μ΄λ€.The present disclosure provides a video decoding method and device, and a video encoding method and device that perform transform coding using a plurality of transform modes in which the sizes and shapes of transform blocks are set in various ways.
λ³Έ κ°μμ μ€μμλ€μ λ³ν λΈλ‘μ ν¬κΈ° λ° ννλ₯Ό λ€μνκ² μ€μ ν 볡μ κ°μ λ³ν λͺ¨λλ₯Ό κ°μνλ€.Embodiments of the present disclosure disclose multiple transformation modes with various sizes and shapes of transformation blocks.
λν, λ³Έ κ°μμ μ€μμλ€μ λ€μν λ³ν λͺ¨λμ κ΄ν λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ ν΅ν΄ μ μ‘νλ λΉλμ€ λΆνΈν λ°©λ² λ° μ₯μΉλ₯Ό κ°μνλ€.Additionally, embodiments of the present disclosure disclose a video encoding method and apparatus for transmitting conversion mode information regarding various conversion modes through a bitstream.
λν, λ³Έ κ°μμ μ€μμλ€μ λΉνΈμ€νΈλ¦Όμ ν΅ν΄ μμ λ λ€μν λ³ν λͺ¨λμ κ΄ν λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ λ³ν λΈλ‘μ κ²°μ νλ λΉλμ€ λ³΅νΈν λ°©λ² λ° μ₯μΉλ₯Ό κ°μνλ€.Additionally, embodiments of the present disclosure disclose a video decoding method and apparatus for determining a transform block based on transform mode information regarding various transform modes received through a bitstream.
λ³Έ κ°μμ μ€μμλ€μ λ°λ₯΄λ©΄ λ³ν λΈλ‘μ ν¬κΈ° λ° ννκ° λ€μνκ² μ€μ λ 볡μ κ°μ λ³ν λͺ¨λλ₯Ό μ΄μ©νμ¬ λΉλμ€μ λΆνΈν λ° λ³΅νΈνλ₯Ό μνν¨μΌλ‘μ¨, μμ νΉμ±μ λ°λΌ λ³΄λ€ μ μ°ν λ³ν λΈλ‘ νν°μ λ ꡬ쑰λ₯Ό μ 곡ν μ μμΌλ©°, μμμ μμΆ ν¨μ¨μ ν₯μμν¬ μ μλ€.According to embodiments of the present disclosure, encoding and decoding of a video are performed using a plurality of transformation modes in which the sizes and shapes of transformation blocks are set in various ways, thereby providing a more flexible transformation block partitioning structure according to image characteristics, and improving the compression efficiency of the image.
λ 1μ λ³Έ λ°λͺ μ μΌμ€μμμ λ°λ₯Έ λΆνΈν μ₯μΉλ₯Ό λΈλ‘λλ‘ λμνλ€.FIG. 1 is a block diagram illustrating an encoding device according to an embodiment of the present invention.
λ 2λ λ³Έ κ°μμ μΌμ€μμμ λ°λ₯Έ 볡νΈν μ₯μΉλ₯Ό λΈλ‘λλ‘ λμνλ€.FIG. 2 is a block diagram illustrating a decryption device according to an embodiment of the present disclosure.
λ 3aλ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ, λΈλ‘ νν°μ λ ꡬ쑰μ μΌ μλ₯Ό λνλ΄λ λλ©΄μ΄λ€.FIG. 3A is a diagram illustrating an example of a block partitioning structure according to one embodiment of the present disclosure.
λ 3bλ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ, λ©ν°νμ νΈλ¦¬ ꡬ쑰μ μΌ μλ₯Ό λνλ΄λ λλ©΄μ΄λ€.FIG. 3b is a diagram illustrating an example of a multi-type tree structure according to one embodiment of the present disclosure.
λ 4λ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ, λΈλ‘ νν°μ λ νΈλ¦¬ ꡬ쑰μ μΌ μλ₯Ό λνλΈ λλ©΄μ΄λ€.FIG. 4 is a diagram illustrating an example of a block partitioning tree structure according to one embodiment of the present disclosure.
λ 5λ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ, νμ¬ λΈλ‘(CU λλ μλΈλΈλ‘)μ λ³ν κ³Όμ μ μ΄μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ€μ μΌ μλ₯Ό λνλΈ λλ©΄μ΄λ€.FIG. 5 is a diagram illustrating an example of candidate transformation modes available for a transformation process of a current block (CU or sub-block) according to one embodiment of the present disclosure.
λ 6μ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ λΉλμ€ λΆνΈν λ°©λ²μ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 6 is a flowchart of a video encoding method according to one embodiment of the present disclosure.
λ 7μ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ λΉλμ€ λ³΅νΈν λ°©λ²μ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 7 is a flow chart of a video decoding method according to one embodiment of the present disclosure.
λ 8aλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μμΌ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 8a is a flow chart showing an example of a process in which a video encoder (100) adaptively configures conversion mode information.
λ 8bλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ μΌ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 8b is a flow chart showing an example of a process in which a video decoder (200) adaptively determines conversion mode information.
λ 8cλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 8c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
λ 8dλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 8d is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
λ 9aλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 9a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
λ 9bλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 9b is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
λ 9cλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 9c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
λ 9dλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 9d is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
λ 10aλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 10a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
λ 10bλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 10b is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
λ 10cλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 10c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
λ 10dλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.λ 11aλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 10d is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information. FIG. 11a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
λ 11bλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.Figure 11b is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
λ 11cλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 11c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
λ 11dλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 11d is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
λ 12aλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 12a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
λ 12bλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.Figure 12b is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
λ 12cλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 12c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
λ 12dλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 12d is a flow chart showing another example of a process in which a video decoder (200) adaptively determines conversion mode information.
λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ λΉλμ€ λ³΅νΈν λ°©λ²μ 볡μ κ°μ ν보 λ³ν λͺ¨λλ€ μ€ νμ¬ λΈλ‘μ λ³νμ μ΄μ©κ°λ₯ν μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³; μκΈ° μ μ΄λ νλμ ν보 λ³ν λͺ¨λ μ€ μκΈ° νμ¬ λΈλ‘μ λ³νμ μ μ©λ λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³; μκΈ° κ²°μ λ λ³ν λͺ¨λμ κΈ°μ΄νμ¬ μκΈ° νμ¬ λΈλ‘μ μλ³νμ μ΄μ©λλ λ³ν λΈλ‘μ κ²°μ νλ λ¨κ³; λ° μκΈ° λ³ν λΈλ‘ λ¨μλ‘ μκΈ° νμ¬ λΈλ‘μ λν μλ³νμ μννλ λ¨κ³λ₯Ό ν¬ν¨νλ€.A video decoding method according to one embodiment of the present disclosure includes the steps of: determining at least one candidate transformation mode available for transformation of a current block from among a plurality of candidate transformation modes; determining a transformation mode applied to transformation of the current block from among the at least one candidate transformation mode; determining a transformation block used for inverse transformation of the current block based on the determined transformation mode; and performing inverse transformation on the current block in units of the transformation blocks.
μΌ μ€μμμ μμ΄μ, μκΈ° 볡μ κ°μ ν보 λ³ν λͺ¨λλ€μ μκΈ° νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ°μ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μν λ°©ν₯ λ° μμ§ λ°©ν₯ μ€ μ μ΄λ νλμ λ°©ν₯μΌλ‘ μμ λΉμ¨λ‘ λΆν νμ¬ νλλλ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λλ₯Ό ν¬ν¨νλ€.In one embodiment, the plurality of candidate transformation modes include a transformation mode that uses a transformation block of the same size as the current block, and a transformation mode that uses a transformation block obtained by dividing the current block in at least one of a horizontal direction and a vertical direction at a predetermined ratio.
μΌ μ€μμμ μμ΄μ, μκΈ° 볡μ κ°μ ν보 λ³ν λͺ¨λλ€μ μκΈ° νμ¬ λΈλ‘μ μν λ°©ν₯ λ° μμ§ λ°©ν₯ μ€ μ μ΄λ νλμ λ°©ν₯μΌλ‘ 1:A (Aλ μμ°μ)μ λΉμ¨λ‘ 2λΆν νκ±°λ, 1:1:B(Bλ μμ°μ)μ λΉμ¨λ‘ 3λΆν νκ±°λ, 1:C:1(Cλ μμ°μ)μ λΉμ¨λ‘ 3λΆν νκ±°λ, D:1:1 (Dλ μμ°μ)μ λΉμ¨λ‘ 3λΆν νκ±°λ, 1:1:1:1μ λΉμ¨λ‘ 4λΆν νμ¬ νλλλ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λλ₯Ό ν¬ν¨νλ€.In one embodiment, the plurality of candidate transformation modes include a transformation mode that uses a transformation block obtained by dividing the current block into two parts in a ratio of 1:A (A is a natural number) in at least one of a horizontal direction and a vertical direction, into three parts in a ratio of 1:1:B (B is a natural number), into three parts in a ratio of 1:C:1 (C is a natural number), into three parts in a ratio of D:1:1 (D is a natural number), or into four parts in a ratio of 1:1:1:1.
μΌ μ€μμμ μμ΄μ, μκΈ° 볡μ κ°μ ν보 λ³ν λͺ¨λλ€μ μκΈ° νμ¬ λΈλ‘μ ν(width) λ° λμ΄(height)μ λμΌν νκ³Ό λμ΄λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 1 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 2λΆν ν 2κ°μ width x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 2 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 4λΆν ν 4κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 3 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 1:2:1μ λΉμ¨λ‘ 3λΆν νμ¬ 2κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 4 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 1:1:2μ λΉμ¨λ‘ 3λΆν νμ¬ 2κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 5 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 2:1:1μ λΉμ¨λ‘ 3λΆν νμ¬ 2κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 6 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 1:2:1μ λΉμ¨λ‘ 3λΆν νμ¬ λΆν λ 2κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° width x height/2μ λΈλ‘μ λ€μ μμ§ λ°©ν₯μΌλ‘ 2λΆν ν 2κ°μ width/2 x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 7 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 2λΆν ν 2κ°μ width/2 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 8 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 4λΆν ν 4κ°μ width/4 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 9 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 1:2:1μ λΉμ¨λ‘ 3λΆν ν 2κ°μ width/4 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width/2 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 10 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 1:1:2μ λΉμ¨λ‘ 3λΆν ν 2κ°μ width/4 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width/2 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 11 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 2:1:1μ λΉμ¨λ‘ 3λΆν ν 2κ°μ width/4 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width/2 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 12 λ³ν λͺ¨λ, μκΈ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 1:2:1μ λΉμ¨λ‘ 3λΆν νμ¬ λΆν λ 2κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° width x height/2μ λΈλ‘μ λ€μ μμ§ λ°©ν₯μΌλ‘ 2λΆν ν 2κ°μ width/2 x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 13 λ³ν λͺ¨λ, λ° μκΈ° νμ¬ λΈλ‘μ μν λ°©ν λ° μμ§ λ°©ν₯μΌλ‘ 2λΆν ν 4κ°μ width/2 x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 14 λ³ν λͺ¨λ μ€ μ μ΄λ νλμ λͺ¨λλ₯Ό ν¬ν¨νλ€.In one embodiment, the plurality of candidate transformation modes include a first transformation mode using a transformation block having a width and height equal to the width and height of the current block, a second transformation mode using two transformation blocks having a size of width x height/2 by horizontally dividing the current block into two, a third transformation mode using four transformation blocks having a size of width x height/4 by horizontally dividing the current block into four, a fourth transformation mode using two transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2 by horizontally dividing the current block into three at a ratio of 1:2:1, a fifth transformation mode using two transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2 by horizontally dividing the current block into three at a ratio of 1:1:2, a fifth transformation mode using two transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2 by horizontally dividing the current block into three at a ratio of 2:1:1, A sixth transformation mode using transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2, a seventh transformation mode using two transformation blocks having a size of width x height/4 obtained by dividing the current block into three blocks in a horizontal direction at a ratio of 1:2:1 and two transformation blocks having a size of width/2 x height/2 obtained by dividing the width x height/2 block into two blocks in a vertical direction again, an eighth transformation mode using two transformation blocks having a size of width/2 x height obtained by dividing the current block into two blocks in a vertical direction, a ninth transformation mode using four transformation blocks having a size of width/4 x height obtained by dividing the current block into four blocks in a vertical direction at a ratio of 1:2:1 and a tenth transformation mode using two transformation blocks having a size of width/4 x height obtained by dividing the current block into three blocks in a vertical direction at a ratio of 1:1:2 and one transformation block having a size of width/2 x height obtained by dividing the current block into three blocks in a vertical direction at a ratio of 1:1:2 It includes at least one mode among an 11th transformation mode using two transformation blocks each having a size of width/4 x height divided into three parts and one transformation block each having a size of width/2 x height, a 12th transformation mode using two transformation blocks each having a size of width/4 x height divided into three parts in a vertical direction at a ratio of 2:1:1 and one transformation block each having a size of width/2 x height, a 13th transformation mode using two transformation blocks each having a size of width/4 divided into three parts in a vertical direction at a ratio of 1:2:1 and two transformation blocks each having a size of width/2 x height/2 divided into two parts in a vertical direction again, and a 14th transformation mode using four transformation blocks each having a size of width/2 x height/2 divided into two parts in a horizontal and vertical direction.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ μλ³νμ μ΄μ©κ°λ₯ν μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ κ²°μ λλ©°, μκΈ° μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ μκΈ° νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉ μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬ κ²°μ λλ€.In one embodiment, at least one candidate transform mode available for the inverse transform of the current block is determined for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and the at least one candidate transform mode is determined based on at least one of current frame information, slice information, partitioning information of the current block, a size of the current block, a shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, a size of the parent block, a shape of the parent block, prediction mode information of the parent block, transform mode information of a neighboring block of the current block, a maximum value of a transform coefficient included in the current block, and a position of a last non-zero transform coefficient of the current block according to a predetermined scanning order.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ μλ³νμ μ΄μ©κ°λ₯ν μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ μκ·Έλλ§λλ λ³ν λͺ¨λ μ§μ μ 보μ κΈ°μ΄νμ¬ κ²°μ λλ€.In one embodiment, at least one candidate transform mode available for inverse transformation of the current block is determined based on transform mode support information signaled for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ μλ³νμ μ΄μ©κ°λ₯ν μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ μκ·Έλλ§λλ λ³ν λͺ¨λ μ§μ μ 보μ κΈ°μ΄νμ¬ λͺ μμ μΌλ‘ κ²°μ λλ ν보 λ³ν λͺ¨λλ€ μ€μμ, λΆκ° μ 보μ κΈ°μ΄νμ¬ μ΅μ’ μ μΈ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ νλ©°, μκΈ° λΆκ° μ 보λ νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ μκΈ° νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉ μ€ μ μ΄λ νλμ΄λ€.In one embodiment, at least one candidate transform mode available for the inverse transform of the current block is explicitly determined based on transform mode support information signaled for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and a final candidate transform mode is determined based on additional information among candidate transform modes, wherein the additional information is at least one of current frame information, slice information, partitioning information of a current block, a size of a current block, a shape of a current block, prediction mode information of a current block, partitioning information of a parent block including the current block, a size of a parent block, a shape of a parent block, prediction mode information of a parent block, transform mode information of a neighboring block of the current block, a maximum value of a transform coefficient included in the current block, and a position of a last non-zero transform coefficient of the current block according to a predetermined scanning order.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ μλ³νμ μ μ©λ λ³ν λͺ¨λλ νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ μκΈ° νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉ μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬ μκΈ° μ μ΄λ νλμ ν보 λ³ν λͺ¨λ μ€μμ κ²°μ λλ€.In one embodiment, the transform mode applied to the inverse transform of the current block is determined from among the at least one candidate transform mode based on at least one of current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transform mode information of a neighboring block of the current block, the maximum value of a transform coefficient included in the current block, and the position of the last non-zero transform coefficient of the current block according to a predetermined scanning order.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ μλ³νμ μ μ©λ λ³ν λͺ¨λλ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ μκ·Έλλ§λλ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ κ²°μ λλ μκΈ° μ μ΄λ νλμ ν보 λ³ν λͺ¨λ μ€μμ κ²°μ λλ€.In one embodiment, the transformation mode applied to the inverse transformation of the current block is determined from among at least one candidate transformation mode determined based on transformation mode information signaled for each unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ μλ³νμ μ μ©λ λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³λ μκΈ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νλ λ¨κ³; μκΈ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬ λΉνΈμ€νΈλ¦Όμ λ³ν λͺ¨λ μ 보μ μλ―Έ(semantics)λ₯Ό μλ³νκ³ , μκΈ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ μκΈ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³λ₯Ό ν¬ν¨νλ€.In one embodiment, the step of determining a transformation mode applied to the inverse transformation of the current block includes the steps of: determining vertical divisibility and horizontal divisibility of the current block; identifying semantics of transformation mode information in a bitstream based on the vertical divisibility and horizontal divisibility of the current block; and determining the transformation mode of the current block based on the transformation mode information.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯μΌλ‘ λͺ¨λ λΆν κ°λ₯ν κ²½μ°, μκΈ° λ³ν λͺ¨λ μ 보λ μκΈ° ν보 λ³ν λͺ¨λλ€ μ€μμ νλλ₯Ό κ°λ¦¬ν€λ μΈλ±μ€ μ 보μ΄λ©°,μκΈ° νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, μκΈ° λ³ν λͺ¨λ μ 보λ i) μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μκΈ° νμ¬ λΈλ‘μ λΆν λ°©ν₯μ κ°λ¦¬ν€λ μ 보, λ° ii) μκΈ° λΆν λ°©ν₯μ λ°λ₯Έ λΆν μ¬λΆλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό ν¬ν¨νλ©°, μκΈ° νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ λ°©ν₯μΌλ‘λ λΆν κ°λ₯νμ§ μμ κ²½μ°, μκΈ° λ³ν λͺ¨λ μ 보λ μκΈ° λΉνΈμ€νΈλ¦Όμ ν¬ν¨λμ§ μμΌλ©° μκΈ° νμ¬ λΈλ‘μ λ³ν λΈλ‘μ μκΈ° νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ° λ° λͺ¨μμ κ°λ κ²μΌλ‘ κ²°μ λλ€.In one embodiment, when the current block is divisible in both the vertical direction and the horizontal direction, the transformation mode information is index information indicating one of the candidate transformation modes, and when the current block is divisible in only one of the vertical direction and the horizontal direction, the transformation mode information includes i) information indicating a division direction of the current block among the vertical direction and the horizontal direction, and ii) information indicating whether to divide according to the division direction, and when the current block is not divisible in either the vertical direction or the horizontal direction, the transformation mode information is not included in the bitstream, and the transformation block of the current block is determined to have the same size and shape as the current block.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯μΌλ‘ λͺ¨λ λΆν κ°λ₯ν κ²½μ°, μκΈ° λ³ν λͺ¨λ μ 보λ μκΈ° ν보 λ³ν λͺ¨λλ€ μ€μμ νλλ₯Ό κ°λ¦¬ν€λ μΈλ±μ€ μ 보μ΄λ©°, μκΈ° νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, μκΈ° λ³ν λͺ¨λ μ 보λ i) μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μκΈ° νμ¬ λΈλ‘μ λΆν λ°©ν₯μ κ°λ¦¬ν€λ μ 보, λ° ii) μκΈ° λΆν κ°λ₯ν λ°©ν₯μ λ°λΌ μ μ©κ°λ₯ν 볡μ κ°μ λ³ν λͺ¨λ μ€ νλμ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό ν¬ν¨νλ©°, μκΈ° νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ λ°©ν₯μΌλ‘λ λΆν κ°λ₯νμ§ μμ κ²½μ°, μκΈ° λ³ν λͺ¨λ μ 보λ μκΈ° λΉνΈμ€νΈλ¦Όμ ν¬ν¨λμ§ μμΌλ©° μκΈ° νμ¬ λΈλ‘μ λ³ν λΈλ‘μ μκΈ° νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ° λ° λͺ¨μμ κ°λ κ²μΌλ‘ κ²°μ λλ€.In one embodiment, when the current block is divisible in both the vertical direction and the horizontal direction, the transformation mode information is index information indicating one of the candidate transformation modes, and when the current block is divisible in only one of the vertical direction and the horizontal direction, the transformation mode information includes i) information indicating a division direction of the current block among the vertical direction and the horizontal direction, and ii) information indicating one transformation mode among a plurality of transformation modes applicable according to the divisible direction, and when the current block is not divisible in either the vertical direction or the horizontal direction, the transformation mode information is not included in the bitstream, and the transformation block of the current block is determined to have the same size and shape as the current block.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ μλ³νμ μ μ©λ λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³λ μκΈ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νλ λ¨κ³; μκΈ° νλ¨λ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬, μκΈ° νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯νκ³ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νλλ λ³ν λͺ¨λ μ λ³΄κ° μκΈ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μμμ κ°λ¦¬ν¬ κ²½μ°, μκΈ° νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ° λ° λͺ¨μμ κ°λ λ³ν λΈλ‘μ μ΄μ©νλ©° μκΈ° νμ¬ λΈλ‘μ λΆν νμ§ μλ λ³ν λͺ¨λλ₯Ό μκΈ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ λ¨κ³; μκΈ° νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ νλμ λ°©ν₯μΌλ‘ λΆν κ°λ₯νλ©°, μκΈ° λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νλλ λ³ν λͺ¨λ μ 보λ‘λΆν° μκΈ° μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ λΆν κ°λ₯ν νλμ λ°©ν₯μΌλ‘ λΆν λλ ν보 μμΈ‘ λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό νλνλ λ¨κ³; λ° μκΈ° ν보 μμΈ‘ λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보μ κΈ°μ΄νμ¬ μκΈ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³λ₯Ό ν¬ν¨νλ€.In one embodiment, the step of determining a transformation mode applied to the inverse transformation of the current block includes: determining vertical divisibility and horizontal divisibility of the current block; if the current block is arbitrarily incapable of both vertical divisibility and horizontal divisibility based on the determined vertical divisibility and horizontal divisibility and transformation mode information obtained from a bitstream indicates that the current block is not to be divided, determining a transformation mode that does not divide the current block while using a transformation block having the same size and shape as the current block as the transformation mode of the current block; obtaining information indicating one of candidate prediction modes in which the current block is arbitrarily divisible in one of the vertical divisibility and horizontal divisibility directions and is divided in one of the vertical divisibility and horizontal divisibility directions from the transformation mode information obtained from the bitstream; and determining the transformation mode of the current block based on the information indicating one of the candidate prediction modes.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ μλ³νμ μ μ©λ λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³λ μκΈ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±κ³Ό μκΈ° νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό νλ¨νλ λ¨κ³; μκΈ° νλ¨λ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬, μκΈ° νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯νκ³ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νλλ λ³ν λͺ¨λ μ λ³΄κ° μκΈ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μμμ κ°λ¦¬ν¬ κ²½μ°, μκΈ° νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ° λ° λͺ¨μμ κ°λ λ³ν λΈλ‘μ μ΄μ©νλ©° μκΈ° νμ¬ λΈλ‘μ λΆν νμ§ μλ λ³ν λͺ¨λλ₯Ό μκΈ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ λ¨κ³; μκΈ° νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ νλμ λ°©ν₯μΌλ‘ λΆν κ°λ₯ν κ²½μ°, μκΈ° λΆν κ°λ₯ νμμ κΈ°μ΄νμ¬ μκΈ° μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ λΆν κ°λ₯ν νλμ λ°©ν₯μΌλ‘ λΆν λλ ν보 μμΈ‘ λͺ¨λλ€ μ€ μκΈ° λΆν νμλ₯Ό μ΄κ³Όνλ λ³ν λͺ¨λλ₯Ό μ μΈνκ³ , λλ¨Έμ§ ν보 μμΈ‘ λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό νλνλ λ¨κ³; λ° μκΈ° λλ¨Έμ§ ν보 μμΈ‘ λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보μ κΈ°μ΄νμ¬ μκΈ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³λ₯Ό ν¬ν¨νλ€.In one embodiment, the step of determining a transformation mode applied to the inverse transformation of the current block includes: determining a vertical divisibility and a horizontal divisibility of the current block and a number of possible divisibility times of the current block; if, based on the determined vertical divisibility and horizontal divisibility, the current block is arbitrarily incapable of both vertical divisibility and horizontal divisibility and transformation mode information acquired from a bitstream indicates that the current block is not divisible, determining a transformation mode that does not divide the current block while using a transformation block having the same size and shape as the current block as the transformation mode of the current block; if the current block is arbitrarily divisible in one of the vertical divisibility and the horizontal divisibility directions, obtaining information indicating one of the remaining candidate prediction modes, excluding a transformation mode that exceeds the number of possible divisibility times among candidate prediction modes that are divided in one of the vertical divisibility directions or the horizontal divisibility directions based on the number of possible divisibility times; and determining a transformation mode of the current block based on the information indicating one of the remaining candidate prediction modes.
μΌ μ€μμμ μμ΄μ, μκΈ° νμ¬ λΈλ‘μ μλ³νμ μ΄μ©κ°λ₯ν μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³λ μκΈ° νμ¬ λΈλ‘μ ν¬κΈ°μ μμ λ°μ΄ν° λ¨μμ ν¬κΈ°μ λΉκ΅ κ²°κ³Ό, μκΈ° νμ¬ λΈλ‘μ νκ³Ό λμ΄ μ€ μμ λ³μ κΈΈμ΄, μκΈ° νμ¬ λΈλ‘μ ν¬ν¨λ ν½μ μ μ΄ κ°μ, μκΈ° νμ¬ λΈλ‘μ ν¬κΈ°μ μ²λ¦¬ λ¨μ(processing unit)μ ν¬κΈ°μ λΉκ΅ κ²°κ³Ό, μκΈ° νμ¬ λΈλ‘μ΄ μμ κ²½κ³ μ‘°κ±΄μ ν΄λΉνλμ§ μ¬λΆ μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬ μμ ν보 λ³ν λͺ¨λλ₯Ό μ ννκ±°λ μκΈ° νμ¬ λΈλ‘μ μλ³νμ μν λΆν μ μννμ§ μλλ€.In one embodiment, the step of determining at least one candidate transformation mode available for inverse transformation of the current block limits the candidate transformation mode or does not perform segmentation for inverse transformation of the current block based on at least one of a result of comparing the size of the current block with the size of a predetermined data unit, the length of a smaller side among the width and height of the current block, the total number of pixels included in the current block, a result of comparing the size of the current block with the size of a processing unit, and whether the current block satisfies a predetermined boundary condition.
μΌ μ€μμμ μμ΄μ, νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ μκΈ° νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉ μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬ μ»¨ν μ€νΈ λͺ¨λΈμ κ²°μ νλ λ¨κ³; λ° μκΈ° κ²°μ λ 컨ν μ€νΈ λͺ¨λΈμ κΈ°μ΄νμ¬ μκΈ° λΉνΈμ€νΈλ¦Όμ ν¬ν¨λ λ³ν λͺ¨λ μ 보λ₯Ό 볡νΈννλ λ¨κ³λ₯Ό λ ν¬ν¨νλ€.In one embodiment, the method further comprises: determining a context model based on at least one of current frame information, slice information, partitioning information of a current block, a size of the current block, a shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, a size of the parent block, a shape of the parent block, prediction mode information of the parent block, transform mode information of a neighboring block of the current block, a maximum value of a transform coefficient included in the current block, and a position of a last non-zero transform coefficient of the current block according to a predetermined scanning order; and decoding transform mode information included in the bitstream based on the determined context model.
λ³Έ κ°μμ μΌ μ€μμμ μμ΄μ, μκΈ° λΉλμ€ λ³΅νΈν λ°©λ²μ μννλ λΉλμ€ λ³΅νΈν μ₯μΉ λ° μκΈ° λΉλμ€ λ³΅νΈν λ°©λ²μ μ€ννκΈ° μν νλ‘κ·Έλ¨μ κΈ°λ‘ν μ»΄ν¨ν°λ‘ νλ κ°λ₯ν κΈ°λ‘ λ§€μ²΄λ₯Ό ν¬ν¨νλ€.In one embodiment of the present disclosure, a video decoding device for performing the video decoding method and a computer-readable recording medium recording a program for executing the video decoding method are included.
λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Ό λΉλμ€ λΆνΈν λ°©λ²μ, 볡μ κ°μ ν보 λ³ν λͺ¨λλ€ μ€ νμ¬ λΈλ‘μ λ³νμ μ΄μ©κ°λ₯ν μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³; μκΈ° μ μ΄λ νλμ ν보 λ³ν λͺ¨λ μ€ μκΈ° νμ¬ λΈλ‘μ λ³νμ μ μ©λ λ³ν λͺ¨λλ₯Ό κ²°μ νλ λ¨κ³; μκΈ° κ²°μ λ λ³ν λͺ¨λμ κΈ°μ΄νμ¬ μκΈ° νμ¬ λΈλ‘μ λ³νμ μ΄μ©λλ λ³ν λΈλ‘μ κ²°μ νλ λ¨κ³; λ° μκΈ° λ³ν λΈλ‘ λ¨μλ‘ μκΈ° νμ¬ λΈλ‘μ λν λ³νμ μννλ λ¨κ³λ₯Ό ν¬ν¨νλ€.A video encoding method according to one embodiment of the present disclosure comprises the steps of: determining at least one candidate transformation mode available for transformation of a current block from among a plurality of candidate transformation modes; determining a transformation mode applied to transformation of the current block from among the at least one candidate transformation mode; determining a transformation block used for transformation of the current block based on the determined transformation mode; and performing transformation on the current block in units of the transformation blocks.
λ³Έ κ°μμ μΌ μ€μμμ μμ΄μ, μκΈ° λΉλμ€ λΆνΈν λ°©λ²μ μννλ λΉλμ€ λΆνΈν μ₯μΉ λ° μκΈ° λΉλμ€ λΆνΈν λ°©λ²μ μ€ννκΈ° μν νλ‘κ·Έλ¨μ κΈ°λ‘ν μ»΄ν¨ν°λ‘ νλ κ°λ₯ν κΈ°λ‘ λ§€μ²΄λ₯Ό ν¬ν¨νλ€.In one embodiment of the present disclosure, a video encoding device for performing the video encoding method and a computer-readable recording medium recording a program for executing the video encoding method are included.
μ΄ν, 첨λΆν λλ©΄μ μ°Έμ‘°νμ¬ λ³Έ λ°λͺ μ μ€μμμ λ°λ₯Έ λΉλμ€ λΆνΈν, 볡νΈν λ°©λ² λ° μ₯μΉμ λν΄ μμΈν μ€λͺ νλ€.Hereinafter, a video encoding and decoding method and device according to an embodiment of the present invention will be described in detail with reference to the attached drawings.
νκΈ°μμ λ³Έ λ°λͺ μ μ€λͺ ν¨μ μμ΄ κ΄λ ¨λ κ³΅μ§ κΈ°λ₯ λλ ꡬμ±μ λν ꡬ체μ μΈ μ€λͺ μ΄ λ³Έ λ°λͺ μ μμ§λ₯Ό λΆνμνκ² ν릴 μ μλ€κ³ νλ¨λλ κ²½μ°μλ κ·Έ μμΈν μ€λͺ μ μλ΅ν κ²μ΄λ€. κ·Έλ¦¬κ³ νμ λλ μ©μ΄λ€μ λ³Έ λ°λͺ μμμ κΈ°λ₯μ κ³ λ €νμ¬ μ μλ μ©μ΄λ€λ‘μ, μ΄λ μ¬μ©μ, μ΄μ©μμ μλ λλ κ΄λ‘ λ±μ λ°λΌ λ¬λΌμ§ μ μλ€. κ·Έλ¬λ―λ‘ κ·Έ μ μλ λ³Έ λ°λͺ μμ μ λ°μ κ±ΈμΉ λ΄μ©μ ν λλ‘ λ΄λ €μ ΈμΌ ν κ²μ΄λ€.In the following description of the present invention, detailed descriptions of related known functions or configurations will be omitted if they are deemed to unnecessarily obscure the gist of the invention. Furthermore, the terms described below are defined in light of their functions within the present invention and may vary depending on the intent or custom of the user or operator. Therefore, their definitions should be based on the overall content of the present invention.
λν, μ΄ν μ€μλλ λ³Έ λ°λͺ μ λ°λμ§ν μ€μμλ λ³Έ λ°λͺ μ μ΄λ£¨λ κΈ°μ μ ꡬμ±μμλ₯Ό ν¨μ¨μ μΌλ‘ μ€λͺ νκΈ° μν΄ κ°κ°μ μμ€ν κΈ°λ₯ꡬμ±μ κΈ° ꡬλΉλμ΄ μκ±°λ, λλ λ³Έ λ°λͺ μ΄ μνλ κΈ°μ λΆμΌμμ ν΅μμ μΌλ‘ ꡬλΉλλ μμ€ν κΈ°λ₯ꡬμ±μ κ°λ₯ν μλ΅νκ³ , λ³Έ λ°λͺ μ μν΄ μΆκ°μ μΌλ‘ ꡬλΉλμ΄μΌ νλ κΈ°λ₯ꡬμ±μ μμ£Όλ‘ μ€λͺ νλ€.In addition, in order to efficiently explain the technical components that make up the present invention, the preferred embodiments of the present invention implemented below omit, as much as possible, the system functional components that are already provided in each system functional configuration or are commonly provided in the technical field to which the present invention belongs, and focus on explaining the functional components that must be additionally provided for the present invention.
λ§μ½ λ³Έ λ°λͺ μ΄ μνλ κΈ°μ λΆμΌμμ ν΅μμ μ§μμ κ°μ§ μλΌλ©΄, νκΈ°μ λμνμ§ μκ³ μλ΅λ κΈ°λ₯κ΅¬μ± μ€μμ μ’ λμ κΈ°μ¬μ©λκ³ μλ ꡬμ±μμμ κΈ°λ₯μ μ©μ΄νκ² μ΄ν΄ν μ μμ κ²μ΄λ©°, λν μκΈ°μ κ°μ΄ μλ΅λ ꡬμ±μμμ λ³Έ λ°λͺ μ μν΄ μΆκ°λ ꡬμ±μμ μ¬μ΄μ κ΄κ³λ λͺ λ°±νκ² μ΄ν΄ν μ μμ κ²μ΄λ€.Anyone having ordinary skill in the art to which the present invention pertains will be able to easily understand the functions of components that have been conventionally used among the functional configurations that are not illustrated below, and will also be able to clearly understand the relationship between the components omitted as described above and the components added for the present invention.
λ³Έ λͺ μΈμμμ μμμ λΆνΈννμ¬ λΉλμ€ μ νΈ λΉνΈμ€νΈλ¦Όμ μμ±νλ μ₯μΉλ λΆνΈν μ₯μΉ, μΈμ½λ© μ₯μΉ λλ μΈμ½λλ‘ μ§μΉλλ©°, λΉλμ€ μ νΈ λΉνΈμ€νΈλ¦Όμ 볡νΈννμ¬ μμμ 볡μνλ μ₯μΉλ 볡νΈν μ₯μΉ, λμ½λ© μ₯μΉ λλ λμ½λλ‘ μ§μΉλλ€.In this specification, a device that encodes an image to generate a video signal bitstream is referred to as an encoding device, an encoding device, or an encoder, and a device that decodes the video signal bitstream to restore an image is referred to as a decoding device, a decoding device, or a decoder.
ν½μ (pixel) λλ ν (pel)μ μμμ ꡬμ±νλ μ΅μμ λ¨μλ₯Ό μλ―Ένλ©°, ν½μ κ³Ό μν(sample)μ΄ μλ‘ νΌμ©νμ¬ μ¬μ©λ μ μλ€. μνμ μΌλ°μ μΌλ‘ ν½μ λλ ν½μ μ κ°μ λνλΌ μ μμΌλ©°, νλ(luma) μ±λΆμ ν½μ λλ ν½μ κ°λ§μ λνλ΄κ±°λ, μμ°¨(chroma) μ±λΆμ ν½μ λλ ν½μ κ°λ§μ λνλΌ μλ μλ€.A pixel or pel is the smallest unit that constitutes an image, and the terms pixel and sample can be used interchangeably. A sample can generally represent a pixel or a pixel value, or it can represent only a pixel or pixel value of the luminance component, or only a pixel or pixel value of the chroma component.
λν, μ λμ μμ μ²λ¦¬μ κΈ°λ³Έ λ¨μ λλ ν½μ³μ νΉμ μμΉλ₯Ό μ§μΉνλ μλ―Έλ‘ μ¬μ©λλ©°, νλ μ±λΆ λ° μμ°¨ μ±λΆ μ€ μ μ΄λ νλλ₯Ό ν¬ν¨νλ μ΄λ―Έμ§ μμμ λνλΈλ€. ꡬ체μ μΌλ‘, μ λμ μ½λ© νΈλ¦¬ μ λ(CTU, Coding Tree Unit), μ½λ© μ λ(CU, Coding Unit), μμΈ‘ μ λ(PU, Prediction Unit), λ³ν μ λ(TU, Transform Unit)μ λͺ¨λ ν¬ν¨νλ κ°λ μΌλ‘ μ¬μ©λ μ μλ€. κ·Έλ¦¬κ³ λΈλ‘μ νλ μ±λΆ λ° μμ°¨ μ±λΆλ€ μ€ νΉμ μ±λΆμ ν¬ν¨νλ μ΄λ―Έμ§ μμμ λνλ΄λ©°, MxN λΈλ‘μ Mκ°μ μ΄κ³Ό Nκ°μ νμΌλ‘ μ΄λ£¨μ΄μ§ μνλ€ λλ λ³ν κ³μ(transform coefficient)λ€μ μ§ν©μ λνλΌ μ μλ€. μ¬κΈ°μ, μ λ, λΈλ‘, νν°μ , μ νΈ λ° μμ λ±μ μ©μ΄λ μλ‘ νΌμ©νμ¬ μ¬μ©λ μ μλ€.In addition, the unit is used to refer to a basic unit of image processing or a specific location of a picture, and represents an image area including at least one of a luminance component and a chrominance component. Specifically, the unit can be used as a concept including a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), and a transform unit (TU). In addition, a block represents an image area including a specific component among luminance components and chrominance components, and an MxN block can represent a set of samples or transform coefficients consisting of M columns and N rows. Here, the terms unit, block, partition, signal, and area may be used interchangeably.
ννΈ, ν½μ³λ νλ λλ νλ μμ κ°λ¦¬ν€λ©°, μ΄λ€μ μλ‘ νΌμ©νμ¬ μ¬μ©λ μ μλ€. μλ₯Ό λ€μ΄, μμμ΄ λΉμμ£Όμ¬μ μμμΌ κ²½μ°, νλμ νλ μμ νμ(λλ κΈ°μ, top) νλμ μ§μ(λλ μ°μ, bottom) νλλ‘ λΆλ¦¬λμ΄, κ° νλλ νλμ ν½μ³ λ¨μλ‘ κ΅¬μ±λμ΄ λΆνΈν λλ 볡νΈν λ μ μλ€. κ·Έλ¦¬κ³ μμμ΄ μμ°¨μ£Όμ¬ μμμΌ κ²½μ°μλ, νλμ νλ μμ΄ ν½μ³λ‘μ ꡬμ±λμ΄ λΆνΈν λλ 볡νΈν λ μ μλ€.Meanwhile, a picture refers to a field or a frame, and these can be used interchangeably. For example, if the image is an interlaced image, one frame is divided into an odd (or odd, top) field and an even (or even, bottom) field, and each field is composed of a single picture unit, which can be encoded or decoded. If the image is a progressive image, one frame can be composed as a picture, which can be encoded or decoded.
λ 1μ λ³Έ λ°λͺ μ μΌμ€μμμ λ°λ₯Έ λΆνΈν μ₯μΉλ₯Ό λΈλ‘λλ‘ λμν κ²μΌλ‘, μμμ λΆνΈννκΈ° μν λΉλμ€ μΈμ½λμ κ΅¬μ± λ° λμμ μ€λͺ νκΈ° μν κ²μ΄λ€.FIG. 1 is a block diagram illustrating an encoding device according to an embodiment of the present invention, and is intended to explain the configuration and operation of a video encoder for encoding an image.
λ 1μ μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ λ³νλΆ(110), μμνλΆ(120), μμμνλΆ(130), μλ³νλΆ(140), νν°λ§λΆ(150), μμΈ‘λΆ(160), DPB(Decoded Picture Buffer, 170) λ° μνΈλ‘νΌ μ½λ©λΆ(180)λ₯Ό ν¬ν¨νμ¬ κ΅¬μ±λ μ μλ€.Referring to FIG. 1, a video encoder (100) may be configured to include a transformation unit (110), a quantization unit (120), an inverse quantization unit (130), an inverse transformation unit (140), a filtering unit (150), a prediction unit (160), a DPB (Decoded Picture Buffer, 170), and an entropy coding unit (180).
λ³νλΆ(110)λ μ λ ₯ λ°μ λΉλμ€ μ νΈμ μμΈ‘λΆ(160)μμ μμ±λ μμΈ‘ μ νΈμ μ°¨μ΄μΈ λ μ§λμΌ μ νΈλ₯Ό λ³ννμ¬ λ³ν κ³μ κ°μ νλνλ€.The conversion unit (110) converts the residual signal, which is the difference between the input video signal and the prediction signal generated by the prediction unit (160), to obtain a conversion coefficient value.
μλ₯Ό λ€μ΄, μ΄μ° μ½μ¬μΈ λ³ν(Discrete Cosine Transform, DCT), μ΄μ° μ¬μΈ λ³ν (Discrete Sine Transform, DST) λλ μ¨μ΄λΈλ¦Ώ λ³ν(Wavelet Transform) λ±μ΄ μ¬μ©λ μ μλ€.For example, the Discrete Cosine Transform (DCT), the Discrete Sine Transform (DST), or the Wavelet Transform can be used.
λ μ§λμΌ λΈλ‘μ λν λ³νμ μ¬μ©λλ λ³ν 컀λμ μμ§ λ³ν λ° μν λ³νμ λΆλ¦¬ κ°λ₯ν νΉμ±μ κ°μ§λ λ³ν 컀λμΌ μ μλ€. μ΄ κ²½μ°, λ μ§λμΌ λΈλ‘μ λν λ³νμ μμ§ λ³ν λ° μν λ³νμΌλ‘ λΆλ¦¬λμ΄ μνλ μ μλ€. μλ₯Ό λ€μ΄, μΈμ½λλ λ μ§λμΌ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ λ³ν 컀λμ μ μ©νμ¬ μμ§ λ³νμ μνν μ μλ€. λν, μΈμ½λλ λ μ§λμΌ λΈλ‘μ μν λ°©ν₯μΌλ‘ λ³ν 컀λμ μ μ©νμ¬ μν λ³νμ μνν μ μλ€.The transform kernel used for transforming the residual block may be a transform kernel having separable vertical and horizontal transform properties. In this case, the transform for the residual block may be performed separately as vertical and horizontal transforms. For example, the encoder may perform a vertical transform by applying the transform kernel in the vertical direction of the residual block. Alternatively, the encoder may perform a horizontal transform by applying the transform kernel in the horizontal direction of the residual block.
ννΈ, λ³ν 컀λμ λ³ν λ§€νΈλ¦μ€, λ³ν μ΄λ μ΄, λ³ν ν¨μ, λ³νκ³Ό κ°μ΄ λ μ§λμΌ μ νΈμ λ³νμ μ¬μ©λλ νλΌλ―Έν° μΈνΈλ₯Ό μ§μΉνλ μ©μ΄λ‘ μ¬μ©λ μ μμΌλ©°, 볡μμ μ¬μ© κ°λ₯ν 컀λλ€ μ€ μ΄λ νλμΌ μ μκ³ , μμ§ λ³ν λ° μν λ³ν κ°κ°μ λν΄ μλ‘ λ€λ₯Έ λ³ν νμ μ κΈ°λ°ν λ³ν 컀λμ΄ μ¬μ©λ μλ μλ€.Meanwhile, the transform kernel may be used as a term referring to a set of parameters used for transforming the residual signal, such as a transform matrix, a transform array, a transform function, or a transform, and may be any one of a plurality of available kernels, and transform kernels based on different transform types may be used for each of the vertical transform and the horizontal transform.
λ³ν κ³μλ λΈλ‘μ μ’μλ¨μΌλ‘ κ°μλ‘ λμ κ³μκ° λΆν¬νκ³ , λΈλ‘μ μ°νλ¨μΌλ‘ κ°μλ‘ '0'μ κ°κΉμ΄ κ³μκ° λΆν¬ν μ μλ€. λν, νμ¬ λΈλ‘μ ν¬κΈ°κ° 컀μ§μλ‘ μ°νλ¨ μμμμ κ³μ '0'μ΄ λ§μ΄ μ‘΄μ¬ν κ°λ₯μ±μ΄ μμΌλ©°, ν¬κΈ°κ° ν° λΈλ‘μ λ³ν 볡μ‘λλ₯Ό κ°μμν€κΈ° μν΄, μμμ μ’μλ¨ μμλ§μ λ¨κΈ°κ³ λλ¨Έμ§ μμμ '0'μΌλ‘ μ¬μ€μ λ μ μλ€.The transformation coefficients may be distributed such that higher coefficients are distributed toward the upper left corner of the block, and coefficients closer to '0' are distributed toward the lower right corner of the block. Furthermore, as the current block size increases, there is a possibility that many '0' coefficients exist in the lower right area. To reduce the transformation complexity of large blocks, only the upper left area can be left, and the remaining areas can be reset to '0'.
λν, μ½λ© λΈλ‘μμ μΌλΆ μμμλ§ μ€μ°¨ μ νΈκ° μ‘΄μ¬ν μ μμΌλ©°, μ΄ κ²½μ° μμμ μΌλΆ μμμ λν΄μλ§ λ³ν κ³Όμ μ΄ μνλ μ μλ€. μλ₯Ό λ€μ΄, 2Nx2N ν¬κΈ°μ λΈλ‘μμ 첫λ²μ§Έ 2NxN λΈλ‘μλ§ μ€μ°¨ μ νΈκ° μ‘΄μ¬ν μ μμΌλ©°, μ΄ κ²½μ° μ²«λ²μ§Έ 2NxN λΈλ‘μλ§ λ³ν κ³Όμ μ΄ μνλμ§λ§ λλ²μ§Έ 2NxN λΈλ‘μ λ³ν κ³Όμ μ΄ μνλμ§ μκ³ μΈμ½λ© λλ λμ½λ©λμ§ μμ μ μλ€.Additionally, error signals may exist only in some regions of a coding block, in which case the conversion process may be performed only on some arbitrary regions. For example, in a block of size 2Nx2N, error signals may exist only in the first 2NxN block, in which case the conversion process may be performed only on the first 2NxN block, but the conversion process may not be performed on the second 2NxN block and may not be encoded or decoded.
μΈμ½λλ λ³ν κ³μκ° μμνλκΈ° μ μ μΆκ°μ μΈ λ³νμ μνν μ μλ€. μκΈ°ν λ°μ κ°μ λ³ν λ°©λ²μ 1μ°¨ λ³ν(primary transform)μΌλ‘ μ§μΉλκ³ , μΆκ°μ μΈ λ³νμ 2μ°¨ λ³ν(secondary transform)μΌλ‘ μ§μΉλ μ μλ€.The encoder may perform additional transformations before the transform coefficients are quantized. The transformation method described above may be referred to as a primary transform, and the additional transformation may be referred to as a secondary transform.
2μ°¨ λ³νμ λ μ§λμΌ λΈλ‘ λ³λ‘ μ νμ μΌ μ μλ€. μλ₯Ό λ€μ΄, μΈμ½λλ 1μ°¨ λ³νλ§μΌλ‘ μ μ£Όν μμμ μλμ§λ₯Ό μ§μ€μν€κΈ° μ΄λ €μ΄ μμμ λν΄ 2μ°¨ λ³νμ μννμ¬ μ½λ© ν¨μ¨μ ν₯μμν¬ μ μλ€. The secondary transform can be optional for each residual block. For example, the encoder can improve coding efficiency by performing the secondary transform in areas where it is difficult to focus energy in the low-frequency region using the primary transform alone.
ꡬ체μ μΌλ‘, λ μ§λμΌ κ°λ€μ΄ λ μ§λμΌ λΈλ‘μ μν λλ μμ§ λ°©ν₯ μ΄μΈμ λ°©ν₯μμ ν¬κ² λνλλ λΈλ‘μ λν΄ 2μ°¨ λ³νμ΄ μΆκ°λ‘ μνλ μ μμΌλ©°, 2μ°¨ λ³νμ 1μ°¨ λ³νκ³Ό λ¬λ¦¬ μμ§ λ³ν λ° μν λ³νμΌλ‘ λΆλ¦¬λμ΄ μνλμ§ μμ μ μλ€. μκΈ°ν λ°μ κ°μ 2μ°¨ λ³νμ μ λμ λΉ-λΆλ¦¬ λ³ν(Low Frequency Non-Separable Transform, LFNST)μΌλ‘ μ§μΉλ μ μλ€. Specifically, a secondary transformation may be additionally performed on blocks in which residual values appear significantly in directions other than the horizontal or vertical direction of the residual block, and the secondary transformation may not be performed separately into vertical transformation and horizontal transformation, unlike the primary transformation. Such a secondary transformation may be referred to as a low frequency non-separable transform (LFNST).
μμνλΆ(120)λ λ³νλΆ(110)μμ μΆλ ₯λ λ³ν κ³μ κ°μ μμννλ€.The quantization unit (120) quantizes the transformation coefficient value output from the transformation unit (110).
μ½λ© ν¨μ¨μ λμ΄κΈ° μνμ¬ ν½μ³ μ νΈλ₯Ό κ·Έλλ‘ μ½λ©νλ κ²μ΄ μλλΌ, μμΈ‘λΆ(160)λ₯Ό ν΅ν΄ μ΄λ―Έ μ½λ©λ μμμ μ΄μ©νμ¬ ν½μ³λ₯Ό μμΈ‘νκ³ , μμΈ‘λ ν½μ³μ μλ³Έ ν½μ³μ μμΈ‘ ν½μ³ κ°μ λ μ§λμΌ κ°μ λνμ¬ λ³΅μ ν½μ³λ₯Ό νλνλ λ°©λ²μ΄ μ¬μ©λλ€.In order to increase coding efficiency, a method is used in which, instead of coding the picture signal as is, a picture is predicted using an already coded area through a prediction unit (160), and a restored picture is obtained by adding a residual value between the original picture and the predicted picture to the predicted picture.
μΈμ½λμ λμ½λμμ λ―Έμ€λ§€μΉκ° λ°μλμ§ μλλ‘ νκΈ° μν΄, μΈμ½λμμ μμΈ‘μ μνν λμλ λμ½λμμλ μ¬μ© κ°λ₯ν μ 보λ₯Ό μ¬μ©ν΄μΌ νλ©°, μ΄λ₯Ό μν΄ μΈμ½λμμλ λΆνΈνν νμ¬ λΈλ‘μ λ€μ 볡μνλ κ³Όμ μ μνν μ μλ€.To avoid mismatches between the encoder and decoder, when performing prediction in the encoder, information available in the decoder must also be used, and for this purpose, the encoder can perform a process of reconstructing the current encoded block.
μμμνλΆ(130)λ λ³ν κ³μ κ°μ μμμννκ³ , μλ³νλΆ(140)λ μμμνλ λ³ν κ³μκ°μ μ΄μ©νμ¬ λ μ§λμΌ κ°μ 볡μνλ€.The inverse quantization unit (130) inversely quantizes the transform coefficient values, and the inverse transformation unit (140) restores the residual values using the inverse quantized transform coefficient values.
νν°λ§λΆ(150)λ 볡μλ ν½μ³μ νμ§ κ°μ λ° λΆνΈν ν¨μ¨ ν₯μμ μν΄ λλΈλ‘νΉ νν°(deblocking filter), μν μ μμ μ€νμ (Sample Adaptive Offset, SAO), μ μμ 루ν νν°(Adaptive Loop Filter, ALF) λ±μ μ΄μ©ν νν°λ§ μ°μ°μ μννλ€.The filtering unit (150) performs filtering operations using a deblocking filter, a sample adaptive offset (SAO), an adaptive loop filter (ALF), etc. to improve the quality of the restored picture and enhance encoding efficiency.
λλΈλ‘νΉ νν°λ 볡μλ ν½μ³μμ λΈλ‘ κ°μ κ²½κ³μ μμ±λ λΈλ‘ λ΄μ μ곑μ μ κ±°νκΈ° μν νν°λ‘μ, μΈμ½λλ λΈλ‘ λ΄μ μμ κ²½κ³λ₯Ό κΈ°μ€μΌλ‘ λͺ κ°μ μ΄ λλ νμ ν¬ν¨λ ν½μ λ€μ λΆν¬μ κΈ°μ΄νμ¬ ν΄λΉ κ²½κ³μ λλΈλ‘νΉ νν°λ₯Ό μ μ©ν μ§ μ¬λΆλ₯Ό νλ¨ν μ μλ€.A deblocking filter is a filter for removing distortion within a block generated at the boundary between blocks in a restored picture. The encoder can determine whether to apply a deblocking filter to a boundary based on the distribution of pixels included in several columns or rows based on an arbitrary boundary within a block.
λλΈλ‘νΉ νν°κ° μ μ©λλ κ²½μ°, νν°λ§λΆ(150)λ λλΈλ‘νΉ νν°λ§ κ°λμ λ°λΌ κΈ΄ νν°(Long Filter), κ°ν νν°(Strong Filter) λλ μ½ν νν°(Weak Filter)λ₯Ό μ μ©ν μ μμΌλ©°, μν λ°©ν₯ νν°λ§ λ° μμ§ λ°©ν₯ νν°λ§μ λ³λ ¬μ μΌλ‘ μ²λ¦¬ν μ μλ€.When a deblocking filter is applied, the filtering unit (150) can apply a long filter, a strong filter, or a weak filter depending on the deblocking filtering strength, and can process horizontal filtering and vertical filtering in parallel.
μν μ μμ μ€νμ (SAO)μ λλΈλ‘νΉ νν°κ° μ μ©λ λ μ§λμΌ λΈλ‘μ λνμ¬, ν½μ λ¨μλ‘ μλ³Έ μμκ³Όμ μ€νμ μ 보μ νλλ° μ¬μ©λ μ μλ€. νν°λ§λΆ(150)λ νΉμ ν½μ³μ λν μ€νμ μ 보μ νκΈ° μνμ¬ μμμ ν¬ν¨λ ν½μ μ μΌμ ν μμ μμμΌλ‘ ꡬλΆν ν, μ€νμ 보μ μ μνν μμμ κ²°μ νκ³ , ν΄λΉ μμμ μ€νμ μ μ μ©νλ λ°©λ² (Band Offset)μ μ¬μ©ν μ μλ€. λν, νν°λ§λΆ(150)λ κ° ν½μ μ μμ§ μ 보λ₯Ό κ³ λ €νμ¬ μ€νμ μ μ μ©νλ λ°©λ²(Edge Offset)μ μ¬μ©ν μ μλ€.Sample Adaptive Offset (SAO) can be used to correct the offset from the original image on a pixel-by-pixel basis for a residual block to which a deblocking filter is applied. In order to correct the offset for a specific picture, the filtering unit (150) can use a method (Band Offset) that divides the pixels included in the image into a certain number of regions, determines the regions to perform offset correction, and applies the offset to the regions. In addition, the filtering unit (150) can use a method (Edge Offset) that applies the offset by considering the edge information of each pixel.
μ μμ 루ν νν°(ALF)λ μμμ ν¬ν¨λ ν½μ μ μμ μ κ·Έλ£ΉμΌλ‘ λλ ν, ν΄λΉ κ·Έλ£Ήμ μ μ©λ νλμ νν°λ₯Ό κ²°μ νμ¬ κ·Έλ£Ήλ§λ€ μ°¨λ³μ μΌλ‘ νν°λ§μ μννλ λ°©λ²μ΄λ€. μ μμ 루ν νν°λ₯Ό μ μ©ν μ§ μ¬λΆμ κ΄λ ¨λ μ 보λ μ½λ© μ λ λ¨μλ‘ μκ·Έλλ§λ μ μκ³ , κ°κ°μ λΈλ‘μ λ°λΌ μ μ©λ ALF νν°μ λͺ¨μ λ° νν° κ³μκ° λ¬λΌμ§ μ μλ€. λν, μ μ©ν λμ λΈλ‘μ νΉμ±μ κ΄κ³μμ΄ λμΌν ννμ μ μμ 루ν νν°κ° μ μ©λ μλ μλ€.Adaptive Loop Filtering (ALF) is a method that divides pixels in an image into predetermined groups, determines a filter to be applied to each group, and performs differential filtering for each group. Information regarding whether to apply an adaptive loop filter can be signaled on a coding unit basis, and the shape and filter coefficients of the ALF filter to be applied can vary depending on the block. Furthermore, the same adaptive loop filter can be applied regardless of the characteristics of the target block.
νν°λ§μ κ±°μΉ ν½μ³λ μ°Έμ‘° ν½μ³λ‘ μ΄μ©νκΈ° μν΄ DPB(170)μ μ μ₯λ μ μλ€.The filtered picture can be stored in DPB (170) to be used as a reference picture.
μμΈ‘λΆ(160)λ μΈνΈλΌ/IBC μμΈ‘λΆ(161)μ μΈν° μμΈ‘λΆ(165)λ₯Ό ν¬ν¨νλ©°, μΈνΈλΌ/IBC μμΈ‘λΆ(161)λ νμ¬ ν½μ³ λ΄μμ μΈνΈλΌ(intra) μμΈ‘ λ° IBC μμΈ‘μ μννλ©°, μΈν° μμΈ‘λΆ(165)λ DPB(170)μ μ μ₯λ μ°Έμ‘° ν½μ³λ₯Ό μ΄μ©νμ¬ νμ¬ ν½μ³λ₯Ό μμΈ‘νλ μΈν°(inter) μμΈ‘μ μννλ€.The prediction unit (160) includes an intra/IBC prediction unit (161) and an inter prediction unit (165). The intra/IBC prediction unit (161) performs intra prediction and IBC prediction within the current picture, and the inter prediction unit (165) performs inter prediction to predict the current picture using a reference picture stored in the DPB (170).
μΈνΈλΌ/IBC μμΈ‘λΆ(161)λ νμ¬ ν½μ³ λ΄μ 볡μλ μμλ€λ‘ λΆν° μΈνΈλΌ μμΈ‘μ μννμ¬, μΈνΈλΌ λΆνΈν μ 보λ₯Ό μνΈλ‘νΌ μ½λ©λΆ(180)λ‘ μ λ¬νλ€. μ¬κΈ°μ, μΈνΈλΌ λΆνΈν μ 보λ μΈνΈλΌ μμΈ‘ λͺ¨λ, MPM(Most Probable Mode) νλκ·Έ, MPM μΈλ±μ€, μ°Έμ‘° μνμ κ΄ν μ 보 μ€ μ μ΄λ νλλ₯Ό ν¬ν¨ν μ μλ€.The intra/IBC prediction unit (161) performs intra prediction from restored areas within the current picture and transmits intra encoding information to the entropy coding unit (180). Here, the intra encoding information may include at least one of an intra prediction mode, an MPM (Most Probable Mode) flag, an MPM index, and information about a reference sample.
λν, μΈνΈλΌ/IBC μμΈ‘λΆ(161)λ νμ¬ ν½μ³ λ΄μ 볡μλ μνλ€λ‘λΆν° IBC(Intra BLock Copy) μμΈ‘μ μννμ¬, IBC λΆνΈν μ 보λ₯Ό μνΈλ‘νΌ μ½λ©λΆ(180)λ‘ μ λ¬ν μ μλ€.Additionally, the intra/IBC prediction unit (161) can perform IBC (Intra BLock Copy) prediction from restored samples within the current picture and transmit IBC encoding information to the entropy coding unit (180).
μ΄ κ²½μ°, μΈνΈλΌ/IBC μμΈ‘λΆ(161)λ νμ¬ ν½μ³ λ΄μ νΉμ μμμ μ°Έμ‘°νμ¬ νμ¬ μμμ μμΈ‘μ μ΄μ©λλ μ°Έμ‘° μμμ μ§μνλ λΈλ‘ 벑ν°κ°μ νλνλ©°, νλλ λΈλ‘ 벑ν°κ°μ μ΄μ©νμ¬ IBC μμΈ‘μ μνν μ μλ€.In this case, the intra/IBC prediction unit (161) obtains a block vector value indicating a reference area used for prediction of the current area by referring to a specific area within the current picture, and can perform IBC prediction using the obtained block vector value.
μΈνΈλΌ/IBC μμΈ‘λΆ(161)λ μ°Έμ‘° μμμ ν¬κΈ° μ 보, λΈλ‘ λ²‘ν° μ 보(μμ§μ ν보 리μ€νΈ λ΄μμ νμ¬ λΈλ‘μ λΈλ‘ λ²‘ν° μμΈ‘μ μν μΈλ±μ€ μ 보, λΈλ‘ λ²‘ν° μ°¨λΆ μ 보) μ€μμ μ μ΄λ νλλ₯Ό ν¬ν¨νλ IBC λΆνΈν μ 보λ₯Ό μνΈλ‘νΌ μ½λ©λΆ(160)λ‘ μ λ¬ν μ μλ€.The intra/IBC prediction unit (161) can transmit IBC encoding information including at least one of the size information of the reference area and block vector information (index information for block vector prediction of the current block within the motion candidate list, block vector difference information) to the entropy coding unit (160).
μΈν° μμΈ‘λΆ(165)λ 볡μλ μ°Έμ‘° ν½μ³μ νΉμ μμμ μ°Έμ‘°νμ¬ νμ¬ μμκ³Ό κ°μ₯ μ μ¬ν λΆλΆμ μ°Ύκ³ μμ κ°μ κ±°λ¦¬μΈ λͺ¨μ λ²‘ν° κ°μ νλνλ©°, νλν μ°Έμ‘° μμμ λν λͺ¨μ μ 보(μ°Έμ‘° λ°©ν₯ μ§μ μ 보(L0 μμΈ‘, L1 μμΈ‘, μλ°©ν₯ μμΈ‘), μ°Έμ‘° ν½μ³ μΈλ±μ€, λͺ¨μ λ²‘ν° μ 보 λ±)λ₯Ό μνΈλ‘νΌ μ½λ©λΆ(180)λ‘ μ λ¬νλ€.The inter prediction unit (165) refers to a specific area of the restored reference picture to find the part most similar to the current area, obtains a motion vector value which is the distance between the areas, and transmits motion information (reference direction indication information (L0 prediction, L1 prediction, bidirectional prediction), reference picture index, motion vector information, etc.) for the obtained reference area to the entropy coding unit (180).
λν, μΈν° μμΈ‘λΆ(165)λ λͺ¨μ μ 보λ₯Ό μ΄μ©ν΄ μμ§μ 보μ(motion compensation)μ μννμ¬ νμ¬ λΈλ‘μ μν μμΈ‘ λΈλ‘μ μμ±νλ©°, μ°Έμ‘° μμμ λν λͺ¨μ μ 보λ₯Ό ν¬ν¨νλ μΈν° λΆνΈν μ 보λ₯Ό μνΈλ‘νΌ μ½λ©λΆ(180)λ‘ μ λ¬νλ€.Additionally, the inter prediction unit (165) performs motion compensation using motion information to generate a prediction block for the current block, and transmits inter encoding information including motion information for the reference area to the entropy coding unit (180).
ννΈ, 2μ°¨μ λ°°μ΄ ννμ μμνλ λ³ν κ³μλ μνΈλ‘νΌ μ½λ©μ μν΄ 1μ°¨μμ λ°°μ΄ ννλ‘ μ¬μ λ ¬λ μ μλ€.Meanwhile, the quantized transform coefficients in the form of a two-dimensional array can be rearranged into a one-dimensional array for entropy coding.
μμνλ λ³ν κ³μλ₯Ό μ€μΊλνλ λ°©λ²μ λ³ν λΈλ‘μ ν¬κΈ° λ° μΈνΈλΌ μμΈ‘ λͺ¨λμ λ°λΌ κ²°μ λ μ μμΌλ©°, λκ°(Diagonal), μμ§(vertical), μν(horizontal) μ€μΊμ΄ μ μ©λ μ μκ³ , μ€μΊ μ 보λ λΈλ‘ λ¨μλ‘ μκ·Έλλ§λκ±°λ μ ν΄μ§ κ·μΉμ λ°λΌ λμ½λμμ μ λλ μλ μλ€.The method of scanning the quantized transform coefficients can be determined according to the size of the transform block and the intra prediction mode, and diagonal, vertical, and horizontal scans can be applied, and the scan information can be signaled on a block-by-block basis or derived from the decoder according to a set rule.
μνΈλ‘νΌ μ½λ©λΆ(180)λ μμνλ λ³ν κ³μλ₯Ό λνλ΄λ μ 보, μΈνΈλΌ λΆνΈν μ 보, λ° μΈν° λΆνΈν μ 보 λ±μ μνΈλ‘νΌ μ½λ©νμ¬ λΉνΈμ€νΈλ¦Όμ μμ±νλ©°, μ΄λ₯Ό μν΄ κ°λ³ κΈΈμ΄ μ½λ©(Variable Length Coding, VLC) λ°©μκ³Ό μ°μ μ½λ©(arithmetic coding) λ°©μ λ±μ΄ μ¬μ©λ μ μλ€.The entropy coding unit (180) generates a bitstream by entropy coding information representing quantized transform coefficients, intra-coding information, and inter-coding information, and for this purpose, a variable length coding (VLC) method and an arithmetic coding method can be used.
κ°λ³ κΈΈμ΄ μ½λ©(VLC) λ°©μμ μ λ ₯λλ μ¬λ³Όλ€μ μ°μμ μΈ μ½λμλλ‘ λ³ννλλ°, μ½λμλμ κΈΈμ΄λ κ°λ³μ μΌ μ μλ€. μλ₯Ό λ€μ΄, μμ£Ό λ°μνλ μ¬λ³Όλ€μ μ§§μ μ½λμλλ‘, μμ£Ό λ°μνμ§ μμ μ¬λ³Όλ€μ κΈ΄ μ½λμλλ‘ ννλ μ μλ€.Variable-length coding (VLC) converts input symbols into a series of codewords, each of which can be of variable length. For example, frequently occurring symbols can be represented by shorter codewords, while less frequently occurring symbols can be represented by longer codewords.
κ°λ³ κΈΈμ΄ μ½λ© λ°©μμΌλ‘μ, 컨ν μ€νΈ κΈ°λ° μ μν κ°λ³ κΈΈμ΄ μ½λ©(Context-based Adaptive Variable Length Coding, CAVLC) λ°©μμ΄ μ¬μ©λ μ μλ€.As a variable length coding method, a context-based adaptive variable length coding (CAVLC) method can be used.
μ°μ μ½λ©μ κ° λ°μ΄ν° μ¬λ³Όλ€μ νλ₯ λΆν¬λ₯Ό μ΄μ©νμ¬ μ°μμ μΈ λ°μ΄ν° μ¬λ³Όλ€μ νλμ μμλ‘ λ³ννμ¬, κ° μ¬λ³Όμ νννκΈ° μν΄ νμν μ΅μ μ μμ λΉνΈλ₯Ό μ»μ μ μλ€.Arithmetic coding converts consecutive data symbols into a single prime number using the probability distribution of each data symbol, thereby obtaining the optimal prime number bits required to express each symbol.
μ°μ μ½λ© λ°©λ²μΌλ‘μ, 컨ν μ€νΈ κΈ°λ° μ μν μ°μ λΆνΈν(Context-based Adaptive Binary Arithmetic Code, CABAC) λ°©μμ΄ μ¬μ©λ μ μλ€.As an arithmetic coding method, the context-based adaptive binary arithmetic code (CABAC) method can be used.
CABACμ μ€νμ ν΅ν΄ μ»μ νλ₯ μ κΈ°λ°μΌλ‘ μμ±λ μ¬λ¬ κ°μ λ¬Έλ§₯ λͺ¨λΈ(context model)μ ν΅ν΄ μ΄μ§ μ°μ λΆνΈννλ λ°©λ²μ΄λ€. λ¬Έλ§₯ λͺ¨λΈμ 컨ν μ€νΈ λͺ¨λΈμ΄λΌκ³ ν μλ μλ€. λ¨Όμ , μ¬λ³Όμ΄ μ΄μ§ ννκ° μλ κ²½μ°, μΈμ½λλ exp-Golomb λ±μ μ¬μ©νμ¬ κ° μ¬λ³Όμ μ΄μ§ννλ€. μ΄μ§νλ 0 λλ 1μ λΉ(bin)μΌλ‘ κΈ°μ λ μ μλ€.CABAC is a binary arithmetic encoding method that utilizes multiple context models generated based on experimentally derived probabilities. The context models can also be referred to as context models. First, if the symbols are not in binary form, the encoder binarizes each symbol using methods such as exp-Golomb. The binarized 0s and 1s can be represented as bins.
CABAC μ΄κΈ°ν κ³Όμ μ λ¬Έλ§₯ μ΄κΈ°νμ μ°μ μ½λ© μ΄κΈ°νλ‘ κ΅¬λΆλλ€. λ¬Έλ§₯ μ΄κΈ°νλ κ° μ¬λ³Όμ λ°μ νλ₯ μ μ΄κΈ° ννλ κ³Όμ μΌλ‘, μ¬λ³Όμ μ’ λ₯, μμν νλΌλ―Έν°(QP), μ¬λΌμ΄μ€ νμ (I, P, B μΈμ§)μ λ°λΌ κ²°μ λλ€. μ΄λ¬ν μ΄κΈ°ν μ 보λ₯Ό κ°μ§λ λ¬Έλ§₯ λͺ¨λΈμ μ€νμ ν΅ν΄ μ»μ νλ₯ κΈ°λ° κ°μ μ¬μ©ν μ μλ€.The CABAC initialization process is divided into context initialization and arithmetic coding initialization. Context initialization initializes the occurrence probability of each symbol, determined by the symbol type, quantization parameter (QP), and slice type (I, P, B). A context model with this initialization information can use probability-based values obtained through experiments.
λ¬Έλ§₯ λͺ¨λΈμ νμ¬ μ½λ©νλ €λ μ¬λ³Όμ λν LPS(Least Probable Symbol) λλ MPS(Most Probable Symbol)μ λ°μ νλ₯ κ³Ό 0κ³Ό 1μ€μμ μ΄λ€ λΉ κ°μ΄ MPSμ ν΄λΉλλμ§μ λν μ 보(valMPS)λ₯Ό μ 곡νλ€.The context model provides the probability of occurrence of the Least Probable Symbol (LPS) or Most Probable Symbol (MPS) for the symbol currently being coded, and information (valMPS) on which empty value between 0 and 1 corresponds to the MPS.
λ¬Έλ§₯ μΈλ±μ€(Context index, ctxIdx)λ₯Ό ν΅ν΄ μ¬λ¬ κ°μ λ¬Έλ§₯ λͺ¨λΈ μ€μμ νλκ° μ νλλ©°, λ¬Έλ§₯ μΈλ±μ€λ νμ¬ λΆνΈνν λΈλ‘μ μ 보 λλ μ£Όλ³ λΈλ‘μ μ 보λ₯Ό ν΅ν΄ μ λλ μ μλ€.One of several context models is selected through a context index (ctxIdx), and the context index can be derived through information of the block currently to be encoded or information of surrounding blocks.
λ¬Έλ§₯ λͺ¨λΈμμ μ νλ νλ₯ λͺ¨λΈμ κΈ°λ°μΌλ‘ μ΄μ§ μ°μ μ½λ©μ μν μ΄κΈ°νκ° μνλλ€. μ΄μ§ μ°μ λΆνΈνλ 0κ³Ό 1μ λ°μ νλ₯ μ ν΅ν΄ νλ₯ ꡬκ°μΌλ‘ λΆν ν ν, μ²λ¦¬ν λΉμ ν΄λΉνλ νλ₯ ꡬκ°μ΄ λ€μμ μ²λ¦¬λ λΉμ λν μ 체 νλ₯ ꡬκ°μ΄ λλ κ³Όμ μ ν΅ν΄ λΆνΈνκ° μ§νλλ€.Initialization for binary arithmetic coding is performed based on the probability model selected from the context model. Binary arithmetic coding is performed by dividing the data into probability intervals based on the occurrence probabilities of 0 and 1, and then encoding the probability interval corresponding to the bin to be processed becomes the entire probability interval for the next bin to be processed.
λ§μ§λ§ λΉμ΄ μ²λ¦¬λ νλ₯ κ΅¬κ° μμ μμΉ μ λ³΄κ° μΆλ ₯λλ€. λ¨, νλ₯ ꡬκ°μ΄ 무νμ λΆν λ μ μμΌλ―λ‘, μΌμ ν¬κΈ° μ΄λ΄λ‘ μ€μ΄λ€ κ²½μ°μλ μ¬κ·κ²©ν(renormalization)κ³Όμ μ΄ μνλμ΄ νλ₯ ꡬκ°μ΄ λμ΄μ§κ³ ν΄λΉ μμΉ μ λ³΄κ° μΆλ ₯λλ€. λν, κ°λΉμ΄ μ²λ¦¬λ ν, μ²λ¦¬λ λΉμ μ 보λ₯Ό ν΅ν΄ λ€μ μ²λ¦¬λ λΉμ λν νλ₯ μ΄ μλ‘κ² μ€μ λλ νλ₯ μ λ°μ΄νΈ κ³Όμ μ΄ μνλ μ μλ€.The location information within the probability interval processed for the last bin is output. However, since the probability interval cannot be infinitely divided, if it shrinks to a certain size, a renormalization process is performed to expand the probability interval and output the corresponding location information. Furthermore, after each bin is processed, a probability update process can be performed, which sets a new probability for the next bin to be processed based on the information from the processed bin.
μκΈ°ν λ°μ κ°μ΄ μμ±λ λΉνΈμ€νΈλ¦Όμ NAL(Network Abstraction Layer) μ λμ κΈ°λ³Έ λ¨μλ‘ μΊ‘μν λλ€.As described above, the generated bitstream is encapsulated into NAL (Network Abstraction Layer) units as basic units.
NAL μ λμ μμ λ°μ΄ν°λ₯Ό ν¬ν¨νλ VCL(Video Coding Layer) NAL μ λκ³Ό μμ λ°μ΄ν°λ₯Ό λμ½λ©νκΈ° μν νλΌλ―Έν° μ 보λ₯Ό ν¬ν¨νλ non-VCL NAL μ λμΌλ‘ ꡬλΆλλ©°, λ€μν μ’ λ₯μ VCL λλ non-VCL NAL μ λμ΄ μ‘΄μ¬ν μ μλ€.NAL units are divided into VCL (Video Coding Layer) NAL units containing video data and non-VCL NAL units containing parameter information for decoding video data, and various types of VCL or non-VCL NAL units may exist.
NAL μ λμ NAL ν€λ μ 보μ λ°μ΄ν°μΈ RBSP(Raw Byte Sequence Payload)λ‘ κ΅¬μ±λλ©°, NAL ν€λ μ 보μλ RBSPμ λν μμ½ μ λ³΄κ° ν¬ν¨λλ€. VCL NAL μ λμ RBSPμλ λΆνΈνλ μ μ κ°μ μ½λ© νΈλ¦¬ μ λ(coding tree unit)μ ν¬ν¨νλ€.A NAL unit consists of NAL header information and data, a Raw Byte Sequence Payload (RBSP). The NAL header information includes summary information about the RBSP. The RBSP of a VCL NAL unit contains an integer number of encoded coding tree units.
λμ½λμμ λΉνΈμ€νΈλ¦Όμ 볡νΈννκΈ° μν΄μλ λ¨Όμ λΉνΈμ€νΈλ¦Όμ NAL μ λ λ¨μλ‘ λΆλ¦¬ν ν, λΆλ¦¬λ κ°κ°μ NAL μ λμ 볡νΈνν΄μΌ νλ€. ννΈ, λΉνΈμ€νΈλ¦Όμ 볡νΈνλ₯Ό μν΄ νμν μ 보λ€μ ν½μ³ νλΌλ―Έν° μΈνΈ(Picture Parameter Set, PPS), μνμ€ νλΌλ―Έν° μΈνΈ(Sequence Parameter Set, SPS), λΉλμ€ νλΌ λ―Έν° μΈνΈ(Video Parameter Set, VPS) λ±μ ν¬ν¨λμ΄ μ μ‘λ μ μλ€.In order to decode a bitstream in a decoder, the bitstream must first be divided into NAL units, and then each divided NAL unit must be decoded. Meanwhile, the information required for decoding the bitstream can be transmitted as part of a picture parameter set (PPS), a sequence parameter set (SPS), a video parameter set (VPS), etc.
ννΈ, λ 1μ μ°Έμ‘°νμ¬ μ€λͺ ν μΈμ½λμ κ΅¬μ± λ° λμμ λ³Έ λ°λͺ μ μΌμ€μμμ λ°λ₯Έ κ²μΌλ‘, νμμ λ°λΌ μΌλΆ ꡬμ±μ΄ μλ΅λκ±°λ ꡬμ±μ΄ μΆκ°λ μ μλ€.Meanwhile, the configuration and operation of the encoder described with reference to FIG. 1 are according to one embodiment of the present invention, and some configurations may be omitted or added as needed.
λ 2λ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ 볡νΈν μ₯μΉλ₯Ό λΈλ‘λλ‘ λμν κ²μΌλ‘, λΉλμ€λ₯Ό 볡νΈν νκΈ° μν λΉλμ€ λμ½λμ κ΅¬μ± λ° λμμ μ€λͺ νκΈ° μν κ²μ΄λ€.FIG. 2 is a block diagram illustrating a decoding device according to one embodiment of the present disclosure, and is intended to explain the configuration and operation of a video decoder for decoding a video.
λ 2λ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ μνΈλ‘νΌ λμ½λ©λΆ(210), μμμνλΆ(220), μλ³νλΆ(230), νν°λ§λΆ(240), μμΈ‘λΆ(260) λ° DPB(Decoded Picture Buffer, 270)λ₯Ό ν¬ν¨νμ¬ κ΅¬μ±λ μ μλ€.Referring to FIG. 2, a video decoder (200) may be configured to include an entropy decoding unit (210), an inverse quantization unit (220), an inverse transformation unit (230), a filtering unit (240), a prediction unit (260), and a DPB (Decoded Picture Buffer, 270).
μνΈλ‘νΌ λμ½λ©λΆ(210)λ λΉνΈμ€νΈλ¦Όμ μνΈλ‘νΌ λμ½λ©νμ¬, κ° μμμ λν λ³ν κ³μ μ 보, μΈνΈλΌ λΆνΈν μ 보, μΈν° λΆνΈν μ 보 λ±μ μΆμΆνλ€.The entropy decoding unit (210) entropy decodes the bitstream to extract transform coefficient information, intra-coding information, inter-coding information, etc. for each region.
μλ₯Ό λ€μ΄, μνΈλ‘νΌ λμ½λ©λΆ(210)λ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νΉμ μμμ λ³ν κ³μ μ 보μ λν μ΄μ§ν μ½λλ₯Ό νλν μ μμΌλ©°, μ΄μ§ν μ½λλ₯Ό μ μ΄μ§ννμ¬ μμνλ λ³ν κ³μλ₯Ό νλν μ μλ€.For example, the entropy decoding unit (210) can obtain a binary code for transform coefficient information of a specific area from a bitstream, and can obtain a quantized transform coefficient by de-binarizing the binary code.
μμμνλΆ(220)λ μμνλ λ³ν κ³μλ₯Ό μμμννκ³ , μλ³νλΆ(230)λ μμμνλ λ³ν κ³μλ₯Ό μ΄μ©νμ¬ λ μ§λμΌ κ°μ 볡μνλ€.The inverse quantization unit (220) inversely quantizes the quantized transform coefficients, and the inverse transformation unit (230) restores the residual value using the inverse quantized transform coefficients.
ννΈ, μλ³νλΆ(230)μμ νλλ λ μ§λμΌ κ°μ΄ μμΈ‘λΆ(260)μμ νλλ μμΈ‘ κ°κ³Ό ν©μ°λμ΄ μλμ νμκ°μΌλ‘ 볡μλλ€.Meanwhile, the residual value obtained from the inverse transformation unit (230) is combined with the predicted value obtained from the prediction unit (260) to restore the original pixel value.
νν°λ§λΆ(240)λ 볡μλ ν½μ³μ νμ§μ ν₯μμν€κΈ°κΈ° μν΄ λλΈλ‘νΉ νν°, μν μ μμ μ€νμ , μ μμ 루ν νν° λ±μ μ΄μ©ν νν°λ§ μ°μ°μ μννλ©°, νν°λ§μ κ±°μΉ ν½μ³λ μΆλ ₯λκ±°λ λ€μ ν½μ³μ λν μ°Έμ‘° ν½μ³λ‘ μ΄μ©λκΈ° μν΄ DPB(270)μ μ μ₯λ μ μλ€.The filtering unit (240) performs a filtering operation using a deblocking filter, a sample adaptive offset, an adaptive loop filter, etc. to improve the image quality of the restored picture, and the filtered picture can be output or stored in the DPB (270) to be used as a reference picture for the next picture.
μμΈ‘λΆ(260)λ μΈνΈλΌ/IBC μμΈ‘λΆ(261)μ μΈν° μμΈ‘λΆ(265)λ₯Ό ν¬ν¨νλ©°, μνΈλ‘νΌ λμ½λ©λΆ(210)λ₯Ό ν΅ν΄ 볡νΈνλ λΆνΈν νμ , κ° μμμ λν λ³ν κ³μ, μΈνΈλΌ/μΈν° λΆνΈν μ 보 λ±μ νμ©νμ¬ μμΈ‘ ν½μ³λ₯Ό μμ±νλ€.The prediction unit (260) includes an intra/IBC prediction unit (261) and an inter prediction unit (265), and generates a prediction picture by utilizing the encoding type decoded through the entropy decoding unit (210), the transform coefficient for each region, and the intra/inter encoding information.
볡νΈνκ° μνλλ νμ¬ λΈλ‘μ 볡μνκΈ° μν΄μ, νμ¬ λΈλ‘μ΄ ν¬ν¨λ νμ¬ ν½μ³ λλ λ€λ₯Έ ν½μ³λ€μ 볡νΈνλ μμμ΄ μ΄μ©λ μ μλ€. 볡μμ νμ¬ ν½μ³λ§μ μ΄μ©νλ μΈνΈλΌ μμΈ‘ λλ μΈνΈλΌ BC μμΈ‘μ μννλ ν½μ³(λλ νμΌ/μ¬λΌμ΄μ€)λ₯Ό μΈνΈλΌ ν½μ³ λλ I ν½μ³(λλ νμΌ/μ¬λΌμ΄μ€)λΌκ³ νλ©°, μΈνΈλΌ μμΈ‘, μΈν° μμΈ‘ λ° μΈνΈλΌ BC μμΈ‘μ λͺ¨λ μνν μ μλ ν½μ³(λλ νμΌ/μ¬λΌμ΄μ€)λ₯Ό μΈν° ν½μ³(λλ νμΌ/μ¬λΌμ΄μ€)λΌκ³ νλ€.To restore the current block in which decoding is performed, the decoded region of the current picture or other pictures containing the current block can be used. A picture (or tile/slice) that performs intra prediction or intra BC prediction using only the current picture for restoration is called an intra picture or I picture (or tile/slice), and a picture (or tile/slice) that can perform all of intra prediction, inter prediction, and intra BC prediction is called an inter picture (or tile/slice).
ννΈ, μΈν° ν½μ³(λλ νμΌ/μ¬λΌμ΄μ€) μ€ κ° λΈλ‘μ μν κ°λ€μ μμΈ‘νκΈ° μν΄ μ΅λ νλμ λͺ¨μ λ²‘ν° λ° μ°Έμ‘° ν½μ³ μΈλ±μ€λ₯Ό μ΄μ©νλ ν½μ³(λλ νμΌ/μ¬λΌμ΄μ€)λ₯Ό μμΈ‘ ν½μ³(predictive picture) λλ P ν½μ³(λλ νμΌ/μ¬λΌμ΄μ€)λΌκ³ νλ©°, μ΅λ λ κ°μ λͺ¨μ λ²‘ν° λ° μ°Έμ‘° ν½μ³ μΈλ±μ€λ₯Ό μ΄μ©νλ ν½μ³(λλ νμΌ/μ¬ λΌμ΄μ€)λ₯Ό μμμΈ‘ ν½μ³(Bi-predictive picture) λλ B ν½μ³(λλ νμΌ/μ¬λΌμ΄μ€) λΌκ³ νλ€.Meanwhile, a picture (or tile/slice) that uses at most one motion vector and reference picture index to predict sample values of each block among inter-pictures (or tiles/slices) is called a predictive picture or P-picture (or tile/slice), and a picture (or tile/slice) that uses at most two motion vectors and reference picture indices is called a bi-predictive picture or B-picture (or tile/slice).
μ¦, P ν½μ³(λλ νμΌ/μ¬λΌμ΄μ€)λ κ° λΈλ‘μ μμΈ‘νκΈ° μν΄ μ΅λ νλμ λͺ¨μ μ 보 μΈνΈλ₯Ό μ΄μ©νκ³ , B ν½μ³(λλ νμΌ/μ¬λΌμ΄μ€)λ κ° λΈλ‘μ μμΈ‘νκΈ° μν΄ μ΅λ λ κ°μ λͺ¨μ μ 보 μΈνΈλ₯Ό μ΄μ©νλ€. μ¬κΈ°μ, λͺ¨μ μ 보 μΈνΈλ νλ μ΄μμ λͺ¨μ 벑ν°μ νλμ μ°Έμ‘° ν½μ³ μΈλ±μ€λ₯Ό ν¬ν¨ν μ μλ€.That is, a P picture (or tile/slice) uses at most one motion information set to predict each block, and a B picture (or tile/slice) uses at most two motion information sets to predict each block. Here, a motion information set may include one or more motion vectors and one reference picture index.
μΈνΈλΌ/IBC μμΈ‘λΆ(261)λ μΈνΈλΌ λΆνΈν μ 보 λ° νμ¬ ν½μ³ λ΄μ 볡μλ μνλ€μ μ΄μ©νμ¬ μμΈ‘ λΈλ‘μ μμ±νλ©°, μΈνΈλΌ λΆνΈν μ 보λ μΈνΈλΌ μμΈ‘ λͺ¨λ, MPM(Most Probable Mode) νλκ·Έ, MPM μΈλ±μ€ μ€ μ μ΄λ νλλ₯Ό ν¬ν¨ν μ μλ€.The intra/IBC prediction unit (261) generates a prediction block using intra encoding information and restored samples within the current picture, and the intra encoding information may include at least one of an intra prediction mode, an MPM (Most Probable Mode) flag, and an MPM index.
μΈνΈλΌ/IBC μμΈ‘λΆ(261)λ νμ¬ λΈλ‘μ μ’μΈ‘ λ°/λλ μμΈ‘μ μμΉν 볡μλ μνλ€μ μ°Έμ‘° μνλ€λ‘ μ΄μ©νμ¬ νμ¬ λΈλ‘μ μν κ°λ€μ μμΈ‘ν μ μλ€.The intra/IBC prediction unit (261) can predict sample values of the current block using restored samples located on the left and/or upper side of the current block as reference samples.
μλ₯Ό λ€μ΄, μ°Έμ‘° μνλ€μ νμ¬ λΈλ‘μ μ’μΈ‘ κ²½κ³μ μΈμ ν μνλ€ λ°/λλ μμΈ‘ κ²½κ³μ μΈμ ν μνλ€μΌ μ μμΌλ©°, νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ μνλ€ μ€ νμ¬ λΈλ‘μ μ’μΈ‘ κ²½κ³λ‘λΆν° κΈ° μ€μ λ 거리 μ΄λ΄μ λΌμΈ μμ μμΉνλ μνλ€ λ°/λλ νμ¬ λΈλ‘μ μμΈ‘ κ²½κ³λ‘λΆν° κΈ° μ€μ λ 거리 μ΄λ΄μ λΌμΈ μμ μμΉνλ μνλ€μΌ μ μλ€. μ΄λ, νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ νμ¬ λΈλ‘μ μΈμ ν μ’μΈ‘(L) λΈλ‘, μμΈ‘(A) λΈλ‘, ν-μ’μΈ‘(Below Left, BL) λΈλ‘, μ-μ°μΈ‘(Above Right, AR) λΈλ‘ λλ μ-μ’μΈ‘(Above Left, AL) λΈλ‘ μ€ μ μ΄λ νλλ₯Ό ν¬ν¨ν μ μλ€.For example, the reference samples may be samples adjacent to the left boundary of the current block and/or samples adjacent to the upper boundary, and may be samples located on a line within a preset distance from the left boundary of the current block among samples of neighboring blocks of the current block and/or samples located on a line within a preset distance from the upper boundary of the current block. In this case, the neighboring blocks of the current block may include at least one of a left (L) block, an upper (A) block, a below left (BL) block, an above right (AR) block, or an above left (AL) block adjacent to the current block.
λν, μΈνΈλΌ/IBC μμΈ‘λΆ(261)λ νμ¬ ν½μ³ λ΄μ 볡μλ μνλ€μ ν¬ν¨νλ νΉμ μμμ μ°Έμ‘°νμ¬ νμ¬ μμμ 볡μν μ μλ€. μ΄λ₯Ό μν΄, μΈνΈλΌ/IBC μμΈ‘λΆ(261)λ μνΈλ‘νΌ λμ½λ©λΆ(210)λ‘λΆν° νλλ IBC λΆνΈν μ 보λ₯Ό μ΄μ©νμ¬ IBC μμΈ‘μ μνν μ μμΌλ©°, IBC λΆνΈν μ 보λ λΈλ‘ λ²‘ν° μ 보λ₯Ό ν¬ν¨ν μ μλ€.Additionally, the intra/IBC prediction unit (261) can restore the current region by referring to a specific region including restored samples within the current picture. To this end, the intra/IBC prediction unit (261) can perform IBC prediction using IBC encoding information obtained from the entropy decoding unit (210), and the IBC encoding information can include block vector information.
μΈν° μμΈ‘λΆ(265)λ DPB(270)μ μ μ₯λ μ°Έμ‘° ν½μ³ λ° μΈν° λΆνΈν μ 보λ₯Ό μ΄μ©νμ¬ μμΈ‘ λΈλ‘μ μμ±νλ©°, μΈν° λΆνΈν μ 보λ μ°Έμ‘° λΈλ‘μ λν νμ¬ λΈλ‘μ λͺ¨μ μ 보 μΈνΈ(μ°Έμ‘° ν½μ³ μΈλ±μ€, λͺ¨μ λ²‘ν° μ 보 λ±)λ₯Ό ν¬ν¨ν μ μλ€.The inter prediction unit (265) generates a prediction block using the reference picture and inter encoding information stored in the DPB (270), and the inter encoding information may include a set of motion information (reference picture index, motion vector information, etc.) of the current block for the reference block.
ννΈ, μΈν° μμΈ‘μλ L0 μμΈ‘, L1 μμΈ‘ λ° μμμΈ‘(Bi-prediction)μ΄ μμ μ μλ€.Meanwhile, inter prediction can include L0 prediction, L1 prediction, and bi-prediction.
L0 μμΈ‘μ L0 ν½μ³ 리μ€νΈμ ν¬ν¨λ 1κ°μ μ°Έμ‘° ν½μ³λ₯Ό μ΄μ©ν μμΈ‘μ΄κ³ , L1 μμΈ‘μ L1 ν½μ³ 리μ€νΈμ ν¬ν¨λ 1κ°μ μ°Έμ‘° ν½μ³λ₯Ό μ΄μ©ν μμΈ‘μ μλ―Ένλ€. μ΄λ₯Ό μν΄, 1μΈνΈμ λͺ¨μ μ 보(μλ₯Ό λ€μ΄, λͺ¨μ λ²‘ν° λ° μ°Έμ‘° ν½μ³ μΈλ±μ€)κ° νμν μ μλ€.L0 prediction refers to prediction using a single reference picture included in the L0 picture list, and L1 prediction refers to prediction using a single reference picture included in the L1 picture list. For this, a set of motion information (e.g., motion vector and reference picture index) may be required.
μμμΈ‘ λ°©μμμλ μ΅λ 2κ°μ μ°Έμ‘° μμλ€μ μ΄μ©ν μ μλλ°, 2κ°μ μ°Έμ‘° μμλ€μ λμΌν μ°Έμ‘° ν½μ³μ μ‘΄μ¬ν μλ μκ³ , μλ‘ λ€λ₯Έ ν½μ³μ κ°κ° μ‘΄μ¬ν μλ μλ€. κ·Έμ λ°λΌ, μμμΈ‘ λ°©μμμ μ΄μ©λλ μ΅λ 2 μΈνΈμ λͺ¨μ μ 보μμ, 2κ°μ λͺ¨μ 벑ν°κ° λμΌν μ°Έμ‘° ν½μ³ μΈλ±μ€μ λμλ μλ μκ³ μλ‘ λ€λ₯Έ μ°Έμ‘° ν½μ³ μΈλ±μ€μ λμλ μλ μλ€.In the biprediction method, up to two reference regions can be used. These two reference regions may exist in the same reference picture or in different pictures. Accordingly, in the two sets of motion information used in the biprediction method, two motion vectors may correspond to the same reference picture index or to different reference picture indices.
μ΄λ, μ°Έμ‘° ν½μ³λ€μ νμ¬ ν½μ³λ₯Ό κΈ°μ€μΌλ‘ μκ°μ μΌλ‘ μ΄μ λλ μ΄νμ μμΉνλ ν½μ³λ‘μ, μ΄λ―Έ 볡μλ μλ£λ ν½μ³κ° λ μ μμΌλ©°, μμμΈ‘ λ°©μμμ μ¬μ©λλ 2κ°μ μ°Έμ‘° μμμ L0 ν½μ³ 리μ€νΈ λ° L1 ν½μ³ 리μ€νΈ κ°κ°μμ μ νλ μμμΌ μ μλ€.At this time, the reference pictures are pictures that are located temporally before or after the current picture, and may be completed pictures that have already been restored, and the two reference areas used in the pair prediction method may be areas selected from the L0 picture list and the L1 picture list, respectively.
μΈν° μμΈ‘λΆ(265)λ λͺ¨μ λ²‘ν° λ° μ°Έμ‘° ν½μ³ μΈλ±μ€λ₯Ό μ΄μ©νμ¬ νμ¬ λΈλ‘μ μ°Έμ‘° λΈλ‘μ νλν μ μμΌλ©°, μ°Έμ‘° λΈλ‘μ μ°Έμ‘° ν½μ³ μΈλ±μ€μ λμνλ μ°Έμ‘° ν½μ³ λ΄μ μ‘΄μ¬νλ€.The inter prediction unit (265) can obtain a reference block of the current block using a motion vector and a reference picture index, and the reference block exists in a reference picture corresponding to the reference picture index.
λν, λͺ¨μ 벑ν°μ μν΄μ νΉμ λ λΈλ‘μ μν κ° λλ μ΄μ 보κ°(interpolation)λ κ°μ΄ νμ¬ λΈλ‘μ μμΈ‘μ(predictor)λ‘ μ΄μ©λ μ μλ€. μλΈν (subpel) λ¨μμ ν½μ μ νλλ₯Ό κ°λ λͺ¨μ μμΈ‘μ μνμ¬, νλ μ νΈμ λν΄ 8-ν λ³΄κ° νν°κ°, μμ°¨ μ νΈμ λνμ¬ 4-ν λ³΄κ° νν°κ° μ¬μ©λ μ μλ€.Additionally, the sample values of a block specified by a motion vector or their interpolated values can be used as a predictor of the current block. For motion prediction with subpel-level pixel accuracy, an 8-tap interpolation filter can be used for the luminance signal, and a 4-tap interpolation filter can be used for the chrominance signal.
ννΈ, λ 2λ₯Ό μ°Έμ‘°νμ¬ μ€λͺ ν λμ½λμ κ΅¬μ± λ° λμμ λ³Έ κ°μμ μΌμ€μμμ λ°λ₯Έ κ²μΌλ‘, νμμ λ°λΌ μΌλΆ ꡬμ±μ΄ μλ΅λκ±°λ ꡬμ±μ΄ μΆκ°λ μ μμΌλ©°, λμ½λλ μμ μ€λͺ ν μΈμ½λμ λΆνΈν λ°©λ²μ μκ³Όμ μ μννμ¬ μμμ 볡νΈνν μ μλ€.Meanwhile, the configuration and operation of the decoder described with reference to FIG. 2 are according to one embodiment of the present disclosure, and some configurations may be omitted or added as needed, and the decoder may decode an image by performing the reverse process of the encoding method of the encoder described above.
μ΄ν, λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ λΈλ‘ νν°μ λ(block partitioning)μ λνμ¬ μ€λͺ νλ€. λ³Έ κ°μμ λ°λ₯Έ λΈλ‘ νν°μ λ κ³Όμ μ μ μ ν λΉλμ€ μΈμ½λ(100)μμ μνλμ΄, νν°μ λ κ΄λ ¨ μ λ³΄κ° μνΈλ‘νΌ μ½λ©λΆ(180)μμ λΆνΈνλμ΄ λΉνΈμ€νΈλ¦Ό ννλ‘ λΉλμ€ λμ½λ(200)μ μ λ¬λ μ μλ€. λΉλμ€ μΈμ½λ(100)λ κ²°μ λ λΈλ‘ νν°μ λ ꡬ쑰μ κΈ°μ΄νμ¬ μΈμ½λ© μ μ°¨, μλ₯Ό λ€μ΄ μμΈ‘, λ³ν, λΈλ‘ 볡μ, νν°λ§ κ³Όμ λ±μ μνν μ μλ€.Hereinafter, block partitioning according to one embodiment of the present disclosure will be described. The block partitioning process according to the present disclosure may be performed in the aforementioned video encoder (100), and partitioning-related information may be encoded in the entropy coding unit (180) and transmitted to the video decoder (200) in the form of a bitstream. The video encoder (100) may perform encoding procedures, such as prediction, transformation, block restoration, and filtering, based on the determined block partitioning structure.
λΉλμ€ λμ½λ(200)μ μνΈλ‘νΌ λμ½λ©λΆ(210)λ λΉνΈμ€νΈλ¦Όμ νμ±νμ¬ λΈλ‘ νν°μ λ κ΄λ ¨ μ 보λ₯Ό νλνκ³ , λΈλ‘ νν°μ λ κ΄λ ¨ μ 보μ κΈ°μ΄νμ¬ λΈλ‘ νν°μ λ ꡬ쑰λ₯Ό κ²°μ ν μ μλ€. λΉλμ€ λμ½λ(200)λ κ²°μ λ λΈλ‘ νν°μ λ ꡬ쑰μ κΈ°μ΄νμ¬ λμ½λ© μ μ°¨, μλ₯Ό λ€μ΄ μμΈ‘, μλ³ν, λΈλ‘ 볡μ, νν°λ§ κ³Όμ λ±μ μνν μ μλ€.The entropy decoding unit (210) of the video decoder (200) can parse a bitstream to obtain block partitioning-related information and determine a block partitioning structure based on the block partitioning-related information. The video decoder (200) can perform a decoding procedure, such as prediction, inverse transformation, block restoration, and filtering, based on the determined block partitioning structure.
λν, λ³Έ κ°μμ λ°λ₯Έ λΈλ‘ νν°μ λ κ³Όμ μ λΉλμ€ μΈμ½λ(100) λ° λΉλμ€ λμ½λ(200)μμ νμ¬ λΈλ‘κ³Ό κ΄λ ¨λ μ¬λ¬ λΆκ° μ 보μ κΈ°μ΄νμ¬ μμμ μΌλ‘ (implicitly) μνλ μ μλ€. Additionally, the block partitioning process according to the present disclosure can be implicitly performed based on various additional information related to the current block in the video encoder (100) and the video decoder (200).
λν, λ³Έ κ°μμ λ°λ₯Έ λΈλ‘ νν°μ λ κ³Όμ μ νν°μ λ κ΄λ ¨λ μΌλΆ μ 보λ μνΈλ‘νΌ μ½λ©λΆ(180)μμ λΆνΈνλμ΄ λΉνΈμ€νΈλ¦Ό ννλ‘ λΉλμ€ λμ½λ(200)λ‘ μ λ¬λκ³ νν°μ λ κ΄λ ¨λ λ€λ₯Έ μ 보λ μμμ μΌλ‘ κ²°μ λμ΄ μνλ μ μλ€. In addition, the block partitioning process according to the present disclosure may be performed by encoding some information related to partitioning in an entropy coding unit (180) and transmitting it to a video decoder (200) in the form of a bitstream, and implicitly determining other information related to partitioning.
λΉλμ€λ ν½μ²λ€μ μνμ€λ‘μ, λΉλμ€λ₯Ό ꡬμ±νλ κ° ν½μ²λ μλΈ ν½μ³(sub-picture), μ¬λΌμ΄μ€(slice), νμΌ(tile) λ±μΌλ‘ λΆν λμ΄ λΆνΈνλ μ μλ€. μλΈ ν½μ³λ νλ μ΄μμ μ¬λΌμ΄μ€ λλ νμΌμ ν¬ν¨ν μ μλ€. νλμ ν½μ³κ° μ¬λ¬ κ°μ μ¬λΌμ΄μ€ λλ νμΌλ‘ λΆν λμ΄ λΆνΈνλμμ κ²½μ°, ν½μ³ λ΄μ λͺ¨λ μ¬λΌμ΄μ€ λλ νμΌμ΄ λμ½λ©μ΄ μλ£λμ΄μΌλ§ νλ©΄μ μΆλ ₯μ΄ κ°λ₯νλ€.A video is a sequence of pictures, and each picture that makes up the video can be encoded by dividing it into sub-pictures, slices, tiles, etc. A sub-picture can include one or more slices or tiles. When a single picture is encoded by dividing it into multiple slices or tiles, all slices or tiles within the picture must be decoded before it can be displayed on the screen.
νλμ ν½μ³κ° μ¬λ¬ κ°μ μλΈ ν½μ³λ€λ‘ λΆνΈνλμμ κ²½μ°, μμμ μλΈ ν½μ³λ§ λμ½λ©λμ΄ νλ©΄μ μΆλ ₯λ μ μλ€. μ¬λΌμ΄μ€λ μ¬λ¬ κ°μ νμΌ λλ μλΈ ν½μ³λ₯Ό ν¬ν¨ν μ μμΌλ©°, νμΌμ μ¬λ¬ κ°μ μλΈ ν½μ³ λλ μ¬λΌμ΄μ€λ₯Ό ν¬ν¨ν μ μλ€.When a single picture is encoded into multiple subpictures, only any subpicture can be decoded and displayed on the screen. A slice can contain multiple tiles or subpictures, and a tile can contain multiple subpictures or slices.
μλΈ ν½μ³, μ¬λΌμ΄μ€, νμΌμ μλ‘ λ 립μ μΌλ‘ μΈμ½λ© λλ λμ½λ©μ΄ κ°λ₯νμ¬ λ³λ ¬ μ²λ¦¬ λ° μ²λ¦¬ μλ ν₯μμ ν¨κ³Όμ μ΄λ, μΈμ ν λ€λ₯Έ μλΈ ν½μ³, λ€λ₯Έ μ¬λΌμ΄μ€, λ€λ₯Έ νμΌμ λΆνΈνλ μ 보λ₯Ό μ΄μ©ν μ μμΌλ―λ‘ λΉνΈλμ΄ μ¦κ°λ μ μλ€.Subpictures, slices, and tiles can be encoded or decoded independently of each other, which is effective for parallel processing and improved processing speed. However, since encoded information of adjacent subpictures, slices, and tiles cannot be used, the amount of bits may increase.
κ·Έλ¦¬κ³ μλΈ ν½μ³, μ¬λΌμ΄μ€, νμΌμ μ¬λ¬ κ°μ λΆνΈν νΈλ¦¬ λ¨μ(Coding Tree Unit, CTU) λ‘ λΆν λμ΄ λΆνΈνλ μ μλ€. λΆνΈν νΈλ¦¬ λ¨μ(CTU)λ λΆνΈν νΈλ¦¬ λΈλ‘(Coding Tree Block, CTB)μ λμλ μ μλ€. λΆνΈν νΈλ¦¬ λ¨μλ μνΌ λΈλ‘(super block, SB)μΌλ‘ μ§μΉλ μλ μλ€. And subpictures, slices, and tiles can be encoded by being divided into multiple coding tree units (CTUs). A coding tree unit (CTU) can correspond to a coding tree block (CTB). A coding tree unit can also be referred to as a super block (SB).
CTUλ λ£¨λ§ μνλ€μ λΆνΈν νΈλ¦¬ λΈλ‘κ³Ό, λμνλ ν¬λ‘λ§ μνλ€μ λκ°μ λΆνΈν νΈλ¦¬ λΈλ‘λ€μ ν¬ν¨ν μ μλ€. CTUλ λ£¨λ§ μνλ€μ λ£¨λ§ λΈλ‘κ³Ό μ ν¬λ§·μ λ°λΌ λ£¨λ§ λΈλ‘μ ν¬κΈ° μ΄νμ λμλλ μμ ν¬κΈ°μ ν¬λ‘λ§ μνλ€λ‘ ꡬμ±λ λκ°μ λμ λΈλ‘λ€μ ν¬ν¨ν μ μλ€. CTUμ μ΅λ νμ© μ¬μ΄μ¦λ λ³νμ μν CTUμ μ΅λ νμ© μ¬μ΄μ¦μ λ€λ₯Ό μ μλ€. μλ₯Ό λ€μ΄, CTU λ΄ λ£¨λ§ λΈλ‘μ μ΅λ νμ© μ¬μ΄μ¦λ 128x128μΌ μ μλ€.A CTU may include an encoding tree block of luma samples and two encoding tree blocks of corresponding chroma samples. A CTU may include a luma block of luma samples and two corresponding blocks of chroma samples of a corresponding size smaller than or equal to the size of the luma block, depending on the color format. The maximum allowable size of a CTU may be different from the maximum allowable size of a CTU for a transformation. For example, the maximum allowable size of a luma block within a CTU may be 128x128.
CTUλ μΏΌλνΈλ¦¬(quad-tree, QT) ꡬ쑰λ₯Ό κΈ°λ°μΌλ‘ λΆνΈν λ¨μλ€(Coding Units, CUs)λ‘ λΆν λ μ μλ€. λν, λ³Έ κ°μμ λ°λ₯΄λ©΄ νμ λλ λ 3aμ μμλ λ°μ κ°μ΄, CTUλ μμ λΈλ‘ νν°μ λ νΈλ¦¬ ꡬ쑰μ κΈ°μ΄νμ¬ λΆν λ μ μλ€. λΈλ‘ νν°μ λ νΈλ¦¬ ꡬ쑰μμ, κ° λΆνΈν λ¨μλ μ μ¬κ°ν λλ μ§μ¬κ°ν λͺ¨μμ κ°μ§ μ μλ€. CTUλ λ¨Όμ μΏΌλνΈλ¦¬ κ΅¬μ‘°λ‘ λΆν λ μ μλ€. μ΄ν μΏΌλνΈλ¦¬ ꡬ쑰μ 리ν λ Έλλ€μ λ©ν°νμ νΈλ¦¬ ꡬ쑰λ μμ λΈλ‘ νν°μ λ νΈλ¦¬ ꡬ쑰μ μνμ¬ μΆκ°μ μΌλ‘ λΆν λ μ μλ€. λν, λ³Έ κ°μμ λ°λ₯΄λ©΄ νμ λλ λ 3bμ μμλ λ°μ κ°μ΄, CTUλ μΏΌλνΈλ¦¬ λΏ μλλΌ λ°μ΄λ리 νΈλ¦¬(binary-tree, BT) λ° ν°λ리 νΈλ¦¬(ternary-tree, TT)μ ν¬ν¨νλ λ©ν°νμ νΈλ¦¬ ꡬ쑰 λΆν μ κΈ°μ΄νμ¬ λΆν λ μ μλ€. A CTU can be partitioned into coding units (CUs) based on a quad-tree (QT) structure. In addition, according to the present disclosure, as illustrated in FIG. 3a described below, a CTU can be partitioned based on a predetermined block partitioning tree structure. In the block partitioning tree structure, each coding unit can have a square or rectangular shape. A CTU can be first partitioned into a quad-tree structure. Thereafter, leaf nodes of the quad-tree structure can be further partitioned by a multi-type tree structure or a predetermined block partitioning tree structure. In addition, according to the present disclosure, as illustrated in FIG. 3b described below, a CTU can be partitioned based on a multi-type tree structure partitioning including not only a quad-tree but also a binary-tree (BT) and a ternary-tree (TT).
λ 3aλ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ, λΈλ‘ νν°μ λ ꡬ쑰μ μΌ μλ₯Ό λνλ΄λ λλ©΄μ΄λ€.FIG. 3A is a diagram illustrating an example of a block partitioning structure according to one embodiment of the present disclosure.
μμΈ‘ λ° λ³ν νλ‘μΈμ€λ₯Ό μμνκΈ° μ μ, λΉλμ€ μΈμ½λ(100)λ ν½μ²λ₯Ό μμ ν¬κΈ°μ λΈλ‘λ€λ‘ λΆν νλ€. μ΄λ¬ν μμ ν¬κΈ°μ λΈλ‘λ€μ CTU λλ SBλ‘ μ§μΉλ μ μλ€. 루λ§λ₯Ό κΈ°μ€μΌλ‘ μμ ν¬κΈ°μ λΈλ‘λ€μ 64X64 λλ 128X128μ΄ λ μ μλ€. Before starting the prediction and conversion process, the video encoder (100) divides the picture into blocks of a predetermined size. These blocks of a predetermined size may be referred to as CTUs or SBs. Based on luma, the blocks of a predetermined size may be 64X64 or 128X128.
RDO(Rate-Distortion Optimization)μ κΈ°μ΄νμ¬, λΉλμ€ μΈμ½λ(100)λ λ 3aμ μμλ λ°μ κ°μ νν°μ λ ꡬ쑰μ λ°λΌ νμ¬ λΈλ‘μ λΆν ν μ μλ€. λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ λΆν νμ§ μκ³ κ·Έλλ‘ μ¬μ©νκ±°λ(NONE), νμ¬ λΈλ‘μ μνμΌλ‘ 2λ±λΆνκ±°λ(HORZ), νμ¬ λΈλ‘μ μμ§μΌλ‘ 2λ±λΆνκ±°λ(VERT), νμ¬ λΈλ‘μ 4κ°μ λμΌ ν¬κΈ° λΈλ‘μ λΆν νκ±°λ(SPLIT), νμ¬ λΈλ‘μ μνμΌλ‘ λΉλμΉ λΆν νκ±°λ(HORZ_A, HORZ_B), νμ¬ λΈλ‘μ μμ§μΌλ‘ λΉλμΉ λΆν νκ±°λ(VERT_A, VERT_B), νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 4λΆν νκ±°λ(HORZ_4), νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 4λΆν (VERT_4)ν μ μλ€.Based on Rate-Distortion Optimization (RDO), the video encoder (100) can partition the current block according to a partitioning structure as illustrated in FIG. 3A. The video encoder (100) can use the current block as is without partitioning it (NONE), divide the current block horizontally into two (HORZ), divide the current block vertically into two (VERT), divide the current block into four equal-sized blocks (SPLIT), divide the current block horizontally asymmetrically (HORZ_A, HORZ_B), divide the current block vertically asymmetrically (VERT_A, VERT_B), divide the current block into four horizontally (HORZ_4), or divide the current block into four vertically (VERT_4).
λ 3aμ νν°μ λ ꡬ쑰μ λ°λ₯Έ λΆν κ³Όμ μ μ¬κ·μ μΌλ‘(recursively) μνλ μ μλ€. μ¦, νν°μ λ ꡬ쑰μ λ°λΌ λΆν λ νν°μ μ€ νλλ λ€μ λ 3aμ νν°μ λ ꡬ쑰μ λ°λΌ λΆν λ μ μλ€. μ΄λ¬ν μ¬κ·μ μΈ νν°μ λ κ³Όμ μ λΈλ‘ ν¬κΈ°, νν°μ λ λͺ¨λμ λ°λΌ μ νλ μ μλ€. μ¦, μμ ν¬κΈ° μ΄μμ λΈλ‘μ λν΄μλ§ μ¬κ·μ μΈ νν°μ λ κ³Όμ μ΄ μνλκ±°λ, νΉμ νν°μ λ λͺ¨λμ λ°λΌ λΆν λ λΈλ‘μ λν΄μλ§ μ¬κ·μ μΈ νν°μ λ κ³Όμ μ΄ μνλ μ μλ€. μλ₯Ό λ€μ΄, μΏΌλνΈλ¦¬ ꡬ쑰(SPLIT)λ‘ λΆν λ κ° νν°μ μ λ 3aμ λμλ 10κ°μ νΈλ¦¬ ꡬ쑰 μ€ νλμ λ°λΌ μ¬κ·μ (recursively)μΌλ‘ λΆν λκ³ λλ¨Έμ§ 9κ°μ νΈλ¦¬ ꡬ쑰 μ€ νλμ λ°λΌ κ²°μ λ νν°μ μ λ μ΄μ λ€λ₯Έ νν°μ λ€λ‘ λΆν λμ§ μλ μ΅μ’ μ μΈ λ¦¬ν λ Έλ(leaf node)λ‘ κ²°μ λ μ μλ€. λ 3aμ λΈλ‘ νν°μ λ ꡬ쑰μ λ°λΌμ λ μ΄μ λΆν λμ§ μλ 리ν λ Έλλ CU λλ μλΈ λΈλ‘(SB)μΌλ‘ μ§μΉλ μ μλ€. μ΄λ¬ν CUλ μμΈ‘ λ° λ³ν μ μ°¨λ₯Ό μνμ¬ μ¬μ©λ μ μλ€. The partitioning process according to the partitioning structure of Fig. 3a can be performed recursively. That is, one of the partitions divided according to the partitioning structure can be divided again according to the partitioning structure of Fig. 3a. This recursive partitioning process can be limited according to the block size and the partitioning mode. That is, the recursive partitioning process can be performed only for blocks larger than a certain size, or the recursive partitioning process can be performed only for blocks divided according to a specific partitioning mode. For example, each partition divided into a quadtree structure (SPLIT) can be recursively divided according to one of the ten tree structures illustrated in Fig. 3a, and the partition determined according to one of the remaining nine tree structures can be determined as a final leaf node that is no longer divided into other partitions. The leaf node that is no longer divided according to the block partitioning structure of Fig. 3a can be referred to as a CU or a sub-block (SB). These CUs can be used for prediction and transformation procedures.
νμ¬ λΆνΈν λ¨μκ° λ 3aμ λΈλ‘ νν°μ λ ꡬ쑰μ λ°λΌ λΆν λλμ§λ₯Ό μ§μνκΈ° μνμ¬ μμ λΆν μ 보λ€μ΄ μκ·Έλλ§λ μ μλ€. μμ λΆν μ 보λ λ 3aμ λΈλ‘ νν°μ λ ꡬ쑰 μ€ νλλ₯Ό κ°λ¦¬ν€λ λͺ¨λ μ 보λ₯Ό ν¬ν¨νκ±°λ, λΆν λ°©ν₯μ΄ μν/μμ§μΈμ§ μ¬λΆλ₯Ό λνλ΄λ νλκ·Έ, λΆν νμ μ λνλ΄λ νλκ·Έλ₯Ό ν¬ν¨ν μ μλ€. Specific partitioning information may be signaled to indicate whether the current encoding unit is partitioned according to the block partitioning structure of FIG. 3A. The specific partitioning information may include mode information indicating one of the block partitioning structures of FIG. 3A, a flag indicating whether the partitioning direction is horizontal/vertical, or a flag indicating the partitioning type.
λ 3bλ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ, λ©ν°νμ νΈλ¦¬ ꡬ쑰μ μΌ μλ₯Ό λνλ΄λ λλ©΄μ΄λ€.FIG. 3b is a diagram illustrating an example of a multi-type tree structure according to one embodiment of the present disclosure.
μμΈ‘ νλ‘μΈμ€λ₯Ό μμνκΈ° μ μ, λΉλμ€ μΈμ½λ(100)λ ν½μ²λ₯Ό μμ ν¬κΈ°μ λΈλ‘λ€λ‘ λΆν νλ€. μμ ν¬κΈ°μ λΈλ‘(CTU)λ λ 3bμ λμλ λ©ν°νμ νΈλ¦¬ ꡬ쑰μ κΈ°μ΄νμ¬ λΆν λ μ μλ€. λ 3bμ λ©ν°νμ νΈλ¦¬ ꡬ쑰μ λ°λ₯Έ λΆν κ³Όμ μ μ¬κ·μ μΌλ‘(recursively) μνλ μ μλ€.Before starting the prediction process, the video encoder (100) divides the picture into blocks of a predetermined size. The blocks (CTUs) of the predetermined size can be divided based on the multi-type tree structure illustrated in FIG. 3b. The division process according to the multi-type tree structure of FIG. 3b can be performed recursively.
λ³Έ κ°μμ μΌ μ€μμμμ, λ©ν°νμ νΈλ¦¬ ꡬ쑰λ λ 3bμ λμλ λ°μ κ°μ 6κ°μ λΆν νμ μ ν¬ν¨ν μ μλ€. 6κ°μ λΆν νμ μ νμ¬ λΈλ‘μ λΆν νμ§ μκ³ κ·Έλλ‘ μ¬μ©νκ±°λ(NO SPLIT), νμ¬ λΈλ‘μ 4κ°μ λμΌ ν¬κΈ° λΈλ‘μ λΆν νκ±°λ(QUADTREE), λΆν μμ§ λ°μ΄λ리 λΆν (vertical binary splitting, SPLIT_BT_VER), μν λ°μ΄λ리 λΆν (horizontal binary splitting, SPLIT_BT_HOR), μμ§ ν°λ리 λΆν (vertical ternary splitting,SPLIT_TT_VER), μν ν°λ리 λΆν (horizontal ternary splitting, SPLIT_TT_HOR)μ ν¬ν¨ν μ μλ€. λ³Έ κ°μμμ μμ§ λ°μ΄λ리 λΆν μ μμ§ μ΄μ§νΈλ¦¬ λΆν , μν λ°μ΄λ리 λΆν μ μν μ΄μ§νΈλ¦¬ λΆν , μμ§ ν°λ리 λΆν μ μμ§ 3λΆν νΈλ¦¬ λΆν , μν ν°λ리 λΆν μ μν 3λΆν νΈλ¦¬ λΆν λ‘ μ§μΉλ μ μλ€. λ©ν°νμ νΈλ¦¬ ꡬ쑰μ 리ν λ Έλλ€μ CUλ€μ΄λΌκ³ μ§μΉλ μ μλ€. μ΄λ¬ν CUλ€μ μμΈ‘ λ° λ³ν μ μ°¨λ₯Ό μνμ¬ μ¬μ©λ μ μλ€. In one embodiment of the present disclosure, the multi-type tree structure may include six split types as illustrated in FIG. 3B. The six split types may include using the current block as is without splitting it (NO SPLIT), splitting the current block into four equal-sized blocks (QUADTREE), vertical binary splitting (SPLIT_BT_VER), horizontal binary splitting (SPLIT_BT_HOR), vertical ternary splitting (SPLIT_TT_VER), and horizontal ternary splitting (SPLIT_TT_HOR). In the present disclosure, vertical binary splitting may be referred to as vertical binary tree splitting, horizontal binary splitting may be referred to as horizontal binary tree splitting, vertical ternary splitting may be referred to as vertical 3-split tree splitting, and horizontal ternary splitting may be referred to as horizontal 3-split tree splitting. Leaf nodes of the multi-type tree structure may be referred to as CUs. These CUs can be used for prediction and transformation procedures.
μμ§ μ΄μ§νΈλ¦¬ λΆν λ° μν μ΄μ§νΈλ¦¬ λΆν μ κ°κ° νμ¬ λΆνΈν μ λμ κ°λ‘ νΉμ μΈλ‘λ₯Ό 2λΆν νμ¬ 2κ°μ λΆνΈν λ¨μλ€λ‘ λΆν νλ κ²μ΄λ€. μλ₯Ό λ€μ΄, 32x32 ν¬κΈ°μ λΆνΈν λ¨μκ° μμ§ μ΄μ§νΈλ¦¬ λΆν μ λ°λΌ 2κ°μ λΆνΈν μ λμΌλ‘ μΈλ‘λ‘ λΆν λ κ²½μ°, λΆν λ 2κ°μ λΆνΈν μ λμ κ°κ° 16x32μ ν¬κΈ°λ₯Ό κ°μ§ μ μλ€. Vertical binary tree partitioning and horizontal binary tree partitioning are methods of dividing the current encoding unit into two encoding units by dividing it in half horizontally or vertically, respectively. For example, if a 32x32 sized encoding unit is vertically partitioned into two encoding units according to vertical binary tree partitioning, the two partitioned encoding units can each have a size of 16x32.
μμ§ 3λΆν νΈλ¦¬ λΆν λ° μν 3λΆν νΈλ¦¬ λΆν μ κ°κ° νμ¬ λΆνΈν μ λμ κ°λ‘ νΉμ μΈλ‘λ₯Ό 1:2:1μ λΉμ¨λ‘ λΆν ν¨μΌλ‘μ¨, 3κ°μ λΆνΈν λ¨μλ€λ‘ λΆν νλ κ²μ΄λ€. μΌ μλ‘, 16x32 ν¬κΈ°μ λΆνΈν λ¨μκ° μν 3λΆν νΈλ¦¬ λΆν μ λ°λΌ 3κ°μ λΆνΈν μ λμΌλ‘ κ°λ‘λ‘ λΆν λλ κ²½μ°, λΆν λ 3κ°μ λΆνΈν λ¨μλ μμΈ‘λΆν° κ°κ° 16x8, 16x16 λ° 16x8μ ν¬κΈ°λ₯Ό κ°μ§ μ μλ€. λ€λ₯Έ μλ‘, 32x32 ν¬κΈ°μ λΆνΈν λ¨μκ° μμ§ 3λΆν νΈλ¦¬ λΆν μ λ°λΌ 3κ°μ λΆνΈν λ¨μλ€λ‘ μΈλ‘λ‘ λΆν λλ κ²½μ°, λΆν λ 3κ°μ λΆνΈν λ¨μλ μ’μΈ‘λΆν° κ°κ° 8x32, 16x32 λ° 8x32μ ν¬κΈ°λ₯Ό κ°μ§ μ μλ€. Vertical 3-tree splitting and horizontal 3-tree splitting splitting split the current coding unit into three coding units by splitting the width or height in a ratio of 1:2:1, respectively. For example, when a coding unit of size 16x32 is split horizontally into three coding units according to horizontal 3-tree splitting, the three split coding units may have sizes of 16x8, 16x16, and 16x8 from the top, respectively. As another example, when a coding unit of size 32x32 is split vertically into three coding units according to vertical 3-tree splitting, the three split coding units may have sizes of 8x32, 16x32, and 8x32 from the left, respectively.
νμ¬ λΆνΈν λ¨μκ° λ©ν°νμ νΈλ¦¬ ꡬ쑰μ λ°λΌ λΆν λλμ§λ₯Ό μ§μνκΈ° μνμ¬ μμ λΆν μ 보λ€μ΄ μκ·Έλλ§λ μ μλ€. λ©ν°νμ νΈλ¦¬ ꡬ쑰μ λΆν μ κ΄λ ¨λ λΆν μ 보λ λ©ν°νμ νΈλ¦¬ ꡬ쑰μ λ°λ₯Έ λΆν λ°©ν₯μ΄ μμ§μΈμ§ μ¬λΆλ₯Ό λνλ΄λ νλκ·Έ(mtt_split_cu_vertical_flag) λ° λΆν νμ μ΄ λ°μ΄λ리 λΆν νμ μΈμ§ ν°λ리 λΆν νμ μΈμ§ μ¬λΆλ₯Ό μ§μνκΈ° μν νλκ·Έ(mtt_split_cu_binary_flag)λ₯Ό ν¬ν¨ν μ μλ€. mtt_split_cu_vertical_flagμ κ°μ΄ 0μΈ κ²½μ° νμ¬ λΆνΈν λ¨μμ λ©ν°νμ νΈλ¦¬ ꡬ쑰μ λ°λ₯Έ λΆν λ°©ν₯μ΄ μνμμ κ°λ¦¬ν€λ©°, 1μΈ κ²½μ° λΆν λ°©ν₯μ΄ μμ§μμ κ°λ¦¬ν¬ μ μλ€. mtt_split_cu_binary_flagκ° 0μΈ κ²½μ° νμ¬ λΆνΈν λ¨μμ λ©ν°νμ νΈλ¦¬ ꡬ쑰μ λ°λ₯Έ λΆν μ΄ ν°λ리, μ¦ 3λΆν λ¨μ κ°λ¦¬ν€λ©°, 1μΈ κ²½μ° λ©ν°νμ νΈλ¦¬ ꡬ쑰μ λ°λ₯Έ λΆν μ΄ λ°μ΄λ리, μ¦ 2λΆν λ¨μ κ°λ¦¬ν¬ μ μλ€. λΉλμ€ μΈμ½λ(100)λ λ©ν°νμ νΈλ¦¬ ꡬ쑰μ λ°λΌμ λΆν μ 보(mtt_split_cu_vertical_flag, mtt_split_cu_binary_flag)λ₯Ό λΉνΈμ€νΈλ¦Όμ ν¬ν¨μμΌ λΆνΈννκ³ , λΉλμ€ λμ½λ(200)λ λΉνΈμ€νΈλ¦Όμ ν¬ν¨λ λΆν μ 보(mtt_split_cu_vertical_flag, mtt_split_cu_binary_flag)λ₯Ό νμ±νμ¬ λΆνΈν λ¨μμ λ©ν°νμ νΈλ¦¬ ꡬ쑰λ₯Ό κ²°μ ν μ μλ€.Specified split information may be signaled to indicate whether the current encoding unit is split according to a multi-type tree structure. Split information related to splitting of the multi-type tree structure may include a flag (mtt_split_cu_vertical_flag) indicating whether the splitting direction according to the multi-type tree structure is vertical and a flag (mtt_split_cu_binary_flag) indicating whether the splitting type is a binary split type or a ternary split type. If the value of mtt_split_cu_vertical_flag is 0, it may indicate that the splitting direction according to the multi-type tree structure of the current encoding unit is horizontal, and if it is 1, it may indicate that the splitting direction is vertical. If mtt_split_cu_binary_flag is 0, it may indicate that the splitting according to the multi-type tree structure of the current encoding unit is ternary, that is, split into three, and if it is 1, it may indicate that the splitting according to the multi-type tree structure is binary, that is, split into two. The video encoder (100) encodes the bitstream by including the split information (mtt_split_cu_vertical_flag, mtt_split_cu_binary_flag) according to the multi-type tree structure, and the video decoder (200) can determine the multi-type tree structure of the encoding unit by parsing the split information (mtt_split_cu_vertical_flag, mtt_split_cu_binary_flag) included in the bitstream.
λ 4λ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ, λΈλ‘ νν°μ λ νΈλ¦¬ ꡬ쑰μ μΌ μλ₯Ό λνλΈ λλ©΄μ΄λ€.FIG. 4 is a diagram illustrating an example of a block partitioning tree structure according to one embodiment of the present disclosure.
ν½μ²(400)λ λΆνΈν νΈλ¦¬ λ¨μλ€(CTUs)λ‘ λΆν λκ³ , κ° CTU λ¨μλ‘ λΆν κ΅¬μ‘°κ° κ²°μ λλ€. κ° CTUλ νΈλ¦¬ ꡬ쑰λ₯Ό κΈ°μ΄λ‘ μ¬λ μ 보(cqtdepth)λ₯Ό κ°μ§κ³ κ³μΈ΅μ μΌλ‘ 볡μμ νμ λΆνΈν λ¨μλ€λ‘ λΆν λ μ μλ€. μ¬λ μ 보(cqtdepth)λ CTUλ‘λΆν° νμ¬ λΆνΈν λ¨μλ‘ λΆν λ κΉμ΄λ₯Ό λνλ΄λ λ³μλ‘, CTUμ cqtDepthλ 0μΌλ‘ μ€μ λκ³ , CTUκ° μΏΌλνΈλ¦¬ λΆν λ¨μ λ°λΌμ μμ κ°, μλ₯Ό λ€μ΄ 1μ© cqtdepthκ° μ¦κ°ν μ μλ€. μ¦, CTUλ‘λΆν° μΏΌλνμ νΈλ¦¬ ꡬ쑰μ λ°λ₯Έ λΆν μ λΆν μ μν΄ CUμ κ°λ‘ ν¬κΈ° λ°/λλ μΈλ‘ ν¬κΈ°κ° 1/2λ‘ μ€μ΄λ€ λλ§λ€ λΆν λ λΆνΈν λ¨μμ cqtdepthλ μμ κ°, μλ₯Ό λ€μ΄ 1μ© μ¦κ°ν μ μλ€. A picture (400) is divided into coding tree units (CTUs), and a division structure is determined for each CTU. Each CTU can be hierarchically divided into a plurality of lower coding units with depth information (cqtdepth) based on the tree structure. The depth information (cqtdepth) is a variable indicating the depth divided from the CTU to the current coding unit, and the cqtDepth of the CTU is set to 0, and as the CTU is divided into quadtrees, the cqtdepth may increase by a predetermined value, for example, 1. That is, when dividing from a CTU according to a quad-type tree structure, the cqtdepth of the divided coding unit may increase by a predetermined value, for example, 1, whenever the horizontal size and/or vertical size of the CU is reduced by half due to the division.
λΆνΈν λ¨μκ° λΆν λλμ§ μ¬λΆμ λν μ 보λ CUμ λΆν μ 보λ₯Ό ν΅ν΄ ννλ μ μλ€. λΆν μ 보λ 1λΉνΈμ νλκ·Έ μ λ³΄μΌ μ μλ€. λ μ΄μ λΆν λμ§ μλ λΆνΈν λ¨μλ₯Ό μ μΈνκ³ λͺ¨λ CUλ λΆν μ 보λ₯Ό ν¬ν¨ν μ μλ€. μλ₯Ό λ€λ©΄, λΆν μ 보μ κ°μ΄ μ 1 κ°μ΄λ©΄, CUκ° λΆν λμ§ μμ μ μκ³ , λΆν μ 보μ κ°μ΄ μ 2 κ°μ΄λ©΄, CUκ° λΆν λ μ μλ€. λΆν μ 보λ νμ¬ λΆνΈν λ¨μκ° νμ μ¬λμ λΆνΈν λ¨μλ€λ‘ μΏΌλνμ νΈλ¦¬ ꡬ쑰μ λ°λΌ λΆν λλμ§ μ¬λΆλ₯Ό κ°λ¦¬ν€λ νλκ·Έ(split_qt_flag)μΌ μ μλ€. λΆν μ 보(split_qt_flag)κ° 0μΈ κ²½μ° νμ¬ λΆνΈν λ¨μκ° λΆν λμ§ μμμ κ°λ¦¬ν€κ³ , λΆν μ 보(split_qt_flag)κ° 1μΈ κ²½μ° νμ¬ λΆνΈν λ¨μκ° μΏΌλνμ νΈλ¦¬ ꡬ쑰μ λ°λΌ μν λ° μμ§ λ°©ν₯μΌλ‘ 2λΆν λμ΄ 4κ°μ νμ μ¬λμ λΆνΈν λ¨μλ€λ‘ λΆν λ¨μ κ°λ¦¬ν¬ μ μλ€. Information on whether a coding unit is split can be expressed through split information of the CU. The split information can be 1-bit flag information. All CUs, except for coding units that are no longer split, can include split information. For example, if the value of the split information is the first value, the CU may not be split, and if the value of the split information is the second value, the CU may be split. The split information can be a flag (split_qt_flag) indicating whether the current coding unit is split into coding units of a lower depth according to a quad-type tree structure. If the split information (split_qt_flag) is 0, it can indicate that the current coding unit is not split, and if the split information (split_qt_flag) is 1, it can indicate that the current coding unit is split into two horizontally and vertically according to the quad-type tree structure and split into four coding units of a lower depth.
λ 4λ₯Ό μ°Έμ‘°νμ¬, cqtdepthκ° 0μΈ MxN ν¬κΈ°μ CTU(410)κ° λμλ λ°μ κ°μ΄ μΏΌλνμ νΈλ¦¬ ꡬ쑰μ λ°λΌ λΆν λ κ²½μ° CTU(410) λ° CTU(410)μ ν¬ν¨λ λΆνΈν λ¨μλ€μ λν λΆν μ 보(split_qt_flag)μ λνμ¬ μ€λͺ νλ€. λ§μ½, CTU(410)κ° λ μ΄μ νμ μ¬λμ λΆνΈν λ¨μλ€λ‘ λΆν λμ§ μλ κ²½μ° CTU(410)μ λΆν μ 보(split_qt_flag)λ 0μΌλ‘ μ€μ λλ€. λ 4μ λμλ λ°μ κ°μ λΆν ꡬ쑰λ₯Ό κ°κΈ° μν΄μλ, CTU(410)λ μΏΌλνμ νΈλ¦¬ ꡬ쑰μ λ°λΌ νμμ¬λ(cqtdepth=1)μ 4κ°μ λΆνΈν λ¨μλ€(420a, 420b, 420c, 420d)λ‘ λΆν λκ³ , 4κ°μ λΆνΈν λ¨μλ€ μ€ μ°νμΈ‘μ λΆνΈν λ¨μ(420d)κ° λ€μ νμμ¬λ(cqtdepth=2)μ 4κ°μ λΆνΈν λ¨μλ€(430a, 430b, 430c, 440d)λ‘ λΆν λμ΄μΌ νλ―λ‘, CTU(410)μ λΆν μ 보(split_qt_flag)λ 1λ‘ μ€μ λλ©°, νμμ¬λ(cqtdepth=1)μ 4κ°μ λΆνΈν λ¨μλ€(420a, 420b, 420c, 420d) μ€ μ°νμΈ‘μ λΆνΈν λ¨μ(420d)μ λΆν μ 보(split_qt_flag)λ 1λ‘ μ€μ λκ³ λλ¨Έμ§ λΆνΈν λ¨μλ€(420a 420b, 420c)μ λΆν μ 보(split_qt_flag)λ 0μΌλ‘ μ€μ λλ©°, νμμ¬λ(cqtdepth=2)μ 4κ°μ λΆνΈν λ¨μλ€(430a, 430b, 430c, 440d)μ λ μ΄μ λΆν λμ§ μμΌλ―λ‘ 4κ°μ λΆνΈν λ¨μλ€(430a, 430b, 430c, 440d)μ λΆν μ 보λ 0μΌλ‘ μ€μ λκ±°λ μ‘΄μ¬νμ§ μμ μ μλ€.Referring to FIG. 4, when a CTU (410) of MxN size with cqtdepth of 0 is split according to a quad-type tree structure as shown, split information (split_qt_flag) for the CTU (410) and the coding units included in the CTU (410) will be described. If the CTU (410) is no longer split into coding units of lower depths, the split information (split_qt_flag) of the CTU (410) is set to 0. In order to have a split structure as shown in FIG. 4, the CTU (410) is split into four coding units (420a, 420b, 420c, 420d) of lower depth (cqtdepth=1) according to the quad-type tree structure, and the coding unit (420d) on the lower right among the four coding units must be split again into four coding units (430a, 430b, 430c, 440d) of lower depth (cqtdepth=2), so the split information (split_qt_flag) of the CTU (410) is set to 1, and the split of the coding unit (420d) on the lower right among the four coding units (420a, 420b, 420c, 420d) of lower depth (cqtdepth=1) The information (split_qt_flag) is set to 1, the split information (split_qt_flag) of the remaining coding units (420a 420b, 420c) is set to 0, and since the four coding units (430a, 430b, 430c, 440d) of the lower depth (cqtdepth=2) are no longer split, the split information of the four coding units (430a, 430b, 430c, 440d) may be set to 0 or may not exist.
ννΈ, λ©ν°νμ νΈλ¦¬ λ° μΏΌλνμ νΈλ¦¬ ꡬ쑰μ λ°λ₯Έ λΆν μ λ³΄λ€ μ΄μΈμ, λΈλ‘μ νν°μ λ ꡬ쑰μ κ΄λ ¨νμ¬, λ€μ νλΌλ―Έν°λ€μ΄ HLS(High-Level Syntax)λ‘ SPS(Sequence Parameter Set), PPS(Picture Parameter Set), PH(Picture Header) λ° SH(Slice Header) μ€ μ΄λ νλ μ΄μμ μμΉμ ν¬ν¨λμ΄ λΉλμ€ μΈμ½λ(100)μμ λΉλμ€ λμ½λ(200)λ‘ μκ·Έλλ§ λ μ μλ€. μλ₯Ό λ€μ΄, μΏΌλνΈλ¦¬μ λ£¨νΈ λ Έλμ ν¬κΈ°λ₯Ό λνλ΄λ νλΌλ―Έν°μΈ CTU size, μΏΌλνΈλ¦¬ 리ν(leaf) λ Έλμ μ΅μ κ°μ© ν¬κΈ°λ₯Ό λνλ΄λ νλΌλ―Έν°μΈ MinQTSize, λ°μ΄λ리 νΈλ¦¬ λ£¨νΈ λ Έλμ μ΅λ κ°μ© ν¬κΈ°λ₯Ό λνλ΄λ νλΌλ―Έν°μΈ MaxBTSize, ν°λ리 νΈλ¦¬ λ£¨νΈ λ Έλμ μ΅λ κ°μ© ν¬κΈ°λ₯Ό λνλ΄λ νλΌλ―Έν°μΈ MaxTTSize, μΏΌλνΈλ¦¬ 리ν λ Έλλ‘λΆν° λΆν λλ λ©ν°νμ νΈλ¦¬μ μ΅λ κ°μ© κ³μΈ΅ κΉμ΄(maximum allowed hierarchy depth)λ₯Ό λνλ΄λ νλΌλ―Έν°μΈ MaxMttDepth, λ°μ΄λ리 νΈλ¦¬μ μ΅μ κ°μ© 리ν λ Έλ μ¬μ΄μ¦λ₯Ό λνλ΄λ νλΌλ―Έν°μΈ MinBtSize, ν°λ리 νΈλ¦¬μ μ΅μ κ°μ© 리ν λ Έλ μ¬μ΄μ¦λ₯Ό λνλ΄λ νλΌλ―Έν°μΈ MinTtSize μ€ μ μ΄λ νλκ° νμ΄λ 벨 μ νμ€λ‘ μκ·Έλλ§λ μ μλ€. 4:2:0 ν¬λ‘λ§ ν¬λ©§μ μ΄μ©νλ μΌ μ€μ μμμ, CTU μ¬μ΄μ¦λ 128x128 λ£¨λ§ λΈλ‘ λ° λ£¨λ§ λΈλ‘μ λμνλ λκ°μ 64x64 ν¬λ‘λ§ λΈλ‘μΌλ‘ μ€μ λ μ μλ€. μ΄ κ²½μ°, MinQTSizeλ 16x16μΌλ‘ μ€μ λκ³ , MaxBtSizeλ 128x128λ‘ μ€μ λκ³ , MaxTtSzieλ 64x64λ‘ μ€μ λκ³ , MinBtSize λ° MinTtSizeλ 4x4λ‘, κ·Έλ¦¬κ³ MaxMttDepthλ 4λ‘ μ€μ λ μ μλ€. μΏΌνΈνΈλ¦¬ νν°μ λμ CTUμ μ μ©λμ΄ μΏΌλνΈλ¦¬ 리ν λ Έλλ€μ μμ±ν μ μλ€. μΏΌλνΈλ¦¬ 리ν λ Έλλ 리ν QT λ ΈλλΌκ³ λΆλ¦΄ μ μλ€. μΏΌλνΈλ¦¬ 리ν λ Έλλ€μ 16x16 μ¬μ΄μ¦ (e.g. the MinQTSize)λ‘λΆν° 128x128 μ¬μ΄μ¦(e.g. the CTU size)λ₯Ό κ°μ§ μ μλ€. λ§μ½ 리ν QT λ Έλκ° 128x128μΈ κ²½μ°, μΆκ°μ μΌλ‘ λ°μ΄λ리 νΈλ¦¬/ν°λ리 νΈλ¦¬λ‘ λΆν λμ§ μμ μ μλ€. μ΄λ μ΄ κ²½μ° λΆν λλλΌλ MaxBtsize λ° MaxTtszie (i.e. 64x64)λ₯Ό μ΄κ³ΌνκΈ° λλ¬Έμ΄λ€. μ΄ μΈμ κ²½μ°, 리ν QT λ Έλλ λ©ν°νμ νΈλ¦¬λ‘ μΆκ°μ μΌλ‘ λΆν λ μ μλ€. κ·Έλ¬λ―λ‘, 리ν QT λ Έλλ λ©ν°νμ νΈλ¦¬μ λν λ£¨νΈ λ Έλ(root node)μ΄κ³ , 리ν QT λ Έλλ λ©ν°νμ νΈλ¦¬ λμ€(mttDepth) 0κ°μ κ°μ§ μ μλ€. λ§μ½, λ©ν°νμ νΈλ¦¬ λμ€κ° MaxMttdepth (ex. 4)μ λλ¬ν κ²½μ°, λ μ΄μ μΆκ° λΆν μ κ³ λ €λμ§ μμ μ μλ€. λ§μ½, λ©ν°νμ νΈλ¦¬ λ Έλμ λλΉ(width)κ° MinBtSizeμ κ°κ³ , 2xMinTtSizeλ³΄λ€ μκ±°λ κ°μ λ, λ μ΄μ μΆκ°μ μΈ μν λΆν μ κ³ λ €λμ§ μμ μ μλ€. λ§μ½, λ©ν°νμ νΈλ¦¬ λ Έλμ λμ΄κ° MinBtSizeμ κ°κ³ , 2xMinTtSizeλ³΄λ€ μκ±°λ κ°μ λ, λ μ΄μ μΆκ°μ μΈ μμ§ λΆν μ κ³ λ €λμ§ μμ μ μλ€. μ΄μ κ°μ΄ λΆν μ΄ κ³ λ €λμ§ μλ κ²½μ°, λΆνΈν μ₯μΉλ λΆν μ 보μ μκ·Έλλ§μ μλ΅ν μ μλ€. μ΄λ¬ν κ²½μ° λ³΅νΈν μ₯μΉλ μμ μ κ°μΌλ‘ λΆν μ 보λ₯Ό μ λν μ μλ€.Meanwhile, in addition to the partitioning information according to the multi-type tree and quad-type tree structures, with respect to the partitioning structure of the block, the following parameters may be included in one or more of the positions of the Sequence Parameter Set (SPS), the Picture Parameter Set (PPS), the Picture Header (PH), and the Slice Header (SH) in HLS (High-Level Syntax) and signaled from the video encoder (100) to the video decoder (200). For example, at least one of the following parameters can be signaled in the high-level syntax: CTU size, which is a parameter indicating the size of the root node of the quadtree; MinQTSize, which is a parameter indicating the minimum available size of the quadtree leaf node; MaxBTSize, which is a parameter indicating the maximum available size of the binary tree root node; MaxTTSize, which is a parameter indicating the maximum available size of the ternary tree root node; MaxMttDepth, which is a parameter indicating the maximum allowed hierarchy depth of the multitype tree split from the quadtree leaf node; MinBtSize, which is a parameter indicating the minimum available leaf node size of the binary tree; and MinTtSize, which is a parameter indicating the minimum available leaf node size of the ternary tree. In one embodiment using the 4:2:0 chroma format, the CTU size can be set to a 128x128 luma block and two 64x64 chroma blocks corresponding to the luma block. In this case, MinQTSize can be set to 16x16, MaxBtSize can be set to 128x128, MaxTtSzie can be set to 64x64, MinBtSize and MinTtSize can be set to 4x4, and MaxMttDepth can be set to 4. Quadtree partitioning can be applied to the CTU to generate quadtree leaf nodes. The quadtree leaf nodes can be called leaf QT nodes. The quadtree leaf nodes can have sizes from 16x16 (e.g. the MinQTSize) to 128x128 (e.g. the CTU size). If the leaf QT node is 128x128, it may not be further split into binary trees/ternary trees. This is because even if it is split, it exceeds MaxBtsize and MaxTtszie (i.e. 64x64). In other cases, a leaf QT node can be further split into a multitype tree. Therefore, a leaf QT node is a root node for a multitype tree, and a leaf QT node can have a multitype tree depth (mttDepth) of 0. If the multitype tree depth reaches MaxMttdepth (e.g., 4), no further splits may be considered. If the width of a multitype tree node is equal to MinBtSize and less than or equal to 2xMinTtSize, no further horizontal splits may be considered. If the height of a multitype tree node is equal to MinBtSize and less than or equal to 2xMinTtSize, no further vertical splits may be considered. In cases where splitting is not considered in this way, the encoder may omit signaling of the splitting information. In this case, the decoder may derive the splitting information as a predetermined value.
ννΈ, λ³Έ κ°μμ λ°λ₯Έ λΈλ‘ νν°μ λ ꡬ쑰λ λ 3a λ° λ 3bμ μμλ λ°μ νμ λμ§ μκ³ μΆκ°λκ±°λ λ³κ²½λ μ μλ€. μλ₯Ό λ€μ΄, λ 3a λ° λ 3bμ μμλ λΈλ‘ νν°μ λ λͺ¨λλ₯Ό κ²°ν©νκ±°λ μΌλΆ λΈλ‘ νν°μ λ λͺ¨λλ₯Ό μ μΈνκ³ λΈλ‘ νν°μ λ κ΅¬μ‘°κ° κ²°μ λ μ μλ€.Meanwhile, the block partitioning structure according to the present disclosure is not limited to that illustrated in FIGS. 3A and 3B and may be added or modified. For example, the block partitioning modes illustrated in FIGS. 3A and 3B may be combined, or the block partitioning structure may be determined by excluding some block partitioning modes.
μ μ ν λ°μ κ°μ΄, λΉλμ€ μΈμ½λ(100)λ λ 3a, 3bμ μμλ λ°μ κ°μ λΈλ‘ νν°μ λ ꡬ쑰μ κΈ°μ΄νμ¬, λ μ΄μ λΆν λμ§ μλ 리ν λ ΈλμΈ CUλ₯Ό κ²°μ νκ³ CU λ¨μλ‘ μμΈ‘ λ° λ³νμ μνν μ μλ€. μ΄ν, CU λ¨μμ λν λ³νμ΄ μνλλ λΈλ‘ λ¨μμΈ λ³ν λΈλ‘μ λνμ¬ μ€λͺ νλ€. As described above, the video encoder (100) can determine CUs, which are leaf nodes that are no longer divided, based on the block partitioning structure exemplified in FIGS. 3a and 3b, and perform prediction and transformation on a CU-by-CU basis. Hereinafter, a transformation block, which is a block unit in which transformation is performed on a CU-by-CU basis, will be described.
λ 5λ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ, νμ¬ λΈλ‘(CU λλ μλΈλΈλ‘)μ λ³ν κ³Όμ μ μ΄μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ€μ μΌ μλ₯Ό λνλΈ λλ©΄μ΄λ€.FIG. 5 is a diagram illustrating an example of candidate transformation modes available for a transformation process of a current block (CU or sub-block) according to one embodiment of the present disclosure.
λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯΄λ©΄ λ³ν μ½λ©μ μ μμ μΌλ‘ μ μ©νκΈ° μν λ³ν λΈλ‘μ λͺ¨μ, ν¬κΈ°λ₯Ό 미리 μ νμ¬ λΈλ‘ λ¨μλ‘ λ³ν μ μ© μ¬λΆλ₯Ό κ²°μ νκ³ , λΉλμ€ μΈμ½λ(100) λ° λΉλμ€ λμ½λ(200)μμλ λμΌν λΈλ‘ λ¨μλ‘ λ³ν κ³Όμ μ μνν μ μλ€. μ΄νμ μ€λͺ μμ, λΉλμ€ μΈμ½λ(100)μμ λΈλ‘ λ¨μλ‘ μνλλ λ³ν κ³Όμ λ° λΉλμ€ λμ½λ(200)μμ λΈλ‘ λ¨μλ‘ μνλλ λ³ν κ³Όμ μ μκ³Όμ μΈ μλ³ν κ³Όμ μ λͺ¨λ λ³ν κ³Όμ μΌλ‘ μ§μΉλ μ μλ€.According to one embodiment of the present disclosure, the shape and size of a transformation block for adaptively applying transformation coding are determined in advance to determine whether to apply transformation in units of blocks, and the video encoder (100) and the video decoder (200) can perform the transformation process in units of the same blocks. In the following description, the transformation process performed in units of blocks in the video encoder (100) and the reverse transformation process, which is the reverse process of the transformation process performed in units of blocks in the video decoder (200), may both be referred to as transformation processes.
νμ¬ λΈλ‘μ λ³ν κ³Όμ μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ€μ νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ°μ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λ, νμ¬ λΈλ‘μ μν λ°©ν₯ λ° μμ§ λ°©ν₯ μ€ μ μ΄λ νλμ λ°©ν₯μΌλ‘ μμ λΉμ¨λ‘ λΆν νμ¬ νλλλ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λλ₯Ό ν¬ν¨ν μ μλ€.Candidate transformation modes applicable to the transformation process of the current block may include a transformation mode that uses a transformation block of the same size as the current block, and a transformation mode that uses a transformation block obtained by dividing the current block at a predetermined ratio in at least one of the horizontal and vertical directions.
볡μ κ°μ ν보 λ³ν λͺ¨λλ€μ νμ¬ λΈλ‘μ μν λ°©ν₯ λ° μμ§ λ°©ν₯ μ€ μ μ΄λ νλμ λ°©ν₯μΌλ‘ 1:A (Aλ μμ°μ)μ λΉμ¨λ‘ 2λΆν νκ±°λ, 1:1:B(Bλ μμ°μ)μ λΉμ¨λ‘ 3λΆν νκ±°λ, 1:C:1(Cλ μμ°μ)μ λΉμ¨λ‘ 3λΆν νκ±°λ, D:1:1 (Dλ μμ°μ)μ λΉμ¨λ‘ 3λΆν νκ±°λ, 1:1:1:1μ λΉμ¨λ‘ 4λΆν νμ¬ νλλλ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λλ₯Ό ν¬ν¨ν μ μλ€.The plurality of candidate transformation modes may include a transformation mode that utilizes a transformation block obtained by dividing the current block into two parts in a ratio of 1:A (where A is a natural number) in at least one of the horizontal and vertical directions, into three parts in a ratio of 1:1:B (where B is a natural number), into three parts in a ratio of 1:C:1 (where C is a natural number), into three parts in a ratio of D:1:1 (where D is a natural number), or into four parts in a ratio of 1:1:1:1.
μλ₯Ό λ€μ΄, λ 5λ₯Ό μ°Έμ‘°νλ©΄, 볡μ κ°μ ν보 λ³ν λͺ¨λλ€μ νμ¬ λΈλ‘μ ν(width) λ° λμ΄(height)μ λμΌν νκ³Ό λμ΄λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 1 λ³ν λͺ¨λ(501), νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 2λΆν ν 2κ°μ width x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 2 λ³ν λͺ¨λ(502), νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 4λΆν ν 4κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 3 λ³ν λͺ¨λ(503), νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 1:2:1μ λΉμ¨λ‘ 3λΆν νμ¬ 2κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 4 λ³ν λͺ¨λ(504), νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 1:1:2μ λΉμ¨λ‘ 3λΆν νμ¬ 2κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 5 λ³ν λͺ¨λ(505), νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 2:1:1μ λΉμ¨λ‘ 3λΆν νμ¬ 2κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 6 λ³ν λͺ¨λ(506), νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ 1:2:1μ λΉμ¨λ‘ 3λΆν νμ¬ λΆν λ 2κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° width x height/2μ λΈλ‘μ λ€μ μμ§ λ°©ν₯μΌλ‘ 2λΆν ν 2κ°μ width/2 x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 7 λ³ν λͺ¨λ(507), νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 2λΆν ν 2κ°μ width/2 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 8 λ³ν λͺ¨λ(508), νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 4λΆν ν 4κ°μ width/4 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 9 λ³ν λͺ¨λ(509), νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 1:2:1μ λΉμ¨λ‘ 3λΆν ν 2κ°μ width/4 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width/2 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 10 λ³ν λͺ¨λ(510), νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 1:1:2μ λΉμ¨λ‘ 3λΆν ν 2κ°μ width/4 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width/2 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 11 λ³ν λͺ¨λ(511), νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 2:1:1μ λΉμ¨λ‘ 3λΆν ν 2κ°μ width/4 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° 1κ°μ width/2 x heightμ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘μ μ΄μ©νλ μ 12 λ³ν λͺ¨λ(512), νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ 1:2:1μ λΉμ¨λ‘ 3λΆν νμ¬ λΆν λ 2κ°μ width x height/4μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€ λ° width x height/2μ λΈλ‘μ λ€μ μμ§ λ°©ν₯μΌλ‘ 2λΆν ν 2κ°μ width/2 x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 13 λ³ν λͺ¨λ(513), λ° νμ¬ λΈλ‘μ μν λ°©ν λ° μμ§ λ°©ν₯μΌλ‘ 2λΆν ν 4κ°μ width/2 x height/2μ ν¬κΈ°λ₯Ό κ°λ λ³ν λΈλ‘λ€μ μ΄μ©νλ μ 14 λ³ν λͺ¨λ μ€ μ μ΄λ νλμ λͺ¨λλ₯Ό ν¬ν¨ν μ μλ€.For example, referring to FIG. 5, the plurality of candidate transformation modes include a first transformation mode (501) that uses a transformation block having the same width and height as the width and height of the current block, a second transformation mode (502) that uses two transformation blocks having a size of width x height/2 that divide the current block into two horizontally, a third transformation mode (503) that uses four transformation blocks having a size of width x height/4 that divide the current block into four horizontally, a fourth transformation mode (504) that divides the current block into three horizontally at a ratio of 1:2:1 and uses two transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2, a fifth transformation mode (505) that divides the current block into three horizontally at a ratio of 1:1:2 and uses two transformation blocks having a size of width x height/4 and one transformation block having a size of width x height/2, and a fifth transformation mode (506) that divides the current block into three horizontally at a ratio of 1:1:2 and uses A sixth transformation mode (506) that uses two transformation blocks each having a size of width x height/4 and one transformation block each having a size of width x height/2 by dividing the current block into three blocks at a ratio of 2:1:1 in the horizontal direction, a seventh transformation mode (507) that uses two transformation blocks each having a size of width x height/4 and two transformation blocks each having a size of width/2 x height/2 obtained by dividing the current block into three blocks at a ratio of 1:2:1 in the horizontal direction, and two transformation blocks each having a size of width x height/2 obtained by dividing the width x height/2 block into two blocks again in the vertical direction, an eighth transformation mode (508) that uses two transformation blocks each having a size of width/2 x height obtained by dividing the current block into two blocks at a ratio of 1:2:1 in the vertical direction, a ninth transformation mode (509) that uses four transformation blocks each having a size of width/4 x height obtained by dividing the current block into four blocks at a ratio of 1:2:1 in the vertical direction, and one transformation block each having a size of width/2 x height obtained by dividing the current block into three blocks at a ratio of 1:2:1 in the vertical direction. A tenth transformation mode (510) using a transformation block having a size of height, an eleventh transformation mode (511) using two transformation blocks having a size of width/4 x height which divide the current block into three parts in a ratio of 1:1:2 in the vertical direction and one transformation block having a size of width/2 x height, a twelfth transformation mode (512) using two transformation blocks having a size of width/4 x height which divide the current block into three parts in a ratio of 2:1:1 in the vertical direction and one transformation block having a size of width/2 x height, a thirteenth transformation mode (513) using two transformation blocks having a size of width x height/4 which divide the current block into three parts in a ratio of 1:2:1 in the vertical direction and two transformation blocks having a size of width/2 x height/2 which divide the width x height/2 block into two parts in the vertical direction again, and a thirteenth transformation mode (514) using four transformation blocks having a size of width/2 x height/2 which divide the current block into two parts in the horizontal and vertical directions. It may include at least one of the 14 transformation modes that utilize transformation blocks having.
λ³Έ κ°μμ μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ λ³ν κ³Όμ μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ λ 5μ μμλ μ 1 λ³ν λͺ¨λ λ΄μ§ μ 14 λ³ν λͺ¨λμ μ λΆ λλ μ΄ μ€ μΌλΆμ λ³ν λͺ¨λλ§μ μ ννμ¬ μ μμ μΌλ‘ ꡬμ±λ μ μλ€. λν, λ 5μ μμλ λ°μ νμ λμ§ μκ³ ν보 λ³ν λͺ¨λλ‘μ νμ¬ λΈλ‘μ λ€λ₯Έ λͺ¨μκ³Ό ν¬κΈ°λ‘ λΆν ν λ³ν λͺ¨λκ° ν¬ν¨λ μ μλ€.In one embodiment of the present disclosure, the candidate transformation modes applicable to the transformation process of the current block may be adaptively configured by selecting only some or all of the first transformation mode to the fourteenth transformation mode illustrated in FIG. 5. Furthermore, the candidate transformation modes are not limited to those illustrated in FIG. 5, and transformation modes that divide the current block into different shapes and sizes may be included.
κ° ν보 λ³ν λͺ¨λμ λ°λΌ λΆν λ λΈλ‘ λ¨μλ‘ DCT, DST λ±μ λ€μν λ³ν κ³Όμ μ΄ μνλ μ μλ€. λν, κ° ν보 λ³ν λͺ¨λμ λ°λΌ λΆν λ λΈλ‘ λ¨μλ‘ λ³ν κ³Όμ μ΄ μ μ©λμ§ μλ λ³ν μ€ν΅(skip)μ΄ μ μ©λ μ μλ€.Depending on each candidate transformation mode, various transformation processes, such as DCT and DST, can be performed on a partitioned block basis. Additionally, a transformation skip, in which a transformation process is not applied to each partitioned block basis, may be applied depending on each candidate transformation mode.
λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ ν보 λ³ν λͺ¨λλ μνμ€ λ¨μ, GOPλ¨μ, Picture λ¨μ, Slice λ¨μ, Tile λ¨μ, CTUλ¨μ, CUλ¨μ, TUλ¨μλ‘ μ λλ μ μλ€. ν보 λ³ν λͺ¨λ κ²°μ μ, μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉ μ€ μ μ΄λ νλμ μ 보(μ΄ν, "λΆκ° μ 보"λΌ ν¨)μ κΈ°μ΄νμ¬ μμμ μΌλ‘ κ²°μ λ μ μλ€. μλ₯Ό λ€μ΄, μ μ ν λΆκ° μ λ³΄λ€ μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬, μ μ ν λ 5μ μμλ λ°μ κ°μ 14κ°μ ν보 λ³ν λͺ¨λλ€ μ€ μ μ΄λ νλμ ν보 λ³ν λͺ¨λκ° μ λ(derive)νμ¬ νμ¬ λ³ν λΈλ‘μ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λ μ μλ€. λΉλμ€ μΈμ½λ(100) λ° λΉλμ€ λμ½λ(200)λ λμΌν λ°©μμΌλ‘ λΆκ° μ 보μ κΈ°μ΄νμ¬, νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ₯Ό μ λν μ μλ€.A candidate transformation mode according to an embodiment of the present disclosure may be derived in units of sequence, GOP, Picture, Slice, Tile, CTU, CU, and TU. When determining a candidate transformation mode, at least one candidate transformation mode may be implicitly determined based on at least one piece of information (hereinafter, referred to as βadditional informationβ) from among current frame information, slice information, partitioning information of a current block, a size of a current block, a shape of a current block, prediction mode information of a parent block including the current block, a size of a parent block, a shape of a parent block, prediction mode information of a parent block, transformation mode information of a neighboring block of the current block, a maximum value of a transformation coefficient included in the current block, and a position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order. For example, based on at least one of the aforementioned additional information, at least one of the 14 candidate transformation modes, as illustrated in FIG. 5, may be derived to configure the candidate transformation mode of the current transformation block. The video encoder (100) and the video decoder (200) may derive candidate transformation modes applicable to the current block based on the additional information in the same manner.
λν, λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ ν보 λ³ν λͺ¨λλ μνμ€ λ¨μ, GOPλ¨μ, Picture λ¨μ, Slice λ¨μ, Tile λ¨μ, CTUλ¨μ, CUλ¨μ, TUλ¨μλ‘ μμμ μΌλ‘ μ€μ λ μ μλ€. λΉλμ€ μΈμ½λ(100) λ° λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ₯Ό μμμ μΌλ‘ κ²°μ νκ³ , κ²°μ λ ν보 λ³ν λͺ¨λλ₯Ό μ΄μ©νμ¬ νμ¬ λΈλ‘μ λν λ³ν μ²λ¦¬λ₯Ό μνν μ μλ€. λν, λΉλμ€ μΈμ½λ(100) λ° λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ₯Ό μ¬μ μ 미리 λμΌνκ² μ€μ νκ³ , μ¬μ μ μ€μ λ ν보 λ³ν λͺ¨λλ₯Ό μ΄μ©νμ¬ νμ¬ λΈλ‘μ λν λ³ν μ²λ¦¬λ₯Ό μνν μ μλ€. In addition, the candidate transformation mode according to one embodiment of the present disclosure can be arbitrarily set in units of sequence, GOP, Picture, Slice, Tile, CTU, CU, and TU. The video encoder (100) and the video decoder (200) can arbitrarily determine a candidate transformation mode applicable to the current block and perform transformation processing on the current block using the determined candidate transformation mode. In addition, the video encoder (100) and the video decoder (200) can set the candidate transformation modes applicable to the current block to be identical in advance and perform transformation processing on the current block using the candidate transformation mode set in advance.
μ΄ν, νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ₯Ό μ€μ νλ λ°©μμ λν μ€μμλ€μ λνμ¬ μ€λͺ νλ€.Below, embodiments of a method for setting a candidate transformation mode applicable to the current block are described.
νμ¬ λΈλ‘μ΄ μν νλ μμ μ νμ΄λ μ¬λΌμ΄μ€ μ νμ λ°λΌμ μμΈ‘ λ°©μμ΄ μ°¨μ΄κ° μμΌλ―λ‘ λ³ν νΉμ±μ΄ λ¬λΌμ§ μ μλ€. λ°λΌμ, μΌ μ€μμμ μμ΄μ, I νλ μμ΄λ I μ¬λΌμ΄μ€μ μν νμ¬ λΈλ‘μλ μ μ ν λ 5μ μμλ 14κ°μ ν보 λ³ν λͺ¨λλ€ λͺ¨λκ° νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λκ³ , P/B νλ μμ΄λ P/B μ¬λΌμ΄μ€μ μν νμ¬ λΈλ‘μλ λ 5μ μμλ 14κ°μ ν보 λ³ν λͺ¨λλ€ μ€ μΌλΆλ§μ΄ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λ μ μλ€. μλ₯Ό λ€μ΄, I-νλ μ(I-μ¬λΌμ΄μ€)μ μν νμ¬ λΈλ‘μλ λ 5μ 14κ°μ ν보 λ³ν λͺ¨λλ₯Ό ν¬ν¨νλ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λκ³ , P/B-νλ μ(P/B-μ¬λΌμ΄μ€)μ μν νμ¬ λΈλ‘μλ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)κ° ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λ μ μλ€. μ΄μ νμ λμ§ μκ³ , νλ μμ΄λ μ¬λΌμ΄μ€ μ ν μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λμ ν¬ν¨λλ λ³ν λͺ¨λλ λ³κ²½λ μ μλ€.Since the prediction method may differ depending on the type of frame or slice to which the current block belongs, the transformation characteristics may vary. Therefore, in one embodiment, the current block belonging to an I-frame or an I-slice may be configured with all of the 14 candidate transformation modes exemplified in FIG. 5 as candidate transformation modes applicable to the current block, and the current block belonging to a P/B frame or a P/B slice may be configured with only some of the 14 candidate transformation modes exemplified in FIG. 5 as candidate transformation modes applicable to the current block. For example, the current block belonging to an I-frame (I-slice) may be configured with candidate transformation modes including the 14 candidate transformation modes of FIG. 5, and the current block belonging to a P/B-frame (P/B-slice) may be configured with transformation modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) as candidate transformation modes. Without being limited thereto, the transformation modes included in the candidate transformation modes applicable to the current block may be changed based on frame or slice type information.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보μ κΈ°μ΄νμ¬, νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λκ° μ μμ μΌλ‘ ꡬμ±λ μ μλ€. μλ₯Ό λ€μ΄, μΈνΈλΌ μμΈ‘λ νμ¬ λΈλ‘μλ λ 5μ 14κ°μ ν보 λ³ν λͺ¨λλ€ μ€ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514)λ‘ κ΅¬μ±λκ³ , μΈν° μμΈ‘λ νμ¬ λΈλ‘μλ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)κ° ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λ μ μλ€. μ΄μ νμ λμ§ μκ³ , μμΈ‘ λͺ¨λμ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λμ ν¬ν¨λλ λ³ν λͺ¨λλ λ³κ²½λ μ μλ€.In one embodiment, candidate transformation modes applicable to the current block may be adaptively configured based on prediction mode information of the current block. For example, the intra-predicted current block may be configured with transformation modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) among the 14 candidate transformation modes of FIG. 5, and the inter-predicted current block may be configured with transformation modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) as candidate transformation modes. However, the present invention is not limited thereto, and the transformation modes included in the candidate transformation modes applicable to the current block may be changed based on the prediction mode.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ ν¬κΈ° μ 보μ κΈ°μ΄νμ¬, νμ¬ λΈλ‘μ ν¬κΈ°κ° μμ ν¬κΈ°λ₯Ό μ΄κ³Όνλ κ²½μ°μλ λ 5μ μμλ 14κ°μ ν보 λ³ν λͺ¨λλ€ μ€ μΌλΆλ§μ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λκ³ , νμ¬ λΈλ‘μ ν¬κΈ°κ° μμ ν¬κΈ°λ₯Ό μ΄νμΈ κ²½μ°μλ λ 5μ μμλ 14κ°μ ν보 λ³ν λͺ¨λλ€ μ€ μΌλΆλ§μ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λ μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ΄ 32x32λ₯Ό μ΄κ³Όνλ κ²½μ°(νκ³Ό λμ΄κ° λͺ¨λ 32λ₯Ό μ΄κ³Όνλ κ²½μ°) 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)κ° ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λκ³ , νμ¬ λΈλ‘μ΄ 32x32 μ΄νμΈ κ²½μ°(νκ³Ό λμ΄κ° λͺ¨λ 32 μ΄νμΈ κ²½μ°) 14κ°μ λͺ¨λλ₯Ό λͺ¨λ μ§μνλλ‘ μ€μ ν μ μλ€. λ λ€λ₯Έ μλ‘μ, νμ¬ λΈλ‘μ ν¬κΈ° λμ μ νμ¬ λΈλ‘μ νκ³Ό λμ΄ μ€ μ΅λκ° λλ μ΅μκ°κ³Ό μμ μκ³ κΈΈμ΄μ λΉκ΅ κ²°κ³Όμ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λκ° μ μμ μΌλ‘ ꡬμ±λ μλ μλ€.In one embodiment, based on the size information of the current block, if the size of the current block exceeds a predetermined size, only some of the 14 candidate transformation modes illustrated in FIG. 5 may be configured as candidate transformation modes applicable to the current block, and if the size of the current block is less than or equal to the predetermined size, only some of the 14 candidate transformation modes illustrated in FIG. 5 may be configured as candidate transformation modes applicable to the current block. For example, if the current block exceeds 32x32 (both the width and the height exceed 32), transformation modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) may be configured as candidate transformation modes, and if the current block is less than or equal to 32x32 (both the width and the height are less than or equal to 32), all 14 modes may be set to be supported. As another example, the candidate transformation modes applicable to the current block may be adaptively configured based on the result of comparing the maximum or minimum of the width and height of the current block with a predetermined threshold length instead of the size of the current block.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ λͺ¨μμ κΈ°μ΄νμ¬, νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λκ° μ μμ μΌλ‘ ꡬμ±λ μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ ν(width)μ΄ λμ΄(height)λ³΄λ€ μμ λ°°μ¨ μ΄μ ν΄ κ²½μ°, μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λΈλ‘ νμ μ΄ μ νλ κ°λ₯μ±μ΄ λλ€. μ΄μ κ°μ΄, νμ¬ λΈλ‘μ νκ³Ό λμ΄ μ€ μ΄λ ν λ³μ κΈΈμ΄κ° λ€λ₯Έ ν λ³μ κΈΈμ΄λ³΄λ€ μμ λ°°μ¨ μ΄μ ν° κ²½μ°, μν λ°©ν₯ λΆν λλ μμ§ λ°©ν₯ λΆν μ€ λ μ ν©ν ννμ λ³ν λΈλ‘μ μ§μνλ λ³ν λͺ¨λκ° ν보 λ³ν λͺ¨λμ ν¬ν¨λ μ μλ€. μ¦, νμ¬ λΈλ‘μ νμ΄ λμ΄λ³΄λ€ μμ λ°°μ¨ μ΄μ ν° κ²½μ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ λΆν νλ λ³ν λΈλ‘μ μ§μνλ λ³ν λͺ¨λκ° ν¬ν¨λλλ‘ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λλ©°, νμ¬ λΈλ‘μ λμ΄κ° ν λ³΄λ€ μμ λ°°μ¨ μ΄μ ν° κ²½μ° νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ λΆν νλ λ³ν λΈλ‘μ μ§μνλ λ³ν λͺ¨λκ° ν¬ν¨λλλ‘ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λ μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ νμ΄ λμ΄λ³΄λ€ 2λ°° μ΄μ ν΄ κ²½μ°, μμ§ λ°©ν₯ λΆν μ μ ν©ν ν보 λ³ν λͺ¨λλ€μ μ€μ¬μΌλ‘ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λμ΄, 1, 8, 9, 10, 11, 12, 13, 14λ² λ³ν λͺ¨λ(501, 508, 509, 510, 511, 512, 513, 514)λ€μ΄ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ€λ‘ ꡬμ±λκ³ , νμ¬ λΈλ‘μ λμ΄κ° νλ³΄λ€ 2λ°° μ΄μ ν΄ κ²½μ°, μν λ°©ν₯ λΆν μ μ ν©ν ν보 λ³ν λͺ¨λλ€μ μ€μ¬μΌλ‘ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λμ΄, 1, 2, 3, 4, 5, 6, 7, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 505, 506, 507, 514)λ€μ΄ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ€λ‘ ꡬμ±λ μ μλ€. 1, 14λ² λ³ν λͺ¨λ(501, 514)λ λν΄νΈ λ³ν λͺ¨λλ‘ ν보 λ³ν λͺ¨λμ κΈ°λ³Έμ μΌλ‘ ν¬ν¨λ μ μλ€. μ΄μ νμ λμ§ μκ³ , νμ¬ λΈλ‘μ νκ³Ό λμ΄μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λμ ν¬ν¨λλ λ³ν λͺ¨λλ λ³κ²½λ μ μλ€.In one embodiment, candidate transformation modes applicable to the current block may be adaptively configured based on the shape of the current block. For example, if the width of the current block is greater than the height by a predetermined factor or more, a transformation block type that is vertically divided is likely to be selected. In this way, if the length of one side of the width and the height of the current block is greater than the length of the other side by a predetermined factor or more, a transformation mode that supports a more suitable form of transformation block among horizontal division or vertical division may be included in the candidate transformation modes. That is, all candidate transformations may be configured to include a transformation mode that supports a transformation block that vertically divides the current block when the width of the current block is greater than the height by a predetermined factor or more, and all candidate transformations may be configured to include a transformation mode that supports a transformation block that horizontally divides the current block when the height of the current block is greater than the width by a predetermined factor or more. For example, if the width of the current block is more than twice the height, candidate transformation modes are configured around candidate transformation modes suitable for vertical division, so that transformation modes 1, 8, 9, 10, 11, 12, 13, and 14 (501, 508, 509, 510, 511, 512, 513, and 514) are configured as candidate transformation modes applicable to the current block, and if the height of the current block is more than twice the width, candidate transformation modes are configured around candidate transformation modes suitable for horizontal division, so that transformation modes 1, 2, 3, 4, 5, 6, 7, and 14 (501, 502, 503, 504, 505, 506, 507, and 514) are configured as candidate transformation modes applicable to the current block. Conversion modes 1 and 14 (501, 514) may be included as default conversion modes in the candidate conversion modes. However, the conversion modes included in the candidate conversion modes applicable to the current block may be changed based on the width and height of the current block.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ΄ μν λΆλͺ¨ λΈλ‘μ λΆν μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λκ° κ²°μ λ μ μλ€. μ μ ν λ 3a λ° λ 3bμ μμλ λ°μ κ°μ΄, λ μ΄μ λΆν λμ§ μλ CUμΈ νμ¬ λΈλ‘μ΄ μν μμ μ¬λμ λΆλͺ¨ λΈλ‘μ λΆν μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λκ° κ²°μ λ μ μλ€. μλ₯Ό λ€μ΄, λΆλͺ¨ λΈλ‘μ΄ μμ§ λ°©ν₯μΌλ‘ λΆν λμμ κ²½μ°, μμ§ λ°©ν₯ λΆν μ μ ν©ν ν보 λ³ν λͺ¨λλ€μ μ€μ¬μΌλ‘ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λμ΄, 1, 8, 9, 10, 11, 12, 13, 14λ² λ³ν λͺ¨λ(501, 508, 509, 510, 511, 512, 513, 514)λ€μ΄ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ€λ‘ ꡬμ±λκ³ , λΆλͺ¨ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘ λΆν λμμ κ²½μ°, μν λ°©ν₯ λΆν μ μ ν©ν ν보 λ³ν λͺ¨λλ€μ μ€μ¬μΌλ‘ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λμ΄, 1, 2, 3, 4, 5, 6, 7, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 505, 506, 507, 514)λ€μ΄ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ€λ‘ ꡬμ±λ μ μλ€. μ΄μ νμ λμ§ μκ³ , νμ¬ λΈλ‘μ΄ μν λΆλͺ¨ λΈλ‘μ λΆν μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λμ ν¬ν¨λλ λ³ν λͺ¨λλ λ³κ²½λ μ μλ€.In one embodiment, a candidate transformation mode applicable to the current block may be determined based on the segmentation information of the parent block to which the current block belongs. As illustrated in FIGS. 3A and 3B described above, a candidate transformation mode applicable to the current block may be determined based on the segmentation information of the parent block of a higher depth to which the current block belongs, which is a CU that is no longer segmented. For example, if the parent block is split in the vertical direction, the candidate transformation modes are configured around candidate transformation modes suitable for vertical division, so that transformation modes 1, 8, 9, 10, 11, 12, 13, and 14 (501, 508, 509, 510, 511, 512, 513, and 514) are configured as candidate transformation modes applicable to the current block, and if the parent block is split in the horizontal direction, the candidate transformation modes are configured around candidate transformation modes suitable for horizontal division, so that transformation modes 1, 2, 3, 4, 5, 6, 7, and 14 (501, 502, 503, 504, 505, 506, 507, and 514) are configured as candidate transformation modes applicable to the current block. Without being limited thereto, the transformation mode included in the candidate transformation modes applicable to the current block may be changed based on the partitioning information of the parent block to which the current block belongs.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ μ μ©λ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λκ° κ²°μ λ μ μλ€. μ£Όλ³ λΈλ‘μΌλ‘μ, νμ¬ λΈλ‘μ μ’μΈ‘, μμΈ‘, μ°μμΈ‘, μ’νμΈ‘ μμΉμ μ£Όλ³ λΈλ‘λ€ μ€ μ μ΄λ νλμ μμΉμ μ£Όλ³ λΈλ‘λ€μ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ ν보 λ³ν λͺ¨λκ° κ²°μ λ μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ μ’μΈ‘κ³Ό μμΈ‘μ μμΉνλ λΈλ‘μμ μμ§μΌλ‘ λΆν λλ λͺ¨λκ° μ£Όλ‘ νμ©λμμ κ²½μ° μμ§ λ°©ν₯ λΆν μ μ ν©ν λͺ¨λλ₯Ό μμ£Όλ‘ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λμ΄ 1, 8, 9, 10, 11, 12, 13, 14λ² λ³ν λͺ¨λ(501, 508, 509, 510, 511, 512, 513, 514)λ€μ΄ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ€λ‘ ꡬμ±λκ³ , νμ¬ λΈλ‘μ μ’μΈ‘κ³Ό μμΈ‘μ μμΉνλ λΈλ‘μμ μνμΌλ‘ λΆν λλ λͺ¨λκ° μ£Όλ‘ νμ©λμμ κ²½μ° μν λ°©ν₯ λΆν μ μ ν©ν λͺ¨λλ₯Ό μμ£Όλ‘ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λμ΄ 1, 2, 3, 4, 5, 6, 7, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 505, 506, 507, 514)λ€μ΄ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ€λ‘ ꡬμ±λ μ μλ€. μ΄μ νμ λμ§ μκ³ , νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ μ μ©λ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λμ ν¬ν¨λλ λ³ν λͺ¨λλ λ³κ²½λ μ μλ€.In one embodiment, a candidate transformation mode applicable to the current block may be determined based on transformation mode information applied to neighboring blocks of the current block. As neighboring blocks, the candidate transformation mode may be determined based on transformation mode information of at least one neighboring block among neighboring blocks located to the left, above, upper right, and lower left of the current block. For example, if a mode that vertically divides blocks located on the left and upper sides of the current block is mainly utilized, candidate transformation modes are configured mainly with modes suitable for vertical division, so that transformation modes 1, 8, 9, 10, 11, 12, 13, and 14 (501, 508, 509, 510, 511, 512, 513, and 514) are configured as candidate transformation modes applicable to the current block, and if a mode that horizontally divides blocks located on the left and upper sides of the current block is mainly utilized, candidate transformation modes are configured mainly with modes suitable for horizontal division, so that transformation modes 1, 2, 3, 4, 5, 6, 7, and 14 (501, 502, 503, 504, 505, 506, 507, and 514) are configured as candidate transformation modes applicable to the current block. Without being limited thereto, the transformation mode included in the candidate transformation modes applicable to the current block may be changed based on the transformation mode information applied to the surrounding blocks of the current block.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ μλ³νμ μ΄μ©κ°λ₯ν μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ μκ·Έλλ§λλ λ³ν λͺ¨λ μ§μ μ 보μ κΈ°μ΄νμ¬ λͺ μμ μΌλ‘(explicitly) κ²°μ λ μ μλ€. λΉλμ€ μΈμ½λ(100)λ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ SPS(Sequence Parameter Set), PPS(Picture Parameter Set), APS(Adaptive Parameter Set), μ¬λΌμ΄μ€ ν€λ, CTU, CU, TU μ νμ€ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ λ³ν λͺ¨λ μ§μ μ 보λ₯Ό ν¬ν¨μμΌ μ μ‘νκ³ , λΉλμ€ λμ½λ(200)λ ν΄λΉ λ³ν λͺ¨λ μ§μ μ 보λ‘λΆν° λ¨μ λ³λ‘ μ§μλλ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€. μλ₯Ό λ€μ΄, μνμ€ λ¨μλ‘ λ³ν λͺ¨λλ₯Ό μ μμ μΌλ‘ μ€μ νλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ SPSμ λ³ν λͺ¨λ μ§μ μ 보λ₯Ό ν¬ν¨μν€κ³ , λΉλμ€ λμ½λ(200)λ ν΄λΉ λ³ν λͺ¨λ μ§μ μ 보λ‘λΆν° μνμ€ λ¨μλ‘ μ§μλλ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€.In one embodiment, at least one candidate transformation mode available for inverse transformation of a current block can be explicitly determined based on transformation mode support information signaled for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit. The video encoder (100) includes transformation mode support information for at least one unit among a sequence parameter set (SPS), a picture parameter set (PPS), an adaptive parameter set (APS), a slice header, a CTU, a CU, and a TU syntax and transmits the transformation mode support information for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and the video decoder (200) can determine a candidate transformation mode supported for each unit from the corresponding transformation mode support information. For example, in case of adaptively setting a transformation mode for each sequence unit, the video encoder (100) includes transformation mode support information in an SPS, and the video decoder (200) can determine a candidate transformation mode supported for each sequence unit from the corresponding transformation mode support information.
μ μ¬νκ², μ¬λΌμ΄μ€, CTU, CU, TU λ±μ λΈλ‘ λ¨μλ‘ λ³ν λͺ¨λλ₯Ό μ μμ μΌλ‘ μ€μ νλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ SPSμ λ³ν λͺ¨λ μ§μ μ 보λ₯Ό ν¬ν¨μν€κ³ , λΉλμ€ λμ½λ(200)λ ν΄λΉ λ³ν λͺ¨λ μ§μ μ 보λ‘λΆν° μ¬λΌμ΄μ€, CTU, CU, TU λ±μ λΈλ‘ λ¨μ λ³λ‘ μ§μλλ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€.Similarly, when adaptively setting the transformation mode in block units such as slices, CTUs, CUs, and TUs, the video encoder (100) includes transformation mode support information in the SPS, and the video decoder (200) can determine a candidate transformation mode supported for each block unit such as slices, CTUs, CUs, and TUs from the transformation mode support information.
λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉ μ€ μ μ΄λ νλμ μ 보μ κ°μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λͺ μμ μΌλ‘ ꡬμ±λ μ μλ€. μ¦, μ μ ν λΆκ° μ 보 μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬ ν보 λ³ν λͺ¨λλ₯Ό ꡬμ±ν κ²μΈμ§μ λν νλ μ΄μμ μ λ³΄κ° λͺ μμ μΌλ‘ SPS, PPS, APS, μ¬λΌμ΄μ€ ν€λ, CTU, CU, TU μ νμ€μ ν¬ν¨λ μ μλ€. μλ₯Ό λ€μ΄, νλ μμ΄λ μ¬λΌμ΄μ€ μ νλ³λ‘ ν보 λ³ν λͺ¨λλ₯Ό λ€λ₯΄κ² ꡬμ±νκ³ μ νλ κ²½μ°, SPS, PPS, APS, μ¬λΌμ΄μ€ ν€λ μ€ μ μ΄λ νλμ νλ μμ΄λ μ¬λΌμ΄μ€ μ ν λ³λ‘ ν보 λ³ν λͺ¨λκ° λ€λ₯΄κ² ꡬμ±λ¨μ κ°λ¦¬ν€λ μ λ³΄κ° λͺ μμ μΌλ‘ ν¬ν¨λ μ μλ€. λ§μ½, λΉλμ€ μΈμ½λ(100)λ νλ μμ΄λ μ¬λΌμ΄μ€ μ ν λ³λ‘ ν보 λ³ν λͺ¨λκ° λ€λ₯΄κ² ꡬμ±λλ κ²½μ°, νλ μμ΄λ μ¬λΌμ΄μ€ μ ν λ³λ‘ ν보 λ³ν λͺ¨λκ° λ€λ₯΄κ² ꡬμ±λ¨μ κ°λ¦¬ν€λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ ν¬ν¨μμΌ μ μ‘νκ³ , λΉλμ€ λμ½λ(200)λ ν΄λΉ μ 보λ‘λΆν° νλ μμ΄λ μ¬λΌμ΄μ€ μ ν λ³λ‘ ν보 λ³ν λͺ¨λκ° λ€λ₯΄κ² ꡬμ±λλμ§ μ¬λΆλ₯Ό νλ¨ν μ μλ€. λ§μ½, λΉνΈμ€νΈλ¦Όμ ν¬ν¨λ μ λ³΄κ° νλ μμ΄λ μ¬λΌμ΄μ€ μ ν λ³λ‘ ν보 λ³ν λͺ¨λκ° λ€λ₯΄κ² ꡬμ±λ¨μ κ°λ¦¬ν€λ κ²½μ°, λΉλμ€ λμ½λ(200)λ νλ μμ΄λ μ¬λΌμ΄μ€ μ νλ³λ‘ ν보 λ³ν λͺ¨λλ₯Ό λ€λ₯΄κ² ꡬμ±ν μ μλ€. μλ₯Ό λ€μ΄, λΉνΈμ€νΈλ¦Όμ λͺ μμ μΌλ‘ μκ·Έλλ§λλ μ λ³΄κ° νλ μμ΄λ μ¬λΌμ΄μ€ μ ν λ³λ‘ ν보 λ³ν λͺ¨λκ° λ€λ₯΄κ² ꡬμ±λ¨μ κ°λ¦¬ν€λ κ²½μ°, λΉλμ€ λμ½λ(200)λ I νλ μμ΄λ I μ¬λΌμ΄μ€μ μν νμ¬ λΈλ‘μλ μ μ ν λ 5μ μμλ 14κ°μ ν보 λ³ν λͺ¨λλ€ λͺ¨λκ° νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±νκ³ , P/B νλ μμ΄λ P/B μ¬λΌμ΄μ€μ μν νμ¬ λΈλ‘μλ λ 5μ μμλ 14κ°μ ν보 λ³ν λͺ¨λλ€ μ€ μΌλΆλ§μ΄ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±ν μ μλ€.According to one embodiment of the present disclosure, at least one candidate transformation mode may be explicitly configured based on additional information, such as at least one of current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of a neighboring block of the current block, the maximum value of a transformation coefficient included in the current block, and the position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order. That is, one or more pieces of information regarding whether to configure a candidate transformation mode based on at least one of the aforementioned additional information may be explicitly included in the SPS, PPS, APS, slice header, CTU, CU, and TU syntax. For example, in case it is desired to configure the candidate transformation mode differently for each frame or slice type, information indicating that the candidate transformation mode is configured differently for each frame or slice type may be explicitly included in at least one of the SPS, PPS, APS, and slice header. If the candidate transformation mode is configured differently for each frame or slice type, the video encoder (100) transmits information indicating that the candidate transformation mode is configured differently for each frame or slice type by including it in the bitstream, and the video decoder (200) can determine whether the candidate transformation mode is configured differently for each frame or slice type from the information. If the information included in the bitstream indicates that the candidate transformation mode is configured differently for each frame or slice type, the video decoder (200) can configure the candidate transformation mode differently for each frame or slice type. For example, if the information explicitly signaled in the bitstream indicates that the candidate transformation mode is configured differently for each frame or slice type, the video decoder (200) can configure all of the 14 candidate transformation modes illustrated in FIG. 5 as candidate transformation modes applicable to the current block in the current block belonging to the I frame or I slice, and configure only some of the 14 candidate transformation modes illustrated in FIG. 5 as candidate transformation modes applicable to the current block in the current block belonging to the P/B frame or P/B slice.
μ΄μ κ°μ΄, μ μ ν λΆκ° μ 보 μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μ μ©λλ ν보 λ³ν λͺ¨λλ₯Ό μ μμ μΌλ‘ ꡬμ±ν μ§ μ¬λΆλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° SPS, PPS, APS, μ¬λΌμ΄μ€ ν€λ, CTU, CU, TU μ νμ€μ ν¬ν¨λ μ μλ€.In this way, information indicating whether to adaptively configure a candidate transformation mode to be applied to the current block based on at least one of the aforementioned additional information may be included in the SPS, PPS, APS, slice header, CTU, CU, and TU syntax.
λ€λ₯Έ μλ‘μ, μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ SPS, PPS, APS, μ¬λΌμ΄μ€ ν€λ, CTU, CU, TU μ νμ€ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ μ§μλλ ν보 λ³ν λͺ¨λ μ λ³΄κ° λͺ μμ μΌλ‘ μκ·Έλλ§λ μ μλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μ μ ν λ 5μ ν보 λ³ν λͺ¨λλ€ μ€ νμ¬ μνμ€ λ¨μμ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)λ§μ μ§μ λͺ¨λλ‘ μ€μ νλ κ²½μ°, SPSμ νμ¬ μνμ€ λ¨μμ μ μ©λλ ν보 λ³ν λͺ¨λμΈ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)λ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό ν¬ν¨ν μ μλ€. μμ λ°μ΄ν° λ¨μ λ³λ‘ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ€μ μ‘°ν©λ€μ μ¬μ μ ν μ΄λΈμ μ리먼νΈλ‘ μ€μ λκ³ , μ¬μ μ μ€μ λ ν μ΄λΈμ μλ¦¬λ¨ΌνΈ μ€ νλλ₯Ό κ°λ¦¬ν€λ μΈλ±μ€ μ λ³΄κ° ν보 λ³ν λͺ¨λ μ 보λ‘μ μ΄μ©λ μ μλ€. μ΄μ κ°μ΄, λΉλμ€ μΈμ½λ(100)λ μμ λ°μ΄ν° λ¨μ λ³λ‘ ν보 λ³ν λͺ¨λλ₯Ό μ€μ νκ³ μ€μ λ ν보 λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν€λ©°, λΉλμ€ λμ½λ(200)λ ν΄λΉ ν보 λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λ°μ΄ν° λ¨μμ μ μ©λλ ν보 λ³ν λͺ¨λλ₯Ό ꡬμ±ν μ μλ€.As another example, candidate transformation mode information supported for at least one unit among SPS, PPS, APS, slice header, CTU, CU, TU syntax may be explicitly signaled for at least one unit among sequence, GOP, picture, slice, CTU, CU, TU unit. For example, if the video encoder (100) sets only conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) among the candidate conversion modes of FIG. 5 described above as the support mode for the current sequence unit, the SPS may include information indicating conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) that are candidate conversion modes applied to the current sequence unit. Combinations of candidate conversion modes applicable to each predetermined data unit are set in advance as elements of a table, and index information indicating one of the elements of the pre-set table may be used as candidate conversion mode information. In this way, the video encoder (100) sets a candidate conversion mode for each predetermined data unit and includes information indicating the set candidate conversion mode in the bitstream, and the video decoder (200) can configure a candidate conversion mode to be applied to the current data unit from the candidate conversion mode information.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ μλ³νμ μ΄μ©κ°λ₯ν μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ μ μ ν λͺ μμ ν보 λ³ν λͺ¨λ κ΅¬μ± λ°©μ λ° μμμ μΈ ν보 λ³ν λͺ¨λ κ΅¬μ± λ°©μμ μ‘°ν©νμ¬ κ΅¬μ±λ μ μλ€.In one embodiment, at least one candidate transformation mode available for the inverse transformation of the current block can be configured by combining the explicit candidate transformation mode configuration method and the implicit candidate transformation mode configuration method described above.
ꡬ체μ μΌλ‘, μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ μκ·Έλλ§λλ λ³ν λͺ¨λ μ§μ μ 보μ κΈ°μ΄νμ¬ λͺ μμ μΌλ‘ ν보 λ³ν λͺ¨λκ° κ²°μ λκ³ , λͺ μμ μΌλ‘ κ²°μ λ ν보 λ³ν λͺ¨λλ€ μ€μμ λΆκ° μ 보μ κΈ°μ΄νμ¬ μ΅μ’ μ μΈ ν보 λ³ν λͺ¨λκ° μ λλ μ μλ€. μ¬κΈ°μ, λΆκ° μ 보λ μ μ ν λ°μ κ°μ΄ νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉ μ€ μ μ΄λ νλλ₯Ό ν¬ν¨ν μ μλ€.Specifically, a candidate transformation mode is explicitly determined based on transformation mode support information signaled for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and a final candidate transformation mode can be derived based on additional information among the explicitly determined candidate transformation modes. Here, the additional information can include at least one of current frame information, slice information, partitioning information of a current block, a size of a current block, a shape of a current block, prediction mode information of a current block, partitioning information of a parent block including the current block, a size of a parent block, a shape of a parent block, prediction mode information of a parent block, transformation mode information of a neighboring block of the current block, a maximum value of a transformation coefficient included in the current block, and a position of a last non-zero transformation coefficient of the current block according to a predetermined scanning order, as described above.
μλ₯Ό λ€μ΄, μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ μκ·Έλλ§λλ λ³ν λͺ¨λ μ§μ μ 보μ κΈ°μ΄νμ¬ λͺ μμ μΌλ‘ μ 1 ν보 λ³ν λͺ¨λκ° κ΅¬μ±λκ³ , λ€μ λΆκ° μ 보 μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬ μ 1 ν보 λ³ν λͺ¨λλ‘λΆν° μ΅μ’ μ μΈ μ 2 ν보 λ³ν λͺ¨λκ° μ λλ μ μλ€. μΌ μλ‘, λ 5μ 14κ°μ λ³ν λͺ¨λλ€ μ€ νμ¬ μνμ€ λ¨μμ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)κ° μ 1 ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λ λ€μ, λ€μ λΈλ‘ ν¬κΈ°μ κ°μ λΆκ° μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ ν¬κΈ°κ° 32Π₯32λ₯Ό μ΄κ³Όνλ κ²½μ° μ 1 ν보 λ³ν λͺ¨λ μ€ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514)λ§μ΄ μ΅μ’ μ μΈ μ 2 ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λκ³ , νμ¬ λΈλ‘μ ν¬κΈ°κ° 32Π₯32 μ΄νμΈ κ²½μ°, 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ λΆκ° μ΅μ’ μ μΈ μ 2 ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λ μ μλ€.For example, a first candidate transformation mode can be explicitly configured based on transformation mode support information signaled for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and a final second candidate transformation mode can be derived from the first candidate transformation mode based on at least one of the additional information. For example, among the 14 conversion modes of FIG. 5, conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) are configured as the first candidate conversion modes in the current sequence unit, and then, based on additional information such as the block size, if the size of the current block exceeds 32X32, only conversion modes 1, 2, 8, and 14 (501, 502, 508, and 514) among the first candidate conversion modes are configured as the final second candidate conversion modes, and if the size of the current block is 32X32 or less, conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, and 514) are configured as the final second candidate conversion modes. 509, 510, 514) can all be configured as the final second candidate conversion mode.
λ€λ₯Έ μλ‘, I νλ μμ΄λ I μ¬λΌμ΄μ€μ μν νμ¬ λΈλ‘μλ μ μ ν λ 5μ μμλ 14κ°μ ν보 λ³ν λͺ¨λλ€ λͺ¨λκ° μ 1 ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λκ³ , P/B νλ μμ΄λ P/B μ¬λΌμ΄μ€μ μν νμ¬ λΈλ‘μλ λ 5μ μμλ 14κ°μ ν보 λ³ν λͺ¨λλ€ μ€ μΌλΆ 1, 8, 9, 10, 11, 12, 13, 14λ² λ³ν λͺ¨λ(501, 508, 509, 510, 511, 512, 513, 514)λ€μ΄ μ 1 ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λ μ μλ€. κ·Έλ¦¬κ³ , μ΄λ¬ν μ 1 ν보 λ³ν λͺ¨λλ‘λΆν°, νμ¬ λΈλ‘μ λͺ¨μμ κΈ°μ΄νμ¬ μ΅μ’ μ μΈ μ 2 ν보 λ³ν λͺ¨λκ° κ΅¬μ±λ μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ ν(width)μ΄ λμ΄(height)λ³΄λ€ μμ λ°°μ¨ μ΄μ ν΄ κ²½μ°, μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λΈλ‘ νμ μ΄ μ νλ κ°λ₯μ±μ΄ λλ€. μ΄μ κ°μ΄, νμ¬ λΈλ‘μ νκ³Ό λμ΄ μ€ μ΄λ ν λ³μ κΈΈμ΄κ° λ€λ₯Έ ν λ³μ κΈΈμ΄λ³΄λ€ μμ λ°°μ¨ μ΄μ ν° κ²½μ°, μ 1 ν보 λ³ν λͺ¨λμ ν¬ν¨λ λ³ν λͺ¨λλ€ μ€ μν λ°©ν₯ λΆν λλ μμ§ λ°©ν₯ λΆν μ€ λ μ ν©ν ννμ λ³ν λΈλ‘μ μ§μνλ λ³ν λͺ¨λκ° μ΅μ’ μ μΈ μ 2 ν보 λ³ν λͺ¨λμ ν¬ν¨λ μ μλ€. μλ₯Ό λ€μ΄, I νλ μμ΄λ I μ¬λΌμ΄μ€μ ν¬ν¨λ λΈλ‘μ λͺ¨μμ κΈ°μ΄νμ¬ ν보 λ³ν λͺ¨λκ° κ΅¬μ±λλ κ²½μ°, μ μ ν λ°μ κ°μ΄ I νλ μμ΄λ I μ¬λΌμ΄μ€μ μν νμ¬ λΈλ‘μλ μ μ ν λ 5μ μμλ 14κ°μ ν보 λ³ν λͺ¨λλ€ λͺ¨λκ° μ 1 ν보 λ³ν λͺ¨λλ‘ κ΅¬μ±λλ€. κ·Έλ¦¬κ³ , νμ¬ λΈλ‘μ νμ΄ λμ΄λ³΄λ€ 2λ°° μ΄μ ν΄ κ²½μ°, μμ§ λ°©ν₯ λΆν μ μ ν©ν ν보 λ³ν λͺ¨λλ€μ μ€μ¬μΌλ‘ μ 2 ν보 λ³ν λͺ¨λκ° κ΅¬μ±λμ΄, 1, 8, 9, 10, 11, 12, 13, 14λ² λ³ν λͺ¨λ(501, 508, 509, 510, 511, 512, 513, 514)λ€μ΄ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν μ΅μ’ μ μΈ μ 2 ν보 λ³ν λͺ¨λλ€λ‘ ꡬμ±λκ³ , νμ¬ λΈλ‘μ λμ΄κ° νλ³΄λ€ 2λ°° μ΄μ ν΄ κ²½μ°, μν λ°©ν₯ λΆν μ μ ν©ν ν보 λ³ν λͺ¨λλ€μ μ€μ¬μΌλ‘ μ 2 ν보 λ³ν λͺ¨λκ° κ΅¬μ±λμ΄, 1, 2, 3, 4, 5, 6, 7, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 505, 506, 507, 514)λ€μ΄ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν μ 2 ν보 λ³ν λͺ¨λλ€λ‘ ꡬμ±λ μ μλ€. As another example, in the current block belonging to the I frame or I slice, all of the 14 candidate transformation modes illustrated in FIG. 5 may be configured as the first candidate transformation modes, and in the current block belonging to the P/B frame or P/B slice, some of the 14 candidate transformation modes illustrated in FIG. 5, namely transformation modes 1, 8, 9, 10, 11, 12, 13, and 14 (501, 508, 509, 510, 511, 512, 513, and 514), may be configured as the first candidate transformation modes. Then, from these first candidate transformation modes, a final second candidate transformation mode may be configured based on the shape of the current block. For example, if the width of the current block is greater than a predetermined ratio than the height, a transformation block type that is vertically divided is likely to be selected. In this way, if the length of one side among the width and height of the current block is greater than the length of the other side by a predetermined ratio or more, a transformation mode that supports a more suitable form of transformation block among horizontal division or vertical division among the transformation modes included in the first candidate transformation mode may be included in the final second candidate transformation mode. For example, if the candidate transformation mode is configured based on the shape of the block included in the I frame or I slice, as described above, all of the 14 candidate transformation modes illustrated in FIG. 5 are configured as the first candidate transformation mode for the current block belonging to the I frame or I slice. And, when the width of the current block is more than twice the height, the second candidate transformation mode is configured around candidate transformation modes suitable for vertical division, and transformation modes 1, 8, 9, 10, 11, 12, 13, and 14 (501, 508, 509, 510, 511, 512, 513, and 514) are configured as final second candidate transformation modes applicable to the current block, and when the height of the current block is more than twice the width, the second candidate transformation mode is configured around candidate transformation modes suitable for horizontal division, and transformation modes 1, 2, 3, 4, 5, 6, 7, and 14 (501, 502, 503, 504, 505, 506, 507, and 514) can be configured as second candidate transformation modes applicable to the current block.
μ΄μ κ°μ΄, λͺ μμ μΌλ‘ ꡬμ±λ ν보 λ³ν λͺ¨λλ‘λΆν°, λ€μ λΆκ° μ 보 μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬ λͺ μμ μΌλ‘ ꡬμ±λ ν보 λ³ν λͺ¨λμ ν¬ν¨λ λ³ν λͺ¨λλ₯Ό μΆκ° λλ μ κ±°ν¨μΌλ‘μ¨ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν μ΅μ’ μ μΈ ν보 λ³ν λͺ¨λκ° κ²°μ λ μ μλ€. In this way, the final candidate transformation mode applicable to the current block can be determined by adding or removing a transformation mode included in the explicitly configured candidate transformation mode based on at least one of the additional information from the explicitly configured candidate transformation mode.
ννΈ, ν보 λ³ν λͺ¨λ ꡬμ±μ νμ¬ λΈλ‘μ λΆν νμ§ μλ 1λ² λ³ν λͺ¨λ(501) λ° νμ¬ λΈλ‘μ 4λΆν νλ 14λ² λ³ν λͺ¨λ(514)λ λΆκ° μ 보μ κΈ°μ΄νμ¬ ν보 λ³ν λͺ¨λκ° μ μμ μΌλ‘ ꡬμ±λλ κ²½μ°μλ νμ ν보 λ³ν λͺ¨λμ ν¬ν¨λ μ μλ€.Meanwhile, when configuring a candidate transformation mode, the 1st transformation mode (501) that does not divide the current block and the 14th transformation mode (514) that divides the current block into four can always be included in the candidate transformation mode even when the candidate transformation mode is adaptively configured based on additional information.
λΉλμ€ μΈμ½λ(100)λ μ μ ν μ€μμλ€ μ€ νλμ λ°λΌμ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λκ° κ²°μ λλ©΄, ν보 λ³ν λͺ¨λμ ν¬ν¨λ λ³ν λͺ¨λλ€ μ€ νμ¬ λΈλ‘μ μ μ©λ μ΅μ’ μ μΈ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€. νμ¬ λΈλ‘μ μ μ©λ μ΅μ’ μ μΈ λ³ν λͺ¨λλ μμμ μΌλ‘ κ²°μ λκ±°λ, RDO κ΄μ μμ μ΅μ μ λ³ν λͺ¨λκ° κ²°μ λκ³ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° λͺ μμ μΌλ‘ λΉνΈμ€νΈλ¦Όμ ν¬ν¨λ μ μλ€. μ΄ν, ν보 λ³ν λͺ¨λ μ€μμ νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ₯Ό μ€μ νλ μ€μμλ€μ λνμ¬ μ€λͺ νλ€.When a candidate transformation mode applicable to the current block is determined according to one of the above-described embodiments, the video encoder (100) determines a final transformation mode applied to the current block from among the transformation modes included in the candidate transformation modes. The final transformation mode applied to the current block may be determined implicitly, or an optimal transformation mode from an RDO perspective may be determined and information indicating the determined transformation mode may be explicitly included in the bitstream. Hereinafter, embodiments of setting a transformation mode applied to the current block from among the candidate transformation modes will be described.
μΌ μ€μμμ μμ΄μ, νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ μκΈ° νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉμ κ°μ λΆκ° μ λ³΄λ€ μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬, ν보 λ³ν λͺ¨λ μ€ νλμ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ μ μλ€. In one embodiment, one of the candidate transformation modes may be determined as the transformation mode of the current block based on at least one of additional information such as current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of a neighboring block of the current block, a maximum value of a transformation coefficient included in the current block, and a position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order.
λΉλμ€ μΈμ½λ(100) λ° λΉλμ€ λμ½λ(200)λ λμΌν λ°©μμΌλ‘ μ μ ν λΆκ° μ λ³΄λ€ μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬, ν보 λ³ν λͺ¨λ μ€ νλμ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€. μλ₯Ό λ€μ΄, λΆκ° μ 보λ‘μ νμ¬ λΈλ‘μ ν¬κΈ°λ₯Ό μ΄μ©νλ κ²½μ°, λΉλμ€ μΈμ½λ(100) λ° λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ ν¬κΈ°κ° λ³νμ΄ μ§μλλ μ΅μ λΈλ‘ ν¬κΈ°μΌ κ²½μ°, νμ¬ λΈλ‘μ λΆν νμ§ μλ μ 1 λ³ν λͺ¨λ(501)μ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νκ³ , νμ¬ λΈλ‘μ λΆν νμ§ μκ³ λ³ν κ³Όμ μ μνν μ μλ€. λν, λΉλμ€ μΈμ½λ(100) λ° λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ λ³ν κ°λ₯ν μ΅λ λΈλ‘ ν¬κΈ°λ₯Ό μ΄κ³Όνλ κ²½μ°, κ²°μ λ ν보 λ³ν λͺ¨λ μ€ λ³ν κ°λ₯ν μ΅λ λΈλ‘ ν¬κΈ°λ₯Ό κ³ λ €νμ¬ λ³ν κ°λ₯ν λ³ν λͺ¨λ μ€ μ¬μ μ μ€μ λ νλμ λ³ν λͺ¨λλ₯Ό μ νν μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ ν¬κΈ°κ° 128Π₯128μ΄κ³ λ³ν κ°λ₯ν μ΅λ λΈλ‘ ν¬κΈ°κ° 64Π₯64μΌ κ²½μ°, νμ¬ λΈλ‘μ λ³νμ μν΄ νμ¬ λΈλ‘μ 4λΆν νλ μ 14 λ³ν λͺ¨λ(514)κ° μ νλ μ μλ€.The video encoder (100) and the video decoder (200) can determine the transformation mode of the current block as one of the candidate transformation modes based on at least one of the aforementioned additional information in the same manner. For example, when using the size of the current block as the additional information, the video encoder (100) and the video decoder (200) can determine the first transformation mode (501) that does not split the current block as the transformation mode of the current block if the size of the current block is the minimum block size for which transformation is supported, and can perform the transformation process without splitting the current block. In addition, the video encoder (100) and the video decoder (200) can select one transformation mode set in advance from among the transformable transformation modes by considering the maximum transformable block size among the determined candidate transformation modes if the current block exceeds the maximum transformable block size. For example, if the size of the current block is 128Π₯128 and the maximum convertible block size is 64Π₯64, the 14th conversion mode (514) that divides the current block into four parts can be selected for conversion of the current block.
λ€λ₯Έ μλ‘μ, λΆκ° μ 보λ‘μ μ£Όλ³ λΈλ‘μμ μ¬μ©λ λ³ν λͺ¨λλ₯Ό μ΄μ©νλ κ²½μ°, λΉλμ€ μΈμ½λ(100) λ° λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μμ μ¬μ©λ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬, νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ μ’μΈ‘κ³Ό μμΈ‘μ μμΉν λΈλ‘ λͺ¨λμμ μ 2 λ³ν λͺ¨λ(502)κ° μ νλμκ³ , νμ¬ λΈλ‘μ ν보 λ³ν λͺ¨λμ μ 2 λ³ν λͺ¨λ(502)κ° ν¬ν¨λ κ²½μ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘μ μ 2 λ³ν λͺ¨λ(502)κ° κ²°μ λ μ μλ€.As another example, when using the transformation mode used in the surrounding blocks as additional information, the video encoder (100) and the video decoder (200) can determine the transformation mode of the current block based on the transformation mode information used in the surrounding blocks of the current block. For example, if the second transformation mode (502) is selected in both blocks located to the left and above the current block, and the second transformation mode (502) is included in the candidate transformation modes of the current block, the second transformation mode (502) can be determined as the transformation mode of the current block.
μ΄μ κ°μ΄, λΆκ° μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ ν보 λ³ν λͺ¨λλ€ μ€μμ νλμ λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ²½μ°, λΉλμ€ μΈμ½λ(100) λ° λΉλμ€ λμ½λ(200)λ μ¬μ μ μ€μ λ λ°©μμ μ μ©νμ¬ λμΌνκ² νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€. μ΄ κ²½μ° λ³λμ λ³ν λͺ¨λ μ 보λ λΉνΈμ€νΈλ¦Όμ ν¬ν¨λμ§ μμ μ μλ€.In this way, when determining one of the candidate transformation modes of the current block based on the additional information, the video encoder (100) and the video decoder (200) can equally determine the transformation mode of the current block by applying a pre-set method. In this case, separate transformation mode information may not be included in the bitstream.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ λ³νμ μ μ©λ λ³ν λͺ¨λλ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ μκ·Έλλ§λλ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ λͺ μμ μΌλ‘ κ²°μ λ μ μλ€.In one embodiment, the transformation mode applied to the transformation of the current block can be explicitly determined based on transformation mode information signaled for at least one unit among a sequence, GOP, picture, slice, CTU, CU, and TU unit.
λΉλμ€ μΈμ½λ(100)λ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ νλμ λ°μ΄ν° λ¨μμ νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λ μ 보λ₯Ό ν¬ν¨μμΌ μ μ‘νκ³ , λΉλμ€ λμ½λ(200)λ λ°μ΄ν° λ¨μμ ν¬ν¨λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€. λΉλμ€ μΈμ½λ(100)λ ν보 λ³ν λͺ¨λλ€μ ν¬ν¨λ λ³ν λͺ¨λλ₯Ό μ μ©νκ³ RDO λ±μ νκ° κΈ°μ€μ μ μ©νμ¬ μ΅μ μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ , κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¬ μ μλ€. μλ₯Ό λ€μ΄, μ μ λ ν보 λ³ν λͺ¨λκ° 1, 2, 3, 4, 8, 9, 10, 14λ² λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)μ μ΄ 8κ°μ λͺ¨λμΌ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ μ΄ 8κ°μ λͺ¨λ μ€ RDO λ±μ νκ° κΈ°μ€μ λ°λΌ μ΅μ μ λ³ν λͺ¨λλ₯Ό μ ννκ³ , μ νλ μ΅μ μ λ³ν λͺ¨λμ λν μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ ν¬ν¨μμΌ λΉλμ€ λμ½λ(200)λ‘ μ μ‘ν μ μλ€. The video encoder (100) transmits information on the transformation mode applied to the current block by including it in one of the data units of a sequence, GOP, picture, slice, CTU, CU, and TU, and the video decoder (200) can determine the transformation mode of the current block from the transformation mode information included in the data unit. The video encoder (100) can apply the transformation mode included in the candidate transformation modes and apply an evaluation criterion such as RDO to determine the optimal transformation mode, and can include information indicating the determined transformation mode in the bitstream. For example, if the selected candidate conversion modes are a total of eight modes, modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514), the video encoder (100) can select the optimal conversion mode among the eight modes based on evaluation criteria such as RDO, and include information about the selected optimal conversion mode in the bitstream and transmit it to the video decoder (200).
μΌ μ€μμμ μμ΄μ, λ³ν λͺ¨λ μ λ³΄κ° λͺ μμ μΌλ‘ μκ·Έλλ§λ κ²½μ°, νμ¬ λΈλ‘μ ν보 λ³ν λͺ¨λ μ€μμ μΌλΆ λ³ν λͺ¨λλ§μ λΉλμ€ μΈμ½λ(100)μμ μμ νκ° κΈ°μ€μ λ°λΌ νκ°νκ³ , μ μ λ μ΅μ’ λ³ν λͺ¨λ μ 보λ₯Ό ν¬ν¨νλ λΉνΈμ€νΈλ¦Όμ λΉλμ€ λμ½λ(200)λ‘ μ μ‘ν μ μλ€. μΌλΆ λ³ν λͺ¨λλ§μ νκ°ν μ§ μ¬λΆλ, νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ μκΈ° νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉμ κ°μ λΆκ° μ λ³΄λ€ μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬ κ²°μ λ μ μλ€. In one embodiment, when transformation mode information is explicitly signaled, only some transformation modes among candidate transformation modes of the current block may be evaluated by the video encoder (100) according to a predetermined evaluation criterion, and a bitstream including the selected final transformation mode information may be transmitted to the video decoder (200). Whether to evaluate only some transformation modes may be determined based on at least one of additional information such as current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of the parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of the neighboring blocks of the current block, the maximum value of the transformation coefficient included in the current block, and the position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order.
μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ ν(width)μ΄ λμ΄(height)λ³΄λ€ μμ λ°°μ¨ μ΄μ ν΄ κ²½μ°, μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λΈλ‘ νμ μ΄ μ νλ κ°λ₯μ±μ΄ λλ€. μ΄μ κ°μ΄, νμ¬ λΈλ‘μ νκ³Ό λμ΄ μ€ μ΄λ ν λ³μ κΈΈμ΄κ° λ€λ₯Έ ν λ³μ κΈΈμ΄λ³΄λ€ μμ λ°°μ¨ μ΄μ ν° κ²½μ°, μν λ°©ν₯ λΆν λλ μμ§ λ°©ν₯ λΆν μ€ μ ν©νμ§ μμ λ°©ν₯μ λ³ν λͺ¨λλ ν보 λ³ν λͺ¨λμμ μ μΈλκ³ , λ¨μμλ ν보 λ³ν λͺ¨λλ§μ΄ μ΅μ’ λ³ν λͺ¨λμ μ μ μ μνμ¬ νκ°λ μ μλ€. μ¦, νμ¬ λΈλ‘μ νμ΄ λμ΄λ³΄λ€ μμ λ°°μ¨ μ΄μ ν° κ²½μ°, ν보 λ³ν λͺ¨λ μ€μμ νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ λΆν νλ λ³ν λΈλ‘μ μ§μνλ λ³ν λͺ¨λλ ν보 λ³ν λͺ¨λμμ μ μΈλκ³ , νμ¬ λΈλ‘μ λμ΄κ° ν λ³΄λ€ μμ λ°°μ¨ μ΄μ ν° κ²½μ° νμ¬ λΈλ‘μ μμ§ λ°©ν₯μΌλ‘ λΆν νλ λ³ν λΈλ‘μ μ§μνλ λ³ν λͺ¨λλ ν보 λ³ν λͺ¨λμμ μ μΈλ μ μλ€. μλ₯Ό λ€μ΄, ν보 λ³ν λͺ¨λκ° 1, 2, 3, 4, 8, 9, 10λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510)λ‘ κ²°μ λ κ²½μ°λ₯Ό κ°μ ν΄λ³΄λ©΄, λ§μ½ νμ¬ λΈλ‘μ νμ΄ λμ΄λ³΄λ€ 2λ°° μ΄μ ν΄ κ²½μ° μν λ°©ν₯ λΆν μ μ ν©ν ν보 λ³ν λͺ¨λλ€μΈ 2, 3, 4 λ² λ³ν λͺ¨λ(502, 503, 504)λ ν보 λ³ν λͺ¨λμμ μ μΈλκ³ , 1, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 508, 509, 510, 514)λ§μ΄ μ΅μ λ³ν λͺ¨λ μ μ μ μν νκ°μ μ΄μ©λ μ μλ€. λ°λλ‘, λ§μ½ νμ¬ λΈλ‘μ λμ΄κ° νλ³΄λ€ 2λ°° μ΄μ ν΄ κ²½μ° μμ§ λ°©ν₯ λΆν μ μ ν©ν ν보 λ³ν λͺ¨λλ€μΈ 8, 9, 10 λ² λ³ν λͺ¨λ(508, 509, 510)λ ν보 λ³ν λͺ¨λμμ μ μΈλκ³ , 1, 2, 3, 4, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 514)λ§μ΄ μ΅μ λ³ν λͺ¨λ μ μ μ μν νκ°μ μ΄μ©λ μ μλ€. νκ°λ₯Ό μν ν보 λ³ν λͺ¨λ ꡬμ±μ νμ¬ λΈλ‘μ λΆν νμ§ μλ μ 1λ² λ³ν λͺ¨λ(501) λ° νμ¬ λΈλ‘μ 4λΆν νλ μ 14λ² λ³ν λͺ¨λ(514)λ λΆκ° μ 보μ μκ΄μμ΄ νμ ν보 λ³ν λͺ¨λμ ν¬ν¨λ μ μλ€.For example, if the width of the current block is greater than the height by a predetermined factor or more, a transformation block type that is vertically divided is likely to be selected. In this way, if the length of one side of the width and height of the current block is greater than the length of the other side by a predetermined factor or more, a transformation mode that is not suitable for horizontal or vertical division is excluded from the candidate transformation modes, and only the remaining candidate transformation modes can be evaluated for selecting the final transformation mode. That is, if the width of the current block is greater than the height by a predetermined factor or more, a transformation mode that supports a transformation block that horizontally divides the current block among the candidate transformation modes is excluded from the candidate transformation modes, and if the height of the current block is greater than the width by a predetermined factor or more, a transformation mode that supports a transformation block that vertically divides the current block can be excluded from the candidate transformation modes. For example, assuming that the candidate transformation modes are determined as transformation modes 1, 2, 3, 4, 8, 9, and 10 (501, 502, 503, 504, 508, 509, and 510), if the width of the current block is more than twice the height, transformation modes 2, 3, and 4 (502, 503, and 504), which are suitable candidate transformation modes for horizontal division, are excluded from the candidate transformation modes, and only transformation modes 1, 8, 9, 10, and 14 (501, 508, 509, 510, and 514) can be used for evaluation to select the optimal transformation mode. Conversely, if the height of the current block is more than twice the width, candidate transformation modes 8, 9, and 10 (508, 509, and 510), which are suitable candidate transformation modes for vertical division, are excluded from the candidate transformation modes, and only transformation modes 1, 2, 3, 4, and 14 (501, 502, 503, 504, and 514) can be used for evaluation to select the optimal transformation mode. When configuring candidate transformation modes for evaluation, the first transformation mode (501), which does not divide the current block, and the fourteenth transformation mode (514), which divides the current block into four, can always be included in the candidate transformation modes regardless of additional information.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ₯Ό ν¨μ¨μ μΌλ‘ μ μ‘νκΈ° μν΄μ λ³ν λͺ¨λ μ 보λ κ³μΈ΅μ μΌλ‘(hierarchically) ꡬμ±λ μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ λν ν보 λ³ν λͺ¨λ μ€ λΆν λ λ³ν λͺ¨λ μ¬μ©μ λνλ΄λ 1λΉνΈμ νλκ·Έκ° μ μ‘λ μ μλ€ λ 5μ μ 1 λ³ν λͺ¨λ(501)κ³Ό κ°μ΄ νμ¬ λΈλ‘μ΄ λΆν λμ§ μκ³ νμ¬ λΈλ‘ κ·Έλλ‘ λ³νμ΄ μνλλ κ²½μ°, ν΄λΉ νλκ·Έλ 0μΌλ‘ μ€μ λλ€. μ¦, νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ κ²½μ° λ³ν λͺ¨λ μ 보λ 1λΉνΈμ νλκ·Έλ§μΌλ‘ ꡬμ±λ μ μλ€. λ§μ½, νμ¬ λΈλ‘μ΄ λ 5μ μ 2 λ³ν λͺ¨λ λ΄μ§ μ 14 λ³ν λͺ¨λ(502 λ΄μ§ 514)μ κ°μ΄ λΆν λλ κ²½μ° ν΄λΉ νλκ·Έλ 1λ‘ μ€μ λ μ μλ€. In one embodiment, in order to efficiently transmit the transformation mode applied to the current block, the transformation mode information may be hierarchically configured. For example, a 1-bit flag indicating the use of a split transformation mode among the candidate transformation modes for the current block may be transmitted. If the current block is not split and the transformation is performed as is in the current block, such as the first transformation mode (501) of FIG. 5, the corresponding flag is set to 0. That is, if the current block is not split, the transformation mode information may be configured with only a 1-bit flag. If the current block is split, such as the second to fourteenth transformation modes (502 to 514) of FIG. 5, the corresponding flag may be set to 1.
λΆν λ λ³ν λͺ¨λλ₯Ό μ¬μ©νμ¬ ν΄λΉ νλκ·Έκ° 1λ‘ μ€μ λ κ²½μ°, λ³ν λͺ¨λ μ 보λ μΆκ°μ μΌλ‘ i) λΆν λ°©ν₯μ λνλ΄λ λΆν λ°©ν₯μ λνλ΄λ μ 보, ii) λΆν λ°©ν₯μ λ°λ₯Έ 볡μ κ°μ λ³ν λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό λ ν¬ν¨ν μ μλ€. μλ₯Ό λ€μ΄, λΆν λ°©ν₯μ λνλ΄λ μ 보 '0'μ μν λ°©ν₯ λΆν μ κ°λ¦¬ν€κ³ , λΆν λ°©ν₯ νλκ·Έ '1'μ μμ§ λ°©ν₯ λΆν μ κ°λ¦¬ν€λλ‘ μ€μ λκ±°λ, μ΄μ λ°λλ‘ μ€μ λ μ μλ€. ii) λΆν λ°©ν₯μ λ°λ₯Έ 볡μ κ°μ λ³ν λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ ν΄λΉ λΆν λ°©ν₯μΌλ‘ νμ¬ λΈλ‘μ λΆν νλ 볡μ κ°μ λ³ν λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λλ‘ μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, λΆν λ°©ν₯μ λνλ΄λ μ λ³΄κ° 0'μΌλ‘ μ€μ λκ³ , μ 2 λ³ν λͺ¨λ λ΄μ§ μ 5 λ³ν λͺ¨λ(502 λ΄μ§ 505)μ κ°μ΄ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘ 4κ°μ λ³ν λͺ¨λλ€ μ€ νλλ‘ λΆν λλ κ²½μ°λ₯Ό κ°μ ν΄λ³΄λ©΄, ν΄λΉ μ 보λ μ 2 λ³ν λͺ¨λ λ΄μ§ μ 5 λ³ν λͺ¨λ(502 λ΄μ§ 505)μ λμλλ '00', '01', '10', '11'μ€ νλμ κ°μ κ°λλ‘ μ€μ λ μ μλ€. μ΄μ νμ λμ§ μκ³ , 볡μ κ°μ λ³ν λͺ¨λλ€μ κ°λ¦¬ν€λ κ°μ unary coding, fixed length coding, variable length coding, exponential golomb coding λ± λ€μν μ½λλ₯Ό μ μ©νμ¬ μ€μ λ μ μλ€.When the flag is set to 1 using the split conversion mode, the conversion mode information may additionally include i) information indicating a split direction, ii) information indicating one of a plurality of conversion modes according to the split direction. For example, the information indicating the split direction '0' may be set to indicate horizontal splitting, and the split direction flag '1' may be set to indicate vertical splitting, or vice versa. ii) The information indicating one of a plurality of conversion modes according to the split direction may be set to indicate one of a plurality of conversion modes that split the current block in the corresponding splitting direction. For example, assuming that the information indicating the split direction is set to '0', and the current block is split into one of four conversion modes in the horizontal direction, such as the second to fifth conversion modes (502 to 505), the information may be set to have one of '00', '01', '10', and '11' corresponding to the second to fifth conversion modes (502 to 505). Without being limited thereto, values indicating multiple conversion modes can be set by applying various codes such as unary coding, fixed length coding, variable length coding, and exponential golomb coding.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ₯Ό ν¨μ¨μ μΌλ‘ μ μ‘νκΈ° μν΄μ λ³ν λͺ¨λ μ 보λ μ μμ μΌλ‘ ꡬμ±λ μ μλ€. νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ΄ νλ¨λκ³ , νλ¨λ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬ λ³ν λͺ¨λ μ λ³΄κ° μ μμ μΌλ‘ ꡬμ±λ μ μλ€. In one embodiment, the transformation mode information may be adaptively configured to efficiently transmit the transformation mode applied to the current block. The vertical divisibility and horizontal divisibility of the current block may be determined, and the transformation mode information may be adaptively configured based on the determined vertical divisibility and horizontal divisibility of the current block.
λν, νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ μκΈ° νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉ λ±μ λΆκ° μ λ³΄κ° λ³ν λͺ¨λ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ΄μ©λ μ μλ€.Additionally, additional information such as current frame information, slice information, partitioning information of the current block, size of the current block, shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, size of the parent block, shape of the parent block, prediction mode information of the parent block, transformation mode information of a neighboring block of the current block, maximum value of a transformation coefficient included in the current block, and position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order may be used in the process of configuring the transformation mode information.
μ μ ν ν보 λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μμ, ν보 λ³ν λͺ¨λμ ν¬ν¨λ λ³ν λͺ¨λλ€μ κ³ λ €νμ¬ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν λͺ¨λ λ³ν λͺ¨λμ μ νμ μλ³ν¨μΌλ‘μ¨, νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ΄ νλ¨λ μ μλ€. λν, μ μ ν λΆκ° μ 보μ κΈ°μ΄νμ¬, νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ΄ νλ¨λ μ μλ€.In the process of determining the aforementioned candidate transformation mode, the vertical and horizontal divisibility of the current block can be determined by identifying the types of all transformation modes applicable to the current block by considering the transformation modes included in the candidate transformation mode. Furthermore, the vertical and horizontal divisibility of the current block can be determined based on the aforementioned additional information.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ , νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬ λ³ν λͺ¨λ μ 보μ μλ―Έ(semantics)λ₯Ό μ μμ μΌλ‘ κ²°μ νκ³ , νμ¬ λΈλ‘μ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¬ μ μλ€. λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νλλ λ³ν λͺ¨λ μ 보μ μλ―Έλ₯Ό μλ³νκ³ , λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€. The video encoder (100) can determine the vertical divisibility and horizontal divisibility of the current block, adaptively determine the semantics of transformation mode information based on the vertical divisibility and horizontal divisibility of the current block, and set the transformation mode information of the current block to include in the bitstream. The video decoder (200) can identify the semantics of transformation mode information obtained from the bitstream based on the vertical divisibility and horizontal divisibility of the current block, and determine the transformation mode of the current block based on the transformation mode information.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯μΌλ‘ λͺ¨λ λΆν κ°λ₯ν κ²½μ°, λ³ν λͺ¨λ μ 보λ ν보 λ³ν λͺ¨λλ€ μ€μμ νλλ₯Ό κ°λ¦¬ν€λ μΈλ±μ€ μ λ³΄λ‘ μ€μ λ μ μλ€. μΈλ±μ€ μ 보λ unary coding, fixed length coding, variable length coding, exponential golomb coding λ± λ€μν μ½λλ₯Ό μ μ©νμ¬ μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ‘μ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514)κ° κ²°μ λκ³ , νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λΆν μ΄ λͺ¨λ κ°λ₯ν κ²½μ°, ν보 λ³ν λͺ¨λμΈ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λ μ μλ€.If the current block can be split in both vertical and horizontal directions, the transformation mode information can be set as index information indicating one of the candidate transformation modes. The index information can be set by applying various codes such as unary coding, fixed length coding, variable length coding, and exponential global coding. For example, if transformation modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate transformation modes applicable to the current block, and if the current block can be split in both horizontal and vertical directions, information indicating one of the candidate transformation modes 1, 2, 8, and 14 (501, 502, 508, and 514) can be set as the transformation mode information.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λ³ν λͺ¨λ μ 보λ i) μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν λ°©ν₯μ κ°λ¦¬ν€λ μ 보, λ° ii) λΆν λ°©ν₯μ λ°λ₯Έ λΆν μ¬λΆλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό ν¬ν¨νλλ‘ μ€μ λ μ μλ€. i) μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν λ°©ν₯μ κ°λ¦¬ν€λ μ λ³΄κ° '0'μΌλ‘ μ€μ λ κ²½μ° μν λ°©ν₯ λΆν μ κ°λ¦¬ν€κ³ , '1'λ‘ μ€μ λ κ²½μ° μμ§ λ°©ν₯ λΆν μ κ°λ¦¬ν¬ μ μμΌλ©°, μ΄μ λ°λλ‘ μ€μ λ μλ μλ€. ii) λΆν λ°©ν₯μ λ°λ₯Έ λΆν μ¬λΆλ₯Ό κ°λ¦¬ν€λ μ 보λ '0'μΌλ‘ μ€μ λ κ²½μ° ν΄λΉ λ°©ν₯μΌλ‘ λ―ΈλΆν μ κ°λ¦¬ν€κ³ , '1'λ‘ μ€μ λ κ²½μ° ν΄λΉ λ°©ν₯μΌλ‘ λΆν λ¨μ κ°λ¦¬ν¬ μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ μν λΆν λ§ κ°λ₯νλ©° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘μ 2λ² λ³ν λͺ¨λ(502)κ° κ²°μ λ κ²½μ°, λ³ν λͺ¨λ μ 보λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν μ λνλ΄λ 첫 λ²μ§Έ λΉνΈμΈ'0'κ³Ό ν΄λΉ μν λ°©ν₯μΌλ‘ λΆν λ¨μ κ°λ¦¬ν€λ '1'μ ν¬ν¨νμ¬ '01'λ‘ μ€μ λ μ μλ€.If the current block can be split in only one of the vertical and horizontal directions, the conversion mode information may be set to include i) information indicating the splitting direction of the current block among the vertical and horizontal directions, and ii) information indicating whether or not to split according to the splitting direction. i) If the information indicating the splitting direction of the current block among the vertical and horizontal directions is set to '0', it may indicate horizontal splitting, and if set to '1', it may indicate vertical splitting, or vice versa. ii) If the information indicating whether or not to split according to the splitting direction is set to '0', it may indicate non-split in the corresponding direction, and if set to '1', it may indicate splitting in the corresponding direction. For example, if only horizontal splitting of the current block is possible and conversion mode 2 (502) is determined as the conversion mode of the current block, the conversion mode information may be set to '01', including '0', which is the first bit indicating horizontal splitting of the current block, and '1' indicating splitting in the corresponding horizontal direction.
λν, λ§μ½ νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λ³ν λͺ¨λ μ 보λ i) μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν λ°©ν₯μ κ°λ¦¬ν€λ μ 보, λ° ii) λΆν λ°©ν₯μ λ°λ₯Έ μ νκ°λ₯ν λ³ν λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό ν¬ν¨νλλ‘ μ€μ λ μ μλ€. i) μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν λ°©ν₯μ κ°λ¦¬ν€λ μ λ³΄κ° '0'μΌλ‘ μ€μ λ κ²½μ° μν λ°©ν₯ λΆν μ κ°λ¦¬ν€κ³ , '1'λ‘ μ€μ λ κ²½μ° μμ§ λ°©ν₯ λΆν μ κ°λ¦¬ν¬ μ μμΌλ©°, μ΄μ λ°λλ‘ μ€μ λ μλ μλ€. ii) λΆν λ°©ν₯μ λ°λ₯Έ μ νκ°λ₯ν λ³ν λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ μ νκ°λ₯ν λ³ν λͺ¨λλ€μ κ°μμ λ°λΌμ κ°λ³μ μΈ κΈΈμ΄λ₯Ό κ°μ§ μ μλ€. μλ₯Ό λ€μ΄, μ νκ°λ₯ν λ³ν λͺ¨λλ€μ κ°μκ° Nκ°μΈ κ²½μ°, 2^n >=Nμ λ§μ‘±νλ μ΅μμ n λΉνΈλ‘ ii) λΆν λ°©ν₯μ λ°λ₯Έ μ νκ°λ₯ν λ³ν λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ΄ μνμΌλ‘ λΆν λκ³ , νμ¬ λΈλ‘μ μν λ°©ν₯μΌλ‘ λΆν νλ λ³ν λͺ¨λλ€(502 λ΄μ§ 506) μ€μμ 2, 3, 4, 5λ² λ³ν λͺ¨λ(502, 503, 504, 505)μ 4κ°μ λ³ν λͺ¨λκ° μ νκ°λ₯ν κ²½μ°, λΆν λ°©ν₯μ λ°λ₯Έ μ νκ°λ₯ν λ³ν λͺ¨λλ€ μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ 2, 3, 4, 5λ² λ³ν λͺ¨λ(502, 503, 504, 505)μ 4κ°μ λ³ν λͺ¨λμ λμλλ '00', '01', '10', '11'μ€ νλμ κ°μΌλ‘ μ€μ λ μ μλ€. μ΄μ νμ λμ§ μκ³ μ½λ ꡬμ±μ unary coding, fixed length coding, variable length coding, exponential golomb codingλ± λ€μν λ°©μμΌλ‘ μ€μ λ μ μλ€. In addition, if the current block can be split in only one of the vertical direction and the horizontal direction, the transformation mode information may be set to include i) information indicating the splitting direction of the current block among the vertical direction and the horizontal direction, and ii) information indicating one of the selectable transformation modes according to the splitting direction. i) If the information indicating the splitting direction of the current block among the vertical direction and the horizontal direction is set to '0', it may indicate horizontal division, and if it is set to '1', it may indicate vertical division, or vice versa. ii) The information indicating one of the selectable transformation modes according to the splitting direction may have a variable length depending on the number of selectable transformation modes. For example, if the number of selectable transformation modes is N, the information indicating ii) one of the selectable transformation modes according to the splitting direction may be set to a minimum of n bits satisfying 2^n >= N. For example, if the current block is divided horizontally and four conversion modes (502, 503, 504, 505) of conversion modes 2, 3, 4, and 5 (502 to 506) that divide the current block in the horizontal direction are selectable, information indicating one of the selectable conversion modes according to the division direction may be set to one of the values of '00', '01', '10', and '11' corresponding to the four conversion modes of conversion modes 2, 3, 4, and 5 (502, 503, 504, 505). The code configuration is not limited thereto and may be set in various ways such as unary coding, fixed length coding, variable length coding, and exponential global coding.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ λ°©ν₯μΌλ‘λ λΆν κ°λ₯νμ§ μμ κ²½μ°, λ³ν λͺ¨λ μ 보λ λΉνΈμ€νΈλ¦Όμ ν¬ν¨λμ§ μμΌλ©° νμ¬ λΈλ‘μ λ³ν λΈλ‘μ νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ° λ° λͺ¨μμ κ°λ κ²μΌλ‘ κ²°μ λ μ μλ€. νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ λ°©ν₯μΌλ‘λ λΆν κ°λ₯νμ§ μμ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ₯Ό λ³λλ‘ μ μ‘νμ§ μμΌλ©°, λΉλμ€ λμ½λ(200)λ λ³λμ λ³ν λͺ¨λ μ 보μ ν΄λΉνλ μ νμ€λ₯Ό νμ±νμ§ μκ³ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ ν μ μλ€. If the current block is not divisible in either the vertical or horizontal direction, the transformation mode information is not included in the bitstream, and the transformation block of the current block can be determined to have the same size and shape as the current block. If the current block is not divisible in either the vertical or horizontal direction, the video encoder (100) does not separately transmit the transformation mode information, and the video decoder (200) can determine the transformation mode 1 (501) as the transformation mode of the current block without parsing the syntax corresponding to the separate transformation mode information.
μΌ μ€μμμ μμ΄μ, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ₯Ό ν¨μ¨μ μΌλ‘ μ μ‘νκΈ° μν΄μ λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±ν μ μλ€. λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ , νλ¨λ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬ λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±ν μ μλ€. λΉλμ€ μΈμ½λ(100)λ μ΄μ μ λ³ν λͺ¨λ κ²°μ κ³Όμ μμ μ μ λ λ³ν λͺ¨λλ€μ ν΅κ³μ λΉμ¨μ κΈ°μ΄νμ¬ ν보 λ³ν λͺ¨λλ₯Ό ꡬμ±νκ³ , RDO λ±μ μ΅μ λ³ν λͺ¨λ νκ° κΈ°μ€μ μ μ©νμ¬ νλμ μ΅μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ , κ²°μ λ λ³ν λͺ¨λμ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ ν¬ν¨μμΌ μ μ‘ν μ μλ€. νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κ²½κ³ μ‘°κ±΄μ΄λ νμ¬ λΈλ‘μ ν¬κΈ° λ± λ€μν λΆκ° μ λ³΄λ€ μ€ μ μ΄λ νλμ κΈ°μ΄νμ¬ νλ¨λ μ μλ€.In one embodiment, the video encoder (100) can adaptively configure transformation mode information to efficiently transmit the transformation mode applied to the current block. The video encoder (100) can determine the vertical divisibility and horizontal divisibility of the current block, and adaptively configure the transformation mode information based on the determined vertical divisibility and horizontal divisibility of the current block. The video encoder (100) can configure candidate transformation modes based on the statistical ratio of transformation modes previously selected in the transformation mode determination process, determine one optimal transformation mode by applying an optimal transformation mode evaluation criterion such as RDO, and transmit information on the determined transformation mode by including it in the bitstream. The vertical divisibility and horizontal divisibility of the current block can be determined based on at least one of various additional information such as boundary conditions or the size of the current block.
μ΄ν, μμμ μΌλ‘, ν보 λ³ν λͺ¨λλ‘μ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514)κ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)κ° ν보 λ³ν λͺ¨λλ€ μ€ μ΅μ λ³ν λͺ¨λμ λν λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ μ€λͺ νλ€.Hereinafter, as an example, when conversion modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate conversion modes, a process in which a video encoder (100) adaptively configures conversion mode information for an optimal conversion mode among the candidate conversion modes is described.
λ 8aλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μμΌ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 8a is a flow chart showing an example of a process in which a video encoder (100) adaptively configures conversion mode information.
ν보 λ³ν λͺ¨λλ‘μ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514)κ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ€μμ κ³Όμ λ€μ μμ°¨μ μΌλ‘ μννμ¬ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514) μ€ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. When conversion modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate conversion modes, the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 8, and 14 (501, 502, 508, and 514).
λ 8aλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S801), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ νλ€(S802). μ΄ κ²½μ°, μ΄νμ κ³Όμ μ μνλμ§ μκ³ νμ¬ λΈλ‘μ λν λ³ν λͺ¨λ μ€μ κ³Όμ μ μ’ λ£λλ€. Referring to FIG. 8a, the video encoder (100) determines the horizontal and vertical divisibility of the current block (S801), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S802) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λμ λ°λΌμ νμ¬ λΈλ‘μ΄ λΆν λμλμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S803), i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄, '0'μ λ―ΈλΆν (μμ§ λλ μν λΆν μ΄ λ―Έμ‘΄μ¬), '1'μ λΆν μ κ°λ¦¬ν΄)λ₯Ό λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ μ 보λ‘μ μ€μ νμ¬ μ μ‘νλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ, κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λμΈ κ²½μ°λΌλ©΄ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '0'λ§μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨λ€(S804). λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ'0'μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨ κ²½μ° μ΄νμ μΆκ°μ μΈ λ³ν λͺ¨λμ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ€ν΅νκ³ λ³ν λͺ¨λ μ€μ μ μ°¨λ₯Ό μ’ λ£νλ€. The video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S803), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' as information indicating whether i) vertical or horizontal division exists in the bitstream (S804). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
λ§μ½, νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° 1λ² λ³ν λͺ¨λκ° μλκ³ νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'μ μ€μ νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό ꡬμ±ν μ μλ€. νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514) μ€μμ νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 8, 14λ² λ³ν λͺ¨λ(502, 508, 514) μ€ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° μΆκ°λ‘ μ μ‘λ νμκ° μλ€. If the current block can be arbitrarily divided vertically or horizontally and the final transformation mode determined is not transformation mode 1 and the current block is divided, the video encoder (100) can configure the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists. If the current block is divided, information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 8, and 14 (502, 508, 514), excluding transformation mode 1 (501) in which the current block is not divided, needs to be additionally transmitted.
μΆκ°λ‘ μ μ‘λλ λ³ν λͺ¨λ μ 보λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λλ μν λ°©ν₯μΌλ‘ λΆν κ°λ₯νμ§ μ¬λΆ λ° ν보 λ³ν λͺ¨λμ ꡬμ±μ λ°λΌμ μ μμ μΌλ‘ ꡬμ±λ μ μλ€. λν, μΆκ°λ‘ μ μ‘λλ λ³ν λͺ¨λ μ 보λ ν보 λ³ν λͺ¨λμ ν¬ν¨λ λ³ν λͺ¨λ μ€ μΌ λ°©ν₯μΌλ‘λ§ νμ¬ λΈλ‘μ΄ λΆν λλ λͺ¨λμ 4λΆν λλ 14λ² λ³ν λͺ¨λ(514) μ€ νλκ° μλ³λλλ‘ μ μμ μΌλ‘ ꡬμ±λ μ μλ€. μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ μΌ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λλ€μΈ 2, 8λ² λ³ν λͺ¨λλ€(502, 508) μ€μμ λΆν κ°λ₯ν λ°©ν₯μΌλ‘ λΆν λμ§ μλ λ³ν λͺ¨λλ₯Ό μ μΈνκ³ , λΆν κ°λ₯ν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμ 4λΆν λλ 14λ² λ³ν λͺ¨λ(514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό λ³ν λͺ¨λ μ 보μ μΆκ°νμ¬ μ μ‘ν μ μλ€. The additionally transmitted transformation mode information may be adaptively configured depending on whether the current block is arbitrarily divisible in the vertical or horizontal direction and the configuration of the candidate transformation mode. In addition, the additionally transmitted transformation mode information may be adaptively configured to identify one of the transformation modes included in the candidate transformation mode, in which the current block is divided in only one direction, and one of the 14 transformation modes (514) in which the current block is divided into four. For example, if the current block is arbitrarily divisible in only one direction, either vertical or horizontal, the video encoder (100) may transmit information indicating one of the transformation modes in which the current block is divided in the divisible direction and the 14 transformation modes (514) in which the current block is divided into four directions, by adding the information to the transformation mode information.
ꡬ체μ μΌλ‘, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S805), λ§μ½ νμ¬ λΈλ‘μ΄ μν λΆν λ§ κ°λ₯ν κ²½μ°, νμ¬ λΈλ‘μ΄ μμ§ λΆν λλ 8λ² λ³ν λͺ¨λ(508)λ₯Ό μ μΈνκ³ 2, 14λ² λ³ν λͺ¨λ(502, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보(μλ₯Ό λ€μ΄, '0'μ 2λ² λ³ν λͺ¨λ(502), '1'μ 14λ² λ³ν λͺ¨λ(514)λ₯Ό κ°λ¦¬ν΄)λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S806). μμμ μΌλ‘, νμ¬ λΈλ‘μ ν보 λ³ν λͺ¨λλ‘ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514)κ° κ²°μ λμκ³ , νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘μ 2λ² λ³ν λͺ¨λκ° κ²°μ λμκ³ , νμ¬ λΈλ‘μ΄ μν λΆν λ§ κ°λ₯ν κ²½μ° λΉλμ€ μΈμ½λ(100)λ λΆν μ¬λΆλ₯Ό κ°λ¦¬ν€λ 첫 λ²μ§Έ λΉνΈμΈ'1'κ³Ό, 2, 14λ² λ³ν λͺ¨λ μ€ 2λ² λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ'0'μΌλ‘ ꡬμ±λ '10'μ λ³ν λͺ¨λ μ λ³΄λ‘ κ²°μ νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€. μκΈ° μμμ, λ§μ½ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λκ° 14λ² λ³ν λͺ¨λ(514)μΈ κ²½μ°, '11'μ΄ λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λλ€.Specifically, the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S805), and if the current block can be divided only horizontally, information indicating the transformation mode of the current block among transformation modes 2 and 14 (502, 514), excluding transformation mode 8 (508) in which the current block is divided vertically (for example, '0' indicates transformation mode 2 (502), '1' indicates transformation mode 14 (514)) can be set and added to the bitstream (S806). For example, if conversion modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate conversion modes of the current block, conversion mode 2 is determined as the optimal conversion mode of the current block, and if the current block can only be horizontally split, the video encoder (100) determines '10', which is composed of '1', the first bit indicating whether to split, and '0', which indicates conversion mode 2 among conversion modes 2 and 14, as conversion mode information and adds it to the bitstream. In the above example, if the optimal conversion mode of the current block is conversion mode 14 (514), '11' is set as conversion mode information.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μμ§ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S807), νμ¬ λΈλ‘μ΄ μμ§ λΆν λ§ κ°λ₯ν κ²½μ°, νμ¬ λΈλ‘μ΄ μν λΆν λλ 2λ² λ³ν λͺ¨λ(502)λ₯Ό μ μΈνκ³ , 8, 14λ² λ³ν λͺ¨λ(508, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보(μλ₯Ό λ€μ΄, '0'μ 8λ² λ³ν λͺ¨λ(508), '1'μ 14λ² λ³ν λͺ¨λ(514)λ₯Ό κ°λ¦¬ν΄)λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S808). μμμ μΌλ‘, νμ¬ λΈλ‘μ ν보 λ³ν λͺ¨λλ‘ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514)κ° κ²°μ λμκ³ , νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘μ 8λ² λ³ν λͺ¨λκ° κ²°μ λμκ³ , νμ¬ λΈλ‘μ΄ μμ§ λΆν λ§ κ°λ₯ν κ²½μ° λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ λΆν μ κ°λ¦¬ν€λ 첫 λ²μ§Έ λΉνΈμΈ '1'κ³Ό, 2, 14λ² λ³ν λͺ¨λ μ€μμ 8λ² λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ '0'μΌλ‘ ꡬμ±λ '10'μ λ³ν λͺ¨λ μ λ³΄λ‘ κ²°μ νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€. μκΈ° μμμ, λ§μ½ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λκ° 14λ² λ³ν λͺ¨λ(514)μΈ κ²½μ°, '11'μ΄ λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λλ€.The video encoder (100) determines whether the current block is divisible only in the vertical direction (S807), if the current block is not divisible only in the horizontal direction, and if the current block is divisible only in the vertical direction, information indicating the conversion mode of the current block among conversion modes (508, 514) 8 and 14, excluding conversion mode 2 (502) in which the current block is divided horizontally (for example, '0' indicates conversion mode 8 (508), '1' indicates conversion mode 14 (514)) can be set and added to the bitstream (S808). For example, if transformation modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate transformation modes of the current block, and transformation mode 8 is determined as the optimal transformation mode of the current block, and if the current block can only be vertically divided, the video encoder (100) determines '10', which is composed of '1', the first bit indicating division as transformation mode information, and '0', which indicates transformation mode 8 among transformation modes 2 and 14, as transformation mode information, and adds it to the bitstream. In the above example, if the optimal transformation mode of the current block is transformation mode 14 (514), '11' is set as the transformation mode information.
νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ 2, 8, 14λ² λ³ν λͺ¨λ(502, 508, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S809).If the current block is not divisible in only one of the horizontal and vertical directions, i.e., if the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 8, and 14 (502, 508, and 514) and add it to the bitstream (S809).
λ 8bλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ μΌ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€. λ 8bμ κ³Όμ μ λ 8aμ λ°λΌ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ³Όμ μ λμλμ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μ΄λ€.Fig. 8b is a flowchart illustrating an example of a process in which a video decoder (200) adaptively determines conversion mode information. The process in Fig. 8b corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 8a, and is a process in which a video decoder (200) determines a conversion mode.
λ 8bλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λ 8aμ λ°λ₯Έ λΉλμ€ μΈμ½λ(100)μμ μνλ κ³Όμ κ³Ό λμΌνκ² νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S811), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ μλ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S812).Referring to FIG. 8b, the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 8a (S811), and if the current block is arbitrarily impossible to be divided vertically or horizontally, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S812).
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ₯Ό νλνμ¬ νμ±νκ³ , νμ±λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λΆν μ¬λΆλ₯Ό νλ¨νλ€(S813). μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ‘μ '0'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S815). μ΄ κ²½μ°, λΉλμ€ λμ½λ(200)λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λ κ²°μ κ³Όμ μ μ’ λ£ν μ μλ€.The video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S813). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S815). In this case, the video decoder (200) can end the transformation mode determination process of the current block without parsing additional transformation mode information.
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ '1'μ΄ νλλ κ²½μ°, λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό λ€λ°λ₯΄λ λΉνΈ μ 보λ₯Ό νμ±νμ¬ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€. μ¦, λΉλμ€ λμ½λ(200)λ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈκ° '1', μ¦ νμ¬ λΈλ‘μ μ μ΄λ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλ κ²μΌλ‘ νλ¨λ κ²½μ°, νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λλ μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ , μν λλ μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈ μ΄νμ μΆκ° λΉνΈλ₯Ό νμ±νμ¬ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€.The video decoder (200) can determine the transformation mode of the current block by parsing the bit information following the first bit of the transformation mode information if the current block is capable of at least one of vertical division or horizontal division and the first bit of the transformation mode information is obtained as '1' from the bitstream. That is, if the first bit of the transformation mode information from the bitstream is '1', i.e., if it is determined that at least vertical or horizontal division exists in the current block, the video decoder (200) can determine the possibility of horizontal division or vertical division of the current block, and parse additional bits following the first bit of the transformation mode information based on the possibility of horizontal or vertical division to determine the transformation mode of the current block.
ꡬ체μ μΌλ‘, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λΆν λ§ κ°λ₯ν μ§ μ¬λΆλ₯Ό νλ¨νκ³ (S815), νμ¬ λΈλ‘μ΄ μν λΆν λ§ κ°λ₯ν κ²½μ°, νμ¬ λΈλ‘μ΄ μμ§ λΆν λλ 8λ² λ³ν λͺ¨λ(508)λ₯Ό μ μΈνκ³ , 2, 14λ² λ³ν λͺ¨λ(502, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보(μλ₯Ό λ€μ΄, '0'μ 2λ² λ³ν λͺ¨λ(502), '1'μ 14λ² λ³ν λͺ¨λ(514)λ₯Ό κ°λ¦¬ν΄)λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νλν μ μλ€(S816). μμμ μΌλ‘, νμ¬ λΈλ‘μ ν보 λ³ν λͺ¨λλ‘ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514)κ° κ²°μ λμκ³ , νμ¬ λΈλ‘μ΄ μν λΆν λ§ κ°λ₯ν κ²½μ° λΉλμ€ λμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ νμ¬ λΈλ‘μ λΆν μ κ°λ¦¬ν€λ'1'κ³Ό, 2λ² λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ '0'μΌλ‘ ꡬμ±λ '10'μ λ³ν λͺ¨λ μ λ³΄λ‘ νλν κ²½μ°, λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 2λ² λ³ν λͺ¨λ(502)λ‘ κ²°μ ν μ μλ€. μκΈ° μμμ, λ³ν λͺ¨λ μ 보λ‘μ '11'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λκ° 14λ² λ³ν λͺ¨λ(514)μΈ κ²μΌλ‘ κ²°μ ν μ μλ€.Specifically, the video decoder (200) determines whether the current block can only be horizontally divided (S815), and if the current block can only be horizontally divided, information indicating the transformation mode of the current block among transformation modes 2 and 14 (502, 514), excluding transformation mode 8 (508) in which the current block is vertically divided (for example, '0' indicates transformation mode 2 (502), and '1' indicates transformation mode 14 (514)) can be obtained from the bitstream (S816). For example, if transformation modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate transformation modes of the current block, and if the current block can only be horizontally divided, the video decoder (100) may determine the transformation mode of the current block as transformation mode 2 (502) based on the transformation mode information when '10' consisting of '1' indicating division of the current block and '0' indicating transformation mode 2 is obtained as transformation mode information. In the above example, if '11' is obtained as transformation mode information, the video decoder (200) may determine that the transformation mode of the current block is transformation mode 14 (514).
λ§μ½ νμ¬ λΈλ‘μ΄ μν λΆν λ§ κ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμ§ λΆν λ§ κ°λ₯ν μ§ μ¬λΆλ₯Ό νλ¨νλ€(S817). λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λΆν λ§ κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λΆν λλ 2λ² λ³ν λͺ¨λ(502)λ₯Ό μ μΈνκ³ , 8, 14λ² λ³ν λͺ¨λ(508, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보(μλ₯Ό λ€μ΄, '0'μ 8λ² λ³ν λͺ¨λ(508), '1'μ 14λ² λ³ν λͺ¨λ(514)λ₯Ό κ°λ¦¬ν΄)λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νλν μ μλ€. νμ¬ λΈλ‘μ΄ μμ§ λΆν λ§ κ°λ₯ν κ²½μ° λΉλμ€ λμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ νμ¬ λΈλ‘μ λΆν μ κ°λ¦¬ν€λ'1'κ³Ό, 8λ² λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ '0'μΌλ‘ ꡬμ±λ '10'μ λ³ν λͺ¨λ μ λ³΄λ‘ νλν κ²½μ°, λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 8λ² λ³ν λͺ¨λ(508)λ‘ κ²°μ ν μ μλ€. μκΈ° μμμ, λ³ν λͺ¨λ μ 보λ‘μ '11'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λκ° 14λ² λ³ν λͺ¨λ(514)μΈ κ²μΌλ‘ κ²°μ ν μ μλ€.If the current block is not capable of only horizontal division, the video decoder (200) determines whether the current block is capable of only vertical division (S817). If the current block is capable of only vertical division, the video decoder (200) can obtain information indicating the transformation mode of the current block from among transformation modes (508, 514) 8 and 14, excluding transformation mode 2 (502) in which the current block is horizontally divided, from the bitstream (for example, '0' indicates transformation mode 8 (508), '1' indicates transformation mode 14 (514)). If the current block is capable of only vertical division, the video decoder (100) can determine the transformation mode of the current block as transformation mode 8 (508) based on the transformation mode information if the transformation mode information is '10', which is composed of '1' indicating division of the current block and '0' indicating transformation mode 8. In the above example, if '11' is acquired as conversion mode information, the video decoder (200) can determine that the conversion mode of the current block is conversion mode 14 (514).
νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(200)λ 2, 8, 14λ² λ³ν λͺ¨λ(502, 508, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νλνκ³ , νμ±λ λ³ν λͺ¨λ μ λ³΄κ° κ°λ¦¬ν€λ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ ν μ μλ€(S819).If the current block is not divisible in only one of the horizontal and vertical directions, i.e., if the current block is divisible in both the horizontal and vertical directions, the video decoder (200) can obtain transformation mode information indicating the transformation mode of the current block from among the transformation modes 2, 8, and 14 (502, 508, and 514) from the bitstream, and determine the transformation mode indicated by the parsed transformation mode information as the transformation mode of the current block (S819).
μ΄ν, λ€λ₯Έ μμλ‘, ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514)μ 6κ°μ λ³ν λͺ¨λκ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)κ° ν보 λ³ν λͺ¨λλ€ μ€ μ΅μ λ³ν λͺ¨λμ λν λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ μ€λͺ νλ€.Hereinafter, as another example, when six conversion modes (501, 502, 503, 508, 509, 514) of conversion modes 1, 2, 3, 8, 9, and 14 are determined as candidate conversion modes, a process in which a video encoder (100) adaptively configures conversion mode information for an optimal conversion mode among the candidate conversion modes is described.
λ 8cλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 8c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514)κ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ€μμ κ³Όμ λ€μ μμ°¨μ μΌλ‘ μννμ¬ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514) μ€ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. When conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) are determined as candidate conversion modes, the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514).
λ 8cλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S821), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ νλ€(S822). μ΄ κ²½μ°, μ΄νμ κ³Όμ μ μνλμ§ μκ³ νμ¬ λΈλ‘μ λν λ³ν λͺ¨λ μ€μ κ³Όμ μ μ’ λ£λλ€. Referring to FIG. 8c, the video encoder (100) determines the horizontal and vertical divisibility of the current block (S821), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S822) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λμ λ°λΌμ νμ¬ λΈλ‘μ΄ λΆν λμλμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S823), i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄, '0'μ λ―ΈλΆν (μμ§ λλ μν λΆν μ΄ λ―Έμ‘΄μ¬), '1'μ λΆν μ κ°λ¦¬ν΄)λ₯Ό λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ μ 보λ‘μ μ€μ νμ¬ μ μ‘νλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ, κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λμΈ κ²½μ°λΌλ©΄ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '0'λ§μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨λ€(S824). λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ'0'μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨ κ²½μ° μ΄νμ μΆκ°μ μΈ λ³ν λͺ¨λμ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ€ν΅νκ³ λ³ν λͺ¨λ μ€μ μ μ°¨λ₯Ό μ’ λ£νλ€. The video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S823), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' in the bitstream as information indicating whether i) vertical or horizontal division exists (S824). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
λ§μ½, νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° 1λ² λ³ν λͺ¨λκ° μλκ³ νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'μ μ€μ νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό ꡬμ±ν λ€μ, 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° μΆκ°λ‘ μ μ‘λμ΄μΌ νλμ§λ₯Ό νλ¨νλ€. λ§μ½, νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νκ³ , ν보 λ³ν λͺ¨λλ€ μ€ ν΄λΉ λΆν κ°λ₯ν λ°©ν₯μΌλ‘ νμ¬ λΈλ‘μ΄ λΆν λλ λ³ν λͺ¨λκ° μ€μ§ 1κ°λ§ μ‘΄μ¬νλ κ²½μ°λΌλ©΄, λ³λμ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ μΆκ°λ‘ μ μ‘λ νμκ° μλ€. μλνλ©΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'μ νλνμκ³ , νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νλ©°, ν보 λ³ν λͺ¨λλ€μ ν΄λΉ λΆν κ°λ₯ν λ°©ν₯μΌλ‘ νμ¬ λΈλ‘μ΄ λΆν λλ λ³ν λͺ¨λκ° μ€μ§ 1κ°λ§ μ‘΄μ¬νλ κ²½μ°λΌλ©΄ λ³λμ μΆκ° μ 보 μμ΄λ ν΄λΉ λΆν κ°λ₯ν λ°©ν₯μΌλ‘ νμ¬ λΈλ‘μ΄ λΆν λλ μ€μ§ 1κ°μ λ³ν λͺ¨λλ₯Ό λ°λ‘ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ ν μ μκΈ° λλ¬Έμ΄λ€.If the current block can be arbitrarily divided vertically or horizontally and the final transformation mode determined is not transformation mode 1 and the current block is divided, the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then determines whether information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) excluding transformation mode 1 (501) in which the current block is not divided should be additionally transmitted. If the current block can be split in only one of the horizontal and vertical directions, and there is only one transformation mode among the candidate transformation modes in which the current block is split in the corresponding splittable direction, then information indicating a separate transformation mode does not need to be additionally transmitted. This is because if the video decoder (200) obtains '1' indicating that vertical or horizontal division exists as the first bit of the transformation mode information, and the current block can be split in only one of the horizontal and vertical directions, and there is only one transformation mode among the candidate transformation modes in which the current block is split in the corresponding splittable direction, then the only transformation mode in which the current block is split in the corresponding splittable direction can be determined as the transformation mode of the current block without any additional information.
ꡬ체μ μΌλ‘, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S825), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2λ² λ³ν λͺ¨λ(502)λ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νκ³ (S826) λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό μ μ‘νμ§ μλλ€. μ΄ κ²½μ°, μ΄μ λ¨κ³(S823)μμ μ€μ λ νμ¬ λΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'λ§μ΄ λ³ν λͺ¨λ μ 보λ‘μ λΉνΈμ€νΈλ¦Όμ λΆκ°λλ€.Specifically, the video encoder (100) determines whether the current block can be arbitrarily divided only in the horizontal direction (S825), and if the current block can be divided only in the horizontal direction, determines the second transformation mode (502), which is a transformation mode that divides in the horizontal direction, as the transformation mode of the current block (S826), and does not transmit any additional transformation mode information separately. In this case, only '1' indicating that there is vertical or horizontal division in the current block set in the previous step (S823) is added to the bitstream as transformation mode information.
λν, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S827), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8λ² λ³ν λͺ¨λ(508)λ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νκ³ λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό μ μ‘νμ§ μλλ€. μ΄ κ²½μ°, μ΄μ λ¨κ³(S823)μμ μ€μ λ νμ¬ λΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'λ§μ΄ λ³ν λͺ¨λ μ 보λ‘μ λΉνΈμ€νΈλ¦Όμ λΆκ°λλ€.In addition, the video encoder (100) determines whether the current block can be arbitrarily divided only in the vertical direction (S827), and if the current block can be divided only in the vertical direction, determines the 8th transformation mode (508), which is a transformation mode that divides in the vertical direction, as the transformation mode of the current block and does not transmit any additional transformation mode information. In this case, only '1', which indicates that there is vertical or horizontal division in the current block set in the previous step (S823), is added to the bitstream as transformation mode information.
λν, νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ 2, 8, 14λ² λ³ν λͺ¨λ(502, 508, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S829).In addition, if the current block is not divisible in only one of the horizontal or vertical directions, i.e., if the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among the conversion modes 2, 8, and 14 (502, 508, and 514) and add it to the bitstream (S829).
λ 8dλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€. λ 8dμ κ³Όμ μ λ 8cμ λ°λΌ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ³Όμ μ λμλμ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μ΄λ€.Fig. 8d is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information. The process in Fig. 8d corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 8c, and is a process in which a video decoder (200) determines a conversion mode.
λ 8dλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λ 8cμ λ°λ₯Έ λΉλμ€ μΈμ½λ(100)μμ μνλ κ³Όμ κ³Ό λμΌνκ² νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S831), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ μλ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S832).Referring to FIG. 8d, the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 8c (S831), and if the current block is arbitrarily impossible to be vertically divided or horizontally divided, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S832).
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ₯Ό νλνμ¬ νμ±νκ³ , νμ±λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λΆν μ¬λΆλ₯Ό νλ¨νλ€(S833). μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ‘μ '0'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S834). μ΄ κ²½μ°, λΉλμ€ λμ½λ(200)λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λ κ²°μ κ³Όμ μ μ’ λ£ν μ μλ€.The video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S833). For example, if the current block is arbitrarily capable of at least one of vertical division and horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S834). In this case, the video decoder (200) can end the transformation mode determination process of the current block without parsing additional transformation mode information.
μ μ ν λ°μ κ°μ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'μ νλνμκ³ , νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νλ©°, ν보 λ³ν λͺ¨λλ€μ ν΄λΉ λΆν κ°λ₯ν λ°©ν₯μΌλ‘ νμ¬ λΈλ‘μ΄ λΆν λλ λ³ν λͺ¨λκ° μ€μ§ 1κ°λ§ μ‘΄μ¬νλ κ²½μ°λΌλ©΄ λ³λμ μΆκ° μ 보 μμ΄λ ν΄λΉ λΆν κ°λ₯ν λ°©ν₯μΌλ‘ νμ¬ λΈλ‘μ΄ λΆν λλ μ€μ§ 1κ°μ λ³ν λͺ¨λλ₯Ό λ°λ‘ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ ν μ μλ€.As described above, if the video decoder (200) obtains '1' as the first bit of the transformation mode information indicating the presence of vertical or horizontal division, and the current block can be divided in only one of the horizontal or vertical directions, and there is only one transformation mode in which the current block is divided in the corresponding divisible direction among the candidate transformation modes, then only one transformation mode in which the current block is divided in the corresponding divisible direction can be determined as the transformation mode of the current block without any additional information.
ꡬ체μ μΌλ‘, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S835), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2λ² λ³ν λͺ¨λ(502)λ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ€(S836). μ΄ κ²½μ°, μ΄μ λ¨κ³(S833)μμ νμ±λ νμ¬ λΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'λ§μ΄ λ³ν λͺ¨λ μ 보λ‘μ μ΄μ©λλ€.Specifically, the video decoder (200) determines whether the current block can be arbitrarily divided only in the horizontal direction (S835), and if the current block can be divided only in the horizontal direction, determines the second transformation mode (502), which is a transformation mode that divides in the horizontal direction, as the transformation mode of the current block (S836). In this case, only '1', which indicates that there is a vertical or horizontal division in the current block parsed in the previous step (S833), is used as the transformation mode information.
λν, λΉλμ€ λμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S837), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8λ² λ³ν λͺ¨λ(508)λ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ€(S838). μ΄ κ²½μ°μλ, μ΄μ λ¨κ³(S833)μμ νμ±λ νμ¬ λΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'λ§μ΄ λ³ν λͺ¨λ μ 보λ‘μ μ΄μ©λλ€.In addition, the video decoder (100) determines whether the current block can be arbitrarily divided only in the vertical direction (S837), and if the current block can be divided only in the vertical direction, determines the 8th transformation mode (508), which is a transformation mode that divides in the vertical direction, as the transformation mode of the current block (S838). Even in this case, only '1', which indicates that there is a vertical or horizontal division in the current block parsed in the previous step (S833), is used as the transformation mode information.
λν, νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(200)λ 2, 8, 14λ² λ³ν λͺ¨λ(502, 508, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νλνκ³ , νλλ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S839).In addition, if the current block is not divisible in only one of the horizontal or vertical directions, i.e., if the current block is divisible in both the horizontal and vertical directions, the video decoder (200) obtains information indicating the conversion mode of the current block from among the conversion modes 2, 8, and 14 (502, 508, and 514) from the bitstream, and determines the conversion mode of the current block based on the obtained conversion mode information (S839).
λ 9aλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 9a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514)κ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ€μμ κ³Όμ λ€μ μμ°¨μ μΌλ‘ μννμ¬ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514) μ€ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. When conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) are determined as candidate conversion modes, the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514).
λ 9aλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S901), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ νλ€(S902). μ΄ κ²½μ°, μ΄νμ κ³Όμ μ μνλμ§ μκ³ νμ¬ λΈλ‘μ λν λ³ν λͺ¨λ μ€μ κ³Όμ μ μ’ λ£λλ€. Referring to FIG. 9a, the video encoder (100) determines the horizontal and vertical divisibility of the current block (S901), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S902) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λμ λ°λΌμ νμ¬ λΈλ‘μ΄ λΆν λμλμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S903), i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄, '0'μ λ―ΈλΆν (μμ§ λλ μν λΆν μ΄ λ―Έμ‘΄μ¬), '1'μ λΆν μ κ°λ¦¬ν΄)λ₯Ό λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ μ 보λ‘μ μ€μ νμ¬ μ μ‘νλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ, κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λμΈ κ²½μ°λΌλ©΄ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '0'λ§μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨λ€(S904). λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ'0'μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨ κ²½μ° μ΄νμ μΆκ°μ μΈ λ³ν λͺ¨λμ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ€ν΅νκ³ λ³ν λͺ¨λ μ€μ μ μ°¨λ₯Ό μ’ λ£νλ€. The video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S903), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' as information indicating whether i) vertical or horizontal division exists in the bitstream (S904). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
λ§μ½, νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° 1λ² λ³ν λͺ¨λκ° μλκ³ νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'μ μ€μ νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό ꡬμ±ν λ€μ, 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ μ μ‘νλ€. μ΄ λ, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block can be arbitrarily divided vertically or horizontally and the final transformation mode determined is not transformation mode 1 and the current block is divided, the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514), excluding transformation mode 1 (501) in which the current block is not divided. At this time, the video encoder (100) may set additional transformation mode information in consideration of the number of possible divisions of the current block. The number of possible splits can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of possible splits of the current block for determining a conversion block can be limited to a predetermined number of times (e.g., once).
λ€μ λ 9aλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ ν¬κΈ°κ° λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S905). λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ μΈμ½λ(100)λ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ ν보 λ³ν λͺ¨λμ ν¬ν¨λ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ 1νλ§ λΆν νλ 2, 8λ² λ³ν λͺ¨λ(502, 508)λ₯Ό κ²°μ νκ³ , 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S906), 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.Referring back to FIG. 9A, the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S905). If the number of splits of the current block is limited to 1, the video encoder (100) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among the 2nd, 3rd, 8th, 9th, and 14th conversion modes (502, 503, 508, 509, 514) included in the candidate conversion modes, excluding the 1st conversion mode (501), determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) (S906), and adds information indicating one of the 2nd and 8th conversion modes (502, 508) to the bitstream as additional conversion mode information.
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S907), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3λ² λ³ν λͺ¨λ(502, 503) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S908), 2, 3λ² λ³ν λͺ¨λ(502, 503) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.If the number of times the current block is divided is not limited to 1, the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S907), and if the current block can be divided only in the horizontal direction, the video encoder determines the transformation mode of the current block among the transformation modes 2 and 3 (502, 503), which are transformation modes for horizontal division (S908), and adds information indicating one of the transformation modes 2 and 3 (502, 503) to the bitstream as additional transformation mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S909), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9λ² λ³ν λͺ¨λ(508, 509) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S910), 8, 9λ² λ³ν λͺ¨λ(508, 509) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.In addition, unless the number of times the current block is split is limited to one, the video encoder (100) determines whether the current block can be split only in the vertical direction (S909), and if the current block can be split only in the vertical direction, determines the conversion mode of the current block among conversion modes 8 and 9 (508, 509), which are conversion modes for splitting in the vertical direction (S910), and adds information indicating one of conversion modes 8 and 9 (508, 509) to the bitstream as additional conversion mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλκ³ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S911).In addition, if the number of times the current block is divided is not limited to 1 and the current block is not divisible in only one of the horizontal or vertical directions, i.e., if the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) and add it to the bitstream (S911).
λ 9bλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€. λ 9bμ κ³Όμ μ λ 9aμ λ°λΌ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ³Όμ μ λμλμ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μ΄λ€.Fig. 9b is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information. The process in Fig. 9b corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 9a, and is a process in which a video decoder (200) determines a conversion mode.
λ 9bλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λ 9aμ λ°λ₯Έ λΉλμ€ μΈμ½λ(100)μμ μνλ κ³Όμ κ³Ό λμΌνκ² νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S931), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ μλ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S932).Referring to FIG. 9b, the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 9a (S931), and if the current block is arbitrarily impossible to be divided vertically or horizontally, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S932).
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ₯Ό νλνμ¬ νμ±νκ³ , νμ±λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λΆν μ¬λΆλ₯Ό νλ¨νλ€(S933). μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ‘μ '0'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S934). μ΄ κ²½μ°, λΉλμ€ λμ½λ(200)λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λ κ²°μ κ³Όμ μ μ’ λ£ν μ μλ€.The video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S933). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S934). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'μ νλν κ²½μ°, νμ¬ λΈλ‘μ΄ λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S935).When the video decoder (200) obtains '1' as the first bit of the conversion mode information indicating the presence of vertical or horizontal division, it determines whether the current block is larger than the minimum division block size for which the number of divisions is limited (S935).
λ§μ½, νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° λ―Έλ§μΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ λμ½λ(200)λ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514)μ ν¬ν¨νλ ν보 λ³ν λͺ¨λ μ€μμ νμ¬ λΈλ‘μ 1νλ§ λΆν νλ 2, 8λ² λ³ν λͺ¨λ(502, 508)λ₯Ό κ²°μ νκ³ , 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S936).If the size of the current block is less than the minimum split block size and the number of times the current block is split is limited to 1, the video decoder (200) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among candidate conversion modes including the 2nd, 3rd, 8th, 9th, and 14th conversion modes (502, 503, 508, 509, 514) except the 1st conversion mode (501), parses conversion mode information indicating the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) from the bitstream, and determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) based on the acquired additional conversion mode information (S936).
λ§μ½, νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S937), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3λ² λ³ν λͺ¨λ(502, 503) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3λ² λ³ν λͺ¨λ(502, 503) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S938).If the size of the current block is not greater than the minimum split block size and the number of times the current block is split is not limited to 1, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S937), and if the current block can be split only in the horizontal direction, parses information indicating one of the conversion modes 2 and 3 (502, 503), which are conversion modes for splitting in the horizontal direction, from the bitstream, and determines the conversion mode of the current block among the conversion modes 2 and 503 (502, 503) based on the acquired additional conversion mode information (S938).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S939), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9λ² λ³ν λͺ¨λ(508, 509) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 8, 9λ² λ³ν λͺ¨λ(508, 509) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S940).In addition, unless the number of times the current block is split is limited to 1, the video decoder (200) determines whether the current block can be split only in the vertical direction (S939), and if the current block can be split only in the vertical direction, the video decoder parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 8 and 9 (508, 509), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines the transformation mode of the current block from among the transformation modes 8 and 9 (508, 509) based on the acquired additional transformation mode information (S940).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλκ³ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(200)λ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S941).In addition, if the number of times the current block is split is not limited to one and the current block is not splittable in only one of the horizontal direction and the vertical direction, i.e., if the current block is splittable in both the horizontal direction and the vertical direction, the video decoder (200) parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) from the bitstream, and determines the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) based on the acquired additional transformation mode information (S941).
λ 9cλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 9c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514)κ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ€μμ κ³Όμ λ€μ μμ°¨μ μΌλ‘ μννμ¬ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514) μ€ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. When conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) are determined as candidate conversion modes, the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514).
λ 9cλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S951), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ νλ€(S952). μ΄ κ²½μ°, μ΄νμ κ³Όμ μ μνλμ§ μκ³ νμ¬ λΈλ‘μ λν λ³ν λͺ¨λ μ€μ κ³Όμ μ μ’ λ£λλ€. Referring to FIG. 9c, the video encoder (100) determines the horizontal and vertical divisibility of the current block (S951), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S952) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λμ λ°λΌμ νμ¬ λΈλ‘μ΄ λΆν λμλμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S953), i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄, '0'μ λ―ΈλΆν (μμ§ λλ μν λΆν μ΄ λ―Έμ‘΄μ¬), '1'μ λΆν μ κ°λ¦¬ν΄)λ₯Ό λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ μ 보λ‘μ μ€μ νμ¬ μ μ‘νλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ, κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λμΈ κ²½μ°λΌλ©΄ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '0'λ§μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨λ€(S954). λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ'0'μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨ κ²½μ° μ΄νμ μΆκ°μ μΈ λ³ν λͺ¨λμ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ€ν΅νκ³ λ³ν λͺ¨λ μ€μ μ μ°¨λ₯Ό μ’ λ£νλ€. The video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S953), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' in the bitstream as information indicating whether i) vertical or horizontal division exists (S954). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
λ§μ½, νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° 1λ² λ³ν λͺ¨λκ° μλκ³ νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'μ μ€μ νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό ꡬμ±ν λ€μ, 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ μ μ‘νλ€. μ΄ λ, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block can be arbitrarily divided vertically or horizontally and the final transformation mode determined is not transformation mode 1 and the current block is divided, the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514), excluding transformation mode 1 (501) in which the current block is not divided. At this time, the video encoder (100) may set additional transformation mode information in consideration of the number of possible divisions of the current block. The number of possible splits can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of possible splits of the current block for determining a conversion block can be limited to a predetermined number of times (e.g., once).
λ€μ λ 9cλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ ν¬κΈ°κ° λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S955). λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ μΈμ½λ(100)λ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ ν보 λ³ν λͺ¨λμ ν¬ν¨λ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ 1νλ§ λΆν νλ 2, 8λ² λ³ν λͺ¨λ(502, 508)λ₯Ό κ²°μ νκ³ , 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S956), 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.Referring back to FIG. 9c, the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S955). If the number of splits of the current block is limited to 1, the video encoder (100) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among the 2nd, 3rd, 8th, 9th, and 14th conversion modes (502, 503, 508, 509, 514) included in the candidate conversion modes, excluding the 1st conversion mode (501), determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) (S956), and adds information indicating one of the 2nd and 8th conversion modes (502, 508) to the bitstream as additional conversion mode information.
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S957), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 14λ² λ³ν λͺ¨λ(502, 503, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S958), 2, 3, 14λ² λ³ν λͺ¨λ(502, 503, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.If the number of times the current block is divided is not limited to 1, the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S957), and if the current block can be divided only in the horizontal direction, determines the transformation mode of the current block among the transformation modes 2, 3, and 14 (502, 503, and 514), which are transformation modes for horizontal division (S958), and adds information indicating one of the transformation modes 2, 3, and 14 (502, 503, and 514) to the bitstream as additional transformation mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S959), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 14λ² λ³ν λͺ¨λ(508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S960), 8, 9, 14λ² λ³ν λͺ¨λ(508, 509, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.In addition, unless the number of times the current block is split is limited to one, the video encoder (100) determines whether the current block can be split only in the vertical direction (S959), and if the current block can be split only in the vertical direction, determines the conversion mode of the current block among conversion modes 8, 9, and 14 (508, 509, 514), which are conversion modes for splitting in the vertical direction (S960), and adds information indicating one of conversion modes 8, 9, and 14 (508, 509, 514) to the bitstream as additional conversion mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλκ³ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S961).In addition, if the number of times the current block is divided is not limited to 1 and the current block is not divisible in only one of the horizontal or vertical directions, i.e., if the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) and add it to the bitstream (S961).
λ 9dλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€. λ 9dμ κ³Όμ μ λ 9cμ λ°λΌ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ³Όμ μ λμλμ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μ΄λ€.Fig. 9d is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information. The process in Fig. 9d corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 9c, and is a process in which a video decoder (200) determines a conversion mode.
λ 9dλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λ 9cμ λ°λ₯Έ λΉλμ€ μΈμ½λ(100)μμ μνλ κ³Όμ κ³Ό λμΌνκ² νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S971), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ μλ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S972).Referring to FIG. 9d, the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 9c (S971), and if the current block is arbitrarily impossible to be divided vertically or horizontally, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S972).
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ₯Ό νλνμ¬ νμ±νκ³ , νμ±λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λΆν μ¬λΆλ₯Ό νλ¨νλ€(S973). μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ‘μ '0'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S974). μ΄ κ²½μ°, λΉλμ€ λμ½λ(200)λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λ κ²°μ κ³Όμ μ μ’ λ£ν μ μλ€.The video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S973). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S974). In this case, the video decoder (200) can end the transformation mode determination process of the current block without parsing additional transformation mode information.
λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'μ νλν κ²½μ°, νμ¬ λΈλ‘μ΄ λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S975).When the video decoder (200) obtains '1' as the first bit of the conversion mode information indicating the presence of vertical or horizontal division, it determines whether the current block is larger than the minimum division block size for which the number of divisions is limited (S975).
λ§μ½, νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° λ―Έλ§μΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ λμ½λ(200)λ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514)μ ν¬ν¨νλ ν보 λ³ν λͺ¨λ μ€μμ νμ¬ λΈλ‘μ 1νλ§ λΆν νλ 2, 8λ² λ³ν λͺ¨λ(502, 508)λ₯Ό κ²°μ νκ³ , 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S976).If the size of the current block is less than the minimum split block size and the number of times the current block is split is limited to 1, the video decoder (200) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among candidate conversion modes including the 2nd, 3rd, 8th, 9th, and 14th conversion modes (502, 503, 508, 509, 514) except the 1st conversion mode (501), parses conversion mode information indicating the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) from the bitstream, and determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) based on the acquired additional conversion mode information (S976).
λ§μ½, νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S977), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 14λ² λ³ν λͺ¨λ(502, 503, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 14λ² λ³ν λͺ¨λ(502, 503, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S978).If the size of the current block is not greater than the minimum split block size and the number of times the current block is split is not limited to 1, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S977), and if the current block can be split only in the horizontal direction, it parses information indicating one of the conversion modes 2, 3, and 14 (502, 503, 514) that are conversion modes for splitting in the horizontal direction from the bitstream, and determines the conversion mode of the current block among the conversion modes 2, 3, and 14 (502, 503, 514) based on the acquired additional conversion mode information (S978).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S979), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 14λ² λ³ν λͺ¨λ(508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 8, 9, 14λ² λ³ν λͺ¨λ(508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S980).In addition, unless the number of times the current block is split is limited to 1, the video decoder (200) determines whether the current block can be split only in the vertical direction (S979), and if the current block can be split only in the vertical direction, the video decoder parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 8, 9, and 14 (508, 509, and 514), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines the transformation mode of the current block from among the transformation modes 8, 9, and 14 (508, 509, and 514) based on the acquired additional transformation mode information (S980).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλκ³ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(200)λ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S981).In addition, when the number of times the current block is split is not limited to one and the current block is not splittable in only one of the horizontal direction and the vertical direction, i.e., when the current block is splittable in both the horizontal direction and the vertical direction, the video decoder (200) parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) from the bitstream, and determines the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) based on the acquired additional transformation mode information (S981).
λ 10aλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 10a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514)κ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ€μμ κ³Όμ λ€μ μμ°¨μ μΌλ‘ μννμ¬ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514) μ€ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. When conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) are determined as candidate conversion modes, the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514).
λ 10aλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1001), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ νλ€(S1002). μ΄ κ²½μ°, μ΄νμ κ³Όμ μ μνλμ§ μκ³ νμ¬ λΈλ‘μ λν λ³ν λͺ¨λ μ€μ κ³Όμ μ μ’ λ£λλ€. Referring to FIG. 10a, the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1001), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1002) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λμ λ°λΌμ νμ¬ λΈλ‘μ΄ λΆν λμλμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1003), i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄, '0'μ λ―ΈλΆν (μμ§ λλ μν λΆν μ΄ λ―Έμ‘΄μ¬), '1'μ λΆν μ κ°λ¦¬ν΄)λ₯Ό λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ μ 보λ‘μ μ€μ νμ¬ μ μ‘νλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ, κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λμΈ κ²½μ°λΌλ©΄ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '0'λ§μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨λ€(S1004). λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ'0'μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨ κ²½μ° μ΄νμ μΆκ°μ μΈ λ³ν λͺ¨λμ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ€ν΅νκ³ λ³ν λͺ¨λ μ€μ μ μ°¨λ₯Ό μ’ λ£νλ€. The video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1003), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' as information indicating whether i) vertical or horizontal division exists in the bitstream (S1004). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
λ§μ½, νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν κ°λ₯νκ³ κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° 1λ² λ³ν λͺ¨λκ° μλκ³ νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'μ μ€μ νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό ꡬμ±ν λ€μ, 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ μ μ‘νκ±°λ μμμ μΌλ‘ μ€μ νλ€. If the current block is arbitrarily vertically or horizontally divisible and the determined final transformation mode is not transformation mode 1 and the current block is divided, the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits or implicitly sets information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514), excluding transformation mode 1 (501) in which the current block is not divided.
μ΄λ₯Ό μνμ¬, λ¨Όμ λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1005). νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S1006).To this end, the video encoder (100) first determines whether the current block is divisible in both the vertical and horizontal directions (S1005). If the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) and add it to the bitstream (S1006).
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§λ μκ³ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block is not divisible in both vertical and horizontal directions but is divisible in only one direction, the video encoder (100) may set additional transformation mode information considering the number of times the current block can be divided. The number of times the current block can be divided may be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block may be limited to a predetermined number (e.g., once).
λ€μ λ 10aλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ ν¬κΈ°κ° λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1007). λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ μΈμ½λ(100)λ λ€μ μν λ° μμ§ λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν κ°λ₯ν λ°©ν₯μ νλ¨νλ€. ꡬ체μ μΌλ‘, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1008), μν λ°©ν₯μ΄ μλ μμ§ λ°©ν₯μ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 8λ² λ³ν λͺ¨λ(508)λ‘ κ²°μ νκ³ (S1009), λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ λΆκ°νμ§ μλλ€. λν, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 2λ² λ³ν λͺ¨λ(502)λ‘ κ²°μ νκ³ (S1010), λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ λΆκ°νμ§ μλλ€.Referring back to FIG. 10A, the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S1007). If the number of splits of the current block is limited to 1, the video encoder (100) determines the splittable direction of the current block among the horizontal and vertical directions. Specifically, the video encoder (100) determines whether the current block can be split only in the horizontal direction (S1008), and if the current block can be split only in the vertical direction and not the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 8 (508) (S1009), and does not add any additional transformation mode information to the bitstream. In addition, if the current block can be split only in the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 2 (502) (S1010), and does not add any additional transformation mode information to the bitstream.
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1011), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3λ² λ³ν λͺ¨λ(502, 503) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1012), 2, 3λ² λ³ν λͺ¨λ(502, 503) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.If the number of times the current block is divided is not limited to 1, the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1011), and if the current block can be divided only in the horizontal direction, determines the transformation mode of the current block among the transformation modes 2 and 3 (502, 503), which are transformation modes for horizontal division (S1012), and adds information indicating one of the transformation modes 2 and 3 (502, 503) to the bitstream as additional transformation mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1013), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9λ² λ³ν λͺ¨λ(508, 509) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1014), 8, 9λ² λ³ν λͺ¨λ(508, 509) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.In addition, unless the number of times the current block is split is limited to one, the video encoder (100) determines whether the current block can be split only in the vertical direction (S1013), and if the current block can be split only in the vertical direction, determines the transformation mode of the current block among the transformation modes 8 and 9 (508, 509), which are transformation modes for splitting in the vertical direction (S1014), and adds information indicating one of the transformation modes 8 and 9 (508, 509) to the bitstream as additional transformation mode information.
λ 10bλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€. λ 10bμ κ³Όμ μ λ 10aμ λ°λΌ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ³Όμ μ λμλμ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μ΄λ€.Fig. 10b is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information. The process in Fig. 10b corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 10a, and is a process in which a video decoder (200) determines a conversion mode.
λ 10bλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λ 10aμ λ°λ₯Έ λΉλμ€ μΈμ½λ(100)μμ μνλ κ³Όμ κ³Ό λμΌνκ² νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1021), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ μλ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1022).Referring to FIG. 10b, the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 10a (S1021), and if the current block is arbitrarily impossible to be divided vertically or horizontally, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1022).
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ₯Ό νλνμ¬ νμ±νκ³ , νμ±λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λΆν μ¬λΆλ₯Ό νλ¨νλ€(S1023). μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ‘μ '0'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1024). μ΄ κ²½μ°, λΉλμ€ λμ½λ(200)λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λ κ²°μ κ³Όμ μ μ’ λ£ν μ μλ€.The video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1023). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1024). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'μ νλν κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ° μμ§ λ°©ν₯ λͺ¨λ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1025). νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(100)λ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€(S1026).If the video decoder (200) obtains '1' as the first bit of the transformation mode information indicating the presence of vertical or horizontal division, the video decoder (200) determines whether the current block is divisible in both horizontal and vertical directions (S1025). If the current block is divisible in both horizontal and vertical directions, the video decoder (100) may additionally parse information indicating the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) from the bitstream, and determine the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) based on the parsed additional transformation mode information (S1026).
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§λ μκ³ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±ν μ§ μ¬λΆλ₯Ό κ²°μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block is not divisible in both the vertical and horizontal directions but is divisible in only one direction, the video decoder (100) can determine whether to parse additional transformation mode information by considering the number of times the current block can be divided. The number of times the current block can be divided can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block can be limited to a predetermined number (e.g., once).
λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1027), λ§μ½ νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° λ―Έλ§μΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ λμ½λ(200)λ λ€μ μν λ° μμ§ λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν κ°λ₯ν λ°©ν₯μ νλ¨νλ€. ꡬ체μ μΌλ‘, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1028), μν λ°©ν₯μ΄ μλ μμ§ λ°©ν₯μ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ νμ±μμ΄ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 8λ² λ³ν λͺ¨λ(508)λ‘ κ²°μ νλ€(S1029). λν, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ νμ±μμ΄ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 2λ² λ³ν λͺ¨λ(502)λ‘ κ²°μ νλ€(S1030).The video decoder (200) determines whether the current block is larger than or equal to the minimum split block size that limits the number of splits (S1027), and if the size of the current block is smaller than the minimum split block size, and the number of splits of the current block is limited to 1, the video decoder (200) determines the splittable direction of the current block among the horizontal and vertical directions again. Specifically, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1028), and if the current block can be split only in the vertical direction and not the horizontal direction, the video decoder (200) determines the transformation mode of the current block as the 8th transformation mode (508) without parsing additional transformation mode information separately (S1029). In addition, the video decoder (200) determines the transformation mode of the current block as the 2nd transformation mode (502) without parsing additional transformation mode information separately if the current block can be split only in the horizontal direction (S1030).
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1031), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3λ² λ³ν λͺ¨λ(502, 503) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3λ² λ³ν λͺ¨λ(502, 503) μ€ νλλ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ€(S1032).If the number of times the current block is split is not limited to 1, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1031), and if the current block can be split only in the horizontal direction, it parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 2 and 3 (502, 503), which are transformation modes for splitting in the horizontal direction, from the bitstream, and determines one of transformation modes 2 and 3 (502, 503) as the transformation mode of the current block based on the parsed additional transformation mode information (S1032).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1033), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9λ² λ³ν λͺ¨λ(508, 509) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 8, 9λ² λ³ν λͺ¨λ(508, 509) μ€ νλλ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ€(S1034).In addition, unless the number of times the current block is split is limited to one, the video decoder (200) determines whether the current block can be split only in the vertical direction (S1033), and if the current block can be split only in the vertical direction, it parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 8 and 9 (508, 509), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines one of transformation modes 8 and 9 (508, 509) as the transformation mode of the current block based on the parsed additional transformation mode information (S1034).
λ 10cλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 10c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514)κ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ€μμ κ³Όμ λ€μ μμ°¨μ μΌλ‘ μννμ¬ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514) μ€ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. When conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) are determined as candidate conversion modes, the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514).
λ 10cλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1041), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ νλ€(S1042). μ΄ κ²½μ°, μ΄νμ κ³Όμ μ μνλμ§ μκ³ νμ¬ λΈλ‘μ λν λ³ν λͺ¨λ μ€μ κ³Όμ μ μ’ λ£λλ€. Referring to FIG. 10c, the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1041), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1042) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λμ λ°λΌμ νμ¬ λΈλ‘μ΄ λΆν λμλμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1043), i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄, '0'μ λ―ΈλΆν (μμ§ λλ μν λΆν μ΄ λ―Έμ‘΄μ¬), '1'μ λΆν μ κ°λ¦¬ν΄)λ₯Ό λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ μ 보λ‘μ μ€μ νμ¬ μ μ‘νλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ, κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λμΈ κ²½μ°λΌλ©΄ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '0'λ§μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨λ€(S1044). λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ'0'μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨ κ²½μ° μ΄νμ μΆκ°μ μΈ λ³ν λͺ¨λμ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ€ν΅νκ³ λ³ν λͺ¨λ μ€μ μ μ°¨λ₯Ό μ’ λ£νλ€. The video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1043), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' in the bitstream as information indicating whether i) vertical or horizontal division exists (S1044). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
λ§μ½, νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν κ°λ₯νκ³ κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° 1λ² λ³ν λͺ¨λκ° μλκ³ νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'μ μ€μ νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό ꡬμ±ν λ€μ, 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ μ μ‘νκ±°λ μμμ μΌλ‘ μ€μ νλ€. If the current block is arbitrarily vertically or horizontally divisible and the determined final transformation mode is not transformation mode 1 and the current block is divided, the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits or implicitly sets information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514), excluding transformation mode 1 (501) in which the current block is not divided.
μ΄λ₯Ό μνμ¬, λ¨Όμ λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1045). νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S1046).To this end, the video encoder (100) first determines whether the current block is divisible in both the vertical and horizontal directions (S1045). If the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) and add it to the bitstream (S1046).
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§λ μκ³ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block is not divisible in both vertical and horizontal directions but is divisible in only one direction, the video encoder (100) may set additional transformation mode information considering the number of times the current block can be divided. The number of times the current block can be divided may be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block may be limited to a predetermined number (e.g., once).
λ€μ λ 10cλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ ν¬κΈ°κ° λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1047). λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ μΈμ½λ(100)λ λ€μ μν λ° μμ§ λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν κ°λ₯ν λ°©ν₯μ νλ¨νλ€. ꡬ체μ μΌλ‘, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1048), μν λ°©ν₯μ΄ μλ μμ§ λ°©ν₯μ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 8λ² λ³ν λͺ¨λ(508)λ‘ κ²°μ νκ³ (S1049), λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ λΆκ°νμ§ μλλ€. λν, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 2λ² λ³ν λͺ¨λ(502)λ‘ κ²°μ νκ³ (S1050), λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ λΆκ°νμ§ μλλ€.Referring back to FIG. 10c, the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S1047). If the number of splits of the current block is limited to 1, the video encoder (100) determines the splittable direction of the current block among the horizontal and vertical directions. Specifically, the video encoder (100) determines whether the current block can be split only in the horizontal direction (S1048), and if the current block can be split only in the vertical direction and not the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 8 (508) (S1049), and does not add any additional transformation mode information to the bitstream. In addition, if the current block can be split only in the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 2 (502) (S1050), and does not add any additional transformation mode information to the bitstream.
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1051), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 14λ² λ³ν λͺ¨λ(502, 503, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1052), 2, 3, 14λ² λ³ν λͺ¨λ(502, 503, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.If the number of times the current block is divided is not limited to 1, the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1051), and if the current block can be divided only in the horizontal direction, determines the transformation mode of the current block among the transformation modes 2, 3, and 14 (502, 503, and 514), which are transformation modes for horizontal division (S1052), and adds information indicating one of the transformation modes 2, 3, and 14 (502, 503, and 514) to the bitstream as additional transformation mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1053), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 14λ² λ³ν λͺ¨λ(508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1054), 8, 9, 14λ² λ³ν λͺ¨λ(508, 509, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.In addition, unless the number of times the current block is split is limited to one, the video encoder (100) determines whether the current block can be split only in the vertical direction (S1053), and if the current block can be split only in the vertical direction, determines the transformation mode of the current block among the transformation modes 8, 9, and 14 (508, 509, and 514), which are transformation modes for splitting in the vertical direction (S1054), and adds information indicating one of the transformation modes 8, 9, and 14 (508, 509, and 514) to the bitstream as additional transformation mode information.
λ 10dλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€. λ 10dμ κ³Όμ μ λ 10cμ λ°λΌ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ³Όμ μ λμλμ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μ΄λ€.Fig. 10d is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information. The process in Fig. 10d corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 10c, and is a process in which a video decoder (200) determines a conversion mode.
λ 10dλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λ 10cμ λ°λ₯Έ λΉλμ€ μΈμ½λ(100)μμ μνλ κ³Όμ κ³Ό λμΌνκ² νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1061), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ μλ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1062).Referring to FIG. 10d, the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 10c (S1061), and if the current block is arbitrarily impossible to be vertically divided or horizontally divided, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1062).
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ₯Ό νλνμ¬ νμ±νκ³ , νμ±λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λΆν μ¬λΆλ₯Ό νλ¨νλ€(S1063). μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ‘μ '0'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1064). μ΄ κ²½μ°, λΉλμ€ λμ½λ(200)λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λ κ²°μ κ³Όμ μ μ’ λ£ν μ μλ€.The video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1063). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1064). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'μ νλν κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ° μμ§ λ°©ν₯ λͺ¨λ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1065). νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(100)λ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€(S1066).If the video decoder (200) obtains '1' as the first bit of the transformation mode information indicating the presence of vertical or horizontal division, the video decoder (200) determines whether the current block is divisible in both horizontal and vertical directions (S1065). If the current block is divisible in both horizontal and vertical directions, the video decoder (100) may additionally parse information indicating the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) from the bitstream, and determine the transformation mode of the current block from among the transformation modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514) based on the parsed additional transformation mode information (S1066).
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§λ μκ³ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±ν μ§ μ¬λΆλ₯Ό κ²°μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block is not divisible in both the vertical and horizontal directions but is divisible in only one direction, the video decoder (100) can determine whether to parse additional transformation mode information by considering the number of times the current block can be divided. The number of times the current block can be divided can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block can be limited to a predetermined number (e.g., once).
λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1067), λ§μ½ νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° λ―Έλ§μΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ λμ½λ(200)λ λ€μ μν λ° μμ§ λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν κ°λ₯ν λ°©ν₯μ νλ¨νλ€. ꡬ체μ μΌλ‘, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1068), μν λ°©ν₯μ΄ μλ μμ§ λ°©ν₯μ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ νμ±μμ΄ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 8λ² λ³ν λͺ¨λ(508)λ‘ κ²°μ νλ€(S1069). λν, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ νμ±μμ΄ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 2λ² λ³ν λͺ¨λ(502)λ‘ κ²°μ νλ€(S1070).The video decoder (200) determines whether the current block is larger than or equal to the minimum split block size that limits the number of splits (S1067), and if the size of the current block is smaller than the minimum split block size, and the number of splits of the current block is limited to 1, the video decoder (200) determines the splittable direction of the current block among the horizontal and vertical directions again. Specifically, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1068), and if the current block can be split only in the vertical direction and not the horizontal direction, the video decoder (200) determines the transformation mode of the current block as the 8th transformation mode (508) without parsing additional transformation mode information separately (S1069). In addition, the video decoder (200) determines the transformation mode of the current block as the 2nd transformation mode (502) without parsing additional transformation mode information separately if the current block can be split only in the horizontal direction (S1070).
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1071), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 14λ² λ³ν λͺ¨λ(502, 503, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 14λ² λ³ν λͺ¨λ(502, 503, 514) μ€ νλλ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ€(S1072).If the number of times the current block is split is not limited to one, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1071), and if the current block can be split only in the horizontal direction, it parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 2, 3, and 14 (502, 503, and 514), which are transformation modes for splitting in the horizontal direction, from the bitstream, and determines one of transformation modes 2, 3, and 14 (502, 503, and 514) as the transformation mode of the current block based on the parsed additional transformation mode information (S1072).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1073), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 14λ² λ³ν λͺ¨λ(508, 509, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 8, 9,1 4λ² λ³ν λͺ¨λ(508, 509, 514) μ€ νλλ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ€(S1074).In addition, unless the number of times the current block is split is limited to one, the video decoder (200) determines whether the current block can be split only in the vertical direction (S1073), and if the current block can be split only in the vertical direction, it parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 8, 9, and 14 (508, 509, 514), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines one of transformation modes 8, 9, 14 (508, 509, 514) as the transformation mode of the current block based on the parsed additional transformation mode information (S1074).
μ΄ν, λ λ€λ₯Έ μμλ‘, ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)μ 8κ°μ λ³ν λͺ¨λκ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)κ° ν보 λ³ν λͺ¨λλ€ μ€ μ΅μ λ³ν λͺ¨λμ λν λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ μ€λͺ νλ€.Below, as another example, when eight conversion modes (501, 502, 503, 504, 508, 509, 510, 514) are determined as candidate conversion modes, a process in which a video encoder (100) adaptively configures conversion mode information for an optimal conversion mode among the candidate conversion modes is described.
λ 11aλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 11a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)μ 8κ°μ λ³ν λͺ¨λκ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ€μμ κ³Όμ λ€μ μμ°¨μ μΌλ‘ μννμ¬ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ€ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. When eight conversion modes (501, 502, 503, 504, 508, 509, 510, 514) of conversion modes 1, 2, 3, 4, 8, 9, 10, 14 are determined as candidate conversion modes, the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 4, 8, 9, 10, 14 (501, 502, 503, 504, 508, 509, 510, 514).
λ 11aλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1101), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ νλ€(S1102). μ΄ κ²½μ°, μ΄νμ κ³Όμ μ μνλμ§ μκ³ νμ¬ λΈλ‘μ λν λ³ν λͺ¨λ μ€μ κ³Όμ μ μ’ λ£λλ€. Referring to FIG. 11a, the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1101), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1102) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λμ λ°λΌμ νμ¬ λΈλ‘μ΄ λΆν λμλμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1103), i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄, '0'μ λ―ΈλΆν (μμ§ λλ μν λΆν μ΄ λ―Έμ‘΄μ¬), '1'μ λΆν μ κ°λ¦¬ν΄)λ₯Ό λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ μ 보λ‘μ μ€μ νμ¬ μ μ‘νλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ, κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λμΈ κ²½μ°λΌλ©΄ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '0'λ§μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨λ€(S1104). λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ'0'μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨ κ²½μ° μ΄νμ μΆκ°μ μΈ λ³ν λͺ¨λμ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ€ν΅νκ³ λ³ν λͺ¨λ μ€μ μ μ°¨λ₯Ό μ’ λ£νλ€. The video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1103), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' as information indicating whether i) vertical or horizontal division exists in the bitstream (S1104). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
λ§μ½, νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° 1λ² λ³ν λͺ¨λκ° μλκ³ νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'μ μ€μ νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό ꡬμ±ν λ€μ, 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ μ μ‘νλ€. μ΄ λ, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block can be arbitrarily divided in the vertical direction or the horizontal direction and the final transformation mode determined is not the first transformation mode and the current block is divided, the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether the vertical or horizontal division of i) exists, and then additionally indicates the transformation mode determined as the optimal transformation mode of the current block among the transformation modes 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) except for the transformation mode 1 (501) in which the current block is not divided. Transmit. At this time, the video encoder (100) can set additional transformation mode information considering the number of times the current block can be divided. The number of times the current block can be divided can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining the transformation block can be limited to a predetermined number (e.g., once).
λ€μ λ 11aλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ ν¬κΈ°κ° λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1105). λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ μΈμ½λ(100)λ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ ν보 λ³ν λͺ¨λμ ν¬ν¨λ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ 1νλ§ λΆν νλ 2, 8λ² λ³ν λͺ¨λ(502, 508)λ₯Ό κ²°μ νκ³ , 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1106), 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.Referring again to FIG. 11a, the video encoder (100) determines whether the size of the current block is greater than or equal to the minimum split block size for which the number of splits is limited (S1105). If the number of times the current block is divided is limited to one, the video encoder (100) determines the conversion modes (502, 508) that divide the current block only once among the conversion modes (502, 503, 504, 508, 509, 510, 514) included in the candidate conversion modes, excluding the conversion mode (501), and determines the conversion mode of the current block among the conversion modes (502, 508) of the 2nd and 8th blocks (S1106), and adds information indicating one of the conversion modes (502, 508) of the 2nd and 8th blocks to the bitstream as additional conversion mode information.
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1107), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 4λ² λ³ν λͺ¨λ(502, 503, 504) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1108), 2, 3, 4λ² λ³ν λͺ¨λ(502, 503, 504) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.If the number of times the current block is divided is not limited to 1, the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1107), and if the current block can be divided only in the horizontal direction, the video encoder determines the transformation mode of the current block among the transformation modes 2, 3, and 4 (502, 503, and 504), which are transformation modes for horizontal division (S1108), and adds information indicating one of the transformation modes 2, 3, and 4 (502, 503, and 504) to the bitstream as additional transformation mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1109), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 10λ² λ³ν λͺ¨λ(508, 509, 510) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1110), 8, 9, 10λ² λ³ν λͺ¨λ(508, 509, 510) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.In addition, unless the number of times the current block is split is limited to one, the video encoder (100) determines whether the current block can be split only in the vertical direction (S1109), and if the current block can be split only in the vertical direction, determines the transformation mode of the current block among transformation modes 8, 9, and 10 (508, 509, 510), which are transformation modes for splitting in the vertical direction (S1110), and configures information indicating one of the transformation modes 8, 9, and 10 (508, 509, 510) as additional transformation mode information and adds it to the bitstream.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλκ³ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S1111).In addition, if the number of times the current block is divided is not limited to 1 and the current block is not divisible in only one of the horizontal or vertical directions, i.e., if the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) and add it to the bitstream (S1111).
λ 11bλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€. λ 11bμ κ³Όμ μ λ 11aμ λ°λΌ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ³Όμ μ λμλμ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μ΄λ€.Fig. 11b is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information. The process in Fig. 11b corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 11a, and is a process in which a video decoder (200) determines a conversion mode.
λ 11bλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λ 11aμ λ°λ₯Έ λΉλμ€ μΈμ½λ(100)μμ μνλ κ³Όμ κ³Ό λμΌνκ² νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1121), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ μλ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1122).Referring to FIG. 11b, the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 11a (S1121), and if the current block is arbitrarily impossible to be vertically divided or horizontally divided, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1122).
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ₯Ό νλνμ¬ νμ±νκ³ , νμ±λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λΆν μ¬λΆλ₯Ό νλ¨νλ€(S1123). μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ‘μ '0'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1124). μ΄ κ²½μ°, λΉλμ€ λμ½λ(200)λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λ κ²°μ κ³Όμ μ μ’ λ£ν μ μλ€.The video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1123). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1124). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'μ νλν κ²½μ°, νμ¬ λΈλ‘μ΄ λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1125).When the video decoder (200) obtains '1' indicating the presence of vertical or horizontal division as the first bit of the conversion mode information, it determines whether the current block is larger than the minimum division block size for which the number of divisions is limited (S1125).
λ§μ½, νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° λ―Έλ§μΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ λμ½λ(200)λ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514)μ ν¬ν¨νλ ν보 λ³ν λͺ¨λ μ€μμ νμ¬ λΈλ‘μ 1νλ§ λΆν νλ 2, 8λ² λ³ν λͺ¨λ(502, 508)λ₯Ό κ²°μ νκ³ , 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S1126).If the size of the current block is less than the minimum split block size and the number of times the current block is split is limited to one, the video decoder (200) determines the conversion modes (502, 508) that split the current block only once among candidate conversion modes including conversion modes (502, 503, 504, 508, 509, 510, 514) excluding conversion mode 1 (501), parses conversion mode information indicating the conversion mode of the current block among conversion modes (502, 508) from the bitstream, and determines the conversion mode of the current block among conversion modes (502, 508) 2 and 8 based on the acquired additional conversion mode information (S1126).
λ§μ½, νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1127), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 4λ² λ³ν λͺ¨λ(502, 503, 504) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 4λ² λ³ν λͺ¨λ(502, 503, 504) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S1128).If the size of the current block is not greater than the minimum split block size and the number of times the current block is split is not limited to 1, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1127), and if the current block can be split only in the horizontal direction, it parses information indicating one of the conversion modes 2, 3, and 4 (502, 503, 504) that is a conversion mode for splitting in the horizontal direction from the bitstream, and determines the conversion mode of the current block among the conversion modes 2, 3, and 504 (502, 503, 504) based on the acquired additional conversion mode information (S1128).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1129), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 10λ² λ³ν λͺ¨λ(508, 509, 510) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 8, 9, 10λ² λ³ν λͺ¨λ(508, 509, 510) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S1130).In addition, unless the number of times the current block is split is limited to 1, the video decoder (200) determines whether the current block can be split only in the vertical direction (S1129), and if the current block can be split only in the vertical direction, the video decoder parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 8, 9, and 10 (508, 509, 510), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines the transformation mode of the current block from among the transformation modes 8, 9, and 10 (508, 509, 510) based on the acquired additional transformation mode information (S1130).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλκ³ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(200)λ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S1131).In addition, if the number of times the current block is split is limited to one and the current block is not splittable in only one of the horizontal direction and the vertical direction, i.e., if the current block is splittable in both the horizontal direction and the vertical direction, the video decoder (200) parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) from the bitstream, and determines the transformation mode of the current block from among the transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) based on the acquired additional transformation mode information (S1131).
λ 11cλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.Figure 11c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)κ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ€μμ κ³Όμ λ€μ μμ°¨μ μΌλ‘ μννμ¬ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ€ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. When conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) are determined as candidate conversion modes, the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514).
λ 11cλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1141), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ νλ€(S1142). μ΄ κ²½μ°, μ΄νμ κ³Όμ μ μνλμ§ μκ³ νμ¬ λΈλ‘μ λν λ³ν λͺ¨λ μ€μ κ³Όμ μ μ’ λ£λλ€. Referring to FIG. 11c, the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1141), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1142) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λμ λ°λΌμ νμ¬ λΈλ‘μ΄ λΆν λμλμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1143), i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄, '0'μ λ―ΈλΆν (μμ§ λλ μν λΆν μ΄ λ―Έμ‘΄μ¬), '1'μ λΆν μ κ°λ¦¬ν΄)λ₯Ό λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ μ 보λ‘μ μ€μ νμ¬ μ μ‘νλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ, κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λμΈ κ²½μ°λΌλ©΄ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '0'λ§μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨λ€(S1144). λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ'0'μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨ κ²½μ° μ΄νμ μΆκ°μ μΈ λ³ν λͺ¨λμ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ€ν΅νκ³ λ³ν λͺ¨λ μ€μ μ μ°¨λ₯Ό μ’ λ£νλ€. The video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1143), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' as information indicating whether i) vertical or horizontal division exists in the bitstream (S1144). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
λ§μ½, νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° 1λ² λ³ν λͺ¨λκ° μλκ³ νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'μ μ€μ νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό ꡬμ±ν λ€μ, 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ μ μ‘νλ€. μ΄ λ, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block can be arbitrarily divided vertically or horizontally and the final transformation mode determined is not transformation mode 1 and the current block is divided, the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514), excluding transformation mode 1 (501) in which the current block is not divided. At this time, the video encoder (100) can set additional transformation mode information considering the number of times the current block can be split. The number of times the current block can be split can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be split for determining the transformation block can be limited to a predetermined number (e.g., once).
λ€μ λ 11cλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ ν¬κΈ°κ° λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1145). λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ μΈμ½λ(100)λ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ ν보 λ³ν λͺ¨λμ ν¬ν¨λ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514) μ€μμ νμ¬ λΈλ‘μ 1νλ§ λΆν νλ 2, 8λ² λ³ν λͺ¨λ(502, 508)λ₯Ό κ²°μ νκ³ , 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1146), 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.Referring back to FIG. 11c, the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S1145). If the number of splits of the current block is limited to 1, the video encoder (100) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among the 2nd, 3rd, 4th, 8th, 9th, 10th, and 14th conversion modes (502, 503, 508, 509, 514) included in the candidate conversion modes, excluding the 1st conversion mode (501), determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) (S1146), and adds information indicating one of the 2nd and 8th conversion modes (502, 508) to the bitstream as additional conversion mode information.
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1147), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 4, 14λ² λ³ν λͺ¨λ(502, 503, 504, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1148), 2, 3, 4, 14λ² λ³ν λͺ¨λ(502, 503, 504, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.If the number of times the current block is divided is not limited to 1, the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1147), and if the current block can be divided only in the horizontal direction, the video encoder determines the transformation mode of the current block among the transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514), which are transformation modes for horizontal division (S1148), and adds information indicating one of the transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514) to the bitstream as additional transformation mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1149), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 10, 14λ² λ³ν λͺ¨λ(508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1150), 8, 9, 10, 14λ² λ³ν λͺ¨λ(508, 509, 510, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.In addition, unless the number of times the current block is split is limited to one, the video encoder (100) determines whether the current block can be split only in the vertical direction (S1149), and if the current block can be split only in the vertical direction, determines the transformation mode of the current block among the transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514) that are transformation modes for splitting in the vertical direction (S1150), and adds information indicating one of the transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514) to the bitstream as additional transformation mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλκ³ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S1151).In addition, if the number of times the current block is divided is not limited to 1 and the current block is not divisible in only one of the horizontal or vertical directions, i.e., if the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) and add it to the bitstream (S1151).
λ 11dλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€. λ 11dμ κ³Όμ μ λ 11cμ λ°λΌ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ³Όμ μ λμλμ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μ΄λ€.Fig. 11d is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information. The process in Fig. 11d corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 11c, and is a process in which a video decoder (200) determines a conversion mode.
λ 11dλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λ 11cμ λ°λ₯Έ λΉλμ€ μΈμ½λ(100)μμ μνλ κ³Όμ κ³Ό λμΌνκ² νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1161), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ μλ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1162).Referring to FIG. 11d, the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 11c (S1161), and if the current block is arbitrarily impossible to be vertically divided or horizontally divided, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1162).
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ₯Ό νλνμ¬ νμ±νκ³ , νμ±λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λΆν μ¬λΆλ₯Ό νλ¨νλ€(S1163). μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ‘μ '0'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1164). μ΄ κ²½μ°, λΉλμ€ λμ½λ(200)λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λ κ²°μ κ³Όμ μ μ’ λ£ν μ μλ€.The video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1163). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1164). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'μ νλν κ²½μ°, νμ¬ λΈλ‘μ΄ λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1165).When the video decoder (200) obtains '1' as the first bit of the conversion mode information indicating the presence of vertical or horizontal division, it determines whether the current block is larger than the minimum division block size for which the number of divisions is limited (S1165).
λ§μ½, νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° λ―Έλ§μΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ λμ½λ(200)λ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514)μ ν¬ν¨νλ ν보 λ³ν λͺ¨λ μ€μμ νμ¬ λΈλ‘μ 1νλ§ λΆν νλ 2, 8λ² λ³ν λͺ¨λ(502, 508) λ₯Ό κ²°μ νκ³ , 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 8λ² λ³ν λͺ¨λ(502, 508) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S1166).If the number of times the current block is split is limited because the size of the current block is less than the minimum split block size, the video decoder (200) determines the 2nd and 8th conversion modes (502, 508) that split the current block only once among candidate conversion modes including the 2nd, 3rd, 4th, 8th, 9th, 10th, and 14th conversion modes (502, 503, 504, 508, 509, 510, 514) excluding the 1st conversion mode (501), parses conversion mode information indicating the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) from the bitstream, and determines the conversion mode of the current block among the 2nd and 8th conversion modes (502, 508) based on the obtained additional conversion mode information (S1166).
λ§μ½, νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1167), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 4, 14λ² λ³ν λͺ¨λ(502, 503, 504, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 4, 14λ² λ³ν λͺ¨λ(502, 503, 504, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S1168).If the size of the current block is not limited to the minimum split block size and the number of times the current block is split is not limited, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1167), and if the current block can be split only in the horizontal direction, parses information indicating one of the conversion modes 2, 3, 4, and 14 (502, 503, 504, and 514) that are conversion modes for splitting in the horizontal direction from the bitstream, and determines the conversion mode of the current block among the conversion modes 2, 3, 4, and 14 (502, 503, 504, and 514) based on the acquired additional conversion mode information (S1168).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1169), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 10, 14λ² λ³ν λͺ¨λ(508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 8, 9, 10, 14λ² λ³ν λͺ¨λ(508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S1170).In addition, unless the number of times the current block is split is limited to 1, the video decoder (200) determines whether the current block can be split only in the vertical direction (S1169), and if the current block can be split only in the vertical direction, the video decoder parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514), which are transformation modes in which the current block is split in the vertical direction, from the bitstream, and determines the transformation mode of the current block from among the transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514) based on the acquired additional transformation mode information (S1170).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλκ³ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λλ μμ§ λ°©ν₯ μ€ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°κ° μλ κ²½μ°, μ¦ νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(200)λ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νλλ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S1171).In addition, if the number of times the current block is split is not limited to one and the current block is not splittable in only one of the horizontal direction and the vertical direction, i.e., if the current block is splittable in both the horizontal direction and the vertical direction, the video decoder (200) parses the transformation mode information indicating the transformation mode of the current block from among the transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) from the bitstream, and determines the transformation mode of the current block from among the transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) based on the acquired additional transformation mode information (S1171).
λ 12aλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 12a is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)κ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ€μμ κ³Όμ λ€μ μμ°¨μ μΌλ‘ μννμ¬ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ€ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. When conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) are determined as candidate conversion modes, the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514).
λ 12aλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1201), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ νλ€(S1202). μ΄ κ²½μ°, μ΄νμ κ³Όμ μ μνλμ§ μκ³ νμ¬ λΈλ‘μ λν λ³ν λͺ¨λ μ€μ κ³Όμ μ μ’ λ£λλ€. Referring to FIG. 12a, the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1201), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1202) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λμ λ°λΌμ νμ¬ λΈλ‘μ΄ λΆν λμλμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1203), i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄, '0'μ λ―ΈλΆν (μμ§ λλ μν λΆν μ΄ λ―Έμ‘΄μ¬), '1'μ λΆν μ κ°λ¦¬ν΄)λ₯Ό λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ μ 보λ‘μ μ€μ νμ¬ μ μ‘νλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ, κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λμΈ κ²½μ°λΌλ©΄ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '0'λ§μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨λ€(S1204). λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ'0'μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨ κ²½μ° μ΄νμ μΆκ°μ μΈ λ³ν λͺ¨λμ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ€ν΅νκ³ λ³ν λͺ¨λ μ€μ μ μ°¨λ₯Ό μ’ λ£νλ€. The video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1203), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' in the bitstream as information indicating whether i) vertical or horizontal division exists (S1204). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
λ§μ½, νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν κ°λ₯νκ³ κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° 1λ² λ³ν λͺ¨λκ° μλκ³ νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'μ μ€μ νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό ꡬμ±ν λ€μ, 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ μ μ‘νκ±°λ μμμ μΌλ‘ μ€μ νλ€. If the current block is arbitrarily vertically or horizontally divisible and the determined final transformation mode is not transformation mode 1 and the current block is divided, the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) excluding transformation mode 1 (501) in which the current block is not divided. Set implicitly.
μ΄λ₯Ό μνμ¬, λ¨Όμ λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1205). νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S1206).To this end, the video encoder (100) first determines whether the current block is divisible in both the vertical and horizontal directions (S1205). If the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) and add it to the bitstream (S1206).
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§λ μκ³ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block is not divisible in both vertical and horizontal directions but is divisible in only one direction, the video encoder (100) may set additional transformation mode information considering the number of times the current block can be divided. The number of times the current block can be divided may be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block may be limited to a predetermined number (e.g., once).
λ€μ λ 12aλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ ν¬κΈ°κ° λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1207). λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ μΈμ½λ(100)λ λ€μ μν λ° μμ§ λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν κ°λ₯ν λ°©ν₯μ νλ¨νλ€. ꡬ체μ μΌλ‘, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1208), μν λ°©ν₯μ΄ μλ μμ§ λ°©ν₯μ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 8λ² λ³ν λͺ¨λ(508)λ‘ κ²°μ νκ³ (S1209), λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ λΆκ°νμ§ μλλ€. λν, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 2λ² λ³ν λͺ¨λ(502)λ‘ κ²°μ νκ³ (S1210), λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ λΆκ°νμ§ μλλ€.Referring back to FIG. 12A, the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S1207). If the number of splits of the current block is limited to 1, the video encoder (100) determines the splittable direction of the current block among the horizontal and vertical directions. Specifically, the video encoder (100) determines whether the current block can be split only in the horizontal direction (S1208), and if the current block can be split only in the vertical direction and not the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 8 (508) (S1209), and does not add any additional transformation mode information to the bitstream. In addition, if the current block can be split only in the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 2 (502) (S1210), and does not add any additional transformation mode information to the bitstream.
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1211), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 4λ² λ³ν λͺ¨λ(502, 503, 504) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1212), 2, 3, 4λ² λ³ν λͺ¨λ(502, 503, 504) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.If the number of times the current block is divided is not limited to 1, the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1211), and if the current block can be divided only in the horizontal direction, the video encoder determines the transformation mode of the current block among the transformation modes 2, 3, and 4 (502, 503, and 504), which are transformation modes for horizontal division (S1212), and adds information indicating one of the transformation modes 2, 3, and 4 (502, 503, and 504) to the bitstream as additional transformation mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1213), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 10λ² λ³ν λͺ¨λ(508, 509, 510) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1214), 8, 9, 10λ² λ³ν λͺ¨λ(508, 509, 510) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.In addition, unless the number of times the current block is split is limited to one, the video encoder (100) determines whether the current block can be split only in the vertical direction (S1213), and if the current block can be split only in the vertical direction, determines the transformation mode of the current block among transformation modes 8, 9, and 10 (508, 509, 510), which are transformation modes for splitting in the vertical direction (S1214), and adds information indicating one of the transformation modes 8, 9, and 10 (508, 509, 510) to the bitstream as additional transformation mode information.
λ 12bλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€. λ 12bμ κ³Όμ μ λ 12aμ λ°λΌ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ³Όμ μ λμλμ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μ΄λ€.Fig. 12b is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information. The process in Fig. 12b corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 12a, and is a process in which a video decoder (200) determines a conversion mode.
λ 12bλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λ 12aμ λ°λ₯Έ λΉλμ€ μΈμ½λ(100)μμ μνλ κ³Όμ κ³Ό λμΌνκ² νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1221), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ μλ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1222).Referring to FIG. 12b, the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 12a (S1221), and if the current block is arbitrarily impossible to be divided vertically or horizontally, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1222).
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ₯Ό νλνμ¬ νμ±νκ³ , νμ±λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λΆν μ¬λΆλ₯Ό νλ¨νλ€(S1223). μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ‘μ '0'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1224). μ΄ κ²½μ°, λΉλμ€ λμ½λ(200)λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λ κ²°μ κ³Όμ μ μ’ λ£ν μ μλ€.The video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1223). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1224). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'μ νλν κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ° μμ§ λ°©ν₯ λͺ¨λ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1225). νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(100)λ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€(S1226).When the video decoder (200) obtains '1' as the first bit of the conversion mode information indicating the presence of vertical or horizontal division, the video decoder (200) determines whether the current block is divisible in both horizontal and vertical directions (S1225). If the current block is divisible in both horizontal and vertical directions, the video decoder (100) may additionally parse information indicating the transformation mode of the current block from among transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) from the bitstream, and determine the transformation mode of the current block from among transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) based on the parsed additional transformation mode information (S1226).
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§λ μκ³ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±ν μ§ μ¬λΆλ₯Ό κ²°μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block is not divisible in both the vertical and horizontal directions but is divisible in only one direction, the video decoder (100) can determine whether to parse additional transformation mode information by considering the number of times the current block can be divided. The number of times the current block can be divided can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block can be limited to a predetermined number (e.g., once).
λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1227), λ§μ½ νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° λ―Έλ§μΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ λμ½λ(200)λ λ€μ μν λ° μμ§ λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν κ°λ₯ν λ°©ν₯μ νλ¨νλ€. ꡬ체μ μΌλ‘, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1228), μν λ°©ν₯μ΄ μλ μμ§ λ°©ν₯μ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ νμ±μμ΄ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 8λ² λ³ν λͺ¨λ(508)λ‘ κ²°μ νλ€(S1229). λν, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ νμ±μμ΄ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 2λ² λ³ν λͺ¨λ(502)λ‘ κ²°μ νλ€(S1230).The video decoder (200) determines whether the current block is larger than or equal to the minimum split block size that limits the number of splits (S1227), and if the size of the current block is smaller than the minimum split block size, and the number of splits of the current block is limited to 1, the video decoder (200) determines the splittable direction of the current block among the horizontal and vertical directions again. Specifically, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1228), and if the current block can be split only in the vertical direction and not the horizontal direction, the video decoder (200) determines the transformation mode of the current block as the 8th transformation mode (508) without parsing additional transformation mode information separately (S1229). In addition, the video decoder (200) determines the transformation mode of the current block as the 2nd transformation mode (502) without parsing additional transformation mode information separately (S1230) if the current block can be split only in the horizontal direction.
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1231), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 4λ² λ³ν λͺ¨λ(502, 503, 504) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 4λ² λ³ν λͺ¨λ(502, 503, 504) μ€ νλλ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ€(S1232).If the number of times the current block is split is not limited to 1, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1231), and if the current block can be split only in the horizontal direction, it parses additional conversion mode information indicating the conversion mode of the current block from among conversion modes 2, 3, and 4 (502, 503, and 504), which are conversion modes for splitting in the horizontal direction, from the bitstream, and determines one of conversion modes 2, 3, and 4 (502, 503, and 504) as the conversion mode of the current block based on the parsed additional conversion mode information (S1232).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1233), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 10λ² λ³ν λͺ¨λ(508, 509, 510) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 8, 9, 10λ² λ³ν λͺ¨λ(508, 509, 510) μ€ νλλ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ€(S1234).In addition, unless the number of times the current block is split is limited to one, the video decoder (200) determines whether the current block can be split only in the vertical direction (S1233), and if the current block can be split only in the vertical direction, it parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 8, 9, and 10 (508, 509, 510), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines one of transformation modes 8, 9, and 10 (508, 509, 510) as the transformation mode of the current block based on the parsed additional transformation mode information (S1234).
λ 12cλ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ ꡬμ±νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 12c is a flow chart showing another example of a process in which a video encoder (100) adaptively configures conversion mode information.
ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)κ° κ²°μ λ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ λ€μμ κ³Όμ λ€μ μμ°¨μ μΌλ‘ μννμ¬ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ€ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. When conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) are determined as candidate conversion modes, the video encoder (100) can sequentially perform the following processes to set conversion mode information indicating the conversion mode determined as the conversion mode of the current block among conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514).
λ 12cλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1241), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ νλ€(S1242). μ΄ κ²½μ°, μ΄νμ κ³Όμ μ μνλμ§ μκ³ νμ¬ λΈλ‘μ λν λ³ν λͺ¨λ μ€μ κ³Όμ μ μ’ λ£λλ€. Referring to FIG. 12c, the video encoder (100) determines the horizontal and vertical divisibility of the current block (S1241), and if the current block cannot be arbitrarily divided into both vertical and horizontal directions, sets the conversion mode of the current block to conversion mode 1 (501) (S1242) without setting separate conversion mode information. In this case, the following process is not performed, and the conversion mode setting process for the current block is terminated.
λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λμ λ°λΌμ νμ¬ λΈλ‘μ΄ λΆν λμλμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1243), i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄, '0'μ λ―ΈλΆν (μμ§ λλ μν λΆν μ΄ λ―Έμ‘΄μ¬), '1'μ λΆν μ κ°λ¦¬ν΄)λ₯Ό λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ μ 보λ‘μ μ€μ νμ¬ μ μ‘νλ€. μλ₯Ό λ€μ΄, λΉλμ€ μΈμ½λ(100)λ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ΄ κ°λ₯νλ©΄μ, κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λμΈ κ²½μ°λΌλ©΄ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '0'λ§μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨λ€(S1244). λΉλμ€ μΈμ½λ(100)λ λ³ν λͺ¨λ μ 보λ‘μ'0'μ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¨ κ²½μ° μ΄νμ μΆκ°μ μΈ λ³ν λͺ¨λμ μ 보λ₯Ό ꡬμ±νλ κ³Όμ μ μ€ν΅νκ³ λ³ν λͺ¨λ μ€μ μ μ°¨λ₯Ό μ’ λ£νλ€. The video encoder (100) determines whether the current block has been divided according to the optimal transformation mode of the current block, unless both vertical division and horizontal division are arbitrarily impossible for the current block (S1243), and sets and transmits information indicating whether i) vertical or horizontal division exists (e.g., '0' indicates non-division (no vertical or horizontal division exists), '1' indicates division) as the first information of the transformation mode information. For example, if the video encoder (100) allows arbitrarily vertical division or horizontal division and the determined final transformation mode is transformation mode 1 in which the current block is not divided, the video encoder (100) includes only '0' in the bitstream as information indicating whether i) vertical or horizontal division exists (S1244). If the video encoder (100) includes '0' in the bitstream as the transformation mode information, the video encoder skips the process of configuring the information of the additional transformation mode below and ends the transformation mode setting procedure.
λ§μ½, νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν κ°λ₯νκ³ κ²°μ λ μ΅μ’ λ³ν λͺ¨λκ° 1λ² λ³ν λͺ¨λκ° μλκ³ νμ¬ λΈλ‘μ΄ λΆν λλ κ²½μ°, λΉλμ€ μΈμ½λ(100)λ i)μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'μ μ€μ νμ¬ λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ₯Ό ꡬμ±ν λ€μ, 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈνκ³ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€ νμ¬ λΈλ‘μ μ΅μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ μ μ‘νκ±°λ μμμ μΌλ‘ μ€μ νλ€. If the current block is arbitrarily vertically or horizontally divisible and the determined final transformation mode is not transformation mode 1 and the current block is divided, the video encoder (100) configures the first bit of the transformation mode information by setting '1' as information indicating whether vertical or horizontal division of i) exists, and then additionally transmits information indicating a transformation mode determined as the optimal transformation mode of the current block among transformation modes 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) excluding transformation mode 1 (501) in which the current block is not divided. Set implicitly.
μ΄λ₯Ό μνμ¬, λ¨Όμ λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1245). νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ μΆκ°ν μ μλ€(S1246).To this end, the video encoder (100) first determines whether the current block is divisible in both the vertical and horizontal directions (S1245). If the current block is divisible in both the horizontal and vertical directions, the video encoder (100) can set information indicating the conversion mode of the current block among conversion modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) and add it to the bitstream (S1246).
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§λ μκ³ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block is not divisible in both vertical and horizontal directions but is divisible in only one direction, the video encoder (100) may set additional transformation mode information considering the number of times the current block can be divided. The number of times the current block can be divided may be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block may be limited to a predetermined number (e.g., once).
λ€μ λ 12cλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ ν¬κΈ°κ° λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1247). λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ μΈμ½λ(100)λ λ€μ μν λ° μμ§ λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν κ°λ₯ν λ°©ν₯μ νλ¨νλ€. ꡬ체μ μΌλ‘, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1248), μν λ°©ν₯μ΄ μλ μμ§ λ°©ν₯μ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 8λ² λ³ν λͺ¨λ(508)λ‘ κ²°μ νκ³ (S1249), λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ λΆκ°νμ§ μλλ€. λν, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 2λ² λ³ν λͺ¨λ(502)λ‘ κ²°μ νκ³ (S1250), λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ λΆκ°νμ§ μλλ€.Referring back to FIG. 12c, the video encoder (100) determines whether the size of the current block is equal to or larger than the minimum split block size for which the number of splits is limited (S1247). If the number of splits of the current block is limited to 1, the video encoder (100) determines the splittable direction of the current block among the horizontal and vertical directions. Specifically, the video encoder (100) determines whether the current block can be split only in the horizontal direction (S1248), and if the current block can be split only in the vertical direction and not the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 8 (508) (S1249), and does not add any additional transformation mode information to the bitstream. In addition, if the current block can be split only in the horizontal direction, the video encoder (100) determines the transformation mode of the current block as transformation mode 2 (502) (S1250), and does not add any additional transformation mode information to the bitstream.
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1251), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 4, 14λ² λ³ν λͺ¨λ(502, 503, 504, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1252), 2, 3, 4, 14λ² λ³ν λͺ¨λ(502, 503, 504, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.If the number of times the current block is divided is not limited to 1, the video encoder (100) determines whether the current block can be divided only in the horizontal direction (S1251), and if the current block can be divided only in the horizontal direction, the video encoder determines the transformation mode of the current block among the transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514), which are transformation modes for horizontal division (S1252), and adds information indicating one of the transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514) to the bitstream as additional transformation mode information.
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ μΈμ½λ(100)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1253), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 10, 14λ² λ³ν λͺ¨λ(508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ (S1254), 8, 9, 10, 14λ² λ³ν λͺ¨λ(508, 509, 510, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°μ μΈ λ³ν λͺ¨λ μ λ³΄λ‘ κ΅¬μ±νμ¬ λΉνΈμ€νΈλ¦Όμ λΆκ°νλ€.In addition, unless the number of times the current block is split is limited to one, the video encoder (100) determines whether the current block can be split only in the vertical direction (S1253), and if the current block can be split only in the vertical direction, determines the conversion mode of the current block among conversion modes 8, 9, 10, and 14 (508, 509, 510, and 514), which are conversion modes for splitting in the vertical direction (S1254), and adds information indicating one of conversion modes 8, 9, 10, and 14 (508, 509, 510, and 514) to the bitstream as additional conversion mode information.
λ 12dλ λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ μμ μΌλ‘ κ²°μ νλ κ³Όμ μ λ λ€λ₯Έ μλ₯Ό λνλΈ νλ‘μ° μ°¨νΈμ΄λ€. λ 12dμ κ³Όμ μ λ 12cμ λ°λΌ λΉλμ€ μΈμ½λ(100)κ° λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ³Όμ μ λμλμ΄, λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λλ₯Ό κ²°μ νλ κ³Όμ μ΄λ€.Fig. 12d is a flowchart illustrating another example of a process in which a video decoder (200) adaptively determines conversion mode information. The process in Fig. 12d corresponds to the process in which a video encoder (100) sets conversion mode information according to Fig. 12c, and is a process in which a video decoder (200) determines a conversion mode.
λ 12dλ₯Ό μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λ 12cμ λ°λ₯Έ λΉλμ€ μΈμ½λ(100)μμ μνλ κ³Όμ κ³Ό λμΌνκ² νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ± λ° μμ§ λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ (S1261), λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³λμ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ μλ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1262).Referring to FIG. 12d, the video decoder (200) determines the horizontal divisibility and vertical divisibility of the current block in the same manner as the process performed in the video encoder (100) according to FIG. 12c (S1261), and if the current block is arbitrarily impossible to be divided in both the vertical and horizontal directions, the conversion mode of the current block can be set to conversion mode 1 (501) without parsing separate conversion mode information from the bitstream (S1262).
λΉλμ€ λμ½λ(200)λ λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ° μν λ°©ν₯ λΆν μ΄ λͺ¨λ λΆκ°λ₯ν κ²½μ°κ° μλλΌλ©΄, λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ₯Ό νλνμ¬ νμ±νκ³ , νμ±λ λ³ν λͺ¨λ μ 보λ‘λΆν° νμ¬ λΈλ‘μ λΆν μ¬λΆλ₯Ό νλ¨νλ€(S1263). μλ₯Ό λ€μ΄, λ§μ½ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λλ μν λ°©ν₯ λΆν μ€ μ μ΄λ νλκ° κ°λ₯νλ©΄μ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° λ³ν λͺ¨λ μ 보λ‘μ '0'μ΄ νλλ κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό νμ¬ λΈλ‘μ΄ λΆν λμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ‘ μ€μ ν μ μλ€(S1264). μ΄ κ²½μ°, λΉλμ€ λμ½λ(200)λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ§ μκ³ νμ¬ λΈλ‘μ λ³ν λͺ¨λ κ²°μ κ³Όμ μ μ’ λ£ν μ μλ€.The video decoder (200) obtains and parses transformation mode information from the bitstream, unless the current block is arbitrarily incapable of both vertical and horizontal division, and determines whether the current block is to be divided based on the parsed transformation mode information (S1263). For example, if the current block is arbitrarily capable of at least one of vertical division or horizontal division and '0' is obtained as transformation mode information from the bitstream, the video decoder (200) can set the transformation mode of the current block to transformation mode 1 (501) in which the current block is not to be divided (S1264). In this case, the video decoder (200) can end the process of determining the transformation mode of the current block without parsing additional transformation mode information.
λΉλμ€ λμ½λ(200)κ° λ³ν λͺ¨λ μ 보μ 첫 λ²μ§Έ λΉνΈλ‘μ μμ§ λλ μν λΆν μ΄ μ‘΄μ¬ν¨μ κ°λ¦¬ν€λ '1'μ νλν κ²½μ°, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ° μμ§ λ°©ν₯ λͺ¨λ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νλ€(S1265). νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(100)λ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό μΆκ°λ‘ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€(S1266).When the video decoder (200) obtains '1' as the first bit of the conversion mode information indicating the presence of vertical or horizontal division, the video decoder (200) determines whether the current block is divisible in both horizontal and vertical directions (S1265). If the current block is divisible in both horizontal and vertical directions, the video decoder (100) may additionally parse information indicating the transformation mode of the current block from among transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) from the bitstream, and determine the transformation mode of the current block from among transformation modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514) based on the parsed additional transformation mode information (S1266).
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯νμ§λ μκ³ νλμ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, λΉλμ€ λμ½λ(100)λ νμ¬ λΈλ‘μ λΆν κ°λ₯ νμλ₯Ό κ³ λ €νμ¬ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό νμ±ν μ§ μ¬λΆλ₯Ό κ²°μ ν μ μλ€. λΆν κ°λ₯ νμλ λΈλ‘ ν¬κΈ° λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ λ€μνκ² μ€μ λ μ μλ€. μλ₯Ό λ€μ΄, μμ ν¬κΈ° λ―Έλ§μ λΈλ‘μ λν΄μλ λ³ν λΈλ‘ κ²°μ μ μν νμ¬ λΈλ‘μ λΆν κ°λ₯ νμκ° μμ νμ(μλ₯Ό λ€μ΄, 1ν)λ‘ μ νλ μ μλ€.If the current block is not divisible in both the vertical and horizontal directions but is divisible in only one direction, the video decoder (100) can determine whether to parse additional transformation mode information by considering the number of times the current block can be divided. The number of times the current block can be divided can be set in various ways based on additional information such as the block size. For example, for blocks smaller than a predetermined size, the number of times the current block can be divided for determining a transformation block can be limited to a predetermined number (e.g., once).
λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ λΆν νμκ° μ νλλ μ΅μ λΆν λΈλ‘ ν¬κΈ° μ΄μμΈμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1267), λ§μ½ νμ¬ λΈλ‘μ ν¬κΈ°κ° μ΅μ λΆν λΈλ‘ ν¬κΈ° λ―Έλ§μΌλ‘ νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°λΌλ©΄, λΉλμ€ λμ½λ(200)λ λ€μ μν λ° μμ§ λ°©ν₯ μ€ νμ¬ λΈλ‘μ λΆν κ°λ₯ν λ°©ν₯μ νλ¨νλ€. ꡬ체μ μΌλ‘, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1268), μν λ°©ν₯μ΄ μλ μμ§ λ°©ν₯μ μΌ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ νμ±μμ΄ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 8λ² λ³ν λͺ¨λ(508)λ‘ κ²°μ νλ€(S1269). λν, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ° λ³λμ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보μ νμ±μμ΄ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό 2λ² λ³ν λͺ¨λ(502)λ‘ κ²°μ νλ€(S1270).The video decoder (200) determines whether the current block is larger than or equal to the minimum split block size that limits the number of splits (S1267), and if the size of the current block is smaller than the minimum split block size, and the number of splits of the current block is limited to 1, the video decoder (200) determines the splittable direction of the current block among the horizontal and vertical directions again. Specifically, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1268), and if the current block can be split only in the vertical direction and not the horizontal direction, the video decoder (200) determines the transformation mode of the current block as the 8th transformation mode (508) without parsing additional transformation mode information separately (S1269). In addition, the video decoder (200) determines the transformation mode of the current block as the 2nd transformation mode (502) without parsing additional transformation mode information separately (S1270) if the current block can be split only in the horizontal direction.
λ§μ½, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μν λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1271), νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μν λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 2, 3, 4, 14λ² λ³ν λͺ¨λ(502, 503, 504, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 2, 3, 4, 14λ² λ³ν λͺ¨λ(502, 503, 504, 514) μ€ νλλ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ€(S1272).If the number of times the current block is split is not limited to one, the video decoder (200) determines whether the current block can be split only in the horizontal direction (S1271), and if the current block can be split only in the horizontal direction, the video decoder parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514), which are transformation modes for splitting in the horizontal direction, from the bitstream, and determines one of transformation modes 2, 3, 4, and 14 (502, 503, 504, and 514) as the transformation mode of the current block based on the parsed additional transformation mode information (S1272).
λν, νμ¬ λΈλ‘μ λΆν νμκ° 1νλ‘ μ νλλ κ²½μ°κ° μλλΌλ©΄, λΉλμ€ λμ½λ(200)λ νμ¬ λΈλ‘μ΄ μμμ μΌλ‘ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨νκ³ (S1273), νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λΆν λ§ κ°λ₯ν κ²½μ° μμ§ λ°©ν₯μΌλ‘ λΆν λλ λ³ν λͺ¨λμΈ 8, 9, 10, 14λ² λ³ν λͺ¨λ(508, 509, 510, 514) μ€μμ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μΆκ°μ μΈ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νμ±νκ³ , νμ±λ μΆκ° λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ 8, 9, 10, 14λ² λ³ν λͺ¨λ(508, 509, 510, 514) μ€ νλλ₯Ό νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ νλ€(S1274).In addition, unless the number of times the current block is split is limited to one, the video decoder (200) determines whether the current block can be split only in the vertical direction (S1273), and if the current block can be split only in the vertical direction, the video decoder parses additional transformation mode information indicating the transformation mode of the current block from among transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514), which are transformation modes for splitting in the vertical direction, from the bitstream, and determines one of transformation modes 8, 9, 10, and 14 (508, 509, 510, and 514) as the transformation mode of the current block based on the parsed additional transformation mode information (S1274).
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ₯Ό ν¨μ¨μ μΌλ‘ μ μ‘νκΈ° μν΄μ λ³ν λͺ¨λ μ 보λ νμ¬ λΈλ‘ μ΄μ μ λ³ν λͺ¨λλ‘ κ²°μ λ λ³ν λͺ¨λμ ν΅κ³ μ 보μ κΈ°μ΄νμ¬ κ΅¬μ±λ μ μλ€. μΌ μλ‘, νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ μ μ©λ λ³ν λͺ¨λ ν΅κ³ μ λ³΄κ° μ΄μ©λ μ μλ€. . νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ μ μ©λ λ³ν λͺ¨λμ ν΅κ³μ λΉμ¨ μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ΄ νλ¨λκ³ , νλ¨λ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬ λ³ν λͺ¨λ μ λ³΄κ° μ μμ μΌλ‘ ꡬμ±λ μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ μμΈ‘ λ° μ’μΈ‘μ μμΉν μ£Όλ³ λΈλ‘λ€μ λ³ν λͺ¨λλ‘μ λΆν μ΄ μνλμ§ μλ 1λ² λ³ν λͺ¨λ(501)λ§ μ΄μ©λ κ²½μ°, νμ¬ λΈλ‘μ μμ§ λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ μ‘΄μ¬νμ§ μλ κ²μΌλ‘ νλ¨λ μ μλ€. λ§μ½, μ£Όλ³ λΈλ‘λ€μ λ³ν λͺ¨λλ‘μ μμ§ λΆν μ΄ μνλλ 8~13λ² λ³ν λͺ¨λλ€(508, 509, 510, 511, 512, 513)κ³Ό 4λΆν λλ 14λ² λ³ν λͺ¨λ(514)λ ν¬ν¨λμ§ μκ³ , μν λ°©ν₯ λΆν μ΄ μνλλ 2~7λ² λ³ν λͺ¨λλ€(502, 503, 504, 505, 506, 507) μ€ μ΄λ νλμ λ³ν λͺ¨λκ° ν¬ν¨λ κ²½μ°, νμ¬ λΈλ‘μ μν λ°©ν₯ λΆν κ°λ₯μ±λ§μ΄ μ‘΄μ¬νλ κ²μΌλ‘ νλ¨λ μ μλ€. μ μ¬νκ², λ§μ½, μ£Όλ³ λΈλ‘λ€μ λ³ν λͺ¨λλ‘μ μν λ°©ν₯ λΆν μ΄ μνλλ 2~7λ² λ³ν λͺ¨λλ€(502, 503, 504, 505, 506, 507) κ³Ό 4λΆν λλ λ³ν λͺ¨λ(514)λ ν¬ν¨λμ§ μκ³ , μμ§ λ°©ν₯ λΆν μ΄ μνλλ 8~13λ² λ³ν λͺ¨λλ€(508, 509, 510, 511, 512, 513) μ€ μ΄λ νλμ λ³ν λͺ¨λκ° ν¬ν¨λ κ²½μ°, νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ±λ§μ΄ μ‘΄μ¬νλ κ²μΌλ‘ νλ¨λ μ μλ€. λ§μ½, μ£Όλ³ λΈλ‘λ€μ λ³ν λͺ¨λλ‘μ μν λΆν μ΄ μνλλ 2~7λ² λ³ν λͺ¨λλ€(502, 503, 504, 505, 506, 507), μμ§ λ°©ν₯ λΆν μ΄ μνλλ 8~13λ² λ³ν λͺ¨λλ€(508, 509, 510, 511, 512, 513), 4λΆν λλ λ³ν λͺ¨λ(514)κ° νΌμ¬λμ΄ ν¬ν¨λ κ²½μ°, νμ¬ λΈλ‘μ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λͺ¨λλ‘ λΆν κ°λ₯ν κ²μΌλ‘ νλ¨λ μ μλ€.In one embodiment, in order to efficiently transmit the transformation mode applied to the current block, the transformation mode information may be configured based on statistical information of the transformation mode determined as the transformation mode before the current block. For example, the transformation mode statistical information applied to the surrounding blocks of the current block may be used. The vertical divisibility and the horizontal divisibility of the current block may be determined based on the statistical ratio information of the transformation mode applied to the surrounding blocks of the current block, and the transformation mode information may be adaptively configured based on the determined vertical divisibility and horizontal divisibility of the current block. For example, when only the transformation mode 1 (501) in which no division is performed is used as the transformation mode of the surrounding blocks located above and to the left of the current block, the vertical and horizontal divisibility of the current block may be determined to not exist. If any one of the transformation modes 2 to 7 (502, 503, 504, 505, 506, 507) in which horizontal division is performed is included, but the vertical division is performed as a transformation mode of the surrounding blocks in the 8 to 13 transformation modes (508, 509, 510, 511, 512, 513) and the 4-division transformation mode 14 (514) is not included, then the current block can be determined to have only the possibility of horizontal division. Similarly, if the horizontal division is performed as a transformation mode of the surrounding blocks in transformation modes 2 to 7 (502, 503, 504, 505, 506, 507) and the four-division transformation mode (514) is not included, and any one of the vertical division is performed in transformation modes 8 to 13 (508, 509, 510, 511, 512, 513), then the current block can be determined to have only the possibility of vertical division. If horizontal division is performed as a conversion mode of surrounding blocks in conversion modes 2 to 7 (502, 503, 504, 505, 506, 507), vertical division is performed in conversion modes 8 to 13 (508, 509, 510, 511, 512, 513), and four-division conversion mode (514) are mixed and included, the current block can be determined to be divisible in both horizontal and vertical directions.
λΉλμ€ μΈμ½λ(100)λ μ£Όλ³ λΈλ‘μ μ μ©λ λ³ν λͺ¨λ ν΅κ³ μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ , νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬ λ³ν λͺ¨λ μ 보μ μλ―Έ(semantics)λ₯Ό μ μμ μΌλ‘ κ²°μ νκ³ , νμ¬ λΈλ‘μ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νμ¬ λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν¬ μ μλ€. λΉλμ€ λμ½λ(200)λ μ£Όλ³ λΈλ‘μ μ μ©λ λ³ν λͺ¨λ ν΅κ³ μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ νλ¨νκ³ , νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬ λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νλλ λ³ν λͺ¨λ μ 보μ μλ―Έλ₯Ό μλ³νκ³ , λ³ν λͺ¨λ μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€. The video encoder (100) can determine the vertical divisibility and horizontal divisibility of the current block based on the transformation mode statistical information applied to the surrounding blocks, adaptively determine the semantics of the transformation mode information based on the vertical divisibility and horizontal divisibility of the current block, and set the transformation mode information of the current block to include in the bitstream. The video decoder (200) can determine the vertical divisibility and horizontal divisibility of the current block based on the transformation mode statistical information applied to the surrounding blocks, identify the semantics of the transformation mode information obtained from the bitstream based on the vertical divisibility and horizontal divisibility of the current block, and determine the transformation mode of the current block based on the transformation mode information.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ λ°©ν₯μΌλ‘λ λΆν κ°λ₯νμ§ μμ κ²½μ°, λ³ν λͺ¨λ μ 보λ λΉνΈμ€νΈλ¦Όμ ν¬ν¨λμ§ μμΌλ©° νμ¬ λΈλ‘μ λ³ν λΈλ‘μ νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ° λ° λͺ¨μμ κ°λ κ²μΌλ‘ κ²°μ λ μ μλ€. μ¦, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ λ°©ν₯μΌλ‘λ λΆν κ°λ₯νμ§ μμ κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ μ€ν΅λκ³ 1λ² λ³ν λͺ¨λ(501)κ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ μ μλ€. If the current block is not divisible in either the vertical or horizontal direction, the transformation mode information is not included in the bitstream, and the transformation block of the current block may be determined to have the same size and shape as the current block. That is, if the current block is not divisible in either the vertical or horizontal direction, the separate transformation mode information may be skipped, and the first transformation mode (501) may be determined as the transformation mode of the current block.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯μΌλ‘ λͺ¨λ λΆν μ΄ λΆκ°λ₯ν κ²½μ°κ° μλκ³ μ μ΄λ νλμ λ°©ν₯μΌλ‘ λΆν κ°λ₯ν κ²½μ°λΌλ©΄, λ³ν λͺ¨λ μ 보λ i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄ '0'μ λ―ΈλΆν , '1'μ λΆν λ¨)λ₯Ό ν¬ν¨νλ©°, i)μ μ λ³΄κ° '1'κ³Ό κ°μ΄ λΆν λ¨μ κ°λ¦¬ν€λ κ²½μ° λ³ν λͺ¨λ μ 보λ μΆκ°μ μΌλ‘ ii) ν보 λ³ν λͺ¨λλ€ μ€μμ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό ν¬ν¨ν μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ‘μ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514)κ° κ²°μ λκ³ , νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λΆν μ€ μ μ΄λ νλμ λ°©ν₯μΌλ‘ λΆν κ°λ₯ν κ²μΌλ‘ νλ¨λ κ²½μ°, μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'κ³Ό, 1λ² λ³ν λͺ¨λ(501)λ₯Ό μ μΈν 2, 8, 14λ² λ³ν λͺ¨λ(502, 508, 514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λ μ μλ€.If the current block is not divisible in both the vertical and horizontal directions but is divisible in at least one direction, the transformation mode information includes i) information indicating whether a vertical or horizontal division exists (e.g., '0' indicates indivisibility, '1' indicates division), and if the information in i) indicates division such as '1', the transformation mode information may additionally include ii) information indicating one of the candidate transformation modes. For example, if transformation modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate transformation modes applicable to the current block, and if the current block is determined to be divisible in at least one of the horizontal and vertical division directions, information indicating '1' as information indicating whether a vertical or horizontal division exists and one of the transformation modes 2, 8, and 14 (502, 508, and 514) excluding transformation mode 1 (501) may be set as the transformation mode information.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ νλμ λ°©ν₯μΌλ‘λ§ λΆν μ΄ κ°λ₯ν κ²½μ°, λ³ν λͺ¨λ μ 보λ i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄ '0'μ λ―ΈλΆν , '1'μ λΆν λ¨) λ° μΆκ°μ μΌλ‘ ii) λΆν κ°λ₯ν λ°©ν₯μΌλ‘ λΆν λ ν보 λ³ν λͺ¨λλ€ μ€μμ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό ν¬ν¨ν μ μλ€. μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ‘μ 1, 2, 8, 14λ² λ³ν λͺ¨λ(501, 502, 508, 514)κ° κ²°μ λκ³ , νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λΆν μ€ μν λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'κ³Ό, 2λ² λ³ν λͺ¨λ(502) λ° 14λ² λ³ν λͺ¨λ(514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λ μ μλ€. λ§μ½, νμ¬ λΈλ‘μ΄ μν λ°©ν₯ λ° μμ§ λ°©ν₯ λΆν μ€ μμ§ λ°©ν₯μΌλ‘λ§ λΆν κ°λ₯ν κ²½μ°, μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보λ‘μ '1'κ³Ό, 8λ² λ³ν λͺ¨λ(507) λ° 14λ² λ³ν λͺ¨λ(514) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λ μ μλ€.If the current block can be split in only one of the vertical and horizontal directions, the transformation mode information may include i) information indicating whether a vertical or horizontal split exists (e.g., '0' means not split, '1' means split) and additionally ii) information indicating one of the candidate transformation modes that are split in the splittable direction. For example, if transformation modes 1, 2, 8, and 14 (501, 502, 508, and 514) are determined as candidate transformation modes applicable to the current block, and the current block can be split only in the horizontal direction among the horizontal and vertical divisions, information indicating whether a vertical or horizontal split exists, '1', and information indicating one of transformation mode 2 (502) and transformation mode 14 (514) may be set as the transformation mode information. If the current block can be divided only in the vertical direction among horizontal and vertical divisions, '1' may be set as information indicating whether vertical or horizontal division exists, and information indicating one of the 8th conversion mode (507) and the 14th conversion mode (514) may be set as conversion mode information.
μΌ μ€μμμ μμ΄μ, νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ₯Ό ν¨μ¨μ μΌλ‘ μ μ‘νκΈ° μν΄μ λ³ν λͺ¨λ μ 보λ νμ¬ λΈλ‘ μ΄μ μ μ²λ¦¬λ μ£Όλ³ λΈλ‘μ μ μ©λ λ³ν λͺ¨λ ν΅κ³ μ 보 λλ λΆκ° μ 보μ κΈ°μ΄νμ¬ κ΅¬μ±λ μ μλ€. λ³ν λͺ¨λ ν΅κ³ μ 보λ λΆκ° μ 보μ κΈ°μ΄νμ¬ ν보 λ³ν λͺ¨λ μ€ μ΅μ’ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ , μ΅μ’ ν보 λ³ν λͺ¨λ μ€ νλμ ν보 λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ λ³΄κ° μ€μ λ μ μλ€. νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ μ μ©λ λ³ν λͺ¨λμ ν΅κ³μ λΉμ¨ μ 보λ λΆκ° μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ΄ νλ¨λκ³ , νλ¨λ νμ¬ λΈλ‘μ μμ§ λ°©ν₯ λΆν κ°λ₯μ± λ° μν λ°©ν₯ λΆν κ°λ₯μ±μ κΈ°μ΄νμ¬ λ³ν λͺ¨λ μ λ³΄κ° μ μμ μΌλ‘ ꡬμ±λ μ μλ€.In one embodiment, in order to efficiently transmit the transformation mode applied to the current block, the transformation mode information may be configured based on transformation mode statistical information or additional information applied to a neighboring block processed before the current block. Based on the transformation mode statistical information or additional information, a final candidate transformation mode may be determined among candidate transformation modes, and transformation mode information indicating one candidate transformation mode among the final candidate transformation modes may be set. Based on the statistical ratio information or additional information of the transformation modes applied to neighboring blocks of the current block, the vertical divisibility and the horizontal divisibility of the current block may be determined, and the transformation mode information may be adaptively configured based on the determined vertical divisibility and horizontal divisibility of the current block.
μμμ μΌλ‘, νμ¬ λΈλ‘μ ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514)κ° κ²°μ λκ³ , μ΄λ¬ν 6κ°μ λ³ν λͺ¨λλ€ μ€ κ²°μ λ μ΅μ μ λ³ν λͺ¨λλ₯Ό μκ·Έλλ§νκΈ° μνμ¬ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ²½μ°λ₯Ό μ€λͺ νλ€. As an example, a case is described where conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) are determined as candidate conversion modes of the current block, and conversion mode information is set to signal the optimal conversion mode determined among these six conversion modes.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ λ°©ν₯μΌλ‘λ λΆν κ°λ₯νμ§ μμ κ²½μ°, λ³ν λͺ¨λ μ 보λ λΉνΈμ€νΈλ¦Όμ ν¬ν¨λμ§ μμΌλ©° νμ¬ λΈλ‘μ λ³ν λΈλ‘μ νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ° λ° λͺ¨μμ κ°λ κ²μΌλ‘ κ²°μ λ μ μλ€. μ¦, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ λ°©ν₯μΌλ‘λ λΆν κ°λ₯νμ§ μμ κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ μ€ν΅λκ³ 1λ² λ³ν λͺ¨λ(501)κ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ μ μλ€. If the current block is not divisible in either the vertical or horizontal direction, the transformation mode information is not included in the bitstream, and the transformation block of the current block may be determined to have the same size and shape as the current block. That is, if the current block is not divisible in either the vertical or horizontal direction, the separate transformation mode information may be skipped, and the first transformation mode (501) may be determined as the transformation mode of the current block.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯μΌλ‘ λͺ¨λ λΆν μ΄ λΆκ°λ₯ν κ²½μ°κ° μλκ³ μ μ΄λ νλμ λ°©ν₯μΌλ‘ λΆν κ°λ₯ν κ²½μ°λΌλ©΄, λ³ν λͺ¨λ μ 보λ i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄ '0'μ λ―ΈλΆν , '1'μ λΆν λ¨)λ₯Ό ν¬ν¨νλ©°, i)μ μ λ³΄κ° '1'κ³Ό κ°μ΄ λΆν λ¨μ κ°λ¦¬ν€λ κ²½μ° λ³ν λͺ¨λ μ 보λ μΆκ°μ μΌλ‘ ii) 1λ² λ³ν λͺ¨λ(501)μ μ μΈν λλ¨Έμ§ ν보 λ³ν λͺ¨λλ€μΈ 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(502, 503, 508, 509, 514)μ€μμ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό ν¬ν¨ν μ μλ€. If the current block is not divisible in both the vertical and horizontal directions but is divisible in at least one direction, the conversion mode information includes i) information indicating whether a vertical or horizontal division exists (e.g., '0' indicates no division, '1' indicates division), and if the information in i) indicates division as '1', the conversion mode information may additionally include ii) information indicating one of the remaining candidate conversion modes, excluding conversion mode 1 (501), namely conversion modes 2, 3, 8, 9, and 14 (502, 503, 508, 509, and 514).
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ νλμ λ°©ν₯μΌλ‘λ§ λΆν μ΄ κ°λ₯νκ³ , νμ¬ λΈλ‘μ ν¬κΈ° μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ λνμ¬ λΆν κ°λ₯ν νμκ° 1νλ‘μ μ΅μ νμμ λΆν λ§ κ°λ₯ν κ²½μ°, 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514)μ ν보 λ³ν λͺ¨λλ€ μ€μμ μν λ°©ν₯μΌλ‘ 1ν λΆν μ΄ μνλλ 2λ² λ³ν λͺ¨λ(502) λ° μμ§ λ°©ν₯μΌλ‘ 1ν λΆν μ΄ μνλλ 8λ² λ³ν λͺ¨λ(508) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λ μ μλ€.If the current block can be split only in one of the vertical and horizontal directions, and the number of times the current block can be split is 1 based on the size information of the current block, and only the minimum number of times the current block can be split, information indicating one of the candidate conversion modes among conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514), conversion mode 2 (502) in which one division is performed in the horizontal direction and conversion mode 8 (508) in which one division is performed in the vertical direction can be set as conversion mode information.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ νλμ λ°©ν₯μΌλ‘λ§ λΆν μ΄ κ°λ₯νκ³ , νμ¬ λΈλ‘μ ν¬κΈ° μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ λνμ¬ λΆν κ°λ₯ν νμκ° 1ν μ΄μμΈ κ²½μ° 1, 2, 3, 8, 9, 14λ² λ³ν λͺ¨λ(501, 502, 503, 508, 509, 514)μ ν보 λ³ν λͺ¨λλ€ μ€μμ μν λ°©ν₯μΌλ‘ 1ν μ΄μμ λΆν μ΄ μνλλ 2, 3λ² λ³ν λͺ¨λ(502, 503) λ° μμ§ λ°©ν₯μΌλ‘ 1ν μ΄μμ λΆν μ΄ μνλλ 8, 9λ² λ³ν λͺ¨λ(508, 509) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λ μ μλ€.If the current block can be split only in one of the vertical and horizontal directions, and the number of times the current block can be split is one or more based on the size information of the current block, information indicating one of the conversion modes 2 and 3 (502, 503) in which one or more splits are performed in the horizontal direction and one or more conversion modes 8 and 9 (508, 509) in which one or more splits are performed in the vertical direction among the candidate conversion modes 1, 2, 3, 8, 9, and 14 (501, 502, 503, 508, 509, and 514) can be set as the conversion mode information.
λ λ€λ₯Έ μμλ‘μ, νμ¬ λΈλ‘μ ν보 λ³ν λͺ¨λλ‘μ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514)κ° κ²°μ λκ³ , μ΄λ¬ν 8κ°μ λ³ν λͺ¨λλ€ μ€ κ²°μ λ μ΅μ μ λ³ν λͺ¨λλ₯Ό μκ·Έλλ§νκΈ° μνμ¬ λ³ν λͺ¨λ μ 보λ₯Ό μ€μ νλ κ²½μ°λ₯Ό μ€λͺ νλ€. As another example, a case is described where conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) are determined as candidate conversion modes of the current block, and conversion mode information is set to signal the optimal conversion mode determined among these eight conversion modes.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ λ°©ν₯μΌλ‘λ λΆν κ°λ₯νμ§ μμ κ²½μ°, λ³ν λͺ¨λ μ 보λ λΉνΈμ€νΈλ¦Όμ ν¬ν¨λμ§ μμΌλ©° νμ¬ λΈλ‘μ λ³ν λΈλ‘μ νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ° λ° λͺ¨μμ κ°λ κ²μΌλ‘ κ²°μ λ μ μλ€. μ¦, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ λ°©ν₯μΌλ‘λ λΆν κ°λ₯νμ§ μμ κ²½μ°, λ³λμ λ³ν λͺ¨λ μ 보λ μ€ν΅λκ³ 1λ² λ³ν λͺ¨λ(501)κ° νμ¬ λΈλ‘μ λ³ν λͺ¨λλ‘ κ²°μ λ μ μλ€. If the current block is not divisible in either the vertical or horizontal direction, the transformation mode information is not included in the bitstream, and the transformation block of the current block may be determined to have the same size and shape as the current block. That is, if the current block is not divisible in either the vertical or horizontal direction, the separate transformation mode information may be skipped, and the first transformation mode (501) may be determined as the transformation mode of the current block.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯μΌλ‘ λͺ¨λ λΆν μ΄ λΆκ°λ₯ν κ²½μ°κ° μλκ³ μ μ΄λ νλμ λ°©ν₯μΌλ‘ λΆν κ°λ₯ν κ²½μ°λΌλ©΄, λ³ν λͺ¨λ μ 보λ i) μμ§ λλ μν λΆν μ΄ μ‘΄μ¬νλμ§ μ¬λΆλ₯Ό λνλ΄λ μ 보(μλ₯Ό λ€μ΄ '0'μ λ―ΈλΆν , '1'μ λΆν λ¨)λ₯Ό ν¬ν¨νλ©°, i)μ μ λ³΄κ° '1'κ³Ό κ°μ΄ λΆν λ¨μ κ°λ¦¬ν€λ κ²½μ° λ³ν λͺ¨λ μ 보λ μΆκ°μ μΌλ‘ ii) 1λ² λ³ν λͺ¨λ(501)μ μ μΈν λλ¨Έμ§ ν보 λ³ν λͺ¨λλ€μΈ 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(502, 503, 504, 508, 509, 510, 514)μ€μμ νλλ₯Ό κ°λ¦¬ν€λ μ 보λ₯Ό ν¬ν¨ν μ μλ€. If the current block is not divisible in both the vertical and horizontal directions but is divisible in at least one direction, the conversion mode information includes i) information indicating whether a vertical or horizontal division exists (e.g., '0' indicates no division, '1' indicates division), and if the information in i) indicates division as '1', the conversion mode information may additionally include ii) information indicating one of the candidate conversion modes 2, 3, 4, 8, 9, 10, and 14 (502, 503, 504, 508, 509, 510, and 514), excluding conversion mode 1 (501).
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ νλμ λ°©ν₯μΌλ‘λ§ λΆν μ΄ κ°λ₯νκ³ , νμ¬ λΈλ‘μ ν¬κΈ° μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ λνμ¬ λΆν κ°λ₯ν νμκ° 1νλ‘μ μ΅μ νμμ λΆν λ§ κ°λ₯ν κ²½μ°, ν보 λ³ν λͺ¨λμ ν¬ν¨λ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ€μμ μν λ°©ν₯ λλ μμ§ λ°©ν₯μΌλ‘ 1νμ λΆν μ΄ μνλμ§ μλ λ³ν λͺ¨λλ ν보 λ³ν λͺ¨λμμ μ μΈλκ³ , μν λ°©ν₯μΌλ‘ 1ν λΆν μ΄ μνλλ 2λ² λ³ν λͺ¨λ(502) λ° μμ§ λ°©ν₯μΌλ‘ 1ν λΆν μ΄ μνλλ 8λ² λ³ν λͺ¨λ(508) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λ μ μλ€.If the current block can be split only in one of the vertical and horizontal directions, and the number of times the current block can be split is one based on the size information of the current block, and only the minimum number of times the current block can be split, among the conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) included in the candidate conversion mode, a conversion mode in which no split is performed in the horizontal or vertical direction once is excluded from the candidate conversion mode, and information indicating one of the conversion mode 2 (502) in which a split is performed once in the horizontal direction and the conversion mode 8 (508) in which a split is performed once in the vertical direction can be set as the conversion mode information.
λ§μ½, νμ¬ λΈλ‘μ΄ μμ§ λ°©ν₯ λ° μν λ°©ν₯ μ€ μ΄λ νλμ λ°©ν₯μΌλ‘λ§ λΆν μ΄ κ°λ₯νκ³ , νμ¬ λΈλ‘μ ν¬κΈ° μ 보μ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ λνμ¬ λΆν κ°λ₯ν νμκ° 1ν μ΄μμΈ κ²½μ° ν보 λ³ν λͺ¨λμ ν¬ν¨λ 1, 2, 3, 4, 8, 9, 10, 14λ² λ³ν λͺ¨λ(501, 502, 503, 504, 508, 509, 510, 514) μ€μμ μν λ°©ν₯ λλ μμ§ λ°©ν₯μΌλ‘ 1ν μ΄μμ λΆν μ΄ μνλμ§ μλ λ³ν λͺ¨λλ ν보 λ³ν λͺ¨λμμ μ μΈλκ³ , ν보 λ³ν λͺ¨λλ€ μ€μμ μν λ°©ν₯μΌλ‘ 1ν μ΄μμ λΆν μ΄ μνλλ 2, 3, 4λ² λ³ν λͺ¨λ(502, 503, 504) λ° μμ§ λ°©ν₯μΌλ‘ 1ν μ΄μμ λΆν μ΄ μνλλ 8, 9, 10λ² λ³ν λͺ¨λ(508, 509, 510) μ€ νλλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λ μ μλ€.If the current block can be split in only one of the vertical and horizontal directions, and the number of times the current block can be split is one or more based on the size information of the current block, among the conversion modes 1, 2, 3, 4, 8, 9, 10, and 14 (501, 502, 503, 504, 508, 509, 510, and 514) included in the candidate conversion modes, conversion modes in which at least one division in the horizontal or vertical direction is not performed are excluded from the candidate conversion modes, and information indicating one of the conversion modes 2, 3, and 4 (502, 503, and 504) in which at least one division is performed in the horizontal direction, and the conversion modes 8, 9, and 10 (508, 509, and 510) in which at least one division is performed in the vertical direction among the candidate conversion modes can be set as the conversion mode information.
μ μ ν λ°μ κ°μ΄, λΉλμ€ μΈμ½λ(100)λ λ€μν λ°©μ μ€ νλμ λ°λΌ νμ¬ λΈλ‘μ λ³ν λͺ¨λ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ ν¬ν¨μν€κ³ , λΉλμ€ λμ½λ(200)λ λΉνΈμ€νΈλ¦Όμ ν¬ν¨λ λ³ν λͺ¨λ μ 보λ₯Ό νμ±νμ¬ νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€.As described above, the video encoder (100) includes transformation mode information of the current block in the bitstream according to one of various methods, and the video decoder (200) can parse the transformation mode information included in the bitstream to determine the transformation mode applied to the current block.
μ μ ν λ°μ κ°μ΄, λ³ν λͺ¨λ μ 보λ unary coding, fixed length coding, variable length coding, exponential golomb codingλ± λ€μν λ°©μμΌλ‘ μ€μ λ μ μλ€. μΌ μλ‘, μ νκ°λ₯ν λ³ν λͺ¨λλ€μ κ°μκ° Nκ°μΈ κ²½μ°, 2^n >=Nμ λ§μ‘±νλ μ΅μμ n λΉνΈλ‘ fixed length μ½λ© λ°©μμΌλ‘ λ³ν λͺ¨λ μ λ³΄κ° μ€μ λ μ μλ€. λ§μ½ ν보 λ³ν λͺ¨λμ κ°μκ° 4κ°μΈ κ²½μ°, fixed length μ½λ© λ°©μ μ μ©μ 4κ°μ λ³ν λͺ¨λ κ°κ°μ λμλλ '00', '01', '10', '11'κ° λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λ μ μλ€. λ§μ½ ν보 λ³ν λͺ¨λμ κ°μκ° 4κ°μΈ κ²½μ°, variable length μ½λ© λ°©μ μ μ©μ 4κ°μ λ³ν λͺ¨λ κ°κ°μ λμλλ '0', '10', '110', '111'κ° λ³ν λͺ¨λ μ λ³΄λ‘ μ€μ λ μ μλ€. μ΄μ νμ λμ§ μκ³ λ³ν λͺ¨λ μ 보λ λ€μν μ½λ© λ°©μμ μ μ©νμ¬ μ€μ λ μ μλ€.As described above, the conversion mode information can be set in various ways such as unary coding, fixed length coding, variable length coding, and exponential global coding. For example, when the number of selectable conversion modes is N, the conversion mode information can be set in a fixed length coding method with a minimum of n bits satisfying 2^n >= N. If the number of candidate conversion modes is 4, when the fixed length coding method is applied, '00', '01', '10', and '11' corresponding to each of the four conversion modes can be set as the conversion mode information. If the number of candidate conversion modes is 4, when the variable length coding method is applied, '0', '10', '110', and '111' corresponding to each of the four conversion modes can be set as the conversion mode information. The present invention is not limited thereto, and the conversion mode information can be set by applying various coding methods.
λν, μ μ ν λ°μ κ°μ΄ λ³ν λͺ¨λ μ 보 μ μ‘μ μ μ‘λλ λΉνΈμλ₯Ό κ°μμν€κΈ° μνμ¬, νμ¬ λΈλ‘μ λΆκ° μ 보λ μ£Όλ³ λΈλ‘μ ν΅κ³ μ 보μ κΈ°μ΄νμ¬ ν보 λ³ν λͺ¨λμ ν¬ν¨λ λ³ν λͺ¨λλ€ μ€ νμ¬ λΈλ‘μ μ μ©κ°λ₯νμ§ μμ λ³ν λͺ¨λλ₯Ό μ κ±°νμ¬ μ΅μ’ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ , κ²°μ λ μ΅μ’ ν보 λ³ν λͺ¨λμ ν¬ν¨λ λ³ν λͺ¨λ μ€ νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ λ³ν λͺ¨λ μ λ³΄κ° μ μ‘λ μ μλ€. μ μ ν λ°μ κ°μ΄, λΆκ° μ 보λ‘μ νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ μκΈ° νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉ λ±μ΄ μ΄μ©λ μ μλ€.In addition, in order to reduce the number of bits transmitted when transmitting transformation mode information as described above, a final candidate transformation mode may be determined by eliminating transformation modes that are not applicable to the current block among the transformation modes included in the candidate transformation modes based on the additional information of the current block or the statistical information of the surrounding blocks, and transformation mode information indicating the transformation mode applied to the current block among the transformation modes included in the determined final candidate transformation mode may be transmitted. As described above, as additional information, current frame information, slice information, partitioning information of the current block, the size of the current block, the shape of the current block, prediction mode information of the current block, partitioning information of the parent block including the current block, the size of the parent block, the shape of the parent block, prediction mode information of the parent block, transformation mode information of the surrounding blocks of the current block, the maximum value of the transformation coefficient included in the current block, the position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order, etc. may be used.
μΌ μ€μμμ μμ΄μ μλ‘, λ€μκ³Ό κ°μ΄ μμ 쑰건μ λ°λΌμ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν λ³ν λͺ¨λλ μ νλκ±°λ νΉμ λ³ν λͺ¨λκ° μ μΈλ μ μλ€. In one embodiment, for example, the transformation modes applicable to the current block may be limited or certain transformation modes may be excluded depending on certain conditions, as follows.
- νμ¬ λΈλ‘μ ν¬κΈ°κ° CTU λλ μ΅λ ν¬κΈ°μ CUμ λμΌν κ²½μ° νμ¬ λΆν μ 4λΆν νλ μ 14 λ³ν λͺ¨λ(514)κ° νμ©λλ©°, λλ¨Έμ§ κ²½μ°μλ μ 14 λ³ν λͺ¨λ(514)κ° νμ©λμ§ μλλ‘ μ€μ λ μ μλ€.- If the size of the current block is equal to the CTU or the maximum size of the CU, the 14th transformation mode (514) that divides the current partition into four is allowed, and in other cases, the 14th transformation mode (514) can be set not to be allowed.
- νμ¬ λΈλ‘μ ν λλ λμ΄ μ€ μμ λ³μ κΈΈμ΄κ° μ΅μ λ³ν κ°λ₯ κΈΈμ΄μ κ°μ κ²½μ°, νμ¬ λΈλ‘μ λ³νμ μνμ¬ λΆν μ΄ μνλμ§ μλ κ²μΌλ‘ μ€μ λ μ μλ€. μ¦, νμ¬ λΈλ‘μ ν λλ λμ΄ μ€ μμ λ³μ κΈΈμ΄κ° μ΅μ λ³ν κ°λ₯ κΈΈμ΄μ κ°μ κ²½μ°, μ 1 λ³ν λͺ¨λ(501)λ§μ΄ νμ©λλλ‘ μ€μ λ μ μλ€.- If the length of the smaller side of the width or height of the current block is equal to the minimum convertible length, it may be set that no splitting is performed for the conversion of the current block. That is, if the length of the smaller side of the width or height of the current block is equal to the minimum convertible length, only the first conversion mode (501) may be set to be allowed.
- νμ¬ λΈλ‘μ ν λλ λμ΄ μ€ μμ λ³μ κΈΈμ΄κ° μμ κΈΈμ΄(μλ₯Ό λ€μ΄ 4 λλ 8 λ±) μ΄μμΌ κ²½μ°μλ§ νμ¬ λΈλ‘μ΄ λΆν λλ λ³ν λͺ¨λλ€μ΄ νμ©λλλ‘ μ€μ λ μ μλ€.- Transformation modes can be set to allow the current block to be split only if the length of the smaller side of the width or height of the current block is greater than or equal to a predetermined length (e.g., 4 or 8).
- νμ¬ λΈλ‘μ μνλ μ΄ ν½μ μ κ°μκ° μμ κ°μ μ΄μμΌ κ²½μ°μλ§ νμ¬ λΈλ‘μ΄ λΆν λλ λ³ν λͺ¨λλ€μ΄ νμ©λλλ‘ μ€μ λ μ μλ€.- Transformation modes can be set to allow the current block to be split only when the total number of pixels belonging to the current block is greater than or equal to a predetermined number.
- νμ¬ λΈλ‘μ ν¬κΈ°κ° λΉλμ€ μΈμ½λ(100)λ λΉλμ€ λμ½λ(200)μμ μ²λ¦¬ κ³Όμ μ μ΄μ©λλ λ°μ΄ν° λ¨μμΈ νλ‘μΈμ± λ¨μ(processing unit)μ ν¬κΈ°λ³΄λ€ ν¬λ©΄, νλ‘μΈμ± λ¨μμ ν¬κΈ° μ΄νμΈ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λλ§μ΄ νμ©λλλ‘ μ€μ λ μ μλ€.- If the size of the current block is larger than the size of a processing unit, which is a data unit used in a processing process in a video encoder (100) or a video decoder (200), only a conversion mode using a conversion block smaller than the size of the processing unit may be set to be allowed.
- νμ¬ λΈλ‘μ΄ μμ κ²½κ³ μ‘°κ±΄(boundary condition)μ ν΄λΉν κ²½μ°, κ²½κ³ μ‘°κ±΄μ λ°λΌ μνλ μ μλ λ³ν λͺ¨λλ νμ©λμ§ μλλ‘ μ€μ λ μ μλ€.- If the current block corresponds to a given boundary condition, the transformation mode that cannot be performed according to the boundary condition can be set to not be allowed.
μ΄λ¬ν μμ 쑰건μ μΆ©μ‘± μ¬λΆμ λ°λΌμ νμ¬ λΈλ‘μ μ μ©κ°λ₯ν ν보 λ³ν λͺ¨λλ₯Ό μ΅μ’ μ μΌλ‘ κ²°μ ν μ μλ€.Depending on whether these conditions are met, the candidate transformation mode applicable to the current block can be finally determined.
ννΈ, λ³ν λͺ¨λ μ 보λ₯Ό μ½λ©μ μν 컨ν μ€νΈ λͺ¨λΈμ νμ¬ λΈλ‘κ³Ό κ΄λ ¨λ λΆκ° μ 보μ κΈ°μ΄νμ¬ κ΅¬μ±λ μ μλ€. μλ₯Ό λ€μ΄, 컨ν μ€νΈ λͺ¨λΈμ νμ¬ νλ μ μ 보, μ¬λΌμ΄μ€ μ 보, νμ¬ λΈλ‘μ νν°μ λ μ 보, νμ¬ λΈλ‘μ ν¬κΈ°, νμ¬ λΈλ‘μ λͺ¨μ, νμ¬ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, νμ¬ λΈλ‘μ΄ ν¬ν¨λ λΆλͺ¨ λΈλ‘μ νν°μ λ μ 보, λΆλͺ¨ λΈλ‘μ ν¬κΈ°, λΆλͺ¨ λΈλ‘μ λͺ¨μ, λΆλͺ¨ λΈλ‘μ μμΈ‘ λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ μ£Όλ³ λΈλ‘μ λ³ν λͺ¨λ μ 보, μκΈ° νμ¬ λΈλ‘μ ν¬ν¨λ λ³ν κ³μμ μ΅λκ°, μμ μ€μΊλ μμμ λ°λ₯Έ μκΈ° νμ¬ λΈλ‘μ λ§μ§λ§ 0μ΄ μλ(non-zero) λ³ν κ³μμ μμΉ λ±μ λΆκ° μ 보μ κΈ°μ΄νμ¬ κ΅¬μ±λ μ μλ€.Meanwhile, a context model for coding transformation mode information can be constructed based on additional information related to the current block. For example, the context model can be constructed based on additional information such as current frame information, slice information, partitioning information of the current block, size of the current block, shape of the current block, prediction mode information of the current block, partitioning information of a parent block including the current block, size of the parent block, shape of the parent block, prediction mode information of the parent block, transformation mode information of a neighboring block of the current block, maximum value of a transformation coefficient included in the current block, and position of the last non-zero transformation coefficient of the current block according to a predetermined scanning order.
μλ₯Ό λ€μ΄, νμ¬ λΈλ‘μ ν¬κΈ°μ κΈ°μ΄νμ¬ ν¬κΈ°λ³λ‘ μλ‘ λ€λ₯Έ 컨ν μ€νΈ λͺ¨λΈμ ꡬμ±ν μ μλ€. μΌ μλ‘, 8x8 λ―Έλ§μ ν¬κΈ°λ₯Ό κ°λ λΈλ‘λ€, 8x8 μ΄μ 16x16 λ―Έλ§μ ν¬κΈ°μ λΈλ‘λ€, 16x16 μ΄μ 32x32 λ―Έλ§μ ν¬κΈ°μ λΈλ‘λ€, 32x32 μ΄μμ λΈλ‘λ€λ‘ λΆλ₯νμ¬ κ° λΆλ₯λΉ μλ‘ λ€λ₯Έ 컨ν μ€νΈ λͺ¨λΈμ ꡬμ±ν μ μλ€.For example, different context models can be configured based on the size of the current block. For example, blocks can be classified into categories such as blocks with a size less than 8x8, blocks with a size greater than or equal to 8x8 but less than 16x16, blocks with a size greater than or equal to 16x16 but less than 32x32, and blocks with a size greater than or equal to 32x32, and a different context model can be configured for each category.
λν, μ£Όλ³ λΈλ‘μμ μ¬μ©λ λ³ν λͺ¨λλ₯Ό κΈ°λ°μΌλ‘ 컨ν μ€νΈ λͺ¨λΈμ ꡬμ±ν μ μλ€. μ’μΈ‘ λΈλ‘, μμΈ‘ λΈλ‘μ μ νλ λͺ¨λλ₯Ό κΈ°λ°μΌλ‘ 컨ν μ€νΈ λͺ¨λΈμ ꡬμ±νκ³ μ΄λ₯Ό λ°νμΌλ‘ λ³ν λͺ¨λ μ 보λ₯Ό μ½λ©ν μ μλ€. λ λ€λ₯Έ μλ‘ λ³ν λͺ¨λ μ 보λ₯Ό ꡬμ±νλ μ νμ€ μ¬μ΄μ μ°κ΄μ±μ νμ©νμ¬, μ΄μ μ μ¬μ©λ μ νμ€μ μ 보λ₯Ό λ°νμΌλ‘ λ€μͺ½ μ νμ€λ₯Ό μν 컨ν μ€νΈ λͺ¨λΈμ ꡬμ±νκ³ μ΄λ₯Ό λ°νμΌλ‘ λ€μͺ½ μ νμ€λ₯Ό μ½λ©ν μ μλ€.Additionally, a context model can be constructed based on the transformation modes used in surrounding blocks. A context model can be constructed based on the selected modes of the left and upper blocks, and transformation mode information can be coded based on this. Another example is the association between syntaxes that constitute transformation mode information. By leveraging the association between syntaxes, a context model for subsequent syntaxes can be constructed based on information from previously used syntaxes, and subsequent syntaxes can be coded based on this context model.
λ 6μ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ λΉλμ€ λΆνΈν λ°©λ²μ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 6 is a flowchart of a video encoding method according to one embodiment of the present disclosure.
λ 6μ μ°Έμ‘°νλ©΄, λΉλμ€ μΈμ½λ(100)λ μ μ ν λ 3a, 3b λ±μ μμλ λΈλ‘ νν°μ λ ꡬ쑰μ κΈ°μ΄νμ¬, λ μ΄μ λΆν λμ§ μλ 리ν λ ΈλμΈ CUλ₯Ό κ²°μ νκ³ CU λ¨μλ‘ μμΈ‘ λ° λ³νμ μνν μ μλ€. Referring to FIG. 6, the video encoder (100) can determine a CU, which is a leaf node that is no longer divided, based on the block partitioning structure exemplified in FIGS. 3a, 3b, etc. described above, and perform prediction and transformation on a CU basis.
λΉλμ€ μΈμ½λ(100)λ λ³νμ μννκΈ° μνμ¬ μ μ ν λ 5μ μμλ 볡μ κ°μ ν보 λ³ν λͺ¨λλ€ μ€ νμ¬ λΈλ‘μ λ³νμ μ΄μ©κ°λ₯ν μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S610). μ μ ν λ°μ κ°μ΄, 볡μ κ°μ ν보 λ³ν λͺ¨λλ€μ νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ°μ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λ, νμ¬ λΈλ‘μ μν λ°©ν₯ λ° μμ§ λ°©ν₯ μ€ μ μ΄λ νλμ λ°©ν₯μΌλ‘ μμ λΉμ¨λ‘ λΆν νμ¬ νλλλ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λλ₯Ό ν¬ν¨ν μ μλ€. λΉλμ€ μΈμ½λ(100)λ μ μ ν λΆκ° μ 보λ μ£Όλ³ λΈλ‘μ μ¬μ©λ λ³ν λͺ¨λμ ν΅κ³ μ 보μ κΈ°μ΄νμ¬, ν보 λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€. λν, λΉλμ€ μΈμ½λ(100)λ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ νκ³ , μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ μ§μκ°λ₯ν λ³ν λͺ¨λ μ§μ μ 보λ₯Ό λΉνΈμ€νΈλ¦Όμ λΆκ°ν μ μλ€.The video encoder (100) determines at least one candidate transformation mode available for transformation of the current block from among the plurality of candidate transformation modes illustrated in FIG. 5 described above to perform transformation (S610). As described above, the plurality of candidate transformation modes may include a transformation mode that uses a transformation block of the same size as the current block, and a transformation mode that uses a transformation block obtained by dividing the current block at a predetermined ratio in at least one of the horizontal and vertical directions. The video encoder (100) may determine the candidate transformation mode based on the aforementioned additional information or statistical information of the transformation mode used in the surrounding blocks. In addition, the video encoder (100) may determine the candidate transformation mode for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit, and may add transformation mode support information that can be supported for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit to the bitstream.
κ·Έλ¦¬κ³ , λΉλμ€ μΈμ½λ(100)λ μ μ΄λ νλμ ν보 λ³ν λͺ¨λ μ€ νμ¬ λΈλ‘μ λ³νμ μ μ©λ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S620). νμ¬ λΈλ‘μ λ³νμ μ μ©λ λ³ν λͺ¨λλ λΆκ° μ 보μ κΈ°μ΄νμ¬ μμμ μΌλ‘ μ€μ λκ±°λ, λͺ μμ μΌλ‘ νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ₯Ό κ°λ¦¬ν€λ μ λ³΄κ° ν¬ν¨λ μ μλ€. νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ μ μ ν λ€μν μ€μμλ€ μ€ νλμ λ°λΌμ μκ·Έλλ§λ μ μμΌλ©°, ꡬ체μ μΈ μ€λͺ μ μλ΅νλ€.Then, the video encoder (100) determines the transformation mode applied to the transformation of the current block from among at least one candidate transformation mode (S620). The transformation mode applied to the transformation of the current block may be implicitly set based on additional information, or may include information explicitly indicating the transformation mode applied to the current block. The transformation mode applied to the current block may be signaled according to one of the various embodiments described above, and a detailed description thereof will be omitted.
λΉλμ€ μΈμ½λ(100)λ κ²°μ λ λ³ν λͺ¨λμ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ λ³νμ μ΄μ©λλ λ³ν λΈλ‘μ κ²°μ νκ³ (S630), λ³ν λΈλ‘ λ¨μλ‘ νμ¬ λΈλ‘μ λν λ³νμ μννλ€(S640).The video encoder (100) determines a transformation block to be used for transformation of the current block based on the determined transformation mode (S630), and performs transformation for the current block in units of transformation blocks (S640).
λ 7μ λ³Έ κ°μμ μΌ μ€μμμ λ°λ₯Έ λΉλμ€ λ³΅νΈν λ°©λ²μ νλ‘μ° μ°¨νΈμ΄λ€.FIG. 7 is a flow chart of a video decoding method according to one embodiment of the present disclosure.
λ 7μ μ°Έμ‘°νλ©΄, λΉλμ€ λμ½λ(200)λ λΉνΈμ€νΈλ¦Όμ ν¬ν¨λ λΈλ‘ νν°μ λ μ 보μ κΈ°μ΄νμ¬, λ μ΄μ λΆν λμ§ μλ 리ν λ ΈλμΈ CUλ₯Ό κ²°μ νκ³ CU λ¨μλ‘ μμΈ‘ λ° μλ³ν κ³Όμ μ μνν μ μλ€. Referring to FIG. 7, the video decoder (200) can determine a CU, which is a leaf node that is no longer divided, based on block partitioning information included in the bitstream, and perform prediction and inverse transformation processes on a CU basis.
λΉλμ€ μΈμ½λ(200)λ μλ³νμ μννκΈ° μνμ¬ μ μ ν λ 5μ μμλ 볡μ κ°μ ν보 λ³ν λͺ¨λλ€ μ€ νμ¬ λΈλ‘μ λ³νμ μ΄μ©κ°λ₯ν μ μ΄λ νλμ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S710). μ μ ν λ°μ κ°μ΄, 볡μ κ°μ ν보 λ³ν λͺ¨λλ€μ νμ¬ λΈλ‘κ³Ό λμΌν ν¬κΈ°μ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λ, νμ¬ λΈλ‘μ μν λ°©ν₯ λ° μμ§ λ°©ν₯ μ€ μ μ΄λ νλμ λ°©ν₯μΌλ‘ μμ λΉμ¨λ‘ λΆν νμ¬ νλλλ λ³ν λΈλ‘μ μ΄μ©νλ λ³ν λͺ¨λλ₯Ό ν¬ν¨ν μ μλ€. λΉλμ€ λμ½λ(200)λ μ μ ν λΆκ° μ 보λ μ£Όλ³ λΈλ‘μ μ¬μ©λ λ³ν λͺ¨λμ ν΅κ³ μ 보μ κΈ°μ΄νμ¬, ν보 λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€. λν, λΉλμ€ λμ½λ(200)λ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ μ§μκ°λ₯ν λ³ν λͺ¨λ μ§μ μ 보λ₯Ό λΉνΈμ€νΈλ¦ΌμΌλ‘λΆν° νλνκ³ , λ³ν λͺ¨λ μ§μ μ 보μ κΈ°μ΄νμ¬ μνμ€, GOP, ν½μ³, μ¬λΌμ΄μ€, CTU, CU, TU λ¨μ μ€ μ μ΄λ νλμ λ¨μ λ³λ‘ ν보 λ³ν λͺ¨λλ₯Ό κ²°μ ν μ μλ€.The video encoder (200) determines at least one candidate transformation mode available for transformation of the current block from among the plurality of candidate transformation modes illustrated in FIG. 5 described above in order to perform inverse transformation (S710). As described above, the plurality of candidate transformation modes may include a transformation mode that uses a transformation block of the same size as the current block, and a transformation mode that uses a transformation block obtained by dividing the current block at a predetermined ratio in at least one of the horizontal and vertical directions. The video decoder (200) may determine the candidate transformation mode based on the statistical information of the transformation mode used in the aforementioned additional information or the surrounding blocks. In addition, the video decoder (200) may obtain transformation mode support information that can be supported for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit from a bitstream, and determine the candidate transformation mode for at least one unit among a sequence, a GOP, a picture, a slice, a CTU, a CU, and a TU unit based on the transformation mode support information.
κ·Έλ¦¬κ³ , λΉλμ€ λμ½λ(200)λ μ μ΄λ νλμ ν보 λ³ν λͺ¨λ μ€ νμ¬ λΈλ‘μ λ³νμ μ μ©λ λ³ν λͺ¨λλ₯Ό κ²°μ νλ€(S720). νμ¬ λΈλ‘μ λ³νμ μ μ©λ λ³ν λͺ¨λλ λΆκ° μ 보μ κΈ°μ΄νμ¬ μμμ μΌλ‘ μ€μ λκ±°λ, λͺ μμ μΌλ‘ λΉνΈμ€νΈλ¦Όμ ν¬ν¨λ λ³ν λͺ¨λ μ 보λ‘λΆν° μ€μ λ μ μλ€. νμ¬ λΈλ‘μ μ μ©λ λ³ν λͺ¨λλ μ μ ν λ€μν μ€μμλ€ μ€ νλμ λ°λΌμ μκ·Έλλ§λ μ μμΌλ©°, ꡬ체μ μΈ μ€λͺ μ μλ΅νλ€.Then, the video decoder (200) determines the transformation mode applied to the transformation of the current block among at least one candidate transformation mode (S720). The transformation mode applied to the transformation of the current block may be implicitly set based on additional information, or explicitly set from transformation mode information included in the bitstream. The transformation mode applied to the current block may be signaled according to one of the various embodiments described above, and a detailed description thereof will be omitted.
λΉλμ€ λμ½λ(200)λ κ²°μ λ λ³ν λͺ¨λμ κΈ°μ΄νμ¬ νμ¬ λΈλ‘μ μλ³νμ μ΄μ©λλ λ³ν λΈλ‘μ κ²°μ νκ³ (S730), λ³ν λΈλ‘ λ¨μλ‘ νμ¬ λΈλ‘μ λν μλ³νμ μννλ€(S740).The video decoder (200) determines a transformation block to be used for inverse transformation of the current block based on the determined transformation mode (S730), and performs inverse transformation for the current block in units of transformation blocks (S740).
λ³Έ λͺ μΈμμμ μμ ν λ°©λ²λ€μ λΉλμ€ μΈμ½λ λλ λΉλμ€ λμ½λμ νλ‘μΈμλ₯Ό ν΅ν΄ μνλ μ μλ€. λν, μΈμ½λλ λΉλμ€ μ νΈ μ²λ¦¬ λ°©λ²μ μν΄ λμ½λ©λλ λΉνΈμ€νΈλ¦Όμ μμ±ν μ μμΌλ©°, μΈμ½λκ° μμ±ν λΉνΈμ€νΈλ¦Όμ μ»΄ν¨ν° νλ κ°λ₯ν λΉ μΌμμ μ μ₯ 맀체(κΈ°λ‘ λ§€μ²΄)μ μ μ₯λ μ μλ€.The methods described herein may be performed by a processor of a video encoder or video decoder. Furthermore, the encoder may generate a bitstream that is decoded by a video signal processing method, and the bitstream generated by the encoder may be stored in a computer-readable, non-transitory storage medium (recording medium).
μμ ν λ³Έ λ°λͺ μ μ€μμλ€μ λ€μν μλ¨μ ν΅ν΄ ꡬνλ μ μλ€. μλ₯Ό λ€μ΄, λ³Έ λ°λͺ μ μ€μμλ€μ νλμ¨μ΄, νμ¨μ΄(firmware), μννΈμ¨μ΄ λλ κ·Έλ€μ κ²°ν© λ±μ μν΄ κ΅¬νλ μ μλ€.The embodiments of the present invention described above may be implemented through various means. For example, the embodiments of the present invention may be implemented using hardware, firmware, software, or a combination thereof.
μΌλΆ μ€μμλ μ»΄ν¨ν°μ μν΄ μ€νλλ νλ‘κ·Έλ¨ λͺ¨λκ³Ό κ°μ μ»΄ν¨ν°μ μν΄ μ€νκ°λ₯ν λͺ λ Ήμ΄λ₯Ό ν¬ν¨νλ κΈ°λ‘ λ§€μ²΄μ ννλ‘λ ꡬνλ μ μλ€. μ»΄ν¨ν° νλ κ°λ₯ 맀체λ μ»΄ν¨ν°μ μν΄ μ‘μΈμ€λ μ μλ μμμ κ°μ© λ§€μ²΄μΌ μ μκ³ , νλ°μ± λ° λΉνλ°μ± 맀체, λΆλ¦¬ν λ° λΉλΆλ¦¬ν 맀체λ₯Ό λͺ¨λ ν¬ν¨νλ€.Some embodiments may also be implemented in the form of a computer-executable storage medium containing computer-executable instructions, such as program modules executed by a computer. Computer-readable media may be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media.
λν, μ»΄ν¨ν° νλ κ°λ₯ 맀체λ μ»΄ν¨ν° μ μ₯ 맀체 λ° ν΅μ 맀체λ₯Ό λͺ¨λ ν¬ν¨ν μ μλ€. μ»΄ν¨ν° μ μ₯ 맀체λ μ»΄ν¨ν° νλ κ°λ₯ λͺ λ Ήμ΄, λ°μ΄ν° ꡬ쑰, νλ‘κ·Έλ¨ λͺ¨λ λλ κΈ°ν λ°μ΄ν°μ κ°μ μ 보μ μ μ₯μ μν μμμ λ°©λ² λλ κΈ°μ λ‘ κ΅¬νλ νλ°μ± λ° λΉνλ°μ±, λΆλ¦¬ν λ° λΉλΆλ¦¬ν 맀체λ₯Ό λͺ¨λ ν¬ν¨νλ€. ν΅μ 맀체λ μ νμ μΌλ‘ μ»΄ν¨ν° νλ κ°λ₯ λͺ λ Ήμ΄, λ°μ΄ν° ꡬ쑰 λλ νλ‘κ·Έλ¨ λͺ¨λκ³Ό κ°μ λ³μ‘°λ λ°μ΄ν° μ νΈμ κΈ°ν λ°μ΄ν°, λλ κΈ°ν μ μ‘ λ©μ»€λμ¦μ ν¬ν¨νλ©°, μμμ μ 보 μ λ¬ λ§€μ²΄λ₯Ό ν¬ν¨νλ€.Additionally, computer-readable media may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules, or other data. Communication media typically includes other data, such as computer-readable instructions, data structures, or program modules, in a modulated data signal, or other transport mechanism, and includes any information delivery media.
λν, μ΄μμμλ λ³Έ λ°λͺ μ λ°λμ§ν μ€μμμ λνμ¬ λμνκ³ μ€λͺ νμμ§λ§, λ³Έ λ°λͺ μ μμ ν νΉμ μ μ€μμμ νμ λμ§ μλνλ©°, μ²κ΅¬λ²μμμ μ²κ΅¬νλ λ³Έ λ°λͺ μ μμ§λ₯Ό λ²μ΄λ¨μ΄ μμ΄ λΉν΄ λ°λͺ μ΄ μνλ κΈ°μ λΆμΌμμ ν΅μμ μ§μμ κ°μ§ μμ μν΄ λ€μν λ³ν μ€μκ° κ°λ₯ν κ²μ λ¬Όλ‘ μ΄κ³ , μ΄λ¬ν λ³ν μ€μλ€μ λ³Έ λ°λͺ μ κΈ°μ μ μ¬μμ΄λ μ λ§μΌλ‘λΆν° κ°λ³μ μΌλ‘ μ΄ν΄λμ΄μ Έμλ μ λ κ²μ΄λ€.In addition, although the preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and various modifications can be implemented by a person having ordinary skill in the art to which the present invention pertains without departing from the gist of the present invention claimed in the claims, and such modifications should not be understood individually from the technical idea or prospect of the present invention.
Claims (18)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR20240054197 | 2024-04-23 | ||
| KR10-2024-0054197 | 2024-04-23 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025225965A1 true WO2025225965A1 (en) | 2025-10-30 |
Family
ID=97490287
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2025/005214 Pending WO2025225965A1 (en) | 2024-04-23 | 2025-04-17 | Video encoding method and apparatus based on adaptive transform mode, and video decoding method and apparatus |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025225965A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20170077203A (en) * | 2014-12-10 | 2017-07-05 | λ―Έλμ΄ν μ±κ°ν΄ νΌν°μ΄. μν°λ. | Method of video coding using binary tree block partitioning |
| KR20170142860A (en) * | 2016-06-17 | 2017-12-28 | μΈμ’ λνκ΅μ°ννλ ₯λ¨ | Method and apparatus for encoding or decoding video signal |
| WO2018026219A1 (en) * | 2016-08-03 | 2018-02-08 | μ£Όμνμ¬ μΌμ΄ν° | Video signal processing method and device |
| KR20180033030A (en) * | 2016-09-23 | 2018-04-02 | μΈμ’ λνκ΅μ°ννλ ₯λ¨ | Method and apparatus for processing a video signal based on adaptive block patitioning |
| KR20230019178A (en) * | 2016-06-24 | 2023-02-07 | νκ΅μ μν΅μ μ°κ΅¬μ | Method and apparatus for encoding and decoding a video image based on transform |
-
2025
- 2025-04-17 WO PCT/KR2025/005214 patent/WO2025225965A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20170077203A (en) * | 2014-12-10 | 2017-07-05 | λ―Έλμ΄ν μ±κ°ν΄ νΌν°μ΄. μν°λ. | Method of video coding using binary tree block partitioning |
| KR20170142860A (en) * | 2016-06-17 | 2017-12-28 | μΈμ’ λνκ΅μ°ννλ ₯λ¨ | Method and apparatus for encoding or decoding video signal |
| KR20230019178A (en) * | 2016-06-24 | 2023-02-07 | νκ΅μ μν΅μ μ°κ΅¬μ | Method and apparatus for encoding and decoding a video image based on transform |
| WO2018026219A1 (en) * | 2016-08-03 | 2018-02-08 | μ£Όμνμ¬ μΌμ΄ν° | Video signal processing method and device |
| KR20180033030A (en) * | 2016-09-23 | 2018-04-02 | μΈμ’ λνκ΅μ°ννλ ₯λ¨ | Method and apparatus for processing a video signal based on adaptive block patitioning |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020180102A1 (en) | Image decoding method using context-coded sign flag in image coding system and apparatus therefor | |
| WO2019083334A1 (en) | Method and device for image encoding/decoding on basis of asymmetric sub-block | |
| WO2019172705A1 (en) | Image encoding/decoding method and apparatus using sample filtering | |
| WO2021054796A1 (en) | Image coding method based on transform, and device therefor | |
| WO2020096427A1 (en) | Image signal encoding/decoding method and apparatus therefor | |
| WO2020171592A1 (en) | Video decoding method using residual information in video coding system, and apparatus thereof | |
| WO2020162690A1 (en) | Method and device for processing video signal using reduced transform | |
| WO2020166977A1 (en) | Method and apparatus for processing video signal | |
| WO2021054811A1 (en) | Image encoding/decoding method and apparatus, and recording medium storing bitstream | |
| WO2021096290A1 (en) | Transform-based image coding method and device therefor | |
| WO2020162732A1 (en) | Method and device for processing video signal | |
| WO2021172914A1 (en) | Image decoding method for residual coding and device for same | |
| WO2021060844A1 (en) | Image encoding/decoding method and device using palette mode, and method for transmitting bitstream | |
| WO2020139005A1 (en) | Image encoding/decoding method and device, and recording medium in which bitstream is stored | |
| WO2021006697A1 (en) | Image decoding method for residual coding and apparatus therefor | |
| WO2021006698A1 (en) | Image coding method and device in image coding system | |
| WO2021025526A1 (en) | Video coding method on basis of transformation, and device therefor | |
| WO2021010680A1 (en) | Image coding method based on transform, and device for same | |
| WO2020171647A1 (en) | Image decoding method and apparatus using intra prediction in image coding system | |
| WO2020171671A1 (en) | Image coding method based on quadratic transform, and apparatus therefor | |
| WO2020106089A1 (en) | Image encoding/decoding method and apparatus, and recording medium storing bitstream | |
| WO2021060845A1 (en) | Image encoding/decoding method and apparatus using user-defined palette entry, and method for transmitting bitstream | |
| WO2021086050A1 (en) | Transform-based image coding method and apparatus therefor | |
| WO2021054783A1 (en) | Image coding method on basis of transform, and apparatus therefor | |
| WO2021137556A1 (en) | Transform-based image coding method and device for same |
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: 25795003 Country of ref document: EP Kind code of ref document: A1 |