WO2019045538A1 - Encoding method and apparatus therefor, and decoding method and apparatus therefor - Google Patents
Encoding method and apparatus therefor, and decoding method and apparatus therefor Download PDFInfo
- Publication number
- WO2019045538A1 WO2019045538A1 PCT/KR2018/010198 KR2018010198W WO2019045538A1 WO 2019045538 A1 WO2019045538 A1 WO 2019045538A1 KR 2018010198 W KR2018010198 W KR 2018010198W WO 2019045538 A1 WO2019045538 A1 WO 2019045538A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- zone
- current block
- sub
- coefficient
- encoding unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/48—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
-
- 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 a video encoding method and a video decoding method, and more particularly, to a method of efficiently encoding and decoding a transform coefficient.
- High quality video requires a large amount of data when encoding.
- the bandwidth allowed for delivering video data is limited, so that the data rate applied when transmitting video data may be limited. Therefore, in order to efficiently transmit video data, a method of encoding and decoding video data with an increased compression ratio while minimizing deterioration of image quality is needed.
- Video data can be compressed by eliminating spatial redundancy and temporal redundancy between pixels. Since it is common to have a common feature among adjacent pixels, encoding information is transmitted in units of data consisting of pixels in order to eliminate redundancy between adjacent pixels.
- the pixel values of the pixels included in the data unit are not transmitted directly, but the necessary method to obtain the pixel value is transmitted.
- a prediction method for predicting the pixel value similar to the original value is determined for each data unit and the encoding information for the prediction method is transmitted from the encoder to the decoder. Also, since the predicted value is not exactly the same as the original value, the residual data of the difference between the original value and the predicted value is transmitted to the decoder in the encoder.
- the prediction method is determined in consideration of the size of the encoding information and the residual data.
- data units divided in pictures have various sizes. The larger the size of a data unit, the more likely the prediction accuracy decreases, and the coding information decreases. Therefore, the size of the block is determined according to the characteristics of the picture.
- the prediction methods include intra prediction and inter prediction.
- Intra prediction is a method of predicting pixels of a block from surrounding pixels of the block.
- Inter prediction is a method of predicting pixels with reference to pixels of another picture referenced by a picture including a block. Therefore, spatial redundancy is removed by intra prediction, and temporal redundancy is eliminated by inter prediction.
- the encoding information applied to the block can also be predicted from other blocks, thereby reducing the size of the encoded information.
- the amount of residual data can be reduced by lossy compression of the residual data according to the transformation and quantization process.
- a video encoding method and a video encoding apparatus for encoding a transform coefficient by dividing a current block into one or more regions and dividing the region into one or more sub-regions are also disclosed.
- a video decoding method and a video decoding apparatus for decoding a transform coefficient by dividing a current block into one or more regions and dividing the region into one or more sub-regions are disclosed.
- a computer-readable recording medium on which a program for causing a computer to execute a video encoding method and a video decoding method according to an embodiment of the present disclosure is disclosed.
- the method comprising the steps of: receiving a bitstream including a zone flag of a current block, a subspace flag, and transform coefficient information, dividing the current block into a plurality of zones, and, in accordance with zone flags for a plurality of zones of the current block, Determining a zone in which the last effective conversion coefficient of the current block is included in the plurality of zones, dividing a zone into which the effective conversion coefficient of at least one of the plurality of zones may be included into a plurality of subareas, Determining, based on the sub-zone flag for the sub-zone of the plurality of sub-zones, at least one valid conversion coefficient for each of the plurality of sub-zones, and based on the zone flag and the sub- Determine the coefficient coding scheme for the subareas containing one effective transform coefficient And a processor for obtaining transform coefficient arrays of the current block by parsing transform coefficient information of the current block according to the coefficient coding scheme.
- a zone flag for a plurality of zones of the current block according to whether or not the last valid coefficient of the current block is included in a zone among the plurality of zones of the current block; Dividing a region into which the effective transform coefficients of at least one of the plurality of regions may be included into a plurality of sub-regions, determining whether at least one effective transform coefficient is included in each of the plurality of sub- Determining a sub-zone flag for a plurality of sub-zones of the current block, determining, based on the zone flag and the sub-zone flag, a coefficient for a sub-zone comprising at least one effective transform coefficient of the plurality of sub- Determining a coding scheme, determining a coding scheme of the current block according to the coefficient coding scheme, Determining a transform coefficient information of the current block from a transform coefficient array, and outputting a bit stream including the zone flag, the sub zone flag, and the transform coefficient information of the current block do.
- a zone flag for a plurality of zones of the current block according to whether one of a plurality of zones of the current block includes the last valid conversion coefficient of the current block, , Dividing a region into which at least one effective transform coefficient of the plurality of regions may be included into a plurality of sub-regions, and determining whether or not at least one effective transform coefficient is included in each of the plurality of sub- Determining a sub-zone flag for a plurality of sub-zones of the plurality of sub-zones based on the zone flag and the sub-zone flag, and determining a coefficient coding scheme for the sub- And transforming the transform coefficient array of the current block into a transform coefficient array according to the coefficient coding scheme, Determining a transform coefficient information of a current block, the video encoding apparatus including the current block of the flag area, the sub-area flag, and a processor for outputting a bit stream including the transform coefficient information is provided.
- a computer-readable recording medium on which a program for performing the video coding method and the video decoding method is recorded.
- the encoding and decoding efficiency of video coding and decoding is increased by encoding and decoding the transform coefficients of the current block according to various methods.
- FIG. 1A shows a block diagram of an image encoding apparatus based on an encoding unit according to a tree structure according to an embodiment of the present disclosure.
- FIG. 1B shows a block diagram of a video decoding method based on a coding unit according to a tree structure according to an embodiment.
- FIG. 2 illustrates a process in which an image decoding apparatus determines at least one encoding unit by dividing a current encoding unit according to an embodiment.
- FIG. 3 illustrates a process in which an image decoding apparatus determines at least one encoding unit by dividing a non-square encoding unit according to an embodiment.
- FIG. 4 illustrates a process in which an image decoding apparatus divides an encoding unit based on at least one of division type mode information according to an embodiment.
- FIG. 5 illustrates a method for an image decoding apparatus to determine a predetermined encoding unit among an odd number of encoding units according to an embodiment.
- FIG. 6 illustrates a sequence in which a plurality of encoding units are processed when an image decoding apparatus determines a plurality of encoding units by dividing a current encoding unit according to an exemplary embodiment.
- FIG. 7 illustrates a process for determining that the current encoding unit is divided into odd number of encoding units when the image decoding apparatus can not process the encoding units in a predetermined order according to an exemplary embodiment.
- FIG. 8 illustrates a process in which an image decoding apparatus determines at least one encoding unit by dividing a first encoding unit according to an embodiment.
- FIG. 9 is a diagram illustrating a case where the second encoding unit is limited in the case where the second encoding unit of the non-square type determined by dividing the first encoding unit satisfies a predetermined condition according to an embodiment of the present invention Lt; / RTI >
- FIG. 10 illustrates a process in which an image decoding apparatus divides a square-shaped encoding unit when the division mode mode information can not be divided into four square-shaped encoding units according to an embodiment.
- FIG. 11 illustrates that the processing order among a plurality of coding units may be changed according to a division process of coding units according to an embodiment.
- FIG. 12 illustrates a process of determining the depth of an encoding unit according to a change in type and size of an encoding unit when a plurality of encoding units are determined by recursively dividing an encoding unit according to an exemplary embodiment.
- FIG. 13 illustrates a depth index (hereinafter referred to as PID) for coding unit classification and depth that can be determined according to the type and size of coding units according to an exemplary embodiment.
- PID depth index
- FIG. 14 shows that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to an embodiment.
- FIG. 15 illustrates a processing block serving as a reference for determining a determination order of a reference encoding unit included in a picture according to an embodiment.
- FIG. 16 shows a block diagram of a video decoding apparatus for obtaining a transform coefficient array of a current block based on a plurality of regions and a plurality of sub regions in which a current block is divided.
- Fig. 17 shows a first embodiment for dividing a square current block having a size of N ⁇ N N into a plurality of zones and sub-zones, and parsing the transform coefficient information of the current block.
- Fig. 18 shows a second embodiment for dividing a square current block having a size of N ⁇ N N into a plurality of zones and sub-zones, and parsing the transform coefficient information of the current block.
- 19 shows a third embodiment of dividing a square current block having a size of N ⁇ N N into a plurality of zones and sub-zones, and parsing the transform coefficient information of the current block.
- Fig. 20 shows a fourth embodiment for dividing a rectangular current block having a size of M ⁇ N into a plurality of zones and sub-zones, and parsing the transform coefficient information of the current block.
- Fig. 21 shows a fifth embodiment for dividing a rectangular current block having a size of M ⁇ N into a plurality of zones and sub-zones, and parsing the transform coefficient information of the current block.
- FIG. 22 illustrates a method of dividing a current block of Mx8 size according to the dividing method of the fourth embodiment of FIG.
- FIG. 23 illustrates a method of dividing a current block of Mx4 size according to the dividing method of the fourth embodiment of FIG.
- FIG. 24 illustrates a method of dividing a current block of Mx2 size according to the dividing method of the fourth embodiment of FIG.
- 25 is a flowchart illustrating a process of entropy decoding based on a last location-based coefficient coding scheme according to an embodiment of the present invention.
- FIG. 26 is a flowchart illustrating a process of entropy decoding based on an entire location-based coefficient coding scheme according to an embodiment of the present invention.
- FIG. 27 is a flowchart illustrating a process of entropy decoding based on a scan area-based coefficient coding scheme according to an embodiment of the present invention.
- FIG. 28 is a flowchart illustrating an entropy decoding process based on an effective group-based coefficient coding scheme according to an embodiment of the present invention.
- FIG. 29 is a flowchart illustrating a process of entropy decoding based on a last position and an effective group-based coefficient coding scheme according to an embodiment of the present invention.
- FIG. 30 is a flowchart illustrating a process of entropy decoding based on effective group and last position-based coefficient coding schemes according to an embodiment of the present invention.
- 31 is a view for explaining a process of entropy decoding based on a valid group and a lastRun-based coefficient coding scheme according to an embodiment of the present invention.
- 32 is a view for explaining a process of entropy decoding based on a first run-level-based coefficient coding scheme according to an embodiment of the present invention.
- 33 is a view for explaining a process of entropy decoding based on a second run-level-based coefficient coding scheme according to an embodiment of the present invention.
- FIG. 34 shows a method of determining a scan area in the form of a rectangle according to an embodiment.
- FIG. 35 shows a method of determining a scan area in the form of a square according to an embodiment.
- Figure 36 shows the current block divided into nine sub-zones.
- FIG. 37 shows a flowchart of a video decoding method for obtaining a transform coefficient array of a current block based on a plurality of zones and a plurality of sub zones in which a current block is divided.
- FIG. 38 shows a block diagram of a video encoding apparatus for encoding an array of transform coefficients of a current block based on a plurality of regions and a plurality of sub regions in which the current block is divided.
- FIG. 39 shows a flowchart of a video coding method for coding a transform coefficient array of a current block based on a plurality of zones and a plurality of sub zones in which the current block is divided.
- part refers to a hardware component such as software, FPGA or ASIC, and “ part " However, “ part “ is not meant to be limited to software or hardware. &Quot; Part " may be configured to reside on an addressable storage medium and may be configured to play back one or more processors.
- part (s) refers to components such as software components, object oriented software components, class components and task components, and processes, Subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables.
- the functions provided in the components and “ parts " may be combined into a smaller number of components and “ parts “ or further separated into additional components and “ parts ".
- the " current block” means one of a coding unit, a prediction unit and a conversion unit which are currently encoded or decoded. For convenience of explanation, when it is necessary to distinguish other types of blocks such as a prediction unit, a conversion unit, a "current encoding block”, a “current prediction block”, and a “current conversion block” may be used.
- “Sub-block” means a data unit divided from “current block”.
- “upper block” means a data unit including " current block ".
- sample means data to be processed as data assigned to a sampling position of an image.
- pixel values in the image of the spatial domain, and transform coefficients on the transform domain may be samples.
- a unit including at least one of these samples may be defined as a block.
- FIGS. 1A and 1B A method and apparatus for adaptively selecting a context model based on various types of encoding units in accordance with one embodiment of the present disclosure will be described below with reference to FIGS. 1A and 1B.
- FIG. 1A shows a schematic block diagram of an image decoding apparatus 100 according to an embodiment.
- the image decoding apparatus 100 may include a receiving unit 110 and a decoding unit 120.
- the receiving unit 110 and the decoding unit 120 may include at least one processor.
- the receiving unit 110 and the decoding unit 120 may include a memory for storing instructions to be executed by at least one processor.
- the receiving unit 110 may receive the bit stream.
- the bitstream includes information obtained by encoding an image by a video encoding apparatus 3800, which will be described later. Further, the bit stream can be transmitted from the image encoding apparatus 3800.
- the image encoding apparatus 3800 and the image decoding apparatus 100 may be connected by wire or wirelessly, and the receiving unit 110 may receive a bit stream by wire or wireless.
- the receiving unit 110 may receive a bit stream from a storage medium such as an optical medium, a hard disk, or the like.
- the decoding unit 120 may restore the image based on the information obtained from the received bitstream.
- the decoding unit 120 may obtain a syntax element for reconstructing an image from a bitstream.
- the decoding unit 120 can restore an image based on the syntax element.
- FIG. 1B shows a flow diagram of a video decoding method according to one embodiment.
- the receiving unit 110 receives a bit stream.
- the video decoding apparatus 100 performs a step 150 of obtaining an empty string corresponding to the division type mode of the encoding unit from the bit stream.
- the video decoding apparatus 100 performs a step 160 of determining a division rule of an encoding unit.
- the image decoding apparatus 100 also performs a step 170 of dividing the encoding unit into a plurality of encoding units based on at least one of the bin string corresponding to the division mode mode and the division rule.
- the image decoding apparatus 100 may determine an allowable first range of the size of the encoding unit according to the ratio of the width and the height of the encoding unit in order to determine the segmentation rule.
- the video decoding apparatus 100 may determine an allowable second range of the size of the coding unit according to the division mode of coding unit in order to determine the division rule.
- one picture may be divided into one or more slices.
- One slice may be a sequence of one or more Coding Tree Units (CTUs).
- CTUs Coding Tree Units
- CTB maximum coding block
- the maximum coding block means an NxN block including NxN samples (N is an integer). Each color component may be divided into one or more maximum encoding blocks.
- the maximum encoding unit is the maximum encoding block of the luma sample and the two maximum encoding blocks of the chroma samples corresponding thereto, Samples, and chroma samples.
- the maximum encoding unit is a unit including syntax structures used for encoding the maximum encoded block and monochrome samples of the monochrome sample.
- the maximum encoding unit is a unit including syntax structures used for encoding the pictures and the samples of the picture.
- One maximum coding block may be divided into MxN coding blocks (M, N is an integer) including MxN samples.
- a coding unit is a coding unit that encodes two coding blocks of a luma sample coding block and corresponding chroma samples and luma samples and chroma samples Is a unit that includes syntax structures used for decoding.
- the encoding unit is a unit including syntax blocks used for encoding the mono chrome samples and the encoded block of the monochrome sample.
- an encoding unit is a unit including syntax structures used for encoding the pictures and the samples of the picture.
- the maximum encoding block and the maximum encoding unit are concepts that are distinguished from each other, and the encoding block and the encoding unit are conceptually distinguished from each other. That is, the (maximum) coding unit means a data structure including a (maximum) coding block including a corresponding sample and a corresponding syntax structure.
- a (maximum) encoding unit or a (maximum) encoding block refers to a predetermined size block including a predetermined number of samples.
- the image can be divided into a maximum coding unit (CTU).
- the size of the maximum encoding unit may be determined based on information obtained from the bitstream.
- the shape of the largest encoding unit may have a square of the same size.
- the present invention is not limited thereto.
- the maximum size of a luma encoded block from the bitstream can be obtained.
- the maximum size of a luma encoding block indicated by information on the maximum size of a luma encoding block may be one of 16x16, 32x32, 64x64, 128x128, and 256x256.
- information on the maximum size and luma block size difference of a luma coding block that can be divided into two from the bitstream can be obtained.
- the information on the luma block size difference may indicate the size difference between the luma maximum encoding unit and the maximum luma encoding block that can be divided into two. Therefore, when the information on the maximum size of the luma coding block obtained from the bitstream and capable of being divided into two pieces is combined with information on the luma block size difference, the size of the luma maximum coding unit can be determined. Using the size of the luma maximum encoding unit, the size of the chroma maximum encoding unit can also be determined.
- the size of the chroma block may be half the size of the luma block
- the size of the chroma maximum encoding unit may be the size of the luma maximum encoding unit It can be half the size.
- the maximum size of the luma coding block capable of binary division can be variably determined.
- the maximum size of a luma coding block capable of ternary splitting can be fixed.
- the maximum size of a luma coding block capable of ternary partitioning on an I slice is 32x32
- the maximum size of a luma coding block capable of ternary partitioning on a P slice or B slice can be 64x64.
- the maximum encoding unit may be hierarchically divided in units of encoding based on division mode information obtained from the bitstream.
- division mode information at least one of information indicating whether a quad split is performed, information indicating whether or not the division is multi-division, division direction information, and division type information may be obtained from the bitstream.
- information indicating whether a quad split is present may indicate whether the current encoding unit is quad-split (QUAD_SPLIT) or not quad-split.
- the information indicating whether the current encoding unit is multi-divided may indicate whether the current encoding unit is no longer divided (NO_SPLIT) or binary / ternary divided.
- the division direction information indicates that the current encoding unit is divided into either the horizontal direction or the vertical direction.
- the division type information indicates that the current encoding unit is divided into binary division) or ternary division.
- the division mode of the current encoding unit can be determined according to the division direction information and the division type information.
- the division mode when the current coding unit is divided into the horizontal direction is divided into binary horizontal division (SPLIT_BT_HOR), ternary horizontal division (SPLIT_TT_HOR) when tiled in the horizontal direction, and division mode in the case of binary division in the vertical direction.
- the binary vertical division (SPLIT_BT_VER) and the division mode in the case of ternary division in the vertical direction can be determined to be the ternary vertical division (SPLIT_BT_VER).
- the image decoding apparatus 100 can obtain the split mode mode information from the bit stream in one bin string.
- the form of the bit stream received by the video decoding apparatus 100 may include a fixed length binary code, a unary code, a truncated unary code, and a predetermined binary code.
- An empty string is a binary sequence of information. The empty string may consist of at least one bit.
- the image decoding apparatus 100 can obtain the split mode mode information corresponding to the bin string based on the split rule.
- the video decoding apparatus 100 can determine whether or not to divide the encoding unit into quad, division, or division direction and division type based on one bin string.
- the encoding unit may be less than or equal to the maximum encoding unit.
- the maximum encoding unit is also one of the encoding units since it is the encoding unit having the maximum size.
- the encoding unit determined in the maximum encoding unit has the same size as the maximum encoding unit. If the division type mode information for the maximum encoding unit indicates division, the maximum encoding unit may be divided into encoding units. In addition, if division type mode information for an encoding unit indicates division, encoding units can be divided into smaller-sized encoding units.
- the division of the image is not limited to this, and the maximum encoding unit and the encoding unit may not be distinguished. The division of the encoding unit will be described in more detail with reference to FIG. 2 to FIG.
- one or more prediction blocks for prediction from the encoding unit can be determined.
- the prediction block may be equal to or smaller than the encoding unit.
- one or more conversion blocks for conversion from an encoding unit may be determined.
- the conversion block may be equal to or smaller than the encoding unit.
- the shape and size of the conversion unit and the conversion block and the prediction block may not be related to each other.
- prediction can be performed using an encoding unit as an encoding unit as a prediction block.
- conversion can be performed using the encoding unit as a conversion block as a conversion block.
- the current block and the neighboring blocks of the present disclosure may represent one of a maximum encoding unit, an encoding unit, a prediction block, and a transform block.
- the current block or the current encoding unit is a block in which decoding or encoding is currently proceeding, or a block in which the current segmentation is proceeding.
- the neighboring block may be a block restored before the current block.
- the neighboring blocks may be spatially or temporally contiguous from the current block.
- the neighboring block may be located at one of the left lower side, the left side, the upper left side, the upper side, the upper right side, the right side, and the lower right side of the current block.
- FIG. 2 illustrates a process in which the image decoding apparatus 100 determines at least one encoding unit by dividing a current encoding unit according to an embodiment.
- the block shape may include 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, or Nx4N. Where N may be a positive integer.
- the block type information is information indicating at least one of a ratio, or a size, of a shape, direction, width, and height of an encoding unit.
- the shape of the encoding unit may include a square and a non-square. If the width and height of the encoding unit are the same (i.e., the block type of the encoding unit is 4Nx4N), the image decoding apparatus 100 can determine the block type information of the encoding unit as a square. The image decoding apparatus 100 can determine the shape of the encoding unit as a non-square.
- the image decoding apparatus 100 determines the block type information of the encoding unit as a non- .
- the shape of the coding unit is a non-square shape
- the image decoding apparatus 100 sets the width and height ratio of the block type information of the coding unit to 1: 2, 2: 1, 1: 4, 4: Or 8: 1.
- the video decoding apparatus 100 can determine whether the coding unit is the horizontal direction or the vertical direction. Further, the image decoding apparatus 100 can determine the size of the encoding unit based on at least one of the width of the encoding unit, the length of the height, and the width.
- the image decoding apparatus 100 may determine the type of the encoding unit using the block type information, and may determine the type of the encoding unit to be divided using the division type mode information. That is, the division method of the coding unit indicated by the division type mode information can be determined according to which block type the block type information used by the video decoding apparatus 100 represents.
- the image decoding apparatus 100 can obtain the split mode information from the bit stream. However, the present invention is not limited thereto, and the image decoding apparatus 100 and the image encoding apparatus 3800 can determine the promised divided mode information based on the block type information.
- the video decoding apparatus 100 can determine the promised divided mode mode information for the maximum encoding unit or the minimum encoding unit. For example, the image decoding apparatus 100 may determine the division type mode information as a quad split with respect to the maximum encoding unit. Also, the video decoding apparatus 100 can determine the division type mode information to be " not divided " for the minimum encoding unit. Specifically, the image decoding apparatus 100 can determine the size of the maximum encoding unit to be 256x256.
- the video decoding apparatus 100 can determine the promised division mode information in advance by quad division.
- Quad partitioning is a split mode mode that bisects both the width and the height of the encoding unit.
- the image decoding apparatus 100 can obtain a 128x128 encoding unit from the 256x256 maximum encoding unit based on the division type mode information. Also, the image decoding apparatus 100 can determine the size of the minimum encoding unit to be 4x4.
- the image decoding apparatus 100 can obtain the division type mode information indicating " not divided " for the minimum encoding unit.
- the image decoding apparatus 100 may use block type information indicating that the current encoding unit is a square type. For example, the image decoding apparatus 100 can determine whether to divide a square encoding unit according to division type mode information, vertically or horizontally, four encoding units, or the like. 2, if the block type information of the current encoding unit 200 indicates a square shape, the decoding unit 120 decodes the same size as the current encoding unit 200 according to the split mode mode information indicating that the current block is not divided (210b), 210c (210d), etc.) based on the division type mode information indicating the predetermined division method.
- division type mode information indicating that the current encoding unit is a square type.
- the image decoding apparatus 100 includes two encoding units 210b, which are obtained by dividing the current encoding unit 200 in the vertical direction, based on the division mode information indicating that the image is divided vertically according to an embodiment You can decide.
- the image decoding apparatus 100 may determine two encoding units 210c that are obtained by dividing the current encoding unit 200 in the horizontal direction based on the split mode mode information indicating that the image is divided in the horizontal direction.
- the image decoding apparatus 100 may determine the four coding units 210d obtained by dividing the current coding unit 200 in the vertical direction and the horizontal direction based on the division type mode information indicating that the image is divided in the vertical direction and the horizontal direction.
- a division type in which a square coding unit can be divided should not be limited to the above-described type, and various types of division mode information can be included.
- the predetermined divisional form in which the square encoding unit is divided will be described in detail by way of various embodiments below.
- FIG. 3 illustrates a process in which the image decoding apparatus 100 determines at least one encoding unit by dividing a non-square encoding unit according to an embodiment.
- the image decoding apparatus 100 may use block type information indicating that the current encoding unit is a non-square format.
- the image decoding apparatus 100 may determine whether to divide the non-square current encoding unit according to the division mode mode information or not in a predetermined method. 3, when the block type information of the current encoding unit 300 or 350 indicates a non-square shape, the image decoding apparatus 100 determines whether the current encoding unit 320b, 330a, 330b, 330c, and 370a (320a, 320b, 330a, 330b, 330c, and 350d) that are divided based on division mode mode information indicating a predetermined division method, , 370b, 380a, 380b, and 380c.
- the predetermined division method in which the non-square coding unit is divided will be described in detail through various embodiments.
- the image decoding apparatus 100 may determine the type in which the encoding unit is divided using the division type mode information.
- the division type mode information may include at least one of the encoding units Can be expressed. 3, when the division type mode information indicates that the current encoding unit 300 or 350 is divided into two encoding units, the image decoding apparatus 100 determines whether the current encoding unit 300 or 350 is divided based on the division type mode information, 350) to determine two encoding units 320a, 320b, or 370a, 370b included in the current encoding unit.
- the video decoding apparatus 100 divides the current coding unit 300 or 350 into non- The current encoding unit can be divided in consideration of the long side position of the encoding unit 300 or 350.
- the image decoding apparatus 100 divides the current encoding unit 300 or 350 in the direction of dividing the long side of the current encoding unit 300 or 350 in consideration of the type of the current encoding unit 300 or 350 So that a plurality of encoding units can be determined.
- the video decoding apparatus 100 when the division type mode information indicates that an encoding unit is divided into an odd number of blocks (ternary division), the video decoding apparatus 100 performs an odd number of encodings included in the current encoding unit 300 or 350 The unit can be determined. For example, when the division type mode information indicates that the current encoding unit 300 or 350 is divided into three encoding units, the video decoding apparatus 100 converts the current encoding unit 300 or 350 into three encoding units 330a, 330b, 330c, 380a, 380b, and 380c.
- the ratio of the width and height of the current encoding unit 300 or 350 may be 4: 1 or 1: 4. If the ratio of width to height is 4: 1, the length of the width is longer than the length of the height, so the block type information may be horizontal. If the ratio of width to height is 1: 4, the block type information may be vertical because the length of the width is shorter than the length of the height.
- the image decoding apparatus 100 may determine to divide the current encoding unit into odd number blocks based on the division type mode information. Also, the image decoding apparatus 100 can determine the dividing direction of the current encoding unit 300 or 350 based on the block type information of the current encoding unit 300 or 350.
- the image decoding apparatus 100 may determine the encoding units 330a, 330b, and 330c by dividing the current encoding unit 300 in the horizontal direction. If the current encoding unit 350 is the horizontal direction, the image decoding apparatus 100 can determine the encoding units 380a, 380b, and 380c by dividing the current encoding unit 350 in the vertical direction.
- the image decoding apparatus 100 may determine an odd number of encoding units included in the current encoding unit 300 or 350, and the sizes of the determined encoding units may not be the same.
- the size of the predetermined encoding unit 330b or 380b among the determined odd number of encoding units 330a, 330b, 330c, 380a, 380b, and 380c is different from the size of the other encoding units 330a, 330c, 380a, and 380c .
- an encoding unit that can be determined by dividing the current encoding unit 300 or 350 may have a plurality of types of sizes, and in some cases, an odd number of encoding units 330a, 330b, 330c, 380a, 380b, May have different sizes.
- the image decoding apparatus 100 can determine an odd number of encoding units included in the current encoding unit 300 or 350, Furthermore, the image decoding apparatus 100 may set a predetermined restriction on at least one of the odd number of encoding units generated by division. Referring to FIG. 3, the image decoding apparatus 100 includes a coding unit 330a, 330b, 330c, 380a, 380b, and 380c generated by dividing a current coding unit 300 or 350, (330b, 380b) may be different from the other encoding units (330a, 330c, 380a, 380c).
- the encoding units 330b and 380b positioned at the center are restricted so as not to be further divided, It can be limited to be divided.
- FIG. 4 illustrates a process in which the image decoding apparatus 100 divides an encoding unit based on at least one of divided mode information according to an embodiment.
- the image decoding apparatus 100 may determine to divide or not divide the first encoding unit 400 of a rectangular shape into encoding units based on at least one of the division type mode information.
- the image decoding apparatus 100 divides the first encoding unit 400 in the horizontal direction, The unit 410 can be determined.
- the first encoding unit, the second encoding unit, and the third encoding unit used according to an embodiment are terms used to understand the relation before and after the division between encoding units.
- the second encoding unit can be determined, and if the second encoding unit is divided, the third encoding unit can be determined.
- the relationship between the first coding unit, the second coding unit and the third coding unit used can be understood to be in accordance with the above-mentioned characteristic.
- the image decoding apparatus 100 may determine that the determined second encoding unit 410 is divided or not divided into encoding units based on the division mode information. Referring to FIG. 4, the image decoding apparatus 100 divides a second encoding unit 410 of a non-square shape determined by dividing a first encoding unit 400 based on division mode information into at least one third encoding 420a, 420b, 420c, 420d, etc., or the second encoding unit 410 may not be divided.
- the image decoding apparatus 100 can obtain the division type mode information and the image decoding apparatus 100 divides the first encoding unit 400 based on the obtained division type mode information to generate a plurality of second encoding
- the second encoding unit 410 may be divided according to the manner in which the first encoding unit 400 is divided based on the division mode mode information.
- the second encoding units 410 E.g., 420a, 420b, 420c, 420d, etc.
- the encoding unit may be recursively divided based on the division mode information associated with each encoding unit. Therefore, a square encoding unit may be determined in a non-square encoding unit, and a non-square encoding unit may be determined by dividing the square encoding unit recursively.
- predetermined encoding units for example, An encoding unit or a square-shaped encoding unit
- the third encoding unit 420b which is one of the odd-numbered third encoding units 420b, 420c, and 420d, may be divided in the horizontal direction and divided into a plurality of fourth encoding units.
- the non-square fourth encoding unit 430b or 430d which is one of the plurality of fourth encoding units 430a, 430b, 430c, and 430d, may be divided into a plurality of encoding units.
- the non-square-shaped fourth encoding unit 430b or 430d may be divided again into odd-numbered encoding units.
- a method which can be used for recursive division of an encoding unit will be described later in various embodiments.
- the image decoding apparatus 100 may divide each of the third encoding units 420a, 420b, 420c, and 420d into encoding units based on the division type mode information. Also, the image decoding apparatus 100 may determine that the second encoding unit 410 is not divided based on the division type mode information. The image decoding apparatus 100 may divide the second encoding unit 410 in the non-square form into an odd number of third encoding units 420b, 420c and 420d according to an embodiment. The image decoding apparatus 100 may set a predetermined restriction on a predetermined third encoding unit among the odd number of third encoding units 420b, 420c, and 420d. For example, the image decoding apparatus 100 may restrict the encoding unit 420c located in the middle among the odd-numbered third encoding units 420b, 420c, and 420d to no longer be divided or be divided into a set number of times .
- the image decoding apparatus 100 includes an encoding unit (not shown) positioned in the middle of an odd number of third encoding units 420b, 420c, and 420d included in a second encoding unit 410 of a non- 420c are not further divided or are limited to being divided into a predetermined division form (for example, divided into four coding units or divided into a form corresponding to a form in which the second coding units 410 are divided) (For example, dividing only n times, n > 0).
- a predetermined division form for example, divided into four coding units or divided into a form corresponding to a form in which the second coding units 410 are divided
- the above restriction on the encoding unit 420c positioned at the center is merely an example and should not be construed to be limited to the above embodiments and the encoding unit 420c positioned at the center is not limited to the other encoding units 420b and 420d Quot;), < / RTI > which can be decoded differently.
- the image decoding apparatus 100 may acquire division mode information used for dividing a current encoding unit at a predetermined position in a current encoding unit.
- FIG. 5 illustrates a method by which the image decoding apparatus 100 determines an encoding unit of a predetermined position among odd number of encoding units according to an embodiment.
- the division type mode information of the current encoding units 500 and 550 is a sample of a predetermined position among a plurality of samples included in the current encoding units 500 and 550 (for example, 540, 590).
- the predetermined position in the current coding unit 500 in which at least one of the division mode information can be obtained should not be limited to the middle position shown in FIG. 5, and the predetermined position should be included in the current coding unit 500 (E.g., top, bottom, left, right, top left, bottom left, top right or bottom right, etc.)
- the image decoding apparatus 100 may determine division mode mode information obtained from a predetermined position and divide the current encoding unit into the encoding units of various types and sizes.
- the image decoding apparatus 100 may select one of the encoding units.
- the method for selecting one of the plurality of encoding units may be various, and description of these methods will be described later in various embodiments.
- the image decoding apparatus 100 may divide the current encoding unit into a plurality of encoding units and determine a predetermined encoding unit.
- the image decoding apparatus 100 may use information indicating the positions of odd-numbered encoding units in order to determine an encoding unit located in the middle among odd-numbered encoding units. 5, the image decoding apparatus 100 divides the current encoding unit 500 or the current encoding unit 550 into odd number of encoding units 520a, 520b, 520c or odd number of encoding units 560a, 560b, and 560c. The image decoding apparatus 100 may use the information on the positions of the odd number of coding units 520a, 520b and 520c or the odd number of coding units 560a, 560b and 560c to generate the middle coding unit 520b or the middle coding unit 520b, (560b).
- the image decoding apparatus 100 determines the positions of the encoding units 520a, 520b, and 520c based on information indicating the positions of predetermined samples included in the encoding units 520a, 520b, and 520c,
- the encoding unit 520b located in the encoding unit 520 can be determined.
- the video decoding apparatus 100 encodes the encoding units 520a, 520b, and 520c based on information indicating the positions of the upper left samples 530a, 530b, and 530c of the encoding units 520a,
- the coding unit 520b located in the center can be determined.
- Information indicating the positions of the upper left samples 530a, 530b, and 530c included in the coding units 520a, 520b, and 520c according to one embodiment is stored in the pictures of the coding units 520a, 520b, and 520c Or information about the position or coordinates of the object.
- Information indicating the positions of the upper left samples 530a, 530b, and 530c included in the coding units 520a, 520b, and 520c according to one embodiment is stored in the coding units 520a 520b, and 520c, and the width or height may correspond to information indicating a difference between coordinates in the pictures of the encoding units 520a, 520b, and 520c.
- the image decoding apparatus 100 directly uses the information on the position or the coordinates in the pictures of the coding units 520a, 520b, and 520c or the information on the width or height of the coding unit corresponding to the difference value between the coordinates
- the encoding unit 520b located in the center can be determined.
- the information indicating the position of the upper left sample 530a of the upper coding unit 520a may indicate the coordinates of (xa, ya) and the upper left sample 530b of the middle coding unit 520b May indicate the coordinates of (xb, yb), and information indicating the position of the upper left sample 530c of the lower coding unit 520c may indicate (xc, yc) coordinates.
- the video decoding apparatus 100 can determine the center encoding unit 520b using the coordinates of the upper left samples 530a, 530b, and 530c included in the encoding units 520a, 520b, and 520c.
- the coding unit 520b including (xb, yb) coordinates of the sample 530b positioned at the center, 520b, and 520c determined by dividing the current encoding unit 500 as the encoding units located in the middle of the encoding units 520a, 520b, and 520c.
- the coordinates indicating the positions of the upper left samples 530a, 530b, and 530c may indicate the coordinates indicating the absolute position in the picture
- the position of the upper left sample unit 530a of the upper coding unit 520a may be (Dxb, dyb), which is information indicating the relative position of the upper left sample 530b of the middle coding unit 520b, and the relative position of the upper left sample 530c of the lower coding unit 520c
- Information dyn (dxc, dyc) coordinates may also be used.
- the method of determining the coding unit at a predetermined position by using the coordinates of the sample as information indicating the position of the sample included in the coding unit should not be limited to the above-described method, and various arithmetic Should be interpreted as a method.
- the image decoding apparatus 100 may divide the current encoding unit 500 into a plurality of encoding units 520a, 520b, and 520c, and may encode a predetermined one of the encoding units 520a, 520b, and 520c
- the encoding unit can be selected according to the criterion. For example, the image decoding apparatus 100 can select an encoding unit 520b having a different size from among the encoding units 520a, 520b, and 520c.
- the image decoding apparatus 100 may include (xa, ya) coordinates which are information indicating the position of a sample 530a at the upper left of the upper encoding unit 520a, a sample at the upper left of the middle encoding unit 520b (Xc, yc), which is information indicating the position of the lower-stage coding unit 530b and the position of the upper-left sample 530c of the lower-stage coding unit 520c, , 520b, and 520c, respectively.
- the image decoding apparatus 100 encodes the encoded units 520a, 520b, and 520c using coordinates (xa, ya), (xb, yb), (xc, yc) indicating the positions of the encoding units 520a, , And 520c, respectively.
- the video decoding apparatus 100 may determine the width of the upper encoding unit 520a as the width of the current encoding unit 500.
- the image decoding apparatus 100 can determine the height of the upper encoding unit 520a as yb-ya.
- the image decoding apparatus 100 may determine the width of the middle encoding unit 520b as the width of the current encoding unit 500 according to an embodiment.
- the image decoding apparatus 100 can determine the height of the center encoding unit 520b as yc-yb.
- the image decoding apparatus 100 may determine the width or height of the lower encoding unit using the width or height of the current encoding unit and the width and height of the upper encoding unit 520a and the middle encoding unit 520b .
- the image decoding apparatus 100 may determine an encoding unit having a different size from the other encoding units based on the widths and heights of the determined encoding units 520a, 520b and 520c. Referring to FIG.
- the image decoding apparatus 100 may determine a coding unit 520b as a coding unit at a predetermined position while having a size different from that of the upper coding unit 520a and the lower coding unit 520c.
- the process of determining the encoding unit having a size different from that of the other encoding units by the video decoding apparatus 100 may be the same as that of the first embodiment in which the encoding unit of a predetermined position is determined using the size of the encoding unit determined based on the sample coordinates .
- Various processes may be used for determining the encoding unit at a predetermined position by comparing the sizes of the encoding units determined according to predetermined sample coordinates.
- the image decoding apparatus 100 calculates the position (xd, yd) indicating the position of the upper left sample 570a of the left encoding unit 560a and the position (xd, yd) of the upper left sample 570b of the middle encoding unit 560b 560b and 560c using the (xf, yf) coordinates which are information indicating the (xe, ye) coordinates which are the information indicating the position of the right upper coding unit 560c and the position of the upper left sample 570c of the right coding unit 560c, Each width or height can be determined.
- the image decoding apparatus 100 encodes the encoded data in the encoding units 560a and 560b using the coordinates (xd, yd), (xe, ye), (xf, yf) indicating the positions of the encoding units 560a, 560b and 560c , 560c can be determined.
- the image decoding apparatus 100 can determine the width of the left encoding unit 560a as xe-xd.
- the image decoding apparatus 100 can determine the height of the left encoding unit 560a as the height of the current encoding unit 550.
- the image decoding apparatus 100 can determine the width of the middle encoding unit 560b as xf-xe.
- the image decoding apparatus 100 can determine the height of the middle encoding unit 560b as the height of the current encoding unit 500.
- the width or height of the right encoding unit 560c may be determined by the width or height of the current encoding unit 550 and the width and height of the left encoding unit 560a and the middle encoding unit 560b .
- the image decoding apparatus 100 may determine an encoding unit having a different size from the other encoding units based on the widths and heights of the determined encoding units 560a, 560b, and 560c. Referring to FIG. 5, the image decoding apparatus 100 may determine a coding unit 560b as a coding unit at a predetermined position while having a size different from that of the left coding unit 560a and the right coding unit 560c.
- the process of determining the encoding unit having a size different from that of the other encoding units by the video decoding apparatus 100 may be the same as that of the first embodiment in which the encoding unit of a predetermined position is determined using the size of the encoding unit determined based on the sample coordinates , Various processes may be used for determining the encoding unit at a predetermined position by comparing the sizes of the encoding units determined according to predetermined sample coordinates.
- the position of the sample to be considered for determining the position of the coding unit should not be interpreted as being limited to the left upper end, and information about the position of any sample included in the coding unit can be interpreted as being available.
- the image decoding apparatus 100 can select a coding unit at a predetermined position among the odd number of coding units determined by dividing the current coding unit considering the type of the current coding unit. For example, if the current coding unit is a non-square shape having a width greater than the height, the image decoding apparatus 100 can determine a coding unit at a predetermined position along the horizontal direction. That is, the image decoding apparatus 100 may determine one of the encoding units which are located in the horizontal direction and limit the encoding unit. If the current coding unit is a non-square shape having a height greater than the width, the image decoding apparatus 100 can determine a coding unit at a predetermined position in the vertical direction. That is, the image decoding apparatus 100 may determine one of the encoding units having different positions in the vertical direction and set a restriction on the encoding unit.
- the image decoding apparatus 100 may use information indicating positions of even-numbered encoding units in order to determine an encoding unit at a predetermined position among the even-numbered encoding units.
- the image decoding apparatus 100 can determine an even number of encoding units by dividing the current encoding unit (binary division) and determine a predetermined encoding unit using information on the positions of the even number of encoding units. A concrete procedure for this is omitted because it may be a process corresponding to a process of determining a coding unit of a predetermined position (for example, the middle position) among the above-mentioned odd number of coding units.
- a non-square current encoding unit when a non-square current encoding unit is divided into a plurality of encoding units, in order to determine an encoding unit at a predetermined position among a plurality of encoding units, Can be used.
- the video decoding apparatus 100 selects at least one of the divided mode information stored in the samples included in the middle coding unit One can be used.
- the image decoding apparatus 100 may divide the current encoding unit 500 into a plurality of encoding units 520a, 520b, and 520c based on the division type mode information, 520a, 520b, and 520c, among the encoding units 520a, 520b, 520c, and 520c. Furthermore, the image decoding apparatus 100 can determine the coding unit 520b positioned at the center in consideration of the position at which the split mode information is obtained.
- the division type mode information of the current encoding unit 500 can be obtained in the sample 540 located in the center of the current encoding unit 500, and the current encoding unit 500 can be obtained based on the division mode information
- the encoding unit 520b including the sample 540 may be determined as an encoding unit located at the center.
- the information used for determining the coding unit located in the middle should not be limited to the division type mode information, and various kinds of information can be used in the process of determining the coding unit located in the middle.
- predetermined information for identifying a coding unit at a predetermined position may be obtained from a predetermined sample included in a coding unit to be determined.
- the image decoding apparatus 100 includes a plurality of encoding units 520a, 520b, and 520c that are determined by dividing the current encoding unit 500, Obtained from a sample at a predetermined position in the current encoding unit 500 (for example, a sample located in the middle of the current encoding unit 500) in order to determine an encoding mode unit Can be used.
- the image decoding apparatus 100 can determine a sample of the predetermined position in consideration of the block form of the current encoding unit 500, and the image decoding apparatus 100 can decode a plurality of It is possible to determine a coding unit 520b including a sample from which predetermined information (for example, divided mode information) can be obtained, among the number of coding units 520a, 520b and 520c .
- the image decoding apparatus 100 may determine a sample 540 located in the center of the current encoding unit 500 as a sample from which predetermined information can be obtained,
- the encoding unit 520 may limit the encoding unit 520b including the sample 540 to a predetermined limit in the decoding process.
- the position of the sample from which the predetermined information can be obtained should not be construed to be limited to the above-mentioned position, but may be interpreted as samples at arbitrary positions included in the encoding unit 520b to be determined for limiting.
- the position of a sample from which predetermined information can be obtained may be determined according to the type of the current encoding unit 500 according to an embodiment.
- the block type information can determine whether the current encoding unit is a square or a non-square, and determine the position of a sample from which predetermined information can be obtained according to the shape.
- the video decoding apparatus 100 may use at least one of the information on the width of the current coding unit and the information on the height to position at least one of the width and the height of the current coding unit in half The sample can be determined as a sample from which predetermined information can be obtained.
- the image decoding apparatus 100 selects one of the samples adjacent to the boundary dividing the longer side of the current encoding unit into halves by a predetermined Can be determined as a sample from which the information of < / RTI >
- the image decoding apparatus 100 may use the division mode information to determine a predetermined unit of the plurality of encoding units.
- the image decoding apparatus 100 may acquire division type mode information from a sample at a predetermined position included in an encoding unit, and the image decoding apparatus 100 may include a plurality of encoding units
- the units may be divided using the division mode information obtained from the sample at a predetermined position included in each of the plurality of encoding units. That is, the coding unit can be recursively divided using the division type mode information obtained in the sample at the predetermined position contained in each of the coding units. Since the recursive division process of the encoding unit has been described with reference to FIG. 5, a detailed description thereof will be omitted.
- the image decoding apparatus 100 can determine at least one encoding unit by dividing the current encoding unit, and the order in which the at least one encoding unit is decoded is determined as a predetermined block (for example, ). ≪ / RTI >
- FIG. 6 illustrates a sequence in which a plurality of encoding units are processed when the image decoding apparatus 100 determines a plurality of encoding units by dividing the current encoding unit according to an exemplary embodiment.
- the image decoding apparatus 100 may determine the second encoding units 610a and 610b by dividing the first encoding unit 600 in the vertical direction according to the split mode information,
- the second encoding units 650a, 650b, 650c, and 650d may be determined by dividing the first encoding units 600 in the vertical direction and the horizontal direction by determining the second encoding units 630a and 630b in the horizontal direction have.
- the image decoding apparatus 100 may determine the order in which the second encoding units 610a and 610b determined by dividing the first encoding unit 600 in the vertical direction are processed in the horizontal direction 610c .
- the image decoding apparatus 100 may determine the processing order of the second encoding units 630a and 630b determined by dividing the first encoding unit 600 in the horizontal direction as the vertical direction 630c.
- the image decoding apparatus 100 processes the encoding units located in one row of the second encoding units 650a, 650b, 650c, and 650d determined by dividing the first encoding unit 600 in the vertical direction and the horizontal direction (For example, a raster scan order or a z scan order 650e) in which the encoding units located in the next row are processed.
- the image decoding apparatus 100 may recursively divide encoding units. 6, the image decoding apparatus 100 may determine a plurality of encoding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d by dividing the first encoding unit 600, The determined plurality of encoding units 610a, 610b, 630a, 630b, 650a, 650b, 650c and 650d may be recursively divided.
- the method of dividing the plurality of encoding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d may be a method corresponding to the method of dividing the first encoding unit 600.
- the plurality of encoding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d may be independently divided into a plurality of encoding units. Referring to FIG.
- the image decoding apparatus 100 may determine the second encoding units 610a and 610b by dividing the first encoding unit 600 in the vertical direction, and may further determine the second encoding units 610a and 610b Can be determined not to divide or separate independently.
- the image decoding apparatus 100 may divide the second encoding unit 610a on the left side in the horizontal direction into the third encoding units 620a and 620b and the second encoding units 610b ) May not be divided.
- the processing order of the encoding units may be determined based on the division process of the encoding units.
- the processing order of the divided coding units can be determined based on the processing order of the coding units immediately before being divided.
- the image decoding apparatus 100 may determine the order in which the third encoding units 620a and 620b determined by dividing the left second encoding unit 610a are processed independently of the second encoding unit 610b on the right side.
- the third encoding units 620a and 620b may be processed in the vertical direction 620c since the second encoding units 610a on the left side are divided in the horizontal direction and the third encoding units 620a and 620b are determined.
- the third encoding unit included in the left second encoding unit 610a The right encoding unit 610b can be processed after the blocks 620a and 620b are processed in the vertical direction 620c.
- the above description is intended to explain the process sequence in which encoding units are determined according to the encoding units before division. Therefore, it should not be construed to be limited to the above-described embodiments, It should be construed as being used in various ways that can be handled independently in sequence.
- FIG. 7 illustrates a process of determining that the current encoding unit is divided into odd number of encoding units when the image decoding apparatus 100 can not process the encoding units in a predetermined order according to an embodiment.
- the image decoding apparatus 100 may determine that the current encoding unit is divided into odd number of encoding units based on the obtained division mode mode information.
- the first encoding unit 700 of a square shape can be divided into second non-square encoding units 710a and 710b, and the second encoding units 710a and 710b can be independently 3 encoding units 720a, 720b, 720c, 720d, and 720e.
- the image decoding apparatus 100 may determine a plurality of third encoding units 720a and 720b by dividing the left encoding unit 710a among the second encoding units in the horizontal direction, and the right encoding unit 710b May be divided into an odd number of third encoding units 720c, 720d, and 720e.
- the image decoding apparatus 100 determines whether or not the third encoding units 720a, 720b, 720c, 720d, and 720e can be processed in a predetermined order and determines whether there are odd-numbered encoding units You can decide. Referring to FIG. 7, the image decoding apparatus 100 may divide the first encoding unit 700 recursively to determine the third encoding units 720a, 720b, 720c, 720d, and 720e.
- the image decoding apparatus 100 may further include a first encoding unit 700, a second encoding unit 710a and 710b or a third encoding unit 720a, 720b, 720c, 720d, 720e ) Is divided into odd number of coding units among the divided types.
- a first encoding unit 700 a second encoding unit 710a and 710b or a third encoding unit 720a, 720b, 720c, 720d, 720e ) Is divided into odd number of coding units among the divided types.
- an encoding unit located on the right of the second encoding units 710a and 710b may be divided into odd third encoding units 720c, 720d, and 720e.
- the order in which the plurality of coding units included in the first coding unit 700 are processed may be a predetermined order (for example, a z-scan order 730) 100 can determine whether the third encoding units 720c, 720d, and 720e determined by dividing the right second encoding unit 710b into odd numbers satisfy the condition that the third encoding units 720c, 720d, and 720e can be processed according to the predetermined order.
- a predetermined order for example, a z-scan order 730
- the image decoding apparatus 100 satisfies a condition that the third encoding units 720a, 720b, 720c, 720d, and 720e included in the first encoding unit 700 can be processed in a predetermined order And it is determined whether or not at least one of the widths and heights of the second encoding units 710a and 710b is divided in half according to the boundaries of the third encoding units 720a, 720b, 720c, 720d, and 720e, .
- the third encoding units 720a and 720b determined by dividing the height of the left second encoding unit 710a in the non-square shape by half are satisfying the condition, but the right second encoding unit 710b is set to 3 Since the boundaries of the third encoding units 720c, 720d, and 720e, which are determined by dividing the first encoding units 720c, 720d, and 720e, can not divide the width or the height of the second right encoding unit 710b by half, 720e may be determined as not satisfying the condition and the image decoding apparatus 100 determines that the scanning order is disconnection in the case of such unsatisfactory condition and the right second encoding unit 710b is determined based on the determination result It can be determined to be divided into odd number of encoding units.
- the image decoding apparatus 100 may limit a coding unit of a predetermined position among the divided coding units when the coding unit is divided into odd number of coding units. Since the embodiment has been described above, a detailed description thereof will be omitted.
- FIG. 8 illustrates a process in which the image decoding apparatus 100 determines at least one encoding unit by dividing a first encoding unit 800 according to an embodiment.
- the image decoding apparatus 100 may divide the first encoding unit 800 based on the division type mode information acquired through the receiver 160.
- the first encoding unit 800 in the form of a square may be divided into four encoding units having a square form, or may be divided into a plurality of encoding units of a non-square form.
- the image decoding apparatus 100 transmits the first encoding unit 800 And may be divided into a plurality of non-square encoding units.
- the video decoding apparatus 100 determines whether the first encoding unit 800 can be divided into the second encoding units 810a, 810b, and 810c divided in the vertical direction as the odd number of encoding units or the second encoding units 820a, 820b, and 820c determined in the horizontal direction.
- the image decoding apparatus 100 may be configured such that the second encoding units 810a, 810b, 810c, 820a, 820b, and 820c included in the first encoding unit 800 are processed in a predetermined order And the condition is that at least one of the width and height of the first encoding unit 800 is divided in half according to the boundaries of the second encoding units 810a, 810b, 810c, 820a, 820b, and 820c .
- the boundaries of the second encoding units 810a, 810b and 810c which are determined by dividing the first encoding unit 800 in the vertical direction into a square shape, are divided in half by the width of the first encoding unit 800
- the first encoding unit 800 can be determined as not satisfying a condition that can be processed in a predetermined order. Also, since the boundaries of the second encoding units 820a, 820b, and 820c determined by dividing the first encoding unit 800 in the horizontal direction into the horizontal direction can not divide the width of the first encoding unit 800 in half, 1 encoding unit 800 may be determined as not satisfying a condition that can be processed in a predetermined order.
- the image decoding apparatus 100 may determine that the scan order is disconnection in the case of such unsatisfactory condition and determine that the first encoding unit 800 is divided into odd number of encoding units based on the determination result. According to an embodiment, the image decoding apparatus 100 may limit a coding unit of a predetermined position among the divided coding units when the coding unit is divided into odd number of coding units. Since the embodiment has been described above, a detailed description thereof will be omitted.
- the image decoding apparatus 100 may determine the encoding units of various types by dividing the first encoding unit.
- the image decoding apparatus 100 may divide a first encoding unit 800 in a square form and a first encoding unit 830 or 850 in a non-square form into various types of encoding units .
- the image decoding apparatus 100 may convert the first encoding unit 900 in the square form into the second encoding units 910a, 910b in the non-square format based on the division mode information obtained through the receiver 160, 910b, 920a, and 920b.
- the second encoding units 910a, 910b, 920a, and 920b may be independently divided. Accordingly, the image decoding apparatus 100 can determine whether to divide or not divide into a plurality of coding units based on the division type mode information associated with each of the second coding units 910a, 910b, 920a, and 920b.
- the image decoding apparatus 100 divides the non-square left second encoding unit 910a determined by dividing the first encoding unit 900 in the vertical direction into a horizontal direction, 912a, and 912b. However, when the left second encoding unit 910a is divided in the horizontal direction, the right second encoding unit 910b is arranged in the horizontal direction in the same direction as the left second encoding unit 910a, As shown in Fig.
- the left second encoding unit 910a and the right second encoding unit 910b are arranged in the horizontal direction
- the third encoding units 912a, 912b, 914a, and 914b can be determined by being independently divided. However, this is the same result that the image decoding apparatus 100 divides the first encoding unit 900 into four square-shaped second encoding units 930a, 930b, 930c, and 930d based on the split mode information, It may be inefficient in terms of image decoding.
- the image decoding apparatus 100 divides the second encoding unit 920a or 920b in the non-square form determined by dividing the first encoding unit 330 in the horizontal direction into the vertical direction, (922a, 922b, 924a, 924b). However, if one of the second coding units (for example, the upper second coding unit 920a) is divided in the vertical direction, the video decoding apparatus 100 may generate a second coding unit (for example, Coding unit 920b) can be restricted so that the upper second encoding unit 920a can not be divided vertically in the same direction as the divided direction.
- a second coding unit for example, Coding unit 920b
- FIG. 10 illustrates a process in which the image decoding apparatus 100 divides a square-shaped encoding unit when the split mode information can not be divided into four square-shaped encoding units according to an embodiment.
- the image decoding apparatus 100 may determine the second encoding units 1010a, 1010b, 1020a, and 1020b by dividing the first encoding unit 1000 based on the division type mode information.
- the division type mode information may include information on various types in which an encoding unit can be divided, but information on various types may not include information for division into four square units of encoding units. According to the division type mode information, the image decoding apparatus 100 can not divide the first encoding unit 1000 in the square form into the second encoding units 1030a, 1030b, 1030c, and 1030d in the form of four squares.
- the image decoding apparatus 100 can determine the second encoding units 1010a, 1010b, 1020a, and 1020b in the non-square form based on the split mode information.
- the image decoding apparatus 100 may independently divide the non-square second encoding units 1010a, 1010b, 1020a, and 1020b, respectively.
- Each of the second encoding units 1010a, 1010b, 1020a, 1020b, and the like may be divided in a predetermined order through a recursive method, which is a method of dividing the first encoding unit 1000 based on the split mode mode information May be a corresponding partitioning method.
- the image decoding apparatus 100 can determine the third encoding units 1012a and 1012b in the form of a square by dividing the left second encoding unit 1010a in the horizontal direction and the right second encoding unit 1010b It is possible to determine the third encoding units 1014a and 1014b in the form of a square by being divided in the horizontal direction. Further, the image decoding apparatus 100 may divide the left second encoding unit 1010a and the right second encoding unit 1010b in the horizontal direction to determine the third encoding units 1016a, 1016b, 1016c, and 1016d in the form of a square have. In this case, the encoding unit may be determined in the same manner as the first encoding unit 1000 is divided into the four second square encoding units 1030a, 1030b, 1030c, and 1030d.
- the image decoding apparatus 100 can determine the third encoding units 1022a and 1022b in the shape of a square by dividing the upper second encoding unit 1020a in the vertical direction, and the lower second encoding units 1020b Can be divided in the vertical direction to determine the third encoding units 1024a and 1024b in the form of a square. Furthermore, the image decoding apparatus 100 may divide the upper second encoding unit 1020a and the lower second encoding unit 1020b in the vertical direction to determine the third encoding units 1022a, 1022b, 1024a, and 1024b in the form of a square have. In this case, the encoding unit may be determined in the same manner as the first encoding unit 1000 is divided into the four second square encoding units 1030a, 1030b, 1030c, and 1030d.
- FIG. 11 illustrates that the processing order among a plurality of coding units may be changed according to the division process of the coding unit according to an embodiment.
- the image decoding apparatus 100 may divide the first encoding unit 1100 based on the division type mode information.
- the image decoding apparatus 100 may generate the first encoding unit 1100 (For example, 1110a, 1110b, 1120a, 1120b, 1130a, 1130b, 1130c, 1130d, etc.) 11, the non-square second encoding units 1110a, 1110b, 1120a, and 1120b, which are determined by dividing the first encoding unit 1100 only in the horizontal direction or the vertical direction, Can be divided independently.
- the image decoding apparatus 100 divides the second encoding units 1110a and 1110b generated by dividing the first encoding unit 1100 in the vertical direction into the horizontal direction and outputs the third encoding units 1116a and 1116b, 1116c and 1116d can be determined and the second encoding units 1120a and 1120b generated by dividing the first encoding unit 1100 in the horizontal direction are respectively divided in the horizontal direction to generate third encoding units 1126a, 1126b and 1126c , 1126d. Since the process of dividing the second encoding units 1110a, 1110b, 1120a, and 1120b has been described in detail with reference to FIG. 9, a detailed description thereof will be omitted.
- the image decoding apparatus 100 may process an encoding unit in a predetermined order.
- the features of the processing of the encoding unit according to the predetermined order have been described above with reference to FIG. 6, and a detailed description thereof will be omitted.
- the image decoding apparatus 100 divides a first encoding unit 1100 in a square form into 4 pieces of fourth encoding units 1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, 1126d Can be determined.
- the image decoding apparatus 100 may process the third encoding units 1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, and 1126d according to the form in which the first encoding unit 1100 is divided You can decide.
- the image decoding apparatus 100 divides the second encoding units 1110a and 1110b generated in the vertical direction into the horizontal direction to determine the third encoding units 1116a, 1116b, 1116c, and 1116d And the image decoding apparatus 100 first processes the third encoding units 1116a and 1116b included in the left second encoding unit 1110a in the vertical direction and then processes the third encoding units 1116a and 1116b included in the right second encoding unit 1110b The third encoding units 1116a, 1116b, 1116c, and 1116d may be processed in accordance with an order 1117 of processing the third encoding units 1116c and 1116d in the vertical direction.
- the image decoding apparatus 100 divides the second encoding units 1120a and 1120b generated in the horizontal direction into vertical directions to determine the third encoding units 1126a, 1126b, 1126c, and 1126d And the image decoding apparatus 100 processes the third encoding units 1126a and 1126b included in the upper second encoding unit 1120a in the horizontal direction first and then processes the third encoding units 1126a and 1126b included in the lower second encoding unit 1120b The third encoding units 1126a, 1126b, 1126c, and 1126d can be processed according to the order 1127 of processing the third encoding units 1126c and 1126d in the horizontal direction.
- the second encoding units 1110a, 1110b, 1120a, and 1120b are divided to determine the third encoding units 1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, and 1126d, have.
- the second encoding units 1110a and 1110b determined to be divided in the vertical direction and the second encoding units 1120a and 1120b determined to be divided in the horizontal direction are divided into different formats, but the third encoding units 1116a , 1116b, 1116c, 1116d, 1126a, 1126b, 1126c and 1126d, the result is that the first encoding unit 1100 is divided into the same type of encoding units. Accordingly, the image decoding apparatus 100 recursively divides an encoding unit through a different process based on division mode information, thereby eventually determining the same type of encoding units, It can be processed in order.
- FIG. 12 illustrates a process of determining the depth of an encoding unit when the encoding unit is recursively divided and a plurality of encoding units are determined according to an embodiment.
- the image decoding apparatus 100 may determine the depth of a coding unit according to a predetermined criterion.
- a predetermined criterion may be a length of a long side of a coding unit.
- the depth of the current encoding unit is smaller than the depth of the encoding unit before being divided it can be determined that the depth is increased by n.
- an encoding unit with an increased depth is expressed as a lower-depth encoding unit.
- block type information for example, block type information may indicate '0: SQUARE'
- 1 encoding unit 1200 can be divided to determine the second encoding unit 1202, the third encoding unit 1204, and the like of the lower depth. If the size of the first encoding unit 1200 in the square form is 2Nx2N, the second encoding unit 1202 determined by dividing the width and height of the first encoding unit 1200 by 1/21 times has a size of NxN have.
- the third encoding unit 1204 determined by dividing the width and height of the second encoding unit 1202 by a half size may have a size of N / 2xN / 2.
- the width and height of the third encoding unit 1204 correspond to 1/22 times of the first encoding unit 1200. If the depth of the first encoding unit 1200 is D, the depth of the second encoding unit 1202, which is 1/21 times the width and height of the first encoding unit 1200, may be D + 1, The depth of the third encoding unit 1204, which is one-22 times the width and height of the third encoding unit 1200, may be D + 2.
- block type information indicating a non-square shape (for example, block type information is' 1: NS_VER 'indicating that the height is a non-square having a width greater than the width or' 2)
- the image decoding apparatus 100 divides the first encoding unit 1210 or 1220 in a non-square form and outputs the second encoding unit 1212 or 1222 of the lower depth, The third encoding unit 1214 or 1224, or the like.
- the image decoding apparatus 100 may determine a second encoding unit (e.g., 1202, 1212, 1222, etc.) by dividing at least one of the width and the height of the first encoding unit 1210 of Nx2N size. That is, the image decoding apparatus 100 can determine the second encoding unit 1202 of NxN size or the second encoding unit 1222 of NxN / 2 size by dividing the first encoding unit 1210 in the horizontal direction, The second encoding unit 1212 of N / 2xN size may be determined by dividing the second encoding unit 1212 in the horizontal direction and the vertical direction.
- a second encoding unit e.g., 1202, 1212, 1222, etc.
- the image decoding apparatus 100 determines a second encoding unit (for example, 1202, 1212, 1222, etc.) by dividing at least one of the width and height of the 2NxN first encoding unit 1220 It is possible. That is, the image decoding apparatus 100 can determine the second encoding unit 1202 of NxN size or the second encoding unit 1212 of N / 2xN size by dividing the first encoding unit 1220 in the vertical direction, The second encoding unit 1222 of NxN / 2 size may be determined by dividing the image data in the horizontal direction and the vertical direction.
- a second encoding unit for example, 1202, 1212, 1222, etc.
- the image decoding apparatus 100 determines a third encoding unit (for example, 1204, 1214, 1224, etc.) by dividing at least one of the width and the height of the second encoding unit 1202 of NxN size It is possible. That is, the image decoding apparatus 100 determines the third encoding unit 1204 of N / 2xN / 2 size by dividing the second encoding unit 1202 in the vertical and horizontal directions, or determines the third encoding unit 1204 of N / 2xN / 3 encoding unit 1214 or a third encoding unit 1224 of N / 2xN / 2 size.
- a third encoding unit for example, 1204, 1214, 1224, etc.
- the image decoding apparatus 100 divides at least one of the width and the height of the second encoding unit 1212 of N / 2xN size and encodes the third encoding unit (for example, 1204, 1214, 1224, . That is, the image decoding apparatus 100 divides the second encoding unit 1212 in the horizontal direction to generate a third encoding unit 1204 of N / 2xN / 2 or a third encoding unit 1224 of N / 2xN / 2 size ) Or may be divided in the vertical and horizontal directions to determine the third encoding unit 1214 of N / 2xN / 2 size.
- the third encoding unit for example, 1204, 1214, 1224
- the image decoding apparatus 100 divides at least one of the width and the height of the second encoding unit 1214 of NxN / 2 size to generate a third encoding unit (e.g., 1204, 1214, 1224, etc.) . That is, the image decoding apparatus 100 divides the second encoding unit 1212 in the vertical direction to generate a third encoding unit 1204 of N / 2xN / 2 or a third encoding unit 1214 of N / 2xN / 2 size ) Or may be divided in the vertical and horizontal directions to determine the third encoding unit 1224 of N / 2xN / 2 size.
- a third encoding unit e.g. 1204, 1214, 1224, etc.
- the image decoding apparatus 100 may divide a square-shaped encoding unit (for example, 1200, 1202, and 1204) in a horizontal direction or a vertical direction.
- a square-shaped encoding unit for example, 1200, 1202, and 1204
- the first encoding unit 1200 having a size of 2Nx2N is divided in the vertical direction to determine a first encoding unit 1210 having a size of Nx2N or the first encoding unit 1210 having a size of 2NxN to determine a first encoding unit 1220 having a size of 2NxN .
- the depth of the encoding unit in which the first encoding unit 1200, 1202, or 1204 of size 2Nx2N is divided in the horizontal direction or the vertical direction is determined May be the same as the depth of the first encoding unit 1200, 1202 or 1204.
- the width and height of the third encoding unit 1214 or 1224 may correspond to 1/2 of the first encoding unit 1210 or 1220.
- the depth of the first coding unit 1210 or 1220 is D
- the depth of the second coding unit 1212 or 1214 which is half the width and height of the first coding unit 1210 or 1220 is D +
- the depth of the third encoding unit 1214 or 1224, which is half the width and height of the first encoding unit 1210 or 1220 may be D + 2.
- FIG. 13 illustrates a depth index (hereinafter referred to as PID) for coding unit classification and depth that can be determined according to the type and size of coding units according to an exemplary embodiment.
- PID depth index
- the image decoding apparatus 100 may divide the first encoding unit 1300 in a square shape to determine various types of second encoding units. 13, the image decoding apparatus 100 divides the first encoding unit 1300 into at least one of a vertical direction and a horizontal direction according to the division type mode information, and outputs the second encoding units 1302a, 1302b, 1304a , 1304b, 1306a, 1306b, 1306c, and 1306d. That is, the image decoding apparatus 100 can determine the second encoding units 1302a, 1302b, 1304a, 1304b, 1306a, 1306b, 1306c, and 1306d based on the split mode mode information for the first encoding unit 1300 .
- the second encoding units 1302a, 1302b, 1304a, 1304b, 1306a, 1306b, 1306c, and 1306d which are determined according to the split mode mode information for the first encoded unit 1300 in the form of a square.
- the depth of field can be determined based on the depth. For example, since the length of one side of the square-shaped first encoding unit 1300 and the length of longer sides of the non-square-shaped second encoding units 1302a, 1302b, 1304a, and 1304b are the same, 1300) and the non-square type second encoding units 1302a, 1302b, 1304a, and 1304b are denoted by D in the same manner.
- the image decoding apparatus 100 divides the first encoding unit 1300 into four square-shaped second encoding units 1306a, 1306b, 1306c, and 1306d based on the split mode information, Since the length of one side of the second coding units 1306a, 1306b, 1306c and 1306d is half the length of one side of the first coding unit 1300, the length of one side of the second coding units 1306a, 1306b, 1306c and 1306d The depth may be a depth of D + 1 that is one depth lower than D, which is the depth of the first encoding unit 1300.
- the image decoding apparatus 100 divides a first coding unit 1310 having a height greater than a width in a horizontal direction according to division mode information, and generates a plurality of second coding units 1312a, 1312b, and 1314a , 1314b, and 1314c. According to an embodiment, the image decoding apparatus 100 divides a first coding unit 1320 having a shape whose width is longer than a height in a vertical direction according to division mode information, and generates a plurality of second coding units 1322a, 1322b, and 1324a , 1324b, and 1324c.
- the second encoding units 1312a, 1312b, 1314a, 1314b, 1316a, 1316b, 1316c, and 1316d which are determined according to the split mode mode information for the first encoding unit 1310 or 1320 in the non-
- the depth can be determined based on the length of the long side. For example, since the length of one side of the square-shaped second encoding units 1312a and 1312b is one-half the length of one side of the non-square first encoding unit 1310 whose height is longer than the width, The depth of the second encoding units 1302a, 1302b, 1304a, and 1304b of the form of D + 1 is one depth lower than the depth D of the first encoding unit 1310 of the non-square form.
- the image decoding apparatus 100 may divide the non-square first encoding unit 1310 into odd second encoding units 1314a, 1314b, and 1314c based on the division type mode information.
- the odd number of second encoding units 1314a, 1314b and 1314c may include non-square second encoding units 1314a and 1314c and a square second encoding unit 1314b.
- the long side of the non-square type second encoding units 1314a and 1314c and the length of one side of the second type encoding unit 1314b in the form of a square are set to 1/4 of the length of one side of the first encoding unit 1310
- the depth of the second encoding units 1314a, 1314b, and 1314c may be a depth of D + 1 which is one depth lower than the depth D of the first encoding unit 1310.
- the image decoding apparatus 100 is connected to the first coding unit 1320 of a non-square shape having a width greater than the height in a manner corresponding to the method of determining the depths of the coding units associated with the first coding unit 1310 The depth of the encoding units can be determined.
- the image decoding apparatus 100 determines an index (PID) for distinguishing the divided coding units. If the odd-numbered coding units are not the same size, The index can be determined based on the index.
- an encoding unit 1314b positioned at the center among odd-numbered encoding units 1314a, 1314b, and 1314c has the same width as other encoding units 1314a and 1314c, May be twice as high as the height of the sidewalls 1314a, 1314c. That is, in this case, the middle encoding unit 1314b may include two of the other encoding units 1314a and 1314c.
- the coding unit 1314c positioned next to the coding unit 1314c may be three days in which the index is increased by two. That is, there may be a discontinuity in the value of the index.
- the image decoding apparatus 100 may determine whether odd-numbered encoding units are not the same size based on the presence or absence of an index discontinuity for distinguishing between the divided encoding units.
- the image decoding apparatus 100 may determine whether the image is divided into a specific division form based on an index value for distinguishing a plurality of coding units divided from the current coding unit. 13, the image decoding apparatus 100 divides a first coding unit 1310 of a rectangular shape whose height is longer than the width to determine even-numbered coding units 1312a and 1312b or odd-numbered coding units 1314a and 1314b , 1314c.
- the image decoding apparatus 100 may use an index (PID) indicating each coding unit in order to distinguish each of the plurality of coding units.
- the PID may be obtained at a sample of a predetermined position of each coding unit (e.g., the upper left sample).
- the image decoding apparatus 100 may determine a coding unit of a predetermined position among the coding units determined by using the index for classifying the coding unit.
- the image decoding apparatus 100 may encode the first encoding unit 1310, Can be divided into three coding units 1314a, 1314b, and 1314c.
- the image decoding apparatus 100 may assign an index to each of the three encoding units 1314a, 1314b, and 1314c.
- the image decoding apparatus 100 may compare the indexes of the respective encoding units in order to determine the middle encoding unit among the encoding units divided into odd numbers.
- the image decoding apparatus 100 encodes an encoding unit 1314b having an index corresponding to a middle value among the indices based on the indices of the encoding units by encoding the middle position among the encoding units determined by dividing the first encoding unit 1310 Can be determined as a unit.
- the image decoding apparatus 100 may determine an index based on a size ratio between coding units when the coding units are not the same size in determining the index for dividing the divided coding units .
- the coding unit 1314b generated by dividing the first coding unit 1310 is divided into coding units 1314a and 1314c having the same width as the other coding units 1314a and 1314c but different in height Can be double the height.
- the image decoding apparatus 100 may determine that the image decoding apparatus 100 is divided into a plurality of encoding units including encoding units having different sizes from other encoding units.
- the image decoding apparatus 100 determines that the encoding unit (for example, the middle encoding unit) at a predetermined position among the odd number of encoding units is different from the encoding units You can split the current encoding unit into a form.
- the image decoding apparatus 100 may determine an encoding unit having a different size by using an index (PID) for the encoding unit.
- PID index
- the index and the size or position of the encoding unit at a predetermined position to be determined are specific for explaining an embodiment, and thus should not be construed to be limited thereto, and various indexes, positions and sizes of encoding units can be used Should be interpreted.
- the image decoding apparatus 100 may use a predetermined data unit in which a recursive division of an encoding unit starts.
- FIG. 14 shows that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to an embodiment.
- a predetermined data unit may be defined as a unit of data in which an encoding unit begins to be recursively segmented using segmentation mode information. That is, it may correspond to a coding unit of the highest depth used in a process of determining a plurality of coding units for dividing a current picture.
- a predetermined data unit is referred to as a reference data unit for convenience of explanation.
- the reference data unit may represent a predetermined size and shape.
- the reference encoding unit may comprise samples of MxN.
- M and N may be equal to each other, or may be an integer represented by a multiplier of 2. That is, the reference data unit may represent a square or a non-square shape, and may be divided into an integer number of encoding units.
- the image decoding apparatus 100 may divide a current picture into a plurality of reference data units. According to an embodiment, the image decoding apparatus 100 may divide a plurality of reference data units for dividing a current picture by using the division information for each reference data unit.
- the segmentation process of the reference data unit may correspond to the segmentation process using a quad-tree structure.
- the image decoding apparatus 100 may determine in advance the minimum size that the reference data unit included in the current picture can have. Accordingly, the image decoding apparatus 100 can determine reference data units of various sizes having a size larger than a minimum size, and can determine at least one encoding unit using the split mode information based on the determined reference data unit .
- the image decoding apparatus 100 may use a square-shaped reference encoding unit 1400 or a non-square-shaped reference encoding unit 1402.
- the type and size of the reference encoding unit may include various data units (e.g., a sequence, a picture, a slice, a slice segment a slice segment, a maximum encoding unit, and the like).
- the receiver 160 of the video decoding apparatus 100 may acquire at least one of the information on the format of the reference encoding unit and the size of the reference encoding unit from the bitstream for each of the various data units .
- the process of determining at least one encoding unit included in the reference-type encoding unit 1400 in the form of a square is described in detail in the process of dividing the current encoding unit 300 of FIG. 10, Is determined in the process of dividing the current encoding unit 1100 or 1150 of FIG. 11, so that a detailed description thereof will be omitted.
- the image decoding apparatus 100 may include an index for identifying the size and type of the reference encoding unit Can be used. That is, the receiving unit 160 extracts a predetermined condition (for example, a data unit having a size equal to or smaller than a slice) among the various data units (for example, a sequence, a picture, a slice, a slice segment, It is possible to obtain only an index for identifying the size and type of the reference encoding unit for each slice, slice segment, maximum encoding unit, and the like.
- a predetermined condition for example, a data unit having a size equal to or smaller than a slice
- the various data units for example, a sequence, a picture, a slice, a slice segment
- the image decoding apparatus 100 can determine the size and shape of the reference data unit for each data unit satisfying the predetermined condition by using the index.
- the information on the type of the reference encoding unit and the information on the size of the reference encoding unit are obtained from the bitstream for each relatively small data unit and used, the use efficiency of the bitstream may not be good. Therefore, Information on the size of the reference encoding unit and information on the size of the reference encoding unit can be acquired and used. In this case, at least one of the size and the type of the reference encoding unit corresponding to the index indicating the size and type of the reference encoding unit may be predetermined.
- the image decoding apparatus 100 selects at least one of the size and the type of the reference encoding unit in accordance with the index, thereby obtaining at least one of the size and the type of the reference encoding unit included in the data unit, You can decide.
- the image decoding apparatus 100 may use at least one reference encoding unit included in one maximum encoding unit. That is, the maximum encoding unit for dividing an image may include at least one reference encoding unit, and the encoding unit may be determined through a recursive division process of each reference encoding unit. According to an exemplary embodiment, at least one of the width and the height of the maximum encoding unit may correspond to at least one integer multiple of the width and height of the reference encoding unit. According to an exemplary embodiment, the size of the reference encoding unit may be a size obtained by dividing the maximum encoding unit n times according to a quadtree structure. That is, the image decoding apparatus 100 may determine the reference encoding unit by dividing the maximum encoding unit n times according to the quad tree structure, and may determine the reference encoding unit based on at least one of the division mode information Can be divided.
- FIG. 15 shows a processing block serving as a reference for determining a determination order of a reference encoding unit included in a picture 1500 according to an embodiment.
- the image decoding apparatus 100 may determine at least one processing block that divides a picture.
- the processing block is a data unit including at least one reference encoding unit for dividing an image, and at least one reference encoding unit included in the processing block may be determined in a specific order. That is, the order of determination of at least one reference encoding unit determined in each processing block may correspond to one of various kinds of order in which the reference encoding unit can be determined, and the reference encoding unit determination order determined in each processing block May be different for each processing block.
- the order of determination of the reference encoding unit determined for each processing block is a raster scan, a Z scan, an N scan, an up-right diagonal scan, a horizontal scan a horizontal scan, and a vertical scan. However, the order that can be determined should not be limited to the scan orders.
- the image decoding apparatus 100 may obtain information on the size of the processing block and determine the size of the at least one processing block included in the image.
- the image decoding apparatus 100 may obtain information on the size of the processing block from the bitstream to determine the size of the at least one processing block included in the image.
- the size of such a processing block may be a predetermined size of a data unit represented by information on the size of the processing block.
- the receiving unit 160 of the image decoding apparatus 100 may obtain information on the size of the processing block from the bitstream for each specific data unit.
- information on the size of a processing block can be obtained from a bitstream in units of data such as an image, a sequence, a picture, a slice, a slice segment, or the like. That is, the receiving unit 160 may acquire information on the size of the processing block from the bitstream for each of the plurality of data units, and the image decoding apparatus 100 may use at least the information on the size of the obtained processing block
- the size of one processing block may be determined, and the size of the processing block may be an integer multiple of the reference encoding unit.
- the image decoding apparatus 100 may determine the sizes of the processing blocks 1502 and 1512 included in the picture 1500 according to an embodiment. For example, the video decoding apparatus 100 can determine the size of the processing block based on information on the size of the processing block obtained from the bitstream. 15, the image decoding apparatus 100 according to an exemplary embodiment of the present invention has a horizontal size of the processing blocks 1502 and 1512 of four times the horizontal size of the reference encoding unit, a vertical size of four times the vertical size of the reference encoding unit You can decide. The image decoding apparatus 100 may determine an order in which at least one reference encoding unit is determined in at least one processing block.
- the video decoding apparatus 100 may determine each processing block 1502, 1512 included in the picture 1500 based on the size of the processing block and may include in the processing blocks 1502, The determination order of at least one reference encoding unit is determined.
- the determination of the reference encoding unit may include determining the size of the reference encoding unit according to an embodiment.
- the image decoding apparatus 100 may obtain information on a determination order of at least one reference encoding unit included in at least one processing block from a bitstream, So that the order in which at least one reference encoding unit is determined can be determined.
- the information on the decision order can be defined in the order or direction in which the reference encoding units are determined in the processing block. That is, the order in which the reference encoding units are determined may be independently determined for each processing block.
- the image decoding apparatus 100 may obtain information on a determination order of a reference encoding unit from a bitstream for each specific data unit.
- the receiving unit 160 may acquire information on the order of determination of a reference encoding unit from a bitstream for each data unit such as an image, a sequence, a picture, a slice, a slice segment, and a processing block. Since the information on the determination order of the reference encoding unit indicates the reference encoding unit determination order in the processing block, the information on the determination order can be obtained for each specific data unit including an integer number of processing blocks.
- the image decoding apparatus 100 may determine at least one reference encoding unit based on the determined order according to an embodiment.
- the receiving unit 160 may obtain information on the reference encoding unit determination order from the bitstream as the information related to the processing blocks 1502 and 1512, and the video decoding apparatus 100 may receive the information 1502, and 1512, and determine at least one reference encoding unit included in the picture 1500 according to the determination order of the encoding units.
- the video decoding apparatus 100 may determine a determination order 1504 and 1514 of at least one reference encoding unit associated with each of the processing blocks 1502 and 1512. For example, when information on the determination order of reference encoding units is obtained for each processing block, the reference encoding unit determination order associated with each processing block 1502 and 1512 may be different for each processing block.
- the reference encoding unit determination order 1504 related to the processing block 1502 is a raster scan order
- the reference encoding unit included in the processing block 1502 may be determined according to the raster scan order.
- the reference encoding unit determination order 1514 related to another processing block 1512 is a reverse order of the raster scan order
- the reference encoding unit included in the processing block 1512 can be determined according to the reverse order of the raster scan order.
- the image decoding apparatus 100 may decode the determined at least one reference encoding unit according to an embodiment.
- the image decoding apparatus 100 can decode an image based on the reference encoding unit determined through the above-described embodiment.
- the method of decoding the reference encoding unit may include various methods of decoding the image.
- the image decoding apparatus 100 may obtain block type information indicating a type of a current encoding unit or divided mode type information indicating a method of dividing a current encoding unit from a bitstream.
- the split mode information may be included in a bitstream associated with various data units.
- the video decoding apparatus 100 may include a sequence parameter set, a picture parameter set, a video parameter set, a slice header, a slice segment header slice segment type mode information included in the segment header can be used.
- the image decoding apparatus 100 may obtain a syntax element corresponding to the maximum encoding unit, the reference encoding unit, the block type information from the bitstream or the split mode information for each processing block from the bitstream and use the obtained syntax element.
- the image decoding apparatus 100 can determine the division rule of the image.
- the segmentation rule may be previously determined between the image decoding apparatus 100 and the image encoding apparatus 3800.
- the image decoding apparatus 100 can determine the division rule of the image based on the information obtained from the bit stream.
- the video decoding apparatus 100 includes a sequence parameter set, a picture parameter set, a video parameter set, a slice header, and a slice segment header
- the partitioning rule can be determined based on the information obtained from at least one.
- the video decoding apparatus 100 may determine the division rule differently according to a frame, a slice, a temporal layer, a maximum encoding unit, or an encoding unit.
- the image decoding apparatus 100 can determine the division rule based on the block type of the encoding unit.
- the block shape may include the size, shape, width and height ratio, direction of the encoding unit.
- the video encoding device 3800 and the video decoding device 100 can determine in advance that the division rule is determined based on the block type of the encoding unit.
- the present invention is not limited thereto.
- the video decoding apparatus 100 can determine the division rule based on the information obtained from the bit stream received from the video encoding apparatus 3800.
- the shape of the encoding unit may include a square and a non-square. If the width and height of the encoding unit are the same, the image decoding apparatus 100 can determine the shape of the encoding unit as a square. Also, . If the lengths of the widths and heights of the coding units are not the same, the image decoding apparatus 100 can determine the shape of the coding unit to be non-square.
- the size of the encoding unit may include various sizes of 4x4, 8x4, 4x8, 8x8, 16x4, 16x8, ..., 256x256.
- the size of the encoding unit can be classified according to the length of the longer side of the encoding unit, the length or the width of the shorter side.
- the video decoding apparatus 100 may apply the same division rule to the coding units classified into the same group. For example, the image decoding apparatus 100 may classify encoding units having the same long side length into the same size. In addition, the image decoding apparatus 100 can apply the same division rule to coding units having the same long side length.
- the ratio of the width and height of the encoding unit may include 1: 2, 2: 1, 1: 4, 4: 1, 1: 8, 8: 1, 1:16 or 16: 1.
- the direction of the encoding unit may include a horizontal direction and a vertical direction.
- the horizontal direction may indicate the case where the length of the width of the encoding unit is longer than the length of the height.
- the vertical direction can indicate the case where the width of the encoding unit is shorter than the length of the height.
- the image decoding apparatus 100 may adaptively determine the segmentation rule based on the size of the encoding unit.
- the image decoding apparatus 100 may determine the allowable division mode differently based on the size of the encoding unit. For example, the image decoding apparatus 100 can determine whether division is allowed based on the size of an encoding unit.
- the image decoding apparatus 100 can determine the dividing direction according to the size of the coding unit.
- the video decoding apparatus 100 can determine an allowable division type according to the size of a coding unit.
- Determination of the division rule based on the size of the encoding unit may be a predetermined division rule between the video encoding device 3800 and the video decoding device 100.
- the video decoding apparatus 100 can determine the division rule based on the information obtained from the bit stream.
- the image decoding apparatus 100 can adaptively determine the division rule based on the position of the encoding unit.
- the image decoding apparatus 100 may adaptively determine the segmentation rule based on the position occupied by the encoding unit in the image.
- the image decoding apparatus 100 can determine the division rule so that the encoding units generated by different division paths do not have the same block form.
- the present invention is not limited thereto, and coding units generated by different division paths may have the same block form.
- the coding units generated by different division paths may have different decoding processing orders. The decoding procedure is described with reference to FIG. 11, and a detailed description thereof will be omitted.
- the current block is divided into a plurality of zones and a plurality of sub-zones, a context, a scanning order, a coefficient coding scheme and the like are determined according to the division type of the current block and the characteristics of the conversion coefficient array, A scanning order, and a coefficient coding method, a method of coding or decoding a transform coefficient array of a current block will be described.
- FIG. 16 shows a block diagram of a video decoding apparatus 1600 for obtaining a transform coefficient array of a current block based on a plurality of regions and a plurality of sub regions in which the current block is divided.
- the video decoding apparatus 1600 includes an encoding information receiving unit 1610 and an entropy decoding unit 1620.
- the encoding information receiving unit 1610 and the entropy decoding unit 1620 are represented as separate constituent units. However, according to the embodiment, the encoding information receiving unit 1610 and the entropy decoding unit 1620 are combined to form a single unit .
- the encoding information receiving unit 1610 and the entropy decoding unit 1620 are represented by a unit located in one device. However, an apparatus that performs the functions of the encoding information receiving unit 1610 and the entropy decoding unit 1620 must be physically . Therefore, the encoding information receiving unit 1610 and the entropy decoding unit 1620 may be dispersed according to the embodiment.
- the encoding information receiving unit 1610 and the entropy decoding unit 1620 may be implemented by one processor according to the embodiment. And may be implemented by a plurality of processors according to an embodiment.
- the encoding information receiving unit 1610 receives the bit stream including the zone flag, the sub zone flag, and the transform coefficient information of the current block.
- the current block may be an encoding unit or a conversion unit for encoding and decoding the transform coefficients.
- a zone flag, sub-zone flag, and transform coefficient information may be used by the entropy decoding unit 1620 to reconstruct the two-dimensional transform coefficient array of the current block.
- the entropy decoding unit 1620 divides the current block into a plurality of zones.
- Dimensional transformed coefficient array of the current block can be generated when a 2D residual sample array showing the difference between the original value and the predicted value of the samples included in the current block is frequency-transformed.
- the transform coefficient located on the upper left of the two-dimensional transform coefficient array of the current block represents a low-frequency component
- the transform coefficient located on the lower-right side represents a high-frequency component. Since the magnitude of the low-frequency component is statistically larger than the magnitude of the high-frequency component, the transform coefficient of the upper left side in the two-dimensional transform coefficient array of the current block has an absolute value larger than the transform coefficient of the lower right side.
- the probability that the effective transform coefficient having an absolute value larger than 1 is distributed to the upper left of the current block is high. Therefore, by dividing the current block according to the probability of occurrence of effective transform coefficients and applying a different decoding method to each divided region, it is possible to efficiently compress the two-dimensional transform coefficient array of the current block.
- the entropy decoding unit 1620 can determine the current block as a region having a predetermined region size regardless of the size of the current block. Then, the entropy decoding unit 1620 can determine the remaining region excluding the regions having the predetermined region size in the current block as the last region of the current block.
- the entropy decoding unit 1620 may determine the current block as a region having a zone size proportional to the size of the current block.
- the entropy decoding unit 1620 can determine the remaining region excluding the regions having the predetermined region size in the current block as the last region of the current block.
- the entropy decoding unit 1620 can determine the number of regions to be divided according to the size of the current block. For example, when the size of the current block is 4x4, the current block may contain only one region of 4x4 size. And, when the size of the current block is larger than 4x4, the current block can be divided into two or more zones. As another example, when the greater of the height and width of the current block is greater than 4, the current block may be divided into two or more zones. As another example, when the greater of the height and width of the current block is greater than eight, the current block may be divided into three or more zones.
- the entropy decoding unit 1620 decodes the entropy of the current block including the block index, the current block size, the conversion unit size, the encoding unit size, the encoded block type (e.g., intra / inter), the component type (e.g., luma / chroma) Mode, prediction mode), the context of the current block can be determined. According to one embodiment, the entropy decoding unit 1620 can determine the context of the current block according to a smaller value of the height and width of the current block or a greater value of the height and width of the current block. The entropy decoding unit 1620 can parse the zone flag obtained from the bitstream according to the context of the current block.
- the entropy decoding unit 1620 determines, based on the zone flags for the plurality of zones of the current block, which of the plurality of zones the last valid conversion coefficient of the current block is included in.
- the effective conversion coefficient is a conversion coefficient whose absolute value of the coefficient is not zero.
- the position of the last effective transform coefficient of the current block is determined based on the position of the last effective transform coefficient in accordance with the scan order of the current block.
- the zone flag indicates whether the current zone contains the last valid conversion factor of the current block.
- the zone flag can be represented by one bit.
- a zone flag for the zone including the last valid conversion coefficient of the current block is represented by a first value and a zone flag of the remaining zone is represented by a second value.
- the zone flag for the zone including the last sub-zone including the effective conversion coefficient of the current block may be represented by the first value, and the zone flag of the remaining zone may be represented by the second value.
- the first value may be one and the second value may be zero.
- the zone flags of the zones of the current block are parsed according to the scan order. For example, when scanned in order of the first zone, the second zone, and the third zone, the zone flag of the first zone is first obtained from the bitstream. If the zone flag of the first zone represents the first value, it is determined that the first zone contains the last effective conversion coefficient of the current block. Therefore, since the last valid conversion coefficient of the current block is not included in the remaining second and third zones, the zone flag for the second zone and the zone flag for the third zone are not acquired.
- zone flag of the first zone represents the second value
- a zone flag of the second zone is obtained from the bitstream. If the zone flag of the second zone represents the first value, it is determined that the second zone includes the last effective conversion coefficient of the current block. Therefore, the zone flag for the third zone is not acquired because the last effective conversion coefficient of the current block is not included in the third zone. Conversely, if the zone flag of the second zone represents a second value, it is determined that the last effective transform coefficient of the current block is not included in the second zone. In accordance with the zone flag for the third zone, it is determined whether or not the third zone includes the last effective conversion coefficient of the current block.
- the third zone is the last zone of the current block according to the scan order, whether or not the last effective transform coefficient of the current block is included in the third zone according to the zone flag of the second zone without the zone flag of the third zone Can be determined. For example, if the second zone includes the last valid conversion factor of the current block, the third zone does not include the last valid conversion factor of the current block. Conversely, if the second zone does not include the last effective transform coefficient of the current block, the third zone necessarily includes the last effective transform coefficient of the current block. Thus, it can be determined whether or not the last zone contains the last effective transform coefficient of the current block, without acquiring the zone flag of the last zone of the current block.
- the maximum number of zone flags that can be acquired for the current block may be determined according to the size of the current block.
- the number of zones included in the current block can be determined by comparing a large value or a small value of the height and width of the current block with a predetermined value.
- the current block may be divided into three zones. In this condition, a maximum of two zone flags of the current block may be required.
- the greater of the height and width of the current block is equal to 8
- the current block can be divided into two zones. In this condition, one zone flag of the current block is required.
- the entropy decoding unit 1620 divides an area into which at least one effective transform coefficient of the plurality of regions can be included into a plurality of subzones.
- the entropy decoding unit 1620 may divide the current region into sub regions according to a predetermined sub region size. Or the entropy decoding unit 1620 may divide the current region into sub regions according to the size of the current block.
- the entropy decoding unit 1620 can determine the number of sub-regions to be divided from the current zone according to the size of the current zone.
- the entropy decoding unit 1620 determines whether at least one valid conversion coefficient is included for each of the plurality of sub zones according to the sub zone flags for the plurality of sub zones of the current block.
- the effective sub-zone is a sub-zone including at least one effective conversion coefficient.
- the subspace flag indicates whether the current subspace contains an effective transform coefficient.
- the sub-zone flag can be represented by 1 bit.
- the subspace flag of the subspace containing the effective transformation coefficient is represented by a first value and the subspace flag of the subspace including no effective transformation coefficient may be represented by a second value.
- the first value may be one and the second value may be zero.
- the sub-zone flags of the sub-zones included in the zones are parsed according to the scan order. For example, when scanned in the order of the first sub-zone, the second sub-zone and the third sub-zone, the sub-zone flag of the first sub-zone is first obtained from the bit stream. Sub-zone flags of the second sub-zone and the third sub-zone are obtained according to the scan order.
- the third sub-zone is the last sub-zone of the current zone, the current zone contains the last valid conversion factor, and the first sub-zone and the second sub-zone are not valid sub-zones,
- the third sub-zone without acquisition is determined as an effective sub-zone. If the current zone includes the last effective transform coefficient, at least one effective transform coefficient should be included in the current zone. Therefore, if the effective transform coefficients are not included in the first sub zone and the second sub zone, The zone must contain the effective conversion factor.
- the sub-zone must include at least one effective conversion factor.
- the subarea can be determined as an effective subarea.
- the probability that the sub-zone will contain the effective transform coefficients is very high. Therefore, even under the above conditions, it can be determined that the effective conversion coefficient is included in the sub zone without obtaining the sub zone flag. For example, if the current zone is located on the upper left of the two-dimensional transform coefficient array, the low-frequency transform coefficients are located in the current zone. Therefore, it can be determined that the sub-zone flag is not acquired and the effective sub-zone included in the current sub-zone is included in the effective sub-zone because the current zone is highly likely to have the effective conversion coefficient.
- the entropy decoding unit 1620 can parse the transform coefficient information of the sub region obtained from the bit stream to obtain the transform coefficient of the sub region if the sub region flag indicates that the sub region includes the effective transform coefficient.
- the entropy decoding unit 1620 does not parse the transform coefficient information for a region scanned after the region including the last valid transform coefficient. All of the transform coefficients included in the zone are set to zero. For example, if the second zone contains the last effective conversion factor, the conversion coefficients of the zones scanned after the second zone are all determined to be zero.
- the entropy decoding unit 1620 does not parse the transform coefficient for the sub-region determined to have no effective transform coefficient according to the sub-region flag. Therefore, all the transform coefficients of the subarea are determined to be zero. For example, if it is determined that the sub-zone flag of the first sub-zone does not have an effective conversion factor in the sub-zone, the conversion coefficients of the first sub-zone are all determined to be zero.
- the entropy decoding unit 1620 decodes the entropy decoding result of the encoding unit 1620 based on the area index, the zone flag, the sub-zone index, the sub-zone flag, the current block size, Luma / chroma), prediction information (e.g., partition mode, prediction mode), and the like. According to one embodiment, the entropy decoding unit 1620 can determine the context of the current block according to a smaller value of the height and width of the current block or a greater value of the height and width of the current block. The entropy decoding unit 1620 may parse the sub-region flag obtained from the bit stream according to the context of the current block.
- the entropy decoding unit 1620 can determine a coefficient coding scheme for a subarea including at least one effective transform coefficient among the plurality of subareas based on the zone flag and the subarea flag.
- the entropy decoding unit 1620 when the last effective transform coefficient of the current block is not included in the region including the sub-region, the entropy decoding unit 1620 performs the coefficient-coding method for the sub-region according to the first run- (Run-level based coefficient coding scheme).
- the entropy decoding unit 1620 can determine the coefficient coding scheme for the sub-zone as the second run-level based coefficient coding scheme.
- Run information that indicates the number of consecutive zero coefficients in the first run-level-based coefficient coding scheme, level information that indicates the absolute value of the coefficient of the topic, and sign information that indicates the sign of the coefficient
- level information that indicates the absolute value of the coefficient of the topic
- sign information that indicates the sign of the coefficient
- coefficient information as a last item indicating whether the coefficient of the current topic is the coefficient of the last item of the sub- coefficient information is used to encode and decode the transform coefficients of the subspace.
- the entropy decoding unit 1620 may perform a coefficient-coding scheme for a sub-zone based on a first run-level-based method, regardless of whether the last effective transform coefficient of the current block is included in a zone including the sub- Coefficient-based coding method or a second run-level-based coefficient-coding method.
- the entropy decoding unit 1620 divides the current block into the first zone, the second zone and the third zone in the order close to the upper left side of the current block, and determines a coefficient coding scheme for each zone differently have.
- the entropy decoding unit 1620 may convert the subspace of the first zone into the last position-based coding scheme coefficient coding scheme. Or less than one sub-region in which the effective transform coefficient is included in the sub-regions of the second sub-region, the entropy decoding unit 1620 may decode the sub-region of the first sub-region according to the last position-based coefficient coding scheme. If all of the above conditions are not satisfied, the entropy decoding unit 1620 may decode the subregion of the first zone according to the full position-based coefficient coding scheme.
- the entropy decoding unit 1620 can decode the subregion of the second region according to a scan region-based coefficient coding scheme. If all of the above conditions are not satisfied, the entropy decoding unit 1620 can decode the subregion of the second zone according to the last location-based coefficient coding scheme.
- the entropy decoding unit 1620 can decode the subregion of the third zone according to the scan area-based coefficient coding without any condition.
- the entropy decoding unit 1620 may apply coefficient coding schemes different from the above-described embodiment to the sub-zones according to the conditions according to the zone flag and sub-zone flag.
- the entropy decoding unit 1620 calculates the number of effective sub-zones, the intra mode, the current block size, the conversion unit size, the encoding unit size, the conversion skip state, the encoded block type (E.g., intra / inter), component type (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode), and so on.
- the entropy decoding unit 1620 may determine a diagonal scan, a zigzag scan, a horizontal scan, a vertical scan, or a combination thereof in the scanning order of the current sub-zone.
- the scan order of the sub-regions may be determined independently of the scan order of the other sub-regions. Or the scan order of the subareas may be determined dependent on the scan order of the other subareas included in the zone.
- the scan order of the sub-zones may be determined according to the number of valid sub-zones.
- a valid sub-zone is a sub-zone in which the transform coefficients may be included according to the size of the current block.
- an 8x8 block may include 4 sub-zones of 4x4 size. In this case, the scan order of the four sub-zones included in the 8x8 block may be determined according to the first adaptive scan order determination method.
- the scan order of the nine sub-blocks included in the MxN-sized block may be determined according to the second adaptive scan order determination method.
- the scan order of the two upper sub-regions may be determined as a horizontal scan.
- the scan order of the two left sub-regions can be determined as a vertical scan.
- the scan order of the three upper sub-regions is determined as a horizontal scan . Also, when the effective coefficients are included in the three sub-regions on the left side and the effective coefficients are not included in the remaining sub-regions, the scan order of the three sub-regions on the left side can be determined as a horizontal scan.
- the entropy decoding unit 1620 obtains the transform coefficient array of the current block by parsing the transform coefficient information of the current block according to at least one of the scan order and the coefficient coding scheme.
- the entropy decoding unit 1620 can determine the context of the current sample according to the size of one or more transform coefficients restored before the current sample. According to one embodiment, when the coefficient coding scheme of the subspace is a run-level based coefficient coding scheme, the entropy decoding unit 1620 may calculate the context of the current sample according to the size of one or more transform coefficients restored before the current sample You can decide.
- the context of the current sample can be determined according to the magnitude of the transform coefficient immediately before the effective transform coefficient.
- the context of the current sample may be determined according to the sum of the magnitudes of the predetermined number of transform coefficients immediately before the effective transform coefficients.
- the context of the current sample may be determined according to the average of the level of the last coded transform coefficient of the upper sub-zone of the current sub-zone and the level of the last coded transform coefficient of the left sub-zone of the current sub-zone. Or the level of the last encoded transform coefficient of the upper sub-zone of the current sub-zone and the level of the last encoded coefficient of the left sub-zone of the current sub-zone, whichever is smaller. Or the context of the current sample may be determined according to the greater of the level of the last encoded coefficient in the upper sub-zone of the current sub-zone and the level of the last encoded coefficient in the left sub-zone of the current sub-zone.
- the level of the last coded transform coefficient of the right sub-zone of the current sub-zone and the last encoded transform coefficient of the lower sub-zone can be determined according to the average of the levels of the current sample. Or the level of the last coded transform coefficient of the lower sub-zone of the current sub-zone and the level of the last coded transform coefficient of the right sub-zone of the current sub-zone, whichever is smaller. Or the context of the current sample may be determined according to the greater of the level of the last coded transform coefficient of the lower sub-zone of the current sub-zone and the level of the last coded transform coefficient of the right sub-zone of the current sub-zone.
- the entropy decoding unit 1620 can obtain the transform coefficient array of the current subspace by parsing the transform coefficient information of the current subspace according to the context of the current sample and the coefficient coding scheme of the current subspace.
- Figs. 17 to 19 show embodiments in which a square current block having a size of N ⁇ N N is divided into a plurality of zones and sub-zones, and the transform coefficient information of the current block is parsed.
- Figure 17 shows the zones and sub-zones according to the first embodiment.
- the current block 1700 can be divided into three horizontally sized 4, 4, N-8, and vertically divided into three sizes 4, 4, and N-8. Accordingly, the current block 1700 includes four blocks 1702, 1704, 1706 and 1708 of size 4 X 4, two blocks 1710 and 1712 of size N-8 X 4, and 2 blocks of size 4 X (N-8) Blocks 1714 and 1716 and one block 1718 of size (N-8) X (N-8).
- the first zone of the current block 1700 may be set to include only the block 1702 as a subarea.
- the third zone of the current block 1700 may be set to include the remainder blocks 1710, 1712, 1714, 1716, and 1718 having a low probability that the effective transformation coefficient is distributed as a subarea.
- the block size used for determination of the blocks 1702, 1704, 1706, and 1708 of the current block 1700 is set to 4x4, but it may be set to another size depending on the implementation.
- the block size may be a predetermined value or may be specified in a slice header, a picture parameter set (PPS), and a sequence parameter set (SPS).
- Figure 18 shows zones and sub-zones according to a second embodiment.
- the current block 1800 can be divided into four horizontally sized 4, 4, 4, and N-12, and vertically divided into 4, 4, 4, and N-12.
- the current block 1800 includes blocks 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816 and 1818 of nine sizes 4 X 4, blocks 1820, 1822, 1824, a block 1826, 1828, and 1830, which are three sizes 4X (N-12), and a block 1832, which is one size N-12X (N-12).
- the first zone of the current block 1800 may be set to include only the block 1802 in which the effective transformation coefficient is likely to be distributed as a subspace.
- the second zone of the current block 1800 may include blocks 1804, 1806, 1808, 1810, and 1812 with a middle probability that the effective transform coefficient is distributed as a sub-zone.
- the third zone of the current block 1800 includes the remaining blocks 1814, 1816, 1818, 1820, 1822, 1824, 1826, 1828, 1830, 1832, can do.
- the block size used for determination of the blocks 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816 and 1818 of the current block 1800 is set to 4x4, . ≪ / RTI >
- the block size may be a predetermined value or may be specified in a slice header, a picture parameter set (PPS), and a sequence parameter set (SPS).
- FIG. 19 shows zones and sub-zones according to the third embodiment.
- the current block 1900 can be divided into four horizontally sized 4, 4, 4, and N-12, and vertically divided into 4, 4, 4, and N-12.
- the current block 1900 includes blocks 192, 1904, 1906, 1908, 1910, 1912, 1914, 1916, and 1918 having nine sizes 4 X 4, blocks 1920, 1924), blocks 1926, 1928, and 1930 of three sizes 4X (N-12), and a block 1932 of one size (N-12) X (N-12).
- the first zone of the current block 1900 may be set to include only the block 1902 in which the effective transformation coefficient is likely to be distributed as a subspace.
- the second zone of the current block 1900 may include the blocks 1804 and 1806 that are the second highest probability that the effective transform coefficient is distributed as a sub-zone.
- the ninth zone of the current block 1900 may include blocks 1808, 1810, and 1812 that are the second highest probability that the effective transform coefficient is distributed as a sub-zone.
- the fourth zone of the current block 1900 includes the remaining blocks 1814, 1816, 1818, 1820, 1822, 1824, 1826, 1828, 1830, 1832, can do.
- the block size used for determination of the blocks 1902, 1904, 1906, 1908, 1910, 1912, 1914, 1916, and 1918 of the current block 1900 is set to 4x4 in the third embodiment, . ≪ / RTI >
- the block size may be a predetermined value or may be specified in a slice header, a picture parameter set (PPS), and a sequence parameter set (SPS).
- FIGS. 20 and 21 disclose embodiments in which a rectangular current block having a size of M X N is divided into a plurality of zones and sub-zones, and the transform coefficient information of the current block is parsed.
- FIG. 20 shows zones and sub-zones according to a fourth embodiment.
- blocks having four sizes of 4x4 are divided from the upper left side of the current block, as in the first embodiment shown in Fig. That is, the current block 2000 can be divided into three horizontally sized 4, 4, and M-8, and vertically divided into 4, 4, and N-8. Therefore, the current block 2000 is composed of four blocks 2002, 2004, 2006 and 2008 of size 4 X 4, two blocks 2010 and 2012 of size M-8 X 4, Blocks 2014 and 2016, and one block 2018 of size (M-8) X (N-8).
- the first zone of the current block 2000 may be set to include only the block 2002 as a sub-zone.
- the second zone of the current block 2000 may be set to include three blocks 2004, 2006, 2008 of size 4 X 4 as sub-zones.
- the third zone of the current block 2000 may be set to include the remaining blocks 2010, 2011, 2014, 2014, 2016, 2018 having a low probability of distribution of the effective transformation coefficient as a sub-zone.
- the block size used for determination of the blocks 2002, 2004, 2006, 2008 of the current block 2000 is set to 4x4, but it may be set to another size according to the embodiment.
- the block size may be a predetermined value or may be specified in a slice header, a picture parameter set (PPS), and a sequence parameter set (SPS).
- the current block 2100 shows the zones and sub-zones according to the fifth embodiment.
- the current block is divided in proportion to the size of the current block.
- the current block 2100 may be horizontally divided into M / 4: M / 4: M / 2 and vertically divided into N / 4: N / 4: N / 2. Accordingly, the current block 2100 includes four blocks 2102, 2104, 2106 and 2108 of size M / 4 X N / 4, two blocks 2110 and 2112 of size M / 2 X N / 4, Two blocks 2114 and 2116, and one block 2118 of size M / 2 X N / 2.
- the first zone of the current block 2100 may be set to include only the block 2102 as a sub-zone.
- the second zone of the current block 2100 may be set to include three blocks 2104, 2106, 2108 of size 4X4 as sub-zones.
- the third zone of the current block 2100 may be set to include the remaining blocks 2110, 2112, 2114, 2116, and 2118 having a low probability that the effective transform coefficient is distributed as a subarea.
- the division ratio of the current block 2000 is set to 1: 1: 2, but it may be set to another division ratio according to the embodiment.
- the division ratio may be a predetermined value or may be specified in a slice header, a picture parameter set (PPS), and a sequence parameter set (SPS).
- 22-24 illustrate an embodiment of dividing the current block into zones and sub-zones, depending on the size of the current block.
- FIG. 22 illustrates a method of dividing the current block 2200 of Mx8 size according to the dividing method of the fourth embodiment of FIG.
- the current block 2200 may be divided horizontally into sizes 4, 4, and M-8. However, since the height of the current block 2200 is not greater than 8, the current block 2200 is vertically divided into size 4 and 4.
- the first zone and the second zone are determined similarly to the fourth embodiment in Fig.
- the third zone may include only two blocks 2210 and 2212 whose size is (M-8) X4 as a sub-zone.
- the current block size is 8xN
- the first zone and the second zone are determined as in the fourth embodiment of Fig. 20, and the third zone is determined as 2 < Only blocks may be included. If the size of the current block 2200 is 8x8, only the first zone including one sub-zone and the second zone including three sub-zones are set.
- the current block 2300 may be horizontally divided into 4, 4, and M-8. However, if the height of the current block 2300 is not greater than 4, the current block 2300 is not vertically divided.
- the first zone is determined similarly to the fourth embodiment in Fig. However, the second zone may only include a block 2302 of size 4x4 as a sub-zone. And the third zone may include only a block 2304 whose size is (M-8) X4 as a sub-zone. Similarly, if the size of the current block is 4xN, the first zone and the second zone may each contain a block of size 4x4 as a sub-zone. And the third zone is a sub-zone and may include blocks of size 4 (N-8) in size. If the size of the current block 2300 is 4x8 or 8x4, only the first zone including one sub-zone and the second zone including one sub-zone are set. When the size of the current block 2300 is 4x4, only the first zone including one sub-zone is set.
- FIG. 24 illustrates a method of dividing the current block 2400 of size Mx2 according to the dividing method of the fourth embodiment of FIG.
- the current block 2400 may be divided horizontally into sizes 4, 4, and M-8. However, if the height of the current block 2400 is not greater than 4, the current block 2400 is not vertically divided.
- the sub-region divided from the current block 2400 has a size of 4x2 or (M-8) x2.
- the first zone and the second zone each include a block 2402 and a block 2404 that are 4x2 in size as a subarea.
- the third zone includes a block 2406 that is (M-8) x2 into sub-zones.
- the size of the current block is 2xN
- the first zone and the second zone may each contain a block of size 2x4 as a sub-zone.
- the third zone may include a block of size 2X (N-8) as a sub-zone.
- the size of the current block 2400 is 2x8 or 8x2, only the first zone including one sub-zone and the second zone including one sub-zone are set. If the size of the current block 2400 is 2x4 or 4x2, only the first zone including one subarea is set.
- the number of sub-zones included in the zone may be determined according to the size of the current block, as in FIGS. In Figures 22-24, the size of a particular subarea with a fixed size is not limited to 4x4.
- 25 is a flowchart illustrating an entropy decoding process based on a last position-based coefficient coding scheme according to an embodiment of the present invention.
- the last position information is decoded.
- the last position information indicates the position where the last effective transform coefficient exists.
- the last position information may indicate the location where the last effective transform coefficient of the encoding unit or the transform unit exists.
- the last position information can directly indicate the position of the last effective transform coefficient. If the last valid conversion factor is located at (lastX, lastY), then the last position information may represent lastX and lastY sequentially. According to an embodiment, the last position information may represent the last effective transform coefficient as an inverse position. Therefore, according to the embodiment, the last position information may be (M-1-lastX, lastY), (lastX, N-1-lastY) and (M-1-lastX, N-1-lastY). The method of parsing the last location information may be determined based on the zone index, the zone flag, the sub-zone index, or the sub-zone flag.
- the last position information may indicate the Y coordinate value of the position of the last effective conversion coefficient before the X coordinate value. For example, lastX and lastY may be swapped if the scan order is vertical.
- the context for decoding the last position information includes at least one of a zone index, a zone flag, a sub zone index, a sub zone flag, a current block size, a conversion unit size, a coding unit size, a setting direction of last position information, (E.g., intra / inter encoding unit), a component type (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode)
- a component type e.g., luma / chroma
- prediction information e.g., partition mode, prediction mode
- the validity flag (Significant Flag) is decoded.
- the validity flag indicates whether the conversion coefficient of the pixel is an effective conversion coefficient whose absolute value is larger than zero.
- the validity flag of the last validity factor may not be decoded.
- the final effective transform coefficient is determined to be greater than zero.
- the validity flags of the transform coefficients scanned after the last effective transform coefficient may not be decoded.
- the absolute value of the transform coefficient scanned after the last effective transform coefficient is determined to be zero.
- the context for decrypting the validity flag includes the location of the current block, the encoded peripheral validity flag, the zone index, the zone flag, the subregion index, the subregion flag, the current block size, the translation unit size, the encoding unit size, The type of the coefficient coding scheme, the type of the component (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode), and the like.
- the first threshold value flag GT1 flag is decoded.
- the first threshold value flag is decoded with respect to the effective conversion coefficient. Therefore, when the absolute value of the transform coefficient is 0, the first threshold value flag for the transform coefficient is not decoded.
- the first threshold value flag indicates whether the absolute value of the transform coefficient is greater than one. If the first threshold flag indicates that the absolute value of the transform coefficient is not greater than one, the absolute value of the transform coefficient is determined to be one. If the first threshold flag indicates that the absolute value of the transform coefficient is greater than one, then the absolute value of the transform coefficient is determined to be greater than one.
- the number of the first threshold value flags may be limited to a predetermined number. For example, when the maximum number of the first threshold flags acquired for the current block is 8, only the first threshold flag is obtained for the eight effective transform coefficients that are decoded first in the scan order. However, the first threshold value flag is not obtained for the ninth and subsequent effective transform coefficients.
- the context for decrypting the first threshold value flag includes a number of 1 trailed in the reverse scan order, a number of first threshold value flags in the peripheral sub-zone, a number of peripheral validity flags, a number of peripheral valid first threshold value flags (E.g., an intra / inter coding unit, a coding unit size, a coding unit size, a setting direction of last position information, a conversion skip state, a coding block type , Type of coefficient coding scheme, component type (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode), and the like.
- component type e.g., luma / chroma
- prediction information e.g., partition mode, prediction mode
- a second threshold value flag (GT2 flag) is decoded.
- a second threshold value flag is obtained for an effective transform coefficient whose absolute value is greater than one. Therefore, if the absolute value of the transform coefficient is not greater than 1, the second threshold value flag for the transform coefficient is not obtained.
- the second threshold value flag indicates whether the absolute value of the transform coefficient is greater than two. If the second threshold flag indicates that the absolute value of the transform coefficient is not greater than 2, the absolute value of the transform coefficient is determined to be 2. If the second threshold flag indicates that the absolute value of the transform coefficient is greater than 2, then the absolute value of the transform coefficient is determined to be greater than two.
- the number of the second threshold value flags may be limited to a predetermined number. For example, when the maximum number of second threshold flags acquired for the current block is 8, only the second threshold flag is set for the effective transform coefficients whose eight absolute values decoded first in the scan order are larger than 1 . However, the second threshold value flag is not obtained for the ninth and subsequent effective transform coefficients.
- the context for decoding the second threshold value flag includes the number of the peripheral validity flags in the backward scan order, the number of the valid first threshold value flags, the number of the first threshold value flags in the neighboring sub-zone, the zone index, (E.g., intra / inter coding unit), the type of coefficient coding scheme, the type of coefficient coding scheme, and the type of coefficient coding scheme.
- Component type e.g., luma / chroma
- prediction information e.g., partition mode, prediction mode
- the absolute value information is decoded.
- the absolute value information represents the absolute value of the transform coefficient. If the first threshold flag and the second threshold flag are obtained for the transform coefficient and the second threshold flag indicates that the absolute value of the transform coefficient is greater than 2, Is determined as the absolute value of the conversion coefficient. If only the first threshold flag is obtained without signaling the second threshold flag for the transform coefficient and the first threshold flag indicates that the absolute value of the transform coefficient is greater than 1, The larger value is determined as the absolute value of the conversion factor.
- step 2560 sign information is decoded.
- the sign information indicates the sign of the effective conversion coefficient. Thus, if the validity flag indicates that the absolute value of the transform coefficient is greater than zero, sign information can be obtained.
- the code information can be coded by a fixed length coding scheme of 1 bit length.
- the encoding according to the last position-based coefficient coding scheme described in FIG. 25 is performed by coding the last position information, the validity flag, the first threshold value flag, the second threshold value flag, the absolute value information, and the sign information described in steps 2510 to 2560 For example, according to the value of the transform coefficient.
- 26 is a flowchart illustrating a process of entropy decoding based on a full position-based coefficient coding scheme according to an embodiment of the present invention.
- the validity of the transform coefficient is determined without obtaining a validity flag for the last effective transform coefficient and the transform coefficient scanned after the last effective transform coefficient.
- steps 2610 to 2650 may be set substantially equal to steps 2520 to 2560 of FIG.
- FIG. 27 is a flowchart illustrating a process of entropy decoding based on a scan region-based coefficient coding scheme according to an embodiment of the present invention.
- the scan area information may be decoded.
- the scan area indicates an area where the conversion coefficient is scanned in the current block.
- the scan area-based coefficient coding scheme only the transform coefficients in the scan area are scanned, and the transform coefficients outside the scan area are determined as zero.
- the scan area information may include coordinate information set with reference to the upper left corner of the current block. For example, when the coordinate information indicates (srX, srY), the scan area is a rectangle determined by four pixels of (0,0), (srX, 0), (0, srY) Area.
- the scan area information may include inverse position coordinate information set with reference to the lower right end of the current block. For example, when the current block size is MxN and the coordinates of the lower right pixel of the scan area are (srX, srY), the inverse position coordinate information is (M-1-srX, srY) -SrY) or (M-1-srX, N-1-srY).
- the context for decoding the information of the scan area includes a zone index, a zone flag, a sub zone index, a sub zone flag, a current block size, a conversion unit size, a coding unit size, forward or reverse direction, , Intra / inter encoding unit), component type (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode)
- component type e.g., luma / chroma
- prediction information e.g., partition mode, prediction mode
- the E1 flag may be decoded.
- the E1 flag is a flag indicating whether the absolute value of all the effective conversion coefficients of the current block is 1 or not.
- the E1 flag may indicate whether the absolute value of all effective conversion coefficients in the scan area is 1 or not.
- decryption of the E1 flag may be omitted. If the E1 flag is omitted, the absolute value of all the effective conversion coefficients in the scan area is not necessarily set to 1.
- the conditions for transmitting the E1 flag can be determined based on the zone index, the zone flag, the sub zone index, the sub zone flag, the number of the first threshold flag in the first encoded zone, and the like.
- the context for decrypting the E1 flag includes a zone index, a zone flag, a sub-zone index, a sub-zone flag, the number of first threshold flags in a first encoded sub-zone, a current block size, a conversion unit size, (For example, partition mode, prediction), prediction type information (e.g., prediction mode, prediction mode, etc.) Mode), and the like.
- step 2730 the validity flag may be decoded.
- the validity flag decryption method of step 2730 is the same as step 2610 of Fig.
- step 2740 it is determined whether the E1 flag indicates whether the absolute value of all the effective conversion coefficients of the current block is 1 or not. When the E1 flag indicates 1, the absolute value of all the effective conversion coefficients of the current block is determined as 1. [ And step 2780 is performed to determine the sign of the transform coefficient. Conversely, when the E1 flag indicates 0, the absolute value of the transform coefficient is determined in steps 2750 to 2770. [
- the first threshold flag, the second threshold flag, and the absolute value information may be decoded.
- the decoding method of the first threshold value flag, the second threshold value flag, and the absolute value information of the steps 2750 to 2770 can be set substantially the same as the steps 2620 to 2640 of Fig. After the absolute value of the transform coefficient is determined in accordance with steps 2750 to 2770, step 2780 is performed.
- step 2780 the sign information can be decoded.
- the code information decoding method of step 2780 can be set substantially equal to step 2650 of FIG.
- FIG. 28 is a flowchart illustrating a process of entropy decoding based on a significant group-based coefficient coding according to an embodiment of the present invention.
- the valid group flag (SigCGflag) is decoded.
- the current block may comprise a plurality of coefficient groups.
- the coefficient group may comprise transform coefficients included in blocks of any size.
- the coefficient group may include transform coefficients included in a 4x4 block. If the current block size is 8x8, the current block can have four coefficient groups.
- the coefficient group may comprise a predetermined number of successive transform coefficients in the scan order.
- the coefficient group may include eight consecutive transform coefficients according to the scan order. If the number of transform coefficients included in the current block is 64, the current block may have 8 coefficient groups divided according to the scan order.
- the effective group flag is a flag indicating whether or not the coefficient group includes the effective conversion coefficient. Therefore, when the effective group flag is 1, it is determined that the effective conversion coefficient is included in the coefficient group. Conversely, when the valid group flag is 0, it is determined that the effective conversion coefficient is not included in the coefficient group. Therefore, all the transform coefficients of the coefficient group are determined to be zero.
- step 2820 it is determined whether the valid group flag is 1 or not.
- the effective group flag is 1
- the value of the transform coefficient included in the coefficient group is determined according to the validity flag, the first threshold value flag, the second threshold value flag, the absolute value information, and the sign information obtained in steps 2830 to 2870 .
- Steps 2830 to 2870 can be set substantially equal to steps 2610 to 2650 of Fig.
- 29 is a flowchart illustrating an entropy decoding process based on a last position and a group-based coefficient coding according to an embodiment of the present invention.
- step 2910 the last position information is decoded.
- Step 2910 of FIG. 29 may be set substantially the same as step 2510 of FIG.
- step 2920 the valid group flag (SigCGflag) is decoded. Unlike step 2810 of FIG. 28, in step 2920 of FIG. 29, the valid group flag is not decoded for the coefficient group determined to contain the last valid conversion coefficient according to the last position information. Also, the effective group flag is not decoded for the coefficient group to be decoded after the coefficient group including the last effective conversion coefficient according to the scan order.
- step 2930 it is determined whether the valid group flag is 1 or not. Similar to step 2820 of FIG. 28, when the effective group flag is 1, the coefficient group is added to the coefficient group in accordance with the validity flag, the first threshold value flag, the second threshold value flag, the absolute value information and the sign information obtained in steps 2940 to 2980 The value of the included transform coefficients can be determined. Steps 2940 to 2980 may be set substantially the same as steps 2610 to 2650 of Fig. If the effective group flag is 0, the conversion coefficients of the coefficient group are all determined to be zero.
- the coefficient group including the last valid conversion coefficient according to the last position information is a flag indicating whether or not the validity flag, the first threshold flag, the second threshold flag, the absolute value obtained in steps 2940 to 2980,
- the value of the transform coefficient included in the coefficient group may be determined according to the value information and the code information.
- the conversion coefficient of the coefficient group to be decoded after the coefficient group including the last effective conversion coefficient according to the scanning order is all determined to be 0 as in the case where the effective group flag is 0. [
- FIG. 30 is a flowchart illustrating a process of entropy decoding based on valid group and last position-based coefficient coding according to an embodiment of the present invention.
- step 3010 the valid group flag is decoded.
- Step 3010 of FIG. 30 may be set substantially the same as step 2810 of FIG.
- step 3020 it is determined whether the valid group flag is 1 or not. When the effective group flag is 0, the conversion coefficients of the coefficient group are all determined to be zero. If the valid group flag is 1, steps 3030 to 3080 are performed.
- the last position information, the validity flag, the first threshold flag, the second threshold flag, the absolute value information, and the code information are obtained.
- the last position information in FIG. 30 shows the position of the last effective transformation coefficient in the coefficient group, unlike the last position information in FIG.
- the validity flag, the first threshold value flag, the second threshold value flag, the absolute value information, and the sign information of FIG. 30 correspond to the validity flag, the first threshold value flag, the second threshold value flag, the absolute value information, Substantially the same.
- the transform coefficients of the current block are decoded according to the last position information, the validity flag, the first threshold value flag, the second threshold value flag, the absolute value information, and the sign information obtained in steps 3030 to 3080.
- step 3110 the valid group flag is decoded.
- Step 3110 of FIG. 31 may be set substantially the same as step 2810 of FIG.
- step 3120 it is determined whether the valid group flag is 1 or not. When the effective group flag is 0, the conversion coefficients of the coefficient group are all determined to be zero. If the valid group flag is 1, steps 3130 to 3180 are performed.
- the lastRun information is decoded in step 3030.
- the lastRun information indicates the order in which the last validation factor is scanned. For example, if the coefficient group contains 16 transform coefficients and the last effective transform coefficient is scanned at the tenth, the lastRun information may represent 10.
- the last valid conversion factor may be determined according to the lastRun information. Like the last position information, the validity flag is not obtained for the last valid conversion coefficient according to the lastRun information. Also, no validity flag is obtained for the transform coefficients scanned after the last valid transform coefficient according to the lastRun information, and the transform coefficients are determined to be zero.
- the scan order applied to the parsing of the lastRun information may be determined based on the zone index, zone flag, sub-zone index, sub-zone flag, and the like.
- the context for encoding lastRun may include a region index, a zone flag, a subspace index, a subspace flag, a current block size, a conversion unit size, a coding unit size, whether forward or backward, (E.g., intra / inter encoding unit), a component type (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode)
- a validity flag, a first threshold value flag, a second threshold value flag, absolute value information, and sign information are obtained.
- the validity flag, the first threshold value flag, the second threshold value flag, the absolute value information, and the sign information of FIG. 31 correspond to the validity flag, the first threshold value flag, the second threshold value flag, Substantially the same.
- the transform coefficients of the current block are decoded according to the lastRun information, the validity flag, the first threshold value flag, the second threshold value flag, the absolute value information, and the sign information obtained in steps 3140 to 3180.
- 32 is a view for explaining a process of entropy decoding based on a first run-level-based coefficient coding according to an embodiment of the present invention.
- run information is decoded.
- the run information indicates the number of transform coefficients having a value 0 between the previous effective transform coefficient and the next effective transform coefficient according to the scan order. For example, if there are three conversion coefficients with a value of 0 between the previous effective conversion coefficient and the next effective conversion coefficient, the run information is 3. If there is no transform coefficient with a value of 0 between the previous effective transform coefficient and the next effective transform coefficient, the run information is determined to be zero.
- the run information obtained from the beginning of the current block may indicate the number of transform coefficients having a value of 0 between the start point and the next effective transform coefficient.
- the run information can be decoded into a truncated unary code according to a predetermined number of context models. Then, the run information can be decoded by an exponential-golomb code according to bypass coding. Or run information may be decoded using the two schemes selectively.
- the context for decoding the run information includes a position of the current block, a value of the previous effective transform coefficient, a zone index, a zone flag, a sub zone index, a sub zone flag, a size of a current block, a conversion unit size, (E.g., partition mode, prediction mode), and the like, depending on the type of the block to be coded, the type of the block to be coded, the type of the coded block (e.g., intra /
- step 3220 level information is decoded.
- the level information indicates the absolute value of the effective conversion coefficient that comes after the conversion coefficient whose value is determined according to the run information. For example, when the value of the effective conversion coefficient is -2, the level information indicates 2.
- the level information may be decoded into a truncated unary code according to a predetermined number of context models.
- the level information may be decoded by an exponential-golomb code according to bypass coding.
- level information may be decoded using the above two schemes selectively.
- the context for decoding the level information includes at least one of the position of the current block, the value of the previous effective transform coefficient, the zone index, the zone flag, the sub zone index, the sub zone flag, the size of the current block, (E.g., partition mode, prediction mode), and the like, depending on the type of the block to be coded, the type of the block to be coded, the type of the coded block (e.g., intra /
- step 3230 the sign information is decoded.
- the sign information of step 3230 may be set the same as the sign information of step 2560 of FIG.
- the effective conversion coefficient is decoded in accordance with the level information of step 3220 and the sign information of step 3230.
- the last valid coefficient flag (lastflag) is decoded.
- the last valid coefficient flag indicates whether the currently determined effective conversion coefficient is the last valid conversion coefficient of the current block. If the effective transform coefficient is the last transform coefficient of the current block, the effective coefficient is not obtained and the effective transform coefficient is determined as the last effective transform coefficient. When the last effective coefficient flag indicates 1, the effective conversion coefficient is determined as the last effective conversion coefficient. Conversely, when the last valid coefficient flag indicates 0, the valid coefficient is not determined as the last valid coefficient
- step 3250 it is determined whether the last valid coefficient flag is 1 or not. If the last coefficient of validity flag is 1, the values of the transform coefficients after the currently determined effective coefficient are all determined to be zero. However, when the last valid coefficient flag is 0, steps 3210 to 3240 are performed again.
- the 16 transform coefficients included in the 4x4 current block are 4, 3, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, (4), (3), (0, -1), (0,0,1), (0,0,0,1), (0,0,0,0) , 0, 0).
- the run information for the group 4 is set to 0, the level information is set to 4, the sign information is set to 0 (+), and the last valid coefficient flag is set to 0.
- the run information for the group (3) is determined as 0, the level information as 3, the sign information as 0 (+), and the last valid coefficient flag as 0.
- the run information for the group (0, -1) is determined as 1, the level information as 1, the sign information as 1 (-), and the last valid coefficient flag as 0.
- the run information for the group (0, 0, 1) is determined as 2, the level information as 1, the sign information as 0 (+), and the last valid coefficient flag as 0.
- the run information for the group (0, 0, 0, 1) is determined as 3, the level information as 1, the sign information as 0 (+) and the last valid coefficient flag as 1. Since the last valid coefficient indicates 1, the information on the group (0, 0, 0, 0, 0) is not additionally generated and the encoding of the current block is terminated.
- 33 is a view for explaining a process of entropy decoding based on a second run-level-based coefficient coding scheme according to an embodiment of the present invention.
- the second run-level based coefficient coding scheme is different from the first run-level based coefficient coding scheme
- the last valid coefficient flag is not obtained.
- the second run-level based coefficient coding scheme may provide a higher coding efficiency than the first run-level based coefficient coding scheme by not generating the last significant coefficient flag.
- step 3310 the run information is decoded.
- the run information in Fig. 33 can be set substantially equal to the run information in Fig.
- step 3320 whether the current transform coefficient is the last transform coefficient of the current block (condition A) is determined.
- the current transform coefficient indicates the last transform coefficient among the transform coefficients whose value is determined according to the run information. If the current transform coefficient is the last transform coefficient of the current block, the decoding of the current block is terminated. However, if the current transform coefficient is not the last transform coefficient of the current block, then step 3330 is performed.
- step 3330 the level information is decoded.
- the level information in Fig. 33 can be set substantially equal to the level information in Fig.
- step 3340 the sign information is decoded.
- the code information in Fig. 33 can be set substantially equal to the code information in Fig.
- step 3350 whether the current transform coefficient is the last transform coefficient of the current block (condition B) is determined.
- the current transform coefficient indicates an effective transform coefficient determined according to the level information and the sign information. If the current transform coefficient is the last transform coefficient of the current block, the decoding of the current block is terminated. However, if the current transform coefficient is not the last transform coefficient of the current block, then step 3310 is performed.
- the run information for the group 4 is determined to be 0, the level information to 4, and the sign information to 0 (+).
- the run information for group 3 is determined to be 0, the level information to 3, and the sign information to 0 (+).
- the run information for the group (0, -1) is determined as 1, the level information as 1, and the sign information as 1 (-).
- the run information for the group (0, 0, 1) is determined as 2, the level information as 1, and the sign information as 0 (+).
- the run information for the group (0, 0, 0, 1) is determined as 3, the level information as 1, and the sign information as 0 (+). Only run information having a value of 5 for the group (0, 0, 0, 0, 0) is generated and the encoding of the current block is terminated.
- 34 and 35 are diagrams for explaining an embodiment for setting a scan area.
- the scan area indicates an area where the conversion coefficient is scanned in the current block.
- the scan area-based coefficient coding scheme only the transform coefficients in the scan area are scanned, and the transform coefficients outside the scan area are determined as zero.
- the entropy decoding unit 1620 can scan the current block in various ways. In one embodiment, the scan area may be equal to the size of the current block. Or the coordinates indicated by the scan area information, the entropy decoding unit 1620 can determine a part of the current block as a scan area.
- FIG. 34 shows a method of determining a scan area in the form of a rectangle according to an embodiment.
- a rectangular scan area 3401 is shown.
- the scan area 3401 can be defined as (srX, srY) which is the coordinate of the lower right side sample of the scan area.
- srX is determined by the x-coordinate component of the location of the rightmost significant transform coefficient
- srY is determined by the y-coordinate component of the location of the lowest valid transform coefficient.
- the scan area 3401 is determined according to four pixels of (0,0), (srX, 0), (0, srY), (srX, srY).
- the scan area information may include coordinate information set with reference to the upper left corner of the current block. For example, when the coordinate information indicates (srX, srY), the scan area is a rectangle determined by four pixels of (0,0), (srX, 0), (0, srY) Area.
- the scan area information may include inverse position coordinate information set with reference to the lower right end of the current block. For example, when the current block size is MxN and the coordinates of the lower right pixel of the scan area are (srX, srY), the inverse position coordinate information is (M-1-srX, srY) -SrY) or (M-1-srX, N-1-srY).
- FIG. 35 shows a method of determining a scan area in the form of a square according to an embodiment.
- FIG. 35 shows a scan area 3501 in the form of a square.
- the scan area 3501 may be defined as srR, which is the size of the side of the scan area. srR is determined by a larger value among the x-coordinate component of the position of the rightmost effective transformation coefficient and the y-coordinate component of the position of the lowest effective transformation coefficient. Therefore, the scan area 3501 is determined according to four pixels of (0,0), (srR, 0), (0, srR), (srR, srR).
- the scan area information in Fig. 35 shows only the length of the sides of the scan area that is a square. Since only the SRR is included in the scan area information in Fig. 35, the data size is smaller than the scan area information in Fig. 34 including two values. Therefore, when the scan area is set to a square as shown in FIG. 35, the encoding efficiency may increase in some cases.
- Figure 36 shows the current block divided into nine sub-zones. Referring to Fig. 36, a method of determining the scan order of the current block and a method of determining the context of the zone flag, sub zone flag, run information, level information, and last valid coefficient flag of the current block will be described.
- Fig. 36 shows an embodiment in which the scan direction of the current block is a vertical direction or a horizontal direction.
- the scan direction of the current block may be determined by a vertical direction, a horizontal direction, a zigzag direction, and a diagonal direction.
- the scan direction of the sub-zone included in the current block can be independently determined.
- the scan direction may be determined based on various information.
- the scanning direction can be determined according to a unit size, a conversion skip state, an encoded block type (e.g., intra / inter coding unit), a component type (e.g., luma / chroma), prediction information .
- an encoded block type e.g., intra / inter coding unit
- a component type e.g., luma / chroma
- the current block may be a conversion unit, an encoding unit, or another block unit.
- the first zone z0 comprises a first sub-zone sz0
- the second zone z1 comprises second through fourth sub-zones sz1, sz2 and sz3
- the third zone z2 comprises And the fifth to ninth sub zones sz4, sz5, sz6, sz7, sz8.
- the scan direction of each sub-zone is determined according to the zone flag and sub-zone flag of the zone and sub-zone shown in Fig.
- the horizontal effective subarea count value cntHor is set to the third subareas sz2, the sixth subareas sz5, the fourth subareas sz3, the seventh subareas sz6, Can be determined as the sum of the values indicated by the zone flags of the zone sz7 and the ninth sub zone sz8.
- the vertical effective subarea count value cntVer is set to the second subareas sz1, the fifth subareas sz4, the fourth subareas sz3, the seventh subareas sz6, the eighth subareas sz7 ) And the zone flags of the ninth subareas sz8.
- the horizontal effective subarea count value (cntHor) and the vertical effective subarea count value (cntVer) are expressed by the following equations.
- cntHor fsz2 + fsz5 + fsz3 + fsz6 + fsz7 + fsz8
- the scan direction of the current block may be determined according to the first horizontal constant isHor4, the first vertical constant isVer4, the second horizontal constant isHor8, and the second vertical constant isVer8.
- the first horizontal constant isHor4 is set such that the first subzone sz0 is the effective subzone and the second subzone sz1 or the fifth subzone sz4 is the effective subzone and the horizontal effective subarea count value cntHor ) Is 0, it is determined to be 1. If the above condition is not satisfied, the first horizontal constant is determined to be zero.
- the first vertical constant isVer4 is set such that the first subzone sz0 is the effective subzone and the third subzone sz2 or the sixth subzone sz5 is the effective subzone and the vertical effective subarea count value cntVer ) Is 0, it is determined to be 1. If the above condition is not satisfied, the first horizontal constant is determined to be zero.
- the second horizontal constant isHor8 is determined to be 1 when the first subareas sz0 and the second subareas sz1 are valid subareas and the horizontal effective subarea count value cntHor is zero. If the above condition is not satisfied, the first horizontal constant is determined to be zero.
- the second vertical constant isVer8 is determined to be 1 when the first sub zone sz0 and the third sub zone sz2 are valid subareas and the vertical effective subarea count value cntVer is zero. If the above condition is not satisfied, the first horizontal constant is determined to be zero.
- a method of determining a first horizontal constant isHor4, a first vertical constant isVer4, a second horizontal constant isHor8, and a second vertical constant isVer8 is described below.
- the temporary scan index tmpScanIdx may be determined according to the prediction mode of the current block. If the prediction mode (Imode) of the current block is close to the vertical mode (VerMode), the temporary scan index tmpScanIdx may indicate a vertical scan (Scan_Ver). It can be determined that the intra-prediction mode (Imode) and the vertical mode (VerMode) of the current block are close to each other when the intra-mode index difference between the intra-prediction mode (Imode) and the vertical mode (VerMode) of the current block is 5 or less.
- the temporary scan index tmpScanIdx may indicate a horizontal scan (Scan_Hor). It can be determined that the intra-prediction mode (Imode) of the current block and the horizontal mode (HorMode) are close to each other when the intra-mode index difference between the intra-prediction mode (Imode) and the horizontal mode (HorMode) of the current block is 5 or less.
- the temporary scan index tmpScanIdx may indicate a diagonal scan (Scan_Diag).
- the temporary scan index tmpScanIdx may indicate a scan zigzag.
- tmpScanIdx
- tmpScanIdx Scan_Zigzag
- the scan direction ScanIdx of the current block is determined based on the first horizontal constant isHor4, the first vertical constant isVer4, the second horizontal constant isHor8, the second vertical constant isVer8, and the temporary scan index tmpScanIdx, Can be determined.
- the scan direction (ScanIdx) of the current block is determined to be the same as the scan direction indicated by the temporary scan index tmpScanIdx .
- the scan direction of the current block according to the first horizontal constant isHor4 and the first vertical constant isVer4 can be determined.
- the scan direction (ScanIdx) of the current block may be determined as the horizontal direction (Scan_Hor).
- the first vertical constant isVer4 is 1, the scan direction (ScanIdx) of the current block may be determined as the vertical direction (Scan_Ver).
- the scan direction (ScanIdx) of the current block may be determined as the zigzag direction (Scan_Zigzag).
- the scan direction ScanIdx of the current block is horizontal (Scan_Hor).
- the third sub-zone sz2 is an effective sub-zone, and the second vertical constant isVer8 is 1, the scan direction ScanIdx of the current block is vertical Direction (Scan_Ver). If the above condition is not satisfied, the scan direction (ScanIdx) of the current block may be determined as the zigzag direction (Scan_Zigzag).
- ScanIdx fz0? tmpScanIdx: (isHor4? Scan_Hor: (isVer4? Scan_Ver: Scan_Zigzag))
- ScanIdx fsz1 & isHor8? Scan_Hor: (SZ2 & isVer8? Scan_Ver: Scan_Zigzag)
- the scan direction of the current block can be determined according to the intra prediction mode of the current block. Accordingly, the scan direction of the current block may be a vertical mode, a horizontal mode, and a diagonal mode depending on the prediction direction of the intra prediction mode of the current block.
- the scan direction of the current block may be the horizontal mode.
- the scan direction of the current block may be the vertical mode.
- the scan order determination method described on the basis of FIG. 36 can be applied to the embodiment relating to the division of regions and sub-regions described in FIGS.
- a method for determining the context of the zone flag, sub zone flag, run information, level information, and last valid coefficient flag will be described.
- the entropy decoding unit 1620 may determine the context index indicating the context of the zone flag according to the size of the current block and the zone index.
- the size index (Log2size) of the current block compares a value (CONV_LOG2 (Max (iwidth, iheight)) - 1) smaller than the value obtained by converting the larger of the height and width of the current block into the binary log value - It is determined to be a small value.
- the context index of the zone flag may be determined by adding a zone index (izone) to twice the size index (Log2size).
- the zone index (izone) of the first zone is zero and the zone index (izone) of the second zone is one.
- the context index of the zone flag may also be determined according to the components of the current block. For example, when the component of the current block is luma, the context index of the zone flag is not changed. However, when the component of the current block is chroma, the context index of the zone flag increases by the zone flag chroma offset (offset_chroma_zflag).
- the value of the zone flag chroma offset (offset_chroma_zflag) is set equal to the number of contexts for the luma block.
- the context of the zone flag may separately include the context for the luma block and the context for the chroma block.
- the following equation represents a method of determining a context index of a zone flag according to the above embodiment.
- ctxIdx luma? ctxIdx: ctxIdx + offset_chroma_zflag
- the range of the size index (Log2size) in the above equation is 0 to 5
- the range of the context index of the zone flag for the luma block is 0 to 11
- the zone flag chroma offset (offset_chroma_zflag) is determined to be 12, such as the number of context indexes of the zone flags for the luma block, and the entire range of context indexes of the zone flags is 0 to 23.
- the method of setting the context of the zone flag may be changed according to the minimum size of the current block, the method of setting the zone and the sub zone, and the like.
- the entropy decoding unit 1620 can determine a context index indicating the context of the sub-zone flag according to the size of the current block, the zone flag, the sub-zone flag, and the sub-zone index.
- the size index (Log2size) of the current block compares a value (CONV_LOG2 (Max (iwidth, iheight)) - 1) smaller than the value obtained by converting the larger of the height and width of the current block into the binary log value - It is determined to be a small value.
- the context index of the sub-zone flag may be determined by adding the offset value determined according to the sub-zone index, the sub-zone flag, and the zone flag to 13 times the size index Log2size.
- the fourth subarea is the effective subarea (szflag [3] Lt; / RTI > can be determined to be 9.
- the context index of the sub-zone flag may be determined according to the component of the current block. For example, when the component of the current block is luma, the context index of the subarea flag is not changed. However, when the component of the current block is chroma, the context index of the subspace flag is increased by the subspace flag chroma offset (offset_chroma_szflag). The value of the sub-zone flag chroma offset (offset_chroma_szflag) is set equal to the number of contexts for the luma block. Thus, the context of the sub-zone flag may separately include the context for the luma block and the context for the chroma block.
- the following expression shows a method of determining a context index of a sub-zone flag according to the embodiment.
- ctxIdx luma? ctxIdx: ctxIdx + offset_chroma_szflag
- the range of the context index of the zone flag for the luma block is from 0 to 77 (when Log2size is 5 and the offset value is 12, the maximum value of the context index Is 77). If the sub-zone flag chroma offset (offset_chroma_zflag) is determined to be 78, the number of context indexes of the sub-zone flag for the luma block, the range of the context index of the zone flag is 0 to 155.
- the method of setting the context of the sub-zone flag may be changed according to the minimum size of the current block, the method of setting the zone and sub-zone, and the like.
- the entropy decoding unit 1620 may determine the context index indicating the context of the run information according to the absolute value of the previous effective transform coefficient, the zone index of the current zone, the zone flag, and the current sub-zone.
- the context of the run information can be increased by 48.
- the context index of the run information can be determined according to the component of the current block. For example, when the component of the current block is luma, the context index of the subarea flag is not changed. However, when the component of the current block is chroma, the context index of the run information can be increased by the run information chroma offset (offset_chroma_run). The value of the run information chroma offset (offset_chroma_run) may be set to one. Accordingly, the context of the run information may separately include the context for the luma block and the context for the chroma block.
- the following equation represents a method of determining the context index of run information according to the above embodiment.
- ctxIdx luma? ctxIdx: ctxIdx + offset_chroma_run
- the method of setting the context of the run information may be changed according to the method of classifying the absolute value of the previous effective transform coefficient, the context classification method according to the region and the sub-region, and the like.
- the entropy decoding unit 1620 may determine a context index indicating the context of the level information according to the absolute value of the previous effective transform coefficient, the zone index of the current zone and the zone flag, and the current sub-zone location.
- the condition that the current subarea is in the scan order and the middle of the current block (pos ⁇ (M * N / 2)) is not satisfied (false) while the zone index of the current zone is smaller than 2 (iz ⁇ , And if the current block is a luma block, the context of the level information may be increased by 48.
- the context index of the level information may be determined according to the component of the current block. For example, when the component of the current block is luma, the context index of the subarea flag is not changed. However, when the component of the current block is chroma, the context index of the level information may be increased by the level information chroma offset (offset_chroma_level). The value of the level information chroma offset (offset_chroma_level) may be set to one. Thus, the context of the level information may separately include the context for the luma block and the context for the chroma block.
- the following equation shows a method of determining the context index of the level information according to the embodiment.
- ctxIdx luma? ctxIdx: ctxIdx + offset_chroma_level
- the method of setting the context of the level information may be changed according to the method of classifying the absolute value of the previous effective transform coefficient, the method of classifying the region and the sub-region, and the like.
- the entropy decoding unit 1620 calculates the context index indicating the context of the last valid coefficient flag according to the absolute value of the current effective transform coefficient, the absolute value of the previous effective transform coefficient, the zone index of the current zone, You can decide.
- the context of the last valid coefficient flag is determined to be zero.
- the context of the last valid coefficient flag is determined to be 1.
- the context of the last valid coefficient flag is determined to be 2.
- the context of the last valid coefficient flag increases by the level information chroma offset (offset_chroma_last).
- the last effective coefficient flag chroma offset (offset_chroma_last) is set equal to the number of contexts for the luma block. Therefore, the last effective coefficient flag chroma offset (offset_chroma_last) in the above embodiment may be determined to be 12.
- the following expression shows a method of determining the context index of the last valid coefficient flag according to the embodiment.
- ctxIdx luma? ctxIdx: ctxIdx + offset_chroma_last
- the method of setting the context of the last valid coefficient flag may be changed according to the method of classifying the absolute value of the current effective transform coefficient and the previous effective transform coefficient, the classification method of the region and the sub region, and the like.
- FIG. 37 shows a flowchart of a video decoding method 3700 for obtaining a transform coefficient array of a current block based on a plurality of zones and a plurality of sub zones in which the current block is divided.
- step 3710 a bit stream containing the zone flag, sub-zone flag and transform coefficient information of the current block is received.
- the context of the current block can be determined according to the size of the current block, the zone flag, the index of the zone, the sub zone flag, the sub zone index, and the like.
- the current block is divided into a plurality of zones.
- the current block may be divided into a first zone and a second zone having a predetermined zone size irrespective of the size of the current block, and a third zone except for the first zone and the second zone in the current block .
- the current block may be divided into a first zone and a second zone having a zone size proportional to the size of the current block, and a third zone except for the first zone and the second zone in the current block. The number of zones divided according to the size of the current block can be determined.
- step 3730 in accordance with the zone flags for the plurality of zones of the current block, it is determined which of the plurality of zones the last valid conversion factor of the current block is included in.
- the zone flag may indicate a first value for the last zone including the sub-zone including the effective transform coefficient among the plurality of zones in which the current block is divided, and may represent the second value for the remaining zones. According to an embodiment, if all the values of the zone flags from the first to the (n-1) th zones of the n number of the plurality of zones indicate the second value, the last effective conversion coefficient of the current block is May be determined to be included.
- the zone flag can be parsed according to the context of the current block.
- a zone in which at least one of the plurality of zones may contain the effective conversion coefficient is divided into a plurality of sub-zones.
- the first zone and the second zone may be divided into a predetermined sub-zone size regardless of the size of the current block, and the third zone may be divided according to the size of the current block. The number of sub-zones to be divided according to the size of the current block can be determined.
- step 3750 it is determined, based on the sub-zone flags for the plurality of sub-zones of the current block, that at least one valid conversion coefficient is included for each of the plurality of sub-zones.
- the subspace flag may represent a first value for the subspace containing the effective transform coefficients and a second value for the subspace that does not contain the effective transform coefficients.
- the values of the sub-zone flags from the first to the (m-1) th sub- , It can be determined that the effective transform coefficient is included in the m-th sub-zone.
- a sub-zone flag may be parsed according to the context of the current block.
- the coefficient coding scheme for the subspace containing the effective transform coefficient of at least one of the plurality of subspaces is determined.
- the coefficient coding scheme for the sub-zone may be determined by the first run-level based coefficient coding scheme.
- the coefficient coding scheme for the sub-zone may be determined by the second run-level based coefficient coding scheme.
- the coefficient coding scheme for all sub-zones may be determined by a second run-level based coefficient coding scheme.
- the transform coefficient information of the current block is obtained by parsing the transform coefficient information of the current block according to the coefficient coding scheme.
- the context of the current sample can be determined.
- the order can be determined.
- the transformation coefficient array of the current sub-region included in the current block can be obtained by parsing the transform coefficient information of the current sub-region according to at least one of the context of the current sample, the scan order, and the coefficient coding scheme.
- the configurations related to video decoding performed in the video decoding apparatus 1600 of FIG. 16 may be included in the video decoding method 3700 of FIG.
- Fig. 38 shows a block diagram of a video encoding apparatus 3800 for encoding an array of transform coefficients of the current block based on a plurality of regions and a plurality of sub-regions in which the current block is divided.
- the video encoding apparatus 3800 includes an entropy encoding unit 3810 and a bitstream output unit 3820.
- the entropy encoding unit 3810 and the bitstream output unit 3820 are represented by separate constituent units. However, according to the embodiment, the entropy encoding unit 3810 and the bitstream output unit 3820 are combined to form a single configuration May be implemented as a unit.
- the entropy encoding unit 3810 and the bitstream output unit 3820 are represented by a unit located in one apparatus, but the apparatuses responsible for the functions of the entropy encoding unit 3810 and the bitstream output unit 3820 are It is not necessarily physically contiguous. Accordingly, the entropy encoding unit 3810 and the bitstream output unit 3820 may be dispersed according to the embodiment.
- the entropy encoding unit 3810 and the bitstream output unit 3820 may be implemented by one processor according to an embodiment. And may be implemented by a plurality of processors according to an embodiment.
- the entropy encoding unit 3810 divides the current block into a plurality of regions.
- the entropy encoding unit 3810 determines a zone flag for a plurality of zones of the current block according to which zone among the plurality of zones of the current block is included in the last effective transformation coefficient of the current block.
- the entropy encoding unit 3810 divides a region into which the effective transformation coefficient of at least one of the plurality of regions can be included, into a plurality of sub-regions.
- the entropy encoding unit 3810 determines a subarea flag for a plurality of subareas of the current block according to whether or not at least one validation coefficient is included for each of the plurality of subareas.
- the entropy encoding unit 3810 determines a coefficient coding scheme for a subarea that includes at least one of the plurality of subareas, based on the zone flag and the subarea flag.
- the entropy encoding unit 3810 determines the transform coefficient information of the current block from the transform coefficient array of the current block according to the coefficient coding scheme.
- the bit stream output unit 3820 outputs a bit stream including the zone flag, the sub zone flag, and the transform coefficient information of the current block.
- the video coding apparatus 3800 of FIG. 38 can perform a coding function corresponding to the decoding function performed by the video decoding apparatus 1600 of FIG.
- FIG. 39 shows a flowchart of a video encoding method 3900 for encoding a transform coefficient array of a current block based on a plurality of zones and a plurality of sub-zones in which the current block is divided.
- step 3910 the current block is divided into a plurality of zones.
- step 3920 the zone flags for the plurality of zones of the current block are determined according to which of the plurality of zones of the current block the last effective transformation coefficient of the current block is included in.
- step 3930 a zone in which at least one of the plurality of zones may contain the effective conversion coefficient is divided into a plurality of sub-zones.
- a sub-zone flag for a plurality of sub-zones of the current block is determined, depending on whether at least one valid conversion coefficient is included for each of the plurality of sub-zones.
- step 3950 based on the zone flag and the subspace flag, the coefficient coding scheme for the subspace containing the effective transform coefficient of at least one of the plurality of sub zones is determined.
- step 3960 the transform coefficient information of the current block is determined from the transform coefficient array of the current block according to the coefficient coding scheme.
- step 3970 a bitstream including a zone flag, a sub-zone flag, and transform coefficient information of the current block is output.
- the configurations relating to video encoding performed in the video encoding apparatus 3800 of FIG. 38 may be included in the video encoding method 3900 of FIG.
- video data of a spatial region is encoded for each coding unit of a tree structure, and a video decoding technique based on coding units of a tree structure Decoding is performed for each maximum encoding unit according to the motion vector, and the video data in the spatial domain is reconstructed, and the video and the video, which is a picture sequence, can be reconstructed.
- the restored video can be played back by the playback apparatus, stored in a storage medium, or transmitted over a network.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
본 개시는 비디오의 부호화 방법 및 복호화 방법에 대한 것으로, 보다 구체적으로는 효율적으로 변환 계수를 부호화 및 복호화하는 방법에 관한 것이다.BACKGROUND OF THE
높은 화질의 비디오는 부호화시 많은 양의 데이터가 요구된다. 그러나 비디오 데이터를 전달하기 위하여 허용되는 대역폭은 한정되어 있어, 비디오 데이터 전송시 적용되는 데이터 레이트가 제한될 수 있다. 그러므로 효율적인 비디오 데이터의 전송을 위하여, 화질의 열화를 최소화하면서 압축률을 증가시킨 비디오 데이터의 부호화 및 복호화 방법이 필요하다.High quality video requires a large amount of data when encoding. However, the bandwidth allowed for delivering video data is limited, so that the data rate applied when transmitting video data may be limited. Therefore, in order to efficiently transmit video data, a method of encoding and decoding video data with an increased compression ratio while minimizing deterioration of image quality is needed.
비디오 데이터는 픽셀들 간의 공간적 중복성 및 시간적 중복성을 제거함으로써 압축될 수 있다. 인접한 픽셀들 간에 공통된 특징을 가지는 것이 일반적이기 때문에, 인접한 픽셀들 간의 중복성을 제거하기 위하여 픽셀들로 이루어진 데이터 단위로 부호화 정보가 전송된다.Video data can be compressed by eliminating spatial redundancy and temporal redundancy between pixels. Since it is common to have a common feature among adjacent pixels, encoding information is transmitted in units of data consisting of pixels in order to eliminate redundancy between adjacent pixels.
데이터 단위에 포함된 픽셀들의 픽셀 값은 직접 전송되지 않고, 픽셀 값을 획득하기 위해 필요한 방법이 전송된다. 픽셀 값을 원본 값과 유사하게 예측하는 예측 방법이 데이터 단위마다 결정되며, 예측 방법에 대한 부호화 정보가 부호화기에서 복호화기로 전송된다. 또한 예측 값이 원본 값과 완전히 동일하지 않으므로, 원본 값과 예측 값의 차이에 대한 레지듀얼 데이터가 부호화기에서 복호화기로 전송된다.The pixel values of the pixels included in the data unit are not transmitted directly, but the necessary method to obtain the pixel value is transmitted. A prediction method for predicting the pixel value similar to the original value is determined for each data unit and the encoding information for the prediction method is transmitted from the encoder to the decoder. Also, since the predicted value is not exactly the same as the original value, the residual data of the difference between the original value and the predicted value is transmitted to the decoder in the encoder.
예측이 정확해질수록 예측 방법을 특정하는데 필요한 부호화 정보가 증가되지만, 레지듀얼 데이터의 크기가 감소하게 된다. 따라서 부호화 정보와 레지듀얼 데이터의 크기를 고려하여 예측 방법이 결정된다. 특히, 픽처에서 분할된 데이터 단위는 다양한 크기를 가지는데, 데이터 단위의 크기가 클수록 예측의 정확도가 감소할 가능성이 높은 대신, 부호화 정보가 감소하게 된다. 따라서 픽처의 특성에 맞게 블록의 크기가 결정된다.As the prediction becomes more accurate, the coding information required to specify the prediction method increases, but the size of the residual data decreases. Therefore, the prediction method is determined in consideration of the size of the encoding information and the residual data. In particular, data units divided in pictures have various sizes. The larger the size of a data unit, the more likely the prediction accuracy decreases, and the coding information decreases. Therefore, the size of the block is determined according to the characteristics of the picture.
또한 예측 방법에는 인트라 예측과 인터 예측이 있다. 인트라 예측은 블록의 주변 픽셀들로부터 블록의 픽셀들을 예측하는 방법이다. 인터 예측은 블록이 포함된 픽처가 참조하는 다른 픽처의 픽셀을 참조하여 픽셀들을 예측하는 방법이다. 따라서 인트라 예측에 의하여 공간적 중복성이 제거되고, 인터 예측에 의하여 시간적 중복성이 제거된다.The prediction methods include intra prediction and inter prediction. Intra prediction is a method of predicting pixels of a block from surrounding pixels of the block. Inter prediction is a method of predicting pixels with reference to pixels of another picture referenced by a picture including a block. Therefore, spatial redundancy is removed by intra prediction, and temporal redundancy is eliminated by inter prediction.
예측 방법의 수가 증가할수록 예측 방법을 나타내기 위한 부호화 정보의 양은 증가한다. 따라서 블록에 적용되는 부호화 정보 역시 다른 블록으로부터 예측하여 부호화 정보의 크기를 줄일 수 있다.As the number of prediction methods increases, the amount of coding information to represent the prediction method increases. Therefore, the encoding information applied to the block can also be predicted from other blocks, thereby reducing the size of the encoded information.
인간의 시각이 인지하지 못하는 한도에서 비디오 데이터의 손실이 허용되는 바, 레지듀얼 데이터를 변환 및 양자화 과정에 따라 손실 압축(lossy compression)하여 레지듀얼 데이터의 양을 감소시킬 수 있다. Since the loss of video data is allowed to the extent that the human vision can not recognize, the amount of residual data can be reduced by lossy compression of the residual data according to the transformation and quantization process.
현재 블록을 하나 이상의 구역으로 분할하고, 상기 구역을 하나 이상의 서브 구역으로 분할함으로써 변환 계수를 부호화하는 비디오 부호화 방법 및 비디오 부호화 장치가 개시된다. 또한 현재 블록을 하나 이상의 구역으로 분할하고, 상기 구역을 하나 이상의 서브 구역으로 분할함으로써 변환 계수를 복호화하는 비디오 복호화 방법 및 비디오 복호화 장치가 개시된다. 더불어 본 개시의 일 실시 예에 따른 비디오 부호화 방법 및 비디오 복호화 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 개시된다.A video encoding method and a video encoding apparatus for encoding a transform coefficient by dividing a current block into one or more regions and dividing the region into one or more sub-regions. Also disclosed are a video decoding method and a video decoding apparatus for decoding a transform coefficient by dividing a current block into one or more regions and dividing the region into one or more sub-regions. In addition, a computer-readable recording medium on which a program for causing a computer to execute a video encoding method and a video decoding method according to an embodiment of the present disclosure is disclosed.
현재 블록의 구역 플래그, 서브 구역 플래그 및 변환 계수 정보를 포함하는 비트스트림을 수신하는 단계, 상기 현재 블록을 복수의 구역(zone)으로 분할하는 단계, 상기 현재 블록의 복수의 구역에 대한 구역 플래그에 따라, 상기 현재 블록의 마지막 유효 변환 계수가 상기 복수의 구역 중 어떤 구역에 포함되어 있는지 결정하는 단계, 상기 복수의 구역 중 적어도 하나의 유효 변환 계수가 포함될 수 있는 구역을 복수의 서브 구역(sub zone)으로 분할하는 단계, 상기 현재 블록의 복수의 서브 구역에 대한 서브 구역 플래그에 따라, 상기 복수의 서브 구역 각각에 대하여 적어도 하나의 유효 변환 계수가 포함되는지 결정하는 단계, 상기 구역 플래그 및 상기 서브 구역 플래그에 기초하여, 상기 복수의 서브 구역 중 적어도 하나의 유효 변환 계수를 포함하는 서브 구역에 대한 계수 코딩 방식(coefficient coding scheme)을 결정하는 단계 및 상기 계수 코딩 방식에 따라 상기 현재 블록의 변환 계수 정보를 파싱함으로써, 상기 현재 블록의 변환 계수 배열을 획득하는 단계를 포함하는 비디오 복호화 방법이 제공된다.Comprising the steps of: receiving a bitstream including a zone flag of a current block, a sub-zone flag, and transform coefficient information; dividing the current block into a plurality of zones; Determining which of the plurality of zones includes the last effective transform coefficient of the current block, determining a zone in which at least one effective transform coefficient of the plurality of zones may be included in a plurality of sub zones ), Determining, according to a sub-zone flag for a plurality of sub-zones of the current block, that at least one valid conversion coefficient is included for each of the plurality of sub-zones, Based on the at least one of the plurality of sub-zones, Determining a coefficient coding scheme for the current block, and acquiring a transform coefficient array of the current block by parsing the transform coefficient information of the current block according to the coefficient coding scheme, Method is provided.
현재 블록의 구역 플래그, 서브 구역 플래그 및 변환 계수 정보를 포함하는 비트스트림을 수신하고, 상기 현재 블록을 복수의 구역으로 분할하고, 상기 현재 블록의 복수의 구역에 대한 구역 플래그에 따라, 상기 현재 블록의 마지막 유효 변환 계수가 상기 복수의 구역 중 어떤 구역에 포함되어 있는지 결정하고, 상기 복수의 구역 중 적어도 하나의 유효 변환 계수가 포함될 수 있는 구역을 복수의 서브 구역으로 분할하고, 상기 현재 블록의 복수의 서브 구역에 대한 서브 구역 플래그에 따라, 상기 복수의 서브 구역 각각에 대하여 적어도 하나의 유효 변환 계수가 포함되는지 결정하고, 상기 구역 플래그 및 상기 서브 구역 플래그에 기초하여, 상기 복수의 서브 구역 중 적어도 하나의 유효 변환 계수를 포함하는 서브 구역에 대한 계수 코딩 방식을 결정하고, 상기 계수 코딩 방식에 따라 상기 현재 블록의 변환 계수 정보를 파싱함으로써, 상기 현재 블록의 변환 계수 배열을 획득하는 프로세서를 포함하는 비디오 복호화 장치가 제공된다.The method comprising the steps of: receiving a bitstream including a zone flag of a current block, a subspace flag, and transform coefficient information, dividing the current block into a plurality of zones, and, in accordance with zone flags for a plurality of zones of the current block, Determining a zone in which the last effective conversion coefficient of the current block is included in the plurality of zones, dividing a zone into which the effective conversion coefficient of at least one of the plurality of zones may be included into a plurality of subareas, Determining, based on the sub-zone flag for the sub-zone of the plurality of sub-zones, at least one valid conversion coefficient for each of the plurality of sub-zones, and based on the zone flag and the sub- Determine the coefficient coding scheme for the subareas containing one effective transform coefficient And a processor for obtaining transform coefficient arrays of the current block by parsing transform coefficient information of the current block according to the coefficient coding scheme.
현재 블록을 복수의 구역으로 분할하는 단계, 상기 현재 블록의 마지막 유효 변환 계수가 상기 현재 블록의 복수의 구역 중 어떤 구역에 포함되어 있는지 여부에 따라 상기 현재 블록의 복수의 구역에 대한 구역 플래그를 결정하는 단계, 상기 복수의 구역 중 적어도 하나의 유효 변환 계수가 포함될 수 있는 구역을 복수의 서브 구역으로 분할하는 단계, 상기 복수의 서브 구역 각각에 대하여 적어도 하나의 유효 변환 계수가 포함되는지 여부에 따라, 상기 현재 블록의 복수의 서브 구역에 대한 서브 구역 플래그를 결정하는 단계, 상기 구역 플래그 및 상기 서브 구역 플래그에 기초하여, 상기 복수의 서브 구역 중 적어도 하나의 유효 변환 계수를 포함하는 서브 구역에 대한 계수 코딩 방식을 결정하는 단계, 상기 계수 코딩 방식에 따라 상기 현재 블록의 변환 계수 배열로부터 상기 현재 블록의 변환 계수 정보를 결정하는 단계 및 상기 현재 블록의 상기 구역 플래그, 상기 서브 구역 플래그 및 상기 변환 계수 정보를 포함하는 비트스트림을 출력하는 단계를 포함하는 비디오 부호화 방법이 제공된다.Determining a zone flag for a plurality of zones of the current block according to whether or not the last valid coefficient of the current block is included in a zone among the plurality of zones of the current block; Dividing a region into which the effective transform coefficients of at least one of the plurality of regions may be included into a plurality of sub-regions, determining whether at least one effective transform coefficient is included in each of the plurality of sub- Determining a sub-zone flag for a plurality of sub-zones of the current block, determining, based on the zone flag and the sub-zone flag, a coefficient for a sub-zone comprising at least one effective transform coefficient of the plurality of sub- Determining a coding scheme, determining a coding scheme of the current block according to the coefficient coding scheme, Determining a transform coefficient information of the current block from a transform coefficient array, and outputting a bit stream including the zone flag, the sub zone flag, and the transform coefficient information of the current block do.
현재 블록을 복수의 구역으로 분할하고, 상기 현재 블록의 마지막 유효 변환 계수가 상기 현재 블록의 복수의 구역 중 어떤 구역에 포함되어 있는지 여부에 따라 상기 현재 블록의 복수의 구역에 대한 구역 플래그를 결정하고, 상기 복수의 구역 중 적어도 하나의 유효 변환 계수가 포함될 수 있는 구역을 복수의 서브 구역으로 분할하고, 상기 복수의 서브 구역 각각에 대하여 적어도 하나의 유효 변환 계수가 포함되는지 여부에 따라, 상기 현재 블록의 복수의 서브 구역에 대한 서브 구역 플래그를 결정하고, 상기 구역 플래그 및 상기 서브 구역 플래그에 기초하여, 상기 복수의 서브 구역 중 적어도 하나의 유효 변환 계수를 포함하는 서브 구역에 대한 계수 코딩 방식을 결정하고, 상기 계수 코딩 방식에 따라 상기 현재 블록의 변환 계수 배열로부터 상기 현재 블록의 변환 계수 정보를 결정하고, 상기 현재 블록의 상기 구역 플래그, 상기 서브 구역 플래그 및 상기 변환 계수 정보를 포함하는 비트스트림을 출력하는 프로세서를 포함하는 비디오 부호화 장치가 제공된다..Determining a zone flag for a plurality of zones of the current block according to whether one of a plurality of zones of the current block includes the last valid conversion coefficient of the current block, , Dividing a region into which at least one effective transform coefficient of the plurality of regions may be included into a plurality of sub-regions, and determining whether or not at least one effective transform coefficient is included in each of the plurality of sub- Determining a sub-zone flag for a plurality of sub-zones of the plurality of sub-zones based on the zone flag and the sub-zone flag, and determining a coefficient coding scheme for the sub- And transforming the transform coefficient array of the current block into a transform coefficient array according to the coefficient coding scheme, Determining a transform coefficient information of a current block, the video encoding apparatus including the current block of the flag area, the sub-area flag, and a processor for outputting a bit stream including the transform coefficient information is provided.
상기 비디오 부호화 방법 및 비디오 복호화 방법을 수행하는 프로그램이 기록된 컴퓨터로 기록가능한 기록매체가 제공된다.There is provided a computer-readable recording medium on which a program for performing the video coding method and the video decoding method is recorded.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.The technical problem to be solved by this embodiment is not limited to the above-mentioned technical problems, and other technical problems can be deduced from the following embodiments.
현재 블록의 변환 계수를 다양한 방법에 따라 부호화 및 복호화함으로써 비디오 부호화 및 복호화 효율이 증가한다.The encoding and decoding efficiency of video coding and decoding is increased by encoding and decoding the transform coefficients of the current block according to various methods.
도 1a은 본 개시의 일 실시예에 따라 트리 구조에 따른 부호화 단위에 기초한 영상 부호화 장치의 블록도를 도시한다.FIG. 1A shows a block diagram of an image encoding apparatus based on an encoding unit according to a tree structure according to an embodiment of the present disclosure.
도 1b는 일 실시예에 따라 트리 구조에 따른 부호화 단위에 기초한 영상 복호화 방법의 블록도를 도시한다.FIG. 1B shows a block diagram of a video decoding method based on a coding unit according to a tree structure according to an embodiment.
도 2는 일 실시예에 따라 영상 복호화 장치가 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.FIG. 2 illustrates a process in which an image decoding apparatus determines at least one encoding unit by dividing a current encoding unit according to an embodiment.
도 3은 일 실시예에 따라 영상 복호화 장치가 비-정사각형의 형태인 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.FIG. 3 illustrates a process in which an image decoding apparatus determines at least one encoding unit by dividing a non-square encoding unit according to an embodiment.
도 4는 일 실시예에 따라 영상 복호화 장치가 분할 형태 모드 정보 중 적어도 하나에 기초하여 부호화 단위를 분할하는 과정을 도시한다.FIG. 4 illustrates a process in which an image decoding apparatus divides an encoding unit based on at least one of division type mode information according to an embodiment.
도 5는 일 실시예에 따라 영상 복호화 장치가 홀수개의 부호화 단위들 중 소정의 부호화 단위를 결정하기 위한 방법을 도시한다.FIG. 5 illustrates a method for an image decoding apparatus to determine a predetermined encoding unit among an odd number of encoding units according to an embodiment.
도 6은 일 실시예에 따라 영상 복호화 장치가 현재 부호화 단위를 분할하여 복수개의 부호화 단위들을 결정하는 경우, 복수개의 부호화 단위들이 처리되는 순서를 도시한다.FIG. 6 illustrates a sequence in which a plurality of encoding units are processed when an image decoding apparatus determines a plurality of encoding units by dividing a current encoding unit according to an exemplary embodiment.
도 7은 일 실시예에 따라 영상 복호화 장치가 소정의 순서로 부호화 단위가 처리될 수 없는 경우, 현재 부호화 단위가 홀수개의 부호화 단위로 분할되는 것임을 결정하는 과정을 도시한다.FIG. 7 illustrates a process for determining that the current encoding unit is divided into odd number of encoding units when the image decoding apparatus can not process the encoding units in a predetermined order according to an exemplary embodiment.
도 8은 일 실시예에 따라 영상 복호화 장치가 제1 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.FIG. 8 illustrates a process in which an image decoding apparatus determines at least one encoding unit by dividing a first encoding unit according to an embodiment.
도 9는 일 실시예에 따라 영상 복호화 장치가 제1 부호화 단위가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위가 소정의 조건을 만족하는 경우 제2 부호화 단위가 분할될 수 있는 형태가 제한되는 것을 도시한다.9 is a diagram illustrating a case where the second encoding unit is limited in the case where the second encoding unit of the non-square type determined by dividing the first encoding unit satisfies a predetermined condition according to an embodiment of the present invention Lt; / RTI >
도 10은 일 실시예에 따라 분할 형태 모드 정보가 4개의 정사각형 형태의 부호화 단위로 분할하는 것을 나타낼 수 없는 경우, 영상 복호화 장치가 정사각형 형태의 부호화 단위를 분할하는 과정을 도시한다.FIG. 10 illustrates a process in which an image decoding apparatus divides a square-shaped encoding unit when the division mode mode information can not be divided into four square-shaped encoding units according to an embodiment.
도 11은 일 실시예에 따라 복수개의 부호화 단위들 간의 처리 순서가 부호화 단위의 분할 과정에 따라 달라질 수 있음을 도시한 것이다.FIG. 11 illustrates that the processing order among a plurality of coding units may be changed according to a division process of coding units according to an embodiment.
도 12는 일 실시예에 따라 부호화 단위가 재귀적으로 분할되어 복수개의 부호화 단위가 결정되는 경우, 부호화 단위의 형태 및 크기가 변함에 따라 부호화 단위의 심도가 결정되는 과정을 도시한다.FIG. 12 illustrates a process of determining the depth of an encoding unit according to a change in type and size of an encoding unit when a plurality of encoding units are determined by recursively dividing an encoding unit according to an exemplary embodiment.
도 13은 일 실시예에 따라 부호화 단위들의 형태 및 크기에 따라 결정될 수 있는 심도 및 부호화 단위 구분을 위한 인덱스(part index, 이하 PID)를 도시한다.FIG. 13 illustrates a depth index (hereinafter referred to as PID) for coding unit classification and depth that can be determined according to the type and size of coding units according to an exemplary embodiment.
도 14는 일 실시예에 따라 픽쳐에 포함되는 복수개의 소정의 데이터 단위에 따라 복수개의 부호화 단위들이 결정된 것을 도시한다.FIG. 14 shows that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to an embodiment.
도 15는 일 실시예에 따라 픽쳐에 포함되는 기준 부호화 단위의 결정 순서를 결정하는 기준이 되는 프로세싱 블록을 도시한다.FIG. 15 illustrates a processing block serving as a reference for determining a determination order of a reference encoding unit included in a picture according to an embodiment.
도 16은 현재 블록이 분할된 복수의 구역 및 복수의 서브 구역에 기초하여 현재 블록의 변환 계수 배열을 획득하는 비디오 복호화 장치의 블록도를 도시한다.16 shows a block diagram of a video decoding apparatus for obtaining a transform coefficient array of a current block based on a plurality of regions and a plurality of sub regions in which a current block is divided.
도 17 는 크기가 NХN인 정사각형의 현재 블록을 복수의 구역 및 서브 구역으로 분할하고, 현재 블록의 변환 계수 정보를 파싱하는 제1 실시 예를 개시한다.Fig. 17 shows a first embodiment for dividing a square current block having a size of N 占 N N into a plurality of zones and sub-zones, and parsing the transform coefficient information of the current block.
도 18은 크기가 NХN인 정사각형의 현재 블록을 복수의 구역 및 서브 구역으로 분할하고, 현재 블록의 변환 계수 정보를 파싱하는 제2 실시 예를 개시한다.Fig. 18 shows a second embodiment for dividing a square current block having a size of N 占 N N into a plurality of zones and sub-zones, and parsing the transform coefficient information of the current block.
도 19는 크기가 NХN인 정사각형의 현재 블록을 복수의 구역 및 서브 구역으로 분할하고, 현재 블록의 변환 계수 정보를 파싱하는 제3 실시 예를 개시한다.19 shows a third embodiment of dividing a square current block having a size of N 占 N N into a plurality of zones and sub-zones, and parsing the transform coefficient information of the current block.
도 20 은 크기가 MХN인 직사각형의 현재 블록을 복수의 구역 및 서브 구역으로 분할하고, 현재 블록의 변환 계수 정보를 파싱하는 제4 실시 예를 개시한다.Fig. 20 shows a fourth embodiment for dividing a rectangular current block having a size of M 占 N into a plurality of zones and sub-zones, and parsing the transform coefficient information of the current block.
도 21은 크기가 MХN인 직사각형의 현재 블록을 복수의 구역 및 서브 구역으로 분할하고, 현재 블록의 변환 계수 정보를 파싱하는 제5 실시 예를 개시한다.Fig. 21 shows a fifth embodiment for dividing a rectangular current block having a size of M 占 N into a plurality of zones and sub-zones, and parsing the transform coefficient information of the current block.
도 22는 도 20의 제4 실시 예의 분할 방법에 따라 Mx8 크기의 현재 블록을 분할하는 방법이 설명된다.FIG. 22 illustrates a method of dividing a current block of Mx8 size according to the dividing method of the fourth embodiment of FIG.
도 23은 도 20의 제4 실시 예의 분할 방법에 따라 Mx4 크기의 현재 블록을 분할하는 방법이 설명된다.FIG. 23 illustrates a method of dividing a current block of Mx4 size according to the dividing method of the fourth embodiment of FIG.
도 24는 도 20의 제4 실시 예의 분할 방법에 따라 Mx2 크기의 현재 블록을 분할하는 방법이 설명된다.FIG. 24 illustrates a method of dividing a current block of Mx2 size according to the dividing method of the fourth embodiment of FIG.
도 25는 본 발명의 일 실시 예에 따른 마지막 위치 기반 계수 코딩 방식에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.25 is a flowchart illustrating a process of entropy decoding based on a last location-based coefficient coding scheme according to an embodiment of the present invention.
도 26은 본 발명의 일 실시 예에 따른 전체 위치 기반 계수 코딩 방식에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.FIG. 26 is a flowchart illustrating a process of entropy decoding based on an entire location-based coefficient coding scheme according to an embodiment of the present invention.
도 27은 본 발명의 일 실시 예에 따른 스캔 영역 기반 계수 코딩 방식에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.FIG. 27 is a flowchart illustrating a process of entropy decoding based on a scan area-based coefficient coding scheme according to an embodiment of the present invention.
도 28은 본 발명의 일 실시 예에 따른 유효 그룹 기반 계수 코딩 방식에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.28 is a flowchart illustrating an entropy decoding process based on an effective group-based coefficient coding scheme according to an embodiment of the present invention.
도 29는 본 발명의 일 실시 예에 따른 마지막 위치 및 유효 그룹 기반 계수 코딩 방식에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.FIG. 29 is a flowchart illustrating a process of entropy decoding based on a last position and an effective group-based coefficient coding scheme according to an embodiment of the present invention.
도 30은 본 발명의 일 실시 예에 따른 유효 그룹 및 마지막 위치 기반 계수 코딩 방식에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.30 is a flowchart illustrating a process of entropy decoding based on effective group and last position-based coefficient coding schemes according to an embodiment of the present invention.
도 31은 본 발명의 일 실시 예에 따른 유효 그룹 및 lastRun 기반 계수 코딩 방식에 기초한 엔트로피 복호화하는 과정을 설명하는 도면이다.31 is a view for explaining a process of entropy decoding based on a valid group and a lastRun-based coefficient coding scheme according to an embodiment of the present invention.
도 32는 본 발명의 일 실시 예에 따른 제1 런-레벨 기반 계수 코딩 방식에 기초한 엔트로피 복호화하는 과정을 설명하는 도면이다.32 is a view for explaining a process of entropy decoding based on a first run-level-based coefficient coding scheme according to an embodiment of the present invention.
도 33은 본 발명의 일 실시 예에 따른 제2 런-레벨 기반 계수 코딩 방식에 기초한 엔트로피 복호화하는 과정을 설명하는 도면이다.33 is a view for explaining a process of entropy decoding based on a second run-level-based coefficient coding scheme according to an embodiment of the present invention.
도 34 는 일 실시 예에 따라 직사각형의 형태의 스캔 영역을 결정하는 방법이 도시되어 있다.FIG. 34 shows a method of determining a scan area in the form of a rectangle according to an embodiment.
도 35 는 일 실시 예에 따라 정사각형의 형태의 스캔 영역을 결정하는 방법이 도시되어 있다.FIG. 35 shows a method of determining a scan area in the form of a square according to an embodiment.
도 36은 9개의 서브 구역으로 분할된 현재 블록을 도시한다.Figure 36 shows the current block divided into nine sub-zones.
도 37은 현재 블록이 분할된 복수의 구역 및 복수의 서브 구역에 기초하여 현재 블록의 변환 계수 배열을 획득하는 비디오 복호화 방법의 흐름도를 도시한다.FIG. 37 shows a flowchart of a video decoding method for obtaining a transform coefficient array of a current block based on a plurality of zones and a plurality of sub zones in which a current block is divided.
도 38은 현재 블록이 분할된 복수의 구역 및 복수의 서브 구역에 기초하여 현재 블록의 변환 계수 배열을 부호화하는 비디오 부호화 장치의 블록도를 도시한다.FIG. 38 shows a block diagram of a video encoding apparatus for encoding an array of transform coefficients of a current block based on a plurality of regions and a plurality of sub regions in which the current block is divided.
도 39는 현재 블록이 분할된 복수의 구역 및 복수의 서브 구역에 기초하여 현재 블록의 변환 계수 배열을 부호화하는 비디오 부호화 방법의 흐름도를 도시한다.FIG. 39 shows a flowchart of a video coding method for coding a transform coefficient array of a current block based on a plurality of zones and a plurality of sub zones in which the current block is divided.
현재 블록의 구역 플래그, 서브 구역 플래그 및 변환 계수 정보를 포함하는 비트스트림을 수신하는 단계, 상기 현재 블록을 복수의 구역(zone)으로 분할하는 단계, 상기 현재 블록의 복수의 구역에 대한 구역 플래그에 따라, 상기 현재 블록의 마지막 유효 변환 계수가 상기 복수의 구역 중 어떤 구역에 포함되어 있는지 결정하는 단계, 상기 복수의 구역 중 적어도 하나의 유효 변환 계수가 포함될 수 있는 구역을 복수의 서브 구역(sub zone)으로 분할하는 단계, 상기 현재 블록의 복수의 서브 구역에 대한 서브 구역 플래그에 따라, 상기 복수의 서브 구역 각각에 대하여 적어도 하나의 유효 변환 계수가 포함되는지 결정하는 단계, 상기 구역 플래그 및 상기 서브 구역 플래그에 기초하여, 상기 복수의 서브 구역 중 적어도 하나의 유효 변환 계수를 포함하는 서브 구역에 대한 계수 코딩 방식(coefficient coding scheme)을 결정하는 단계 및 상기 계수 코딩 방식에 따라 상기 현재 블록의 변환 계수 정보를 파싱함으로써, 상기 현재 블록의 변환 계수 배열을 획득하는 단계를 포함하는 비디오 복호화 방법이 제공된다.Comprising the steps of: receiving a bitstream including a zone flag of a current block, a sub-zone flag, and transform coefficient information; dividing the current block into a plurality of zones; Determining which of the plurality of zones includes the last effective transform coefficient of the current block, determining a zone in which at least one effective transform coefficient of the plurality of zones may be included in a plurality of sub zones ), Determining, according to a sub-zone flag for a plurality of sub-zones of the current block, that at least one valid conversion coefficient is included for each of the plurality of sub-zones, Based on the at least one of the plurality of sub-zones, Determining a coefficient coding scheme for the current block, and acquiring a transform coefficient array of the current block by parsing the transform coefficient information of the current block according to the coefficient coding scheme, Method is provided.
개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시의 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the disclosed embodiments, and how to accomplish them, will become apparent with reference to the embodiments described below with reference to the accompanying drawings. It should be understood, however, that the present disclosure is not limited to the embodiments disclosed herein but may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein, But only to give the person who possessed the invention the full scope of the invention.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. The terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail.
본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. As used herein, terms used in the present specification are taken to be those of ordinary skill in the art and are not intended to limit the scope of the present invention. Also, in certain cases, there may be a term selected arbitrarily by the applicant, in which case the meaning thereof will be described in detail in the description of the corresponding invention. Accordingly, the terms used in this disclosure should be defined based on the meaning of the term rather than on the name of the term, and throughout the present disclosure.
본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다.The singular expressions herein include plural referents unless the context clearly dictates otherwise.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.When an element is referred to as " including " an element throughout the specification, it is to be understood that the element may include other elements as well, without departing from the spirit or scope of the present invention. Also, as used herein, the term " part " refers to a hardware component such as software, FPGA or ASIC, and " part " However, " part " is not meant to be limited to software or hardware. &Quot; Part " may be configured to reside on an addressable storage medium and may be configured to play back one or more processors. Thus, by way of example, and not limitation, " part (s) " refers to components such as software components, object oriented software components, class components and task components, and processes, Subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functions provided in the components and " parts " may be combined into a smaller number of components and " parts " or further separated into additional components and " parts ".
"현재 블록"은 현재 부호화 또는 복호화되는 부호화 단위, 예측 단위 및 변환 단위 중 하나를 의미한다. 만약, 설명의 편의를 위하여, 예측 단위, 변환 단위 등 기타 종류의 블록을 구분할 필요가 있을 때는 "현재 부호화 블록", "현재 예측 블록", "현재 변환 블록"이 사용될 수 있다. 또한 "하위 블록"은 "현재 블록"으로부터 분할된 데이터 단위를 의미한다. 그리고 "상위 블록"은 "현재 블록"을 포함하는 데이터 단위를 의미한다.The " current block " means one of a coding unit, a prediction unit and a conversion unit which are currently encoded or decoded. For convenience of explanation, when it is necessary to distinguish other types of blocks such as a prediction unit, a conversion unit, a "current encoding block", a "current prediction block", and a "current conversion block" may be used. "Sub-block" means a data unit divided from "current block". And " upper block " means a data unit including " current block ".
이하 "샘플"은, 영상의 샘플링 위치에 할당된 데이터로서 프로세싱 대상이 되는 데이터를 의미한다. 예를 들어, 공간영역의 영상에서 픽셀값, 변환 영역 상의 변환 계수들이 샘플들일 수 있다. 이러한 적어도 하나의 샘플들을 포함하는 단위를 블록이라고 정의할 수 있다.Hereinafter, " sample " means data to be processed as data assigned to a sampling position of an image. For example, pixel values in the image of the spatial domain, and transform coefficients on the transform domain may be samples. A unit including at least one of these samples may be defined as a block.
아래에서는 첨부한 도면을 참고하여 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. In order to clearly explain the present disclosure in the drawings, portions not related to the description will be omitted.
이하 도 1a 및 도 1b를 참조하여 본 개시의 일 실시예에 따라 컨텍스트 모델을 다양한 형태의 부호화 단위에 기초하여 적응적으로 선택하기 위한 방법 및 장치가 상술된다.A method and apparatus for adaptively selecting a context model based on various types of encoding units in accordance with one embodiment of the present disclosure will be described below with reference to FIGS. 1A and 1B.
도 1a은 일 실시예에 따라 영상 복호화 장치(100)의 개략적인 블록도를 도시한다.FIG. 1A shows a schematic block diagram of an
영상 복호화 장치(100)는 수신부(110) 및 복호화부(120)를 포함할 수 있다. 수신부(110) 및 복호화부(120)는 적어도 하나의 프로세서를 포함할 수 있다. 또한 수신부(110) 및 복호화부(120)는 적어도 하나의 프로세서가 수행할 명령어들을 저장하는 메모리를 포함할 수 있다. The
수신부(110)는 비트스트림을 수신할 수 있다. 비트스트림은 후술되는 영상 부호화 장치(3800)가 영상을 부호화한 정보를 포함한다. 또한 비트스트림은 영상 부호화 장치(3800)로부터 송신될 수 있다. 영상 부호화 장치(3800) 및 영상 복호화 장치(100)는 유선 또는 무선으로 연결될 수 있으며, 수신부(110)는 유선 또는 무선을 통하여 비트스트림을 수신할 수 있다. 수신부(110)는 광학미디어, 하드디스크 등과 같은 저장매체로부터 비트스트림을 수신할 수 있다. 복호화부(120)는 수신된 비트스트림으로부터 획득된 정보에 기초하여 영상을 복원할 수 있다. 복호화부(120)는 영상을 복원하기 위한 신택스 엘리먼트를 비트스트림으로부터 획득할 수 있다. 복호화부(120)는 신택스 엘리먼트에 기초하여 영상을 복원할 수 있다.The receiving
영상 복호화 장치(100)의 동작에 대해서는 도 1b와 함께 보다 자세히 설명한다.The operation of the
도 1b는 일 실시예에 따라 영상 복호화 방법의 흐름도를 도시한다.FIG. 1B shows a flow diagram of a video decoding method according to one embodiment.
본 개시의 일 실시예에 따르면 수신부(110)는 비트스트림을 수신한다. According to one embodiment of the present disclosure, the receiving
영상 복호화 장치(100)는 비트스트림으로부터 부호화 단위의 분할 형태 모드에 대응하는 빈스트링을 획득하는 단계(150)를 수행한다. 영상 복호화 장치(100)는 부호화 단위의 분할 규칙을 결정하는 단계(160)를 수행한다. 또한 영상 복호화 장치(100)는 분할 형태 모드에 대응하는 빈스트링 및 상기 분할 규칙 중 적어도 하나에 기초하여, 부호화 단위를 복수의 부호화 단위들로 분할하는 단계(170)를 수행한다. 영상 복호화 장치(100)는 분할 규칙을 결정하기 위하여, 부호화 단위의 너비 및 높이의 비율에 따른, 상기 부호화 단위의 크기의 허용가능한 제 1 범위를 결정할 수 있다. 영상 복호화 장치(100)는 분할 규칙을 결정하기 위하여, 부호화 단위의 분할 형태 모드에 따른, 부호화 단위의 크기의 허용가능한 제 2 범위를 결정할 수 있다.The
이하에서는 본 개시의 일 실시예에 따라 부호화 단위의 분할에 대하여 자세히 설명한다. Hereinafter, the division of encoding units will be described in detail according to an embodiment of the present disclosure.
먼저 하나의 픽처 (Picture)는 하나 이상의 슬라이스로 분할될 수 있다. 하나의 슬라이스는 하나 이상의 최대 부호화 단위(Coding Tree Unit; CTU)의 시퀀스일 수 있다. 최대 부호화 단위 (CTU)와 대비되는 개념으로 최대 부호화 블록 (Coding Tree Block; CTB)이 있다. First, one picture may be divided into one or more slices. One slice may be a sequence of one or more Coding Tree Units (CTUs). There is a maximum coding block (CTB) as a concept to be compared with the maximum coding unit (CTU).
최대 부호화 블록(CTB)은 NxN개의 샘플들을 포함하는 NxN 블록을 의미한다(N은 정수). 각 컬러 성분은 하나 이상의 최대 부호화 블록으로 분할될 수 있다. The maximum coding block (CTB) means an NxN block including NxN samples (N is an integer). Each color component may be divided into one or more maximum encoding blocks.
픽처가 3개의 샘플 어레이(Y, Cr, Cb 성분별 샘플 어레이)를 가지는 경우에 최대 부호화 단위(CTU)란, 루마 샘플의 최대 부호화 블록 및 그에 대응되는 크로마 샘플들의 2개의 최대 부호화 블록과, 루마 샘플, 크로마 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 모노크롬 픽처인 경우에 최대 부호화 단위란, 모노크롬 샘플의 최대 부호화 블록과 모노크롬 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 컬러 성분별로 분리되는 컬러 플레인으로 부호화되는 픽처인 경우에 최대 부호화 단위란, 해당 픽처와 픽처의 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다.When a picture has three sample arrays (sample arrays for Y, Cr, and Cb components), the maximum encoding unit (CTU) is the maximum encoding block of the luma sample and the two maximum encoding blocks of the chroma samples corresponding thereto, Samples, and chroma samples. When the picture is a monochrome picture, the maximum encoding unit is a unit including syntax structures used for encoding the maximum encoded block and monochrome samples of the monochrome sample. When a picture is a picture encoded with a color plane separated by color components, the maximum encoding unit is a unit including syntax structures used for encoding the pictures and the samples of the picture.
하나의 최대 부호화 블록(CTB)은 MxN개의 샘플들을 포함하는 MxN 부호화 블록(coding block)으로 분할될 수 있다 (M, N은 정수). One maximum coding block (CTB) may be divided into MxN coding blocks (M, N is an integer) including MxN samples.
픽처가 Y, Cr, Cb 성분별 샘플 어레이를 가지는 경우에 부호화 단위(Coding Unit; CU)란, 루마 샘플의 부호화 블록 및 그에 대응되는 크로마 샘플들의 2개의 부호화 블록과, 루마 샘플, 크로마 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 모노크롬 픽처인 경우에 부호화 단위란, 모노크롬 샘플의 부호화 블록과 모노크롬 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 컬러 성분별로 분리되는 컬러 플레인으로 부호화되는 픽처인 경우에 부호화 단위란, 해당 픽처와 픽처의 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다.When a picture has a sample array of Y, Cr, and Cb components, a coding unit (CU) is a coding unit that encodes two coding blocks of a luma sample coding block and corresponding chroma samples and luma samples and chroma samples Is a unit that includes syntax structures used for decoding. When the picture is a monochrome picture, the encoding unit is a unit including syntax blocks used for encoding the mono chrome samples and the encoded block of the monochrome sample. In the case where a picture is a picture encoded with a color plane separated by color components, an encoding unit is a unit including syntax structures used for encoding the pictures and the samples of the picture.
위에서 설명한 바와 같이, 최대 부호화 블록과 최대 부호화 단위는 서로 구별되는 개념이며, 부호화 블록과 부호화 단위는 서로 구별되는 개념이다. 즉, (최대) 부호화 단위는 해당 샘플을 포함하는 (최대) 부호화 블록과 그에 대응하는 신택스 구조를 포함하는 데이터 구조를 의미한다. 하지만 당업자가 (최대) 부호화 단위 또는 (최대) 부호화 블록가 소정 개수의 샘플들을 포함하는 소정 크기의 블록을 지칭한다는 것을 이해할 수 있으므로, 이하 명세서에서는 최대 부호화 블록과 최대 부호화 단위, 또는 부호화 블록과 부호화 단위를 특별한 사정이 없는 한 구별하지 않고 언급한다.As described above, the maximum encoding block and the maximum encoding unit are concepts that are distinguished from each other, and the encoding block and the encoding unit are conceptually distinguished from each other. That is, the (maximum) coding unit means a data structure including a (maximum) coding block including a corresponding sample and a corresponding syntax structure. However, it will be understood by those skilled in the art that a (maximum) encoding unit or a (maximum) encoding block refers to a predetermined size block including a predetermined number of samples. Hence, in the following description, a maximum encoding block and a maximum encoding unit, Unless otherwise specified.
영상은 최대 부호화 단위(Coding Tree Unit; CTU)로 분할될 수 있다. 최대 부호화 단위의 크기는 비트스트림으로부터 획득된 정보에 기초하여 결정될 수 있다. 최대 부호화 단위의 모양은 동일 크기의 정사각형을 가질 수 있다. 하지만 이에 한정되는 것은 아니다. The image can be divided into a maximum coding unit (CTU). The size of the maximum encoding unit may be determined based on information obtained from the bitstream. The shape of the largest encoding unit may have a square of the same size. However, the present invention is not limited thereto.
예를 들어, 비트스트림으로부터 루마 부호화 블록의 최대 크기에 대한 정보가 획득될 수 있다. 예를 들어, 루마 부호화 블록의 최대 크기에 대한 정보가 나타내는 루마 부호화 블록의 최대 크기는 16x16, 32x32, 64x64, 128x128, 256x256 중 하나일 수 있다.For example, information on the maximum size of the luma encoded block from the bitstream can be obtained. For example, the maximum size of a luma encoding block indicated by information on the maximum size of a luma encoding block may be one of 16x16, 32x32, 64x64, 128x128, and 256x256.
예를 들어, 비트스트림으로부터 2분할이 가능한 루마 부호화 블록의 최대 크기와 루마 블록 크기 차이에 대한 정보가 획득될 수 있다. 루마 블록 크기 차이에 대한 정보는 루마 최대 부호화 단위와 2분할이 가능한 최대 루마 부호화 블록 간의 크기 차이를 나타낼 수 있다. 따라서, 비트스트림으로부터 획득된 2분할이 가능한 루마 부호화 블록의 최대 크기에 대한 정보와 루마 블록 크기 차이에 대한 정보를 결합하면, 루마 최대 부호화 단위의 크기가 결정될 수 있다. 루마 최대 부호화 단위의 크기를 이용하면 크로마 최대 부호화 단위의 크기도 결정될 수 있다. 예를 들어, 컬러 포맷에 따라 Y: Cb : Cr 비율이 4:2:0 이라면, 크로마 블록의 크기는 루마 블록의 크기의 절반일 수 있고, 마찬가지로 크로마 최대 부호화 단위의 크기는 루마 최대 부호화 단위의 크기의 절반일 수 있다. For example, information on the maximum size and luma block size difference of a luma coding block that can be divided into two from the bitstream can be obtained. The information on the luma block size difference may indicate the size difference between the luma maximum encoding unit and the maximum luma encoding block that can be divided into two. Therefore, when the information on the maximum size of the luma coding block obtained from the bitstream and capable of being divided into two pieces is combined with information on the luma block size difference, the size of the luma maximum coding unit can be determined. Using the size of the luma maximum encoding unit, the size of the chroma maximum encoding unit can also be determined. For example, if the Y: Cb: Cr ratio is 4: 2: 0 according to the color format, the size of the chroma block may be half the size of the luma block, and the size of the chroma maximum encoding unit may be the size of the luma maximum encoding unit It can be half the size.
일 실시예에 따르면, 바이너리 분할(binary split)이 가능한 루마 부호화 블록의 최대 크기에 대한 정보는 비트스트림으로부터 획득하므로, 바이너리 분할이 가능한 루마 부호화 블록의 최대 크기는 가변적으로 결정될 수 있다. 이와 달리, 터너리 분할(ternary split)이 가능한 루마 부호화 블록의 최대 크기는 고정될 수 있다. 예를 들어, I 슬라이스에서 터너리 분할이 가능한 루마 부호화 블록의 최대 크기는 32x32이고, P 슬라이스 또는 B 슬라이스에서 터너리 분할이 가능한 루마 부호화 블록의 최대 크기는 64x64일 수 있다. According to one embodiment, since the information on the maximum size of the luma coding block capable of binary division is obtained from the bitstream, the maximum size of the luma coding block capable of binary division can be variably determined. Alternatively, the maximum size of a luma coding block capable of ternary splitting can be fixed. For example, the maximum size of a luma coding block capable of ternary partitioning on an I slice is 32x32, and the maximum size of a luma coding block capable of ternary partitioning on a P slice or B slice can be 64x64.
또한 최대 부호화 단위는 비트스트림으로부터 획득된 분할 형태 모드 정보에 기초하여 부호화 단위로 계층적으로 분할될 수 있다. 분할 형태 모드 정보로서, 쿼드분할(quad split) 여부를 나타내는 정보, 다분할 여부를 나타내는 정보, 분할 방향 정보 및 분할 타입 정보 중 적어도 하나가 비트스트림으로부터 획득될 수 있다. Also, the maximum encoding unit may be hierarchically divided in units of encoding based on division mode information obtained from the bitstream. As the division type mode information, at least one of information indicating whether a quad split is performed, information indicating whether or not the division is multi-division, division direction information, and division type information may be obtained from the bitstream.
예를 들어, 쿼드분할(quad split) 여부를 나타내는 정보는 현재 부호화 단위가 쿼드분할(QUAD_SPLIT)될지 또는 쿼드분할되지 않을지를 나타낼 수 있다. For example, information indicating whether a quad split is present may indicate whether the current encoding unit is quad-split (QUAD_SPLIT) or not quad-split.
현재 부호화 단위가 쿼드분할지되 않으면, 다분할 여부를 나타내는 정보는 현재 부호화 단위가 더 이상 분할되지 않을지(NO_SPLIT) 아니면 바이너리/터너리 분할될지 여부를 나타낼 수 있다.Unless the current encoding unit is a quadrant, the information indicating whether the current encoding unit is multi-divided may indicate whether the current encoding unit is no longer divided (NO_SPLIT) or binary / ternary divided.
현재 부호화 단위가 바이너리 분할되거나 터너리 분할되면, 분할 방향 정보는 현재 부호화 단위가 수평 방향 또는 수직 방향 중 하나로 분할됨을 나타낸다. If the current encoding unit is binary-split or ternary-split, the division direction information indicates that the current encoding unit is divided into either the horizontal direction or the vertical direction.
현재 부호화 단위가 수평 또는 수직 방향으로 분할되면 분할 타입 정보는 현재 부호화 단위를 바이너리 분할) 또는 터너리 분할로 분할함을 나타낸다. If the current encoding unit is divided horizontally or vertically, the division type information indicates that the current encoding unit is divided into binary division) or ternary division.
분할 방향 정보 및 분할 타입 정보에 따라, 현재 부호화 단위의 분할 모드가 결정될 수 있다. 현재 부호화 단위가 수평 방향으로 바이너리 분할되는 경우의 분할 모드는 바이너리 수평 분할(SPLIT_BT_HOR), 수평 방향으로 터너리 분할되는 경우의 터너리 수평 분할(SPLIT_TT_HOR), 수직 방향으로 바이너리 분할되는 경우의 분할 모드는 바이너리 수직 분할 (SPLIT_BT_VER) 및 수직 방향으로 터너리 분할되는 경우의 분할 모드는 터너리 수직 분할 (SPLIT_BT_VER)로 결정될 수 있다. The division mode of the current encoding unit can be determined according to the division direction information and the division type information. The division mode when the current coding unit is divided into the horizontal direction is divided into binary horizontal division (SPLIT_BT_HOR), ternary horizontal division (SPLIT_TT_HOR) when tiled in the horizontal direction, and division mode in the case of binary division in the vertical direction The binary vertical division (SPLIT_BT_VER) and the division mode in the case of ternary division in the vertical direction can be determined to be the ternary vertical division (SPLIT_BT_VER).
영상 복호화 장치(100)는 비트스트림으로부터 분할 형태 모드 정보를 하나의 빈스트링으로부터 획득할 수 있다. 영상 복호화 장치(100)가 수신한 비트스트림의 형태는 Fixed length binary code, Unary code, Truncated unary code, 미리 결정된 바이너리 코드 등을 포함할 수 있다. 빈스트링은 정보를 2진수의 나열로 나타낸 것이다. 빈스트링은 적어도 하나의 비트로 구성될 수 있다. 영상 복호화 장치(100)는 분할 규칙에 기초하여 빈스트링에 대응하는 분할 형태 모드 정보를 획득할 수 있다. 영상 복호화 장치(100)는 하나의 빈스트링에 기초하여, 부호화 단위를 쿼드분할할지 여부, 분할하지 않을지 또는 분할 방향 및 분할 타입을 결정할 수 있다.The
부호화 단위는 최대 부호화 단위보다 작거나 같을 수 있다. 예를 들어 최대 부호화 단위도 최대 크기를 가지는 부호화 단위이므로 부호화 단위의 하나이다. 최대 부호화 단위에 대한 분할 형태 모드 정보가 분할되지 않음을 나타내는 경우, 최대 부호화 단위에서 결정되는 부호화 단위는 최대 부호화 단위와 같은 크기를 가진다. 최대 부호화 단위에 대한 분할 형태 모드 정보가 분할됨을 나타내는 경우 최대 부호화 단위는 부호화 단위들로 분할 될 수 있다. 또한 부호화 단위에 대한 분할 형태 모드 정보가 분할을 나타내는 경우 부호화 단위들은 더 작은 크기의 부호화 단위들로 분할 될 수 있다. 다만, 영상의 분할은 이에 한정되는 것은 아니며 최대 부호화 단위 및 부호화 단위는 구별되지 않을 수 있다. 부호화 단위의 분할에 대해서는 도 2 내지 도 15에서 보다 자세히 설명한다.The encoding unit may be less than or equal to the maximum encoding unit. For example, the maximum encoding unit is also one of the encoding units since it is the encoding unit having the maximum size. When the division type mode information for the maximum encoding unit indicates that the information is not divided, the encoding unit determined in the maximum encoding unit has the same size as the maximum encoding unit. If the division type mode information for the maximum encoding unit indicates division, the maximum encoding unit may be divided into encoding units. In addition, if division type mode information for an encoding unit indicates division, encoding units can be divided into smaller-sized encoding units. However, the division of the image is not limited to this, and the maximum encoding unit and the encoding unit may not be distinguished. The division of the encoding unit will be described in more detail with reference to FIG. 2 to FIG.
또한 부호화 단위로부터 예측을 위한 하나 이상의 예측 블록이 결정될 수 있다. 예측 블록은 부호화 단위와 같거나 작을 수 있다. 또한 부호화 단위로부터 변환을 위한 하나 이상의 변환 블록이 결정될 수 있다. 변환 블록은 부호화 단위와 같거나 작을 수 있다. Also, one or more prediction blocks for prediction from the encoding unit can be determined. The prediction block may be equal to or smaller than the encoding unit. Also, one or more conversion blocks for conversion from an encoding unit may be determined. The conversion block may be equal to or smaller than the encoding unit.
변환 단위와변환 블록과 예측 블록의 모양 및 크기는 서로 관련 없을 수 있다. The shape and size of the conversion unit and the conversion block and the prediction block may not be related to each other.
다른 실시예로, 부호화 단위가 예측 블록으로서 부호화 단위를 이용하여 예측이 수행될 수 있다. 또한 부호화 단위가 변환 블록으로서 부호화 단위를 이용하여 변환이 수행될 수 있다. In another embodiment, prediction can be performed using an encoding unit as an encoding unit as a prediction block. Also, the conversion can be performed using the encoding unit as a conversion block as a conversion block.
부호화 단위의 분할에 대해서는 도 2 내지 도 15에서 보다 자세히 설명한다. 본 개시의 현재 블록 및 주변 블록은 최대 부호화 단위, 부호화 단위, 예측 블록 및 변환 블록 중 하나를 나타낼 수 있다. 또한, 현재 블록 또는 현재 부호화 단위는 현재 복호화 또는 부호화가 진행되는 블록 또는 현재 분할이 진행되고 있는 블록이다. 주변 블록은 현재 블록 이전에 복원된 블록일 수 있다. 주변 블록은 현재 블록으로부터 공간적 또는 시간적으로 인접할 수 있다. 주변 블록은 현재 블록의 좌하측, 좌측, 좌상측, 상측, 우상측, 우측, 우하측 중 하나에 위치할 수 있다. The division of the encoding unit will be described in more detail with reference to FIG. 2 to FIG. The current block and the neighboring blocks of the present disclosure may represent one of a maximum encoding unit, an encoding unit, a prediction block, and a transform block. In addition, the current block or the current encoding unit is a block in which decoding or encoding is currently proceeding, or a block in which the current segmentation is proceeding. The neighboring block may be a block restored before the current block. The neighboring blocks may be spatially or temporally contiguous from the current block. The neighboring block may be located at one of the left lower side, the left side, the upper left side, the upper side, the upper right side, the right side, and the lower right side of the current block.
도 2는 일 실시예에 따라 영상 복호화 장치(100)가 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.FIG. 2 illustrates a process in which the
블록 형태는 4Nx4N,4Nx2N, 2Nx4N, 4NxN 또는 Nx4N을 포함할 수 있다. 여기서 N은 양의 정수일 수 있다. 블록 형태 정보는 부호화 단위의 모양, 방향, 너비 및 높이의 비율 또는 크기 중 적어도 하나를 나타내는 정보이다. The block shape may include 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, or Nx4N. Where N may be a positive integer. The block type information is information indicating at least one of a ratio, or a size, of a shape, direction, width, and height of an encoding unit.
부호화 단위의 모양은 정사각형(square) 및 비-정사각형(non-square)을 포함할 수 있다. 부호화 단위의 너비 및 높이의 길이가 같은 경우(즉, 부호화 단위의 블록 형태가 4Nx4N 인 경우), 영상 복호화 장치(100)는 부호화 단위의 블록 형태 정보를 정사각형으로 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 모양을 비-정사각형으로 결정할 수 있다. The shape of the encoding unit may include a square and a non-square. If the width and height of the encoding unit are the same (i.e., the block type of the encoding unit is 4Nx4N), the
부호화 단위의 너비 및 높이의 길이가 다른 경우(즉, 부호화 단위의 블록 형태가 4Nx2N, 2Nx4N, 4NxN 또는 Nx4N인 경우), 영상 복호화 장치(100)는 부호화 단위의 블록 형태 정보를 비-정사각형으로 결정할 수 있다. 부호화 단위의 모양이 비-정사각형인 경우, 영상 복호화 장치(100)는 부호화 단위의 블록 형태 정보 중 너비 및 높이의 비율을 1:2, 2:1, 1:4, 4:1, 1:8 또는 8:1 중 적어도 하나로 결정할 수 있다. 또한, 부호화 단위의 너비의 길이 및 높이의 길이에 기초하여, 영상 복호화 장치(100)는 부호화 단위가 수평 방향인지 수직 방향인지 결정할 수 있다. 또한, 부호화 단위의 너비의 길이, 높이의 길이 또는 넓이 중 적어도 하나에 기초하여, 영상 복호화 장치(100)는 부호화 단위의 크기를 결정할 수 있다. If the width and height of the encoding unit are different (i.e., the block type of the encoding unit is 4Nx2N, 2Nx4N, 4NxN, or Nx4N), the
일 실시예에 따라 영상 복호화 장치(100)는 블록 형태 정보를 이용하여 부호화 단위의 형태를 결정할 수 있고, 분할 형태 모드 정보를 이용하여 부호화 단위가 어떤 형태로 분할되는지를 결정할 수 있다. 즉, 영상 복호화 장치(100)가 이용하는 블록 형태 정보가 어떤 블록 형태를 나타내는지에 따라 분할 형태 모드 정보가 나타내는 부호화 단위의 분할 방법이 결정될 수 있다. According to an exemplary embodiment, the
영상 복호화 장치(100)는 비트스트림으로부터 분할 형태 모드 정보를 획득할 수 있다. 하지만 이에 한정되는 것은 아니며, 영상 복호화 장치(100) 및 영상 부호화 장치(3800)는 블록 형태 정보에 기초하여 미리 약속된 분할 형태 모드 정보를 결정할 수 있다. 영상 복호화 장치(100)는 최대 부호화 단위 또는 최소 부호화 단위에 대하여 미리 약속된 분할 형태 모드 정보를 결정할 수 있다. 예를 들어 영상 복호화 장치(100)는 최대 부호화 단위에 대하여 분할 형태 모드 정보를 쿼드 분할(quad split)로 결정할 수 있다. 또한, 영상 복호화 장치(100)는 최소 부호화 단위에 대하여 분할 형태 모드 정보를 "분할하지 않음"으로 결정할 수 있다. 구체적으로 영상 복호화 장치(100)는 최대 부호화 단위의 크기를 256x256으로 결정할 수 있다. 영상 복호화 장치(100)는 미리 약속된 분할 형태 모드 정보를 쿼드 분할로 결정할 수 있다. 쿼드 분할은 부호화 단위의 너비 및 높이를 모두 이등분하는 분할 형태 모드이다. 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 256x256 크기의 최대 부호화 단위로부터 128x128 크기의 부호화 단위를 획득할 수 있다. 또한 영상 복호화 장치(100)는 최소 부호화 단위의 크기를 4x4로 결정할 수 있다. 영상 복호화 장치(100)는 최소 부호화 단위에 대하여 "분할하지 않음"을 나타내는 분할 형태 모드 정보를 획득할 수 있다.The
일 실시예에 따라, 영상 복호화 장치(100)는 현재 부호화 단위가 정사각형 형태임을 나타내는 블록 형태 정보를 이용할 수 있다. 예를 들어 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 정사각형의 부호화 단위를 분할하지 않을지, 수직으로 분할할지, 수평으로 분할할지, 4개의 부호화 단위로 분할할지 등을 결정할 수 있다. 도 2을 참조하면, 현재 부호화 단위(200)의 블록 형태 정보가 정사각형의 형태를 나타내는 경우, 복호화부(120)는 분할되지 않음을 나타내는 분할 형태 모드 정보에 따라 현재 부호화 단위(200)와 동일한 크기를 가지는 부호화 단위(210a)를 분할하지 않거나, 소정의 분할방법을 나타내는 분할 형태 모드 정보에 기초하여 분할된 부호화 단위(210b, 210c, 210d 등)를 결정할 수 있다. According to one embodiment, the
도 2를 참조하면 영상 복호화 장치(100)는 일 실시예에 따라 수직방향으로 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(200)를 수직방향으로 분할한 두 개의 부호화 단위(210b)를 결정할 수 있다. 영상 복호화 장치(100)는 수평방향으로 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(200)를 수평방향으로 분할한 두 개의 부호화 단위(210c)를 결정할 수 있다. 영상 복호화 장치(100)는 수직방향 및 수평방향으로 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(200)를 수직방향 및 수평방향으로 분할한 네 개의 부호화 단위(210d)를 결정할 수 있다. 다만 정사각형의 부호화 단위가 분할될 수 있는 분할 형태는 상술한 형태로 한정하여 해석되어서는 안되고, 분할 형태 모드 정보가 나타낼 수 있는 다양한 형태가 포함될 수 있다. 정사각형의 부호화 단위가 분할되는 소정의 분할 형태들은 이하에서 다양한 실시예를 통해 구체적으로 설명하도록 한다. Referring to FIG. 2, the
도 3은 일 실시예에 따라 영상 복호화 장치(100)가 비-정사각형의 형태인 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.FIG. 3 illustrates a process in which the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위가 비-정사각형 형태임을 나타내는 블록 형태 정보를 이용할 수 있다. 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 비-정사각형의 현재 부호화 단위를 분할하지 않을지 소정의 방법으로 분할할지 여부를 결정할 수 있다. 도 3을 참조하면, 현재 부호화 단위(300 또는 350)의 블록 형태 정보가 비-정사각형의 형태를 나타내는 경우, 영상 복호화 장치(100)는 분할되지 않음을 나타내는 분할 형태 모드 정보에 따라 현재 부호화 단위(300 또는 350)와 동일한 크기를 가지는 부호화 단위(310 또는 360)를 결정하거나, 소정의 분할방법을 나타내는 분할 형태 모드 정보에 따라 기초하여 분할된 부호화 단위(320a, 320b, 330a, 330b, 330c, 370a, 370b, 380a, 380b, 380c)를 결정할 수 있다. 비-정사각형의 부호화 단위가 분할되는 소정의 분할 방법은 이하에서 다양한 실시예를 통해 구체적으로 설명하도록 한다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보를 이용하여 부호화 단위가 분할되는 형태를 결정할 수 있고, 이 경우 분할 형태 모드 정보는 부호화 단위가 분할되어 생성되는 적어도 하나의 부호화 단위의 개수를 나타낼 수 있다. 도 3을 참조하면 분할 형태 모드 정보가 두 개의 부호화 단위로 현재 부호화 단위(300 또는 350)가 분할되는 것을 나타내는 경우, 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300 또는 350)를 분할하여 현재 부호화 단위에 포함되는 두 개의 부호화 단위(320a, 320b, 또는 370a, 370b)를 결정할 수 있다. According to an exemplary embodiment, the
일 실시예에 따라 영상 복호화 장치(100)가 분할 형태 모드 정보에 기초하여 비-정사각형의 형태의 현재 부호화 단위(300 또는 350)를 분할하는 경우, 영상 복호화 장치(100)는 비-정사각형의 현재 부호화 단위(300 또는 350)의 긴 변의 위치를 고려하여 현재 부호화 단위를 분할할 수 있다. 예를 들면, 영상 복호화 장치(100)는 현재 부호화 단위(300 또는 350)의 형태를 고려하여 현재 부호화 단위(300 또는 350)의 긴 변을 분할하는 방향으로 현재 부호화 단위(300 또는 350)를 분할하여 복수개의 부호화 단위를 결정할 수 있다. When the
일 실시예에 따라, 분할 형태 모드 정보가 홀수개의 블록으로 부호화 단위를 분할(터너리 분할)하는 것을 나타내는 경우, 영상 복호화 장치(100)는 현재 부호화 단위(300 또는 350)에 포함되는 홀수개의 부호화 단위를 결정할 수 있다. 예를 들면, 분할 형태 모드 정보가 3개의 부호화 단위로 현재 부호화 단위(300 또는 350)를 분할하는 것을 나타내는 경우, 영상 복호화 장치(100)는 현재 부호화 단위(300 또는 350)를 3개의 부호화 단위(330a, 330b, 330c, 380a, 380b, 380c)로 분할할 수 있다. According to one embodiment, when the division type mode information indicates that an encoding unit is divided into an odd number of blocks (ternary division), the
일 실시예에 따라, 현재 부호화 단위(300 또는 350)의 너비 및 높이의 비율이 4:1 또는 1:4 일 수 있다. 너비 및 높이의 비율이 4:1 인 경우, 너비의 길이가 높이의 길이보다 길므로 블록 형태 정보는 수평 방향일 수 있다. 너비 및 높이의 비율이 1:4 인 경우, 너비의 길이가 높이의 길이보다 짧으므로 블록 형태 정보는 수직 방향일 수 있다. 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 현재 부호화 단위를 홀수개의 블록으로 분할할 것을 결정할 수 있다. 또한 영상 복호화 장치(100)는 현재 부호화 단위(300 또는 350)의 블록 형태 정보에 기초하여 현재 부호화 단위(300 또는 350)의 분할 방향을 결정할 수 있다. 예를 들어 현재 부호화 단위(300)가 수직 방향인 경우, 영상 복호화 장치(100)는 현재 부호화 단위(300)를 수평 방향으로 분할 하여 부호화 단위(330a, 330b, 330c)를 결정할 수 있다. 또한 현재 부호화 단위(350)가 수평 방향인 경우, 영상 복호화 장치(100)는 현재 부호화 단위(350)를 수직 방향으로 분할 하여 부호화 단위(380a, 380b, 380c)를 결정할 수 있다.According to one embodiment, the ratio of the width and height of the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위(300 또는 350)에 포함되는 홀수개의 부호화 단위를 결정할 수 있으며, 결정된 부호화 단위들의 크기 모두가 동일하지는 않을 수 있다. 예를 들면, 결정된 홀수개의 부호화 단위(330a, 330b, 330c, 380a, 380b, 380c) 중 소정의 부호화 단위(330b 또는 380b)의 크기는 다른 부호화 단위(330a, 330c, 380a, 380c)들과는 다른 크기를 가질 수도 있다. 즉, 현재 부호화 단위(300 또는 350)가 분할되어 결정될 수 있는 부호화 단위는 복수의 종류의 크기를 가질 수 있고, 경우에 따라서는 홀수개의 부호화 단위(330a, 330b, 330c, 380a, 380b, 380c)가 각각 서로 다른 크기를 가질 수도 있다.According to an exemplary embodiment, the
일 실시예에 따라 분할 형태 모드 정보가 홀수개의 블록으로 부호화 단위가 분할되는 것을 나타내는 경우, 영상 복호화 장치(100)는 현재 부호화 단위(300 또는 350)에 포함되는 홀수개의 부호화 단위를 결정할 수 있고, 나아가 영상 복호화 장치(100)는 분할하여 생성되는 홀수개의 부호화 단위들 중 적어도 하나의 부호화 단위에 대하여 소정의 제한을 둘 수 있다. 도 3을 참조하면 영상 복호화 장치(100)는 현재 부호화 단위(300 또는 350)가 분할되어 생성된 3개의 부호화 단위(330a, 330b, 330c, 380a, 380b, 380c)들 중 중앙에 위치하는 부호화 단위(330b, 380b)에 대한 복호화 과정을 다른 부호화 단위(330a, 330c, 380a, 380c)와 다르게 할 수 있다. 예를 들면, 영상 복호화 장치(100)는 중앙에 위치하는 부호화 단위(330b, 380b)에 대하여는 다른 부호화 단위(330a, 330c, 380a, 380c)와 달리 더 이상 분할되지 않도록 제한하거나, 소정의 횟수만큼만 분할되도록 제한할 수 있다.According to one embodiment, when the division type mode information indicates that an encoding unit is divided into an odd number of blocks, the
도 4는 일 실시예에 따라 영상 복호화 장치(100)가 분할 형태 모드 정보 중 적어도 하나에 기초하여 부호화 단위를 분할하는 과정을 도시한다.FIG. 4 illustrates a process in which the
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보 중 적어도 하나에 기초하여 정사각형 형태의 제1 부호화 단위(400)를 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다. 일 실시예에 따라 분할 형태 모드 정보가 수평 방향으로 제1 부호화 단위(400)를 분할하는 것을 나타내는 경우, 영상 복호화 장치(100)는 제1 부호화 단위(400)를 수평 방향으로 분할하여 제2 부호화 단위(410)를 결정할 수 있다. 일 실시예에 따라 이용되는 제1 부호화 단위, 제2 부호화 단위, 제3 부호화 단위는 부호화 단위 간의 분할 전후 관계를 이해하기 위해 이용된 용어이다. 예를 들면, 제1 부호화 단위를 분할하면 제2 부호화 단위가 결정될 수 있고, 제2 부호화 단위가 분할되면 제3 부호화 단위가 결정될 수 있다. 이하에서는 이용되는 제1 부호화 단위, 제2 부호화 단위 및 제3 부호화 단위의 관계는 상술한 특징에 따르는 것으로 이해될 수 있다. According to an exemplary embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 결정된 제2 부호화 단위(410)를 분할 형태 모드 정보에 기초하여 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다. 도 4를 참조하면 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(400)를 분할하여 결정된 비-정사각형의 형태의 제2 부호화 단위(410)를 적어도 하나의 제3 부호화 단위(420a, 420b, 420c, 420d 등)로 분할하거나 제2 부호화 단위(410)를 분할하지 않을 수 있다. 영상 복호화 장치(100)는 분할 형태 모드 정보를 획득할 수 있고 영상 복호화 장치(100)는 획득한 분할 형태 모드 정보에 기초하여 제1 부호화 단위(400)를 분할하여 다양한 형태의 복수개의 제2 부호화 단위(예를 들면, 410)를 분할할 수 있으며, 제2 부호화 단위(410)는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(400)가 분할된 방식에 따라 분할될 수 있다. 일 실시예에 따라, 제1 부호화 단위(400)가 제1 부호화 단위(400)에 대한 분할 형태 모드 정보에 기초하여 제2 부호화 단위(410)로 분할된 경우, 제2 부호화 단위(410) 역시 제2 부호화 단위(410)에 대한 분할 형태 모드 정보에 기초하여 제3 부호화 단위(예를 들면, 420a, 420b, 420c, 420d 등)으로 분할될 수 있다. 즉, 부호화 단위는 부호화 단위 각각에 관련된 분할 형태 모드 정보에 기초하여 재귀적으로 분할될 수 있다. 따라서 비-정사각형 형태의 부호화 단위에서 정사각형의 부호화 단위가 결정될 수 있고, 이러한 정사각형 형태의 부호화 단위가 재귀적으로 분할되어 비-정사각형 형태의 부호화 단위가 결정될 수도 있다. According to an exemplary embodiment, the
도 4를 참조하면, 비-정사각형 형태의 제2 부호화 단위(410)가 분할되어 결정되는 홀수개의 제3 부호화 단위(420b, 420c, 420d) 중 소정의 부호화 단위(예를 들면, 가운데에 위치하는 부호화 단위 또는 정사각형 형태의 부호화 단위)는 재귀적으로 분할될 수 있다. 일 실시예에 따라 홀수개의 제3 부호화 단위(420b, 420c, 420d) 중 하나인 정사각형 형태의 제3 부호화 단위(420b)는 수평 방향으로 분할되어 복수개의 제4 부호화 단위로 분할될 수 있다. 복수개의 제4 부호화 단위(430a, 430b, 430c, 430d) 중 하나인 비-정사각형 형태의 제4 부호화 단위(430b 또는 430d)는 다시 복수개의 부호화 단위들로 분할될 수 있다. 예를 들면, 비-정사각형 형태의 제4 부호화 단위(430b 또는 430d)는 홀수개의 부호화 단위로 다시 분할될 수도 있다. 부호화 단위의 재귀적 분할에 이용될 수 있는 방법에 대하여는 다양한 실시예를 통해 후술하도록 한다.Referring to FIG. 4, among the odd
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제3 부호화 단위(420a, 420b, 420c, 420d 등) 각각을 부호화 단위들로 분할할 수 있다. 또한 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제2 부호화 단위(410)를 분할하지 않는 것으로 결정할 수 있다. 영상 복호화 장치(100)는 일 실시예에 따라 비-정사각형 형태의 제2 부호화 단위(410)를 홀수개의 제3 부호화 단위(420b, 420c, 420d)로 분할할 수 있다. 영상 복호화 장치(100)는 홀수개의 제3 부호화 단위(420b, 420c, 420d) 중 소정의 제3 부호화 단위에 대하여 소정의 제한을 둘 수 있다. 예를 들면 영상 복호화 장치(100)는 홀수개의 제3 부호화 단위(420b, 420c, 420d) 중 가운데에 위치하는 부호화 단위(420c)에 대하여는 더 이상 분할되지 않는 것으로 제한하거나 또는 설정 가능한 횟수로 분할되어야 하는 것으로 제한할 수 있다. According to an embodiment, the
도 4를 참조하면, 영상 복호화 장치(100)는 비-정사각형 형태의 제2 부호화 단위(410)에 포함되는 홀수개의 제3 부호화 단위(420b, 420c, 420d)들 중 가운데에 위치하는 부호화 단위(420c)는 더 이상 분할되지 않거나, 소정의 분할 형태로 분할(예를 들면 4개의 부호화 단위로만 분할하거나 제2 부호화 단위(410)가 분할된 형태에 대응하는 형태로 분할)되는 것으로 제한하거나, 소정의 횟수로만 분할(예를 들면 n회만 분할, n>0)하는 것으로 제한할 수 있다. 다만 가운데에 위치한 부호화 단위(420c)에 대한 상기 제한은 단순한 실시예들에 불과하므로 상술한 실시예들로 제한되어 해석되어서는 안되고, 가운데에 위치한 부호화 단위(420c)가 다른 부호화 단위(420b, 420d)와 다르게 복호화 될 수 있는 다양한 제한들을 포함하는 것으로 해석되어야 한다.Referring to FIG. 4, the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위를 분할하기 위해 이용되는 분할 형태 모드 정보를 현재 부호화 단위 내의 소정의 위치에서 획득할 수 있다. According to an exemplary embodiment, the
도 5는 일 실시예에 따라 영상 복호화 장치(100)가 홀수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위한 방법을 도시한다.FIG. 5 illustrates a method by which the
도 5을 참조하면, 현재 부호화 단위(500, 550)의 분할 형태 모드 정보는 현재 부호화 단위(500, 550)에 포함되는 복수개의 샘플 중 소정 위치의 샘플(예를 들면, 가운데에 위치하는 샘플(540, 590))에서 획득될 수 있다. 다만 이러한 분할 형태 모드 정보 중 적어도 하나가 획득될 수 있는 현재 부호화 단위(500) 내의 소정 위치가 도 5에서 도시하는 가운데 위치로 한정하여 해석되어서는 안되고, 소정 위치에는 현재 부호화 단위(500)내에 포함될 수 있는 다양한 위치(예를 들면, 최상단, 최하단, 좌측, 우측, 좌측상단, 좌측하단, 우측상단 또는 우측하단 등)가 포함될 수 있는 것으로 해석되어야 한다. 영상 복호화 장치(100)는 소정 위치로부터 획득되는 분할 형태 모드 정보를 획득하여 현재 부호화 단위를 다양한 형태 및 크기의 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다.Referring to FIG. 5, the division type mode information of the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위가 소정의 개수의 부호화 단위들로 분할된 경우 그 중 하나의 부호화 단위를 선택할 수 있다. 복수개의 부호화 단위들 중 하나를 선택하기 위한 방법은 다양할 수 있으며, 이러한 방법들에 대한 설명은 이하의 다양한 실시예를 통해 후술하도록 한다.According to an exemplary embodiment, when the current encoding unit is divided into a predetermined number of encoding units, the
일 실시예에 따라 영상 복호화 장치(100) 는 현재 부호화 단위를 복수개의 부호화 단위들로 분할하고, 소정 위치의 부호화 단위를 결정할 수 있다. According to an exemplary embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 홀수개의 부호화 단위들 중 가운데에 위치하는 부호화 단위를 결정하기 위하여 홀수개의 부호화 단위들 각각의 위치를 나타내는 정보를 이용할 수 있다. 도 5를 참조하면, 영상 복호화 장치(100)는 현재 부호화 단위(500) 또는 현재 부호화 단위(550)를 분할하여 홀수개의 부호화 단위들(520a, 520b, 520c) 또는 홀수개의 부호화 단위들(560a, 560b, 560c)을 결정할 수 있다. 영상 복호화 장치(100)는 홀수개의 부호화 단위들(520a, 520b, 520c) 또는 홀수개의 부호화 단위들(560a, 560b, 560c)의 위치에 대한 정보를 이용하여 가운데 부호화 단위(520b)또는 가운데 부호화 단위(560b)를 결정할 수 있다. 예를 들면 영상 복호화 장치(100)는 부호화 단위들(520a, 520b, 520c)에 포함되는 소정의 샘플의 위치를 나타내는 정보에 기초하여 부호화 단위들(520a, 520b, 520c)의 위치를 결정함으로써 가운데에 위치하는 부호화 단위(520b)를 결정할 수 있다. 구체적으로, 영상 복호화 장치(100)는 부호화 단위들(520a, 520b, 520c)의 좌측 상단의 샘플(530a, 530b, 530c)의 위치를 나타내는 정보에 기초하여 부호화 단위들(520a, 520b, 520c)의 위치를 결정함으로써 가운데에 위치하는 부호화 단위(520b)를 결정할 수 있다. According to an exemplary embodiment, the
일 실시예에 따라 부호화 단위들(520a, 520b, 520c)에 각각 포함되는 좌측 상단의 샘플(530a, 530b, 530c)의 위치를 나타내는 정보는 부호화 단위들(520a, 520b, 520c)의 픽쳐 내에서의 위치 또는 좌표에 대한 정보를 포함할 수 있다. 일 실시예에 따라 부호화 단위들(520a, 520b, 520c)에 각각 포함되는 좌측 상단의 샘플(530a, 530b, 530c)의 위치를 나타내는 정보는 현재 부호화 단위(500)에 포함되는 부호화 단위들(520a, 520b, 520c)의 너비 또는 높이를 나타내는 정보를 포함할 수 있고, 이러한 너비 또는 높이는 부호화 단위들(520a, 520b, 520c)의 픽쳐 내에서의 좌표 간의 차이를 나타내는 정보에 해당할 수 있다. 즉, 영상 복호화 장치(100)는 부호화 단위들(520a, 520b, 520c)의 픽쳐 내에서의 위치 또는 좌표에 대한 정보를 직접 이용하거나 좌표간의 차이값에 대응하는 부호화 단위의 너비 또는 높이에 대한 정보를 이용함으로써 가운데에 위치하는 부호화 단위(520b)를 결정할 수 있다. Information indicating the positions of the upper
일 실시예에 따라, 상단 부호화 단위(520a)의 좌측 상단의 샘플(530a)의 위치를 나타내는 정보는 (xa, ya) 좌표를 나타낼 수 있고, 가운데 부호화 단위(520b)의 좌측 상단의 샘플(530b)의 위치를 나타내는 정보는 (xb, yb) 좌표를 나타낼 수 있고, 하단 부호화 단위(520c)의 좌측 상단의 샘플(530c)의 위치를 나타내는 정보는 (xc, yc) 좌표를 나타낼 수 있다. 영상 복호화 장치(100)는 부호화 단위들(520a, 520b, 520c)에 각각 포함되는 좌측 상단의 샘플(530a, 530b, 530c)의 좌표를 이용하여 가운데 부호화 단위(520b)를 결정할 수 있다. 예를 들면, 좌측 상단의 샘플(530a, 530b, 530c)의 좌표를 오름차순 또는 내림차순으로 정렬하였을 때, 가운데에 위치하는 샘플(530b)의 좌표인 (xb, yb)를 포함하는 부호화 단위(520b)를 현재 부호화 단위(500)가 분할되어 결정된 부호화 단위들(520a, 520b, 520c) 중 가운데에 위치하는 부호화 단위로 결정할 수 있다. 다만 좌측 상단의 샘플(530a, 530b, 530c)의 위치를 나타내는 좌표는 픽쳐 내에서의 절대적인 위치를 나타내는 좌표를 나타낼 수 있고, 나아가 상단 부호화 단위(520a)의 좌측 상단의 샘플(530a)의 위치를 기준으로, 가운데 부호화 단위(520b)의 좌측 상단의 샘플(530b)의 상대적 위치를 나타내는 정보인 (dxb, dyb)좌표, 하단 부호화 단위(520c)의 좌측 상단의 샘플(530c)의 상대적 위치를 나타내는 정보인 (dxc, dyc)좌표를 이용할 수도 있다. 또한 부호화 단위에 포함되는 샘플의 위치를 나타내는 정보로서 해당 샘플의 좌표를 이용함으로써 소정 위치의 부호화 단위를 결정하는 방법이 상술한 방법으로 한정하여 해석되어서는 안되고, 샘플의 좌표를 이용할 수 있는 다양한 산술적 방법으로 해석되어야 한다.The information indicating the position of the upper
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위(500)를 복수개의 부호화 단위들(520a, 520b, 520c)로 분할할 수 있고, 부호화 단위들(520a, 520b, 520c) 중 소정의 기준에 따라 부호화 단위를 선택할 수 있다. 예를 들면, 영상 복호화 장치(100)는 부호화 단위들(520a, 520b, 520c) 중 크기가 다른 부호화 단위(520b)를 선택할 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 상단 부호화 단위(520a)의 좌측 상단의 샘플(530a)의 위치를 나타내는 정보인 (xa, ya) 좌표, 가운데 부호화 단위(520b)의 좌측 상단의 샘플(530b)의 위치를 나타내는 정보인 (xb, yb) 좌표, 하단 부호화 단위(520c)의 좌측 상단의 샘플(530c)의 위치를 나타내는 정보인 (xc, yc) 좌표를 이용하여 부호화 단위들(520a, 520b, 520c) 각각의 너비 또는 높이를 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위들(520a, 520b, 520c)의 위치를 나타내는 좌표인 (xa, ya), (xb, yb), (xc, yc)를 이용하여 부호화 단위들(520a, 520b, 520c) 각각의 크기를 결정할 수 있다. 일 실시예에 따라, 영상 복호화 장치(100)는 상단 부호화 단위(520a)의 너비를 현재 부호화 단위(500)의 너비로 결정할 수 있다. 영상 복호화 장치(100)는 상단 부호화 단위(520a)의 높이를 yb-ya로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 가운데 부호화 단위(520b)의 너비를 현재 부호화 단위(500)의 너비로 결정할 수 있다. 영상 복호화 장치(100)는 가운데 부호화 단위(520b)의 높이를 yc-yb로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 하단 부호화 단위의 너비 또는 높이는 현재 부호화 단위의 너비 또는 높이와 상단 부호화 단위(520a) 및 가운데 부호화 단위(520b)의 너비 및 높이를 이용하여 결정할 수 있다. 영상 복호화 장치(100)는 결정된 부호화 단위들(520a, 520b, 520c)의 너비 및 높이에 기초하여 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정할 수 있다. 도 5를 참조하면, 영상 복호화 장치(100)는 상단 부호화 단위(520a) 및 하단 부호화 단위(520c)의 크기와 다른 크기를 가지는 가운데 부호화 단위(520b)를 소정 위치의 부호화 단위로 결정할 수 있다. 다만 상술한 영상 복호화 장치(100)가 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정하는 과정은 샘플 좌표에 기초하여 결정되는 부호화 단위의 크기를 이용하여 소정 위치의 부호화 단위를 결정하는 일 실시예에 불과하므로, 소정의 샘플 좌표에 따라 결정되는 부호화 단위의 크기를 비교하여 소정 위치의 부호화 단위를 결정하는 다양한 과정이 이용될 수 있다. According to an embodiment, the
영상 복호화 장치(100)는 좌측 부호화 단위(560a)의 좌측 상단의 샘플(570a)의 위치를 나타내는 정보인 (xd, yd) 좌표, 가운데 부호화 단위(560b)의 좌측 상단의 샘플(570b)의 위치를 나타내는 정보인 (xe, ye) 좌표, 우측 부호화 단위(560c)의 좌측 상단의 샘플(570c)의 위치를 나타내는 정보인 (xf, yf) 좌표를 이용하여 부호화 단위들(560a, 560b, 560c) 각각의 너비 또는 높이를 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위들(560a, 560b, 560c)의 위치를 나타내는 좌표인 (xd, yd), (xe, ye), (xf, yf)를 이용하여 부호화 단위들(560a, 560b, 560c) 각각의 크기를 결정할 수 있다.The
일 실시예에 따라, 영상 복호화 장치(100)는 좌측 부호화 단위(560a)의 너비를 xe-xd로 결정할 수 있다. 영상 복호화 장치(100)는 좌측 부호화 단위(560a)의 높이를 현재 부호화 단위(550)의 높이로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 가운데 부호화 단위(560b)의 너비를 xf-xe로 결정할 수 있다. 영상 복호화 장치(100)는 가운데 부호화 단위(560b)의 높이를 현재 부호화 단위(500)의 높이로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 우측 부호화 단위(560c)의 너비 또는 높이는 현재 부호화 단위(550)의 너비 또는 높이와 좌측 부호화 단위(560a) 및 가운데 부호화 단위(560b)의 너비 및 높이를 이용하여 결정할 수 있다. 영상 복호화 장치(100)는 결정된 부호화 단위들(560a, 560b, 560c)의 너비 및 높이에 기초하여 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정할 수 있다. 도 5를 참조하면, 영상 복호화 장치(100)는 좌측 부호화 단위(560a) 및 우측 부호화 단위(560c)의 크기와 다른 크기를 가지는 가운데 부호화 단위(560b)를 소정 위치의 부호화 단위로 결정할 수 있다. 다만 상술한 영상 복호화 장치(100)가 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정하는 과정은 샘플 좌표에 기초하여 결정되는 부호화 단위의 크기를 이용하여 소정 위치의 부호화 단위를 결정하는 일 실시예에 불과하므로, 소정의 샘플 좌표에 따라 결정되는 부호화 단위의 크기를 비교하여 소정 위치의 부호화 단위를 결정하는 다양한 과정이 이용될 수 있다. According to one embodiment, the
다만 부호화 단위의 위치를 결정하기 위하여 고려하는 샘플의 위치는 상술한 좌측 상단으로 한정하여 해석되어서는 안되고 부호화 단위에 포함되는 임의의 샘플의 위치에 대한 정보가 이용될 수 있는 것으로 해석될 수 있다. However, the position of the sample to be considered for determining the position of the coding unit should not be interpreted as being limited to the left upper end, and information about the position of any sample included in the coding unit can be interpreted as being available.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위의 형태를 고려하여, 현재 부호화 단위가 분할되어 결정되는 홀수개의 부호화 단위들 중 소정 위치의 부호화 단위를 선택할 수 있다. 예를 들면, 현재 부호화 단위가 너비가 높이보다 긴 비-정사각형 형태라면 영상 복호화 장치(100)는 수평 방향에 따라 소정 위치의 부호화 단위를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 수평 방향으로 위치를 달리 하는 부호화 단위들 중 하나를 결정하여 해당 부호화 단위에 대한 제한을 둘 수 있다. 현재 부호화 단위가 높이가 너비보다 긴 비-정사각형 형태라면 영상 복호화 장치(100)는 수직 방향에 따라 소정 위치의 부호화 단위를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 수직 방향으로 위치를 달리 하는 부호화 단위들 중 하나를 결정하여 해당 부호화 단위에 대한 제한을 둘 수 있다. According to one embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 짝수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여 짝수개의 부호화 단위들 각각의 위치를 나타내는 정보를 이용할 수 있다. 영상 복호화 장치(100)는 현재 부호화 단위를 분할(바이너리 분할)하여 짝수개의 부호화 단위들을 결정할 수 있고 짝수개의 부호화 단위들의 위치에 대한 정보를 이용하여 소정 위치의 부호화 단위를 결정할 수 있다. 이에 대한 구체적인 과정은 도 5에서 상술한 홀수개의 부호화 단위들 중 소정 위치(예를 들면, 가운데 위치)의 부호화 단위를 결정하는 과정에 대응하는 과정일 수 있으므로 생략하도록 한다.According to an exemplary embodiment, the
일 실시예에 따라, 비-정사각형 형태의 현재 부호화 단위를 복수개의 부호화 단위로 분할한 경우, 복수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여 분할 과정에서 소정 위치의 부호화 단위에 대한 소정의 정보를 이용할 수 있다. 예를 들면 영상 복호화 장치(100)는 현재 부호화 단위가 복수개로 분할된 부호화 단위들 중 가운데에 위치하는 부호화 단위를 결정하기 위하여 분할 과정에서 가운데 부호화 단위에 포함된 샘플에 저장된 분할 형태 모드 정보 중 적어도 하나를 이용할 수 있다. According to one embodiment, when a non-square current encoding unit is divided into a plurality of encoding units, in order to determine an encoding unit at a predetermined position among a plurality of encoding units, Can be used. For example, in order to determine a coding unit located in the middle of coding units in which the current coding unit is divided into a plurality of coding units, the
도 5를 참조하면 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(500)를 복수개의 부호화 단위들(520a, 520b, 520c)로 분할할 수 있으며, 복수개의 부호화 단위들(520a, 520b, 520c) 중 가운데에 위치하는 부호화 단위(520b)를 결정할 수 있다. 나아가 영상 복호화 장치(100)는 분할 형태 모드 정보가 획득되는 위치를 고려하여, 가운데에 위치하는 부호화 단위(520b)를 결정할 수 있다. 즉, 현재 부호화 단위(500)의 분할 형태 모드 정보는 현재 부호화 단위(500)의 가운데에 위치하는 샘플(540)에서 획득될 수 있으며, 상기 분할 형태 모드 정보에 기초하여 현재 부호화 단위(500)가 복수개의 부호화 단위들(520a, 520b, 520c)로 분할된 경우 상기 샘플(540)을 포함하는 부호화 단위(520b)를 가운데에 위치하는 부호화 단위로 결정할 수 있다. 다만 가운데에 위치하는 부호화 단위로 결정하기 위해 이용되는 정보가 분할 형태 모드 정보로 한정하여 해석되어서는 안되고, 다양한 종류의 정보가 가운데에 위치하는 부호화 단위를 결정하는 과정에서 이용될 수 있다.Referring to FIG. 5, the
일 실시예에 따라 소정 위치의 부호화 단위를 식별하기 위한 소정의 정보는, 결정하려는 부호화 단위에 포함되는 소정의 샘플에서 획득될 수 있다. 도 5를 참조하면, 영상 복호화 장치(100)는 현재 부호화 단위(500)가 분할되어 결정된 복수개의 부호화 단위들(520a, 520b, 520c) 중 소정 위치의 부호화 단위(예를 들면, 복수개로 분할된 부호화 단위 중 가운데에 위치하는 부호화 단위)를 결정하기 위하여 현재 부호화 단위(500) 내의 소정 위치의 샘플(예를 들면, 현재 부호화 단위(500)의 가운데에 위치하는 샘플)에서 획득되는 분할 형태 모드 정보를 이용할 수 있다. 즉, 영상 복호화 장치(100)는 현재 부호화 단위(500)의 블록 형태를 고려하여 상기 소정 위치의 샘플을 결정할 수 있고, 영상 복호화 장치(100)는 현재 부호화 단위(500)가 분할되어 결정되는 복수개의 부호화 단위들(520a, 520b, 520c) 중, 소정의 정보(예를 들면, 분할 형태 모드 정보)가 획득될 수 있는 샘플이 포함된 부호화 단위(520b)를 결정하여 소정의 제한을 둘 수 있다. 도 5를 참조하면 일 실시예에 따라 영상 복호화 장치(100)는 소정의 정보가 획득될 수 있는 샘플로서 현재 부호화 단위(500)의 가운데에 위치하는 샘플(540)을 결정할 수 있고, 영상 복호화 장치(100)는 이러한 샘플(540)이 포함되는 부호화 단위(520b)를 복호화 과정에서의 소정의 제한을 둘 수 있다. 다만 소정의 정보가 획득될 수 있는 샘플의 위치는 상술한 위치로 한정하여 해석되어서는 안되고, 제한을 두기 위해 결정하려는 부호화 단위(520b)에 포함되는 임의의 위치의 샘플들로 해석될 수 있다.According to an embodiment, predetermined information for identifying a coding unit at a predetermined position may be obtained from a predetermined sample included in a coding unit to be determined. Referring to FIG. 5, the
일 실시예에 따라 소정의 정보가 획득될 수 있는 샘플의 위치는 현재 부호화 단위(500)의 형태에 따라 결정될 수 있다. 일 실시예에 따라 블록 형태 정보는 현재 부호화 단위의 형태가 정사각형인지 또는 비-정사각형인지 여부를 결정할 수 있고, 형태에 따라 소정의 정보가 획득될 수 있는 샘플의 위치를 결정할 수 있다. 예를 들면, 영상 복호화 장치(100)는 현재 부호화 단위의 너비에 대한 정보 및 높이에 대한 정보 중 적어도 하나를 이용하여 현재 부호화 단위의 너비 및 높이 중 적어도 하나를 반으로 분할하는 경계 상에 위치하는 샘플을 소정의 정보가 획득될 수 있는 샘플로 결정할 수 있다. 또다른 예를 들면, 영상 복호화 장치(100)는 현재 부호화 단위에 관련된 블록 형태 정보가 비-정사각형 형태임을 나타내는 경우, 현재 부호화 단위의 긴 변을 반으로 분할하는 경계에 인접하는 샘플 중 하나를 소정의 정보가 획득될 수 있는 샘플로 결정할 수 있다. The position of a sample from which predetermined information can be obtained may be determined according to the type of the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위를 복수개의 부호화 단위로 분할한 경우, 복수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여, 분할 형태 모드 정보를 이용할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보를 부호화 단위에 포함된 소정 위치의 샘플에서 획득할 수 있고, 영상 복호화 장치(100)는 현재 부호화 단위가 분할되어 생성된 복수개의 부호화 단위들을 복수개의 부호화 단위 각각에 포함된 소정 위치의 샘플로부터 획득되는 분할 형태 모드 정보를 이용하여 분할할 수 있다. 즉, 부호화 단위는 부호화 단위 각각에 포함된 소정 위치의 샘플에서 획득되는 분할 형태 모드 정보를 이용하여 재귀적으로 분할될 수 있다. 부호화 단위의 재귀적 분할 과정에 대하여는 도 5를 통해 상술하였으므로 자세한 설명은 생략하도록 한다. According to an exemplary embodiment, when the current encoding unit is divided into a plurality of encoding units, the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정할 수 있고, 이러한 적어도 하나의 부호화 단위가 복호화되는 순서를 소정의 블록(예를 들면, 현재 부호화 단위)에 따라 결정할 수 있다.According to an embodiment, the
도 6은 일 실시예에 따라 영상 복호화 장치(100)가 현재 부호화 단위를 분할하여 복수개의 부호화 단위들을 결정하는 경우, 복수개의 부호화 단위들이 처리되는 순서를 도시한다.FIG. 6 illustrates a sequence in which a plurality of encoding units are processed when the
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 제1 부호화 단위(600)를 수직 방향으로 분할하여 제2 부호화 단위(610a, 610b)를 결정하거나 제1 부호화 단위(600)를 수평 방향으로 분할하여 제2 부호화 단위(630a, 630b)를 결정하거나 제1 부호화 단위(600)를 수직 방향 및 수평 방향으로 분할하여 제2 부호화 단위(650a, 650b, 650c, 650d)를 결정할 수 있다. The
도 6을 참조하면, 영상 복호화 장치(100)는 제1 부호화 단위(600)를 수직 방향으로 분할하여 결정된 제2 부호화 단위(610a, 610b)를 수평 방향(610c)으로 처리되도록 순서를 결정할 수 있다. 영상 복호화 장치(100)는 제1 부호화 단위(600)를 수평 방향으로 분할하여 결정된 제2 부호화 단위(630a, 630b)의 처리 순서를 수직 방향(630c)으로 결정할 수 있다. 영상 복호화 장치(100)는 제1 부호화 단위(600)를 수직 방향 및 수평 방향으로 분할하여 결정된 제2 부호화 단위(650a, 650b, 650c, 650d)를 하나의 행에 위치하는 부호화 단위들이 처리된 후 다음 행에 위치하는 부호화 단위들이 처리되는 소정의 순서(예를 들면, 래스터 스캔 순서(raster scan order) 또는 z 스캔 순서(z scan order)(650e) 등)에 따라 결정할 수 있다. Referring to FIG. 6, the
일 실시예에 따라 영상 복호화 장치(100)는 부호화 단위들을 재귀적으로 분할할 수 있다. 도 6을 참조하면, 영상 복호화 장치(100)는 제1 부호화 단위(600)를 분할하여 복수개의 부호화 단위들(610a, 610b, 630a, 630b, 650a, 650b, 650c, 650d)을 결정할 수 있고, 결정된 복수개의 부호화 단위들(610a, 610b, 630a, 630b, 650a, 650b, 650c, 650d) 각각을 재귀적으로 분할할 수 있다. 복수개의 부호화 단위들(610a, 610b, 630a, 630b, 650a, 650b, 650c, 650d)을 분할하는 방법은 제1 부호화 단위(600)를 분할하는 방법에 대응하는 방법이 될 수 있다. 이에 따라 복수개의 부호화 단위들(610a, 610b, 630a, 630b, 650a, 650b, 650c, 650d)은 각각 독립적으로 복수개의 부호화 단위들로 분할될 수 있다. 도 6을 참조하면 영상 복호화 장치(100)는 제1 부호화 단위(600)를 수직 방향으로 분할하여 제2 부호화 단위(610a, 610b)를 결정할 수 있고, 나아가 제2 부호화 단위(610a, 610b) 각각을 독립적으로 분할하거나 분할하지 않는 것으로 결정할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 좌측의 제2 부호화 단위(610a)를 수평 방향으로 분할하여 제3 부호화 단위(620a, 620b)로 분할할 수 있고, 우측의 제2 부호화 단위(610b)는 분할하지 않을 수 있다. The
일 실시예에 따라 부호화 단위들의 처리 순서는 부호화 단위의 분할 과정에 기초하여 결정될 수 있다. 다시 말해, 분할된 부호화 단위들의 처리 순서는 분할되기 직전의 부호화 단위들의 처리 순서에 기초하여 결정될 수 있다. 영상 복호화 장치(100)는 좌측의 제2 부호화 단위(610a)가 분할되어 결정된 제3 부호화 단위(620a, 620b)가 처리되는 순서를 우측의 제2 부호화 단위(610b)와 독립적으로 결정할 수 있다. 좌측의 제2 부호화 단위(610a)가 수평 방향으로 분할되어 제3 부호화 단위(620a, 620b)가 결정되었으므로 제3 부호화 단위(620a, 620b)는 수직 방향(620c)으로 처리될 수 있다. 또한 좌측의 제2 부호화 단위(610a) 및 우측의 제2 부호화 단위(610b)가 처리되는 순서는 수평 방향(610c)에 해당하므로, 좌측의 제2 부호화 단위(610a)에 포함되는 제3 부호화 단위(620a, 620b)가 수직 방향(620c)으로 처리된 후에 우측 부호화 단위(610b)가 처리될 수 있다. 상술한 내용은 부호화 단위들이 각각 분할 전의 부호화 단위에 따라 처리 순서가 결정되는 과정을 설명하기 위한 것이므로, 상술한 실시예에 한정하여 해석되어서는 안되고, 다양한 형태로 분할되어 결정되는 부호화 단위들이 소정의 순서에 따라 독립적으로 처리될 수 있는 다양한 방법으로 이용되는 것으로 해석되어야 한다.According to an embodiment, the processing order of the encoding units may be determined based on the division process of the encoding units. In other words, the processing order of the divided coding units can be determined based on the processing order of the coding units immediately before being divided. The
도 7는 일 실시예에 따라 영상 복호화 장치(100)가 소정의 순서로 부호화 단위가 처리될 수 없는 경우, 현재 부호화 단위가 홀수개의 부호화 단위로 분할되는 것임을 결정하는 과정을 도시한다.7 illustrates a process of determining that the current encoding unit is divided into odd number of encoding units when the
일 실시예에 따라 영상 복호화 장치(100)는 획득된 분할 형태 모드 정보에 기초하여 현재 부호화 단위가 홀수개의 부호화 단위들로 분할되는 것을 결정할 수 있다. 도 7를 참조하면 정사각형 형태의 제1 부호화 단위(700)가 비-정사각형 형태의 제2 부호화 단위(710a, 710b)로 분할될 수 있고, 제2 부호화 단위(710a, 710b)는 각각 독립적으로 제3 부호화 단위(720a, 720b, 720c, 720d, 720e)로 분할될 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 제2 부호화 단위 중 좌측 부호화 단위(710a)는 수평 방향으로 분할하여 복수개의 제3 부호화 단위(720a, 720b)를 결정할 수 있고, 우측 부호화 단위(710b)는 홀수개의 제3 부호화 단위(720c, 720d, 720e)로 분할할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 제3 부호화 단위들(720a, 720b, 720c, 720d, 720e)이 소정의 순서로 처리될 수 있는지 여부를 판단하여 홀수개로 분할된 부호화 단위가 존재하는지를 결정할 수 있다. 도 7을 참조하면, 영상 복호화 장치(100)는 제1 부호화 단위(700)를 재귀적으로 분할하여 제3 부호화 단위(720a, 720b, 720c, 720d, 720e)를 결정할 수 있다. 영상 복호화 장치(100)는 분할 형태 모드 정보 중 적어도 하나에 기초하여, 제1 부호화 단위(700), 제2 부호화 단위(710a, 710b) 또는 제3 부호화 단위(720a, 720b, 720c, 720d, 720e)가 분할되는 형태 중 홀수개의 부호화 단위로 분할되는지 여부를 결정할 수 있다. 예를 들면, 제2 부호화 단위(710a, 710b) 중 우측에 위치하는 부호화 단위가 홀수개의 제3 부호화 단위(720c, 720d, 720e)로 분할될 수 있다. 제1 부호화 단위(700)에 포함되는 복수개의 부호화 단위들이 처리되는 순서는 소정의 순서(예를 들면, z-스캔 순서(z-scan order)(730))가 될 수 있고, 영상 복호화 장치(100)는 우측 제2 부호화 단위(710b)가 홀수개로 분할되어 결정된 제3 부호화 단위(720c, 720d, 720e)가 상기 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 판단할 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 제1 부호화 단위(700)에 포함되는 제3 부호화 단위(720a, 720b, 720c, 720d, 720e)가 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 결정할 수 있으며, 상기 조건은 제3 부호화 단위(720a, 720b, 720c, 720d, 720e)의 경계에 따라 제2 부호화 단위(710a, 710b)의 너비 및 높이 중 적어도 하나를 반으로 분할되는지 여부와 관련된다. 예를 들면 비-정사각형 형태의 좌측 제2 부호화 단위(710a)의 높이를 반으로 분할하여 결정되는 제3 부호화 단위(720a, 720b)는 조건을 만족하지만, 우측 제2 부호화 단위(710b)를 3개의 부호화 단위로 분할하여 결정되는 제3 부호화 단위(720c, 720d, 720e)들의 경계가 우측 제2 부호화 단위(710b)의 너비 또는 높이를 반으로 분할하지 못하므로 제3 부호화 단위(720c, 720d, 720e)는 조건을 만족하지 못하는 것으로 결정될 수 있고, 영상 복호화 장치(100)는 이러한 조건 불만족의 경우 스캔 순서의 단절(disconnection)로 판단하고, 판단 결과에 기초하여 우측 제2 부호화 단위(710b)는 홀수개의 부호화 단위로 분할되는 것으로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 홀수개의 부호화 단위로 분할되는 경우 분할된 부호화 단위들 중 소정 위치의 부호화 단위에 대하여 소정의 제한을 둘 수 있으며, 이러한 제한 내용 또는 소정 위치 등에 대하여는 다양한 실시예를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.According to an embodiment, the
도 8은 일 실시예에 따라 영상 복호화 장치(100)가 제1 부호화 단위(800)를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.FIG. 8 illustrates a process in which the
일 실시예에 따라 영상 복호화 장치(100)는 수신부(160)를 통해 획득한 분할 형태 모드 정보에 기초하여 제1 부호화 단위(800)를 분할할 수 있다. 정사각형 형태의 제1 부호화 단위(800)는 4개의 정사각형 형태를 가지는 부호화 단위로 분할되거나 또는 비-정사각형 형태의 복수개의 부호화 단위로 분할할 수 있다. 예를 들면 도 8을 참조하면, 제1 부호화 단위(800)는 정사각형이고 분할 형태 모드 정보가 비-정사각형의 부호화 단위로 분할됨을 나타내는 경우 영상 복호화 장치(100)는 제1 부호화 단위(800)를 복수개의 비-정사각형의 부호화 단위들로 분할할 수 있다. 구체적으로, 분할 형태 모드 정보가 제1 부호화 단위(800)를 수평 방향 또는 수직 방향으로 분할하여 홀수개의 부호화 단위를 결정하는 것을 나타내는 경우, 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(800)을 홀수개의 부호화 단위들로서 수직 방향으로 분할되어 결정된 제2 부호화 단위(810a, 810b, 810c) 또는 수평 방향으로 분할되어 결정된 제2 부호화 단위(820a, 820b, 820c)로 분할할 수 있다. According to an exemplary embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 제1 부호화 단위(800)에 포함되는 제2 부호화 단위(810a, 810b, 810c, 820a, 820b, 820c)가 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 결정할 수 있으며, 상기 조건은 제2 부호화 단위(810a, 810b, 810c, 820a, 820b, 820c)의 경계에 따라 제1 부호화 단위(800)의 너비 및 높이 중 적어도 하나를 반으로 분할되는지 여부와 관련된다. 도 8을 참조하면 정사각형 형태의 제1 부호화 단위(800)를 수직 방향으로 분할하여 결정되는 제2 부호화 단위(810a, 810b, 810c)들의 경계가 제1 부호화 단위(800)의 너비를 반으로 분할하지 못하므로 제1 부호화 단위(800)는 소정의 순서에 따라 처리될 수 있는 조건을 만족하지 못하는 것으로 결정될 수 있다. 또한 정사각형 형태의 제1 부호화 단위(800)를 수평 방향으로 분할하여 결정되는 제2 부호화 단위(820a, 820b, 820c)들의 경계가 제1 부호화 단위(800)의 너비를 반으로 분할하지 못하므로 제1 부호화 단위(800)는 소정의 순서에 따라 처리될 수 있는 조건을 만족하지 못하는 것으로 결정될 수 있다. 영상 복호화 장치(100)는 이러한 조건 불만족의 경우 스캔 순서의 단절(disconnection)로 판단하고, 판단 결과에 기초하여 제1 부호화 단위(800)는 홀수개의 부호화 단위로 분할되는 것으로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 홀수개의 부호화 단위로 분할되는 경우 분할된 부호화 단위들 중 소정 위치의 부호화 단위에 대하여 소정의 제한을 둘 수 있으며, 이러한 제한 내용 또는 소정 위치 등에 대하여는 다양한 실시예를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.According to an exemplary embodiment, the
일 실시예에 따라, 영상 복호화 장치(100)는 제1 부호화 단위를 분할하여 다양한 형태의 부호화 단위들을 결정할 수 있다.According to an embodiment, the
도 8을 참조하면, 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(800), 비-정사각형 형태의 제1 부호화 단위(830 또는 850)를 다양한 형태의 부호화 단위들로 분할할 수 있다. 8, the
도 9은 일 실시예에 따라 영상 복호화 장치(100)가 제1 부호화 단위(900)가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위가 소정의 조건을 만족하는 경우 제2 부호화 단위가 분할될 수 있는 형태가 제한되는 것을 도시한다.9 is a diagram illustrating an example of a case where the second encoding unit is divided if the second encoding unit of the non-square type determined by dividing the
일 실시예에 따라 영상 복호화 장치(100)는 수신부(160)를 통해 획득한 분할 형태 모드 정보에 기초하여 정사각형 형태의 제1 부호화 단위(900)를 비-정사각형 형태의 제2 부호화 단위(910a, 910b, 920a, 920b)로 분할하는 것으로 결정할 수 있다. 제2 부호화 단위(910a, 910b, 920a, 920b)는 독립적으로 분할될 수 있다. 이에 따라 영상 복호화 장치(100)는 제2 부호화 단위(910a, 910b, 920a, 920b) 각각에 관련된 분할 형태 모드 정보에 기초하여 복수개의 부호화 단위로 분할하거나 분할하지 않는 것을 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 수직 방향으로 제1 부호화 단위(900)가 분할되어 결정된 비-정사각형 형태의 좌측 제2 부호화 단위(910a)를 수평 방향으로 분할하여 제3 부호화 단위(912a, 912b)를 결정할 수 있다. 다만 영상 복호화 장치(100)는 좌측 제2 부호화 단위(910a)를 수평 방향으로 분할한 경우, 우측 제2 부호화 단위(910b)는 좌측 제2 부호화 단위(910a)가 분할된 방향과 동일하게 수평 방향으로 분할될 수 없도록 제한할 수 있다. 만일 우측 제2 부호화 단위(910b)가 동일한 방향으로 분할되어 제3 부호화 단위(914a, 914b)가 결정된 경우, 좌측 제2 부호화 단위(910a) 및 우측 제2 부호화 단위(910b)가 수평 방향으로 각각 독립적으로 분할됨으로써 제3 부호화 단위(912a, 912b, 914a, 914b)가 결정될 수 있다. 하지만 이는 영상 복호화 장치(100)가 분할 형태 모드 정보에 기초하여 제1 부호화 단위(900)를 4개의 정사각형 형태의 제2 부호화 단위(930a, 930b, 930c, 930d)로 분할한 것과 동일한 결과이며 이는 영상 복호화 측면에서 비효율적일 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 수평 방향으로 제1 부호화 단위(330)가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위(920a 또는 920b)를 수직 방향으로 분할하여 제3 부호화 단위(922a, 922b, 924a, 924b)를 결정할 수 있다. 다만 영상 복호화 장치(100)는 제2 부호화 단위 중 하나(예를 들면 상단 제2 부호화 단위(920a))를 수직 방향으로 분할한 경우, 상술한 이유에 따라 다른 제2 부호화 단위(예를 들면 하단 부호화 단위(920b))는 상단 제2 부호화 단위(920a)가 분할된 방향과 동일하게 수직 방향으로 분할될 수 없도록 제한할 수 있다. According to one embodiment, the
도 10은 일 실시예에 따라 분할 형태 모드 정보가 4개의 정사각형 형태의 부호화 단위로 분할하는 것을 나타낼 수 없는 경우, 영상 복호화 장치(100)가 정사각형 형태의 부호화 단위를 분할하는 과정을 도시한다.FIG. 10 illustrates a process in which the
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1000)를 분할하여 제2 부호화 단위(1010a, 1010b, 1020a, 1020b 등)를 결정할 수 있다. 분할 형태 모드 정보에는 부호화 단위가 분할될 수 있는 다양한 형태에 대한 정보가 포함될 수 있으나, 다양한 형태에 대한 정보에는 정사각형 형태의 4개의 부호화 단위로 분할하기 위한 정보가 포함될 수 없는 경우가 있다. 이러한 분할 형태 모드 정보에 따르면, 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(1000)를 4개의 정사각형 형태의 제2 부호화 단위(1030a, 1030b, 1030c, 1030d)로 분할하지 못한다. 분할 형태 모드 정보에 기초하여 영상 복호화 장치(100)는 비-정사각형 형태의 제2 부호화 단위(1010a, 1010b, 1020a, 1020b 등)를 결정할 수 있다. The
일 실시예에 따라 영상 복호화 장치(100)는 비-정사각형 형태의 제2 부호화 단위(1010a, 1010b, 1020a, 1020b 등)를 각각 독립적으로 분할할 수 있다. 재귀적인 방법을 통해 제2 부호화 단위(1010a, 1010b, 1020a, 1020b 등) 각각이 소정의 순서대로 분할될 수 있으며, 이는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1000)가 분할되는 방법에 대응하는 분할 방법일 수 있다. According to an exemplary embodiment, the
예를 들면 영상 복호화 장치(100)는 좌측 제2 부호화 단위(1010a)가 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1012a, 1012b)를 결정할 수 있고, 우측 제2 부호화 단위(1010b)가 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1014a, 1014b)를 결정할 수 있다. 나아가 영상 복호화 장치(100)는 좌측 제2 부호화 단위(1010a) 및 우측 제2 부호화 단위(1010b) 모두 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1016a, 1016b, 1016c, 1016d)를 결정할 수도 있다. 이러한 경우 제1 부호화 단위(1000)가 4개의 정사각형 형태의 제2 부호화 단위(1030a, 1030b, 1030c, 1030d)로 분할된 것과 동일한 형태로 부호화 단위가 결정될 수 있다. For example, the
또 다른 예를 들면 영상 복호화 장치(100)는 상단 제2 부호화 단위(1020a)가 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1022a, 1022b)를 결정할 수 있고, 하단 제2 부호화 단위(1020b)가 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1024a, 1024b)를 결정할 수 있다. 나아가 영상 복호화 장치(100)는 상단 제2 부호화 단위(1020a) 및 하단 제2 부호화 단위(1020b) 모두 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1022a, 1022b, 1024a, 1024b)를 결정할 수도 있다. 이러한 경우 제1 부호화 단위(1000)가 4개의 정사각형 형태의 제2 부호화 단위(1030a, 1030b, 1030c, 1030d)로 분할된 것과 동일한 형태로 부호화 단위가 결정될 수 있다. In another example, the
도 11는 일 실시예에 따라 복수개의 부호화 단위들 간의 처리 순서가 부호화 단위의 분할 과정에 따라 달라질 수 있음을 도시한 것이다.11 illustrates that the processing order among a plurality of coding units may be changed according to the division process of the coding unit according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1100)를 분할할 수 있다. 블록 형태가 정사각형이고, 분할 형태 모드 정보가 제1 부호화 단위(1100)가 수평 방향 및 수직 방향 중 적어도 하나의 방향으로 분할됨을 나타내는 경우, 영상 복호화 장치(100)는 제1 부호화 단위(1100)를 분할하여 제2 부호화 단위(예를 들면, 1110a, 1110b, 1120a, 1120b, 1130a, 1130b, 1130c, 1130d 등)를 결정할 수 있다. 도 11을 참조하면 제1 부호화 단위1100)가 수평 방향 또는 수직 방향만으로 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위(1110a, 1110b, 1120a, 1120b)는 각각에 대한 분할 형태 모드 정보에 기초하여 독립적으로 분할될 수 있다. 예를 들면 영상 복호화 장치(100)는 제1 부호화 단위(1100)가 수직 방향으로 분할되어 생성된 제2 부호화 단위(1110a, 1110b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(1116a, 1116b, 1116c, 1116d)를 결정할 수 있고, 제1 부호화 단위(1100)가 수평 방향으로 분할되어 생성된 제2 부호화 단위(1120a, 1120b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(1126a, 1126b, 1126c, 1126d)를 결정할 수 있다. 이러한 제2 부호화 단위(1110a, 1110b, 1120a, 1120b)의 분할 과정은 도 9와 관련하여 상술하였으므로 자세한 설명은 생략하도록 한다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 소정의 순서에 따라 부호화 단위를 처리할 수 있다. 소정의 순서에 따른 부호화 단위의 처리에 대한 특징은 도 6과 관련하여 상술하였으므로 자세한 설명은 생략하도록 한다. 도 11을 참조하면 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(1100)를 분할하여 4개의 정사각형 형태의 제3 부호화 단위(1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, 1126d)를 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 제1 부호화 단위(1100)가 분할되는 형태에 따라 제3 부호화 단위(1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, 1126d)의 처리 순서를 결정할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 수직 방향으로 분할되어 생성된 제2 부호화 단위(1110a, 1110b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(1116a, 1116b, 1116c, 1116d)를 결정할 수 있고, 영상 복호화 장치(100)는 좌측 제2 부호화 단위(1110a)에 포함되는 제3 부호화 단위(1116a, 1116b)를 수직 방향으로 먼저 처리한 후, 우측 제2 부호화 단위(1110b)에 포함되는 제3 부호화 단위(1116c, 1116d)를 수직 방향으로 처리하는 순서(1117)에 따라 제3 부호화 단위(1116a, 1116b, 1116c, 1116d)를 처리할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 수평 방향으로 분할되어 생성된 제2 부호화 단위(1120a, 1120b)를 수직 방향으로 각각 분할하여 제3 부호화 단위(1126a, 1126b, 1126c, 1126d)를 결정할 수 있고, 영상 복호화 장치(100)는 상단 제2 부호화 단위(1120a)에 포함되는 제3 부호화 단위(1126a, 1126b)를 수평 방향으로 먼저 처리한 후, 하단 제2 부호화 단위(1120b)에 포함되는 제3 부호화 단위(1126c, 1126d)를 수평 방향으로 처리하는 순서(1127)에 따라 제3 부호화 단위(1126a, 1126b, 1126c, 1126d)를 처리할 수 있다.According to an embodiment, the
도 11을 참조하면, 제2 부호화 단위(1110a, 1110b, 1120a, 1120b)가 각각 분할되어 정사각형 형태의 제3 부호화 단위(1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, 1126d)가 결정될 수 있다. 수직 방향으로 분할되어 결정된 제2 부호화 단위(1110a, 1110b) 및 수평 방향으로 분할되어 결정된 제2 부호화 단위(1120a, 1120b)는 서로 다른 형태로 분할된 것이지만, 이후에 결정되는 제3 부호화 단위(1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, 1126d)에 따르면 결국 동일한 형태의 부호화 단위들로 제1 부호화 단위(1100)가 분할된 결과가 된다. 이에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 상이한 과정을 통해 재귀적으로 부호화 단위를 분할함으로써 결과적으로 동일한 형태의 부호화 단위들을 결정하더라도, 동일한 형태로 결정된 복수개의 부호화 단위들을 서로 다른 순서로 처리할 수 있다.Referring to FIG. 11, the
도 12는 일 실시예에 따라 부호화 단위가 재귀적으로 분할되어 복수개의 부호화 단위가 결정되는 경우, 부호화 단위의 형태 및 크기가 변함에 따라 부호화 단위 심도가 결정되는 과정을 도시한다.FIG. 12 illustrates a process of determining the depth of an encoding unit when the encoding unit is recursively divided and a plurality of encoding units are determined according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 부호화 단위의 심도를 소정의 기준에 따라 결정할 수 있다. 예를 들면 소정의 기준은 부호화 단위의 긴 변의 길이가 될 수 있다. 영상 복호화 장치(100)는 현재 부호화 단위의 긴 변의 길이가 분할되기 전의 부호화 단위의 긴 변의 길이보다 2n (n>0) 배로 분할된 경우, 현재 부호화 단위의 심도는 분할되기 전의 부호화 단위의 심도보다 n만큼 심도가 증가된 것으로 결정할 수 있다. 이하에서는 심도가 증가된 부호화 단위를 하위 심도의 부호화 단위로 표현하도록 한다.According to an exemplary embodiment, the
도 12를 참조하면, 일 실시예에 따라 정사각형 형태임을 나타내는 블록 형태 정보(예를 들면 블록 형태 정보는 ′0: SQUARE′를 나타낼 수 있음)에 기초하여 영상 복호화 장치(100)는 정사각형 형태인 제1 부호화 단위(1200)를 분할하여 하위 심도의 제2 부호화 단위(1202), 제3 부호화 단위(1204) 등을 결정할 수 있다. 정사각형 형태의 제1 부호화 단위(1200)의 크기를 2Nx2N이라고 한다면, 제1 부호화 단위(1200)의 너비 및 높이를 1/21배로 분할하여 결정된 제2 부호화 단위(1202)는 NxN의 크기를 가질 수 있다. 나아가 제2 부호화 단위(1202)의 너비 및 높이를 1/2크기로 분할하여 결정된 제3 부호화 단위(1204)는 N/2xN/2의 크기를 가질 수 있다. 이 경우 제3 부호화 단위(1204)의 너비 및 높이는 제1 부호화 단위(1200)의 1/22배에 해당한다. 제1 부호화 단위(1200)의 심도가 D인 경우 제1 부호화 단위(1200)의 너비 및 높이의 1/21배인 제2 부호화 단위(1202)의 심도는 D+1일 수 있고, 제1 부호화 단위(1200)의 너비 및 높이의 1/22배인 제3 부호화 단위(1204)의 심도는 D+2일 수 있다. Referring to FIG. 12, on the basis of block type information (for example, block type information may indicate '0: SQUARE') indicating that the block type information is a square type according to an embodiment, 1
일 실시예에 따라 비-정사각형 형태를 나타내는 블록 형태 정보(예를 들면 블록 형태 정보는, 높이가 너비보다 긴 비-정사각형임을 나타내는 ′1: NS_VER′ 또는 너비가 높이보다 긴 비-정사각형임을 나타내는 ′2: NS_HOR′를 나타낼 수 있음)에 기초하여, 영상 복호화 장치(100)는 비-정사각형 형태인 제1 부호화 단위(1210 또는 1220)를 분할하여 하위 심도의 제2 부호화 단위(1212 또는 1222), 제3 부호화 단위(1214 또는 1224) 등을 결정할 수 있다. According to an exemplary embodiment, block type information indicating a non-square shape (for example, block type information is' 1: NS_VER 'indicating that the height is a non-square having a width greater than the width or' 2), the
영상 복호화 장치(100)는 Nx2N 크기의 제1 부호화 단위(1210)의 너비 및 높이 중 적어도 하나를 분할하여 제2 부호화 단위(예를 들면, 1202, 1212, 1222 등)를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 제1 부호화 단위(1210)를 수평 방향으로 분할하여 NxN 크기의 제2 부호화 단위(1202) 또는 NxN/2 크기의 제2 부호화 단위(1222)를 결정할 수 있고, 수평 방향 및 수직 방향으로 분할하여 N/2xN 크기의 제2 부호화 단위(1212)를 결정할 수도 있다.The
일 실시예에 따라 영상 복호화 장치(100)는 2NxN 크기의 제1 부호화 단위(1220) 의 너비 및 높이 중 적어도 하나를 분할하여 제2 부호화 단위(예를 들면, 1202, 1212, 1222 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(100)는 제1 부호화 단위(1220)를 수직 방향으로 분할하여 NxN 크기의 제2 부호화 단위(1202) 또는 N/2xN 크기의 제2 부호화 단위(1212)를 결정할 수 있고, 수평 방향 및 수직 방향으로 분할하여 NxN/2 크기의 제2 부호화 단위(1222)를 결정할 수도 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 NxN 크기의 제2 부호화 단위(1202) 의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 1204, 1214, 1224 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(100)는 제2 부호화 단위(1202)를 수직 방향 및 수평 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(1204)를 결정하거나 N/2xN/2 크기의 제3 부호화 단위(1214)를 결정하거나 N/2xN/2 크기의 제3 부호화 단위(1224)를 결정할 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 N/2xN 크기의 제2 부호화 단위(1212)의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 1204, 1214, 1224 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(100)는 제2 부호화 단위(1212)를 수평 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(1204) 또는 N/2xN/2 크기의 제3 부호화 단위(1224)를 결정하거나 수직 방향 및 수평 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(1214)를 결정할 수 있다.According to one embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 NxN/2 크기의 제2 부호화 단위(1214)의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 1204, 1214, 1224 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(100)는 제2 부호화 단위(1212)를 수직 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(1204) 또는 N/2xN/2 크기의 제3 부호화 단위(1214)를 결정하거나 수직 방향 및 수평 방향으로 분할하여 N/2xN/2크기의 제3 부호화 단위(1224)를 결정할 수 있다.According to an exemplary embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 정사각형 형태의 부호화 단위(예를 들면, 1200, 1202, 1204)를 수평 방향 또는 수직 방향으로 분할할 수 있다. 예를 들면, 2Nx2N 크기의 제1 부호화 단위(1200)를 수직 방향으로 분할하여 Nx2N 크기의 제1 부호화 단위(1210)를 결정하거나 수평 방향으로 분할하여 2NxN 크기의 제1 부호화 단위(1220)를 결정할 수 있다. 일 실시예에 따라 심도가 부호화 단위의 가장 긴 변의 길이에 기초하여 결정되는 경우, 2Nx2N 크기의 제1 부호화 단위(1200, 1202 또는 1204)가 수평 방향 또는 수직 방향으로 분할되어 결정되는 부호화 단위의 심도는 제1 부호화 단위(1200, 1202 또는 1204)의 심도와 동일할 수 있다.According to an embodiment, the
일 실시예에 따라 제3 부호화 단위(1214 또는 1224)의 너비 및 높이는 제1 부호화 단위(1210 또는 1220)의 1/2배에 해당할 수 있다. 제1 부호화 단위(1210 또는 1220)의 심도가 D인 경우 제1 부호화 단위(1210 또는 1220)의 너비 및 높이의 1/2배인 제2 부호화 단위(1212 또는 1214)의 심도는 D+1일 수 있고, 제1 부호화 단위(1210 또는 1220)의 너비 및 높이의 1/2배인 제3 부호화 단위(1214 또는 1224)의 심도는 D+2일 수 있다. According to an embodiment, the width and height of the
도 13은 일 실시예에 따라 부호화 단위들의 형태 및 크기에 따라 결정될 수 있는 심도 및 부호화 단위 구분을 위한 인덱스(part index, 이하 PID)를 도시한다.FIG. 13 illustrates a depth index (hereinafter referred to as PID) for coding unit classification and depth that can be determined according to the type and size of coding units according to an exemplary embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(1300)를 분할하여 다양한 형태의 제2 부호화 단위를 결정할 수 있다. 도 13을 참조하면, 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 제1 부호화 단위(1300)를 수직 방향 및 수평 방향 중 적어도 하나의 방향으로 분할하여 제2 부호화 단위(1302a, 1302b, 1304a, 1304b, 1306a, 1306b, 1306c, 1306d)를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 제1 부호화 단위(1300)에 대한 분할 형태 모드 정보에 기초하여 제2 부호화 단위(1302a, 1302b, 1304a, 1304b, 1306a, 1306b, 1306c, 1306d)를 결정할 수 있다. According to an embodiment, the
일 실시예에 따라 정사각형 형태의 제1 부호화 단위(1300)에 대한 분할 형태 모드 정보에 따라 결정되는 제2 부호화 단위(1302a, 1302b, 1304a, 1304b, 1306a, 1306b, 1306c, 1306d)는 긴 변의 길이에 기초하여 심도가 결정될 수 있다. 예를 들면, 정사각형 형태의 제1 부호화 단위(1300)의 한 변의 길이와 비-정사각형 형태의 제2 부호화 단위(1302a, 1302b, 1304a, 1304b)의 긴 변의 길이가 동일하므로, 제1 부호화 단위(1300)와 비-정사각형 형태의 제2 부호화 단위(1302a, 1302b, 1304a, 1304b)의 심도는 D로 동일하다고 볼 수 있다. 이에 반해 영상 복호화 장치(100)가 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1300)를 4개의 정사각형 형태의 제2 부호화 단위(1306a, 1306b, 1306c, 1306d)로 분할한 경우, 정사각형 형태의 제2 부호화 단위(1306a, 1306b, 1306c, 1306d)의 한 변의 길이는 제1 부호화 단위(1300)의 한 변의 길이의 1/2배 이므로, 제2 부호화 단위(1306a, 1306b, 1306c, 1306d)의 심도는 제1 부호화 단위(1300)의 심도인 D보다 한 심도 하위인 D+1의 심도일 수 있다.The
일 실시예에 따라 영상 복호화 장치(100)는 높이가 너비보다 긴 형태의 제1 부호화 단위(1310)를 분할 형태 모드 정보에 따라 수평 방향으로 분할하여 복수개의 제2 부호화 단위(1312a, 1312b, 1314a, 1314b, 1314c)로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 너비가 높이보다 긴 형태의 제1 부호화 단위(1320)를 분할 형태 모드 정보에 따라 수직 방향으로 분할하여 복수개의 제2 부호화 단위(1322a, 1322b, 1324a, 1324b, 1324c)로 분할할 수 있다.According to an embodiment, the
일 실시예에 따라 비-정사각형 형태의 제1 부호화 단위(1310 또는 1320)에 대한 분할 형태 모드 정보에 따라 결정되는 제2 부호화 단위(1312a, 1312b, 1314a, 1314b, 1316a, 1316b, 1316c, 1316d)는 긴 변의 길이에 기초하여 심도가 결정될 수 있다. 예를 들면, 정사각형 형태의 제2 부호화 단위(1312a, 1312b)의 한 변의 길이는 높이가 너비보다 긴 비-정사각형 형태의 제1 부호화 단위(1310)의 한 변의 길이의 1/2배이므로, 정사각형 형태의 제2 부호화 단위(1302a, 1302b, 1304a, 1304b)의 심도는 비-정사각형 형태의 제1 부호화 단위(1310)의 심도 D보다 한 심도 하위의 심도인 D+1이다. The
나아가 영상 복호화 장치(100)가 분할 형태 모드 정보에 기초하여 비-정사각형 형태의 제1 부호화 단위(1310)를 홀수개의 제2 부호화 단위(1314a, 1314b, 1314c)로 분할할 수 있다. 홀수개의 제2 부호화 단위(1314a, 1314b, 1314c)는 비-정사각형 형태의 제2 부호화 단위(1314a, 1314c) 및 정사각형 형태의 제2 부호화 단위(1314b)를 포함할 수 있다. 이 경우 비-정사각형 형태의 제2 부호화 단위(1314a, 1314c)의 긴 변의 길이 및 정사각형 형태의 제2 부호화 단위(1314b)의 한 변의 길이는 제1 부호화 단위(1310)의 한 변의 길이의 1/2배 이므로, 제2 부호화 단위(1314a, 1314b, 1314c)의 심도는 제1 부호화 단위(1310)의 심도인 D보다 한 심도 하위인 D+1의 심도일 수 있다. 영상 복호화 장치(100)는 제1 부호화 단위(1310)와 관련된 부호화 단위들의 심도를 결정하는 상기 방식에 대응하는 방식으로, 너비가 높이보다 긴 비-정사각형 형태의 제1 부호화 단위(1320)와 관련된 부호화 단위들의 심도를 결정할 수 있다.Further, the
일 실시예에 따라 영상 복호화 장치(100)는 분할된 부호화 단위들의 구분을 위한 인덱스(PID)를 결정함에 있어서, 홀수개로 분할된 부호화 단위들이 서로 동일한 크기가 아닌 경우, 부호화 단위들 간의 크기 비율에 기초하여 인덱스를 결정할 수 있다. 도 13을 참조하면, 홀수개로 분할된 부호화 단위들(1314a, 1314b, 1314c) 중 가운데에 위치하는 부호화 단위(1314b)는 다른 부호화 단위들(1314a, 1314c)와 너비는 동일하지만 높이가 다른 부호화 단위들(1314a, 1314c)의 높이의 두 배일 수 있다. 즉, 이 경우 가운데에 위치하는 부호화 단위(1314b)는 다른 부호화 단위들(1314a, 1314c)의 두 개를 포함할 수 있다. 따라서, 스캔 순서에 따라 가운데에 위치하는 부호화 단위(1314b)의 인덱스(PID)가 1이라면 그 다음 순서에 위치하는 부호화 단위(1314c)는 인덱스가 2가 증가한 3일수 있다. 즉 인덱스의 값의 불연속성이 존재할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 이러한 분할된 부호화 단위들 간의 구분을 위한 인덱스의 불연속성의 존재 여부에 기초하여 홀수개로 분할된 부호화 단위들이 서로 동일한 크기가 아닌지 여부를 결정할 수 있다. According to an exemplary embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위로부터 분할되어 결정된 복수개의 부호화 단위들을 구분하기 위한 인덱스의 값에 기초하여 특정 분할 형태로 분할된 것인지를 결정할 수 있다. 도 13을 참조하면 영상 복호화 장치(100)는 높이가 너비보다 긴 직사각형 형태의 제1 부호화 단위(1310)를 분할하여 짝수개의 부호화 단위(1312a, 1312b)를 결정하거나 홀수개의 부호화 단위(1314a, 1314b, 1314c)를 결정할 수 있다. 영상 복호화 장치(100)는 복수개의 부호화 단위 각각을 구분하기 위하여 각 부호화 단위를 나타내는 인덱스(PID)를 이용할 수 있다. 일 실시예에 따라 PID는 각각의 부호화 단위의 소정 위치의 샘플(예를 들면, 좌측 상단 샘플)에서 획득될 수 있다. According to an exemplary embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 부호화 단위의 구분을 위한 인덱스를 이용하여 분할되어 결정된 부호화 단위들 중 소정 위치의 부호화 단위를 결정할 수 있다. 일 실시예에 따라 높이가 너비보다 긴 직사각형 형태의 제1 부호화 단위(1310)에 대한 분할 형태 모드 정보가 3개의 부호화 단위로 분할됨을 나타내는 경우 영상 복호화 장치(100)는 제1 부호화 단위(1310)를 3개의 부호화 단위(1314a, 1314b, 1314c)로 분할할 수 있다. 영상 복호화 장치(100)는 3개의 부호화 단위(1314a, 1314b, 1314c) 각각에 대한 인덱스를 할당할 수 있다. 영상 복호화 장치(100)는 홀수개로 분할된 부호화 단위 중 가운데 부호화 단위를 결정하기 위하여 각 부호화 단위에 대한 인덱스를 비교할 수 있다. 영상 복호화 장치(100)는 부호화 단위들의 인덱스에 기초하여 인덱스들 중 가운데 값에 해당하는 인덱스를 갖는 부호화 단위(1314b)를, 제1 부호화 단위(1310)가 분할되어 결정된 부호화 단위 중 가운데 위치의 부호화 단위로서 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 분할된 부호화 단위들의 구분을 위한 인덱스를 결정함에 있어서, 부호화 단위들이 서로 동일한 크기가 아닌 경우, 부호화 단위들 간의 크기 비율에 기초하여 인덱스를 결정할 수 있다. 도 13을 참조하면, 제1 부호화 단위(1310)가 분할되어 생성된 부호화 단위(1314b)는 다른 부호화 단위들(1314a, 1314c)와 너비는 동일하지만 높이가 다른 부호화 단위들(1314a, 1314c)의 높이의 두 배일 수 있다. 이 경우 가운데에 위치하는 부호화 단위(1314b)의 인덱스(PID)가 1이라면 그 다음 순서에 위치하는 부호화 단위(1314c)는 인덱스가 2가 증가한 3일수 있다. 이러한 경우처럼 균일하게 인덱스가 증가하다가 증가폭이 달라지는 경우, 영상 복호화 장치(100)는 다른 부호화 단위들과 다른 크기를 가지는 부호화 단위를 포함하는 복수개의 부호화 단위로 분할된 것으로 결정할 수 있다, 일 실시예에 따라 분할 형태 모드 정보가 홀수개의 부호화 단위로 분할됨을 나타내는 경우, 영상 복호화 장치(100)는 홀수개의 부호화 단위 중 소정 위치의 부호화 단위(예를 들면 가운데 부호화 단위)가 다른 부호화 단위와 크기가 다른 형태로 현재 부호화 단위를 분할할 수 있다. 이 경우 영상 복호화 장치(100)는 부호화 단위에 대한 인덱스(PID)를 이용하여 다른 크기를 가지는 가운데 부호화 단위를 결정할 수 있다. 다만 상술한 인덱스, 결정하고자 하는 소정 위치의 부호화 단위의 크기 또는 위치는 일 실시예를 설명하기 위해 특정한 것이므로 이에 한정하여 해석되어서는 안되며, 다양한 인덱스, 부호화 단위의 위치 및 크기가 이용될 수 있는 것으로 해석되어야 한다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 부호화 단위의 재귀적인 분할이 시작되는 소정의 데이터 단위를 이용할 수 있다. According to an exemplary embodiment, the
도 14는 일 실시예에 따라 픽처에 포함되는 복수개의 소정의 데이터 단위에 따라 복수개의 부호화 단위들이 결정된 것을 도시한다.FIG. 14 shows that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to an embodiment.
일 실시예에 따라 소정의 데이터 단위는 부호화 단위가 분할 형태 모드 정보를 이용하여 재귀적으로 분할되기 시작하는 데이터 단위로 정의될 수 있다. 즉, 현재 픽처를 분할하는 복수개의 부호화 단위들이 결정되는 과정에서 이용되는 최상위 심도의 부호화 단위에 해당할 수 있다. 이하에서는 설명 상 편의를 위해 이러한 소정의 데이터 단위를 기준 데이터 단위라고 지칭하도록 한다. According to one embodiment, a predetermined data unit may be defined as a unit of data in which an encoding unit begins to be recursively segmented using segmentation mode information. That is, it may correspond to a coding unit of the highest depth used in a process of determining a plurality of coding units for dividing a current picture. Hereinafter, such a predetermined data unit is referred to as a reference data unit for convenience of explanation.
일 실시예에 따라 기준 데이터 단위는 소정의 크기 및 형태를 나타낼 수 있다. 일 실시예에 따라, 기준 부호화 단위는 MxN의 샘플들을 포함할 수 있다. 여기서 M 및 N은 서로 동일할 수도 있으며, 2의 승수로 표현되는 정수일 수 있다. 즉, 기준 데이터 단위는 정사각형 또는 비-정사각형의 형태를 나타낼 수 있으며, 이후에 정수개의 부호화 단위로 분할될 수 있다. According to one embodiment, the reference data unit may represent a predetermined size and shape. According to one embodiment, the reference encoding unit may comprise samples of MxN. Here, M and N may be equal to each other, or may be an integer represented by a multiplier of 2. That is, the reference data unit may represent a square or a non-square shape, and may be divided into an integer number of encoding units.
일 실시예에 따라 영상 복호화 장치(100)는 현재 픽처를 복수개의 기준 데이터 단위로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 현재 픽처를 분할하는 복수개의 기준 데이터 단위를 각각의 기준 데이터 단위에 대한 분할 정보를 이용하여 분할할 수 있다. 이러한 기준 데이터 단위의 분할 과정은 쿼드 트리(quad-tree)구조를 이용한 분할 과정에 대응될 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 현재 픽처에 포함되는 기준 데이터 단위가 가질 수 있는 최소 크기를 미리 결정할 수 있다. 이에 따라, 영상 복호화 장치(100)는 최소 크기 이상의 크기를 갖는 다양한 크기의 기준 데이터 단위를 결정할 수 있고, 결정된 기준 데이터 단위를 기준으로 분할 형태 모드 정보를 이용하여 적어도 하나의 부호화 단위를 결정할 수 있다. According to an embodiment, the
도 14를 참조하면, 영상 복호화 장치(100)는 정사각형 형태의 기준 부호화 단위(1400)를 이용할 수 있고, 또는 비-정사각형 형태의 기준 부호화 단위(1402)를 이용할 수도 있다. 일 실시예에 따라 기준 부호화 단위의 형태 및 크기는 적어도 하나의 기준 부호화 단위를 포함할 수 있는 다양한 데이터 단위(예를 들면, 시퀀스(sequence), 픽처(picture), 슬라이스(slice), 슬라이스 세그먼트(slice segment), 최대부호화단위 등)에 따라 결정될 수 있다. Referring to FIG. 14, the
일 실시예에 따라 영상 복호화 장치(100)의 수신부(160)는 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보 중 적어도 하나를 상기 다양한 데이터 단위마다 비트스트림으로부터 획득할 수 있다. 정사각형 형태의 기준 부호화 단위(1400)에 포함되는 적어도 하나의 부호화 단위가 결정되는 과정은 도 10의 현재 부호화 단위(300)가 분할되는 과정을 통해 상술하였고, 비-정사각형 형태의 기준 부호화 단위(1400)에 포함되는 적어도 하나의 부호화 단위가 결정되는 과정은 도 11의 현재 부호화 단위(1100 또는 1150)가 분할되는 과정을 통해 상술하였으므로 자세한 설명은 생략하도록 한다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 소정의 조건에 기초하여 미리 결정되는 일부 데이터 단위에 따라 기준 부호화 단위의 크기 및 형태를 결정하기 위하여, 기준 부호화 단위의 크기 및 형태를 식별하기 위한 인덱스를 이용할 수 있다. 즉, 수신부(160)는 비트스트림으로부터 상기 다양한 데이터 단위(예를 들면, 시퀀스, 픽처, 슬라이스, 슬라이스 세그먼트, 최대부호화단위 등) 중 소정의 조건(예를 들면 슬라이스 이하의 크기를 갖는 데이터 단위)을 만족하는 데이터 단위로서 슬라이스, 슬라이스 세그먼트, 최대부호화 단위 등 마다, 기준 부호화 단위의 크기 및 형태의 식별을 위한 인덱스만을 획득할 수 있다. 영상 복호화 장치(100)는 인덱스를 이용함으로써 상기 소정의 조건을 만족하는 데이터 단위마다 기준 데이터 단위의 크기 및 형태를 결정할 수 있다. 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보를 상대적으로 작은 크기의 데이터 단위마다 비트스트림으로부터 획득하여 이용하는 경우, 비트스트림의 이용 효율이 좋지 않을 수 있으므로, 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보를 직접 획득하는 대신 상기 인덱스만을 획득하여 이용할 수 있다. 이 경우 기준 부호화 단위의 크기 및 형태를 나타내는 인덱스에 대응하는 기준 부호화 단위의 크기 및 형태 중 적어도 하나는 미리 결정되어 있을 수 있다. 즉, 영상 복호화 장치(100)는 미리 결정된 기준 부호화 단위의 크기 및 형태 중 적어도 하나를 인덱스에 따라 선택함으로써, 인덱스 획득의 기준이 되는 데이터 단위에 포함되는 기준 부호화 단위의 크기 및 형태 중 적어도 하나를 결정할 수 있다.In order to determine the size and the type of the reference encoding unit according to a predetermined data unit predetermined based on a predetermined condition, the
일 실시예에 따라 영상 복호화 장치(100)는 하나의 최대 부호화 단위에 포함하는 적어도 하나의 기준 부호화 단위를 이용할 수 있다. 즉, 영상을 분할하는 최대 부호화 단위에는 적어도 하나의 기준 부호화 단위가 포함될 수 있고, 각각의 기준 부호화 단위의 재귀적인 분할 과정을 통해 부호화 단위가 결정될 수 있다. 일 실시예에 따라 최대 부호화 단위의 너비 및 높이 중 적어도 하나는 기준 부호화 단위의 너비 및 높이 중 적어도 하나의 정수배에 해당할 수 있다. 일 실시예에 따라 기준 부호화 단위의 크기는 최대부호화단위를 쿼드 트리 구조에 따라 n번 분할한 크기일 수 있다. 즉, 영상 복호화 장치(100)는 최대부호화단위를 쿼드 트리 구조에 따라 n 번 분할하여 기준 부호화 단위를 결정할 수 있고, 다양한 실시예들에 따라 기준 부호화 단위를 분할 형태 모드 정보 중 적어도 하나에 기초하여 분할할 수 있다.According to an exemplary embodiment, the
도 15는 일 실시예에 따라 픽처(1500)에 포함되는 기준 부호화 단위의 결정 순서를 결정하는 기준이 되는 프로세싱 블록을 도시한다.FIG. 15 shows a processing block serving as a reference for determining a determination order of a reference encoding unit included in a
일 실시예에 따라 영상 복호화 장치(100)는 픽처를 분할하는 적어도 하나의 프로세싱 블록을 결정할 수 있다. 프로세싱 블록이란, 영상을 분할하는 적어도 하나의 기준 부호화 단위를 포함하는 데이터 단위로서, 프로세싱 블록에 포함되는 적어도 하나의 기준 부호화 단위는 특정 순서대로 결정될 수 있다. 즉, 각각의 프로세싱 블록에서 결정되는 적어도 하나의 기준 부호화 단위의 결정 순서는 기준 부호화 단위가 결정될 수 있는 다양한 순서의 종류 중 하나에 해당할 수 있으며, 각각의 프로세싱 블록에서 결정되는 기준 부호화 단위 결정 순서는 프로세싱 블록마다 상이할 수 있다. 프로세싱 블록마다 결정되는 기준 부호화 단위의 결정 순서는 래스터 스캔(raster scan), Z 스캔(Z-scan), N 스캔(N-scan), 우상향 대각 스캔(up-right diagonal scan), 수평적 스캔(horizontal scan), 수직적 스캔(vertical scan) 등 다양한 순서 중 하나일 수 있으나, 결정될 수 있는 순서는 상기 스캔 순서들에 한정하여 해석되어서는 안 된다. According to one embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 프로세싱 블록의 크기에 대한 정보를 획득하여 영상에 포함되는 적어도 하나의 프로세싱 블록의 크기를 결정할 수 있다. 영상 복호화 장치(100)는 프로세싱 블록의 크기에 대한 정보를 비트스트림으로부터 획득하여 영상에 포함되는 적어도 하나의 프로세싱 블록의 크기를 결정할 수 있다. 이러한 프로세싱 블록의 크기는 프로세싱 블록의 크기에 대한 정보가 나타내는 데이터 단위의 소정의 크기일 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)의 수신부(160)는 비트스트림으로부터 프로세싱 블록의 크기에 대한 정보를 특정의 데이터 단위마다 획득할 수 있다. 예를 들면 프로세싱 블록의 크기에 대한 정보는 영상, 시퀀스, 픽처, 슬라이스, 슬라이스 세그먼트 등의 데이터 단위로 비트스트림으로부터 획득될 수 있다. 즉 수신부(160)는 상기 여러 데이터 단위마다 비트스트림으로부터 프로세싱 블록의 크기에 대한 정보를 획득할 수 있고 영상 복호화 장치(100)는 획득된 프로세싱 블록의 크기에 대한 정보를 이용하여 픽처를 분할하는 적어도 하나의 프로세싱 블록의 크기를 결정할 수 있으며, 이러한 프로세싱 블록의 크기는 기준 부호화 단위의 정수배의 크기일 수 있다. According to an embodiment, the receiving
일 실시예에 따라 영상 복호화 장치(100)는 픽처(1500)에 포함되는 프로세싱 블록(1502, 1512)의 크기를 결정할 수 있다. 예를 들면, 영상 복호화 장치(100)는 비트스트림으로부터 획득된 프로세싱 블록의 크기에 대한 정보에 기초하여 프로세싱 블록의 크기를 결정할 수 있다. 도 15를 참조하면, 영상 복호화 장치(100)는 일 실시예에 따라 프로세싱 블록(1502, 1512)의 가로크기를 기준 부호화 단위 가로크기의 4배, 세로크기를 기준 부호화 단위의 세로크기의 4배로 결정할 수 있다. 영상 복호화 장치(100)는 적어도 하나의 프로세싱 블록 내에서 적어도 하나의 기준 부호화 단위가 결정되는 순서를 결정할 수 있다.The
일 실시예에 따라, 영상 복호화 장치(100)는 프로세싱 블록의 크기에 기초하여 픽처(1500)에 포함되는 각각의 프로세싱 블록(1502, 1512)을 결정할 수 있고, 프로세싱 블록(1502, 1512)에 포함되는 적어도 하나의 기준 부호화 단위의 결정 순서를 결정할 수 있다. 일 실시예에 따라 기준 부호화 단위의 결정은 기준 부호화 단위의 크기의 결정을 포함할 수 있다.According to one embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 비트스트림으로부터 적어도 하나의 프로세싱 블록에 포함되는 적어도 하나의 기준 부호화 단위의 결정 순서에 대한 정보를 획득할 수 있고, 획득한 결정 순서에 대한 정보에 기초하여 적어도 하나의 기준 부호화 단위가 결정되는 순서를 결정할 수 있다. 결정 순서에 대한 정보는 프로세싱 블록 내에서 기준 부호화 단위들이 결정되는 순서 또는 방향으로 정의될 수 있다. 즉, 기준 부호화 단위들이 결정되는 순서는 각각의 프로세싱 블록마다 독립적으로 결정될 수 있다.According to an exemplary embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 특정 데이터 단위마다 기준 부호화 단위의 결정 순서에 대한 정보를 비트스트림으로부터 획득할 수 있다. 예를 들면, 수신부(160)는 기준 부호화 단위의 결정 순서에 대한 정보를 영상, 시퀀스, 픽처, 슬라이스, 슬라이스 세그먼트, 프로세싱 블록 등의 데이터 단위로마다 비트스트림으로부터 획득할 수 있다. 기준 부호화 단위의 결정 순서에 대한 정보는 프로세싱 블록 내에서의 기준 부호화 단위 결정 순서를 나타내므로, 결정 순서에 대한 정보는 정수개의 프로세싱 블록을 포함하는 특정 데이터 단위 마다 획득될 수 있다.According to one embodiment, the
영상 복호화 장치(100)는 일 실시예에 따라 결정된 순서에 기초하여 적어도 하나의 기준 부호화 단위를 결정할 수 있다.The
일 실시예에 따라 수신부(160)는 비트스트림으로부터 프로세싱 블록(1502, 1512)과 관련된 정보로서, 기준 부호화 단위 결정 순서에 대한 정보를 획득할 수 있고, 영상 복호화 장치(100)는 상기 프로세싱 블록(1502, 1512)에 포함된 적어도 하나의 기준 부호화 단위를 결정하는 순서를 결정하고 부호화 단위의 결정 순서에 따라 픽처(1500)에 포함되는 적어도 하나의 기준 부호화 단위를 결정할 수 있다. 도 15를 참조하면, 영상 복호화 장치(100)는 각각의 프로세싱 블록(1502, 1512)과 관련된 적어도 하나의 기준 부호화 단위의 결정 순서(1504, 1514)를 결정할 수 있다. 예를 들면, 기준 부호화 단위의 결정 순서에 대한 정보가 프로세싱 블록마다 획득되는 경우, 각각의 프로세싱 블록(1502, 1512)과 관련된 기준 부호화 단위 결정 순서는 프로세싱 블록마다 상이할 수 있다. 프로세싱 블록(1502)과 관련된 기준 부호화 단위 결정 순서(1504)가 래스터 스캔(raster scan)순서인 경우, 프로세싱 블록(1502)에 포함되는 기준 부호화 단위는 래스터 스캔 순서에 따라 결정될 수 있다. 이에 반해 다른 프로세싱 블록(1512)과 관련된 기준 부호화 단위 결정 순서(1514)가 래스터 스캔 순서의 역순인 경우, 프로세싱 블록(1512)에 포함되는 기준 부호화 단위는 래스터 스캔 순서의 역순에 따라 결정될 수 있다.According to an embodiment, the receiving
영상 복호화 장치(100)는 일 실시예에 따라, 결정된 적어도 하나의 기준 부호화 단위를 복호화할 수 있다. 영상 복호화 장치(100)는 상술한 실시예를 통해 결정된 기준 부호화 단위에 기초하여 영상을 복호화 할 수 있다. 기준 부호화 단위를 복호화 하는 방법은 영상을 복호화 하는 다양한 방법들을 포함할 수 있다.The
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위의 형태를 나타내는 블록 형태 정보 또는 현재 부호화 단위를 분할하는 방법을 나타내는 분할 형태 모드 정보를 비트스트림으로부터 획득하여 이용할 수 있다. 분할 형태 모드 정보는 다양한 데이터 단위와 관련된 비트스트림에 포함될 수 있다. 예를 들면, 영상 복호화 장치(100)는 시퀀스 파라미터 세트(sequence parameter set), 픽쳐 파라미터 세트(picture parameter set), 비디오 파라미터 세트(video parameter set), 슬라이스 헤더(slice header), 슬라이스 세그먼트 헤더(slice segment header)에 포함된 분할 형태 모드 정보를 이용할 수 있다. 나아가, 영상 복호화 장치(100)는 최대 부호화 단위, 기준 부호화 단위, 프로세싱 블록마다 비트스트림으로부터 블록 형태 정보 또는 분할 형태 모드 정보에 대응하는 신택스 엘리먼트를 비트스트림으로부터 획득하여 이용할 수 있다.According to an exemplary embodiment, the
이하 본 개시의 일 실시예에 따른 분할 규칙을 결정하는 방법에 대하여 자세히 설명한다.Hereinafter, a method of determining a partitioning rule according to an embodiment of the present disclosure will be described in detail.
영상 복호화 장치(100)는 영상의 분할 규칙을 결정할 수 있다. 분할 규칙은 영상 복호화 장치(100) 및 영상 부호화 장치(3800) 사이에 미리 결정되어 있을 수 있다. 영상 복호화 장치(100)는 비트스트림으로부터 획득된 정보에 기초하여 영상의 분할 규칙을 결정할 수 있다. 영상 복호화 장치(100)는 시퀀스 파라미터 세트(sequence parameter set), 픽쳐 파라미터 세트(picture parameter set), 비디오 파라미터 세트(video parameter set), 슬라이스 헤더(slice header), 슬라이스 세그먼트 헤더(slice segment header) 중 적어도 하나로부터 획득된 정보에 기초하여 분할 규칙을 결정할 수 있다. 영상 복호화 장치(100)는 분할 규칙을 프레임, 슬라이스, 템포럴 레이어(Temporal layer), 최대 부호화 단위 또는 부호화 단위에 따라 다르게 결정할 수 있다. The
영상 복호화 장치(100)는 부호화 단위의 블록 형태에 기초하여 분할 규칙을 결정할 수 있다. 블록 형태는 부호화 단위의 크기, 모양, 너비 및 높이의 비율, 방향을 포함할 수 있다. 영상 부호화 장치(3800) 및 영상 복호화 장치(100)는 부호화 단위의 블록 형태에 기초하여 분할 규칙을 결정할 것을 미리 결정할 수 있다. 하지만 이에 한정되는 것은 아니다. 영상 복호화 장치(100)는 영상 부호화 장치(3800)로부터 수신된 비트스트림으로부터 획득된 정보에 기초하여, 분할 규칙을 결정할 수 있다. The
부호화 단위의 모양은 정사각형(square) 및 비-정사각형(non-square)을 포함할 수 있다. 부호화 단위의 너비 및 높이의 길이가 같은 경우, 영상 복호화 장치(100)는 부호화 단위의 모양을 정사각형으로 결정할 수 있다. 또한, . 부호화 단위의 너비 및 높이의 길이가 같지 않은 경우, 영상 복호화 장치(100)는 부호화 단위의 모양을 비-정사각형으로 결정할 수 있다.The shape of the encoding unit may include a square and a non-square. If the width and height of the encoding unit are the same, the
부호화 단위의 크기는 4x4, 8x4, 4x8, 8x8, 16x4, 16x8, ... , 256x256의 다양한 크기를 포함할 수 있다. 부호화 단위의 크기는 부호화 단위의 긴변의 길이, 짧은 변의 길이또는 넓이에 따라 분류될 수 있다. 영상 복호화 장치(100)는 동일한 그룹으로 분류된 부호화 단위에 동일한 분할 규칙을 적용할 수 있다. 예를 들어 영상 복호화 장치(100)는 동일한 긴변의 길이를 가지는 부호화 단위를 동일한 크기로 분류할 수 있다. 또한 영상 복호화 장치(100)는 동일한 긴변의 길이를 가지는 부호화 단위에 대하여 동일한 분할 규칙을 적용할 수 있다.The size of the encoding unit may include various sizes of 4x4, 8x4, 4x8, 8x8, 16x4, 16x8, ..., 256x256. The size of the encoding unit can be classified according to the length of the longer side of the encoding unit, the length or the width of the shorter side. The
부호화 단위의 너비 및 높이의 비율은 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16 또는 16:1 등을 포함할 수 있다. 또한, 부호화 단위의 방향은 수평 방향 및 수직 방향을 포함할 수 있다. 수평 방향은 부호화 단위의 너비의 길이가 높이의 길이보다 긴 경우를 나타낼 수 있다. 수직 방향은 부호화 단위의 너비의 길이가 높이의 길이보다 짧은 경우를 나타낼 수 있다.The ratio of the width and height of the encoding unit may include 1: 2, 2: 1, 1: 4, 4: 1, 1: 8, 8: 1, 1:16 or 16: 1. In addition, the direction of the encoding unit may include a horizontal direction and a vertical direction. The horizontal direction may indicate the case where the length of the width of the encoding unit is longer than the length of the height. The vertical direction can indicate the case where the width of the encoding unit is shorter than the length of the height.
영상 복호화 장치(100)는 부호화 단위의 크기에 기초하여 분할 규칙을 적응적으로 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 크기에 기초하여 허용가능한 분할 형태 모드를 다르게 결정할 수 있다. 예를 들어, 영상 복호화 장치(100)는 부호화 단위의 크기에 기초하여 분할이 허용되는지 여부를 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 크기에 따라 분할 방향을 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 크기에 따라 허용가능한 분할 타입을 결정할 수 있다.The
부호화 단위의 크기에 기초하여 분할 규칙을 결정하는 것은 영상 부호화 장치(3800) 및 영상 복호화 장치(100) 사이에 미리 결정된 분할 규칙일 수 있다. 또한, 영상 복호화 장치(100)는 비트스트림으로부터 획득된 정보에 기초하여, 분할 규칙을 결정할 수 있다. Determination of the division rule based on the size of the encoding unit may be a predetermined division rule between the
영상 복호화 장치(100)는 부호화 단위의 위치에 기초하여 분할 규칙을 적응적으로 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위가 영상에서 차지하는 위치에 기초하여 분할 규칙을 적응적으로 결정할 수 있다.The
또한, 영상 복호화 장치(100)는 서로 다른 분할 경로로 생성된 부호화 단위가 동일한 블록 형태를 가지지 않도록 분할 규칙을 결정할 수 있다. 다만 이에 한정되는 것은 아니며 서로 다른 분할 경로로 생성된 부호화 단위는 동일한 블록 형태를 가질 수 있다. 서로 다른 분할 경로로 생성된 부호화 단위들은 서로 다른 복호화 처리 순서를 가질 수 있다. 복호화 처리 순서에 대해서는 도 11과 함께 설명하였으므로 자세한 설명은 생략한다.In addition, the
도 16 내지 도39에서 현재 블록을 복수의 구역 및 복수의 서브 구역으로 분할하고, 현재 블록의 분할 형태 및 변환 계수 배열의 특징에 따라 컨텍스트, 스캔 순서, 계수 코딩 방식 등을 결정하고, 상기 결정된 컨텍스트, 스캔 순서, 계수 코딩 방식에 따라 현재 블록의 변환 계수 배열을 부호화 또는 복호화하는 방법이 설명된다.16 to 39, the current block is divided into a plurality of zones and a plurality of sub-zones, a context, a scanning order, a coefficient coding scheme and the like are determined according to the division type of the current block and the characteristics of the conversion coefficient array, A scanning order, and a coefficient coding method, a method of coding or decoding a transform coefficient array of a current block will be described.
도 16은 현재 블록이 분할된 복수의 구역 및 복수의 서브 구역에 기초하여 현재 블록의 변환 계수 배열을 획득하는 비디오 복호화 장치(1600)의 블록도를 도시한다.FIG. 16 shows a block diagram of a
비디오 복호화 장치(1600)는 부호화 정보 수신부(1610) 및 엔트로피 복호화부(1620)를 포함한다. 도 16에서 부호화 정보 수신부(1610) 및 엔트로피 복호화부(1620)는 별도의 구성 단위로 표현되어 있으나, 실시 예에 따라 부호화 정보 수신부(1610) 및 엔트로피 복호화부(1620)는 합쳐져 하나의 구성 단위로 구현될 수도 있다.The
도 16에서 부호화 정보 수신부(1610) 및 엔트로피 복호화부(1620)는 하나의 장치에 위치한 구성 단위로 표현되었지만 부호화 정보 수신부(1610) 및 엔트로피 복호화부(1620)의 각 기능을 담당하는 장치는 반드시 물리적으로 인접할 필요는 없다. 따라서 실시 예에 따라 부호화 정보 수신부(1610) 및 엔트로피 복호화부(1620)가 분산되어 있을 수 있다.16, the encoding
부호화 정보 수신부(1610) 및 엔트로피 복호화부(1620)는 실시 예에 따라 하나의 프로세서에 의하여 구현될 수 있다. 또한 실시 예에 따라 복수 개의 프로세서에 의하여 구현될 수도 있다.The encoding
부호화 정보 수신부(1610)는 현재 블록의 구역 플래그, 서브 구역 플래그 및 변환 계수 정보를 포함하는 비트스트림을 수신한다. 현재 블록은 변환 계수의 부호화 및 복호화에 관한 부호화 단위 또는 변환 단위일 수 있다. 엔트로피 복호화부(1620)가 현재 블록의 2차원 변환 계수 배열을 복원하기 위하여 구역 플래그, 서브 구역 플래그 및 변환 계수 정보가 사용될 수 있다.The encoding
엔트로피 복호화부(1620)는 현재 블록을 복수의 구역(zone)으로 분할한다. 현재 블록에 포함된 샘플들의 원본 값과 예측 값의 차를 나타내는 2차원 레지듀얼 샘플 배열을 주파수 변환할 경우, 현재 블록의 2차원 변환 계수 배열이 생성될 수 있다. 현재 블록의 2차원 변환 계수 배열의 좌상측에 위치한 변환 계수는 저주파 성분을 나타내고, 우하측에 위치한 변환 계수는 고주파 성분을 나타낸다. 통계적으로 저주파 성분의 크기가 고주파 성분의 크기보다 크기 때문에, 현재 블록의 2차원 변환 계수 배열에서 좌상측의 변환 계수가 우하측의 변환 계수보다 큰 절대값을 가진다. 그리고 양자화 과정에서 상대적으로 절대값이 작은 우하측의 변환 계수는 0으로 결정되므로, 현재 블록의 좌상측에 절대 값이 1보다 큰 유효 변환 계수가 분포할 확률이 높다. 따라서 현재 블록을 유효 변환 계수가 출현할 확률에 따라 분할하고, 분할된 구역마다 다른 복호화 방법을 적용함으로써, 효율적으로 현재 블록의 2차원 변환 계수 배열을 압축할 수 있다.The
일 실시 예에 따르면, 엔트로피 복호화부(1620)는 현재 블록을 현재 블록의 크기와 상관 없이 미리 정해진 구역 크기를 가지는 구역들을 결정할 수 있다. 그리고 엔트로피 복호화부(1620)는 현재 블록에서 상기 일정한 구역 크기를 가지는 구역들이 제외된 나머지 영역을 현재 블록의 마지막 구역으로 결정할 수 있다.According to one embodiment, the
다른 일 실시 예에 따르면, 엔트로피 복호화부(1620)는 현재 블록을 상기 현재 블록의 크기와 비례하는 구역 크기를 가지는 구역들을 결정할 수 있다. 엔트로피 복호화부(1620)는 현재 블록에서 일정한 구역 크기를 가지는 구역들이 제외된 나머지 영역을 현재 블록의 마지막 구역으로 결정할 수 있다.According to another embodiment, the
엔트로피 복호화부(1620)는 현재 블록의 크기에 따라 분할되는 구역의 개수를 결정할 수 있다. 예를 들어, 현재 블록의 크기가 4x4일 때, 현재 블록은 4x4 크기의 하나의 구역만 포함할 수 있다. 그리고 현재 블록의 크기가 4x4보다 클 때, 현재 블록은 2개 이상의 구역으로 분할될 수 있다. 또 다른 예로, 현재 블록의 높이와 너비 중 큰 값이 4보다 클 때, 현재 블록은 2개 이상의 구역으로 분할될 수 있다. 다른 예로, 현재 블록의 높이와 너비 중 큰 값이 8보다 클 때, 현재 블록은 3개 이상의 구역으로 분할될 수 있다.The
엔트로피 복호화부(1620)는 구역 인덱스, 현재 블록 크기, 변환 단위 크기, 부호화 단위 크기, 부호화된 블록 타입 (예: 인트라/인터), 성분 타입 (예: 루마/크로마), 예측 정보 (예: 파티션 모드, 예측 모드)에 따라, 현재 블록의 컨텍스트를 결정할 수 있다. 일 실시예에 따라, 엔트로피 복호화부(1620)는 현재 블록의 높이와 너비 중 작은 값 또는 현재 블록의 높이와 너비 중 큰 값에 따라 현재 블록의 컨텍스트를 결정할 수 있다. 그리고 엔트로피 복호화부(1620)는 현재 블록의 컨텍스트에 따라 비트스트림으로부터 획득된 구역 플래그를 파싱할 수 있다.The
엔트로피 복호화부(1620)는 현재 블록의 복수의 구역에 대한 구역 플래그에 따라, 현재 블록의 마지막 유효 변환 계수가 복수의 구역 중 어떤 구역에 포함되어 있는지 결정한다. 유효 변환 계수는 계수의 절대값이 0이 아닌 변환 계수이다. 현재 블록의 마지막 유효 변환 계수의 위치는 현재 블록의 스캔 순서에 따라 마지막에 위치한 유효 변환 계수의 위치에 기초하여 결정된다.The
구역 플래그는 현재 구역이 현재 블록의 마지막 유효 변환 계수를 포함하는지 여부를 나타낸다. 구역 플래그는 1비트로 표현될 수 있다. 그리고 현재 블록의 마지막 유효 변환 계수를 포함하는 구역에 대한 구역 플래그는 제1 값을 표현되고, 나머지 구역의 구역 플래그는 제2 값을 표현될 수 있다. 또는 현재 블록의 유효 변환 계수가 포함된 마지막 서브 구역을 포함하는 구역에 대한 구역 플래그는 제1 값으로 표현되고, 나머지 구역의 구역 플래그는 제2 값으로 표현될 수 있다. 상기 제1 값은 1이고, 상기 제2 값은 0일 수 있다.The zone flag indicates whether the current zone contains the last valid conversion factor of the current block. The zone flag can be represented by one bit. And a zone flag for the zone including the last valid conversion coefficient of the current block is represented by a first value and a zone flag of the remaining zone is represented by a second value. Or the zone flag for the zone including the last sub-zone including the effective conversion coefficient of the current block may be represented by the first value, and the zone flag of the remaining zone may be represented by the second value. The first value may be one and the second value may be zero.
현재 블록의 구역들의 구역 플래그는 스캔 순서에 따라 파싱된다. 예를 들어, 제1 구역, 제2 구역, 제3 구역의 순서대로 스캔될 때, 제1 구역의 구역 플래그가 비트스트림으로부터 가장 먼저 획득된다. 만약 제1 구역의 구역 플래그가 제1 값을 나타낼 경우, 제1 구역에 현재 블록의 마지막 유효 변환 계수가 포함되는 것으로 결정된다. 따라서 나머지 제2 구역 및 제3 구역에는 현재 블록의 마지막 유효 변환 계수가 포함되지 않으므로 제2 구역에 대한 구역 플래그와 제3 구역에 대한 구역 플래그는 획득되지 않는다.The zone flags of the zones of the current block are parsed according to the scan order. For example, when scanned in order of the first zone, the second zone, and the third zone, the zone flag of the first zone is first obtained from the bitstream. If the zone flag of the first zone represents the first value, it is determined that the first zone contains the last effective conversion coefficient of the current block. Therefore, since the last valid conversion coefficient of the current block is not included in the remaining second and third zones, the zone flag for the second zone and the zone flag for the third zone are not acquired.
만약 제1 구역의 구역 플래그가 제2 값을 나타낼 경우, 제1 구역에 현재 블록의 마지막 유효 변환 계수가 포함되지 않는 것으로 결정된다. 따라서 제2 구역의 구역 플래그가 비트스트림으로부터 획득된다. 만약 제2 구역의 구역 플래그가 제1 값을 나타낼 경우, 제2 구역에 현재 블록의 마지막 유효 변환 계수가 포함되는 것으로 결정된다. 따라서 제3 구역에는 현재 블록의 마지막 유효 변환 계수가 포함되지 않으므로 제3 구역에 대한 구역 플래그는 획득되지 않는다. 반대로, 제2 구역의 구역 플래그가 제2 값을 나타낼 경우, 제2 구역에 현재 블록의 마지막 유효 변환 계수가 포함되지 않는 것으로 결정된다. 그리고 제3 구역에 대한 구역 플래그에 따라 제3 구역에 현재 블록의 마지막 유효 변환 계수가 포함되어 있는지 여부가 결정된다.If the zone flag of the first zone represents the second value, it is determined that the first effective zone conversion coefficient of the current block is not included in the first zone. Thus, a zone flag of the second zone is obtained from the bitstream. If the zone flag of the second zone represents the first value, it is determined that the second zone includes the last effective conversion coefficient of the current block. Therefore, the zone flag for the third zone is not acquired because the last effective conversion coefficient of the current block is not included in the third zone. Conversely, if the zone flag of the second zone represents a second value, it is determined that the last effective transform coefficient of the current block is not included in the second zone. In accordance with the zone flag for the third zone, it is determined whether or not the third zone includes the last effective conversion coefficient of the current block.
만약 제3 구역이 스캔 순서에 따라 현재 블록의 마지막 구역일 경우, 제3 구역의 구역 플래그 없이, 제2 구역의 구역 플래그에 따라 제3 구역에 현재 블록의 마지막 유효 변환 계수가 포함되어 있는지 여부가 결정될 수 있다. 예를 들어, 제2 구역에 현재 블록의 마지막 유효 변환 계수가 포함될 경우, 제3 구역에는 현재 블록의 마지막 유효 변환 계수가 포함되지 않는다. 반대로 제2 구역에 현재 블록의 마지막 유효 변환 계수가 포함되지 않을 경우, 제3 구역에는 반드시 현재 블록의 마지막 유효 변환 계수가 포함된다. 따라서 현재 블록의 마지막 구역의 구역 플래그를 획득하지 않고, 마지막 구역에 현재 블록의 마지막 유효 변환 계수가 포함되어 있는지 여부가 결정될 수 있다.If the third zone is the last zone of the current block according to the scan order, whether or not the last effective transform coefficient of the current block is included in the third zone according to the zone flag of the second zone without the zone flag of the third zone Can be determined. For example, if the second zone includes the last valid conversion factor of the current block, the third zone does not include the last valid conversion factor of the current block. Conversely, if the second zone does not include the last effective transform coefficient of the current block, the third zone necessarily includes the last effective transform coefficient of the current block. Thus, it can be determined whether or not the last zone contains the last effective transform coefficient of the current block, without acquiring the zone flag of the last zone of the current block.
만약 현재 블록의 크기에 따라, 현재 블록의 구역의 개수가 결정될 경우, 현재 블록에 대하여 획득될 수 있는 구역 플래그의 최대 개수는 현재 블록의 크기에 따라 결정될 수 있다. 예를 들어, 현재 블록의 높이와 너비 중 큰 값 또는 작은 값을 소정의 값과 비교하여 현재 블록에 포함된 구역의 수가 결정될 수 있다. 일 실시 예에 따르면, 현재 블록의 높이와 너비 중 큰 값이 8보다 클 경우, 현재 블록은 3개의 구역으로 분할될 수 있다. 상기 조건에서, 현재 블록의 구역 플래그는 최대 2개가 필요할 수 있다. 반대로, 현재 블록의 높이와 너비 중 큰 값이 8과 같을 경우, 현재 블록은 2개의 구역으로 분할될 수 있다. 상기 조건에서, 현재 블록의 구역 플래그는 1개가 필요하다.If the number of zones of the current block is determined according to the size of the current block, the maximum number of zone flags that can be acquired for the current block may be determined according to the size of the current block. For example, the number of zones included in the current block can be determined by comparing a large value or a small value of the height and width of the current block with a predetermined value. According to one embodiment, if the greater of the height and width of the current block is greater than eight, the current block may be divided into three zones. In this condition, a maximum of two zone flags of the current block may be required. Conversely, if the greater of the height and width of the current block is equal to 8, the current block can be divided into two zones. In this condition, one zone flag of the current block is required.
엔트로피 복호화부(1620)는 복수의 구역 중 적어도 하나의 유효 변환 계수가 포함될 수 있는 구역을 복수의 서브 구역(sub zone)으로 분할한다.The
엔트로피 복호화부(1620)는 현재 구역을 미리 정해진 서브 구역 크기에 따라 서브 구역을 분할할 수 있다. 또는 엔트로피 복호화부(1620)는 현재 구역을 현재 블록의 크기에 따라 서브 구역을 분할할 수 있다.The
엔트로피 복호화부(1620)는 현재 구역의 크기에 따라 현재 구역으로부터 분할되는 서브 구역의 개수를 결정할 수 있다. The
엔트로피 복호화부(1620)는 현재 블록의 복수의 서브 구역에 대한 서브 구역 플래그에 따라, 복수의 서브 구역 각각에 대하여 적어도 하나의 유효 변환 계수가 포함되는지 결정한다. 이하 유효 서브 구역은 적어도 하나의 유효 변환 계수를 포함하는 서브 구역이다.The
서브 구역 플래그는 현재 서브 구역이 유효 변환 계수를 포함하는지 여부를 나타낸다. 서브 구역 플래그는 1비트로 표현될 수 있다. 유효 변환 계수가 포함된 서브 구역의 서브 구역 플래그는 제1 값으로 표현되고, 유효 변환 계수를 포함하지 않는 서브 구역의 서브 구역 플래그는 제2 값으로 표현될 수 있다. 상기 제1 값은 1이고, 상기 제2 값은 0일 수 있다.The subspace flag indicates whether the current subspace contains an effective transform coefficient. The sub-zone flag can be represented by 1 bit. The subspace flag of the subspace containing the effective transformation coefficient is represented by a first value and the subspace flag of the subspace including no effective transformation coefficient may be represented by a second value. The first value may be one and the second value may be zero.
구역들에 포함된 서브 구역들의 서브 구역 플래그는 스캔 순서에 따라 파싱된다. 예를 들어, 제1 서브 구역, 제2 서브 구역 및 제3 서브 구역의 순서대로 스캔될 때, 제1 서브 구역의 서브 구역 플래그가 비트스트림으로부터 가장 먼저 획득된다. 그리고 스캔 순서에 따라 제2 서브 구역 및 제3 서브 구역의 서브 구역 플래그가 획득된다.The sub-zone flags of the sub-zones included in the zones are parsed according to the scan order. For example, when scanned in the order of the first sub-zone, the second sub-zone and the third sub-zone, the sub-zone flag of the first sub-zone is first obtained from the bit stream. Sub-zone flags of the second sub-zone and the third sub-zone are obtained according to the scan order.
만약 제3 서브 구역이 현재 구역의 마지막 서브 구역이고, 상기 현재 구역에 마지막 유효 변환 계수가 포함되며, 제1 서브 구역 및 제2 서브 구역가 유효 서브 구역가 아닐 때, 제3 서브 구역의 서브 구역 플래그의 획득 없이 제3 서브 구역는 유효 서브 구역로 결정된다. 상기 현재 구역에 마지막 유효 변환 계수가 포함될 경우, 상기 현재 구역에 적어도 하나의 유효 변환 계수가 포함되어야 하므로, 제1 서브 구역 및 제2 서브 구역에 유효 변환 계수가 포함되어 있지 않을 경우, 제3 서브 구역에는 반드시 유효 변환 계수가 포함되어야 하기 때문이다.If the third sub-zone is the last sub-zone of the current zone, the current zone contains the last valid conversion factor, and the first sub-zone and the second sub-zone are not valid sub-zones, The third sub-zone without acquisition is determined as an effective sub-zone. If the current zone includes the last effective transform coefficient, at least one effective transform coefficient should be included in the current zone. Therefore, if the effective transform coefficients are not included in the first sub zone and the second sub zone, The zone must contain the effective conversion factor.
만약 현재 구역이 하나의 서브 구역만을 포함하고, 상기 현재 구역에 마지막 유효 변환 계수가 포함될 경우, 상기 서브 구역은 반드시 적어도 하나의 유효 변환 계수가 포함되어야 한다. 따라서 상기의 조건 하에 서브 구역 플래그의 획득 없이 서브 구역은 유효 서브 구역으로 결정될 수 있다.If the current zone includes only one sub-zone, and the current zone includes the last valid conversion factor, then the sub-zone must include at least one effective conversion factor. Thus, without obtaining the subarea flag under the above conditions, the subarea can be determined as an effective subarea.
또한 현재 구역에 저주파의 변환 계수가 위치하는 경우, 서브 구역이 유효 변환 계수를 포함할 확률이 매우 높다. 따라서 상기의 조건 하에서도 서브 구역 플래그의 획득 없이 서브 구역에 유효 변환 계수가 포함되는 것으로 결정될 수 있다. 예를 들어, 현재 구역이 2차원 변환 계수 배열의 좌상측에 위치하는 경우, 현재 구역에는 저주파의 변환 계수가 위치한다. 따라서 현재 구역에는 유효 변환 계수가 위치할 확률이 높기 때문에, 서브 구역 플래그가 획득되지 않고 현재 구역에 포함된 현재 서브 구역에 유효 변환 계수가 포함된다고 결정될 수 있다.Also, if low frequency conversion coefficients are located in the current zone, the probability that the sub-zone will contain the effective transform coefficients is very high. Therefore, even under the above conditions, it can be determined that the effective conversion coefficient is included in the sub zone without obtaining the sub zone flag. For example, if the current zone is located on the upper left of the two-dimensional transform coefficient array, the low-frequency transform coefficients are located in the current zone. Therefore, it can be determined that the sub-zone flag is not acquired and the effective sub-zone included in the current sub-zone is included in the effective sub-zone because the current zone is highly likely to have the effective conversion coefficient.
엔트로피 복호화부(1620)는 서브 구역 플래그가 서브 구역에 유효 변환 계수를 포함한다고 나타내는 경우, 비트스트림으로부터 획득된 서브 구역의 변환 계수 정보를 파싱하여, 서브 구역의 변환 계수를 획득할 수 있다.The
그러나 엔트로피 복호화부(1620)는 마지막 유효 변환 계수가 포함된 구역 이후에 스캔되는 구역에 대하여 변환 계수 정보를 파싱하지 않는다. 상기 구역에 포함된 변환 계수는 모두 0으로 설정된다. 예를 들어, 제2 구역에 마지막 유효 변환 계수가 포함된 경우, 제2 구역 이후 스캔되는 구역들의 변환 계수는 모두 0으로 결정된다.However, the
또한 엔트로피 복호화부(1620)는 서브 구역 플래그에 따라 유효 변환 계수가 없다고 결정된 서브 구역에 대하여 변환 계수를 파싱하지 않는다. 따라서 상기 서브 구역의 변환 계수는 모두 0으로 결정된다. 예를 들어, 제1 서브 구역의 서브 구역 플래그가 서브 구역에 유효 변환 계수가 없다고 결정된 경우, 제1 서브 구역의 변환 계수는 모두 0으로 결정된다.Also, the
엔트로피 복호화부(1620)는 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 현재 블록 크기, 변환 단위 크기, 부호화 단위 크기, 부호화된 블록 타입 (예: 인트라/인터), 성분 타입 (예: 루마/크로마), 예측 정보 (예: 파티션 모드, 예측 모드) 등에 따라, 현재 블록의 컨텍스트를 결정할 수 있다. 일 실시예에 따라, 엔트로피 복호화부(1620)는 현재 블록의 높이와 너비 중 작은 값 또는 현재 블록의 높이와 너비 중 큰 값에 따라 현재 블록의 컨텍스트를 결정할 수 있다. 그리고 엔트로피 복호화부(1620)는 현재 블록의 컨텍스트에 따라 비트스트림으로부터 획득된 서브 구역 플래그를 파싱할 수 있다.The
엔트로피 복호화부(1620)는 구역 플래그 및 서브 구역 플래그에 기초하여, 복수의 서브 구역 중 적어도 하나의 유효 변환 계수를 포함하는 서브 구역에 대한 계수 코딩 방식(coefficient coding scheme)을 결정할 수 있다.The
일 실시예에 의하면, 엔트로피 복호화부(1620)는 서브 구역이 포함된 구역에 현재 블록의 마지막 유효 변환 계수가 포함되지 않은 때, 서브 구역의 대한 계수 코딩 방식을 제1 런-레벨 기반 계수 코딩 방식(Run-level based coefficient coding scheme)으로 결정할 수 있다.According to an exemplary embodiment, when the last effective transform coefficient of the current block is not included in the region including the sub-region, the
반대로, 엔트로피 복호화부(1620)는 서브 구역이 포함된 구역에 현재 블록의 마지막 유효 변환 계수가 포함된 때, 서브 구역의 대한 계수 코딩 방식을 제2 런-레벨 기반 계수 코딩 방식으로 결정할 수 있다.In contrast, when the last effective transform coefficient of the current block is included in a zone including the sub-zone, the
상기 제1 런-레벨 기반 계수 코딩 방식에서 연속된 제로 계수의 개수를 나타내는 런 정보(Run information), 논제로 계수의 절대값을 나타내는 레벨 정보(Level information) 및 논제로 계수의 부호를 나타내는 부호 정보(Sign information)를 이용하여 서브 구역의 변환 계수가 부호화 및 복호화된다.Run information that indicates the number of consecutive zero coefficients in the first run-level-based coefficient coding scheme, level information that indicates the absolute value of the coefficient of the topic, and sign information that indicates the sign of the coefficient The transform coefficients of the subspace are encoded and decoded using sign information.
상기 제2 런-레벨 기반 계수 코딩 방식에서 상기 런 정보, 레벨 정보 및 부호 정보와 함께, 현재 논제로 계수가 상기 서브 구역의 마지막 논제로 계수인지 여부를 나타내는 마지막 논제로 계수 정보(Last non-zero coefficient information)가 서브 구역의 변환 계수가의 부호화 및 복호화에 이용된다.Level information and the sign information in the second run-level-based coefficient coding scheme, coefficient information as a last item indicating whether the coefficient of the current topic is the coefficient of the last item of the sub- coefficient information is used to encode and decode the transform coefficients of the subspace.
일 실시 예에 의하면, 엔트로피 복호화부(1620)는 서브 구역이 포함된 구역에 현재 블록의 마지막 유효 변환 계수가 포함되어 있는지 여부에 관계없이, 서브 구역의 대한 계수 코딩 방식을 제1 런-레벨 기반 계수 코딩 방식 또는 제2 런-레벨 기반 계수 코딩 방식으로 결정할 수 있다.According to an embodiment, the
일 실시예에 의하면, 엔트로피 복호화부(1620)는 현재 블록을 현재 블록의 좌상측과 가까운 순서대로 제1 구역, 제2 구역 및 제3 구역으로 분할하고, 각 구역마다 다르게 계수 코딩 방식을 결정할 수 있다.According to one embodiment, the
예를 들어, 현재 블록의 좌상측과 가장 가까운 제1 구역에 마지막 유효 변환 계수가 포함된 경우, 엔트로피 복호화부(1620)는 제1 구역의 서브 구역을 마지막 위치 기반 계수 코딩 방식(Last position-based coefficient coding scheme)에 따라 복호화할 수 있다. 또는 제2 구역의 서브 구역들 중 유효 변환 계수가 포함되 서브 구역이 하나 이하일 때, 엔트로피 복호화부(1620)는 제1 구역의 서브 구역을 마지막 위치 기반 계수 코딩 방식에 따라 복호화할 수 있다. 상기 조건이 모두 만족되지 않을 경우, 엔트로피 복호화부(1620)는 제1 구역의 서브 구역은 전체 위치 기반 계수 코딩 방식(Full position-based coefficient coding scheme)에 따라 복호화할 수 있다.For example, if the last effective transform coefficient is included in the first zone closest to the upper left of the current block, the
제2 구역에 마지막 유효 변환 계수가 포함된 경우, 엔트로피 복호화부(1620)는 제2 구역의 서브 구역은 스캔 영역 기반 계수 코딩 방식(Scan region-based coefficient coding scheme) 에 따라 복호화할 수 있다. 상기 조건이 모두 만족되지 않을 경우, 엔트로피 복호화부(1620)는 제2 구역의 서브 구역은 마지막 위치 기반 계수 코딩 방식에 따라 복호화할 수 있다.If the second region includes the last effective transform coefficient, the
그리고 엔트로피 복호화부(1620)는 제3 구역의 서브 구역은 조건 없이 스캔 영역 기반 계수 코딩 방식에 따라 복호화할 수 있다.And, the
엔트로피 복호화부(1620)는 구역 플래그 및 서브 구역 플래그에 따른 조건에 따라 상기 실시 예와 다른 계수 코딩 방식을 서브 구역에 적용할 수 있다.The
엔트로피 복호화부(1620)는 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 유효 서브 구역의 개수, 인트라 모드, 현재 블록 크기, 변환 단위 크기, 부호화 단위 크기, 변환 스킵 여부, 부호화된 블록 타입 (예: 인트라/인터), 성분 타입 (예: 루마/크로마), 예측 정보 (예: 파티션 모드, 예측 모드), 등에 기초하여 서브 구역에 대한 스캔 순서를 결정할 수 있다. 엔트로피 복호화부(1620)는 대각선 스캔, 지그재그 스캔, 수평 스캔, 수직 스캔 또는 이들의 조합을 현재 서브 구역의 스캔 순서로 결정할 수 있다.The
서브 구역의 스캔 순서는 다른 서브 구역의 스캔 순서와 독립적으로 결정될 수 있다. 또는 서브 구역의 스캔 순서는 구역에 포함된 다른 서브 구역의 스캔 순서에 종속적으로 결정될 수 있다.The scan order of the sub-regions may be determined independently of the scan order of the other sub-regions. Or the scan order of the subareas may be determined dependent on the scan order of the other subareas included in the zone.
서브 구역의 스캔 순서는 유효한 서브 구역의 개수에 따라 결정될 수 있다. 유효한 서브 구역은 현재 블록의 크기에 따라 변환 계수가 포함될 수 있는 서브 구역을 의미한다. 일 실시 예에 따르면 8x8 크기의 블록은 4x4 크기의 4개의 서브 구역을 포함할 수 있다. 이 때 8x8 크기의 블록에 포함된 4개의 서브 구역의 스캔 순서는 제1 적응적 스캔 순서 결정 방법에 따라 결정될 수 있다. 일 실시 예에 따르면 8x8보다 큰 MxN 크기의 블록은 4x4 크기의 4개의 서브 구역과 (N-8)Х4크기의 2개의 서브 구역, 4Х(N-8) 크기의 2개의 블록, (N-8)Х(N-8)크기의 1개의 서브 구역을 포함할 수 있다. 이 때 MxN 크기의 블록에 포함된 9개의 서브 구역의 스캔 순서는 제2 적응적 스캔 순서 결정 방법에 따라 결정될 수 있다.The scan order of the sub-zones may be determined according to the number of valid sub-zones. A valid sub-zone is a sub-zone in which the transform coefficients may be included according to the size of the current block. According to one embodiment, an 8x8 block may include 4 sub-zones of 4x4 size. In this case, the scan order of the four sub-zones included in the 8x8 block may be determined according to the first adaptive scan order determination method. According to one embodiment, an MxN-sized block larger than 8x8 is divided into 4 sub-zones of 4x4 size, 2 sub-zones of (N-8) Х4 size, 2 blocks of 4Х (N-8) Lt; RTI ID = 0.0 > (N-8) < / RTI > In this case, the scan order of the nine sub-blocks included in the MxN-sized block may be determined according to the second adaptive scan order determination method.
상측의 2개의 서브 구역에 유효 계수가 포함되고, 하측의 2개의 서브 구역에 유효 계수가 포함되지 않은 경우, 상측의 2개의 서브 구역의 스캔 순서는 수평 스캔으로 결정될 수 있다. 또한 좌측의 2개의 서브 구역에 유효 계수가 포함되고, 우측의 2개의 서브 구역에 유효 계수가 포함되지 않은 경우, 좌측의 2개의 서브 구역의 스캔 순서는 수직 스캔으로 결정될 수 있다.If the effective coefficients are included in the upper two sub-regions and the effective coefficients are not included in the lower two sub-regions, the scan order of the two upper sub-regions may be determined as a horizontal scan. In addition, when the effective coefficients are included in the two sub-regions on the left side and the effective coefficients are not included in the two sub-regions on the right side, the scan order of the two left sub-regions can be determined as a vertical scan.
제2 적응적 스캔 순서 결정 방법에 따르면, 상측의 3개의 서브 구역에 유효 계수가 포함되고, 나머지 서브 구역에 유효 계수가 포함되지 않은 경우, 상측의 3개의 서브 구역의 스캔 순서는 수평 스캔으로 결정될 수 있다. 또한 좌측의 3개의 서브 구역에 유효 계수가 포함되고, 나머지 서브 구역에 유효 계수가 포함되지 않은 경우, 좌측의 3개의 서브 구역의 스캔 순서는 수평 스캔으로 결정될 수 있다.According to the second adaptive scan order determination method, when the effective coefficients are included in the upper three sub-regions and the effective coefficients are not included in the remaining sub-regions, the scan order of the three upper sub-regions is determined as a horizontal scan . Also, when the effective coefficients are included in the three sub-regions on the left side and the effective coefficients are not included in the remaining sub-regions, the scan order of the three sub-regions on the left side can be determined as a horizontal scan.
엔트로피 복호화부(1620)는 스캔 순서 및 계수 코딩 방식 중 적어도 하나에 따라 현재 블록의 변환 계수 정보를 파싱함으로써, 현재 블록의 변환 계수 배열을 획득한다.The
엔트로피 복호화부(1620)는 현재 샘플 이전에 복원된 하나 이상의 변환 계수의 크기에 따라, 현재 샘플의 컨텍스트를 결정할 수 있다. 일 실시 예에 따르면, 엔트로피 복호화부(1620)는 서브 구역의 계수 코딩 방식이 런-레벨 기반 계수 코딩 방식일 때, 현재 샘플 이전에 복원된 하나 이상의 변환 계수의 크기에 따라, 현재 샘플의 컨텍스트를 결정할 수 있다.The
예를 들어, 유효 변환 계수 바로 이전의 변환 계수의 크기에 따라 현재 샘플의 컨텍스트가 결정될 수 있다. 또는 유효 변환 계수 바로 이전의 미리 정해진 개수의 변환 계수들의 크기의 합에 따라 현재 샘플의 컨텍스트가 결정될 수 있다.For example, the context of the current sample can be determined according to the magnitude of the transform coefficient immediately before the effective transform coefficient. Or the context of the current sample may be determined according to the sum of the magnitudes of the predetermined number of transform coefficients immediately before the effective transform coefficients.
그리고 현재 서브 구역의 상측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨과 현재 서브 구역의 좌측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨의 평균에 따라 현재 샘플의 컨텍스트가 결정될 수 있다. 또는 현재 서브 구역의 상측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨과 현재 서브 구역의 좌측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨 중 작은 값에 따라 현재 샘플의 컨텍스트가 결정될 수 있다. 또는 현재 서브 구역의 상측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨과 현재 서브 구역의 좌측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨 중 큰 값에 따라 현재 샘플의 컨텍스트가 결정될 수 있다.And the context of the current sample may be determined according to the average of the level of the last coded transform coefficient of the upper sub-zone of the current sub-zone and the level of the last coded transform coefficient of the left sub-zone of the current sub-zone. Or the level of the last encoded transform coefficient of the upper sub-zone of the current sub-zone and the level of the last encoded coefficient of the left sub-zone of the current sub-zone, whichever is smaller. Or the context of the current sample may be determined according to the greater of the level of the last encoded coefficient in the upper sub-zone of the current sub-zone and the level of the last encoded coefficient in the left sub-zone of the current sub-zone.
만약 스캔 순서가 역방향인 경우(우하측 서브 구역이 먼저 복호화되는 경우), 현재 서브 구역의 우측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨과 현재 서브 구역의 하측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨의 평균에 따라 현재 샘플의 컨텍스트가 결정될 수 있다. 또는 현재 서브 구역의 하측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨과 현재 서브 구역의 우측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨 중 작은 값에 따라 현재 샘플의 컨텍스트가 결정될 수 있다. 또는 현재 서브 구역의 하측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨과 현재 서브 구역의 우측 서브 구역의 마지막으로 부호화된 변환 계수의 레벨 중 큰 값에 따라 현재 샘플의 컨텍스트가 결정될 수 있다.If the scan order is reverse (if the lower-right sub-zone is first decoded), the level of the last coded transform coefficient of the right sub-zone of the current sub-zone and the last encoded transform coefficient of the lower sub- The context of the current sample can be determined according to the average of the levels of the current sample. Or the level of the last coded transform coefficient of the lower sub-zone of the current sub-zone and the level of the last coded transform coefficient of the right sub-zone of the current sub-zone, whichever is smaller. Or the context of the current sample may be determined according to the greater of the level of the last coded transform coefficient of the lower sub-zone of the current sub-zone and the level of the last coded transform coefficient of the right sub-zone of the current sub-zone.
그리고 엔트로피 복호화부(1620)는 현재 샘플의 컨텍스트 및 현재 서브 구역의 계수 코딩 방식에 따라, 현재 서브 구역의 변환 계수 정보를 파싱함으로써, 현재 서브 구역의 변환 계수 배열을 획득할 수 있다.The
도 17 내지 19에는 크기가 NХN인 정사각형의 현재 블록을 복수의 구역 및 서브 구역으로 분할하고, 현재 블록의 변환 계수 정보를 파싱하는 실시 예들이 개시되어 있다.Figs. 17 to 19 show embodiments in which a square current block having a size of N 占 N N is divided into a plurality of zones and sub-zones, and the transform coefficient information of the current block is parsed.
도 17에는 제1 실시 예에 따른 구역 및 서브 구역이 도시되어 있다. 현재 블록(1700)은 가로로 크기 4, 4, N-8의 세 개로 분할될 수 있고, 세로로 크기 4, 4, N-8의 세 개로 분할될 수 있다. 따라서, 현재 블록(1700)은 크기 4Х4인 4개의 블록(1702, 1704, 1706, 1708), 크기 (N-8)Х4인 2개의 블록(1710, 1712), 크기 4Х(N-8)인 2개의 블록(1714, 1716), 크기 (N-8)Х(N-8)인 1개의 블록(1718)을 포함할 수 있다.Figure 17 shows the zones and sub-zones according to the first embodiment. The
좌상측의 크기 4Х4의 블록(1702)에 유효 변환 계수가 분포할 확률이 매우 높다. 따라서 현재 블록(1700)의 제1 구역은 서브 구역으로서 블록(1702)만을 포함하도록 설정될 수 있다. 그리고 상측의 크기 4Х4의 블록(1704), 좌측의 크기 4Х4의 블록(1706), 중앙의 크기 4Х4의 블록(1708)에는 좌상측의 크기 4Х4의 블록(1702)보다 유효 변환 계수가 분포할 확률이 낮지만, 다른 우측, 우하측, 하측의 블록들(1710,1712,1714,1716,1718)보다는 높으므로, 현재 블록(1700)의 제2 구역은 서브 구역으로서 크기 4Х4의 3개의 블록들(1704, 1706, 1708)을 포함하도록 설정될 수 있다. 그리고 현재 블록(1700)의 제3 구역은 서브 구역으로서 유효 변환 계수가 분포할 확률이 낮은 나머지 블록들(1710,1712,1714,1716,1718)을 포함하도록 설정될 수 있다.The probability that the effective transformation coefficient is distributed in the
제1 실시 예에서는 현재 블록(1700)의 블록들(1702, 1704, 1706, 1708)의 결정에 이용되는 블록 크기가 4x4로 설정되었지만, 실시 에에 따라 다른 사이즈로 설정될 수 도 있다. 상기 블록 크기는 미리 정한 값일 수도 있고, 슬라이스 헤더, 픽처 파라미터 셋(PPS), 시퀀스 파라미터 셋(SPS)에 명시될 수도 있다.In the first embodiment, the block size used for determination of the
도 18에는 제2 실시 예에 따른 구역 및 서브 구역이 도시되어 있다. 현재 블록(1800)은 가로로 크기 4, 4, 4, N-12의 네 개로 분할될 수 있고, 세로로 크기 4, 4, 4, N-12의 네 개로 분할될 수 있다. 따라서, 현재 블록(1800)은 9개의 크기 4Х4인 블록(1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 1818), 3개의 크기 (N-12)Х4인 블록(1820, 1822, 1824), 3개의 크기 4Х(N-12)인 블록(1826, 1828, 1830), 1개의 크기 (N-12)Х(N-12)인 블록(1832)을 포함할 수 있다.Figure 18 shows zones and sub-zones according to a second embodiment. The
현재 블록(1800)의 제1 구역은 서브 구역으로서 유효 변환 계수가 분포할 확률이 높은 블록(1802)만을 포함하도록 설정될 수 있다. 그리고 현재 블록(1800)의 제2 구역은 서브 구역으로서 유효 변환 계수가 분포할 확률이 중간인 블록들(1804, 1806, 1808, 1810, 1812)을 포함할 수 있다. 마지막으로 현재 블록(1800)의 제3 구역은 서브 구역으로서 유효 변환 계수가 분포할 확률이 작은 나머지 블록들(1814, 1816, 1818, 1820, 1822, 1824, 1826, 1828, 1830, 1832)을 포함할 수 있다.The first zone of the
제2 실시 예에서는 현재 블록(1800)의 블록들(1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 1818)의 결정에 이용되는 블록 크기가4x4로 설정되었지만, 실시 에에 따라 다른 사이즈로 설정될 수 도 있다. 상기 블록 크기는 미리 정한 값일 수도 있고, 슬라이스 헤더, 픽처 파라미터 셋(PPS), 시퀀스 파라미터 셋(SPS)에 명시될 수도 있다.In the second embodiment, the block size used for determination of the
도 19에는 제3 실시 예에 따른 구역 및 서브 구역이 도시되어 있다. 현재 블록(1900)은 가로로 크기 4, 4, 4, N-12의 네 개로 분할될 수 있고, 세로로 크기 4, 4, 4, N-12의 네 개로 분할될 수 있다. 따라서, 현재 블록(1900)은 9개의 크기 4Х4인 블록(1902, 1904, 1906, 1908, 1910, 1912, 1914, 1916, 1918), 3개의 크기 (N-12)Х4인 블록(1920, 1922, 1924), 3개의 크기 4Х(N-12)인 블록(1926, 1928, 1930), 1개의 크기 (N-12)Х(N-12)인 블록(1932)을 포함할 수 있다.FIG. 19 shows zones and sub-zones according to the third embodiment. The
현재 블록(1900)의 제1 구역은 서브 구역으로서 유효 변환 계수가 분포할 확률이 높은 블록(1902)만을 포함하도록 설정될 수 있다. 그리고 현재 블록(1900)의 제2 구역은 서브 구역으로서 유효 변환 계수가 분포할 확률이 두 번째로 높은 블록들(1804, 1806)을 포함할 수 있다. 현재 블록(1900)의 제9 구역은 서브 구역으로서 유효 변환 계수가 분포할 확률이 두 번째로 높은 블록들(1808, 1810, 1812)을 포함할 수 있다. 마지막으로 현재 블록(1900)의 제4 구역은 서브 구역으로서 유효 변환 계수가 분포할 확률이 작은 나머지 블록들(1814, 1816, 1818, 1820, 1822, 1824, 1826, 1828, 1830, 1832)을 포함할 수 있다.The first zone of the
제3 실시 예에서는 현재 블록(1900)의 블록들(1902, 1904, 1906, 1908, 1910, 1912, 1914, 1916, 1918)의 결정에 이용되는 블록 크기가4x4로 설정되었지만, 실시 에에 따라 다른 사이즈로 설정될 수 도 있다. 상기 블록 크기는 미리 정한 값일 수도 있고, 슬라이스 헤더, 픽처 파라미터 셋(PPS), 시퀀스 파라미터 셋(SPS)에 명시될 수도 있다.Although the block size used for determination of the
도 20 및 21에는 크기가 MХN인 직사각형의 현재 블록을 복수의 구역 및 서브 구역으로 분할하고, 현재 블록의 변환 계수 정보를 파싱하는 실시 예들이 개시되어 있다.FIGS. 20 and 21 disclose embodiments in which a rectangular current block having a size of M X N is divided into a plurality of zones and sub-zones, and the transform coefficient information of the current block is parsed.
도 20에는 제4 실시 예에 따른 구역 및 서브 구역이 도시되어 있다. 도 20의 제4실시 예에서는 도17의 제1 실시예와 마찬가지로, 현재 블록의 좌상측으로부터 4개의 크기가 4x4인 블록들이 분할된다. 즉, 현재 블록(2000)은 가로로 크기 4, 4, M-8의 세 개로 분할될 수 있고, 세로로 크기 4, 4, N-8의 세 개로 분할될 수 있다. 따라서, 현재 블록(2000)은 크기 4Х4인 4개의 블록(2002, 2004, 2006, 2008), 크기 (M-8)Х4인 2개의 블록(2010, 2012), 크기 4Х(N-8)인 2개의 블록(2014, 2016), 크기 (M-8)Х(N-8)인 1개의 블록(2018)을 포함할 수 있다.FIG. 20 shows zones and sub-zones according to a fourth embodiment. In the fourth embodiment shown in Fig. 20, blocks having four sizes of 4x4 are divided from the upper left side of the current block, as in the first embodiment shown in Fig. That is, the
제1 실시예 와 마찬가지로, 현재 블록(2000)의 제1 구역은 서브 구역으로서 블록(2002)만을 포함하도록 설정될 수 있다. 그리고 현재 블록(2000)의 제2 구역은 서브 구역으로서 크기 4Х4의 3개의 블록들(2004, 2006, 2008)을 포함하도록 설정될 수 있다. 현재 블록(2000)의 제3 구역은 서브 구역으로서 유효 변환 계수가 분포할 확률이 낮은 나머지 블록들(2010,2012,2014,2016,2018)을 포함하도록 설정될 수 있다.As in the first embodiment, the first zone of the
제4 실시 예에서는 현재 블록(2000)의 블록들(2002, 2004, 2006, 2008)의 결정에 이용되는 블록 크기가 4x4로 설정되었지만, 실시 예에 따라 다른 사이즈로 설정될 수 도 있다. 상기 블록 크기는 미리 정한 값일 수도 있고, 슬라이스 헤더, 픽처 파라미터 셋(PPS), 시퀀스 파라미터 셋(SPS)에 명시될 수도 있다.In the fourth embodiment, the block size used for determination of the
도 21에는 제5 실시 예에 따른 구역 및 서브 구역이 도시되어 있다. 제5 실시예에서는, 현재 블록의 크기에 비례하여 현재 블록이 분할된다. 현재 블록(2100)은 가로로 M/4:M/4:M/2으로 분할될 수 있고, 세로로 N/4:N/4:N/2으로 분할될 수 있다. 따라서, 현재 블록(2100)은 크기 M/4ХN/4인 4개의 블록(2102, 2104, 2106, 2108), 크기 M/2ХN/4인 2개의 블록(2110, 2112), 크기 M/4ХN/2인 2개의 블록(2114, 2116), 크기 M/2ХN/2인 1개의 블록(2118)을 포함할 수 있다.21 shows the zones and sub-zones according to the fifth embodiment. In the fifth embodiment, the current block is divided in proportion to the size of the current block. The
제1 실시예 와 마찬가지로, 현재 블록(2100)의 제1 구역은 서브 구역으로서 블록(2102)만을 포함하도록 설정될 수 있다. 그리고 현재 블록(2100)의 제2 구역은 서브 구역으로서 크기 4Х4의 3개의 블록들(2104, 2106, 2108)을 포함하도록 설정될 수 있다. 현재 블록(2100)의 제3 구역은 서브 구역으로서 유효 변환 계수가 분포할 확률이 낮은 나머지 블록들(2110,2112,2114,2116,2118)을 포함하도록 설정될 수 있다.As in the first embodiment, the first zone of the
제5 실시 예에서는 현재 블록(2000)의 분할 비율이 1:1:2로 설정되었지만, 실시 예에 따라 다른 분할 비율로 설정될 수 도 있다. 상기 분할 비율은 미리 정한 값일 수도 있고, 슬라이스 헤더, 픽처 파라미터 셋(PPS), 시퀀스 파라미터 셋(SPS)에 명시될 수도 있다.In the fifth embodiment, the division ratio of the
도 22 내지 24에는 현재 블록의 크기에 따라, 현재 블록을 구역 및 서브 구역으로 분할하는 실시 예가 도시되어 있다.22-24 illustrate an embodiment of dividing the current block into zones and sub-zones, depending on the size of the current block.
도 22는 도 20의 제4 실시 예의 분할 방법에 따라 Mx8 크기의 현재 블록(2200)을 분할하는 방법이 설명된다. 현재 블록(2200)은 가로로 크기 4, 4, M-8로 분할될 수 있다. 그러나 현재 블록(2200)의 높이가 8보다 크지 않기 떄문에, 현재 블록(2200)은 세로로 크기 4, 4로 분할된다.FIG. 22 illustrates a method of dividing the
제1 구역과 제2 구역은 도20의 제4 실시 예와 마찬가지로 결정된다. 그러나, 제3 구역은 서브 구역으로서 크기가 (M-8)Х4인 2개의 블록(2210, 2212)만이 포함될 수 있다. 유사하게, 현재 블록의 크기가 8xN인 경우는, 제1 구역과 제2 구역은 도20의 제4 실시 예와 마찬가지로 결정되고, 제3 구역은 서브 구역으로서 크기가 4Х(N-8)인 2개의 블록만이 포함될 수 있다. 만약, 현재 블록(2200)의 크기가 8x8일 경우, 1개의 서브 구역을 포함하는 제1 구역과 3개의 서브 구역을 포함하는 제2 구역만 설정된다.The first zone and the second zone are determined similarly to the fourth embodiment in Fig. However, the third zone may include only two
도 23은 도 20의 제4 실시 예의 분할 방법에 따라 Mx4 크기의 현재 블록(2300)을 분할하는 방법이 설명된다. 현재 블록(2300)은 가로로 크기 4, 4, M-8로 분할될 수 있다. 그러나 현재 블록(2300)의 높이가 4보다 크지 않기 현재 블록(2300)은 세로로 분할되지 않는다..23 illustrates a method of dividing the
제1 구역은 도20의 제4 실시 예와 마찬가지로 결정된다. 그러나, 제2 구역은 서브 구역으로서 크기가 4x4인 블록(2302)만 포함할 수 있다. 그리고 제3 구역은 서브 구역으로서 크기가 (M-8)Х4인 블록(2304)만이 포함될 수 있다. 유사하게, 현재 블록의 크기가 4xN인 경우는, 제1 구역과 제2 구역은 서브 구역으로서 크기가 4x4인 블록을 하나씩 포함할 수 있다. 그리고 제3 구역은 서브 구역으로서 크기가 4Х(N-8)인 블록이 포함될 수 있다. 만약, 현재 블록(2300)의 크기가 4x8 또는 8x4일 경우, 1개의 서브 구역을 포함하는 제1 구역과 1개의 서브 구역을 포함하는 제2 구역만 설정된다. 그리고 현재 블록(2300)의 크기가 4x4일 경우, 1개의 서브 구역을 포함하는 제1 구역만 설정된다.The first zone is determined similarly to the fourth embodiment in Fig. However, the second zone may only include a
도 24는 도 20의 제4 실시 예의 분할 방법에 따라 Mx2 크기의 현재 블록(2400)을 분할하는 방법이 설명된다. 현재 블록(2400)은 가로로 크기 4, 4, M-8로 분할될 수 있다. 그러나 현재 블록(2400)의 높이가 4보다 크지 않기 현재 블록(2400)은 세로로 분할되지 않는다. FIG. 24 illustrates a method of dividing the
현재 블록(2400)은 높이가 2이기 때문에, 현재 블록(2400)으로부터 분할되는 서브 구역은 4x2 또는 (M-8)x2의 크기를 가진다. 제1 구역과 제2 구역은 각각 서브 구역으로 크기가 4x2 인 블록(2402)과 블록(2404)를 포함한다. 그리고 제3 구역은 서브 구역으로 (M-8)x2인 블록(2406)을 포함한다. 유사하게, 현재 블록의 크기가 2xN인 경우는, 제1 구역과 제2 구역은 서브 구역으로서 크기가 2x4인 블록을 하나씩 포함할 수 있다. 그리고 제3 구역은 서브 구역으로서 크기가 2Х(N-8)인 블록이 포함될 수 있다. 만약, 현재 블록(2400)의 크기가2x8 또는 8x2일 경우, 1개의 서브 구역을 포함하는 제1 구역과 1개의 서브 구역을 포함하는 제2 구역만 설정된다. 그리고 현재 블록(2400)의 크기가 2x4 또는 4x2일 경우, 1개의 서브 구역을 포함하는 제1 구역만 설정된다.Since the
도 20의 제4 실시예와 같이, 특정 서브 구역의 크기가 고정된 경우, 도22 내지 도24와 마찬가지로, 구역이 포함하는 서브 구역의 개수가 현재 블록의 크기에 따라 결정될 수 있다. 도22 내지 도24에서는 고정된 크기를 가진 특정 서브 구역이 크기는 4x4로 제한되지 않는다.As in the case of the fourth embodiment of FIG. 20, when the size of a specific sub-zone is fixed, the number of sub-zones included in the zone may be determined according to the size of the current block, as in FIGS. In Figures 22-24, the size of a particular subarea with a fixed size is not limited to 4x4.
도 25는 본 발명의 일 실시 예에 따른 마지막 위치 기반 계수 코딩 방식(Last position-based coefficient coding scheme)에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.25 is a flowchart illustrating an entropy decoding process based on a last position-based coefficient coding scheme according to an embodiment of the present invention.
단계 2510에서 마지막 위치 정보가 복호화된다. 마지막 위치 정보는 마지막 유효 변환 계수가 존재하는 위치를 나타낸다. 예를 들어, 마지막 위치 정보는 부호화 단위 또는 변환 단위의 마지막 유효 변환 계수가 존재하는 위치를 나타낼 수 있다.In
마지막 위치 정보는 마지막 유효 변환 계수의 위치를 직접적으로 나타낼 수 있다. 마지막 유효 변환 계수가 (lastX, lastY)에 위치할 경우, 마지막 위치 정보는 lastX와 lastY를 순차적으로 나타낼 수 있다. 실시 예에 따라, 마지막 위치 정보는 마지막 유효 변환 계수를 역위치(inverse position)로 나타낼 수 있다. 따라서, 실시 예에 따라, 마지막 위치 정보는 (M-1-lastX, lastY), (lastX, N-1-lastY) 및 (M-1-lastX, N-1-lastY)일 수도 있다. 마지막 위치 정보를 파싱하는 방법은 구역 인덱스, 구역 플래그, 서브 구역 인덱스 또는 서브 구역 플래그 등에 기초하여 결정될 수 있다.The last position information can directly indicate the position of the last effective transform coefficient. If the last valid conversion factor is located at (lastX, lastY), then the last position information may represent lastX and lastY sequentially. According to an embodiment, the last position information may represent the last effective transform coefficient as an inverse position. Therefore, according to the embodiment, the last position information may be (M-1-lastX, lastY), (lastX, N-1-lastY) and (M-1-lastX, N-1-lastY). The method of parsing the last location information may be determined based on the zone index, the zone flag, the sub-zone index, or the sub-zone flag.
마지막 위치 정보는 마지막 유효 변환 계수의 위치의 Y좌표 값을 X좌표 값에 앞서 나타낼 수 있다. 예를 들어, 스캔 순서가 수직 방향인 경우 lastX와 lastY는 스왑(swap)될 수도 있다.The last position information may indicate the Y coordinate value of the position of the last effective conversion coefficient before the X coordinate value. For example, lastX and lastY may be swapped if the scan order is vertical.
마지막 위치 정보를 복호화하기 위한 컨텍스트는 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 현재 블록 크기, 변환 단위 크기, 부호화 단위 크기, 마지막 위치 정보의 설정 방향, 변환 스킵 여부, 부호화된 블록 타입(예, 인트라/인터 부호화 단위), 컴포넌트 타입(예, 루마/크로마), 예측 정보(예, 파티션 모드, 예측 모드) 등에 기초하여 결정될 수 있다.The context for decoding the last position information includes at least one of a zone index, a zone flag, a sub zone index, a sub zone flag, a current block size, a conversion unit size, a coding unit size, a setting direction of last position information, (E.g., intra / inter encoding unit), a component type (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode)
단계 2520에서 유효성 플래그(Significant Flag)가 복호화된다. 유효성 플래그는 픽셀의 변환 계수가 절대 값이 0보다 큰 유효 변환 계수인지 여부를 나타낸다. 마지막 유효 변환 계수의 유효성 플래그는 복호화되지 않을 수 있다. 그리고 마지막 유효 변환 계수는 절대값이 0보다 크다고 결정된다. 마지막 유효 변환 계수 이후에 스캔되는 변환 계수의 유효성 플래그는 복호화되지 않을 수 있다. 그리고 마지막 유효 변환 계수 이후에 스캔되는 변환 계수의 절대값은 0으로 결정된다.In
유효성 플래그를 복호화하기 위한 컨텍스트는 현재 블록의 위치, 부호화된 주변 유효성 플래그, 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 현재 블록 크기, 변환 단위 크기, 부호화 단위 크기, 스캔 순서, 변환 스킵 여부, 부호화된 블록 타입(예, 인트라/인터 부호화 단위), 계수 코딩 방식의 타입, 컴포넌트 타입(예, 루마/크로마), 예측 정보(예, 파티션 모드, 예측 모드) 등에 기초하여 결정될 수 있다.The context for decrypting the validity flag includes the location of the current block, the encoded peripheral validity flag, the zone index, the zone flag, the subregion index, the subregion flag, the current block size, the translation unit size, the encoding unit size, The type of the coefficient coding scheme, the type of the component (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode), and the like.
단계 2530에서 제1 임계값 플래그(GT1 flag)가 복호화된다. 제1 임계값 플래그는 유효 변환 계수에 대하여 복호화된다. 따라서 변환 계수의 절대 값이 0인 경우, 상기 변환 계수에 대한 제1 임계값 플래그는 복호화되지 않는다. 제1 임계값 플래그는 변환 계수의 절대값이 1보다 큰지 여부를 나타낸다. 만약 제1 임계값 플래그가 변환 계수의 절대값이 1보다 크지 않다고 나타낼 경우, 상기 변환 계수의 절대값은 1로 결정된다. 만약 제1 임계값 플래그가 변환 계수의 절대값이 1보다 크다고 나타낼 경우, 상기 변환 계수의 절대값은 1보다 크다고 결정된다.In
실시 예에 따라, 제1 임계값 플래그의 개수는 미리 설정된 개수로 제한될 수 있다. 예를 들어, 현재 블록에 대하여 획득되는 제1 임계값 플래그의 최대 개수가 8로 정해진 경우, 스캔 순서상 먼저 복호화되는 8개의 유효 변환 계수에 대하여만 제1 임계값 플래그가 획득된다. 그러나 9번째 이후의 유효 변환 계수에 대하여는 제1 임계값 플래그가 획득되지 않는다.According to the embodiment, the number of the first threshold value flags may be limited to a predetermined number. For example, when the maximum number of the first threshold flags acquired for the current block is 8, only the first threshold flag is obtained for the eight effective transform coefficients that are decoded first in the scan order. However, the first threshold value flag is not obtained for the ninth and subsequent effective transform coefficients.
제1 임계값 플래그를 복호화하기 위한 컨텍스트는 역방향 스캔 순서로 트레일링(trailing)한 1의 개수, 주변 서브 구역 내의 제1 임계값 플래그의 개수, 주변 유효성 플래그 개수, 주변 유효 제1임계값 플래그 개수, 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 현재 블록 크기, 변환 단위 크기, 부호화 단위 크기, 마지막 위치 정보의 설정 방향, 변환 스킵 여부, 부호화된 블록 타입(예, 인트라/인터 부호화 단위), 계수 코딩 방식의 타입, 컴포넌트 타입(예, 루마/크로마), 예측 정보(예, 파티션 모드, 예측 모드), 등에 기초하여 결정될 수 있다.The context for decrypting the first threshold value flag includes a number of 1 trailed in the reverse scan order, a number of first threshold value flags in the peripheral sub-zone, a number of peripheral validity flags, a number of peripheral valid first threshold value flags (E.g., an intra / inter coding unit, a coding unit size, a coding unit size, a setting direction of last position information, a conversion skip state, a coding block type , Type of coefficient coding scheme, component type (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode), and the like.
단계 2540에서 제2 임계값 플래그(GT2 flag)가 복호화된다. 제2 임계값 플래그는 절대값이 1보다 큰 유효 변환 계수에 대하여 획득된다. 따라서 변환 계수의 절대 값이 1보다 크지 않은 경우, 상기 변환 계수에 대한 제2 임계값 플래그는 획득되지 않는다. 제2 임계값 플래그는 변환 계수의 절대값이 2보다 큰지 여부를 나타낸다. 만약 제2 임계값 플래그가 변환 계수의 절대값이 2보다 크지 않다고 나타낼 경우, 상기 변환 계수의 절대값은 2로 결정된다. 만약 제2 임계값 플래그가 변환 계수의 절대값이 2보다 크다고 나타낼 경우, 상기 변환 계수의 절대값은 2보다 크다고 결정된다.In
실시 예에 따라, 제2 임계값 플래그의 개수는 미리 설정된 개수로 제한될 수 있다. 예를 들어, 현재 블록에 대하여 획득되는 제2 임계값 플래그의 최대 개수가 8로 정해진 경우, 스캔 순서상 먼저 복호화되는 8개의 절대 값이 1보다 큰 유효 변환 계수에 대하여만 제2 임계값 플래그가 획득된다. 그러나 9번째 이후의 유효 변환 계수에 대하여는 제2 임계값 플래그가 획득되지 않는다.According to the embodiment, the number of the second threshold value flags may be limited to a predetermined number. For example, when the maximum number of second threshold flags acquired for the current block is 8, only the second threshold flag is set for the effective transform coefficients whose eight absolute values decoded first in the scan order are larger than 1 . However, the second threshold value flag is not obtained for the ninth and subsequent effective transform coefficients.
제2 임계값 플래그를 복호화하기 위한 컨텍스트는 역방향 스캔 순서에 의한 주변 유효성 플래그의 개수, 유효 제1 임계값 플래그의 개수, 주변 서브 구역 내의 제1 임계값 플래그의 개수, 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 현재 블록 크기, 변환 단위 크기, 부호화 단위 크기, 마지막 위치 정보의 설정 방향, 변환 스킵 여부, 부호화된 블록 타입(예, 인트라/인터 부호화 단위), 계수 코딩 방식의 타입, 컴포넌트 타입(예, 루마/크로마), 예측 정보(예, 파티션 모드, 예측 모드) 등에 기초하여 결정될 수 있다.The context for decoding the second threshold value flag includes the number of the peripheral validity flags in the backward scan order, the number of the valid first threshold value flags, the number of the first threshold value flags in the neighboring sub-zone, the zone index, (E.g., intra / inter coding unit), the type of coefficient coding scheme, the type of coefficient coding scheme, and the type of coefficient coding scheme. Component type (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode), and the like.
단계 2550에서 절대값 정보가 복호화된다. 절대값 정보는 변환 계수의 절대값을 나타낸다. 만약 변환 계수에 대하여 제1 임계값 플래그 및 제2 임계값 플래그가 획득되고, 상기 제2 임계값 플래그가 변환 계수의 절대값이 2보다 크다고 나타내는 경우, 절대값 정보가 나타내는 값보다 3만큼 큰 값이 변환 계수의 절대값으로 결정된다. 만약 변환 계수에 대하여 제2 임계값 플래그의 시그널링 없이 제1 임계값 플래그만 획득되고, 상기 제1 임계값 플래그가 변환 계수의 절대값이 1보다 크다고 나타내는 경우, 절대값 정보가 나타내는 값보다 2만큼 큰 값이 변환 계수의 절대값으로 결정된다.In
단계 2560에서 부호(sign) 정보가 복호화된다. 부호 정보는 유효 변환 계수의 부호를 나타낸다. 따라서 유효성 플래그가 변환 계수의 절대값이 0보다 크다고 나타낼 경우, 부호 정보가 획득될 수 있다. 부호 정보는 1비트 길이의 고정 길이 부호화(fixed length coding) 방식으로 부호화될 수 있다.In
도 25에서 설명된 마지막 위치 기반 계수 코딩 방식에 따른 부호화는, 단계 2510 내지 단계 2560에서 설명된 마지막 위치 정보, 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보, 부호 정보를 변환 계수의 값에 따라 생성함으로써 수행될 수 있다.The encoding according to the last position-based coefficient coding scheme described in FIG. 25 is performed by coding the last position information, the validity flag, the first threshold value flag, the second threshold value flag, the absolute value information, and the sign information described in
도 26은 본 발명의 일 실시 예에 따른 전체 위치 기반 계수 코딩 방식(Full position-based coefficient coding scheme)에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다. 도25의 마지막 위치 기반 계수 코딩 방식에서는 마지막 유효 변환 계수 및 마지막 유효 변환 계수 이후에 스캔되는 변환 계수에 대하여는, 유효성 플래그의 획득 없이 변환 계수의 유효성을 판단하였다.26 is a flowchart illustrating a process of entropy decoding based on a full position-based coefficient coding scheme according to an embodiment of the present invention. In the last position-based coefficient coding scheme of FIG. 25, the validity of the transform coefficient is determined without obtaining a validity flag for the last effective transform coefficient and the transform coefficient scanned after the last effective transform coefficient.
그러나 전체 위치 기반 계수 코딩 방식에서는, 도25의 마지막 위치 기반 계수 코딩 방식과 달리, 마지막 위치 플래그 없이 변환 계수가 복호화된다. 따라서 모든 변환 계수에 대하여 유효성 플래그가 획득된다는 점에서 도26의 전체 위치 기반 계수 코딩 방식은 도25의 마지막 위치 기반 계수 코딩 방식과 차이가 있다. 상기 차이점을 제외하고, 단계 2610 내지 단계 2650은 도 25의 단계 2520 내지 2560과 실질적으로 동일하게 설정될 수 있다.However, unlike the last position-based coefficient coding scheme of Fig. 25, the transform coefficients are decoded without the last position flag in the entire position-based coefficient coding scheme. Therefore, the overall location-based coefficient coding scheme of FIG. 26 differs from the last location based coefficient coding scheme of FIG. 25 in that a validity flag is obtained for all transform coefficients. Except for the difference,
도 27은 본 발명의 일 실시 예에 따른 스캔 영역 기반 계수 코딩 방식(Scan region-based coefficient coding scheme)에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.FIG. 27 is a flowchart illustrating a process of entropy decoding based on a scan region-based coefficient coding scheme according to an embodiment of the present invention.
단계 2710에서 스캔 영역 정보가 복호화될 수 있다. 스캔 영역은 현재 블록에서 변환 계수가 스캔되는 영역을 나타낸다. 스캔 영역 기반 계수 코딩 방식에서 스캔 영역 안의 변환 계수만이 스캔되고, 스캔 영역 밖의 변환 계수는 0으로 결정된다.In
스캔 영역 정보는 현재 블록의 좌측 상단을 기준으로 설정한 좌표 정보를 포함할 수 있다. 예를 들어 좌표 정보가 (srX, srY)를 나타낼 때, 스캔 영역은 (0,0), (srX, 0), (0, srY), (srX, srY)의 4개의 픽셀에 따라 결정된 직사각형의 영역으로 결정된다. The scan area information may include coordinate information set with reference to the upper left corner of the current block. For example, when the coordinate information indicates (srX, srY), the scan area is a rectangle determined by four pixels of (0,0), (srX, 0), (0, srY) Area.
스캔 영역 정보는 현재 블록의 우측 하단을 기준으로 설정한 역위치 좌표 정보를 포함할 수 있다. 예를 들어, 현재 블록의 크기가 MxN이고, 스캔 영역의 우하측 픽셀의 좌표가 (srX, srY)일 때, 역위치 좌표 정보는 (M-1-srX, srY), (srX, N-1-srY) 또는 (M-1-srX, N-1-srY)을 나타낼 수 있다.The scan area information may include inverse position coordinate information set with reference to the lower right end of the current block. For example, when the current block size is MxN and the coordinates of the lower right pixel of the scan area are (srX, srY), the inverse position coordinate information is (M-1-srX, srY) -SrY) or (M-1-srX, N-1-srY).
스캔 영역의 정보를 복호화하기 위한 컨텍스트는 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 현재 블록 크기, 변환 단위 크기, 부호화 단위 크기, 순방향 또는 역방향, 변환 스킵 여부, 부호화된 블록 타입(예, 인트라/인터 부호화 단위), 컴포넌트 타입(예, 루마/크로마), 예측 정보(예, 파티션 모드, 예측 모드) 등에 기초하여 결정될 수 있다.The context for decoding the information of the scan area includes a zone index, a zone flag, a sub zone index, a sub zone flag, a current block size, a conversion unit size, a coding unit size, forward or reverse direction, , Intra / inter encoding unit), component type (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode)
단계 2720에서 E1 플래그가 복호화될 수 있다. E1 플래그는 현재 블록의 모든 유효 변환 계수의 절대 값이 1인지 여부를 나타내는 플래그이다. 스캔 영역 기반 계수 코딩 방식에서 E1 플래그는 스캔 영역의 모든 유효 변환 계수의 절대 값이 1인지 여부를 나타낼 수 있다.In
실시 예에 따라, E1 플래그의 복호화는 생략될 수 있다. E1 플래그가 생략된 경우, 스캔 영역의 모든 유효 변환 계수의 절대 값은 반드시 1로 결정되지 않는다.Depending on the embodiment, decryption of the E1 flag may be omitted. If the E1 flag is omitted, the absolute value of all the effective conversion coefficients in the scan area is not necessarily set to 1.
E1 플래그를 전송하기 위한 조건은 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 먼저 부호화된 서브 구역 내의 제1 임계값 플래그의 개수 등에 기초하여 결정될 수 있다. 그리고, E1 플래그를 복호화하기 위한 컨텍스트는 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 먼저 부호화된 서브 구역 내의 제1 임계값 플래그의 개수, 현재 블록 크기, 변환 단위 크기, 부호화 단위 크기, 마지막 위치 정보의 설정 방향, 변환 스킵 여부, 부호화된 블록 타입(예, 인트라/인터 부호화 단위), 계수 코딩 방식의 타입, 컴포넌트 타입(예, 루마/크로마), 예측 정보(예, 파티션 모드, 예측 모드) 등에 기초하여 결정될 수 있다. The conditions for transmitting the E1 flag can be determined based on the zone index, the zone flag, the sub zone index, the sub zone flag, the number of the first threshold flag in the first encoded zone, and the like. The context for decrypting the E1 flag includes a zone index, a zone flag, a sub-zone index, a sub-zone flag, the number of first threshold flags in a first encoded sub-zone, a current block size, a conversion unit size, (For example, partition mode, prediction), prediction type information (e.g., prediction mode, prediction mode, etc.) Mode), and the like.
단계 2730에서 유효성 플래그가 복호화될 수 있다. 단계 2730의 유효성 플래그 복호화 방식은 도26의 단계 2610과 동일하다.In
단계 2740에서 E1 플래그가 현재 블록의 모든 유효 변환 계수의 절대 값이 1인지 여부를 나타내는지 결정된다. E1 플래그가 1을 나타낼 경우, 현재 블록의 모든 유효 변환 계수의 절대 값은 1로 결정된다. 그리고 변환 계수의 부호를 결정하기 위하여 단계 2780이 수행된다. 반대로, E1 플래그가 0을 나타낼 경우, 단계 2750 내지 단계2770에서 변환 계수의 절대값이 결정된다.In
단계 2750 내지 단계 2770에서 제1 임계값 플래그, 제2 임계값 플래그 및 절대값 정보가 복호화될 수 있다. 단계 2750 내지 단계 2770의 제1 임계값 플래그, 제2 임계값 플래그 및 절대값 정보의 복호화 방식은 도26의 단계 2620 내지 단계 2640과 과 실질적으로 동일하게 설정될 수 있다. 단계 2750 내지 단계 2770에 따라 변환 계수의 절대값이 결정된 후, 단계 2780이 수행된다.In
단계 2780에서 부호 정보가 복호화될 수 있다. 단계 2780의 부호 정보 복호화 방식은 도26의 단계 2650과 과 실질적으로 동일하게 설정될 수 있다.In
도 28은 본 발명의 일 실시 예에 따른 유효 그룹 기반 계수 코딩 방식(Significant group-based coefficient coding)에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.FIG. 28 is a flowchart illustrating a process of entropy decoding based on a significant group-based coefficient coding according to an embodiment of the present invention.
단계 2810에서 유효 그룹 플래그(SigCGflag)가 복호화된다. 현재 블록은 복수의 계수 그룹(coefficient group)을 포함할 수 있다. 일 실시 예에 따르면, 계수 그룹은 임의의 크기의 블록에 포함된 변환 계수를 포함할 수 있다. 예를 들어, 계수 그룹은 4x4 크기의 블록에 포함된 변환 계수를 포함할 수 있다. 만약 현재 블록의 크기가 8x8일 때, 현재 블록은 4개의 계수 그룹을 가질 수 있다.In
다른 일 실시예에 따르면, 계수 그룹은 스캔 순서에 따라 연속하는 소정의 개수의 변환 계수를 포함할 수 있다. 예를 들어, 계수 그룹은 스캔 순서에 따라 연속하는 8개의 변환 계수를 포함할 수 있다. 만약 현재 블록에 포함된 변환 계수가 64개 일 때, 현재 블록은 스캔 순서에 따라 분할된 8개의 계수 그룹을 가질 수 있다.According to another embodiment, the coefficient group may comprise a predetermined number of successive transform coefficients in the scan order. For example, the coefficient group may include eight consecutive transform coefficients according to the scan order. If the number of transform coefficients included in the current block is 64, the current block may have 8 coefficient groups divided according to the scan order.
유효 그룹 플래그는 계수 그룹에 유효 변환 계수가 포함되어 있는지 여부를 나타내는 플래그이다. 따라서 유효 그룹 플래그가 1일 때, 계수 그룹에 유효 변환 계수가 포함되는 것으로 결정된다. 반대로 유효 그룹 플래그가 0일 때, 계수 그룹에 유효 변환 계수가 포함되지 않는 것으로 결정된다. 따라서 계수 그룹의 변환 계수는 모두 0으로 결정된다.The effective group flag is a flag indicating whether or not the coefficient group includes the effective conversion coefficient. Therefore, when the effective group flag is 1, it is determined that the effective conversion coefficient is included in the coefficient group. Conversely, when the valid group flag is 0, it is determined that the effective conversion coefficient is not included in the coefficient group. Therefore, all the transform coefficients of the coefficient group are determined to be zero.
단계 2820에서 유효 그룹 플래그가 1인지 여부가 결정된다. 유효 그룹 플래그가 1일 때, 단계 2830 내지 단계 2870에서 획득된 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보에 따라 계수 그룹에 포함된 변환 계수의 값이 결정될 수 있다. 단계 2830 내지 단계 2870는 도26의 단계 2610 내지 단계 2650과 실질적으로 동일하게 설정될 수 있다.In
도 29는 본 발명의 일 실시 예에 따른 마지막 위치 및 유효 그룹 기반 계수 코딩 방식(Last position & Significant group-based coefficient coding)에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.29 is a flowchart illustrating an entropy decoding process based on a last position and a group-based coefficient coding according to an embodiment of the present invention.
단계 2910에서 마지막 위치 정보가 복호화된다. 도29의 단계 2910은 도25의 단계2510과 실질적으로 동일하게 설정될 수 있다.In
단계 2920에서 유효 그룹 플래그(SigCGflag)가 복호화된다. 도28의 단계 2810과 다르게, 도29의 단계2920에서는 마지막 위치 정보에 따라 마지막 유효 변환 계수를 포함하는 것을 결정된 계수 그룹에 대하여 유효 그룹 플래그가 복호화되지 않는다. 또한 스캔 순서에 따라 마지막 유효 변환 계수를 포함하는 계수 그룹 이후에 복호화되는 계수 그룹에 대하여 유효 그룹 플래그가 복호화되지 않는다.In
단계 2930에서 유효 그룹 플래그가 1인지 여부가 결정된다. 도 28의 단계 2820과 마찬가지로, 유효 그룹 플래그가 1일 때, 단계 2940 내지 단계 2980에서 획득된 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보에 따라 계수 그룹에 포함된 변환 계수의 값이 결정될 수 있다. 단계 2940 내지 단계 2980은 도26의 단계 2610 내지 단계 2650과 실질적으로 동일하게 설정될 수 있다. 만약 유효 그룹 플래그가 0인 경우, 계수 그룹의 변환 계수는 모두 0으로 결정된다.In
마지막 위치 정보에 따라 마지막 유효 변환 계수를 포함하는 계수 그룹은, 유효 그룹 플래그가 1일 때와 마찬가지로, 단계 2940 내지 단계 2980에서 획득된 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보에 따라 계수 그룹에 포함된 변환 계수의 값이 결정될 수 있다. 스캔 순서에 따라 마지막 유효 변환 계수를 포함하는 계수 그룹 이후에 복호화되는 계수 그룹의 변환 계수는, 유효 그룹 플래그가 0일 때와 마찬가지로, 모두 0으로 결정된다.The coefficient group including the last valid conversion coefficient according to the last position information is a flag indicating whether or not the validity flag, the first threshold flag, the second threshold flag, the absolute value obtained in
도 30은 본 발명의 일 실시 예에 따른 유효 그룹 및 마지막 위치 기반 계수 코딩 방식(Significant group & Last position-based coefficient coding)에 기초한 엔트로피 복호화하는 과정을 설명하는 흐름도이다.FIG. 30 is a flowchart illustrating a process of entropy decoding based on valid group and last position-based coefficient coding according to an embodiment of the present invention.
단계 3010에서 유효 그룹 플래그가 복호화된다. 도30의 단계 3010은 도28의 단계2810가 실질적으로 동일하게 설정될 수 있다.In
단계 3020에서 유효 그룹 플래그가 1인지 여부가 결정된다. 유효 그룹 플래그가 0인 경우, 계수 그룹의 변환 계수는 모두 0으로 결정된다. 유효 그룹 플래그가 1인 경우, 단계 3030 내지 단계3080이 수행된다.In
단계 3030 내지 단계 3080에서 마지막 위치 정보, 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보가 획득된다. 도 30의 마지막 위치 정보는, 도25의 마지막 위치 정보와 다르게, 계수 그룹에서의 마지막 유효 변환 계수의 위치를 나타낸다. 도 30의 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보는 도 25의 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보와 실질적으로 동일하다. 단계 3030 내지 단계 3080에서 획득된 마지막 위치 정보, 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보에 따라 현재 블록의 변환 계수가 복호화된다.In
도 31은 본 발명의 일 실시 예에 따른 유효 그룹 및 31 is a block diagram of an effective group < RTI ID = 0.0 > and / lastRunlastRun 기반 계수 코딩 방식(Significant group & Last run-based coefficient coding)에 기초한 엔트로피 복호화하는 과정을 설명하는 도면이다. Based coefficient coding scheme (Significant group & last run-based coefficient coding).
단계 3110에서 유효 그룹 플래그가 복호화된다. 도31의 단계 3110은 도28의 단계2810가 실질적으로 동일하게 설정될 수 있다.In
단계 3120에서 유효 그룹 플래그가 1인지 여부가 결정된다. 유효 그룹 플래그가 0인 경우, 계수 그룹의 변환 계수는 모두 0으로 결정된다. 유효 그룹 플래그가 1인 경우, 단계 3130 내지 단계3180이 수행된다.In
유효 블록 플래그가 1인 경우, 단계 3030에서 lastRun 정보가 복호화된다. lastRun 정보는 마지막 유효 변환 계수가 스캔되는 차례를 나타낸다. 예를 들어, 계수 그룹에 16개의 변환 계수가 포함되고, 마지막 유효 변환 계수가 10번째로 스캔될 경우, lastRun 정보는 10을 나타낼 수 있다.If the valid block flag is 1, the lastRun information is decoded in
단계 3130에서 lastRun 정보에 따라 마지막 유효 변환 계수가 결정될 수 있다. 마지막 위치 정보와 마찬가지로, lastRun 정보에 따른 마지막 유효 변환 계수에 대하여 유효성 플래그가 획득되지 않는다. 또한 lastRun 정보에 따른 마지막 유효 변환 계수 이후에 스캔되는 변환 계수들에 대하여 유효성 플래그가 획득되지 않고, 상기 변환 계수들은 0으로 결정된다.In
lastRun정보의 파싱에 적용되는 스캔 순서는 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그 등에 기초하여 결정될 수 있다. 예를 들어, lastRun을 부호화하기 위한 컨텍스트는 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 현재 블록 크기, 변환 단위 크기, 부호화 단위 크기, 순방향 또는 역방향 여부, 변환 스킵 여부, 부호화된 블록 타입(예, 인트라/인터 부호화 단위), 컴포넌트 타입(예, 루마/크로마), 예측 정보(예, 파티션 모드, 예측 모드) 등에 기초하여 결정될 수 있다.The scan order applied to the parsing of the lastRun information may be determined based on the zone index, zone flag, sub-zone index, sub-zone flag, and the like. For example, the context for encoding lastRun may include a region index, a zone flag, a subspace index, a subspace flag, a current block size, a conversion unit size, a coding unit size, whether forward or backward, (E.g., intra / inter encoding unit), a component type (e.g., luma / chroma), prediction information (e.g., partition mode, prediction mode)
단계 3140 내지 단계 3180에서 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보가 획득된다. 도 31의 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보는 도 25의 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보와 실질적으로 동일하다. 단계 3140 내지 단계 3180에서 획득된 lastRun 정보, 유효성 플래그, 제1 임계값 플래그, 제2 임계값 플래그, 절대값 정보 및 부호 정보에 따라 현재 블록의 변환 계수가 복호화된다.In
도 32는 본 발명의 일 실시 예에 따른 제1 런-레벨 기반 계수 코딩 방식(Run-level-based coefficient coding)에 기초한 엔트로피 복호화하는 과정을 설명하는 도면이다.32 is a view for explaining a process of entropy decoding based on a first run-level-based coefficient coding according to an embodiment of the present invention.
단계 3210에서 런 정보(Run information)가 복호화된다. 런 정보는 스캔 순서에 따라 이전 유효 변환 계수로부터 다음 유효 변환 계수 사이에 있는 값이 0인 변환 계수의 개수를 나타낸다. 예를 들어, 이전 유효 변환 계수로부터 다음 유효 변환 계수 사이에 값이 0인 변환 계수가 3개 있을 경우, 런 정보는3이 된다. 만약 이전 유효 변환 계수와 다음 유효 변환 계수 간에 값이 0인 변환 계수가 없다면, 런 정보는 0으로 결정된다.In
그리고 현재 블록으로부터 최초로부터 획득되는 런 정보는 시작점부터 다음 유효 변환 계수 사이에 있는 값이 0인 변환 계수의 개수를 나타낼 수 있다.And the run information obtained from the beginning of the current block may indicate the number of transform coefficients having a value of 0 between the start point and the next effective transform coefficient.
런 정보는 미리 정해진 개수의 컨텍스트 모델에 따른 절삭 단항 부호화 방식(truncated unary code)으로 복호화될 수 있다. 그리고 런 정보는 바이패스 코딩에 따른 지수-골룸 부호화 방식(exponential-golomb code)으로 복호화될 수 있다. 또는 런 정보는 상기 두 방식을 선택적으로 사용하여 복호화될 수 있다.The run information can be decoded into a truncated unary code according to a predetermined number of context models. Then, the run information can be decoded by an exponential-golomb code according to bypass coding. Or run information may be decoded using the two schemes selectively.
런 정보를 복호화하기 위한 컨텍스트는 현재 블록의 위치, 이전 유효 변환 계수의 값, 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 현재 블록의 크기, 변환 단위 크기, 부호화 단위 크기, 스캔 순서, 변환 스킵 여부, 부호화된 블록 타입(예, 인트라/인터 부호화 단위), 컴포넌트 타입(예, 루마/크로마), 예측 정보(예, 파티션 모드, 예측 모드) 등에 기초하여 결정될 수 있다.The context for decoding the run information includes a position of the current block, a value of the previous effective transform coefficient, a zone index, a zone flag, a sub zone index, a sub zone flag, a size of a current block, a conversion unit size, (E.g., partition mode, prediction mode), and the like, depending on the type of the block to be coded, the type of the block to be coded, the type of the coded block (e.g., intra /
단계 3220에서, 레벨 정보(level information)가 복호화된다. 레벨 정보는 런 정보에 따라 결정된 값이 0인 변환 계수 이후에 오는 유효 변환 계수의 절대값을 나타낸다. 예를 들어, 상기 유효 변환 계수의 값이 -2일 경우, 레벨 정보는 2를 나타낸다.In
레벨 정보는 미리 정해진 개수의 컨텍스트 모델에 따른 절삭 단항 부호화 방식(truncated unary code)으로 복호화될 수 있다. 그리고 레벨 정보는 바이패스 코딩에 따른 지수-골룸 부호화 방식(exponential-golomb code)으로 복호화될 수 있다. 또는 레벨 정보는 상기 두 방식을 선택적으로 사용하여 복호화될 수 있다.The level information may be decoded into a truncated unary code according to a predetermined number of context models. The level information may be decoded by an exponential-golomb code according to bypass coding. Or level information may be decoded using the above two schemes selectively.
레벨 정보를 복호화하기 위한 컨텍스트는 현재 블록의 위치, 이전 유효 변환 계수의 값, 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 현재 블록의 크기, 변환 단위 크기, 부호화 단위 크기, 스캔 순서, 변환 스킵 여부, 부호화된 블록 타입(예, 인트라/인터 부호화 단위), 컴포넌트 타입(예, 루마/크로마), 예측 정보(예, 파티션 모드, 예측 모드) 등에 기초하여 결정될 수 있다.The context for decoding the level information includes at least one of the position of the current block, the value of the previous effective transform coefficient, the zone index, the zone flag, the sub zone index, the sub zone flag, the size of the current block, (E.g., partition mode, prediction mode), and the like, depending on the type of the block to be coded, the type of the block to be coded, the type of the coded block (e.g., intra /
단계 3230에서 부호 정보가 복호화된다. 단계 3230의 부호 정보는 도25의 단계 2560의 부호 정보와 동일하게 설정될 수 있다. 단계 3220의 레벨 정보와 단계 3230의 부호 정보에 따라 유효 변환 계수가 복호화된다.In
단계 3240에서 마지막 유효 계수 플래그(lastflag)가 복호화된다. 마지막 유효 계수 플래그는 현재 결정된 유효 변환 계수가 현재 블록의 마지막 유효 변환 계수인지 여부를 나타낸다. 만약 상기 유효 변환 계수가 현재 블록의 마지막 변환 계수일 때, 마지막 유효 계수 플래그를 획득하지 않고, 상기 유효 변환 계수가 마지막 유효 변환 계수로 결정된다. 마지막 유효 계수 플래그가 1을 나타낼 경우, 상기 유효 변환 계수는 마지막 유효 변환 계수로 결정된다. 반대로, 마지막 유효 계수 플래그가 0을 나타낼 경우, 상기 유효 변환 계수는 마지막 유효 변환 계수로 결정되지 않는다In
단계 3250에서 마지막 유효 계수 플래그가 1인지 여부가 결정된다. 만약 마지막 유효 계수 플래그가 1일 경우, 현재 결정된 유효 변환 계수 이후의 변환 계수의 값은 모두 0으로 결정된다. 그러나 마지막 유효 계수 플래그가 0일 경우, 단계 3210 내지 단계 3240이 다시 수행된다.In
이하 상기 제1 런-레벨 기반 계수 코딩 방식에 따른 부호화의 일 예가 설명된다. 만약 4x4 크기의 현재 블록에 포함된 16개의 변환 계수가 4, 3, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0일 경우, 런-레벨 기반 계수 코딩 방식에 따라 변환 계수는 (4), (3), (0, -1), (0, 0, 1), (0, 0, 0, 1), (0, 0, 0, 0, 0)와 같이 그룹핑된다. 그룹 (4)에 대한 런 정보는 0, 레벨 정보는 4, 부호 정보는 0(+), 마지막 유효 계수 플래그는 0으로 결정된다. 그리고 그룹 (3)에 대한 런 정보는 0, 레벨 정보는 3, 부호 정보는 0(+), 마지막 유효 계수 플래그는 0으로 결정된다. 그리고 그룹 (0, -1)에 대한 런 정보는 1, 레벨 정보는 1, 부호 정보는 1(-), 마지막 유효 계수 플래그는 0으로 결정된다. 그리고 그룹 (0, 0, 1)에 대한 런 정보는 2, 레벨 정보는 1, 부호 정보는 0(+), 마지막 유효 계수 플래그는 0으로 결정된다. 그리고 그룹 (0, 0, 0, 1)에 대한 런 정보는 3, 레벨 정보는 1, 부호 정보는 0(+), 마지막 유효 계수 플래그는 1로 결정된다. 마지막 유효 계수가 1을 나타내기 때문에, 그룹 (0, 0, 0, 0, 0)에 대한 정보는 추가적으로 생성되지 않고 현재 블록의 부호화가 종결된다.Hereinafter, an example of encoding according to the first run-level-based coefficient coding scheme will be described. If the 16 transform coefficients included in the 4x4 current block are 4, 3, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, (4), (3), (0, -1), (0,0,1), (0,0,0,1), (0,0,0,0) , 0, 0). The run information for the
도 33은 본 발명의 일 실시 예에 따른 제2 런-레벨 기반 계수 코딩 방식에 기초한 엔트로피 복호화하는 과정을 설명하는 도면이다.33 is a view for explaining a process of entropy decoding based on a second run-level-based coefficient coding scheme according to an embodiment of the present invention.
제2 런-레벨 기반 계수 코딩 방식은 제1 런-레벨 기반 계수 코딩 방식과 달리 마지막 유효 계수 플래그가 획득되지 않는다. 따라서 경우에 따라 제2 런-레벨 기반 계수 코딩 방식은 마지막 유효 계수 플래그를 생성하지 않음으로써 제1 런-레벨 기반 계수 코딩 방식보다 높은 부호화 효율을 제공할 수 있다.The second run-level based coefficient coding scheme is different from the first run-level based coefficient coding scheme The last valid coefficient flag is not obtained. In some cases, the second run-level based coefficient coding scheme may provide a higher coding efficiency than the first run-level based coefficient coding scheme by not generating the last significant coefficient flag.
단계 3310에서 런 정보가 복호화된다. 도33의 런 정보는 도32의 런 정보와 실질적으로 동일하게 설정될 수 있다.In
단계 3320에서 현재 변환 계수가 현재 블록의 마지막 변환 계수인지 여부(조건A)가 결정된다. 단계 3320에서 현재 변환 계수는 런 정보에 따라 결정된 값이 0인 변환 계수들 중 마지막 변환 계수를 의미한다. 현재 변환 계수가 현재 블록의 마지막 변환 계수일 경우, 현재 블록의 복호화가 종결된다. 그러나 현재 변환 계수가 현재 블록의 마지막 변환 계수가 아닐 경우, 단계 3330이 수행된다.In
단계 3330에서 레벨 정보가 복호화된다. 도33의 레벨 정보는 도32의 레벨 정보와 실질적으로 동일하게 설정될 수 있다.In
단계 3340에서 부호 정보가 복호화된다. 도33의 부호 정보는 도32의 부호 정보와 실질적으로 동일하게 설정될 수 있다.In
단계 3350에서 현재 변환 계수가 현재 블록의 마지막 변환 계수인지 여부(조건B)가 결정된다. 단계 3350에서 현재 변환 계수는 레벨 정보 및 부호 정보에 따라 결정된 유효 변환 계수를 의미한다. 현재 변환 계수가 현재 블록의 마지막 변환 계수일 경우, 현재 블록의 복호화가 종결된다. 그러나 현재 변환 계수가 현재 블록의 마지막 변환 계수가 아닐 경우, 단계 3310이 수행된다.In
이하 상기 제2 런-레벨 기반 계수 코딩 방식에 따른 부호화의 일 예가 설명된다. 만약 4x4 크기의 현재 블록에 포함된 16개의 변환 계수가 4, 3, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0일 경우, 런-레벨 기반 계수 코딩 방식에 따라 변환 계수는 (4), (3), (0, -1), (0, 0, 1), (0, 0, 0, 1), (0, 0, 0, 0, 0)와 같이 그룹핑된다. 그룹 (4)에 대한 런 정보는 0, 레벨 정보는 4, 부호 정보는 0(+)으로 결정된다. 그리고 그룹 (3)에 대한 런 정보는 0, 레벨 정보는 3, 부호 정보는 0(+)으로 결정된다. 그리고 그룹 (0, -1)에 대한 런 정보는 1, 레벨 정보는 1, 부호 정보는 1(-)으로 결정된다. 그리고 그룹 (0, 0, 1)에 대한 런 정보는 2, 레벨 정보는 1, 부호 정보는 0(+)으로 결정된다. 그리고 그룹 (0, 0, 0, 1)에 대한 런 정보는 3, 레벨 정보는 1, 부호 정보는 0(+)으로 결정된다. 그리고 그룹 (0, 0, 0, 0, 0)에 대하여 5의 값을 가지는 런 정보만이 생성되고 현재 블록의 부호화가 종결된다.Hereinafter, an example of encoding according to the second run-level-based coefficient coding scheme will be described. If the 16 transform coefficients included in the 4x4 current block are 4, 3, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, (4), (3), (0, -1), (0,0,1), (0,0,0,1), (0,0,0,0) , 0, 0). The run information for the
도 34 및 도 35는 스캔 영역을 설정하는 일 실시 예를 설명하는 도면이다.34 and 35 are diagrams for explaining an embodiment for setting a scan area.
스캔 영역은 현재 블록에서 변환 계수가 스캔되는 영역을 나타낸다. 스캔 영역 기반 계수 코딩 방식에서 스캔 영역 안의 변환 계수만이 스캔되고, 스캔 영역 밖의 변환 계수는 0으로 결정된다.The scan area indicates an area where the conversion coefficient is scanned in the current block. In the scan area-based coefficient coding scheme, only the transform coefficients in the scan area are scanned, and the transform coefficients outside the scan area are determined as zero.
엔트로피 복호화부(1620)는 다양한 방식으로 현재 블록을 스캔할 수 있다. 일 실시 예로써, 스캔 영역은 현재 블록의 크기와 동일할 수 있다. 또는 스캔 영역 정보가 가리키는 좌표에 따라, 엔트로피 복호화부(1620)는 현재 블록의 일부분을 스캔 영역으로 결정할 수 있다.The
도 34 는 일 실시 예에 따라 직사각형의 형태의 스캔 영역을 결정하는 방법이 도시되어 있다.FIG. 34 shows a method of determining a scan area in the form of a rectangle according to an embodiment.
도 34 에는 직사각형의 형태의 스캔 영역(3401)이 도시되어 있다. 스캔 영역(3401)은 스캔 영역의 우하측 샘플의 좌표인 (srX, srY)로 정의될 수 있다. srX는 가장 우측에 위치한 유효 변환 계수의 위치의 x좌표 성분에 따라 결정되며, srY는 가장 아래에 위치한 유효 변환 계수의 위치의 y좌표 성분에 따라 결정된다. 그리고 스캔 영역(3401)은 (0,0), (srX, 0), (0, srY), (srX, srY)의 4개의 픽셀에 따라 결정된다.In Fig. 34, a
스캔 영역 정보는 현재 블록의 좌측 상단을 기준으로 설정한 좌표 정보를 포함할 수 있다. 예를 들어 좌표 정보가 (srX, srY)를 나타낼 때, 스캔 영역은 (0,0), (srX, 0), (0, srY), (srX, srY)의 4개의 픽셀에 따라 결정된 직사각형의 영역으로 결정된다. The scan area information may include coordinate information set with reference to the upper left corner of the current block. For example, when the coordinate information indicates (srX, srY), the scan area is a rectangle determined by four pixels of (0,0), (srX, 0), (0, srY) Area.
스캔 영역 정보는 현재 블록의 우측 하단을 기준으로 설정한 역위치 좌표 정보를 포함할 수 있다. 예를 들어, 현재 블록의 크기가 MxN이고, 스캔 영역의 우하측 픽셀의 좌표가 (srX, srY)일 때, 역위치 좌표 정보는 (M-1-srX, srY), (srX, N-1-srY) 또는 (M-1-srX, N-1-srY)을 나타낼 수 있다.The scan area information may include inverse position coordinate information set with reference to the lower right end of the current block. For example, when the current block size is MxN and the coordinates of the lower right pixel of the scan area are (srX, srY), the inverse position coordinate information is (M-1-srX, srY) -SrY) or (M-1-srX, N-1-srY).
도 35 는 일 실시 예에 따라 정사각형의 형태의 스캔 영역을 결정하는 방법이 도시되어 있다.FIG. 35 shows a method of determining a scan area in the form of a square according to an embodiment.
도 35 에는 정사각형의 형태의 스캔 영역(3501)이 도시되어 있다. 스캔 영역(3501)은 스캔 영역의 변의 크기인 srR로 정의될 수 있다. srR은 가장 우측에 위치한 유효 변환 계수의 위치의 x좌표 성분과 가장 아래에 위치한 유효 변환 계수의 위치의 y좌표 성분 중 큰 값으로 결정된다. 따라서 스캔 영역(3501)은 (0,0), (srR, 0), (0, srR), (srR, srR)의 4개의 픽셀에 따라 결정된다.FIG. 35 shows a
도 35의 스캔 영역 정보는 정사각형인 스캔 영역의 변의 길이만을 나타낸다. 도 35의 스캔 영역 정보에는 srR만이 포함되기 때문에, 2개의 값이 포함되는 도34의 스캔 영역 정보보다 데이터의 크기가 작다. 따라서 도 35와 같이 스캔 영역을 정사각형으로 설정하는 경우, 경우에 따라 부호화 효율이 증가할 수 있다.The scan area information in Fig. 35 shows only the length of the sides of the scan area that is a square. Since only the SRR is included in the scan area information in Fig. 35, the data size is smaller than the scan area information in Fig. 34 including two values. Therefore, when the scan area is set to a square as shown in FIG. 35, the encoding efficiency may increase in some cases.
도 36은 9개의 서브 구역으로 분할된 현재 블록을 도시한다. 도36에 따라, 현재 블록의 스캔 순서를 결정하는 방법과 현재 블록의 구역 플래그, 서브 구역 플래그, 런 정보, 레벨 정보, 마지막 유효 계수 플래그의 컨텍스트를 결정하는 방법이 설명된다.Figure 36 shows the current block divided into nine sub-zones. Referring to Fig. 36, a method of determining the scan order of the current block and a method of determining the context of the zone flag, sub zone flag, run information, level information, and last valid coefficient flag of the current block will be described.
도 36은 현재 블록의 스캔 방향이 수직 방향 또는 수평 방향인 실시 예가 도시되어 있다. 현재 블록의 스캔 방향은 수직 방향, 수평 방향, 지그재그 방향 및 대각선 방향 등으로 결정될 수 있다. 현재 블록에 포함된 서브 구역의 스캔 방향은 독립적으로 결정될 수 있다. 스캔 방향은 다양한 정보에 기초하여 결정될 수 있다. 예를 들어, 구역 인덱스, 구역 플래그, 서브 구역 인덱스, 서브 구역 플래그, 주변의 유효 변환 계수를 포함한 서브 구역의 갯수, 인트라 모드, 계수 부호화 단위(Coefficient Coding Unit: CCU) 크기, 변환 단위 크기, 부호화 단위 크기, 변환 스킵 여부, 부호화된 블록 타입(예, 인트라/인터 부호화 단위), 컴포넌트 타입(예, 루마/크로마), 예측 정보(예, 파티션 모드, 예측 모드)에 따라 스캔 방향이 결정될 수 있다.Fig. 36 shows an embodiment in which the scan direction of the current block is a vertical direction or a horizontal direction. The scan direction of the current block may be determined by a vertical direction, a horizontal direction, a zigzag direction, and a diagonal direction. The scan direction of the sub-zone included in the current block can be independently determined. The scan direction may be determined based on various information. For example, the number of sub-zones including the zone index, the zone flag, the sub-zone index, the sub-zone flag, the surrounding effective coefficient, the intra mode, the size of the CCU, The scanning direction can be determined according to a unit size, a conversion skip state, an encoded block type (e.g., intra / inter coding unit), a component type (e.g., luma / chroma), prediction information .
도36 에는 3개의 구역 및 9개의 서브 구역을 포함하는 현재 블록이 도시되어 있다. 상기 현재 블록은 변환 단위, 부호화 단위 또는 다른 블록 단위일 수도 있다.36 shows a current block including three zones and nine sub-zones. The current block may be a conversion unit, an encoding unit, or another block unit.
제1 구역(z0)은 제1 서브 구역(sz0)을 포함하고, 제2구역(z1)은 제2 내지 제4 서브 구역(sz1, sz2, sz3)을 포함하며, 제3 구역(z2)은 제5 내지 제9 서브 구역 (sz4, sz5, sz6, sz7, sz8)을 포함할 수 있다. 도36에 도시된 구역 및 서브 구역의 구역 플래그 및 서브 구역 플래그에 따라 각 서브 구역의 스캔 방향이 결정된다.The first zone z0 comprises a first sub-zone sz0, the second zone z1 comprises second through fourth sub-zones sz1, sz2 and sz3, the third zone z2 comprises And the fifth to ninth sub zones sz4, sz5, sz6, sz7, sz8. The scan direction of each sub-zone is determined according to the zone flag and sub-zone flag of the zone and sub-zone shown in Fig.
일 실시 예에 따르면 수평 유효 서브 구역 카운트 값(cntHor)은 제3 서브 구역(sz2), 제6 서브 구역(sz5), 제4 서브 구역(sz3), 제7 서브 구역(sz6), 제8 서브 구역(sz7) 및 제9 서브 구역(sz8)의 구역 플래그가 나타내는 값의 합으로 결정될 수 있다. 그리고, 수직 유효 서브 구역 카운트 값(cntVer)은 제2 서브 구역(sz1), 제5 서브 구역(sz4), 제4 서브 구역(sz3), 제7 서브 구역(sz6), 제8 서브 구역(sz7) 및 제9 서브 구역(sz8)의 구역 플래그가 나타내는 값의 합으로 결정될 수 있다. 수평 유효 서브 구역 카운트 값(cntHor)과 수직 유효 서브 구역 카운트 값(cntVer)은 아래와 같이 수식으로 표현된다.According to one embodiment, the horizontal effective subarea count value cntHor is set to the third subareas sz2, the sixth subareas sz5, the fourth subareas sz3, the seventh subareas sz6, Can be determined as the sum of the values indicated by the zone flags of the zone sz7 and the ninth sub zone sz8. Then, the vertical effective subarea count value cntVer is set to the second subareas sz1, the fifth subareas sz4, the fourth subareas sz3, the seventh subareas sz6, the eighth subareas sz7 ) And the zone flags of the ninth subareas sz8. The horizontal effective subarea count value (cntHor) and the vertical effective subarea count value (cntVer) are expressed by the following equations.
cntHor = fsz2 + fsz5 + fsz3 + fsz6 + fsz7 + fsz8 cntHor = fsz2 + fsz5 + fsz3 + fsz6 + fsz7 + fsz8
cntVer = fsz1 + fsz4 + fsz3 + fsz6 + fsz7 + fsz8)cntVer = fsz1 + fsz4 + fsz3 + fsz6 + fsz7 + fsz8)
그리고, 서브 구역 플래그, 수평 유효 서브 구역 카운트 값(cntHor) 및 수직 유효 서브 구역 카운트 값(cntVer)에 따라 제1 수평 상수(isHor4), 제1 수직 상수(isVer4), 제2 수평 상수(isHor8), 제2 수직 상수(isVer8)가 결정된다. 제1 수평 상수(isHor4), 제1 수직 상수(isVer4), 제2 수평 상수(isHor8), 제2 수직 상수(isVer8)에 따라 현재 블록의 스캔 방향이 결정될 수 있다.Then, a first horizontal constant isHor4, a first vertical constant isVer4, a second horizontal constant isHor8, and a second horizontal constant isHor4 according to the sub-zone flag, the horizontal effective subarea count value cntHor and the vertical effective subarea count value cntVer, , A second vertical constant (isVer8) is determined. The scan direction of the current block may be determined according to the first horizontal constant isHor4, the first vertical constant isVer4, the second horizontal constant isHor8, and the second vertical constant isVer8.
제1 수평 상수(isHor4)는 제1서브 구역(sz0)이 유효 서브 구역이고, 제2 서브 구역(sz1) 또는 제5 서브 구역(sz4)이 유효 서브 구역이고, 수평 유효 서브 구역 카운트 값(cntHor)이 0 일 때, 1로 결정된다. 상기 조건이 만족되지 않으면 제1 수평 상수는 0으로 결정된다.The first horizontal constant isHor4 is set such that the first subzone sz0 is the effective subzone and the second subzone sz1 or the fifth subzone sz4 is the effective subzone and the horizontal effective subarea count value cntHor ) Is 0, it is determined to be 1. If the above condition is not satisfied, the first horizontal constant is determined to be zero.
제1 수직 상수(isVer4)는 제1서브 구역(sz0)이 유효 서브 구역이고, 제3 서브 구역(sz2) 또는 제6 서브 구역(sz5)이 유효 서브 구역이고, 수직 유효 서브 구역 카운트 값(cntVer)이 0 일 때, 1로 결정된다. 상기 조건이 만족되지 않으면 제1 수평 상수는 0으로 결정된다.The first vertical constant isVer4 is set such that the first subzone sz0 is the effective subzone and the third subzone sz2 or the sixth subzone sz5 is the effective subzone and the vertical effective subarea count value cntVer ) Is 0, it is determined to be 1. If the above condition is not satisfied, the first horizontal constant is determined to be zero.
제2 수평 상수(isHor8)는 제1서브 구역(sz0)과 제2 서브 구역(sz1)이 유효 서브 구역이고, 수평 유효 서브 구역 카운트 값(cntHor)이 0 일 때, 1로 결정된다. 상기 조건이 만족되지 않으면 제1 수평 상수는 0으로 결정된다.The second horizontal constant isHor8 is determined to be 1 when the first subareas sz0 and the second subareas sz1 are valid subareas and the horizontal effective subarea count value cntHor is zero. If the above condition is not satisfied, the first horizontal constant is determined to be zero.
제2 수직 상수(isVer8)는 제1서브 구역(sz0)과 제3 서브 구역(sz2)이 유효 서브 구역이고, 수직 유효 서브 구역 카운트 값(cntVer)이 0 일 때, 1로 결정된다. 상기 조건이 만족되지 않으면 제1 수평 상수는 0으로 결정된다. 제1 수평 상수(isHor4), 제1 수직 상수(isVer4), 제2 수평 상수(isHor8), 제2 수직 상수(isVer8)의 결정 방법에 관한 실시 예가 아래 수식으로 설명된다.The second vertical constant isVer8 is determined to be 1 when the first sub zone sz0 and the third sub zone sz2 are valid subareas and the vertical effective subarea count value cntVer is zero. If the above condition is not satisfied, the first horizontal constant is determined to be zero. A method of determining a first horizontal constant isHor4, a first vertical constant isVer4, a second horizontal constant isHor8, and a second vertical constant isVer8 is described below.
isHor4 = fsz0 & (fsz1 || fsz4) & (cntHor == 0)isHor4 = fsz0 & (fsz1 || fsz4) & (cntHor == 0)
isVer4 = fsz0 & (fsz2 || fsz5) & (cntVer == 0)isVer4 = fsz0 & (fsz2 || fsz5) & (cntVer == 0)
isHor8 = fsz0 & fsz1 & (cntHor == 0)isHor8 = fsz0 & fsz1 & (cntHor == 0)
isVer8 = fsz0 & fsz2 & (cntVer == 0)isVer8 = fsz0 & fsz2 & (cntVer == 0)
일 실시 예에 따라, 현재 블록의 예측 모드에 따라 임시 스캔 인덱스(tmpScanIdx)가 결정될 수 있다. 현재 블록의 예측 모드(Imode)이 수직 모드(VerMode)에 가까울 경우, 임시 스캔 인덱스(tmpScanIdx)는 수직 스캔(Scan_Ver)을 나타낼 수 있다. 현재 블록의 인트라 예측 모드(Imode)와 수직 모드(VerMode)의 인트라 모드 인덱스 차이가 5 이하일 때, 현재 블록의 인트라 예측 모드(Imode)와 수직 모드(VerMode)가 가깝다고 결정될 수 있다.According to one embodiment, the temporary scan index tmpScanIdx may be determined according to the prediction mode of the current block. If the prediction mode (Imode) of the current block is close to the vertical mode (VerMode), the temporary scan index tmpScanIdx may indicate a vertical scan (Scan_Ver). It can be determined that the intra-prediction mode (Imode) and the vertical mode (VerMode) of the current block are close to each other when the intra-mode index difference between the intra-prediction mode (Imode) and the vertical mode (VerMode) of the current block is 5 or less.
그리고 현재 블록의 예측 모드(Imode)이 수평 모드(HorMode)에 가까울 경우, 임시 스캔 인덱스(tmpScanIdx)는 수평 스캔(Scan_Hor)을 나타낼 수 있다. 현재 블록의 인트라 예측 모드(Imode)와 수평 모드(HorMode)의 인트라 모드 인덱스 차이가 5 이하일 때, 현재 블록의 인트라 예측 모드(Imode)와 수평 모드(HorMode)가 가깝다고 결정될 수 있다.If the prediction mode (Imode) of the current block is close to the horizontal mode (HorMode), the temporary scan index tmpScanIdx may indicate a horizontal scan (Scan_Hor). It can be determined that the intra-prediction mode (Imode) of the current block and the horizontal mode (HorMode) are close to each other when the intra-mode index difference between the intra-prediction mode (Imode) and the horizontal mode (HorMode) of the current block is 5 or less.
만약 현재 블록의 인트라 예측 모드(Imode)가 수직 모드(VerMode) 또는 수평 모드(HorMode)에 가깝지 않은 경우, 임시 스캔 인덱스(tmpScanIdx)는 대각선 스캔(Scan_Diag)을 나타낼 수 있다. 그리고, 현재 블록이 인터 예측되는 경우, 임시 스캔 인덱스(tmpScanIdx)는 지그재그 스캔(Scan_Zigzag)을 나타낼 수 있다. 임시 스캔 인덱스(tmpScanIdx)의 결정 방법에 관한 실시 예가 아래 수식으로 설명된다.If the intra-prediction mode (Imode) of the current block is not close to the vertical mode (VerMode) or the horizontal mode (HorMode), the temporary scan index tmpScanIdx may indicate a diagonal scan (Scan_Diag). When the current block is inter-predicted, the temporary scan index tmpScanIdx may indicate a scan zigzag. An embodiment concerning a method of determining the temporary scan index (tmpScanIdx) is described by the following equation.
tmpScanIdx = |Imode - VerMode|<5 ? Scan_Ver : (|Imode - HorMode|<5 ? Scan_Hor : Scan_Diag) tmpScanIdx = | Imode - VerMode | <5? Scan_Ver: (| Imode - HorMode | <5? Scan_Hor: Scan_Diag)
or tmpScanIdx = Scan_Zigzagor tmpScanIdx = Scan_Zigzag
제1 수평 상수(isHor4), 제1 수직 상수(isVer4), 제2 수평 상수(isHor8), 제2 수직 상수(isVer8) 및 임시 스캔 인덱스(tmpScanIdx)에 기초하여 현재 블록의 스캔 방향(ScanIdx)이 결정될 수 있다. 제1 서브 구역(sz0)이 유효 서브 구역이고, 제1 구역(z0)에 마지막 유효 계수가 있을 때, 현재 블록의 스캔 방향(ScanIdx)은 임시 스캔 인덱스(tmpScanIdx)가 나타내는 스캔 방향과 동일하게 결정될 수 있다. 그러나 제1 서브 구역(sz0)이 유효 서브 구역이고, 제1 구역(Z0)에 마지막 유효 계수가 없을 때, 제1 수평 상수(isHor4), 제1 수직 상수(isVer4)에 따라 현재 블록의 스캔 방향(ScanIdx)이 결정될 수 있다. 예를 들어, 제1 수평 상수(isHor4)가 1일 때, 현재 블록의 스캔 방향(ScanIdx)은 수평 방향(Scan_Hor)으로 결정될 수 있다. 그리고 제1 수직 상수(isVer4)가 1일 때, 현재 블록의 스캔 방향(ScanIdx)은 수직 방향(Scan_Ver)으로 결정될 수 있다. 제1 수평 상수(isHor4)와 제1 수직 상수(isVer4)가 모두 0일 때, 현재 블록의 스캔 방향(ScanIdx)은 지그재그 방향(Scan_Zigzag)으로 결정될 수 있다.The scan direction ScanIdx of the current block is determined based on the first horizontal constant isHor4, the first vertical constant isVer4, the second horizontal constant isHor8, the second vertical constant isVer8, and the temporary scan index tmpScanIdx, Can be determined. When the first sub zone sz0 is the effective subarea and the last zone effective value is in the first zone z0, the scan direction (ScanIdx) of the current block is determined to be the same as the scan direction indicated by the temporary scan index tmpScanIdx . However, when the first sub zone sz0 is an effective sub zone and there is no last effective coefficient in the first zone Z0, the scan direction of the current block according to the first horizontal constant isHor4 and the first vertical constant isVer4 (ScanIdx) can be determined. For example, when the first horizontal constant isHor4 is 1, the scan direction (ScanIdx) of the current block may be determined as the horizontal direction (Scan_Hor). When the first vertical constant isVer4 is 1, the scan direction (ScanIdx) of the current block may be determined as the vertical direction (Scan_Ver). When the first horizontal constant isHor4 and the first vertical constant isVer4 are both 0, the scan direction (ScanIdx) of the current block may be determined as the zigzag direction (Scan_Zigzag).
제1 서브 구역(sz0)이 유효 서브 구역이 아니고, 제2 서브 구역(sz1)이 유효 서브 구역이며, 제2 수평 상수(isHor8)가1 인 경우, 현재 블록의 스캔 방향(ScanIdx)은 수평 방향(Scan_Hor)으로 결정될 수 있다. 그리고 제1 서브 구역(sz0)이 유효 서브 구역이 아니고, 제3 서브 구역(sz2)이 유효 서브 구역이며, 제2 수직 상수(isVer8)가1 인 경우, 현재 블록의 스캔 방향(ScanIdx)은 수직 방향(Scan_Ver)으로 결정될 수 있다. 상기 조건이 만족되지 않는 경우, 현재 블록의 스캔 방향(ScanIdx)은 지그재그 방향(Scan_Zigzag)으로 결정될 수 있다.When the first sub-zone sz0 is not an effective sub-zone, the second sub-zone sz1 is an effective sub-zone, and the second horizontal constant isHor8 is 1, the scan direction ScanIdx of the current block is horizontal (Scan_Hor). When the first sub-zone sz0 is not an effective sub-zone, the third sub-zone sz2 is an effective sub-zone, and the second vertical constant isVer8 is 1, the scan direction ScanIdx of the current block is vertical Direction (Scan_Ver). If the above condition is not satisfied, the scan direction (ScanIdx) of the current block may be determined as the zigzag direction (Scan_Zigzag).
현재 블록의 스캔 방향(ScanIdx)의 결정 방법에 관한 실시 예가 아래 수식으로 설명된다.An embodiment of a method for determining the scan direction (ScanIdx) of the current block is described by the following equation.
If fsz0If fsz0
ScanIdx = fz0 ? tmpScanIdx : (isHor4 ? Scan_Hor : (isVer4 ? Scan_Ver :Scan_Zigzag))ScanIdx = fz0? tmpScanIdx: (isHor4? Scan_Hor: (isVer4? Scan_Ver: Scan_Zigzag))
elseelse
ScanIdx = fsz1 & isHor8 ? Scan_Hor : (SZ2 & isVer8? Scan_Ver : Scan_Zigzag)ScanIdx = fsz1 & isHor8? Scan_Hor: (SZ2 & isVer8? Scan_Ver: Scan_Zigzag)
상기 설명된 현재 블록의 스캔 방향 결정 방법에 따르면, 현재 블록의 인트라 예측 모드에 따라 현재 블록의 스캔 방향이 결정될 수 있다. 따라서 현재 블록의 인트라 예측 모드의 예측 방향에 따라 현재 블록의 스캔 방향은 수직 모드, 수평 모드, 대각선 모드가 될 수 있다.According to the above-described method for determining the scan direction of the current block, the scan direction of the current block can be determined according to the intra prediction mode of the current block. Accordingly, the scan direction of the current block may be a vertical mode, a horizontal mode, and a diagonal mode depending on the prediction direction of the intra prediction mode of the current block.
또한 현재 블록의 상단 서브 구역만이 유효 서브 구역인 경우, 현재 블록의 스캔 방향은 수평 모드가 될 수 있다. 마찬가지로, 현재 블록의 좌측 서브 구역만이 유효 서브 구역인 경우, 현재 블록의 스캔 방향은 수직 모드가 될 수 있다.Also, if only the upper sub-zone of the current block is an effective sub-zone, the scan direction of the current block may be the horizontal mode. Similarly, if only the left sub-zone of the current block is an effective sub-zone, the scan direction of the current block may be the vertical mode.
도 36에 기초하여 설명된 스캔 순서 결정 방법은 도 17 내지 21에서 설명된 구역 및 서브 구역의 분할에 관한 실시 예에 적용될 수 있다. 이하 스캔 순서 결정 방법에 이어, 구역 플래그, 서브 구역 플래그, 런 정보, 레벨 정보, 마지막 유효 계수 플래그의 컨텍스트를 결정하는 방법이 설명된다.The scan order determination method described on the basis of FIG. 36 can be applied to the embodiment relating to the division of regions and sub-regions described in FIGS. Hereinafter, a method for determining the context of the zone flag, sub zone flag, run information, level information, and last valid coefficient flag will be described.
일 실시 예에 따르면, 엔트로피 복호화부(1620)는 구역 플래그의 컨텍스트를 나타내는 컨텍스트 인덱스를 현재 블록의 크기와 구역 인덱스에 따라 결정할 수 있다. 현재 블록의 크기 인덱스(Log2size)는 현재 블록의 높이와 너비 중 큰 값을 이진 로그 값으로 변환한 값보다 1만큼 작은 값(CONV_LOG2(Max(iwidth, iheight))-1)과 5를 비교하여, 작은 값으로 결정된다. 그리고 구역 플래그의 컨텍스트 인덱스는 크기 인덱스(Log2size)의 2배수에 구역 인덱스(izone)을 더한 값으로 결정될 수 있다. 제1 구역의 구역 인덱스(izone)는 0이고, 제2 구역의 구역 인덱스(izone)는 1이다.According to one embodiment, the
또한 구역 플래그의 컨텍스트 인덱스는 현재 블록의 성분에 따라 결정될 수 있다. 예를 들어, 현재 블록의 성분이 루마(luma)일 때, 구역 플래그의 컨텍스트 인덱스는 변경되지 않는다. 그러나 현재 블록의 성분이 크로마(chroma)일 때, 구역 플래그의 컨텍스트 인덱스는 구역 플래그 크로마 오프셋(offset_chroma_zflag)만큼 증가한다. 구역 플래그 크로마 오프셋(offset_chroma_zflag)의 값은 루마 블록에 대한 컨텍스트의 개수와 동일하게 설정된다. 따라서 구역 플래그의 컨텍스트는 루마 블록에 대한 컨텍스트와 크로마 블록에 대한 컨텍스트를 별도로 포함할 수 있다.The context index of the zone flag may also be determined according to the components of the current block. For example, when the component of the current block is luma, the context index of the zone flag is not changed. However, when the component of the current block is chroma, the context index of the zone flag increases by the zone flag chroma offset (offset_chroma_zflag). The value of the zone flag chroma offset (offset_chroma_zflag) is set equal to the number of contexts for the luma block. Thus, the context of the zone flag may separately include the context for the luma block and the context for the chroma block.
이하 수식은 상기 실시 예에 따른 구역 플래그의 컨텍스트 인덱스 결정 방법을 나타낸다.The following equation represents a method of determining a context index of a zone flag according to the above embodiment.
Log2size = Min(CONV_LOG2(Max(iwidth, iheight))-1, 5);Log2size = Min (CONV_LOG2 (Max (iWidth, iHeight)) - 1, 5);
ctxIdx = 2*Log2size + izonectxIdx = 2 * Log2size + izone
ctxIdx = luma? ctxIdx : ctxIdx+offset_chroma_zflagctxIdx = luma? ctxIdx: ctxIdx + offset_chroma_zflag
상기 수식에서 크기 인덱스(Log2size)의 범위가 0에서 5이므로, 루마 블록에 대한 구역 플래그의 컨텍스트 인덱스의 범위는 0에서 11이 된다(ctxIdx = 2*Log2size + izone). 구역 플래그 크로마 오프셋(offset_chroma_zflag)는 루마 블록에 대한 구역 플래그의 컨텍스트 인덱스의 개수와 같이 12로 결정되고, 구역 플래그의 컨텍스트 인덱스의 전체 범위는 0에서 23이 된다.Since the range of the size index (Log2size) in the above equation is 0 to 5, the range of the context index of the zone flag for the luma block is 0 to 11 (ctxIdx = 2 * Log2size + izone). The zone flag chroma offset (offset_chroma_zflag) is determined to be 12, such as the number of context indexes of the zone flags for the luma block, and the entire range of context indexes of the zone flags is 0 to 23.
상기 구역 플래그의 컨텍스트를 설정하는 방법은 현재 블록의 최소 크기, 구역과 서브 구역의 설정 방법 등에 따라 변경될 수 있다.The method of setting the context of the zone flag may be changed according to the minimum size of the current block, the method of setting the zone and the sub zone, and the like.
일 실시 예에 따르면, 엔트로피 복호화부(1620)는 서브 구역 플래그의 컨텍스트를 나타내는 컨텍스트 인덱스를 현재 블록의 크기, 구역 플래그, 서브 구역 플래그, 서브 구역 인덱스에 따라 결정할 수 있다. 현재 블록의 크기 인덱스(Log2size)는 현재 블록의 높이와 너비 중 큰 값을 이진 로그 값으로 변환한 값보다 1만큼 작은 값(CONV_LOG2(Max(iwidth, iheight))-1)과 5를 비교하여, 작은 값으로 결정된다. 그리고 서브 구역 플래그의 컨텍스트 인덱스는 크기 인덱스(Log2size)의 13배수에 서브 구역 인덱스, 서브 구역 플래그, 구역 플래그에 따라 결정된 오프셋 값을 더한 값으로 결정될 수 있다.According to one embodiment, the
예를 들어, 현재 서브 구역이 제2 서브 구역 또는 제3 서브 구역이고(isz==1 || isz==2), 제4 서브 구역이 유효 서브 구역일 때(szflag[3]), 상기 오프셋은 9로 결정될 수 있다. 또한 현재 서브 구역이 제4 서브 구역(isz==3)이고, 현재 구역이 마지막 유효 변환 계수를 포함할 때(zflag[iz]), 상기 오프셋은 12로 결정될 수 있다. 또한 현재 서브 구역이 제5 서브 구역이면서 제7 서브 구역이 유효 서브 구역이거나(isz==4 & szflag[6]), 현재 서브 구역이 제6 서브 구역이면서 제8 서브 구역이 유효 서브 구역인 경우(isz==5 & szflag[7]), 상기 오프셋은 10으로 결정될 수 있다. 또한 현재 서브 구역이 제7 서브 구역 또는 제8 서브 구역이고(isz==6 || isz==7), 제9 서브 구역이 유효 서브 구역일 때(szflag[8]), 상기 오프셋은11로 결정될 수 있다. 만약, 상기 설명된 4개의 조건이 모두 부합되지 않을 경우, 상기 오프셋은 현재 서브 구역의 서브 구역 인덱스(iszone)에 따라 결정될 수 있다.For example, if the current subarea is the second subarea or the third subarea (isz == 1 || isz == 2), the fourth subarea is the effective subarea (szflag [3] Lt; / RTI > can be determined to be 9. Also, the offset may be determined to be 12 when the current sub-zone is the fourth sub-zone (isz == 3) and the current zone includes the last effective conversion factor (zflag [iz]). If the current subarea is the fifth subarea and the seventh subarea is the effective subarea (isz == 4 & szflag [6]), or if the current subarea is the sixth subarea and the eighth subarea is the effective subarea (isz == 5 & szflag [7]), the offset may be determined to be 10. If the current sub-zone is the seventh sub-zone or the eighth sub-zone (isz == 6 || isz == 7) and the ninth sub-zone is the effective sub-zone (szflag [8] Can be determined. If all four conditions described above are not met, the offset may be determined according to the subzone index (iszone) of the current subzone.
또한 서브 구역 플래그의 컨텍스트 인덱스는 현재 블록의 성분에 따라 결정될 수 있다. 예를 들어, 현재 블록의 성분이 루마(luma)일 때, 서브 구역 플래그의 컨텍스트 인덱스는 변경되지 않는다. 그러나 현재 블록의 성분이 크로마(chroma)일 때, 서브 구역 플래그의 컨텍스트 인덱스는 서브 구역 플래그 크로마 오프셋(offset_chroma_szflag)만큼 증가한다. 서브 구역 플래그 크로마 오프셋(offset_chroma_szflag)의 값은 루마 블록에 대한 컨텍스트의 개수와 동일하게 설정된다. 따라서 서브 구역 플래그의 컨텍스트는 루마 블록에 대한 컨텍스트와 크로마 블록에 대한 컨텍스트를 별도로 포함할 수 있다.Also, the context index of the sub-zone flag may be determined according to the component of the current block. For example, when the component of the current block is luma, the context index of the subarea flag is not changed. However, when the component of the current block is chroma, the context index of the subspace flag is increased by the subspace flag chroma offset (offset_chroma_szflag). The value of the sub-zone flag chroma offset (offset_chroma_szflag) is set equal to the number of contexts for the luma block. Thus, the context of the sub-zone flag may separately include the context for the luma block and the context for the chroma block.
이하 수식은 상기 실시 예에 따른 서브 구역 플래그의 컨텍스트 인덱스 결정 방법을 나타낸다.The following expression shows a method of determining a context index of a sub-zone flag according to the embodiment.
Log2size = Min(CONV_LOG2(Max(iwidth, iheight))-1, 5);Log2size = Min (CONV_LOG2 (Max (iWidth, iHeight)) - 1, 5);
ctxIdx = 13*Log2size;ctxIdx = 13 * Log2size;
ctxIdx = ctxIdx+9, if (isz==1 || isz==2) & szflag[3]ctxIdx =
ctxIdx = ctxIdx+12, elseif (isz==3) & zflag[iz]ctxIdx = ctxIdx + 12, elseif (isz == 3) & zflag [iz]
ctxIdx = ctxIdx+10, elseif (isz==4 & szflag[6] || isz==5 & szflag[7])ctxIdx = ctxIdx + 10, elseif (isz == 4 & szflag [6] || isz == 5 & szflag [7]
ctxIdx = ctxIdx+11, elseif (isz==6 || isz==7) & szflag[8]ctxIdx = ctxIdx + 11, elseif (isz == 6 || isz == 7) & szflag [8]
ctxIdx = ctxIdx + iszone, Else ctxIdx = ctxIdx + iszone, Else
ctxIdx = luma? ctxIdx : ctxIdx+offset_chroma_szflagctxIdx = luma? ctxIdx: ctxIdx + offset_chroma_szflag
상기 수식에서 크기 인덱스(Log2size)의 범위가 0에서 5이므로, 루마 블록에 대한 구역 플래그의 컨텍스트 인덱스의 범위는 0에서 77이 된다(Log2size가 5이고, 오프셋 값이 12일 때 컨텍스트 인덱스의 최대 값은 77이다). 만약 서브 구역 플래그 크로마 오프셋(offset_chroma_zflag)는 루마 블록에 대한 서브 구역 플래그의 컨텍스트 인덱스의 개수인 78로 결정되고, 구역 플래그의 컨텍스트 인덱스의 범위는 0에서 155가 된다.Since the range of the size index (Log2size) is 0 to 5 in the above equation, the range of the context index of the zone flag for the luma block is from 0 to 77 (when Log2size is 5 and the offset value is 12, the maximum value of the context index Is 77). If the sub-zone flag chroma offset (offset_chroma_zflag) is determined to be 78, the number of context indexes of the sub-zone flag for the luma block, the range of the context index of the zone flag is 0 to 155.
상기 서브 구역 플래그의 컨텍스트를 설정하는 방법은 현재 블록의 최소 크기, 구역과 서브 구역의 설정 방법 등에 따라 변경될 수 있다.The method of setting the context of the sub-zone flag may be changed according to the minimum size of the current block, the method of setting the zone and sub-zone, and the like.
일 실시 예에 따르면, 엔트로피 복호화부(1620)는 런 정보의 컨텍스트를 나타내는 컨텍스트 인덱스를 이전 유효 변환 계수의 절대 값, 현재 구역의 구역 인덱스 및 구역 플래그, 현재 서브 구역의 위치에 따라 결정할 수 있다.According to one embodiment, the
예를 들어, 런 정보의 컨텍스트는 이전 유효 변환 계수의 절대 값보다 1작은 값과 5를 비교하여 작은 값의 2배수로 결정될 수 있다. 그리고 현재 구역에 마지막 유효 변환 계수가 없다면, 런 정보의 컨텍스트는 12만큼 증가할 수 있다. 그리고 현재 구역의 구역 인덱스가 0보다 크다면(현재 구역이 제2 구역(iz==1) 또는 제3구역(iz==2)이라면), 런 정보의 컨텍스트는 24만큼 증가할 수 있다. 그리고 현재 구역의 구역 인덱스가 2보다 작으면서(iz<2) 현재 서브 구역이 스캔 순서상으로 현재 블록의 중간 이전(pos<(M*N/2))일 조건이 만족되지 않는 경우(false), 런 정보의 컨텍스트는 48만큼 증가할 수 있다.For example, the context of the run information can be determined to be a multiple of a small value by comparing 5 with a value that is one less than the absolute value of the previous effective transform coefficient. And if there is no last effective transform coefficient in the current zone, the context of the run information can be increased by 12. And if the zone index of the current zone is greater than zero (if the current zone is the second zone (iz == 1) or the third zone (iz == 2)) then the context of the run information may be increased by 24. (False) when the condition index of the current zone is smaller than 2 (iz <2) and the current sub-zone is in the scan order and the middle of the current block (pos <(M * N / 2)) is not satisfied , The context of the run information can be increased by 48.
또한 런 정보의 컨텍스트 인덱스는 현재 블록의 성분에 따라 결정될 수 있다. 예를 들어, 현재 블록의 성분이 루마(luma)일 때, 서브 구역 플래그의 컨텍스트 인덱스는 변경되지 않는다. 그러나 현재 블록의 성분이 크로마(chroma)일 때, 런 정보의 컨텍스트 인덱스는 런 정보 크로마 오프셋(offset_chroma_run)만큼 증가할 수 있다. 런 정보 크로마 오프셋(offset_chroma_run)의 값은 1로 설정될 수 있다. 따라서 런 정보의 컨텍스트는 루마 블록에 대한 컨텍스트와 크로마 블록에 대한 컨텍스트를 별도로 포함할 수 있다.Also, the context index of the run information can be determined according to the component of the current block. For example, when the component of the current block is luma, the context index of the subarea flag is not changed. However, when the component of the current block is chroma, the context index of the run information can be increased by the run information chroma offset (offset_chroma_run). The value of the run information chroma offset (offset_chroma_run) may be set to one. Accordingly, the context of the run information may separately include the context for the luma block and the context for the chroma block.
이하 수식은 상기 실시 예에 따른 런 정보의 컨텍스트 인덱스 결정 방법을 나타낸다.The following equation represents a method of determining the context index of run information according to the above embodiment.
ctxIdx = ((Min(prev_level - 1, 5)) * 2ctxIdx = ((Min (prev_level - 1, 5)) * 2
ctxIdx= ctxIdx+12, if zflag[iz]==0ctxIdx = ctxIdx + 12, if zflag [iz] == 0
ctxIdx= ctxIdx+24, if iz>0ctxIdx = ctxIdx + 24, if trace> 0
ctxIdx= ctxIdx+48, if iz<2 & pos<(M*N/2) == falsectxIdx = ctxIdx + 48, if iz <2 & pos <(M * N / 2) == false
ctxIdx = luma? ctxIdx : ctxIdx+offset_chroma_runctxIdx = luma? ctxIdx: ctxIdx + offset_chroma_run
상기 런 정보의 컨텍스트를 설정하는 방법은 이전 유효 변환 계수의 절대 값을 분류하는 방법, 구역과 서브 구역에 따른 컨텍스트 분류 방법 등에 따라 변경될 수 있다.The method of setting the context of the run information may be changed according to the method of classifying the absolute value of the previous effective transform coefficient, the context classification method according to the region and the sub-region, and the like.
일 실시 예에 따르면, 엔트로피 복호화부(1620)는 레벨 정보의 컨텍스트를 나타내는 컨텍스트 인덱스를 이전 유효 변환 계수의 절대 값, 현재 구역의 구역 인덱스 및 구역 플래그, 현재 서브 구역의 위치에 따라 결정할 수 있다.According to one embodiment, the
예를 들어, 레벨 정보의 컨텍스트는 이전 유효 변환 계수의 절대 값보다 1작은 값과 5를 비교하여 작은 값의 2배수로 결정될 수 있다. 그리고 현재 구역에 마지막 유효 변환 계수가 없다면, 레벨 정보의 컨텍스트는 12만큼 증가할 수 있다. 그리고 현재 구역의 구역 인덱스가 0보다 크다면(현재 구역이 제2 구역(iz==1) 또는 제3구역(iz==2)이라면), 레벨 정보의 컨텍스트는 24만큼 증가할 수 있다. 그리고 현재 구역의 구역 인덱스가 2보다 작으면서(iz<2) 현재 서브 구역이 스캔 순서상으로 현재 블록의 중간 이전(pos<(M*N/2))일 조건이 만족되지 않으면서(false), 현재 블록이 루마 블록일 경우, 레벨 정보의 컨텍스트는 48만큼 증가할 수 있다.For example, the context of the level information may be determined to be a multiple of a small value by comparing 5 with a value that is one less than the absolute value of the previous effective transform coefficient. And if there is no last valid conversion factor in the current zone, the context of the level information can be increased by 12. And if the zone index of the current zone is greater than zero (if the current zone is the second zone (iz == 1) or the third zone (iz == 2)) then the context of the level information may be increased by 24. And the condition that the current subarea is in the scan order and the middle of the current block (pos <(M * N / 2)) is not satisfied (false) while the zone index of the current zone is smaller than 2 (iz < , And if the current block is a luma block, the context of the level information may be increased by 48.
또한 레벨 정보의 컨텍스트 인덱스는 현재 블록의 성분에 따라 결정될 수 있다. 예를 들어, 현재 블록의 성분이 루마(luma)일 때, 서브 구역 플래그의 컨텍스트 인덱스는 변경되지 않는다. 그러나 현재 블록의 성분이 크로마(chroma)일 때, 레벨 정보의 컨텍스트 인덱스는 레벨 정보 크로마 오프셋(offset_chroma_level)만큼 증가할 수 있다. 레벨 정보 크로마 오프셋(offset_chroma_level)의 값은 1로 설정될 수 있다. 따라서 레벨 정보의 컨텍스트는 루마 블록에 대한 컨텍스트와 크로마 블록에 대한 컨텍스트를 별도로 포함할 수 있다.The context index of the level information may be determined according to the component of the current block. For example, when the component of the current block is luma, the context index of the subarea flag is not changed. However, when the component of the current block is chroma, the context index of the level information may be increased by the level information chroma offset (offset_chroma_level). The value of the level information chroma offset (offset_chroma_level) may be set to one. Thus, the context of the level information may separately include the context for the luma block and the context for the chroma block.
이하 수식은 상기 실시 예에 따른 레벨 정보의 컨텍스트 인덱스 결정 방법을 나타낸다.The following equation shows a method of determining the context index of the level information according to the embodiment.
ctxIdx = ((Min(prev_level - 1, 5)) * 2ctxIdx = ((Min (prev_level - 1, 5)) * 2
ctxIdx= ctxIdx+12, if zflag[iz]==0ctxIdx = ctxIdx + 12, if zflag [iz] == 0
ctxIdx= ctxIdx+24, if iz>0ctxIdx = ctxIdx + 24, if trace> 0
ctxIdx= ctxIdx+48, if luma & (iz<2 & pos<(M*N/2) == false)ctxIdx = ctxIdx + 48, if luma & (iz <2 & pos <(M * N / 2) == false)
ctxIdx = luma? ctxIdx : ctxIdx+offset_chroma_levelctxIdx = luma? ctxIdx: ctxIdx + offset_chroma_level
상기 레벨 정보의 컨텍스트를 설정하는 방법은 이전 유효 변환 계수의 절대 값을 분류하는 방법, 구역과 서브 구역의 분류 방법 등에 따라 변경될 수 있다.The method of setting the context of the level information may be changed according to the method of classifying the absolute value of the previous effective transform coefficient, the method of classifying the region and the sub-region, and the like.
일 실시 예에 따르면, 엔트로피 복호화부(1620)는 마지막 유효 계수 플래그의 컨텍스트를 나타내는 컨텍스트 인덱스를 현재 유효 변환 계수의 절대 값, 이전 유효 변환 계수의 절대 값, 현재 구역의 구역 인덱스 및 구역 플래그에 따라 결정할 수 있다.According to one embodiment, the
예를 들어, 현재 유효 변환 계수의 절대 값이 1보다 클 때 마지막 유효 계수 플래그의 컨텍스트는 0으로 결정된다. 그리고 현재 유효 변환 계수의 절대 값이 1이고, 이전 유효 변환 계수의 절대 값의 절대 값이 1보다 클 때 마지막 유효 계수 플래그의 컨텍스트는 1로 결정된다. 그리고 현재 유효 변환 계수의 절대 값이 1이고, 이전 유효 변환 계수의 절대 값의 절대 값이 1일 때 마지막 유효 계수 플래그의 컨텍스트는 2로 결정된다.For example, when the absolute value of the current effective conversion coefficient is greater than 1, the context of the last valid coefficient flag is determined to be zero. When the absolute value of the current effective conversion coefficient is 1 and the absolute value of the absolute value of the previous effective conversion coefficient is greater than 1, the context of the last valid coefficient flag is determined to be 1. [ When the absolute value of the current effective conversion coefficient is 1 and the absolute value of the absolute value of the previous effective conversion coefficient is 1, the context of the last valid coefficient flag is determined to be 2. [
마지막 유효 계수 플래그의 컨텍스트는 현재 구역에 마지막 유효 변환 계수가 없다면, 3만큼 증가할 수 있다. 그리고 현재 구역의 구역 인덱스가 0보다 크다면(현재 구역이 제2 구역(iz==1) 또는 제3구역(iz==2)이라면), 마지막 유효 계수 플래그의 컨텍스트는 6만큼 증가할 수 있다. 그리고 현재 블록이 크로마 블록일 때, 마지막 유효 계수 플래그의 컨텍스트는 레벨 정보 크로마 오프셋(offset_chroma_last)만큼 증가한다. 마지막 유효 계수 플래그 크로마 오프셋(offset_chroma_last)은 루마 블록에 대한 컨텍스트의 개수와 동일하게 설정된다. 따라서 상기 실시 예에서 마지막 유효 계수 플래그 크로마 오프셋(offset_chroma_last)은 12로 결정될 수 있다.The context of the last significant coefficient flag can be increased by 3 if there is no last valid transform coefficient in the current zone. And if the zone index of the current zone is greater than zero (if the current zone is a second zone (iz == 1) or a third zone (iz == 2), then the context of the last validity factor flag may be increased by 6 . When the current block is a chroma block, the context of the last valid coefficient flag increases by the level information chroma offset (offset_chroma_last). The last effective coefficient flag chroma offset (offset_chroma_last) is set equal to the number of contexts for the luma block. Therefore, the last effective coefficient flag chroma offset (offset_chroma_last) in the above embodiment may be determined to be 12.
이하 수식은 상기 실시 예에 따른 마지막 유효 계수 플래그의 컨텍스트 인덱스 결정 방법을 나타낸다.The following expression shows a method of determining the context index of the last valid coefficient flag according to the embodiment.
ctxIdx = level > 1 ? 0 : (prev_level > 1 ? 1 : 2)ctxIdx = level> 1? 0: (prev_level> 1? 1: 2)
ctxIdx= ctxIdx+3, if zflag[iz]==0ctxIdx =
ctxIdx= ctxIdx+6, if iz>0ctxIdx =
ctxIdx = luma? ctxIdx : ctxIdx+offset_chroma_lastctxIdx = luma? ctxIdx: ctxIdx + offset_chroma_last
상기 마지막 유효 계수 플래그의 컨텍스트를 설정하는 방법은 현재 유효 변환 계수와 이전 유효 변환 계수의 절대 값을 분류하는 방법, 구역과 서브 구역의 분류 방법 등에 따라 변경될 수 있다.The method of setting the context of the last valid coefficient flag may be changed according to the method of classifying the absolute value of the current effective transform coefficient and the previous effective transform coefficient, the classification method of the region and the sub region, and the like.
도 37은 현재 블록이 분할된 복수의 구역 및 복수의 서브 구역에 기초하여 현재 블록의 변환 계수 배열을 획득하는 비디오 복호화 방법(3700)의 흐름도를 도시한다.FIG. 37 shows a flowchart of a video decoding method 3700 for obtaining a transform coefficient array of a current block based on a plurality of zones and a plurality of sub zones in which the current block is divided.
단계 3710에서, 현재 블록의 구역 플래그, 서브 구역 플래그 및 변환 계수 정보를 포함하는 비트스트림이 수신된다. 현재 블록의 크기, 구역 플래그, 구역의 인덱스, 서브 구역 플래그, 서브 구역 인덱스 등에 따라, 현재 블록의 컨텍스트가 결정될 수 있다.In
단계 3720에서, 현재 블록은 복수의 구역으로 분할된다. 일 실시 예에 따르면, 현재 블록은 현재 블록의 크기와 상관 없이 미리 정해진 구역 크기를 가지는 제1 구역 및 제2 구역과 현재 블록에서 제1 구역과 제2 구역을 제외한 제3구역으로 분할될 수 있다. 또는, 현재 블록은 현재 블록의 크기와 비례하는 구역 크기를 가지는 제1 구역 및 제2 구역과 현재 블록에서 제1 구역과 제2 구역을 제외한 제3구역으로 분할될 수 있다. 현재 블록의 크기에 따라 분할되는 구역의 개수가 결정될 수 있다.In
단계 3730에서 현재 블록의 복수의 구역에 대한 구역 플래그에 따라, 현재 블록의 마지막 유효 변환 계수가 복수의 구역 중 어떤 구역에 포함되어 있는지 결정된다. 구역 플래그는 현재 블록이 분할된 복수의 구역 중에서 유효 변환 계수를 포함하는 서브 구역이 포함된 마지막 구역에 대해 제1 값을 나타내고, 나머지 구역에 대해 제2 값을 나타낼 수 있다. 일 실시 예에 따르면, n개의 상기 복수의 구역 중에서 첫 번째부터 n-1번째 구역까지의 구역 플래그의 값이 모두 상기 제2 값을 나타내는 경우, n번째 구역에 상기 현재 블록의 마지막 유효 변환 계수가 포함되어 있다고 결정될 수 있다. 현재 블록의 컨텍스트에 따라 구역 플래그가 파싱될 수 있다.In
단계 3740에서 복수의 구역 중 적어도 하나의 유효 변환 계수가 포함될 수 있는 구역이 복수의 서브 구역으로 분할된다. 일 실시 예에 따르면, 제1 구역과 제2 구역은 현재 블록의 크기와 상관 없이 미리 정해진 서브 구역 크기로 분할되고, 제3 구역은 현재 블록의 크기에 따라 분할될 수 있다. 현재 블록의 크기에 따라 분할되는 서브 구역의 개수가 결정될 수 있다.In
단계 3750에서 현재 블록의 복수의 서브 구역에 대한 서브 구역 플래그에 따라, 복수의 서브 구역 각각에 대하여 적어도 하나의 유효 변환 계수가 포함되는지 결정된다. 서브 구역 플래그는 유효 변환 계수를 포함하는 서브 구역에 대해 제1 값을 나타내고, 유효 변환 계수를 포함하지 않는 서브 구역에 대해 제2 값을 나타낼 수 있다. 일 실시 예에 따르면, 현재 블록의 마지막 유효 변환 계수가 포함된 구역이 m개의 상기 서브 구역을 포함할 때, 첫 번째부터 m-1번째 서브 구역까지의 서브 구역 플래그의 값이 모두 제2 값을 나타내는 경우, m번째 서브 구역에 유효 변환 계수가 포함되어 있다고 결정될 수 있다. 현재 블록의 컨텍스트에 따라 서브 구역 플래그가 파싱될 수 있다.In
단계 3760에서 구역 플래그 및 서브 구역 플래그에 기초하여, 복수의 서브 구역 중 적어도 하나의 유효 변환 계수를 포함하는 서브 구역에 대한 계수 코딩 방식이 결정된다.Based on the zone flag and the subspace flag in
일 실시 예에 따르면, 서브 구역이 포함된 구역에 현재 블록의 마지막 유효 변환 계수가 포함되지 않은 때, 서브 구역의 대한 계수 코딩 방식은 제1 런-레벨 기반 계수 코딩 방식으로 결정될 수 있다. 서브 구역이 포함된 구역에 현재 블록의 마지막 유효 변환 계수가 포함된 때, 서브 구역의 대한 계수 코딩 방식은 제2 런-레벨 기반 계수 코딩 방식으로 결정될 수 있다.According to one embodiment, when the last effective transform coefficient of the current block is not included in the zone including the sub-zone, the coefficient coding scheme for the sub-zone may be determined by the first run-level based coefficient coding scheme. When the last effective transform coefficient of the current block is included in the zone including the sub-zone, the coefficient coding scheme for the sub-zone may be determined by the second run-level based coefficient coding scheme.
일 실시 예에 따르면, 모든 서브 구역에 대한 계수 코딩 방식은 제2 런-레벨 기반 계수 코딩 방식으로 결정될 수 있다.According to one embodiment, the coefficient coding scheme for all sub-zones may be determined by a second run-level based coefficient coding scheme.
단계 3770에서 계수 코딩 방식에 따라 현재 블록의 변환 계수 정보를 파싱함으로써, 현재 블록의 변환 계수 배열이 획득된다. 현재 샘플 이전에 복원된 하나 이상의 변환 계수의 크기에 따라, 현재 샘플의 컨텍스트를 결정될 수 있다. 또한 서브 구역이 속한 구역의 인덱스, 서브 구역의 인덱스, 구역 플래그, 서브 구역 플래그, 논제로 서브 구역의 개수, 현재 블록의 크기, 현재 블록의 예측 모드 중 적어도 하나에 기초하여, 서브 구역에 대한 스캔 순서를 결정될 수 있다. 현재 샘플의 컨텍스트, 스캔 순서 및 계수 코딩 방식 중 적어도 하나에 따라, 현재 서브 구역의 변환 계수 정보를 파싱함으로써, 현재 블록에 포함된 상기 현재 서브 구역의 변환 계수 배열이 획득될 수 있다.In
도16의 비디오 복호화 장치(1600)에서 수행되는 비디오 복호화에 관련된 구성들은 도37의 비디오 복호화 방법(3700)에 포함될 수 있다.The configurations related to video decoding performed in the
도 38은 현재 블록이 분할된 복수의 구역 및 복수의 서브 구역에 기초하여 현재 블록의 변환 계수 배열을 부호화하는 비디오 부호화 장치(3800)의 블록도를 도시한다.Fig. 38 shows a block diagram of a
비디오 부호화 장치(3800)는 엔트로피 부호화부(3810) 및 비트스트림 출력부(3820)를 포함한다. 도 38에서 엔트로피 부호화부(3810) 및 비트스트림 출력부(3820)는 별도의 구성 단위로 표현되어 있으나, 실시 예에 따라 엔트로피 부호화부(3810) 및 비트스트림 출력부(3820)는 합쳐져 하나의 구성 단위로 구현될 수도 있다.The
도 38에서 엔트로피 부호화부(3810) 및 비트스트림 출력부(3820)는 하나의 장치에 위치한 구성 단위로 표현되었지만 엔트로피 부호화부(3810) 및 비트스트림 출력부(3820)의 각 기능을 담당하는 장치는 반드시 물리적으로 인접할 필요는 없다. 따라서 실시 예에 따라 엔트로피 부호화부(3810) 및 비트스트림 출력부(3820)가 분산되어 있을 수 있다.38, the
엔트로피 부호화부(3810) 및 비트스트림 출력부(3820)는 실시 예에 따라 하나의 프로세서에 의하여 구현될 수 있다. 또한 실시 예에 따라 복수 개의 프로세서에 의하여 구현될 수도 있다.The
엔트로피 부호화부(3810)는 현재 블록을 복수의 구역으로 분할한다.The
엔트로피 부호화부(3810)는 현재 블록의 마지막 유효 변환 계수가 현재 블록의 복수의 구역 중 어떤 구역에 포함되어 있는지 여부에 따라 현재 블록의 복수의 구역에 대한 구역 플래그를 결정한다.The
엔트로피 부호화부(3810)는 복수의 구역 중 적어도 하나의 유효 변환 계수가 포함될 수 있는 구역을 복수의 서브 구역으로 분할한다.The
엔트로피 부호화부(3810)는 복수의 서브 구역 각각에 대하여 적어도 하나의 유효 변환 계수가 포함되는지 여부에 따라, 현재 블록의 복수의 서브 구역에 대한 서브 구역 플래그를 결정한다.The
엔트로피 부호화부(3810)는 구역 플래그 및 서브 구역 플래그에 기초하여, 복수의 서브 구역 중 적어도 하나의 유효 변환 계수를 포함하는 서브 구역에 대한 계수 코딩 방식을 결정한다.The
엔트로피 부호화부(3810)는 계수 코딩 방식에 따라 현재 블록의 변환 계수 배열로부터 현재 블록의 변환 계수 정보를 결정한다.The
비트스트림 출력부(3820)는 현재 블록의 구역 플래그, 서브 구역 플래그 및 변환 계수 정보를 포함하는 비트스트림을 출력한다.The bit
도 38의 비디오 부호화 장치(3800)는 도16의 비디오 복호화 장치(1600)에서 수행되는 복호화 기능에 대응되는 부호화 기능을 수행할 수 있다.The
도 39는 현재 블록이 분할된 복수의 구역 및 복수의 서브 구역에 기초하여 현재 블록의 변환 계수 배열을 부호화하는 비디오 부호화 방법(3900)의 흐름도를 도시한다.FIG. 39 shows a flowchart of a video encoding method 3900 for encoding a transform coefficient array of a current block based on a plurality of zones and a plurality of sub-zones in which the current block is divided.
단계 3910에서, 현재 블록은 복수의 구역으로 분할된다.In
단계 3920에서, 현재 블록의 마지막 유효 변환 계수가 현재 블록의 복수의 구역 중 어떤 구역에 포함되어 있는지 여부에 따라 현재 블록의 복수의 구역에 대한 구역 플래그가 결정된다.In
단계 3930에서, 복수의 구역 중 적어도 하나의 유효 변환 계수가 포함될 수 있는 구역이 복수의 서브 구역으로 분할된다.In
단계 3940에서, 복수의 서브 구역 각각에 대하여 적어도 하나의 유효 변환 계수가 포함되는지 여부에 따라, 현재 블록의 복수의 서브 구역에 대한 서브 구역 플래그가 결정된다.In
단계 3950에서, 구역 플래그 및 서브 구역 플래그에 기초하여, 복수의 서브 구역 중 적어도 하나의 유효 변환 계수를 포함하는 서브 구역에 대한 계수 코딩 방식이 결정된다.In
단계 3960에서, 계수 코딩 방식에 따라 현재 블록의 변환 계수 배열로부터 현재 블록의 변환 계수 정보가 결정된다.In
단계 3970에서, 현재 블록의 구역 플래그, 서브 구역 플래그 및 변환 계수 정보를 포함하는 비트스트림이 출력된다.In
도38의 비디오 부호화 장치(3800)에서 수행되는 비디오 부호화에 관련된 구성들은 도39의 비디오 부호화 방법(3900)에 포함될 수 있다.The configurations relating to video encoding performed in the
도 1 내지 39를 참조하여 전술된 트리 구조의 부호화 단위들에 기초한 비디오 부호화 기법에 따라, 트리 구조의 부호화 단위들마다 공간영역의 영상 데이터가 부호화되며, 트리 구조의 부호화 단위들에 기초한 비디오 복호화 기법에 따라 최대 부호화 단위마다 복호화가 수행되면서 공간 영역의 영상 데이터가 복원되어, 픽처 및 픽처 시퀀스인 비디오가 복원될 수 있다. 복원된 비디오는 재생 장치에 의해 재생되거나, 저장 매체에 저장되거나, 네트워크를 통해 전송될 수 있다.According to a video coding technique based on the coding units of the tree structure described above with reference to FIGS. 1 to 39, video data of a spatial region is encoded for each coding unit of a tree structure, and a video decoding technique based on coding units of a tree structure Decoding is performed for each maximum encoding unit according to the motion vector, and the video data in the spatial domain is reconstructed, and the video and the video, which is a picture sequence, can be reconstructed. The restored video can be played back by the playback apparatus, stored in a storage medium, or transmitted over a network.
한편, 상술한 본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.Meanwhile, the above-described embodiments of the present disclosure can be implemented in a general-purpose digital computer that can be created as a program that can be executed by a computer and operates the program using a computer-readable recording medium.
본 개시는 특정한 최상의 실시 예와 관련하여 설명되었지만, 이외에 본 개시에 대체, 변형 및 수정이 적용된 발명들은 전술한 설명에 비추어 당업자에게 명백할 것이다. 즉, 청구범위는 이러한 모든 대체, 변형 및 수정된 발명을 포함하도록 해석한다. 그러므로 이 명세서 및 도면에서 설명한 모든 내용은 예시적이고 비제한적인 의미로 해석해야 한다.While this disclosure has been described in connection with specific best mode embodiments thereof, it will be apparent to those skilled in the art from this disclosure that alternatives, modifications and variations will be apparent to those skilled in the art. That is, the claims shall be construed to include all such alternatives, modifications and modified inventions. It is therefore intended that all matter contained in the description and drawings be interpreted as illustrative and not in a limiting sense.
Claims (17)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762553932P | 2017-09-04 | 2017-09-04 | |
| US62/553,932 | 2017-09-04 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019045538A1 true WO2019045538A1 (en) | 2019-03-07 |
Family
ID=65525981
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2018/010198 Ceased WO2019045538A1 (en) | 2017-09-04 | 2018-09-03 | Encoding method and apparatus therefor, and decoding method and apparatus therefor |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2019045538A1 (en) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112887727A (en) * | 2019-11-29 | 2021-06-01 | 腾讯美国有限责任公司 | Video coding and decoding method and electronic equipment |
| CN112995671A (en) * | 2021-02-21 | 2021-06-18 | 腾讯科技(深圳)有限公司 | Video encoding and decoding method and device, computer readable medium and electronic equipment |
| CN113453008A (en) * | 2020-03-26 | 2021-09-28 | 腾讯科技(深圳)有限公司 | Video decoding method, video encoding method, related apparatus and medium |
| WO2022174638A1 (en) * | 2021-02-22 | 2022-08-25 | 腾讯科技(深圳)有限公司 | Video coding method and apparatus, video decoding method and apparatus, computer readable medium, and electronic device |
| WO2024207235A1 (en) * | 2023-04-04 | 2024-10-10 | Oppo广东移动通信有限公司 | Encoding/decoding method, bitstream, encoder, decoder, and storage medium |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20130116754A (en) * | 2012-04-16 | 2013-10-24 | 주식회사 팬택 | Methods of entropy coding and entropy decoding and apparatuses using the same |
| KR20140122698A (en) * | 2012-07-02 | 2014-10-20 | 삼성전자주식회사 | Method and apparatus for entropy encoding video, and method and apparatus for entropy decoding video |
| KR20150003778A (en) * | 2012-04-05 | 2015-01-09 | 퀄컴 인코포레이티드 | Coded block flag coding |
| KR20160088085A (en) * | 2015-01-15 | 2016-07-25 | 한국전자통신연구원 | Method for fast transform coefficient coding and apparatus for the same |
| WO2017043760A1 (en) * | 2015-09-08 | 2017-03-16 | 삼성전자 주식회사 | Device and method for entropy encoding and decoding |
-
2018
- 2018-09-03 WO PCT/KR2018/010198 patent/WO2019045538A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20150003778A (en) * | 2012-04-05 | 2015-01-09 | 퀄컴 인코포레이티드 | Coded block flag coding |
| KR20130116754A (en) * | 2012-04-16 | 2013-10-24 | 주식회사 팬택 | Methods of entropy coding and entropy decoding and apparatuses using the same |
| KR20140122698A (en) * | 2012-07-02 | 2014-10-20 | 삼성전자주식회사 | Method and apparatus for entropy encoding video, and method and apparatus for entropy decoding video |
| KR20160088085A (en) * | 2015-01-15 | 2016-07-25 | 한국전자통신연구원 | Method for fast transform coefficient coding and apparatus for the same |
| WO2017043760A1 (en) * | 2015-09-08 | 2017-03-16 | 삼성전자 주식회사 | Device and method for entropy encoding and decoding |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112887727A (en) * | 2019-11-29 | 2021-06-01 | 腾讯美国有限责任公司 | Video coding and decoding method and electronic equipment |
| CN112887727B (en) * | 2019-11-29 | 2023-06-13 | 腾讯美国有限责任公司 | Video encoding and decoding method and electronic equipment |
| CN113453008A (en) * | 2020-03-26 | 2021-09-28 | 腾讯科技(深圳)有限公司 | Video decoding method, video encoding method, related apparatus and medium |
| CN113453008B (en) * | 2020-03-26 | 2022-08-02 | 腾讯科技(深圳)有限公司 | Video decoding method, video encoding method, related apparatus and medium |
| CN112995671A (en) * | 2021-02-21 | 2021-06-18 | 腾讯科技(深圳)有限公司 | Video encoding and decoding method and device, computer readable medium and electronic equipment |
| WO2022174638A1 (en) * | 2021-02-22 | 2022-08-25 | 腾讯科技(深圳)有限公司 | Video coding method and apparatus, video decoding method and apparatus, computer readable medium, and electronic device |
| CN114979642A (en) * | 2021-02-22 | 2022-08-30 | 腾讯科技(深圳)有限公司 | Video coding and decoding method, apparatus, computer readable medium and electronic device |
| US12316845B2 (en) | 2021-02-22 | 2025-05-27 | Tencent Technology (Shenzhen) Company Limited | Coding efficiency of boundary coordinates of SRCC scan region |
| CN114979642B (en) * | 2021-02-22 | 2025-07-25 | 腾讯科技(深圳)有限公司 | Video encoding and decoding method and device, computer readable medium and electronic equipment |
| WO2024207235A1 (en) * | 2023-04-04 | 2024-10-10 | Oppo广东移动通信有限公司 | Encoding/decoding method, bitstream, encoder, decoder, and storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020040626A1 (en) | Encoding method and apparatus therefor, and decoding method and apparatus therefor | |
| WO2020060158A1 (en) | Method for encodng and decoding motion information, and apparatus for encodng and decoding motion information | |
| WO2019054736A1 (en) | Method for encoding and decoding motion information and device for encoding and decoding motion information | |
| WO2011096741A2 (en) | Method and apparatus for encoding video based on scanning order of hierarchical data units, and method and apparatus for decoding video based on scanning order of hierarchical data units | |
| WO2019135648A1 (en) | Encoding and decoding method for motion information, and encoding and decoding device for motion information | |
| WO2018016823A1 (en) | Image encoding/decoding method and device, and recording medium in which bitstream is stored | |
| WO2019027241A1 (en) | Image encoding/decoding method and device, and recording medium storing bitstream | |
| WO2019066174A1 (en) | Encoding method and device, and decoding method and device | |
| WO2011040794A2 (en) | Method and apparatus for encoding/decoding image using variable-size macroblocks | |
| WO2019240458A1 (en) | Encoding method and apparatus therefor, and decoding method and apparatus therefor | |
| WO2019216716A2 (en) | Encoding method and device therefor, and decoding method and device therefor | |
| WO2018135885A1 (en) | Image decoding and encoding method providing transformation processing | |
| WO2019045538A1 (en) | Encoding method and apparatus therefor, and decoding method and apparatus therefor | |
| WO2019059575A2 (en) | Method for encoding and decoding motion information, and apparatus for encoding and decoding motion information | |
| WO2018124627A1 (en) | Encoding method and device therefor, and decoding method and device therefor | |
| WO2019093598A1 (en) | Apparatus and method for encoding motion information, and decoding apparatus and method | |
| WO2019066574A1 (en) | Encoding method and device, and decoding method and device | |
| WO2019199127A1 (en) | Encoding method and device therefor and decoding method and device therefor | |
| WO2019194647A1 (en) | Filter information-based adaptive loop filtering method and image coding and decoding method using same | |
| WO2019066514A1 (en) | Encoding method and apparatus therefor, and decoding method and apparatus therefor | |
| WO2020050705A1 (en) | Method of decoding and encoding image for processing group unit quantization parameter | |
| WO2020130712A1 (en) | Image encoding device and image decoding device using triangular prediction mode, and image encoding method and image decoding method performed thereby | |
| WO2019017673A1 (en) | Encoding method and apparatus therefor, decoding method and apparatus therefor | |
| WO2020263067A1 (en) | Video encoding method for performing affine model-based prediction by considering encoding order, and device therefor, and video decoding method for performing affine model-based prediction by considering decoding order, and device therefor | |
| WO2020149620A1 (en) | Encoding method and device thereof, and decoding method and device thereof |
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: 18851471 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 18851471 Country of ref document: EP Kind code of ref document: A1 |