WO2018174593A1 - 적응적인 화소 분류 기준에 따른 인루프 필터링 방법 - Google Patents
적응적인 화소 분류 기준에 따른 인루프 필터링 방법 Download PDFInfo
- Publication number
- WO2018174593A1 WO2018174593A1 PCT/KR2018/003352 KR2018003352W WO2018174593A1 WO 2018174593 A1 WO2018174593 A1 WO 2018174593A1 KR 2018003352 W KR2018003352 W KR 2018003352W WO 2018174593 A1 WO2018174593 A1 WO 2018174593A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- tile
- sample
- block
- offset
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Definitions
- the present invention relates to an in-loop filtering method according to an adaptive pixel classification criterion, and more particularly, to classify reconstructed samples according to an absolute classification criterion or a relative classification criterion, and to adaptively set an offset value according to the classified result.
- a method of filtering a reconstructed sample by adding to the reconstructed sample is a method of filtering a reconstructed sample by adding to the reconstructed sample.
- a sample adaptive offset is proposed for an in-loop filter according to the existing video compression standard technology (HEVC), and by adding an offset value for a reconstructed pixel (or sample), a reconstructed image is added. The error between the image and the original image is minimized.
- HEVC video compression standard technology
- the existing sample adaptive offset is divided into an edge offset and a band offset to determine an adaptive offset value according to a reconstructed sample. Specifically, an edge and a reconstructed pixel formed around the reconstructed pixel belong to an adaptive offset value.
- the offset value is adaptively used according to the pixel band.
- An object of the present invention for solving the above problems is to provide an in-loop filtering method according to the adaptive pixel classification criteria.
- An in-loop filtering method based on an adaptive pixel classification criterion in an image decoding apparatus may include: classifying a reconstructed sample according to an absolute classification criterion or a relative classification criterion, obtaining offset information based on a result of classifying the reconstructed sample; The method may include adding an offset value to the reconstructed sample with reference to the obtained offset information, and outputting a reconstructed sample to which the offset value is added.
- the classifying the reconstructed sample may include classifying the reconstructed sample according to a band to which the brightness value of the reconstructed sample belongs, if a classification criterion is the absolute classification.
- the classifying the reconstructed sample may include classifying at least one of edge information and gradient information derived by comparing pixel values of the reconstructed sample and pixel values of neighboring samples adjacent to the reconstructed sample when a classification criterion is the relative classification. Classifying the reconstructed sample based on the reconstruction.
- the error of the reconstructed image can be more precisely corrected.
- an offset may be applied according to characteristics of each reconstructed image.
- FIG. 1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
- FIG. 2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
- FIG. 3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
- 4A to 4C are exemplary views illustrating blocks, tiles, and slices that are sub areas used by the image encoding / decoding apparatus according to an embodiment of the present invention.
- FIG. 5 is an exemplary diagram for generating a slice by a bundle of consecutive blocks according to a scan order according to an embodiment of the present invention.
- 6A through 6D are exemplary diagrams illustrating tiles and basic coding units in a picture.
- 7 is a source code that explicitly handles information set when encoding or decoding is performed on a tile basis.
- FIG. 8 is an exemplary diagram for explaining a sample pixel to which a sample adaptive offset is applied according to a relative classification according to an embodiment of the present invention.
- FIG. 9 is an exemplary diagram for describing a category classified according to an edge in a relative classification according to an embodiment of the present invention.
- FIG. 10 is an exemplary diagram for describing a method of assigning an offset value to a block to which a sample adaptive offset is applied according to a relative classification according to an embodiment of the present invention.
- 11 is an exemplary diagram for describing a method of performing sample adaptive offset according to an absolute classification according to an embodiment of the present invention.
- FIG. 12 is an exemplary diagram of a method of generating various band information according to an embodiment of the present invention.
- FIG. 13 is a source code for describing a syntax used for a sample adaptive offset based on a relative classification and an absolute classification according to an embodiment of the present invention.
- FIG. 14 is a flowchart illustrating a method of performing sample adaptive offset according to an absolute classification or a relative classification according to an embodiment of the present invention.
- first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
- the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
- an image may be composed of a series of still images, and the still images may be classified into a group of pictures (GOP), and each still image is referred to as a picture or a frame. can do.
- a unit such as a GOP or a sequence may exist, and each picture may be divided into predetermined regions such as a slice, a tile, a block, and the like.
- one GOP may include units such as an I picture, a P picture, and a B picture.
- An I picture may refer to a picture that is encoded / decoded by itself without using a reference picture, and a P picture and a B picture use a reference picture to perform a process such as motion estimation and motion compensation.
- I picture and P picture can be used as reference picture
- I picture and P picture can be used as reference picture
- B picture I picture and P picture can be used as reference picture, but the above definition is also changed by the setting of encoding / decoding. Can be.
- the picture referred to for encoding / decoding is referred to as a reference picture, and the referred block or pixel is referred to as a reference block and a reference pixel.
- the reference data may be not only pixel values of a spatial domain but also coefficient values of a frequency domain and various encoding / decoding information generated and determined during an encoding / decoding process.
- the minimum unit constituting the image may be a pixel, and the number of bits used to represent one pixel is referred to as a bit depth.
- the bit depth may be 8 bits and may support different bit depths according to encoding settings.
- the bit depth may support at least one bit depth according to a color space.
- at least one color space may be configured according to a color format of an image. It may consist of one or more pictures with a certain size or one or more pictures with other sizes, depending on the color format. For example, in the case of YCbCr 4: 2: 0, it may be composed of one luminance component (Y in this example) and two chrominance components (Cb / Cr in this example).
- the composition ratio may have a length of 1: 2.
- 4: 4: 4 may have the same ratio of width and length.
- the setting independent of each color space may mean having a setting of the corresponding color space irrespective of the composition ratio of each component or independently. In the present invention, depending on the encoder / decoder, some components may have independent settings or dependent settings.
- Configuration information or syntax elements required in the video encoding process may be determined at the unit level of a video, sequence, picture, slice, tile, block, and the like, which are VPS (Video Parameter Set), SPS (Sequence Parameter Set), and PPS (Picture Parameter). Set), Slice Header, Tile Header, Block Header, etc., can be recorded in the bitstream and transmitted to the decoder.In the decoder, parsing is performed at the same level unit to restore the setting information transmitted from the encoder. Can be used for decoding process.
- Each parameter set has a unique ID value, and a lower parameter set may have an ID value of a higher parameter set to be referred to.
- the lower parameter set may refer to information of an upper parameter set having a matching ID value among one or more higher parameter sets.
- a unit corresponding to a case in which any one of the examples of the various units mentioned above includes one or more other units may be referred to as an upper unit, and the included unit may be referred to as a lower unit.
- each of the units may include the contents of the independent settings or the contents of the settings depending on the previous, subsequent or higher units.
- the dependent setting may be understood to indicate setting information of a corresponding unit as flag information (for example, 1 if a bit is 1 and 0 if not) according to a setting of a higher unit before and after.
- the setting information in the present invention will be described mainly on the example of the independent setting, but the example of adding or replacing the content of the relationship depending on the setting information of the previous or subsequent units or higher units of the current unit May be included.
- FIG. 1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
- the video encoding apparatus 105 and the decoding apparatus 100 may include a personal computer (PC), a notebook computer, a personal digital assistant (PDA), and a portable multimedia player (PMP). Player), PlayStation Portable (PSP: PlayStation Portable), wireless communication terminal (Wireless Communication Terminal), smart phone (Smart Phone), such as a user terminal such as a TV, or a server terminal such as an application server and a service server, etc.
- PC personal computer
- PDA personal digital assistant
- PMP portable multimedia player
- Player Portable
- PSP PlayStation Portable
- wireless communication terminal Wireless Communication Terminal
- smart phone Smart Phone
- a user terminal such as a TV
- server terminal such as an application server and a service server, etc.
- a communication device such as a communication modem for communicating with a wired / wireless communication network, a memory (memory 120, 125) for storing various programs and data for inter or intra prediction for encoding or decoding an image, and an operation by executing a program And various devices including processors (processors 110 and 115) for controlling.
- the image coded by the video encoding apparatus 105 into a bitstream is real-time or non-real-time through a wired or wireless network such as the Internet, a local area wireless communication network, a wireless LAN network, a WiBro network, a mobile communication network, or the like.
- the image decoding apparatus 100 may be transmitted to the image decoding apparatus 100 through various communication interfaces such as a universal serial bus (USB), and may be decoded by the image decoding apparatus 100 to restore and reproduce the image. Also, an image encoded in the bitstream by the image encoding apparatus 105 may be transferred from the image encoding apparatus 105 to the image decoding apparatus 100 through a computer-readable recording medium.
- USB universal serial bus
- FIG. 2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
- the prediction unit 200 the subtraction unit 205, the transformation unit 210, the quantization unit 215, and the inverse quantization unit 220.
- An inverse transform unit 225 an adder 230, a filter 235, an encoded picture buffer 240, and an entropy encoder 245.
- the prediction unit 200 may include an intra prediction unit performing intra prediction and an inter prediction unit performing inter prediction.
- Intra-prediction may configure an intra-prediction mode by configuring pixels of adjacent blocks of the current block as reference pixels, and generate a predictive block using the intra-prediction mode, and inter-prediction may generate one or more reference images.
- the prediction block may be generated by determining motion information of the current block using the motion information, and performing motion compensation using the motion information. Determine whether to use in-screen prediction or inter-screen prediction for the current block (coding unit or prediction unit), and determine specific information (e.g., intra-picture prediction mode, motion vector, reference) for each prediction method. Video, etc.).
- the processing unit for which the prediction is performed the processing method for which the prediction method and the details are determined may be determined according to the encoding / decoding setting. For example, a prediction method, a prediction mode, and the like are determined in a prediction unit (or coding unit), and the prediction is performed in a prediction block unit (or coding unit, transformation unit).
- the subtraction unit 205 subtracts the prediction block from the current block to generate a residual block. That is, the subtractor 205 calculates a difference between the pixel value of each pixel of the current block to be encoded and the predicted pixel value of each pixel of the prediction block generated by the predictor to generate a residual block that is a residual signal in the form of a block. .
- the converter 210 converts the residual block into the frequency domain to convert each pixel value of the residual block into a frequency coefficient.
- the transform unit 210 is a Hadamard transform, a discrete cosine transform based transform (DCT Based Transform), a discrete sine transform based transform (DST Based Transform), the Karunen Rube transform based transform (KLT Based)
- the residual signal can be transformed into the frequency domain by using various transformation techniques for transforming an image signal of a spatial axis into a frequency axis such as a transform, and the residual signal transformed into the frequency domain becomes a frequency coefficient.
- the quantization unit 215 quantizes the residual block having the frequency coefficient transformed by the transformer 210 into the frequency domain.
- the quantization unit 215 may quantize the transformed residual block using dead zone uniform threshold quantization, a quantization weighted matrix, or an improved quantization technique. This may include one or more quantization techniques as candidates and may be determined by coding mode, prediction mode information, and the like.
- the entropy encoder 245 scans the generated quantized frequency coefficient sequence according to various scan methods to generate quantized coefficient sequences, and various binarization methods for encoding information generated during the encoding process (fixed length binariation, Syntax elements are generated by unary binarization, rice binarization, k-th order exp-golomb, etc., and various entropy coding techniques (Context Adaptive Binary Arithmetic Coding (CABAC), Context Adaptive Variable Length) Coding (CAVLC) or the like is used for coding.
- CABAC Context Adaptive Binary Arithmetic Coding
- CAVLC Context Adaptive Variable Length Coding
- the scan pattern may be set to one of various patterns such as zigzag, diagonal lines, and rasters.
- the inverse quantization unit 220 inverse quantizes the residual block quantized by the quantization unit 215. That is, the quantization unit 220 inversely quantizes the quantized frequency coefficient sequence to generate a residual block having the frequency coefficient.
- the inverse transform unit 225 inversely transforms the residual block inversely quantized by the inverse quantization unit 220. That is, the inverse transformer 225 inversely transforms frequency coefficients of the inversely quantized residual block to generate a residual block having a pixel value, that is, a reconstructed residual block.
- the inverse transform unit 225 may perform inverse transform by using the transformed method used in the transform unit 210 as the inverse.
- the adder 230 reconstructs the current block by adding the prediction block predicted by the predictor 200 and the residual block reconstructed by the inverse transform unit 225.
- the reconstructed current block may be stored as a reference picture (or a reference block) in the decoded picture buffer 240 and may be referred to when encoding another block or picture.
- the filter unit 235 may include one or more post-processing filter processes such as a deblocking filter, a SAO, an adaptive loop filter (ALF), and the like.
- the deblocking filter may remove block distortion generated at the boundary between blocks in the reconstructed picture.
- the ALF may perform filtering based on a value obtained by comparing the reconstructed image with the original image after the block is filtered through the deblocking filter.
- the SAO restores the offset difference from the original image in units of pixels with respect to the residual block to which the deblocking filter is applied, and may be applied in the form of a band offset or an edge offset.
- Such a post-processing filter may be applied to the reconstructed picture or block.
- the encoded picture buffer 240 may store a block or a picture reconstructed by the filter unit 235.
- the reconstructed block or picture stored in the decoded picture buffer 240 may be provided to the predictor 200 that performs intra prediction or inter prediction.
- a divider may be further included, and may be divided into coding units having various sizes through a divider (more specifically, a block divider).
- the coding unit may be configured of a plurality of coding blocks (eg, one luminance coding block, two color difference coding blocks, etc.) according to a color format. For convenience of explanation, it is assumed that one color component unit is used.
- the coding block may have a variable size such as M ⁇ M (eg, M is 4, 8, 16, 32, 64, 128, etc.).
- the coding block may be M ⁇ N (eg, M and N may be 4, 8, 16, 32, 64, etc.) according to a division scheme (eg, tree-based division, quad tree division, binary tree division, etc.). 128, etc.).
- the coding block may be a unit that is the basis of intra prediction, inter prediction, transformation, quantization, entropy encoding, and the like.
- an asymmetric subblock for example, 4M ⁇ 4N is 3M ⁇ 4N / M ⁇ 4N or It may also be possible to apply to the case having 4M ⁇ 3N / 4M ⁇ N or the like).
- the asymmetric subblock may be supported by the information that is additionally determined according to the encoding / decoding setting to the partitioning scheme for obtaining the symmetric subblock.
- the division of the coding block M ⁇ N may have a recursive tree-based structure.
- whether to split may be indicated by a split flag (eg, quad tree split flag, binary split flag).
- a split flag eg, quad tree split flag, binary split flag.
- encoding of the coding block is performed in a coded block having a split depth k, and a split flag of a coding block having a split depth k is 1.
- encoding of a coding block is performed in four sub-coding blocks (quad tree partitioning) or two sub-coding blocks (binary tree partitioning) having a partition depth of k + 1 according to a partitioning scheme.
- the size of the block is (M >> 1) ⁇ (N >> 1) for four coded blocks, and (M >> 1) ⁇ N or M ⁇ (N >> 1) for two coded blocks.
- the sub coded block may be set again to a coded block k + 1 and divided into sub coded blocks k + 2 through the above process.
- one quadrature flag for example, a split flag
- at least one flag for example, two or more
- the split direction flag horizontal or vertical, may be omitted in some cases depending on the preceding higher or previous split result)).
- Block division may start from the largest coding block and proceed to the smallest coding block. Alternatively, it may start from the minimum division depth 0 and proceed to the maximum division depth. That is, partitioning may be performed recursively until the block size reaches the minimum coding block size or the splitting depth reaches the maximum splitting depth.
- the maximum coding block according to the sub / decoding setting for example, image ⁇ slice, tile> type ⁇ I / P / B>, encoding mode ⁇ Intra / Inter>, color difference component ⁇ Y / Cb / Cr>, etc.
- the size of, the size of the minimum coding block, and the maximum division depth may be adaptively set.
- quad tree splitting may be performed in the range of 8 ⁇ 8 to 128 ⁇ 128, and binary tree splitting is in the range of 4 ⁇ 4 to 32 ⁇ 32 and the maximum split depth is 3 Case may be performed.
- quad tree splitting may be performed in a range of 8 ⁇ 8 to 128 ⁇ 128, and binary tree splitting may be performed in a range of 4 ⁇ 4 to 128 ⁇ 128 and a maximum split depth of 3.
- the setting may be an I image type (for example, a slice) and in the latter case, a P or B image type.
- division settings such as a maximum coding block size, a minimum coding block size, a maximum division depth, and the like may be commonly or separately supported according to a division scheme and the aforementioned sub / decoding settings.
- partitioning is performed within a block support range of each partitioning scheme, and when a block support range of each partitioning scheme overlaps, a priority of partitioning schemes may exist. For example, quad tree split may precede binary tree split.
- it may be determined whether to perform a subsequent division according to the result of the preceding division. For example, when the result of the preceding division indicates that the division is performed, the subsequent division may not be performed, and the sub-coding block divided according to the preceding division may be set as the encoding block and division may be performed.
- the division when the result of the preceding division indicates that the division is not performed, the division may be performed according to the result of the subsequent division.
- the divided sub-coding block when the result of the subsequent division indicates that the division is to be performed, the divided sub-coding block may be set as the encoding block again to perform division, and when the result of the subsequent division indicates that the division does not perform further division Does not perform.
- the subsequent division result indicates that the division is performed and the divided sub-coding block is set as the encoding block again, when a plurality of division schemes are supported (for example, the block support range of each division scheme overlaps). In this case, only the following partition can be supported without performing the preceding partition. That is, when a plurality of division schemes are supported, when the result of the preceding division indicates that the division is not performed, it means that the previous division is not performed any more.
- the M ⁇ N coded block may first check the quad tree split flag when quad tree splitting and binary tree split are possible, and when the split flag is 1, (M >> 1) ⁇ (N >> 1
- the sub-coding block may be divided into four sub-coding blocks having a size) and the sub-coding block may be set as a coding block to perform partitioning (quad tree partitioning or binary tree partitioning). If the split flag is 0, the binary tree split flag can be checked, and if the split flag is 1, the binary tree split flag is divided into two sub-coded blocks having a size of (M >> 1) ⁇ N or M ⁇ (N >> 1).
- the sub-coded block may be set as a coded block again to perform partitioning (binary tree partitioning). If the division flag is 0, the division process is terminated and encoding is performed.
- a division scheme such as quad tree / binary tree / quad tree + binary tree may be used.
- the basic partitioning method may be set as a quad tree method
- an additional partitioning method may be set as a binary tree method, and information on whether to support the additional partitioning method is implicitly determined, or explicitly, a unit such as a sequence, picture, slice, or tile. Can be included.
- the information related to the division such as the size information of the coding block, the support range of the coding block, the maximum division depth, and the like, may be implicitly determined or included in a unit such as a sequence, a picture, a slice, a tile, or the like.
- the allowable block range may be determined by the size of the largest coding block, the supported block range, the maximum division depth, and the like.
- the coding block obtained by performing the division through the above process may be set to a maximum size of intra prediction or inter prediction. That is, the coded block after block division may be the start size of the partitioning of the prediction block for intra prediction or inter prediction.
- the prediction block may have sizes of 2M ⁇ 2N and M ⁇ N smaller than or equal to that.
- the size may be 2M ⁇ 2N, 2M ⁇ N, M ⁇ 2N, or M ⁇ N. Or, it may have a size of 2M ⁇ 2N with the same size as the coding block.
- the coding block and the prediction block have the same size may mean that the prediction is performed by the size obtained through the partitioning of the coding block without partitioning the prediction block. In other words, it means that split information for the prediction block is not generated.
- Such a setting may also be applied to a transform block, and the transform may be performed in units of split coding blocks.
- At least one prediction block and at least one transform block may be obtained based on the coding block (after the encoding block is determined).
- one prediction block having the same size as the coding block may be obtained, and at least one transform block may be obtained based on the coding block.
- one prediction block and one transform block having the same size as the coding block may be obtained.
- partition information of each block may be generated (generated). When one block is obtained, partition information of each block does not occur.
- Square or rectangular blocks of various sizes obtained according to the result may be blocks used for intra prediction or inter prediction, may be blocks used for transforming and quantizing residual components, and may be blocks for reconstructed pixels. It may be a block used for filtering.
- the unit (for example, SAO, etc.) of the block to which the reconstruction pixel filtering is applied may have a maximum coding block (for example, M ⁇ M) as a basic unit, but as described above, various block sizes and shapes (E.g., M x N, M / 2 x M / 2, N x N / 2, etc.) a coding block (e.g., a coding block obtained according to block division, etc.) or separately a unit called a filter block Filtering may be applied on a per-unit basis. This means that filtering related information is generated in units of blocks.
- a maximum coding block for example, M ⁇ M
- various block sizes and shapes E.g., M x N, M / 2 x M / 2, N x N / 2, etc.
- a coding block e.g., a coding block obtained according to block division, etc.
- a filter block Filtering may be applied on a per-unit basis. This means that filtering
- the division unit may further include a picture division unit in addition to the block division unit that performs the above-described block division.
- the picture divider may divide a picture into at least one processing unit (for example, color space ⁇ YCbCr, RGB, XYZ, etc.>, slice, tile, block, etc.), and the block divider may be a maximum (or basic) coding unit. May be divided into at least one processing unit (eg, encoding, prediction, transform, quantization, entropy, in-loop filter unit, etc.).
- a tile refers to a rectangular region obtained by dividing one picture in a horizontal and vertical direction as a set of coding blocks
- a slice refers to a region consisting of a set of consecutive coding blocks according to a scanning order of coding blocks.
- At least one color space may be configured according to the color format of the image.
- it may be composed of one luminance component and two color difference components.
- the width and height ratios of the color components may be determined according to the color format.
- the width and length of the color difference component may be 1/2 of the width and length of the luminance component
- the width and length of the color difference component may have the same length as the luminance component.
- the picture may be divided into each color space.
- the color space may be divided into the largest coding blocks.
- the picture may be divided into at least one tile.
- at least one tile may be obtained by dividing the picture into horizontal columns (or vertical columns) and dividing the pictures into vertical columns (or horizontal columns).
- each tile may be divided into at least one tile segment.
- each tile segment may be divided into maximum coding units.
- the picture may be divided into at least one slice.
- Each slice may be divided into at least one slice segment.
- each slice segment may be divided into maximum coding units.
- Some of the units may not necessarily be included, some or all may be selectively included according to the setting of the encoding / decoding, and additional units may be included.
- the basic coding units obtained through the picture splitter may be divided into basic coding blocks according to color spaces, and sizes and shapes may be determined according to characteristics and resolutions of an image.
- Supported block sizes or shapes are N ⁇ N squares (2n ⁇ 2n. 256 ⁇ 256, 128 ⁇ 128, 64 ⁇ 64, 32 ⁇ 32), whose width and length are represented by an exponential power of 2 (2 n ).
- 16 ⁇ 16, 8 ⁇ 8, 4 ⁇ 4, etc. n may be an integer between 2 and 8), or an M ⁇ N rectangular shape (2m ⁇ 2n).
- the input image may be divided into sizes such as 256 ⁇ 256 for a high resolution 8k UHD video, 128 ⁇ 128 for a 1080p HD video, and 16 ⁇ 16 for a WVGA video.
- Information about the size or shape of the block may be stored in a bitstream and transmitted in units of a sequence, a picture, a slice, a tile, and the like, which may be parsed by a decoder to restore related information.
- FIG. 3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
- the image decoding apparatus 30 may include an entropy decoder 305, a predictor 310, an inverse quantizer 315, an inverse transformer 320, an adder and subtractor 325, and a filter 330. And a decoded picture buffer 335.
- the prediction unit 310 may be configured to include an intra prediction module and an inter prediction module.
- the entropy decoder 305 may receive a quantization coefficient sequence, a transform coefficient sequence, a signal sequence, or the like from the bitstream transmitted from the image encoding apparatus 20 and decode the entropy decoding technique (CABAC, CAVLC, etc.).
- CABAC entropy decoding technique
- CAVLC CAVLC
- the prediction unit 310 may generate a prediction block based on the data transferred from the entropy decoding unit 305.
- the predictor 310 performs the same process as the predictor 200 of the image encoding apparatus 20 described above.
- the inverse quantizer 315 may inverse quantize the quantized transform coefficients provided in the bitstream and decoded by the entropy decoder 305.
- the inverse transform unit 320 may generate a residual block by applying inverse transform techniques of inverse DCT, inverse integer transform, or the like to a transform coefficient.
- the inverse quantization unit 315 and the inverse transform unit 320 perform the processes performed by the transform unit 210 and the quantization unit 215 of the image encoding apparatus 20 described above, and may be implemented in various ways. have.
- the same process and inverse transform shared with the transform unit 210 and the quantization unit 215 may be used, and information about the transform and quantization process from the image encoding apparatus 20 (for example, transform size and transform). Shape, quantization type, etc.) may be used to reverse the transform and quantization processes.
- the residual block that has undergone inverse quantization and inverse transformation may be added to the prediction block derived by the prediction unit 310 to generate an image block reconstructed. This addition can be made by the adder and subtractor 325.
- the filter 330 may apply a deblocking filter to the reconstructed image block to remove blocking if necessary, and may further add other loop filters to improve video quality before and after the decoding process. Can also be used.
- the reconstructed and filtered image block may be stored in the decoded picture buffer 335.
- the image decoding apparatus 30 may further include a divider.
- the divider may include a picture divider and a block divider.
- the division part may be easily understood by a person skilled in the art in the same or corresponding configuration as that of the video encoding apparatus of FIG. 2, and thus a detailed description thereof will be omitted.
- an input pixel value may be different from an output pixel value, and an adjustment of a pixel value may be performed to prevent distortion due to an operation error.
- the pixel value adjusting method is a process of adjusting a pixel value exceeding a range of pixel values within a range of pixel values, and may be referred to as clipping.
- Table 1 is an example code for a clipping function Clip_x in which pixel value adjustment is performed.
- the input pixel value pixel_val and the minimum value min I and the maximum value max I of the allowable pixel value range may be input as parameters of the clipping function Clip_x.
- the minimum value min I may be 0
- the maximum value max I may be 2 bit_depth ⁇ 1.
- the range of pixel values is determined according to the bit depth, but the pixel values constituting the image (for example, picture, slice, tile, block, etc.) are different depending on the type and characteristics of the image, so all pixel value ranges must be used. It does not happen within.
- the range of pixel values constituting the actual image may be used in the image encoding / decoding process.
- the minimum value min I of the clipping function may be used as the smallest value among the pixel values constituting the actual image, and the maximum value of the clipping function max I is the actual image.
- the largest value among the pixel values constituting the L may be used.
- the image encoding / decoding apparatus may include a pixel value adjusting method based on a bit depth and / or a pixel value adjusting method based on a pixel value range constituting an image.
- flag information for deciding whether to support an adaptive pixel value adjusting method may be supported.
- pixel value adjusting method selection information may be generated, and '0'.
- a preset pixel value adjustment method in this example, a method based on bit depth
- the pixel value related information of the image may be included. For example, it may be an example of information on minimum and maximum values of each image according to color components, and a median value described later.
- Information generated in relation to pixel value adjustment may be recorded and transmitted in units of video, sequence, picture, slice, tile, block, etc. of the encoder, and information related to the decoder may be parsed to restore related information in the same unit. have.
- the range of the pixel value including the minimum value and the maximum value of the pixel value is changed (determined or defined) by adjusting the pixel value based on the bit depth or adjusting the pixel value based on the range of pixel values constituting the image through the above process. Additional pixel value range information may also be changed (determined or defined). For example, the maximum and minimum values of the pixel values constituting the actual image may be changed, and the median value of the pixel values constituting the actual image may also be changed.
- minI may mean the minimum pixel value of the image
- maxI may mean the maximum pixel value of the image
- I may mean the color component
- medianI may mean the center pixel value of the image.
- minI may be 0, maxI may be (1 ⁇ bit_depth) -1, medianI may be 1 ⁇ (bit_depth-1), and median may be obtained in other forms including the above example according to a negative / decoding setting.
- the median value is only one term for explanation in the present invention and may be one piece of information indicating pixel value range information that may be changed (determined or defined) according to the pixel value adjustment process in the image encoding / decoding process.
- minI may be the minimum pixel value of the image
- maxI may be the maximum pixel value of the image
- medianI may be the center pixel value of the image.
- the medianI may be an average of pixel values in the image, a value located at the center when aligning pixels of the image, and a value obtained according to pixel value range information of the image.
- At least one minI, maxI medianI can be derived. That is, medianI may be one pixel value existing within the pixel value range of the image.
- medianI is the pixel value range of the image such as (minI + maxI) / 2 or (minI + maxI) >> 1, (minI + maxI + 1) / 2, (minI + maxI + 1) >> 1, etc. It may be a value obtained according to information (minI, maxI in this example), and median may be obtained in other forms including the above example according to a negative / decoding setting.
- the basic bit depth is 8 bits (0 to 255) and the pixel value adjusting process based on the range of pixel values constituting the image ⁇ in this example, the minimum value 10, the maximum value 190.
- the setting that is derived from the minimum value and the maximum value (average ), The median 100 ⁇ is selected, and if the current block position is the first block in the image (picture in this example), the neighboring block to be used for sub / decoding (left, bottom left, top left, top, top right) Since the reference pixel does not exist, the reference pixel may be filled with the median value 100.
- An intra prediction process may be performed according to a prediction mode using the reference pixel.
- the default bit depth is 10 bits (0 to 1023), and the pixel value adjustment process based on the range of pixel values constituting the image (in this example, the median 600. Related syntax elements are present) is selected, and the position of the current block is In the case of the first block in the image (slice, tile in this example), there is no neighboring block (left, bottom left, top left, top, top right in this example) to be used for sub / decoding, so the reference pixel is the median 600.
- the intra-prediction process may be performed according to a prediction mode using the reference pixel.
- the basic bit depth is 10 bits
- a pixel value adjustment process in this example, a median 112. related syntax element is present
- the encoding mode intra prediction / intra prediction
- the encoding mode is enabled (in this example, when the encoding mode of the block is intra prediction, it can be used as a reference pixel of the current block) Not available for inter prediction. If this setting is deactivated, it can be used as a reference pixel of the current block regardless of the encoding mode of the corresponding block.
- the related syntax element is constrained_intra_pred_flag and can occur in P or B image type. If the current block is located on the left side of the image, neighboring blocks (left, bottom left, top left in this example) to be used for sub / decoding are present. If there is a neighboring block (upper and upper right in this example) to be used for encoding / decoding, but the reference mode is not available because the encoding mode of the block is inter-screen prediction, use is prohibited by the above setting. Can be filled with a median (112 in this example). That is, since there is no reference pixel available, it may be filled with the median value of the image pixel value range. An intra prediction process may be performed according to a prediction mode using the reference pixel.
- the prediction unit has shown various cases related to the median value, but this may be included in another configuration of video encoding / decoding.
- the present invention is not limited only to the above embodiments and may be modified and expanded in various cases.
- the pixel value adjustment process may be applied to the encoding / decoding process of the prediction unit, the transformation unit, the quantization unit, the inverse quantization unit, the inverse transformation unit, the filter unit, and the memory.
- the input pixel in the pixel value adjusting method may be a reference sample or a prediction pixel in a prediction process, and a reconstructed sample in a transform, quantization, inverse transform, and inverse quantization process. May be).
- the pixel may be a reconstructed pixel in the in-loop filter process, or may be a storage pixel in the memory.
- the reconstructed pixel in the transformation, quantization, and vice versa may refer to the reconstructed pixel before the in-loop filter is applied.
- the reconstructed pixel in the in-loop filter may mean a reconstructed pixel after applying the in-loop filter.
- the reconstructed pixel in the deblocking filter process may mean a reconstructed pixel after the deblocking filter is applied.
- the reconstructed pixel in the SAO process may mean a reconstructed pixel after applying the SAO.
- the reconstructed pixel in the ALF process may mean a reconstructed pixel after applying the ALF. Examples of the various cases as described above have been described, but the present invention is not limited thereto and may be applied in the input, middle, and output stages of all the sub / decoding processes in which the pixel value adjusting process is called.
- 4A to 4C are exemplary views illustrating blocks, tiles, and slices that are sub areas used by the image encoding / decoding apparatus according to an embodiment of the present invention.
- the block may be a basic coding unit (or maximum coding unit) obtained through the picture splitter, and this may be a unit applied to a tile, a slice, and the like.
- a tile obtained by dividing a picture in at least one of a vertical direction and a horizontal direction may be confirmed.
- a tile may perform decoding / decoding independently of other areas (such as other tiles) or partially dependent decoding / decoding.
- the tile may consist of a bundle of spatially adjacent blocks (in this example, the width T_W0 and height T_H0 of the first tile, the width T_W1 and height T_H1 of the second tile).
- one tile may be one picture.
- a slice obtained by dividing a picture into a bundle of consecutive blocks may be checked.
- a slice may perform encoding / decoding independently of other regions (or other slices) or may perform partially dependent encoding / decoding.
- the bundle of contiguous blocks may be determined according to the scanning order, and generally following the raster scan order, but this may be defined according to the setting of the decoder / decoder. When all blocks present in a picture are configured in one bundle, one slice may be one picture.
- FIG. 5 is an exemplary diagram for generating a slice by a bundle of consecutive blocks according to a scan order according to an embodiment of the present invention.
- the decoding / decoding in the picture may follow the raster scan order, but may be applied alternatively from at least one scan order candidate group, which may be defined according to the encoding / decoding setting.
- the scan order may include determining a starting point of a scan, determining a first scan order according to one of left and right directions and up and down directions based on the starting point of the scan, and a direction not determined in the first scan order (left, right,
- the second scan order may be determined according to the other one of the top and bottom.
- the scan start point may be one of an upper left, an upper left, an upper right, and an upper right of a reference region such as a picture.
- the upper leftmost point of a picture is set as a scan start point, a direction of moving from left to right in the first scanning order, and moves from top to bottom in the second scanning order. You can see an example of setting the direction.
- the raster scan may be a scan sequence according to FIG. 5A, wherein concatenating consecutive blocks in this order may include a first slice S0, a second slice S1, a third slice S2, and a fourth slice S3. ) Can be obtained.
- FIG. 5B an example in which an uppermost left point of a picture is set as a scan start point, a direction to move up and down in a first scan order, and a direction to move from left to right in a second scan order are set. You can check.
- the consecutive blocks are bundled according to the scanning sequence according to FIG. 5B, the first slice S0, the second slice S1, the third slice S2, and the fourth slice S3 having different shapes from those of FIG. 5A may be combined. Can be obtained.
- 6A through 6D are exemplary diagrams illustrating tiles and basic coding units in a picture.
- tiles may be formed by dividing pictures into at least one vertical column and at least one horizontal column, and encoding / decoding may be performed on a tile basis.
- a picture may be divided into tiles by a column boundary (inner boundary b1 and b2) and a column boundary (inner boundary b5).
- Tiles are regions enclosed by one or more of the column boundaries (internal boundaries b1, b2) and one or more of the column boundaries (internal boundaries b5). If the image is located outside the image, the boundary of the columns (external boundary b0, b3) and the boundary of the columns (external boundary b4, b6) may be additionally considered.
- Tiles obtained through the above process may have a rectangular shape and may have a square shape according to the setting of the encoder / decoder for the characteristics, the format, and the like of the image.
- a tile formed by dividing a picture into a column boundary and a column boundary may include a plurality of blocks.
- the column boundary and the column boundary for dividing the picture pass along the boundary of neighboring blocks and thus do not divide each block.
- each tile may include integer blocks. If a tile is not composed of an integer number of blocks, the expansion may be performed to enable an integer number of blocks in a picture or tile that is a higher unit. Therefore, while the processing is performed for each tile of the picture, each tile may be encoded / decoded in units of blocks.
- the segmentation information for the tile may be stored in the bitstream in units of sequences, pictures, and the like and transmitted.
- decoding a picture parsing information about a tile is parsed from units such as a sequence and a picture, and decoding is performed for each tile to reconstruct each area of the picture, and reconstructing each area as a single picture using the split information about the tile. Can be.
- encoding / decoding may be performed by dividing into one or more tiles in order to process a large amount of data of an image having a high resolution in real time.
- setting information necessary for the encoding / decoding process of each tile may be allocated in an upper unit (eg, a picture PPS).
- an upper unit eg, a picture PPS
- one piece of decoding / decoding configuration information may be referred to in the PPS without generating and transmitting header information separately for each tile unit.
- additional information may be stored and transmitted in higher units such as a video, a sequence, a picture, and the like.
- the additional information may be at least one piece of encoding / decoding setting information necessary for the part / decoding process of a tile unit.
- split information and additional information about a tile may be recorded and transmitted on a tile basis. This is different from following the decoding / decoding setting determined in the upper unit in that the encoding / decoding can be performed by setting the decoding / decoding in units of tiles. In detail, there is a difference from following one encoding / decoding set determined in the upper unit.
- header information may be generated and transmitted separately for each tile unit, or one or more sub / decoding configuration information may be referred to in the PPS.
- the PPS may include one or more configuration information candidate groups for encoding / decoding in units of tiles.
- the setting information for the encoding / decoding of a tile unit includes a tile type (I / P / B), information about a picture list referred to by a tile, information about a quantization parameter (QP) of a tile, and a unit of a tile. It may include information necessary to encode / decode tiles, such as loop filtering control, scan order, and whether to decode / decode them.
- an initial block that starts encoding / decoding may vary according to a scan order determined in units of tiles.
- the numerals indicated in the blocks in FIG. 6A indicate the scanning order of the blocks in the tile, that is, the order in which they are processed to be encoded / decoded.
- 6A also shows an example in which one or more scan orders are applied to each tile.
- the scan order within the tile is determined according to the ⁇ scan start point / 1st scan order / 2nd scan order>, the first tile 60 is ⁇ top left / left-> right / up-> down.
- the second tile 61 is ⁇ top left / up-> down / left-> right>
- the third tile 62 is ⁇ right top / up-> down / right-> left>
- the fourth tile ( 63) is ⁇ right bottom / bottom-> up / right-> left>
- the fifth tile 64 is ⁇ right bottom / right-> left / bottom-> up>
- the sixth tile 65 is ⁇ right top It may have a scan order (or a min / decoding order) determined by / right-> left / up-> down>.
- Partitioning of tiles and tile segments is performed based on the first scan order (e.g., scan order of pictures, Z-scan order, etc.), and sub / decoding on tiles and tile segments is performed according to the first scan order.
- the first scan order e.g., scan order of pictures, Z-scan order, etc.
- sub / decoding on tiles and tile segments is performed according to the first scan order.
- encoding / decoding of tiles, blocks, etc. may be performed according to the scanning order of pictures.
- the dividing of the tile and the tile segment may be performed based on the first scan order, and the sub / decoding in the tile and the tile segment may be performed according to the second scan order (for example, an independent scan order in units of tiles).
- the second scan order may be the same or different according to each tile and tile segment.
- encoding / decoding is selectively performed in units of tiles. It can be seen that 0 or 1 indicating whether to perform encoding / decoding for each tile according to FIG. 6A is allocated. have.
- a tile on which no encoding / decoding is performed may be filled with data obtained from an arbitrary pixel or an area that has already been encoded / decoded.
- An arbitrary pixel is one pixel that belongs to a range of pixels that can be represented by a bit depth transmitted from a bitstream, and information about the pixel may be determined, recorded, and transmitted.
- the predetermined pixel is determined according to a common setting of a sub / decoder. It may be a pixel (eg, Min or Median or Max in the range of pixels).
- data obtained from neighboring tiles having completed decoding / decoding may be referred to encoding / decoding of a corresponding tile.
- the data of at least one pixel located at a boundary of an adjacent sub / decoding tile may be used in a manner of including the data of the at least one pixel in a temporary memory for the purpose of referring to the encoding / decoding of some regions belonging to the current tile. .
- encoding / decoding when performing encoding / decoding by converting an image of a three-dimensional space such as an omnidirectional image (or a 360-degree virtual reality image) into a two-dimensional space, for example, a format, a characteristic of an image determined in a higher unit,
- dividing (or dividing) into a plurality of units (or surfaces) according to the encoding / decoding settings such as the projection format it is considered that there is a spatial correlation between adjacent regions on the three-dimensional space.
- spatial correlation does not necessarily exist in units adjacent to two-dimensional space according to a setting arranged in the two-dimensional space of each unit (or surface) while performing spatial transformation (3D-> 2D).
- adjacent units may or may not exist in spatial correlation
- non-adjacent units may or may not exist in spatial correlation.
- This may refer to the data of the region where encoding / decoding has existed in which the spatial correlation exists according to how the spatial correlation exists through 360 degree image encoding / decoding setting information.
- a memory copy method of copying a predetermined area as it is obtained may be used, or a method of obtaining data through a series of conversion processes may be used.
- Quantization may be performed by applying independent quantization parameters such as QP0 to QP5 for each tile.
- the quantization parameter may be expressed through difference information with a QP set in a higher unit (picture, etc.) than the tile.
- tiles may be separated by boundary lines b7, and tile segments may be separated by boundary lines b1 to b4 and b7. As such, the tile and the tile segment may be obtained by boundary lines b0 to b8. In the case of the tile segment, the division is performed in the tile, and the split information may be generated accordingly.
- the column boundaries b1 and b2 may be continuous boundaries with b3 and b4, respectively, or may be discontinuous boundaries.
- tile segments T0 to T5 may be classified into dependent tile segments T1, T2, T4 and T5 and independent tile segments T0 and T3.
- information used or generated in texture encoding and entropy encoding for a given tile segment may be referred to for texture encoding and entropy encoding of another tile segment.
- information used or restored in parsing information and texture decoding in entropy decoding of a predetermined tile segment among dependent tile segments may be referred to for entropy decoding and source decoding of another tile segment.
- the tile segment will be described under the assumption that encoding / decoding is performed by setting the encoding / decoding in units of tiles.
- the information used or generated in the texture encoding and the entropy encoding for each tile segment is encoded independently without any reference to each other.
- decoding for entropy decoding and texture decoding of independent tile segments, parsing information and reconstruction information of other tile segments are not used at all.
- Information on whether the type of the tile segment is the dependent tile segment or the independent tile segment may be included in the tile segment header and transmitted.
- information about a tile segment type may be parsed from a tile segment header to determine whether to restore the current tile segment with reference to another tile segment or to decode independently of the other tile segment according to the tile segment type. have.
- header information of the tile segment header of the independent tile segment may be determined by referring to header information of the preceding tile segment.
- One tile may comprise at least one tile segment. If a tile includes only one tile segment, it may include an independent tile segment. In addition, one tile may further include at least one dependent tile segment subsequent to one independent tile segment and an independent segment. At least one tile segment included in one tile may be transmitted / received through the same access unit.
- 7 is a source code that explicitly handles information set when encoding or decoding is performed on a tile basis.
- tile_enabled_flag means a syntax element for whether to divide a tile.
- tile_enabled_flag is enabled (assuming 1), it means that the decoding / decoding is performed by dividing into two or more tiles and additional tile-related information can be checked.
- deactivated (assuming 0)
- the picture may be regarded as one tile and encoded / decoded in a picture unit (or slice unit).
- a value obtained by adding 1 to num_tile_rows_minus1 and num_tile_columns_minus1, respectively, means the number of tiles divided based on the horizontal direction and the vertical direction of the picture.
- information about the width and length of each tile may be additionally generated according to whether the tiles are divided equally or unevenly (signal indicating), and the width and length of each tile are the basic coding units. It can be expressed by the number of generated.
- loop_filter_across_tile_enabled_flag is a syntax element for applying an in-loop filter to tile boundaries. If loop_filter_across_tile_enabled_flag is enabled (assuming 1), the deblocking filter and in-loop filters supported by sub / decoder such as SAO and ALF can be performed on the tile boundary, and if disabled (assuming 0) In-loop filters such as deblocking filters, SAO, and ALF may not be performed. In this example, when loop_filter_across_tile_enabled_flag is enabled, this means that all in-loop filters such as deblocking filter, SAO, and ALF are activated. However, this is not limited to this and can be set for each in-loop filter individually. Or additional information about it (a signal indicating whether each in-loop filter is applied) may be generated.
- independent_tile_coding_setting_enabled_flag is a syntax element for supporting tile / decoding configuration information in units of tiles. If independent_tile_coding_setting_enabled_flag is enabled (assuming 1), independent encoding / decoding may be performed in units of tiles to perform encoding / decoding. For example, division / decoding may be performed by generating division information on a tile or setting information necessary in a decoding / decoding process on a tile basis. Or, it may refer to at least one encoding / decoding setting determined in the higher unit. In the case of being deactivated (assuming 0), the configuration information necessary for the encoding / decoding process of the tile may be allocated in a higher unit. In detail, reference may be made to one sub / decoding setting determined in an upper unit (eg, a picture).
- an upper unit eg, a picture
- tile_qp_offset_enabled_flag, tile_coding_skip_enabled_flag, tile_adaptive_scan_enabled_flag, etc. are additionally supported to determine the tile / decoding setting for each tile.
- the above syntax elements are syntax elements that indicate whether the QP setting for each tile unit, the application of encoding / decoding for each tile unit, and the scanning order for each tile unit are applied. Depending on whether each syntax element is activated (assuming 1), additional information related to each tile element may be generated.
- the tile_coding_skip_flag is a syntax element indicating whether to tile / decode the tile.
- the tile_coding_skip_flag When the tile_coding_skip_flag is activated, the tile_coding_skip_flag may be encoded or decoded when it is deactivated. Depending on whether tiles are decoded or decoded, it may be determined whether additional information related to the decoding / decoding setting for each tile is checked. When the tile_coding_skip_flag is activated (assuming 1), the information about the decoding / decoding setting for each tile unit is not checked. When the tile_coding_skip_flag is activated, the encoding / decoding setting information for the tile unit may be checked when it is deactivated (assuming 0).
- tile_type indicates the type of tile and may be determined as one of I / P / B.
- tile_scan_idx represents a scan order of tiles and may be determined as one of candidate groups for one or more scan orders.
- tile_qp_offset represents QP related information determined in units of tiles and may be configured as difference value information with the QP determined in higher units.
- syntax elements such as end_of_tile_flag and end_of_tile_segment_flag may be further configured.
- the above example is a partial example of the sub / decoding setting of a tile unit, and among the sub / decoding settings determined in a higher unit, it may be determined whether to apply to a tile as it is or to support a part independent of a tile.
- header information is generated in tile units and related information may be stored and transmitted.
- the above example shows some examples of tile / decoding settings in units of tiles, and other setting information necessary during the encoding / decoding process may be considered.
- the syntax elements mentioned in the above example can be encoded and transmitted in a bitstream through various methods of binarization (fixed length binarization, unary binarization, Rice binarization, Exp-Golomb binarization, etc.) Information can be restored.
- the information related to the encoding / decoding setting of the tile unit including the above-mentioned information may be explicitly generated, or the setting of the encoding / decoding may be determined implicitly according to the format, characteristics, etc. of the image determined in the higher unit. have.
- FIG. 8 is an exemplary diagram for explaining a sample pixel to which a sample adaptive offset is applied according to a relative classification according to an embodiment of the present invention.
- 9 is an exemplary diagram for describing a category classified according to an edge in a relative classification according to an embodiment of the present invention.
- the SAO is a technology to reduce image quality degradation caused by encoding / decoding settings such as QP during encoding / decoding.
- the SAO may perform a process of adding (or correcting with an offset) an offset value in units of samples (eg, pixels).
- the offset value may be determined according to a color component of the sample, a classification criterion (described later), a detailed classification criterion (described later), a (x, y) coordinate value of the sample, and the like.
- the SAO may be referred to as a post-processing filter or an in-loop filter or may be one of filtering methods included in the filter.
- the sample pixel to which SAO is applied may mean a reconstructed pixel generated by adding prediction information to a residual signal.
- in-loop filtering eg, SAO, ALF
- SAO in-loop filtering
- ALF in-loop filtering
- an offset value may be obtained based on the distortion between the input image and the reconstructed image.
- the offset information since a large amount of data is required to generate the offset information in units of sample pixels, the offset information may be generated in units of sets of samples. Therefore, classification criteria constituting a set of samples to which one offset information is applied need to be set. In this case, the classification criteria may be further subdivided into at least one detailed classification criteria.
- the classification criteria may include edge offset (EO), which is a classification according to whether the sample pixel has an edge, and band offset (Band Offset, BO), which is classification according to the band to which the sample pixel belongs. Offsets may be included.
- the detail offset may be additionally set according to the edge direction and the edge category.
- the band offset may further be set to the detailed classification criteria according to the band position.
- the setting may include the information in the encoder / decoder to determine the number and type of sub-classification criteria, additional sub sub-classifications, and the like.
- the setting of the offset may be determined according to factors such as slice / tile type (I / P / B), encoding mode, color component / space, block size and shape.
- the sample classification method according to an embodiment of the present invention may be classified into a relative classification and an absolute classification.
- Relative classification may be a method of classifying a sample based on the relativity (or correlation) between the sample to which the offset is applied and at least one neighboring sample, and absolute classification classifies the sample based on the characteristics of the sample itself to which the offset is to be applied. It may be a way to.
- the relative classification may be performed according to a determination result obtained based on two or more samples with respect to characteristics such as slope information and edge information between samples.
- the relative classification may be based on a current sample that has been encoded / decoded and at least one neighboring sample that has been encoded / decoded.
- a method of setting a current sample C_sample and neighboring samples N_sample1, N_sample2, ..., N_sample8 of the current sample may be checked.
- the current sample is classified according to the relationship between three samples set by the horizontal direction 86, the vertical direction 82, and the diagonal directions 80 and 84 with respect to the current sample C_sample. can do.
- the directions shown in FIG. 8 may also be referred to as an edge direction.
- the relative classification is applied according to the relationship between three consecutive samples centering on the current sample, three or more odd samples (5, 7, 9, etc.) are shown in the current sample shown in FIG. It can also be implemented by selecting in accordance with the direction (80, 82, 84, 86) is set as the center.
- a category is classified according to a relationship between three samples selected according to the plurality of directions 80, 82, 84, and 86 illustrated in FIG. 8, as shown in FIG. 9.
- a category determined by comparing pixel values between three samples may be identified, wherein a height of a graph means a pixel value of a sample, and a sample shown in the center is a current sample (C_sample).
- the sample at may be a neighbor sample (N_sample).
- a method of classifying categories by comparing pixel values of three samples may be referred to as category classification according to an edge formed according to three samples. Therefore, a method of setting offset information (or an offset value) for each category according to FIG. 9 may be referred to as an edge offset.
- Equation 1 refers to a case in which the current sample C_sample has a smaller pixel value than the neighboring samples N_sampleA and N_sampleB.
- the current sample is converted into the first category. Can be classified.
- Equations 2 and 3 refer to the case where the current sample C_sample has the same or smaller pixel value than the neighboring samples N_sampleA and N_sampleB. If Equation 2 or 3 is satisfied, the current sample may be classified into a second category.
- Equations 4 and 5 refer to the case where the current sample C_sample has the same or larger pixel value than the neighboring samples N_sampleA and N_sampleB. If Equation 4 or 5 is satisfied, the current sample may be classified into a third category (Category 3).
- Equation 6 refers to a case in which the current sample C_sample has a larger pixel value than neighboring samples N_sampleA and N_sampleB.
- the current sample is classified into a fourth category. Can be.
- the neighboring samples target two neighboring samples (referred to as N_sampleA and N_sampleB, respectively) selected in the direction according to FIG. 8, but two or more neighboring samples may be selected.
- a relative size relationship of pixel values is illustrated according to the first category (Category 1), the second category (Category 2), the third category (Category 3), and the fourth category (Category 4). You can check it.
- the offset information may be acquired and generated in a category unit (eg, all or part of a category may be an object, or an additional category not shown may be an object). Samples not classified in the first to fourth categories may be classified as samples to which an offset is not applied.
- the criteria for classifying the first to fourth categories may be preset in the encoding apparatus and the decoding apparatus, and as shown in FIG. 8, the encoding apparatus may be referred to as an edge direction to determine three sample pixels. Information indicating such directions is generated and transmitted to the decoding apparatus, and the decoding apparatus may receive the direction information. Taking the category according to FIG. 9 as an example, direction information indicating one of the first direction 80, the third direction 82, the fifth direction 84, and the seventh direction 86 according to FIG. 8 (or Referred to as edge direction information) may be generated.
- the offset information assumes that the current sample to be corrected is close to the average of the neighboring samples, and the sign of the offset in the category 1 and 2 should be positive, and the sign of the offset in the category 3 and 4 should be negative (-). Should be) Therefore, the offset information may be composed only of the absolute value of the offset value without omitting the sign of the offset value.
- a relative classification according to an embodiment of the present invention will be described based on the description of FIGS. 8 and 9 (defined as an edge-based classification among the relative classifications).
- a category may be classified by comparing pixel values of sizes between the current sample C_sample and neighboring samples N_sample1, N_sample2, ..., N_sample8 located near the current sample.
- the pixel value of the current sample is compared with eight neighboring samples (N_sample1, N_sample2, ..., N_sample8) located around the current sample, and the current sample is larger than the preset threshold number of times (or in all cases). If the current sample is large), the current sample may be classified into a first category.
- the pixel value of the current sample is compared with eight neighboring samples (N_sample1, N_sample2, ..., N_sample8) located around the current sample, and if the current sample is smaller than or equal to the preset threshold number (or in all cases). If the current sample is less than or equal to), the current sample can be classified into a second category.
- the pixel value of the current sample is compared with eight neighboring samples (N_sample1, N_sample2, ..., N_sample8) located around the current sample, and the current sample is greater than or equal to the preset threshold number of times (or in all cases). If the current sample is greater than or equal to), the current sample may be classified into a third category.
- the pixel value of the current sample is compared with eight neighboring samples (N_sample1, N_sample2, ..., N_sample8) located around the current sample. Can be classified into categories.
- a comparison between the current sample and four neighboring samples in the horizontal and vertical directions (N_sample2, N_sample4, N_sample5, N_sample7) may be performed, and the four samples diagonally adjacent to the current sample may be performed.
- a comparison between neighboring samples (N_sample1, N_sample3, N_sample6, N_sample8) may be performed.
- the first embodiment of the relative classification according to the embodiment of the present invention may determine the edge information of the current sample through comparison between neighboring samples (for example, four or eight described above) around the current sample. Can be.
- the offset information can generate signed offset or unsigned offset information, This can be determined according to the sub / decoder settings. For example, it is possible to generate unsigned offset information on the premise that the current sample to be corrected is close to a neighboring sample, or signed offset information if there is no such premise.
- signed offset information it is possible to set a high probability of occurrence of some signs (either + or-signs that make the current sample close to a neighboring sample) during entropy encoding / decoding, and vice versa. Can be set low.
- a difference between neighboring samples based on a current sample is greater than or equal to a predetermined value th_val, it may be classified as an impulse and classified into an additional category.
- the category is not classified according to any one of directions shown in FIG. 8, but a plurality of directions parallel to the directions according to FIG. 8 are further considered. Category can be classified.
- a category is classified by comparing pixel values between current samples and neighboring samples according to the horizontal direction 86 of FIG. 8, a sample determined according to a plurality of directions parallel to the horizontal direction 86.
- the pixel value comparison between them can be further performed.
- the direction passing over the eighth sample N_sample8 may be further considered.
- Equations 1 to 6 may be applied to at least a predetermined value (for example, two directions) among three horizontal directions including two horizontal directions 86 and two directions parallel to the horizontal direction 86 of FIG. 8. And when the pixel value comparison condition according to the description is satisfied, it may be classified into one of the first to fourth categories. In this case, when the pixel value comparison conditions according to Equations 1 to 6 and the description are satisfied in a direction less than a preset value, the current sample may not be classified into the category.
- the second embodiment of the relative classification it is possible to determine whether the edge in a plurality of directions, it may be referred to as a classification based on the two-dimensional edge information.
- Samples may be classified according to a second embodiment of relative classification according to an embodiment of the present invention, and offset information may be obtained and generated in units of categories according to the classification.
- the category information may be set implicitly or explicitly.
- a related syntax element (related to binarization) may be generated based on the information on the number of candidate groups of the entire category. In this example, the number of total pixels used for the classification process based on relativity is 5 and 9, but this may be determined according to the setting of the encoder / decoder.
- the pixel value of the current sample and the pixel value of the neighboring sample may be performed in consideration of the slope of the pixel value between the current sample and the neighboring samples shown in. Can be.
- categories may be classified as follows according to the pixel value gradient.
- Equation 7 to 9 it can be seen that the relation has a form in which the slope of the pixel value of the three samples along the direction of FIG. 8 increases. Therefore, if the relation between the current sample and the neighboring samples satisfies the relation of Equation 7, 8 or 9, it may be classified into the first category.
- Equation 10 to 12 it can be seen that the relation has a form in which the slope of the pixel values of the three samples along the direction of FIG. 8 decreases. Therefore, if the relation between the current sample and the neighboring samples satisfies the relation of Equation 10, 11 or 12, it may be classified into a second category.
- the size of the slope as well as the shape of the slope of the pixel value may be further considered.
- the pixel value gradient between the current sample and the neighboring samples may be increased, and the gradient value (for example, may be defined as a difference value between the pixel value of the current sample and the pixel value of the neighboring sample). ) May be classified into a first category when the threshold is greater than or equal to a preset threshold.
- the second category may be classified. That is, not only the relative sizes of the current sample and the neighboring sample, but also the difference value between the pixel value of the current sample and the pixel value of the neighboring sample may be the basis of the relative classification. This example may be a case where the second category and the third category of the first embodiment are considered to be replaced or added.
- the information on the category may be processed by setting an implicit setting, the gradient direction information may be processed by setting an explicit setting, and samples that are not classified according to the above conditions may be composed of samples to which an offset is not applied. That is, a sample classified as an edge may not be classified according to the above conditions and may be classified as a sample to which an offset is not applied.
- the category may be set by further considering the magnitude of the pixel value gradient in the edge-based classification according to FIGS. 8 and 9.
- the first category according to Equations 1 to 6 has a pixel value in which the current sample C_sample is smaller than the neighbor samples N_sampleA and N_sampleB, and the pixel value difference between the current sample and the neighbor samples is preset. It can be set when the threshold value or more.
- the current sample C_sample has a pixel value smaller than or equal to the neighboring samples N_sampleA and N_sampleB, and the pixel value difference between the current sample and the neighboring samples is preset. It can be set when the threshold value or more.
- the third category according to Equations 1 to 6 has a pixel value in which the current sample C_sample is greater than or equal to the neighboring samples N_sampleA and N_sampleB, and the pixel value difference between the current sample and the neighboring samples is preset. It can be set when the threshold value or more.
- the fourth category according to Equations 1 to 6 has a pixel value in which the current sample C_sample is larger than the neighboring samples N_sampleA and N_sampleB, and a threshold value in which the pixel value difference between the current sample and the neighboring samples is preset.
- the above can be set.
- the fourth embodiment may be used to distinguish between samples that may include less error and samples that include more errors among samples classified according to edge-based classification, and apply different offset values to the divided samples.
- the relative classification according to an embodiment of the present invention may further include a detailed classification of categories by combining two or more of the first to third embodiments with each other.
- the relative classification according to an embodiment of the present invention performs the first classification with the category defined in the edge-based classification according to FIGS. 8 and 9, and the slope form between the samples for each category classified as the primary classification.
- secondary classification may be performed based on the magnitude of the slope.
- the fourth embodiment of the relative classification described above may be one of such modifications.
- the offset information may generate signed offset or unsigned offset information in each case, which may be determined according to the sub / decoder setting. For example, in case of categories 1 and 4 of FIG. 9, unsigned offset information may be generated, and in case of categories 2 and 3, signed offset information may be generated.
- FIG. 10 is an exemplary diagram for describing a method of assigning an offset value to a block to which a sample adaptive offset is applied according to a relative classification according to an embodiment of the present invention.
- a sample adaptive offset may be performed for all samples located in the hatched block.
- a to F are the same.
- FIG. 10A five samples are set in all diagonal directions as shown in FIG. 8 and 80 and 84.
- FIG. 10B five samples are set in the longitudinal direction as in FIG. 8
- FIG. C consists of 9 samples centered on the current sample.
- FIG. 10D three samples are set along the horizontal direction as shown in 86 of FIG. 8
- FIG. 10E five samples are set along the horizontal and vertical directions as shown in 82 and 86 of FIG. 8.
- F of 10 is set to three samples in one diagonal direction as shown in 80 of FIG.
- the sample is adaptive using samples that have been coded / decoded but before filtering is applied. Offset is performed and if the location of the neighboring sample is outside the boundaries of the hatched block (for example, outside the picture boundary or on a different slice or tile than the current block), validation of the area to which the neighboring sample belongs is performed. You can do it first.
- the relative classification of the neighboring sample may be used. As such, if there is a sample that is not available as a result of the validation, you can use the sample in the current block to fill in the unavailable sample location. For example, a sample outside the image may be used by copying or linearly extrapolating a boundary sample that belongs to the current block and is adjacent to the sample outside the image.
- the position of the neighboring sample may be acquired and used in a part of the current image.
- a region where correlation is present in the current pixel (or block) may exist in the image because a region that is not adjacent but a correlation exists in the two-dimensional space (in this example, an area that is not spatially adjacent)
- Data of neighboring samples can be obtained and used through copying or transformation.
- the image can be filled with a maximum of two pixel intervals (E2 area), and in general (A, except B, C, D, E, and F may be filled with images E1 at one pixel intervals.
- 11 is an exemplary diagram for describing a method of performing sample adaptive offset according to an absolute classification according to an embodiment of the present invention.
- the sample adaptive offset based on the absolute classification may be a method of setting an offset value based on characteristics of the sample itself to which the offset is applied, such as brightness of a sample, band information, and the like.
- the target sample to which the sample adaptive offset according to the absolute classification is to be performed may be a current sample in which encoding / decoding is completed.
- the pixel value range determined according to the bit depth is divided into pixel value bands having a predetermined interval.
- the bit depth is 8 bits (the range of pixel values is 0 to 255), it is equally divided into 2 5 bands (that is, 32 bands).
- the sample adaptive offset based on the absolute classification may set an offset value for samples belonging to some bands among the plurality of divided bands.
- the band to which the sample belongs may be determined based on the brightness value of each sample.
- the start position information of the band in which the sample adaptive offset value is set is transmitted from the encoding apparatus to the decoding apparatus, and the offset information includes some consecutive bands including the band to which the start position information belongs (see FIG. k), including four bands).
- the band-related setting (number of bands, intervals, etc.) may be predetermined in the encoding / decoding apparatus, and start position information of a band to which an offset value is applied may be generated.
- one candidate may be selected (fixed length. 5 bits) from all bands (eg, 32 bands).
- the offset information consists of the absolute value of the offset and sign information.
- Absolute classification according to an embodiment of the present invention may be performed (or classified) according to the brightness information of the sample.
- the sample used in the determination process for the detailed classification may be at least one sample.
- subdivision eg, length of bands that are band-related settings, number of bands to be divided, etc.
- settings in this example, varying the settings according to the encoder / decoder
- the relevant information may be determined implicitly or explicitly processed.
- information of a band to which an offset is applied (for example, location information of a band) may be generated based on fixed band candidate group or adaptive band candidate group information.
- the number of candidate groups that may have according to the band setting may be determined.
- the band setting may be determined by one or more factors (quantization parameter, band division parameter, pixel value range information, etc. in this example).
- the additional setting including the information may be determined according to the decoder / decoder, and the information on the setting may be transmitted in a bitstream in units of video, sequence, picture, slice, tile, block, and the like, and a decoder. Can parse this and restore the relevant information.
- the present invention is not limited to the above examples and may be modified and expanded in various cases.
- the length and number of bands used for absolute classification may be adaptively determined. For example, may be divided by 2 k of the band according to the variable k, the length of the band 2 (bit_depth) in relation to the bit-depth (bit_depth) - may be k. Depending on the image, there may exist a length of the band to which the offset is efficiently applied, and for this, an adaptive setting may be supported.
- the variable k may be implicitly determined or explicitly include relevant information depending on the encoding / decoding setting (eg, block size, shape, image type, etc.), and the variable k may include the number of bands and the length of the band. And so on.
- FIG. 12 is an exemplary diagram of a method of generating various band information according to an embodiment of the present invention.
- the sample adaptive offset based on the absolute classification may be performed by generating adaptive band information (eg, start position information of a band).
- One piece of information may be generated according to a preset condition (for example, a condition in which offset information is generated in consecutive n bands at a location where one location information occurs, that is, n is preset).
- Two or more location information may be generated based on a band, and location information may be generated based on a reconstructed sample of the current image.
- two or more offset application position information (in this example, two band information, that is, assuming that the band in which the offset occurs may not be continuous) is generated.
- location information k1 of band m may be generated to indicate that sample adaptive offset is applied to band m
- band m + 3 to indicate that sample adaptive offset is applied to band m + 3.
- Position information k2 may be generated.
- the position information of the band (band where offset information occurs) may be generated sequentially based on the first band or in reverse order based on the last band, and the position information of the band to which the offset is applied may be independently or dependently set.
- the syntax information (fixed length binarization. K bits in this example) may be generated based on the location information of the first band based on the total number of bands (2 k in this example).
- the band position information after the position information of the band may be generated (if independent) by a syntax element based on the total number of bands, such as the band position information of the previous sub-decoding, or the band of the previous sub-decoding. Can be generated (if dependent) based on location information.
- the first band position information is k1 and the second band position information is k2 as in 12a
- k1 may be encoded / decoded first
- k1 may be a predicted value of k2 which is position information of the second band.
- the second band position information k2 may generate a difference value from the first band position information (ie, the predicted value).
- k2 which is a predicted value
- a difference value between k2 and k1 may be added to restore k2.
- the difference between the total number of bands and k1 may be set as a maximum value, and a syntax element (the binarization method considering the maximum value in this example) may be generated.
- the above example is a description of the first and second band position information, which is the same or similar application (for example, the band position information to be encoded / decoded and previously decoded / decoded) even when more than one band position information is added.
- the difference value of the band position information is encoded / decoded).
- the hatched area in 12a means a band in which the pixel values constituting the image exist.
- the encoding / decoding apparatus checks the pixel value range constituting the image (for example, a picture, slice, tile, block, etc.) and based on the pixel value range of the image, position information of the band (or start position of the band). Information) can be generated or obtained.
- the length of the band may be determined based on the pixel value range of the image, and based on this, offset information may be generated or acquired. Referring to 12b, it can be seen that the range in which the pixel values constituting the image are generated in 12a is divided into 2k bands. In this case, a band length narrower than 2 k bands obtained based on the bit depth may be obtained.
- the lowest pixel value and the highest pixel value of the current image may be set to the entire pixel value range, and the set pixel value range may be divided into 2k bands.
- the set pixel value range may be divided into 2k bands.
- one band length (width) is smaller than when dividing a range of pixel values according to bit depths into 2 k bands, fine correction through offsets can be performed.
- applying a binarization method that considers the maximum value can be generated. That is, it may be determined according to k and the band length.
- a pixel value range for example, the maximum value of a pixel is 128 and the minimum value is 10 is 118
- the length of one band when k is 5 The maximum is 4 (band length is 8 when k is 5 and a pixel value range is 0 to 255), and a syntax element of an offset can be generated based on this.
- the band may be divided based on the pixel value range of the image, and may be a case where offset information is obtained based on the obtained band length.
- the range of the pixel value is determined based on the bit depth, and it can be seen that the range of the pixel value determined according to the bit depth is divided into 2k bands. Since the entire range of pixel values (based on 0 to 255.8 bits) is determined according to the bit depth, the fixed value has a length of a band according to the number of bands, and the generation of offset information may be generated based on the band length. At this time, if the lowest pixel value minc and the highest pixel value maxc at which the pixel value of the image is generated exist in the bands P1 and Pmax, respectively, the band in which the offset information may occur is present between the band P1 and the band Pmax. do. Accordingly, since Pmax-P1 + 1 bands can be referred to as the number of bands in which offset information can occur, positional information of bands where offset information occurs can be generated using Pmax-P1 + 1 bands as a maximum value. .
- the band when the band is divided based on the bit depth according to the bit depth, the total number of bands is 32 (assuming k is 5), but the bands where the actual pixel values occur are the bands m and m + 4. The total number of bands is 5 since it is a band between.
- 5-bit fixed-length binarization can generate syntax elements for band position information (5 bits are required if only band start position information is sent), but a maximum of 5 for a total band of 5
- Variable length binarization allows the generation of syntax elements (two or three bits in this example). That is, the coding performance can be improved by maintaining the length of the band but reducing information generated by the band information.
- the band may be divided based on the bit depth, and the position information of the band may be generated based on the pixel value range of the image.
- the number of offset information may be fixed (assuming four).
- the number of offset information may be adaptive according to the encoding / decoding setting, the number of offsets may be adaptively determined according to the characteristics of an image. For example, when dividing a band according to bit depth as shown in 12a, if the pixel value of an image (assuming block in this example) occurs in three bands or less, four offsets are not necessary. Only offset information can occur. In this case, the start position of the band to which the offset is applied may also be an example obtained implicitly. In this example, the number of offsets is adaptively determined based on the pixel value range of the image, and the band position information is implicitly determined.
- the image may be one of a reconstructed image or an original image.
- the range information of the pixel value may be obtained implicitly, and in the case of the original image, the range information of the pixel value may be obtained explicitly.
- the reconstructed image may mean an image before the filter is applied (that is, an image that has been encoded / decoded but before the in-loop filter is applied).
- the pixel value range information of the original image has been described above through a pixel value adjustment process according to the pixel value range, and because of the information explicitly included in the bitstream, the pixel value range information of the original image can be confirmed not only by the encoder but also by the decoder. .
- FIG. 13 is a source code for describing a syntax element used for a sample adaptive offset based on a relative classification and an absolute classification according to an embodiment of the present invention.
- sps_sample_adaptive_offset_enabled_flag may be a syntax element for SAO support in sps
- pps_sample_adaptive_offset_enabled_flag may be a syntax element for support of SAO in pps
- slice_sample_adaptive_offset_enabled_flag may be a syntax element for whether SAO is supported in a slice In other units (tiles, etc.)
- syntax elements for SAO support may be defined. When higher level syntax elements are activated, additional generation of lower level syntax elements may be determined.
- the syntax elements slice_sao_luma_flag and slice_sao_chroma_flag may be generated according to the color component, and are deactivated (in this example, 0). SAO) may not be applied to the video.
- a syntax element for offset_type1_enabled_flag may be defined, which may be a syntax element for applying or not applying a preset type of SAO.
- the offset may be applied by an absolute classification (or an offset may be applied by a relative classification)
- offset_type2_enabled_flag may be an offset is applied by a relative classification (or an offset may be applied by an absolute classification).
- offset_type1_enabled_flag is activated
- a syntax element for offset_type2_enabled_flag may be further defined. If disabled, offset_type2_enabled_flag is not further defined, but type2 can be implicitly enabled. It can be activated with type1 and type2, and only one of type1 and type2 can be activated. This may be a syntax element defined in the slice, or may be a syntax element defined in other units (sequence, picture, tile, etc.).
- the offset related information may be referenced from at least one neighboring block in which encoding / decoding is completed, and the referred block may be a left, upper left, lower left, upper, upper right block, or the like.
- the referenced candidate group may be two or more blocks, the priority of the referenced blocks (also related to syntax element generation) may be determined according to the sub / decoding setting, and prediction information from neighboring blocks in intra-picture prediction or inter-screen prediction.
- the same or similar order to the order of referencing (block position or subblock position within a block) may be used or an independent order may be set.
- sao_merge_flag may be a syntax element indicating whether to obtain offset related information from a neighboring block
- sao_merge_idx may be a syntax element indicating information about a neighboring block. Reference may be made to all or part of the offset related information from a neighboring block, and additional syntax elements may be defined when obtaining part of the offset related information.
- sao_type_idx may mean selection information on an offset application method, which may be a syntax element generated when two or more offset application methods are supported.
- sao_offset_abs may be absolute value information about an offset, which may be generated by k pieces. k may be determined according to the negative / decryption setting.
- sao_offset_sign may be sign information about the offset information, which may be a syntax element generated only when the absolute value information about the offset is not zero. The sign information about the offset may be supported according to the setting of the offset application method, and is not generated when the setting of the offset method supports the offset information only as the unsigned absolute value information, and when the offset information is supported by the signed absolute value information. Can be generated.
- sao_type_info may be information according to the detailed classification of the offset method.
- the offset (relative classification or absolute classification) setting information may be determined according to a sub / decoding setting (block size and shape in this example, image type, encoding mode, quantization parameter, etc.), and the combination configured through the process may include at least One or more may be possible.
- a sub / decoding setting block size and shape in this example, image type, encoding mode, quantization parameter, etc.
- FIG. 14 is a flowchart illustrating a method of performing sample adaptive offset according to an absolute classification or a relative classification according to an embodiment of the present invention.
- a method for performing sample adaptive offset according to an absolute classification or a relative classification may include classifying reconstructed samples according to an absolute classification criterion or a relative classification criterion (S100). Acquiring offset information based on the classified result (S110), adding an offset value to the reconstructed sample with reference to the obtained offset information (S120), and outputting a reconstructed sample to which the offset value is added ( S130) may be included.
- the step of classifying the reconstructed sample may include classifying the reconstructed sample according to a band to which the brightness value of the reconstructed sample belongs, if a classification criterion is the absolute classification.
- a classification criterion is the relative classification
- edge information and slope information derived by comparing pixel values of the reconstructed sample and pixel values of neighboring samples adjacent to the reconstructed sample may be obtained. Classifying the reconstructed sample based on at least one of the following.
- the methods according to the invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium.
- Computer-readable media may include, alone or in combination with the program instructions, data files, data structures, and the like.
- the program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention, or may be known and available to those skilled in computer software.
- Examples of computer readable media may include hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
- Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter, as well as machine code such as produced by a compiler.
- the hardware device described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.
- the above-described method or apparatus may be implemented by combining all or part of the configuration or function, or may be implemented separately.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
Abstract
적응적인 화소 분류 기준에 따른 인루프 필터링 방법이 개시된다. 영상 복호화 장치에서 적응적인 화소 분류 기준에 따른 인루프 필터링 방법은, 절대적 분류 기준 또는 상대적 분류 기준에 따라 복원 샘플을 분류하는 단계, 상기 복원 샘플이 분류된 결과에 기초하여 오프셋 정보를 획득하는 단계, 획득된 오프셋 정보를 참조하여 상기 복원 샘플에 오프셋 값을 가산하는 단계 및 상기 오프셋 값이 가산된 복원 샘플을 출력하는 단계를 포함한다. 따라서, 복원 영상의 오류를 보정할 수 있다.
Description
본 발명은 적응적인 화소 분류 기준에 따른 인루프 필터링 방법에 관한 것으로, 더욱 상세하게는 복원 샘플을 절대적 분류 기준 또는 상대적 분류 기준에 따라 분류하고, 분류된 결과에 따라 적응적으로 설정되는 오프셋 값을 복원 샘플에 가산함으로써 복원 샘플을 필터링하는 방법에 관한 것이다.
ISO/ISE MPEG (Moving Picture Experts Group)과 ITU-T VCEG (Video Coding Experts Group)으로 불리는 각 기관은 JCV-VC (Joint Collaborative Team on Video Coding)를 조직하여 2013 년 1 월 ISO/IEC MPEG-H HEVC (High Efficiency Video Coding)/ITU-T H.265 인 비디오 압축 표준 기술을 제정하였다. 또한, 현재 급속한 정보통신기술의 발전에 따른 고화질 영상이 대중화되는 추세에 부응하기 위해, ISO/ISE MPEG과 ITU-T VCEG 은 제 22 차 JCT-VC 제네바 회의에서 JVET (Joint Video Exploration Team)을 조직하여 HD (High Definition) 화질보다 선명한 UHD 화질(Ultra High Definition)의 영상 압축을 위한 차세대 영상 압축 기술 표준을 제정하고자 활발히 노력하고 있다.
한편, 기존의 비디오 압축 표준 기술(HEVC)에 따른 인-루프 필터에는 샘플 적응적 오프셋(Sample Adaptive Offset)이 제안되었는데, 복원 픽셀(또는 샘플)에 대한 오프셋(Offset) 값을 더해줌으로써, 복원 영상과 원본 영상 사이의 오류를 최소화하고 있다.
기존의 샘플 적응적 오프셋은 엣지 오프셋(edge offset)과 밴드 오프셋(band offset)으로 구분하여 복원 샘플에 따라 적응적 오프셋값을 결정하는데, 구체적으로 복원 픽셀을 중심으로 형성되는 엣지와 복원 픽셀이 속한 화소 대역에 따라 오프셋 값을 적응적으로 사용한다.
그러나, 최근 영상은 매우 다양한 특성을 갖고 있기 때문에 기존의 엣지 오프셋과 밴드 오프셋만으로 오프셋 값을 결정하는 것에는 복원 영상의 오류를 제거하는데 한계가 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 적응적인 화소 분류 기준에 따른 인루프 필터링 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 적응적인 화소 분류 기준에 따른 인루프 필터링 방법을 제공한다.
영상 복호화 장치에서 적응적인 화소 분류 기준에 따른 인루프 필터링 방법은, 절대적 분류 기준 또는 상대적 분류 기준에 따라 복원 샘플을 분류하는 단계, 상기 복원 샘플이 분류된 결과에 기초하여 오프셋 정보를 획득하는 단계, 획득된 오프셋 정보를 참조하여 상기 복원 샘플에 오프셋 값을 가산하는 단계 및 상기 오프셋 값이 가산된 복원 샘플을 출력하는 단계를 포함할 수 있다.
여기서, 상기 복원 샘플을 분류하는 단계는, 분류 기준이 상기 절대적 분류이면, 상기 복원 샘플의 밝기값이 속하는 대역에 따라 상기 복원 샘플을 분류하는 단계를 포함할 수 있다.
여기서, 상기 복원 샘플을 분류하는 단계는, 분류 기준이 상기 상대적 분류이면, 상기 복원 샘플의 화소값 및 상기 복원 샘플과 인접한 이웃 샘플들의 화소값 상호간 비교에 의해 도출되는 엣지 정보 및 기울기 정보 중 적어도 하나에 기초하여 상기 복원 샘플을 분류하는 단계를 포함할 수 있다.
상기와 같은 본 발명에 따른 절대적 분류 또는 상대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법을 이용할 경우에는 복원 영상의 오류를 더 세밀하게 수정할 수 있다.
또한, 다양한 분류 기준을 적용하기 때문에 복원 영상마다 갖는 특성에 맞는 오프셋 적용이 가능한 장점이 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 4a 내지 도 4c는 본 발명의 일 실시예에 따른 영상 부/복호화 장치가 사용하는 서브 영역들인 블록, 타일, 슬라이스를 나타낸 예시도이다.
도 5는 본 발명의 일 실시예에 따른 스캔 순서에 따라 연속하는 블록의 묶음으로 슬라이스를 생성하는 예시도이다.
도 6a 내지 도 6d는 픽쳐 내의 타일들과 기본 부호화 단위를 나타낸 예시도이다.
도 7은 타일 단위로 부호화 또는 복호화가 수행될 경우에 설정되는 정보들을 명시적으로 다룬 소스 코드이다.
도 8은 본 발명의 일 실시예에 따른 상대적 분류에 따라 샘플 적응적 오프셋(Sample Adaptive Offset)이 적용되는 샘플 화소를 설명하기 위한 예시도이다.
도 9는 본 발명의 일 실시예에 따른 상대적 분류에서 엣지에 따라 분류된 카테고리를 설명하기 위한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 상대적 분류에 따라 샘플 적응적 오프셋이 적용되는 블록을 대상으로 오프셋 값을 부여하는 방법을 설명하기 위한 예시도이다.
도 11은 본 발명의 일 실시예에 따른 절대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법을 설명하기 위한 예시도이다.
도 12는 본 발명의 일 실시예에 따른 다양한 대역 정보 생성 방법에 대한 예시도이다.
도 13은 본 발명의 일 실시예에 따른 상대적 분류 및 절대적 분류에 기초한 샘플 적응적 오프셋에 사용되는 구문(syntax)를 설명하기 위한 소스코드이다.
도 14는 본 발명의 일 실시예에 따른 절대적 분류 또는 상대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법에 대한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 영상은 일련의 정지 영상(Still Image)으로 구성될 수 있으며, 이 정지 영상들은 GOP(Group of Pictures) 단위로 구분될 수 있고, 각 정지 영상을 픽쳐(Picture) 또는 프레임(Frame)이라 지칭할 수 있다. 상위 개념으로는 GOP, 시퀀스(Sequence)등의 단위가 존재할 수 있으며, 또한, 각 픽쳐는 슬라이스(Slice), 타일(Tile), 블록(Block) 등과 같은 소정의 영역으로 분할될 수 있다. 또한, 하나의 GOP에는 I 픽쳐, P 픽쳐, B 픽쳐 등의 단위가 포함될 수 있다. I 픽쳐는 참조 픽쳐를 사용하지 않고 자체적으로 부호화/복호화되는 픽쳐를 의미할 수 있으며, P 픽쳐와 B 픽쳐는 참조 픽쳐를 사용하여 움직임 추정(Motion Estimation) 및 움직임 보상(Motion Compensation) 등의 과정을 수행하여 부호화/복호화 하는 픽쳐를 의미할 수 있다. 일반적으로 P 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐로써 이용할 수 있으며, B 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐를 이용할 수 있으나, 이는 부호화/복호화의 설정에 의해 위의 정의 또한 변경될 수 있다.
여기서 부호화/복호화하는데 참조되는 픽쳐를 참조 픽쳐(Reference Picture)라고 하며, 참조되는 블록 또는 화소를 참조 블록(Reference Block), 참조 화소(Reference Pixel)라고 한다. 또한, 참조되는 데이터(Reference Data)는 공간 영역(Spatial Domain)의 화소값 뿐만 아니라 주파수 영역(Frequency Domain)의 계수값, 부호화/복호화 과정 중에 생성, 결정되는 다양한 부호화/복호화 정보일 수 있다.
영상을 이루는 최소 단위는 화소일 수 있으며, 하나의 화소를 표현하는데 사용되는 비트수를 비트 심도(Bit Depth)라고 한다. 일반적으로 비트 심도는 8비트일 수 있으며 부호화 설정에 따라 다른 비트 심도를 지원할 수 있다. 비트 심도는 컬러 공간(Color Space)에 따라 적어도 하나의 비트 심도가 지원될 수 있다. 또한, 영상의 컬러 포맷(Color Format)에 따라 적어도 하나의 컬러 공간으로 구성될 수 있다. 컬러 포맷에 따라 일정 크기를 갖는 1개 이상의 픽쳐 또는 다른 크기를 갖는 1개 이상의 픽쳐로 구성될 수 있다. 예를 들어, YCbCr 4:2:0인 경우 1개의 휘도 성분(본 예에서, Y)과 2개의 색차 성분(본 예에서, Cb/Cr)으로 구성될 수 있으며, 이때 색차 성분과 휘도 성분의 구성 비는 가로, 세로 1:2를 가질 수 있다. 다른 예로, 4:4:4인 경우 가로, 세로 동일한 구성 비를 가질 수 있다. 상기 예처럼 하나 이상의 컬러 공간으로 구성이 되는 경우 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다.
본 발명에서는 일부 컬러 포맷(본 예에서, YCbCr)의 일부 컬러 공간(본 예에서, Y)을 기준으로 설명할 것이며, 컬러 포맷에 따른 다른 컬러 공간(본 예에서, Cb, Cr)에도 동일하거나 비슷한 적용(특정 컬러 공간에 의존적인 설정)을 할 수 있다. 그러나 각 컬러 공간에 부분적인 차이(특정 컬러 공간에 독립적인 설정)를 두는 것 또한 가능할 수 있다. 즉, 각 컬러 공간에 의존적인 설정은 각 성분의 구성 비(예를 들어, 4:2:0, 4:2:2, 4:4:4 등에 따라 결정)에 비례하거나 의존적인 설정을 갖는 것으로 의미할 수 있고, 각 컬러 공간에 독립적인 설정은 각 성분의 구성 비에 관계없거나 독립적으로 해당 컬러 공간만의 설정을 갖는 것으로 의미할 수 있다. 본 발명에서는 부/복호화기에 따라 일부 구성에 대해서는 독립적인 설정을 갖거나 의존적인 설정을 가질 수 있다.
영상 부호화 과정에서 필요한 설정 정보 또는 구문 요소는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위 수준에서 정해질 수 있으며 이는 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set), Slice Header, Tile Header, Block Header 등과 같은 단위로 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서는 동일 수준의 단위에서 파싱(Parsing)하여 부호화기에서 전송된 설정 정보를 복원하여 영상 복호화 과정에 사용할 수 있다. 각 파라미터 세트는 고유의 아이디값을 갖고 있으며, 하위 파라미터 세트에서는 참조할 상위 파라미터 세트의 아이디값을 가질 수 있다. 예를 들어, 하위 파라미터 세트에서 하나 이상의 상위 파라미터 세트 중 일치하는 아이디값을 갖는 상위 파라미터 세트의 정보를 참조할 수 있다. 위에서 언급된 다양한 단위의 예 중 어떤 하나의 단위가 하나 이상의 다른 단위를 포함하는 경우에 해당하는 단위는 상위 단위, 포함되는 단위는 하위 단위라 칭할 수 있다.
상기 단위에서 발생하는 설정 정보의 경우 해당 단위마다 독립적인 설정에 대한 내용을 포함하거나 이전, 이후 또는 상위 단위 등에 의존적인 설정에 대한 내용을 포함할 수 있다. 여기서 의존적인 설정이란 이전, 이후, 상위 단위의 설정을 따른다는 플래그 정보(예를 들어, 1 비트 플래그로 1이면 따름. 0이면 따르지 않음)로 해당 단위의 설정 정보를 나타내는 것이라 이해될 수 있다. 본 발명에서의 설정 정보는 독립적인 설정에 대한 예를 중심으로 설명을 할 것이나, 현재 단위의 이전, 이후의 단위 또는 상위 단위의 설정 정보에 의존적인 관계에 대한 내용으로의 추가 또는 대체되는 예 또한 포함될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 1을 참조하면, 영상 부호화 장치(105) 및 복호화 장치(100)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 120, 125), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 110, 115) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치(100)로 전송되어 영상 복호화 장치(100)에서 복호화되어 영상으로 복원되고 재생될 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 영상 부호화 장치(105)에서 영상 복호화 장치(100)로 전달될 수 있다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 부호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.
예측부(200)는 화면내 예측을 수행하는 화면내 예측부와 화면간 예측을 수행하는 화면간 예측부를 포함할 수 있다. 화면내 예측은 현재 블록의 인접한 블록의 화소를 참조 화소로 구성하여 화면내 예측 모드를 결정하고, 상기 화면내 예측 모드를 사용하여 예측 블록을 생성할 수 있고, 화면간 예측은 하나 이상의 참조 영상을 이용하여 현재 블록의 움직임 정보를 결정하고, 상기 움직임 정보를 사용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 현재 블록(부호화 단위 또는 예측 단위)에 대해 화면내 예측 또는 화면간 예측 중 어떤 방식을 사용할 지에 대한 것을 결정하고, 각 예측 방법에 따른 구체적인 정보(예를 들어, 화면내 예측 모드, 움직임 벡터, 참조 영상 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 예측 방법, 예측 모드 등은 예측 단위(또는 부호화 단위)로 결정되고, 예측의 수행은 예측 블록 단위(또는 부호화 단위, 변환 단위)로 수행된다.
감산부(205)는 현재 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다. 즉, 감산부(205)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호인 잔차 블록을 생성한다.
변환부(210)는 잔차 블록을 주파수 영역으로 변환하여 잔차 블록의 각 화소값을 주파수 계수로 변환한다. 여기서, 변환부(210)는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반의 변환(DCT Based Transform), 이산 사인 변환 기반의 변환(DST Based Transform), 카루넨 루베 변환 기반의 변환(KLT Based Transform) 등과 같은 공간축의 화상 신호를 주파수축으로 변환하는 다양한 변환 기법을 이용하여 잔차 신호를 주파수 영역으로 변환할 수 있는데, 주파수 영역으로 변환된 잔차 신호가 주파수 계수가 된다.
양자화부(215)는 변환부(210)에 의해 주파수 영역으로 변환된 주파수 계수를 갖는 잔차 블록을 양자화한다. 여기서, 양자화부(215)는 변환된 잔차 블록을 데드존 균일 경계 양자화(Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 또는 이를 개량한 양자화 기법 등을 사용하여 양자화할 수 있다. 이는1개 이상의 양자화 기법을 후보로 둘 수 있으며 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있다.
엔트로피 부호화부(245)는 생성된 양자화 주파수 계수열을 다양한 스캔 방식에 따라 스캔하여 양자화 계수열을 생성하고, 부호화 과정 중에 생성되는 부호화 정보에 관한 다양한 이진화 방법(고정 길이 이진화<fixed length binariation>, 단항 이진화<unary binarization>, Rice 이진화<truncated rice>, k-th order exp-golomb 등)에 의해 구문 요소를 생성하며, 이를 다양한 엔트로피 부호화 기법{Context Adaptive Binary Arithmetic Coding(CABAC), Context Adaptive Variable Length Coding(CAVLC) 등}을 이용하여 부호화 함으로써 출력한다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 하나로 설정할 수 있다.
역양자화부(220)는 양자화부(215)에 의해 양자화된 잔차 블록을 역 양자화한다. 즉, 양자화부(220)는 양자화 주파수 계수열을 역양자화하여 주파수 계수를 갖는 잔차 블록을 생성한다.
역변환부(225)는 역양자화부(220)에 의해 역양자화된 잔차 블록을 역변환한다. 즉, 역변환부(225)는 역양자화된 잔차 블록의 주파수 계수들을 역변환하여 화소값을 갖는 잔차 블록, 즉 복원된 잔차 블록을 생성한다. 여기서, 역변환부(225)는 변환부(210)에서 사용한 변환한 방식을 역으로 사용하여 역변환을 수행할 수 있다.
가산부(230)는 예측부(200)에서 예측된 예측 블록과 역변환부(225)에 의해 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록은 복호화 픽쳐 버퍼(240)에 참조 픽쳐(또는 참조 블록)로서 저장되어 다른 블록, 픽쳐의 부호화시에 참조될 수 있다.
필터부(235)는 디블록킹 필터, SAO, 적응적 루프 필터(Adaptive Loop Filter, ALF) 등의 하나 이상의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. ALF는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. SAO는 디블록킹 필터가 적용된 잔차 블록에 대하여, 화소 단위로 원본 영상과의 오프셋 차이를 복원하며, 밴드 오프셋(Band offset), 에지 오프셋 등의 형태로 적용될 수 있다. 이와 같은 후처리 필터는 복원된 픽쳐 또는 블록에 적용될 수 있다.
부호화 픽쳐 버퍼(240)는 필터부(235)를 통해 복원된 블록 또는 픽쳐를 저장할 수 있다. 복호화 픽쳐 버퍼(240)에 저장된 복원 블록 또는 픽쳐는 화면내 예측 또는 화면간 예측을 수행하는 예측부(200)에 제공될 수 있다.
도면에 도시 하지 않았지만 분할부가 더 포함될 수 있으며, 분할부(더 상세하게는 블록 분할부)를 통해 다양한 크기의 부호화 단위로 분할할 수 있다. 이때, 부호화 단위는 컬러 포맷에 따라 복수개의 부호화 블록으로 구성(예를 들어, 하나의 휘도 부호화 블록, 둘의 색차 부호화 블록 등)될 수 있다. 설명의 편의를 위해 하나의 컬러 성분 단위를 가정하여 설명한다. 부호화 블록은 M×M(예를 들어, M은 4, 8, 16, 32, 64, 128 등)과 같은 가변 크기를 가질 수 있다. 또는, 분할 방식(예를 들어, 트리 기반의 분할. 쿼드 트리 분할, 바이너리 트리 분할 등)에 따라 부호화 블록은 M×N(예를 들어, M과 N은 4, 8, 16, 32, 64, 128 등)과 같은 가변 크기를 가질 수 있다. 이때, 부호화 블록은 화면내 예측, 화면간 예측, 변환, 양자화, 엔트로피 부호화 등의 기초가 되는 단위일 수 있다.
본 발명에서는 분할 방식에 따라 동일한 크기 및 형태를 갖는 복수 개의 서브 블록이 획득되는 가정 하에 설명하지만, 비대칭적인 서브 블록(예를 들어, 바이너리 트리의 경우 4M × 4N은 3M × 4N/M × 4N 또는 4M × 3N/4M × N 등으로 분할)을 갖는 경우로의 적용 또한 가능할 수 있다. 이때, 비대칭적인 서브 블록은 대칭적인 서브 블록을 획득하는 분할 방식에 부/복호화 설정에 따라 추가적으로 지원 여부가 결정되는 정보에 의해 지원될 수 있다.
부호화 블록(M×N)의 분할은 재귀적인 트리 기반의 구조를 가질 수 있다. 이때, 분할 여부는 분할 플래그(예를 들어, 쿼드 트리 분할 플래그, 바이너리 분할 플래그)를 통해 나타낼 수 있다. 예를 들어, 분할 깊이(Depth)가 k인 부호화 블록의 분할 플래그가 0인 경우 부호화 블록의 부호화는 분할 깊이가 k인 부호화 블록에서 수행되며, 분할 깊이가 k인 부호화 블록의 분할 플래그가 1인 경우 부호화 블록의 부호화는 분할 방식에 따라 분할 깊이가 k+1인 4개의 서브 부호화 블록(쿼드 트리 분할) 또는 2개의 서브 부호화 블록(바이너리 트리 분할)에서 수행된다. 이때, 블록의 크기는 4개의 부호화 블록의 경우 (M >> 1) × (N >> 1)이고, 2개의 부호화 블록의 경우 (M >> 1) × N 또는 M × (N >>1)일 수 있다. 상기 서브 부호화 블록은 다시 부호화 블록(k+1)으로 설정되어 상기 과정을 거쳐 서브 부호화 블록(k+2)으로 분할될 수 있다. 이때, 쿼드 트리 분할의 경우 하나의 분할 플래그(예를 들어, 분할 여부 플래그)가 지원될 수 있고, 바이너리 트리 분할의 경우 적어도 하나(2개 이상도 가능)의 플래그(예를 들어, 분할 여부 플래그에 추가적으로 분할 방향 플래그<가로 또는 세로. 선행하는 상위 또는 이전 분할 결과에 따라 일부 경우에 생략가능>)가 지원될 수 있다.
블록 분할은 최대 부호화 블록에서 시작하여 최소 부호화 블록까지 진행할 수 있다. 또는, 최소 분할 깊이(0)에서 시작하여 최대 분할 깊이까지 진행할 수 있다. 즉, 블록의 크기가 최소 부호화 블록 크기에 도달하거나 분할 깊이가 최대 분할 깊이에 도달할 때까지 재귀적으로 분할을 수행할 수 있다. 이때, 부/복호화 설정(예를 들어, 영상<슬라이스, 타일> 타입<I/P/B>, 부호화 모드<Intra/Inter>, 색차 성분<Y/Cb/Cr> 등)에 따라 최대 부호화 블록의 크기와 최소 부호화 블록의 크기, 최대 분할 깊이가 적응적으로 설정될 수 있다.
예를 들어, 최대 부호화 블록은 128×128일 때, 쿼드 트리 분할은 8×8 ~ 128×128 범위에서 수행될 수 있고, 바이너리 트리 분할은 4×4 ~ 32×32범위와 최대 분할 깊이 3인 경우에 수행될 수 있다. 또는, 쿼드 트리 분할은 8×8 ~ 128×128 범위에서 수행될 수 있고, 바이너리 트리 분할은 4×4 ~ 128×128 범위와 최대 분할 깊이 3인 경우에 수행될 수 있다. 전자의 경우 I 영상 타입(예를 들어, 슬라이스), 후자의 경우 P나 B 영상 타입에서의 설정일 수 있다. 상기 예에서 설명된 것과 같이 최대 부호화 블록의 크기, 최소 부호화 블록의 크기, 최대 분할 깊이 등과 같은 분할 설정은 분할 방식과 전술한 부/복호화 설정에 따라 공통되거나 또는 개별적으로 지원될 수 있다.
복수의 분할 방식이 지원되는 경우 각 분할 방식의 블록 지원 범위 내에서 분할이 수행되며, 각 분할 방식의 블록 지원 범위가 겹치는 경우에는 분할 방식의 우선 순위가 존재할 수 있다. 예를 들어, 쿼드 트리 분할이 바이너리 트리 분할을 선행할 수 있다. 또한, 복수의 분할 방식이 지원되는 경우 선행하는 분할의 결과에 따라 후행하는 분할의 수행 여부가 결정될 수 있다. 예를 들어, 선행하는 분할의 결과가 분할을 수행함을 나타낼 경우 후행하는 분할은 수행하지 않고 선행한 분할에 따라 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있다.
또는, 선행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 후행하는 분할의 결과에 따라 분할을 수행할 수 있다. 이때, 후행하는 분할의 결과가 분할을 수행함을 나타낼 경우 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있고, 후행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 더 이상의 분할은 수행하지 않는다. 이때, 후행하는 분할 결과가 분할을 수행함을 나타내고 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되었을 때의 상황도 복수의 분할 방식이 지원되는 경우(예를 들어, 각 분할 방식의 블록 지원 범위가 겹치는 경우)일 때, 선행하는 분할은 수행하지 않고 후행하는 분할만 지원할 수 있다. 즉, 복수의 분할 방식이 지원되는 경우에 선행하는 분할의 결과가 분할이 수행되지 않음을 나타낼 경우 더 이상 선행의 분할은 수행하지 않음을 의미한다.
예를 들어, M × N부호화 블록은 쿼드 트리 분할과 바이너리 트리 분할이 가능할 경우 우선 쿼드 트리 분할 플래그를 확인할 수 있고, 상기 분할 플래그가 1인 경우에는 (M >> 1) × (N >> 1) 크기의 4개의 서브 부호화 블록으로 분할이 수행이 되고 상기 서브 부호화 블록은 다시 부호화 블록으로 설정되어 분할(쿼드 트리 분할 또는 바이너리 트리 분할)을 수행할 수 있다. 상기 분할 플래그가 0인 경우에는 바이너리 트리 분할 플래그를 확인할 수 있고, 해당 플래그가 1인 경우에는 (M >> 1) × N 또는 M × (N >> 1) 크기의 2 개의 서브 부호화 블록으로 분할이 수행되고 상기 서브 부호화 블록은 다시 부호화 블록으로 설정되어 분할(바이너리 트리 분할)을 수행할 수 있다. 상기 분할 플래그가 0인 경우에는 분할 과정을 종료하고 부호화를 진행한다.
상기 예를 통해 복수의 분할 방식이 수행되는 경우를 설명하였지만, 이에 한정되지 않고 다양한 분할 방식의 지원 조합이 가능할 수 있다. 예를 들어, 쿼드 트리/바이너리 트리/쿼드 트리 + 바이너리 트리 등의 분할 방식이 사용될 수 있다. 이때, 기본의 분할 방식은 쿼드 트리 방식, 추가적인 분할 방식은 바이너리 트리 방식으로 설정할 수 있고, 추가적인 분할 방식의 지원 여부에 대한 정보가 묵시적으로 결정되거나 명시적으로 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함될 수 있다.
상기 예에서 부호화 블록의 크기 정보, 부호화 블록의 지원 범위, 최대 분할 깊이 등 분할에 관련된 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함되거나 묵시적으로 결정될 수 있다. 정리하면, 최대 부호화 블록의 크기, 지원되는 블록의 범위, 최대 분할 깊이 등에 의해 허용 가능한 블록의 범위가 정해질 수 있다.
상기 과정을 통해 분할이 수행되어 획득되는 부호화 블록은 화면내 예측 또는 화면간 예측의 최대 크기로 설정될 수 있다. 즉, 블록 분할이 끝난 부호화 블록은 화면내 예측 또는 화면간 예측을 위해 예측 블록의 분할의 시작 크기일 수 있다. 예를 들어, 부호화 블록이 2M×2N일 경우 예측 블록은 그보다 같거나 작은 2M×2N, M×N의 크기를 가질 수 있다. 또는, 2M×2N, 2M×N, M×2N, M×N의 크기를 가질 수 있다. 또는, 부호화 블록와 동일한 크기로 2M×2N의 크기를 가질 수 있다. 이때, 부호화 블록과 예측 블록이 동일한 크기를 갖는다는 것은 예측 블록의 분할을 수행하지 않고 부호화 블록의 분할을 통해 획득된 크기로 예측을 수행한다는 것을 의미할 수 있다. 즉, 예측 블록을 위한 분할 정보는 생성되지 않는다는 것을 의미한다. 이와 같은 설정은 변환 블록에도 적용될 수 있으며 분할된 부호화 블록 단위로 변환을 수행할 수도 있다.
다음과 같은 부/복호화 설정에 따라 다양한 구성이 가능할 수 있다. 예를 들어, (부호화 블록이 결정된 후) 부호화 블록에 기반하여 적어도 하나의 예측 블록과 적어도 하나의 변환 블록을 획득할 수 있다. 또는, 부호화 블록과 동일한 크기의 하나의 예측 블록을 획득할 수 있고, 부호화 블록에 기반하여 적어도 하나의 변환 블록을 획득할 수 있다. 또는, 부호화 블록과 동일한 크기의 하나의 예측 블록과 하나의 변환 블록을 획득할 수 있다. 상기 예에서 적어도 하나의 블록이 획득되는 경우는 각 블록의 분할 정보가 발생(생성)할 수 있고, 하나의 블록이 획득되는 경우는 각 블록의 분할 정보는 발생하지 않는다.
상기 결과에 따라 획득되는 다양한 크기의 정사각 또는 직사각 형태의 블록이 화면내 예측, 화면간 예측에 사용되는 블록일 수 있고, 잔차 성분에 대한 변환, 양자화에 사용되는 블록일 수 있으며, 복원 화소에 대한 필터링에 사용되는 블록일 수 있다.
한편, 복원 화소의 필터링이 적용되는 블록의 단위(예를 들어, SAO 등)는 최대 부호화 블록(예를 들어, M x M)을 기본 단위로 둘 수 있지만, 전술한 것과 같이 다양한 블록 크기 및 형태(예를 들어, M x N, M/2 x M/2, N x N/2 등)를 갖는 부호화 블록(예를 들어, 블록 분할에 따라 획득되는 부호화 블록 등. 또는 필터 블록이라는 단위를 따로 지원할 수도 있음) 단위로 필터링이 적용될 수 있다. 이는 상기 블록 단위로 필터링 관련 정보가 발생한다는 것을 의미한다.
또한, 분할부는 앞에서 설명한 블록 분할을 수행하는 블록 분할부 이외에 픽쳐 분할부를 더 포함할 수 있다. 픽쳐 분할부는 픽쳐를 적어도 하나의 처리 단위(예를 들어, 컬러 공간< YCbCr, RGB, XYZ 등>, 슬라이스, 타일, 블록 등) 등으로 분할할 수 있고, 블록 분할부는 최대(또는 기본) 부호화 단위를 적어도 하나의 처리 단위(예를 들어, 부호화, 예측, 변환, 양자화, 엔트로피, 인루프 필터 단위 등)으로 분할할 수 있다. 이때, 타일은 부호화 블록의 집합으로 하나의 픽쳐를 가로와 세로 방향으로 나눈 사각형 영역을 의미하며, 슬라이스는 부호화 블록의 스캔 순서에 따라 연속적인 부호화 블록의 집합으로 구성되는 영역을 의미한다.
영상의 컬러 포맷에 따라 적어도 하나의 컬러 공간으로 구성될 수 있다. 예를 들어, YCbCr의 경우 1개의 휘도 성분과 2개의 색차 성분으로 구성될 수 있다. 또한, 컬러 포맷에 따라 컬러 성분의 가로와 세로 길이 비율이 정해질 수 있다. 예를 들어, YCbCr 4:2:0인 경우에는 색차 성분의 가로, 세로 길이는 휘도 성분의 가로, 세로의 1/2 일 수 있고, YCbCr 4:4:4인 경우에는 색차 성분의 가로, 세로 길이는 휘도 성분과 동일한 길이를 가질 수 있다. 위와 같이 하나 이상의 컬러 공간으로 구성이 되는 경우 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다. 또한, 각 컬러 공간을 최대 부호화 블록으로 분할을 수행할 수 있다.
또한, 픽쳐를 적어도 하나의 타일들로 분할을 수행할 수 있다. 상세하게는, 픽쳐를 가로열(또는 세로열)로 분할을 수행하고, 세로열(또는 가로열)로 분할을 수행하여 적어도 하나의 타일을 획득할 수 있다. 또한, 각 타일은 적어도 하나의 타일 세그먼트로 분할을 수행할 수 있다. 또한, 각 타일 세그먼트를 최대 부호화 단위로 분할을 수행할 수 있다.
또한, 픽쳐를 적어도 하나의 슬라이스로 분할을 수행할 수 있다. 각 슬라이스는 적어도 하나의 슬라이스 세그먼트로 분할을 수행할 수 있다. 또한, 각 슬라이스 세그먼트를 최대 부호화 단위로 분할을 수행할 수 있다.
상기 단위 중 일부는 반드시 포함되지 않을 수 있으며, 부/복호화의 설정에 따라 일부 또는 전부가 선택적으로 포함될 수 있으며, 추가적인 단위가 포함될 수 있다.
픽쳐 분할부를 통해 획득되는 기본 부호화 단위는 컬러 공간에 따라 기본 부호화 블록으로 나뉠 수 있으며 영상의 특성 및 해상도 등에 따라 크기 및 형태가 결정될 수 있다. 지원되는 블록의 크기 또는 형태는 가로, 세로의 길이가 2의 지수승(2n)으로 표현되는 N×N 정사각 형태(2n×2n. 256×256, 128×128, 64×64, 32×32, 16×16, 8×8, 4×4 등. n은 2~8 사이의 정수)이거나, M×N 직사각 형태(2m×2n)일 수 있다. 예를 들어, 해상도가 높은 8k UHD급 영상의 경우 256×256, 1080p HD급 영상의 경우 128×128, WVGA급 영상의 경우 16×16 등 크기로 입력 영상을 분할할 수 있다.
상기 블록의 크기 또는 형태에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 비트스트림에 수록되어 전송될 수 있으며, 이는 복호화기에서 파싱하여 관련된 정보를 복원할 수 있다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 3을 참조하면, 영상 복호화 장치(30)는, 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330), 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.
또한, 예측부(310)는 다시 화면내 예측 모듈 및 화면간 예측 모듈을 포함하여 구성될 수 있다.
엔트로피 복호화부(305)는 영상 부호화 장치(20)로부터 전달된 비트스트림으로부터 양자화 계수열, 변환 계수열, 또는 신호열 등을 수신하고 이를 엔트로피 복호화 기법(CABAC, CAVLC 등)을 이용하여 복호화할 수 있고, 복호화 정보에 관한 구문 요소를 수신하여 획득된 데이터는 예측부(310)로 전달할 수 있다.
예측부(310)는 엔트로피 복호화부(305)로부터 전달된 데이터들에 기초하여 예측 블록을 생성할 수 있다. 예측부(310)은 앞서 설명한 영상 부호화 장치(20)의 예측부(200)과 동일한 과정을 수행한다.
역양자화부(315)는 비트스트림으로 제공되어 엔트로피 복호화부(305)에 의해 복호화된 양자화된 변환 계수들을 역양자화할 수 있다.
역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 잔차 블록을 생성할 수 있다.
이때, 역양자화부(315), 역변환부(320)는 앞서 설명한 영상 부호화 장치(20)의 변환부(210) 및 양자화부(215)에서 수행한 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환부(210) 및 양자화부(215)와 공유하는 동일한 과정 및 역변환을 사용할 수도 있고, 영상 부호화 장치(20)로부터 변환 및 양자화 과정에 관한 정보(예를 들면, 변환 크기, 변환 모양, 양자화 타입 등)를 이용하여 변환 및 양자화 과정을 역으로 수행할 수 있다.
역양자화 및 역변환 과정을 거친 잔차 블록은 예측부(310)에 의해 도출된 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있다. 이러한 가산은 가감산기(325)에 의해 이루어 질 수 있다.
필터(330)는 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 복호화 과정 전 후에 다른 루프 필터들을 비디오 품질을 향상시키기 위해 추가로 사용할 수도 있다.
복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.
영상 복호화 장치(30)는 도면에는 도시하지 않았으나 분할부를 더 포함할 수 있으며, 이때 분할부는 픽쳐 분할부와 블록 분할부로 구성될 수 있다. 분할부에 대해서는 도 2에 따른 영상 부호화 장치에서와 동일 또는 상응하는 구성으로 통상의 기술자가 용이하게 이해할 수 있으므로 구체적인 설명은 생략한다.
영상 부/복호화 과정에서는 입력되는 화소값이 출력되는 화소값과 다른 경우가 발생할 수 있으며, 연산상의 오류로 인한 왜곡을 방지하기 위해 화소값 조정 과정(Adjustment)이 수행될 수 있다. 화소값 조정 방법은 화소값의 범위를 넘는 화소값을 화소값의 범위 내로 조절하는 과정으로서, 클리핑(Clipping)으로 지칭할 수도 있다.
표 1은 화소값 조정이 수행되는 클리핑 함수(Clip_x)에 대한 예시 코드이다. 표1을 참조하면, 입력 화소값(pixel_val)과 허용되는 화소값 범위의 최소값(minI)과 최대값(maxI)이 클리핑 함수(Clip_x)의 파라미터로 입력될 수 있다. 이때, 비트 심도(bit_depth)를 기준으로 설명하면, 최소값(minI)은 0으로, 최대값(maxI)은 2bit_depth - 1일 수 있다. 클리핑 함수(Clip_x)가 수행되면, 최소값(minI, 파라미터 B)보다 작은 입력 화소값(pixel_val, 파라미터 A)은 최소값(minI)으로 변경되고, 최대값(maxI, 파라미터 C)보다 큰 입력 화소값은 최대값(maxI)으로 변경될 수 있다. 따라서, 출력값(output)은 화소값 조정이 완료된 출력 화소값(pixel_val')으로 반환될 수 있다.
이때, 화소값이 갖는 범위는 비트 심도에 따라 결정되지만, 영상(예를 들어, 픽쳐, 슬라이스, 타일, 블록 등)을 구성하는 화소값은 영상의 종류와 특성에 따라 다르므로 반드시 모든 화소값 범위 내에서 발생하는 것이 아니다. 본 발명의 일 실시예에 따르면, 실제 영상을 구성하는 화소값의 범위를 참조하여 영상 부/복호화 과정에서 활용할 수 있다.
예를 들어, 표 1에 따른 화소값 조정 방법에서도 클리핑 함수의 최소값(minI)을 실제 영상을 구성하는 화소값 중 가장 작은 값으로 사용할 수 있고, 클리핑 함수의 최대값(maxI)은 실제 영상을 구성하는 화소값 중 가장 큰 값을 사용할 수 있다.
정리하면, 영상 부/복호화 장치는 비트 심도에 기초한 화소값 조정 방법 및/또는 영상을 구성하는 화소값 범위에 기초한 화소값 조정 방법을 포함할 수 있다. 부/복호화기에서는 적응적인 화소값 조정 방법을 지원할지 여부를 결정하는 플래그 정보가 지원될 수 있으며, 해당 플래그 정보가 '1'인 경우에는 화소값 조정 방법 선택 정보가 발생할 수 있고, '0'인 경우에는 기 설정된 화소값 조정 방법(본 예에서 비트 심도에 기반한 방법)이 기본 화소값 조정 방법으로 사용될 수 있다. 상기 화소값 조정 방법 선택 정보가 영상을 구성하는 화소값 범위에 기초한 화소값 조정 방법을 가리킬 경우, 영상의 화소값 관련 정보가 포함될 수 있다. 예를 들어, 컬러 성분에 따라 각 영상의 최소값과 최대값 및 후술하는 중앙값 등에 대한 정보에 그 예일 수 있다. 화소값 조정 관련하여 발생하는 정보는 부호화기의 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위로 수록되어 전송될 수 있으며, 복호화기에서 수록된 정보를 파싱하여 동일한 단위에서 관련 정보를 복원할 수 있다.
한편, 상기 과정을 통해 비트 심도에 기초한 화소값 조정 또는 영상을 구성하는 화소값의 범위에 기초한 화소값 조정을 통해 화소값의 최소값과 최대값을 포함하는 화소값의 범위가 변경(결정 또는 정의)될 수 있으며, 추가적인 화소값 범위 정보 또한 변경(결정 또는 정의)될 수 있다. 예를 들면, 실제 영상을 구성하는 화소값의 최대값과 최소값이 변경될 수 있으며, 실제 영상을 구성하는 화소값의 중앙값 또한 변경될 수 있다.
즉, 비트 심도에 따른 화소값 조정 과정에서 minI은 영상의 최소 화소값, maxI는 영상의 최대 화소값, I는 컬러 성분을 의미할 수 있고, medianI는 영상의 중앙 화소값을 의미할 수 있다. minI는 0, maxI은 (1 << bit_depth) - 1, medianI은 1 << (bit_depth - 1)일 수 있으며, median은 부/복호화 설정에 따라 상기 예를 포함하여 다른 형태로 획득될 수 있다. 중앙값은 본 발명에서의 설명을 위한 하나의 용어일 뿐 영상의 부/복호화 과정에서 상기 화소값 조정 과정에 따라 변경(결정 또는 정의)될 수 있는 화소값 범위 정보를 나타내는 하나의 정보일 수 있다.
예를 들어, 영상을 구성하는 화소값의 범위에 따른 화소값 조정 과정에서 minI는 영상의 최소 화소값, maxI은 영상의 최대 화소값, medianI은 영상의 중앙 화소값일 수 있다. medianI은 영상 내 화소값들의 평균일 수 있고, 영상의 화소를 정렬할 때 가운데 위치한 값일 수 있고, 영상의 화소값 범위 정보에 따라 획득되는 값일 수 있다. 적어도 하나의 minI, maxI에서 medianI은 유도될 수 있다. 즉, medianI는 영상의 화소값 범위 내에 존재하는 하나의 화소값일 수 있다.
상세하게는, medianI은 (minI + maxI) / 2 또는 (minI + maxI) >> 1, (minI + maxI + 1) / 2, (minI + maxI + 1) >> 1 등과 같이 영상의 화소값 범위 정보(본 예에서 minI, maxI)에 따라 획득되는 값일 수 있으며, median은 부/복호화 설정에 따라 상기 예를 포함하여 다른 형태로 획득될 수 있다.
다음은 화소값 조정 과정에 따른 실시예(본 예에서 중앙값)를 설명한다.
일 예로, 기본 비트 심도는 8비트(0 ~ 255)이고 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정{본 예에서 최소값 10, 최대값 190. 최소값과 최대값으로부터 유도된다는 설정(평균) 하에 중앙값 100}이 선택되며 현재 블록의 위치는 영상(본 예에서 픽쳐) 내의 첫번째 블록일 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위, 위쪽, 오른쪽 위)은 존재하지 않으므로 참조 화소는 중앙값(100)으로 채워질 수 있다. 상기 참조 화소를 사용하여 예측 모드에 따라 화면내 예측 과정을 수행할 수 있다.
일 예로, 기본 비트 심도는 10비트(0 ~ 1023)이고 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정(본 예에서 중앙값 600. 관련 구문 요소가 존재}이 선택되며 현재 블록의 위치는 영상(본 예에서 슬라이스, 타일)내의 첫번째 블록일 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위, 위쪽, 오른쪽 위)은 존재하지 않으므로 참조 화소는 중앙값(600)으로 채워질 수 있다. 상기 참조 화소를 사용하여 예측 모드에 따라 화면내 예측 과정을 수행할 수 있다.
일 예로, 기본 비트 심도는 10비트이고 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정(본 예에서 중앙값 112. 관련 구문 요소가 존재)이 선택되며 이웃 블록의 부호화 모드(화면내 예측/화면간 예측) 등에 따라 현재 블록의 예측에 해당 블록의 화소의 이용가능 여부 등이 결정되는 설정이 활성화{본 예에서 해당 블록의 부호화 모드가 화면내 예측인 경우 현재 블록의 참조 화소로 사용가능, 화면간 예측인 경우 사용불가. 본 설정이 비활성화되는 경우에는 해당 블록의 부호화 모드와 상관 없이 현재 블록의 참조 화소로 사용가능. 관련 구문 요소는constrained_intra_pred_flag이며 P나 B영상 타입에서 발생 가능}되며 현재 블록의 위치는 영상의 왼쪽에 위치할 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위)은 존재하지 않으며 부/복호화에 사용될 이웃 블록(본 예에서 위쪽, 오른쪽 위)은 존재하지만 해당 블록의 부호화 모드가 화면간 예측이라 상기 설정에 의해 사용이 금지되므로 이용가능한 참조 화소가 존재하지 않을 경우 참조 화소는 중앙값(본 예에서 112)으로 채워질 수 있다. 즉, 사용가능한 참조 화소가 존재하지 않아 영상 화소값 범위의 중앙값으로 채울 수 있다. 상기 참조 화소를 사용하여 예측 모드에 따라 화면내 예측 과정을 수행할 수 있다.
상기 실시예에서는 예측부에서 상기 중앙값 관련한 다양한 경우를 나타내었지만, 이는 영상 부/복호화의 다른 구성에 포함되어 구성될 수도 있다. 또한, 상기 실시예만으로 한정되지 않고 다양한 경우로 변형 및 확장이 가능할 수 있다.
본 발명에서 화소값 조정 과정은 예측부, 변환부, 양자화부, 역양자화부, 역변환부, 필터부, 메모리 등의 부/복호화 과정에 적용될 수 있다. 예를 들어, 화소값 조정 방법에서의 입력 화소는 예측 과정에서의 참조 화소(Reference Sample) 또는 예측 화소(Prediction Sample)일 수 있고, 변환, 양자화, 역변환, 역양자화 과정에서의 복원 화소(Reconstructed Sample)일 수 있다. 또한, 인루프 필터 과정에서의 복원 화소일 수 있고, 메모리에서의 저장 화소(Storage Sample)일 수 있다. 이때, 변환과 양자화, 그 역 과정에서의 복원 화소는 인루프 필터 적용 전의 복원 화소를 의미할 수 있다. 인루프 필터에서의 복원 화소는 인루프 필터 적용 후의 복원 화소를 의미할 수 있다. 디블록킹 필터 과정에서의 복원 화소는 디블록킹 필터 적용 후의 복원 화소를 의미할 수 있다. SAO 과정에서의 복원 화소는 SAO 적용 후의 복원 화소를 의미할 수 있다. ALF 과정에서의 복원 화소는 ALF 적용 후의 복원 화소를 의미할 수 있다. 위와 같이 다양한 경우에 대한 예시를 설명하였으나, 이에 한정되지 않고 화소값 조정 과정이 호출되는 모든 부/복호화 과정의 입력, 중간, 출력 단계에서 적용될 수 있다.
도 4a 내지 도 4c는 본 발명의 일 실시예에 따른 영상 부/복호화 장치가 사용하는 서브 영역들인 블록, 타일, 슬라이스를 나타낸 예시도이다.
도 4a를 참조하면, 픽쳐를 세로 방향과 가로 방향으로 일정한 길이(본 예에서 B_W, B_H) 간격으로 분할하여 획득된 블록(Block)을 확인할 수 있다. 여기서 블록은 픽쳐 분할부를 통해 획득되는 기본 부호화 단위(또는 최대 부호화 단위)일 수 있으며, 이는 타일, 슬라이스 등에도 적용되는 단위일 수 있다.
도 4b를 참조하면, 픽쳐를 세로 방향 및 가로 방향 중 적어도 한 방향으로 분할하여 획득된 타일을 확인할 수 있다. 타일은 다른 영역(다른 타일 등)과는 독립적으로 부/복호화를 수행하거나 부분적으로 의존적인 부/복호화를 수행할 수 있다. 타일은 도 4b에서와 같이 공간적으로 인접한 블록들의 묶음(본 예에서 제1 타일의 너비(T_W0) 및 높이(T_H0), 제2 타일의 너비(T_W1) 및 높이(T_H1))으로 구성할 수 있다. 세로 방향 및 가로 방향으로 중 어느 방향으로도 분할되지 않는 경우에는 하나의 타일이 하나의 픽쳐일 수 있다.
도 4c를 참조하면, 픽쳐를 연속하는 블록들의 묶음으로 분할하여 획득한 슬라이스를 확인할 수 있다. 슬라이스는 다른 영역(또는 다른 슬라이스)과는 독립적으로 부/복호화를 수행하거나 부분적으로 의존적인 부/복호화를 수행할 수 있다. 연속하는 블록들의 묶음은 스캔 순서에 따라 결정될 수 있으며, 일반적으로는 래스터 스캔(Raster Scan) 순서를 따르나 이는 부/복호화기의 설정에 따라 정의될 수 있다. 픽쳐에 존재하는 모든 블록이 하나의 묶음으로 구성된 경우에는 하나의 슬라이스가 하나의 픽쳐일 수 있다.
도 5는 본 발명의 일 실시예에 따른 스캔 순서에 따라 연속하는 블록의 묶음으로 슬라이스를 생성하는 예시도이다.
픽쳐에서의 부/복호화는 래스터 스캔(Raster Scan) 순서를 따를 수 있으나 적어도 하나의 스캔 순서 후보군 중에 택일하여 적용할 수 있으며 이는 부/복호화 설정에 따라 정의될 수 있다. 여기서 스캔 순서는 스캔의 시작점을 결정하는 단계, 스캔의 시작점을 기준으로 좌우방향 또는 상하방향 중 하나의 방향에 따라 1차 스캔 순서를 결정하는 단계 및 1차 스캔 순서에서 결정되지 않은 방향(좌우, 상하 중 나머지 하나)에 따라 2차 스캔 순서를 결정하는 단계를 통해 결정될 수 있다. 여기서 스캔 시작점은 픽쳐 등 기준영역을 대상으로 가장 좌측 상단, 가장 좌측 하단, 가장 우측 상단, 가장 우측 하단 중 하나일 수 있다.
도 5a를 참조하면, 스캔 시작점으로 픽쳐의 가장 좌측 상단점을 설정하고, 1차 스캔 순서로는 좌에서 우로 이동하는 방향을 설정하며, 2차 스캔 순서로는 상에서 하로(위에서 아래줄로) 이동하는 방향을 설정한 예시를 확인할 수 있다. 래스터 스캔이 도 5a에 따른 스캔 순서일 수 있는데, 이러한 순서에 따라 연속하는 블록을 묶으면, 제1 슬라이스(S0), 제2 슬라이스(S1), 제3 슬라이스(S2) 및 제4 슬라이스(S3)를 획득할 수 있다.
도 5b를 참조하면, 스캔 시작점으로 픽쳐의 가장 좌측 상단점을 설정하고, 1차 스캔 순서로는 상에서 하로 이동하는 방향을 설정하며, 2차 스캔 순서로는 좌에서 우로 이동하는 방향을 설정한 예시를 확인할 수 있다. 도 5b에 따른 스캔 순서에 따라 연속하는 블록들을 묶으면, 도 5a와 다른 형태로 이루어지는 제1 슬라이스(S0), 제2 슬라이스(S1), 제3 슬라이스(S2) 및 제4 슬라이스(S3)를 획득할 수 있다.
도 6a 내지 도 6d는 픽쳐 내의 타일들과 기본 부호화 단위를 나타낸 예시도이다.
본 발명의 일 실시예에 따르면 픽쳐들을 적어도 하나의 세로열들과 적어도 하나의 가로열들로 분할하여 타일들을 형성하고, 타일 단위로 부/복호화가 수행될 수 있다. 도 6a에서 픽쳐가 세로열의 경계(내부 경계. b1, b2)와 가로열의 경계(내부 경계. b5)에 의해 타일들로 분할될 수 있다. 세로열 경계(내부 경계. b1, b2) 중 하나 이상의 경계와 가로열 경계(내부 경계. b5) 중 하나 이상 경계로 둘러싸인 영역이 타일들이다. 영상 외부에 위치하는 경우에는 세로열의 경계(외부 경계. b0, b3)와 가로열의 경계(외부 경계. b4, b6)가 추가적으로 고려될 수 있다. 상기의 과정을 통해 획득된 타일의 경우 사각형 형태를 가질 수 있으며 영상의 특성, 포맷 등에 대한 부/복호화기의 설정에 따라 정사각 형태를 가질 수 있다.
픽쳐를 세로열 경계와 가로열 경계로 분할하여 형성되는 타일은 복수의 블록을 포함할 수 있다. 픽쳐를 분할하는 세로열 경계와 가로열 경계는 이웃하는 블록들의 경계를 따라 지나가므로 각 블록을 분할하지는 않는다. 따라서, 각 타일은 정수 개의 블록들을 포함할 수 있다. 만일, 타일이 정수 개의 블록으로 구성되어 있지 않을 경우 상위 단위인 픽쳐 또는 타일에서 정수 개의 블록 구성이 가능하도록 확장을 수행할 수도 있다. 따라서 픽쳐의 타일별로 프로세싱이 수행되면서, 각 타일에서는 블록 단위로 부/복호화가 수행될 수 있다.
픽쳐를 적어도 하나의 타일들로 분할할 경우 타일에 대한 분할 정보(예를 들어, 세로열 경계와 가로열 경계의 위치<또는 그로 인한 각 타일의 가로 길이와 세로 길이> 또는 균등/비균등 분할에 대한 정보 등)가 시퀀스, 픽쳐 등의 단위로 비트스트림에 수록되어 전송될 수 있다. 픽쳐의 복호화시에는 시퀀스, 픽쳐 등의 단위로부터 타일에 대한 분할 정보를 파싱하여, 타일별로 복호화하여 픽쳐의 각 영역들을 복원하고, 타일에 대한 분할 정보를 이용하여 각 영역들을 하나의 픽쳐로 복원할 수 있다.
타일의 경우 높은 해상도를 갖는 영상의 큰 데이터량을 실시간으로 프로세싱하기 위한 목적으로 하나 이상의 타일들로 분할을 하여 부/복호화를 수행할 수 있다. 이 경우 하나의 큰 영상이 작은 크기의 여러 영상으로 나누어질 뿐 각 타일의 부/복호화 과정에서 필요한 설정 정보는 상위 단위(예를 들어, 픽쳐. PPS)에서 할당받을 수 있다. 예를 들어, 각 타일 단위로 헤더 정보를 따로 생성 및 전송하지 않고 PPS에서 하나의 부/복호화 설정 정보를 참조할 수 있다.
타일에 대한 분할 정보 외에 추가적인 정보가 비디오, 시퀀스, 픽쳐 등의 상위 단위로 수록되어 전송될 수 있다. 이때, 추가되는 정보는 타일 단위의 부/복호화 과정에서 필요한 적어도 하나의 부/복호화 설정 정보일 수 있다.
또는, 타일 단위로 타일에 대한 분할 정보 및 추가적인 정보를 수록하여 전송할 수도 있다. 이는 타일 단위로 부/복호화 설정을 두어 부/복호화를 수행할 수 있다는 점에서 상위 단위에서 결정된 부/복호화 설정을 따르는 것과는 차이점이 존재한다. 상세하게는, 상위 단위에서 결정된 하나의 부/복호화 설정을 따르는 것과는 차이점이 존재한다.
예를 들어, 각 타일 단위로 헤더 정보를 따로 생성 및 전송할 수 있거나 PPS에서 하나 이상의 부/복호화 설정 정보를 참조할 수도 있다. 이때, PPS에서 타일 단위의 부/복호화를 위한 설정 정보 후보군을 하나 이상 포함할 수 있다.
위와 같이 타일 단위의 부/복호화를 위한 설정 정보는 타일의 타입(I/P/B), 타일이 참조하는 픽쳐 리스트에 관한 정보, 타일의 양자화 파라미터(Quantization Parameter, QP) 정보, 타일 단위의 인루프 필터링 컨트롤, 스캔 순서, 부/복호화 여부 등 타일의 부/복호화에 필요한 정보를 포함할 수 있다.
도 6a를 참조하면, 타일 단위로 독립적인 스캔 순서가 적용되는 예시를 확인할 수 있다. 따라서, 타일 단위로 결정되는 스캔 순서에 따라 부/복호화를 시작하는 초기 블록이 달라질 수 있다. 도 6a에서 각 블록들에 표기되어 있는 숫자는, 타일 내에서 블록들의 스캔 순서, 즉 부/복호화되기 위해 처리되는 순서를 나타낸다. 또한, 도 6a는 하나 이상의 스캔 순서가 각 타일에 적용되는 예를 나타낸다. <스캔 시작점/1차 스캔 순서/2차 스캔 순서>에 따라 타일 내에서의 스캔 순서가 결정되는 것으로 표기할 경우, 제1 타일(60)은 <좌측 상단/좌->우/상->하>, 제2 타일(61)은 <좌측 상단/상->하/좌->우>, 제3 타일(62)은 <우측 상단/상->하/우->좌>, 제4 타일(63)은 <우측 하단/하->상/우->좌>, 제5 타일(64)은 <우측 하단/우->좌/하->상>, 제6 타일(65)은 <우측 상단/우->좌/상->하>에 따라 결정되는 스캔 순서(또는 부/복호화 순서)를 가질 수 있다.
타일 및 타일 세그먼트의 분할은 제 1 스캔 순서(예를 들어, 픽쳐의 스캔 순서. Z-스캔순서 등)를 기반으로 수행하고, 타일 및 타일 세그먼트에서의 부/복호화는 제 1 스캔 순서에 따라 수행(예를 들어, 픽쳐의 스캔 순서에 따라 타일, 블록 등의 부/복호화를 수행)할 수 있다. 또는, 타일 및 타일 세그먼트의 분할은 제 1 스캔 순서를 기반으로 수행하고, 타일 및 타일 세그먼트에서의 부/복호화는 제 2 스캔 순서(예를 들어, 타일 단위의 독립적인 스캔 순서)에 따라 수행할 수 있다. 이때, 제 2 스캔 순서는 각 타일 및 타일 세그먼트에 따라 같거나 다를 수 있다.
도 6b를 참조하면, 타일 단위로 부/복호화가 선택적으로 수행되는 예를 확인할 수 있는데, 도 6a에 따른 각 타일에 대해 부/복호화를 수행할지 여부를 지시하는 0 또는 1을 할당한 것을 확인할 수 있다. 이때, 부/복호화가 수행되지 않는 타일은 임의의 화소 또는 이미 부/복호화된 영역으로부터 획득된 데이터로 채울 수 있다. 임의의 화소는 비트스트림으로부터 전송된 비트 심도로 표현될 수 있는 화소의 범위에 속하는 하나의 화소이며 이에 대한 정보가 결정 및 수록되어 전송될 수 있으며, 부/복호화기의 공통된 설정에 따라 정해진 기설정된 화소(예를 들어, 화소의 범위의 Min 또는 Median 또는 Max 등)일 수 있다.
또한, 타일 간의 부분적으로 의존적인 부/복호화가 가능한 설정에서는 부/복호화가 완료된 인접하는 타일로부터 획득되는 데이터를 해당 타일의 부/복호화에 참조할 수 있다.
예를 들어, 인접하는 부/복호화가 완료된 타일의 경계에 위치하는 적어도 하나의 화소들의 데이터를 현재 타일에 속한 일부 영역의 부/복호화에 참조하기 위한 목적으로 임시 메모리에 포함시키는 방식으로 사용될 수 있다.
또는, 상위 단위에서 결정되는 영상의 포맷, 특성 등{예를 들어, omnidirectional 영상(또는 360도 가상 현실 영상)과 같은 3차원 공간의 영상을 2차원 공간으로 변환하여 부/복호화를 수행할 때, 투영 포맷(Projection format) 등의 부/복호화 설정에 따라 복수의 단위(또는 표면<Face>)로 나뉘는 경우(또는 분할)에 3차원 공간 상에서의 인접한 영역은 공간적인 상관성이 존재한다고 볼 수 있음. 이때, 공간 변환(3차원 -> 2차원)하면서 각 단위(또는 표면)의 2차원 공간에 배치되는 설정에 따라 2차원 공간 상에 인접한 단위들이 꼭 공간적인 상관성이 존재한다고 볼 수 없음. 즉, 2차원 공간에서 인접한 단위들은 공간적인 상관성이 존재하거나 존재하지 않을 수 있고, 인접하지 않은 단위들은 공간적인 상관성이 존재하지 않거나 존재할 수 있음. 이는 360도 영상 부/복호화 설정 정보 등을 통해 공간적인 상관성이 존재하는지 여부를 확인할 수 있음}에 따라 공간적인 상관성이 존재하는 부/복호화가 완료된 영역의 데이터를 참조할 수 있다. 이때, 참조되는 데이터는 일정 영역을 그대로 복사하여 획득하는 메모리 복사(Memory Copy) 방법이 사용되거나, 일련의 변환 과정을 통해 획득하는 방법이 사용될 수 있다.
도 6c를 참조하면, 타일 단위로 독립적인 QP(Quantization Parameter)가 적용되는 예를 확인할 수 있는데, 각 타일에 대하여 QP0 내지 QP5 등과 같이 독립적인 양자화 파라미터가 적용됨으로써 양자화가 수행될 수 있다. 여기서 양자화 파라미터는 타일보다 상위 단위(픽쳐 등)에서 설정된 QP와의 차분치 정보 등을 통해 표현될 수도 있다.
도 6d를 참조하면, 픽쳐 내의 2개의 타일(T0, T1, T2를 포함하여 구성되는 제1 타일, T3, T4, T5를 포함하여 구성되는 제2 타일)과 6개의 타일 세그먼트(T0~T5)로 구성되어 있는 예를 확인할 수 있다. 타일은 경계선(b7)에 의해 구분될 수 있으며, 타일 세그먼트는 경계선(b1~b4, b7)에 의해 구분될 수 있다. 이와 같이 타일 및 타일 세그먼트는 경계선(b0~b8)들로 획득될 수 있다. 타일 세그먼트의 경우 타일 안에서의 분할이 이뤄지고 그에 따른 분할 정보를 생성할 수도 있다. 예를 들어, 세로열 경계인 b1, b2는 b3, b4와 각각 연속적인 경계일 수 있거나, 불연속적인 경계일 수도 있다.
타일 세그먼트들(T0~T5)의 타입은, 종속적 타일 세그먼트(T1,T2,T4,T5)와 독립적 타일 세그먼트(T0,T3)로 분류될 수 있다. 종속적 타일 세그먼트에서는, 소정 타일 세그먼트에 대한 텍스쳐 부호화 및 엔트로피 부호화에서 이용되거나 생성되는 정보가, 다른 타일 세그먼트의 텍스쳐 부호화 및 엔트로피 부호화를 위해 참조될 수 있다. 복호화시에도 마찬가지로, 종속적 타일 세그먼트들 중 소정 타일 세그먼트에 대한 엔트로피 복호화에서 파싱 정보 및 텍스쳐 복호화에서 이용되거나 복원되는 정보가, 다른 타일 세그먼트의 엔트로피 복호화 및 소스 복호화를 위해 참조될 수 있다. 타일 세그먼트는 타일 단위로 부/복호화 설정을 두어 부/복호화를 수행한다는 가정하에 설명한다.
독립적 타일 세그먼트에서는, 타일 세그먼트별로 텍스쳐 부호화 및 엔트로피 부호화에서 이용되거나 생성되는 정보가 서로 전혀 참조되지 않고, 독립적으로 부호화된다. 복호화시에도 마찬가지로, 독립적 타일 세그먼트의 엔트로피 복호화 및 텍스쳐 복호화를 위해, 다른 타일 세그먼트의 파싱 정보 및 복원 정보는 전혀 이용되지 않는다.
타일 세그먼트의 타입이 종속적 타일 세그먼트 또는 독립적 타일 세그먼트인지에 대한 정보는, 타일 세그먼트 헤더에 수록되어 전송될 수 있다. 픽쳐의 복호화시에는 타일 세그먼트 헤더로부터 타일 세그먼트 타입에 대한 정보를 파싱하여, 타일 세그먼트 타입에 따라 현재 타일 세그먼트를 다른 타일 세그먼트를 참조하여 복원하거나, 다른 타일 세그먼트와는 독립적으로 복호화할지 여부를 결정할 수 있다.
특히, 독립적 타일 세그먼트의 타일 세그먼트 헤더의 구문 요소들의 값, 즉 헤더 정보는, 선행하는 타일 세그먼트의 헤더 정보로부터 참조하여 결정될 수 없다. 이에 반해, 종속적 타일 세그먼트의 타일 세그먼트 헤더의 헤더 정보는, 선행하는 타일 세그먼트의 헤더 정보로부터 참조하여 결정될 수 있다.
하나의 타일은 적어도 하나의 타일 세그먼트를 포함할 수 있다. 하나의 타일이 타일 세그먼트 하나만 포함한다면, 독립적인 타일 세그먼트를 포함할 수 있다. 또한, 하나의 타일은 하나의 독립적인 타일 세그먼트와 독립적인 세그먼트에 이어서 적어도 하나의 종속적 타일 세그먼트를 더 포함할 수 있다. 하나의 타일에 포함되는 적어도 하나의 타일 세그먼트는 동일한 억세스 유닛(Access Unit)을 통해 송/수신될 수 있다.
도 7은 타일 단위로 부호화 또는 복호화가 수행될 경우에 설정되는 정보들을 명시적으로 다룬 소스 코드이다.
도 7을 참조하면, tile_enabled_flag는 타일 분할 여부에 대한 구문 요소를 의미한다. tile_enabled_flag가 활성화된 경우(1이라 가정)에는 2개 이상의 타일로 분할하여 부/복호화를 수행하는 것을 의미하며 추가적인 타일 관련 정보를 확인할 수 있다. 비활성화된 경우(0이라 가정)에는 픽쳐를 하나의 타일로 간주하여 픽쳐 단위(또는 슬라이스 단위)로 부/복호화를 수행할 수 있다. num_tile_rows_minus1과 num_tile_columns_minus1에 1을 각각 더한 값은 픽쳐의 가로 방향 기준, 세로 방향 기준으로 분할된 타일의 개수를 의미한다. 본 예에서는 나와있지 않지만 타일의 균등 또는 불균등 분할 여부(를 지시하는 신호)에 따라 각 타일의 가로, 세로 길이에 대한 정보는 추가적으로 생성이 될 수 있으며, 각 타일의 가로, 세로 길이는 기본 부호화 단위의 개수로 표현되어 생성될 수 있다.
loop_filter_across_tile_enabled_flag는 타일 경계에 대해서 인루프 필터 적용 여부에 대한 구문 요소이다. loop_filter_across_tile_enabled_flag가 활성화된 경우(1이라 가정) 타일 경계에 대해서 디블록킹 필터와 SAO, ALF 등의 부/복호화기가 지원하는 인루프 필터를 수행할 수 있고, 비활성화된 경우(0이라 가정)에는 타일 경계에 대해서 디블록킹 필터, SAO, ALF등의 인루프 필터를 수행하지 않을 수 있다. 본 예에서는 loop_filter_across_tile_enabled_flag가 활성화된 경우는 디블록킹 필터, SAO, ALF 등의 모든 인루프 필터가 활성화되는 것을 의미하나, 이는 이에 한정하지 않고 각 인루프 필터마다 개별적으로 인루프 필터 적용 유무에 대해 설정할 수 있거나 그에 관한 추가적인 정보(각 인루프 필터의 적용 여부를 지시하는 신호)가 생성될 수도 있다.
independent_tile_coding_setting_enabled_flag는 타일 단위의 부/복호화 설정 정보의 지원 여부에 대한 구문 요소이다. independent_tile_coding_setting_enabled_flag가 활성화된 경우(1이라 가정)에는 타일 단위로 독립적인 부/복호화 설정을 두어 부/복호화를 수행할 수 있다. 예를 들어, 타일 단위로 타일에 대한 분할 정보 또는 부/복호화 과정에서 필요한 설정 정보를 생성하여 부/복호화를 수행할 수 있다. 또는, 상위 단위에서 결정된 적어도 하나의 부/복호화 설정을 참조할 수 있다. 비활성화된 경우(0이라 가정)에는 타일의 부/복호화 과정에서 필요한 설정 정보는 상위 단위에서 할당받을 수 있다. 상세하게는, 상위 단위(예를 들어, 픽쳐)에서 결정된 하나의 부/복호화 설정을 참조할 수 있다.
타일 단위의 부/복호화 설정이 가능할 경우 tile_qp_offset_enabled_flag, tile_coding_skip_enabled_flag, tile_adaptive_scan_enabled_flag 등이 추가로 지원되어 타일 단위의 부/복호화 설정을 결정할 수 있다. 위의 구문 요소는 각각 타일 단위의 QP 설정, 타일 단위의 부/복호화 적용, 타일 단위의 스캔 순서의 적용 여부를 나타내는 구문 요소이다. 각 구문 요소의 활성화 여부(1이라 가정)에 따라 각 타일 단위로 그와 관련된 추가적인 정보가 생성될 수 있다.
tile_coding_skip_flag는 타일의 부/복호화 여부를 나타내는 구문 요소로 활성화되는 경우 부/복호화를 수행하지 않고, 비활성화되는 경우 부/복호화를 수행할 수 있다. 타일의 부/복호화 수행 여부에 따라 타일 단위의 부/복호화 설정 관련 정보의 추가적인 확인 여부가 결정될 수 있다. tile_coding_skip_flag가 활성화된 경우(1이라 가정) 타일 단위의 부/복호화 설정 관련 정보는 확인하지 않고, 비활성화된 경우(0이라 가정) 타일 단위의 부/복호화 설정 정보를 확인할 수 있다. tile_type은 타일의 타입을 나타내며 I/P/B 중 하나로 결정될 수 있다. tile_scan_idx는 타일의 스캔 순서를 나타내며 하나 이상의 스캔 순서에 대한 후보군 중 하나로 결정될 수 있다. tile_qp_offset은 타일 단위로 결정되는 QP관련 정보를 나타내며 상위 단위에서 결정된 QP와의 차분치 정보로 구성될 수 있다. 또한, end_of_tile_flag, end_of_tile_segment_flag와 같은 구문 요소가 추가 구성될 수 있다.
상기 예는 타일 단위의 부/복호화 설정에 관한 일부 예이며 상위 단위에서 결정된 부/복호화 설정 중 그대로 타일에 적용할 지 또는 일부는 타일에 독립적인 설정을 지원할 지 등이 결정될 수 있다. 타일 단위의 부/복호화 설정이 상위 단위에서 지원 여부가 결정되는 예를 들었지만, 이는 타일 단위로 헤더 정보가 생성되어 관련 정보가 수록되어 전송될 수도 있다. 또한, 상기 예는 타일 단위의 부/복호화 설정에 관한 일부 예를 나타내며, 이 외의 부/복호화 과정 중에 필요한 설정 정보가 고려될 수 있다. 상기 예에서 언급된 구문 요소들은 다양한 방법의 이진화(고정 길이 이진화, 단항 이진화, Rice 이진화, Exp-Golomb 이진화 등)를 통해 부호화되어 비트스트림에 수록되어 전송될 수 있으며, 이는 복호화기에서 파싱하여 관련된 정보를 복원할 수 있다.
위에서 언급된 정보를 포함하여 타일 단위의 부/복호화 설정에 관련된 정보들은 명시적으로 관련 정보를 생성할 수 있거나 상위 단위에서 결정된 영상의 포맷, 특성 등에 따라 묵시적으로 부/복호화에 대한 설정이 결정될 수도 있다.
도 8은 본 발명의 일 실시예에 따른 상대적 분류에 따라 샘플 적응적 오프셋이 적용되는 샘플 화소를 설명하기 위한 예시도이다. 도 9는 본 발명의 일 실시예에 따른 상대적 분류에서 엣지에 따라 분류된 카테고리를 설명하기 위한 예시도이다.
SAO는 부/복호화 과정에서 QP 등의 부/복호화 설정에 따른 화질 저하를 줄이고자 하는 기술이다. SAO는 샘플(예를 들면, 화소) 단위로 오프셋 값을 더하는 과정(또는 오프셋으로 보정하는 과정)을 수행할 수 있다. 이때, 오프셋 값은 샘플의 컬러 성분, 분류 기준(뒤에서 설명), 세부 분류 기준(뒤에서 설명), 샘플의 (x,y) 좌표값 등에 따라 결정될 수 있다. 이때, SAO는 후처리 필터 또는 인루프 필터로 지칭되거나 이러한 필터에 포함된 필터링 방법 중 하나일 수 있다. 여기서 SAO가 적용되는 대상인 샘플 화소는 잔차 신호에 예측 정보가 가산하여 생성되는 복원 화소를 의미할 수 있다. 상세하게는, 역양자화와 역변환을 거친 현재 영상의 잔차 신호와 화면내 예측 또는 화면간 예측 과정을 거친 현재 영상의 예측 신호를 가산하여 획득되는 복원 영상에 인루프 필터링(예를 들어, SAO, ALF 등)을 적용하는 것을 의미하며, 이때, 입력 영상과 복원 영상 간의 왜곡에 기반하여 오프셋 값이 획득될 수 있다.
이때, 샘플 화소 단위로 오프셋 정보를 생성하기에는 많은 데이터량이 필요하게 되므로 샘플들의 집합 단위로 오프셋 정보를 생성할 수 있다. 따라서, 하나의 오프셋 정보가 적용되는 샘플들의 집합을 구성하는 분류 기준이 설정될 필요가 있다. 이때, 분류 기준은 다시 적어도 하나의 세부 분류 기준으로 세분화할 수 있다.
예를 들어, 분류 기준은 샘플 화소가 엣지를 갖는지 여부에 따른 분류인 엣지 오프셋(Edge Offset, EO)과 샘플 화소가 속하는 대역에 따른 분류인 밴드 오프셋(Band Offset, BO)이 있을 수 있으며, 추가적인 오프셋이 포함될 수 있다. 이때, 엣지 오프셋은 에지 방향, 에지 카테고리에 따라 세부 분류 기준이 추가로 설정될 수 있다. 또한, 밴드 오프셋은 대역 위치에 따라 세부 분류 기준이 추가로 설정될 수 있다. 상기 설정은 부/복호화기에 상기 정보를 포함하여 세부 분류 기준의 개수 및 종류, 추가적인 하위 세부 분류 등이 결정될 수 있다. 오프셋에 대한 설정은 슬라이스/타일 타입(I/P/B), 부호화 모드, 컬러 성분/공간, 블록의 크기 및 형태 등의 요인에 따라 결정될 수 있다.
본 발명의 일 실시예에 따른 샘플 분류 방법은 상대적 분류와 절대적 분류로 구분할 수 있다. 상대적 분류는 오프셋을 적용할 샘플과 적어도 하나의 이웃 샘플과의 상대성(또는 상관성)에 기초하여 샘플을 분류하는 방법일 수 있고, 절대적 분류는 오프셋을 적용할 샘플 자체의 특성에 기초하여 샘플을 분류하는 방법일 수 있다.
상대적 분류는 샘플 간의 기울기 정보, 에지 정보 등의 특성에 대해 둘 이상의 샘플을 기반으로 획득되는 판단 결과에 따라 수행될 수 있다. 상세하게는, 상대적 분류는 부/복호화가 완료된 현재 샘플과 부/복호화가 완료된 적어도 하나의 이웃 샘플을 기반으로 할 수 있다.
도 8을 참조하면, 현재 샘플(C_sample)과 현재 샘플의 이웃 샘플(N_sample1, N_sample2, ..., N_sample8)을 설정하는 방법을 확인할 수 있다.
구체적으로, 도 8에서 현재 샘플(C_sample)을 중심으로 가로 방향(86), 세로 방향(82), 대각 방향들(80, 84)에 의해 설정되는 세개의 샘플 사이의 관계에 따라 현재 샘플을 분류할 수 있다. 여기서 도 8에 도시된 방향들을 엣지 방향으로 지칭할 수도 있다.
여기서는 현재 샘플을 중심으로 세 개의 연속하는 샘플들 사이의 관계에 따라 상대적 분류가 적용되는 것으로 도시하였으나, 세개 이상의 홀수 개(5, 7, 9 등)의 연속하는 샘플들을 도 8에 도시된 현재 샘플을 중심으로 설정되는 방향(80, 82, 84, 86)에 따라 선정하는 방식으로도 구현할 수 있다.
도 8에 도시된 복수의 방향(80, 82, 84, 86)에 따라 선정되는 3개의 샘플들 상호간의 관계에 따라 카테고리를 분류하면 도 9와 같다.
도 9를 참조하면, 세개의 샘플들 사이의 화소값 비교를 통해 결정되는 카테고리를 확인할 수 있는데, 여기서 그래프의 높이는 샘플의 화소값을 의미하며, 가운데 도시된 샘플이 현재 샘플(C_sample)이며, 좌우에 있는 샘플이 이웃 샘플(N_sample)일 수 있다. 도 9와 같이 세개의 샘플들 상호간 화소값 크기 비교를 통해 카테고리를 분류하는 방법은 세개의 샘플들에 따라 형성되는 엣지에 따른 카테고리 분류로 지칭할 수 있다. 따라서, 도 9에 따른 카테고리마다 오프셋 정보(또는 오프셋 값)를 설정하는 방법을 엣지 오프셋으로 지칭할 수 있다.
구체적으로 상기 수학식 1은 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 작은 화소값을 갖는 경우를 의미하며, 수학식 1을 만족할 때, 현재 샘플을 제1 카테고리(Category 1)로 분류할 수 있다.
상기 수학식 2 및 3은 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 작거나 같은 화소값을 같은 경우를 의미한다. 상기 수학식 2 또는 3을 만족하면, 현재 샘플을 제2 카테고리(Category 2)로 분류할 수 있다.
상기 수학식 4 및 5는 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 크거나 같은 화소값을 같은 경우를 의미한다. 상기 수학식 4 또는 5를 만족하면, 현재 샘플을 제3 카테고리(Category 3)로 분류할 수 있다.
상기 수학식 6은 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 큰 화소값을 갖는 경우를 의미하며, 수학식 6을 만족할 때, 현재 샘플을 제4 카테고리(Category 4)로 분류할 수 있다.
수학식 1 내지 6에서 이웃 샘플들은 도 8에 따른 방향에서 선정되는 두 개의 이웃 샘플(각각 N_sampleA, N_sampleB로 지칭)을 대상으로 하였으나, 두 개 이상의 이웃 샘플이 선정될 수도 있다.
도 9를 참조하면, 앞에서 설명한 제1 카테고리(Category 1), 제2 카테고리(Category 2), 제3 카테고리(Category 3), 제4 카테고리(Category 4)에 따라 화소값의 상대적 크기 관계를 나타낸 것을 확인할 수 있다.
여기서 분류된 카테고리 단위(예를 들어, 카데고리 전체 또는 일부가 대상일 수 있거나 도시되지 않은 추가적인 카데고리가 대상일 수 있음)로 오프셋 정보가 획득 및 생성될 수 있다. 제1 카테고리 내지 제4 카테고리로 분류되지 않은 샘플들은 오프셋이 적용되지 않는 샘플로 분류될 수 있다. 여기서 제1 카테고리 내지 제4 카테고리를 분류하는 기준은 부호화 장치 및 복호화 장치에서 미리 설정될 수 있으며, 도 8에서 같이 3개의 샘플 화소를 결정하는 방향(엣지 방향으로 지칭할 수도 있다)은 부호화 장치가 그러한 방향들을 지시하는 정보를 생성하여 복호화 장치로 전송하고, 복호화 장치는 방향 정보를 수신할 수 있다. 도 9에 따른 카테고리를 예로 들면, 도 8에 따른 제1 방향(80), 제3 방향(82), 제5 방향(84), 제7 방향(86) 중 어느 하나를 지시하는 방향 정보(또는 엣지 방향 정보로 지칭)가 생성될 수 있다.
이때, 오프셋 정보는 보정되는 현재 샘플이 이웃 샘플의 평균으로 가까워진다는 점을 전제하면, 카테고리 1, 2에서 오프셋의 부호는 양(+)이어야 하고, 카테고리 3, 4에서 오프셋의 부호는 음(-)이어야 한다. 따라서, 오프셋 정보는 오프셋 값의 부호를 생략하고 오프셋 값의 절대값으로만 구성될 수 있다.
도 8 및 도 9에 대한 설명(상대적 분류 중에서 엣지 기반 분류로 정의)을 기초로 하여 본 발명의 일 실시예에 따른 상대적 분류를 설명한다.
먼저, 본 발명의 일 실시예에 따른 상대적 분류의 제1 실시예에 따르면, 도 8에서 도시된 어느 하나의 방향에 따라 세개의 샘플을 선정하는 것이 아니라, 방향에 관계없이 선정된 복수의 이웃 샘플을 이용할 수도 있다.
다시 도 8을 참조하여 설명하면, 현재 샘플(C_sample)과 현재 샘플 주변에 위치한 이웃 샘플들(N_sample1, N_sample2, ..., N_sample8) 사이의 화소값 크기 비교를 통해 카테고리를 분류할 수 있다.
예를 들면, 현재 샘플의 화소값을 현재 샘플 주변에 위치한 8개의 이웃 샘플들(N_sample1, N_sample2, ..., N_sample8)과 비교하여 현재 샘플이 큰 경우가 미리 설정된 임계 횟수 이상이면(또는 모든 경우에서 현재 샘플이 크면), 현재 샘플을 제1 카테고리로 분류할 수 있다.
또한, 현재 샘플의 화소값을 현재 샘플 주변에 위치한 8개의 이웃 샘플들(N_sample1, N_sample2, ..., N_sample8)과 비교하여 현재 샘플이 작거나 같은 경우가 미리 설정된 임계 횟수 이상이면(또는 모든 경우에서 현재 샘플이 작거나 같으면), 현재 샘플을 제2 카테고리로 분류할 수 있다.
또한, 현재 샘플의 화소값을 현재 샘플 주변에 위치한 8개의 이웃 샘플들(N_sample1, N_sample2, ..., N_sample8)과 비교하여 현재 샘플이 크거나 같은 경우가 미리 설정된 임계 횟수 이상이면(또는 모든 경우에서 현재 샘플이 크거나 같으면), 현재 샘플을 제3 카테고리로 분류할 수 있다.
또한, 현재 샘플의 화소값을 현재 샘플 주변에 위치한 8개의 이웃 샘플들(N_sample1, N_sample2, ..., N_sample8)과 비교하여 현재 샘플이 작은 경우가 미리 설정된 임계 횟수 이상이면, 현재 샘플을 제4 카테고리로 분류할 수 있다.
여기서는 현재 샘플 및 현재 샘플 주변에 위치한 8개의 이웃 샘플들 상호간의 비교로 설명하였으나, 그에 한정되는 것은 아니다. 예를 들어, 현재 샘플과 가로 및 세로 방향으로 인접한 4개의 이웃 샘플들(도 8에 따르면, N_sample2, N_sample4, N_sample5, N_sample7) 상호간의 비교가 수행될 수도 있고, 현재 샘플과 대각선 방향으로 인접한 4개의 이웃 샘플들(도 8에 따르면, N_sample1, N_sample3, N_sample6, N_sample8) 상호간의 비교가 수행될 수도 있다.
따라서, 본 발명의 일 실시예에 따른 상대적 분류의 제1 실시예는 현재 샘플 주변의 이웃 샘플들(예를 들면, 앞에서 설명한 4개 또는 8개) 상호간 비교를 통해 현재 샘플의 에지 정보로 판단할 수 있다.
또한, 본 발명의 일 실시예에 따른 상대적 분류의 제1 실시예에 따른 카테고리에 대한 정보는 묵시적인 설정을 두어 처리할 수 있고, 오프셋 정보는 부호있는 오프셋 또는 부호없는 오프셋 정보를 생성할 수 있으며, 이는 부/복호화기 설정에 따라 결정될 수 있다. 예를 들어, 보정되는 현재 샘플이 이웃 샘플과 가까워진다는 전제에서는 부호없는 오프셋 정보를, 그런 전제가 없을 경우에는 부호있는 오프셋 정보를 생성할 수 있다. 부호있는 오프셋 정보를 생성하는 경우 엔트로피 부/복호화 과정에서 일부 부호의 경우(현재 샘플이 이웃 샘플과 가까워지도록 하는 + 또는 - 부호 중 하나) 발생 확률을 높게 설정할 수 있고, 그 반대 부호의 경우 발생 확률을 낮게 설정할 수 있다.
또한, 현재 샘플을 기준으로 이웃 샘플 간의 차이가 기설정된 값(th_val) 이상인 경우가 발생할 때 임펄스로 판단하여 상기 카데고리로 분류하거나 추가적인 카데고리로 분류할 수 있다.
본 발명의 일 실시예에 따른 상대적 분류의 제2 실시예에 따르면, 도 8에서 도시된 어느 하나의 방향에 따라 카테고리를 분류하는 것이 아니라 도 8에 따른 방향과 평행한 복수의 방향을 추가로 고려하여 카테고리를 분류할 수 있다.
예를 들어, 도 8의 가로 방향(86)에 따라 현재 샘플과 이웃 샘플들 상호간의 화소값 비교를 하여 카테고리를 분류한다고 할 경우, 가로 방향(86)과 평행한 복수의 방향에 따라 결정되는 샘플들 사이의 화소값 비교를 추가로 수행할 수 있다. 구체적으로 가로 방향(86)과 평행한 방향으로 제1 샘플(N_sample1), 제2 샘플(N_sample2), 제3 샘플(N_sample3) 위를 지나는 방향 및 제6 샘플(N_sample6), 제7 샘플(N_sample7), 제8 샘플(N_sample8) 위을 지나는 방향을 추가로 고려할 수 있다. 따라서, 도 8의 가로 방향(86) 및 가로 방향(86)과 평행한 두개의 방향을 포함하는 세 개의 가로 방향 중 미리 설정된 값 이상(예를 들면, 2개의 방향)에 대하여 수학식 1 내지 6과 그 설명에 따른 화소값 비교 조건을 만족할 때, 제1 카테고리 내지 제4 카테고리 중 하나로 분류할 수 있다. 이때, 미리 설정된 값 미만의 방향에서 수학식 1 내지 6과 그 설명에 따른 화소값 비교 조건을 만족하면, 상기 카테고리로 현재 샘플을 분류하지 않을 수 있다. 상대적 분류의 제2 실시예에 따르면, 복수의 방향에서의 엣지 여부를 판단할 수 있으므로, 2차원 엣지 정보에 기초한 분류로 지칭할 수도 있다.
본 발명의 일 실시예에 따른 상대적 분류의 제2 실시예에 따라 샘플들을 분류할 수 있으며 상기 분류에 따른 카테고리 단위로 오프셋 정보가 획득 및 생성될 수 있다. 카데고리에 대한 정보는 묵시적 또는 명시적인 설정을 둘 수 있으며, 명시적인 설정일 경우에는 전체 카데고리의 후보군 개수 정보를 기반으로 관련 구문 요소(이진화 관련)를 생성할 수 있다. 본 예에서는 상대성에 따른 분류에 대한 판단 과정에 사용되는 전체 화소의 갯수는 5개와 9개인 예를 들고 있으나 이는 부/복호화기의 설정에 따라 결정될 수 있다.
본 발명의 일 실시예에 따른 상대적 분류의 제3 실시예에 따르면, 현재 샘플의 화소값과 이웃 샘플의 화소값 사이의 에 도시된 현재 샘플과 이웃 샘플들 사이의 화소값 기울기를 고려하여 수행될 수 있다.
도 8에 따른 방향에 따라 현재 화소(C_sample)를 중심으로 두 개의 이웃 샘플(N_sampleA, N_sampleB)을 선정할 경우, 화소값 기울기에 따라 다음과 같이 카테고리를 분류할 수 있다.
상기 수학식 7 내지 9의 관계식을 참조하면, 도 8에 따른 방향에 따른 세개의 샘플들의 화소값의 기울기가 증가하는 형태를 갖는 관계식인 것을 확인할 수 있다. 따라서, 현재 샘플과 이웃 샘플들 사이의 관계가 수학식 7, 8 또는 9의 관계식을 만족하면, 제1 카테고리로 분류할 수 있다.
상기 수학식 10 내지 12의 관계식을 참조하면, 도 8에 따른 방향에 따른 세개의 샘플들의 화소값의 기울기가 감소하는 형태를 갖는 관계식인 것을 확인할 수 있다. 따라서, 현재 샘플과 이웃 샘플들 사이의 관계가 수학식 10, 11 또는 12의 관계식을 만족하면, 제2 카테고리로 분류할 수 있다.
한편, 본 발명의 일 실시예에 따른 상대적 분류의 제3 실시예에서 화소값 기울기의 형태뿐만 아니라 기울기의 크기를 추가로 고려할 수도 있다.
예를 들어, 현재 샘플과 이웃 샘플들 사이의 화소값 기울기가 증가하는 형태를 가지고, 그 기울기 크기(예를 들면, 현재 샘플의 화소값과 이웃 샘플의 화소값 사이의 차분값으로 정의할 수 있다)가 미리 설정된 임계값 이상이면, 제1 카테고리로 분류할 수 있다. 마찬가지로 현재 샘플과 이웃 샘플들 사이의 화소값 기울기가 감소하는 형태를 가지고, 그 기울기 크기가 미리 설정된 임계값 이상이면, 제2 카테고리로 분류할 수 있다. 즉, 현재 샘플과 이웃 샘플의 상대적 크기뿐만 아니라, 현재 샘플의 화소값과 이웃 샘플의 화소값 사이의 차분값이 상대적 분류의 기준이 될 수 있다. 본 예는 제 1 실시예의 제 2 카데고리와 제 3 카데고리를 대체하거나 추가되는 형식으로 고려되는 경우일 수 있다.
카데고리에 대한 정보는 묵시적인 설정을 두어 처리할 수 있고, 기울기 방향 정보는 명시적인 설정을 두어 처리할 수 있으며, 상기 조건에 따라 분류되지 않은 샘플들은 오프셋이 적용되지 않는 샘플들로 구성될 수 있다. 즉, 에지로 분류되는 샘플은 상기 조건에 따라 분류되지 않을 수 있으며 오프셋이 적용되지 않는 샘플로 분류될 수 있다.
본 발명의 일 실시예에 따른 상대적 분류의 제4 실시예에 따르면, 도 8 및 도 9에 따른 엣지 기반 분류에서 화소값 기울기의 크기를 추가로 고려하여 카테고리를 설정할 수 있다.
예를 들면, 수학식 1 내지 6에 따른 제1 카테고리는 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 작은 화소값을 갖고, 현재 샘플과 이웃 샘플들 사이의 화소값 차이가 미리 설정된 임계값 이상인 경우로 설정할 수 있다.
또한, 수학식 1 내지 6에 따른 제2 카테고리는 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 작거나 같은 화소값을 갖고, 현재 샘플과 이웃 샘플들 사이의 화소값 차이가 미리 설정된 임계값 이상인 경우로 설정할 수 있다.
또한, 수학식 1 내지 6에 따른 제3 카테고리는 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 크거나 같은 화소값을 갖고, 현재 샘플과 이웃 샘플들 사이의 화소값 차이가 미리 설정된 임계값 이상인 경우로 설정할 수 있다.
또한, 수학식 1 내지 6에 따른 제4 카테고리는 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 큰 화소값을 갖고, 현재 샘플과 이웃 샘플들 사이의 화소값 차이가 미리 설정된 임계값 이상인 경우로 설정할 수 있다. 여기서 제4 실시예는, 엣지 기반 분류에 따라 분류된 샘플 중에서 에러가 적게 포함되었을 샘플과 많이 포함되었을 샘플을 구분짓고, 구분된 샘플들에 대해 각각 다른 오프셋 값을 적용하기 위한 목적일 수 있다.
본 발명의 일 실시예에 따른 상대적 분류는 상기 제1 내지 제3 실시예 중 두개 이상을 서로 결합하여 카테고리의 세부 분류를 추가로 포함할 수 있다. 예를 들어, 본 발명의 일 실시예에 따른 상대적 분류는 도 8 및 도9에 따른 엣지 기반 분류에서 정의되는 카테고리로 1차 분류를 수행하고, 1차 분류된 각각의 카테고리에 대하여 샘플간의 기울기 형태 또는 기울기 크기를 기준으로 2차 분류를 수행할 수 있다. 앞에서 설명한 상대적 분류의 제4 실시예는 이러한 변형례의 하나일 수 있다.
카테고리에 대한 정보는 묵시적 또는 명시적인 설정을 두어 처리할 수 있고, 에지 방향 정보는 명시적인 설정을 두어 처리할 수 있다. 오프셋 정보는 각 경우에 따라 부호있는 오프셋 또는 부호없는 오프셋 정보를 생성할 수 있으며, 이는 부/복호화기 설정에 따라 결정될 수 있다. 예를 들어, 도 9의 카데고리 1, 4의 경우 부호없는 오프셋 정보를 생성할 수 있고, 카데고리 2, 3의 경우 부호있는 오프셋 정보를 생성할 수 있다.
도 10은 본 발명의 일 실시예에 따른 상대적 분류에 따라 샘플 적응적 오프셋이 적용되는 블록을 대상으로 오프셋 값을 부여하는 방법을 설명하기 위한 예시도이다.
도 10을 참조하면, 빗금된 블록 내의 위치하는 모든 샘플에 대해 샘플 적응적 오프셋이 수행될 수 있다. 이때, 상대적 관계를 고려하는 현재 샘플과 이웃 샘플들을 나타나면, A 내지 F와 같다. 도 10의 A는 도 8의 80, 84와 같이 대각 방향에 따라 모두 5개의 샘플이 설정된 것이고, 도 10의 B는 도 8의 82와 같이 세로방향에 따라 5개의 샘플이 설정된 것이며, 도 10의 C는 현재 샘플을 중심으로 하여 모두 9개의 샘플이 설정된 것이다. 도 10의 D는 도 8의 86과 같이 가로방향에 따라 3개의 샘플이 설정된 것이고, 도 10의 E는 도 8의 82, 86과 같이 가로와 세로방향에 따라 모두 5개의 샘플이 설정된 것이며, 도 10의 F는 도 8의 80과 같이 하나의 대각방향에 따라 3개의 샘플이 설정된 것이다.
여기서 이웃 샘플의 위치가 빗금친 블록 안에 위치할 경우(예를 들어, 픽쳐 내부 또는 현재 블록과 동일한 슬라이스, 타일 내에 존재)에는 부/복호화가 완료되었으나 필터링이 적용되기 전의 샘플들을 사용하여 샘플 적응적 오프셋이 수행되며, 이웃 샘플의 위치가 빗금친 블록의 경계 바깥에 위치할 경우(예를 들어, 픽쳐 경계 바깥 또는 현재 블록과 다른 슬라이스, 타일에 존재)에는 이웃 샘플이 속한 영역에 대한 유효성 확인을 먼저 수행할 수 있다.
유효성 확인 결과에 따라 상기 이웃 샘플의 상대적 분류의 사용 여부가 결정될 수 있다. 이처럼, 유효성 확인 결과 사용할 수 없는 샘플이 있는 경우, 현재 블록 내의 샘플을 사용하여 사용할 수 없는 샘플 위치에 채워넣을 수 있다. 예를 들어, 영상의 바깥의 샘플은 현재 블록 내에 속하고 영상 밖의 샘플과 인접한 경계 샘플을 복사 또는 선형외삽하여 사용할 수 있다.
또한, 이웃 샘플의 위치가 빗금친 블록의 경계 바깥에 위치하더라도 현재 영상의 일부 영역에서 획득하여 사용할 수 있다. 예를 들어, 360도 영상의 경우 2차원 공간 상에서는 인접하지 않지만 상관성이 존재하는 영역이 영상 내 존재할 수 있기 때문에 현재 화소(또는 블록)에 상관성이 존재하는 영역(본 예에서는 공간적으로 인접하지 않는 영역을 가정)으로부터 이웃 샘플의 데이터를 복사 또는 변환 과정 등을 통해 획득하여 사용할 수 있다.
이때, 블록 바깥에 있고 유효성 확인 결과 사용 불가능한 샘플의 개수가 많은 경우(B의 경우, 2개)에는 최대 2 화소 간격의 영상을 채워넣을 수 있으며(E2 영역), 일반적인 경우(B를 제외한 A, C, D, E, F)에는 1화소 간격의 영상(E1)을 채워넣을 수 있다.
도 11은 본 발명의 일 실시예에 따른 절대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법을 설명하기 위한 예시도이다.
본 발명의 일 실시예에 따른 절대적 분류에 기초한 샘플 적응적 오프셋은 샘플의 밝기값, 대역 정보 등 오프셋이 적용될 샘플 자체가 가지고 있는 특성에 기초하여 오프셋 값을 설정하는 방법일 수 있다. 이때, 절대적 분류에 따른 샘플 적응적 오프셋이 수행될 대상 샘플은 부/복호화가 완료된 현재 샘플일 수 있다.
도 11을 참조하면, 비트 심도에 따라 결정되는 화소값 범위를 일정 간격을 갖는 화소값 대역으로 분할한 것을 확인할 수 있다. 상세하게는, 비트 심도가 8비트인 경우(화소값의 범위는 0부터 255) 25개(즉 32개)의 대역(band)으로 균등 분할하였다. 이때, 절대적 분류에 기초한 샘플 적응적 오프셋은 분할된 복수의 대역 중에서 일부 대역에 속하는 샘플들에 대하여 오프셋 값을 설정할 수 있다. 이때, 각 샘플의 밝기값을 기준으로 샘플이 속하는 대역을 결정할 수 있다.
샘플 적응적 오프셋 값이 설정되는 대역의 시작 위치 정보가 부호화 장치로부터 복호화 장치로 전송되며, 오프셋 정보는 시작 위치 정보가 속하는 대역을 포함하여 연속하는 일부 대역(도 11을 예로 들면 시작 위치의 대역(k)을 포함해 총 4개 대역)에 대해 생성될 수 있다. 이때, 대역 관련 설정(대역의 개수, 간격 등)에 대해서는 부/복호화 장치에서 미리 결정될 수 있으며, 오프셋 값이 적용되는 대역의 시작 위치 정보가 생성될 수 있다. 또한, 여기서 시작 위치 정보는 전체 대역(예를 들면, 32개의 대역) 중에서 1개 후보가 선택(고정 길이. 5비트)될 수 있다. 오프셋 정보는 오프셋의 절대값과 부호 정보로 구성된다.
본 발명의 일 실시예에 따른 절대적 분류는 샘플의 밝기 정보에 따라 수행(또는 분류)될 수 있다. 세부 분류에 대한 판단 과정에 사용되는 샘플은 적어도 하나의 샘플일 수 있다. 또한, 세부 분류(예를 들면, 대역 관련 설정인 대역의 길이, 분할되는 대역의 개수 등)는 고정적인 설정(예를 들면, 고정적인 대역 길이, 고정적인 대역의 개수 등)을 따르거나 적응적인 설정(본 예에서 부/복호화기에 따라 상기 설정을 달리 두는 것)에 따를 수 있고, 적응적인 설정의 경우 관련 정보는 묵시적으로 결정하거나 또는 명시적으로 관련 정보를 처리할 수 있다. 또한, 오프셋이 적용되는 대역의 정보(예를 들면, 대역의 위치 정보)는 고정적인 대역 후보군 또는 적응적인 대역 후보군 정보를 기반으로 생성될 수 있다. 또한, 대역 설정(본 예에서 대역의 개수 등)에 따라 가질 수 있는 후보군의 개수가 결정될 수 있다. 상기 대역 설정은 하나 이상의 요인(본 예에서 양자화 파라미터, 대역 분할 파라미터, 화소값 범위 정보 등)에 의해 결정될 수 있다. 상기 정보를 포함하는 추가적인 설정은 부/복호화기에 따라 결정될 수 있고, 상기 설정에 대한 정보는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위로 비트스트림에 수록되어 전송될 수 있고, 복호화기에서는 이를 파싱하여 관련된 정보를 복원할 수 있다. 상기 예만으로 한정되지 않고 다양한 경우로 변형 및 확장이 가능하다.
본 발명의 일 실시예에 따른 절대적 분류에 사용되는 대역의 길이와 개수는 적응적으로 결정될 수 있다. 예를 들어, 변수 k에 따라 2k개의 대역으로 분할될 수 있으며, 대역의 길이는 비트 심도(bit_depth)와의 관계에서 2(bit_depth)-
k일 수 있다. 영상에 따라 오프셋이 효율적으로 적용되는 대역의 길이가 존재할 수 있으며, 이를 위해 적응적인 설정을 지원할 수 있다. 변수 k는 부/복호화 설정(예를 들어, 블록의 크기, 형태, 영상 타입 등)에 따라 묵시적으로 결정되거나 명시적으로 관련 정보를 포함할 수 있으며, 변수 k를 통해 대역의 개수, 대역의 길이 등을 결정할 수 있다.
도 12는 본 발명의 일 실시예에 따른 다양한 대역 정보 생성 방법에 대한 예시도이다.
본 발명의 일 실시예에 따른 절대적 분류에 기초한 샘플 적응적 오프셋은 적응적인 대역 정보(예를 들면, 대역의 시작 위치 정보)를 생성하여 수행될 수 있다. 미리 설정된 조건(예를 들면, 하나의 위치 정보가 발생한 곳에서 연속하는 n개의 대역에 오프셋 정보가 발생하는 조건, 즉 n을 미리 설정)에 따라 하나의 정보를 생성할 수 있고, 오프셋이 발생하는 대역을 기반으로 둘 이상의 위치 정보를 생성할 수 있고, 현재 영상의 복원된 샘플에 기반하여 위치 정보를 생성할 수 있다.
12a를 참조하면, 둘 이상의 오프셋 적용 위치 정보(본 예에서는 두 개의 대역 정보. 즉, 오프셋이 발생하는 대역은 연속적이지 않을 수 있다는 가정)가 생성되는 것을 확인할 수 있다. 상세하게는, 대역 m에 샘플 적응적 오프셋이 적용된다는 것을 지시하기 위하여 대역 m의 위치 정보 k1이 생성될 수 있으며, 대역 m+3에 샘플 적응적 오프셋이 적용된다는 것을 지시하기 위하여 대역 m+3의 위치 정보 k2가 생성될 수 있다. 여기서 대역의 위치 정보(오프셋 정보가 발생하는 대역)는 첫번째 대역을 기준으로 순차적으로 생성하거나 또는 마지막 대역을 기준으로 역순으로 생성할 수 있고, 오프셋이 적용되는 대역의 위치 정보는 독립적이거나 의존적인 설정을 두어 생성할 수 있다.
둘 이상의 대역 정보가 생성되는 경우, 첫번째 대역의 위치 정보는 총 대역의 개수(본 예에서 2k개)에 기반하여 구문 요소(본 예에서 고정 길이 이진화. k 비트)가 생성될 수 있고, 첫번째 대역의 위치 정보 이후의 대역 위치 정보는 직전에 부/복호화가 완료된 대역 위치 정보와 같이 총 대역의 개수에 기반하여 구문 요소가 생성(독립적인 경우)될 수 있거나 또는 직전에 부/복호화가 완료된 대역 위치 정보에 기반하여 생성(의존적인 경우)될 수 있다.
후자의 경우를 예로 들면, 12a 에서와 같이 첫번째 대역 위치 정보가 k1이고 두번째 대역 위치 정보가 k2인 경우, k1을 먼저 부/복호화하고, k1을 두번째 대역의 위치 정보인 k2의 예측값으로 할 수 있다. 따라서, 두번째 대역 위치 정보 k2는 첫번째 대역 위치 정보(즉, 예측값)와의 차분값을 생성할 수 있다. 복호화 장치에서는 예측값인 k1 및, k2와 k1 사이의 차분값을 가산하여 k2를 복원할 수 있다. 이때, 총 대역의 개수와 k1의 차이값을 최대값으로 두어 이에 대한 구문 요소(본 예에서 최대값을 고려하는 이진화 방법을 적용)를 생성할 수 있다. 상기 예는 첫번째와 두번째 대역 위치 정보에 대한 설명이며, 이는 대역 위치 정보가 둘 이상 추가되는 경우에도 동일하거나 비슷한 적용(예를 들어, 부/복호화 하고자하는 대역 위치 정보와 이전에 부/복호화가 완료된 대역 위치 정보의 차분값을 부/복호화하는 경우)을 할 수 있다.
한편, 12a에서 빗금친 영역은 영상을 구성하는 화소값이 존재하는 대역을 의미한다. 이때, 영상(예를 들어, 픽쳐, 슬라이스, 타일, 블록 등)을 구성하는 화소값 범위를 부/복호화 장치가 확인하고, 영상의 화소값 범위에 기반하여 대역의 위치 정보(또는 대역의 시작 위치 정보)를 생성 또는 획득할 수 있다. 또한, 영상의 화소값 범위에 기반하여 대역의 길이가 결정될 수 있으며, 이에 기반하여 오프셋 정보를 생성 또는 획득할 수 있다. 12b를 참조하면, 12a에서 영상을 구성하는 화소값이 발생하는 범위를 2k개의 대역으로 나눈 것을 확인할 수 있다. 이 경우 각 대역의 길이는 비트 심도에 기반하여 획득되는 2k개의 대역보다 더 좁은 대역 길이가 획득될 수 있다.
예를 들어, 현재 영상의 가장 낮은 화소값과 가장 높은 화소값을 전체 화소값 범위로 설정하고 설정된 화소값 범위를 2k개의 대역으로 분할할 수 있다. 이러한 경우, 비트 심도에 따른 화소값의 범위를 2k개의 대역으로 분할하는 경우보다 하나의 대역 길이(너비)가 더 작기 때문에 오프셋을 통한 정교한 보정을 수행할 수 있으며, 대역의 길이에 따라 오프셋 정보(본 예에서 최대값을 고려하는 이진화 방법 적용)가 생성될 수 있다. 즉, k와 대역 길이에 따라 결정될 수 있다. 예를 들어, 화소값 범위(예를 들어, 화소의 최대값은 128, 최소값이 10이면 화소값의 범위는 118)를 2k개의 대역으로 분할할 경우, k가 5일 때 대역 하나의 길이는 최대 4(k가 5이고 0부터 255까지 화소값 범위의 경우에는 대역 길이는 8)이며, 이를 기반으로 오프셋의 구문 요소를 생성할 수 있다. 본 예에서 대역은 영상의 화소값 범위에 기초하여 분할되며 획득된 대역 길이에 기반하여 오프셋 정보가 획득되는 경우일 수 있다.
또한, 12c에 따르면, 화소값의 범위는 비트 심도에 기초하여 결정하였고, 비트 심도에 따라 결정된 화소값의 범위를 대역 개수 2k로 분할한 것을 확인할 수 있다. 비트 심도에 따라 화소값 전체 범위(0부터 255. 8비트 기준)가 결정되었기 때문에, 대역 개수에 따라 고정적인 대역의 길이를 가지며 오프셋 정보의 생성은 상기 대역 길이에 기반하여 생성될 수 있다. 이때, 영상의 화소값이 발생하는 가장 낮은 화소값(minc)과 가장 높은 화소값(maxc)이 각각 대역 P1과 Pmax에 존재한다면, 오프셋 정보가 발생할 수 있는 대역은 대역 P1과 대역 Pmax 사이에 존재한다. 따라서, Pmax - P1 + 1개의 대역이 오프셋 정보가 발생할 수 있는 대역의 개수라고 할 수 있으므로, Pmax - P1 + 1개의 대역을 최대값으로 하여 오프셋 정보가 발생하는 대역의 위치 정보를 생성할 수 있다.
12a를 참조하면 비트 심도에 따라 화소값 전체 범위에 기초하여 대역을 분할할 경우 총 대역의 개수는 32개(k가 5라고 가정)지만, 실제 화소값이 발생하는 대역은 대역 m과 m+4 사이의 대역이므로 총 대역의 개수는 5개이다. 총 대역이 32개의 경우 5비트 고정 길이 이진화를 통해 대역 위치 정보에 대한 구문 요소(대역 시작 위치 정보만 보내는 경우5비트가 필요)를 생성할 수 있지만, 총 대역이 5인 경우에는 최대값이 5인 가변 길이 이진화를 통해 구문 요소(본 예에서 2, 3비트가 필요)를 생성할 수 있다. 즉, 대역의 길이는 유지하되 대역 정보로 인해 발생하는 정보를 줄임으로써 부호화 성능을 향상시킬 수 있다. 본 예에서 대역은 비트 심도에 기초하여 분할되며 대역의 위치 정보는 영상의 화소값 범위에 기초하여 생성되는 경우일 수 있다.
전술한 예에서는 오프셋 정보의 개수가 고정적인 경우(4개라 가정)일 수 있다. 부/복호화 설정에 따라 오프셋 정보의 개수 또한 적응적일 수 있지만, 영상의 특성에 따라 오프셋의 개수가 적응적으로 결정되는 경우가 발생할 수 있다. 예를 들어, 12a와 같이 비트 심도에 따라 대역을 분할할 때, 영상(본 예에서 블록이라 가정)의 화소값이 3개 이하의 대역에서 발생하는 경우에는 4개의 오프셋이 필요하지 않기 때문에 3개의 오프셋 정보만 발생할 수 있다. 이 경우는 오프셋이 적용되는 대역의 시작 위치 또한 묵시적으로 획득되는 예일 수 있다. 본 예에서 영상의 화소값 범위에 기초하여 오프셋의 개수가 적응적으로 결정되며, 대역 위치 정보가 묵시적으로 결정되는 경우이다.
도 12를 통해 영상의 화소값 범위에 따른 다양한 실시예를 살펴보았으며, 이에 한정되지 않고 다양한 변형 및 결합의 예가 가능할 수 있으며, 상기 예를 통해 설명되지 않은 추가적인 요소 등과의 혼합 구성 또한 가능하다. 이때, 상기 영상은 복원 영상 또는 원본 영상 중 하나일 수 있다. 복원 영상의 경우 화소값의 범위 정보는 묵시적으로 획득가능할 수 있고, 원본 영상의 경우 화소값의 범위 정보는 명시적으로 획득가능할 수 있다. 복원 영상은 필터가 적용되기 전의 영상(즉, 부/복호화가 완료되었으나 인루프 필터 적용 전 영상)을 의미할 수 있다. 원본 영상의 화소값 범위 정보는 화소값 범위에 따른 화소값 조정 과정을 통해 전술하였으며, 명시적으로 비트스트림에 수록되는 정보로 인해 부호화기뿐만 아니라 복호화기에서도 원본 영상의 화소값 범위 정보를 확인할 수 있다.
도 13은 본 발명의 일 실시예에 따른 상대적 분류 및 절대적 분류에 기초한 샘플 적응적 오프셋에 사용되는 구문 요소를 설명하기 위한 소스코드이다.
도 13을 참조하면, sps_sample_adaptive_offset_enabled_flag는 sps에서 SAO 지원 여부에 대한 구문 요소일 수 있고, pps_sample_adaptive_offset_enabled_flag는 pps에서 SAO 지원 여부에 대한 구문 요소일 수 있고, slice_sample_adaptive_offset_enabled_flag는 슬라이스에서 SAO 지원 여부에 대한 구문 요소일 수 있으며, 이 외의 단위(타일 등)에서도 SAO 지원 여부에 대한 구문 요소가 정의될 수 있다. 상위 단위의 구문 요소들이 활성화 된 경우에는 하위 단위의 구문 요소의 추가적인 생성여부가 결정될 수 있다. 본 예에서 슬라이스에서 상기 구문 요소가 활성화된 경우(본 예에서 1이라 가정)에는 컬러 성분에 따라 SAO 적용 여부에 대한 구문 요소인 slice_sao_luma_flag, slice_sao_chroma_flag가 생성될 수 있으며, 비활성화 된 경우(본 예에서 0이라 가정)에는 SAO는 해당 영상에서 적용되지 않을 수 있다.
휘도 성분과 색차 성분에 하나라도 SAO가 적용되는 경우에는 offset_type1_enabled_flag에 대한 구문 요소가 정의될 수 있으며, 이는 SAO의 미리 설정된 타입의 적용 여부에 대한 구문 요소일 수 있다. 본 예에서는 절대적 분류에 의한 오프셋 적용 방법(또는 상대적 분류에 의한 오프셋 적용 방법)일 수 있으며, offset_type2_enabled_flag는 상대적 분류에 의한 오프셋 적용 방법(또는 절대적 분류에 의한 오프셋 적용 방법)일 수 있다. offset_type1_enabled_flag이 활성화된 경우에는 offset_type2_enabled_flag에 대한 구문 요소가 추가 정의될 수 있다. 비활성화된 경우에는 offset_type2_enabled_flag는 추가로 정의되지 않지만 type2는 묵시적으로 활성화될 수 있다. type1과 type2과 활성화될 수 있고, type1과 type2 중 하나만 활성화될 수 있다. 이는 슬라이스에서 정의되는 구문 요소일 수 있고, 이 외의 단위(시퀀스, 픽쳐, 타일 등)에서 정의되는 구문 요소일 수 있다.
오프셋 관련 정보는 부/복호화가 완료된 적어도 하나의 이웃 블록으로부터 참조할 수 있으며, 이때 참조되는 블록은 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위 블록 등일 수 있다. 참조되는 후보군은 둘 이상의 블록일 수 있고, 참조되는 블록의 우선 순위(구문 요소 생성과도 관련)는 부/복호화 설정에 따라 정해질 수 있으며, 화면내 예측 또는 화면간 예측에서 이웃 블록으로부터 예측 정보를 참조하는 순서(블록 위치 또는 블록 내 서브블록 위치)와 동일하거나 비슷한 순서를 사용하거나 독립적인 순서를 설정할 수 있다. sao_merge_flag는 오프셋 관련 정보를 이웃 블록으로부터 획득할 지 여부를 나타내는 구문 요소일 수 있으며, sao_merge_idx는 이웃 블록에 대한 정보를 나타내는 구문 요소일 수 있다. 이웃 블록으로부터 오프셋 관련 정보의 전부 또는 일부를 참조할 수 있으며, 오프셋 관련 정보의 일부를 획득할 경우에는 추가적인 구문 요소가 정의될 수 있다.
sao_type_idx는 오프셋 적용 방법에 대한 선택 정보를 의미할 수 있으며, 이는 둘 이상의 오프셋 적용 방법이 지원가능할 때 생성되는 구문 요소일 수 있다. sao_offset_abs는 오프셋에 대한 절대값 정보일 수 있으며, 이는 k개만큼 생성할 수 있다. k는 부/복호화 설정에 따라 결정될 수 있다. sao_offset_sign은 오프셋 정보에 대한 부호 정보일 수 있으며, 이는 오프셋에 대한 절대값 정보가 0이 아닐 경우에만 생성되는 구문 요소일 수 있다. 오프셋에 대한 부호 정보는 오프셋 적용 방법의 설정에 따라 지원될 수 있으며, 오프셋 방법의 설정이 부호없는 절대값 정보로만 오프셋 정보를 지원할 경우에는 생성되지 않으며, 부호있는 절대값 정보로 오프셋 정보를 지원할 경우에는 생성될 수 있다. sao_type_info는 오프셋 방법의 세부 분류에 따른 정보일 수 있다.
부/복호화 설정(본 예에서 블록 크기 및 형태, 영상 타입, 부호화 모드, 양자화 파라미터 등)에 따라 상기 오프셋(상대적 분류 또는 절대적 분류) 설정 정보가 결정될 수 있으며, 상기 과정을 통해 구성되는 조합은 적어도 하나 이상 가능할 수 있다.
도 14는 본 발명의 일 실시예에 따른 절대적 분류 또는 상대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법에 대한 흐름도이다.
도 14를 참조하면, 영상 복호화 장치에서 절대적 분류 또는 상대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법은, 절대적 분류 기준 또는 상대적 분류 기준에 따라 복원 샘플을 분류하는 단계(S100), 상기 복원 샘플이 분류된 결과에 기초하여 오프셋 정보를 획득하는 단계(S110), 획득된 오프셋 정보를 참조하여 상기 복원 샘플에 오프셋 값을 가산하는 단계(S120) 및 상기 오프셋 값이 가산된 복원 샘플을 출력하는 단계(S130)를 포함할 수 있다.
여기서, 상기 복원 샘플을 분류하는 단계(S100)는, 분류 기준이 상기 절대적 분류이면, 상기 복원 샘플의 밝기값이 속하는 대역에 따라 상기 복원 샘플을 분류하는 단계를 포함할 수 있다.
여기서, 상기 복원 샘플을 분류하는 단계(S100)는, 분류 기준이 상기 상대적 분류이면, 상기 복원 샘플의 화소값 및 상기 복원 샘플과 인접한 이웃 샘플들의 화소값 상호간 비교에 의해 도출되는 엣지 정보 및 기울기 정보 중 적어도 하나에 기초하여 상기 복원 샘플을 분류하는 단계를 포함할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (3)
- 영상 복호화 장치에서 수행되는, 적응적인 화소 분류 기준에 따른 인루프 필터링 방법으로,절대적 분류 기준 또는 상대적 분류 기준에 따라 복원 샘플을 분류하는 단계;상기 복원 샘플이 분류된 결과에 기초하여 오프셋 정보를 획득하는 단계;획득된 오프셋 정보를 참조하여 상기 복원 샘플에 오프셋 값을 가산하는 단계; 및상기 오프셋 값이 가산된 복원 샘플을 출력하는 단계를 포함하는, 인루프 필터링 방법.
- 청구항 1에서,상기 복원 샘플을 분류하는 단계는,분류 기준이 상기 절대적 분류이면, 상기 복원 샘플의 밝기값이 속하는 대역에 따라 상기 복원 샘플을 분류하는 단계를 포함하는, 인루프 필터링 방법.
- 청구항 1에서,상기 복원 샘플을 분류하는 단계는,분류 기준이 상기 상대적 분류이면, 상기 복원 샘플의 화소값 및 상기 복원 샘플과 인접한 이웃 샘플들의 화소값 상호간 비교에 의해 도출되는 엣지 정보 및 기울기 정보 중 적어도 하나에 기초하여 상기 복원 샘플을 분류하는 단계를 포함하는, 인루프 필터링 방법.
Priority Applications (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020197027158A KR102443959B1 (ko) | 2017-03-22 | 2018-03-22 | 적응적인 화소 분류 기준에 따른 인루프 필터링 방법 |
US16/496,253 US11057627B2 (en) | 2017-03-22 | 2018-03-22 | In-loop filtering method according to adaptive pixel classification standard |
KR1020247032447A KR20240148448A (ko) | 2017-03-22 | 2018-03-22 | 적응적인 화소 분류 기준에 따른 인루프 필터링 방법 |
KR1020227031525A KR20220127948A (ko) | 2017-03-22 | 2018-03-22 | 적응적인 화소 분류 기준에 따른 인루프 필터링 방법 |
CN202310243504.5A CN116233422A (zh) | 2017-03-22 | 2018-03-22 | 基于自适应像素分类基准的环路滤波方法 |
EP21186030.9A EP3979639A1 (en) | 2017-03-22 | 2018-03-22 | Tile partitions |
EP18770923.3A EP3606077A4 (en) | 2017-03-22 | 2018-03-22 | LOOP FILTERING PROCESS ACCORDING TO AN ADAPTIVE PIXEL CLASSIFICATION STANDARD |
CN201880033604.2A CN110679149B (zh) | 2017-03-22 | 2018-03-22 | 基于自适应像素分类基准的环路滤波方法 |
CN202310243511.5A CN116233423A (zh) | 2017-03-22 | 2018-03-22 | 基于自适应像素分类基准的环路滤波方法 |
US17/338,771 US11553186B2 (en) | 2017-03-22 | 2021-06-04 | In-loop filtering method according to adaptive pixel classification standard |
US18/063,242 US11991366B2 (en) | 2017-03-22 | 2022-12-08 | In-loop filtering method according to adaptive pixel classification standard |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20170036370 | 2017-03-22 | ||
KR10-2017-0036370 | 2017-03-22 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/496,253 A-371-Of-International US11057627B2 (en) | 2017-03-22 | 2018-03-22 | In-loop filtering method according to adaptive pixel classification standard |
US17/338,771 Continuation US11553186B2 (en) | 2017-03-22 | 2021-06-04 | In-loop filtering method according to adaptive pixel classification standard |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018174593A1 true WO2018174593A1 (ko) | 2018-09-27 |
Family
ID=63585669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2018/003352 WO2018174593A1 (ko) | 2017-03-22 | 2018-03-22 | 적응적인 화소 분류 기준에 따른 인루프 필터링 방법 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11057627B2 (ko) |
EP (2) | EP3606077A4 (ko) |
KR (3) | KR102443959B1 (ko) |
CN (3) | CN110679149B (ko) |
WO (1) | WO2018174593A1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11477448B2 (en) | 2019-01-25 | 2022-10-18 | Hfi Innovation Inc. | Method and apparatus for non-linear adaptive loop filtering in video coding |
RU2783342C1 (ru) * | 2019-01-25 | 2022-11-11 | ЭйджЭфАй Инновейшн Инк. | Способ и устройство для нелинейной адаптивной контурной фильтрации при кодировании видео |
US11546587B2 (en) | 2019-04-11 | 2023-01-03 | Mediatek Inc. | Adaptive loop filter with adaptive parameter set |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8767824B2 (en) * | 2011-07-11 | 2014-07-01 | Sharp Kabushiki Kaisha | Video decoder parallelization for tiles |
EP3606077A4 (en) * | 2017-03-22 | 2021-01-06 | Industry - University Cooperation Foundation Hanyang University | LOOP FILTERING PROCESS ACCORDING TO AN ADAPTIVE PIXEL CLASSIFICATION STANDARD |
WO2019082291A1 (ja) * | 2017-10-25 | 2019-05-02 | 株式会社ソシオネクスト | 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム |
WO2019243534A1 (en) | 2018-06-21 | 2019-12-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Tile shuffling for 360 degree video decoding |
CN112640455B (zh) | 2018-06-21 | 2024-06-14 | 瑞典爱立信有限公司 | 视频编码中具有子图块的图块分区 |
CN118590646A (zh) * | 2018-06-21 | 2024-09-03 | 瑞典爱立信有限公司 | 灵活图块分区 |
WO2020070196A1 (en) | 2018-10-02 | 2020-04-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Encoding and decoding pictures based on tile group id |
CN113678461A (zh) * | 2019-03-11 | 2021-11-19 | 瑞典爱立信有限公司 | 包括矩形图块组信令的视频编码 |
SG10201904175UA (en) * | 2019-05-09 | 2020-12-30 | Mastercard International Inc | Methods and systems for facilitating message format discovery in online transaction processing |
KR20220020268A (ko) | 2019-06-14 | 2022-02-18 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 유닛 경계들 및 가상 경계들의 처리 |
JP7291846B2 (ja) | 2019-07-09 | 2023-06-15 | 北京字節跳動網絡技術有限公司 | 適応ループフィルタリングのためのサンプル決定 |
WO2021004542A1 (en) | 2019-07-11 | 2021-01-14 | Beijing Bytedance Network Technology Co., Ltd. | Sample padding in adaptive loop filtering |
EP3984219A4 (en) * | 2019-07-15 | 2022-08-17 | Beijing Bytedance Network Technology Co., Ltd. | CLASSIFICATION IN AN ADAPTIVE LOOP FILTERING |
EP3991435A4 (en) * | 2019-08-07 | 2022-08-31 | Huawei Technologies Co., Ltd. | METHOD AND APPARATUS FOR ADAPTIVE SCANNING OFFSET LOOP FILTER WITH APPLICATION AREA SIZE LIMITATION |
CN114430902B (zh) | 2019-09-22 | 2023-11-10 | 北京字节跳动网络技术有限公司 | 自适应环路滤波中的填充过程 |
JP7326600B2 (ja) | 2019-09-27 | 2023-08-15 | 北京字節跳動網絡技術有限公司 | 異なるビデオユニット間の適応ループフィルタリング |
JP7454042B2 (ja) | 2019-10-10 | 2024-03-21 | 北京字節跳動網絡技術有限公司 | 適応ループ・フィルタリングにおける利用可能でないサンプル位置でのパディング・プロセス |
CN111866507B (zh) * | 2020-06-07 | 2024-09-27 | 咪咕文化科技有限公司 | 图像滤波方法、装置、设备及存储介质 |
JP2024511636A (ja) * | 2021-03-31 | 2024-03-14 | ヒョンダイ モーター カンパニー | インター予測にディープラーニングベースのインループフィルタを用いるビデオコーディング方法及び装置 |
KR20220146663A (ko) * | 2021-06-28 | 2022-11-01 | 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 | 비디오 복구 방법, 장치, 기기, 매체 및 컴퓨터 프로그램 |
US20240244212A1 (en) * | 2023-01-13 | 2024-07-18 | Tencent America LLC | Adaptive bands for filter offset selection in cross-component sample offset |
WO2024155168A1 (ko) * | 2023-01-20 | 2024-07-25 | 엘지전자 주식회사 | 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 |
WO2024155166A1 (ko) * | 2023-01-20 | 2024-07-25 | 엘지전자 주식회사 | 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016015753A (ja) * | 2015-08-31 | 2016-01-28 | ソニー株式会社 | 画像処理装置および方法、プログラム、並びに記録媒体 |
KR20160015799A (ko) * | 2014-07-31 | 2016-02-15 | 삼성전자주식회사 | 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치 |
JP5951144B2 (ja) * | 2013-12-04 | 2016-07-13 | 三菱電機株式会社 | 画像符号化装置 |
KR20160111293A (ko) * | 2015-03-16 | 2016-09-26 | 한양대학교 산학협력단 | 영상 분석을 이용한 비디오 부호화/복호화 방법 및 장치 |
KR20160147895A (ko) * | 2014-04-29 | 2016-12-23 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 샘플 적응 오프셋 필터링에 대한 인코더측 결정 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8660174B2 (en) * | 2010-06-15 | 2014-02-25 | Mediatek Inc. | Apparatus and method of adaptive offset for video coding |
US9172968B2 (en) * | 2010-07-09 | 2015-10-27 | Qualcomm Incorporated | Video coding using directional transforms |
US9055305B2 (en) * | 2011-01-09 | 2015-06-09 | Mediatek Inc. | Apparatus and method of sample adaptive offset for video coding |
US9641846B2 (en) * | 2010-10-22 | 2017-05-02 | Qualcomm Incorporated | Adaptive scanning of transform coefficients for video coding |
US9049444B2 (en) * | 2010-12-22 | 2015-06-02 | Qualcomm Incorporated | Mode dependent scanning of coefficients of a block of video data |
PL2725797T3 (pl) * | 2011-06-23 | 2019-01-31 | Huawei Technologies Co., Ltd. | Urządzenie do dekodowania przesunięcia, urządzenie do kodowania przesunięcia, urządzenie do filtrowania obrazu i struktura danych |
JP5907367B2 (ja) * | 2011-06-28 | 2016-04-26 | ソニー株式会社 | 画像処理装置および方法、プログラム、並びに記録媒体 |
US20130003837A1 (en) * | 2011-06-29 | 2013-01-03 | General Instrument Corporation | Methods and system for using a scan coding pattern during intra coding |
US9392301B2 (en) * | 2011-07-01 | 2016-07-12 | Qualcomm Incorporated | Context adaptive entropy coding for non-square blocks in video coding |
US9756360B2 (en) * | 2011-07-19 | 2017-09-05 | Qualcomm Incorporated | Coefficient scanning in video coding |
US9986235B2 (en) | 2011-10-31 | 2018-05-29 | Mitsubishi Electric Corporation | Video decoding device and video decoding method |
GB201119206D0 (en) * | 2011-11-07 | 2011-12-21 | Canon Kk | Method and device for providing compensation offsets for a set of reconstructed samples of an image |
US20130136173A1 (en) | 2011-11-15 | 2013-05-30 | Panasonic Corporation | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
CA2898150C (en) * | 2012-01-30 | 2017-11-14 | Samsung Electronics Co., Ltd. | Method and apparatus for video encoding for each spatial sub-area, and method and apparatus for video decoding for each spatial sub-area |
US10244246B2 (en) * | 2012-02-02 | 2019-03-26 | Texas Instruments Incorporated | Sub-pictures for pixel rate balancing on multi-core platforms |
KR102470694B1 (ko) * | 2012-02-04 | 2022-11-25 | 엘지전자 주식회사 | 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치 |
RU2586029C1 (ru) * | 2012-04-13 | 2016-06-10 | Мицубиси Электрик Корпорейшн | Устройство кодирования изображений, устройство декодирования изображений, способ кодирования изображений и способ декодирования изображений |
WO2013164903A1 (ja) * | 2012-04-30 | 2013-11-07 | パナソニック株式会社 | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置 |
US9912942B2 (en) * | 2012-12-28 | 2018-03-06 | Qualcomm Incorporated | High-frequency-pass sample adaptive offset in video coding |
US10708588B2 (en) * | 2013-06-19 | 2020-07-07 | Apple Inc. | Sample adaptive offset control |
US20150049821A1 (en) * | 2013-08-16 | 2015-02-19 | Qualcomm Incorporated | In-loop depth map filtering for 3d video coding |
KR102345660B1 (ko) * | 2015-11-24 | 2021-12-30 | 삼성전자주식회사 | 비디오 복호화 방법 및 장치, 그 부호화 방법 및 장치 |
KR102506430B1 (ko) | 2015-11-27 | 2023-03-08 | 삼성전자주식회사 | 반도체 장치의 제조 방법 |
SG11201806811TA (en) * | 2016-02-12 | 2018-09-27 | Huawei Tech Co Ltd | Method and apparatus for scan order selection |
MX2018011198A (es) * | 2016-03-16 | 2019-05-20 | Mediatek Inc | Metodo y aparato de procesamiento de datos de video con tamaño restringido de bloque en codificacion de video. |
US10623774B2 (en) * | 2016-03-22 | 2020-04-14 | Qualcomm Incorporated | Constrained block-level optimization and signaling for video coding tools |
KR102471208B1 (ko) * | 2016-09-20 | 2022-11-25 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
KR102559063B1 (ko) * | 2017-02-24 | 2023-07-24 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
EP3606077A4 (en) * | 2017-03-22 | 2021-01-06 | Industry - University Cooperation Foundation Hanyang University | LOOP FILTERING PROCESS ACCORDING TO AN ADAPTIVE PIXEL CLASSIFICATION STANDARD |
-
2018
- 2018-03-22 EP EP18770923.3A patent/EP3606077A4/en not_active Withdrawn
- 2018-03-22 KR KR1020197027158A patent/KR102443959B1/ko active IP Right Grant
- 2018-03-22 EP EP21186030.9A patent/EP3979639A1/en not_active Withdrawn
- 2018-03-22 WO PCT/KR2018/003352 patent/WO2018174593A1/ko unknown
- 2018-03-22 US US16/496,253 patent/US11057627B2/en active Active
- 2018-03-22 CN CN201880033604.2A patent/CN110679149B/zh active Active
- 2018-03-22 CN CN202310243511.5A patent/CN116233423A/zh active Pending
- 2018-03-22 KR KR1020247032447A patent/KR20240148448A/ko unknown
- 2018-03-22 KR KR1020227031525A patent/KR20220127948A/ko active Application Filing
- 2018-03-22 CN CN202310243504.5A patent/CN116233422A/zh active Pending
-
2021
- 2021-06-04 US US17/338,771 patent/US11553186B2/en active Active
-
2022
- 2022-12-08 US US18/063,242 patent/US11991366B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5951144B2 (ja) * | 2013-12-04 | 2016-07-13 | 三菱電機株式会社 | 画像符号化装置 |
KR20160147895A (ko) * | 2014-04-29 | 2016-12-23 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 샘플 적응 오프셋 필터링에 대한 인코더측 결정 |
KR20160015799A (ko) * | 2014-07-31 | 2016-02-15 | 삼성전자주식회사 | 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치 |
KR20160111293A (ko) * | 2015-03-16 | 2016-09-26 | 한양대학교 산학협력단 | 영상 분석을 이용한 비디오 부호화/복호화 방법 및 장치 |
JP2016015753A (ja) * | 2015-08-31 | 2016-01-28 | ソニー株式会社 | 画像処理装置および方法、プログラム、並びに記録媒体 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11477448B2 (en) | 2019-01-25 | 2022-10-18 | Hfi Innovation Inc. | Method and apparatus for non-linear adaptive loop filtering in video coding |
RU2783342C1 (ru) * | 2019-01-25 | 2022-11-11 | ЭйджЭфАй Инновейшн Инк. | Способ и устройство для нелинейной адаптивной контурной фильтрации при кодировании видео |
US11909965B2 (en) | 2019-01-25 | 2024-02-20 | Hfi Innovation Inc. | Method and apparatus for non-linear adaptive loop filtering in video coding |
US11546587B2 (en) | 2019-04-11 | 2023-01-03 | Mediatek Inc. | Adaptive loop filter with adaptive parameter set |
Also Published As
Publication number | Publication date |
---|---|
KR20190123288A (ko) | 2019-10-31 |
US20230106301A1 (en) | 2023-04-06 |
US20210297675A1 (en) | 2021-09-23 |
CN116233423A (zh) | 2023-06-06 |
KR20220127948A (ko) | 2022-09-20 |
CN110679149B (zh) | 2023-04-04 |
KR102443959B1 (ko) | 2022-09-16 |
US20200029080A1 (en) | 2020-01-23 |
KR20240148448A (ko) | 2024-10-11 |
CN116233422A (zh) | 2023-06-06 |
US11057627B2 (en) | 2021-07-06 |
US11991366B2 (en) | 2024-05-21 |
US11553186B2 (en) | 2023-01-10 |
EP3606077A1 (en) | 2020-02-05 |
EP3606077A4 (en) | 2021-01-06 |
EP3979639A1 (en) | 2022-04-06 |
CN110679149A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018174593A1 (ko) | 적응적인 화소 분류 기준에 따른 인루프 필터링 방법 | |
WO2018212577A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2017222325A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2017209328A1 (ko) | 영상 코딩 시스템에서 인트라 예측 방법 및 장치 | |
WO2018128322A1 (ko) | 영상 처리 방법 및 이를 위한 장치 | |
WO2018066849A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2019117634A1 (ko) | 2차 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2020162737A1 (ko) | 이차 변환을 이용하는 비디오 신호 처리 방법 및 장치 | |
WO2018236028A1 (ko) | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2019117639A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2014171713A1 (ko) | 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치 | |
WO2018044089A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2020009419A1 (ko) | 병합 후보를 사용하는 비디오 코딩 방법 및 장치 | |
WO2016159610A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2016048092A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2016114583A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2020116961A1 (ko) | 이차 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2016064123A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2021040400A1 (ko) | 팔레트 모드 기반 영상 또는 비디오 코딩 | |
WO2016122251A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2019182329A1 (ko) | 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체 | |
WO2016122253A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018174591A1 (ko) | 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법 | |
WO2018070723A1 (ko) | 영상의 부호화/복호화 방법 및 이를 위한 장치 | |
WO2016204479A1 (ko) | 영상의 부호화/복호화 방법 및 이를 위한 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18770923 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 20197027158 Country of ref document: KR Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2018770923 Country of ref document: EP Effective date: 20191022 |