WO2019009488A1 - 영상을 부호화 또는 복호화하는 방법 및 장치 - Google Patents
영상을 부호화 또는 복호화하는 방법 및 장치 Download PDFInfo
- Publication number
- WO2019009488A1 WO2019009488A1 PCT/KR2018/001539 KR2018001539W WO2019009488A1 WO 2019009488 A1 WO2019009488 A1 WO 2019009488A1 KR 2018001539 W KR2018001539 W KR 2018001539W WO 2019009488 A1 WO2019009488 A1 WO 2019009488A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- encoding
- encoding unit
- image
- information
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/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/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
-
- 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
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
Definitions
- This disclosure relates to methods of processing images using artificial intelligence (AI) that utilizes machine learning algorithms.
- AI artificial intelligence
- the present disclosure relates to an in-loop filtering technique using a deep neural network (DNN) in the process of encoding and decoding an image.
- DNN deep neural network
- An artificial intelligence system is a computer system that implements human-level intelligence. It is a system in which the machine learns, judges,
- Artificial intelligence technology consists of element technologies that simulate functions such as recognition and judgment of human brain by using machine learning (deep learning) algorithm and machine learning algorithm which use algorithm to classify / learn input data by themselves.
- Elemental technologies include, for example, linguistic understanding techniques for recognizing human language / characters, visual understanding techniques for recognizing objects as human vision, reasoning / predicting techniques for reasoning and predicting information for reasoning and prediction of information, A knowledge representation technique for processing the robot as knowledge data, an autonomous running of the vehicle, and an operation control technique for controlling the motion of the robot.
- visual understanding is a technology for recognizing and processing objects as human vision, including object recognition, object tracking, image search, human recognition, scene understanding, spatial understanding, and image enhancement.
- a method and apparatus for encoding / decoding an image according to various embodiments are provided.
- the technical problem to be solved by this embodiment is not limited to the above-mentioned technical problems, and other technical problems can be deduced from the following embodiments.
- an image decoding method comprising: receiving a bitstream of an encoded image; Generating restored data by restoring the encoded image; Obtaining information on a content type of the encoded image from the bitstream; Determining a DNN (Deep Neural Network) filter model that is learned to perform in-loop filtering using one or more computers based on information about the content type; And applying the restoration data to the determined DNN filter model to perform in-loop filtering.
- DNN Deep Neural Network
- the in-loop filtering may include at least one of Deblocking Filtering, Sample Adaptive Offset, and Adaptive Loop Filtering. .
- the information on the content type may be information indicating the pixel complexity and the degree of motion of the encoded image.
- the DNN filter model may include at least one of a DNN filter model, a DNN filter model, And may be a learned network model to compensate for quantization errors in the data.
- the step of determining the DNN filter model may include: determining, based on the information on the content type, And determining a DNN filter model.
- each of the plurality of DNN filter model candidates may be learned to perform in-loop filtering on a preset content type.
- the step of determining the DNN filter model may further include determining the DNN filter model corresponding to the compression strength of the encoded image among the plurality of DNN filter model candidates .
- performing the in-loop filtering may include performing in-loop filtering by applying the restored data and one or more reference images stored in the restored picture buffer to the determined DNN filter model Step < / RTI >
- the in-loop filtering may be performed based on a CNN (Convolutional Neural Network) learning model.
- CNN Convolutional Neural Network
- an apparatus for decoding an image comprising: a receiver for receiving a bitstream of an encoded image; And generating restored data by restoring the encoded image, obtaining information on a content type of the encoded image from the bitstream, and generating, based on the information about the content type, Determining a DNN (Deep Neural Network) filter model learned to perform filtering, and applying the restored data to the determined DNN filter model to perform in-loop filtering.
- a DNN Deep Neural Network
- an image encoding method including: determining a content type of an input image; Determining a DNN (Deep Neural Network) filter model that is learned to perform in-loop filtering using one or more computers based on the content type; Generating in-loop filtered data by applying restored data of the input image reconstructed from the encoded residual data to the determined DNN filter model; Generating prediction data by predicting the input image based on the in-loop filtered data, and generating residual data using the input image and the prediction data; Generating a bitstream obtained by coding the information on the content type and the residual data; And transmitting the bitstream.
- DNN Deep Neural Network
- the in-loop filtering may include at least one of deblocking filtering, sample adaptive offset, and adaptive loop filtering. .
- the information on the content type may be information indicating the pixel complexity and the degree of motion of the input image.
- the step of determining the DNN filter model may further include a step of determining, based on the information about the content type, And determining a DNN filter model.
- FIG. 1 shows a detailed block diagram of an image encoding apparatus 100 according to an embodiment.
- FIG. 2 shows a detailed block diagram of an image decoding apparatus 200 according to an embodiment.
- FIG. 3 is a block diagram illustrating an example of the in-loop filtering unit.
- FIG. 4 is a block diagram illustrating an in-loop filtering unit according to an exemplary embodiment of the present invention.
- 5 is a view showing the structure of DNN.
- 6A to 6F are diagrams showing structures of various CNNs.
- FIG. 7 is a diagram illustrating DNN filter model candidates according to one embodiment.
- FIG. 8 is a diagram illustrating a method for performing in-loop filtering based on a DNN filter model using one or more reference images according to an embodiment.
- FIG. 9 shows a schematic block diagram of an image encoding apparatus 900 according to an embodiment.
- FIG. 10 shows a schematic block diagram of an image decoding apparatus 1000 according to an embodiment.
- FIG. 11 is a flowchart illustrating an image encoding method including an in-loop filtering process based on a DNN filter model according to an exemplary embodiment.
- FIG. 12 is a flowchart illustrating an image decoding method including an in-loop filtering process based on a DNN filter model according to an exemplary embodiment.
- FIG. 13 illustrates a process in which at least one encoding unit is determined by dividing a current encoding unit according to an embodiment.
- FIG. 14 illustrates a process in which at least one encoding unit is determined by dividing an encoding unit in the form of a non-square according to an embodiment.
- FIG. 15 illustrates a process of dividing an encoding unit based on at least one of block type information and division type information according to an embodiment.
- FIG. 16 illustrates a method of determining a predetermined encoding unit among odd number of encoding units according to an embodiment.
- FIG. 17 shows a sequence in which a plurality of encoding units are processed when a current encoding unit is divided to determine a plurality of encoding units according to an embodiment.
- FIG. 18 illustrates a process in which, if an encoding unit can not be processed in a predetermined order according to an embodiment, it is determined that the current encoding unit is divided into odd number of encoding units.
- FIG. 19 illustrates a process in which a first encoding unit is divided into at least one encoding unit according to an embodiment of the present invention.
- FIG. 20 illustrates that when a non-square second encoding unit determined by dividing a first encoding unit according to an embodiment satisfies a predetermined condition, a form in which the second encoding unit can be divided is limited .
- FIG. 21 illustrates a process of dividing a square-shaped encoding unit when the division type information can not be divided into four square-shaped encoding units according to an embodiment.
- FIG. 22 illustrates that the processing order among a plurality of coding units may be changed according to the division process of coding units according to an embodiment.
- FIG. 23 illustrates a process of determining the depth of an encoding unit according to a change in type and size of an encoding unit when a plurality of encoding units are determined by recursively dividing an encoding unit according to an embodiment.
- FIG. 24 shows a depth index (PID) for coding unit classification and depth that can be determined according to the type and size of coding units according to an exemplary embodiment.
- PID depth index
- 25 shows that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to an embodiment.
- FIG. 26 shows a processing block serving as a reference for determining a determination order of a reference encoding unit included in a picture according to an embodiment.
- part refers to a hardware component, such as a software, FPGA, or ASIC, and the " part " However, 'minus' is not limited to software or hardware.
- the " part " may be configured to be in an addressable storage medium and configured to play back one or more processors.
- part (s) refers to components such as software components, object oriented software components, class components and task components, and processes, Subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables.
- the functions provided in the components and " parts " may be combined into a smaller number of components and " parts “ or further separated into additional components and " parts ".
- This disclosure relates to a method of processing an image using artificial intelligence (AI) utilizing a machine learning algorithm. Specifically, it relates to performing in-loop filtering using a Deep Neural Network (DNN) in the process of encoding and decoding an image.
- AI artificial intelligence
- DNN Deep Neural Network
- FIG. 1 An in-loop filtering method using artificial intelligence will be described below with reference to FIGS. 3 to 12.
- FIG. A method of determining a data unit of an image according to an embodiment will be described below with reference to FIGS. 13 to 26.
- FIG. 1 shows a detailed block diagram of an image encoding apparatus 100 according to an embodiment.
- the image encoding apparatus 100 includes a block determination unit 110, an inter prediction unit 115, an intra prediction unit 120, a reconstruction picture buffer 125, a transform unit 130, a quantization unit An inverse quantization unit 140, an inverse transform unit 145, an in-loop filtering unit 150, and an entropy coding unit 155.
- the block determination unit 110 may divide the current image data into a maximum encoding unit according to a maximum size of a block for encoding an image.
- Each maximum encoding unit may include blocks (i.e., encoding units) that are divided into block types and division types.
- the maximum coding unit according to an exemplary embodiment may classify image data of a spatial domain included in the maximum coding unit hierarchically according to a block type and a division type.
- the block type of the encoding unit may be a square or a rectangle, and may be any geometric shape, and thus is not limited to a unit of a certain size.
- the image can be encoded with a higher image compression rate.
- the coding unit is enlarged and its size is fixed, the image can not be efficiently encoded reflecting the characteristics of the continuously changing image.
- the compression rate can be improved by increasing the coding unit.
- the compression ratio is improved as the coding unit is decreased.
- the block determination unit 110 sets a maximum encoding unit of a different size for each picture or slice, and sets a block type and a division type of one or more encoding units divided from the maximum encoding unit.
- the size of the encoding unit included in the maximum encoding unit can be variably set according to the block type and the division type.
- the block type and the division type of one or more encoding units may be determined based on a Rate-Distortion Cost calculation.
- the block type and the division type may be determined differently for each picture or slice, or may be determined differently for each maximum encoding unit.
- the determined block type and division type are outputted from the block determination unit 110 together with the image data for each coding unit.
- an encoding unit divided from a maximum encoding unit may be characterized by a block type and a division type.
- a concrete method of determining the coding unit in the block form and the division form will be described later in more detail with reference to FIG. 13 through FIG.
- the coding units included in the maximum coding unit may be predicted or transformed (e.g., converting values of the pixel domain into values in the frequency domain) based on the processing units of different sizes.
- the image encoding apparatus 100 can perform a plurality of processing steps for image encoding based on various sizes and processing units of various types. In order to encode the image data, processing steps such as prediction, conversion, and entropy encoding are performed. The processing units of the same size may be used in all steps, and processing units of different sizes may be used in each step.
- the prediction mode of an encoding unit may be at least one of an intra mode, an inter mode, and a skip mode, and the specific prediction mode may be performed only for a specific size or type of encoding unit.
- a prediction mode with the smallest coding error can be selected by performing prediction for each coding unit.
- the image encoding apparatus 100 can convert image data based on a processing unit having a different size from the encoding unit. The conversion may be performed based on a data unit having a size smaller than or equal to the encoding unit in order to convert the encoding unit.
- the image encoding apparatus 100 may measure a coding error of an encoding unit using a Lagrangian Multiplier-based Rate-Distortion Optimization technique.
- the prediction mode of an encoding unit may be at least one of an intra mode, an inter mode, and a skip mode, and the specific prediction mode may be performed only for a specific size or type of encoding unit.
- a prediction mode with the smallest coding error can be selected by performing prediction for each coding unit.
- the intra prediction unit 120 performs intra prediction on blocks in the intra mode of the input image 105 and the inter prediction unit 115 performs the intra prediction on the input image 105 and the restored picture buffer 125, The inter-prediction is performed using the reference picture obtained in step S11. Whether intra prediction or inter prediction is performed may be determined for each block unit.
- the image encoding apparatus 100 may encode prediction-related information (for example, a prediction mode for each encoding unit).
- Residual data is generated by calculating the difference between the data for the block of the input image 105 and the predicted data for each block output from the intra prediction unit 120 or inter prediction unit 115.
- the residual data is output as a transform coefficient quantized block by block through the transform unit 130 and the quantization unit 135.
- the quantized transform coefficients are restored into residual data in the spatial domain through the inverse quantization unit 140 and the inverse transform unit 145.
- the residual data of the reconstructed spatial domain is reconstructed into spatial domain data for the block of the input image 105 by adding the prediction data for each block outputted from the intra prediction unit 120 or the inter prediction unit 115 .
- the reconstructed spatial domain data is generated as a reconstructed image through the in-loop filtering unit 150.
- the in-loop filtering unit 150 may perform in-loop filtering based on the DNN filter model.
- the in-loop filtering operation based on the DNN filter model according to an exemplary embodiment may include at least one of Deblocking Filtering (DF), Sample Adaptive Offset (SAO), and Adaptive Loop Filtering And may include one operation.
- In-loop filtering based on the DNN filter model according to one embodiment may be performed on a pixel or block basis (e.g., a maximum encoding unit or an encoding unit).
- the generated restored image is stored in the restored picture buffer 125.
- the reconstructed pictures stored in the reconstructed picture buffer 125 may be used as reference pictures for inter prediction of other pictures.
- the transform coefficients quantized by the transforming unit 130 and the quantizing unit 135 may be output to the bitstream 160 via the entropy encoding unit 155.
- the bit stream 160 output from the image encoding apparatus 100 may include the encoding result of the residual data.
- the bitstream 160 may include a coding result of information indicating a block type, a division type, size information of a conversion unit, and the like.
- FIG. 2 shows a detailed block diagram of an image decoding apparatus 200 according to an embodiment.
- the image decoding apparatus 200 performs operations for decoding an image.
- the image decoding apparatus 200 includes a receiving unit 210, a block determining unit 215, an entropy decoding unit 220, an inverse quantization unit 225, an inverse transform unit 230, an inter prediction unit 235, An intraprediction unit 240, a restored picture buffer 245, and an in-loop filtering unit 250.
- the receiving unit 210 of FIG. 2 receives the bit stream 205 of the encoded image.
- the block determination unit 215 may divide the image data of the current picture into a maximum encoding unit according to a maximum size of a block for decoding an image.
- Each maximum encoding unit may include blocks (i.e., encoding units) that are divided into block types and division types.
- the block determination unit 215 can divide image data of a spatial region into hierarchical blocks according to a block type and a division type by obtaining division information from the bit stream 205. [ On the other hand, when the blocks used for decoding have a certain shape and size, the block determining unit 215 can divide the image data without using the division information.
- the block determination unit 215 may correspond to the block determination unit 110 of FIG.
- the entropy decoding unit 220 obtains the encoded image data to be decoded and the encoding information necessary for decoding from the bitstream 205.
- the encoded image data is a quantized transform coefficient
- the inverse quantization unit 225 and the inverse transform unit 230 reconstruct the residual data from the quantized transform coefficients.
- the intra prediction unit 240 performs intra prediction on the intra mode block.
- the inter prediction unit 235 performs inter prediction using the reference pictures obtained in the reconstruction picture buffer 245 for the inter mode block. Whether intra prediction or inter prediction is performed may be determined for each block unit.
- the video decoding apparatus 200 can obtain prediction related information (for example, prediction mode for each encoding unit) from the bit stream 205. [
- the spatial data for the block is restored by adding the predictive data and the residual data for each block through the intra predictor 240 or the inter predictor 235, And then output as a reconstructed image through the input unit 250.
- the in-loop filtering unit 150 may perform in-loop filtering based on the DNN filter model.
- An in-loop filtering operation based on a DNN filter model according to an embodiment may include at least one of deblocking filtering, SAO, and ALF.
- In-loop filtering based on the DNN filter model according to one embodiment may be performed on a pixel or block basis (e.g., a maximum encoding unit or an encoding unit).
- in-loop filtering techniques in the H.264 / AVC compression standard include deblocking filtering to remove blocking artifacts.
- the in-loop filtering technique in the HEVC standard additionally includes SAO to compensate for the loss of information caused by lossy compression such as quantization as well as deblocking filtering.
- SAO is a technique for eliminating the ringing phenomenon of reconstructed images.
- SAO is processed in units of samples and performs rate distortion optimization (RDO) through statistical analysis to obtain an optimal offset to perform interpolation on the restored pixel.
- RDO rate distortion optimization
- deblocking filtering is first applied to the restored image, and SAO is performed on the restored image after the deblocking filtering is completed. In the SAO process, errors between the restored image and the original image can be minimized by adding the edge offset / band offset to the restored image.
- in-loop filtering techniques may include ALF.
- the ALF can reduce the error between the original image and the filtered reconstructed image by applying a Wiener filter to the reconstructed image.
- the in-loop filtering technique described above not only improves the subjective image quality, but also improves the coding efficiency by being used as a reference image in the inter-picture prediction process.
- FIG. 3 is a block diagram illustrating an example of the in-loop filtering unit.
- the in-loop filtering unit 300 may include a deblocking filtering unit 310, a sample adaptive offset unit 320, and an adaptive loop filtering unit 330.
- the in-loop filtering unit 300 performs deblocking filtering, SAO, and ALF filtering on the restored image in the HE (High Efficiency) condition.
- SAO deblocking filtering
- ALF ALF filtering
- the deblocking filtering unit 310 can determine a filtering boundary based on a boundary of a data unit of a predetermined size or larger among blocks (for example, an encoding unit, a prediction unit, or a conversion unit). For example, the deblocking filtering unit 310 may determine only the boundary of blocks having a size of 32x32 or more as a filtering boundary to be subjected to deblocking filtering, or may determine only a boundary of blocks having a size of 16x16 or more as a filtering boundary Or a boundary of blocks having a size of 8x8 or more can be determined as a filtering boundary to be subjected to deblocking filtering.
- the deblocking filtering unit 310 does not determine the boundary as a filtering boundary. That is, deblocking filtering is not performed on the outermost boundary corresponding to the edge of the picture.
- the deblocking filtering unit 310 determines a filtering strength at the filtering boundary based on the prediction mode of the block to which the adjacent pixels belong, based on the filtering boundary, and the transform coefficient values of the pixels adjacent to the filtering boundary.
- the deblocking filtering unit 310 determines whether the prediction mode of a block to which adjacent pixels belong is based on a filtering boundary, whether the prediction mode is an intra mode or an inter mode, and whether filtering coefficient values of pixels adjacent to the filtering boundary have non- Determine the strength.
- the filtering strength is referred to as BS (Boundary Strength)
- the BS may be divided into three levels of 0, 1, and 2.
- the deblocking filtering unit 310 performs deblocking filtering on the filtering boundary based on the determined filtering strength and the comparison result between the absolute value difference between the pixel values of the adjacent predetermined number of pixels and the predetermined threshold, Can be determined. Specifically, the deblocking filtering unit 310 calculates an absolute value of a difference between pixel values of pixels separated on the basis of a filtering boundary, which is adjacent to the filtering boundary, and an absolute value of a pixel value difference of pixels adjacent to the same side, It is determined that the deblocking filtering is performed only when the filtering strength is not the weakest filtering strength, while the value is smaller than the predetermined threshold determined according to the quantization parameter of the conversion unit to which the pixels belong.
- the threshold value may be a predetermined value based on the quantization parameter QP used in quantizing the block adjacent to the filtering boundary.
- the deblocking filtering unit 310 determines the filtering intensity and the absolute value of the pixel value difference of the pixels adjacent to the filtering boundary based on the filtering boundary, The number of pixels and the filter tap coefficient that are filtered adjacent to the filtering boundary are determined based on the absolute value of the difference in pixel value of pixels located adjacent to the side. In addition, the deblocking filtering unit 310 performs filtering by changing pixel values of pixels filtered through a weighted sum based on filter tap coefficients.
- the deblocking filtering unit 310 may perform deblocking filtering using information on deblocking filtering obtained from the bitstream.
- the information on deblocking filtering may include filtering boundary determination information such as a data unit size for determining a data unit in which deblocking filtering is performed among the boundaries of data units according to the tree structure.
- the information on deblocking filtering may include a sequence parameter set, a picture parameter set, a video parameter set, a slice header, a slice segment header ) Or the like.
- the in-loop filtering units 150 and 250 may perform in-loop filtering based on the DNN filter model without signaling information on deblocking filtering.
- the sample adaptive offset unit 320 receives the deblocking filtered reconstructed image and applies SAO for minimizing the error between the original pixel and the reconstructed pixel for each block (for example, the maximum encoding unit or the encoding unit) in the image do. At this time, the sample adaptive offset unit 320 can determine the SAO type according to the pixel value classification scheme of the current block.
- the SAO type can be determined as an edge type or band type. Depending on the pixel value classification scheme of the current block, it may be determined whether it is appropriate to classify the pixels of the current block according to the edge type or according to the band type.
- the offset between the restored pixels and the original pixels may be determined, depending on the direction and shape of the edge formed by the restored pixels of the current block with neighboring pixels.
- the offset between the restored pixels belonging to each band and the original pixels among the plurality of bands obtained by dividing the total range of the pixel values of the restored pixels of the current block can be determined.
- the bands may divide the total range of pixel values at evenly spaced intervals or at unequal intervals.
- the sample adaptive offset unit 320 can determine the SAO type indicating whether the edge type or the band type is based on the spatial characteristic of the pixel values of the current block.
- the sample adaptive offset unit 320 can determine the SAO class for each restored pixel according to the SAO type of the current block.
- the SAO class may be determined as an edge class or a band class.
- the edge class may indicate the direction of the edge that the restored pixel forms with neighboring pixels.
- An edge class can represent an edge direction of 0, 90, 45, or 135 degrees.
- the sample adaptive offset unit 320 can determine an edge class for each restored pixel of the current block if the SAO type is an edge type.
- the band class refers to each pixel value interval as a band when the total range of pixel values of the current block is divided into a predetermined number of consecutive pixel value intervals, and a band to which the pixel values of the restored pixel belongs Can represent the position of the band to be represented.
- the total range of pixel values is 0 to 255, and the pixel value can be divided into a total of 32 bands.
- a predetermined number of bands to which the pixel values of the restored pixels belong may be determined from a total of 32 bands.
- the band class indicates a start position (left start position) of a predetermined number of consecutive bands, and the position of the earliest band may be represented by a band index of 0 to 31.
- the restored pixels of the current block may be classified into a predetermined number of categories according to the edge type to be formed with neighboring pixels. For example, the local valley of a concave concave, the curved corner of a concave edge, the curved corner of a convex edge, and the local peak of a convex edge. Accordingly, the restored pixels can be classified into four categories. It can be determined that belonging to one of the four categories according to which type of edge is formed for each restoration pixel of the current block.
- the pixel values of the restored pixels of the current block may be classified into a predetermined number of categories according to the band position to which the pixel value belongs.
- the restored pixels may be classified into four categories according to the band index of four consecutive bands starting from the starting position indicated by the band class, that is, the starting point of the leftmost band. For each of the restored pixels of the current block, it can be determined to belong to one of the four categories depending on which band among the four bands belongs.
- the sample adaptive offset unit 320 can determine a category for each restored pixel of the current block.
- the sample adaptive offset unit 320 can determine an offset value using difference values between the restored pixel and the original pixels for restored pixels belonging to the same category in the current block. For each category, the average of the differences between the restored pixels and the original pixels, i.e., the average error of the restored pixels, can be determined as an offset value corresponding to the current category.
- the sample adaptive offset unit 320 can determine offset values for each category and determine offset values for all categories as offset values for the current block.
- the SAO type of the current block is an edge type and the restored pixels are classified into four categories according to the edge type, or if the SAO type of the current block is a band type and the restored pixels are 4
- the sample adaptive offset unit 320 determines an average error between the restored pixels belonging to the four categories and the original pixels, so that four offset values can be determined.
- the offset values may be greater than or equal to a predetermined minimum value, and may be less than or equal to a preset maximum value.
- the sample adaptive offset unit 320 may signal the SAO parameter including the SAO type, SAO class and offset value of the determined current block.
- the SAO type may include an Off type, an Edge type, and a Band type.
- the SAO type is off type, it may indicate that SAO is not applied to the current block. In this case, the remaining SAO parameters of the current block do not need to be further signaled.
- the SAO parameter may include offset values corresponding to each edge class among the edge classes. Also, when the SAO type is a band type, the SAO parameter may include offset values corresponding to each band among the bands.
- the SAO parameters described above can be signaled through a sequence parameter set, a picture parameter set, a video parameter set, a slice header, a slice segment header, and the like.
- a flag indicating whether SAO is performed is signaled through a set of sequence parameters
- information indicating SAO type, merge flag, SAO class, offset value, and the like can be signaled through the sample adaptive offset syntax.
- the in-loop filtering units 150 and 250 may perform in-loop filtering based on the DNN filter model without SAO parameter signaling.
- the adaptive loop filtering unit 330 divides the image into blocks, and information about adaptive loop filtering including information on whether adaptive loop filtering is applied to each block and information on adaptive loop filtering is signaled do.
- the adaptive loop filtering unit 330 operates based on a Wiener filter and performs optimal filtering by calculating an optimal coefficient that minimizes an error between the original image and the reconstructed image.
- the filter coefficient information includes information on filter coefficients for each filter (e.g., one-dimensional filter), and the information on the filter coefficients of each filter includes information on the difference value between successive filter coefficients can do. That is, the residual components of the filter coefficients of each filter can be encoded and signaled.
- the information on adaptive loop filtering may include the type, number, size, quantization bit, coefficient, filtering direction, whether to perform filtering, and whether to perform running filtering, etc. of each filter.
- the information on the filter set may be set in a data unit such as a picture, a slice, or a sequence.
- the filter coefficient information may include information on the cross-correlation matrix instead of individual coefficients, since the filter coefficient may be determined by the cross-correlation matrix between the filters.
- the filtering direction of each filter can be determined in the filtering direction for pixels located on a straight line of a predetermined angle. For example, filtering according to the filtering directions of a predetermined angle of +/- 0 to 180 degrees, such as vertical ( ⁇ 90 °), horizontal (0 °, 180 °), diagonal ( ⁇ 45 °, ⁇ 135 °) .
- the adaptive loop filtering unit 330 can adaptively determine the filtering direction of each filter to the local image characteristic of the image data. For example, the adaptive loop filtering unit 330 may detect an edge of a local image in the image data and determine a filter to be performed along a filtering direction according to a direction of a detected edge.
- the adaptive loop filtering unit 330 can also determine whether the result of filtering the previous pixel is a running filtering scheme that affects the filtering of the current pixel. According to the filtering according to the running filtering method, the filtering result of the previous pixel is updated, and the filtering of the current pixel can be performed through the filtered data of the previous pixel.
- Information about adaptive loop filtering may be signaled through a sequence parameter set, a picture parameter set, a video parameter set, a slice header, a slice segment header, and so on.
- the in-loop filtering unit 150 and 250 can perform in-loop filtering based on the DNN filter model without signaling information on adaptive loop filtering.
- sample adaptive offset unit 320 may be similar to the adaptive loop filtering unit 330 in the concept of directly calculating and compensating for errors between the original image and the reconstructed image, but in the LC (Low Complexity) condition, Since the loop filtering unit 330 is not used, the sample adaptive offset unit 320 may be understood as a simplified technique that replaces the role of the adaptive loop filtering unit 330.
- FIG. 4 is a block diagram illustrating an in-loop filtering unit according to an exemplary embodiment of the present invention.
- the DNN filter model 400 receives a reconstructed image and outputs a filtered reconstructed image.
- the DNN filter model 400 may correspond to the in-loop filtering unit 150 of FIG. 1 or the in-loop filtering unit 250 of FIG.
- the DNN filter model 400 performs in-loop filtering based on DNN.
- the DNN filter model 400 is a network that is learned to compensate for a quantization error of a restored image according to a connection relation between a plurality of network nodes constituting the DNN filter model 400 and an operation based on a weight of each of the plurality of network nodes. It is a model.
- the DNN filter model 400 can be designed to simulate a human brain structure on a computer as a learning model.
- the DNN filter model 400 may include a plurality of weighted network nodes that simulate a neuron of a human neural network.
- the plurality of network nodes may each establish a connection relationship so that the neurons simulate synaptic activity of sending and receiving signals through synapses.
- the DNN filter model 400 may include, for example, an artificial intelligence neural network model or a deep learning network model developed in a neural network model.
- the architecture of the neural network will now be briefly described.
- Neural networks refer to the Computational Architecture, which models the biological brain. Neural networks are software or hardware-based recognition models that mimic the computational capabilities of biological systems using a large number of artificial neurons connected by a line. Artificial neurons, referred to as nodes, are connected to each other and collectively operate to process input data.
- a neural network may include an input layer, a hidden layer, and an output layer.
- the input layer may receive an input for performing learning and transmit it to a hidden layer, and the output layer may generate an output of the neural network based on a signal received from nodes of the hidden layer.
- the hidden layer is located between the input layer and the output layer, and can change the learning data transmitted through the input layer to a value that is easy to predict.
- Nodes included in the input layer and the hidden layer can be connected to each other through connection lines having connection weights.
- the nodes included in the hidden layer and the output layer can be connected to each other through connection lines having connection weights.
- the input layer, the hidden layer, and the output layer may include a plurality of nodes.
- the neural network may include a plurality of hidden layers.
- a neural network including a plurality of hidden layers is referred to as a deep neural network (DNN), and learning of DNN is referred to as deep learning.
- DNN deep neural network
- a node contained in a hidden layer is called a hidden node.
- the DNN has a multilayer perceptrons structure including a plurality of hidden layers.
- This multi-layer perceptron can improve the accuracy of prediction through learning through the backpropagation algorithm.
- the way in which the DNN learns through the backpropagation algorithm is to start with the input layer and use the label value (for example, the data representing the correct answer or the data with the smallest error with the original data) when the y value is obtained through the output layer In case of an incorrect answer, the value is transmitted from the output layer toward the input layer, and the W and b values are updated according to the calculated cost.
- the label value for example, the data representing the correct answer or the data with the smallest error with the original data
- the data pattern of the provided input / output dataset is learned at a high level to generate a model that infers the filtered image most similar to the original data.
- the input data sets of the in-loop filtering units 150 and 250 may be reconstructed data obtained by reconstructing an encoded image.
- the output data sets of the in-loop filtering units 150 and 250 are data that minimizes an error between the original data and the filtered restored data (for example, an error caused by lossy compression such as quantization) .
- the output data set can be provided by using at least one filtering method of deblocking filtering, SAO, and ALF described with reference to FIG.
- the error between the original data and the filtered restoration data can be measured based on the R-D cost.
- the learned DNN filter model has generalization ability to analyze the input pattern and to find its characteristics and perform optimal filtering.
- In-loop filtering based on the DNN filter model uses learned DNN to minimize the error between the in-loop filtered restored data and the original data.
- the DNN filter model 400 may signal the filter information.
- the image decoding apparatus 200 may select a DNN filter model suitable for the image to be filtered based on the filter information acquired from the image encoding apparatus 100, and apply the selected DNN filter model.
- the filter information according to an exemplary embodiment may include information on an error characteristic of the encoded image.
- the information on the error characteristic may include at least one of a content type of the image and information on the quantization parameter.
- the content type according to an exemplary embodiment may indicate a category classified according to a predetermined criterion.
- the content type may include computer graphics, general video, motion blur, texture, etc., depending on the error characteristics of the video.
- the content type according to one embodiment may be determined by the image encoding apparatus 100 based on at least one of the pixel complexity of the image and the degree of motion.
- the DNN filter model 400 may determine the DNN filter model of one of the DNN filter model candidates using the filter information.
- the DNN filter model candidates may be preset for each content type and / or compression strength (or quantization parameter).
- the DNN filter model candidate for each content type and / or compression strength may be preset in the image decoding apparatus 200 according to a predetermined rule.
- the DNN filter model 400 may be implemented as a software module.
- the DNN filter model 400 may be stored in a computer-readable recordable medium.
- the DNN filter model 400 may be integrated in the form of a hardware chip to be a part of the image encoding apparatus 100 or the image decoding apparatus 200 described above.
- the DNN filter model 400 may be fabricated in the form of a dedicated hardware chip for artificial intelligence, or may be a conventional general purpose processor (e.g., a CPU or an application processor) or a graphics dedicated processor ). ≪ / RTI >
- the DNN filter model 400 may be provided in the form of downloadable software.
- the computer program product may include a manufacturer of the image coding apparatus 100 or the image decoding apparatus 200 or a product in the form of a software program electronically distributed through an electronic market (for example, a down-load app).
- an electronic market for example, a down-load app
- at least a portion of the software program may be stored on a storage medium or may be created temporarily.
- the storage medium may be a manufacturer or a server of an electronic market, or a storage medium of a relay server.
- 5 is a view showing the structure of DNN.
- reconstruction data 510 DNN 520, and in-loop filtered reconstruction data 530 are shown.
- Restoration data 510 may be input to the input layer of DNN 520 as learning data.
- the data transferred through the input layer of the DNN 520 may be changed to a value that is easy to predict in the hidden layer.
- the hidden layer is connected through a connection line having a connection weight between the input layer and the output layer.
- the output layer of DNN 520 may generate output, i.e., in-loop filtered restoration data 530, based on signals received from the nodes of the hidden layer.
- the input layer, the hidden layer, and the output layer include a plurality of nodes, and the DNN 520 may generate a mapping between the restored data 510 and the in-loop filtered restored data 530 through an algorithm between the plurality of nodes. mapping can be generated. If the DNN 520 learns to output the in-loop filtered restoration data 530 having the smallest error with the original data, the DNN 520 generates a relatively correct output for the input pattern that was not used for learning And has the ability to generalize.
- the DNN 520 may be implemented as a set of layers including a convolutional pulling layer, a hidden layer, and a fully connected layer.
- the overall structure of DNN 520 may be in the form of a hidden layer at the convolution pooling layer, followed by a fully connected layer at the hidden layer.
- the DNN 520 may be implemented as a CNN-like network including a Convolution Layer.
- CNN is a structure suitable for image analysis. It is composed of a feature extraction layer that learns the features with the greatest discriminative power from the given image data, and a predictive model And a prediction layer for learning a prediction layer.
- the feature extraction layer consists of a convolution layer that creates a feature map by applying a plurality of filters to each region of the image, and features that are invariant to changes in position or rotation by spatially integrating feature maps And a plurality of repetition times of a pooling layer for extracting the data.
- the convolution layer obtains a feature map by taking a nonlinear activation function internally of the filter and the local receptive field for each patch of the input image.
- CNN is rare
- filters with one connectivity Sparse Connectivity
- shared weights Shared Weights
- a pooling layer or a sub-sampling layer generates a new feature map by utilizing the local information of the feature map obtained at the previous convolution layer.
- the feature map newly generated by the integration layer is reduced in size to a smaller size than the original feature map.
- Typical integration methods include Max Pooling, which selects the maximum value of the corresponding region in the feature map, And average pooling to obtain the average value of the area.
- the feature map of the integrated layer generally has less influence on the position of any structure or pattern existing in the input image than the feature map of the previous layer. That is, the integrated layer can extract more robust features in the local changes such as noise or distortion in the input image or the previous feature map, and this feature can play an important role in the classification performance.
- the role of the other integration layer is to reflect the characteristics of a wider area as it goes from the deep structure to the upper learning layer. As the feature extraction layer accumulates, the lower layer reflects local characteristics and climbs up to the upper layer It is possible to generate a feature map that reflects more abstract features of the whole image.
- the classification model such as Multi-layer Perception (MLP) or Support Vector Machine (SVM) connected Layer) to be used for classification model learning and prediction.
- MLP Multi-layer Perception
- SVM Support Vector Machine
- DNN can be implemented in various network forms. Examples of various types of DNNs include Convolutional Neural Network (CNN), Recurrent Neural Network (RNN), Deep Belief Network (DBN), Restricted Boltzman Machine ; RBM), but the present invention is not limited thereto.
- CNN Convolutional Neural Network
- RNN Recurrent Neural Network
- DBN Deep Belief Network
- RBM Restricted Boltzman Machine
- 6A to 6F are diagrams showing structures of various CNNs.
- FIG. 6A a structure of a basic CNN according to an embodiment is shown.
- input data 610 is input through an input layer of CNN 620 and output data 630 is output through an output layer of CNN 620.
- the input data 610 may be reconstructed data, and the output data 630 may be in-loop filtered reconstructed data.
- a plurality of hidden layers may be included between the input layer and the output layer of CNN 620.
- Each layer that forms the hidden layer may include a convolution layer and a subsampling layer.
- the convolution layer performs a convolution operation on the image data input to each layer using a convolution filter, and generates a feature map.
- the feature map means image data in which various features of the input data 610 are expressed.
- the subsampling layer reduces the size of the feature map by sampling or pooling.
- the output layer of CNN 620 classifies the class of image data by combining various features expressed in the feature map. At this time, the output layer may be configured as a completely connected layer.
- the structure of the CNN according to one embodiment (e.g., the number of hidden layers, the number and size of filters in each layer, etc.) is determined in advance and the weight matrix of the filter (in particular, the convolution filter) ) Is calculated to an appropriate value using the data that the correct answer is known to belong to which class.
- data that are known to be correct are used as 'learning data'.
- the process of determining the weighting matrix of the filter means 'learning'.
- the number of filters per layer may be 64, and the size of each filter may be 3x3.
- the total number of layers may be ten.
- the above-described embodiment is merely for illustrative purposes, and the number of hidden layers, the number and size of filters in each layer, and the like can be changed according to various forms.
- FIG. 6B the structure of CNN according to another embodiment is shown.
- the CNN 640 of FIG. 6B may be a network composed of a plurality of parallel layers. That is, a plurality of convolution layers and pulling layers may be arranged side by side.
- the result output from the previous layer in CNN 640 may be input to a plurality of separated parallel layers.
- a plurality of separated parallel layers may apply different filters. For example, a plurality of separated parallel layers may be reduced to a 1x1 convolution and then applied a convolution of 3x3, 5x5, and so on. On other layers, you can apply convolution after performing 3x3 max pooling.
- a layer applying only 1x1 convolution can serve as an identity loop for holding initial information.
- the plurality of parallel layers that have undergone the convolution may be finally concatenated and output as the calculation result of the current layer.
- layers need not always be stacked sequentially.
- the structure of CNN 640 is based on the fact that non-sequentially optimized networks can be less error-prone than sequential networks.
- FIG. 6C the structure of CNN according to another embodiment is shown.
- CNN 650 in FIG. 6C is a network using the concept of a skip layer.
- the CNN 650 has a structure in which the input of the past layer is added to the output of the current layer.
- the result of adding the output of the past layer and the current layer can be the input of the next layer.
- the convolutions and pooling process may be performed at multiple layers, resulting in an excessively small size of the result. In this case, the detail information of the result value may disappear.
- CNN 650 has the effect of reinforcing sophisticated parts by recycling past results during convolution and pooling.
- FIG. 6D the structure of CNN according to another embodiment is shown.
- the CNN 660 in FIG. 6D is a network that uses the concept of a skip layer like the CNN 650 in FIG. 6C.
- the CNN 660 has a feature in which the relationship between the layers is dense as compared with the CNN 650 in that past results can be added as an input of a layer at an arbitrary position.
- the CNN 660 may use the result calculated by the convolution operation of the past layer as an input of a layer at an arbitrary position.
- FIG. 6E the structure of CNN according to another embodiment is shown.
- CNN 670 of Figure 6e is a network using a multi-resolution pyramid structure.
- CNN 670 may divide the results of the previous convolution layer into pyramids of different stages. For example, in step 1, the resolution is not scaled, in step 2, the resolution is scaled by 1/2 x 1/2, and in step 3, the resolution is scaled by 1/4 x 1/4.
- the results of the various steps thus obtained can be concatenated and used as inputs to the fully connected layer.
- the convolution layer is not affected by the size of the image, but the size of the input image has to be fixed in a normal network because the fully connected layer is limited by the size of the input image.
- features output at various levels of the pyramid level such as CNN 670, are used as input to the complete connection layer and the output of the pyramid is predetermined in advance, regardless of the size of the image, .
- FIG. 6F the structure of CNN according to another embodiment is shown.
- the CNN 680 in FIG. 6F is a network having a structure for performing batch normalization before or after the non-linear function ReLu.
- the batch normalization layer is located at the front end of the hidden layer and controls the distribution of the inputs.
- the batch normalization layer is a layer absorbed in the network, it can optimize the related variables (scale, shift) through back propagation.
- a method of improving the distribution of the input may be a method of normalizing the data input to each layer to 0, variance of 1, multiplying the scale variable gamma, and adding the data by the shift variable beta.
- the scale and shift variables can be determined through learning.
- CNN 680 can avoid problems such as gradient vanishing or gradient exploding by normalizing the convolution results.
- the learning time can be shortened through batch normalization, and the accuracy of learning can be improved.
- CNNs of various structures described above with reference to Figs. 6A to 6F can be applied, and their possible combinations or combinations with known learning networks can be applied. Accordingly, it should be noted that CNNs having various structures described above are merely examples for convenience of description, and CNNs having various structures of modified CNNs can be used in the present embodiment.
- the DNN of the DNN filter model 400 can be learned by the content type of the image and the quantization parameter.
- a method of utilizing the learned DNN for each content type and quantization parameter will be described.
- FIG. 7 is a diagram illustrating DNN filter model candidates according to one embodiment.
- DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, 736 are shown.
- the DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, and 736 may be classified according to the content types 710, 720, and 730.
- each of the DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, 736 may have been learned to perform in-loop filtering on a predetermined content type.
- the type of in-loop filtering, the intensity of filtering, etc. may vary depending on the error characteristics of the image.
- the error characteristic of the image may differ depending on the type of the image (for example, computer graphics, general image, motion blur, texture, etc.). This is because the compression rate and the degree of deterioration of the subjective picture quality according to the encoding may differ depending on the content types 710, 720, and 730.
- the network structure of the DNN filter model for processing computer graphics is the simplest, and the network structure of the DNN filter model for processing the textures may be the most complicated.
- the complicated network structure of the DNN filter model means that the depth of the layers constituting the network may be deeper or the number of masks (that is, channels) applied to each layer may be increased.
- the compression strength or the quantization parameter QP value can be determined according to the content type 710, 720, 730 of the image. If the compression strength or the QP value is increased, the amount of generated bits is lowered, but the image quality is lowered. In particular, in the case of transmitting a compressed image, the compression strength or the QP value can be determined considering the bit amount per second that can be transmitted in the channel. For example, if the amount of bits per second available in the transport channel is low, the compression ratio should be increased by using a relatively high compression strength or QP value.
- the image quality felt by the human can be different according to the content types 710, 720, and 730.
- the image quality measured through the amount of errors from the signal point of view is different from the subjective image quality actually felt.
- the rate-distortion optimization model for determining the optimal QP value in terms of subjective image quality can model the brightness contrast of the surrounding brightness of the reference pixel. For example, even if the image is compressed through the same compressive strength or QP value, the degree of subjective image deterioration may be greater than when the content type 710, 720, or 730 of the image is a texture.
- the disclosed embodiments focus on the fact that the error characteristics of an image may differ depending on the content type 710, 720, 730.
- the disclosed embodiments may use filter information that indicates whether the video belongs to which content type 710, 720, 730 to effectively compensate for errors having different characteristics according to the content type 710, 720, 730 .
- the in-loop filtering units 150 and 250 may include DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, and 734 previously learned for various content types 710, 720, 736) can be prepared.
- the DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, and 736 may be preset and stored in the image encoding apparatus 100 or the image decoding apparatus 200 .
- the in-loop filtering unit 150 and 250 extracts the content types 710 and 720 of the current image among the prepared DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, , 730), and perform in-loop filtering using the selected DNN filter model.
- the DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, and 736 may include, for each content type 710, 720, 730, Can be learned structure minimized.
- the in-loop filtering unit 150 and 250 may signal the filter information including information on the content types 710, 720, and 730.
- the in-loop filtering units 150 and 250 may generate DNN filter model candidates 712, 714, 716, 722, 724, 726, and 732 for the content types 710, 720, , 734, and 736 can be determined for the content types 710, 720, and 730 indicated by the filter information.
- the in-loop filtering units 150 and 250 may select one of the DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, 712, 714, 716).
- the in-loop filtering units 150 and 250 may generate a DNN filter set 712 applied to the low QP value, a DNN filter set 712 applied to the intermediate QP value, (714) or a DNN filter model (716) applied to a high QP value.
- An embodiment for classifying the DNN filter model by QP value will be described below.
- the in-loop filtering units 150 and 250 consider that the error characteristics of an image may differ according to the QP value.
- the type of in-loop filtering, and the intensity of filtering may differ depending on the QP value used to compress the image.
- the DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, 736 may be classified according to the QP value.
- the in-loop filtering units 150 and 250 may select a DNN filter model suitable for the QP value of the current image among the DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, And perform in-loop filtering using the selected DNN filter model.
- the filter information may include information indicating the QP value in addition to the information on the content types 710, 720, and 730.
- the in-loop filtering units 150 and 250 correspond to the quantization parameters indicated by the filter information among the DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734 and 736 for each quantization parameter
- the DNN filter model can be determined.
- the DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, and 736 are programmed to minimize the error between the in- Structure.
- the in-loop filtering units 150 and 250 may select one of the DNN filter model candidates 712, 714, 716, 722, 724, 726, 732, 734, 722, 732). In this case, if the filter information indicates the content type 710, the in-loop filtering unit 150 or 250 selects the DNN filter model 712 from the DNN filter models 712, 722, and 732, Filter model 712 to perform in-loop filtering.
- the filter information according to one embodiment may be determined from the image encoding apparatus 100.
- the image encoding apparatus 100 according to an exemplary embodiment can determine the content types 710, 720, and 730 and the quantization parameters by discriminating the characteristics of the input image.
- the image encoding apparatus 100 according to an exemplary embodiment may generate a bitstream obtained by encoding filter information including information on the content types 710, 720, and 730 and quantization parameters.
- the image decoding apparatus 200 may obtain filter information from a bitstream.
- the video decoding apparatus 200 decides a DNN filter model to be applied to in-loop filtering based on information on content types 710, 720, and 730 included in the filter information and information on quantization parameters .
- the filter information includes a sequence parameter set, a picture parameter set, a video parameter set, a slice header, a slice segment header, And may be signaled.
- FIG. 8 is a diagram illustrating a method for performing in-loop filtering based on a DNN filter model using one or more reference images according to an embodiment.
- a reconstructed picture buffer 810 and a DNN filter model 820 are shown.
- the DNN filter model 820 may correspond to the in-loop filtering unit 150, 250.
- the reconstructed picture buffer 810 may store an image reconstructed before the current image (for example, an image of a past viewpoint or an image of a future viewpoint) to be used as a reference of inter-view prediction.
- the DNN filter model 820 may utilize one or more reference images stored in the reconstructed picture buffer 810 to improve the prediction accuracy of the current frame.
- One or more reference images stored in the restored picture buffer 810 may be input as an input to the DNN filter model 820 according to an exemplary embodiment.
- the DNN filter model 820 may determine one or more reference images that are referenced for in-loop filtering of the reconstructed data, and may compensate for errors in reconstructed data by referencing one or more reference images.
- the DNN filter model 820 may have a structure that is learned to minimize errors between the in-loop filtered restoration data and the original data.
- the learned DNN filter model 820 has a generalization ability to analyze the pattern of one or more input reference images and to find and use the feature to optimally filter the restored data of the current image. Accordingly, the DNN filter model 820 according to an embodiment does not require signaling of prediction information (e.g., a motion vector, a prediction direction, a reference picture index, etc.) for predicting a current image through a reference image .
- prediction information e.g., a motion vector, a prediction direction, a reference picture index, etc.
- the network structure of the DNN filter model 820 may be implemented as a set of layers including a convolution pooling layer, a hidden layer, and a fully connected layer.
- the overall structure of a network can be in the form of a hidden layer in the convolution pooling layer, followed by a fully connected layer in the hidden layer.
- FIG. 9 shows a schematic block diagram of an image encoding apparatus 900 according to an embodiment.
- the image encoding apparatus 900 may correspond to the image encoding apparatus 100 of FIG.
- the image encoding apparatus 900 includes an encoding unit 910 and a transmission unit 920.
- the encoding unit 910 can divide the image data of the current picture into the maximum encoding units according to the maximum size of the encoding units.
- Each maximum encoding unit may include blocks (i.e., encoding units) that are divided into block types and division types.
- the maximum coding unit according to an exemplary embodiment may classify image data of a spatial domain included in the maximum coding unit hierarchically according to a block type and a division type.
- the block type of the encoding unit may be a square or a rectangle, and may be any geometric shape, and thus is not limited to a unit of a certain size.
- the block form and the division form of one or more blocks may be determined based on the R-D cost calculation.
- the encoding unit 910 may determine the content type and the quantization parameter by determining the characteristics of the input image.
- the encoding unit 910 according to an exemplary embodiment may generate a bitstream obtained by encoding filter information including information on a content type and information on a quantization parameter.
- the encoding unit 910 may generate prediction data by performing prediction on an input image based on in-loop filtered restoration data.
- the encoding unit 910 may generate residual data using the input image data and the prediction data.
- the encoding unit 910 may transform and quantize the residual data to generate quantized transform coefficients. At this time, the quantized transform coefficient may be generated for each block.
- the encoding unit 910 may output a bitstream obtained by entropy encoding the quantized transform coefficients.
- the in-loop filtered restoration data may be generated by performing in-loop filtering based on the DNN filter model on restored data restored from the encoded residual data.
- the detailed process of the in-loop filtering based on the DNN filter model according to the embodiment has been described above with reference to FIGS. 4 to 8, and a detailed description thereof will be omitted.
- the transmitting unit 920 transmits the bit stream output from the encoding unit 910 to the image decoding apparatus 200.
- FIG. 10 shows a schematic block diagram of an image decoding apparatus 1000 according to an embodiment.
- the image decoding apparatus 1000 may correspond to the image decoding apparatus 200 of FIG.
- the video decoding apparatus 1000 includes a receiving unit 1010 and a decoding unit 1020.
- a receiving unit 1010 receives an encoded bitstream.
- the encoded bit stream is composed of a plurality of NAL (Network Abstraction Layer) units.
- the NAL unit may include high level syntax metadata such as parameter set data, slice header data, or supplemental enhancement information data, as well as encoded sample data such as an encoded slice.
- the parameter set may include a required syntax element (e.g., a video parameter set (VPS)) that may be applied to multiple bitstream layers, a required syntax element that may be applied to an encoded video sequence within one layer Parameter set (SPS)), or a required syntax element (e.g., a picture parameter set (PPS)) that may be applied to multiple pictures in one encoded video sequence.
- a required syntax element e.g., a video parameter set (VPS)
- SPS layer Parameter set
- PPS picture parameter set
- the parameter set may be transmitted with the encoded picture of the bitstream, or transmitted via other means, including a reliable channel, hard-coding, out-of-band transmission, and the like.
- the slice header may be a high-level syntax structure that includes picture-related information for slices or picture types.
- the SEI message may convey information that may be used for various other purposes such as picture output timing, display, loss detection, and concealment, although this may not be necessary for the decoding process.
- the parameter set included in the encoded bitstream may include additional information for performing in-loop filtering based on DNN.
- the additional information may include information on the structure of the DNN filter model (e.g., filter set, information on the number of nodes, etc.), filter information on restored data (e.g., Information about the content type of the encoded image, information about the quantization parameter, etc.), and the like.
- the additional information may be signaled through a video parameter set, a sequence parameter set, a picture parameter set, or the like in a bitstream.
- the decoding unit 1020 obtains division information from a bitstream, Can be hierarchically divided according to the block type and the division type. On the other hand, when the blocks used for decoding have a certain shape and size, the decoding unit 1020 can divide the image data without using the division information.
- the decoding unit 1020 obtains residual data of each block by inverse-quantizing and inverse-transforming the quantized transform coefficients obtained by entropy decoding the bitstream. Thereafter, the decoding unit 1020 restores the image using the residual data of each block and the prediction data of each block generated by the predicting unit 1530.
- the decoding unit 1020 performs in-loop filtering on the restored data generated by restoring the image.
- the in-loop filtering operation performed by the decoding unit 1020 may be based on a DNN filter model.
- the decoding unit 1020 may obtain the filter information on the reconstructed data from the bitstream.
- the decoding unit 1020 selects a DNN filter model for compensating for the error of the restored data among the DNN filter model candidates for the preset in-loop filtering based on the filter information.
- the decoding unit 1020 may perform in-loop filtering based on the DNN filter model on the restored data using the selected DNN filter model.
- the filter information on the reconstructed data may be transmitted through a bitstream, but it may be shared in advance between the image encoding apparatus 100 and the image decoding apparatus 200.
- the filter information for the restored data may be shared through a separate server capable of communication.
- the decoding unit 1020 may perform in-loop filtering based on the learned DNN to generate data with minimized error between the original data and the filtered restored data. In this case, it is unnecessary to signal the information on deblocking filtering, the SAO parameter, and information on adaptive loop filtering described above with reference to FIG.
- the learned DNN filter model has generalization ability to analyze the input pattern and to find its characteristics and perform optimal filtering. The detailed process of the in-loop filtering based on the DNN filter model according to the embodiment has been described above with reference to FIGS. 4 to 8, and a detailed description thereof will be omitted.
- FIG. 11 is a flowchart illustrating an image encoding method including an in-loop filtering process based on a DNN filter model according to an exemplary embodiment.
- step S1110 the image encoding apparatus 100 determines the content type of the input image.
- step S1120 the image encoding apparatus 100 determines a learned DNN filter model to perform in-loop filtering using one or more computers, based on the content type.
- step S1130 the image encoding apparatus 100 applies the restored data of the input image reconstructed from the encoded residual data to the determined DNN filter model to generate in-loop filtered data.
- step S1140 the image encoding apparatus 100 generates prediction data in which the input image is predicted based on the in-loop filtered data, and generates residual data using the input image and the prediction data.
- step S1150 the image coding apparatus 100 generates a bit stream obtained by coding the information on the content type and the residual data.
- FIG. 12 is a flowchart illustrating an image decoding method including an in-loop filtering process based on a DNN filter model according to an exemplary embodiment.
- step S1210 the video decoding apparatus 200 receives the bit stream of the encoded video.
- step S1220 the image decoding apparatus 200 generates restored data by restoring the encoded image.
- step S1230 the image decoding apparatus 200 obtains information on the content type of the encoded image from the bitstream.
- step S1240 the video decoding apparatus 200 determines a learned DNN filter model to perform in-loop filtering using one or more computers based on information on the content type.
- step S1250 the image decoding apparatus 200 applies the restored data to the determined DNN filter model to perform in-loop filtering.
- FIG. 13 to 26 The division method for the encoding unit described in Figs. 13 to 26 can be similarly applied to the division method of the conversion unit as the basis of the conversion.
- FIG. 13 illustrates a process in which the image decoding apparatus 200 determines at least one encoding unit by dividing a current encoding unit according to an embodiment.
- the image decoding apparatus 200 can determine the type of an encoding unit using block type information, and determine a type of an encoding unit to be divided using the type information. That is, the division method of the coding unit indicated by the division type information can be determined according to which block type the block type information used by the video decoding apparatus 200 represents.
- the image decoding apparatus 200 may use block type information indicating that the current encoding unit is a square type. For example, the video decoding apparatus 200 can determine whether to divide a square encoding unit according to division type information, vertically divide, horizontally divide, or divide into four encoding units. 13, when the block type information of the current encoding unit 1300 indicates a square shape, the image decoding apparatus 200 determines the size of the current encoding unit 1300 according to the division type information indicating that the current block is not divided It is possible to determine the divided coding units 1310b, 1310c, 1310d, etc. based on the division type information indicating the predetermined division method.
- the image decoding apparatus 200 determines two encoding units 1310b obtained by dividing the current encoding unit 1300 in the vertical direction based on the division type information indicating that the image is divided in the vertical direction according to an embodiment .
- the image decoding apparatus 200 can determine two encoding units 1310c obtained by dividing the current encoding unit 1300 in the horizontal direction based on the division type information indicating that the image is divided in the horizontal direction.
- the image decoding apparatus 200 can determine the four encoding units 1310d in which the current encoding unit 1300 is divided into the vertical direction and the horizontal direction based on the division type information indicating that the image is divided vertically and horizontally.
- the division type in which the square coding unit can be divided should not be limited to the above-mentioned form, but may include various forms in which the division type information can be represented.
- the predetermined divisional form in which the square encoding unit is divided will be described in detail by way of various embodiments below.
- FIG. 14 illustrates a process in which the image decoding apparatus 200 determines at least one encoding unit by dividing a non-square encoding unit according to an embodiment.
- the image decoding apparatus 200 may use block type information indicating that the current encoding unit is a non-square format.
- the image decoding apparatus 200 may determine whether to divide the non-square current coding unit according to the division type information, or not to divide it in a predetermined manner. 14, when the block type information of the current encoding unit 1400 or 1450 indicates a non-square shape, the image decoding apparatus 200 determines that the current encoding unit 1400 1420a, 1430b, 1430c, 1470a, 1430a, 1430a, 1430a, 1430a, 1430a, 1430a, 1430a, 1430a, 1430a, 1430a, 1430a, 1430a, 1430a, 1470b, 1480a, 1480b, 1480c.
- the predetermined division method in which the non-square coding unit is divided will be described in detail through various embodiments.
- the image decoding apparatus 200 may determine a type in which an encoding unit is divided using segmentation type information.
- the segmentation type information indicates a number of at least one encoding unit . 14
- the video decoding apparatus 200 determines the current coding unit 1400 or 1450 based on the division type information, To determine two encoding units 1420a, 11720b, or 1470a and 1470b included in the current encoding unit.
- the non-square current coding unit 1400 or 1450 The current encoding unit can be divided in consideration of the position of the long side. For example, the image decoding apparatus 200 divides the current encoding unit 1400 or 1450 in the direction of dividing the long side of the current encoding unit 1400 or 1450 in consideration of the type of the current encoding unit 1400 or 1450 So that a plurality of encoding units can be determined.
- the image decoding apparatus 200 may determine an odd number of encoding units included in the current encoding unit 1400 or 1450. For example, when the division type information indicates that the current coding unit 1400 or 1450 is divided into three coding units, the video decoding apparatus 200 divides the current coding unit 1400 or 1450 into three coding units 1430a , 1430b, 1430c, 1480a, 1480b, 1480c. According to an exemplary embodiment, the image decoding apparatus 200 may determine an odd number of encoding units included in the current encoding unit 1400 or 1450, and the sizes of the determined encoding units may not be the same.
- the size of a predetermined encoding unit 1430b or 1480b among the determined odd number of encoding units 1430a, 1430b, 1430c, 1480a, 1480b, and 1480c is different from the size of other encoding units 1430a, 1430c, 1480a, and 1480c .
- an encoding unit that can be determined by dividing the current encoding unit 1400 or 1450 may have a plurality of types of sizes, and may include an odd number of encoding units 1430a, 1430b, 1430c, 1480a, 1480b, and 1480c, May have different sizes.
- the image decoding apparatus 200 can determine an odd number of encoding units included in the current encoding unit 1400 or 1450, The image decoding apparatus 200 may set a predetermined restriction on at least one of the odd number of encoding units generated by division.
- the image decoding apparatus 200 includes a coding unit 1430a, 1430b, 1430c, 1480a, 1480b, and 1480c generated by dividing a current coding unit 1400 or 1450, 1430b, and 1480b may be different from the other encoding units 1430a, 1430c, 1480a, and 1480c.
- the coding units 1430b and 1480b positioned at the center are restricted so as not to be further divided unlike the other coding units 1430a, 1430c, 1480a, and 1480c, It can be limited to be divided.
- FIG. 15 illustrates a process in which the image decoding apparatus 200 divides an encoding unit based on at least one of block type information and division type information according to an embodiment.
- the second encoding unit can be determined, and if the second encoding unit is divided, the third encoding unit can be determined.
- the relationship between the first coding unit, the second coding unit and the third coding unit used can be understood to be in accordance with the above-mentioned characteristic.
- the image decoding apparatus 200 may determine that the determined second encoding unit 1510 is not divided or divided into encoding units based on at least one of the block type information and the division type information.
- the image decoding apparatus 200 includes a second encoding unit 1510 of a non-square shape determined by dividing a first encoding unit 1500 based on at least one of block type information and division type information It may be divided into at least one third encoding unit 1520a, 1520b, 1520c, 1520d, or the like, or the second encoding unit 1510 may not be divided.
- the image decoding apparatus 200 may obtain at least one of block type information and division type information and the image decoding apparatus 200 may acquire at least one of the first encoding unit 1500 (For example, 1510), and the second encoding unit 1510 may divide a plurality of second encoding units (for example, 1510) of various types into a first encoding unit 1510 based on at least one of the block type information and the division type information,
- the unit 1500 can be divided according to the divided method.
- the coding unit 1510 may be divided into a third coding unit (e.g., 1520a, 1520b, 1520c, 1520d, etc.) based on at least one of block type information and division type information for the second coding unit 1510 have. That is, an encoding unit can be recursively divided based on at least one of division type information and block type information associated with each encoding unit.
- a square encoding unit may be determined in a non-square encoding unit, and a non-square encoding unit may be determined by dividing the square encoding unit recursively.
- predetermined encoding units for example, An encoding unit or a square-shaped encoding unit
- the square-shaped third coding unit 1520c which is one of the odd-numbered third coding units 1520b, 1520c, and 1520d, may be divided in the horizontal direction and divided into a plurality of fourth coding units.
- the image decoding apparatus 200 may divide each of the third encoding units 1520a, 1520b, 1520c, and 1520d into units of encoding based on at least one of block type information and division type information, It can be determined that the unit 1510 is not divided.
- the image decoding apparatus 200 may divide the second encoding unit 1510 in the non-square form into third encoding units 1520b, 1520c and 1520d in an odd number according to an embodiment.
- the image decoding apparatus 200 may set a predetermined restriction on a predetermined third encoding unit among the odd number of third encoding units 1520b, 1520c, and 1520d.
- the image decoding apparatus 200 may restrict the encoding unit 1520c positioned in the middle among the odd-numbered third encoding units 1520b, 1520c, and 1520d to no longer be divided, or may be divided into a set number of times . Referring to FIG.
- the image decoding apparatus 200 includes an encoding unit (not shown) located in the middle among the odd third encoding units 1520b, 1520c, and 1520d included in the second encoding unit 1510 in the non- 1520c may not be further divided, or may be limited to being divided into a predetermined division form (for example, divided into four coding units or divided into a form corresponding to the divided form of the second coding unit 1510) (For example, dividing only n times, n > 0).
- a predetermined division form for example, divided into four coding units or divided into a form corresponding to the divided form of the second coding unit 1510
- the above restriction on the coding unit 1520c positioned at the center is merely an example and should not be construed to be limited to the above embodiments, and the coding unit 1520c located in the middle is not limited to the other coding units 1520b and 1520d Quot;), < / RTI > which can be decoded differently.
- the image decoding apparatus 200 may acquire at least one of block type information and division type information used for dividing a current encoding unit at a predetermined position in a current encoding unit.
- FIG. 16 illustrates a method for an image decoding apparatus 200 to determine a predetermined encoding unit among odd number of encoding units according to an embodiment.
- at least one of the block type information and the division type information of the current encoding unit 1600 is a sample of a predetermined position among a plurality of samples included in the current encoding unit 1600 (for example, Sample 1640).
- the predetermined position in the current coding unit 1600 in which at least one of the block type information and the division type information can be obtained should not be limited to the middle position shown in FIG.
- the video decoding apparatus 200 may determine that the current encoding unit is not divided or divided into the encoding units of various types and sizes by acquiring at least one of the block type information and the division type information obtained from the predetermined position.
- the image decoding apparatus 200 can select one of the encoding units.
- the method for selecting one of the plurality of encoding units may be various, and description of these methods will be described later in various embodiments.
- the image decoding apparatus 200 may divide a current encoding unit into a plurality of encoding units and determine a predetermined encoding unit.
- 16 illustrates a method for the video decoding apparatus 200 to determine a coding unit of a predetermined position among odd-numbered coding units according to an embodiment.
- the image decoding apparatus 200 may use information indicating the positions of odd-numbered encoding units in order to determine an encoding unit located in the middle among odd-numbered encoding units.
- the image decoding apparatus 200 can divide the current encoding unit 1600 to determine odd number of encoding units 1620a, 1620b, and 1620c.
- the image decoding apparatus 200 can determine the middle encoding unit 1620b by using information on the positions of the odd number of encoding units 1620a, 1620b, and 1620c.
- the image decoding apparatus 200 determines the positions of the encoding units 1620a, 1620b, and 1620c based on information indicating the positions of predetermined samples included in the encoding units 1620a, 1620b, and 1620c,
- the encoding unit 1620b located at the position of the encoding unit 1620b can be determined.
- the video decoding apparatus 200 decodes the coding units 1620a, 1620b, and 1620c based on information indicating the positions of the upper left samples 1630a, 1630b, and 1630c of the coding units 1620a, 1620b, and 1620c. By determining the position, the encoding unit 1620b located in the center can be determined.
- the information indicating the positions of the upper left samples 1630a, 1630b, and 1630c included in the coding units 1620a, 1620b, and 1620c is a position in the picture of the coding units 1620a, 1620b, and 1620c Or information about the coordinates.
- Information indicating the positions of the upper left samples 1630a, 1630b, and 1630c included in the coding units 1620a, 1620b, and 1620c according to one embodiment is stored in the coding units 1620a and 1620b included in the current coding unit 1600 And 1620c, and the width or height may correspond to information indicating the difference between coordinates in the picture of the encoding units 1620a, 1620b, and 1620c.
- the video decoding apparatus 200 can directly use the information on the position or the coordinates in the pictures of the coding units 1620a, 1620b, and 1620c or the information on the width or height of the coding unit corresponding to the difference value between the coordinates
- the encoding unit 1620b located in the center can be determined.
- the information indicating the position of the upper left sample 1630a of the upper coding unit 1620a may indicate the coordinates of (xa, ya) and the upper left sample 1630b of the middle coding unit 1620b May represent the coordinates (xb, yb), and the information indicating the position of the upper left sample 1630c of the lower coding unit 1620c may indicate the coordinates (xc, yc).
- the video decoding apparatus 200 can determine the center encoding unit 1620b using the coordinates of the upper left samples 1630a, 1630b, and 1630c included in the encoding units 1620a, 1620b, and 1620c.
- the coding unit 1620b including (xb, yb) coordinates of the sample 1630b positioned at the center, Can be determined as a coding unit located in the middle of the coding units 1620a, 1620b, and 1620c determined by dividing the current coding unit 1600.
- the coordinates indicating the positions of the samples 1630a, 1630b, and 1630c in the upper left corner may indicate the coordinates indicating the absolute position in the picture
- the position of the upper left sample 1630a of the upper coding unit 1620a may be (Dxb, dyb), which is the information indicating the relative position of the sample 1630b at the upper left of the middle encoding unit 1620b, and the relative position of the sample 1630c at the upper left of the lower encoding unit 1620c
- Information dyn (dxc, dyc) coordinates may also be used.
- the method of determining the coding unit at a predetermined position by using the coordinates of the sample as information indicating the position of the sample included in the coding unit should not be limited to the above-described method, and various arithmetic Should be interpreted as a method.
- the video decoding apparatus 200 may divide the current encoding unit 1600 into a plurality of encoding units 1620a, 1620b, and 1620c, and may encode a predetermined reference among the encoding units 1620a, 1620b, and 1620c
- the encoding unit can be selected.
- the video decoding apparatus 200 can select an encoding unit 1620b having a different size from the encoding units 1620a, 1620b, and 1620c.
- the image decoding apparatus 200 is configured to include (xa, ya) coordinates, which is information indicating the position of the upper left sample 1630a of the upper encoding unit 1620a, (Xc, yc) coordinates, which is information indicating the position of the lower-stage coding unit 1630b and the position of the upper-left sample 1630c of the lower-stage coding unit 1620c, 1620b, and 1620c, respectively.
- the video decoding apparatus 200 encodes the encoded data 1620a, 1620b, and 1620c using the coordinates (xa, ya), (xb, yb), (xc, yc) indicating the positions of the encoding units 1620a, 1620b, ) Can be determined.
- the image decoding apparatus 200 can determine the width of the upper encoding unit 1620a as xb-xa and the height as yb-ya. According to an embodiment, the image decoding apparatus 200 can determine the width of the middle encoding unit 1620b as xc-xb and the height as yc-yb. The image decoding apparatus 200 may determine the width or height of the lower coding unit using the width or height of the current coding unit and the width and height of the upper coding unit 1620a and the middle coding unit 1620b .
- the image decoding apparatus 200 may determine an encoding unit having a different size from the other encoding units based on the widths and heights of the determined encoding units 1620a, 1620b, and 1620c. Referring to FIG. 16, the video decoding apparatus 200 may determine a coding unit 1620b as a coding unit at a predetermined position while having a size different from that of the upper coding unit 1620a and the lower coding unit 1620c.
- the process of determining the encoding unit having a size different from that of the other encoding units by the image decoding apparatus 200 may be performed in an embodiment of determining an encoding unit at a predetermined position using the size of the encoding unit determined based on the sample coordinates .
- Various processes may be used for determining the encoding unit at a predetermined position by comparing the sizes of the encoding units determined according to predetermined sample coordinates.
- the position of the sample to be considered for determining the position of the coding unit should not be interpreted as being limited to the left upper end, and information about the position of any sample included in the coding unit can be interpreted as being available.
- the image decoding apparatus 200 may select a coding unit at a predetermined position among the odd number of coding units in which the current coding unit is divided in consideration of the type of the current coding unit. For example, if the current coding unit is a non-square shape having a width greater than the height, the image decoding apparatus 200 can determine a coding unit at a predetermined position along the horizontal direction. That is, the image decoding apparatus 200 may determine one of the encoding units which are located in the horizontal direction and limit the encoding unit. If the current encoding unit is a non-square shape having a height greater than the width, the image decoding apparatus 200 can determine the encoding unit at a predetermined position in the vertical direction. That is, the image decoding apparatus 200 may determine one of the encoding units which are located in the vertical direction and limit the encoding unit.
- the image decoding apparatus 200 may use information indicating positions of even-numbered encoding units in order to determine an encoding unit of a predetermined position among the even-numbered encoding units.
- the image decoding apparatus 200 can determine an even number of coding units by dividing the current coding unit and determine a coding unit at a predetermined position by using information on the positions of the even number of coding units.
- a concrete procedure for this is omitted because it may be a process corresponding to a process of determining a coding unit of a predetermined position (for example, the middle position) among the odd number of coding units described with reference to FIG.
- the image decoding apparatus 200 may convert the block type information stored in the sample included in the middle encoding unit, Information can be used.
- the image decoding apparatus 200 may divide a current encoding unit 1600 into a plurality of encoding units 1620a, 1620b, and 1620c based on at least one of block type information and division type information,
- the encoding unit 1620b located in the middle of the plurality of encoding units 1620a, 1620b, and 1620c can be determined.
- the image decoding apparatus 200 can determine the coding unit 1620b positioned at the center in consideration of the position where at least one of the block type information and the division type information is obtained.
- At least one of the block type information and the division type information of the current encoding unit 1600 can be acquired in the sample 1640 located in the middle of the current encoding unit 1600, and the block type information and the division type information If the current encoding unit 1600 is divided into a plurality of encoding units 1620a, 1620b, and 1620c based on at least one of the encoding units 1620a to 1620c, You can decide.
- the information used for determining the coding unit located in the middle should not be limited to at least one of the block type information and the division type information, and various kinds of information may be used in the process of determining the coding unit located in the middle .
- predetermined information for identifying a coding unit at a predetermined position may be obtained from a predetermined sample included in a coding unit to be determined.
- the image decoding apparatus 200 includes a plurality of encoding units 1620a, 1620b, and 1620c, which are determined by dividing the current encoding unit 1600, and encoding units (for example, Block type information obtained at a predetermined position in the current coding unit 1600 (e.g., a sample located in the middle of the current coding unit 1600) in order to determine a coding unit located in the middle of the coding unit, and And at least one of division type information.
- encoding units for example, Block type information obtained at a predetermined position in the current coding unit 1600 (e.g., a sample located in the middle of the current coding unit 1600) in order to determine a coding unit located in the middle of the coding unit, and And at least one of division type information.
- the video decoding apparatus 200 can determine the sample at the predetermined position in consideration of the block block type of the current encoding unit 1600, and the video decoding apparatus 200 determines the current encoding unit 1600 by dividing the current encoding unit 1600 A coding unit 1620b including a sample from which predetermined information (for example, at least one of block type information and division type information) can be obtained is determined among a plurality of coding units 1620a, 1620b, and 1620c A predetermined limit can be set. Referring to FIG.
- the image decoding apparatus 200 can determine a sample 1640 located in the center of a current encoding unit 1600 as a sample from which predetermined information can be obtained,
- the coding unit 200 may limit the coding unit 1620b including the sample 1640 to a predetermined limit in the decoding process.
- the position of the sample from which predetermined information can be obtained should not be construed to be limited to the above-described position, but may be interpreted as samples at arbitrary positions included in the encoding unit 1620b to be determined for limiting.
- the position of a sample from which predetermined information can be obtained may be determined according to the type of the current encoding unit 1600.
- the block type information can determine whether the current encoding unit is a square or a non-square, and determine the position of a sample from which predetermined information can be obtained according to the shape.
- the video decoding apparatus 200 may use at least one of the information on the width of the current encoding unit and the information on the height to position at least one of the width and the height of the current encoding unit in half The sample can be determined as a sample from which predetermined information can be obtained.
- the image decoding apparatus 200 selects one of the samples adjacent to the boundary dividing the long side of the current encoding unit into halves by a predetermined Can be determined as a sample from which the information of < / RTI >
- the image decoding apparatus 200 may determine at least one of the block type information and the division type information One can be used.
- the image decoding apparatus 200 can acquire at least one of the block type information and the division type information from a sample at a predetermined position included in the encoding unit, and the image decoding apparatus 200 determines that the current encoding unit is divided And divide the generated plurality of coding units by using at least one of division type information and block type information obtained from samples at predetermined positions included in each of the plurality of coding units.
- the coding unit can be recursively divided using at least one of the block type information and the division type information obtained in the sample at the predetermined position included in each of the coding units.
- the recursive division process of the encoding unit has been described in detail with reference to FIG. 15, and a detailed description thereof will be omitted.
- the image decoding apparatus 200 may determine at least one encoding unit by dividing the current encoding unit, and may determine the order in which the at least one encoding unit is decoded in a predetermined block (for example, ). ≪ / RTI >
- FIG. 17 shows a sequence in which a plurality of coding units are processed when the image decoding apparatus 200 determines a plurality of coding units by dividing the current coding unit according to an embodiment.
- the image decoding apparatus 200 divides the first encoding unit 1700 in the vertical direction according to the block type information and the division type information to determine the second encoding units 1710a and 1710b, 1750b, 1750c, and 1750d by dividing the first encoding unit 1700 in the horizontal direction to determine the second encoding units 1730a and 1730b or dividing the first encoding unit 1700 in the vertical direction and the horizontal direction, Can be determined.
- the image decoding apparatus 200 can determine the order in which the second encoding units 1710a and 1710b determined by dividing the first encoding unit 1700 in the vertical direction are processed in the horizontal direction 1710c .
- the image decoding apparatus 200 can determine the processing order of the second encoding units 1730a and 1730b determined by dividing the first encoding unit 1700 in the horizontal direction as the vertical direction 1730c.
- the image decoding apparatus 200 processes the encoding units located in one row of the second encoding units 1750a, 1750b, 1750c, and 1750d determined by dividing the first encoding unit 1700 in the vertical direction and the horizontal direction (E.g., a raster scan order or a z scan order 1750e) in which the encoding units located in the next row are processed.
- the image decoding apparatus 200 may recursively divide encoding units. 17, the image decoding apparatus 200 may determine a plurality of encoding units 1710a, 1710b, 1730a, 1730b, 1750a, 1750b, 1750c, and 1750d by dividing the first encoding unit 1700, It is possible to recursively divide each of the determined plurality of encoding units 1710a, 1710b, 1730a, 1730b, 1750a, 1750b, 1750c, and 1750d.
- the method of dividing the plurality of encoding units 1710a, 1710b, 1730a, 1730b, 1750a, 1750b, 1750c, and 1750d may be a method corresponding to the method of dividing the first encoding unit 1700.
- the plurality of encoding units 1710a, 1710b, 1730a, 1730b, 1750a, 1750b, 1750c, and 1750d may be independently divided into a plurality of encoding units.
- the image decoding apparatus 200 may determine the second encoding units 1710a and 1710b by dividing the first encoding unit 1700 in the vertical direction, and may further determine the second encoding units 1710a and 1710b Can be determined not to divide or separate independently.
- the image decoding apparatus 200 may divide the left second encoding unit 1710a in the horizontal direction into the third encoding units 1720a and 1720b and the right second encoding unit 1710b ) May not be divided.
- the processing order of the encoding units may be determined based on the division process of the encoding units.
- the processing order of the divided coding units can be determined based on the processing order of the coding units immediately before being divided.
- the image decoding apparatus 200 can determine the order in which the third encoding units 1720a and 1720b determined by dividing the second encoding unit 1710a on the left side are processed independently of the second encoding unit 1710b on the right side.
- the third encoding units 1720a and 1720b may be processed in the vertical direction 1720c since the second encoding units 1710a on the left side are divided in the horizontal direction and the third encoding units 1720a and 1720b are determined.
- the order in which the left second encoding unit 1710a and the right second encoding unit 1710b are processed corresponds to the horizontal direction 1710c
- the right encoding unit 1710b can be processed after the blocks 1720a and 1720b are processed in the vertical direction 1720c.
- the above description is intended to explain the process sequence in which encoding units are determined according to the encoding units before division. Therefore, it should not be construed to be limited to the above-described embodiments, It should be construed as being used in various ways that can be handled independently in sequence.
- FIG. 18 illustrates a process of determining that the current encoding unit is divided into odd number of encoding units when the image decoding apparatus 200 can not process the encoding units in a predetermined order according to an embodiment.
- the image decoding apparatus 200 may determine that the current encoding unit is divided into odd number of encoding units based on the obtained block type information and the division type information.
- the first encoding unit 1800 in the form of a square may be divided into second encoding units 1810a and 1810b in the non-square form, and the second encoding units 1810a and 1810b may be independently 3 encoding units 1820a, 1820b, 1820c, 1820d, and 1820e.
- the image decoding apparatus 200 may determine the plurality of third encoding units 1820a and 1820b by dividing the left encoding unit 1810a of the second encoding unit in the horizontal direction, and may determine the right encoding unit 1810b May be divided into an odd number of third encoding units 1820c, 1820d, and 1820e.
- the image decoding apparatus 200 determines whether or not the third encoding units 1820a, 1820b, 1820c, 1820d, and 1820e can be processed in a predetermined order and determines whether there are odd-numbered encoding units You can decide. Referring to FIG. 18, the image decoding apparatus 200 may recursively divide the first encoding unit 1800 to determine the third encoding units 1820a, 1820b, 1820c, 1820d, and 1820e.
- the video decoding apparatus 200 may further include a first encoding unit 1800, a second encoding unit 1810a and a third encoding unit 1820a, 1820b, 1820c, and 1820c based on at least one of block type information and division type information, 1820d, and 1820e are divided into odd number of coding units among the divided types.
- an encoding unit located on the right of the second encoding units 1810a and 1810b may be divided into odd third encoding units 1820c, 1820d, and 1820e.
- the order in which the plurality of coding units included in the first coding unit 1800 are processed may be a predetermined order (for example, a z-scan order 1830) 200 can determine whether the third encoding units 1820c, 1820d, and 1820e determined by dividing the right second encoding unit 1810b into odd numbers satisfy the condition that the third encoding units 1820c, 1820d, and 1820e can be processed according to the predetermined order.
- a predetermined order for example, a z-scan order 1830
- the image decoding apparatus 200 satisfies a condition that third encoding units 1820a, 1820b, 1820c, 1820d, and 1820e included in the first encoding unit 1800 can be processed in a predetermined order And it is determined whether or not at least one of the width and height of the second encoding units 1810a and 1810b is divided in half according to the boundaries of the third encoding units 1820a, 1820b, 1820c, 1820d, and 1820e, .
- the third encoding units 1820a and 1820b determined by dividing the height of the left-side second encoding unit 1810a in the non-square form by half are satisfying the condition, but the right second encoding unit 1810b is set to 3
- the boundary of the third coding units 1820c, 1820d, and 1820e determined by dividing the coding units of the first coding units 1820c, 1820d, and 1820e does not divide the width or height of the right second coding unit 1810b in half, 1820e may be determined as not satisfying the condition and the image decoding apparatus 200 determines that the scanning order is disconnection in the case of such unsatisfactory condition and the right second encoding unit 1810b is determined based on the determination result It can be determined to be divided into odd number of encoding units.
- a predetermined limit may be imposed on a predetermined unit of the divided encoding units. Since the embodiment has been described above, a detailed description thereof will be omitted.
- FIG. 19 illustrates a process in which the image decoding apparatus 200 determines at least one encoding unit by dividing a first encoding unit 1900 according to an embodiment.
- the image decoding apparatus 200 may divide the first encoding unit 1900 based on at least one of the block type information and the division type information acquired through the receiving unit 210.
- the first encoding unit 1900 in the form of a square may be divided into four encoding units having a square shape or may be divided into a plurality of non-square encoding units. For example, referring to FIG.
- the image decoding apparatus 200 determines that the first encoding unit
- the encoding unit 1900 may be divided into a plurality of non-square encoding units. Specifically, when the division type information indicates that the first coding unit 1900 is divided horizontally or vertically to determine an odd number of coding units, the video decoding apparatus 200 includes a first coding unit 1900 in the form of a square Can be divided into the second encoding units 1910a, 1910b and 1910c divided in the vertical direction as the odd number of encoding units or the second encoding units 1920a, 1920b and 1920c determined in the horizontal direction.
- the image decoding apparatus 200 may be configured such that the second encoding units 1910a, 1910b, 1910c, 1920a, 1920b, and 1920c included in the first encoding unit 1900 are processed in a predetermined order And the condition is that at least one of the width and height of the first encoding unit 1900 is divided in half according to the boundaries of the second encoding units 1910a, 1910b, 1910c, 1920a, 1920b, and 1920c .
- the boundaries of the second encoding units 1910a, 1910b, and 1910c, which are determined by dividing the first encoding unit 1900 in the vertical direction, are divided in half by the width of the first encoding unit 1900
- the first encoding unit 1900 can be determined as not satisfying a condition that can be processed in a predetermined order. Since the boundaries of the second encoding units 1920a, 1920b, and 1920c, which are determined by dividing the first encoding unit 1900 in the horizontal direction, by half, can not divide the width of the first encoding unit 1900 in half, 1 encoding unit 1900 can be determined as not satisfying a condition that can be processed in a predetermined order.
- the image decoding apparatus 200 may determine that the scan sequence is disconnection in the case of such unsatisfactory condition and determine that the first encoding unit 1900 is divided into odd number of encoding units based on the determination result. According to an exemplary embodiment, when the image decoding apparatus 200 is divided into odd-numbered encoding units, a predetermined limit may be imposed on a predetermined unit of the divided encoding units. Since the embodiment has been described above, a detailed description thereof will be omitted.
- the image decoding apparatus 200 may determine the encoding units of various types by dividing the first encoding unit.
- the image decoding apparatus 200 may divide a first coding unit 1900 in a square form and a first coding unit 1930 or 1950 in a non-square form into various types of coding units .
- the image decoding apparatus 200 may be configured to include a first encoding unit 2000 in the form of a square based on at least one of block type information and division type information acquired through the receiving unit 210, 2 encoding units 2010a, 2010b, 2020a, and 2020b.
- the second encoding units 2010a, 2010b, 2020a, and 2020b may be independently divided. Accordingly, the video decoding apparatus 200 determines whether to divide or not divide into a plurality of coding units based on at least one of the block type information and the division type information related to each of the second coding units 2010a, 2010b, 2020a, and 2020b .
- the image decoding apparatus 200 divides the left second encoding unit 2010a in the non-square form determined by dividing the first encoding unit 2000 in the vertical direction into the horizontal direction, 2012a, 2012b) can be determined.
- the right-side second encoding unit 2010b is horizontally aligned with the left second encoding unit 2010a in the same direction as the left second encoding unit 2010a, As shown in Fig.
- the right second encoding unit 2010b is divided in the same direction and the third encoding units 2014a and 2014b are determined, the left second encoding unit 2010a and the right second encoding unit 2010b are arranged in the horizontal direction
- the third encoding units 2012a, 2012b, 2014a, and 2014b can be determined independently.
- the video decoding apparatus 200 divides the first encoding unit 2000 into four square-shaped second encoding units 2030a, 2030b, 2030c, and 2030d based on at least one of the block type information and the division type information And this may be inefficient in terms of image decoding.
- the image decoding apparatus 200 divides the non-square second encoding unit 2020a or 2020b determined by dividing the first encoding unit 11600 in the horizontal direction into vertical directions, (2022a, 2022b, 2024a, 2024b).
- the video decoding apparatus 200 may generate a second coding unit (for example, Coding unit 2020b) can be restricted such that the upper second encoding unit 2020a can not be divided in the vertical direction in the same direction as the division.
- FIG. 21 shows a process in which the image decoding apparatus 200 divides a square-shaped encoding unit when the division type information can not be divided into four square-shaped encoding units according to an embodiment.
- the image decoding apparatus 200 divides the first encoding unit 2100 based on at least one of the block type information and the division type information, and outputs the second encoding units 2110a, 2110b, 2120a, 2120b, You can decide.
- the division type information may include information on various types in which the coding unit can be divided, but information on various types may not include information for dividing into four square units of coding units.
- the image decoding apparatus 200 can not divide the first encoding unit 2100 in the square form into the second encoding units 2130a, 2130b, 2130c, and 2130d in the form of four squares.
- the video decoding apparatus 200 can determine the second encoding units 2110a, 2110b, 2120a, and 2120b in the non-square form.
- the image decoding apparatus 200 may independently divide the non-square second encoding units 2110a, 2110b, 2120a, and 2120b.
- Each of the second encoding units 2110a, 2110b, 2120a, 2120b, and the like may be divided in a predetermined order through a recursive method, and it may be divided into a first encoding unit 2100 May be a partitioning method corresponding to a method in which a partition is divided.
- the image decoding apparatus 200 can determine the third encoding units 2112a and 2112b in the form of a square by dividing the left second encoding unit 2110a in the horizontal direction, and the second right encoding unit 2110b And the third encoding units 2114a and 2114b in the form of a square can be determined in the horizontal direction. Further, the image decoding apparatus 200 may divide the left second encoding unit 2110a and the right second encoding unit 2110b in the horizontal direction to determine the third encoding units 2116a, 2116b, 2116c, and 2116d in the form of a square have. In this case, the encoding unit can be determined in the same manner as the first encoding unit 2100 is divided into the four second-type second encoding units 2130a, 2130b, 2130c, and 2130d.
- the image decoding apparatus 200 can determine the third encoding units 2122a and 2122b in the shape of a square by dividing the upper second encoding unit 2120a in the vertical direction, and the lower second encoding units 2120b Can be divided in the vertical direction to determine the third encoding units 2124a and 2124b in the form of a square.
- the image decoding apparatus 200 may divide the upper second encoding unit 2120a and the lower second encoding unit 2120b in the vertical direction to determine the square-shaped third encoding units 2122a, 2122b, 2124a, and 2124b have.
- the encoding unit can be determined in the same manner as the first encoding unit 2100 is divided into the four second-type second encoding units 2130a, 2130b, 2130c, and 2130d.
- FIG. 22 illustrates that the processing order among a plurality of coding units may be changed according to the division process of coding units according to an embodiment.
- the image decoding apparatus 200 may divide the first encoding unit 2200 based on the block type information and the division type information.
- the image decoding apparatus 200 includes a first encoding unit 2200 (E.g., 2210a, 2210b, 2220a, 2220b, etc.) can be determined by dividing the second encoding unit (e.g. Referring to FIG.
- the non-square second encoding units 2210a, 2210b, 2220a, and 2220b which are determined by dividing the first encoding unit 2200 only in the horizontal direction or the vertical direction, Can be independently partitioned based on information.
- the image decoding apparatus 200 divides the second encoding units 2210a and 2210b, which are generated by dividing the first encoding unit 2200 in the vertical direction, in the horizontal direction to generate third encoding units 2216a and 2216b, 2216c and 2216d can be determined and the second encoding units 2220a and 2220b generated by dividing the first encoding unit 2200 in the horizontal direction are divided in the horizontal direction and the third encoding units 2226a, 2226b, and 2226c , 2226d can be determined. Since the process of dividing the second encoding units 2210a, 2210b, 2220a, and 2220b has been described in detail with reference to FIG. 20, a detailed description will be omitted.
- the image decoding apparatus 200 may process a coding unit in a predetermined order.
- the features of the processing of the encoding unit in the predetermined order have been described in detail with reference to FIG. 17, and a detailed description thereof will be omitted.
- the image decoding apparatus 200 divides a first encoding unit 2200 in a square form into 4 pieces of third encoding units 2216a, 2216b, 2216c, 2216d, 2226a, 2226b, 2226c, 2226d Can be determined.
- the image decoding apparatus 200 may process the third encoding units 2216a, 2216b, 2216c, 2216d, 2226a, 2226b, 2226c, and 2226d according to the form in which the first encoding unit 2200 is divided You can decide.
- the image decoding apparatus 200 determines the third encoding units 2216a, 2216b, 2216c, and 2216d by dividing the generated second encoding units 2210a and 2210b in the vertical direction, respectively, in the horizontal direction And the image decoding apparatus 200 first processes the third encoding units 2216a and 2216b included in the left second encoding unit 2210a in the vertical direction and then processes the third encoding units 2216a and 2216b included in the second right encoding unit 2210b The third encoding units 2216a, 2216b, 2216c, and 2216d may be processed in accordance with an order 2217 of processing the third encoding units 2216c and 2216d in the vertical direction.
- the image decoding apparatus 200 divides the second encoding units 2220a and 2220b generated in the horizontal direction into vertical directions to determine the third encoding units 2226a, 2226b, 2226c, and 2226d
- the image decoding apparatus 200 first processes the third encoding units 2226a and 2226b included in the upper second encoding unit 2220a in the horizontal direction and then encodes the third encoding units 2226a and 2226b included in the lower second encoding unit 2220b
- the third encoding units 2226a, 2226b, 2226c, and 2226d can be processed in accordance with the order 2227 of processing the third encoding units 2226c and 2226d in the horizontal direction.
- the second encoding units 2210a, 2210b, 2220a, and 2220b are divided to determine the third encoding units 2216a, 2216b, 2216c, 2216d, 2226a, 2226b, 2226c, and 2226d, have.
- the second encoding units 2210a and 2210b determined to be divided in the vertical direction and the second encoding units 2220a and 2220b determined to be divided in the horizontal direction are divided into different formats.
- the third encoding units 2216a , 2216b, 2216c, 2216d, 2226a, 2226b, 2226c, and 2226d the result is that the first encoding unit 2200 is divided into the same type of encoding units.
- FIG. 23 illustrates a process of determining the depth of an encoding unit according to a change in type and size of an encoding unit when a plurality of encoding units are determined by recursively dividing an encoding unit according to an embodiment.
- the image decoding apparatus 200 may determine the depth of a coding unit according to a predetermined criterion.
- a predetermined criterion may be a length of a long side of a coding unit.
- the depth of the current coding unit is the depth of the coding unit before being divided It can be determined that the depth is increased by n more.
- an encoding unit with an increased depth is expressed as a lower-depth encoding unit.
- 1 encoding unit 2300 can be divided to determine the second encoding unit 2302, the third encoding unit 2304, and the like of the lower depth.
- the size of the square shape of the first encoding unit 2300 if it 2Nx2N, the first second encoding unit 2302 is determined by dividing the width and height of 1 to 1/2 of the coding units 2300 have a size of NxN .
- the third encoding unit 2304 determined by dividing the width and height of the second encoding unit 2302 by a half size may have a size of N / 2xN / 2.
- the depth of the first encoding unit 2300, the first depth D of the coding units 2300, one-half times the second encoding unit 2302 in the width and height may be in the D + 1
- the first encoding 1/2 2 times the depth of the third encoding unit 2304, the width and height of the unit 2300 may be a D + 2.
- block type information indicating a non-square shape for example, block type information is' 1: NS_VER 'indicating that the height is a non-square having a width greater than the width or' 2 >: NS_HOR '
- the image decoding apparatus 200 divides the non-square first coding unit 2310 or 2320 into second lower coding units 2312 or 2322, The third encoding unit 2314 or 2324, or the like.
- the image decoding apparatus 200 may determine a second encoding unit (e.g., 2302, 2312, and 2322) by dividing at least one of the width and the height of the first encoding unit 2310 of Nx2N size. That is, the image decoding apparatus 200 may determine the second encoding unit 2302 of NxN size or the second encoding unit 2322 of NxN / 2 size by dividing the first encoding unit 2310 in the horizontal direction, It is possible to determine the second encoding unit 2312 of N / 2xN size by dividing it in the horizontal direction and the vertical direction.
- a second encoding unit e.g., 2302, 2312, and 2322
- the image decoding apparatus 200 divides at least one of a width and a height of a 2NxN first encoding unit 2320 to determine a second encoding unit (for example, 2302, 2312, 2322, etc.) It is possible. That is, the image decoding apparatus 200 can determine the second encoding unit 2302 of NxN size or the second encoding unit 2312 of N / 2xN size by dividing the first encoding unit 2320 in the vertical direction, The second encoding unit 2322 of the NxN / 2 size may be determined by dividing the horizontal and vertical directions.
- the image decoding apparatus 200 determines a third encoding unit (for example, 2304, 2314, 2324, etc.) by dividing at least one of the width and the height of the second encoding unit 2302 of NxN size It is possible. That is, the image decoding device 200 includes a second sub-coding unit 2302 in the vertical direction and the horizontal direction to determine the N / 2xN / 2 size, a third coding unit 2304 or to N / 2 2 xN / 2 size The third encoding unit 2314 of the N / 2xN / 2 size can be determined, or the third encoding unit 2324 of the N / 2xN / 2 2 size can be determined.
- a third encoding unit for example, 2304, 2314, 2324, etc.
- the image decoding apparatus 200 divides at least one of the width and the height of the second encoding unit 2312 of N / 2xN size to generate a third encoding unit (e.g., 2304, 2314, and 2324) . That is, the image decoding apparatus 200 divides the second encoding unit 2312 in the horizontal direction to generate a third encoding unit 2304 of N / 2xN / 2 or a third encoding unit 2304 of N / 2xN / 2 2 size 2324) may be a crystal or division by determining the N / 2 2 xN / 2 the size of the third encoding unit 2314 in the vertical direction and the horizontal direction.
- the image decoding apparatus 200 divides at least one of the width and the height of the second encoding unit 2314 of NxN / 2 size into a third encoding unit (e.g., 2304, 2314, and 2324) . That is, the image decoding device 200 includes a second by dividing the coding unit 2312 in the vertical direction N / 2xN / 2 size, a third encoding unit 2304 or N / 2 2, xN / 2 size, a third encoding unit of the The second encoding unit 2314 may be determined or divided into vertical and horizontal directions to determine the third encoding unit 2324 of N / 2xN / 2 2 size.
- a third encoding unit e.g., 2304, 2314, and 2324
- the image decoding apparatus 200 may divide a square-shaped encoding unit (for example, 2300, 2302, and 2304) into a horizontal direction or a vertical direction.
- a square-shaped encoding unit for example, 2300, 2302, and 2304
- the first encoding unit 2300 having the size of 2Nx2N is divided into the vertical direction to determine the first encoding unit 2310 having the size of Nx2N, or the first encoding unit 2310 having the size of 2NxN is determined .
- the depth of the encoding unit in which the first encoding unit 2300, 2302 or 2304 of size 2Nx2N is divided in the horizontal direction or the vertical direction is determined May be the same as the depth of the first encoding unit 2300, 2302 or 2304.
- it may correspond to 1/2 2 times the third encoding unit of width and height of a first encoding unit (2310 or 2320) of (2314 or 2324).
- the depth of the second coding unit 2312 or 2314 which is half the width and height of the first coding unit 2310 or 2320 when the depth of the first coding unit 2310 or 2320 is D may be D + and, the depth of the first encoding unit 2 1/2 times the third encoding unit (2314 or 2324) of the width and height of (2310 or 2320) may be a D + 2.
- FIG. 24 shows a depth index (PID) for coding unit classification and depth that can be determined according to the type and size of coding units according to an exemplary embodiment.
- PID depth index
- the image decoding apparatus 200 may divide the first encoding unit 2400 in a square shape to determine various types of second encoding units. 24, the image decoding apparatus 200 divides the first encoding unit 2400 into at least one of the vertical direction and the horizontal direction according to the division type information, and outputs the second encoding units 2402a, 2402b, 2404a, 2404b, 2406a, 2406b, 2406c, and 2406d. That is, the video decoding apparatus 200 can determine the second encoding units 2402a, 2402b, 2404a, 2404b, 2406a, 2406b, 2406c, and 2406d based on the division type information for the first encoding unit 2400. [
- the second encoding units 2402a, 2402b, 2404a, 2404b, 2406a, 2406b, 2406c, and 2406d which are determined according to the division type information for the first encoding unit 2400 in the form of a square, Depth can be determined based on. For example, since the length of one side of the square-shaped first encoding unit 2400 and the length of long sides of the non-square-shaped second encoding units 2402a, 2402b, 2404a, and 2404b are the same, 2400) and the non-square type second encoding units 2402a, 2402b, 2404a, 2404b are denoted by D in the same manner.
- the image decoding apparatus 200 divides the first encoding unit 2400 into four square-shaped second encoding units 2406a, 2406b, 2406c, and 2406d based on the division type information, Since the length of one side of the second coding units 2406a, 2406b, 2406c and 2406d is half the length of one side of the first coding unit 2400, the depths of the second coding units 2406a, 2406b, 2406c and 2406d May be a depth of D + 1 which is one depth lower than D, which is the depth of the first encoding unit 2400.
- the image decoding apparatus 200 divides a first encoding unit 2410 having a height greater than a width in a horizontal direction according to division type information to generate a plurality of second encoding units 2412a, 2412b, 2414a, 2414b, and 2414c. According to an exemplary embodiment, the image decoding apparatus 200 divides a first encoding unit 2420 having a length greater than a height into a plurality of second encoding units 2422a, 2422b, 2424a, 2424b, and 2424c.
- the second encoding units 2412a, 2412b, 2414a, 2414b, 2116a, 2116b, 2116c, and 2116d which are determined according to the division type information for the non-square first encoding unit 2410 or 2420.
- the depth can be determined based on the length of the long side. For example, since the length of one side of the square-shaped second encoding units 2412a and 2412b is 1/2 times the length of one side of the non-square first encoding unit 2410 whose height is longer than the width, The depth of the second encoding units 2402a, 2402b, 2404a, and 2404b of the form is D + 1 which is one depth lower than the depth D of the first encoding unit 2410 in the non-square form.
- the image decoding apparatus 200 may divide the non-square first encoding unit 2410 into odd second encoding units 2414a, 2414b, and 2414c based on the division type information.
- the odd number of second encoding units 2414a, 2414b and 2414c may include non-square second encoding units 2414a and 2414c and a square second encoding unit 2414b.
- the length of the long side of the non-square type second encoding units 2414a and 2414c and the length of one side of the second encoding unit 2414b of the square shape are 1 /
- the depth of the second encoding units 2414a, 2414b, and 2414c may be a depth of D + 1 which is one depth lower than D, which is the depth of the first encoding unit 2410.
- the image decoding apparatus 200 is connected to the first encoding unit 2420 of a non-square shape whose width is greater than the height in a manner corresponding to the method of determining the depths of the encoding units associated with the first encoding unit 2410 The depth of the encoding units can be determined.
- the image decoding apparatus 200 determines an index (PID) for dividing the divided coding units. If the odd-numbered coding units are not the same size, The index can be determined based on the index. 24, an encoding unit 2414b positioned at the center among the odd-numbered encoding units 2414a, 2414b, and 2414c has the same width as other encoding units 2414a and 2414c, May be twice as high as the height of the sockets 2414a and 2414c. That is, in this case, the middle encoding unit 2414b may include two of the other encoding units 2414a and 2414c.
- the coding unit 2414c positioned next to the coding unit 2414c may be three days in which the index is increased by two. That is, there may be a discontinuity in the value of the index.
- the image decoding apparatus 200 may determine whether odd-numbered encoding units are not the same size based on the presence or absence of an index discontinuity for distinguishing between the divided encoding units.
- the image decoding apparatus 200 may determine whether the image is divided into a specific division form based on a value of an index for identifying a plurality of coding units divided and determined from the current coding unit. 24, the image decoding apparatus 200 divides a first coding unit 2410 of a rectangular shape whose height is longer than the width to determine an even number of coding units 2412a and 2412b or an odd number of coding units 2414a and 2414b , And 2414c.
- the image decoding apparatus 200 may use an index (PID) indicating each coding unit to distinguish each of the plurality of coding units.
- the PID may be obtained at a sample of a predetermined position of each coding unit (e.g., the upper left sample).
- the image decoding apparatus 200 may determine an encoding unit at a predetermined location among the encoding units determined by using the index for distinguishing the encoding units. According to an exemplary embodiment, when the division type information for the rectangular first type encoding unit 2410 having a height greater than the width is divided into three encoding units, the image decoding apparatus 200 transmits the first encoding unit 2410 It can be divided into three encoding units 2414a, 2414b and 2414c. The image decoding apparatus 200 can assign an index to each of the three encoding units 2414a, 2414b, and 2414c.
- the image decoding apparatus 200 can compare the indexes of the respective encoding units in order to determine the middle encoding unit among the encoding units divided into odd numbers.
- the image decoding apparatus 200 encodes an encoding unit 2414b having an index corresponding to a middle value among indices based on indexes of encoding units into an encoding unit 2414b encoding an intermediate position among the encoding units determined by dividing the first encoding unit 2410 Can be determined as a unit.
- the image decoding apparatus 200 may determine an index based on a size ratio between coding units when the coding units are not the same size in determining the index for dividing the divided coding units .
- the coding unit 2414b generated by dividing the first coding unit 2410 is divided into coding units 2414a and 2414c having the same width as the other coding units 2414a and 2414c but different in height Can be double the height.
- the index (PID) of the coding unit 2414b located at the center is 1, the coding unit 2414c positioned next to the coding unit 2414c may be three days in which the index is increased by two.
- the image decoding apparatus 200 may determine that the image decoding apparatus 200 is divided into a plurality of encoding units including encoding units having different sizes from other encoding units.
- the image decoding apparatus 200 may be configured such that the coding unit (for example, the middle coding unit) at a predetermined position among the odd number of coding units is different from the coding unit Can divide the current encoding unit into other forms.
- the image decoding apparatus 200 can determine an encoding unit having a different size by using an index (PID) for the encoding unit.
- PID index
- the index and the size or position of the encoding unit at a predetermined position to be determined are specific for explaining an embodiment, and thus should not be construed to be limited thereto, and various indexes, positions and sizes of encoding units can be used Should be interpreted.
- the image decoding apparatus 200 may use a predetermined data unit in which recursive division of encoding units starts.
- 25 illustrates that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to an embodiment.
- a predetermined data unit may be defined as a data unit in which an encoding unit starts to be recursively segmented using at least one of block type information and partition type information. That is, it may correspond to a coding unit of the highest depth used in the process of determining a plurality of coding units for dividing the current picture.
- a predetermined data unit is referred to as a reference data unit for convenience of explanation.
- the reference data unit may represent a predetermined size and shape.
- the reference encoding unit may comprise samples of MxN.
- M and N may be equal to each other, or may be an integer represented by a multiplier of 2. That is, the reference data unit may represent a square or a non-square shape, and may be divided into an integer number of encoding units.
- the image decoding apparatus 200 may divide the current picture into a plurality of reference data units. According to an exemplary embodiment, the image decoding apparatus 200 may divide a plurality of reference data units for dividing a current picture by using division information for each reference data unit.
- the segmentation process of the reference data unit may correspond to the segmentation process using a quad-tree structure.
- the image decoding apparatus 200 may determine in advance a minimum size that the reference data unit included in the current picture can have. Accordingly, the image decoding apparatus 200 can determine reference data units of various sizes having a size larger than a minimum size, and determine at least one coding unit using block type information and division type information based on the determined reference data unit You can decide.
- the image decoding apparatus 200 may use a square-shaped reference encoding unit 2500 or a non-square-shaped reference encoding unit 2502.
- the type and size of the reference encoding unit may include various data units (e.g., a sequence, a picture, a slice, a slice segment a slice segment, a maximum encoding unit, and the like).
- the receiver 210 of the video decoding apparatus 200 may acquire at least one of the information on the type of the reference encoding unit and the size of the reference encoding unit from the bit stream for each of the various data units .
- the process of determining at least one encoding unit included in the reference-type encoding unit 2500 in the form of a square is described in detail in the process of dividing the current encoding unit of FIG. 13 and included in the non-square-type reference encoding unit 2500
- the process of determining at least one encoding unit is described in detail in the process of dividing the current encoding unit 1400 or 1450 of FIG. 14, so that a detailed description thereof will be omitted.
- the image decoding apparatus 200 may include an index for identifying the size and type of the reference encoding unit Can be used. That is, the receiving unit 210 receives a predetermined condition (for example, a data unit having a size equal to or smaller than a slice) among the various data units (for example, a sequence, a picture, a slice, a slice segment, It is possible to obtain only an index for identifying the size and type of the reference encoding unit for each slice, slice segment, maximum encoding unit, and the like.
- a predetermined condition for example, a data unit having a size equal to or smaller than a slice
- the various data units for example, a sequence, a picture, a slice, a slice segment
- the image decoding apparatus 200 can determine the size and shape of the reference data unit for each data unit satisfying the predetermined condition by using the index.
- the information on the type of the reference encoding unit and the information on the size of the reference encoding unit are obtained from the bitstream for each relatively small data unit and used, the use efficiency of the bitstream may not be good. Therefore, Information on the size of the reference encoding unit and information on the size of the reference encoding unit can be acquired and used.
- at least one of the size and the type of the reference encoding unit corresponding to the index indicating the size and type of the reference encoding unit may be predetermined. That is, the image decoding apparatus 200 selects at least one of the size and the shape of the reference encoding unit in accordance with the index, thereby obtaining at least one of the size and shape of the reference encoding unit included in the data unit, You can decide.
- the image decoding apparatus 200 may use at least one reference encoding unit included in one maximum encoding unit. That is, the maximum encoding unit for dividing an image may include at least one reference encoding unit, and the encoding unit may be determined through a recursive division process of each reference encoding unit. According to an exemplary embodiment, at least one of the width and the height of the maximum encoding unit may correspond to at least one integer multiple of the width and height of the reference encoding unit. According to an exemplary embodiment, the size of the reference encoding unit may be a size obtained by dividing the maximum encoding unit n times according to a quadtree structure.
- the image decoding apparatus 200 can determine the reference encoding unit by dividing the maximum encoding unit n times according to the quad-tree structure, and may determine the reference encoding unit based on at least one of the block type information and the division type information As shown in FIG.
- 26 shows a processing block serving as a reference for determining a determination order of the reference encoding units included in the picture 2600 according to an embodiment.
- the image decoding apparatus 200 may determine at least one processing block that divides a picture.
- the processing block is a data unit including at least one reference encoding unit for dividing an image, and at least one reference encoding unit included in the processing block may be determined in a specific order. That is, the order of determination of at least one reference encoding unit determined in each processing block may correspond to one of various kinds of order in which the reference encoding unit can be determined, and the reference encoding unit determination order determined in each processing block May be different for each processing block.
- the order of determination of the reference encoding unit determined for each processing block is a raster scan, a Z scan, an N scan, an up-right diagonal scan, a horizontal scan a horizontal scan, and a vertical scan. However, the order that can be determined should not be limited to the scan orders.
- the image decoding apparatus 200 may obtain information on the size of the processing block to determine the size of the at least one processing block included in the image.
- the image decoding apparatus 200 may obtain information on the size of the processing block from the bitstream to determine the size of the at least one processing block included in the image.
- the size of such a processing block may be a predetermined size of a data unit represented by information on the size of the processing block.
- the receiving unit 210 of the image decoding apparatus 200 may obtain information on the size of a processing block from a bit stream for each specific data unit.
- information on the size of a processing block can be obtained from a bitstream in units of data such as an image, a sequence, a picture, a slice, a slice segment, and the like. That is, the receiving unit 210 may obtain the information on the size of the processing block from the bitstream for each of the plurality of data units, and the image decoding apparatus 200 may obtain the information on the size of the processing block using the information on the size of the obtained processing block
- the size of one processing block may be determined, and the size of the processing block may be an integer multiple of the reference encoding unit.
- the image decoding apparatus 200 may determine the size of the processing blocks 2602 and 2612 included in the picture 2600.
- the video decoding apparatus 200 can determine the size of the processing block based on information on the size of the processing block obtained from the bitstream.
- the image decoding apparatus 200 according to an exemplary embodiment of the present invention has a horizontal size of the processing blocks 2602 and 2612 of four times the horizontal size of the reference encoding unit, a vertical size of four times the vertical size of the reference encoding unit You can decide.
- the image decoding apparatus 200 may determine an order in which at least one reference encoding unit is determined in at least one processing block.
- the video decoding apparatus 200 may determine each processing block 2602, 2612 included in the picture 2600 based on the size of the processing block, and may include in the processing blocks 2602, 2612 The determination order of at least one reference encoding unit is determined.
- the determination of the reference encoding unit may include determining the size of the reference encoding unit according to an embodiment.
- the image decoding apparatus 200 may obtain information on a determination order of at least one reference encoding unit included in at least one processing block from a bitstream, So that the order in which at least one reference encoding unit is determined can be determined.
- the information on the decision order can be defined in the order or direction in which the reference encoding units are determined in the processing block. That is, the order in which the reference encoding units are determined may be independently determined for each processing block.
- the image decoding apparatus 200 may obtain information on a determination order of a reference encoding unit from a bitstream for each specific data unit.
- the receiving unit 210 may acquire information on the order of determination of the reference encoding unit from a bitstream for each data unit such as an image, a sequence, a picture, a slice, a slice segment, and a processing block. Since the information on the determination order of the reference encoding unit indicates the reference encoding unit determination order in the processing block, the information on the determination order can be obtained for each specific data unit including an integer number of processing blocks.
- the video decoding apparatus 200 may determine at least one reference encoding unit based on the determined order according to an embodiment.
- the receiving unit 210 may obtain information on a reference encoding unit determination order from the bitstream as information related to the processing blocks 2602 and 2612, and the video decoding apparatus 200 may receive information 2602, and 2612, and determines at least one reference encoding unit included in the picture 2600 according to the determination order of the encoding units.
- the image decoding apparatus 200 may determine a determination order 2604 and 2614 of at least one reference encoding unit associated with each of the processing blocks 2602 and 2612. For example, when information on the order of determination of the reference encoding unit is obtained for each processing block, the reference encoding unit determination order associated with each processing block 2602, 2612 may be different for each processing block.
- the reference encoding unit determination order 2604 related to the processing block 2602 is a raster scan order
- the reference encoding unit included in the processing block 2602 can be determined according to the raster scan order.
- the reference encoding unit determination order 2614 associated with the other processing block 2612 is a reverse order of the raster scan order
- the reference encoding unit included in the processing block 2612 can be determined according to the reverse order of the raster scan order.
- the image decoding apparatus 200 may decode the determined at least one reference encoding unit according to an embodiment.
- the image decoding apparatus 200 can decode an image based on the reference encoding unit determined through the above-described embodiment.
- the method of decoding the reference encoding unit may include various methods of decoding the image.
- the image decoding apparatus 200 may obtain block type information indicating a type of a current encoding unit or division type information indicating a method of dividing a current encoding unit from a bitstream.
- the block type information or the division type information may be included in a bitstream related to various data units.
- the video decoding apparatus 200 includes a sequence parameter set, a picture parameter set, a video parameter set, a slice header, a slice segment header slice segment type information included in the segment header can be used.
- the image decoding apparatus 200 can obtain a syntax corresponding to the block type information or the division type information from the bitstream for each maximum coding unit, reference coding unit, and processing block, from the bitstream.
- the above-described embodiments of the present invention can be embodied in a general-purpose digital computer that can be embodied as a program that can be executed by a computer and operates the program using a computer-readable recording medium.
- the computer-readable recording medium includes a storage medium such as a magnetic storage medium (e.g., ROM, floppy disk, hard disk, etc.), optical reading medium (e.g., CD ROM,
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
학습된 DNN 필터 모델을 이용한 인루프 필터링 기술이 개시된다. 개시된 일 실시예에 따른 영상 복호화 방법은, 부호화된 영상의 비트스트림을 수신하는 단계, 상기 부호화된 영상을 복원한 복원 데이터를 생성하는 단계, 상기 비트스트림으로부터 상기 부호화된 영상의 컨텐츠 타입에 관한 정보를 획득하는 단계, 상기 컨텐츠 타입에 관한 정보에 기초하여, 하나 이상의 컴퓨터를 이용하여 인루프 필터링을 수행하도록 학습된 DNN(Deep Neural Network) 필터 모델을 결정하는 단계, 및 상기 복원 데이터를 상기 결정된 DNN 필터 모델에 적용하여 인루프 필터링을 수행하는 단계를 포함한다.
Description
본 개시는 기계 학습 알고리즘을 활용하는 인공지능(AI)을 이용하여 영상을 처리하는 방법과 관련된다. 구체적으로, 본 개시는 영상의 부호화 및 복호화 과정에서 딥 뉴럴 네트워크(DNN)를 이용한 인루프 필터링 기술에 관한 것이다.
인공지능 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템으로서 기계가 스스로 학습하고 판단하며, 사용할수록 인식률이 향상되는 시스템이다
인공지능 기술은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘을 이용하는 기계학습(딥러닝) 기술 및 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 요소 기술들로 구성된다.
요소기술들은, 예로, 인간의 언어/문자를 인식하는 언어적 이해 기술, 사물을 인간의 시각처럼 인식하는 시각적 이해 기술, 정보를 판단하여 논리적으로 추론하고 예측하는 추론/예측 기술, 인간의 경험 정보를 지식데이터로 처리하는 지식 표현 기술 및 차량의 자율 주행, 로봇의 움직임을 제어하는 동작 제어 기술 중 적어도 하나를 포함할 수 있다.
특히, 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다.
다양한 실시예들에 따라 영상을 부호화/복호화하는 방법 및 장치를 제공한다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상기 기술적 과제를 해결하기 위한 일 실시예에 따른 영상 복호화 방법은, 부호화된 영상의 비트스트림을 수신하는 단계; 상기 부호화된 영상을 복원한 복원 데이터를 생성하는 단계; 상기 비트스트림으로부터 상기 부호화된 영상의 컨텐츠 타입에 관한 정보를 획득하는 단계; 상기 컨텐츠 타입에 관한 정보에 기초하여, 하나 이상의 컴퓨터를 이용하여 인루프 필터링을 수행하도록 학습된 DNN(Deep Neural Network) 필터 모델을 결정하는 단계; 및 상기 복원 데이터를 상기 결정된 DNN 필터 모델에 적용하여 인루프 필터링을 수행하는 단계를 포함한다.
또한, 일 실시예에 따른 영상 복호화 방법에서, 상기 인루프 필터링은 디블록킹 필터링(Deblocking Filtering), 샘플 적응적 오프셋(Sample Adaptive Offset) 및 적응적 루프 필터링(Adaptive Loop Filtering) 중 적어도 하나의 동작을 포함할 수 있다.
또한, 일 실시예에 따른 영상 복호화 방법에서, 상기 컨텐츠 타입에 관한 정보는, 상기 부호화된 영상의 픽셀 복잡도 및 움직임 정도를 나타내는 정보일 수 있다.
또한, 일 실시예에 따른 영상 복호화 방법에서, 상기 DNN 필터 모델은, 상기 DNN 필터 모델을 구성하는 복수의 네트워크 노드들 간의 연결 관계 및 상기 복수의 네트워크 노드들 각각의 가중치에 기반한 연산에 따라 상기 복원 데이터의 양자화 에러를 보상하도록 학습된 네트워크 모델일 수 있다.
또한, 일 실시예에 따른 영상 복호화 방법에서, 상기 DNN 필터 모델을 결정하는 단계는, 상기 컨텐츠 타입에 관한 정보에 기초하여, 복수의 DNN 필터 모델 후보 중에서 상기 부호화된 영상의 컨텐츠 타입에 대응하는 상기 DNN 필터 모델을 결정하는 단계를 포함할 수 있다.
또한, 일 실시예에 따른 영상 복호화 방법에서, 상기 복수의 DNN 필터 모델 후보의 각각은, 미리 설정된 컨텐츠 타입에 대해 인루프 필터링을 수행하도록 학습된 것일 수 있다.
또한, 일 실시예에 따른 영상 복호화 방법에서, 상기 DNN 필터 모델을 결정하는 단계는, 상기 복수의 DNN 필터 모델 후보 중에서 상기 부호화된 영상의 압축 강도에 대응하는 상기 DNN 필터 모델을 결정하는 단계를 더 포함할 수 있다.
또한, 일 실시예에 따른 영상 복호화 방법에서, 상기 인루프 필터링을 수행하는 단계는, 상기 복원 데이터 및 복원 픽처 버퍼에 저장된 하나 이상의 참조 영상을 상기 결정된 DNN 필터 모델에 적용하여 인루프 필터링을 수행하는 단계를 포함할 수 있다.
또한, 일 실시예에 따른 영상 복호화 방법에서, 상기 인루프 필터링은 CNN(Convolutional Neural Network) 학습 모델에 기반하여 수행될 수 있다.
일 실시예에 따른 영상 복호화 장치는, 부호화된 영상의 비트스트림을 수신하는 수신부; 및 상기 부호화된 영상을 복원한 복원 데이터를 생성하고, 상기 비트스트림으로부터 상기 부호화된 영상의 컨텐츠 타입에 관한 정보를 획득하고, 상기 컨텐츠 타입에 관한 정보에 기초하여, 하나 이상의 컴퓨터를 이용하여 인루프 필터링을 수행하도록 학습된 DNN(Deep Neural Network) 필터 모델을 결정하고, 상기 복원 데이터를 상기 결정된 DNN 필터 모델에 적용하여 인루프 필터링을 수행하는 복호화부를 포함한다.
일 실시예에 따른 영상 부호화 방법은, 입력 영상의 컨텐츠 타입을 판별하는 단계; 상기 컨텐츠 타입에 기초하여, 하나 이상의 컴퓨터를 이용하여 인루프 필터링을 수행하도록 학습된 DNN(Deep Neural Network) 필터 모델을 결정하는 단계; 부호화된 레지듀얼 데이터로부터 복원된 상기 입력 영상의 복원 데이터를, 상기 결정된 DNN 필터 모델에 적용하여 인루프 필터링된 데이터를 생성하는 단계; 상기 인루프 필터링된 데이터에 기초하여 상기 입력 영상을 예측한 예측 데이터를 생성하고, 상기 입력 영상 및 상기 예측 데이터를 이용하여 레지듀얼 데이터를 생성하는 단계; 상기 컨텐츠 타입에 관한 정보 및 상기 레지듀얼 데이터를 부호화한 비트스트림을 생성하는 단계; 및 상기 비트스트림을 전송하는 단계를 포함한다.
또한, 일 실시예에 따른 영상 부호화 방법에서, 상기 인루프 필터링은 디블록킹 필터링(Deblocking Filtering), 샘플 적응적 오프셋(Sample Adaptive Offset) 및 적응적 루프 필터링(Adaptive Loop Filtering) 중 적어도 하나의 동작을 포함할 수 있다.
또한, 일 실시예에 따른 영상 부호화 방법에서, 상기 컨텐츠 타입에 관한 정보는, 상기 입력 영상의 픽셀 복잡도 및 움직임 정도를 나타내는 정보일 수 있다.
또한, 일 실시예에 따른 영상 부호화 방법에서, 상기 DNN 필터 모델은, 상기 DNN 필터 모델을 구성하는 복수의 네트워크 노드들 간의 연결 관계 및 상기 복수의 네트워크 노드들 각각의 가중치에 기반한 연산에 따라 상기 복원된 데이터의 양자화 에러를 보상하도록 학습된 네트워크 모델일 수 있다.
또한, 일 실시예에 따른 영상 부호화 방법에서, 상기 DNN 필터 모델을 결정하는 단계는, 상기 컨텐츠 타입에 관한 정보에 기초하여, 복수의 DNN 필터 모델 후보 중에서 상기 부호화된 영상의 컨텐츠 타입에 대응하는 상기 DNN 필터 모델을 결정하는 단계를 포함할 수 있다.
학습된 DNN에 기반한 인루프 필터링을 수행함으로써, 부호화 및 복호화 성능이 향상될 수 있다.
도 1은 일 실시예에 따른 영상 부호화 장치(100)의 상세한 블록도를 도시한다.
도 2는 일 실시예에 따른 영상 복호화 장치(200)의 상세한 블록도를 도시한다.
도 3은 인루프 필터링부의 예시적인 블록 구성도를 나타낸 도면이다.
도 4는 일 실시예에 따른 인루프 필터링부의 블록 구성도를 나타낸 도면이다.
도 5는 DNN의 구조를 나타내는 도면이다.
도 6a 내지 6f는 다양한 CNN의 구조를 나타내는 도면이다.
도 7은 일 실시예에 따른 DNN 필터 모델 후보들을 나타내는 도면이다.
도 8은 일 실시예에 따라 하나 이상의 참조 영상을 이용하여 DNN 필터 모델에 기반한 인루프 필터링을 수행하는 방법을 나타내는 도면이다.
도 9는 일 실시예에 영상 부호화 장치(900)의 개략적인 블록도를 도시한다.
도 10은 일 실시예에 따른 영상 복호화 장치(1000)의 개략적인 블록도를 도시한다.
도 11은 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링 과정을 포함하는 영상 부호화 방법을 나타낸 플로우 차트이다.
도 12는 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링 과정을 포함하는 영상 복호화 방법을 나타낸 플로우 차트이다.
도 13은 일 실시예에 따라 현재 부호화 단위가 분할되어 적어도 하나의 부호화 단위가 결정되는 과정을 도시한다.
도 14는 일 실시예에 따라 비-정사각형의 형태인 부호화 단위가 분할되어 적어도 하나의 부호화 단위가 결정되는 과정을 도시한다.
도 15는 일 실시예에 따라 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 부호화 단위가 분할되는 과정을 도시한다.
도 16은 일 실시예에 따라 홀수개의 부호화 단위들 중 소정의 부호화 단위가 결정되는 방법을 도시한다.
도 17은 일 실시예에 따라 현재 부호화 단위가 분할되어 복수개의 부호화 단위들이 결정되는 경우, 복수개의 부호화 단위들이 처리되는 순서를 도시한다.
도 18은 일 실시예에 따라 소정의 순서로 부호화 단위가 처리될 수 없는 경우, 현재 부호화 단위가 홀수개의 부호화 단위로 분할되는 것으로 결정되는 과정을 도시한다.
도 19는 일 실시예에 따라 제1 부호화 단위가 분할되어 적어도 하나의 부호화 단위가 결정되는 과정을 도시한다.
도 20는 일 실시예에 따라 제1 부호화 단위가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위가 소정의 조건을 만족하는 경우, 제2 부호화 단위가 분할될 수 있는 형태가 제한되는 것을 도시한다.
도 21은 일 실시예에 따라 분할 형태 정보가 4개의 정사각형 형태의 부호화 단위로 분할하는 것을 나타낼 수 없는 경우, 정사각형 형태의 부호화 단위가 분할되는 과정을 도시한다.
도 22는 일 실시예에 따라 복수개의 부호화 단위들 간의 처리 순서가 부호화 단위의 분할 과정에 따라 달라질 수 있음을 도시한 것이다.
도 23은 일 실시예에 따라 부호화 단위가 재귀적으로 분할되어 복수개의 부호화 단위가 결정되는 경우, 부호화 단위의 형태 및 크기가 변함에 따라 부호화 단위의 심도가 결정되는 과정을 도시한다.
도 24는 일 실시예에 따라 부호화 단위들의 형태 및 크기에 따라 결정될 수 있는 심도 및 부호화 단위 구분을 위한 인덱스(part index, 이하 PID)를 도시한다.
도 25는 일 실시예에 따라 픽처에 포함되는 복수개의 소정의 데이터 단위에 따라 복수개의 부호화 단위들이 결정된 것을 도시한다.
도 26은 일 실시예에 따라 픽처에 포함되는 기준 부호화 단위의 결정 순서를 결정하는 기준이 되는 프로세싱 블록을 도시한다.
명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.
아래에서는 첨부한 도면을 참고하여 일 실시예의 실시예에 대하여 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 일 실시예는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 일 실시예를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.
일 실시예에서 사용되는 용어는 일 실시예에서의 기능을 고려하면서 가능한 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 일 실시예에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 일 실시예의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시는, 기계 학습 알고리즘을 활용하는 인공지능(AI)을 이용하여 영상을 처리하는 방법과 관련된다. 구체적으로, 영상의 부호화 및 복호화 과정에서 딥 뉴럴 네트워크(Deep Neural Network; DNN)를 이용하여 인루프 필터링을 수행하는 것과 관련된다.
이하, 도 1 내지 도 2를 참조하여 영상의 부호화 및 복호화와 관련된 전체적인 동작이 후술된다. 도 3 내지 도 12를 참조하여 인공지능을 적용한 인루프 필터링 방법이 후술된다. 도 13 내지 도 26을 참조하여 일 실시예에 따른 영상의 데이터 단위를 결정하는 방법이 후술된다.
도 1은 일 실시예에 따른 영상 부호화 장치(100)의 상세한 블록도를 도시한다.
일 실시예에 따른 영상 부호화 장치(100)는, 블록 결정부(110), 인터 예측부(115), 인트라 예측부(120), 복원 픽처 버퍼(125), 변환부(130), 양자화부(135), 역양자화부(140), 역변환부(145), 인루프 필터링부(150) 및 엔트로피 부호화부(155)를 포함한다.
일 실시예에 따른 블록 결정부(110)는 영상을 부호화하기 위한 블록의 최대 크기에 따라, 현재 영상의 데이터를 최대 부호화 단위로 분할할 수 있다. 각각의 최대 부호화 단위는 블록 형태 및 분할 형태별로 분할되는 블록(즉, 부호화 단위)들을 포함할 수 있다. 일 실시예에 따른 최대 부호화 단위는 최대 부호화 단위에 포함된 공간 영역(spatial domain)의 영상 데이터가 블록 형태 및 분할 형태에 따라 계층적으로 분류될 수 있다. 부호화 단위의 블록 형태는 정사각형 또는 직사각형일 수 있으며, 임의의 기하학적 형태일 수 있으므로, 일정한 크기의 데이터 단위로 제한되는 것은 아니다.
부호화되는 픽처의 크기가 커짐에 따라, 더 큰 단위로 영상을 부호화하면 더 높은 영상 압축률로 영상을 부호화할 수 있다. 그러나, 부호화 단위를 크게 하고, 그 크기를 고정시켜버리면, 계속해서 변하는 영상의 특성을 반영하여 효율적으로 영상을 부호화할 수 없다.
예를 들어, 바다 또는 하늘에 대한 평탄한 영역을 부호화할 때에는 부호화 단위를 크게 할수록 압축률이 향상될 수 있으나, 사람들 또는 빌딩에 대한 복잡한 영역을 부호화할 때에는 부호화 단위를 작게 할수록 압축률이 향상된다.
이를 위해 일 실시예에 따른 블록 결정부(110)는 픽처 또는 슬라이스마다 상이한 크기의 최대 부호화 단위를 설정하고, 최대 부호화 단위로부터 분할되는 하나 이상의 부호화 단위의 블록 형태 및 분할 형태를 설정한다. 블록 형태 및 분할 형태에 따라 최대 부호화 단위에 포함된 부호화 단위의 크기를 가변적으로 설정할 수 있게 된다.
하나 이상의 부호화 단위의 블록 형태 및 분할 형태는 R-D 코스트(Rate-Distortion Cost) 계산에 기초해 결정될 수 있다. 블록 형태 및 분할 형태는 픽처 또는 슬라이스마다 상이하게 결정되거나, 각각의 최대 부호화 단위마다 상이하게 결정될 수도 있다. 결정된 블록 형태 및 분할 형태는 부호화 단위별 영상 데이터와 함께 블록 결정부(110)로부터 출력된다.
일 실시예에 따라, 최대 부호화 단위로부터 분할되는 부호화 단위는 블록 형태 및 분할 형태로 특징지어질 수 있다. 블록 형태 및 분할 형태로 부호화 단위를 결정하는 구체적인 방식에 대해서는 도 13 내지 도 26을 통해 보다 상세히 후술하기로 한다.
일 실시예에 따라, 최대 부호화 단위에 포함된 부호화 단위들은 상이한 크기의 처리 단위에 기초해 예측 또는 변환(예를 들어, 픽셀 도메인의 값들을 주파수 도메인의 값들로 변환)될 수 있다. 다시 말해, 영상 부호화 장치(100)는 영상 부호화를 위한 복수의 처리 단계들을 다양한 크기 및 다양한 형태의 처리 단위에 기초해 수행할 수 있다. 영상 데이터의 부호화를 위해서는 예측, 변환, 엔트로피 부호화 등의 처리 단계를 거치는데, 모든 단계에 걸쳐서 동일한 크기의 처리 단위가 이용될 수도 있으며, 단계별로 상이한 크기의 처리 단위를 이용할 수 있다.
일 실시예에 따라, 부호화 단위의 예측 모드는 인트라 모드, 인터 모드 및 스킵 모드 중 적어도 하나일 수 있으며, 특정 예측 모드는 특정 크기 또는 형태의 부호화 단위에 대해서만 수행될 수 있다. 일 실시예에 따라, 각각의 부호화 단위에 대해 예측을 수행하여 부호화 오차가 가장 작은 예측 모드가 선택될 수 있다.
또한, 영상 부호화 장치(100)는 부호화 단위와 다른 크기의 처리 단위에 기초해 영상 데이터를 변환할 수 있다. 부호화 단위의 변환을 위해서 부호화 단위보다 작거나 같은 크기의 데이터 단위를 기반으로 변환이 수행될 수 있다.
일 실시예에 따라 영상 부호화 장치(100)는 부호화 단위의 부호화 오차를 라그랑지 곱(Lagrangian Multiplier) 기반의 율-왜곡 최적화 기법(Rate-Distortion Optimization)을 이용하여 측정할 수 있다.
일 실시예에 따라, 부호화 단위의 예측 모드는 인트라 모드, 인터 모드 및 스킵 모드 중 적어도 하나일 수 있으며, 특정 예측 모드는 특정 크기 또는 형태의 부호화 단위에 대해서만 수행될 수 있다. 일 실시예에 따라, 각각의 부호화 단위에 대해 예측을 수행하여 부호화 오차가 가장 작은 예측 모드가 선택될 수 있다.
인트라 예측부(120)는 입력 영상(105) 중 인트라 모드의 블록에 대해 인트라 예측을 수행하고, 인터 예측부(115)는 인터 모드의 블록에 대해 입력 영상(105) 및 복원 픽처 버퍼(125)에서 획득된 참조 픽처를 이용하여 인터 예측을 수행한다. 인트라 예측 또는 인터 예측을 수행할지 여부는 블록 단위 별로 결정될 수 있다. 영상 부호화 장치(100)는 예측 관련 정보(예를 들어, 부호화 단위 별 예측 모드)를 부호화할 수 있다.
입력 영상(105)의 블록에 대한 데이터와, 인트라 예측부(120) 또는 인터 예측부(115)로부터 출력된 각 블록에 대한 예측 데이터의 차이를 계산함으로써 레지듀얼 데이터가 생성된다. 레지듀얼 데이터는 변환부(130) 및 양자화부(135)를 거쳐 블록 별로 양자화된 변환 계수로 출력된다. 양자화된 변환 계수는 역양자화부(140), 역변환부(145)를 통해 공간 영역의 레지듀얼 데이터로 복원된다. 복원된 공간 영역의 레지듀얼 데이터는 인트라 예측부(120) 또는 인터 예측부(115)로부터 출력된 각 블록에 대한 예측 데이터와 더해짐으로써 입력 영상(105)의 블록에 대한 공간 영역의 데이터로 복원된다. 복원된 공간 영역의 데이터는 인루프 필터링부(150)를 거쳐 복원 영상으로 생성된다.
후술하겠지만, 일 실시예에 따른 인루프 필터링부(150)는 DNN 필터 모델에 기반한 인루프 필터링을 수행할 수 있다. 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링 동작은 디블록킹 필터링(Deblocking Filtering; DF), 샘플 적응적 오프셋(Sample Adaptive Offset; SAO) 및 적응적 루프 필터링(Adaptive Loop Filtering; ALF) 중 적어도 하나의 동작을 포함할 수 있다. 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링은 픽셀 또는 블록(예를 들어, 최대 부호화 단위 또는 부호화 단위) 단위로 수행될 수 있다.
생성된 복원 영상은 복원 픽처 버퍼(125)에 저장된다. 복원 픽처 버퍼(125)에 저장된 복원 픽처들은 다른 영상의 인터 예측을 위한 참조 픽처로 이용될 수 있다. 변환부(130) 및 양자화부(135)에서 양자화된 변환 계수는 엔트로피 부호화부(155)를 거쳐 비트스트림(160)으로 출력될 수 있다.
영상 부호화 장치(100)로부터 출력되는 비트스트림(160)에는 레지듀얼 데이터의 부호화 결과가 포함될 수 있다. 또한, 비트스트림(160)에는 블록 형태, 분할 형태, 변환 단위의 크기 정보 등을 나타내는 정보의 부호화 결과가 포함될 수도 있다.
도 2는 일 실시예에 따른 영상 복호화 장치(200)의 상세한 블록도를 도시한다.
일 실시예에 따른 영상 복호화 장치(200)는, 영상을 복호화하기 위한 동작들을 수행한다. 일 실시예에 따른 영상 복호화 장치(200)는 수신부(210), 블록 결정부(215), 엔트로피 복호화부(220), 역 양자화부(225), 역변환부(230), 인터 예측부(235), 인트라 예측부(240), 복원 픽처 버퍼(245) 및 인루프 필터링부(250)를 포함한다.
도 2의 수신부(210)는 부호화된 영상의 비트스트림(205)을 수신한다.
일 실시예에 따른 블록 결정부(215)는 영상을 복호화하기 위한 블록의 최대 크기에 따라, 현재 픽처의 영상 데이터를 최대 부호화 단위로 분할할 수 있다. 각각의 최대 부호화 단위는 블록 형태 및 분할 형태별로 분할되는 블록(즉, 부호화 단위)들을 포함할 수 있다. 일 실시예에 따른 블록 결정부(215)는 비트스트림(205)으로부터 분할 정보를 획득하여 공간 영역의 영상 데이터를 블록 형태 및 분할 형태에 따라 계층적으로 분할할 수 있다. 한편, 복호화에 이용되는 블록들이 일정한 형태 및 크기를 가질 경우, 블록 결정부(215)는 분할 정보를 이용하지 않고 영상 데이터를 분할할 수 있다. 일 실시예에 따른 블록 결정부(215)는 도 1의 블록 결정부(110)에 대응할 수 있다.
엔트로피 복호화부(220)는 비트스트림(205)으로부터 복호화 대상인 부호화된 영상 데이터 및 복호화를 위해 필요한 부호화 정보를 획득한다. 부호화된 영상 데이터는 양자화된 변환계수로서, 역양자화부(225) 및 역변환부(230)는 양자화된 변환 계수로부터 레지듀얼 데이터를 복원한다.
인트라 예측부(240)는 인트라 모드의 블록에 대해 인트라 예측을 수행한다. 인터 예측부(235)는 인터 모드의 블록에 대해 복원 픽처 버퍼(245)에서 획득된 참조 픽처를 이용하여 인터 예측을 수행한다. 인트라 예측 또는 인터 예측을 수행할지 여부는 블록 단위 별로 결정될 수 있다. 영상 복호화 장치(200)는 예측 관련 정보(예를 들어, 부호화 단위 별 예측 모드)를 비트스트림(205)으로부터 획득할 수 있다.
인트라 예측부(240) 또는 인터 예측부(235)를 거친 각 블록에 대한 예측 데이터와 레지듀얼 데이터가 더해짐으로써 블록에 대한 공간 영역의 데이터가 복원되고, 복원된 공간 영역의 데이터는 인루프 필터링부(250)를 거쳐 복원 영상으로 출력될 수 있다.
후술하겠지만, 일 실시예에 따른 인루프 필터링부(150)는 DNN 필터 모델에 기반한 인루프 필터링을 수행할 수 있다. 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링 동작은 디블록킹 필터링, SAO 및 ALF 중 적어도 하나의 동작을 포함할 수 있다. 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링은 픽셀 또는 블록(예를 들어, 최대 부호화 단위 또는 부호화 단위) 단위로 수행될 수 있다.
블록 단위의 영상 압축 기술은 양자화 에러로 인하여 복원 영상에 화질 열화가 발생하는 문제가 있다. 이를 해결하기 위하여 다양한 영상 압축 표준 기술들은 인루프 필터를 사용한다.
예를 들어, H.264/AVC 압축 표준에서의 인루프 필터링 기법은 블록화 현상(blocking artifact)을 제거하기 위한 디블록킹 필터링을 포함한다.
예를 들어, HEVC 표준에서의 인루프 필터링 기법은 디블록킹 필터링 뿐 아니라 양자화 등의 손실 압축에 의해 발생하는 정보의 손실을 보상하기 위한 SAO 를 추가로 포함한다. SAO는 복원 영상의 링잉(ringing) 현상을 제거하기 위한 기법이다. SAO는 화소(sample) 단위로 처리되며 통계적 분석을 통해 RDO(rate distortion optimization)를 수행하여 최적의 오프셋을 구하여 복원 화소에 보간을 수행하는 기술이다. HEVC 표준에서는 복원 영상에 대하여 먼저 디블록킹 필터링을 적용하고, 디블록킹 필터링이 완료된 복원 영상에 대하여 SAO를 수행한다. SAO 과정에서 에지 오프셋/밴드 오프셋을 복원 영상에 더해줌으로써 복원 영상과 원본 영상 간의 에러를 최소화할 수 있다.
예를 들어, 인루프 필터링 기법은 ALF를 포함할 수도 있다. ALF는 복원 영상에 위너 필터(Wiener filter)를 적용함으로써 원본 영상과 필터링된 복원 영상과의 오차를 줄일 수 있다.
상술한 인루프 필터링 기술은 주관적 화질을 향상시킬 뿐만 아니라 화면 간 예측 과정에서 참조 영상으로 사용되어 부호화 효율도 향상시킬 수 있다.
도 3은 인루프 필터링부의 예시적인 블록 구성도를 나타낸 도면이다.
도 3을 참조하면, 인루프 필터링부(300)는 디블록킹 필터링부(310), 샘플 적응적 오프셋부(320) 및 적응적 루프 필터링부(330)를 포함할 수 있다.
인루프 필터링부(300)는 HE(High Efficiency) 조건인 경우 디블록킹 필터링, SAO 및 ALF의 순서로 복원 영상에 대한 필터링을 수행하지만, LC(Low Complexity) 조건인 경우에는 ALF가 제외되어 디블록킹 필터링 및 SAO 순서로 필터링을 수행할 수 있다.
디블록킹 필터링부(310)는 블록(예를 들어, 부호화 단위, 예측 단위 또는 변환 단위)들 중 소정 크기 이상의 데이터 단위가 갖는 경계에 기초하여 필터링 경계를 결정할 수 있다. 예를 들어, 디블록킹 필터링부(310)는 32x32 이상의 크기를 갖는 블록들의 경계만을 디블록킹 필터링이 수행될 필터링 경계로 결정하거나, 16x16 이상의 크기를 갖는 블록들의 경계만을 디블록킹 필터링이 수행될 필터링 경계로 결정하거나, 8x8 이상의 크기를 갖는 블록들의 경계만을 디블록킹 필터링이 수행될 필터링 경계로 결정할 수 있다. 한편, 디블록킹 필터링부(310)는 소정 크기 이상의 데이터 단위가 갖는 경계라도 프레임 경계에 해당하는 경우에는 해당 경계를 필터링 경계로 결정하지 않는다. 즉, 픽처의 가장자리에 해당하는 최외곽의 경계에 대해서는 디블록킹 필터링이 수행되지 않는다.
디블록킹 필터링부(310)는 필터링 경계를 기준으로 인접한 픽셀들이 속하는 블록의 예측 모드 및 필터링 경계에 인접한 픽셀들의 변환 계수값들에 기초하여 필터링 경계에서의 필터링 강도를 결정한다.
디블록킹 필터링부(310)는 필터링 경계를 기준으로 인접한 픽셀들이 속하는 블록의 예측 모드가 인트라 모드인지 인터 모드인지 여부 및 필터링 경계에 인접한 픽셀의 변환 계수값들이 0이 아닌 값을 갖는지 여부에 따라 필터링 강도를 결정한다. 필터링 강도를 BS(Boundary Strength)라 할 때, BS는 0, 1, 2의 3단계로 구분될 수 있다. BS의 크기는 필터링 강도에 비례한다. 즉, BS=2인 경우가 가장 강한 디블록킹 필터링 강도를 의미하며, BS=0인 경우는 가장 약한 디블록킹 필터링 강도를 의미한다. BS=0인 경우는 디블록킹 필터링이 수행되지 않을 수 있다.
디블록킹 필터링부(310)는 결정된 필터링 강도 및 필터링 경계를 기준으로 인접한 소정 개수의 픽셀들의 픽셀 값 사이의 절대값 차이와 소정의 임계값의 비교 결과에 기초하여 필터링 경계에 대한 디블록킹 필터링 수행 여부를 결정할 수 있다. 구체적으로, 디블록킹 필터링부(310)는 필터링 경계와 인접하면서 필터링 경계를 기준으로 분리된 픽셀들의 픽셀 값 차이의 절대값 및 필터링 경계를 기준으로 동일 측면에 인접하여 위치한 픽셀들의 픽셀 값 차이의 절대값이 픽셀들이 속한 변환 단위의 양자화 파라미터에 따라 결정된 소정 임계값보다 작으면서, 필터링 강도가 가장 약한 필터링 강도가 아닌 경우에만 디블록킹 필터링을 수행하는 것으로 결정한다. 여기서, 임계값은 필터링 경계에 인접한 블록의 양자화시에 이용된 양자화 파라미터 QP(Quantization Parameter)에 기초하여 미리 정해진 값일 수 있다.
디블록킹 필터링이 수행되기로 결정된 경계에 대해서, 디블록킹 필터링부(310)는 필터링 강도 및 필터링 경계와 인접하면서 필터링 경계를 기준으로 분리된 픽셀들의 픽셀 값 차이의 절대값과 필터링 경계를 기준으로 동일 측면에 인접하여 위치한 픽셀들 픽셀 값의 차이의 절대값에 기초하여, 필터링 경계에 인접하여 필터링되는 픽셀들의 개수 및 필터 탭 계수를 결정한다. 또한, 디블록킹 필터링부(310)는 필터 탭 계수에 기초한 가중합을 통해 필터링되는 픽셀들의 픽셀 값을 변경함으로써 필터링을 수행한다.
디블록킹 필터링부(310)는 비트스트림으로부터 획득된 디블록킹 필터링에 대한 정보를 이용하여 디블록킹 필터링을 수행할 수 있다. 디블록킹 필터링에 대한 정보는, 트리 구조에 따른 데이터 단위가 갖는 경계들 중 디블록킹 필터링이 수행되는 데이터 단위를 결정하기 위한 데이터 단위 크기와 같은 필터링 경계 결정 정보를 포함할 수 있다.
이 같은 디블록킹 필터링에 대한 정보는 시퀀스 파라미터 세트(sequence parameter set), 픽쳐 파라미터 세트(picture parameter set), 비디오 파라미터 세트(video parameter set), 슬라이스 헤더(slice header), 슬라이스 세그먼트 헤더(slice segment header) 등을 통해 시그널링될 수 있다. 다만, 후술되는 일 실시예에 따른 인루프 필터링부(150, 250)는 디블록킹 필터링에 대한 정보의 시그널링 없이도 DNN 필터 모델에 기반한 인루프 필터링을 수행할 수 있다.
샘플 적응적 오프셋부(320)는 디블록킹 필터링된 복원 영상을 입력 받아, 영상 내의 각 블록(예를 들어, 최대 부호화 단위 또는 부호화 단위) 별로 원본 픽셀과 복원 픽셀 간의 오차를 최소화하기 위한 SAO를 적용한다. 이 때, 샘플 적응적 오프셋부(320)는 현재 블록의 픽셀 값 분류 방식에 따라 SAO 타입을 결정할 수 있다. SAO 타입은, 에지 타입 또는 밴드 타입으로 결정될 수 있다. 현재 블록의 픽셀 값 분류 방식에 따라, 현재 블록을 에지 타입에 따라 픽셀들을 분류할지, 아니면 밴드 형태에 따라 픽셀들을 분류하는 것이 적합한지 결정될 수 있다.
SAO 타입이 에지 타입인 경우, 현재 블록의 복원 픽셀들이 이웃 픽셀들과 형성하는 에지의 방향 및 모양에 따라, 복원 픽셀들과 원본 픽셀들 간의 오프셋이 결정될 수 있다.
SAO 타입이 밴드 타입인 경우, 현재 블록의 복원 픽셀들의 픽셀 값의 총 범위를 분할한 다수의 밴드들 중에서, 각 밴드들에 속하는 복원 픽셀들과 원본 픽셀들 간의 오프셋이 결정될 수 있다. 경우에 따라 밴드들은, 픽셀 값의 총 범위를 균등한 간격으로 분할하거나, 비균등한 간격으로 분할할 수도 있다.
샘플 적응적 오프셋부(320)는, 현재 블록의 픽셀 값들의 공간적 특성에 기초하여, 에지 타입 또는 밴드 타입인지를 나타내는 SAO 타입을 결정할 수 있다.
샘플 적응적 오프셋부(320)는, 현재 블록의 SAO 타입에 따라 복원 픽셀들마다 SAO 클래스를 결정할 수 있다. SAO 클래스는 에지 클래스 또는 밴드 클래스로 결정될 수 있다.
에지 타입의 경우, 에지 클래스는 복원 픽셀이 이웃 픽셀들과 형성하는 에지의 방향을 나타낼 수 있다. 에지 클래스는 0˚, 90˚, 45˚, 또는 135˚의 에지 방향을 나타낼 수 있다.
샘플 적응적 오프셋부(320)는 SAO 타입이 에지 타입인 경우, 현재 블록의 복원 픽셀들마다 에지 클래스를 결정할 수 있다.
밴드 타입의 경우, 밴드 클래스는 현재 블록의 픽셀 값의 총 범위가 소정 개수의 연속되는 픽셀 값 구간들로 분할될 때, 각 픽셀 값 구간을 밴드라 지칭하고, 복원 픽셀의 픽셀 값들이 속하는 밴드를 나타내는 밴드 위치를 나타낼 수 있다.
예를 들어, 픽셀 값이 8비트인 샘플인 경우에 픽셀 값의 총범위는 0 내지 255이며, 픽셀 값은 총 32개의 밴드들로 분할될 수 있다. 이 경우 총 32개의 밴드들 중에서 복원 픽셀들의 픽셀 값들이 속하는 소정 개수의 밴드들이 결정될 수 있다. 밴드 클래스는, 연속하는 소정 개수의 밴드들의 시작 위치(좌측 시작 지점)를 나타내고, 가장 앞서는 밴드의 위치는 0 내지 31의 밴드 인덱스로 표현될 수도 있다.
에지 타입의 경우, 현재 블록의 복원 픽셀들은 이웃 픽셀들과 형성하는 에지 형태에 따라 소정 개수의 카테고리들로 분류될 수 있다. 예를 들어, 오목 에지(concave)의 국부 최저점(local valley), 오목 에지의 곡선 코너(corner), 볼록 에지(convex)의 곡선 코너, 볼록 에지의 국부 최고점(local peak)의 4가지 에지 형태에 따라, 복원 픽셀들이 4개의 카테고리들로 분류될 수 있다. 현재 블록의 복원 픽셀들마다 어느 형태의 에지를 형성하느냐에 따라 4개의 카테고리들 중에 하나의 카테고리에 속한다고 결정될 수 있다.
밴드 타입의 경우, 현재 블록의 복원 픽셀들의 픽셀 값이 속하는 밴드위치에 따라 소정 개수의 카테고리들로 분류될 수 있다. 예를 들어, 밴드 클래스가 나타내는 시작 위치, 즉 가장 좌측 밴드의 시작 지점으로부터 연속하는 4개의 밴드들의 밴드 인덱스에 따라, 복원픽셀들이 4개의 카테고리들로 분류될 수 있다. 현재 블록의 복원 픽셀들마다, 4개의 밴드들 중에 어느 밴드에 속하느냐에 따라 4개의 카테고리들 중에 하나의 카테고리에 속한다고 결정될 수 있다.
샘플 적응적 오프셋부(320)는 현재 블록의 복원 픽셀들마다 카테고리를 결정할 수 있다. 샘플 적응적 오프셋부(320)는, 현재 블록에서 동일한 카테고리에 속하는 복원 픽셀들에 대해, 복원 픽셀과 원본 픽셀들 간의 차이 값들을 이용하여 오프셋 값을 결정할 수 있다. 각 카테고리마다, 복원 픽셀들과 원본 픽셀들 간의 차이 값들의 평균, 즉 복원 픽셀들의 평균 오차를, 현재 카테고리에 대응되는 오프셋 값으로 결정할 수 있다. 샘플 적응적 오프셋부(320)는, 카테고리들마다 오프셋 값을 결정하고, 현재 블록을 위한 오프셋 값으로서, 모든 카테고리의 오프셋 값들을 결정할 수 있다.
예를 들어, 현재 블록의 SAO 타입이 에지 타입이고 에지 형태에 따라 복원 픽셀들이 4개의 카테고리로 분류되거나, 또는 현재 블록의 SAO 타입이 밴드 타입이고 연속하는 4개의 밴드들의 인덱스에 따라 복원 픽셀들이 4개의 카테고리로 분류되는 경우에, 샘플 적응적 오프셋부(320)는 4개의 카테고리마다 속하는 복원 픽셀들과 원본 픽셀들 간의 평균 오차를 결정하므로 4개의 오프셋 값들을 결정할 수 있다.
오프셋 값들은 각각 미리 설정된 최소값보다 크거나 같고, 미리 설정된 최대값보다 작거나 같을 수 있다.
샘플 적응적 오프셋부(320)는 결정된 현재 블록의 SAO 타입, SAO 클래스 및 오프셋 값을 포함하는 SAO 파라미터를 시그널링할 수 있다. SAO 타입에는 오프(Off) 타입, 에지(Edge) 타입, 밴드(Band) 타입이 포함될 수 있다.
SAO 타입이 오프 타입인 경우, 현재 블록에 대해 SAO 가 적용되지 않음을 나타낼 수 있다. 이 경우, 현재 블록의 나머지 SAO 파라미터도 더 이상 시그널링될 필요가 없다.
SAO 타입이 에지 타입인 경우, SAO 파라미터는 에지 클래스들 중에서 각 에지 클래스마다 대응되는 오프셋 값들을 포함할 수 있다. 또한 SAO 타입이 밴드 타입인 경우, SAO 파라미터는 밴드들 중에서 각 밴드마다 대응되는 오프셋 값들을 포함할 수 있다.
상술한 SAO 파라미터는 시퀀스 파라미터 세트, 픽쳐 파라미터 세트, 비디오 파라미터 세트, 슬라이스 헤더, 슬라이스 세그먼트 헤더 등을 통해 시그널링될 수 있다. 예를 들어, SAO 파라미터 중 SAO 수행 여부를 나타내는 플래그는 시퀀스 파라미터 세트를 통해 시그널링되고, SAO 타입, 머지 플래그, SAO 클래스, 오프셋 값 등을 나타내는 정보는 샘플 적응적 오프셋 신택스를 통해 시그널링될 수 있다. 다만, 후술되는 일 실시예에 따른 인루프 필터링부(150, 250)는 SAO 파라미터의 시그널링 없이도 DNN 필터 모델에 기반한 인루프 필터링을 수행할 수 있다.
적응적 루프 필터링부(330)는 영상을 블록 단위로 나누어 각각의 블록에 대해 적응적 루프 필터링을 적용할 것인지 여부에 대한 정보 및 필터 계수에 대한 정보를 포함하는 적응적 루프 필터링에 대한 정보를 시그널링한다. 적응적 루프 필터링부(330)는 위너 필터(Wiener filter)를 기반으로 동작하며, 원본 영상과 복원 영상과의 오차를 최소화시키는 최적의 계수를 계산하여 최적 필터링을 수행한다.
필터 계수 정보는, 각각의 필터(예를 들어, 1차원 필터)에 대한 필터 계수에 대한 정보를 포함하며, 각 필터의 필터 계수의 정보는, 연속적인 필터 계수들 간의 차이 값에 관한 정보를 포함할 수 있다. 즉, 각각의 필터의 필터 계수의 잔차 성분이 부호화되어 시그널링될 수 있다.
적응적 루프 필터링에 대한 정보는 각 필터의 종류, 개수, 크기, 양자화 비트, 계수, 필터링 방향, 필터링 수행 여부 및 러닝 필터링 수행 여부 등을 포함할 수 있다. 필터 세트에 관한 정보는 픽처, 슬라이스, 시퀀스 등의 데이터 단위로 설정되어 있을 수 있다.
한편, 필터의 종류가 위너 필터인 경우, 필터 계수가 필터들간의 상호 상관 매트릭스에 의해 결정될 수 있으므로, 필터 계수 정보는 개별적인 계수 대신에 상호 상관 매트릭스에 관한 정보를 포함할 수 있다.
각 필터의 필터링 방향은, 소정 각도의 일직선 상에 위치한 픽셀들에 대한 필터링 방향으로 결정될 수 있다. 예를 들어, 수직(±90°), 수평(0°, 180°), 대각선(±45°, ±135°) 등 ±0~180°의 소정 각도의 필터링 방향에 따른 필터링이 수행될 수 있다.
적응적 루프 필터링부(330)는, 각각의 필터의 필터링 방향을 영상 데이터 중 로컬 영상 특성에 적응적이게 결정할 수 있다. 예를 들어, 적응적 루프 필터링부(330)는 영상 데이터 중 로컬 영상의 에지를 검출하여, 검출된 에지의 방향에 따른 필터링 방향을 따라 필터링이 수행되도록 필터를 결정할 수 있다.
적응적 루프 필터링부(330)는 이전 픽셀의 필터링의 결과가 현재 픽셀의 필터링에 영향을 주는 러닝 필터링(running filtering) 방식인지 여부도 결정할 수 있다. 러닝 필터링 방식에 따르는 필터링에 의하면, 이전 픽셀의 필터링 결과가 갱신되고, 이전 픽셀의 필터링된 데이터를 통해 현재 픽셀의 필터링이 수행될 수 있다.
적응적 루프 필터링에 대한 정보는 시퀀스 파라미터 세트, 픽쳐 파라미터 세트, 비디오 파라미터 세트, 슬라이스 헤더, 슬라이스 세그먼트 헤더 등을 통해 시그널링될 수 있다. 다만, 후술되는 일 실시예에 따른 인루프 필터링부(150, 250)는 적응적 루프 필터링에 대한 정보의 시그널링 없이도 DNN 필터 모델에 기반한 인루프 필터링을 수행할 수 있다.
한편, 샘플 적응적 오프셋부(320)는 원본 영상과 복원 영상 간의 오류를 직접 계산하여 보상한다는 개념에 있어서는 적응적 루프 필터링부(330)와 유사할 수 있으나, LC(Low Complexity) 조건에서는 적응적 루프 필터링부(330)가 사용되지 않으므로 샘플 적응적 오프셋부(320)는 적응적 루프 필터링부(330)의 역할을 대체하는 간략화된 기술로서 이해될 수도 있다.
도 4는 일 실시예에 따른 인루프 필터링부의 블록 구성도를 나타낸 도면이다.
도 4를 참조하면, DNN 필터 모델(400)이 도시된다. 일 실시예에 따른 DNN 필터 모델(400)은 복원 영상을 입력받아 필터링된 복원 영상을 출력한다. 일 실시예에 따른 DNN 필터 모델(400)은 도 1의 인루프 필터링부(150) 또는 도 2의 인루프 필터링부(250)에 대응할 수 있다.
일 실시예에 따른 DNN 필터 모델(400)은 DNN에 기반한 인루프 필터링을 수행한다. DNN 필터 모델(400)은, DNN 필터 모델(400)을 구성하는 복수의 네트워크 노드들 간의 연결 관계 및 복수의 네트워크 노드들 각각의 가중치에 기반한 연산에 따라 복원 영상의 양자화 에러를 보상하도록 학습된 네트워크 모델이다.
즉, DNN 필터 모델(400)은 일종의 학습 모델로서, 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있다. 예를 들어, DNN 필터 모델(400)은 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 가지는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 노드들은 뉴런이 시냅스(synapse)를 통하여 신호를 주고 받는 시냅틱(synaptic) 활동을 모의하도록 각각 연결 관계를 형성할 수 있다.
DNN 필터 모델(400)은, 일 예로, 인공 지능 신경망 모델, 또는 신경망 모델에서 발전한 딥 러닝 네트워크 모델을 포함할 수 있다.이하에서는, 뉴럴 네트워크(Neural Network)의 아키텍처에 관해 간략히 설명하기로 한다.
뉴럴 네트워크는 생물학적 뇌를 모델링한 컴퓨터 과학적 아키텍쳐(Computational Architecture)를 참조한다. 뉴럴 네트워크는 연결선으로 연결된 많은 수의 인공 뉴런들을 이용하여 생물학적인 시스템의 계산 능력을 모방하는 소프트웨어나 하드웨어로 구현된 인식 모델이다. 노드(node)로서 지칭되는 인공 뉴런들은 서로 연결되어 있고, 입력 데이터를 처리하기 위하여 집합적으로 동작한다.
뉴럴 네트워크는 입력 레이어(input layer), 히든 레이어(hidden layer), 출력 레이어(output layer)를 포함할 수 있다. 입력 레이어는 학습을 수행하기 위한 입력을 수신하여 히든 레이어에 전달할 수 있고, 출력 레이어는 히든 레이어의 노드들로부터 수신한 신호에 기초하여 뉴럴 네트워크의 출력을 생성할 수 있다. 히든 레이어는 입력 레이어와 출력 레이어 사이에 위치하고, 입력 레이어를 통해 전달된 학습 데이터를 예측하기 쉬운 값으로 변화시킬 수 있다. 입력 레이어와 히든 레이어에 포함된 노드들은 연결 가중치를 가지는 연결선을 통해 서로 연결될 수 있다. 또한, 히든 레이어와 출력 레이어에 포함된 노드들도 연결 가중치를 가지는 연결선을 통해 서로 연결될 수 있다. 입력 레이어, 히든 레이어 및 출력 레이어는 복수 개의 노드들을 포함할 수 있다.
뉴럴 네트워크는 복수 개의 히든 레이어를 포함할 수 있다. 복수 개의 히든 레이어를 포함하는 뉴럴 네트워크를 딥 뉴럴 네트워크(Deep Neural Network; DNN)라고 하고, DNN을 학습시키는 것을 딥 러닝(Deep Learning)이라고 한다. 히든 레이어에 포함된 노드는 히든 노드(hidden node)라고 한다.
DNN은 복수의 히든 레이어를 포함하는 다층 퍼셉트론(multilayer perceptrons) 구조를 갖는다. 퍼셉트론이란 각 뉴런의 수학적 모델 y=Wx+b 을 일컫는 용어로서, 이러한 다층 퍼셉트론은 역전파 알고리즘(backpropagation algorithm)을 통한 학습을 통해 예측의 정확도를 높일 수 있다. DNN이 역전파 알고리즘을 통해 학습을 하는 방법은 입력 레이어에서 시작하여 출력 레이어를 통해 y 값을 얻었을 때 라벨 값(예를 들어, 정답을 나타내는 데이터 또는 원 데이터와의 오차가 가장 적은 데이터)과 비교하여 오답일 경우 다시 출력 레이어에서 입력 레이어 방향으로 값을 전달하며 계산된 코스트에 따라 각 W와 b 값을 업데이트 하는 방식이다. DNN 구조에 대한 상세한 설명은 도 5를 통해 후술하기로 한다.
이처럼, DNN에 특정 입/출력 데이터 셋을 제공하여 학습을 시키면, 제공된 입/출력 데이터 셋의 데이터 패턴을 고차원으로 학습하여 원본 데이터에 가장 유사한 필터링된 영상을 추론하는 모델을 생성하게 된다.
일 실시예에 따른 인루프 필터링부(150, 250)의 입력 데이터 셋은 부호화된 영상을 복원한 복원 데이터일 수 있다.
일 실시예에 따른 인루프 필터링부(150, 250)의 출력 데이터 셋은 원본 데이터와 필터링된 복원 데이터 사이의 오차(예를 들어, 양자화 등의 손실 압축에 의해 발생하는 에러)를 최소화한 데이터일 수 있다. 이 때, 출력 데이터 셋은 도 3을 참조하여 설명한 디블록킹 필터링, SAO 및 ALF 중 적어도 하나의 필터링 방식을 이용함으로써 제공받을 수 있다. 한편, 원본 데이터와 필터링된 복원 데이터 사이의 오차는 R-D 코스트에 기초하여 측정될 수 있다.
이처럼, 원본 데이터와 필터링된 복원 데이터 사이의 오차를 최소화한 데이터를 생성하도록 학습된 DNN 필터 모델에 기반하여 인루프 필터링을 수행할 경우, 도 3을 통해 전술한 디블록킹 필터링에 대한 정보, SAO 파라미터 및 적응적 루프 필터링에 대한 정보의 시그널링이 불필요하다. 학습된 DNN 필터 모델은 입력 패턴을 분석하여 그 특징을 찾아내어 최적의 필터링을 수행할 수 있는 일반화 능력을 갖기 때문이다. 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링은, 인루프 필터링된 복원 데이터와 원(original) 데이터 사이의 오차를 최소화하도록 학습된 DNN을 이용한다.
일 실시예에 따른 DNN 필터 모델(400)은 필터 정보를 시그널링할 수 있다. 예를 들어, 영상 복호화 장치(200)는 영상 부호화 장치(100)로부터 획득한 필터 정보에 기초하여 필터링을 수행하고자 하는 영상에 적합한 DNN 필터 모델을 선택하여 이를 적용할 수 있다.
일 실시예에 따른 필터 정보는 부호화된 영상의 에러 특성에 관한 정보를 포함할 수 있다. 또한, 에러 특성에 관한 정보는 영상의 컨텐츠 타입 및 양자화 파라미터에 대한 정보 중 적어도 하나를 포함할 수 있다. 일 실시예에 따른 컨텐츠 타입은 소정 기준에 따라 분류된 카테고리를 나타낼 수 있다. 예를 들어, 컨텐츠 타입은 영상의 에러 특성에 따라, 컴퓨터 그래픽, 일반 영상, 모션 블러, 텍스쳐 등을 포함할 수 있다. 일 실시예에 따른 컨텐츠 타입은, 영상의 픽셀 복잡도 및 움직임 정도 중 적어도 하나의 지표에 기초하여 영상 부호화 장치(100)에 의해 결정될 수 있다.
일 실시예에 따른 DNN 필터 모델(400)은 필터 정보를 이용하여 DNN 필터 모델 후보들 중 하나의 DNN 필터 모델을 결정할 수 있다. 이 때, DNN 필터 모델 후보는 컨텐츠 타입 별 및/또는 압축 강도(또는, 양자화 파라미터) 별로 미리 설정되어 있을 수 있다. 예를 들어, 컨텐츠 타입 별 및/또는 압축 강도 별 DNN 필터 모델 후보는 정해진 규칙에 의해 영상 복호화 장치(200)에 미리 설정되어 있을 수 있다.
DNN 필터 모델 후보들 및 DNN 필터 모델의 결정에 관해서는 도 7을 통해 상세히 후술하기로 한다.
한편, DNN 필터 모델(400)은, 소프트웨어 모듈로 구현될 수도 있다. 소프트웨어 모듈(예를 들어, 명령어(instruction)를 포함하는 프로그램 모듈)로 구현되는 경우, DNN 필터 모델(400)은 컴퓨터로 읽을 수 있는 판독 가능한 기록매체에 저장될 수 있다.
또한, DNN 필터 모델(400)은 하드웨어 칩 형태로 집적되어 전술한 영상 부호화 장치(100) 또는 영상 복호화 장치(200)의 일부가 될 수도 있다. 예를 들어, DNN 필터 모델(400)은 인공 지능을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예를 들어, CPU 또는 애플리케이션 프로세서) 또는 그래픽 전용 프로세서(예를 들어, GPU)의 일부로 제작될 수도 있다.
또한, DNN 필터 모델(400)은 다운로드 가능한 소프트웨어 형태로 제공될 수도 있다. 컴퓨터 프로그램 제품은 영상 부호화 장치(100) 또는 영상 복호화 장치(200)의 제조사 또는 전자 마켓을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사 또는 전자 마켓의 서버, 또는 중계 서버의 저장매체가 될 수 있다.
도 5는 DNN의 구조를 나타내는 도면이다.
도 5를 참조하면, 복원 데이터(510), DNN(520) 및 인루프 필터링된 복원 데이터(530)가 도시된다.
복원 데이터(510)는 학습 데이터로서 DNN(520)의 입력 레이어로 입력될 수 있다. DNN(520)의 입력 레이어를 통해 전달된 데이터는 히든 레이어에서 예측하기 쉬운 값으로 변화될 수 있다. 히든 레이어는, 입력 레이어와 출력 레이어 사이에서 연결 가중치를 갖는 연결선을 통해 연결된다. DNN(520)의 출력 레이어는 히든 레이어의 노드들로부터 수신한 신호에 기초하여 출력, 즉, 인루프 필터링된 복원 데이터(530)를 생성할 수 있다. 입력 레이어, 히든 레이어 및 출력 레이어는 복수 개의 노드들을 포함하는데, DNN(520)은 이 같은 복수 개의 노드들 사이의 알고리즘을 통해 복원 데이터(510)와 인루프 필터링된 복원 데이터(530) 사이의 사상(mapping)을 생성해낼 수 있다. DNN(520)에 대해서 원본 데이터와의 오차가 가장 적은 인루프 필터링된 복원 데이터(530)를 출력하도록 학습시킬 경우, DNN(520)은 학습에 이용되지 않았던 입력 패턴에 대해 비교적 올바른 출력을 생성할 수 있는 일반화 능력을 가지게 된다.
일 실시예에 따른 DNN(520)은 컨볼루션 풀링 레이어, 히든 레이어 및 완전 연결 레이어를 포함하는 레이어들의 세트로 구현될 수 있다. 예를 들어, DNN(520)의 전체적인 구조는 컨볼루션 풀링 레이어에 히든 레이어가 이어지고, 히든 레이어에 완전 연결 레이어가 이어지는 형태로 이루어질 수 있다.
일 실시예에 따라, DNN(520)은 콘볼루션 레이어(Convolution Layer)를 포함하는 CNN과 같은 형태의 네트워크로 구현될 수 있다.
CNN은 영상분석에 적합한 구조로서, 주어진 영상 데이터들로부터 가장 분별력(Discriminative Power)이 큰 특징을 스스로 학습하는 특징 추출 레이어(feature extraction Layer)와 추출된 특징을 기반으로 가장 높은 예측 성능을 내도록 예측 모델을 학습하는 예측 레이어(prediction layer)가 통합된 구조로 구성될 수 있다.
특징 추출 레이어는 영상의 각 영역에 대해 복수의 필터를 적용하여 특징 맵(feature map)를 만들어 내는 콘볼루션 레이어(Convolution Layer)와 특징 맵을 공간적으로 통합함으로써 위치나 회전의 변화에 불변하는 특징을 추출할 수 있도록 하는 통합 레이어(Pooling Layer)를 번갈아 수 차례 반복하는 구조로 형성될 수 있다. 이를 통해, 점, 선, 면 등의 낮은 수준의 특징에서부터 복잡하고 의미 있는 높은 수준의 특징까지 다양한 수준의 특징을 추출해낼 수 있다.
콘볼루션 레이어는 입력 영상의 각 패치에 대하여 필터와 국지 수용장(Local Receptive Field)의 내적에 비선형 활성 함수(Activation Function)을 취함으로서 특징 맵을 구하게 되는데, 다른 네트워크 구조와 비교하여, CNN은 희소한 연결성 (Sparse Connectivity)과 공유된 가중치(Shared Weights)를 가진 필터를 사용하는 특징이 있다. 이러한 연결구조는 학습할 모수의 개수를 줄여주고, 역전파 알고리즘을 통한 학습을 효율적으로 만들어 결과적으로 예측 성능을 향상시킨다.
통합 레이어(Pooling Layer) 또는 서브-샘플링 레이어(Sub-sampling Layer)는 이전 콘볼루션 레이어에서 구해진 특징 맵의 지역 정보를 활용하여 새로운 특징 맵을 생성한다. 일반적으로 통합 레이어에 의해 새로 생성된 특징 맵은 원래의 특징 맵보다 작은 크기로 줄어드는데, 대표적인 통합 방법으로는 특징 맵 내 해당 영역의 최대값을 선택하는 최대 통합(Max Pooling)과 특징 맵 내 해당 영역의 평균값을 구하는 평균 통합(Average Pooling) 등이 있다. 통합 레이어의 특징 맵은 일반적으로 이전 레이어의 특징 맵보다 입력 영상에 존재하는 임의의 구조나 패턴의 위치에 영향을 적게 받을 수 있다. 즉, 통합 레이어는 입력 영상 혹은 이전 특징 맵에서의 노이즈나 왜곡과 같은 지역적 변화에 보다 강인한 특징을 추출할 수 있게 되고, 이러한 특징은 분류 성능에 중요한 역할을 할 수 있다. 또 다른 통합 레이어의 역할은, 깊은 구조상에서 상위의 학습 층으로 올라갈수록 더 넓은 영역의 특징을 반영할 수 있게 하는 것으로서, 특징 추출 레이어가 쌓이면서, 하위 레이어에서는 지역적인 특징을 반영하고 상위 레이어로 올라 갈수록 보다 추상적인 전체 영상의 특징을 반영하는 특징 맵을 생성할 수 있다.
이와 같이, 콘볼루션 레이어와 통합 레이어의 반복을 통해 최종적으로 추출된 특징은 다중 신경망(MLP: Multi-layer Perception)이나 서포트 벡터 머신(SVM: Support Vector Machine)과 같은 분류 모델이 완전 연결 레이어(Fully connected Layer)의 형태로 결합되어 분류 모델 학습 및 예측에 사용될 수 있다.
한편, DNN은 다양한 네트워크 형태로 구현될 수 있다. 다양한 종류의 DNN을 예로 들면, 컨볼루션 뉴럴 네트워크(Convolutional Neural Network; CNN), 회귀 뉴럴 네트워크(Recurrent Neural Network; RNN), 딥 빌리프 네트워크(Deep Belief Network; DBN), 제한된 볼츠만 기계(Restricted Boltzman Machine; RBM) 방식 등이 있으나, 이에 제한되지 않는다.
도 6a 내지 6f는 다양한 CNN의 구조를 나타내는 도면이다.
도 6a를 참조하면, 일 실시예에 따른 기본 CNN의 구조가 도시된다.
도 6a를 참조하면, CNN(620)의 입력 레이어를 통해 입력 데이터(610)가 입력되고 CNN(620)의 출력 레이어를 통해 출력 데이터(630)가 출력된다.
일 실시예에 따른 입력 데이터(610)는 복원 데이터이고, 출력 데이터(630)는 인루프 필터링된 복원 데이터일 수 있다.
CNN(620)의 입력 레이어와 출력 레이어 사이에는 다수의 히든 레이어가 포함될 수 있다. 히든 레이어를 이루는 각 레이어는 컨볼루션 레이어 및 서브 샘플링 레이어를 포함할 수 있다. 컨볼루션 레이어는 컨볼루션 필터를 이용하여 각 레이어에 입력된 영상 데이터에 컨볼루션 연산을 수행하고, 특징 맵을 생성한다. 이때, 특징 맵은 입력 데이터(610)의 다양한 특징이 표현된 영상 데이터를 의미한다. 서브 샘플링 레이어는 샘플링 또는 풀링(pooling)을 통해 특징 맵의 크기를 감소시킨다. CNN(620)의 출력 레이어는 특징 맵에 표현된 다양한 특징을 조합하여 영상 데이터의 클래스(class)를 분류한다. 이때, 출력 레이어는 완전 연결 레이어로 구성될 수 있다.
일 실시예에 따른 CNN의 구조(예컨대, 히든 레이어의 수, 각 레이어에서의 필터의 수와 크기 등)는 미리 결정되며, 각 레이어에서의 필터(특히, 컨볼루션 필터)의 가중치 매트릭스(weight matrix)는 이미 어느 클래스에 속할지 정답이 알려진 데이터들을 이용하여 적절한 값으로 산정된다. 이와 같이 이미 정답이 알려진 데이터들은 '학습 데이터'로서 사용된다. 이 때, 필터의 가중치 매트릭스를 결정하는 과정은 곧 '학습'을 의미한다.
예를 들어, CNN(620)의 구조에서, 각 레이어 당 필터의 개수는 64개일 수 있으며, 각 필터의 크기는 3x3일 수 있다. 또한, 예를 들어, CNN(620)의 구조에서 총 레이어의 개수는 10개로 이루어질 수 있다. 그러나, 상술한 실시예는 단지 예시를 위한 것에 불과하며, 히든 레이어의 수, 각 레이어에서의 필터의 수와 크기 등은 다양한 형태에 따라 변경 실시될 수 있다.
도 6b를 참조하면, 다른 실시예에 따른 CNN의 구조가 도시된다.
도 6b의 CNN(640)은 복수개의 평행(parallel)한 레이어들로 구성된 네트워크일 수 있다. 즉, 복수개의 컨볼루션 레이어와 풀링 레이어가 나란히 배열될 수 있다. CNN(640)에서 이전 레이어로부터 출력된 결과는 분리된 복수개의 평행 레이어들에 입력될 수 있다. 분리된 복수개의 평행 레이어들은 각각 상이한 필터를 적용할 수 있다. 예를 들어, 분리된 복수개의 평행 레이어들은 1x1 컨볼루션으로 차원을 줄인 후 3x3, 5x5 등의 컨볼루션을 적용할 수 있다. 다른 레이어에서는 3x3 맥스 풀링을 수행한 후 컨볼루션을 적용할 수도 있다. 1x1 컨볼루션만을 적용하는 레이어는 초기 정보를 유지하는 아이덴티티 루프로서의 기능을 할 수 있다. 컨볼루션을 수행한 복수개의 평행 레이어들은 최종적으로 병합(concatenation)되어 현재 레이어의 계산 결과로서 출력될 수 있다. CNN(640)에 따르면 레이어가 항상 순차적으로 스택(stack)될 필요가 없다. CNN(640)의 구조는 비순차적으로 최적화된 구조의 네트워크가 순차적인 구조의 네트워크보다 오류가 적을 수 있다는 점에 기반한다.
도 6c를 참조하면, 다른 실시예에 따른 CNN의 구조가 도시된다.
도 6c의 CNN(650)은 스킵 레이어(skip layer)의 개념을 사용한 네트워크이다. CNN(650)은 과거 레이어의 입력이 현재 레이어의 출력과 더해지는 구조를 갖는다. CNN(650)에서 과거 레이어와 현재 레이어의 출력이 더해진 결과는 다음 레이어의 입력이 될 수 있다. 일반적인 CNN 구조에서는 다수의 레이어에서 컨볼루션과 풀링 과정을 거치면서 결과값의 크기가 지나치게 작아질 수 있다. 이 경우, 결과값의 정교한(detail) 정보가 사라질 수 있다. CNN(650)은 컨볼루션과 풀링 과정에서 과거의 결과를 재활용함으로써 정교한 부분을 보강할 수 있는 효과가 있다.
도 6d를 참조하면, 다른 실시예에 따른 CNN의 구조가 도시된다.
도 6d의 CNN(660)은 도 6c의 CNN(650)과 마찬가지로 스킵 레이어의 개념을 사용한 네트워크이다. 다만, CNN(660)은 과거의 결과가 임의 위치의 레이어의 입력으로 더해질 수 있다는 점에서 CNN(650)에 비해 레이어들 사이의 관계가 조밀(dense)한 특징을 갖는다. 더 나아가, CNN(660)은 과거 레이어가 컨볼루션 연산을 통해 계산한 결과를 임의 위치의 레이어의 입력 자체로 사용할 수도 있다.
도 6e를 참조하면, 다른 실시예에 따른 CNN의 구조가 도시된다.
도 6e의 CNN(670)은 다층 해상도(multi-resolution)의 피라미드(pyramid) 구조를 사용한 네트워크이다. CNN(670)은 직전의 컨볼루션 레이어의 결과를 여러 단계의 피라미드로 나눌 수 있다. 예를 들어, 1단계에서는 해상도가 스케일링되지 않고, 2단계에는 해상도가 1/2 x 1/2로 스케일링되고, 3단계에서는 해상도가 1/4 x 1/4로 스케일링될 수 있다. 이렇게 얻어진 여러 단계의 결과는 병합(concatenation)되어 완전 연결 레이어(fully connected layer)의 입력으로 사용될 수 있다. 컨볼루션 레이어는 영상의 크기에 영향을 받지 않지만, 완전 연결 레이어(fully connected layer)는 입력 영상의 크기에 제한을 받기 때문에 일반적인 네트워크에서는 입력 영상의 크기가 고정이 될 수 밖에 없었다. 그러나, CNN(670)과 같이 여러 단계의 피라미드 레벨에서 출력되는 특징들을 완전 연결 레이어의 입력으로 사용하고, 피라미드의 출력을 영상의 크기에 관계 없이 사전에 미리 정하면 더 이상 영상의 크기에 제한을 받지 않을 수 있다.
도 6f를 참조하면, 다른 실시예에 따른 CNN의 구조가 도시된다.
도 6f의 CNN(680)은 비선형 함수(ReLu) 이전 또는 이후에 배치 정규화(batch normalization)을 수행하는 구조를 갖는 네트워크이다. 배치 정규화 레이어는 히든 레이어의 앞 단에 위치하며 입력들의 분포를 조절하는 역할을 한다. 또한, 배치 정규화 레이어는 네트워크 내에 흡수된 레이어이므로 역전파(back-propagation)를 통해 관련 변수(스케일, 시프트)를 최적화할 수 있다. 입력의 분포를 개선하는 방식은 각 레이어로 입력되는 데이터에 대하여 평균을 0, 분산을 1로 정규화를 하고, 스케일 변수(γ)를 곱하고, 시프트 변수(β)만큼 더해주는 방식일 수 있다. 이 때, 스케일과 시프트 변수는 학습을 통해 결정될 수 있다. CNN(680)은 컨볼루션 결과를 정규화함으로써 그래디언트 배니싱(gradient vanishing) 또는 그래디언트 익스플로딩(gradient exploding)과 같은 문제점을 방지할 수 있다. 또한, 배치 정규화를 통해 학습 시간이 단축될 수 있으며, 학습의 정확도 개선될 수 있다.
개시된 실시예에서는, 도 6a 내지 6f를 통해 상술한 다양한 구조의 CNN이 적용될 수 있음은 물론이며, 이들의 가능한 조합들 또는 기 공지된 학습 네트워크와의 조합도 적용될 수 있다. 따라서, 상술한 다양한 구조의 CNN은 단지 설명의 편의를 위한 예시에 불과하며, 본 실시예에서는 다양한 방식의 변경된 구조를 갖는 CNN이 사용될 수 있음에 유의하여야 한다.
도 4를 통해 전술한 바와 같이, DNN 필터 모델(400)의 DNN은 영상의 컨텐츠 타입 및 양자화 파라미터 별로 학습될 수 있다. 이하에서는, 컨텐츠 타입 및 양자화 파라미터 별로 학습된 DNN을 활용하는 방법에 대해 설명하기로 한다.
도 7은 일 실시예에 따른 DNN 필터 모델 후보들을 나타내는 도면이다.
도 7을 참조하면, DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736)이 도시된다.
일 실시예에 따른 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736)은 컨텐츠 타입(710, 720, 730) 별로 분류될 수 있다. 예를 들어, DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736)의 각각은, 미리 설정된 컨텐츠 타입에 대해 인루프 필터링을 수행하도록 학습된 것일 수 있다. 인루프 필터링의 종류, 필터링의 강도 등은 영상의 에러 특성에 따라 달라질 수 있다. 이 때, 영상의 에러 특성은 해당 영상의 컨텐츠가 어떤 타입(예를 들어, 컴퓨터 그래픽, 일반영상, 모션블러, 텍스쳐 등)인지 여부에 따라 상이할 수 있다. 부호화에 따른 압축률 및 주관적 화질 열화의 정도는 컨텐츠 타입(710, 720, 730)에 따라 상이할 수 있기 때문이다.
일반적으로, 컨텐츠 타입이 컴퓨터 그래픽, 일반 영상, 모션블러, 텍스쳐인 경우의 순으로 압축이 어려울 수 있다. 따라서, 컴퓨터 그래픽을 처리하기 위한 DNN 필터 모델의 네트워크 구조가 가장 단순하고, 텍스쳐를 처리하기 위한 DNN 필터 모델의 네트워크 구조가 가장 복잡할 수 있다. DNN 필터 모델의 네트워크 구조가 복잡해진다는 것은 네트워크를 구성하는 레이어의 깊이가 더 깊어지거나, 각 레이어마다 적용되는 마스크(mask)의 개수(즉, 채널)가 더 많아질 수 있음을 의미한다.
구체적으로, 부호화단에서는 영상의 컨텐츠 타입(710, 720, 730)에 따라 압축 강도 또는 양자화 파라미터 QP 값을 결정할 수 있다. 압축 강도 또는 QP 값을 크게 하면 발생되는 비트량이 낮아지지만 화질이 저하된다. 특히, 압축된 영상을 전송하는 경우에는 채널에서 전송 가능한 초당 비트량을 고려하여 압축 강도 또는 QP 값이 결정될 수 있다. 예를 들어, 전송 채널에서 지원 가능한 초당 비트양이 낮은 경우에는 상대적으로 높은 압축 강도 또는 QP 값을 사용하여 압축률을 높여야 한다.
또한, 인간의 시각 특성(human visual system)을 고려한 화질의 관점에서 PSNR과 같은 객관적 화질은 정확하다고 할 수 없기 때문에 컨텐츠 타입(710, 720, 730)에 따라 인간이 느끼는 화질이 상이할 수 있다. 실제로 인간의 눈은 다양한 특성을 갖고 있기 때문에 단순히 신호적인 관점에서의 에러량을 통해 측정된 화질과 실제로 느끼는 주관적인 화질은 다르다. 주관적 화질 관점에서 최적 QP 값을 결정하기 위한 율-왜곡 최적화 모델은 기준 화소의 주변 밝기에 대한 명도 대비를 모델링할 수 있다. 예를 들어, 동일한 압축 강도 또는 QP 값을 통해 영상을 압축하더라도, 해당 영상의 컨텐츠 타입(710, 720, 730)이 텍스쳐인 경우가 컴퓨터 그래픽인 경우보다 주관적 화질 열화의 정도가 클 수 있다.
개시된 실시예들은 컨텐츠 타입(710, 720, 730)에 따라 영상의 에러 특성이 상이할 수 있다는 점에 착안한다. 개시된 실시예들은, 컨텐츠 타입(710, 720, 730)에 따라 상이한 특성을 갖는 에러를 효과적으로 보상하기 위해 영상이 어떤 컨텐츠 타입(710, 720, 730)에 속하는지 여부를 나타내는 필터 정보를 이용할 수 있다.
일 실시예에 따른 인루프 필터링부(150, 250)는 다양한 컨텐츠 타입(710, 720, 730) 별로 미리 학습된 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736)을 준비해둘 수 있다. 예를 들어, DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736)은 미리 설정되어 영상 부호화 장치(100) 또는 영상 복호화 장치(200) 내에 저장되어 있을 수 있다. 일 실시예에 따른 인루프 필터링부(150, 250)는, 준비된 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736) 중에서 현재 영상의 컨텐츠 타입(710, 720, 730)에 적합한 DNN 필터 모델을 선택하고, 선택된 DNN 필터 모델을 이용하여 인루프 필터링을 수행할 수 있다. 일 실시예에 따른 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736)은 컨텐츠 타입(710, 720, 730) 별로, 인루프 필터링된 복원 데이터 및 원 데이터 사이의 오차를 최소화하도록 학습된 구조를 가질 수 있다.
일 실시예에 따른 인루프 필터링부(150, 250)는 컨텐츠 타입(710, 720, 730)에 대한 정보를 포함하는 필터 정보를 시그널링할 수 있다. 인루프 필터링부(150, 250)는 컨텐츠 타입(710, 720, 730) 별로 미리 설정된 컨텐츠 타입(710, 720, 730) 별 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736) 중에서 필터 정보가 나타내는 컨텐츠 타입(710, 720, 730)에 대응하는 DNN 필터 세트를 결정할 수 있다.
예를 들어, 컨텐츠 타입(710)의 경우, 인루프 필터링부(150, 250)는 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736) 중에서 DNN 필터 모델(712, 714, 716)을 선택할 수 있다. 한편, 인루프 필터링부(150, 250)는 DNN 필터 모델(712, 714, 716) 중에서 QP 값에 따라, 낮은 QP 값에 적용되는 DNN 필터 세트(712), 중간 QP 값에 적용되는 DNN 필터 세트(714) 또는 높은 QP 값에 적용되는 DNN 필터 모델(716) 중 하나를 선택할 수 있다. DNN 필터 모델을 QP 값 별로 분류하는 실시예에 대해 이하 설명하기로 한다.
일 실시예에 따른 인루프 필터링부(150, 250)는, QP 값에 따라 영상의 에러 특성이 상이할 수 있다는 점을 고려한다.
인루프 필터링의 종류, 필터링의 강도 등은 해당 영상을 압축하는데 사용한 QP 값에 따라 상이할 수 있다. 따라서, 일 실시예에 따른 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736)은 QP 값에 따라 분류될 수도 있다. 일 실시예에 따른 인루프 필터링부(150, 250)는 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736) 중에서 현재 영상의 QP 값에 적합한 DNN 필터 모델을 선택하고, 선택된 DNN 필터 모델을 이용하여 인루프 필터링을 수행할 수 있다.
일 실시예에 따른 필터 정보는 컨텐츠 타입(710, 720, 730)에 대한 정보 외에도 QP 값을 나타내는 정보도 포함할 수 있다. 인루프 필터링부(150, 250)는 양자화 파라미터 별로 미리 설정된 양자화 파라미터 별 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736) 중에서 필터 정보가 나타내는 양자화 파라미터에 대응하는 DNN 필터 모델을 결정할 수 있다. 일 실시예에 따른 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736)은 양자화 파라미터 별로, 인루프 필터링된 복원 데이터 및 원 데이터 사이의 오차를 최소화하도록 학습된 구조를 가질 수 있다.
예를 들어, 낮은 QP 값의 경우, 인루프 필터링부(150, 250)는 DNN 필터 모델 후보들(712, 714, 716, 722, 724, 726, 732, 734, 736) 중에서 DNN 필터 모델(712, 722, 732)을 선택할 수 있다. 이 때, 만약 필터 정보가 컨텐츠 타입(710)을 나타내는 경우라면, 인루프 필터링부(150, 250)는 DNN 필터 모델(712, 722, 732) 중에서 DNN 필터 모델(712)을 선택하고, 선택된 DNN 필터 모델(712)을 이용하여 인루프 필터링을 수행할 수 있다.
일 실시예에 따른 필터 정보는 영상 부호화 장치(100)로부터 결정될 수 있다. 일 실시예에 따른 영상 부호화 장치(100)는 입력 영상의 특성을 판별하여 컨텐츠 타입(710, 720, 730) 및 양자화 파라미터를 결정할 수 있다. 일 실시예에 따른 영상 부호화 장치(100)는 컨텐츠 타입(710, 720, 730)에 대한 정보 및 양자화 파라미터에 대한 정보를 포함하는 필터 정보를 부호화한 비트스트림을 생성할 수 있다.
일 실시예에 따른 영상 복호화 장치(200)는 비트스트림으로부터 필터 정보를 획득할 수 있다. 일 실시예에 따른 영상 복호화 장치(200)는, 필터 정보에 포함된 컨텐츠 타입(710, 720, 730)에 대한 정보 및 양자화 파라미터에 대한 정보에 기초하여 인루프 필터링에 적용할 DNN 필터 모델을 결정할 수 있다.
일 실시예에 따른 필터 정보는 시퀀스 파라미터 세트(sequence parameter set), 픽쳐 파라미터 세트(picture parameter set), 비디오 파라미터 세트(video parameter set), 슬라이스 헤더(slice header), 슬라이스 세그먼트 헤더(slice segment header) 등에 포함되어 시그널링될 수 있다.
도 8은 일 실시예에 따라 하나 이상의 참조 영상을 이용하여 DNN 필터 모델에 기반한 인루프 필터링을 수행하는 방법을 나타내는 도면이다.
도 8을 참조하면, 복원 픽처 버퍼(810)와 DNN 필터 모델(820)이 도시된다.
일 실시예에 따른 DNN 필터 모델(820)은 인루프 필터링부(150, 250)에 대응하는 것일 수 있다. 일 실시예에 따른 복원 픽처 버퍼(810)에는 현재 영상 이전에 복원된 영상(예를 들어, 과거 시점의 영상 또는 미래 시점의 영상)들이 화면 간 예측의 참조로 이용되기 위해 저장되어 있을 수 있다.
일 실시예에 따르면, DNN 필터 모델(820)은 복원 픽처 버퍼(810)에 저장된 하나 이상의 참조 영상을 활용하여 현재 프레임의 예측 정확도를 향상시킬 수 있다. 일 실시예에 따른 DNN 필터 모델(820)의 입력으로는 복원 픽처 버퍼(810)에 저장된 하나 이상의 참조 영상이 입력될 수 있다. 일 실시예에 DNN 필터 모델(820)은 복원 데이터의 인루프 필터링을 위해 참조되는 하나 이상의 참조 영상을 결정하고, 하나 이상의 참조 영상을 참조하여 복원 데이터의 에러를 보상할 수 있다.
일 실시예에 따른 DNN 필터 모델(820)은 인루프 필터링된 복원 데이터 및 원 데이터 사이의 오차를 최소화하도록 학습된 구조를 가질 수 있다. 학습된 DNN 필터 모델(820)은 입력된 하나 이상의 참조 영상의 패턴을 분석하여 그 특징을 찾아내어 이용함으로써 현재 영상의 복원된 데이터를 최적으로 필터링할 수 있는 일반화 능력을 갖는다. 따라서, 일 실시예에 따른 DNN 필터 모델(820)은 참조 영상을 통해 현재 영상을 예측하기 위한 예측 정보(예를 들어, 움직임 벡터, 예측 방향, 참조 픽처 인덱스 등과 같은)의 시그널링을 필요로 하지 않는다.
일 실시예에 따른 DNN 필터 모델(820)의 네트워크 구조는 컨볼루션 풀링 레이어, 히든 레이어 및 완전 연결 레이어를 포함하는 레이어들의 세트로 구현될 수 있다. 예를 들어, 네트워크의 전체적인 구조는 컨볼루션 풀링 레이어에 히든 레이어가 이어지고, 히든 레이어에 완전 연결 레이어가 이어지는 형태로 이루어질 수 있다.
일 실시예에 따른 DNN 필터 모델(820)의 네트워크 구조는 도 5를 통해 전술한 바와 같으므로, DNN의 자세한 구조에 대한 설명은 생략하도록 한다.
도 9는 일 실시예에 영상 부호화 장치(900)의 개략적인 블록도를 도시한다.
일 실시예에 따른 영상 부호화 장치(900)는 도 1의 영상 부호화 장치(100)에 대응할 수 있다.
도 9를 참조하면, 영상 부호화 장치(900)는 부호화부(910) 및 전송부(920)를 포함한다.
일 실시예에 따른 부호화부(910)는 부호화 단위의 최대 크기에 따라, 현재 픽처의 영상 데이터를 최대 부호화 단위로 분할할 수 있다. 각각의 최대 부호화 단위는 블록 형태 및 분할 형태별로 분할되는 블록(즉, 부호화 단위)들을 포함할 수 있다. 일 실시예에 따른 최대 부호화 단위는 최대 부호화 단위에 포함된 공간 영역(spatial domain)의 영상 데이터가 블록 형태 및 분할 형태에 따라 계층적으로 분류될 수 있다. 부호화 단위의 블록 형태는 정사각형 또는 직사각형일 수 있으며, 임의의 기하학적 형태일 수 있으므로, 일정한 크기의 데이터 단위로 제한되는 것은 아니다. 하나 이상의 블록의 블록 형태 및 분할 형태는 R-D 코스트 계산에 기초해 결정될 수 있다.
일 실시예에 따른 부호화부(910)는 입력 영상의 특성을 판별하여 컨텐츠 타입 및 양자화 파라미터를 결정할 수 있다. 일 실시예에 따른 부호화부(910)는 컨텐츠 타입에 대한 정보 및 양자화 파라미터에 대한 정보를 포함하는 필터 정보를 부호화한 비트스트림을 생성할 수 있다.
일 실시예에 따른 부호화부(910)는 인루프 필터링된 복원 데이터에 기초하여 입력 영상에 대한 예측을 수행하여 예측 데이터를 생성할 수 있다. 일 실시예에 따른 부호화부(910)는 입력 영상의 데이터 및 예측 데이터를 이용하여 레지듀얼 데이터를 생성할 수 있다. 일 실시예에 따른 부호화부(910)는 레지듀얼 데이터를 변환 및 양자화하여 양자화된 변환 계수를 생성할 수 있다. 이 때, 양자화된 변환 계수는 블록 별로 생성된 것일 수 있다. 일 실시예에 따른 부호화부(910)는 양자화된 변환 계수를 엔트로피 부호화한 비트스트림을 출력할 수 있다.
일 실시예에 따라, 인루프 필터링된 복원 데이터는 부호화된 레지듀얼 데이터로부터 복원된 복원 데이터에 대해 DNN 필터 모델에 기반한 인루프 필터링이 수행됨으로써 생성된 것일 수 있다. 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링의 구체적인 과정에 대해서는 도 4 내지 도 8을 통해 전술하였으므로, 자세한 설명은 생략하기로 한다.
일 실시예에 따른 전송부(920)는, 부호화부(910)에서 출력된 비트스트림을 영상 복호화 장치(200)로 전송한다.
도 10은 일 실시예에 따른 영상 복호화 장치(1000)의 개략적인 블록도를 도시한다.
일 실시예에 따른 영상 복호화 장치(1000)는 도 2의 영상 복호화 장치(200)에 대응할 수 있다.
도 10을 참조하면, 영상 복호화 장치(1000)는 수신부(1010) 및 복호화부(1020)를 포함한다.
일 실시예에 따른 수신부(1010)는 부호화된 비트스트림을 수신한다.
부호화된 비트스트림은 다수의 NAL(Network Abstraction Layer) 단위들로 구성된다. NAL 단위는 부호화된 슬라이스와 같은 부호화된 샘플 데이터 뿐만 아니라, 파라미터 세트 데이터, 슬라이스 헤더 데이터 또는 보충 향상 정보 데이터(supplemental enhancement information data)와 같은 하이 레벨 신택스 메타데이터를 포함할 수 있다.
파라미터 세트는, 다수의 비트스트림 레이어에 적용될 수도 있는 필수 신택스 엘리먼트(예를 들면, 비디오 파라미터 세트(VPS)), 하나의 레이어 내의 부호화된 비디오 시퀀스에 적용될 수도 있는 필수 신택스 엘리먼트(예를 들면, 시퀀스 파라미터 세트(SPS)), 또는 하나의 부호화된 비디오 시퀀스 내의 다수의 픽쳐에 적용될 수도 있는 필수 신택스 엘리먼트(예를 들면, 픽쳐 파라미터 세트(PPS))를 포함하는 하이 레벨 신택스 구조일 수 있다. 파라미터 세트는 비트스트림의 부호화된 픽처와 함께 전송되거나, 신뢰 가능한 채널, 하드 코딩, 대역외 송신 등을 포함하는 다른 수단을 통해 송신될 수 있다.
슬라이스 헤더는 슬라이스 또는 픽처 타입들에 대한 픽처 관련 정보를 포함하는 하이 레벨 신택스 구조일 수 있다.
SEI 메시지는, 복호화 프로세스를 위해 필수적이지 않을 수도 있지만, 픽처 출력 타이밍, 디스플레이, 손실 검출 및 은닉과 같은 다양한 다른 목적들을 위하여 이용될 수 있는 정보를 반송할 수 있다.
일 실시예에 따라, 부호화된 비트스트림에 포함되는 파라미터 세트에는 DNN에 기반한 인루프 필터링의 수행을 위한 부가 정보가 포함될 수 있다. 일 실시예에 따른 부가 정보는 DNN 필터 모델의 구조에 대한 정보(예를 들어, 필터 세트, 노드 개수에 대한 정보 등), 복원 데이터에 대한 필터 정보(예를 들어, 부호화된 영상의 에러 특성에 관한 정보, 부호화된 영상의 컨텐츠 타입, 양자화 파라미터에 대한 정보 등) 등을 포함할 수 있다. 예를 들어, 부가 정보는 비트스트림 내의 비디오 파라미터 세트, 시퀀스 파라미터 세트, 픽쳐 파라미터 세트 등을 통해 시그널링될 수 있다.일 실시예에 따른 복호화부(1020)는 비트스트림으로부터 분할 정보를 획득하여 공간 영역의 영상 데이터를 블록 형태 및 분할 형태에 따라 계층적으로 분할할 수 있다. 한편, 복호화에 이용되는 블록들이 일정한 형태 및 크기를 가질 경우, 복호화부(1020)는 분할 정보를 이용하지 않고 영상 데이터를 분할할 수 있다.
일 실시예에 따라, 복호화부(1020)는 비트스트림을 엔트로피 복호화하여 획득한 양자화된 변환계수를 역양자화 및 역변환하여 각 블록의 레지듀얼 데이터를 획득한다. 그 후, 복호화부(1020)는 각 블록의 레지듀얼 데이터와 예측부(1530)에서 생성된 각 블록의 예측 데이터를 이용하여 영상을 복원한다.
일 실시예에 따라, 복호화부(1020)는 영상을 복원함으로써 생성한 복원 데이터에 대해 인루프 필터링을 수행한다. 이 때, 복호화부(1020)가 수행하는 인루프 필터링 동작은 DNN 필터 모델에 기반한 것일 수 있다.
일 실시예에 따라, 복호화부(1020)는 비트스트림으로부터 복원 데이터에 대한 필터 정보를 획득할 수 있다. 복호화부(1020)는 필터 정보에 기초하여, 미리 설정된 인루프 필터링에 대한 DNN 필터 모델 후보들 중 복원 데이터의 에러를 보상하기 위한 DNN 필터 모델을 선택한다. 복호화부(1020)는 선택한 DNN 필터 모델을 이용하여 복원 데이터에 대하여 DNN 필터 모델에 기반한 인루프 필터링을 수행할 수 있다.
한편, 복원 데이터에 대한 필터 정보는 비트스트림을 통해 전달될 수도 있으나, 영상 부호화 장치(100)와 영상 복호화 장치(200) 간에 미리 공유될 수도 있다. 또한, 복원 데이터에 대한 필터 정보는 통신이 가능한 별도 서버를 통해 공유될 수도 있다.
일 실시예에 따라, 복호화부(1020)는 원본 데이터와 필터링된 복원 데이터 사이의 오차를 최소화한 데이터를 생성하도록 학습된 DNN에 기반하여 인루프 필터링을 수행할 수 있다. 이 경우, 도 3을 통해 전술한 디블록킹 필터링에 대한 정보, SAO 파라미터 및 적응적 루프 필터링에 대한 정보의 시그널링이 불필요하다. 학습된 DNN 필터 모델은 입력 패턴을 분석하여 그 특징을 찾아내어 최적의 필터링을 수행할 수 있는 일반화 능력을 갖기 때문이다. 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링의 구체적인 과정에 대해서는 도 4 내지 도 8을 통해 전술하였으므로, 자세한 설명은 생략하기로 한다.
도 11은 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링 과정을 포함하는 영상 부호화 방법을 나타낸 플로우 차트이다.
단계 S1110에서, 영상 부호화 장치(100)는 입력 영상의 컨텐츠 타입을 판별한다.
단계 S1120에서, 영상 부호화 장치(100)는 컨텐츠 타입에 기초하여, 하나 이상의 컴퓨터를 이용하여 인루프 필터링을 수행하도록 학습된 DNN 필터 모델을 결정한다.
단계 S1130에서, 영상 부호화 장치(100)는 부호화된 레지듀얼 데이터로부터 복원된 입력 영상의 복원 데이터를, 결정된 DNN 필터 모델에 적용하여 인루프 필터링된 데이터를 생성한다.
단계 S1140에서, 영상 부호화 장치(100)는 인루프 필터링된 데이터에 기초하여 입력 영상을 예측한 예측 데이터를 생성하고, 입력 영상 및 예측 데이터를 이용하여 레지듀얼 데이터를 생성한다.
단계 S1150에서, 영상 부호화 장치(100)는 컨텐츠 타입에 관한 정보 및 레지듀얼 데이터를 부호화한 비트스트림을 생성한다.
단계 S1160에서 생성된 비트스트림을 전송한다.
도 12는 일 실시예에 따른 DNN 필터 모델에 기반한 인루프 필터링 과정을 포함하는 영상 복호화 방법을 나타낸 플로우 차트이다.
단계 S1210에서, 영상 복호화 장치(200)는 부호화된 영상의 비트스트림을 수신한다.
단계 S1220에서, 영상 복호화 장치(200)는 부호화된 영상을 복원한 복원 데이터를 생성한다.
단계 S1230에서, 영상 복호화 장치(200)는 비트스트림으로부터 부호화된 영상의 컨텐츠 타입에 관한 정보를 획득한다.
단계 S1240에서, 영상 복호화 장치(200)는 컨텐츠 타입에 관한 정보에 기초하여, 하나 이상의 컴퓨터를 이용하여 인루프 필터링을 수행하도록 학습된 DNN 필터 모델을 결정한다.
단계 S1250에서, 영상 복호화 장치(200)는 복원 데이터를 결정된 DNN 필터 모델에 적용하여 인루프 필터링을 수행한다.
이하, 도 13 내지 도 26을 참조하여 일 실시예에 따른 영상의 데이터 단위를 결정하는 방법이 상술된다. 도 13 내지 도 26에서 설명되는 부호화 단위에 대한 분할 방법은 변환의 기초가 되는 변환 단위의 분할 방법에도 동일하게 적용될 수 있다.
도 13은 일 실시예에 따라 영상 복호화 장치(200)가 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보를 이용하여 부호화 단위의 형태를 결정할 수 있고, 분할 형태 정보를 이용하여 부호화 단위가 어떤 형태로 분할되는지를 결정할 수 있다. 즉, 영상 복호화 장치(200)가 이용하는 블록 형태 정보가 어떤 블록 형태를 나타내는지에 따라 분할 형태 정보가 나타내는 부호화 단위의 분할 방법이 결정될 수 있다.
일 실시예에 따라, 영상 복호화 장치(200)는 현재 부호화 단위가 정사각형 형태임을 나타내는 블록 형태 정보를 이용할 수 있다. 예를 들어 영상 복호화 장치(200)는 분할 형태 정보에 따라 정사각형의 부호화 단위를 분할하지 않을지, 수직으로 분할할지, 수평으로 분할할지, 4개의 부호화 단위로 분할할지 등을 결정할 수 있다. 도 13을 참조하면, 현재 부호화 단위(1300)의 블록 형태 정보가 정사각형의 형태를 나타내는 경우, 영상 복호화 장치(200)는 분할되지 않음을 나타내는 분할 형태 정보에 따라 현재 부호화 단위(1300)와 동일한 크기를 가지는 부호화 단위(1310a)를 분할하지 않거나, 소정의 분할방법을 나타내는 분할 형태 정보에 기초하여 분할된 부호화 단위(1310b, 1310c, 1310d 등)를 결정할 수 있다.
도 13을 참조하면 영상 복호화 장치(200)는 일 실시예에 따라 수직방향으로 분할됨을 나타내는 분할 형태 정보에 기초하여 현재 부호화 단위(1300)를 수직방향으로 분할한 두 개의 부호화 단위(1310b)를 결정할 수 있다. 영상 복호화 장치(200)는 수평방향으로 분할됨을 나타내는 분할 형태 정보에 기초하여 현재 부호화 단위(1300)를 수평방향으로 분할한 두 개의 부호화 단위(1310c)를 결정할 수 있다. 영상 복호화 장치(200)는 수직방향 및 수평방향으로 분할됨을 나타내는 분할 형태 정보에 기초하여 현재 부호화 단위(1300)를 수직방향 및 수평방향으로 분할한 네 개의 부호화 단위(1310d)를 결정할 수 있다. 다만 정사각형의 부호화 단위가 분할될 수 있는 분할 형태는 상술한 형태로 한정하여 해석되어서는 안되고, 분할 형태 정보가 나타낼 수 있는 다양한 형태가 포함될 수 있다. 정사각형의 부호화 단위가 분할되는 소정의 분할 형태들은 이하에서 다양한 실시예를 통해 구체적으로 설명하도록 한다.
도 14는 일 실시예에 따라 영상 복호화 장치(200)가 비-정사각형의 형태인 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위가 비-정사각형 형태임을 나타내는 블록 형태 정보를 이용할 수 있다. 영상 복호화 장치(200)는 분할 형태 정보에 따라 비-정사각형의 현재 부호화 단위를 분할하지 않을지 소정의 방법으로 분할할지 여부를 결정할 수 있다. 도 14를 참조하면, 현재 부호화 단위(1400 또는 1450)의 블록 형태 정보가 비-정사각형의 형태를 나타내는 경우, 영상 복호화 장치(200)는 분할되지 않음을 나타내는 분할 형태 정보에 따라 현재 부호화 단위(1400 또는 1450)와 동일한 크기를 가지는 부호화 단위(1410 또는 1460)를 분할하지 않거나, 소정의 분할방법을 나타내는 분할 형태 정보에 따라 기초하여 분할된 부호화 단위(1420a, 1420b, 1430a, 1430b, 1430c, 1470a, 1470b, 1480a, 1480b, 1480c)를 결정할 수 있다. 비-정사각형의 부호화 단위가 분할되는 소정의 분할 방법은 이하에서 다양한 실시예를 통해 구체적으로 설명하도록 한다.
일 실시예에 따라 영상 복호화 장치(200)는 분할 형태 정보를 이용하여 부호화 단위가 분할되는 형태를 결정할 수 있고, 이 경우 분할 형태 정보는 부호화 단위가 분할되어 생성되는 적어도 하나의 부호화 단위의 개수를 나타낼 수 있다. 도 14를 참조하면 분할 형태 정보가 두 개의 부호화 단위로 현재 부호화 단위(1400 또는 1450)가 분할되는 것을 나타내는 경우, 영상 복호화 장치(200)는 분할 형태 정보에 기초하여 현재 부호화 단위(1400 또는 1450)를 분할하여 현재 부호화 단위에 포함되는 두 개의 부호화 단위(1420a, 11720b, 또는 1470a, 1470b)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)가 분할 형태 정보에 기초하여 비-정사각형의 형태의 현재 부호화 단위(1400 또는 1450)를 분할하는 경우, 비-정사각형의 현재 부호화 단위(1400 또는 1450)의 긴 변의 위치를 고려하여 현재 부호화 단위를 분할할 수 있다. 예를 들면, 영상 복호화 장치(200)는 현재 부호화 단위(1400 또는 1450)의 형태를 고려하여 현재 부호화 단위(1400 또는 1450)의 긴 변을 분할하는 방향으로 현재 부호화 단위(1400 또는 1450)를 분할하여 복수개의 부호화 단위를 결정할 수 있다.
일 실시예에 따라, 분할 형태 정보가 홀수개의 블록으로 부호화 단위를 분할하는 것을 나타내는 경우, 영상 복호화 장치(200)는 현재 부호화 단위(1400 또는 1450)에 포함되는 홀수개의 부호화 단위를 결정할 수 있다. 예를 들면, 분할 형태 정보가 3개의 부호화 단위로 현재 부호화 단위(1400 또는 1450)를 분할하는 것을 나타내는 경우, 영상 복호화 장치(200)는 현재 부호화 단위(1400 또는 1450)를 3개의 부호화 단위(1430a, 1430b, 1430c, 1480a, 1480b, 1480c)로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위(1400 또는 1450)에 포함되는 홀수개의 부호화 단위를 결정할 수 있으며, 결정된 부호화 단위들의 크기 모두가 동일하지는 않을 수 있다. 예를 들면, 결정된 홀수개의 부호화 단위(1430a, 1430b, 1430c, 1480a, 1480b, 1480c) 중 소정의 부호화 단위(1430b 또는 1480b)의 크기는 다른 부호화 단위(1430a, 1430c, 1480a, 1480c)들과는 다른 크기를 가질 수도 있다. 즉, 현재 부호화 단위(1400 또는 1450)가 분할되어 결정될 수 있는 부호화 단위는 복수의 종류의 크기를 가질 수 있고, 경우에 따라서는 홀수개의 부호화 단위(1430a, 1430b, 1430c, 1480a, 1480b, 1480c)가 각각 서로 다른 크기를 가질 수도 있다.
일 실시예에 따라 분할 형태 정보가 홀수개의 블록으로 부호화 단위가 분할되는 것을 나타내는 경우, 영상 복호화 장치(200)는 현재 부호화 단위(1400 또는 1450)에 포함되는 홀수개의 부호화 단위를 결정할 수 있고, 나아가 영상 복호화 장치(200)는 분할하여 생성되는 홀수개의 부호화 단위들 중 적어도 하나의 부호화 단위에 대하여 소정의 제한을 둘 수 있다. 도 14를 참조하면 영상 복호화 장치(200)는 현재 부호화 단위(1400 또는 1450)가 분할되어 생성된 3개의 부호화 단위(1430a, 1430b, 1430c, 1480a, 1480b, 1480c)들 중 중앙에 위치하는 부호화 단위(1430b, 1480b)에 대한 복호화 과정을 다른 부호화 단위(1430a, 1430c, 1480a, 1480c)와 다르게 할 수 있다. 예를 들면, 영상 복호화 장치(200)는 중앙에 위치하는 부호화 단위(1430b, 1480b)에 대하여는 다른 부호화 단위(1430a, 1430c, 1480a, 1480c)와 달리 더 이상 분할되지 않도록 제한하거나, 소정의 횟수만큼만 분할되도록 제한할 수 있다.
도 15는 일 실시예에 따라 영상 복호화 장치(200)가 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 부호화 단위를 분할하는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 정사각형 형태의 제1 부호화 단위(1500)를 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다. 일 실시예에 따라 분할 형태 정보가 수평 방향으로 제1 부호화 단위(1500)를 분할하는 것을 나타내는 경우, 영상 복호화 장치(200)는 제1 부호화 단위(1500)를 수평 방향으로 분할하여 제2 부호화 단위(1510)를 결정할 수 있다. 일 실시예에 따라 이용되는 제1 부호화 단위, 제2 부호화 단위, 제3 부호화 단위는 부호화 단위 간의 분할 전후 관계를 이해하기 위해 이용된 용어이다. 예를 들면, 제1 부호화 단위를 분할하면 제2 부호화 단위가 결정될 수 있고, 제2 부호화 단위가 분할되면 제3 부호화 단위가 결정될 수 있다. 이하에서는 이용되는 제1 부호화 단위, 제2 부호화 단위 및 제3 부호화 단위의 관계는 상술한 특징에 따르는 것으로 이해될 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 결정된 제2 부호화 단위(1510)를 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다. 도 15를 참조하면 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(1500)를 분할하여 결정된 비-정사각형의 형태의 제2 부호화 단위(1510)를 적어도 하나의 제3 부호화 단위(1520a, 1520b, 1520c, 1520d 등)로 분할하거나 제2 부호화 단위(1510)를 분할하지 않을 수 있다. 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 획득할 수 있고 영상 복호화 장치(200)는 획득한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(1500)를 분할하여 다양한 형태의 복수개의 제2 부호화 단위(예를 들면, 1510)를 분할할 수 있으며, 제2 부호화 단위(1510)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(1500)가 분할된 방식에 따라 분할될 수 있다. 일 실시예에 따라, 제1 부호화 단위(1500)가 제1 부호화 단위(1500)에 대한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제2 부호화 단위(1510)로 분할된 경우, 제2 부호화 단위(1510) 역시 제2 부호화 단위(1510)에 대한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제3 부호화 단위(예를 들면, 1520a, 1520b, 1520c, 1520d 등)으로 분할될 수 있다. 즉, 부호화 단위는 부호화 단위 각각에 관련된 분할 형태 정보 및 블록 형태 정보 중 적어도 하나에 기초하여 재귀적으로 분할될 수 있다. 따라서 비-정사각형 형태의 부호화 단위에서 정사각형의 부호화 단위가 결정될 수 있고, 이러한 정사각형 형태의 부호화 단위가 재귀적으로 분할되어 비-정사각형 형태의 부호화 단위가 결정될 수도 있다. 도 15을 참조하면, 비-정사각형 형태의 제2 부호화 단위(1510)가 분할되어 결정되는 홀수개의 제3 부호화 단위(1520b, 1520c, 1520d) 중 소정의 부호화 단위(예를 들면, 가운데에 위치하는 부호화 단위 또는 정사각형 형태의 부호화 단위)는 재귀적으로 분할될 수 있다. 일 실시예에 따라 홀수개의 제3 부호화 단위(1520b, 1520c, 1520d) 중 하나인 정사각형 형태의 제3 부호화 단위(1520c)는 수평 방향으로 분할되어 복수개의 제4 부호화 단위로 분할될 수 있다.
부호화 단위의 재귀적 분할에 이용될 수 있는 방법에 대하여는 다양한 실시예를 통해 후술하도록 한다.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제3 부호화 단위(1520a, 1520b, 1520c, 1520d 등) 각각을 부호화 단위들로 분할하거나 제2 부호화 단위(1510)를 분할하지 않는 것으로 결정할 수 있다. 영상 복호화 장치(200)는 일 실시예에 따라 비-정사각형 형태의 제2 부호화 단위(1510)를 홀수개의 제3 부호화 단위(1520b, 1520c, 1520d)로 분할할 수 있다. 영상 복호화 장치(200)는 홀수개의 제3 부호화 단위(1520b, 1520c, 1520d) 중 소정의 제3 부호화 단위에 대하여 소정의 제한을 둘 수 있다. 예를 들면 영상 복호화 장치(200)는 홀수개의 제3 부호화 단위(1520b, 1520c, 1520d) 중 가운데에 위치하는 부호화 단위(1520c)에 대하여는 더 이상 분할되지 않는 것으로 제한하거나 또는 설정 가능한 횟수로 분할되어야 하는 것으로 제한할 수 있다. 도 15를 참조하면, 영상 복호화 장치(200)는 비-정사각형 형태의 제2 부호화 단위(1510)에 포함되는 홀수개의 제3 부호화 단위(1520b, 1520c, 1520d)들 중 가운데에 위치하는 부호화 단위(1520c)는 더 이상 분할되지 않거나, 소정의 분할 형태로 분할(예를 들면 4개의 부호화 단위로만 분할하거나 제2 부호화 단위(1510)가 분할된 형태에 대응하는 형태로 분할)되는 것으로 제한하거나, 소정의 횟수로만 분할(예를 들면 n회만 분할, n>0)하는 것으로 제한할 수 있다. 다만 가운데에 위치한 부호화 단위(1520c)에 대한 상기 제한은 단순한 실시예들에 불과하므로 상술한 실시예들로 제한되어 해석되어서는 안되고, 가운데에 위치한 부호화 단위(1520c)가 다른 부호화 단위(1520b, 1520d)와 다르게 복호화 될 수 있는 다양한 제한들을 포함하는 것으로 해석되어야 한다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위를 분할하기 위해 이용되는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 현재 부호화 단위 내의 소정의 위치에서 획득할 수 있다.
도 16은 일 실시예에 따라 영상 복호화 장치(200)가 홀수개의 부호화 단위들 중 소정의 부호화 단위를 결정하기 위한 방법을 도시한다. 도 16을 참조하면, 현재 부호화 단위(1600)의 블록 형태 정보 및 분할 형태 정보 중 적어도 하나는 현재 부호화 단위(1600)에 포함되는 복수개의 샘플 중 소정 위치의 샘플(예를 들면, 가운데에 위치하는 샘플(1640))에서 획득될 수 있다. 다만 이러한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나가 획득될 수 있는 현재 부호화 단위(1600) 내의 소정 위치가 도 16에서 도시하는 가운데 위치로 한정하여 해석되어서는 안되고, 소정 위치에는 현재 부호화 단위(1600)내에 포함될 수 있는 다양한 위치(예를 들면, 최상단, 최하단, 좌측, 우측, 좌측상단, 좌측하단, 우측상단 또는 우측하단 등)가 포함될 수 있는 것으로 해석되어야 한다. 영상 복호화 장치(200)는 소정 위치로부터 획득되는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 획득하여 현재 부호화 단위를 다양한 형태 및 크기의 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위가 소정의 개수의 부호화 단위들로 분할된 경우 그 중 하나의 부호화 단위를 선택할 수 있다. 복수개의 부호화 단위들 중 하나를 선택하기 위한 방법은 다양할 수 있으며, 이러한 방법들에 대한 설명은 이하의 다양한 실시예를 통해 후술하도록 한다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위를 복수개의 부호화 단위들로 분할하고, 소정 위치의 부호화 단위를 결정할 수 있다.
도 16은 일 실시예에 따라 영상 복호화 장치(200)가 홀수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위한 방법을 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 홀수개의 부호화 단위들 중 가운데에 위치하는 부호화 단위를 결정하기 위하여 홀수개의 부호화 단위들 각각의 위치를 나타내는 정보를 이용할 수 있다. 도 16을 참조하면, 영상 복호화 장치(200)는 현재 부호화 단위(1600)를 분할하여 홀수개의 부호화 단위들(1620a, 1620b, 1620c)을 결정할 수 있다. 영상 복호화 장치(200)는 홀수개의 부호화 단위들(1620a, 1620b, 1620c)의 위치에 대한 정보를 이용하여 가운데 부호화 단위(1620b)를 결정할 수 있다. 예를 들면 영상 복호화 장치(200)는 부호화 단위들(1620a, 1620b, 1620c)에 포함되는 소정의 샘플의 위치를 나타내는 정보에 기초하여 부호화 단위들(1620a, 1620b, 1620c)의 위치를 결정함으로써 가운데에 위치하는 부호화 단위(1620b)를 결정할 수 있다. 구체적으로, 영상 복호화 장치(200)는 부호화 단위들(1620a, 1620b, 1620c)의 좌측 상단의 샘플(1630a, 1630b, 1630c)의 위치를 나타내는 정보에 기초하여 부호화 단위(1620a, 1620b, 1620c)의 위치를 결정함으로써 가운데에 위치하는 부호화 단위(1620b)를 결정할 수 있다.
일 실시예에 따라 부호화 단위(1620a, 1620b, 1620c)에 각각 포함되는 좌측 상단의 샘플(1630a, 1630b, 1630c)의 위치를 나타내는 정보는 부호화 단위(1620a, 1620b, 1620c)의 픽쳐 내에서의 위치 또는 좌표에 대한 정보를 포함할 수 있다. 일 실시예에 따라 부호화 단위(1620a, 1620b, 1620c)에 각각 포함되는 좌측 상단의 샘플(1630a, 1630b, 1630c)의 위치를 나타내는 정보는 현재 부호화 단위(1600)에 포함되는 부호화단위(1620a, 1620b, 1620c)들의 너비 또는 높이를 나타내는 정보를 포함할 수 있고, 이러한 너비 또는 높이는 부호화 단위(1620a, 1620b, 1620c)의 픽쳐 내에서의 좌표 간의 차이를 나타내는 정보에 해당할 수 있다. 즉, 영상 복호화 장치(200)는 부호화 단위(1620a, 1620b, 1620c)의 픽쳐 내에서의 위치 또는 좌표에 대한 정보를 직접이용하거나 좌표간의 차이값에 대응하는 부호화 단위의 너비 또는 높이에 대한 정보를 이용함으로써 가운데에 위치하는 부호화 단위(1620b)를 결정할 수 있다.
일 실시예에 따라, 상단 부호화 단위(1620a)의 좌측 상단의 샘플(1630a)의 위치를 나타내는 정보는 (xa, ya) 좌표를 나타낼 수 있고, 가운데 부호화 단위(1620b)의 좌측 상단의 샘플(1630b)의 위치를 나타내는 정보는 (xb, yb) 좌표를 나타낼 수 있고, 하단 부호화 단위(1620c)의 좌측 상단의 샘플(1630c)의 위치를 나타내는 정보는 (xc, yc) 좌표를 나타낼 수 있다. 영상 복호화 장치(200)는 부호화 단위(1620a, 1620b, 1620c)에 각각 포함되는 좌측 상단의 샘플(1630a, 1630b, 1630c)의 좌표를 이용하여 가운데 부호화 단위(1620b)를 결정할 수 있다. 예를 들면, 좌측 상단의 샘플(1630a, 1630b, 1630c)의 좌표를 오름차순 또는 내림차순으로 정렬하였을 때, 가운데에 위치하는 샘플(1630b)의 좌표인 (xb, yb)를 포함하는 부호화 단위(1620b)를 현재 부호화 단위(1600)가 분할되어 결정된 부호화 단위(1620a, 1620b, 1620c) 중 가운데에 위치하는 부호화 단위로 결정할 수 있다. 다만 좌측 상단의 샘플(1630a, 1630b, 1630c)의 위치를 나타내는 좌표는 픽쳐 내에서의 절대적인 위치를 나타내는 좌표를 나타낼 수 있고, 나아가 상단 부호화 단위(1620a)의 좌측 상단의 샘플(1630a)의 위치를 기준으로, 가운데 부호화 단위(1620b)의 좌측 상단의 샘플(1630b)의 상대적 위치를 나타내는 정보인 (dxb, dyb)좌표, 하단 부호화 단위(1620c)의 좌측 상단의 샘플(1630c)의 상대적 위치를 나타내는 정보인 (dxc, dyc)좌표를 이용할 수도 있다. 또한 부호화 단위에 포함되는 샘플의 위치를 나타내는 정보로서 해당 샘플의 좌표를 이용함으로써 소정 위치의 부호화 단위를 결정하는 방법이 상술한 방법으로 한정하여 해석되어서는 안되고, 샘플의 좌표를 이용할 수 있는 다양한 산술적 방법으로 해석되어야 한다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위(1600)를 복수개의 부호화 단위(1620a, 1620b, 1620c)로 분할할 수 있고, 부호화 단위(1620a, 1620b, 1620c)들 중 소정의 기준에 따라 부호화 단위를 선택할 수 있다. 예를 들면, 영상 복호화 장치(200)는 부호화 단위(1620a, 1620b, 1620c) 중 크기가 다른 부호화 단위(1620b)를 선택할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 상단 부호화 단위(1620a)의 좌측 상단의 샘플(1630a)의 위치를 나타내는 정보인 (xa, ya) 좌표, 가운데 부호화 단위(1620b)의 좌측 상단의 샘플(1630b)의 위치를 나타내는 정보인 (xb, yb) 좌표, 하단 부호화 단위(1620c)의 좌측 상단의 샘플(1630c)의 위치를 나타내는 정보인 (xc, yc) 좌표를 이용하여 부호화 단위(1620a, 1620b, 1620c) 각각의 너비 또는 높이를 결정할 수 있다. 영상 복호화 장치(200)는 부호화 단위(1620a, 1620b, 1620c)의 위치를 나타내는 좌표인 (xa, ya), (xb, yb), (xc, yc)를 이용하여 부호화 단위(1620a, 1620b, 1620c) 각각의 크기를 결정할 수 있다.
일 실시예에 따라, 영상 복호화 장치(200)는 상단 부호화 단위(1620a)의 너비를 xb-xa로 결정할 수 있고 높이를 yb-ya로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 가운데 부호화 단위(1620b)의 너비를 xc-xb로 결정할 수 있고 높이를 yc-yb로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 하단 부호화 단위의 너비 또는 높이는 현재 부호화 단위의 너비 또는 높이와 상단 부호화 단위(1620a) 및 가운데 부호화 단위(1620b)의 너비 및 높이를 이용하여 결정할 수 있다. 영상 복호화 장치(200)는 결정된 부호화 단위(1620a, 1620b, 1620c)의 너비 및 높이에 기초하여 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정할 수 있다. 도 16을 참조하면, 영상 복호화 장치(200)는 상단 부호화 단위(1620a) 및 하단 부호화 단위(1620c)의 크기와 다른 크기를 가지는 가운데 부호화 단위(1620b)를 소정 위치의 부호화 단위로 결정할 수 있다. 다만 상술한 영상 복호화 장치(200)가 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정하는 과정은 샘플 좌표에 기초하여 결정되는 부호화 단위의 크기를 이용하여 소정 위치의 부호화 단위를 결정하는 일 실시예에 불과하므로, 소정의 샘플 좌표에 따라 결정되는 부호화 단위의 크기를 비교하여 소정 위치의 부호화 단위를 결정하는 다양한 과정이 이용될 수 있다.
다만 부호화 단위의 위치를 결정하기 위하여 고려하는 샘플의 위치는 상술한 좌측 상단으로 한정하여 해석되어서는 안되고 부호화 단위에 포함되는 임의의 샘플의 위치에 대한 정보가 이용될 수 있는 것으로 해석될 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위의 형태를 고려하여, 현재 부호화 단위가 분할되어 결정되는 홀수개의 부호화 단위들 중 소정 위치의 부호화 단위를 선택할 수 있다. 예를 들면, 현재 부호화 단위가 너비가 높이보다 긴 비-정사각형 형태라면 영상 복호화 장치(200)는 수평 방향에 따라 소정 위치의 부호화 단위를 결정할 수 있다. 즉, 영상 복호화 장치(200)는 수평 방향으로 위치를 달리 하는 부호화 단위들 중 하나를 결정하여 해당 부호화 단위에 대한 제한을 둘 수 있다. 현재 부호화 단위가 높이가 너비보다 긴 비-정사각형 형태라면 영상 복호화 장치(200)는 수직 방향에 따라 소정 위치의 부호화 단위를 결정할 수 있다. 즉, 영상 복호화 장치(200)는 수직 방향으로 위치를 달리 하는 부호화 단위들 중 하나를 결정하여 해당 부호화 단위에 대한 제한을 둘 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 짝수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여 짝수개의 부호화 단위들 각각의 위치를 나타내는 정보를 이용할 수 있다. 영상 복호화 장치(200)는 현재 부호화 단위를 분할하여 짝수개의 부호화 단위들을 결정할 수 있고 짝수개의 부호화 단위들의 위치에 대한 정보를 이용하여 소정 위치의 부호화 단위를 결정할 수 있다. 이에 대한 구체적인 과정은 도 16에서 상술한 홀수개의 부호화 단위들 중 소정 위치(예를 들면, 가운데 위치)의 부호화 단위를 결정하는 과정에 대응하는 과정일 수 있으므로 생략하도록 한다.
일 실시예에 따라, 비-정사각형 형태의 현재 부호화 단위를 복수개의 부호화 단위로 분할한 경우, 복수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여 분할 과정에서 소정 위치의 부호화 단위에 대한 소정의 정보를 이용할 수 있다. 예를 들면 영상 복호화 장치(200)는 현재 부호화 단위가 복수개로 분할된 부호화 단위들 중 가운데에 위치하는 부호화 단위를 결정하기 위하여 분할 과정에서 가운데 부호화 단위에 포함된 샘플에 저장된 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 이용할 수 있다.
도 16을 참조하면 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 현재 부호화 단위(1600)를 복수개의 부호화 단위들(1620a, 1620b, 1620c)로 분할할 수 있으며, 복수개의 부호화 단위들(1620a, 1620b, 1620c) 중 가운데에 위치하는 부호화 단위(1620b)를 결정할 수 있다. 나아가 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나가 획득되는 위치를 고려하여, 가운데에 위치하는 부호화 단위(1620b)를 결정할 수 있다. 즉, 현재 부호화 단위(1600)의 블록 형태 정보 및 분할 형태 정보 중 적어도 하나는 현재 부호화 단위(1600)의 가운데에 위치하는 샘플(1640)에서 획득될 수 있으며, 상기 블록 형태 정보 및 상기 분할 형태 정보 중 적어도 하나에 기초하여 현재 부호화 단위(1600)가 복수개의 부호화 단위들(1620a, 1620b, 1620c)로 분할된 경우 상기 샘플(1640)을 포함하는 부호화 단위(1620b)를 가운데에 위치하는 부호화 단위로 결정할 수 있다. 다만 가운데에 위치하는 부호화 단위로 결정하기 위해 이용되는 정보가 블록 형태 정보 및 분할 형태 정보 중 적어도 하나로 한정하여 해석되어서는 안되고, 다양한 종류의 정보가 가운데에 위치하는 부호화 단위를 결정하는 과정에서 이용될 수 있다.
일 실시예에 따라 소정 위치의 부호화 단위를 식별하기 위한 소정의 정보는, 결정하려는 부호화 단위에 포함되는 소정의 샘플에서 획득될 수 있다. 도 16을 참조하면, 영상 복호화 장치(200)는 현재 부호화 단위(1600)가 분할되어 결정된 복수개의 부호화 단위들(1620a, 1620b, 1620c) 중 소정 위치의 부호화 단위(예를 들면, 복수개로 분할된 부호화 단위 중 가운데에 위치하는 부호화 단위)를 결정하기 위하여 현재 부호화 단위(1600) 내의 소정 위치의 샘플(예를 들면, 현재 부호화 단위(1600)의 가운데에 위치하는 샘플)에서 획득되는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 이용할 수 있다. 즉, 영상 복호화 장치(200)는 현재 부호화 단위(1600)의 블록 블록 형태를 고려하여 상기 소정 위치의 샘플을 결정할 수 있고, 영상 복호화 장치(200)는 현재 부호화 단위(1600)가 분할되어 결정되는 복수개의 부호화 단위(1620a, 1620b, 1620c)들 중, 소정의 정보(예를 들면, 블록 형태 정보 및 분할 형태 정보 중 적어도 하나)가 획득될 수 있는 샘플이 포함된 부호화 단위(1620b)를 결정하여 소정의 제한을 둘 수 있다. 도 16을 참조하면 일 실시예에 따라 영상 복호화 장치(200)는 소정의 정보가 획득될 수 있는 샘플로서 현재 부호화 단위(1600)의 가운데에 위치하는 샘플(1640)을 결정할 수 있고, 영상 복호화 장치(200)는 이러한 샘플(1640)이 포함되는 부호화 단위(1620b)를 복호화 과정에서의 소정의 제한을 둘 수 있다. 다만 소정의 정보가 획득될 수 있는 샘플의 위치는 상술한 위치로 한정하여 해석되어서는 안되고, 제한을 두기 위해 결정하려는 부호화 단위(1620b)에 포함되는 임의의 위치의 샘플들로 해석될 수 있다.
일 실시예에 따라 소정의 정보가 획득될 수 있는 샘플의 위치는 현재 부호화 단위(1600)의 형태에 따라 결정될 수 있다. 일 실시예에 따라 블록 형태 정보는 현재 부호화 단위의 형태가 정사각형인지 또는 비-정사각형인지 여부를 결정할 수 있고, 형태에 따라 소정의 정보가 획득될 수 있는 샘플의 위치를 결정할 수 있다. 예를 들면, 영상 복호화 장치(200)는 현재 부호화 단위의 너비에 대한 정보 및 높이에 대한 정보 중 적어도 하나를 이용하여 현재 부호화 단위의 너비 및 높이 중 적어도 하나를 반으로 분할하는 경계 상에 위치하는 샘플을 소정의 정보가 획득될 수 있는 샘플로 결정할 수 있다. 또다른 예를 들면, 영상 복호화 장치(200)는 현재 부호화 단위에 관련된 블록 형태 정보가 비-정사각형 형태임을 나타내는 경우, 현재 부호화 단위의 긴 변을 반으로 분할하는 경계에 인접하는 샘플 중 하나를 소정의 정보가 획득될 수 있는 샘플로 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위를 복수개의 부호화 단위로 분할한 경우, 복수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여, 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 이용할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 부호화 단위에 포함된 소정 위치의 샘플에서 획득할 수 있고, 영상 복호화 장치(200)는 현재 부호화 단위가 분할되어 생성된 복수개의 부호화 단위들을 복수개의 부호화 단위 각각에 포함된 소정 위치의 샘플로부터 획득되는 분할 형태 정보 및 블록 형태 정보 중 적어도 하나를 이용하여 분할할 수 있다. 즉, 부호화 단위는 부호화 단위 각각에 포함된 소정 위치의 샘플에서 획득되는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 이용하여 재귀적으로 분할될 수 있다. 부호화 단위의 재귀적 분할 과정에 대하여는 도 15를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정할 수 있고, 이러한 적어도 하나의 부호화 단위가 복호화되는 순서를 소정의 블록(예를 들면, 현재 부호화 단위)에 따라 결정할 수 있다.
도 17은 일 실시예에 따라 영상 복호화 장치(200)가 현재 부호화 단위를 분할하여 복수개의 부호화 단위들을 결정하는 경우, 복수개의 부호화 단위들이 처리되는 순서를 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보에 따라 제1 부호화 단위(1700)를 수직 방향으로 분할하여 제2 부호화 단위(1710a, 1710b)를 결정하거나 제1 부호화 단위(1700)를 수평 방향으로 분할하여 제2 부호화 단위(1730a, 1730b)를 결정하거나 제1 부호화 단위(1700)를 수직 방향 및 수평 방향으로 분할하여 제2 부호화 단위(1750a, 1750b, 1750c, 1750d)를 결정할 수 있다.
도 17을 참조하면, 영상 복호화 장치(200)는 제1 부호화 단위(1700)를 수직 방향으로 분할하여 결정된 제2 부호화 단위(1710a, 1710b)를 수평 방향(1710c)으로 처리되도록 순서를 결정할 수 있다. 영상 복호화 장치(200)는 제1 부호화 단위(1700)를 수평 방향으로 분할하여 결정된 제2 부호화 단위(1730a, 1730b)의 처리 순서를 수직 방향(1730c)으로 결정할 수 있다. 영상 복호화 장치(200)는 제1 부호화 단위(1700)를 수직 방향 및 수평 방향으로 분할하여 결정된 제2 부호화 단위(1750a, 1750b, 1750c, 1750d)를 하나의 행에 위치하는 부호화 단위들이 처리된 후 다음 행에 위치하는 부호화 단위들이 처리되는 소정의 순서(예를 들면, 래스터 스캔 순서((raster scan order) 또는 z 스캔 순서(z scan order)(1750e) 등)에 따라 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 부호화 단위들을 재귀적으로 분할할 수 있다. 도 17을 참조하면, 영상 복호화 장치(200)는 제1 부호화 단위(1700)를 분할하여 복수개의 부호화 단위들(1710a, 1710b, 1730a, 1730b, 1750a, 1750b, 1750c, 1750d)을 결정할 수 있고, 결정된 복수개의 부호화 단위들(1710a, 1710b, 1730a, 1730b, 1750a, 1750b, 1750c, 1750d) 각각을 재귀적으로 분할할 수 있다. 복수개의 부호화 단위들(1710a, 1710b, 1730a, 1730b, 1750a, 1750b, 1750c, 1750d)을 분할하는 방법은 제1 부호화 단위(1700)를 분할하는 방법에 대응하는 방법이 될 수 있다. 이에 따라 복수개의 부호화 단위들(1710a, 1710b, 1730a, 1730b, 1750a, 1750b, 1750c, 1750d)은 각각 독립적으로 복수개의 부호화 단위들로 분할될 수 있다. 도 17를 참조하면 영상 복호화 장치(200)는 제1 부호화 단위(1700)를 수직 방향으로 분할하여 제2 부호화 단위(1710a, 1710b)를 결정할 수 있고, 나아가 제2 부호화 단위(1710a, 1710b) 각각을 독립적으로 분할하거나 분할하지 않는 것으로 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 좌측의 제2 부호화 단위(1710a)를 수평 방향으로 분할하여 제3 부호화 단위(1720a, 1720b)로 분할할 수 있고, 우측의 제2 부호화 단위(1710b)는 분할하지 않을 수 있다.
일 실시예에 따라 부호화 단위들의 처리 순서는 부호화 단위의 분할 과정에 기초하여 결정될 수 있다. 다시 말해, 분할된 부호화 단위들의 처리 순서는 분할되기 직전의 부호화 단위들의 처리 순서에 기초하여 결정될 수 있다. 영상 복호화 장치(200)는 좌측의 제2 부호화 단위(1710a)가 분할되어 결정된 제3 부호화 단위(1720a, 1720b)가 처리되는 순서를 우측의 제2 부호화 단위(1710b)와 독립적으로 결정할 수 있다. 좌측의 제2 부호화 단위(1710a)가 수평 방향으로 분할되어 제3 부호화 단위(1720a, 1720b)가 결정되었으므로 제3 부호화 단위(1720a, 1720b)는 수직 방향(1720c)으로 처리될 수 있다. 또한 좌측의 제2 부호화 단위(1710a) 및 우측의 제2 부호화 단위(1710b)가 처리되는 순서는 수평 방향(1710c)에 해당하므로, 좌측의 제2 부호화 단위(1710a)에 포함되는 제3 부호화 단위(1720a, 1720b)가 수직 방향(1720c)으로 처리된 후에 우측 부호화 단위(1710b)가 처리될 수 있다. 상술한 내용은 부호화 단위들이 각각 분할 전의 부호화 단위에 따라 처리 순서가 결정되는 과정을 설명하기 위한 것이므로, 상술한 실시예에 한정하여 해석되어서는 안되고, 다양한 형태로 분할되어 결정되는 부호화 단위들이 소정의 순서에 따라 독립적으로 처리될 수 있는 다양한 방법으로 이용되는 것으로 해석되어야 한다.
도 18은 일 실시예에 따라 영상 복호화 장치(200)가 소정의 순서로 부호화 단위가 처리될 수 없는 경우, 현재 부호화 단위가 홀수개의 부호화 단위로 분할되는 것임을 결정하는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 획득된 블록 형태 정보 및 분할 형태 정보에 기초하여 현재 부호화 단위가 홀수개의 부호화 단위들로 분할되는 것을 결정할 수 있다. 도 18을 참조하면 정사각형 형태의 제1 부호화 단위(1800)가 비-정사각형 형태의 제2 부호화 단위(1810a, 1810b)로 분할될 수 있고, 제2 부호화 단위(1810a, 1810b)는 각각 독립적으로 제3 부호화 단위(1820a, 1820b, 1820c, 1820d, 1820e)로 분할될 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 제2 부호화 단위 중 좌측 부호화 단위(1810a)는 수평 방향으로 분할하여 복수개의 제3 부호화 단위(1820a, 1820b)를 결정할 수 있고, 우측 부호화 단위(1810b)는 홀수개의 제3 부호화 단위(1820c, 1820d, 1820e)로 분할할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 제3 부호화 단위들(1820a, 1820b, 1820c, 1820d, 1820e)이 소정의 순서로 처리될 수 있는지 여부를 판단하여 홀수개로 분할된 부호화 단위가 존재하는지를 결정할 수 있다. 도 18를 참조하면, 영상 복호화 장치(200)는 제1 부호화 단위(1800)를 재귀적으로 분할하여 제3 부호화 단위(1820a, 1820b, 1820c, 1820d, 1820e)를 결정할 수 있다. 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여, 제1 부호화 단위(1800), 제2 부호화 단위(1810a, 1810b) 또는 제3 부호화 단위(1820a, 1820b, 1820c, 1820d, 1820e)가 분할되는 형태 중 홀수개의 부호화 단위로 분할되는지 여부를 결정할 수 있다. 예를 들면, 제2 부호화 단위(1810a, 1810b) 중 우측에 위치하는 부호화 단위가 홀수개의 제3 부호화 단위(1820c, 1820d, 1820e)로 분할될 수 있다. 제1 부호화 단위(1800)에 포함되는 복수개의 부호화 단위들이 처리되는 순서는 소정의 순서(예를 들면, z-스캔 순서(z-scan order)(1830))가 될 수 있고, 영상 복호화 장치(200)는 우측 제2 부호화 단위(1810b)가 홀수개로 분할되어 결정된 제3 부호화 단위(1820c, 1820d, 1820e)가 상기 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 판단할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 제1 부호화 단위(1800)에 포함되는 제3 부호화 단위(1820a, 1820b, 1820c, 1820d, 1820e)가 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 결정할 수 있으며, 상기 조건은 제3 부호화 단위(1820a, 1820b, 1820c, 1820d, 1820e)의 경계에 따라 제2 부호화 단위(1810a, 1810b)의 너비 및 높이 중 적어도 하나를 반으로 분할되는지 여부와 관련된다. 예를 들면 비-정사각형 형태의 좌측 제2 부호화 단위(1810a)의 높이를 반으로 분할하여 결정되는 제3 부호화 단위(1820a, 1820b)는 조건을 만족하지만, 우측 제2 부호화 단위(1810b)를 3개의 부호화 단위로 분할하여 결정되는 제3 부호화 단위(1820c, 1820d, 1820e)들의 경계가 우측 제2 부호화 단위(1810b)의 너비 또는 높이를 반으로 분할하지 못하므로 제3 부호화 단위(1820c, 1820d, 1820e)는 조건을 만족하지 못하는 것으로 결정될 수 있고, 영상 복호화 장치(200)는 이러한 조건 불만족의 경우 스캔 순서의 단절(disconnection)로 판단하고, 판단 결과에 기초하여 우측 제2 부호화 단위(1810b)는 홀수개의 부호화 단위로 분할되는 것으로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 홀수개의 부호화 단위로 분할되는 경우 분할된 부호화 단위들 중 소정 위치의 부호화 단위에 대하여 소정의 제한을 둘 수 있으며, 이러한 제한 내용 또는 소정 위치 등에 대하여는 다양한 실시예를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.
도 19는 일 실시예에 따라 영상 복호화 장치(200)가 제1 부호화 단위(1900)를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다. 일 실시예에 따라 영상 복호화 장치(200)는 수신부(210)를 통해 획득한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(1900)를 분할할 수 있다. 정사각형 형태의 제1 부호화 단위(1900)는 4개의 정사각형 형태를 가지는 부호화 단위로 분할되거나 또는 비-정사각형 형태의 복수개의 부호화 단위로 분할할 수 있다. 예를 들면 도 19을 참조하면, 블록 형태 정보가 제1 부호화 단위(1900)는 정사각형임을 나타내고 분할 형태 정보가 비-정사각형의 부호화 단위로 분할됨을 나타내는 경우 영상 복호화 장치(200)는 제1 부호화 단위(1900)를 복수개의 비-정사각형의 부호화 단위들로 분할할 수 있다. 구체적으로, 분할 형태 정보가 제1 부호화 단위(1900)를 수평 방향 또는 수직 방향으로 분할하여 홀수개의 부호화 단위를 결정하는 것을 나타내는 경우, 영상 복호화 장치(200)는 정사각형 형태의 제1 부호화 단위(1900)을 홀수개의 부호화 단위들로서 수직 방향으로 분할되어 결정된 제2 부호화 단위(1910a, 1910b, 1910c) 또는 수평 방향으로 분할되어 결정된 제2 부호화 단위(1920a, 1920b, 1920c)로 분할할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 제1 부호화 단위(1900)에 포함되는 제2 부호화 단위(1910a, 1910b, 1910c, 1920a, 1920b, 1920c)가 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 결정할 수 있으며, 상기 조건은 제2 부호화 단위(1910a, 1910b, 1910c, 1920a, 1920b, 1920c)의 경계에 따라 제1 부호화 단위(1900)의 너비 및 높이 중 적어도 하나를 반으로 분할되는지 여부와 관련된다. 도 19를 참조하면 정사각형 형태의 제1 부호화 단위(1900)를 수직 방향으로 분할하여 결정되는 제2 부호화 단위(1910a, 1910b, 1910c)들의 경계가 제1 부호화 단위(1900)의 너비를 반으로 분할하지 못하므로 제1 부호화 단위(1900)는 소정의 순서에 따라 처리될 수 있는 조건을 만족하지 못하는 것으로 결정될 수 있다. 또한 정사각형 형태의 제1 부호화 단위(1900)를 수평 방향으로 분할하여 결정되는 제2 부호화 단위(1920a, 1920b, 1920c)들의 경계가 제1 부호화 단위(1900)의 너비를 반으로 분할하지 못하므로 제1 부호화 단위(1900)는 소정의 순서에 따라 처리될 수 있는 조건을 만족하지 못하는 것으로 결정될 수 있다. 영상 복호화 장치(200)는 이러한 조건 불만족의 경우 스캔 순서의 단절(disconnection)로 판단하고, 판단 결과에 기초하여 제1 부호화 단위(1900)는 홀수개의 부호화 단위로 분할되는 것으로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 홀수개의 부호화 단위로 분할되는 경우 분할된 부호화 단위들 중 소정 위치의 부호화 단위에 대하여 소정의 제한을 둘 수 있으며, 이러한 제한 내용 또는 소정 위치 등에 대하여는 다양한 실시예를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.
일 실시예에 따라, 영상 복호화 장치(200)는 제1 부호화 단위를 분할하여 다양한 형태의 부호화 단위들을 결정할 수 있다.
도 19를 참조하면, 영상 복호화 장치(200)는 정사각형 형태의 제1 부호화 단위(1900), 비-정사각형 형태의 제1 부호화 단위(1930 또는 1950)를 다양한 형태의 부호화 단위들로 분할할 수 있다.
도 20은 일 실시예에 따라 영상 복호화 장치(200)가 제1 부호화 단위(2000)가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위가 소정의 조건을 만족하는 경우 제2 부호화 단위가 분할될 수 있는 형태가 제한되는 것을 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 수신부(210)를 통해 획득한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 정사각형 형태의 제1 부호화 단위(2000)를 비-정사각형 형태의 제2 부호화 단위(2010a, 2010b, 2020a, 2020b)로 분할하는 것으로 결정할 수 있다. 제2 부호화 단위(2010a, 2010b, 2020a, 2020b)는 독립적으로 분할될 수 있다. 이에 따라 영상 복호화 장치(200)는 제2 부호화 단위(2010a, 2010b, 2020a, 2020b) 각각에 관련된 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 복수개의 부호화 단위로 분할하거나 분할하지 않는 것을 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 수직 방향으로 제1 부호화 단위(2000)가 분할되어 결정된 비-정사각형 형태의 좌측 제2 부호화 단위(2010a)를 수평 방향으로 분할하여 제3 부호화 단위(2012a, 2012b)를 결정할 수 있다. 다만 영상 복호화 장치(200)는 좌측 제2 부호화 단위(2010a)를 수평 방향으로 분할한 경우, 우측 제2 부호화 단위(2010b)는 좌측 제2 부호화 단위(2010a)가 분할된 방향과 동일하게 수평 방향으로 분할될 수 없도록 제한할 수 있다. 만일 우측 제2 부호화 단위(2010b)가 동일한 방향으로 분할되어 제3 부호화 단위(2014a, 2014b)가 결정된 경우, 좌측 제2 부호화 단위(2010a) 및 우측 제2 부호화 단위(2010b)가 수평 방향으로 각각 독립적으로 분할됨으로써 제3 부호화 단위(2012a, 2012b, 2014a, 2014b)가 결정될 수 있다. 하지만 이는 영상 복호화 장치(200)가 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(2000)를 4개의 정사각형 형태의 제2 부호화 단위(2030a, 2030b, 2030c, 2030d)로 분할한 것과 동일한 결과이며 이는 영상 복호화 측면에서 비효율적일 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 수평 방향으로 제1 부호화 단위(11600)가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위(2020a 또는 2020b)를 수직 방향으로 분할하여 제3 부호화 단위(2022a, 2022b, 2024a, 2024b)를 결정할 수 있다. 다만 영상 복호화 장치(200)는 제2 부호화 단위 중 하나(예를 들면 상단 제2 부호화 단위(2020a))를 수직 방향으로 분할한 경우, 상술한 이유에 따라 다른 제2 부호화 단위(예를 들면 하단 부호화 단위(2020b))는 상단 제2 부호화 단위(2020a)가 분할된 방향과 동일하게 수직 방향으로 분할될 수 없도록 제한할 수 있다.
도 21은 일 실시예에 따라 분할 형태 정보가 4개의 정사각형 형태의 부호화 단위로 분할하는 것을 나타낼 수 없는 경우, 영상 복호화 장치(200)가 정사각형 형태의 부호화 단위를 분할하는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(2100)를 분할하여 제2 부호화 단위(2110a, 2110b, 2120a, 2120b 등)를 결정할 수 있다. 분할 형태 정보에는 부호화 단위가 분할될 수 있는 다양한 형태에 대한 정보가 포함될 수 있으나, 다양한 형태에 대한 정보에는 정사각형 형태의 4개의 부호화 단위로 분할하기 위한 정보가 포함될 수 없는 경우가 있다. 이러한 분할 형태 정보에 따르면, 영상 복호화 장치(200)는 정사각형 형태의 제1 부호화 단위(2100)를 4개의 정사각형 형태의 제2 부호화 단위(2130a, 2130b, 2130c, 2130d)로 분할하지 못한다. 분할 형태 정보에 기초하여 영상 복호화 장치(200)는 비-정사각형 형태의 제2 부호화 단위(2110a, 2110b, 2120a, 2120b 등)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 비-정사각형 형태의 제2 부호화 단위(2110a, 2110b, 2120a, 2120b 등)를 각각 독립적으로 분할할 수 있다. 재귀적인 방법을 통해 제2 부호화 단위(2110a, 2110b, 2120a, 2120b 등) 각각이 소정의 순서대로 분할될 수 있으며, 이는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(2100)가 분할되는 방법에 대응하는 분할 방법일 수 있다.
예를 들면 영상 복호화 장치(200)는 좌측 제2 부호화 단위(2110a)가 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2112a, 2112b)를 결정할 수 있고, 우측 제2 부호화 단위(2110b)가 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2114a, 2114b)를 결정할 수 있다. 나아가 영상 복호화 장치(200)는 좌측 제2 부호화 단위(2110a) 및 우측 제2 부호화 단위(2110b) 모두 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2116a, 2116b, 2116c, 2116d)를 결정할 수도 있다. 이러한 경우 제1 부호화 단위(2100)가 4개의 정사각형 형태의 제2 부호화 단위(2130a, 2130b, 2130c, 2130d)로 분할된 것과 동일한 형태로 부호화 단위가 결정될 수 있다.
또 다른 예를 들면 영상 복호화 장치(200)는 상단 제2 부호화 단위(2120a)가 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2122a, 2122b)를 결정할 수 있고, 하단 제2 부호화 단위(2120b)가 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2124a, 2124b)를 결정할 수 있다. 나아가 영상 복호화 장치(200)는 상단 제2 부호화 단위(2120a) 및 하단 제2 부호화 단위(2120b) 모두 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2122a, 2122b, 2124a, 2124b)를 결정할 수도 있다. 이러한 경우 제1 부호화 단위(2100)가 4개의 정사각형 형태의 제2 부호화 단위(2130a, 2130b, 2130c, 2130d)로 분할된 것과 동일한 형태로 부호화 단위가 결정될 수 있다.
도 22는 일 실시예에 따라 복수개의 부호화 단위들 간의 처리 순서가 부호화 단위의 분할 과정에 따라 달라질 수 있음을 도시한 것이다.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보에 기초하여 제1 부호화 단위(2200)를 분할할 수 있다. 블록 형태 정보가 정사각형 형태를 나타내고, 분할 형태 정보가 제1 부호화 단위(2200)가 수평 방향 및 수직 방향 중 적어도 하나의 방향으로 분할됨을 나타내는 경우, 영상 복호화 장치(200)는 제1 부호화 단위(2200)를 분할하여 제2 부호화 단위(예를 들면, 2210a, 2210b, 2220a, 2220b 등)를 결정할 수 있다. 도 22를 참조하면 제1 부호화 단위(2200)가 수평 방향 또는 수직 방향만으로 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위(2210a, 2210b, 2220a, 2220b)는 각각에 대한 블록 형태 정보 및 분할 형태 정보에 기초하여 독립적으로 분할될 수 있다. 예를 들면 영상 복호화 장치(200)는 제1 부호화 단위(2200)가 수직 방향으로 분할되어 생성된 제2 부호화 단위(2210a, 2210b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(2216a, 2216b, 2216c, 2216d)를 결정할 수 있고, 제1 부호화 단위(2200)가 수평 방향으로 분할되어 생성된 제2 부호화 단위(2220a, 2220b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(2226a, 2226b, 2226c, 2226d)를 결정할 수 있다. 이러한 제2 부호화 단위(2210a, 2210b, 2220a, 2220b)의 분할 과정은 도 20과 관련하여 상술하였으므로 자세한 설명은 생략하도록 한다.
일 실시예에 따라 영상 복호화 장치(200)는 소정의 순서에 따라 부호화 단위를 처리할 수 있다. 소정의 순서에 따른 부호화 단위의 처리에 대한 특징은 도 17과 관련하여 상술하였으므로 자세한 설명은 생략하도록 한다. 도 22을 참조하면 영상 복호화 장치(200)는 정사각형 형태의 제1 부호화 단위(2200)를 분할하여 4개의 정사각형 형태의 제3 부호화 단위(2216a, 2216b, 2216c, 2216d, 2226a, 2226b, 2226c, 2226d)를 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 제1 부호화 단위(2200)가 분할되는 형태에 따라 제3 부호화 단위(2216a, 2216b, 2216c, 2216d, 2226a, 2226b, 2226c, 2226d)의 처리 순서를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 수직 방향으로 분할되어 생성된 제2 부호화 단위(2210a, 2210b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(2216a, 2216b, 2216c, 2216d)를 결정할 수 있고, 영상 복호화 장치(200)는 좌측 제2 부호화 단위(2210a)에 포함되는 제3 부호화 단위(2216a, 2216b)를 수직 방향으로 먼저 처리한 후, 우측 제2 부호화 단위(2210b)에 포함되는 제3 부호화 단위(2216c, 2216d)를 수직 방향으로 처리하는 순서(2217)에 따라 제3 부호화 단위(2216a, 2216b, 2216c, 2216d)를 처리할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 수평 방향으로 분할되어 생성된 제2 부호화 단위(2220a, 2220b)를 수직 방향으로 각각 분할하여 제3 부호화 단위(2226a, 2226b, 2226c, 2226d)를 결정할 수 있고, 영상 복호화 장치(200)는 상단 제2 부호화 단위(2220a)에 포함되는 제3 부호화 단위(2226a, 2226b)를 수평 방향으로 먼저 처리한 후, 하단 제2 부호화 단위(2220b)에 포함되는 제3 부호화 단위(2226c, 2226d)를 수평 방향으로 처리하는 순서(2227)에 따라 제3 부호화 단위(2226a, 2226b, 2226c, 2226d)를 처리할 수 있다.
도 22를 참조하면, 제2 부호화 단위(2210a, 2210b, 2220a, 2220b)가 각각 분할되어 정사각형 형태의 제3 부호화 단위(2216a, 2216b, 2216c, 2216d, 2226a, 2226b, 2226c, 2226d)가 결정될 수 있다. 수직 방향으로 분할되어 결정된 제2 부호화 단위(2210a, 2210b) 및 수평 방향으로 분할되어 결정된 제2 부호화 단위(2220a, 2220b)는 서로 다른 형태로 분할된 것이지만, 이후에 결정되는 제3 부호화 단위(2216a, 2216b, 2216c, 2216d, 2226a, 2226b, 2226c, 2226d)에 따르면 결국 동일한 형태의 부호화 단위들로 제1 부호화 단위(2200)가 분할된 결과가 된다. 이에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 상이한 과정을 통해 재귀적으로 부호화 단위를 분할함으로써 결과적으로 동일한 형태의 부호화 단위들을 결정하더라도, 동일한 형태로 결정된 복수개의 부호화 단위들을 서로 다른 순서로 처리할 수 있다.
도 23은 일 실시예에 따라 부호화 단위가 재귀적으로 분할되어 복수개의 부호화 단위가 결정되는 경우, 부호화 단위의 형태 및 크기가 변함에 따라 부호화 단위의 심도가 결정되는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 부호화 단위의 심도를 소정의 기준에 따라 결정할 수 있다. 예를 들면 소정의 기준은 부호화 단위의 긴 변의 길이가 될 수 있다. 영상 복호화 장치(200)는 현재 부호화 단위의 긴 변의 길이가 분할되기 전의 부호화 단위의 긴 변의 길이보다 2n (n>0) 배로 분할된 경우, 현재 부호화 단위의 심도는 분할되기 전의 부호화 단위의 심도보다 n만큼 심도가 증가된 것으로 결정할 수 있다. 이하에서는 심도가 증가된 부호화 단위를 하위 심도의 부호화 단위로 표현하도록 한다.
도 23을 참조하면, 일 실시예에 따라 정사각형 형태임을 나타내는 블록 형태 정보(예를 들면 블록 형태 정보는 ′0: SQUARE′를 나타낼 수 있음)에 기초하여 영상 복호화 장치(200)는 정사각형 형태인 제1 부호화 단위(2300)를 분할하여 하위 심도의 제2 부호화 단위(2302), 제3 부호화 단위(2304) 등을 결정할 수 있다. 정사각형 형태의 제1 부호화 단위(2300)의 크기를 2Nx2N이라고 한다면, 제1 부호화 단위(2300)의 너비 및 높이를 1/21배로 분할하여 결정된 제2 부호화 단위(2302)는 NxN의 크기를 가질 수 있다. 나아가 제2 부호화 단위(2302)의 너비 및 높이를 1/2크기로 분할하여 결정된 제3 부호화 단위(2304)는 N/2xN/2의 크기를 가질 수 있다. 이 경우 제3 부호화 단위(2304)의 너비 및 높이는 제1 부호화 단위(2300)의 1/22배에 해당한다. 제1 부호화 단위(2300)의 심도가 D인 경우 제1 부호화 단위(2300)의 너비 및 높이의 1/21배인 제2 부호화 단위(2302)의 심도는 D+1일 수 있고, 제1 부호화 단위(2300)의 너비 및 높이의 1/22배인 제3 부호화 단위(2304)의 심도는 D+2일 수 있다.
일 실시예에 따라 비-정사각형 형태를 나타내는 블록 형태 정보(예를 들면 블록 형태 정보는, 높이가 너비보다 긴 비-정사각형임을 나타내는 ′1: NS_VER′ 또는 너비가 높이보다 긴 비-정사각형임을 나타내는 ′2: NS_HOR′를 나타낼 수 있음)에 기초하여, 영상 복호화 장치(200)는 비-정사각형 형태인 제1 부호화 단위(2310 또는 2320)를 분할하여 하위 심도의 제2 부호화 단위(2312 또는 2322), 제3 부호화 단위(2314 또는 2324) 등을 결정할 수 있다.
영상 복호화 장치(200)는 Nx2N 크기의 제1 부호화 단위(2310)의 너비 및 높이 중 적어도 하나를 분할하여 제2 부호화 단위(예를 들면, 2302, 2312, 2322 등)를 결정할 수 있다. 즉, 영상 복호화 장치(200)는 제1 부호화 단위(2310)를 수평 방향으로 분할하여 NxN 크기의 제2 부호화 단위(2302) 또는 NxN/2 크기의 제2 부호화 단위(2322)를 결정할 수 있고, 수평 방향 및 수직 방향으로 분할하여 N/2xN 크기의 제2 부호화 단위(2312)를 결정할 수도 있다.
일 실시예에 따라 영상 복호화 장치(200)는 2NxN 크기의 제1 부호화 단위(2320) 의 너비 및 높이 중 적어도 하나를 분할하여 제2 부호화 단위(예를 들면, 2302, 2312, 2322 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(200)는 제1 부호화 단위(2320)를 수직 방향으로 분할하여 NxN 크기의 제2 부호화 단위(2302) 또는 N/2xN 크기의 제2 부호화 단위(2312)를 결정할 수 있고, 수평 방향 및 수직 방향으로 분할하여 NxN/2 크기의 제2 부호화 단위(2322)를 결정할 수도 있다.
일 실시예에 따라 영상 복호화 장치(200)는 NxN 크기의 제2 부호화 단위(2302) 의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 2304, 2314, 2324 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(200)는 제2 부호화 단위(2302)를 수직 방향 및 수평 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(2304)를 결정하거나 N/22xN/2 크기의 제3 부호화 단위(2314)를 결정하거나 N/2xN/22 크기의 제3 부호화 단위(2324)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 N/2xN 크기의 제2 부호화 단위(2312)의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 2304, 2314, 2324 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(200)는 제2 부호화 단위(2312)를 수평 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(2304) 또는 N/2xN/22 크기의 제3 부호화 단위(2324)를 결정하거나 수직 방향 및 수평 방향으로 분할하여 N/22xN/2 크기의 제3 부호화 단위(2314)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 NxN/2 크기의 제2 부호화 단위(2314)의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 2304, 2314, 2324 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(200)는 제2 부호화 단위(2312)를 수직 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(2304) 또는 N/22xN/2 크기의 제3 부호화 단위(2314)를 결정하거나 수직 방향 및 수평 방향으로 분할하여 N/2xN/22크기의 제3 부호화 단위(2324)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 정사각형 형태의 부호화 단위(예를 들면, 2300, 2302, 2304)를 수평 방향 또는 수직 방향으로 분할할 수 있다. 예를 들면, 2Nx2N 크기의 제1 부호화 단위(2300)를 수직 방향으로 분할하여 Nx2N 크기의 제1 부호화 단위(2310)를 결정하거나 수평 방향으로 분할하여 2NxN 크기의 제1 부호화 단위(2320)를 결정할 수 있다. 일 실시예에 따라 심도가 부호화 단위의 가장 긴 변의 길이에 기초하여 결정되는 경우, 2Nx2N 크기의 제1 부호화 단위(2300, 2302 또는 2304)가 수평 방향 또는 수직 방향으로 분할되어 결정되는 부호화 단위의 심도는 제1 부호화 단위(2300, 2302 또는 2304)의 심도와 동일할 수 있다.
일 실시예에 따라 제3 부호화 단위(2314 또는 2324)의 너비 및 높이는 제1 부호화 단위(2310 또는 2320)의 1/22배에 해당할 수 있다. 제1 부호화 단위(2310 또는 2320)의 심도가 D인 경우 제1 부호화 단위(2310 또는 2320)의 너비 및 높이의 1/2배인 제2 부호화 단위(2312 또는 2314)의 심도는 D+1일 수 있고, 제1 부호화 단위(2310 또는 2320)의 너비 및 높이의 1/22배인 제3 부호화 단위(2314 또는 2324)의 심도는 D+2일 수 있다.
도 24는 일 실시예에 따라 부호화 단위들의 형태 및 크기에 따라 결정될 수 있는 심도 및 부호화 단위 구분을 위한 인덱스(part index, 이하 PID)를 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 정사각형 형태의 제1 부호화 단위(2400)를 분할하여 다양한 형태의 제2 부호화 단위를 결정할 수 있다. 도 24를 참조하면, 영상 복호화 장치(200)는 분할 형태 정보에 따라 제1 부호화 단위(2400)를 수직 방향 및 수평 방향 중 적어도 하나의 방향으로 분할하여 제2 부호화 단위(2402a, 2402b, 2404a, 2404b, 2406a, 2406b, 2406c, 2406d)를 결정할 수 있다. 즉, 영상 복호화 장치(200)는 제1 부호화 단위(2400)에 대한 분할 형태 정보에 기초하여 제2 부호화 단위(2402a, 2402b, 2404a, 2404b, 2406a, 2406b, 2406c, 2406d)를 결정할 수 있다.
일 실시예에 따라 정사각형 형태의 제1 부호화 단위(2400)에 대한 분할 형태 정보에 따라 결정되는 제2 부호화 단위(2402a, 2402b, 2404a, 2404b, 2406a, 2406b, 2406c, 2406d)는 긴 변의 길이에 기초하여 심도가 결정될 수 있다. 예를 들면, 정사각형 형태의 제1 부호화 단위(2400)의 한 변의 길이와 비-정사각형 형태의 제2 부호화 단위(2402a, 2402b, 2404a, 2404b)의 긴 변의 길이가 동일하므로, 제1 부호화 단위(2400)와 비-정사각형 형태의 제2 부호화 단위(2402a, 2402b, 2404a, 2404b)의 심도는 D로 동일하다고 볼 수 있다. 이에 반해 영상 복호화 장치(200)가 분할 형태 정보에 기초하여 제1 부호화 단위(2400)를 4개의 정사각형 형태의 제2 부호화 단위(2406a, 2406b, 2406c, 2406d)로 분할한 경우, 정사각형 형태의 제2 부호화 단위(2406a, 2406b, 2406c, 2406d)의 한 변의 길이는 제1 부호화 단위(2400)의 한 변의 길이의 1/2배 이므로, 제2 부호화 단위(2406a, 2406b, 2406c, 2406d)의 심도는 제1 부호화 단위(2400)의 심도인 D보다 한 심도 하위인 D+1의 심도일 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 높이가 너비보다 긴 형태의 제1 부호화 단위(2410)를 분할 형태 정보에 따라 수평 방향으로 분할하여 복수개의 제2 부호화 단위(2412a, 2412b, 2414a, 2414b, 2414c)로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 너비가 높이보다 긴 형태의 제1 부호화 단위(2420)를 분할 형태 정보에 따라 수직 방향으로 분할하여 복수개의 제2 부호화 단위(2422a, 2422b, 2424a, 2424b, 2424c)로 분할할 수 있다.
일 실시예에 따라 비-정사각형 형태의 제1 부호화 단위(2410 또는 2420)에 대한 분할 형태 정보에 따라 결정되는 제2 부호화 단위(2412a, 2412b, 2414a, 2414b, 2116a, 2116b, 2116c, 2116d)는 긴 변의 길이에 기초하여 심도가 결정될 수 있다. 예를 들면, 정사각형 형태의 제2 부호화 단위(2412a, 2412b)의 한 변의 길이는 높이가 너비보다 긴 비-정사각형 형태의 제1 부호화 단위(2410)의 한 변의 길이의 1/2배이므로, 정사각형 형태의 제2 부호화 단위(2402a, 2402b, 2404a, 2404b)의 심도는 비-정사각형 형태의 제1 부호화 단위(2410)의 심도 D보다 한 심도 하위의 심도인 D+1이다.
나아가 영상 복호화 장치(200)가 분할 형태 정보에 기초하여 비-정사각형 형태의 제1 부호화 단위(2410)를 홀수개의 제2 부호화 단위(2414a, 2414b, 2414c)로 분할할 수 있다. 홀수개의 제2 부호화 단위(2414a, 2414b, 2414c)는 비-정사각형 형태의 제2 부호화 단위(2414a, 2414c) 및 정사각형 형태의 제2 부호화 단위(2414b)를 포함할 수 있다. 이 경우 비-정사각형 형태의 제2 부호화 단위(2414a, 2414c)의 긴 변의 길이 및 정사각형 형태의 제2 부호화 단위(2414b)의 한 변의 길이는 제1 부호화 단위(2410)의 한 변의 길이의 1/2배 이므로, 제2 부호화 단위(2414a, 2414b, 2414c)의 심도는 제1 부호화 단위(2410)의 심도인 D보다 한 심도 하위인 D+1의 심도일 수 있다. 영상 복호화 장치(200)는 제1 부호화 단위(2410)와 관련된 부호화 단위들의 심도를 결정하는 상기 방식에 대응하는 방식으로, 너비가 높이보다 긴 비-정사각형 형태의 제1 부호화 단위(2420)와 관련된 부호화 단위들의 심도를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 분할된 부호화 단위들의 구분을 위한 인덱스(PID)를 결정함에 있어서, 홀수개로 분할된 부호화 단위들이 서로 동일한 크기가 아닌 경우, 부호화 단위들 간의 크기 비율에 기초하여 인덱스를 결정할 수 있다. 도 24를 참조하면, 홀수개로 분할된 부호화 단위들(2414a, 2414b, 2414c) 중 가운데에 위치하는 부호화 단위(2414b)는 다른 부호화 단위들(2414a, 2414c)와 너비는 동일하지만 높이가 다른 부호화 단위들(2414a, 2414c)의 높이의 두 배일 수 있다. 즉, 이 경우 가운데에 위치하는 부호화 단위(2414b)는 다른 부호화 단위들(2414a, 2414c)의 두 개를 포함할 수 있다. 따라서, 스캔 순서에 따라 가운데에 위치하는 부호화 단위(2414b)의 인덱스(PID)가 1이라면 그 다음 순서에 위치하는 부호화 단위(2414c)는 인덱스가 2가 증가한 3일수 있다. 즉 인덱스의 값의 불연속성이 존재할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 이러한 분할된 부호화 단위들 간의 구분을 위한 인덱스의 불연속성의 존재 여부에 기초하여 홀수개로 분할된 부호화 단위들이 서로 동일한 크기가 아닌지 여부를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위로부터 분할되어 결정된 복수개의 부호화 단위들을 구분하기 위한 인덱스의 값에 기초하여 특정 분할 형태로 분할된 것인지를 결정할 수 있다. 도 24를 참조하면 영상 복호화 장치(200)는 높이가 너비보다 긴 직사각형 형태의 제1 부호화 단위(2410)를 분할하여 짝수개의 부호화 단위(2412a, 2412b)를 결정하거나 홀수개의 부호화 단위(2414a, 2414b, 2414c)를 결정할 수 있다. 영상 복호화 장치(200)는 복수개의 부호화 단위 각각을 구분하기 위하여 각 부호화 단위를 나타내는 인덱스(PID)를 이용할 수 있다. 일 실시예에 따라 PID는 각각의 부호화 단위의 소정 위치의 샘플(예를 들면, 좌측 상단 샘플)에서 획득될 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 부호화 단위의 구분을 위한 인덱스를 이용하여 분할되어 결정된 부호화 단위들 중 소정 위치의 부호화 단위를 결정할 수 있다. 일 실시예에 따라 높이가 너비보다 긴 직사각형 형태의 제1 부호화 단위(2410)에 대한 분할 형태 정보가 3개의 부호화 단위로 분할됨을 나타내는 경우 영상 복호화 장치(200)는 제1 부호화 단위(2410)를 3개의 부호화 단위(2414a, 2414b, 2414c)로 분할할 수 있다. 영상 복호화 장치(200)는 3개의 부호화 단위(2414a, 2414b, 2414c) 각각에 대한 인덱스를 할당할 수 있다. 영상 복호화 장치(200)는 홀수개로 분할된 부호화 단위 중 가운데 부호화 단위를 결정하기 위하여 각 부호화 단위에 대한 인덱스를 비교할 수 있다. 영상 복호화 장치(200)는 부호화 단위들의 인덱스에 기초하여 인덱스들 중 가운데 값에 해당하는 인덱스를 갖는 부호화 단위(2414b)를, 제1 부호화 단위(2410)가 분할되어 결정된 부호화 단위 중 가운데 위치의 부호화 단위로서 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 분할된 부호화 단위들의 구분을 위한 인덱스를 결정함에 있어서, 부호화 단위들이 서로 동일한 크기가 아닌 경우, 부호화 단위들 간의 크기 비율에 기초하여 인덱스를 결정할 수 있다. 도 24를 참조하면, 제1 부호화 단위(2410)가 분할되어 생성된 부호화 단위(2414b)는 다른 부호화 단위들(2414a, 2414c)와 너비는 동일하지만 높이가 다른 부호화 단위들(2414a, 2414c)의 높이의 두 배일 수 있다. 이 경우 가운데에 위치하는 부호화 단위(2414b)의 인덱스(PID)가 1이라면 그 다음 순서에 위치하는 부호화 단위(2414c)는 인덱스가 2가 증가한 3일수 있다. 이러한 경우처럼 균일하게 인덱스가 증가하다가 증가폭이 달라지는 경우, 영상 복호화 장치(200)는 다른 부호화 단위들과 다른 크기를 가지는 부호화 단위를 포함하는 복수개의 부호화 단위로 분할된 것으로 결정할 수 있다. 일 실시예에 따라 분할 형태 정보가 홀수개의 부호화 단위로 분할됨을 나타내는 경우, 영상 복호화 장치(200)는 홀수개의 부호화 단위 중 소정 위치의 부호화 단위(예를 들면 가운데 부호화 단위)가 다른 부호화 단위와 크기가 다른 형태로 현재 부호화 단위를 분할할 수 있다. 이 경우 영상 복호화 장치(200)는 부호화 단위에 대한 인덱스(PID)를 이용하여 다른 크기를 가지는 가운데 부호화 단위를 결정할 수 있다. 다만 상술한 인덱스, 결정하고자 하는 소정 위치의 부호화 단위의 크기 또는 위치는 일 실시예를 설명하기 위해 특정한 것이므로 이에 한정하여 해석되어서는 안되며, 다양한 인덱스, 부호화 단위의 위치 및 크기가 이용될 수 있는 것으로 해석되어야 한다.
일 실시예에 따라 영상 복호화 장치(200)는 부호화 단위의 재귀적인 분할이 시작되는 소정의 데이터 단위를 이용할 수 있다.
도 25는 일 실시예에 따라 픽쳐에 포함되는 복수개의 소정의 데이터 단위에 따라 복수개의 부호화 단위들이 결정된 것을 도시한다.
일 실시예에 따라 소정의 데이터 단위는 부호화 단위가 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 이용하여 재귀적으로 분할되기 시작하는 데이터 단위로 정의될 수 있다. 즉, 현재 픽쳐를 분할하는 복수개의 부호화 단위들이 결정되는 과정에서 이용되는 최상위 심도의 부호화 단위에 해당할 수 있다. 이하에서는 설명 상 편의를 위해 이러한 소정의 데이터 단위를 기준 데이터 단위라고 지칭하도록 한다.
일 실시예에 따라 기준 데이터 단위는 소정의 크기 및 형태를 나타낼 수 있다. 일 실시예에 따라, 기준 부호화 단위는 MxN의 샘플들을 포함할 수 있다. 여기서 M 및 N은 서로 동일할 수도 있으며, 2의 승수로 표현되는 정수일 수 있다. 즉, 기준 데이터 단위는 정사각형 또는 비-정사각형의 형태를 나타낼 수 있으며, 이후에 정수개의 부호화 단위로 분할될 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 픽쳐를 복수개의 기준 데이터 단위로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 현재 픽쳐를 분할하는 복수개의 기준 데이터 단위를 각각의 기준 데이터 단위에 대한 분할 정보를 이용하여 분할할 수 있다. 이러한 기준 데이터 단위의 분할 과정은 쿼드 트리(quad-tree)구조를 이용한 분할 과정에 대응될 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 픽쳐에 포함되는 기준 데이터 단위가 가질 수 있는 최소 크기를 미리 결정할 수 있다. 이에 따라, 영상 복호화 장치(200)는 최소 크기 이상의 크기를 갖는 다양한 크기의 기준 데이터 단위를 결정할 수 있고, 결정된 기준 데이터 단위를 기준으로 블록 형태 정보 및 분할 형태 정보를 이용하여 적어도 하나의 부호화 단위를 결정할 수 있다.
도 25를 참조하면, 영상 복호화 장치(200)는 정사각형 형태의 기준 부호화 단위(2500)를 이용할 수 있고, 또는 비-정사각형 형태의 기준 부호화 단위(2502)를 이용할 수도 있다. 일 실시예에 따라 기준 부호화 단위의 형태 및 크기는 적어도 하나의 기준 부호화 단위를 포함할 수 있는 다양한 데이터 단위(예를 들면, 시퀀스(sequence), 픽쳐(picture), 슬라이스(slice), 슬라이스 세그먼트(slice segment), 최대부호화단위 등)에 따라 결정될 수 있다.
일 실시예에 따라 영상 복호화 장치(200)의 수신부(210)는 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보 중 적어도 하나를 상기 다양한 데이터 단위마다 비트스트림으로부터 획득할 수 있다. 정사각형 형태의 기준 부호화 단위(2500)에 포함되는 적어도 하나의 부호화 단위가 결정되는 과정은 도 13의 현재 부호화 단위가 분할되는 과정을 통해 상술하였고, 비-정사각형 형태의 기준 부호화 단위(2500)에 포함되는 적어도 하나의 부호화 단위가 결정되는 과정은 도 14의 현재 부호화 단위(1400 또는 1450)가 분할되는 과정을 통해 상술하였으므로 자세한 설명은 생략하도록 한다.
일 실시예에 따라 영상 복호화 장치(200)는 소정의 조건에 기초하여 미리 결정되는 일부 데이터 단위에 따라 기준 부호화 단위의 크기 및 형태를 결정하기 위하여, 기준 부호화 단위의 크기 및 형태를 식별하기 위한 인덱스를 이용할 수 있다. 즉, 수신부(210)는 비트스트림으로부터 상기 다양한 데이터 단위(예를 들면, 시퀀스, 픽쳐, 슬라이스, 슬라이스 세그먼트, 최대부호화단위 등) 중 소정의 조건(예를 들면 슬라이스 이하의 크기를 갖는 데이터 단위)을 만족하는 데이터 단위로서 슬라이스, 슬라이스 세그먼트, 최대부호화 단위 등 마다, 기준 부호화 단위의 크기 및 형태의 식별을 위한 인덱스만을 획득할 수 있다. 영상 복호화 장치(200)는 인덱스를 이용함으로써 상기 소정의 조건을 만족하는 데이터 단위마다 기준 데이터 단위의 크기 및 형태를 결정할 수 있다. 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보를 상대적으로 작은 크기의 데이터 단위마다 비트스트림으로부터 획득하여 이용하는 경우, 비트스트림의 이용 효율이 좋지 않을 수 있으므로, 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보를 직접 획득하는 대신 상기 인덱스만을 획득하여 이용할 수 있다. 이 경우 기준 부호화 단위의 크기 및 형태를 나타내는 인덱스에 대응하는 기준 부호화 단위의 크기 및 형태 중 적어도 하나는 미리 결정되어 있을 수 있다. 즉, 영상 복호화 장치(200)는 미리 결정된 기준 부호화 단위의 크기 및 형태 중 적어도 하나를 인덱스에 따라 선택함으로써, 인덱스 획득의 기준이 되는 데이터 단위에 포함되는 기준 부호화 단위의 크기 및 형태 중 적어도 하나를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 하나의 최대 부호화 단위에 포함하는 적어도 하나의 기준 부호화 단위를 이용할 수 있다. 즉, 영상을 분할하는 최대 부호화 단위에는 적어도 하나의 기준 부호화 단위가 포함될 수 있고, 각각의 기준 부호화 단위의 재귀적인 분할 과정을 통해 부호화 단위가 결정될 수 있다. 일 실시예에 따라 최대 부호화 단위의 너비 및 높이 중 적어도 하나는 기준 부호화 단위의 너비 및 높이 중 적어도 하나의 정수배에 해당할 수 있다. 일 실시예에 따라 기준 부호화 단위의 크기는 최대부호화단위를 쿼드 트리 구조에 따라 n번 분할한 크기일 수 있다. 즉, 영상 복호화 장치(200)는 최대부호화단위를 쿼드 트리 구조에 따라 n 번 분할하여 기준 부호화 단위를 결정할 수 있고, 다양한 실시예들에 따라 기준 부호화 단위를 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 분할할 수 있다.
도 26은 일 실시예에 따라 픽쳐(2600)에 포함되는 기준 부호화 단위의 결정 순서를 결정하는 기준이 되는 프로세싱 블록을 도시한다.
일 실시예에 따라 영상 복호화 장치(200)는 픽쳐를 분할하는 적어도 하나의 프로세싱 블록을 결정할 수 있다. 프로세싱 블록이란, 영상을 분할하는 적어도 하나의 기준 부호화 단위를 포함하는 데이터 단위로서, 프로세싱 블록에 포함되는 적어도 하나의 기준 부호화 단위는 특정 순서대로 결정될 수 있다. 즉, 각각의 프로세싱 블록에서 결정되는 적어도 하나의 기준 부호화 단위의 결정 순서는 기준 부호화 단위가 결정될 수 있는 다양한 순서의 종류 중 하나에 해당할 수 있으며, 각각의 프로세싱 블록에서 결정되는 기준 부호화 단위 결정 순서는 프로세싱 블록마다 상이할 수 있다. 프로세싱 블록마다 결정되는 기준 부호화 단위의 결정 순서는 래스터 스캔(raster scan), Z 스캔(Z-scan), N 스캔(N-scan), 우상향 대각 스캔(up-right diagonal scan), 수평적 스캔(horizontal scan), 수직적 스캔(vertical scan) 등 다양한 순서 중 하나일 수 있으나, 결정될 수 있는 순서는 상기 스캔 순서들에 한정하여 해석되어서는 안 된다.
일 실시예에 따라 영상 복호화 장치(200)는 프로세싱 블록의 크기에 대한 정보를 획득하여 영상에 포함되는 적어도 하나의 프로세싱 블록의 크기를 결정할 수 있다. 영상 복호화 장치(200)는 프로세싱 블록의 크기에 대한 정보를 비트스트림으로부터 획득하여 영상에 포함되는 적어도 하나의 프로세싱 블록의 크기를 결정할 수 있다. 이러한 프로세싱 블록의 크기는 프로세싱 블록의 크기에 대한 정보가 나타내는 데이터 단위의 소정의 크기일 수 있다.
일 실시예에 따라 영상 복호화 장치(200)의 수신부(210)는 비트스트림으로부터 프로세싱 블록의 크기에 대한 정보를 특정의 데이터 단위마다 획득할 수 있다. 예를 들면 프로세싱 블록의 크기에 대한 정보는 영상, 시퀀스, 픽쳐, 슬라이스, 슬라이스 세그먼트 등의 데이터 단위로 비트스트림으로부터 획득될 수 있다. 즉 수신부(210)는 상기 여러 데이터 단위마다 비트스트림으로부터 프로세싱 블록의 크기에 대한 정보를 획득할 수 있고 영상 복호화 장치(200)는 획득된 프로세싱 블록의 크기에 대한 정보를 이용하여 픽쳐를 분할하는 적어도 하나의 프로세싱 블록의 크기를 결정할 수 있으며, 이러한 프로세싱 블록의 크기는 기준 부호화 단위의 정수배의 크기일 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 픽쳐(2600)에 포함되는 프로세싱 블록(2602, 2612)의 크기를 결정할 수 있다. 예를 들면, 영상 복호화 장치(200)는 비트스트림으로부터 획득된 프로세싱 블록의 크기에 대한 정보에 기초하여 프로세싱 블록의 크기를 결정할 수 있다. 도 26을 참조하면, 영상 복호화 장치(200)는 일 실시예에 따라 프로세싱 블록(2602, 2612)의 가로크기를 기준 부호화 단위 가로크기의 4배, 세로크기를 기준 부호화 단위의 세로크기의 4배로 결정할 수 있다. 영상 복호화 장치(200)는 적어도 하나의 프로세싱 블록 내에서 적어도 하나의 기준 부호화 단위가 결정되는 순서를 결정할 수 있다.
일 실시예에 따라, 영상 복호화 장치(200)는 프로세싱 블록의 크기에 기초하여 픽쳐(2600)에 포함되는 각각의 프로세싱 블록(2602, 2612)을 결정할 수 있고, 프로세싱 블록(2602, 2612)에 포함되는 적어도 하나의 기준 부호화 단위의 결정 순서를 결정할 수 있다. 일 실시예에 따라 기준 부호화 단위의 결정은 기준 부호화 단위의 크기의 결정을 포함할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 비트스트림으로부터 적어도 하나의 프로세싱 블록에 포함되는 적어도 하나의 기준 부호화 단위의 결정 순서에 대한 정보를 획득할 수 있고, 획득한 결정 순서에 대한 정보에 기초하여 적어도 하나의 기준 부호화 단위가 결정되는 순서를 결정할 수 있다. 결정 순서에 대한 정보는 프로세싱 블록 내에서 기준 부호화 단위들이 결정되는 순서 또는 방향으로 정의될 수 있다. 즉, 기준 부호화 단위들이 결정되는 순서는 각각의 프로세싱 블록마다 독립적으로 결정될 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 특정 데이터 단위마다 기준 부호화 단위의 결정 순서에 대한 정보를 비트스트림으로부터 획득할 수 있다. 예를 들면, 수신부(210)는 기준 부호화 단위의 결정 순서에 대한 정보를 영상, 시퀀스, 픽쳐, 슬라이스, 슬라이스 세그먼트, 프로세싱 블록 등의 데이터 단위로마다 비트스트림으로부터 획득할 수 있다. 기준 부호화 단위의 결정 순서에 대한 정보는 프로세싱 블록 내에서의 기준 부호화 단위 결정 순서를 나타내므로, 결정 순서에 대한 정보는 정수개의 프로세싱 블록을 포함하는 특정 데이터 단위 마다 획득될 수 있다.
영상 복호화 장치(200)는 일 실시예에 따라 결정된 순서에 기초하여 적어도 하나의 기준 부호화 단위를 결정할 수 있다.
일 실시예에 따라 수신부(210)는 비트스트림으로부터 프로세싱 블록(2602, 2612)과 관련된 정보로서, 기준 부호화 단위 결정 순서에 대한 정보를 획득할 수 있고, 영상 복호화 장치(200)는 상기 프로세싱 블록(2602, 2612)에 포함된 적어도 하나의 기준 부호화 단위를 결정하는 순서를 결정하고 부호화 단위의 결정 순서에 따라 픽쳐(2600)에 포함되는 적어도 하나의 기준 부호화 단위를 결정할 수 있다. 도 26을 참조하면, 영상 복호화 장치(200)는 각각의 프로세싱 블록(2602, 2612)과 관련된 적어도 하나의 기준 부호화 단위의 결정 순서(2604, 2614)를 결정할 수 있다. 예를 들면, 기준 부호화 단위의 결정 순서에 대한 정보가 프로세싱 블록마다 획득되는 경우, 각각의 프로세싱 블록(2602, 2612)과 관련된 기준 부호화 단위 결정 순서는 프로세싱 블록마다 상이할 수 있다. 프로세싱 블록(2602)과 관련된 기준 부호화 단위 결정 순서(2604)가 래스터 스캔(raster scan)순서인 경우, 프로세싱 블록(2602)에 포함되는 기준 부호화 단위는 래스터 스캔 순서에 따라 결정될 수 있다. 이에 반해 다른 프로세싱 블록(2612)과 관련된 기준 부호화 단위 결정 순서(2614)가 래스터 스캔 순서의 역순인 경우, 프로세싱 블록(2612)에 포함되는 기준 부호화 단위는 래스터 스캔 순서의 역순에 따라 결정될 수 있다.
영상 복호화 장치(200)는 일 실시예에 따라, 결정된 적어도 하나의 기준 부호화 단위를 복호화할 수 있다. 영상 복호화 장치(200)는 상술한 실시예를 통해 결정된 기준 부호화 단위에 기초하여 영상을 복호화 할 수 있다. 기준 부호화 단위를 복호화 하는 방법은 영상을 복호화 하는 다양한 방법들을 포함할 수 있다.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위의 형태를 나타내는 블록 형태 정보 또는 현재 부호화 단위를 분할하는 방법을 나타내는 분할 형태 정보를 비트스트림으로부터 획득하여 이용할 수 있다. 블록 형태 정보 또는 분할 형태 정보는 다양한 데이터 단위와 관련된 비트스트림에 포함될 수 있다. 예를 들면, 영상 복호화 장치(200)는 시퀀스 파라미터 세트(sequence parameter set), 픽쳐 파라미터 세트(picture parameter set), 비디오 파라미터 세트(video parameter set), 슬라이스 헤더(slice header), 슬라이스 세그먼트 헤더(slice segment header)에 포함된 블록 형태 정보 또는 분할 형태 정보를 이용할 수 있다. 나아가, 영상 복호화 장치(200)는 최대 부호화 단위, 기준 부호화 단위, 프로세싱 블록마다 비트스트림으로부터 블록 형태 정보 또는 분할 형태 정보에 대응하는 신택스를 비트스트림으로부터 획득하여 이용할 수 있다.
이제까지 다양한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
Claims (15)
- 부호화된 영상의 비트스트림을 수신하는 단계;상기 부호화된 영상을 복원한 복원 데이터를 생성하는 단계;상기 비트스트림으로부터 상기 부호화된 영상의 컨텐츠 타입에 관한 정보를 획득하는 단계;상기 컨텐츠 타입에 관한 정보에 기초하여, 하나 이상의 컴퓨터를 이용하여 인루프 필터링을 수행하도록 학습된 DNN(Deep Neural Network) 필터 모델을 결정하는 단계; 및상기 복원 데이터를 상기 결정된 DNN 필터 모델에 적용하여 인루프 필터링을 수행하는 단계를 포함하는, 영상 복호화 방법.
- 제 1 항에 있어서,상기 인루프 필터링은 디블록킹 필터링(Deblocking Filtering), 샘플 적응적 오프셋(Sample Adaptive Offset) 및 적응적 루프 필터링(Adaptive Loop Filtering) 중 적어도 하나의 동작을 포함하는, 영상 복호화 방법.
- 제 1 항에 있어서,상기 컨텐츠 타입에 관한 정보는, 상기 부호화된 영상의 픽셀 복잡도 및 움직임 정도를 나타내는 정보인, 영상 복호화 방법.
- 제 1 항에 있어서,상기 DNN 필터 모델은, 상기 DNN 필터 모델을 구성하는 복수의 네트워크 노드들 간의 연결 관계 및 상기 복수의 네트워크 노드들 각각의 가중치에 기반한 연산에 따라 상기 복원 데이터의 양자화 에러를 보상하도록 학습된 네트워크 모델인, 영상 복호화 방법.
- 제 1 항에 있어서,상기 DNN 필터 모델을 결정하는 단계는,상기 컨텐츠 타입에 관한 정보에 기초하여, 복수의 DNN 필터 모델 후보 중에서 상기 부호화된 영상의 컨텐츠 타입에 대응하는 상기 DNN 필터 모델을 결정하는 단계를 포함하는, 영상 복호화 방법.
- 제 5 항에 있어서,상기 복수의 DNN 필터 모델 후보의 각각은, 미리 설정된 컨텐츠 타입에 대해 인루프 필터링을 수행하도록 학습된 것인, 영상 복호화 방법.
- 제 5 항에 있어서,상기 DNN 필터 모델을 결정하는 단계는,상기 복수의 DNN 필터 모델 후보 중에서 상기 부호화된 영상의 압축 강도에 대응하는 상기 DNN 필터 모델을 결정하는 단계를 더 포함하는, 영상 복호화 방법.
- 제 1 항에 있어서,상기 인루프 필터링을 수행하는 단계는,상기 복원 데이터 및 복원 픽처 버퍼에 저장된 하나 이상의 참조 영상을 상기 결정된 DNN 필터 모델에 적용하여 인루프 필터링을 수행하는 단계를 포함하는, 영상 복호화 방법.
- 제 1 항에 있어서,상기 인루프 필터링은 CNN(Convolutional Neural Network) 학습 모델에 기반하여 수행되는, 영상 복호화 방법.
- 부호화된 영상의 비트스트림을 수신하는 수신부; 및상기 부호화된 영상을 복원한 복원 데이터를 생성하고, 상기 비트스트림으로부터 상기 부호화된 영상의 컨텐츠 타입에 관한 정보를 획득하고, 상기 컨텐츠 타입에 관한 정보에 기초하여, 하나 이상의 컴퓨터를 이용하여 인루프 필터링을 수행하도록 학습된 DNN(Deep Neural Network) 필터 모델을 결정하고, 상기 복원 데이터를 상기 결정된 DNN 필터 모델에 적용하여 인루프 필터링을 수행하는 복호화부를 포함하는, 영상 복호화 장치.
- 입력 영상의 컨텐츠 타입을 판별하는 단계;상기 컨텐츠 타입에 기초하여, 하나 이상의 컴퓨터를 이용하여 인루프 필터링을 수행하도록 학습된 DNN(Deep Neural Network) 필터 모델을 결정하는 단계;부호화된 레지듀얼 데이터로부터 복원된 상기 입력 영상의 복원 데이터를, 상기 결정된 DNN 필터 모델에 적용하여 인루프 필터링된 데이터를 생성하는 단계;상기 인루프 필터링된 데이터에 기초하여 상기 입력 영상을 예측한 예측 데이터를 생성하고, 상기 입력 영상 및 상기 예측 데이터를 이용하여 레지듀얼 데이터를 생성하는 단계;상기 컨텐츠 타입에 관한 정보 및 상기 레지듀얼 데이터를 부호화한 비트스트림을 생성하는 단계; 및상기 비트스트림을 전송하는 단계를 포함하는, 영상 부호화 방법.
- 제 11 항에 있어서,상기 인루프 필터링은 디블록킹 필터링(Deblocking Filtering), 샘플 적응적 오프셋(Sample Adaptive Offset) 및 적응적 루프 필터링(Adaptive Loop Filtering) 중 적어도 하나의 동작을 포함하는, 영상 복호화 방법.
- 제 11 항에 있어서,상기 컨텐츠 타입에 관한 정보는, 상기 입력 영상의 픽셀 복잡도 및 움직임 정도를 나타내는 정보인, 영상 부호화 방법.
- 제 11 항에 있어서,상기 DNN 필터 모델은, 상기 DNN 필터 모델을 구성하는 복수의 네트워크 노드들 간의 연결 관계 및 상기 복수의 네트워크 노드들 각각의 가중치에 기반한 연산에 따라 상기 복원된 데이터의 양자화 에러를 보상하도록 학습된 네트워크 모델인, 영상 부호화 방법.
- 제 11 항에 있어서,상기 DNN 필터 모델을 결정하는 단계는,상기 컨텐츠 타입에 관한 정보에 기초하여, 복수의 DNN 필터 모델 후보 중에서 상기 부호화된 영상의 컨텐츠 타입에 대응하는 상기 DNN 필터 모델을 결정하는 단계를 포함하는, 영상 부호화 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201880045117.8A CN111052740B (zh) | 2017-07-06 | 2018-02-06 | 用于编码或解码图像的方法和装置 |
KR1020197038236A KR102553147B1 (ko) | 2017-07-06 | 2018-02-06 | 영상을 부호화 또는 복호화하는 방법 및 장치 |
US16/622,139 US11218695B2 (en) | 2017-07-06 | 2018-02-06 | Method and device for encoding or decoding image |
EP18828204.0A EP3621304A1 (en) | 2017-07-06 | 2018-02-06 | Method and device for encoding or decoding image |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KRPCT/KR2017/007263 | 2017-07-06 | ||
PCT/KR2017/007263 WO2019009448A1 (ko) | 2017-07-06 | 2017-07-06 | 영상을 부호화 또는 복호화하는 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019009488A1 true WO2019009488A1 (ko) | 2019-01-10 |
Family
ID=64950160
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2017/007263 WO2019009448A1 (ko) | 2017-07-06 | 2017-07-06 | 영상을 부호화 또는 복호화하는 방법 및 장치 |
PCT/KR2018/001539 WO2019009488A1 (ko) | 2017-07-06 | 2018-02-06 | 영상을 부호화 또는 복호화하는 방법 및 장치 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2017/007263 WO2019009448A1 (ko) | 2017-07-06 | 2017-07-06 | 영상을 부호화 또는 복호화하는 방법 및 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11218695B2 (ko) |
EP (1) | EP3621304A1 (ko) |
KR (1) | KR102553147B1 (ko) |
CN (1) | CN111052740B (ko) |
WO (2) | WO2019009448A1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110991201A (zh) * | 2019-11-25 | 2020-04-10 | 浙江大华技术股份有限公司 | 条码检测方法及相关装置 |
CN111726637A (zh) * | 2019-03-22 | 2020-09-29 | 腾讯美国有限责任公司 | 使用sei消息进行视频后处理的方法和装置 |
CN112750094A (zh) * | 2020-12-30 | 2021-05-04 | 合肥工业大学 | 一种视频处理方法及*** |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10999602B2 (en) | 2016-12-23 | 2021-05-04 | Apple Inc. | Sphere projected motion estimation/compensation and mode decision |
US11259046B2 (en) | 2017-02-15 | 2022-02-22 | Apple Inc. | Processing of equirectangular object data to compensate for distortion by spherical projections |
US10924747B2 (en) | 2017-02-27 | 2021-02-16 | Apple Inc. | Video coding techniques for multi-view video |
US11093752B2 (en) | 2017-06-02 | 2021-08-17 | Apple Inc. | Object tracking in multi-view video |
WO2019031410A1 (ja) * | 2017-08-10 | 2019-02-14 | シャープ株式会社 | 画像フィルタ装置、画像復号装置、および画像符号化装置 |
EP3451293A1 (en) * | 2017-08-28 | 2019-03-06 | Thomson Licensing | Method and apparatus for filtering with multi-branch deep learning |
EP3685577A4 (en) * | 2017-10-12 | 2021-07-28 | MediaTek Inc. | METHOD AND DEVICE OF A NEURAL NETWORK FOR VIDEO ENCODING |
US11889070B2 (en) * | 2018-03-23 | 2024-01-30 | Sharp Kabushiki Kaisha | Image filtering apparatus, image decoding apparatus, and image coding apparatus |
US20190351914A1 (en) * | 2018-05-15 | 2019-11-21 | Pony.ai, Inc. | System and method for identifying suspicious points in driving records and improving driving |
US10863206B2 (en) * | 2018-11-08 | 2020-12-08 | Alibaba Group Holding Limited | Content-weighted deep residual learning for video in-loop filtering |
US10999606B2 (en) * | 2019-01-08 | 2021-05-04 | Intel Corporation | Method and system of neural network loop filtering for video coding |
JP7141007B2 (ja) * | 2019-05-10 | 2022-09-22 | 日本電信電話株式会社 | 符号化装置、符号化方法及びプログラム |
US10785681B1 (en) * | 2019-05-31 | 2020-09-22 | Huawei Technologies Co., Ltd. | Methods and apparatuses for feature-driven machine-to-machine communications |
US11443057B2 (en) * | 2019-10-24 | 2022-09-13 | At&T Intellectual Property I, L.P. | Encoding and concealing information using deep learning |
JP7479137B2 (ja) * | 2019-12-03 | 2024-05-08 | キヤノン株式会社 | 信号処理装置および信号処理方法、システム並びにプログラム |
CN113727103B (zh) | 2020-05-25 | 2022-08-12 | 腾讯科技(深圳)有限公司 | 视频编码、解码方法、装置、电子设备及存储介质 |
CN113727106B (zh) * | 2020-05-25 | 2024-03-26 | 腾讯科技(深圳)有限公司 | 视频编码、解码方法、装置、电子设备及存储介质 |
CN113784146A (zh) * | 2020-06-10 | 2021-12-10 | 华为技术有限公司 | 环路滤波方法和装置 |
US11140393B1 (en) * | 2020-06-10 | 2021-10-05 | Novatek Microelectronics Corp. | Display device, encoder with adaptive quantization parameter and image processing method |
CN111711824B (zh) * | 2020-06-29 | 2021-07-02 | 腾讯科技(深圳)有限公司 | 视频编解码中的环路滤波方法、装置、设备及存储介质 |
CN114066914A (zh) * | 2020-07-30 | 2022-02-18 | 华为技术有限公司 | 一种图像处理方法以及相关设备 |
CN112468826B (zh) * | 2020-10-15 | 2021-09-24 | 山东大学 | 一种基于多层gan的vvc环路滤波方法及*** |
TWI806199B (zh) * | 2020-10-20 | 2023-06-21 | 大陸商華為技術有限公司 | 特徵圖資訊的指示方法,設備以及電腦程式 |
US11716469B2 (en) * | 2020-12-10 | 2023-08-01 | Lemon Inc. | Model selection in neural network-based in-loop filter for video coding |
US11599360B2 (en) * | 2020-12-14 | 2023-03-07 | Cognitive Science & Solutions, Inc. | AI synaptic coprocessor |
US20220201295A1 (en) * | 2020-12-21 | 2022-06-23 | Electronics And Telecommunications Research Institute | Method, apparatus and storage medium for image encoding/decoding using prediction |
CN116648906A (zh) * | 2020-12-24 | 2023-08-25 | 华为技术有限公司 | 通过指示特征图数据进行编码 |
US20220222505A1 (en) * | 2021-01-11 | 2022-07-14 | Tencent America LLC | Multi-task neural network by micro-structured parameter sharing for multi-quality loop filter |
US11490085B2 (en) * | 2021-01-14 | 2022-11-01 | Tencent America LLC | Model sharing by masked neural network for loop filter with quality inputs |
JPWO2022210661A1 (ko) * | 2021-03-30 | 2022-10-06 | ||
US20220337824A1 (en) * | 2021-04-07 | 2022-10-20 | Beijing Dajia Internet Information Technology Co., Ltd. | System and method for applying neural network based sample adaptive offset for video coding |
US11647216B2 (en) | 2021-04-12 | 2023-05-09 | Tencent America LLC | Techniques for signaling neural network topology, parameters, and processing information in video stream |
US11917162B2 (en) * | 2021-04-30 | 2024-02-27 | Tencent America LLC | Content-adaptive online training with feature substitution in neural image compression |
KR20220157147A (ko) * | 2021-05-20 | 2022-11-29 | 삼성전자주식회사 | 이미지를 처리하기 위한 방법 및 장치 |
CN113422966B (zh) * | 2021-05-27 | 2024-05-24 | 绍兴市北大信息技术科创中心 | 一种多模型cnn环路滤波方法 |
CN117678221A (zh) * | 2021-07-20 | 2024-03-08 | Oppo广东移动通信有限公司 | 图像编解码及处理方法、装置及设备 |
MX2024001286A (es) * | 2021-08-06 | 2024-02-13 | Samsung Electronics Co Ltd | Dispositivo y metodo para filtrado de imagenes basado en inteligencia artificial (ia). |
WO2023014031A1 (ko) * | 2021-08-06 | 2023-02-09 | 삼성전자 주식회사 | 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법 및 장치 |
WO2023014065A1 (ko) * | 2021-08-06 | 2023-02-09 | 삼성전자 주식회사 | 영상에 대한 ai 기반 필터링을 위한 장치 및 방법 |
US20230104702A1 (en) * | 2021-10-01 | 2023-04-06 | Disney Enterprises, Inc. | Transformer-based shape models |
WO2023059235A1 (en) * | 2021-10-08 | 2023-04-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Combining deblock filtering and another filtering for video encoding and/or decoding |
CN114173130B (zh) * | 2021-12-03 | 2023-02-10 | 电子科技大学 | 一种适用于低码率条件的深度神经网络的环路滤波方法 |
WO2024008814A1 (en) * | 2022-07-05 | 2024-01-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Filtering for video encoding and decoding |
CN117412040A (zh) * | 2022-07-06 | 2024-01-16 | 维沃移动通信有限公司 | 环路滤波方法、装置及设备 |
KR20240019638A (ko) * | 2022-08-04 | 2024-02-14 | 삼성전자주식회사 | 크로마 성분 예측을 수행하는 ai에 기반한 비디오 복호화 장치 및 방법, 및 비디오 부호화 장치 및 방법 |
WO2024107021A1 (ko) * | 2022-11-17 | 2024-05-23 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 |
CN116702876B (zh) * | 2023-04-27 | 2024-04-12 | 贵州大学 | 一种基于预处理的图像对抗防御方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110049570A (ko) * | 2009-11-05 | 2011-05-12 | 홍익대학교 산학협력단 | 경계선 성분 분류 기반 신경회로망 모델을 이용한 영상 화질 개선방법 |
KR20170000767A (ko) * | 2015-06-24 | 2017-01-03 | 삼성전자주식회사 | 신경망, 신경망 학습 방법 및 이미지 신호 처리 튜닝 시스템 |
KR20170013302A (ko) * | 2014-10-01 | 2017-02-06 | 엘지전자 주식회사 | 향상된 예측 필터를 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치 |
WO2017036370A1 (en) * | 2015-09-03 | 2017-03-09 | Mediatek Inc. | Method and apparatus of neural network based processing in video coding |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2638465A1 (en) * | 2007-08-01 | 2009-02-01 | Jean-Yves Chouinard | Learning filters for enhancing the quality of block coded still and video images |
KR101810263B1 (ko) * | 2010-03-09 | 2017-12-18 | 톰슨 라이센싱 | 분류-기반 루프 필터에 대한 방법들 및 장치 |
US9924166B2 (en) * | 2012-08-06 | 2018-03-20 | Vid Scale, Inc. | Sampling grid information for spatial layers in multi-layer video coding |
US9870598B2 (en) * | 2013-04-26 | 2018-01-16 | Nvidia Corporation | Low complexity adaptive filtering for mobile captures |
KR102276854B1 (ko) * | 2014-07-31 | 2021-07-13 | 삼성전자주식회사 | 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치 |
US11221990B2 (en) | 2015-04-03 | 2022-01-11 | The Mitre Corporation | Ultra-high compression of images based on deep learning |
US9501724B1 (en) | 2015-06-09 | 2016-11-22 | Adobe Systems Incorporated | Font recognition and font similarity learning using a deep neural network |
EP3310058B1 (en) * | 2015-06-12 | 2023-02-22 | Panasonic Intellectual Property Management Co., Ltd. | Image coding method, image decoding method, image coding device and image decoding device |
KR102309910B1 (ko) * | 2015-11-19 | 2021-10-08 | 한국전자기술연구원 | 비디오 부호화기의 최적 모드 결정 장치 및 최적 모드 결정을 이용한 비디오 부호화 방법 |
US10382770B2 (en) * | 2017-02-06 | 2019-08-13 | Google Llc | Multi-level machine learning-based early termination in partition search for video encoding |
-
2017
- 2017-07-06 WO PCT/KR2017/007263 patent/WO2019009448A1/ko active Application Filing
-
2018
- 2018-02-06 CN CN201880045117.8A patent/CN111052740B/zh active Active
- 2018-02-06 EP EP18828204.0A patent/EP3621304A1/en not_active Ceased
- 2018-02-06 US US16/622,139 patent/US11218695B2/en active Active
- 2018-02-06 WO PCT/KR2018/001539 patent/WO2019009488A1/ko unknown
- 2018-02-06 KR KR1020197038236A patent/KR102553147B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110049570A (ko) * | 2009-11-05 | 2011-05-12 | 홍익대학교 산학협력단 | 경계선 성분 분류 기반 신경회로망 모델을 이용한 영상 화질 개선방법 |
KR20170013302A (ko) * | 2014-10-01 | 2017-02-06 | 엘지전자 주식회사 | 향상된 예측 필터를 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치 |
KR20170000767A (ko) * | 2015-06-24 | 2017-01-03 | 삼성전자주식회사 | 신경망, 신경망 학습 방법 및 이미지 신호 처리 튜닝 시스템 |
WO2017036370A1 (en) * | 2015-09-03 | 2017-03-09 | Mediatek Inc. | Method and apparatus of neural network based processing in video coding |
Non-Patent Citations (2)
Title |
---|
PARK, WOON SUNG ET AL.: "CNN (Convolutional Neural Network) Based In-loop Filter in HEVC", THE KOREAN INSTITUTE OF BROADCAST AND MEDIA ENGINEERS SUMMER CONFERENCE, 19 June 2016 (2016-06-19), pages 369 - 372, XP055650614 * |
See also references of EP3621304A4 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111726637A (zh) * | 2019-03-22 | 2020-09-29 | 腾讯美国有限责任公司 | 使用sei消息进行视频后处理的方法和装置 |
CN111726637B (zh) * | 2019-03-22 | 2024-04-16 | 腾讯美国有限责任公司 | 使用sei消息进行视频后处理的方法和装置 |
CN110991201A (zh) * | 2019-11-25 | 2020-04-10 | 浙江大华技术股份有限公司 | 条码检测方法及相关装置 |
CN110991201B (zh) * | 2019-11-25 | 2023-04-18 | 浙江大华技术股份有限公司 | 条码检测方法及相关装置 |
CN112750094A (zh) * | 2020-12-30 | 2021-05-04 | 合肥工业大学 | 一种视频处理方法及*** |
CN112750094B (zh) * | 2020-12-30 | 2022-12-09 | 合肥工业大学 | 一种视频处理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
US11218695B2 (en) | 2022-01-04 |
CN111052740A (zh) | 2020-04-21 |
KR20200016885A (ko) | 2020-02-17 |
EP3621304A4 (en) | 2020-03-11 |
KR102553147B1 (ko) | 2023-07-07 |
EP3621304A1 (en) | 2020-03-11 |
US20200120340A1 (en) | 2020-04-16 |
WO2019009448A1 (ko) | 2019-01-10 |
CN111052740B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019009488A1 (ko) | 영상을 부호화 또는 복호화하는 방법 및 장치 | |
WO2019009491A1 (ko) | 영상을 부호화 또는 복호화하는 방법 및 장치 | |
WO2019009489A1 (ko) | 영상을 부호화/복호화 하는 방법 및 그 장치 | |
WO2020262995A1 (ko) | 2차 변환을 이용하는 비디오 신호 처리 방법 및 장치 | |
WO2019009490A1 (ko) | 영상을 부호화/복호화 하는 방법 및 그 장치 | |
WO2017014585A1 (ko) | 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치 | |
WO2020080698A1 (ko) | 영상의 주관적 품질을 평가하는 방법 및 장치 | |
WO2017065525A2 (ko) | 영상을 부호화 또는 복호화하는 방법 및 장치 | |
WO2019009452A1 (ko) | 영상을 부호화 또는 복호화하는 방법 및 장치 | |
WO2011068360A2 (ko) | 고해상도 영상의 부호화/복호화 방법 및 이를 수행하는 장치 | |
WO2011126273A2 (en) | Method and apparatus for encoding video by compensating for pixel value according to pixel groups, and method and apparatus for decoding video by the same | |
WO2017010850A1 (ko) | 분리 가능한 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치 | |
WO2021201642A1 (ko) | 비디오 송신 방법, 비디오 송신 장치, 비디오 수신 방법, 비디오 수신 장치 | |
WO2013002619A2 (ko) | 고정소수점 변환을 위한 비트뎁스 조절을 수반하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치 | |
WO2016129872A1 (ko) | 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치 | |
WO2021177652A1 (ko) | 피쳐 양자화/역양자화를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 | |
WO2016195455A1 (ko) | 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치 | |
WO2016190690A1 (ko) | 적응적인 분리가능한 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치 | |
WO2018044125A1 (ko) | 레이어드 기븐스 변환을 이용하여 변환을 수행하는 방법 및 장치 | |
WO2021054797A1 (ko) | 스케일링 프로세스를 사용하는 비디오 신호 처리 방법 및 장치 | |
WO2015137785A1 (ko) | 샘플값 보상을 위한 영상 부호화 방법과 그 장치, 및 샘플값 보상을 위한 영상 복호화 방법과 그 장치 | |
WO2018101685A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2020242183A1 (ko) | 광각 인트라 예측 및 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2020130661A1 (ko) | 이차 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2021172956A1 (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: 18828204 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2018828204 Country of ref document: EP Effective date: 20191203 |
|
ENP | Entry into the national phase |
Ref document number: 20197038236 Country of ref document: KR Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |