专利摘要:
An image decoding method according to the present invention may comprise: a step of decoding information indicating whether or not a transform coefficient which is not "0" exists in a current block; a step of determining a scanning order of the current block if the information indicates that the transform coefficient which is not "0" exists in the current block; and a step of decoding the transform coefficient included in the current block according to the determined scanning order.
公开号:ES2711209A2
申请号:ES201990016
申请日:2017-08-31
公开日:2019-04-30
发明作者:Keun Lee Bae
申请人:KT Corp;
IPC主号:
专利说明:

[0001]
[0002] Technical field
[0003] The present invention relates to a method and an apparatus for processing a video signal.
[0004] State of the art
[0005] Recently, the demands of images in high resolution and high quality have increased, such as high definition images (HD) and ultra-high definition images (UHD) in various fields of application. However, image data in high resolution and quality have increased the amount of data compared to conventional image data. Therefore, when image data is transmitted through the use of a medium such as wired and wireless broadband networks, or when image data is stored by the use of a conventional storage medium, the costs of transmission and storage. To solve these problems that occur with the increase in the resolution and quality of the image data, high efficiency image coding / decoding techniques can be used.
[0006] Image compression technologies include various techniques, including: an inter prediction technique for predicting a value of pixels included in a current image from a previous or subsequent image of the current image; an intra prediction technique of predicting a value of pixels included in a current image by using pixel information in the current image; an entropy coding technique of assigning a short code to a value with a high frequency of occurrence and assignment of a long code to a value with a low frequency of occurrence; etc. The image data can be effectively compressed by the use of said image compression technology, and can be transmitted or stored.
[0007] For its part, along with the demands of images in high resolution, the demands for stereographic image content have also increased, which is a new image service. A video compression technique is being analyzed to effectively provide stereographic image content with high resolution and ultra high resolution.
[0008] Divulgation
[0009] Technical problem
[0010] An object of the present invention is to provide a method and apparatus for efficiently encoding / decoding a transformation coefficient of an encoding / decoding of an objective block in the encoding / decoding of a video signal.
[0011] An object of the present invention is to provide a method and an apparatus for hierarchically encoding / decoding a coded indicator of the transformation coefficient in the encoding / decoding of a video signal.
[0012] An object of the present invention is to provide a method and apparatus for adaptively determining a scan order or base units to which a scan is performed in the encoding / decoding of a video signal.
[0013] The technical objects to be achieved by the present invention are not limited to the aforementioned technical problems. And, other technical problems that are not mentioned will obviously be understood by those skilled in the art from the description that follows.
[0014] Technical solution
[0015] A method and apparatus for decoding a video signal according to the present invention can decode information indicating whether there is a non-zero transformation coefficient in a current block, determining a scan order of the current block when the information indicates that it exists the coefficient of non-zero transformation in the current block, and decoding a transformation coefficient included in the current block according to the determined scanning order.
[0016] A method and apparatus for encoding a video signal according to the present invention can encode information indicating whether there is a non-zero transformation coefficient in a current block according to whether the non-zero transformation coefficient exists in the block. current, determine a scan order of the current block when the non-zero transformation coefficient exists in the current block and arrange a transformation coefficient included in the current block according to the determined scanning order.
[0017] In the method and apparatus for encoding / decoding a video signal according to the present invention, the information can be encoded / decoded in a sub-block unit within the current block.
[0018] In the method and apparatus for encoding / decoding a video signal according to the present invention, a size or a shape of the sub-block according to a size or shape of the current block can be adaptively determined.
[0019] In the method and apparatus for encoding / decoding a video signal according to the present invention, the information can be encoded / decoded into a predetermined unit, and the predetermined unit can be determined based on a number of samples.
[0020] In the method and apparatus for encoding / decoding a video signal according to the present invention, if the current block comprises more samples than the number of samples corresponding to the predetermined unit, the current block can be divided into a plurality of regions of according to the predetermined unit, and the information can be signaled for each of the plurality of regions.
[0021] In the method and apparatus for encoding / decoding a video signal according to the present invention, one of a plurality of candidates to the scan order can be determined as the scan order of the current block, and a type or number of the plurality of candidates for scanning order may be different according to a size or shape of the current block.
[0022] In the method and apparatus for encoding / decoding a video signal according to the present invention, the scanning order of the current block can be determined to be the same as a scan order of the upper block including the current block, and a plurality of blocks included in the upper block may have the same scanning order.
[0023] The features briefly summarized above for the present invention are only illustrative aspects of the detailed description of the following invention, but do not limit the scope of the invention.
[0024] Advantageous effects
[0025] According to the present invention, a transformation coefficient for an objective coding / decoding block can be encoded / decoded efficiently.
[0026] In accordance with the present invention, a coded indicator of the transformation coefficient can be encoded / decoded hierarchically.
[0027] In accordance with the present invention, a scan order or a base unit to which the scan is performed can be determined adaptively.
[0028] The effects that can be obtained by the present invention are not limited to the aforementioned effects, and other effects not mentioned can be clearly understood by those skilled in the art from the description that follows.
[0029] Description of the drawings
[0030] FIG. 1 is a block diagram illustrating a device for encoding a video according to an embodiment of the present invention.
[0031] FIG. 2 is a block diagram illustrating a device for decoding a video according to an embodiment of the present invention.
[0032] FIG. 3 is a diagram illustrating an example of hierarchically partitioning an encoding block based on a tree structure according to an embodiment of the present invention.
[0033] FIG. 4 is a diagram illustrating a type of partition in which a binary tree-based partitioning is allowed according to an embodiment of the present invention.
[0034] FIG. 5 is a diagram illustrating an example in which only a binary tree-based partition of a predetermined type according to an embodiment of the present invention is allowed.
[0035] FIG. 6 is a diagram for explaining an example in which the information related to the permitted number of binary tree partitions is encoded / decoded, according to an embodiment to which the present invention is applied.
[0036] FIG. 7 is a diagram illustrating a partition mode applicable to a coding block according to an embodiment of the present invention.
[0037] FIG. 8 is a flow diagram illustrating processes for obtaining a residual sample according to an embodiment of the present invention.
[0038] FIG. 9 is a diagram that illustrates a map of the level of the coefficient of transformation.
[0039] FIG. 10 is a diagram for explaining an aspect in which a coded indicator of the transformation coefficient is decoded based on a predetermined unit.
[0040] FIG. 11 is a diagram showing a method of decoding transformation coefficients according to each scan order.
[0041] FIG. 12 illustrates a scanning order between sub-blocks according to a scan order of a current block.
[0042] FIG. 13 is a diagram showing a scan order of a base block of the transformation coefficient according to a shape of a current block.
[0043] Mode for invention
[0044] A variety of modifications can be made to the present invention and there are various embodiments of the present invention, examples of which will now be provided with reference to the drawings and will be described in detail. However, the present invention is not limited thereto, and exemplary embodiments may be constructed including all modifications, equivalents, or substitutes in a technical concept and a technical scope of the present invention. Similar reference numbers refer to similar elements in the description of the drawings.
[0045] The terms used in the specification, "first", "second", etc. they can be used to describe various components, but the components do not have to be constructed by limiting themselves to the terms. The terms are only used to differentiate a component from other components. For example, the "first" component may be referred to as the "second" component without departing from the scope of the present invention, and the "second" component may similarly be referred to as the "first" component. The expression "and / or" includes a combination of a plurality of articles or any one of a plurality of terms.
[0046] It will be understood that when referring to an element simply as being "connected to" or "coupled to" another element without being "directly connected to" or "directly coupled to" another element in the present description, it may be "directly connected to""Or" directly coupled to "another element or connect to or attach to another element, having the other intermediate element between them. On the contrary, it should be understood that when reference is made to an element as being "directly coupled" or "directly connected" to another element, there are no intervening elements present.
[0047] The terms used in the present specification are used merely to describe particular embodiments, and are not intended to limit the present invention. An expression used in the singular encompasses the expression in the plural, unless it has a clearly different meaning in the context. In the present specification, it is to be understood that terms such as "including", "having", etc. it is intended that they indicate the existence of characteristics, numbers, stages, actions, elements, parts or combinations of them disclosed in the specification, and are not intended to exclude the possibility that one or more other characteristics may exist or be added, numbers, stages, actions, elements, parts or combinations thereof.
[0048] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Hereinafter, the same constituent elements of the drawings are indicated by the same reference numbers, and a repeated description of the same elements will be omitted.
[0049] FIG. 1 is a block diagram illustrating a device for encoding a video according to an embodiment of the present invention.
[0050] With reference to FIG. 1, the device 100 for encoding a video may include: a partitioning module of the image 110, prediction modules 120 and 125, a transformation module 130, a quantization module 135, a redisposition module 160, a module of Entropica coding 165, an inverse quantization module 140, a reverse transformation module 145, a filter module 150, and a memory 155.
[0051] The constituent parts shown in FIG. 1 are shown independently so as to represent different characteristics of each other in a device for encoding a video. Therefore, this does not mean that each constituent part is constituted in a separate hardware or software constituent unit. In other words, each constituent part includes each of the constituent parts as appropriate.
[0052] Therefore, at least two constituent parts of each constituent part can be combined to form a constituent part or a constituent part can be divided into a plurality of constituent parts to perform each function. The embodiment in which each constituent part is combined and the embodiment in which a constituent part is divided are also included in the scope of the present invention, if it does not depart from the essence of the present invention.
[0053] Also, some of the constituents may not be indispensable constituents that perform essential functions of the present invention but be selective constituents that improve only the performance thereof. The present invention can be implemented by including only the essential constituent parts to implement the essence of the present invention except the constituents used in the performance improvement. The structure that includes only the indispensable constituents except the selective constituents used only in performance improvement are also included in the scope of the present invention.
[0054] The image partitioning module 110 may partition an input image into one or more processing units. In this case, the processing unit can be a prediction unit (PU), a transformation unit (TU), or a coding unit (CU). The image partitioning module 110 can partition an image into combinations of multiple coding units, prediction units and transformation units, and can encode an image by selecting a combination of coding units, prediction units and transformation units. with a predetermined criterion (for example, cost function).
[0055] For example, an image can be partitioned into multiple units of coding. A recursive tree structure, such as a quadruple tree structure, can be used for partitioning an image into coding units. A coding unit that has been partitioned into other coding units by being an image or a larger coding unit such as a root can be partitioned with child nodes corresponding to the number of partitioned coding units. A coding unit that is no longer partitioned by a predetermined limitation serves as a leaf node. That is, when it is assumed that it is only possible to partition square for a coding unit, one coding unit can be partitioned into four other coding units at most.
[0056] Hereinafter, in the embodiment of the present invention, the coding unit can mean a unit that performs coding, or a unit that performs decoding.
[0057] A prediction unit may be one of partitioned partitions in a square or a rectangular shape having the same size as a simple coding unit, or a prediction unit may be one of the partitioned partition units so that they have a shape / different size of a simple coding unit.
[0058] When a prediction unit predicted intra is generated based on a coding unit and the coding unit is not the smallest coding unit, the intra prediction can be performed without partitioning of the coding unit into multiple prediction units NxN.
[0059] The prediction modules 120 and 125 may include an inter-prediction module 120 that performs the inter prediction and an intra-125 prediction module that performs intra prediction. It can be determined whether to perform an inter prediction or an intra prediction for the prediction unit, and detailed information (eg, an intra prediction mode, a motion vector, a reference image, etc.) can be determined according to each prediction method. In this case, the processing unit subjected to prediction may be different from the processing unit for which the prediction method and detailed content is determined. For example, the prediction method, the prediction mode, etc. they can be determined by the prediction unit, and the prediction can be made by the transformation unit. A residual value (residual block) between the generated prediction block and an original block can be input to the transformation module 130. Also, the information of the prediction mode, the information of the motion vector, etc. used for prediction can be encoded with the residual value by the entrope coding module 165 and can be transmitted to the device for video decoding. When a particular coding mode is used, it is possible to transmit it to a video decoding device by encoding the original block as it is without generating the prediction block through the prediction modules 120 and 125.
[0060] The inter-prediction module 120 can predict the prediction unit based on information from at least one of a previous image or a subsequent image of the current image, or it can predict the prediction unit based on information from some regions encoded in the image current, in some cases. The inter-prediction module 120 may include an interpolation module of the reference image, a motion prediction module, and a motion compensation module.
[0061] The reference image interpolation module may receive information from a reference image from the memory 155 and may generate pixel information of a whole pixel or less than an integer pixel from the reference image. In the case of luma pixels, an 8-tap DCT-based interpolation filter having different filter coefficients can be used to generate pixel information having to be a whole pixel or less than an integer pixel in a unit of 1 / 4 pixel. In the case of chroma signals, a 4-tap DCT-based interpolation filter having a different filter coefficient can be used to generate the pixel information of a whole pixel or less than an integer pixel in a unit of 1 / 8 pixel.
[0062] The movement prediction module can make a prediction of the movement based on the reference image interpolated by the interpolation module of the reference image. As methods for calculating a motion vector, various methods can be used, such as a block matching algorithm based on full search (FBMA), a three-stage search (TSS), a new three-stage search algorithm (NTS) , etc. The motion vector can have a motion vector value in a unit of 1/2 of a pixel or 1/4 of a pixel based on an interpolated pixel. The movement prediction module can predict a current prediction unit by changing the motion prediction method. As methods of motion prediction, various methods can be used, such as a jump method, a mixing method, an AMVP (advanced motion vector prediction) method, an intra block copy method, etc.
[0063] The intra 125 prediction module can generate a prediction unit based on the reference pixel information contiguous to a current block that is pixel information in the current image. When the neighbor block of the current prediction unit is a block subjected to inter prediction and therefore a reference pixel is a pixel subjected to inter prediction, the reference pixel included in the block subjected to the inter prediction can be replaced with information from the reference pixel of a neighboring block subjected to intra prediction. That is, when a reference pixel is not available, at least one reference pixel of available reference pixels can be used in place of non-available reference pixel information.
[0064] Prediction modes in intra prediction include a directional prediction mode that uses reference pixel information depending on a prediction direction and a non-directional prediction mode that does not use directional information in the prediction performance. A mode for predicting luma information may be different from a mode for predicting chroma information, and for predicting chroma information, the information of the intra prediction mode used to predict information of luma or information may be used. of the signal of luma predicted.
[0065] In the realization of the intra prediction, when the size of the prediction unit is the same as the size of the transformation unit, the intra prediction can be made on the prediction unit based on pixels positioned on the left, on the left above , and on the top of the prediction unit. However, in performing the intra prediction, when the size of the prediction unit is different from the size of the transformation unit, the intra prediction can be performed using a reference pixel based on the transformation unit. Also, the use of intra-partition prediction NxN can be used only for the smallest coding unit.
[0066] In the intra prediction method, a prediction block can be generated after applying an AIS filter (intra adaptive smoothing) to a reference pixel depending on the prediction modes. The type of the AIS filter applied to the reference pixel may vary. To perform the intra prediction method, an intra prediction mode of the current prediction unit can be predicted from the intra prediction mode of the prediction unit contiguous with the current prediction unit. In predicting the prediction mode of the current prediction unit by using information predicted from the contiguous prediction unit, when the intra prediction mode of the current prediction unit is the same as the intra prediction mode of the contiguous prediction unit, information may be transmitted indicating that the prediction modes of the The current prediction unit and the contiguous prediction unit are equal to each other using a predetermined marker information. When the prediction mode of the current prediction unit is different from the prediction mode of the contiguous prediction unit, an entrope coding can be performed to encode the prediction mode information of the current block.
[0067] Also, a residual block that includes information about a residual value that is a different one between the prediction unit under prediction and the original block of the prediction unit, can be generated based on prediction units generated by the prediction modules 120 and 125 The residual block generated can be introduced into the transformation module 130.
[0068] The transformation module 130 can transform the residual block including information about the residual value between the original block and the prediction unit generated by the prediction modules 120 and 125 by the use of a transformation method, such as a transformation of Discrete Cosine (DCT), Discrete Sine Transform (DST) and KLT. It can be determined whether to apply DCT, DST or KLT to transform the residual block based on the information of the intra prediction mode of the prediction unit used to generate the residual block.
[0069] The quantization module 135 can quantize values transformed to a frequency domain by the transformation module 130. The quantization coefficients may vary depending on the block or importance of an image. The values calculated by the quantization module 135 can be provided to the inverse quantization module 140 and the redisposition module 160.
[0070] The redisposition module 160 can rearrange the coefficients of the quantized residual values.
[0071] The redisposition module 160 can change a coefficient in the form of a two-dimensional block into a coefficient in the form of a one-dimensional vector through a method of scanning coefficients. For example, the redisposition module 160 can scan from a DC coefficient to a coefficient in the high frequency domain using a zigzag scanning method so that it changes the coefficients to be in the form of one-dimensional vectors. Depending on the size of the transformation unit and the intra prediction mode, scanning in the vertical direction can be used in which the coefficients in the form of two-dimensional blocks are scanned in the direction of columns or the scan in the horizontal direction where the coefficients in the form of two-dimensional blocks are scanned in that row direction instead of a zigzag scan. That is, the scanning method used between zigzag scanning, vertical scanning and horizontal scanning can be determined depending on the size of the transformation unit and the intra prediction mode.
[0072] The entrope coding module 165 can perform an entrope coding based on the values calculated by the redisposition module 160. Entrope coding can use various coding methods, eg, Golomb exponential coding, context-adaptive variable length coding (CAVLC) , and adaptive binary arithmetic coding to the context (CABAC).
[0073] The entrope coding module 165 may encode a variety of information, such as information of the residual value coefficient and information of the block type of the coding unit, information of the prediction mode, information of the unit of partition, information of the unit. of prediction, information of the transformation unit, information of the motion vector, information of the reference frame, block interpolation information, filtering information, etc. from the redisposition module 160 and from the prediction modules 120 and 125.
[0074] The entropy coding module 165 can entropically encode the coefficients of the coding unit introduced from the redisposition module 160.
[0075] The inverse quantization module 140 can inversely quantize the values quantized by the quantization module 135 and the inverse transformation module 145 can transform inversely the values transformed by the transformation module 130. The residual value generated by the inverse quantization module 140 and by the inverse transformation module 145 can be combined with the predicted prediction unit by the motion estimation module, a movement compensation module, and the intra prediction module of the prediction modules 120 and 125 so that a reconstructed block can be generated.
[0076] The filter module 150 can include at least one of a deblocking filter, a deviation correction unit, and an adaptive loop filter (ALF).
[0077] The unblocking filter can eliminate the block distortion that occurs due to the boundaries between the blocks in the reconstructed image. To determine whether to perform unlock, the pixels included in various rows or columns in the block can be a basis for determining whether to apply the unlock filter to the current block. When an unblocking filter is applied to the block, a strong filter or a weak filter may be applied depending on the required unblocking filter intensity. Also, in the application of the unblocking filter, a filtering in a horizontal direction and a filtering in a vertical direction can be processed in parallel.
[0078] The deviation correction module can correct the deviation with the original image in a unit of a pixel in the unlocked image. To perform the deviation correction on a particular image, it is possible to use a deviation application method in consideration of the edge information of each pixel or a pixel partitioning method of an image in the predetermined number of regions, determining a region to be submitted to the realization of the deviation, and applying the deviation to the determined region.
[0079] Adaptive loop filtering (ALF) can be performed based on the value obtained by comparing the filtered reconstructed image and the original image. The pixels included in the image can be divided into predetermined groups, a filter can be determined to be applied to each of the groups, and filtering can be done individually for each group. The information on whether to apply ALF and a luma signal can be transmitted by coding units (CU). The shape and filter coefficient of a filter for ALF can vary depending on each block. Also, the filter for ALF can be applied in the same way (fixed form) independently of the characteristics of the target block of application.
[0080] The memory 155 can store the reconstructed block or image calculated through the filter module 150. The reconstructed block or image stored can be provided to the prediction modules 120 and 125 in carrying out the inter prediction.
[0081] FIG. 2 is a block diagram illustrating a device for decoding a video according to an embodiment of the present invention.
[0082] With reference to FIG. 2, the device 200 for decoding a video may include: an entropy decoding module 210, a redisposition module 215, a reverse quantization module 220, a reverse transformation module 225, prediction modules 230 and 235, a module for filter 240 and a memory 245.
[0083] When a video bit stream is input from the device for video encoding, the input bitstream can be decoded according to an inverse process of the device for video encoding.
[0084] The entrope decoding module 210 may perform the entrope decoding according to a reverse process to the entrope coding by the entrope coding module of the video encoding device. For example, in correspondence with the methods performed by the device for video encoding, various methods can be applied, such as Golomb exponential coding, context-adaptive variable length coding (CAVLC) and contextual adaptive binary arithmetic coding (CABAC).
[0085] The entropy decoding module 210 can decode information on intra prediction and inter prediction performed by the device for video encoding.
[0086] The redisposition module 215 can perform the redisposition of the entrope decoder bit stream by the entrope decoding module 210 based on the redisposition method used in the video encoding device. The redisposition module can reconstruct and rearrange the coefficients in the form of one-dimensional vectors for the coefficient in the form of two-dimensional blocks. The redisposition module 215 can receive information regarding the scanning of coefficients performed by the device for video encoding and can perform the redisposition through a method of inverse scanning of the coefficients based on the order of scanning performed on the device for coding video.
[0087] The inverse quantization module 220 can perform the quantification Reverse based on a quantization parameter received from the video encoding device and the redisposed coefficients of the block.
[0088] The inverse transformation module 225 can perform the inverse transformation, i.e., inverse DCT, inverse DST and inverse KLT, which is the inverse process of the transformations, ie, DCT, DST and KLT, performed by the transformation module on the result of the quantification by the device for video coding. The inverse transformation can be performed based on a transfer unit determined by the video encoding device. The reverse transformation module 225 of the video decoding device can selectively perform transformation schemes (e.g., DCT, DST and KLT) depending on multiple pieces of information, such as the prediction method, the size of the current block, the address of prediction, etc.
[0089] The prediction modules 230 and 235 can generate a prediction block based on the information on the generation of the prediction block received from the entropy decoding module 210 and the information of the previously decoded block or image received from the memory 245.
[0090] As described above, as in the operation of the video encoding device, in carrying out the intra prediction, when the size of the prediction unit is the same as the size of the transformation unit, intra prediction can be performed the prediction unit based on the pixels positioned on the left, the left above, and the top of the prediction unit. In performing the intra prediction, when the size of the prediction unit is different from the size of the transformation unit, the intra prediction can be performed using a reference pixel based on the transformation unit. Also, the intra prediction can be used using NxN partitioning only for the smallest coding unit.
[0091] The prediction modules 230 and 235 may include a determination module of the prediction unit, an inter-prediction module and an intra-prediction module. The determination module of the prediction unit may receive a variety of information, such as information of the prediction unit, information of the prediction mode of an intra prediction method, information on prediction of movement of a method of prediction. inter prediction, etc. from the entropy decoding module 210, it can divide a current coding unit into prediction units, and can determine whether an inter prediction or intra prediction is performed on the prediction unit. By using the information required in the inter prediction of the current prediction unit received from the device for video encoding, the inter-prediction module 230 can perform the inter prediction on the current prediction unit based on the information of at least one of a previous image or a subsequent image of the current image that includes the current prediction unit. Alternatively, the inter prediction can be performed based on the information of some pre-reconstructed regions in the current image including the current prediction unit.
[0092] To perform inter prediction, it can be determined by the encoding unit which of a hop mode, a mix mode, an AMVP mode and an inter block copy mode is used as the prediction method of movement of the prediction unit. included in the coding unit.
[0093] The prediction module intra 235 can generate a prediction block based on pixel information in the current image. When the prediction unit is a prediction unit subjected to intra prediction, the intra prediction may be performed based on information of the intra prediction mode of the prediction unit received from the device for video encoding. The prediction module intra 235 may include an intra-adaptive smoothing filter (AIS), a reference pixel interpolation module, and a DC filter. The AIS filter performs filtering on the reference pixel of the current block and it can be determined if the filter is applied depending on the prediction mode of the current prediction unit. The AIS filtering can be performed on the reference pixel of the current block by using the prediction mode of the prediction unit and the AIS filter information received from the device for video coding. When the prediction mode of the current block is a mode in which AIS filtering is not performed, the AIS filter can not be applied.
[0094] When the prediction mode of the prediction unit is a prediction mode in which intra prediction is performed based on the pixel value obtained by interpolating the pixel of the reference, the interpolation of the reference pixel can interpolate the reference pixel to generate the reference pixel of a whole pixel or less than a whole pixel. When the prediction mode of the current prediction unit is a prediction mode in which a prediction block is generated without interpolation of the reference pixel, the reference pixel can not be interpolated. The DC filter can generate a prediction block through filtering when the prediction mode of the current block is a DC mode.
[0095] The reconstructed block or image can be provided to the filter module 240. The filter module 240 can include the deblocking filter, the deviation correction module and the ALF.
[0096] The information on whether or not the unblocking filter is applied to the corresponding block or image and the information of which between a strong filter and a weak filter are applied when the unblocking filter is applied, can be received from the device for video coding . The unlock filter of the video decoding device can receive information about the unlock filter from the video encoding device, and can perform the unlock filtering on the corresponding block.
[0097] The deviation correction module can perform the correction of the deviation on the reconstructed image based on the type of deviation correction and the information of the deviation value applied to the image in the embodiment of the coding.
[0098] The ALF can be applied to the coding unit based on information on whether to apply the ALF, information on the ALF coefficient, etc. received from the device for video encoding. The ALF information can be provided by being included in a particular set of parameters.
[0099] The memory 245 can store the reconstructed image or block for use as a reference image or block, and can provide the reconstructed image to an output module.
[0100] As described above, in the embodiment of the present invention, for convenience of explanation, the coding unit is used as a term representing a unit for coding, but the coding unit may serve as a unit for performing decoding as as the coding.
[0101] In addition, a current block may represent an objective block to be encoded / decoded. And, the current block can represent a block of coding tree (or an encoding tree unit), a coding block (or a coding unit), a transformation block (or a transformation unit), a block of prediction (or a prediction unit), or the like depending on a coding / decoding stage.
[0102] An image can be encoded / decoded by its division into base blocks that have a square shape or a non-square shape. At this time, the base block can be referred to as a coding tree unit. The coding tree unit can be defined as a coding unit of the largest size allowed within a sequence or fraction. The information regarding whether the unit of the coding tree has a square shape or has a non-square shape or information regarding the size of the unit of the coding tree can be signaled through a set of parameters of the sequence, a set of parameters of the image, or a header of the fraction. The unit of the coding tree can be divided into smaller size partitions. At this time, if it is assumed that a depth of a partition generated by the division of the unit of the coding tree is 1, a depth of a partition generated by dividing the partition having a depth 1 can be defined as 2. This is, a partition generated by the division of a partition having a depth k in the coding tree unit can be defined as having a depth k + 1.
[0103] A partition of arbitrary size generated by the division of a coding tree unit can be defined as a coding unit. The coding unit may be recursively divided or divided into base units for the performance of prediction, quantization, transformation, or loop filtering, and the like. For example, a partition of arbitrary size generated by the division of the coding unit can be defined as a coding unit, or it can be defined as a transformation unit or a prediction unit, which is a base unit for the prediction embodiment, quantification, transformation or filtering in loop and the like.
[0104] The partition of a coding tree unit or a unit of Coding can be done based on at least one of a vertical line and a horizontal line. In addition, the number of vertical lines or horizontal lines that partition the unit of the coding tree or the coding unit may be at least one or more. For example, the code tree unit or the coding unit can be divided into two partitions using a vertical line or a horizontal line, or the code tree unit or the coding unit can be divided into three partitions using two vertical lines or two horizontal lines Alternatively, the coding tree unit or the coding unit may be partitioned into four partitions having a length and width of 1/2 using a vertical line and a horizontal line.
[0105] When a coding tree unit or a coding unit is divided into a plurality of partitions using at least one vertical line or at least one horizontal line, the partitions may have a uniform size or a different size. Alternatively, any partition can have a different size from the rest of the partitions.
[0106] In the embodiments described below, it is assumed that a coding tree unit or a coding unit is divided into a quadruple tree structure or a binary tree structure. However, it is also possible to divide a coding tree unit or a coding unit using a greater number of vertical lines or a greater number of horizontal lines.
[0107] FIG. 3 is a diagram illustrating an example of hierarchically partitioning an encoding block based on a tree structure according to an embodiment of the present invention.
[0108] An input video signal is decoded in predetermined block units. Said default unit for the decoding of the input video signal is a coding block. The coding block can be a unit that performs intra / inter prediction, transformation and quantification. In addition, a prediction mode (e.g., an intra prediction mode or an inter prediction mode) is determined in a unit of a coding block, and the prediction blocks included in the coding block can share the prediction mode. determined. The coding block can be a square or non-square block having an arbitrary size in the range of 8x8 to 64x64, or it can be a block square or non-square that has a size of 128x128, 256x256 or more. Specifically, the coding block can be partitioned hierarchically based on at least one of a quadruple tree and a binary tree. In this case, quadruple tree-based partitioning means that a 2Nx2N coding block is partitioned into four NxN coding blocks, and binary tree-based partitioning can mean that one block of coding is partitioned into two blocks of coding. Even if partitioning is performed based on binary tree, there may be a square-shaped coding block at the lowest depth.
[0109] Partitioning based on binary tree can be performed symmetrically or asymmetrically. The partitioned coding block based on the binary tree can be a square block or a non-square block, such as a rectangular shape. For example, a partition type in which binary tree-based partitioning is allowed may comprise at least one of a symmetric type of 2NxN (non-square coding unit of horizontal direction) or Nx2N (non-square address coding unit) vertical), symmetric type of nLx2N, nRx2N, 2NxnU, or 2NxnD.
[0110] Partitioning based on a binary tree can be limited to a partition between a symmetric type or a symmetric one. In this case, the construction of the unit of the coding tree with square blocks can correspond to a partitioning of CU in quadruple tree, and the construction of the unit of the tree of codification with non-square symmetric blocks can correspond to a partitioning in binary tree . The construction of the coding tree unit with square blocks and symmetrical non-square blocks may correspond to CU partitioning in quadruple and binary tree.
[0111] Partitioning based on binary tree can be done on a block of coding where quadruple tree-based partitioning is no longer performed. Partitioning based on quadruple tree can no longer be performed on the partitioned coding block based on the binary tree.
[0112] Additionally, partitioning of a lower depth can be determined depending on a partition type of a higher depth. For example, if partitioning based on a binary tree is allowed in two or more depths, only the same type as the binary tree partitioning of the upper depth in the lower depth can be allowed. For example, if the binary tree-based partitioning at the top depth is done with the type 2NxN, the partitioning based on the binary tree at the bottom depth is also done with the type 2NxN. Alternatively, if the binary tree-based partitioning at the upper depth is done with the Nx2N type, the binary tree-based partitioning at the lower depth is also done with the Nx2N type.
[0113] On the contrary, it is also possible to allow, at a lower depth, only a different type of a binary tree partitioning of a higher depth.
[0114] It may be possible to limit only a specific type of binary tree based on the partitioning to be used for sequence, fraction, unit of the coding tree or coding unit. As an example, only a 2NxN type or a Nx2N type of partitioning based on the binary tree can be allowed for the unit of the encoding tree. An available partition type can be predefined in an encoder or decoder. Or the information on the type of partition available or on the type of partition not available can be encoded and then signaled through a bit stream.
[0115] FIG. 5 is a diagram illustrating an example in which only a specific type of partitioning based on a binary tree is allowed. FIG. 5A shows an example in which only one Nx2N type of partitioning based on a binary tree is allowed, and FIG. 5B shows an example where only a 2NxN type of binary tree partitioning is allowed. To implement adaptive partitioning based on quadruple tree or binary tree, information indicating quadruple tree-based partitioning can be used, information about the size / depth of the coding block that is allowed in quadruple tree-based partitioning, information indicating partitioning based on binary tree, information about the size / depth of the code block that are allowed in the binary tree-based partitioning, information about the size / depth of the code block that is not allowed in the binary tree-based partitioning, information about whether the Partitioning based on binary tree is done in a vertical direction or a horizontal direction, etc.
[0116] In addition, information about the number of times a binary tree partition is allowed, a depth in which the partitioned into binary tree, or the number of depths in which binary tree partitioning is allowed can be obtained from a unit of the coding tree or a specific coding unit. The information may be encoded in a unit of a coding tree unit or a coding unit, and may be transmitted to a decoder through a bit stream.
[0117] For example, a syntax "max_binary_depth_idx_minus1" that indicates a maximum depth at which binary tree partitioning is allowed can be encoded / decoded through a bit stream. In this case, max_binary_depth_idx_minus1 1 can indicate the maximum depth at which binary tree partitioning is allowed.
[0118] With reference to the example shown in FIG. 6, in FIG. 6 the binary tree partitioning has been done for a coding unit that has a depth of 2 and a coding unit that has a depth of 3. Consequently, at least one of the information indicates the number of times it is has performed the binary tree partitioning in the unit of the coding tree (ie, 2 times), information indicating the maximum depth allowed in the binary tree partitioning in the unit of the coding tree (ie, depth 3) ), or the number of depths in which the binary tree partitioning has been performed in the unit of the coding tree (ie, 2 (depth 2 and depth 3)) can be encoded / decoded through a bit stream.
[0119] As another example, at least one of the information on the number of times that primary tree partitioning is allowed, the depth at which primary tree partitioning is allowed or the number of depths allowed for tree partitioning. primary can be obtained for each sequence or each fraction. For example, the information may be encoded in a unit of a sequence, an image, or a fraction unit and transmitted through a bit stream. Consequently, at least one of the number of partitions of the binary tree in a first fraction, the maximum depth at which binary tree partitioning is allowed in the first fraction, or the number of depths in which tree partitioning is allowed primary is made in the first fraction may be different from a second fraction. For example, in the first fraction, primary tree partitioning can be allowed only for one depth, while the second fraction, the binary tree partitioning can be allowed for two depths.
[0120] As another example, the number of times that primary tree partitioning is allowed, the depth at which primary tree partitioning is allowed or the number of depths allowed for primary tree partitioning can be set differently than according to a time-level identifier (TemporalID) of a fraction or an image. In this case, the temporary level identifier (TemporalID) is used to identify each of a plurality of video layers that have a scalability of at least one spatial, temporal or quality view.
[0121] As shown in FIG. 3, the first coding block 300 with the depth of partition (depth of division) equal to k can be partitioned into multiple second blocks of coding based on the quadruple tree. For example, the second coding blocks 310 to 340 can be square blocks having half the width and half the height of the first coding block, and the partition depth of the second coding block can be increased to k + 1.
[0122] The second coding block 310 with the partition depth of k + 1 can be partitioned into multiple third coding blocks with a partition depth of k + 2. The partitioning of the second coding block 310 can be done by selectively using one of the quadruple tree and the binary tree depending on a partitioning method. In this case, the partition method can be determined based on at least one of the information indicating the partitioning based on the quadruple tree and the information indicating the partitioning based on the binary tree.
[0123] When the second coding block 310 is partitioned based on the quadruple tree, the second coding block 310 can be partitioned into four third coding blocks 310a having half the width and half the height of the second coding block, and the partition depth of the third coding block 310a can be increased to k + 2. On the contrary, when the second coding block 310 is partitioned based on the binary tree, the second coding block 310 can be partitioned into two third coding blocks. In this case, each of the two third blocks of encoding can be a non-square block having one of half the width and half the height of the second coding block, and the partition depth can be increased to k + 2. The second block of coding can be determined as a non-square block of a horizontal direction or a vertical direction depending on a partitioning direction, and the partitioning direction can be determined based on the information on whether a partitioning based on a binary tree is performed in a direction vertical or in a horizontal direction.
[0124] On the other hand, the second coding block 310 can be determined as a leaf coding block that is no longer partitioned based on the quadruple tree or the binary tree. In this case, the sheet coding block can be used as a prediction block or a transformation block.
[0125] As the partitioning of the second coding block 310, the third coding block 310a can be determined as a sheet coding block, or it can be further partitioned based on the quadruple tree or the binary tree.
[0126] For its part, the third partition block 310b partitioned based on the primary tree can be further partitioned into coding blocks 310b-2 of a vertical direction or coding blocks 310b-3 of a horizontal direction based on the binary tree, and depth of partition of the relevant coding blocks can be increased to k + 3. Alternatively, the third coding block 310b can be determined as a sheet coding block 310b-1 that is no longer partitioned based on the binary tree. In this case, the coding block 310b-1 can be used as a prediction block or a transformation block. However, the above partitioning process can be performed in a limited manner based on at least one of the size / depth information of the coding block that quadruple tree-based partitioning is allowed, information on the size / depth of the block encoding that is allowed binary tree-based partitioning, and information about the size / depth of the encoding block that is not allowed binary tree-based partitioning.
[0127] A number of a candidate that represents a size of a block of encoding may be limited to a predetermined number, or a size of a coding block in a predetermined unit may have a fixed value. As an example, the size of the coding block in a sequence or in an image can be limited to 256x256, 128x128 or 32x32. The information indicating the size of the coding block in the sequence or in the image can be signaled through a sequence header or image header.
[0128] As a result of partitioning based on a quadruple tree and a binary tree, a coding unit can be represented as a square or rectangular shape of an arbitrary size.
[0129] An encoding block is encoded using at least one of a hop mode, intra prediction, inter prediction, or a hop method. Once the coding block is determined, a prediction block can be determined through the predictive partitioning of the coding block. The predictive partitioning of the coding block can be done by means of a partition mode (Part_mode) that indicates a partition type of the coding block. A size or shape of the prediction block can be determined according to the partition mode of the coding block. For example, a size of a prediction block determined according to the partition mode may be equal to or smaller than a size of an encoding block.
[0130] FIG. 7 is a diagram illustrating a partition mode that can be applied to an encoding block when the coding block is encoded by inter prediction.
[0131] When a coding block is coded by inter-prediction, one of the 8 partition modes may be applied to the coding block, as in the example shown in FIG. Four.
[0132] When a coding block is encoded by intra prediction, a PART_2Nx2N partition mode or a PART_NxN partition mode may be applied to the coding block.
[0133] PART_NxN can be applied when a coding block has a minimum size. In this case, the minimum size of the coding block can be defined in an encoder and a decoder. Or, the information regarding the minimum size of the coding block can be signaled through a bit stream. For example, the minimum size of the block of Coding can be signaled through a fraction header, so that the minimum size of the coding block can be defined by fraction.
[0134] In general, a prediction block can have a size from 64x64 to 4x4. However, when a coding block is coded by inter-prediction, it can be restricted that the prediction block does not have a 4x4 size to reduce the memory bandwidth when motion compensation is performed.
[0135] The encoder can perform a transformation or quantification on a residual sample (or residual signal) in a unit of a predetermined block, and thereby generate a residual coefficient. In this case, the predetermined block unit can mean a unit on which the transformation or quantization is carried out. A size of the default block unit may be the same for the color components or may be different for each color component. For example, a residual coefficient for a luminance component (Luma) and a chrominance component (Cb, Cr) can be generated in a different block unit.
[0136] The block unit on which the transformation or quantization is carried out can be referred to as a transformation block, and the transformation block can have a square shape or a non-square shape. For example, the transformation block can have a square shape such as 4x4, 8x8, 16x16, 32x32 or 64x64, or it can have a non-square shape, such as 4x8, 8x4, 8x16, 16x8, 16x32, 32x16, 32x64, 64x32, 4x16, 4x32 or 8x32, etc.
[0137] The decoder can decode the residual coefficient from the bitstream received from the encoder and decode a residual sample (or residual signal) by performing at least one of an inverse quantization and an inverse transformation on the decoded residual signal. The processes of decoding a residual coefficient and generating the residual signal by performing at least one of the inverse quantization and the inverse transformation on the decoded residual signal can be defined as "residual coefficient decoding".
[0138] The decoding processes of the residual coefficient will be described in detail in the following document.
[0139] FIG. 8 is a flow diagram illustrating extraction processes of a residual sample according to an embodiment of the present invention.
[0140] The decoder can decode information indicating whether there is a non-zero transform coefficient in a current block from a bit stream S810 and can determine whether to decode the residual coefficient of the current block based on the information S820.
[0141] The information may include a coded indicator of the transformation coefficient (coded_block_flag, CBF) that indicates whether or not the transformation coefficient exists in the current block. The coded indicator of the transformation coefficient can indicate whether the non-zero transformation coefficient exists in a block of a predetermined unit. For example, when the coded indicator of the transformation coefficient is 0, it may indicate that there is no non-zero transformation coefficient in the block of the predetermined unit, and when the coded indicator of the transformation coefficient is 1, it may indicate that it exists at minus a non-zero transformation coefficient in the block of the predetermined unit. The coded indicator of the transformation coefficient can be coded and signaled for each of the luminance component and the chrominance component.
[0142] The coded indicator of the transformation coefficient may comprise at least one of an indicator (eg, "rgt_root_cbf") signaled in a unit of a block (e.g., a transformation block, an encoding block, or a tree block). coding) or an indicator (eg "coded_sub_block_flag") signaled in a unit of a sub-block of a predetermined size.
[0143] For example, the rqt_root_cbf can indicate if the current block includes a non-zero transformation coefficient. The decoder can determine if it must decode the residual coefficient according to a value of rqt_root_cbf. For example, when the rqt_root_cbf is 0, the decoding of the transformation coefficient for the current block (for example, the current transformation block) may not be performed and the values of the residual samples in the current block may all be set to zero. On the other hand, when the rqt_root_cbf is 1, the decoding of the transformation coefficient of the current block can be performed.
[0144] The coded_sub_block_flag can indicate whether or not a coefficient is included of non-zero transformation in the sub-block of the predetermined size. For example, the coded_sub_block_flag can be coded and signaled in a unit of a 4x4 sub-block. If the coded_sub_block_flag is 0, it can mean that there is no non-zero transformation coefficient in the sub-block of the predetermined size, and if the coded_sub_block_flag is 1, it can mean that there is at least one non-zero transformation coefficient in the sub- block of the predetermined size.
[0145] The rqt_root_cbf and the coded_sub_block_flag can be coded and hierarchically signaled. For example, when the rqt_root_cbf is 0, the encoding of the coded_sub_block_flag can be omitted. On the other hand, when the rqt_root_cbf is 1 and a size of the current block is greater than the sub-block, the coded_sub_block_flag can be coded and signaled into one unit of a sub-block of the predetermined size in the current block.
[0146] It is also possible to encode and hierarchically signal coded indicators of the transformation coefficient between a transformation block and an encoding block. For example, after encoding / decoding a first coded indicator of the transformation coefficient that indicates that there is at least one transformation block that includes a non-zero transformation coefficient between a plurality of transformation blocks, and can then be determined based on in a value of the first coded marker of the transformation coefficient, whether to code / decode a second coded marker of the transformation coefficient for each transformation block. In this case, at least one of a size or shape of a higher block including the plurality of transformation blocks may have a predefined value or may be determined through the information to be decoded through the bit stream. Alternatively, at least one of the size or shape of the upper block can be determined based on a partition type of the code tree block. For example, a non-square coding block or a square coding block can be defined which includes a plurality of non-square transformation blocks as the upper block for the plurality of non-square transformation blocks. The coded indicator of the transformation coefficient can be coded hierarchically along two or more layers.
[0147] As described above, a method to encode hierarchically a coded indicator of the transformation coefficient can be referred to as a method of deducing a marker from the hierarchical coded block (HCBF).
[0148] When at least one non-zero transformation coefficient is included in the current block, the transformation coefficient can be decoded using a level indicator of the transformation coefficient that indicates whether or not the transformation coefficient is 0. The coefficient level indicator Transformation is a 1-bit marker (for example, "significant_flag") that indicates whether each transformation coefficient in the current block is 0. For example, if the significant_flag is 1, it indicates that the transformation coefficient is not 0 , and if the significant_flag is 0, it indicates that the transformation coefficient is 0.
[0149] It can be referred to as a level layer of the transformation coefficient (Significant Map) that represents whether each transformation coefficient of the current block is 0. The encoder can encode the coded indicator of the transformation coefficient and the level indicator of the transformation coefficient for each transformation coefficient according to the level map of the transformation coefficient, and coding an absolute value and a sign of the non-zero transformation coefficient. The decoder can decode the level map of the transformation coefficient according to the coded indicator of the transformation coefficient and the level indicator of the transformation coefficient, and decode the absolute value and the sign of the nocero transformation coefficient.
[0150] FIG. 9 is a diagram illustrating a level map of the transformation coefficient. The values shown in FIG. 9 indicate values of the level indicator of the transformation coefficient, and coded_sub_block_flag indicates whether or not there is a non-zero transformation coefficient for a sub-block of 4x4.
[0151] A sub-block of a predetermined size in which the information on whether there is a non-zero transformation coefficient can be coded / decoded can be referred to as a base block of the transformation coefficient. For example, in FIG. 9, a block of 4x4 in which coded_sub_block_flag is coded can be defined as the base block of the transformation coefficient.
[0152] At this point, at least one of a form or a size of the base block of the transformation coefficient can be determined differently according to at least one of a shape or a size of a coding block or a transformation block. For example, if the current block has a square shape, the base block of the transformation coefficient of the current block can also have a square shape, and if the current block has a non-square shape, the base block of the transformation coefficient of the current block It can also have a non-square shape. For example, when the current block has a non-square shape of Nx2N or Nx4N, the base block of the transformation coefficient of the current block can be 2x8, and if the current block is non-square of 2NxN or 4NxN, the base block of the coefficient transformation of the current block can be 8x2.
[0153] As a result of quadruple tree partitioning and binary tree partitioning, a block of the coding tree or a coding block may include a transformation block such as 2x8, 8x2, 4x16 or 16x4. As described above, when binary tree partitioning in addition to quad-partitioning is used, a greater number or more diverse forms of the transformation blocks can be included in the unit of the coding tree than in the case of using only the partitioning quadruple. The signaling of the coded indicator of the transformation coefficient for each transformation block can reduce the efficiency of the coding because the number of transformation blocks is increased or the shape thereof is diversified.
[0154] Thus, in an embodiment of the present invention, instead of encoding the coded indicator of the transformation coefficient into a unit of a transformation block, the coded indicator of the transformation coefficient can be encoded / decoded into a predetermined unit. Or it is also possible to determine whether to encode / decode the coded indicator of the transformation coefficient for the current block by comparing the size of the current block with the predetermined unit. In this case, the default unit can be defined as a block size, a block shape, or the number of samples.
[0155] The encoder can encode and signal information (e.g., a coded unit indicator of the transformation coefficient) to determine the predetermined unit. The information can indicate the size, the shape, or the number of samples of the block. Additionally, the information can be encoded and signaled in at least one of a video sequence level, a set of image parameters, a fraction header, or a block level.
[0156] If the predetermined unit is related to the size of the block or the number of samples, and if the current block is smaller than the predetermined unit, it can be determined whether or not the current block includes a non-zero transformation coefficient based on the encoded indicator for the default unit. On the other hand, when the current block is equal to or greater than the predetermined unit, the coded indicator of the transformation coefficient for the current block can be coded and signaled.
[0157] FIG. 10 is a diagram for explaining an aspect in which a coded indicator of the transformation coefficient is decoded based on a predetermined unit.
[0158] When the predetermined unit indicates 256 samples, the coded indicator of the transformation coefficient can be coded and signaled based on a block that includes 256 or more samples. Accordingly, in the example shown in FIG. 10, the coded indicator of the transformation coefficient that specifies whether a nocero transformation coefficient exists can be decoded for a block of 16x16 or 8x32.
[0159] The coded indicator of the transformation coefficient can be coded and also signaled for a block that includes more than 256 samples. Therefore, in the example shown in FIG. 10, the coded indicator of the transformation coefficient that indicates whether a non-zero transformation coefficient exists can be decoded for a block of 16x32 or 32x32.
[0160] When the predetermined unit indicates 1024 samples, the coded indicator of the transformation coefficient can be coded and signaled based on a block that includes 1024 or more samples. Accordingly, in the example shown in FIG. 10, a coded indicator of the simple transformation coefficient can be decoded for an upper block that includes four square blocks of size 16x16. And a coded indicator of the simple transformation coefficient can be decoded for an upper block that includes two non-square blocks of 8x32 and non-square blocks of 16x32.
[0161] The coded indicator of the transformation coefficient can be coded and signaled separately for blocks that include more than 1024 samples. Accordingly, in the example shown in FIG. 10, the coded indicator of the transformation coefficient can be decoded for a 32x32 block.
[0162] The predetermined unit can indicate a maximum unit in which it is coded and signals the coded indicator of the transformation coefficient. That is, a maximum size or a shape of the block to which the coded indicator of the transformation coefficient is to be encoded can be defined based on the predetermined unit. In this case, the number of samples indicated by the coded unit indicator of the transformation coefficient and the number of samples included in the transformation block can be compared to determine the unit in which the transformation coefficient is signaled.
[0163] For example, when the number of samples indicated by the coded unit indicator of the transformation coefficient is greater than the number of samples included in the transformation block, the coded indicator of the transformation coefficient can be coded and signaled for the transformation block. On the other hand, when the number of samples indicated by the coded unit indicator of the transformation coefficient is smaller than the number of samples included in the transformation block, the transformation block can be divided into a plurality of regions according to the predetermined unit. , and then the coded indicator of the transformation coefficient can be coded and signaled for each region.
[0164] If the non-zero residual coefficient is included in the current block, a scan order for the current block can be determined S830, and an absolute value or a sign of each transformation coefficient can be decoded according to the determined scanning order S840.
[0165] The decoder can select the scan order of the current block from among a plurality of candidates in the order of scanning. In this case, the plurality of candidates for scanning order may include at least one of a diagonal scan, a horizontal scan and a vertical scan. For example, FIG. 11 is a diagram showing a method of decoding the transformation coefficient according to each scan order.
[0166] The scanning order of the current block can be determined based on at least one of a size, a shape, a coding mode or an intra prediction mode of the current block (for example, a transformation block or an encoding block). In this case, the size of the current block can be represented by at least one of a width, a height, or an area of the block.
[0167] For example, the order of scanning of the current block can be determined by comparing the size of the current block with a predefined threshold value. In this case, the predefined threshold value can be expressed by a maximum value or a minimum value.
[0168] For example, a transform block or a 4x4 or 8x8 coding block encoded in intra mode can use a vertical scan, a vertical direction or a diagonal scan depending on an intra prediction mode. Specifically, vertical scanning is used when the intra prediction mode is a horizontal direction. Horizontal scanning is used when the intra prediction mode is a vertical direction, and diagonal scanning is used when the intra prediction mode is different from the horizontal and vertical directions. On the other hand, the diagonal scan can be used for a transformation block or an encoding block encoded in inter mode or for a transformation block or coding block encoded in an intra mode but having a size equal to or greater than 16x16.
[0169] Alternatively, at least one of the number or types of candidates available to the scanning order available for the current block can be set differently based on at least one of a size, a shape, a coding mode, or a prediction mode. intra of the current block. That is, according to the conditions listed above, it is possible to prevent the current block from using at least one of diagonal scanning, horizontal scanning and vertical scanning.
[0170] For example, if the current block has a non-square shape, the scan order available for the current block can be determined according to a relationship between a width and a height. For example, if the current block is an encoding block or a transformation block having a shape whose height is greater than a width (for example, Nx2N or Nx4N), at least one of the diagonal scanning or scanning can be selected. horizontal. On the other hand, if the current block is a coding block or a transformation block having a shape whose width is greater than a height (for example, 2NxN or 4NxN), at least one of the diagonal scan and the scan can be selected. vertical scan.
[0171] The current block can be divided into predetermined sub-blocks, and the transformation coefficient can be scanned in one unit of a sub-block. For example, the scanning of the transformation coefficient can be performed on a base block unit of the transformation coefficient which includes a predetermined number of pixels.
[0172] Even if the current block has a non-square shape, the current block can be divided into sub-blocks and the scan can be done based on the sub-blocks. At this point, the size of the sub-block may have a fixed value and may have a variable value based on at least one of the size or shape of the current block (e.g., a block of coding or a block of transformation) .
[0173] For example, as described above with reference to the base block of the transformation coefficient, the sub-block may include a fixed number of pixels (for example, 16). The size of the sub-block can be determined at 4x4, 2x8, 8x2 or the like according to the shape of the coding block or the transformation block.
[0174] A partition type of the sub-block can be the same as the coding block or the transformation block. Alternatively, the partition type of the sub-block can be determined independently of the partition type of the coding block. The sub-block can have a square shape or a non-square shape depending on the type of partition.
[0175] The scanning order of each sub-block can be determined according to the scan order of the current block. For example, FIG. 12 illustrates a scanning order between sub-blocks according to a scan order of a current block.
[0176] In the example shown in FIG. 12, when the order of scanning of the current block is a diagonal scan, at least one of the order of scanning between sub-blocks or the order of scanning within the sub-block can follow the diagonal scan. On the other hand, if the order of scanning of the current block is a horizontal scan, at least one of the order of scanning between sub-blocks or the order of scanning the coefficients of transformation in a sub-block can follow the horizontal scanning. Alternatively, when the scanning order of the current block is a vertical scan, at least one of the order of scanning between sub-blocks or the scanning order within a sub-block can follow the vertical scan.
[0177] Alternatively, the scanning order of each sub-block can be set adaptively according to a shape or size of the coding block or the current block. That is, the order of scanning of the base blocks of the transformation coefficient can be set differently depending on the size or shape of the current block.
[0178] FIG. 13 is a diagram showing a scan order of a base block of the transformation coefficient according to a shape of a current block. In FIG. 13, the numbers marked in each sub-block indicate the order for the scan.
[0179] If the current block is a coding block or a transformation block whose height is greater than a width, a diagonal scan can be used to sequentially scan the base blocks of the transformation coefficient as in the example shown in FIG. 13
[0180] On the other hand, if the current block is a coding block or a transformation block having a shape whose width is greater than a height, a horizontal scan can be used to sequentially scan base blocks of the transformation coefficient as in the example shown in FIG. 13
[0181] That is, according to the shape of the current block, the order of scanning of the base blocks of the transformation coefficient can be set to be different.
[0182] The relationship between the shape of the current block and the scanning order of the base blocks of the transformation coefficient, which is defined in FIG. 13, is merely an embodiment of the present invention and the present invention is not limited thereto. For example, when the current block is a coding block or a transformation block whose height is greater than the width defined in FIG. 13, it is also possible to sequentially scan the base blocks of the transformation coefficient using a vertical scan.
[0183] According to an embodiment of the present invention, the scanning can be performed in a unit of a group of blocks (or in a unit of a block) or a scan order can be determined in a unit of the block group. In this case, the block group can represent a block unit in which the scan is performed, or it can represent a group of transformation blocks that share the same type of scan. The group of blocks can include at least one transformation block. Alternatively, a plurality of non-square transformation blocks that constitute a square block can be defined as the group of blocks.
[0184] For example, when a size or range of the group of blocks is determined, the group of blocks can be divided into scan units to scan the group of blocks. In this case, a scan unit can have the same size or the same shape as a transformation block included in the group of blocks. Alternatively, at least one of the size or shape of the scanning unit may be different from the transformation block included in the group of blocks. For example, a scanning unit is limited to a square shape, while the group of blocks can include a non-square transformation block.
[0185] For example, if the size or range of the group of blocks is determined, the scanning order for the group of blocks can be determined and the determined scanning order can be applied to all the transformation blocks in the group of blocks.
[0186] The group of blocks can have a square shape or a non-square shape. Also, the group of blocks can include at least one non-square transformation block or at least one square transformation block.
[0187] A size of the group of blocks can have a fixed value or a variablely determined value. For example, the size of the group of blocks can be fixed in size, such as 64x64, 32x32, or 16x16, or it can be determined based on information about the size of the group of blocks transmitted through the bitstream.
[0188] If the residual coefficient of the current block is obtained, an inverse quantization can be performed on the residual coefficient of the current block S850.
[0189] It is possible to determine whether to skip an inverse transformation of the dequantized residual coefficient of the current block S860. Specifically, the decoder can determine whether to skip the inverse transformation over at least one of a horizontal direction or a vertical direction of the current block. When it is determined to apply the inverse transformation on at least one of the horizontal direction or the vertical direction of the current block, a residual sample of the current block can be obtained by inverse transformation of the dequantized residual coefficient of the current block S870. In this case, the inverse transformation can be performed using at least one of DCT, DST and KLT.
[0190] When the inverse transformation jumps both in the horizontal direction and in the vertical direction of the current block, the inverse transformation is not performed in the horizontal direction and in the vertical direction of the current block. In this case, the residual sample of the current block can be obtained by scaling the dequantized residual coefficient with a predetermined value S880.
[0191] To skip the inverse transformation on the horizontal direction means that the inverse transformation is not done on the horizontal direction but the inverse transformation is done on the vertical direction. At this point, scaling can be done in the horizontal direction.
[0192] To skip the inverse transformation on the vertical direction means that the inverse transformation is not done on the vertical direction but the inverse transformation is done on the horizontal direction. At this point, scaling can be done in the vertical direction.
[0193] It can be determined whether or not a technique can be used to skip a reverse transformation for the current block depending on a partition type of the current block. For example, if the current block is generated through a binary tree-based partitioning, the jump scheme of the inverse transformation can be restricted for the current block. Consequently, when the current block is generated through the binary tree-based partitioning, a residual sample of the current block can be obtained by inverse transformation of the current block. Furthermore, when the current block is generated through binary tree-based partitioning, the encoding / decoding information indicating whether or not the reverse transformation is skipped (eg, transform_skip_flag) can be omitted.
[0194] Alternatively, when the current block is generated through a binary tree-based partitioning, it is possible to limit the jump pattern of the inverse transformation to at least one of the horizontal direction or the vertical direction. In this case, the direction in which the jump scheme of the inverse transformation is limited can be determined based on decoded information of the bit stream, or can be determined adaptively based on at least one of a current block size, a current block shape, or an intra prediction mode of the current block.
[0195] For example, when the current block is a non-square block that has a width greater than a height, the jump scheme of the inverse transformation can be allowed only in the vertical direction and restricted in the horizontal direction. That is, when the current block is 2NxN, the inverse transformation is done in the horizontal direction of the current block, and the inverse transformation can be done selectively in the vertical direction.
[0196] On the other hand, when the current block is a non-square block that has a height greater than a width, the jump scheme of the inverse transformation can be allowed only in the horizontal direction and restricted in the vertical direction. That is, when the current block is Nx2N, the inverse transformation is done in the vertical direction of the current block, and the inverse transformation can be done selectively in the horizontal direction.
[0197] Unlike the previous example, when the current block is a non-square block that has a width greater than a height, the jump scheme of the inverse transformation can be allowed only in the horizontal direction, and when the current block is a non-square block that has a height greater than a width, the jump scheme of the inverse transformation can be allowed only in the vertical direction.
[0198] The information indicating whether or not to reverse the inverse transformation with respect to the horizontal direction or the information indicating whether to skip the inverse transformation with respect to the vertical direction can be signaled through a bit stream. For example, the information that indicates whether or not to reverse an inverse transformation in the horizontal direction is a 1-bit marker, "hor_transform_skip_flag", and the information that indicates whether to skip an inverse transformation in the vertical direction is a 1-bit marker, "Ver_transform_skip_flag" The encoder can encode at least one of "hor_transform_skip_flag" or "ver_transform_skip_flag" according to the shape of the current block. In addition, the decoder can determine whether or not to reverse the transformation in the horizontal direction or in the vertical direction by using at least one of "hor_transform_skip_flag" or "ver_transform_skip_flag".
[0199] It can be established to skip the inverse transformation for any address of the current block depending on the partition type of the current block. For example, if the current block is generated through a binary tree-based partitioning, the inverse transformation can be skipped in the horizontal direction or in the vertical direction. That is, if the current block is generated by partitioning based on a binary tree, it can be determined that the inverse transformation for the current block is skipped over at least one of a horizontal direction or a vertical direction without coding / decoding information (eg , transform_skip_flag, hor_transform_skip_flag, ver_transform_skip_flag) that indicates whether the inverse transformation of the current block is skipped or not.
[0200] Although the embodiments described above have been described on the basis of a series of stages or flow diagrams, they do not limit the order in time of the series of the invention, and may be performed simultaneously or in different orders as necessary. In addition, each of the components (e.g., units, modules, etc.) that constitute the block diagram in the embodiments described above can be implemented by a hardware or software device, and a plurality of components. Or a plurality of components may be combined and implemented by a single hardware or software device. The above described embodiments can be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer readable recording medium. The computer readable recording medium can include one or a combination of program commands, data files, data structures and the like. Examples of computer readable media include magnetic media such as hard drives, floppy disks and magnetic tape, optical recording media such as CD-ROM and DVD, magneto-optical media such as flexible optical discs, media and hardware devices specifically configured for store and execute program instructions such as ROM, RAM, flash memory and the like. The hardware device can be configured to function as one or more software modules for carrying out the process according to the present invention, and vice versa.
[0201] Industrial applicability
[0202] The present invention can be applied to electronic devices that have the ability to encode / decode a video.
权利要求:
Claims (15)
[1]
1. A method to decode a video, comprising the method:
decode information that indicates if there is a non-zero transformation coefficient in a current block;
when the information indicates that the non-zero transformation coefficient exists in the current block, determine a scan order of the current block; Y
decode a transformation coefficient included in the current block according to the determined scan order.
[2]
2. The method according to claim 1, wherein the information is signaled in a unit of a sub-block within the current block.
[3]
3. The method according to claim 2, wherein a size or shape of the sub-block is adaptively determined according to a size or shape of the current block.
[4]
4. The method according to claim 1, wherein the information is signaled in a predetermined unit and the predetermined unit is determined based on a number of samples.
[5]
The method according to claim 4, wherein if the current block comprises more samples than the number of samples corresponding to the predetermined unit, the current block is divided into a plurality of regions according to the predetermined unit and the information is sign for each of the plurality of regions.
[6]
The method according to claim 1, wherein one of a plurality of candidates is determined to the scan order as the scan order of the current block, and
wherein a type or a number of the plurality of candidates in the scan order is different according to a size or shape of the current block.
[7]
The method according to claim 1, wherein the scan order of the current block is determined to be the same as the scan order of a top block that includes the current block and a plurality of blocks included in the top block It has the same scanning order.
[8]
8. A method to encode a video, comprising the method:
encoding information that indicates if there is a non-zero transformation coefficient in a current block according to whether the non-zero transformation coefficient exists in the current block;
when the non-zero transformation coefficient exists in the current block, determine a scan order of the current block; Y
to have a transformation coefficient included in the current block according to the determined scanning order.
[9]
9. The method according to claim 8, wherein the information is coded in a unit of a sub-block within the current block.
[10]
The method according to claim 8, wherein a size or shape of the sub-block is adaptively determined according to a size or shape of the current block.
[11]
The method according to claim 8, wherein the information is signaled in a predetermined unit and the predetermined unit is determined based on a number of samples.
[12]
The method according to claim 11, wherein if the current block comprises more samples than the number of samples corresponding to the predetermined unit, the current block is divided into a plurality of regions according to the predetermined unit and the information is sign for each of the plurality of regions.
[13]
The method according to claim 8, wherein one of a plurality of candidates is determined to the scan order as the scan order of the current block, and
in which a type or a number of the plurality of candidates in the order of Scanning is different according to a size or shape of the current block.
[14]
The method according to claim 8, wherein the scan order of the current block is determined to be the same as the scan order of a top block that includes the current block and a plurality of blocks included in the top block It has the same scanning order.
[15]
15. An apparatus for decoding a video, the apparatus comprising:
an entropy decoding unit for decoding information indicating whether there is a non-zero transformation coefficient in a current block, to determine a scan order of the current block when the information indicates that the non-zero transformation coefficient exists in the current block and to decode a transformation coefficient included in the current block according to the determined scanning order.
类似技术:
公开号 | 公开日 | 专利标题
ES2800509B1|2021-12-21|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNALS
ES2739668B1|2021-12-03|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNALS
ES2711474A2|2019-05-03|Method and device for processing video signal
US20210337197A1|2021-10-28|Method and apparatus for processing video signal
ES2710234B1|2020-03-09|Procedure and device for processing video signals
ES2737874B2|2020-10-16|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL
US10904581B2|2021-01-26|Method and apparatus for processing video signal
ES2699691A2|2019-02-12|Video signal processing method and device
ES2677193B1|2019-06-19|Procedure and device to process video signals
ES2699723A2|2019-02-12|Video signal processing method and device
ES2699749B2|2020-07-06|Method and apparatus for processing a video signal
ES2737845B2|2021-05-19|METHOD AND APPARATUS TO PROCESS VIDEO SIGNAL
ES2703458A2|2019-03-08|Video signal processing method and device
ES2711230A2|2019-04-30|Method and apparatus for processing video signal
ES2711209A2|2019-04-30|Method and device for processing video signal
US20210195189A1|2021-06-24|Method and apparatus for processing video signal
ES2711223A2|2019-04-30|Method and device for processing video signal
同族专利:
公开号 | 公开日
ES2711209A8|2020-07-01|
CN109661819A|2019-04-19|
US20190215524A1|2019-07-11|
US11159812B2|2021-10-26|
US20220014770A1|2022-01-13|
ES2711209R1|2020-07-07|
EP3509301A1|2019-07-10|
WO2018044087A1|2018-03-08|
KR20180025283A|2018-03-08|
EP3509301A4|2020-04-22|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US9635368B2|2009-06-07|2017-04-25|Lg Electronics Inc.|Method and apparatus for decoding a video signal|
EP2991356B1|2009-10-01|2019-09-04|SK Telecom Co., Ltd.|Method and apparatus for encoding/decoding image using variable sized macroblocks|
EP2485490B1|2009-10-01|2015-09-30|SK Telecom Co., Ltd.|Method and apparatus for encoding/decoding image using split layer|
KR101479129B1|2009-10-01|2015-01-06|에스케이텔레콤 주식회사|Video Coding Method and Apparatus Using Variable size Macroblock|
CN102668565B|2009-10-21|2015-12-09|Sk电信有限公司|Image coding and decoding apparatus and method|
DK2947877T3|2010-04-23|2017-01-23|M&K Holdings Inc|Apparatus for encoding an image|
US8976861B2|2010-12-03|2015-03-10|Qualcomm Incorporated|Separately coding the position of a last significant coefficient of a video block in video coding|
US9042440B2|2010-12-03|2015-05-26|Qualcomm Incorporated|Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding|
US20120163472A1|2010-12-22|2012-06-28|Qualcomm Incorporated|Efficiently coding scanning order information for a video block in video coding|
US20120163456A1|2010-12-22|2012-06-28|Qualcomm Incorporated|Using a most probable scanning order to efficiently code scanning order information for a video block in video coding|
US9049444B2|2010-12-22|2015-06-02|Qualcomm Incorporated|Mode dependent scanning of coefficients of a block of video data|
US11102494B2|2011-03-03|2021-08-24|Electronics And Telecommunication Research Institute|Method for scanning transform coefficient and device therefor|
WO2012118358A2|2011-03-03|2012-09-07|한국전자통신연구원|Method for scanning transform coefficient and device therefor|
EP2727355A1|2011-06-29|2014-05-07|Motorola Mobility LLC|Methods and system for using a scan coding pattern during intra coding|
US9826238B2|2011-06-30|2017-11-21|Qualcomm Incorporated|Signaling syntax elements for transform coefficients for sub-sets of a leaf-level coding unit|
WO2013062194A1|2011-10-24|2013-05-02|인터앱|Method and apparatus for generating reconstructed block|
MX338990B|2011-10-24|2016-05-09|Infobridge Pte Ltd|Image decoding apparatus.|
US9621894B2|2012-01-13|2017-04-11|Qualcomm Incorporated|Determining contexts for coding transform coefficient data in video coding|
US9124872B2|2012-04-16|2015-09-01|Qualcomm Incorporated|Coefficient groups and coefficient coding for coefficient scans|
US10666940B2|2014-11-06|2020-05-26|Samsung Electronics Co., Ltd.|Video encoding method and apparatus, and video decoding method and apparatus|
KR20180007680A|2016-07-13|2018-01-23|한국전자통신연구원|Method and apparatus for encoding and decoding image|US11032543B2|2019-03-22|2021-06-08|Tencent America LLC|Method and apparatus for video coding|
WO2021018166A1|2019-07-29|2021-02-04|Beijing Bytedance Network Technology Co., Ltd.|Scanning order improvements for palette mode coding|
WO2021036979A1|2019-08-24|2021-03-04|Beijing Bytedance Network Technology Co., Ltd.|Residual coefficients coding|
法律状态:
2019-04-30| BA2A| Patent application published|Ref document number: 2711209 Country of ref document: ES Kind code of ref document: A2 Effective date: 20190430 |
2020-07-07| EC2A| Search report published|Ref document number: 2711209 Country of ref document: ES Kind code of ref document: R1 Effective date: 20200630 |
优先权:
申请号 | 申请日 | 专利标题
KR20160112005|2016-08-31|
KR20160112006|2016-08-31|
KR20160112126|2016-08-31|
PCT/KR2017/009524|WO2018044087A1|2016-08-31|2017-08-31|Method and device for processing video signal|
[返回顶部]