WO2019009452A1 - Method and device for encoding or decoding image - Google Patents

Method and device for encoding or decoding image Download PDF

Info

Publication number
WO2019009452A1
WO2019009452A1 PCT/KR2017/007270 KR2017007270W WO2019009452A1 WO 2019009452 A1 WO2019009452 A1 WO 2019009452A1 KR 2017007270 W KR2017007270 W KR 2017007270W WO 2019009452 A1 WO2019009452 A1 WO 2019009452A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
prediction
unit
encoding
encoding unit
Prior art date
Application number
PCT/KR2017/007270
Other languages
French (fr)
Korean (ko)
Inventor
이종석
김재환
박영오
박정훈
전선영
최광표
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to PCT/KR2017/007270 priority Critical patent/WO2019009452A1/en
Priority to PCT/KR2018/001552 priority patent/WO2019009491A1/en
Priority to CN201880045127.1A priority patent/CN110892723B/en
Priority to KR1020207000379A priority patent/KR102651878B1/en
Priority to US16/625,461 priority patent/US11197013B2/en
Publication of WO2019009452A1 publication Critical patent/WO2019009452A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Definitions

  • This disclosure relates to methods of processing images using artificial intelligence (AI) that utilizes machine learning algorithms. Specifically, the present disclosure relates to a technique for generating a predictive image using a deep neural network (DNN) in an image encoding and decoding process.
  • 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; Determining at least one block segmented from the encoded image; Performing prediction based on a DNN (Deep Neural Network) on a current block among the one or more blocks to generate prediction data for the current block; Extracting residual data of the current block from the bitstream; And reconstructing the current block using the prediction data and the residual data.
  • DNN Deep Neural Network
  • the DNN may be a network that has been learned to generate the prediction data that minimizes an error with the original data of the current block.
  • the generating of the prediction data may include generating first prediction data by performing a first prediction based on a DNN for the current block, Generating second prediction data by performing a second prediction based on DNN with respect to the first prediction data; And generating the prediction data using the first prediction data and the second prediction data.
  • the first prediction may be performed based on a RNN (Recurrent Neural Network), and the second prediction may be performed based on a CNN (Convolutional Neural Network).
  • RNN Recurrent Neural Network
  • CNN Convolutional Neural Network
  • the RNN may be a network that is learned to generate the first prediction data that minimizes an error with the original data of the current block.
  • the CNN may be a network number that is learned to generate the second prediction data that minimizes an error between the original data of the current block and the value obtained by subtracting the first prediction data have.
  • a method of decoding an image comprising the steps of: generating neighboring blocks adjacent to the current block by LSTM (long short) in the RNN along a predetermined direction on a time step- -term memory) into each cell of the network; Generating a cell output for the time step using a plurality of gates in each cell; And processing the cell output via a fully connected network of the RNN.
  • the inputting step may include: determining one or more input angles based on the current block; Determining a neighboring block for each input angle located along each input angle; And inputting the neighboring blocks for each input angle to each cell of the LSTM network in the clockwise order.
  • the input order between neighboring blocks located at the same input angle may be an order of positions closer to the current block have.
  • the inputting may include inputting the neighboring blocks to each cell of the LSTM network in the order of Z scan.
  • the generating of the second prediction data may further include the step of generating the second prediction data by adding the first prediction data and the neighboring reconstructed data adjacent to the current block to a convolutional layer of the CNN Inputting; And performing a convolution operation using a plurality of filters of the convolution layer.
  • the generating of the prediction data may include: determining one or more reference pictures and one or more reference block positions referenced by the current block; And generating the prediction data using the one or more reference pictures and the one or more reference block positions.
  • information on the structure of the DNN and information on a block for performing prediction based on the DNN may be a video parameter set, a sequence parameter set, and a picture parameter set Can be obtained from at least one.
  • an apparatus for decoding an image comprising: a receiver for receiving a bitstream of an encoded image; A block determining unit for determining one or more blocks divided from the encoded image; A prediction unit for generating prediction data for the current block by performing prediction based on DNN (Deep Neural Network) on the current block among the one or more blocks; And a decompression unit for extracting the residual data of the current block from the bitstream and restoring the current block using the prediction data and the residual data.
  • DNN Deep Neural Network
  • a method of encoding an image comprising: determining one or more blocks for dividing an image; Performing prediction based on a DNN (Deep Neural Network) on a current block among the one or more blocks to generate prediction data for the current block; Generating residual data of the current block using original data corresponding to the current block and the prediction data; And generating a bitstream obtained by coding the residual data.
  • DNN Deep Neural Network
  • the signaling of the prediction information can be omitted, and the coding and decoding efficiency can be enhanced.
  • 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.
  • 3 is a diagram showing an example of prediction information used for intra prediction.
  • 4 is a diagram showing an example of prediction information used for inter prediction.
  • FIG. 5 is a conceptual diagram illustrating a DNN-based prediction process according to an embodiment.
  • FIG. 6 is a diagram illustrating a DNN-based intra prediction process according to an exemplary embodiment of the present invention.
  • FIG. 7 is a diagram showing a structure of an RNN.
  • FIG. 8 is a diagram showing the structure of the LSTM.
  • 9A is a diagram showing an example of RNN input data for generating first predictive data.
  • 9B is a diagram showing another example of RNN input data for generating first predictive data.
  • 9C is a diagram showing another example of RNN input data for generating first predictive data.
  • 10 is a view showing the structure of CNN.
  • FIG. 11 is a diagram showing an example of CNN input data for generating second predictive data.
  • FIG. 12 is a diagram illustrating a DNN-based inter prediction process according to an embodiment.
  • FIG. 13 is a diagram illustrating a structure of a bitstream according to an embodiment.
  • FIG. 14 shows a schematic block diagram of an image encoding apparatus 1400 according to an embodiment.
  • FIG. 15 shows a schematic block diagram of an image decoding apparatus 1500 according to an embodiment.
  • 16 is a flowchart illustrating an image encoding method according to an embodiment.
  • 17 is a flowchart illustrating a video decoding method according to an embodiment.
  • FIG. 18 illustrates a process in which at least one encoding unit is determined by dividing a current encoding unit according to an embodiment.
  • FIG. 19 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. 20 illustrates a process in which an encoding unit is divided based on at least one of block type information and division type information according to an embodiment.
  • FIG. 21 illustrates a method of determining a predetermined encoding unit among odd number of encoding units according to an embodiment.
  • FIG. 22 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. 23 illustrates a process in which if the 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. 24 illustrates a process in which a first encoding unit is divided according to an embodiment to determine at least one encoding unit.
  • FIG. 26 illustrates a process of dividing a square-shaped encoding unit when the division type information can not indicate division into four square-shaped encoding units according to an embodiment.
  • FIG. 27 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. 28 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. 29 shows a depth and a PID (PID) for a coding unit classification that can be determined according to the type and size of coding units according to an exemplary embodiment.
  • PID PID
  • FIG. 30 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. 31 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. More specifically, the present invention relates to performing intraprediction or inter prediction using a Deep Neural Network (DNN) in an image encoding and decoding process.
  • AI artificial intelligence
  • DNN Deep Neural Network
  • FIG. 1 An overall operation related to encoding and decoding of an image will be described with reference to FIGS. 1 and 2.
  • FIG. The intra prediction and inter prediction methods will be described below with reference to FIGS.
  • a method of generating a predictive image using artificial intelligence will be described below with reference to FIGS. 5 to 17.
  • FIG. A method of determining a data unit of an image according to an embodiment will be described below with reference to FIGS. 18 to 31.
  • 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 units in the block form and the division form will be described later in more detail with reference to FIG. 18 to 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 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 information on whether to perform intra prediction or inter prediction.
  • the intra-prediction unit 120 can perform intra-prediction based on DNN, and the inter-prediction unit 115 can perform inter-prediction based on DNN.
  • 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 deblocking only, or may perform sample adaptive offset (SAO) filtering after deblocking.
  • 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 information on whether to perform intra prediction or inter prediction from the bit stream 205.
  • the intra predictor 240 can perform intraprediction based on DNN, and the inter predictor 235 can perform inter prediction based on DNN.
  • 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 250 may perform deblocking only, or may perform SAO filtering after deblocking.
  • the present disclosure includes techniques for applying DNN in performing intra-prediction or inter-prediction. Prior to describing the prediction operation, the DNN will be briefly described.
  • the Neural Network refers 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 DNN learns through the backpropagation algorithm is to start with the input layer and then use the reference 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 input data set is the restored data of the current block used for intra prediction
  • the output data set is the predicted data of the current block that minimizes the error with the original data Lt; / RTI &gt
  • the input data set is the data of the past and / or future restored image referenced by the current block
  • the output data set includes the current block Lt; / RTI &gt
  • the error between the original data and the prediction data can be measured based on the R-D cost.
  • the predictive information (for example, prediction information) from the image coding apparatus 100 to the image decoding apparatus 200, Prediction mode, reference picture index, etc.) need not be transmitted.
  • the image decoding apparatus 200 can generate a prediction block without using prediction information by using a DNN having the same structure as the image encoding apparatus 100.
  • information on the network structure of the DNN may be transmitted from the image encoding apparatus 100 to the image decoding apparatus 200.
  • the DNN according to one embodiment is not limited to the above-described structure, and may be formed by networks of various structures.
  • DNNs 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
  • the prediction based on the DNN does not require the signaling of the prediction information.
  • the prediction information used in a conventional prediction technique will be described with reference to FIG. 3 to FIG.
  • 3 is a diagram showing an example of prediction information used for intra prediction.
  • Intra prediction is a prediction technique that allows only spatial reference, and refers to predicting a current block using pixels of a block adjacent to a block to be predicted.
  • the modes used in intra prediction may exist in various forms as shown in FIG.
  • the intra prediction modes shown in FIG. 3 include a vertical mode, a horizontal mode, a DC (direct current) mode, a diagonal down-left mode, a diagonal down-right mode, There are a vertical right mode, a vertical left mode, a horizontal up mode, and a horizontal down mode.
  • the pixel values of the pixels A to D adjacent to the upper side of the current block of the size of 4x4 are predicted as pixel values of the 4x4 current block. That is, the value of the pixel A is divided into four pixel values included in the first column of the 4x4 current block, the value of the pixel B is divided into four pixel values included in the second column of the 4x4 current block, Is predicted as the four pixel values included in the third column of the 4x4 current block and the pixel D value is predicted as the four pixel values included in the fourth column of the 4x4 current block.
  • the prediction block generated through intraprediction which extends values of neighboring pixels in a predetermined direction, may have a certain direction according to the prediction mode.
  • prediction information such as a prediction mode is signaled, and the signaled prediction information is used for generating a prediction block.
  • intra prediction based on DNN does not require signaling of prediction information.
  • the learned DNN has the generalization ability to analyze the input pattern and find the feature to generate the correct prediction image.
  • the intra prediction based on the DNN according to an embodiment uses the learned DNN so that the error between the data of the prediction block and the data of the original image is minimized.
  • 4 is a diagram showing an example of prediction information used for inter prediction.
  • Intra prediction is based on the fact that there is a high correlation between adjacent pixels in one picture. Similarly, each picture constituting a video has a high correlation with each other in terms of time. Therefore, the prediction value for the block in the current picture can be generated from the picture that has been reconstructed at the previous time.
  • the technique of generating a prediction block from a picture reconstructed at a previous time is referred to as inter prediction.
  • the inter prediction can predict an unknown pixel value of the current picture from the pixel value of an already known picture constituting the previous picture when the picture of the current picture is similar to that of the previous picture.
  • This inter prediction is based on the Motion Prediction technique. Motion prediction is performed by referring to a previous picture based on a time axis or referring to both a previous picture and a future picture. A picture referred to in encoding or decoding a current picture is referred to as a reference picture.
  • the image is composed of a series of still images. These still images are divided into a group of pictures (GOP). Each still image is referred to as a picture or a frame.
  • One picture group includes an I picture 410, a P picture 420, and a B picture 430.
  • the P picture 420 and the B picture 430 are subjected to motion estimation and motion compensation using the reference pictures, To be coded.
  • the B picture 430 is a picture that is coded by predicting a past picture and a future picture in forward and backward directions, that is, in both directions.
  • motion estimation and motion compensation for coding a P-picture 420 use an I-picture 410 as a reference picture.
  • the motion estimation and motion compensation for coding the B picture 430 uses the I picture 410 and the P picture 420 as reference pictures.
  • motion estimation and compensation can be performed using not only one reference picture but also multiple pictures.
  • the inter-prediction process includes searching for an optimal prediction block from reference pictures through motion estimation, and generating a prediction block through a motion compensation process.
  • a prediction block is generated through inter prediction
  • a residual signal which is a difference value between the generated prediction block and the original block, is transformed, quantized, and entropy-encoded.
  • prediction information such as a motion vector, a prediction direction, a reference picture index and the like is signaled together with a residual signal in a conventional inter prediction technique. That is, in a typical inter-prediction operation, prediction information is signaled, and the signaled prediction information is used for prediction block generation.
  • inter prediction based on DNN does not require signaling of prediction information.
  • the learned DNN has the generalization ability to analyze the input pattern and find the feature to generate the correct prediction image.
  • the DNN-based inter prediction uses the learned DNN so that the error between the data of the prediction block and the data of the original image is minimized.
  • FIG. 5 is a conceptual diagram illustrating a DNN-based prediction process according to an embodiment.
  • an input image 510, a DNN 520, and a prediction image 530 are shown.
  • the input image 510 may be image data restored before the current block 515.
  • the input image 510 of FIG. 5 is shown as existing in the same picture as the current block 515, the input image 510 may be a frame different from the picture to which the current block 515 belongs. For example, at the time of intra prediction, restored data belonging to the same picture as the current block 515 is used as the input image 510, and at the time of inter prediction, the restored picture is used as the input image 510 .
  • the input image 510 may be input to the input layer of the 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 the DNN 520 may generate an output, i.e., a prediction image 530, based on the signal received from the nodes of the hidden layer.
  • the input layer, the hidden layer, and the output layer include a plurality of nodes.
  • the DNN 520 maps a mapping between the input image 510 and the prediction image 530 through an algorithm between the plurality of nodes. Can be generated.
  • the DNN 520 learns to output a prediction image 530 having the smallest error with respect to the input image 510, the DNN 520 can generate a relatively correct output for an input pattern that has not been used for learning And has a generalization ability.
  • 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 in the form of a CNN.
  • the CNN is a structure suitable for image analysis.
  • the CNN includes a feature extraction layer that learns a feature having a greatest discriminative power from given image data, And a prediction layer for learning a prediction model so as to achieve a prediction performance.
  • 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
  • the DNN 520 may be implemented in the form of an RNN.
  • the output of the hidden node in the previous time interval in the structure of DNN 520 may be connected to hidden nodes in the current time interval.
  • the output of the hidden node in the current time interval may be connected to the hidden nodes in the next time interval.
  • a neural network having a recurrent connection between hidden nodes in different time intervals is called a recurrent neural network (RNN).
  • the RNN may recognize sequential data.
  • the sequential data is data having time and order, such as voice data, image data, biometric data, handwriting data, and the like.
  • the recognition model of the RNN can recognize which pattern the input image data changes according to.
  • Output data set for a specific period is provided to the RNN to learn a data pattern for a corresponding period to generate a model for inferring a prediction image 530 most similar to the original data.
  • FIG. 6 is a diagram illustrating a DNN-based intra prediction process according to an exemplary embodiment of the present invention.
  • the DNN-based intraprediction according to an exemplary embodiment may be performed in the intraprediction unit 120 of the image encoding apparatus 100 or the intraprediction unit 240 of the image decoding apparatus 200.
  • the intraprediction units 120 and 240 may generate prediction data by performing prediction based on a DNN on a current block 610 to be predicted.
  • the prediction based on the DNN may include a first prediction and a second prediction.
  • the prediction data generated by performing the prediction based on the DNN may mean the final prediction data 660 generated by the first prediction and the second prediction.
  • the first prediction may be based on RNN and the second prediction may be based on CNN.
  • a prediction based on DNN may include a first prediction 620 based on RNN and a second prediction 630 based on CNN.
  • the intra-prediction units 120 and 240 perform a first prediction 620 based on an RNN with respect to a current block 610 to be predicted to generate first prediction data 640 Can be generated.
  • the RNN may be a learned network in which the first prediction data 640 generated at the output of the RNN is the same as the original data of the current block 610. That is, by using the learned RNN, the first prediction data 640 having the smallest error with the original data of the current block 610 can be generated.
  • the structure of the RNN will be described in more detail with reference to FIGS. 7 to 8. FIG.
  • a first prediction 620 based on an RNN may use the neighboring blocks 612, 614, 616, 618 adjacent to the current block 610 as inputs.
  • the neighboring blocks 612, 614, 616, and 618 may be blocks restored before the current block 610.
  • the neighboring blocks 612, 614, 616, and 618 shown in FIG. 6 are shown as located on the upper left, upper, upper right, and left sides of the current block 610, It may be.
  • the prediction using the neighboring blocks 612, 614, 616, and 618 in the intra prediction may be performed when the neighboring blocks 612, 614, 616, and 618 have continuity or directionality with respect to the current block 610 .
  • it may be desirable to use an RNN that makes it possible to link the previous information to the current task.
  • the RNN input order between the neighboring blocks 612, 614, 616, and 618 may affect prediction of the current block 610.
  • first input data the data input to the RNN for the first prediction 620 based on the RNN.
  • the RNN can recognize sequential data. The order of inputting " first input data " to the RNN will be described in detail with reference to Figs. 9A to 9C.
  • the intraprediction units 120 and 240 may generate the second prediction data 650 by performing a second prediction 630 based on CNN on the generated first prediction data 640.
  • the CNN may be a learned network such that the second predicted data 650 generated at the output of the CNN is equal to the original data of the current block 610 minus the first predicted data 640 .
  • the CNN-based second prediction 630 process can be understood as a process for predicting a value obtained by subtracting the first prediction data 640 from the original data of the current block 610.
  • the structure of CNN will be described in more detail with reference to FIG.
  • the second prediction 630 based on the CNN may use the data of the area including the current block 610 and the neighboring blocks 612, 614, 616, and 618 as an input.
  • Data in the area including the current block 610 and the neighboring blocks 612, 614, 616 and 618 is divided into first predicted data 640 corresponding to the current block 610 and neighboring blocks 612, 614, 616 , ≪ / RTI > 618).
  • &quot data input to the CNN for the second prediction 630 based on CNN will be referred to as " second input data ".
  • the intraprediction units 120 and 240 may generate the final prediction data 660 for the current block 610 by adding the first prediction data 640 and the second prediction data 650 together.
  • the image encoding apparatus 100 generates residual data by calculating the difference between the original data of the current block 610 and the final prediction data 660 and outputs the bitstream obtained by encoding the generated residual data And transmits it to the image decoding apparatus 200.
  • the image encoding apparatus 100 according to the embodiment does not encode additional prediction information (for example, prediction mode information).
  • the image decoding apparatus 200 can restore the data of the current block 610 by adding the residual data obtained from the bitstream to the final prediction data 660. [ At this time, the video decoding apparatus 200 can generate the final prediction data 660 without acquiring additional prediction information from the bitstream.
  • FIG. 7 is a diagram showing a structure of an RNN.
  • An RNN is a network in which there is a connection between hidden nodes in different time intervals, and can learn the network through supervised learning.
  • Supervised learning is a method of inputting learning data and output data corresponding thereto together into a neural network and updating connection weights of connection lines so that output data corresponding to the learning data is output.
  • the RNN can update the connection weights between neurons through delta rules and backpropagation learning.
  • the processing of the neural network proceeds in the direction of the input layer, the hidden layer, and the output layer, but in the error backpropagation learning, the update direction of the connection weighting can proceed in the direction of the output layer, the hidden layer, and the input layer.
  • the RNN may define an objective function for measuring how close the optimal connection weights are currently set, continually change the connection weights based on the result of the objective function, and repeat the learning.
  • the objective function may be an error function for calculating an error between the actual output value of the RNN based on the training data and the desired expected value to be output.
  • the RNN may update the connection weights in a direction that reduces the value of the error function.
  • the intra prediction unit 120 and 240 may perform a first prediction based on an RNN with respect to a current block 610 according to an embodiment of the present invention.
  • the RNN includes a long short-term memory (LSTM) Structure.
  • LSTM is a kind of RNN that can perform long-term dependency learning.
  • An RNN that does not include an LSTM network can link the previous information to the current task, but it is difficult to link information of a previous task that is far away in time to the current task.
  • LSTM is a structure designed to avoid these long-term dependency problems. The detailed structure of the LSTM will be described later with reference to FIG.
  • the RNN may include an LSTM network 720 and a fully connected network 730.
  • the LSTM network 720 may detect feature values from the input data 710. For example, the LSTM network 720 may extract a relative change amount that varies with time in the input data 710 as a feature value. The LSTM network 720 may obtain sufficient feature values from the input data 710 and may learn the RNN using the obtained feature values.
  • the input data 710 may be the first input data.
  • the RNN may learn a change trend of a block that changes in a specific direction.
  • the neighboring blocks of the current block may be input to the LSTM network 720 in a changing order.
  • the blocks input to the LSTM network 720 are blocks in the same time frame.
  • the input data 710 may be input to the LSTM network 720 in order.
  • neighboring blocks adjacent to the current block may be input to the LSTM network 720 in an input order corresponding to the change trend.
  • neighboring blocks may be learned and entered into each LSTM network 720 by time step or time stamp.
  • each of the neighboring blocks is connected to the LSTM network 710 in the order of '0' input data 710, '1' input data 710, '2' input data 710, 720).
  • the output value output from the LSTM network 720 of the RNN may be input to the LSTM network 720 at the next time step.
  • the output value " s1 " of the LSTM network 720 that processed the input data 710 of '0' may be input to the LSTM network 720 that processes the input data 710 of '1' .
  • the output value " s2 " of the LSTM network 720 that processed the input data 710 of '1' may be input to the LSTM network 720 that processes the input data 710 of '2'.
  • the LSTM network 720 performing learning on the '1' input data 710 indicates the learning pattern in the current time step T
  • the LSTM network 720 which performs learning on the input data 710 of the LSTM network 720 represents the learning pattern in the previous time step T-1 and the LSTM network 720 which performs learning on the '2' Indicates a learning pattern at the next time step (T + 1).
  • the LSTM network 720 uses the structure for both the previous time step, the current time step, and the next time step for learning.
  • the information of the current stage in the LSTM network 720 may be transferred to the next stage to affect the output value.
  • the fully connected network 730 may classify the learning results of the LSTM network 720 for sequential data and output the output data 740 from the output layer of the RNN.
  • the output data 740 may be the first prediction data.
  • the learning process of the RNN may include a process of comparing the output value generated at each time step with a desired expected value, and adjusting the connection weight of the nodes in a direction of reducing the difference between the output value and the expected value. For example, the input data 710 input to the LSTM network 720 may be multiplied and added with the connection weights of the LSTM network 720 and the fully connected network 730. At this time, a difference may occur between the output data 740 of the generated RNN and the expected output data, and the RNN may update the connection weights of the nodes in the direction of minimizing the difference.
  • FIG. 8 is a diagram showing the structure of the LSTM.
  • the LSTM 800 shown in FIG. 8 corresponds to each cell forming the LSTM network 720 of FIG.
  • the LSTM 800 is a deep-run structure that avoids the long-term dependency of the RNN by selectively updating the cell state storing information.
  • the cell state of the LSTM 800 may be added or erased via a structure called a gate.
  • Each cell may be composed of three gates for performing write, read and keep operations, and each gate may have a value between '0' and '1'.
  • the value of each gate is the basis for determining whether to store, retrieve, or hold cell information.
  • the gates of each cell can optionally carry information.
  • the process of selective information transfer may consist of a sigmoid layer, a tanh layer, and a pointwise multiplication operation.
  • the values between '0' and '1' of each gate can be learned on the same principle as the weights of the neural network.
  • GRU gated recurrent unit
  • each module of the LSTM 800 includes a plurality of interacting layers.
  • the LSTM 800 may generate a new cell state and a new cell output by applying a plurality of gates to the current cell state and the current cell state on a time step basis.
  • First sigmoid layer of LSTM receives a h t x t-1 and outputs a r t. Depending on the output value of the first sigmoid layer, it is determined whether h t-1 , i.e., whether the cell state of the previous stage is maintained or not. The value of '1' on the sigmoid layer means "completely maintained” and the value of '0' means "completely removed”. The function of the first sigmoid layer is shown in Equation (1).
  • the second sigmoid layer of the LSTM 800 receives h t -1 and x t by Equation 2 and outputs z t . It can be determined which values to update via the second sigmoid layer.
  • the tanh layer of the LSTM 800 generates a vector of new candidate values that can be added to the cell state.
  • the output value of the second sigmoid layer and the output value of the tanh layer can be summed to produce a value to update the cell state.
  • the function of the tanh layer is expressed by Equation (3).
  • the LSTM 800 can update the cell state h t - 1 of the previous step using Equation (4).
  • the updated new cell state is represented by h t .
  • the new cell state derived by Equation (4) may serve as a basis for determining whether to use the data input to the corresponding cell in network learning.
  • the LSTM 800 can avoid the long-term dependency problem of the RNN by selectively updating cell state storing information.
  • the LSTM 800 is not limited to the GRU structure as described above, and may have a modified structure in various forms.
  • the RNN can be utilized to recognize sequential data. That is, when the sequential data is inputted, the recognition model of the RNN extracts the feature value from the sequential data, and outputs the recognition result by classifying the extracted feature value.
  • a sequential data input method of an RNN according to an embodiment will be described below.
  • 9A is a diagram showing an example of RNN input data for generating first predictive data.
  • intra prediction is a process of predicting a current block depending on a pattern of a neighboring block having a certain directionality
  • the input data for learning of the RNN is also sequentially input according to a certain direction.
  • a current block 910 and neighboring blocks (blocks '0' to '11') for which prediction is to be performed are shown.
  • the intra predictors 120 and 240 may use neighboring blocks adjacent to the current block 910 as input of the RNN as first input data in order to perform the first prediction.
  • the first input data is the data restored before the current block 910, and the position in which the first input data is distributed is not limited to the position shown in FIG. 9A.
  • the intra-prediction unit 120, 240 may determine one or more input angles 912, 914, 916, 918 based on the current block 910. At this time, one or more input angles 912, 914, 916, 918 may be preset. According to another embodiment, one or more input angles 912, 914, 916, and 918 may be determined by information signaled from the image encoding apparatus 100 to the image decoding apparatus 200.
  • the intra-prediction units 120 and 240 may determine neighboring blocks (blocks '0' to '11') for each input angle located along each of the input angles 912, 914, 916 and 918 .
  • the neighboring blocks for each input angle may correspond to the first input data for generating the first prediction data.
  • the intraprediction units 120 and 240 can input neighboring blocks (blocks '0' to '11') according to input angles to each cell of the LSTM network in clockwise order.
  • the neighboring blocks placed at each input angle are input to each cell of the LSTM network in the order of the input angle 912, the input angle 914, the input angle 916, and the input angle 918 according to the time step .
  • the order in which the adjacent blocks are input according to the input angle is not necessarily the order of the clockwise direction, and the order of counterclockwise direction or other predetermined direction may be followed.
  • the order of input between neighboring blocks located at the same input angle may be in the order of positions closer to the current block.
  • the input order between neighboring blocks (blocks '0' to '2') located at the input angle 912 is block 0, block 1, '.
  • the order of input between adjacent blocks located at the same input angle is not limited to the above.
  • the order of input between neighboring blocks located at the same input angle may be in the order farther from the nearest position in the current block.
  • the input order of the neighboring blocks inputted to the RNN by the intraprediction units 120 and 240 may be set in advance.
  • the input order of the neighboring blocks may be determined by the information signaled from the image coding apparatus 100 to the image decoding apparatus 200.
  • the following embodiments are for illustrative purposes only, and the input order of the first input data may be variously modified.
  • the intraprediction units 120 and 240 predict the positions of the left neighboring blocks (blocks '0' to '2') located at the left side of the current block 910 at distant positions from the current block 910
  • Each of the left neighboring blocks may be input to each cell of the LSTM network of the RNN.
  • the intraprediction units 120 and 240 predict the neighboring blocks (blocks '3' to '5') located in the upper left direction of the current block 910 from a position distant from the current block 910
  • Each of the upper left-side neighboring blocks may be input to each cell of the LSTM network of the RNN in order of location.
  • the intraprediction units 120 and 240 predict the neighboring blocks (block '6' to block '8') located in the upper direction of the current block 910 from positions far from the current block 910
  • Each of the upper neighboring blocks may be input to each cell of the LSTM network of the RNN in order.
  • the intraprediction units 120 and 240 predict the neighboring blocks (blocks '9' to '11') located on the upper right side of the current block 910 from a position distant from the current block 910
  • Each of the upper right neighboring blocks may be input to each cell of the LSTM network of the RNN in order of position.
  • 9B is a diagram showing another example of RNN input data for generating first predictive data.
  • the intraprediction units 120 and 240 may input neighboring blocks for each input angle to each cell of the LSTM network in the clockwise order.
  • the neighboring blocks located at each input angle may have an input angle 922, an input angle 924, an input angle 926, an input angle 928, an input angle 930, an input angle 932 And an input angle 934 in this order.
  • the order of input between neighboring blocks located at the same input angle may be in the order of positions closer to the current block.
  • the input order between neighboring blocks (blocks 3 'to 5') located at the input angle 926 is block 3, block 4, '.
  • the above-described input sequence is merely exemplary, and neighboring blocks located at the same input angle can be input to the LSTM network based on various input sequences.
  • 9C is a diagram showing another example of RNN input data for generating first predictive data.
  • the intraprediction units 120 and 240 may use neighboring blocks adjacent to the current block 940 as input of the RNN as first input data in order to perform the first prediction.
  • the first input data is data restored before the current block 940.
  • the intraprediction units 120 and 240 may input neighboring blocks to each cell of the LSTM network in the sequence of Z scans 942.
  • the intraprediction units 120 and 240 determine the order of the upper right side position of the current block 1010 and the left side position of the current block 1010 (i.e., block '0') from the upper left position of the current block 1010, To block ' 5 ') to each cell of the LSTM network of the RNN.
  • neighboring blocks may include various scans (for example, raster scan, N scan, up-right diagonal scan, A horizontal scan, a vertical scan, etc.) may be input to each cell of the LSTM network in this order.
  • various scans for example, raster scan, N scan, up-right diagonal scan, A horizontal scan, a vertical scan, etc.
  • 10 is a view showing the structure of CNN.
  • input data 1010 is input through an input layer of CNN 1020 and output data 1030 is output through an output layer of CNN 1020.
  • a plurality of hidden layers may be included between the input layer and the output layer of the CNN 1020.
  • 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 1010 are expressed.
  • the subsampling layer reduces the size of the feature map by sampling or pooling.
  • the output layer of CNN 1020 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.
  • the intra-prediction units 120 and 240 perform a second prediction based on the CNN 1020 on the first prediction data generated through the RNN-based first prediction To generate second prediction data (i.e., output data 1030).
  • the CNN 1020 may be a network that has been learned such that the second predicted data, which is the output data 1030, is equal to the original data of the current block minus the first predicted data.
  • the input data 1010 of the CNN 1020 may be the first predictive data and the neighboring reconstructed data adjacent to the current block
  • the output data 1030 may be a value obtained by subtracting the first predictive data from the original data of the current block, May be the prediction data of the current block that minimizes the error of the current block.
  • the error can be measured based on the R-D cost.
  • FIG. 11 is a diagram showing an example of CNN input data for generating second predictive data.
  • the CNN input data 1100 is second input data.
  • the CNN input data 1100 corresponds to the input data 1010 of FIG.
  • CNN input data 1100 may include first prediction data 1110 and peripheral reconstruction data 1120, 1130, and 1140.
  • first prediction data 1110 and peripheral reconstruction data 1120, 1130, and 1140.
  • peripheral reconstruction data 1120, 1130, and 1140 may be modified into various forms.
  • the intraprediction units 120 and 240 may include first prediction data output through a first prediction operation based on the RNN of FIG. 7 and second prediction data output through a second prediction operation based on CNN of FIG. Data can be summed to generate final prediction data for the current block.
  • the image encoding apparatus 100 generates residual data by calculating the difference between the original data of the current block and the final predicted data, generates a bitstream obtained by encoding the generated residual data, (200).
  • the image encoding apparatus 100 does not encode additional prediction information (for example, prediction mode information).
  • the learned DNNs i.e., RNN and CNN
  • the image decoding apparatus 200 can restore the data of the current block by adding the residual data obtained from the bitstream to the final predicted data. At this time, the video decoding apparatus 200 can generate final prediction data without acquiring additional prediction information from the bitstream.
  • FIG. 12 is a diagram illustrating a DNN-based inter prediction process according to an embodiment.
  • the inter prediction process is a process of finding an optimal prediction block from reference pictures through motion estimation and generating a prediction block through a motion compensation process.
  • An image is composed of a series of still images, and still images are divided into a group of pictures.
  • One picture group includes an I picture, a P picture, and a B picture.
  • the P picture and the B picture are pictures to be coded by performing motion estimation and motion compensation using reference pictures.
  • the DNN-based inter prediction may be performed in the inter-prediction unit 115 of the image coding apparatus 100 or the inter-prediction unit 235 of the image decoding apparatus 200 according to an embodiment.
  • the DNN-based inter prediction according to an exemplary embodiment may be based on RNN, CNN, etc.
  • the current picture 1210 may be a P picture or a B picture. If the current picture 1210 is a picture corresponding to the viewpoint t, the reconstructed picture 1220 used for inter prediction is reconstructed and reconstructed corresponding to the past viewpoint (for example, t-1, t-2) And the reconstructed picture 1230 may be a reconstructed picture corresponding to a future viewpoint (e.g., t + 1, t + 2) based on the viewpoint t.
  • the DNN 1240 may use information on the characteristics of the input image, such as the type of the current picture, to generate the prediction data 1250.
  • the inter-prediction unit 115 and 235 may generate the prediction data 1250 by performing inter-prediction based on the DNN on the current block 610 in the current picture 1210 to be predicted .
  • the DNN 1240 may be a learned network such that the prediction data 640 generated as an output is the same as the original data of the current block in the current picture 1210. That is, by using the learned DNN, the prediction data 1250 having the smallest error from the original data of the current block can be generated.
  • the learned DNN 1240 has a generalization capability capable of analyzing an input pattern and finding its characteristics to determine a correct reference picture and reference block location.
  • inter prediction based on DNN does not require signaling of prediction information such as a motion vector, a prediction direction, a reference picture index, and the like.
  • the DNN 1240 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 the DNN 1240 may be in the form of a hidden layer in the convolution pooling layer, followed by a fully connected layer in the hidden layer.
  • the image encoding apparatus 100 generates residual data by calculating the difference between the original data of the current block in the current picture 1210 and the prediction data 1250 and outputs the encoded residual data And transmits the generated stream to the video decoding apparatus 200.
  • the image encoding apparatus 100 does not encode additional prediction information (e.g., a motion vector, a prediction direction, a reference picture index, etc.).
  • the image decoding apparatus 200 can restore the data of the current block in the current picture 1210 by adding the residual data acquired from the bitstream to the prediction data 1250. [ At this time, the video decoding apparatus 200 can generate the prediction data 1250 without acquiring another prediction information from the bitstream.
  • FIG. 13 is a diagram illustrating a structure of a bitstream according to an embodiment.
  • the encoded bitstream 1300 is composed of a plurality of NAL (Network Abstraction Layer) units.
  • the NAL unit is used to store not only encoded sample data such as an encoded slice 1340 but also high level syntax metadata such as parameter set data, slice header data (not shown) or supplemental enhancement information data (not shown) .
  • the parameter set may include a required syntax element (e.g., a video parameter set (VPS) 1310) that may be applied to multiple bitstream layers, a required syntax element that may be applied to an encoded video sequence within a layer , A sequence parameter set (SPS) 1320), or a required syntax element (e.g., a picture parameter set (PPS) 1330) that may be applied to multiple pictures in a single encoded video sequence Lt; / RTI >
  • 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 bitstream 1300 may include additional information for performing prediction based on the DNN.
  • the additional information includes information on the structure of the DNN (e.g., filter set, information on the number of nodes, etc.) and information on the block to which the DNN is applied can do. Further, the additional information may include information on the input angle and / or the input order for determining the order of inputting the input data to the RNN.
  • the side information may be signaled through a video parameter set 1310, a sequence parameter set 1320, a picture parameter set 1330, etc. in the bit stream 1300.
  • the additional information 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. Further, the additional information may be shared through a separate server capable of communication.
  • FIG. 14 shows a schematic block diagram of an image encoding apparatus 1400 according to an embodiment.
  • the image encoding apparatus 1400 may correspond to the image encoding apparatus 100 of FIG.
  • the image encoding apparatus 1400 includes a block determining unit 1410, a predicting unit 1420, a compressing unit 1430, and a transmitting unit 1440.
  • the block determination unit 1410 of FIG. 14 may correspond to the block determination unit 110 of FIG.
  • the prediction unit 1420 of FIG. 14 may correspond to the intra prediction unit 120 or the inter prediction unit 115 of FIG.
  • the compression unit 1430 of FIG. 14 may correspond to the conversion unit 130, the quantization unit 135, and the entropy encoding unit 155 of FIG.
  • the block determination unit 1410 may divide the image data of the current picture into a maximum encoding unit according to the maximum size of the encoding unit.
  • Each maximum encoding unit may include blocks (i.e., encoding units) that are divided into block types and division types.
  • the maximum coding unit 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 predicting unit 1420 performs a DNN-based prediction on the current block among the blocks determined by the block determining unit 1410.
  • the predicting unit 1420 In the case of intraprediction, the predicting unit 1420 generates a first prediction data by performing a first prediction based on a DNN with respect to a current block, performs a second prediction based on the DNN on the first prediction data, And generate the final prediction data for the current block using the first prediction data and the second prediction data.
  • the first prediction may be based on RNN
  • the second prediction may be based on CNN.
  • the prediction unit 1420 performs inter prediction based on the DNN on the current block among the one or more blocks to determine one or more reference pictures and one or more reference block positions, and determines one or more reference pictures and one or more reference blocks
  • the prediction data for the current block can be generated using the position.
  • the compression unit 1430 generates residual data by calculating the difference between the original data of each block and the prediction data for each block output from the prediction unit 1420. [ The compression unit 1430 transforms and quantizes residual data and generates block-quantized transform coefficients. The compression unit 1430 outputs a bitstream obtained by entropy encoding the quantized transform coefficients.
  • the encoded bitstream may include the encoding result of the residual data.
  • the bit stream may include the encoding result of the information indicating the block type, the division type, the size information of the conversion unit, and the like.
  • the transmitting unit 1440 transmits the bit stream output from the compressing unit 1430 to the image decoding apparatus.
  • FIG. 15 shows a schematic block diagram of an image decoding apparatus 1500 according to an embodiment.
  • the image decoding apparatus 1500 may correspond to the image decoding apparatus 200 of FIG.
  • the image decoding apparatus 1500 includes a receiving unit 1510, a block determining unit 1520, a predicting unit 1530, and a restoring unit 1540.
  • the receiving unit 1510 of FIG. 15 may correspond to the receiving unit 210 of FIG.
  • the block determination unit 1520 of FIG. 15 may correspond to the block determination unit 215 of FIG.
  • the prediction unit 1530 of FIG. 15 may correspond to the intra prediction unit 240 or the inter prediction unit 235 of FIG.
  • the restoration unit 1540 of FIG. 15 may correspond to the entropy decoding unit 220, the inverse quantization unit 225, and the inverse transformation unit 230 of FIG.
  • the receiving unit 1510 receives the encoded bitstream.
  • the block determination unit 1520 may obtain the division information from the bit stream and divide the image data of the spatial domain into hierarchical blocks 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 block determining unit 1520 can divide the image data without using the division information.
  • the predicting unit 1530 performs prediction based on the DNN on the current block among the blocks determined by the block determining unit 1520.
  • the information on the structure of the DNN may be acquired from the bitstream as a form of additional information.
  • the predicting unit 1530 generates a first prediction data by performing a first prediction based on a DNN with respect to a current block, performs a second prediction based on DNN with respect to the first prediction data, And generate the final prediction data for the current block using the first prediction data and the second prediction data.
  • the first prediction may be based on RNN
  • the second prediction may be based on CNN.
  • the prediction unit 1530 performs inter prediction based on DNN on the current block among the one or more blocks to determine one or more reference pictures and one or more reference block positions, and determines one or more reference pictures and one or more reference blocks
  • the prediction data for the current block can be generated using the position.
  • the reconstruction unit 1540 obtains the residual data of each block by inverse-quantizing and inverse transforming the quantized transform coefficients obtained by entropy decoding the bitstream. Thereafter, the restoring unit 1540 restores the image by using the residual data of each block and the predicted data of each block generated by the predicting unit 1530.
  • 16 is a flowchart illustrating an image encoding method according to an embodiment.
  • step S1610 the image coding apparatus 100 determines one or more blocks for dividing the image.
  • step S1620 the image encoding apparatus 100 generates prediction data for the current block by performing prediction based on the DNN on the current block among the one or more blocks.
  • step S1630 the image coding apparatus 100 generates residual data of the current block by using the original data and the prediction data corresponding to the current block.
  • step S1640 the image coding apparatus 100 generates a bit stream obtained by coding residual data.
  • 17 is a flowchart illustrating a video decoding method according to an embodiment.
  • step S1710 the video decoding apparatus 200 receives the bit stream of the encoded video.
  • step S1720 the image decoding apparatus 200 determines one or more blocks that are divided from the encoded image.
  • step S1730 the image decoding apparatus 200 generates prediction data for the current block by performing prediction based on the DNN on the current block among the one or more blocks.
  • step S1740 the video decoding apparatus 200 extracts the residual data of the current block from the bitstream.
  • step S1750 the image decoding apparatus 200 restores the current block using the predictive data and the residual data.
  • FIG. 18 to 31 The dividing method for the coding unit described in Figs. 18 to 31 can be similarly applied to the dividing method of the conversion unit as the basis of the conversion.
  • FIG. 18 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. Referring to FIG. 18, when the block type information of the current encoding unit 1800 indicates a square shape, the image decoding apparatus 200 determines the size of the current encoding unit 1800 according to the division type information indicating that the current block is not divided 1810c, 1810c, 1810d, etc.) based on the division type information indicating the predetermined division method.
  • the image decoding apparatus 200 determines two encoding units 1810b obtained by dividing the current encoding unit 1800 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 1810c obtained by dividing the current encoding unit 1800 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 1810d obtained by dividing the current encoding unit 1800 in the vertical direction and the horizontal direction based on the division type information indicating that the image is divided in the vertical direction and the horizontal direction.
  • 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. 19 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. 19, if the block type information of the current encoding unit 1900 or 1950 indicates a non-square shape, the image decoding apparatus 200 determines whether the current encoding unit 1900 1920b, 1930a, 1930b, 1930c, 1970a, 1930b, 1930a, 1930b, 1930c, and 1950c) 1970b, 1980a, 1980b, 1980c).
  • 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 . 19
  • the image decoding apparatus 200 determines the current encoding unit 1900 or 1950 based on the division type information, To determine two encoding units 1920a, 12220b, or 1970a and 1970b included in the current encoding unit.
  • the non-square current coding unit 1900 or 1950 The current encoding unit can be divided in consideration of the position of the long side.
  • the image decoding apparatus 200 may divide the current encoding unit 1900 or 1950 in the direction of dividing the long side of the current encoding unit 1900 or 1950 in consideration of the type of the current encoding unit 1900 or 1950 So that a plurality of encoding units can be determined.
  • the video decoding apparatus 200 can determine an odd number of encoding units included in the current encoding unit 1900 or 1950.
  • the video decoding apparatus 200 divides the current coding unit 1900 or 1950 into three coding units 1930a , 1930b, 1930c, 1980a, 1980b, 1980c).
  • the image decoding apparatus 200 may determine an odd number of encoding units included in the current encoding unit 1900 or 1950, and the sizes of the determined encoding units may not be the same.
  • the size of a predetermined encoding unit 1930b or 1980b among the determined odd number of encoding units 1930a, 1930b, 1930c, 1980a, 1980b, and 1980c is different from the size of other encoding units 1930a, 1930c, .
  • an encoding unit that can be determined by dividing the current encoding unit 1900 or 1950 may have a plurality of types of sizes, and may be an odd number of encoding units 1930a, 1930b, 1930c, 1980a, 1980b, May have different sizes.
  • the image decoding apparatus 200 can determine an odd number of encoding units included in the current encoding unit 1900 or 1950, 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 an encoding unit 1930a, 1930b, 1930c, 1980a, 1980b, and 1980c generated by dividing a current encoding unit 1900 or 1950, (1930b, 1980b) can be made different from other encoding units (1930a, 1930c, 1980a, 1980c).
  • the image decoding apparatus 200 may restrict the encoding units 1930b and 1980b positioned at the center to be not further divided, or may be limited to a predetermined number of times, differently from other encoding units 1930a, 1930c, 1980a, It can be limited to be divided.
  • FIG. 20 illustrates a process in which the video 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 image decoding apparatus 200 may determine to divide or not divide the first coding unit 2000 of a square shape into coding units based on at least one of the block type information and the division type information. According to one embodiment, when the division type information indicates division of the first encoding unit 2000 in the horizontal direction, the image decoding apparatus 200 divides the first encoding unit 2000 in the horizontal direction, (2010) can be determined.
  • the first encoding unit, the second encoding unit, and the third encoding unit used according to an embodiment are terms used to understand the relation before and after the division between encoding units. For example, if the first encoding unit is divided, 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 2010 is not divided or divided into encoding units based on at least one of the block type information and the division type information.
  • the video decoding apparatus 200 decodes a second coding unit 2010 of a non-square shape determined by dividing a first coding unit 2000 based on at least one of block type information and division type information It may be divided into at least one third encoding unit 2020a, 2020b, 2020c, 2020d, or the like, or the second encoding unit 2010 may not be divided.
  • the image decoding apparatus 200 can acquire at least one of the block type information and the division type information and the image decoding apparatus 200 can acquire at least one of the first encoding unit 2000 (For example, 2010), and the second encoding unit 2010 may divide a plurality of second encoding units (for example, 2010) of various types into a first encoding unit
  • the unit 2000 can be divided according to the divided method.
  • the coding unit 2010 may be divided into a third coding unit (e.g., 2020a, 2020b, 2020c, 2020d, etc.) based on at least one of block type information and division type information for the second coding unit 2010 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.
  • a predetermined encoding unit for example, An encoding unit or a square-shaped encoding unit
  • the third encoding unit 2020c which is one of the odd-numbered third encoding units 2020b, 2020c, and 2020d, may be divided in the horizontal direction and divided into a plurality of fourth encoding units.
  • the image decoding apparatus 200 may divide each of the third encoding units 2020a, 2020b, 2020c, and 2020d into encoding units based on at least one of block type information and division type information, It can be determined that the unit 2010 is not divided.
  • the image decoding apparatus 200 may divide the non-square second encoding unit 2010 into odd third encoding units 2020b, 2020c, and 2020d according to an embodiment.
  • the image decoding apparatus 200 may set a predetermined restriction on a predetermined third encoding unit among odd numbered third encoding units 2020b, 2020c, and 2020d.
  • the image decoding apparatus 200 may limit the encoding unit 2020c located in the middle among the odd numbered third encoding units 2020b, 2020c, and 2020d to no longer be divided or be divided into a set number of times .
  • the image decoding apparatus 200 includes an odd number of third encoding units 2020b, 2020c, and 2020d included in a non-square second encoding unit 2010, 2020c are not further divided or limited to being divided into a predetermined division form (for example, divided into only four coding units or divided into a form corresponding to a form in which the second coding unit 2010 is divided) (For example, dividing only n times, n > 0).
  • the above restriction on the coding unit 2020c positioned in the middle is merely an example and should not be construed to be limited to the above embodiments and the coding unit 2020c positioned in the middle is not limited to the other coding units 2020b and 2020d 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. 21 illustrates a method by which the image decoding apparatus 200 determines 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 2100 is a sample of a predetermined position among a plurality of samples included in the current encoding unit 2100 (for example, Sample 2140).
  • the predetermined position in the current coding unit 2100 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.
  • FIG. 21 shows 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. Referring to FIG. 21, the image decoding apparatus 200 may divide the current encoding unit 2100 to determine odd number of encoding units 2120a, 2120b, and 2120c. The image decoding apparatus 200 can determine the center encoding unit 2120b by using information on the positions of the odd number of encoding units 2120a, 2120b, and 2120c.
  • the image decoding apparatus 200 determines the positions of the encoding units 2120a, 2120b, and 2120c based on information indicating the positions of predetermined samples included in the encoding units 2120a, 2120b, and 2120c,
  • the coding unit 2120b located in the coding unit 2120 can be determined.
  • the video decoding apparatus 200 determines the positions of the coding units 2120a, 2120b, and 2120c based on information indicating the positions of the upper left samples 2130a, 2130b, and 2130c of the coding units 2120a, By determining the position, the coding unit 2120b located in the center can be determined.
  • Information indicating the positions of the upper left samples 2130a, 2130b, and 2130c included in the coding units 2120a, 2120b, and 2120c is a position in the picture of the coding units 2120a, 2120b, and 2120c Or information about the coordinates.
  • Information indicating the positions of the upper left samples 2130a, 2130b, and 2130c included in the coding units 2120a, 2120b, and 2120c according to one embodiment is stored in the coding units 2120a and 2120b included in the current coding unit 2100 And 2120c, and the width or height may correspond to information indicating a difference between coordinates of the encoding units 2120a, 2120b, and 2120c in a picture.
  • the image decoding apparatus 200 may directly use the information on the positions or coordinates of the coding units 2120a, 2120b, and 2120c in the pictures or the information on the width or height of the coding units corresponding to the difference between the coordinates
  • the encoding unit 2120b located in the center can be determined.
  • the information indicating the position of the upper left sample 2130a of the upper coding unit 2120a may indicate the coordinates (xa, ya) and the upper left sample 2130b of the middle coding unit 2120b May represent the coordinates (xb, yb), and the information indicating the position of the upper left sample 2130c of the lower coding unit 2120c may indicate the coordinates (xc, yc).
  • the image decoding apparatus 200 can determine the center encoding unit 2120b by using the coordinates of the upper left samples 2130a, 2130b and 2130c included in the encoding units 2120a, 2120b and 2120c.
  • the coding unit 2120b including (xb, yb) coordinates of the sample 2130b positioned at the center, Can be determined as a coding unit located in the middle of the coding units 2120a, 2120b, and 2120c determined by dividing the current coding unit 2100.
  • the coordinates indicating the positions of the upper left samples 2130a, 2130b, and 2130c may indicate the coordinates indicating the absolute position in the picture
  • the position of the upper left sample 2130a of the upper coding unit 2120a may be (Dxb, dyb) coordinates indicating the relative position of the upper left sample 2130b of the middle coding unit 2120b and the relative position of the upper left sample 2130c of the lower coding unit 2120c
  • Information dyn (dxc, dyc) coordinates may also be used.
  • the method of determining the coding unit at a predetermined position by using the coordinates of the sample as information indicating the position of the sample included in the coding unit should not be limited to the above-described method, and various arithmetic Should be interpreted as a method.
  • the image decoding apparatus 200 may divide the current encoding unit 2100 into a plurality of encoding units 2120a, 2120b, and 2120c, and may encode a predetermined reference among the encoding units 2120a, 2120b, and 2120c
  • the encoding unit can be selected.
  • the image decoding apparatus 200 can select an encoding unit 2120b having a different size from among the encoding units 2120a, 2120b, and 2120c.
  • the image decoding apparatus 200 may include a (xa, ya) coordinate which is information indicating the position of the upper left sample 2130a of the upper encoding unit 2120a, a (Xc, yc) coordinates, which is information indicating the position of the lower-stage coding unit 2130b and the position of the upper-left sample 2130c of the lower-stage coding unit 2120c, 2120b, and 2120c, respectively.
  • the image decoding apparatus 200 encodes the encoded data in units of encoding units 2120a, 2120b, and 2120c using coordinates (xa, ya), (xb, yb), (xc, yc) indicating the positions of the encoding units 2120a, ) Can be determined.
  • the image decoding apparatus 200 can determine the width of the upper encoding unit 2120a 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 2120b as xc-xb and the height as yc-yb. The image decoding apparatus 200 may determine the width or height of the lower encoding unit using the width or height of the current encoding unit and the width and height of the upper encoding unit 2120a and the middle encoding unit 2120b .
  • the image decoding apparatus 200 can determine an encoding unit having a different size from other encoding units based on the width and height of the determined encoding units 2120a, 2120b, and 2120c. Referring to FIG. 21, the image decoding apparatus 200 may determine a coding unit 2120b as a coding unit at a predetermined position while having a size different from that of the upper coding unit 2120a and the lower coding unit 2120c.
  • 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 above-mentioned odd number of coding units.
  • 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 the current encoding unit 2100 into a plurality of encoding units 2120a, 2120b, and 2120c based on at least one of block type information and division type information, It is possible to determine the encoding unit 2120b located in the middle of the plurality of encoding units 2120a, 2120b, and 2120c. Furthermore, the image decoding apparatus 200 can determine the coding unit 2120b 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 2100 can be acquired in the sample 2140 located in the middle of the current encoding unit 2100, and the block type information and the division type information If the current encoding unit 2100 is divided into a plurality of encoding units 2120a, 2120b, and 2120c based on at least one of the encoding units 2120a to 2120c, 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 2120a, 2120b, and 2120c, which are determined by dividing the current encoding unit 2100, (For example, a sample located at the center of the current encoding unit 2100) at a predetermined position in the current encoding unit 2100 to determine the encoding unit of the current encoding unit 2100, 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 shape of the current encoding unit 2100, and the video decoding apparatus 200 determines that the current encoding unit 2100 is divided
  • An encoding unit 2120b 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 encoding units 2120a, 2120b, and 2120c
  • a predetermined limit can be set. Referring to FIG.
  • the image decoding apparatus 200 may determine a sample 2140 located in the center of the current encoding unit 2100 as a sample from which predetermined information can be obtained,
  • the coding unit 200 may limit the coding unit 2120b including the sample 2140 to a predetermined limit in the decoding process.
  • the position of the sample from which predetermined information can be obtained can not be construed to be limited to the above-mentioned position, but can be interpreted as samples at arbitrary positions included in the encoding unit 2120b to be determined for limiting.
  • the position of a sample from which predetermined information can be obtained according to an embodiment may be determined according to the type of the current encoding unit 2100.
  • 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 is described in detail with reference to FIG. 20, 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. 22 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 may divide the first encoding unit 2200 in the vertical direction according to the block type information and the division type information to determine the second encoding units 2210a and 2210b, 2250b, 2250c, 2250d by dividing the first encoding unit 2200 in the horizontal direction and the second encoding units 2230a, 2230b or dividing the first encoding unit 2200 in the vertical direction and the horizontal direction, Can be determined.
  • the image decoding apparatus 200 may determine the order in which the second encoding units 2210a and 2210b determined by dividing the first encoding unit 2200 in the vertical direction are processed in the horizontal direction 2210c .
  • the image decoding apparatus 200 may determine the processing order of the second encoding units 2230a and 2230b determined by dividing the first encoding unit 2200 in the horizontal direction as the vertical direction 2230c.
  • the image decoding apparatus 200 processes the encoding units located in one row of the second encoding units 2250a, 2250b, 2250c, and 2250d determined by dividing the first encoding unit 2200 in the vertical direction and the horizontal direction (For example, a raster scan order or a z scan order 2250e) in which the encoding units located in the next row are processed.
  • the image decoding apparatus 200 may recursively divide encoding units. 22, the image decoding apparatus 200 may determine a plurality of encoding units 2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, and 2250d by dividing the first encoding unit 2200, It is possible to recursively divide each of the determined plurality of encoding units 2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, and 2250d.
  • the method of dividing the plurality of encoding units 2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, and 2250d may be a method corresponding to the method of dividing the first encoding unit 2200.
  • the plurality of encoding units 2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, and 2250d may be independently divided into a plurality of encoding units.
  • the image decoding apparatus 200 may determine the second encoding units 2210a and 2210b by dividing the first encoding unit 2200 in the vertical direction, and may further determine the second encoding units 2210a and 2210b Can be determined not to divide or separate independently.
  • the image decoding apparatus 200 may divide the left second encoding unit 2210a in the horizontal direction into third encoding units 2220a and 2220b, and the second encoding unit 2210b ) 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 2220a and 2220b determined by dividing the second encoding unit 2210 on the left side are processed independently of the second encoding unit 2210b on the right side.
  • the third encoding units 2220a and 2220b may be processed in the vertical direction 2220c since the second encoding units 2210a on the left side are divided in the horizontal direction and the third encoding units 2220a and 2220b are determined.
  • the order in which the left second encoding unit 2210a and the right second encoding unit 2210b are processed corresponds to the horizontal direction 2210c
  • the right encoding unit 2210b may be processed after the frames 2220a and 2220b are processed in the vertical direction 2220c.
  • FIG. 23 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 2300 in the form of a square may be divided into second encoding units 2310a and 2310b in a non-square form, and the second encoding units 2310a and 2310b may be independently 3 encoding units 2320a, 2320b, 2320c, 2320d, and 2320e.
  • the image decoding apparatus 200 may determine a plurality of third encoding units 2320a and 2320b by dividing the left encoding unit 2310a of the second encoding unit in the horizontal direction, and the right encoding unit 2310b Can be divided into an odd number of third encoding units 2320c, 2320d, and 2320e.
  • the image decoding apparatus 200 determines whether or not the third encoding units 2320a, 2320b, 2320c, 2320d, and 2320e can be processed in a predetermined order, and determines whether there are odd-numbered encoding units You can decide. Referring to FIG. 23, the image decoding apparatus 200 may recursively divide the first encoding unit 2300 to determine the third encoding units 2320a, 2320b, 2320c, 2320d, and 2320e.
  • the video decoding apparatus 200 may further include a first coding unit 2300, a second coding unit 2310a, and a third coding unit 2320a, 2320b, 2320c, and 2320c based on at least one of block type information and division type information, 2320d, and 2320e may be divided into odd number of coding units among the divided types. For example, an encoding unit located on the right of the second encoding units 2310a and 2310b may be divided into odd third encoding units 2320c, 2320d, and 2320e.
  • the order in which the plurality of coding units included in the first coding unit 2300 are processed may be a predetermined order (for example, a z-scan order 2330) 200 can determine whether the third encoding units 2320c, 2320d, and 2320e determined by dividing the right second encoding unit 2310b into odd numbers satisfy the condition that the third encoding units 2320c, 2320d, and 2320e can be processed according to the predetermined order.
  • a predetermined order for example, a z-scan order 2330
  • the image decoding apparatus 200 satisfies a condition that third encoding units 2320a, 2320b, 2320c, 2320d, and 2320e included in the first encoding unit 2300 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 2310a and 2310b is divided in half according to the boundaries of the third encoding units 2320a, 2320b, 2320c, 2320d, and 2320e .
  • the third coding units 2320a and 2320b determined by dividing the height of the left-side second coding unit 2310a in the non-square form by half satisfy the condition, but the right second coding unit 2310b is set to 3 Since the boundaries of the third encoding units 2320c, 2320d, and 2320e determined by dividing the first encoding units 2320c, 2320d, and 2320d by the encoding units 2320c, 2320d, and 2320e do not divide the width or height of the right second encoding unit 2310b by half, 2320e may be determined as not satisfying the condition and the image decoding apparatus 200 may determine that the scanning order is disconnection in the case of such unsatisfactory condition and the right second encoding unit 2310b 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. 24 illustrates a process in which the image decoding apparatus 200 determines at least one encoding unit by dividing a first encoding unit 2400 according to an embodiment.
  • the image decoding apparatus 200 may divide the first encoding unit 2400 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 2400 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 2400 may be divided into a plurality of non-square encoding units.
  • the image decoding apparatus 200 includes a first encoding unit 2400 in the form of a square Can be divided into the second encoding units 2410a, 2410b, and 2410c divided in the vertical direction as the odd number of encoding units, or the second encoding units 2420a, 2420b, and 2420c determined by being divided in the horizontal direction.
  • the image decoding apparatus 200 may be configured such that the second encoding units 2410a, 2410b, 2410c, 2420a, 2420b, and 2420c included in the first encoding unit 2400 are processed in a predetermined order And the condition is that at least one of the width and the height of the first encoding unit 2400 is divided in half according to the boundaries of the second encoding units 2410a, 2410b, 2410c, 2420a, 2420b, and 2420c .
  • the boundaries of the second encoding units 2410a, 2410b, and 2410c, which are determined by dividing the first encoding unit 2400 in the vertical direction, are halved in the width of the first encoding unit 2400
  • the first encoding unit 2400 can be determined as not satisfying a condition that can be processed in a predetermined order. Also, since the boundaries of the second encoding units 2420a, 2420b, and 2420c determined by dividing the first encoding unit 2400 in the horizontal direction into the horizontal direction can not divide the width of the first encoding unit 2400 in half, 1 encoding unit 2400 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 order is disconnection in the case of such unsatisfactory condition and determine that the first encoding unit 2400 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 2400 in a square form and a first coding unit 2430 or 2450 in a non-square form into various types of coding units .
  • the image decoding apparatus 200 may include a first encoding unit 2500 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 2510a, 2510b, 2520a, and 2520b.
  • the second encoding units 2510a, 2510b, 2520a, and 2520b 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 2510a, 2510b, 2520a, and 2520b .
  • the image decoding apparatus 200 divides the non-square left second encoding unit 2510a determined by dividing the first encoding unit 2500 in the vertical direction into a horizontal direction, 2512a, 2512b can be determined.
  • the right-side second encoding unit 2510b is arranged in the horizontal direction in the same way as the direction in which the left second encoding unit 2510a is divided, As shown in Fig.
  • the left second encoding unit 2510a and the right second encoding unit 2510b are arranged in the horizontal direction
  • the third encoding units 2512a, 2512b, 2514a, and 2514b can be determined by being independently divided. However, this is because the video decoding apparatus 200 divides the first encoding unit 2500 into four square-shaped second encoding units 2530a, 2530b, 2530c, and 2530d 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 second encoding unit 2520a or 2520b in the non-square form determined by dividing the first encoding unit 12100 in the horizontal direction into the vertical direction, (2522a, 2522b, 2524a, 2524b). However, if one of the second coding units (for example, the upper second coding unit 2520a) is divided in the vertical direction, the video decoding apparatus 200 may generate a second coding unit (for example, The encoding unit 2520b) can be restricted so that the upper second encoding unit 2520a can not be divided in the vertical direction in the same direction as the divided direction.
  • FIG. 26 illustrates 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 2600 based on at least one of the block type information and the division type information, and outputs the second encoding units 2610a, 2610b, 2620a, 2620b, 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 2600 in the square form into the second encoding units 2630a, 2630b, 2630c, and 2630d in the form of a quadrangle.
  • the video decoding apparatus 200 can determine the non-square second encoding units 2610a, 2610b, 2620a, 2620b, and the like.
  • the image decoding apparatus 200 may independently divide the non-square second encoding units 2610a, 2610b, 2620a, and 2620b, respectively.
  • Each of the second encoding units 2610a, 2610b, 2620a, 2620b, and the like may be divided in a predetermined order through a recursive method, and the first encoding unit 2600 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 2612a and 2612b in the form of a square by dividing the left second encoding unit 2610a in the horizontal direction, and the second right encoding unit 2610b It is possible to determine the third encoding units 2614a and 2614b in the form of a square by being divided in the horizontal direction. Further, the image decoding apparatus 200 may divide the left second encoding unit 2610a and the right second encoding unit 2610b in the horizontal direction to determine the square-shaped third encoding units 2616a, 2616b, 2616c, and 2616d have. In this case, the encoding unit can be determined in the same manner as that of the first encoding unit 2600 divided into the four second square encoding units 2630a, 2630b, 2630c, and 2630d.
  • the image decoding apparatus 200 can determine the third encoding units 2622a and 2622b in the shape of a square by dividing the upper second encoding unit 2620a in the vertical direction, and the lower second encoding units 2620b Can be divided in the vertical direction to determine the third encoding units 2624a and 2624b in the form of a square. Furthermore, the image decoding apparatus 200 may divide the upper second encoding unit 2620a and the lower second encoding unit 2620b in the vertical direction to determine the square-shaped third encoding units 2622a, 2622b, 2624a, and 2624b have. In this case, the encoding unit can be determined in the same manner as that of the first encoding unit 2600 divided into the four second square encoding units 2630a, 2630b, 2630c, and 2630d.
  • FIG. 27 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 2700 based on the block type information and the division type information.
  • the image decoding apparatus 200 includes a first encoding unit 2700 (E.g., 2710a, 2710b, 2720a, 2720b, etc.) can be determined by dividing the second encoding unit (e.g. Referring to FIG.
  • the non-square second encoding units 2710a, 2710b, 2720a, and 2720b which are determined by dividing the first encoding unit 2700 only in the horizontal direction or the vertical direction, As shown in FIG.
  • the image decoding apparatus 200 divides the second encoding units 2710a and 2710b generated by dividing the first encoding unit 2700 in the vertical direction into the horizontal direction and outputs the third encoding units 2716a and 2716b, 2726c and 2716d can be determined and the second coding units 2720a and 2720b generated by dividing the first coding unit 2700 in the horizontal direction are respectively divided in the horizontal direction and the third coding units 2726a, 2726b and 2726c , 2726d) can be determined. Since the process of dividing the second encoding units 2710a, 2710b, 2720a, and 2720b has been described in detail with reference to FIG. 25, 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 according to the predetermined order have been described above with reference to FIG. 22, and a detailed description thereof will be omitted.
  • the image decoding apparatus 200 divides a first encoding unit 2700 in a square form into four quadrangle-shaped third encoding units 2716a, 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, 2726d Can be determined.
  • the image decoding apparatus 200 may process the third encoding units 2716a, 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, and 2726d according to the form in which the first encoding unit 2700 is divided You can decide.
  • the image decoding apparatus 200 divides the second encoding units 2710a and 2710b generated in the vertical direction into the horizontal direction to determine the third encoding units 2716a, 2716b, 2716c, and 2716d And the image decoding apparatus 200 first processes the third encoding units 2716a and 2716b included in the left second encoding unit 2710a in the vertical direction and then processes the third encoding units 2716a and 2716b included in the right second encoding unit 2710b The third encoding units 2716a, 2716b, 2716c, and 2716d can be processed in accordance with an order 2717 of processing the third encoding units 2716c and 2716d in the vertical direction.
  • the image decoding apparatus 200 divides the second encoding units 2720a and 2720b generated in the horizontal direction into vertical directions to determine the third encoding units 2726a, 2726b, 2726c, and 2726d And the image decoding apparatus 200 first processes the third encoding units 2726a and 2726b included in the upper second encoding unit 2720a in the horizontal direction and then processes the third encoding units 2726a and 2726b included in the lower second encoding unit 2720b The third encoding units 2726a, 2726b, 2726c, and 2726d can be processed in accordance with the sequence 2727 of processing the third encoding units 2726c and 2726d in the horizontal direction.
  • the second encoding units 2710a, 2710b, 2720a, and 2720b are divided to determine the third encoding units 2716a, 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, and 2726d, have.
  • the second encoding units 2710a and 2710b determined to be divided in the vertical direction and the second encoding units 2720a and 2720b determined to be divided in the horizontal direction are divided into different formats.
  • the third encoding units 2716a , 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, and 2726d the result is that the first encoding unit 2700 is divided into the same type of encoding units.
  • FIG. 28 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 2800 may be divided to determine the second encoding unit 2802, the third encoding unit 2804, and the like of the lower depth.
  • the size of the square shape of the first encoding unit 2800 if it 2Nx2N, the second encoding unit 2802, the width and height of the first encoding unit 2800 is determined by dividing 1/2 times 1 have a size of NxN .
  • the third coding unit 2804 determined by dividing the width and height of the second coding unit 2802 by a half size may have a size of N / 2xN / 2. In this case, it corresponds to 1/2 2 times the width and height of the first encoding unit 2800 of the third encoding unit (2804).
  • the case where the depth of the first encoding unit 2800 D a first depth of coding units 2800 1 1/2 times the second encoding unit 2802 in the width and height may be in the D + 1, the first encoding depth of 1/2 2 times the third encoding unit 2804 of the width and height of the unit 2800 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 2810 or 2820 into second lower coding units 2812 or 2822, The third encoding unit 2814 or 2824, or the like.
  • the video decoding apparatus 200 may determine a second coding unit (e.g., 2802, 2812, 2822, etc.) by dividing at least one of the width and the height of the first coding unit 2810 of Nx2N size. That is, the image decoding apparatus 200 can determine the second encoding unit 2802 of NxN size or the second encoding unit 2822 of NxN / 2 size by dividing the first encoding unit 2810 in the horizontal direction, The second encoding unit 2812 having the size of N / 2xN may be determined by dividing the second encoding unit 2812 in the horizontal direction and the vertical direction.
  • a second coding unit e.g., 2802, 2812, 2822, etc.
  • the image decoding apparatus 200 divides at least one of the width and the height of the 2NxN first encoding unit 2820 to determine a second encoding unit (e.g., 2802, 2812, 2822, etc.) It is possible. That is, the image decoding apparatus 200 can determine the second encoding unit 2802 of NxN size or the second encoding unit 2812 of N / 2xN size by dividing the first encoding unit 2820 in the vertical direction, The second encoding unit 2822 of the NxN / 2 size may be determined by dividing the image data in the horizontal direction and the vertical direction.
  • a second encoding unit e.g., 2802, 2812, 2822, etc.
  • the image decoding apparatus 200 divides at least one of the width and the height of the second encoding unit 2802 of NxN size to determine a third encoding unit (e.g., 2804, 2814, and 2824) It is possible. That is, the image decoding device 200 includes a second sub-coding unit 2802 in the vertical direction and the horizontal direction to determine the N / 2xN / 2 size, a third coding unit 2804 or to N / 2 2 xN / 2 size The third encoding unit 2814 of the N / 2xN / 2 size can be determined, or the third encoding unit 2824 of the N / 2xN / 2 2 size can be determined.
  • a third encoding unit e.g., 2804, 2814, and 2824
  • the image decoding apparatus 200 divides at least one of the width and the height of the second encoding unit 2812 of N / 2xN size to generate a third encoding unit (e.g., 2804, 2814, and 2824) . That is, the image decoding apparatus 200 divides the second encoding unit 2812 in the horizontal direction to obtain a third encoding unit 2804 of N / 2xN / 2 or a third encoding unit 2804 of N / 2xN / 2 2 size 2824) may be a crystal or division by determining the N / 2 2 xN / 2 the size of the third encoding unit 2814 in the vertical direction and the horizontal direction.
  • a third encoding unit e.g., 2804, 2814, and 2824
  • the image decoding apparatus 200 divides at least one of the width and the height of the second encoding unit 2814 of NxN / 2 size into a third encoding unit (e.g., 2804, 2814, 2824, etc.) . That is, the image decoding device 200 includes a second by dividing the coding unit 2812 in the vertical direction N / 2xN / 2 size, a third encoding unit 2804 or N / 2 2, xN / 2 size, a third encoding unit of the The second encoding unit 2814 can be determined or divided into vertical and horizontal directions to determine a third encoding unit 2824 of N / 2xN / 2 2 size.
  • a third encoding unit e.g., 2804, 2814, 2824, etc.
  • the image decoding apparatus 200 may divide a square-shaped encoding unit (for example, 2800, 2802, and 2804) into a horizontal direction or a vertical direction.
  • a square-shaped encoding unit for example, 2800, 2802, and 2804
  • the first encoding unit 2800 of the size 2Nx2N is divided in the vertical direction to determine the first encoding unit 2810 of the size Nx2N or the horizontal direction to determine the first encoding unit 2820 of 2NxN size .
  • the depth of the encoding unit in which the first encoding unit 2800, 2802, or 2804 of 2Nx2N size is divided in the horizontal direction or the vertical direction is determined May be the same as the depth of the first encoding unit (2800, 2802 or 2804).
  • it may correspond to 1/2 2 times the third encoding unit of width and height of a first encoding unit (2810 or 2820) of (2814 or 2824).
  • the depth of the first coding unit 2810 or 2820 is D
  • the depth of the second coding unit 2812 or 2814 which is half the width and height of the first coding unit 2810 or 2820 is D +
  • the depth of the first encoding unit 2 1/2 times the third encoding unit (2814 or 2824) of the width and height of (2810 or 2820) may be a D + 2.
  • FIG. 29 shows a depth and a PID (PID) for a coding unit classification that can be determined according to the type and size of coding units according to an exemplary embodiment.
  • PID PID
  • the image decoding apparatus 200 may divide the first encoding unit 2900 in a square shape to determine various types of second encoding units. 29, the video decoding apparatus 200 divides the first coding unit 2900 into at least one of a vertical direction and a horizontal direction according to the division type information, and outputs the second coding units 2902a, 2902b, 2904a, 2904b, 2906a, 2906b, 2906c, 2906d. That is, the video decoding apparatus 200 can determine the second encoding units 2902a, 2902b, 2904a, 2904b, 2906a, 2906b, 2906c, and 2906d based on the division type information for the first encoding unit 2900. [
  • the second encoding units 2902a, 2902b, 2904a, 2904b, 2906a, 2906b, 2906c, and 2906d which are determined according to the division type information for the first encoding unit 2900 in a square form
  • Depth can be determined based on. For example, since the length of one side of the first encoding unit 2900 in the square form is equal to the length of the long side of the second encoding units 2902a, 2902b, 2904a, and 2904b in the non-square form, 2900) and the non-square type second encoding units 2902a, 2902b, 2904a, 2904b are denoted by D in the same manner.
  • the image decoding apparatus 200 divides the first encoding unit 2900 into four square-shaped second encoding units 2906a, 2906b, 2906c, and 2906d based on the division type information, 2906b, 2906c, and 2906d are 1/2 times the length of one side of the first encoding unit 2900, the depths of the second encoding units 2906a, 2906b, 2906c, May be a depth of D + 1 that is one depth lower than D, which is the depth of the first encoding unit 2900.
  • the image decoding apparatus 200 divides a first encoding unit 2910 of a shape whose height is longer than a width in a horizontal direction according to division type information to generate a plurality of second encoding units 2912a, 2912b, 2914a, 2914b, and 2914c.
  • the image decoding apparatus 200 divides a first encoding unit 2920 of a shape whose width is longer than a height in a vertical direction according to the division type information, and generates a plurality of second encoding units 2922a, 2922b, 2924a, 2924b, and 2924c.
  • the second encoding units 2912a, 2912b, 2914a, 2914b, 2116a, 2116b, 2116c, and 2116d determined according to the division type information for the first encoding unit 2910 or 2920 of the non-
  • the depth can be determined based on the length of the long side. For example, since the length of one side of the square-shaped second encoding units 2912a and 2912b is 1/2 times the length of one side of the non-square first encoding unit 2910 whose height is longer than the width, The depth of the second encoding units 2902a, 2902b, 2904a, and 2904b in the form of D + 1 is one depth below the depth D of the first encoding unit 2910 in the non-square form.
  • the image decoding apparatus 200 may divide the non-square first encoding unit 2910 into odd second encoding units 2914a, 2914b, and 2914c based on the division type information.
  • the odd number of second encoding units 2914a, 2914b and 2914c may include non-square second encoding units 2914a and 2914c and a square second encoding unit 2914b.
  • the length of the long sides of the non-square second encoding units 2914a and 2914c and the length of one side of the second encoding unit 2914b in the square shape are set to 1/2 of the length of one side of the first encoding unit 2910
  • the depth of the second encoding units 2914a, 2914b and 2914c may be a depth of D + 1 which is one depth lower than the depth D of the first encoding unit 2910.
  • the image decoding apparatus 200 is connected to the first encoding unit 2920 in the form of a non-square shape whose width is longer than the height in a manner corresponding to the scheme for determining the depths of the encoding units associated with the first encoding unit 2910 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. 29, an encoding unit 2914b positioned at the center among the odd-numbered encoding units 2914a, 2914b, and 2914c has the same width as other encoding units 2914a and 2914c, And may be twice as high as the height of the sidewalls 2914a and 2914c. That is, in this case, the middle encoding unit 2914b may include two of the other encoding units 2914a and 2914c.
  • the coding unit 2914c positioned next to the coding unit 2914c 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. 29, the image decoding apparatus 200 divides a first coding unit 2910 of a rectangular shape whose height is longer than the width to determine an even number of coding units 2912a and 2912b or an odd number of coding units 2914a and 2914b , 2914c can be determined.
  • 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 2910 having a height greater than the width is divided into three encoding units, the image decoding apparatus 200 transmits the first encoding unit 2910 It can be divided into three coding units 2914a, 2914b and 2914c. The image decoding apparatus 200 may assign an index to each of the three encoding units 2914a, 2914b, and 2914c.
  • 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 2914b having an index corresponding to a middle value among the indices based on the indices of the encoding units so as to encode the middle position among the encoding units determined by dividing the first encoding unit 2910 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 2914b generated by dividing the first coding unit 2910 is divided into coding units 2914a and 2914c having the same width as the other coding units 2914a and 2914c but different in height Can be double the height.
  • the index (PID) of the coding unit 2914b positioned at the center is 1, the coding unit 2914c positioned next to the coding unit 2914c 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.
  • FIG. 30 shows that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to an embodiment.
  • a predetermined data unit may be defined as a 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 a process of determining a plurality of coding units for dividing a current picture.
  • a predetermined data unit is referred to as a reference data unit for convenience of explanation.
  • the reference data unit may represent a predetermined size and shape.
  • the reference encoding unit may comprise samples of MxN.
  • M and N may be equal to each other, or may be an integer represented by a multiplier of 2. That is, the reference data unit may represent a square or a non-square shape, and may be divided into an integer number of encoding units.
  • the image decoding apparatus 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 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 a reference data unit included in a 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 reference encoding unit 3000 of a square shape or a reference encoding unit 3002 of a non-square shape.
  • 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 3000 in the form of a square is described in detail in the process of dividing the current encoding unit of FIG. 18 and included in the non-square-type reference encoding unit 3000
  • the process of determining at least one encoding unit of FIG. 19 has been described in the process of dividing the current encoding unit 1900 or 1950 of FIG. 19, so a detailed description 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 extracts a predetermined condition (for example, a data unit having a size equal to or smaller than a slice) among the various data units (for example, a sequence, a picture, a slice, a slice segment, It is possible to obtain only an index for identifying the size and type of the reference encoding unit for each slice, slice segment, maximum encoding unit, and the like.
  • a predetermined condition for example, a data unit having a size equal to or smaller than a slice
  • the various data units for example, a sequence, a picture, a slice, a slice segment
  • the image decoding apparatus 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.
  • FIG. 31 shows a processing block serving as a reference for determining a determination order of a reference encoding unit included in a picture 3100 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, or the like. That is, the receiving unit 210 may acquire information on the size of the processing block from the bitstream for each of the plurality of data units, and the image decoding apparatus 200 may obtain information on the size of the 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 sizes of the processing blocks 3102 and 3112 included in the picture 3100.
  • 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 3102 and 3112 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 of the processing blocks 3102 and 3112 included in the picture 3100 based on the size of the processing block, and may include in the processing blocks 3102 and 3112 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 determination order 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 the reference encoding unit determination order from the bitstream as the information related to the processing blocks 3102 and 3112, and the video decoding apparatus 200 may receive the information 3102, and 3112, and determine at least one reference encoding unit included in the picture 3100 according to the determination order of the encoding unit.
  • the image decoding apparatus 200 may determine a determination order 3104 and 3114 of at least one reference encoding unit associated with each of the processing blocks 3102 and 3112. For example, when information on the determination order of reference encoding units is obtained for each processing block, the reference encoding unit determination order associated with each processing block 3102 and 3112 may be different for each processing block.
  • the reference encoding unit determination order 3104 related to the processing block 3102 is a raster scan order
  • the reference encoding unit included in the processing block 3102 can be determined according to the raster scan order.
  • the reference encoding unit determination order 3114 related to the other processing block 3112 is a reverse order of the raster scan order
  • the reference encoding unit included in the processing block 3112 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 may include 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,

Abstract

Disclosed is a prediction image generation technique using a deep neural network (DNN). A method for decoding an image, according to one disclosed embodiment, comprises the steps of: receiving a bitstream of an encoded image; determining one or more blocks segmented from the encoded image; generating prediction data by performing DNN-based prediction on a current block among the one or more blocks; extracting, from the bitstream, residual data of the current block; and reconstructing the current block using the prediction data and the residual data.

Description

영상을 부호화 또는 복호화하는 방법 및 장치Method and apparatus for encoding or decoding an image
본 개시는 기계 학습 알고리즘을 활용하는 인공지능(AI)을 이용하여 영상을 처리하는 방법과 관련된다. 구체적으로, 본 개시는 영상의 부호화 및 복호화 과정에서 딥 뉴럴 네트워크(DNN)를 이용하여 예측 영상을 생성하는 기술에 관한 것이다.This disclosure relates to methods of processing images using artificial intelligence (AI) that utilizes machine learning algorithms. Specifically, the present disclosure relates to a technique for generating a predictive image using a deep neural network (DNN) in an image encoding and decoding process.
인공지능 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템으로서 기계가 스스로 학습하고 판단하며, 사용할수록 인식률이 향상되는 시스템이다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.
특히, 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다.In particular, 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.
상기 기술적 과제를 해결하기 위한 일 실시예에 따른 영상 복호화 방법은, 부호화된 영상의 비트스트림을 수신하는 단계; 상기 부호화된 영상으로부터 분할된 하나 이상의 블록을 결정하는 단계; 상기 하나 이상의 블록 중 현재 블록에 대해 DNN(Deep Neural Network)에 기반한 예측을 수행하여 상기 현재 블록에 대한 예측 데이터를 생성하는 단계; 상기 비트스트림으로부터 상기 현재 블록의 레지듀얼 데이터를 추출하는 단계; 및 상기 예측 데이터와 상기 레지듀얼 데이터를 이용하여 상기 현재 블록을 복원하는 단계를 포함한다.According to an aspect of the present invention, there is provided an image decoding method comprising: receiving a bitstream of an encoded image; Determining at least one block segmented from the encoded image; Performing prediction based on a DNN (Deep Neural Network) on a current block among the one or more blocks to generate prediction data for the current block; Extracting residual data of the current block from the bitstream; And reconstructing the current block using the prediction data and the residual data.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 DNN은, 상기 현재 블록의 원(original) 데이터와의 오차를 최소화한 상기 예측 데이터를 생성하도록 학습된 네트워크일 수 있다.Also, in the image decoding method according to an exemplary embodiment, the DNN may be a network that has been learned to generate the prediction data that minimizes an error with the original data of the current block.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 예측 데이터를 생성하는 단계는, 상기 현재 블록에 대해 DNN에 기반한 제 1 예측을 수행하여 제 1 예측 데이터를 생성하는 단계; 상기 제 1 예측 데이터에 대해 DNN에 기반한 제 2 예측을 수행하여 제 2 예측 데이터를 생성하는 단계; 및 상기 제 1 예측 데이터 및 상기 제 2 예측 데이터를 이용하여 상기 예측 데이터를 생성하는 단계를 포함할 수 있다.The generating of the prediction data may include generating first prediction data by performing a first prediction based on a DNN for the current block, Generating second prediction data by performing a second prediction based on DNN with respect to the first prediction data; And generating the prediction data using the first prediction data and the second prediction data.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 제 1 예측은 RNN(Recurrent Neural Network)에 기반하여 수행되고, 상기 제 2 예측은 CNN(Convolutional Neural Network)에 기반하여 수행될 수 있다.Also, in the image decoding method according to an exemplary embodiment, the first prediction may be performed based on a RNN (Recurrent Neural Network), and the second prediction may be performed based on a CNN (Convolutional Neural Network).
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 RNN은 상기 현재 블록의 원 데이터와의 오차를 최소화한 상기 제 1 예측 데이터를 생성하도록 학습된 네트워크일 수 있다.Also, in the image decoding method according to an embodiment, the RNN may be a network that is learned to generate the first prediction data that minimizes an error with the original data of the current block.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 CNN은 상기 현재 블록의 원 데이터에서 상기 제 1 예측 데이터를 뺀 값과의 오차를 최소화한 상기 제 2 예측 데이터를 생성하도록 학습된 네트워크일 수 있다.Also, in the image decoding method according to an exemplary embodiment, the CNN may be a network number that is learned to generate the second prediction data that minimizes an error between the original data of the current block and the value obtained by subtracting the first prediction data have.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 제 1 예측 데이터를 생성하는 단계는, 상기 현재 블록에 인접한 주변 블록들을 시간 스텝(time step) 별로 소정 방향에 따라 상기 RNN 내 LSTM(long short-term memory) 네트워크의 각 셀(cell)에 입력하는 단계; 상기 각 셀 내의 복수의 게이트(gate)를 이용하여 상기 시간 스텝에 대한 셀 출력을 생성하는 단계; 및 상기 RNN의 완전 연결 네트워크(fully connected network)를 통해, 상기 셀 출력을 처리하는 단계를 포함할 수 있다.According to another aspect of the present invention, there is provided a method of decoding an image, the method comprising the steps of: generating neighboring blocks adjacent to the current block by LSTM (long short) in the RNN along a predetermined direction on a time step- -term memory) into each cell of the network; Generating a cell output for the time step using a plurality of gates in each cell; And processing the cell output via a fully connected network of the RNN.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 입력하는 단계는, 상기 현재 블록을 기준으로 하나 이상의 입력 각도를 결정하는 단계; 각 입력 각도를 따라 위치한 입력 각도 별 주변 블록을 결정하는 단계; 및 상기 입력 각도 별 주변 블록을 시계 방향의 순서로 상기 LSTM 네트워크의 각 셀에 입력하는 단계를 포함할 수 있다.According to an embodiment of the present invention, the inputting step may include: determining one or more input angles based on the current block; Determining a neighboring block for each input angle located along each input angle; And inputting the neighboring blocks for each input angle to each cell of the LSTM network in the clockwise order.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 입력 각도 별 주변 블록이 복수 개일 경우, 동일한 입력 각도에 위치한 주변 블록들 사이의 입력 순서는 상기 현재 블록에서 먼 위치로부터 가까운 위치의 순서일 수 있다.In the image decoding method according to an embodiment, when there are a plurality of neighboring blocks according to the input angle, the input order between neighboring blocks located at the same input angle may be an order of positions closer to the current block have.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 입력하는 단계는, 상기 주변 블록들을 Z 스캔의 순서로 상기 LSTM 네트워크의 각 셀에 입력하는 단계를 포함할 수 있다.Also, in the image decoding method according to an embodiment, the inputting may include inputting the neighboring blocks to each cell of the LSTM network in the order of Z scan.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 제 2 예측 데이터를 생성하는 단계는, 상기 제 1 예측 데이터 및 상기 현재 블록에 인접한 주변 복원 데이터를 상기 CNN의 컨볼루션 레이어(convolutional layer)에 입력하는 단계; 및 상기 컨볼루션 레이어의 복수의 필터를 이용하여 컨볼루션 동작을 수행하는 단계를 포함할 수 있다.According to an embodiment of the present invention, the generating of the second prediction data may further include the step of generating the second prediction data by adding the first prediction data and the neighboring reconstructed data adjacent to the current block to a convolutional layer of the CNN Inputting; And performing a convolution operation using a plurality of filters of the convolution layer.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 예측 데이터를 생성하는 단계는, 상기 현재 블록이 참조하는 하나 이상의 참조 픽처 및 하나 이상의 참조 블록 위치를 결정하는 단계; 및 상기 하나 이상의 참조 픽처 및 상기 하나 이상의 참조 블록 위치를 이용하여 상기 예측 데이터를 생성하는 단계를 포함할 수 있다.According to an embodiment of the present invention, the generating of the prediction data may include: determining one or more reference pictures and one or more reference block positions referenced by the current block; And generating the prediction data using the one or more reference pictures and the one or more reference block positions.
또한, 일 실시예에 따른 영상 복호화 방법에 있어서, 상기 DNN의 구조에 대한 정보 및 상기 DNN에 기반한 예측을 수행하는 블록에 대한 정보는 상기 비트스트림의 비디오 파라미터 세트, 시퀀스 파라미터 세트 및 픽처 파라미터 세트 중 적어도 하나로부터 획득될 수 있다.Also, in the image decoding method according to an embodiment, information on the structure of the DNN and information on a block for performing prediction based on the DNN may be a video parameter set, a sequence parameter set, and a picture parameter set Can be obtained from at least one.
일 실시예에 따른 영상 복호화 장치는, 부호화된 영상의 비트스트림을 수신하는 수신부; 상기 부호화된 영상으로부터 분할된 하나 이상의 블록을 결정하는 블록 결정부; 상기 하나 이상의 블록 중 현재 블록에 대해 DNN(Deep Neural Network)에 기반한 예측을 수행하여 상기 현재 블록에 대한 예측 데이터를 생성하는 예측부; 및 상기 비트스트림으로부터 상기 현재 블록의 레지듀얼 데이터를 추출하고, 상기 예측 데이터와 상기 레지듀얼 데이터를 이용하여 상기 현재 블록을 복원하는 복원부를 포함한다.According to an embodiment of the present invention, there is provided an apparatus for decoding an image, the apparatus comprising: a receiver for receiving a bitstream of an encoded image; A block determining unit for determining one or more blocks divided from the encoded image; A prediction unit for generating prediction data for the current block by performing prediction based on DNN (Deep Neural Network) on the current block among the one or more blocks; And a decompression unit for extracting the residual data of the current block from the bitstream and restoring the current block using the prediction data and the residual data.
일 실시예에 따른 영상 부호화 방법은, 영상을 분할하는 하나 이상의 블록을 결정하는 단계; 상기 하나 이상의 블록 중 현재 블록에 대해 DNN(Deep Neural Network)에 기반한 예측을 수행하여 상기 현재 블록에 대한 예측 데이터를 생성하는 단계; 상기 현재 블록에 대응하는 원(original) 데이터와 상기 예측 데이터를 이용하여 상기 현재 블록의 레지듀얼 데이터를 생성하는 단계; 및 상기 레지듀얼 데이터를 부호화한 비트스트림을 생성하는 단계를 포함한다.According to an embodiment of the present invention, there is provided a method of encoding an image, the method comprising: determining one or more blocks for dividing an image; Performing prediction based on a DNN (Deep Neural Network) on a current block among the one or more blocks to generate prediction data for the current block; Generating residual data of the current block using original data corresponding to the current block and the prediction data; And generating a bitstream obtained by coding the residual data.
학습된 DNN에 기반한 예측을 수행함으로써, 예측 정보의 시그널링을 생략할 수 있으며, 부호화 및 복호화 효율을 높일 수 있다.By performing the prediction based on the learned DNN, the signaling of the prediction information can be omitted, and the coding and decoding efficiency can be enhanced.
도 1은 일 실시예에 따른 영상 부호화 장치(100)의 상세한 블록도를 도시한다.FIG. 1 shows a detailed block diagram of an image encoding apparatus 100 according to an embodiment.
도 2는 일 실시예에 따른 영상 복호화 장치(200)의 상세한 블록도를 도시한다.FIG. 2 shows a detailed block diagram of an image decoding apparatus 200 according to an embodiment.
도 3은 인트라 예측에 이용되는 예측 정보의 일 예를 나타낸 도면이다. 3 is a diagram showing an example of prediction information used for intra prediction.
도 4는 인터 예측에 이용되는 예측 정보의 일 예를 나타낸 도면이다.4 is a diagram showing an example of prediction information used for inter prediction.
도 5는 일 실시예에 따른 DNN에 기반한 예측 과정을 개념적으로 나타낸 도면이다.FIG. 5 is a conceptual diagram illustrating a DNN-based prediction process according to an embodiment.
도 6은 일 실시예에 따른 DNN 기반 인트라 예측 과정을 나타낸 도면이다.FIG. 6 is a diagram illustrating a DNN-based intra prediction process according to an exemplary embodiment of the present invention.
도 7은 RNN의 구조를 나타내는 도면이다.7 is a diagram showing a structure of an RNN.
도 8은 LSTM의 구조를 나타내는 도면이다.8 is a diagram showing the structure of the LSTM.
도 9a는 제 1 예측 데이터를 생성하기 위한 RNN 입력 데이터의 일 예를 나타내는 도면이다.9A is a diagram showing an example of RNN input data for generating first predictive data.
도 9b는 제 1 예측 데이터를 생성하기 위한 RNN 입력 데이터의 다른 예를 나타내는 도면이다.9B is a diagram showing another example of RNN input data for generating first predictive data.
도 9c는 제 1 예측 데이터를 생성하기 위한 RNN 입력 데이터의 또 다른 일 예를 나타내는 도면이다.9C is a diagram showing another example of RNN input data for generating first predictive data.
도 10은 CNN의 구조를 나타내는 도면이다.10 is a view showing the structure of CNN.
도 11은 제 2 예측 데이터를 생성하기 위한 CNN 입력 데이터의 일 예를 나타내는 도면이다.11 is a diagram showing an example of CNN input data for generating second predictive data.
도 12는 일 실시예에 따른 DNN 기반 인터 예측 과정을 나타낸 도면이다.12 is a diagram illustrating a DNN-based inter prediction process according to an embodiment.
도 13은 일 실시예에 따른 비트스트림의 구조를 나타낸 도면이다.13 is a diagram illustrating a structure of a bitstream according to an embodiment.
도 14는 일 실시예에 따른 영상 부호화 장치(1400)의 개략적인 블록도를 도시한다.FIG. 14 shows a schematic block diagram of an image encoding apparatus 1400 according to an embodiment.
도 15는 일 실시예에 따른 영상 복호화 장치(1500)의 개략적인 블록도를 도시한다.FIG. 15 shows a schematic block diagram of an image decoding apparatus 1500 according to an embodiment.
도 16은 일 실시예에 따른 영상 부호화 방법을 나타낸 플로우 차트이다.16 is a flowchart illustrating an image encoding method according to an embodiment.
도 17은 일 실시예에 따른 영상 복호화 방법을 나타낸 플로우 차트이다.17 is a flowchart illustrating a video decoding method according to an embodiment.
도 18은 일 실시예에 따라 현재 부호화 단위가 분할되어 적어도 하나의 부호화 단위가 결정되는 과정을 도시한다.FIG. 18 illustrates a process in which at least one encoding unit is determined by dividing a current encoding unit according to an embodiment.
도 19는 일 실시예에 따라 비-정사각형의 형태인 부호화 단위가 분할되어 적어도 하나의 부호화 단위가 결정되는 과정을 도시한다.FIG. 19 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.
도 20은 일 실시예에 따라 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 부호화 단위가 분할되는 과정을 도시한다.FIG. 20 illustrates a process in which an encoding unit is divided based on at least one of block type information and division type information according to an embodiment.
도 21은 일 실시예에 따라 홀수개의 부호화 단위들 중 소정의 부호화 단위가 결정되는 방법을 도시한다.FIG. 21 illustrates a method of determining a predetermined encoding unit among odd number of encoding units according to an embodiment.
도 22는 일 실시예에 따라 현재 부호화 단위가 분할되어 복수개의 부호화 단위들이 결정되는 경우, 복수개의 부호화 단위들이 처리되는 순서를 도시한다.FIG. 22 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.
도 23은 일 실시예에 따라 소정의 순서로 부호화 단위가 처리될 수 없는 경우, 현재 부호화 단위가 홀수개의 부호화 단위로 분할되는 것으로 결정되는 과정을 도시한다.FIG. 23 illustrates a process in which if the 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.
도 24는 일 실시예에 따라 제1 부호화 단위가 분할되어 적어도 하나의 부호화 단위가 결정되는 과정을 도시한다.FIG. 24 illustrates a process in which a first encoding unit is divided according to an embodiment to determine at least one encoding unit.
도 25는 일 실시예에 따라 제1 부호화 단위가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위가 소정의 조건을 만족하는 경우, 제2 부호화 단위가 분할될 수 있는 형태가 제한되는 것을 도시한다.25 illustrates that when the second encoding unit of the non-square type determined by dividing the first encoding unit according to an embodiment satisfies a predetermined condition, the form in which the second encoding unit can be divided is limited .
도 26은 일 실시예에 따라 분할 형태 정보가 4개의 정사각형 형태의 부호화 단위로 분할하는 것을 나타낼 수 없는 경우, 정사각형 형태의 부호화 단위가 분할되는 과정을 도시한다.FIG. 26 illustrates a process of dividing a square-shaped encoding unit when the division type information can not indicate division into four square-shaped encoding units according to an embodiment.
도 27은 일 실시예에 따라 복수개의 부호화 단위들 간의 처리 순서가 부호화 단위의 분할 과정에 따라 달라질 수 있음을 도시한 것이다.FIG. 27 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.
도 28은 일 실시예에 따라 부호화 단위가 재귀적으로 분할되어 복수개의 부호화 단위가 결정되는 경우, 부호화 단위의 형태 및 크기가 변함에 따라 부호화 단위의 심도가 결정되는 과정을 도시한다.FIG. 28 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.
도 29는 일 실시예에 따라 부호화 단위들의 형태 및 크기에 따라 결정될 수 있는 심도 및 부호화 단위 구분을 위한 인덱스(part index, 이하 PID)를 도시한다.FIG. 29 shows a depth and a PID (PID) for a coding unit classification that can be determined according to the type and size of coding units according to an exemplary embodiment.
도 30은 일 실시예에 따라 픽처에 포함되는 복수개의 소정의 데이터 단위에 따라 복수개의 부호화 단위들이 결정된 것을 도시한다.30 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.
도 31은 일 실시예에 따라 픽처에 포함되는 기준 부호화 단위의 결정 순서를 결정하는 기준이 되는 프로세싱 블록을 도시한다.FIG. 31 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.
명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.As used herein, the term " 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. Thus, by way of example, and not limitation, " part (s) " refers to components such as software components, object oriented software components, class components and task components, and processes, Subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functions provided in the components and " parts " may be combined into a smaller number of components and " parts " or further separated into additional components and " parts ".
아래에서는 첨부한 도면을 참고하여 일 실시예의 실시예에 대하여 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 일 실시예는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 일 실시예를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the embodiments of the present invention. However, one embodiment may be implemented in various different forms and is not limited to the embodiments described herein. In order to clearly explain an embodiment in the drawings, parts not related to the description are omitted.
일 실시예에서 사용되는 용어는 일 실시예에서의 기능을 고려하면서 가능한 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 일 실시예에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 일 실시예의 전반에 걸친 내용을 토대로 정의되어야 한다.Although the terms used in one embodiment have selected general terms that are as widely used as possible in consideration of the functions in one embodiment, they may vary depending on the intention or circumstance of a person skilled in the art, the emergence of new techniques and the like. Also, in certain cases, there may be a term selected arbitrarily by the applicant, in which case the meaning thereof will be described in detail in the description of the corresponding invention. Therefore, the term used in an embodiment should be defined based on the meaning of the term, not on the name of a simple term, but on the contents of one embodiment.
본 개시는, 기계 학습 알고리즘을 활용하는 인공지능(AI)을 이용하여 영상을 처리하는 방법과 관련된다. 구체적으로, 영상의 부호화 및 복호화 과정에서 딥 뉴럴 네트워크(Deep Neural Network; DNN)를 이용하여 인트라 예측 또는 인터 예측을 수행하는 것과 관련된다.This disclosure relates to a method of processing an image using artificial intelligence (AI) utilizing a machine learning algorithm. More specifically, the present invention relates to performing intraprediction or inter prediction using a Deep Neural Network (DNN) in an image encoding and decoding process.
이하, 도 1 내지 도 2를 참조하여 영상의 부호화 및 복호화와 관련된 전체적인 동작이 후술된다. 도 3 내지 도 4를 참조하여 인트라 예측 및 인터 예측 방법이 후술된다. 도 5 내지 도 17을 참조하여 인공지능을 적용한 예측 영상의 생성 방법이 후술된다. 도 18 내지 도 31을 참조하여 일 실시예에 따른 영상의 데이터 단위를 결정하는 방법이 후술된다.Hereinafter, an overall operation related to encoding and decoding of an image will be described with reference to FIGS. 1 and 2. FIG. The intra prediction and inter prediction methods will be described below with reference to FIGS. A method of generating a predictive image using artificial intelligence will be described below with reference to FIGS. 5 to 17. FIG. A method of determining a data unit of an image according to an embodiment will be described below with reference to FIGS. 18 to 31. FIG.
도 1은 일 실시예에 따른 영상 부호화 장치(100)의 상세한 블록도를 도시한다.FIG. 1 shows a detailed block diagram of an image encoding apparatus 100 according to an embodiment.
일 실시예에 따른 영상 부호화 장치(100)는, 블록 결정부(110), 인터 예측부(115), 인트라 예측부(120), 복원 픽처 버퍼(125), 변환부(130), 양자화부(135), 역양자화부(140), 역변환부(145), 인루프 필터링부(150) 및 엔트로피 부호화부(155)를 포함한다. The image encoding apparatus 100 according to an embodiment 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.
일 실시예에 따른 블록 결정부(110)는 영상을 부호화하기 위한 블록의 최대 크기에 따라, 현재 영상의 데이터를 최대 부호화 단위로 분할할 수 있다. 각각의 최대 부호화 단위는 블록 형태 및 분할 형태별로 분할되는 블록(즉, 부호화 단위)들을 포함할 수 있다. 일 실시예에 따른 최대 부호화 단위는 최대 부호화 단위에 포함된 공간 영역(spatial domain)의 영상 데이터가 블록 형태 및 분할 형태에 따라 계층적으로 분류될 수 있다. 부호화 단위의 블록 형태는 정사각형 또는 직사각형일 수 있으며, 임의의 기하학적 형태일 수 있으므로, 일정한 크기의 데이터 단위로 제한되는 것은 아니다.The block determination unit 110 according to an exemplary embodiment 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.
부호화되는 픽처의 크기가 커짐에 따라, 더 큰 단위로 영상을 부호화하면 더 높은 영상 압축률로 영상을 부호화할 수 있다. 그러나, 부호화 단위를 크게 하고, 그 크기를 고정시켜버리면, 계속해서 변하는 영상의 특성을 반영하여 효율적으로 영상을 부호화할 수 없다. As the size of a picture to be encoded increases, if an image is coded in a larger unit, the image can be encoded with a higher image compression rate. However, if 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.
예를 들어, 바다 또는 하늘에 대한 평탄한 영역을 부호화할 때에는 부호화 단위를 크게 할수록 압축률이 향상될 수 있으나, 사람들 또는 빌딩에 대한 복잡한 영역을 부호화할 때에는 부호화 단위를 작게 할수록 압축률이 향상된다.For example, when coding a flat area with respect to the sea or sky, the compression rate can be improved by increasing the coding unit. However, when coding a complex area for people or buildings, the compression ratio is improved as the coding unit is decreased.
이를 위해 일 실시예에 따른 블록 결정부(110)는 픽처 또는 슬라이스마다 상이한 크기의 최대 부호화 단위를 설정하고, 최대 부호화 단위로부터 분할되는 하나 이상의 부호화 단위의 블록 형태 및 분할 형태를 설정한다. 블록 형태 및 분할 형태에 따라 최대 부호화 단위에 포함된 부호화 단위의 크기를 가변적으로 설정할 수 있게 된다.For this, the block determination unit 110 according to an embodiment 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.
하나 이상의 부호화 단위의 블록 형태 및 분할 형태는 R-D 코스트(Rate-Distortion Cost) 계산에 기초해 결정될 수 있다. 블록 형태 및 분할 형태는 픽처 또는 슬라이스마다 상이하게 결정되거나, 각각의 최대 부호화 단위마다 상이하게 결정될 수도 있다. 결정된 블록 형태 및 분할 형태는 부호화 단위별 영상 데이터와 함께 블록 결정부(110)로부터 출력된다.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.
일 실시예에 따라, 최대 부호화 단위로부터 분할되는 부호화 단위는 블록 형태 및 분할 형태로 특징지어질 수 있다. 블록 형태 및 분할 형태로 부호화 단위를 결정하는 구체적인 방식에 대해서는 도 18 내지 도 31을 통해 보다 상세히 후술하기로 한다.According to one embodiment, 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 units in the block form and the division form will be described later in more detail with reference to FIG. 18 to FIG.
일 실시예에 따라, 최대 부호화 단위에 포함된 부호화 단위들은 상이한 크기의 처리 단위에 기초해 예측 또는 변환(예를 들어, 픽셀 도메인의 값들을 주파수 도메인의 값들로 변환)될 수 있다. 다시 말해, 영상 부호화 장치(100)는 영상 부호화를 위한 복수의 처리 단계들을 다양한 크기 및 다양한 형태의 처리 단위에 기초해 수행할 수 있다. 영상 데이터의 부호화를 위해서는 예측, 변환, 엔트로피 부호화 등의 처리 단계를 거치는데, 모든 단계에 걸쳐서 동일한 크기의 처리 단위가 이용될 수도 있으며, 단계별로 상이한 크기의 처리 단위를 이용할 수 있다.According to one embodiment, 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. In other words, 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.
일 실시예에 따라, 부호화 단위의 예측 모드는 인트라 모드, 인터 모드 및 스킵 모드 중 적어도 하나일 수 있으며, 특정 예측 모드는 특정 크기 또는 형태의 부호화 단위에 대해서만 수행될 수 있다. 일 실시예에 따라, 각각의 부호화 단위에 대해 예측을 수행하여 부호화 오차가 가장 작은 예측 모드가 선택될 수 있다.According to one embodiment, 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. According to one embodiment, a prediction mode with the smallest coding error can be selected by performing prediction for each coding unit.
또한, 영상 부호화 장치(100)는 부호화 단위와 다른 크기의 처리 단위에 기초해 영상 데이터를 변환할 수 있다. 부호화 단위의 변환을 위해서 부호화 단위보다 작거나 같은 크기의 데이터 단위를 기반으로 변환이 수행될 수 있다. Also, 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.
일 실시예에 따라 영상 부호화 장치(100)는 부호화 단위의 부호화 오차를 라그랑지 곱(Lagrangian Multiplier) 기반의 율-왜곡 최적화 기법(Rate-Distortion Optimization)을 이용하여 측정할 수 있다.According to an exemplary embodiment, the image encoding apparatus 100 may measure a coding error of an encoding unit using a Lagrangian Multiplier-based Rate-Distortion Optimization technique.
인트라 예측부(120)는 입력 영상(105) 중 인트라 모드의 블록에 대해 인트라 예측을 수행하고, 인터 예측부(115)는 인터 모드의 블록에 대해 입력 영상(105) 및 복원 픽처 버퍼(125)에서 획득된 참조 픽처를 이용하여 인터 예측을 수행한다. 인트라 예측 또는 인터 예측을 수행할지 여부는 블록 단위 별로 결정될 수 있다. 영상 부호화 장치(100)는 인트라 예측 또는 인터 예측을 수행할지 여부에 대한 정보를 부호화할 수 있다.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 information on whether to perform intra prediction or inter prediction.
후술하겠지만, 일 실시예에 따른 인트라 예측부(120)는 DNN에 기반한 인트라 예측을 수행할 수 있으며, 인터 예측부(115)는 DNN에 기반한 인터 예측을 수행할 수 있다. As will be described later, the intra-prediction unit 120 according to one embodiment can perform intra-prediction based on DNN, and the inter-prediction unit 115 can perform inter-prediction based on DNN.
입력 영상(105)의 블록에 대한 데이터와, 인트라 예측부(120) 또는 인터 예측부(115)로부터 출력된 각 블록에 대한 예측 데이터의 차이를 계산함으로써 레지듀얼 데이터가 생성된다. 레지듀얼 데이터는 변환부(130) 및 양자화부(135)를 거쳐 블록 별로 양자화된 변환 계수로 출력된다. 양자화된 변환 계수는 역양자화부(140), 역변환부(145)를 통해 공간 영역의 레지듀얼 데이터로 복원된다. 복원된 공간 영역의 레지듀얼 데이터는 인트라 예측부(120) 또는 인터 예측부(115)로부터 출력된 각 블록에 대한 예측 데이터와 더해짐으로써 입력 영상(105)의 블록에 대한 공간 영역의 데이터로 복원된다. 복원된 공간 영역의 데이터는 인루프 필터링부(150)를 거쳐 복원 영상으로 생성된다. 인루프 필터링부(150)는 디블록킹(deblocking)만을 수행할 수도 있으며, 디블록킹 이후 SAO(sample adaptive offset) 필터링을 수행할 수도 있다. 생성된 복원 영상은 복원 픽처 버퍼(125)에 저장된다. 복원 픽처 버퍼(125)에 저장된 복원 픽처들은 다른 영상의 인터 예측을 위한 참조 픽처로 이용될 수 있다. 변환부(130) 및 양자화부(135)에서 양자화된 변환 계수는 엔트로피 부호화부(155)를 거쳐 비트스트림(160)으로 출력될 수 있다.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 deblocking only, or may perform sample adaptive offset (SAO) filtering after deblocking. 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. [
영상 부호화 장치(100)로부터 출력되는 비트스트림(160)에는 레지듀얼 데이터의 부호화 결과가 포함될 수 있다. 또한, 비트스트림(160)에는 블록 형태, 분할 형태, 변환 단위의 크기 정보 등을 나타내는 정보의 부호화 결과가 포함될 수도 있다.The bit stream 160 output from the image encoding apparatus 100 may include the encoding result of the residual data. In addition, 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.
도 2는 일 실시예에 따른 영상 복호화 장치(200)의 상세한 블록도를 도시한다.FIG. 2 shows a detailed block diagram of an image decoding apparatus 200 according to an embodiment.
일 실시예에 따른 영상 복호화 장치(200)는, 영상을 복호화하기 위한 동작들을 수행한다. 일 실시예에 따른 영상 복호화 장치(200)는 수신부(210), 블록 결정부(215), 엔트로피 복호화부(220), 역 양자화부(225), 역변환부(230), 인터 예측부(235), 인트라 예측부(240), 복원 픽처 버퍼(245) 및 인루프 필터링부(250)를 포함한다. The image decoding apparatus 200 according to an exemplary embodiment performs operations for decoding an image. The image decoding apparatus 200 according to an embodiment 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.
도 2의 수신부(210)는 부호화된 영상의 비트스트림(205)을 수신한다.The receiving unit 210 of FIG. 2 receives the bit stream 205 of the encoded image.
일 실시예에 따른 블록 결정부(215)는 영상을 복호화하기 위한 블록의 최대 크기에 따라, 현재 픽처의 영상 데이터를 최대 부호화 단위로 분할할 수 있다. 각각의 최대 부호화 단위는 블록 형태 및 분할 형태별로 분할되는 블록(즉, 부호화 단위)들을 포함할 수 있다. 일 실시예에 따른 블록 결정부(215)는 비트스트림(205)으로부터 분할 정보를 획득하여 공간 영역의 영상 데이터를 블록 형태 및 분할 형태에 따라 계층적으로 분할할 수 있다. 한편, 복호화에 이용되는 블록들이 일정한 형태 및 크기를 가질 경우, 블록 결정부(215)는 분할 정보를 이용하지 않고 영상 데이터를 분할할 수 있다. 일 실시예에 따른 블록 결정부(215)는 도 1의 블록 결정부(110)에 대응할 수 있다. The block determination unit 215 according to an exemplary embodiment 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 according to an embodiment 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 according to one embodiment may correspond to the block determination unit 110 of FIG.
엔트로피 복호화부(220)는 비트스트림(205)으로부터 복호화 대상인 부호화된 영상 데이터 및 복호화를 위해 필요한 부호화 정보를 획득한다. 부호화된 영상 데이터는 양자화된 변환계수로서, 역양자화부(225) 및 역변환부(230)는 양자화된 변환 계수로부터 레지듀얼 데이터를 복원한다. 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, and the inverse quantization unit 225 and the inverse transform unit 230 reconstruct the residual data from the quantized transform coefficients.
인트라 예측부(240)는 인트라 모드의 블록에 대해 인트라 예측을 수행한다. 인터 예측부(235)는 인터 모드의 블록에 대해 복원 픽처 버퍼(245)에서 획득된 참조 픽처를 이용하여 인터 예측을 수행한다. 인트라 예측 또는 인터 예측을 수행할지 여부는 블록 단위 별로 결정될 수 있다. 영상 복호화 장치(200)는 인트라 예측 또는 인터 예측을 수행할지 여부에 대한 정보를 비트스트림(205)으로부터 획득할 수 있다.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 information on whether to perform intra prediction or inter prediction from the bit stream 205. [
후술하겠지만, 일 실시예에 따른 인트라 예측부(240)는 DNN에 기반한 인트라 예측을 수행할 수 있으며, 인터 예측부(235)는 DNN에 기반한 인터 예측을 수행할 수 있다. As will be described later, the intra predictor 240 according to one embodiment can perform intraprediction based on DNN, and the inter predictor 235 can perform inter prediction based on DNN.
인트라 예측부(240) 또는 인터 예측부(235)를 거친 각 블록에 대한 예측 데이터와 레지듀얼 데이터가 더해짐으로써 블록에 대한 공간 영역의 데이터가 복원되고, 복원된 공간 영역의 데이터는 인루프 필터링부(250)를 거쳐 복원 영상으로 출력될 수 있다. 인루프 필터링부(250)는 디블록킹만을 수행할 수도 있으며, 디블록킹 이후 SAO 필터링을 수행할 수도 있다. 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 250 may perform deblocking only, or may perform SAO filtering after deblocking.
언급된 바와 같이, 본 개시는 인트라 예측 또는 인터 예측을 수행함에 있어서 DNN을 적용하는 기술을 포함한다. 예측 동작을 기술하기에 앞서, DNN을 간략히 설명하기로 한다.As mentioned, the present disclosure includes techniques for applying DNN in performing intra-prediction or inter-prediction. Prior to describing the prediction operation, the DNN will be briefly described.
뉴럴 네트워크(Neural Network)는 생물학적 뇌를 모델링한 컴퓨터 과학적 아키텍쳐(Computational Architecture)를 참조한다. 뉴럴 네트워크는 연결선으로 연결된 많은 수의 인공 뉴런들을 이용하여 생물학적인 시스템의 계산 능력을 모방하는 소프트웨어나 하드웨어로 구현된 인식 모델이다. 노드(node)로서 지칭되는 인공 뉴런들은 서로 연결되어 있고, 입력 데이터를 처리하기 위하여 집합적으로 동작한다.The Neural Network refers 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.
뉴럴 네트워크는 입력 레이어(input layer), 히든 레이어(hidden layer), 출력 레이어(output layer)를 포함할 수 있다. 입력 레이어는 학습을 수행하기 위한 입력을 수신하여 히든 레이어에 전달할 수 있고, 출력 레이어는 히든 레이어의 노드들로부터 수신한 신호에 기초하여 뉴럴 네트워크의 출력을 생성할 수 있다. 히든 레이어는 입력 레이어와 출력 레이어 사이에 위치하고, 입력 레이어를 통해 전달된 학습 데이터를 예측하기 쉬운 값으로 변화시킬 수 있다. 입력 레이어와 히든 레이어에 포함된 노드들은 연결 가중치를 가지는 연결선을 통해 서로 연결될 수 있다. 또한, 히든 레이어와 출력 레이어에 포함된 노드들도 연결 가중치를 가지는 연결선을 통해 서로 연결될 수 있다. 입력 레이어, 히든 레이어 및 출력 레이어는 복수 개의 노드들을 포함할 수 있다. 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. In addition, 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.
뉴럴 네트워크는 복수 개의 히든 레이어를 포함할 수 있다. 복수 개의 히든 레이어를 포함하는 뉴럴 네트워크를 딥 뉴럴 네트워크(Deep Neural Network; DNN)라고 하고, DNN을 학습시키는 것을 딥 러닝(Deep Learning)이라고 한다. 히든 레이어에 포함된 노드는 히든 노드(hidden node)라고 한다.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. A node contained in a hidden layer is called a hidden node.
DNN은 복수의 히든 레이어를 포함하는 다층 퍼셉트론(multilayer perceptrons) 구조를 갖는다. 퍼셉트론이란 각 뉴런의 수학적 모델 y=Wx+b 을 일컫는 용어로서, 이러한 다층 퍼셉트론은 역전파 알고리즘(backpropagation algorithm)을 통한 학습을 통해 예측의 정확도를 높일 수 있다. DNN이 역전파 알고리즘을 통해 학습을 하는 방법은 입력 레이어에서 시작하여 출력 레이어를 통해 y 값을 얻었을 때 기준 라벨 값(예를 들어, 정답을 나타내는 데이터 또는 원 데이터와의 오차가 가장 적은 데이터)과 비교하여 오답일 경우 다시 출력 레이어에서 입력 레이어 방향으로 값을 전달하며 계산된 코스트에 따라 각 W와 b 값을 업데이트 하는 방식이다.The DNN has a multilayer perceptrons structure including a plurality of hidden layers. Perceptron is a term referring to the mathematical model of each neuron, y = Wx + b. This multi-layer perceptron can improve the accuracy of prediction through learning through the backpropagation algorithm. The way in which DNN learns through the backpropagation algorithm is to start with the input layer and then use the reference 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.
이와 같은 DNN에 특정 입/출력 데이터 셋을 제공하여 학습을 시키면, 제공된 입/출력 데이터 셋의 데이터 패턴을 고차원으로 학습하여 원본 데이터에 가장 유사한 예측 영상을 추론하는 모델을 생성하게 된다. 일 실시예에 따른 인트라 예측부(120, 240)의 경우, 입력 데이터 셋은 인트라 예측에 이용되는 현재 블록의 주변 복원 데이터이며, 출력 데이터 셋은 원본 데이터와의 오차를 최소화한 현재 블록의 예측 데이터일 수 있다. 일 실시예에 따른 인터 예측부(115, 235)의 경우, 입력 데이터 셋은 현재 블록이 참조하는 과거 및/또는 미래 복원 영상의 데이터이며, 출력 데이터 셋은 원본 데이터와의 오차를 최소화한 현재 블록의 예측 데이터일 수 있다. 한편, 원본 데이터와 예측 데이터와의 오차는 R-D 코스트에 기초하여 측정될 수 있다.By providing a specific input / output dataset to such a DNN, it learns the data pattern of the provided input / output dataset at a high level and generates a model that deduces the most similar predicted image to the original data. In the case of the intraprediction units 120 and 240 according to the embodiment, the input data set is the restored data of the current block used for intra prediction, and the output data set is the predicted data of the current block that minimizes the error with the original data Lt; / RTI > In the case of the inter-prediction units 115 and 235 according to the embodiment, the input data set is the data of the past and / or future restored image referenced by the current block, and the output data set includes the current block Lt; / RTI > On the other hand, the error between the original data and the prediction data can be measured based on the R-D cost.
이처럼, 원본 데이터와의 오차를 최소화한 예측 블록을 생성하도록 학습된 DNN을 이용하여 예측을 수행할 경우, 영상 부호화 장치(100)로부터 영상 복호화 장치(200)로 별도의 예측 정보(예를 들어, 예측 모드, 참조 픽처 인덱스 등)가 전송될 필요가 없다. 또한, 영상 복호화 장치(200)는 영상 부호화 장치(100)와 동일한 구조의 DNN을 사용함으로써 예측 정보를 이용하지 않고도 예측 블록을 생성할 수 있다. 일 실시예에 따라, DNN의 네트워크 구조에 대한 정보가 영상 부호화 장치(100)로부터 영상 복호화 장치(200)로 전송될 수도 있다.In this way, when prediction is performed using the learned DNN to generate a prediction block with a minimized error with the original data, the predictive information (for example, prediction information) from the image coding apparatus 100 to the image decoding apparatus 200, Prediction mode, reference picture index, etc.) need not be transmitted. In addition, the image decoding apparatus 200 can generate a prediction block without using prediction information by using a DNN having the same structure as the image encoding apparatus 100. [ According to an embodiment, information on the network structure of the DNN may be transmitted from the image encoding apparatus 100 to the image decoding apparatus 200.
다만, 일 실시예에 따른 DNN은 상기와 같은 구조에 한정되지 아니하고, 다양한 구조의 네트워크로 형성될 수 있다.However, the DNN according to one embodiment is not limited to the above-described structure, and may be formed by networks of various structures.
다양한 종류의 DNN을 예로 들면, 컨볼루션 뉴럴 네트워크(Convolutional Neural Network; CNN), 회귀 뉴럴 네트워크(Recurrent Neural Network; RNN), 딥 빌리프 네트워크(Deep Belief Network; DBN), 제한된 볼츠만 기계(Restricted Boltzman Machine; RBM) 방식 등이 있으나, 이에 제한되지 않는다. 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.
전술한 바와 같이, DNN에 기반한 예측은 예측 정보의 시그널링을 필요로 하지 않는다. DNN에 기반한 예측 동작에 대해 설명하기에 앞서, 통상적인 예측 기술에서 이용되는 예측 정보의 일 예를 도 3 내지 도 4를 통해 설명하기로 한다. As described above, the prediction based on the DNN does not require the signaling of the prediction information. Prior to describing the DNN-based prediction operation, one example of prediction information used in a conventional prediction technique will be described with reference to FIG. 3 to FIG.
도 3은 인트라 예측에 이용되는 예측 정보의 일 예를 나타낸 도면이다. 3 is a diagram showing an example of prediction information used for intra prediction.
인트라 예측은 공간적 참조만을 허용하는 예측 기술로, 예측하고자 하는 블록에 인접한 블록의 픽셀을 이용하여 현재 블록을 예측하는 것을 말한다. 인트라 예측에서 사용되는 모드는 도 3에 도시된 바와 같은 다양한 형태로 존재할 수 있다.Intra prediction is a prediction technique that allows only spatial reference, and refers to predicting a current block using pixels of a block adjacent to a block to be predicted. The modes used in intra prediction may exist in various forms as shown in FIG.
도 3에 도시된 인트라 예측 모드에는 수직(Vertical) 모드, 수평(Horizontal) 모드, DC(Direct Current) 모드, 대각선 왼쪽(Diagonal Down-left) 모드, 대각선 오른쪽(Diagonal Down-right) 모드, 수직 오른쪽(Vertical right) 모드, 수직 왼쪽(Vertical left) 모드, 수평 위쪽(Horizontal-up) 모드 및 수평 아래쪽(Horizontal-down) 모드가 존재한다.The intra prediction modes shown in FIG. 3 include a vertical mode, a horizontal mode, a DC (direct current) mode, a diagonal down-left mode, a diagonal down-right mode, There are a vertical right mode, a vertical left mode, a horizontal up mode, and a horizontal down mode.
예를 들어, 도 3의 모드 0, 즉 수직 모드에 따라, 4×4 크기의 현재 블록을 예측 부호화하는 동작을 설명한다. 먼저 4×4 크기의 현재 블록의 위쪽에 인접한 픽셀 A 내지 D의 픽셀값을 4×4 현재 블록의 픽셀값으로 예측한다. 즉, 픽셀 A의 값을 4×4 현재 블록의 첫 번째 열에 포함된 4개의 픽셀값으로, 픽셀 B의 값을 4×4 현재 블록의 두 번째 열에 포함된 4개의 픽셀값으로, 픽셀 C의 값을 4×4 현재 블록의 세 번째 열에 포함된 4개의 픽셀값으로, 픽셀 D의 값을 4×4 현재 블록의 네 번째 열에 포함된 4개의 픽셀값으로 예측한다. 이와 같이 소정 방향으로 주변 픽셀의 값을 확장하는 인트라 예측을 통해 생성된 예측 블록은 예측 모드에 따라서 일정한 방향성을 가질 수 있다.For example, an operation of predicting a 4x4 current block according to mode 0, i.e., the vertical mode in Fig. 3, will be described. The pixel values of the pixels A to D adjacent to the upper side of the current block of the size of 4x4 are predicted as pixel values of the 4x4 current block. That is, the value of the pixel A is divided into four pixel values included in the first column of the 4x4 current block, the value of the pixel B is divided into four pixel values included in the second column of the 4x4 current block, Is predicted as the four pixel values included in the third column of the 4x4 current block and the pixel D value is predicted as the four pixel values included in the fourth column of the 4x4 current block. The prediction block generated through intraprediction, which extends values of neighboring pixels in a predetermined direction, may have a certain direction according to the prediction mode.
이처럼, 통상적인 인트라 예측 동작에서는 예측 모드와 같은 예측 정보가 시그널링되며, 시그널링된 예측 정보는 예측 블록 생성을 위해 이용된다.As described above, in a typical intraprediction operation, prediction information such as a prediction mode is signaled, and the signaled prediction information is used for generating a prediction block.
그러나, 일 실시예에 따른 DNN에 기반한 인트라 예측은 예측 정보의 시그널링을 필요로 하지 않는다. 학습된 DNN은 입력 패턴을 분석하여 그 특징을 찾아내어 올바른 예측 영상을 생성할 수 있는 일반화 능력을 갖기 때문이다. 일 실시예에 따른 DNN에 기반한 인트라 예측은, 예측 블록의 데이터와 원(original) 영상의 데이터 사이의 오차가 가장 적어지도록 학습된 DNN을 이용한다.However, intra prediction based on DNN according to an embodiment does not require signaling of prediction information. The learned DNN has the generalization ability to analyze the input pattern and find the feature to generate the correct prediction image. The intra prediction based on the DNN according to an embodiment uses the learned DNN so that the error between the data of the prediction block and the data of the original image is minimized.
DNN에 기반한 인트라 예측 방법에 관한 구체적인 설명은 도 6 내지 도 11을 통해 후술하기로 한다.A detailed description of the intra prediction method based on DNN will be described later with reference to FIG. 6 to FIG.
도 4는 인터 예측에 이용되는 예측 정보의 일 예를 나타낸 도면이다.4 is a diagram showing an example of prediction information used for inter prediction.
인트라 예측은 한 픽처 내에서 인접하는 픽셀 간에 높은 상관성이 존재한다는 점을 바탕으로 한다. 이와 유사하게, 비디오를 구성하는 각 픽처들은 시간적으로도 서로 높은 상관성을 갖고 있다. 따라서, 현재 픽처 내의 블록에 대한 예측 값을 이전 시간에 이미 복원된 픽처로부터 생성할 수 있다. 이처럼 이전 시간에 복원된 픽처로부터 예측 블록을 생성하는 기술을 인터 예측이라고 한다.Intra prediction is based on the fact that there is a high correlation between adjacent pixels in one picture. Similarly, each picture constituting a video has a high correlation with each other in terms of time. Therefore, the prediction value for the block in the current picture can be generated from the picture that has been reconstructed at the previous time. The technique of generating a prediction block from a picture reconstructed at a previous time is referred to as inter prediction.
예를 들어, 1초 동안에 30장의 픽처로 구성되는 영상의 경우, 하나의 픽처와 이웃한 픽처 간에는 픽처 간의 영상의 차이가 작기 때문에 인간의 눈으로 그 차이를 구분하기가 매우 어렵다. 그로 인해, 영상이 1초 동안에 30장의 픽처로 출력되면, 인간은 각 픽처가 연속적인 것으로 인식한다. 인터 예측은, 이전 픽처와 현재 픽처의 영상이 유사할 경우, 이전 픽처를 구성하고 있는 이미 알고 있는 영상의 화소 값으로부터 현재 픽처의 미지의 화소값을 예측할 수 있다는 점에 착안한다. 이러한 인터 예측은 움직임 예측(Motion Prediction) 기술을 기반으로 이루어진다. 움직임 예측은 시간 축을 기준으로 이전 픽처를 참조하거나 이전 픽처와 미래 픽처를 모두 참조하는 방식으로 수행된다. 현재 픽처를 부호화하거나 복호화하는데 참조되는 픽처를 참조 픽처(Reference Picture)라고 한다.For example, in the case of an image composed of 30 pictures in one second, it is very difficult to distinguish the difference between a picture and a neighboring picture with a human eye because the difference between pictures is small. As a result, if an image is output as 30 pictures in one second, the human recognizes that each picture is continuous. It is noted that the inter prediction can predict an unknown pixel value of the current picture from the pixel value of an already known picture constituting the previous picture when the picture of the current picture is similar to that of the previous picture. This inter prediction is based on the Motion Prediction technique. Motion prediction is performed by referring to a previous picture based on a time axis or referring to both a previous picture and a future picture. A picture referred to in encoding or decoding a current picture is referred to as a reference picture.
도 4를 참조하면, 영상은 일련의 정지 영상(Still Image)으로 구성된다. 이 정지 영상들은 픽처 그룹(GOP: Group of Picture) 단위로 구분된다. 각 정지 영상을 픽처 또는 프레임(Frame)이라 한다. 하나의 픽처 그룹에는 I 픽처(410), P 픽처(420), B 픽처(430)가 포함된다. I 픽처(410)는 참조 픽처를 사용하지 않고 자체적으로 부호화되는 픽처이며, P 픽처(420)와 B 픽처(430)는 참조 픽처를 사용하여 움직임 추정(Motion Estimation) 및 움직임 보상(Motion Compensation)을 수행하여 부호화되는 픽처이다. 특히, B 픽처(430)는 과거의 픽처와 미래의 픽처를 각각 순방향 및 역방향 즉, 양방향으로 예측하여 부호화되는 픽처이다.Referring to FIG. 4, the image is composed of a series of still images. These still images are divided into a group of pictures (GOP). Each still image is referred to as a picture or a frame. One picture group includes an I picture 410, a P picture 420, and a B picture 430. The P picture 420 and the B picture 430 are subjected to motion estimation and motion compensation using the reference pictures, To be coded. In particular, the B picture 430 is a picture that is coded by predicting a past picture and a future picture in forward and backward directions, that is, in both directions.
도 4를 참조할 때, P 픽처(420)를 부호화하기 위한 움직임 추정과 움직임 보상은 I 픽처(410)를 참조 픽처로서 이용한다. B 픽처(430)를 부호화하기 위한 움직임 추정 및 움직임 보상은 I 픽처(410)와 P 픽처(420)를 참조 픽처로서 이용한다. 이와 같이, 인터 예측에서는 하나의 참조 픽처만 사용하는 것이 아니라 다중 픽처를 사용하여 움직임을 추정하고 보상할 수 있다. Referring to FIG. 4, motion estimation and motion compensation for coding a P-picture 420 use an I-picture 410 as a reference picture. The motion estimation and motion compensation for coding the B picture 430 uses the I picture 410 and the P picture 420 as reference pictures. As described above, in inter prediction, motion estimation and compensation can be performed using not only one reference picture but also multiple pictures.
인터 예측 과정은 움직임 추정을 통해 참조 픽처들로부터 최적의 예측 블록을 찾고, 움직임 보상 과정을 통해 예측 블록을 생성하는 과정을 포함한다. 인터 예측을 통해 예측 블록이 생성되면, 생성된 예측 블록과 원본 블록과의 차이 값인 레지듀얼 신호가 변환, 양자화 및 엔트로피 부호화된다. 이 때, 통상적인 인터 예측 기술에서는 레지듀얼 신호와 함께 움직임 벡터, 예측 방향, 참조 픽처 인덱스 등과 같은 예측 정보가 시그널링된다. 즉, 통상적인 인터 예측 동작에서는 예측 정보가 시그널링되며, 시그널링된 예측 정보는 예측 블록 생성에 이용된다.The inter-prediction process includes searching for an optimal prediction block from reference pictures through motion estimation, and generating a prediction block through a motion compensation process. When a prediction block is generated through inter prediction, a residual signal, which is a difference value between the generated prediction block and the original block, is transformed, quantized, and entropy-encoded. At this time, prediction information such as a motion vector, a prediction direction, a reference picture index and the like is signaled together with a residual signal in a conventional inter prediction technique. That is, in a typical inter-prediction operation, prediction information is signaled, and the signaled prediction information is used for prediction block generation.
그러나, 일 실시예에 따른 DNN에 기반한 인터 예측은 예측 정보의 시그널링을 필요로 하지 않는다. 학습된 DNN은 입력 패턴을 분석하여 그 특징을 찾아내어 올바른 예측 영상을 생성할 수 있는 일반화 능력을 갖기 때문이다. 일 실시예에 따른 DNN에 기반한 인터 예측은, 예측 블록의 데이터와 원(original) 영상의 데이터 사이의 오차가 가장 적어지도록 학습된 DNN을 이용한다.However, inter prediction based on DNN according to an embodiment does not require signaling of prediction information. The learned DNN has the generalization ability to analyze the input pattern and find the feature to generate the correct prediction image. The DNN-based inter prediction according to an embodiment uses the learned DNN so that the error between the data of the prediction block and the data of the original image is minimized.
DNN에 기반한 인터 예측 방법에 관한 구체적인 설명은 도 12를 통해 후술하기로 한다.A detailed description of the DNN-based inter prediction method will be described later with reference to FIG.
도 5는 일 실시예에 따른 DNN에 기반한 예측 과정을 개념적으로 나타낸 도면이다.FIG. 5 is a conceptual diagram illustrating a DNN-based prediction process according to an embodiment.
도 5를 참조하면, 입력 영상(510), DNN(520) 및 예측 영상(530)이 도시된다. 예측을 수행하고자 하는 영역을 현재 블록(515)이라고 할 때, 입력 영상(510)은 현재 블록(515) 이전에 복원된 영상 데이터일 수 있다. 도 5의 입력 영상(510)은 현재 블록(515)와 같은 픽처 내에 존재하는 것으로 도시되었지만, 입력 영상(510)은 현재 블록(515)이 속한 픽처와 다른 프레임일 수도 있다. 예를 들어, 인트라 예측 시에는 현재 블록(515)과 동일 픽처에 속하는 복원된 데이터가 입력 영상(510)으로서 이용되며, 인터 예측 시에는 이전 시간에 복원된 픽처가 입력 영상(510)으로서 이용된다.Referring to FIG. 5, an input image 510, a DNN 520, and a prediction image 530 are shown. When an area to be predicted is referred to as a current block 515, the input image 510 may be image data restored before the current block 515. Although the input image 510 of FIG. 5 is shown as existing in the same picture as the current block 515, the input image 510 may be a frame different from the picture to which the current block 515 belongs. For example, at the time of intra prediction, restored data belonging to the same picture as the current block 515 is used as the input image 510, and at the time of inter prediction, the restored picture is used as the input image 510 .
입력 영상(510)은 학습 데이터로서 DNN(520)의 입력 레이어로 입력될 수 있다. DNN(520)의 입력 레이어를 통해 전달된 데이터는 히든 레이어에서 예측하기 쉬운 값으로 변화될 수 있다. 히든 레이어는, 입력 레이어와 출력 레이어 사이에서 연결 가중치를 갖는 연결선을 통해 연결된다. DNN(520)의 출력 레이어는 히든 레이어의 노드들로부터 수신한 신호에 기초하여 출력, 즉, 예측 영상(530)을 생성할 수 있다. 입력 레이어, 히든 레이어 및 출력 레이어는 복수 개의 노드들을 포함하는데, DNN(520)은 이 같은 복수 개의 노드들 사이의 알고리즘을 통해 입력 영상(510)과 예측 영상(530) 사이의 사상(mapping)을 생성해낼 수 있다. DNN(520)에 대해서 입력 영상(510)과의 오차가 가장 적은 예측 영상(530)을 출력하도록 학습시킬 경우, DNN(520)은 학습에 이용되지 않았던 입력 패턴에 대해 비교적 올바른 출력을 생성할 수 있는 일반화 능력을 가지게 된다.The input image 510 may be input to the input layer of the 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 the DNN 520 may generate an output, i.e., a prediction image 530, based on the signal received from the nodes of the hidden layer. The input layer, the hidden layer, and the output layer include a plurality of nodes. The DNN 520 maps a mapping between the input image 510 and the prediction image 530 through an algorithm between the plurality of nodes. Can be generated. When the DNN 520 learns to output a prediction image 530 having the smallest error with respect to the input image 510, the DNN 520 can generate a relatively correct output for an input pattern that has not been used for learning And has a generalization ability.
일 실시예에 따른 DNN(520)은 컨볼루션 풀링 레이어, 히든 레이어 및 완전 연결 레이어를 포함하는 레이어들의 세트로 구현될 수 있다. 예를 들어, DNN(520)의 전체적인 구조는 컨볼루션 풀링 레이어에 히든 레이어가 이어지고, 히든 레이어에 완전 연결 레이어가 이어지는 형태로 이루어질 수 있다.The DNN 520 according to one embodiment may be implemented as a set of layers including a convolutional pulling layer, a hidden layer, and a fully connected layer. For example, 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.
또한, 일 실시예에 따른 DNN(520)은 CNN의 형태로 구현될 수 있다.Also, the DNN 520 according to one embodiment may be implemented in the form of a CNN.
일 실시예에 따른 CNN은, 영상분석에 적합한 구조로서, 주어진 영상 데이터들로부터 가장 분별력(Discriminative Power)이 큰 특징을 스스로 학습하는 특징 추출 레이어(feature extraction Layer)와 추출된 특징을 기반으로 가장 높은 예측 성능을 내도록 예측 모델을 학습하는 예측 레이어(prediction layer)가 통합된 구조로 구성될 수 있다.CNN according to an exemplary embodiment is a structure suitable for image analysis. The CNN includes a feature extraction layer that learns a feature having a greatest discriminative power from given image data, And a prediction layer for learning a prediction model so as to achieve a prediction performance.
특징 추출 레이어는 영상의 각 영역에 대해 복수의 필터를 적용하여 특징 맵(feature map)를 만들어 내는 콘볼루션 레이어(Convolution Layer)와 특징 맵을 공간적으로 통합함으로써 위치나 회전의 변화에 불변하는 특징을 추출할 수 있도록 하는 통합 레이어(Pooling 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. Through this, it is possible to extract various levels of features from low-level features such as points, lines, and surfaces to complex and meaningful high-level features.
콘볼루션 레이어는 입력 영상의 각 패치에 대하여 필터와 국지 수용장(Local Receptive Field)의 내적에 비선형 활성 함수(Activation Function)을 취함으로서 특징 맵을 구하게 되는데, 다른 네트워크 구조와 비교하여, CNN은 희소한 연결성 (Sparse Connectivity)과 공유된 가중치(Shared Weights)를 가진 필터를 사용하는 특징이 있다. 이러한 연결구조는 학습할 모수의 개수를 줄여주고, 역전파 알고리즘을 통한 학습을 효율적으로 만들어 결과적으로 예측 성능을 향상시킨다.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. Compared to other network structures, CNN is rare There is a feature that uses filters with one connectivity (Sparse Connectivity) and shared weights (Shared Weights). This connection structure reduces the number of parameters to be learned and makes learning through the backpropagation algorithm efficient, resulting in improved prediction performance.
통합 레이어(Pooling Layer) 또는 서브-샘플링 레이어(Sub-sampling Layer)는 이전 콘볼루션 레이어에서 구해진 특징 맵의 지역 정보를 활용하여 새로운 특징 맵을 생성한다. 일반적으로 통합 레이어에 의해 새로 생성된 특징 맵은 원래의 특징 맵보다 작은 크기로 줄어드는데, 대표적인 통합 방법으로는 특징 맵 내 해당 영역의 최대값을 선택하는 최대 통합(Max Pooling)과 특징 맵 내 해당 영역의 평균값을 구하는 평균 통합(Average Pooling) 등이 있다. 통합 레이어의 특징 맵은 일반적으로 이전 레이어의 특징 맵보다 입력 영상에 존재하는 임의의 구조나 패턴의 위치에 영향을 적게 받을 수 있다. 즉, 통합 레이어는 입력 영상 혹은 이전 특징 맵에서의 노이즈나 왜곡과 같은 지역적 변화에 보다 강인한 특징을 추출할 수 있게 되고, 이러한 특징은 분류 성능에 중요한 역할을 할 수 있다. 또 다른 통합 레이어의 역할은, 깊은 구조상에서 상위의 학습 층으로 올라갈수록 더 넓은 영역의 특징을 반영할 수 있게 하는 것으로서, 특징 추출 레이어가 쌓이면서, 하위 레이어에서는 지역적인 특징을 반영하고 상위 레이어로 올라 갈수록 보다 추상적인 전체 영상의 특징을 반영하는 특징 맵을 생성할 수 있다.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. Generally, 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.
이와 같이, 콘볼루션 레이어와 통합 레이어의 반복을 통해 최종적으로 추출된 특징은 다중 신경망(MLP: Multi-layer Perception)이나 서포트 벡터 머신(SVM: Support Vector Machine)과 같은 분류 모델이 완전 연결 레이어(Fully connected Layer)의 형태로 결합되어 분류 모델 학습 및 예측에 사용될 수 있다.In this way, the final feature extracted through repetition of the convolution layer and the integration layer is that 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.
또한, 일 실시예에 따른 DNN(520)은 RNN 의 형태로도 구현될 수 있다.Also, the DNN 520 according to one embodiment may be implemented in the form of an RNN.
일 실시예에 따라, DNN(520)의 구조에서 이전 시간 구간에서의 히든 노드의 출력은 현재 시간 구간에서의 히든 노드들에 연결될 수 있다. 그리고, 현재 시간 구간에서의 히든 노드의 출력은 다음 시간 구간에서의 히든 노드들에 연결될 수 있다. 이와 같이, 서로 다른 시간 구간에서 히든 노드들 간에 재귀적(recurrent)인 연결이 있는 신경망을 회귀 뉴럴 네트워크(Recurrent Neural Network; RNN)라고 한다. 일 실시예에 따른 RNN은, 순차적 데이터(sequential data)를 인식할 수 있다. 순차적 데이터는 음성 데이터, 영상 데이터, 생체 데이터, 필적 데이터(handwriting data) 등과 같이 시간성 내지 순서를 가지는 데이터이다. 예를 들어, RNN의 인식 모델은 입력된 영상 데이터가 어떠한 패턴에 따라 변화하는지를 인식할 수 있다.According to one embodiment, the output of the hidden node in the previous time interval in the structure of DNN 520 may be connected to hidden nodes in the current time interval. The output of the hidden node in the current time interval may be connected to the hidden nodes in the next time interval. Thus, a neural network having a recurrent connection between hidden nodes in different time intervals is called a recurrent neural network (RNN). The RNN according to one embodiment may recognize sequential data. The sequential data is data having time and order, such as voice data, image data, biometric data, handwriting data, and the like. For example, the recognition model of the RNN can recognize which pattern the input image data changes according to.
RNN에 특정 기간 동안의 입/출력 데이터 셋을 제공하여 학습을 시키면, 해당 기간 동안의 데이터 패턴을 고차원으로 학습하여 원본 데이터에 가장 유사한 예측 영상(530)을 추론하는 모델을 생성하게 된다.Output data set for a specific period is provided to the RNN to learn a data pattern for a corresponding period to generate a model for inferring a prediction image 530 most similar to the original data.
도 6은 일 실시예에 따른 DNN 기반 인트라 예측 과정을 나타낸 도면이다.FIG. 6 is a diagram illustrating a DNN-based intra prediction process according to an exemplary embodiment of the present invention.
일 실시예에 따른 DNN 기반 인트라 예측은, 영상 부호화 장치(100)의 인트라 예측부(120) 또는 영상 복호화 장치(200)의 인트라 예측부(240)에서 수행될 수 있다. The DNN-based intraprediction according to an exemplary embodiment may be performed in the intraprediction unit 120 of the image encoding apparatus 100 or the intraprediction unit 240 of the image decoding apparatus 200.
일 실시예에 따른 인트라 예측부(120, 240)는 예측을 수행하고자 하는 현재 블록(610)에 대해 DNN에 기반한 예측을 수행하여 예측 데이터를 생성할 수 있다. 이 때, DNN에 기반한 예측은 제 1 예측 및 제 2 예측 과정을 포함할 수 있다. DNN에 기반한 예측을 수행하여 생성한 예측 데이터는 제 1 예측 및 제 2 예측에 의해 생성된 최종 예측 데이터(660)를 의미할 수 있다. 제 1 예측은 RNN에 기반할 수 있으며, 제 2 예측은 CNN에 기반할 수 있다. 따라서, 일 실시예에 따른 DNN에 기반한 예측은 RNN에 기반한 제 1 예측(620) 및 CNN에 기반한 제 2 예측(630)을 포함할 수 있다.The intraprediction units 120 and 240 according to an exemplary embodiment may generate prediction data by performing prediction based on a DNN on a current block 610 to be predicted. At this time, the prediction based on the DNN may include a first prediction and a second prediction. The prediction data generated by performing the prediction based on the DNN may mean the final prediction data 660 generated by the first prediction and the second prediction. The first prediction may be based on RNN and the second prediction may be based on CNN. Thus, a prediction based on DNN according to an embodiment may include a first prediction 620 based on RNN and a second prediction 630 based on CNN.
도 6을 참조하면, 일 실시예에 따른 인트라 예측부(120, 240)는 예측을 수행하고자 하는 현재 블록(610)에 대해 RNN에 기반한 제 1 예측(620)을 수행하여 제 1 예측 데이터(640)를 생성할 수 있다. 이 때, RNN은 RNN의 출력으로 생성되는 제 1 예측 데이터(640)가 현재 블록(610)의 원(original) 데이터와 같아지도록 학습된 네트워크일 수 있다. 즉, 학습된 RNN을 이용함으로써 현재 블록(610)의 원 데이터와의 오차가 가장 적은 제 1 예측 데이터(640)가 생성될 수 있다. RNN의 구조에 대해서는 도 7 내지 도 8을 통해 보다 상세히 설명하기로 한다.Referring to FIG. 6, the intra-prediction units 120 and 240 perform a first prediction 620 based on an RNN with respect to a current block 610 to be predicted to generate first prediction data 640 Can be generated. In this case, the RNN may be a learned network in which the first prediction data 640 generated at the output of the RNN is the same as the original data of the current block 610. That is, by using the learned RNN, the first prediction data 640 having the smallest error with the original data of the current block 610 can be generated. The structure of the RNN will be described in more detail with reference to FIGS. 7 to 8. FIG.
일 실시예에 따른 RNN에 기반한 제 1 예측(620)은 현재 블록(610)에 인접한 주변 블록들(612, 614, 616, 618)을 입력으로 사용할 수 있다. 주변 블록들(612, 614, 616, 618)은 현재 블록(610) 이전에 복원된 블록일 수 있다. 도 6에 도시된 주변 블록들(612, 614, 616, 618)은 현재 블록(610)의 좌상측, 상측, 우상측 및 좌측에 위치한 것으로 도시되었지만, 픽처 내의 블록 복원 순서에 따라 그 위치는 상이해질 수도 있다. A first prediction 620 based on an RNN according to an embodiment may use the neighboring blocks 612, 614, 616, 618 adjacent to the current block 610 as inputs. The neighboring blocks 612, 614, 616, and 618 may be blocks restored before the current block 610. Although the neighboring blocks 612, 614, 616, and 618 shown in FIG. 6 are shown as located on the upper left, upper, upper right, and left sides of the current block 610, It may be.
한편, 인트라 예측 시 주변 블록들(612, 614, 616, 618)을 이용하여 예측을 수행하는 것은, 주변 블록들(612, 614, 616, 618)이 현재 블록(610)에 대해 연속성 내지는 방향성을 갖기 때문이다. 이와 같이, 연속적인 입력 패턴을 통해 상관관계를 추론하는 작업을 수행하기 위해서는, 이전 정보를 현재 작업으로 연결하는 것을 가능하게 하는 RNN을 이용함이 바람직할 수 있다. 이를테면, 주변 블록들(612, 614, 616, 618) 간의 RNN 입력 순서는 현재 블록(610)을 예측하는데 영향을 미칠 수도 있다. The prediction using the neighboring blocks 612, 614, 616, and 618 in the intra prediction may be performed when the neighboring blocks 612, 614, 616, and 618 have continuity or directionality with respect to the current block 610 . Thus, in order to perform the task of inferring the correlation through successive input patterns, it may be desirable to use an RNN that makes it possible to link the previous information to the current task. For example, the RNN input order between the neighboring blocks 612, 614, 616, and 618 may affect prediction of the current block 610.
이하에서는, RNN에 기반한 제 1 예측(620)을 위해 RNN에 입력되는 데이터를 "제 1 입력 데이터"라고 부르기로 한다. 일 실시예에 따른 RNN은, 순차적 데이터를 인식할 수 있다. "제 1 입력 데이터"를 RNN에 입력하는 순서에 관해서는 도 9a 내지 도 9c를 통해 상세히 설명하기로 한다.Hereinafter, the data input to the RNN for the first prediction 620 based on the RNN will be referred to as " first input data ". The RNN according to one embodiment can recognize sequential data. The order of inputting " first input data " to the RNN will be described in detail with reference to Figs. 9A to 9C.
일 실시예에 따른 인트라 예측부(120, 240)는 생성된 제 1 예측 데이터(640)에 대해 CNN에 기반한 제 2 예측(630)을 수행하여 제 2 예측 데이터(650)를 생성할 수 있다. 이 때, CNN은 CNN의 출력으로 생성되는 제 2 예측 데이터(650)가 현재 블록(610)의 원(original) 데이터에서 제 1 예측 데이터(640)를 뺀 값과 같아지도록 학습된 네트워크일 수 있다. 이처럼, 학습된 CNN을 이용함으로써 현재 블록(610)의 원 데이터에서 제 1 예측 데이터(640)를 뺀 값과의 오차가 가장 적은 제 2 예측 데이터(650)가 생성될 수 있다. 다시 말해, CNN에 기반한 제 2 예측(630) 과정은 현재 블록(610)의 원 데이터에서 제 1 예측 데이터(640)를 뺀 값을 예측하기 위한 과정으로 이해할 수 있다. CNN의 구조에 대해서는 도 11을 통해 보다 상세히 설명하기로 한다.The intraprediction units 120 and 240 may generate the second prediction data 650 by performing a second prediction 630 based on CNN on the generated first prediction data 640. [ The CNN may be a learned network such that the second predicted data 650 generated at the output of the CNN is equal to the original data of the current block 610 minus the first predicted data 640 . As described above, by using the learned CNN, the second predicted data 650 having the smallest error from the original data of the current block 610 minus the first predicted data 640 can be generated. In other words, the CNN-based second prediction 630 process can be understood as a process for predicting a value obtained by subtracting the first prediction data 640 from the original data of the current block 610. The structure of CNN will be described in more detail with reference to FIG.
일 실시예에 따른 CNN에 기반한 제 2 예측(630)은 현재 블록(610)과 주변 블록들(612, 614, 616, 618)을 포함하는 영역의 데이터를 입력으로 사용할 수 있다. 현재 블록(610)과 주변 블록들(612, 614, 616, 618)을 포함하는 영역의 데이터는 현재 블록(610)에 대응하는 제 1 예측 데이터(640)와 주변 블록들(612, 614, 616, 618)에 대응하는 복원 데이터로 이루어질 수 있다. 이하에서는, CNN에 기반한 제 2 예측(630)을 위해 CNN에 입력되는 데이터를 "제 2 입력 데이터"라고 부르기로 한다.The second prediction 630 based on the CNN according to an embodiment may use the data of the area including the current block 610 and the neighboring blocks 612, 614, 616, and 618 as an input. Data in the area including the current block 610 and the neighboring blocks 612, 614, 616 and 618 is divided into first predicted data 640 corresponding to the current block 610 and neighboring blocks 612, 614, 616 , ≪ / RTI > 618). Hereinafter, data input to the CNN for the second prediction 630 based on CNN will be referred to as " second input data ".
"제 2 입력 데이터"에 대해서는 도 11을 통해 상세히 설명하기로 한다.The "second input data" will be described in detail with reference to FIG.
일 실시예에 따른 인트라 예측부(120, 240)는 제 1 예측 데이터(640)와 제 2 예측 데이터(650)를 합하여 현재 블록(610)에 대한 최종 예측 데이터(660)를 생성할 수 있다. The intraprediction units 120 and 240 may generate the final prediction data 660 for the current block 610 by adding the first prediction data 640 and the second prediction data 650 together.
일 실시예에 따른 영상 부호화 장치(100)는 현재 블록(610)의 원 데이터와 최종 예측 데이터(660)와의 차이를 계산함으로써 레지듀얼 데이터를 생성하며, 생성된 레지듀얼 데이터를 부호화한 비트스트림을 생성하여 영상 복호화 장치(200)로 전달할 수 있다. 일 실시예에 따른 영상 부호화 장치(100)는 별도의 예측 정보(예를 들어, 예측 모드 정보)를 부호화하지 않는다.The image encoding apparatus 100 generates residual data by calculating the difference between the original data of the current block 610 and the final prediction data 660 and outputs the bitstream obtained by encoding the generated residual data And transmits it to the image decoding apparatus 200. The image encoding apparatus 100 according to the embodiment does not encode additional prediction information (for example, prediction mode information).
일 실시예에 따른 영상 복호화 장치(200)는 비트스트림으로부터 획득한 레지듀얼 데이터를 최종 예측 데이터(660)와 더함으로써 현재 블록(610)의 데이터를 복원할 수 있다. 이 때, 영상 복호화 장치(200)는 비트스트림으로부터 별도의 예측 정보를 획득하지 않고도 최종 예측 데이터(660)를 생성할 수 있다.The image decoding apparatus 200 according to an embodiment can restore the data of the current block 610 by adding the residual data obtained from the bitstream to the final prediction data 660. [ At this time, the video decoding apparatus 200 can generate the final prediction data 660 without acquiring additional prediction information from the bitstream.
도 7은 RNN의 구조를 나타내는 도면이다.7 is a diagram showing a structure of an RNN.
RNN은 서로 다른 시간 구간에서 히든 노드들 간의 연결이 존재하는 네트워크로서, 감독 학습(supervised learning)을 통해 네트워크를 학습시킬 수 있다. 감독 학습이란 학습 데이터와 그에 대응하는 출력 데이터를 함께 신경망에 입력하고, 학습 데이터에 대응하는 출력 데이터가 출력되도록 연결선들의 연결 가중치를 업데이트하는 방법이다. 예를 들어, RNN은 델타 규칙(delta rule)과 오류 역전파 학습(backpropagation learning) 등을 통해 뉴런들 사이의 연결 가중치를 업데이트할 수 있다.An RNN is a network in which there is a connection between hidden nodes in different time intervals, and can learn the network through supervised learning. Supervised learning is a method of inputting learning data and output data corresponding thereto together into a neural network and updating connection weights of connection lines so that output data corresponding to the learning data is output. For example, the RNN can update the connection weights between neurons through delta rules and backpropagation learning.
오류 역전파 학습은, 주어진 학습 데이터에 대해 전방 계산(forward computation)으로 오류를 추정한 후, 출력 레이어에서 시작하여 히든 레이어와 입력 레이어 방향으로 역으로 전진하여 추정한 오류를 전파하고, 오류를 줄이는 방향으로 연결 가중치를 업데이트하는 방법이다. 뉴럴 네트워크의 처리는 입력 레이어, 히든 레이어 및 출력 레이어의 방향으로 진행되지만, 오류 역전파 학습에서 연결 가중치의 업데이트 방향은 출력 레이어, 히든 레이어 및 입력 레이어의 방향으로 진행될 수 있다.Error backpropagation learning estimates errors by forward computation for given learning data, then propagates the error estimated by advancing from the output layer to the hidden layer and toward the input layer, Lt; RTI ID = 0.0 > direction. ≪ / RTI > The processing of the neural network proceeds in the direction of the input layer, the hidden layer, and the output layer, but in the error backpropagation learning, the update direction of the connection weighting can proceed in the direction of the output layer, the hidden layer, and the input layer.
RNN은 현재 설정된 연결 가중치들이 얼마나 최적에 가까운지를 측정하기 위한 목적 함수(objective function)를 정의하고, 목적 함수의 결과에 기초하여 연결 가중치들을 계속 변경하고, 학습을 반복적으로 수행할 수 있다. 예를 들어, 목적 함수는 RNN이 학습 데이터에 기초하여 실제 출력한 출력 값과 출력되기로 원하는 기대 값 간의 오류를 계산하기 위한 오류 함수일 수 있다. RNN은 오류 함수의 값을 줄이는 방향으로 연결 가중치들을 업데이트할 수 있다.The RNN may define an objective function for measuring how close the optimal connection weights are currently set, continually change the connection weights based on the result of the objective function, and repeat the learning. For example, the objective function may be an error function for calculating an error between the actual output value of the RNN based on the training data and the desired expected value to be output. The RNN may update the connection weights in a direction that reduces the value of the error function.
일 실시예에 따른 인트라 예측부(120, 240)는 현재 블록(610)에 대해 RNN에 기반한 제 1 예측을 수행할 수 있으며, 이 때, RNN은 LSTM(long short-term memory) 네트워크를 포함하는 구조일 수 있다. LSTM은 장기 의존성(long-term dependency) 학습을 할 수 있는 RNN의 한 종류이다. LSTM 네트워크를 포함하지 않는 RNN은 이전 정보를 현재 작업으로 연결할 수 있으나, 시간적으로 멀리 떨어진 이전 작업의 정보를 현재 작업으로 연결시키기는 어렵다는 단점이 있다. LSTM은 이러한 장기 의존성 문제를 피하도록 설계된 구조이다. LSTM의 자세한 구조에 대해서는 도 8을 통해 후술하기로 한다.The intra prediction unit 120 and 240 may perform a first prediction based on an RNN with respect to a current block 610 according to an embodiment of the present invention. Here, the RNN includes a long short-term memory (LSTM) Structure. LSTM is a kind of RNN that can perform long-term dependency learning. An RNN that does not include an LSTM network can link the previous information to the current task, but it is difficult to link information of a previous task that is far away in time to the current task. LSTM is a structure designed to avoid these long-term dependency problems. The detailed structure of the LSTM will be described later with reference to FIG.
도 7을 참조하면, RNN은 LSTM 네트워크(720) 및 완전 연결 네트워크(730)를 포함할 수 있다.Referring to FIG. 7, the RNN may include an LSTM network 720 and a fully connected network 730.
RNN의 학습을 위해, LSTM 네트워크(720)는 입력 데이터(710)로부터 특징 값을 검출할 수 있다. 예를 들어, LSTM 네트워크(720)는 입력 데이터(710)에서 시간에 따라 변화하는 상대적 변화량을 특징 값으로 추출할 수 있다. LSTM 네트워크(720)는 입력 데이터(710)로부터 충분히 많은 특징 값들을 획득하고, 획득된 특징 값들을 이용하여 RNN을 학습시킬 수 있다. 여기서, 입력 데이터(710)는 제 1 입력 데이터일 수 있다.For learning of the RNN, the LSTM network 720 may detect feature values from the input data 710. For example, the LSTM network 720 may extract a relative change amount that varies with time in the input data 710 as a feature value. The LSTM network 720 may obtain sufficient feature values from the input data 710 and may learn the RNN using the obtained feature values. Here, the input data 710 may be the first input data.
일 실시예에 따른 RNN은 특정 방향으로 변화하는 블록의 변화 추세를 학습할 수 있다. 이를 위해, 현재 블록의 주변 블록들은 변화하는 순서에 따라 LSTM 네트워크(720)에 입력될 수 있다. 이 때, LSTM 네트워크(720)에 입력되는 블록들은 동일 시간 프레임 내의 블록들이다.The RNN according to an exemplary embodiment may learn a change trend of a block that changes in a specific direction. To this end, the neighboring blocks of the current block may be input to the LSTM network 720 in a changing order. In this case, the blocks input to the LSTM network 720 are blocks in the same time frame.
일 실시예에 따라, 입력 데이터(710)는 LSTM 네트워크(720)에 순서대로 입력될 수 있다. 일 실시예에 따라, 현재 블록에 인접한 주변 블록들은 변화 추세에 대응하는 입력 순서로 LSTM 네트워크(720)에 입력될 수 있다. 예를 들어, 주변 블록들은 시간 스텝(time step) 또는 시간 스탬프(time stamp) 별로 각각의 LSTM 네트워크(720)에 입력되어 학습될 수 있다. 예를 들어, 각각의 주변 블록들이 소정 방향에 기초하여 '0'번 입력 데이터(710), '1'번 입력 데이터(710), '2'번 입력 데이터(710) 등과 같은 순서로 LSTM 네트워크(720)에 입력될 수 있다.According to one embodiment, the input data 710 may be input to the LSTM network 720 in order. According to one embodiment, neighboring blocks adjacent to the current block may be input to the LSTM network 720 in an input order corresponding to the change trend. For example, neighboring blocks may be learned and entered into each LSTM network 720 by time step or time stamp. For example, each of the neighboring blocks is connected to the LSTM network 710 in the order of '0' input data 710, '1' input data 710, '2' input data 710, 720).
연속되는 시간 구간에서, RNN의 LSTM 네트워크(720)에서 출력된 출력 값은 다음 시간 스텝에서의 LSTM 네트워크(720)에 입력될 수 있다. 예를 들어, '0'번 입력 데이터(710)를 처리한 LSTM 네트워크(720)의 출력 값 "s1"은 '1'번 입력 데이터(710)를 처리하는 LSTM 네트워크(720)에 입력될 수 있다. 또한, '1'번 입력 데이터(710)를 처리한 LSTM 네트워크(720)의 출력 값 "s2"는 '2'번 입력 데이터(710)를 처리하는 LSTM 네트워크(720)에 입력될 수 있다.In a subsequent time interval, the output value output from the LSTM network 720 of the RNN may be input to the LSTM network 720 at the next time step. For example, the output value " s1 " of the LSTM network 720 that processed the input data 710 of '0' may be input to the LSTM network 720 that processes the input data 710 of '1' . The output value " s2 " of the LSTM network 720 that processed the input data 710 of '1' may be input to the LSTM network 720 that processes the input data 710 of '2'.
도 7을 참조하여 예를 들면, '1'번 입력 데이터(710)에 대한 학습을 수행하는 LSTM 네트워크(720)가 현재 시간 스텝(T)에서의 학습 패턴을 나타낸다면, '0'번 입력 데이터(710)에 대한 학습을 수행하는 LSTM 네트워크(720)는 이전 시간 스텝(T-1)에서의 학습 패턴을 나타내며, '2'번 입력 데이터(710)에 대한 학습을 수행하는 LSTM 네트워크(720)는 다음 시간 스텝(T+1)에서의 학습 패턴을 나타낸다. 이처럼, LSTM 네트워크(720)는 이전 시간 스텝, 현재 시간 스텝, 및 다음 시간 스텝 모두에 대한 구조를 학습에 이용한다. LSTM 네트워크(720)에서 현재 단계의 정보는 다음 단계에 전달되어 출력 값에 영향을 줄 수 있다.Referring to FIG. 7, for example, if the LSTM network 720 performing learning on the '1' input data 710 indicates the learning pattern in the current time step T, The LSTM network 720 which performs learning on the input data 710 of the LSTM network 720 represents the learning pattern in the previous time step T-1 and the LSTM network 720 which performs learning on the '2' Indicates a learning pattern at the next time step (T + 1). As such, the LSTM network 720 uses the structure for both the previous time step, the current time step, and the next time step for learning. The information of the current stage in the LSTM network 720 may be transferred to the next stage to affect the output value.
완전 연결 네트워크(730)는 순차적 데이터에 대한 LSTM 네트워크(720)의 학습 결과를 분류하여, 출력 데이터(740)를 RNN의 출력 레이어로부터 출력시킬 수 있다. 일 실시예에 따른 출력 데이터(740)는 제 1 예측 데이터일 수 있다.The fully connected network 730 may classify the learning results of the LSTM network 720 for sequential data and output the output data 740 from the output layer of the RNN. The output data 740 according to one embodiment may be the first prediction data.
RNN의 학습 과정은, 각 시간 스텝에서 생성되는 출력 값과 원하는 기대 값을 비교하고, 출력 값과 기대 값 간의 차이를 줄여나가는 방향으로 노드들의 연결 가중치를 조절하는 과정을 포함할 수 있다. 예를 들어, LSTM 네트워크(720)에 입력된 입력 데이터(710)는 LSTM 네트워크(720) 및 완전 연결 네트워크(730)의 연결 가중치와 곱해지고 더해질 수 있다. 이 때, 생성되는 RNN의 출력 데이터(740)와 기대하는 출력 데이터 간에 서로 차이가 발생할 수 있고, RNN은 해당 차이를 최소화하는 방향으로 노드들의 연결 가중치를 업데이트할 수 있다.The learning process of the RNN may include a process of comparing the output value generated at each time step with a desired expected value, and adjusting the connection weight of the nodes in a direction of reducing the difference between the output value and the expected value. For example, the input data 710 input to the LSTM network 720 may be multiplied and added with the connection weights of the LSTM network 720 and the fully connected network 730. At this time, a difference may occur between the output data 740 of the generated RNN and the expected output data, and the RNN may update the connection weights of the nodes in the direction of minimizing the difference.
도 8은 LSTM의 구조를 나타내는 도면이다.8 is a diagram showing the structure of the LSTM.
도 8에 도시된 LSTM(800)은 도 7의 LSTM 네트워크(720)를 형성하는 각각의 셀(cell)에 대응한다. LSTM(800)은 정보를 저장하는 셀 상태(cell state)의 선택적인 갱신으로 RNN의 장기 의존성을 회피하는 딥 러닝 구조이다. The LSTM 800 shown in FIG. 8 corresponds to each cell forming the LSTM network 720 of FIG. The LSTM 800 is a deep-run structure that avoids the long-term dependency of the RNN by selectively updating the cell state storing information.
LSTM(800)의 셀 상태는 게이트(gate)라 불리는 구조를 통해 더해지거나 지워질 수 있다. 각 셀은 라이트(write), 리드(read) 및 킵(keep) 동작을 수행하는 3개의 게이트로 구성될 수 있으며, 각 게이트는 '0' 과 '1' 사이의 값을 가질 수 있다. 각 게이트의 값은 셀의 정보를 저장할지, 불러올지 또는 유지할지 여부를 결정하기 위한 기초가 된다. 이처럼, 각 셀의 게이트는 선택적으로 정보를 전달할 수 있다. 선택적 정보 전달의 과정은 시그모이드(sigmoid) 레이어, tanh 레이어 및 점방식 곱셈 연산(pointwise multiplication operation)으로 구성될 수 있다. 한편, 각 게이트의 '0' 과 '1' 사이의 값은 뉴럴 네트워크의 가중치들과 마찬가지의 원리로 학습될 수 있다.The cell state of the LSTM 800 may be added or erased via a structure called a gate. Each cell may be composed of three gates for performing write, read and keep operations, and each gate may have a value between '0' and '1'. The value of each gate is the basis for determining whether to store, retrieve, or hold cell information. As such, the gates of each cell can optionally carry information. The process of selective information transfer may consist of a sigmoid layer, a tanh layer, and a pointwise multiplication operation. On the other hand, the values between '0' and '1' of each gate can be learned on the same principle as the weights of the neural network.
도 8을 참조하면, LSTM(800)의 다양한 종류 중 하나인 게이트된 순환 유닛(gated recurrent unit; GRU)이 예시되어 있다. 8, a gated recurrent unit (GRU), which is one of various types of LSTM 800, is illustrated.
일 실시예에 따라, LSTM(800)의 각 모듈 내에는 다수의 상호작용하는 레이어가 포함된다. LSTM(800)은 시간 스텝 별로, 현재 셀 입력 및 현재 셀 상태(current cell state)에 대해 복수의 게이트를 적용하여 신규 셀 상태(new cell state) 및 신규 셀 출력을 생성할 수 있다.According to one embodiment, each module of the LSTM 800 includes a plurality of interacting layers. The LSTM 800 may generate a new cell state and a new cell output by applying a plurality of gates to the current cell state and the current cell state on a time step basis.
LSTM(800)의 첫 번째 시그모이드 레이어는 ht-1과 xt를 입력받고 rt를 출력시킨다. 첫 번째 시그모이드 레이어의 출력 값에 따라서 ht-1, 즉 전단계의 셀 상태가 유지될지 또는 유지되지 않을지 결정된다. 시그모이드 레이어에서 출력되는 '1'의 값은 "완전 유지함"을 의미하고 '0'의 값은 "완전 제거함"을 의미한다. 첫 번째 시그모이드 레이어의 함수는 수학식 1과 같다.First sigmoid layer of LSTM (800) receives a h t x t-1 and outputs a r t. Depending on the output value of the first sigmoid layer, it is determined whether h t-1 , i.e., whether the cell state of the previous stage is maintained or not. The value of '1' on the sigmoid layer means "completely maintained" and the value of '0' means "completely removed". The function of the first sigmoid layer is shown in Equation (1).
Figure PCTKR2017007270-appb-M000001
Figure PCTKR2017007270-appb-M000001
LSTM(800)의 두 번째 시그모이드 레이어는 수학식 2에 의해 ht -1과 xt를 입력받고 zt를 출력시킨다. 두 번째 시그모이드 레이어를 통해 어떤 값들을 갱신할지 여부가 결정될 수 있다.The second sigmoid layer of the LSTM 800 receives h t -1 and x t by Equation 2 and outputs z t . It can be determined which values to update via the second sigmoid layer.
Figure PCTKR2017007270-appb-M000002
Figure PCTKR2017007270-appb-M000002
LSTM(800)의 tanh 레이어는 셀 상태에 더해질 수 있는 새로운 후보 값들의 벡터를 생성한다. 셀 상태를 갱신할 값을 생성하기 위하여, 두 번째 시그모이드 레이어의 출력 값과 tanh 레이어의 출력 값이 합해질 수 있다. tanh 레이어의 함수는 수학식 3과 같다. The tanh layer of the LSTM 800 generates a vector of new candidate values that can be added to the cell state. The output value of the second sigmoid layer and the output value of the tanh layer can be summed to produce a value to update the cell state. The function of the tanh layer is expressed by Equation (3).
Figure PCTKR2017007270-appb-M000003
Figure PCTKR2017007270-appb-M000003
마지막으로, LSTM(800)은 전 단계의 셀 상태 ht - 1를 수학식 4를 이용하여 갱신할 수 있다. 갱신된 신규 셀 상태는 ht로써 표현된다.Lastly, the LSTM 800 can update the cell state h t - 1 of the previous step using Equation (4). The updated new cell state is represented by h t .
Figure PCTKR2017007270-appb-M000004
Figure PCTKR2017007270-appb-M000004
수학식 4에 의해 도출된 신규 셀 상태는, 네트워크 학습 시 해당 셀에 입력된 데이터를 이용할지 여부를 결정하는 기초가 될 수 있다. 이처럼, LSTM(800)은 정보를 저장하는 셀 상태의 선택적인 갱신으로 RNN의 장기 의존성 문제를 회피할 수 있다.The new cell state derived by Equation (4) may serve as a basis for determining whether to use the data input to the corresponding cell in network learning. As such, the LSTM 800 can avoid the long-term dependency problem of the RNN by selectively updating cell state storing information.
한편, 일 실시예에 따른 LSTM(800)은 상기와 같은 GRU 구조에 한정되는 것은 아니며, 다양한 형태로 변형된 구조를 가질 수 있다.Meanwhile, the LSTM 800 according to an exemplary embodiment is not limited to the GRU structure as described above, and may have a modified structure in various forms.
도 7 및 도 8을 통해 전술한 바와 같이, RNN은 순차적 데이터를 인식하는데 활용될 수 있다. 즉, RNN의 인식 모델은 순차적 데이터가 입력되면 순차적 데이터로부터 특징 값을 추출하고, 추출된 특징 값을 분류하여 인식 결과를 출력할 수 있다. 일 실시예에 따른 RNN의 순차적 데이터 입력 방법에 대해 이하에서 설명하기로 한다.As described above with reference to FIGS. 7 and 8, the RNN can be utilized to recognize sequential data. That is, when the sequential data is inputted, the recognition model of the RNN extracts the feature value from the sequential data, and outputs the recognition result by classifying the extracted feature value. A sequential data input method of an RNN according to an embodiment will be described below.
도 9a는 제 1 예측 데이터를 생성하기 위한 RNN 입력 데이터의 일 예를 나타내는 도면이다.9A is a diagram showing an example of RNN input data for generating first predictive data.
인트라 예측은 일정한 방향성을 갖는 주변 블록의 패턴에 의존하여 현재 블록을 예측하는 과정이므로, RNN의 학습을 위한 입력 데이터 또한 일정한 방향에 따라 순차적으로 입력되는 것이 바람직할 수 있다.Since intra prediction is a process of predicting a current block depending on a pattern of a neighboring block having a certain directionality, it is preferable that the input data for learning of the RNN is also sequentially input according to a certain direction.
도 9a를 참조하면, 예측을 수행하고자 하는 현재 블록(910) 및 주변 블록들(블록 '0' 내지 블록 '11')이 도시된다. 일 실시예에 따른 인트라 예측부(120, 240)는 제 1 예측을 수행하기 위해 현재 블록(910)에 인접한 주변 블록들을 제 1 입력 데이터로서 RNN의 입력으로 사용할 수 있다. 제 1 입력 데이터는 현재 블록(910) 이전에 복원된 데이터이며, 제 1 입력 데이터가 분포하는 위치는 도 9a에 도시된 위치에 한정되지 않는다. Referring to FIG. 9A, a current block 910 and neighboring blocks (blocks '0' to '11') for which prediction is to be performed are shown. The intra predictors 120 and 240 may use neighboring blocks adjacent to the current block 910 as input of the RNN as first input data in order to perform the first prediction. The first input data is the data restored before the current block 910, and the position in which the first input data is distributed is not limited to the position shown in FIG. 9A.
일 실시예에 따르면, 인트라 예측부(120, 240)는 현재 블록(910)을 기준으로 하나 이상의 입력 각도(912, 914, 916, 918)를 결정할 수 있다. 이 때, 하나 이상의 입력 각도(912, 914, 916, 918)는 미리 설정된 것일 수 있다. 다른 실시예에 따라, 하나 이상의 입력 각도(912, 914, 916, 918)는 영상 부호화 장치(100)로부터 영상 복호화 장치(200)로 시그널링되는 정보에 의해 결정될 수도 있다.According to one embodiment, the intra-prediction unit 120, 240 may determine one or more input angles 912, 914, 916, 918 based on the current block 910. At this time, one or more input angles 912, 914, 916, 918 may be preset. According to another embodiment, one or more input angles 912, 914, 916, and 918 may be determined by information signaled from the image encoding apparatus 100 to the image decoding apparatus 200.
일 실시예에 따라, 인트라 예측부(120, 240)는 각 입력 각도(912, 914, 916, 918)를 따라 위치한 입력 각도 별 주변 블록(블록 '0' 내지 블록 '11')을 결정할 수 있다. 입력 각도 별 주변 블록은 제 1 예측 데이터를 생성하기 위한 제 1 입력 데이터에 대응할 수 있다.According to one embodiment, the intra-prediction units 120 and 240 may determine neighboring blocks (blocks '0' to '11') for each input angle located along each of the input angles 912, 914, 916 and 918 . The neighboring blocks for each input angle may correspond to the first input data for generating the first prediction data.
일 실시예에 따라, 인트라 예측부(120, 240)는 입력 각도 별 주변 블록(블록 '0' 내지 블록 '11')을 시계 방향의 순서로 LSTM 네트워크의 각 셀에 입력할 수 있다. 예를 들어, 각 입력 각도에 놓인 주변 블록들은 시간 스텝에 따라 입력 각도(912), 입력 각도(914), 입력 각도(916) 및 입력 각도(918)의 순서로 LSTM 네트워크의 각 셀에 입력될 수 있다. 다만, 입력 각도 별 주변 블록이 입력되는 순서는 반드시 시계 방향의 순서일 필요는 없으며, 반시계 방향 순서 또는 기타 소정 방향 순서에 따를 수 있다.According to an embodiment, the intraprediction units 120 and 240 can input neighboring blocks (blocks '0' to '11') according to input angles to each cell of the LSTM network in clockwise order. For example, the neighboring blocks placed at each input angle are input to each cell of the LSTM network in the order of the input angle 912, the input angle 914, the input angle 916, and the input angle 918 according to the time step . However, the order in which the adjacent blocks are input according to the input angle is not necessarily the order of the clockwise direction, and the order of counterclockwise direction or other predetermined direction may be followed.
만일, 입력 각도 별 주변 블록이 복수 개일 경우, 동일한 입력 각도에 위치한 주변 블록들 사이의 입력 순서는 현재 블록에서 먼 위치로부터 가까운 위치의 순서일 수 있다. 예를 들어, 도 9a를 참조하면, 입력 각도(912)에 위치한 주변 블록들(블록 '0' 내지 블록 '2') 사이에서의 입력 순서는 블록 '0', 블록 '1' 및 블록 '2' 순일 수 있다. 다만, 동일한 입력 각도에 위치한 주변 블록들 사이의 입력 순서는 상술한 바에 한정되지 않는다. 예를 들어, 동일한 입력 각도에 위치한 주변 블록들 사이의 입력 순서는 현재 블록에서 가까운 위치로부터 먼 위치의 순서일 수도 있다.If there are a plurality of neighboring blocks per input angle, the order of input between neighboring blocks located at the same input angle may be in the order of positions closer to the current block. For example, referring to FIG. 9A, the input order between neighboring blocks (blocks '0' to '2') located at the input angle 912 is block 0, block 1, '. However, the order of input between adjacent blocks located at the same input angle is not limited to the above. For example, the order of input between neighboring blocks located at the same input angle may be in the order farther from the nearest position in the current block.
일 실시예에 따른 인트라 예측부(120, 240)가 RNN에 입력하는 주변 블록들의 입력 순서는 미리 설정되어 있을 수 있다. 또한, 다른 실시예에 따르면 주변 블록들의 입력 순서는 영상 부호화 장치(100)로부터 영상 복호화 장치(200)로 시그널링되는 정보에 의해 결정될 수도 있다.구체적인 예를 들면, 제 1 입력 데이터는 이하에 개시된 순서에 따라 RNN에 입력될 수 있다. 그러나, 하기 실시예는 단지 예시를 위한 것일 뿐, 제 1 입력 데이터의 입력 순서는 다양하게 변형될 수 있다.The input order of the neighboring blocks inputted to the RNN by the intraprediction units 120 and 240 according to an exemplary embodiment may be set in advance. According to another embodiment, the input order of the neighboring blocks may be determined by the information signaled from the image coding apparatus 100 to the image decoding apparatus 200. For example, the first input data may be the order Lt; RTI ID = 0.0 > RNN. ≪ / RTI > However, the following embodiments are for illustrative purposes only, and the input order of the first input data may be variously modified.
일 실시예에 따르면, 먼저 인트라 예측부(120, 240)는 현재 블록(910)의 좌측 방향에 위치한 좌측 주변 블록들(블록 '0' 내지 블록 '2') 중 현재 블록(910)에서 먼 위치로부터 가까운 위치의 순서로 좌측 주변 블록들의 각각을 RNN의 LSTM 네트워크의 각 셀에 입력할 수 있다.The intraprediction units 120 and 240 predict the positions of the left neighboring blocks (blocks '0' to '2') located at the left side of the current block 910 at distant positions from the current block 910 Each of the left neighboring blocks may be input to each cell of the LSTM network of the RNN.
다음으로, 인트라 예측부(120, 240)는 현재 블록(910)의 좌상측 방향에 위치한 좌상측 주변 블록들(블록 '3' 내지 블록 '5') 중 현재 블록(910)에서 먼 위치로부터 가까운 위치의 순서로 좌상측 주변 블록들의 각각을 RNN의 LSTM 네트워크의 각 셀에 입력할 수 있다.Next, the intraprediction units 120 and 240 predict the neighboring blocks (blocks '3' to '5') located in the upper left direction of the current block 910 from a position distant from the current block 910 Each of the upper left-side neighboring blocks may be input to each cell of the LSTM network of the RNN in order of location.
다음으로, 인트라 예측부(120, 240)는 현재 블록(910)의 상측 방향에 위치한 상측 주변 블록들(블록 '6' 내지 블록 '8') 중 현재 블록(910)에서 먼 위치로부터 가까운 위치의 순서로 상측 주변 블록들의 각각을 RNN의 LSTM 네트워크의 각 셀에 입력할 수 있다.Next, the intraprediction units 120 and 240 predict the neighboring blocks (block '6' to block '8') located in the upper direction of the current block 910 from positions far from the current block 910 Each of the upper neighboring blocks may be input to each cell of the LSTM network of the RNN in order.
다음으로, 인트라 예측부(120, 240)는 현재 블록(910)의 우상측 방향에 위치한 우상측 주변 블록들(블록 '9' 내지 블록 '11') 중 현재 블록(910)에서 먼 위치로부터 가까운 위치의 순서로 우상측 주변 블록들의 각각을 RNN의 LSTM 네트워크의 각 셀에 입력할 수 있다.Next, the intraprediction units 120 and 240 predict the neighboring blocks (blocks '9' to '11') located on the upper right side of the current block 910 from a position distant from the current block 910 Each of the upper right neighboring blocks may be input to each cell of the LSTM network of the RNN in order of position.
도 9b는 제 1 예측 데이터를 생성하기 위한 RNN 입력 데이터의 다른 예를 나타내는 도면이다.9B is a diagram showing another example of RNN input data for generating first predictive data.
일 실시예에 따라, 인트라 예측부(120, 240)는 입력 각도 별 주변 블록을 시계 방향의 순서로 LSTM 네트워크의 각 셀에 입력할 수 있다. 예를 들어, 각 입력 각도에 놓인 주변 블록들은 시간 스텝에 따라 입력 각도(922), 입력 각도(924), 입력 각도(926), 입력 각도(928), 입력 각도(930), 입력 각도(932) 및 입력 각도(934)의 순서로 LSTM 네트워크의 각 셀에 입력될 수 있다. 만일, 입력 각도 별 주변 블록이 복수 개일 경우, 동일한 입력 각도에 위치한 주변 블록들 사이의 입력 순서는 현재 블록에서 먼 위치로부터 가까운 위치의 순서일 수 있다. 예를 들어, 도 9b를 참조하면, 입력 각도(926)에 위치한 주변 블록들(블록 '3' 내지 블록 '5') 사이에서의 입력 순서는 블록 '3', 블록 '4' 및 블록 '5' 순일 수 있다. 다만, 상술한 입력 순서는 단지 예시적인 것일 뿐이며, 동일한 입력 각도에 위치한 주변 블록들은 다양한 입력 순서에 기초하여 LSTM 네트워크에 입력될 수 있다.According to one embodiment, the intraprediction units 120 and 240 may input neighboring blocks for each input angle to each cell of the LSTM network in the clockwise order. For example, the neighboring blocks located at each input angle may have an input angle 922, an input angle 924, an input angle 926, an input angle 928, an input angle 930, an input angle 932 And an input angle 934 in this order. If there are a plurality of neighboring blocks per input angle, the order of input between neighboring blocks located at the same input angle may be in the order of positions closer to the current block. For example, referring to FIG. 9B, the input order between neighboring blocks (blocks 3 'to 5') located at the input angle 926 is block 3, block 4, '. However, the above-described input sequence is merely exemplary, and neighboring blocks located at the same input angle can be input to the LSTM network based on various input sequences.
도 9c는 제 1 예측 데이터를 생성하기 위한 RNN 입력 데이터의 또 다른 예를 나타내는 도면이다.9C is a diagram showing another example of RNN input data for generating first predictive data.
도 10을 참조하면, 예측을 수행하고자 하는 현재 블록(940) 및 주변 블록들(블록 '0' 내지 블록 '5')이 도시된다. 일 실시예에 따른 인트라 예측부(120, 240)는 제 1 예측을 수행하기 위해 현재 블록(940)에 인접한 주변 블록들을 제 1 입력 데이터로서 RNN의 입력으로 사용할 수 있다. 제 1 입력 데이터는 현재 블록(940) 이전에 복원된 데이터이다. Referring to FIG. 10, a current block 940 and neighboring blocks (blocks '0' to '5') for which prediction is to be performed are shown. The intraprediction units 120 and 240 according to an exemplary embodiment may use neighboring blocks adjacent to the current block 940 as input of the RNN as first input data in order to perform the first prediction. The first input data is data restored before the current block 940.
일 실시예에 따른 인트라 예측부(120, 240)는 주변 블록들을 Z 스캔의 순서(942)로 LSTM 네트워크의 각 셀에 입력할 수 있다.The intraprediction units 120 and 240 according to an exemplary embodiment may input neighboring blocks to each cell of the LSTM network in the sequence of Z scans 942.
예를 들어, 인트라 예측부(120, 240)는 현재 블록(1010)의 좌상측 위치로부터 현재 블록(1010)의 우상측 위치 및 현재 블록(1010)의 좌측 위치의 순서(즉, 블록 '0' 내지 블록 '5'의 순서)로 주변 블록들의 각각을 RNN의 LSTM 네트워크의 각 셀에 입력할 수 있다.For example, the intraprediction units 120 and 240 determine the order of the upper right side position of the current block 1010 and the left side position of the current block 1010 (i.e., block '0') from the upper left position of the current block 1010, To block ' 5 ') to each cell of the LSTM network of the RNN.
다만, 상술한 주변 블록들의 입력 순서는 단지 예시적인 것이며, 주변 블록들은 다양한 스캔(예를 들어, 래스터 스캔(raster scan), N 스캔(N-scan), 우상향 대각 스캔(up-right diagonal scan), 수평적 스캔(horizontal scan), 수직적 스캔(vertical scan) 등) 순서로 LSTM 네트워크의 각 셀에 입력될 수 있다.However, the input order of the above-mentioned neighboring blocks is merely an example, and neighboring blocks may include various scans (for example, raster scan, N scan, up-right diagonal scan, A horizontal scan, a vertical scan, etc.) may be input to each cell of the LSTM network in this order.
도 10은 CNN의 구조를 나타내는 도면이다.10 is a view showing the structure of CNN.
도 10을 참조하면, CNN(1020)의 입력 레이어를 통해 입력 데이터(1010)가 입력되고 CNN(1020)의 출력 레이어를 통해 출력 데이터(1030)가 출력된다.10, input data 1010 is input through an input layer of CNN 1020 and output data 1030 is output through an output layer of CNN 1020. [
CNN(1020)의 입력 레이어와 출력 레이어 사이에는 다수의 히든 레이어가 포함될 수 있다. 히든 레이어를 이루는 각 레이어는 컨볼루션 레이어 및 서브 샘플링 레이어를 포함할 수 있다. 컨볼루션 레이어는 컨볼루션 필터를 이용하여 각 레이어에 입력된 영상 데이터에 컨볼루션 연산을 수행하고, 특징 맵을 생성한다. 이때, 특징 맵은 입력 데이터(1010)의 다양한 특징이 표현된 영상 데이터를 의미한다. 서브 샘플링 레이어는 샘플링 또는 풀링(pooling)을 통해 특징 맵의 크기를 감소시킨다. CNN(1020)의 출력 레이어는 특징 맵에 표현된 다양한 특징을 조합하여 영상 데이터의 클래스(class)를 분류한다. 이때, 출력 레이어는 완전 연결 레이어로 구성될 수 있다.A plurality of hidden layers may be included between the input layer and the output layer of the CNN 1020. 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. At this time, the feature map means image data in which various features of the input data 1010 are expressed. The subsampling layer reduces the size of the feature map by sampling or pooling. The output layer of CNN 1020 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.
일 실시예에 따른 CNN의 구조(예컨대, 히든 레이어의 수, 각 레이어에서의 필터의 수와 크기 등)는 미리 결정되며, 각 레이어에서의 필터(특히, 컨볼루션 필터)의 가중치 매트릭스(weight matrix)는 이미 어느 클래스에 속할지 정답이 알려진 데이터들을 이용하여 적절한 값으로 산정된다. 이와 같이 이미 정답이 알려진 데이터들은 '학습 데이터'로서 사용된다. 이 때, 필터의 가중치 매트릭스를 결정하는 과정은 곧 '학습'을 의미한다.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. Thus, data that are known to be correct are used as 'learning data'. At this time, the process of determining the weighting matrix of the filter means 'learning'.
예를 들어, CNN(1020)의 구조에서, 각 레이어 당 필터의 개수는 64개일 수 있으며, 각 필터의 크기는 3x3일 수 있다. 또한, 예를 들어, CNN(1020)의 구조에서 총 레이어의 개수는 10개로 이루어질 수 있다. 그러나, 상술한 실시예는 단지 예시를 위한 것에 불과하며, 히든 레이어의 수, 각 레이어에서의 필터의 수와 크기 등은 다양한 형태에 따라 변경 실시될 수 있다.For example, in the structure of CNN 1020, the number of filters per layer may be 64, and the size of each filter may be 3x3. Also, for example, in the structure of CNN 1020, the total number of layers may be ten. However, 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.
도 6을 통해 전술한 바와 같이, 일 실시예에 따른 인트라 예측부(120, 240)는 RNN 기반의 제 1 예측을 통해 생성된 제 1 예측 데이터에 대해 CNN(1020)에 기반한 제 2 예측을 수행하여 제 2 예측 데이터(즉, 출력 데이터(1030))를 생성할 수 있다. 일 실시예에 따른 CNN(1020)은 출력 데이터(1030)인 제 2 예측 데이터가 현재 블록의 원 데이터에서 제 1 예측 데이터를 뺀 값과 같아지도록 학습된 네트워크일 수 있다. As described above with reference to FIG. 6, the intra-prediction units 120 and 240 according to an exemplary embodiment perform a second prediction based on the CNN 1020 on the first prediction data generated through the RNN-based first prediction To generate second prediction data (i.e., output data 1030). The CNN 1020 according to an embodiment may be a network that has been learned such that the second predicted data, which is the output data 1030, is equal to the original data of the current block minus the first predicted data.
이 때, CNN(1020)의 입력 데이터(1010)는 제 1 예측 데이터 및 현재 블록에 인접한 주변 복원 데이터일 수 있으며, 출력 데이터(1030)는 현재 블록의 원 데이터에서 제 1 예측 데이터를 뺀 값과의 오차를 최소화한 현재 블록의 예측 데이터일 수 있다. 한편, 오차는 R-D 코스트에 기초하여 측정될 수 있다. In this case, the input data 1010 of the CNN 1020 may be the first predictive data and the neighboring reconstructed data adjacent to the current block, and the output data 1030 may be a value obtained by subtracting the first predictive data from the original data of the current block, May be the prediction data of the current block that minimizes the error of the current block. On the other hand, the error can be measured based on the R-D cost.
도 11은 제 2 예측 데이터를 생성하기 위한 CNN 입력 데이터의 일 예를 나타내는 도면이다.11 is a diagram showing an example of CNN input data for generating second predictive data.
일 실시예에 따른 CNN 입력 데이터(1100)는 제 2 입력 데이터이다. CNN 입력 데이터(1100)는 도 10의 입력 데이터(1010)와도 대응된다.The CNN input data 1100 according to an embodiment is second input data. The CNN input data 1100 corresponds to the input data 1010 of FIG.
도 11을 참조하면, 일 실시예에 따른 CNN 입력 데이터(1100)는 제 1 예측 데이터(1110) 및 주변 복원 데이터(1120, 1130, 1140)를 포함할 수 있다. 그러나, 상기 실시예는 단지 예시를 위한 것일 뿐, CNN 입력 데이터(1100)는 다양한 형태로 변형될 수 있다.Referring to FIG. 11, CNN input data 1100 according to an exemplary embodiment may include first prediction data 1110 and peripheral reconstruction data 1120, 1130, and 1140. However, the above embodiment is for illustrative purposes only, and the CNN input data 1100 can be modified into various forms.
일 실시예에 따른 인트라 예측부(120, 240)는 도 7의 RNN에 기반한 제 1 예측 동작을 통해 출력된 제 1 예측 데이터와 도 11의 CNN에 기반한 제 2 예측 동작을 통해 출력된 제 2 예측 데이터를 합하여 현재 블록에 대한 최종 예측 데이터를 생성할 수 있다. The intraprediction units 120 and 240 according to an exemplary embodiment of the present invention may include first prediction data output through a first prediction operation based on the RNN of FIG. 7 and second prediction data output through a second prediction operation based on CNN of FIG. Data can be summed to generate final prediction data for the current block.
일 실시예에 따른 영상 부호화 장치(100)는 현재 블록의 원 데이터와 최종 예측 데이터와의 차이를 계산함으로써 레지듀얼 데이터를 생성하며, 생성된 레지듀얼 데이터를 부호화한 비트스트림을 생성하여 영상 복호화 장치(200)로 전달할 수 있다. 일 실시예에 따른 영상 부호화 장치(100)는 별도의 예측 정보(예를 들어, 예측 모드 정보)를 부호화하지 않는다. 일 실시예에 따라 학습된 DNN(즉, RNN 및 CNN)은 입력 패턴을 분석하여 그 특징을 찾아내어 올바른 예측 영상을 생성할 수 있는 일반화 능력을 갖기 때문이다.The image encoding apparatus 100 generates residual data by calculating the difference between the original data of the current block and the final predicted data, generates a bitstream obtained by encoding the generated residual data, (200). The image encoding apparatus 100 according to the embodiment does not encode additional prediction information (for example, prediction mode information). According to one embodiment, the learned DNNs (i.e., RNN and CNN) have a generalization capability capable of analyzing input patterns to find their characteristics and generating a correct prediction image.
일 실시예에 따른 영상 복호화 장치(200)는 비트스트림으로부터 획득한 레지듀얼 데이터를 최종 예측 데이터와 더함으로써 현재 블록의 데이터를 복원할 수 있다. 이 때, 영상 복호화 장치(200)는 비트스트림으로부터 별도의 예측 정보를 획득하지 않고도 최종 예측 데이터를 생성할 수 있다.The image decoding apparatus 200 according to the embodiment can restore the data of the current block by adding the residual data obtained from the bitstream to the final predicted data. At this time, the video decoding apparatus 200 can generate final prediction data without acquiring additional prediction information from the bitstream.
도 12는 일 실시예에 따른 DNN 기반 인터 예측 과정을 나타낸 도면이다.12 is a diagram illustrating a DNN-based inter prediction process according to an embodiment.
인터 예측 과정은 움직임 추정을 통해 참조 픽처들로부터 최적의 예측 블록을 찾고, 움직임 보상 과정을 통해 예측 블록을 생성하는 과정이다. 영상은 일련의 정지 영상으로 구성되고, 정지 영상들은 픽처 그룹 단위로 구분된다. 하나의 픽처 그룹에는 I 픽처, P 픽처 및 B 픽처가 포함된다. 이 중에서 P 픽처와 B 픽처는 참조 픽처를 사용하여 움직임 추정 및 움직임 보상을 수행하여 부호화되는 픽처이다. The inter prediction process is a process of finding an optimal prediction block from reference pictures through motion estimation and generating a prediction block through a motion compensation process. An image is composed of a series of still images, and still images are divided into a group of pictures. One picture group includes an I picture, a P picture, and a B picture. Among them, the P picture and the B picture are pictures to be coded by performing motion estimation and motion compensation using reference pictures.
일 실시예에 따른 DNN 기반 인터 예측은, 영상 부호화 장치(100)의 인터 예측부(115) 또는 영상 복호화 장치(200)의 인터 예측부(235)에서 수행될 수 있다. 일 실시예에 따른 DNN 기반 인터 예측은 RNN, CNN 등을 기반으로 할 수 있다 The DNN-based inter prediction may be performed in the inter-prediction unit 115 of the image coding apparatus 100 or the inter-prediction unit 235 of the image decoding apparatus 200 according to an embodiment. The DNN-based inter prediction according to an exemplary embodiment may be based on RNN, CNN, etc.
도 12를 참조하면, 현재 픽처(1210)를 예측하기 위해 DNN(1240)에 복원 픽처(1220, 1230)가 입력되는 과정이 도시된다. 이 때, 현재 픽처(1210)는 P 픽처 또는 B 픽처일 수 있다. 현재 픽처(1210)가 시점 t에 해당하는 픽처일 경우, 인터 예측에 이용되는 복원 픽처(1220)는 시점 t를 기준으로 과거 시점(예를 들어, t-1, t-2)에 해당하는 복원 픽처일 수 있으며, 복원 픽처(1230)는 시점 t를 기준으로 미래 시점(예를 들어, t+1, t+2)에 해당하는 복원 픽처일 수 있다. 또한, 일 실시예에 따른 DNN(1240)은 예측 데이터(1250)를 생성하기 위해, 현재 픽처의 타입과 같은 입력 영상의 특성에 대한 정보들을 이용할 수도 있다.Referring to FIG. 12, a process of inputting restored pictures 1220 and 1230 to the DNN 1240 for predicting the current picture 1210 is illustrated. At this time, the current picture 1210 may be a P picture or a B picture. If the current picture 1210 is a picture corresponding to the viewpoint t, the reconstructed picture 1220 used for inter prediction is reconstructed and reconstructed corresponding to the past viewpoint (for example, t-1, t-2) And the reconstructed picture 1230 may be a reconstructed picture corresponding to a future viewpoint (e.g., t + 1, t + 2) based on the viewpoint t. In addition, the DNN 1240 according to one embodiment may use information on the characteristics of the input image, such as the type of the current picture, to generate the prediction data 1250.
일 실시예에 따른 인터 예측부(115, 235)는 예측을 수행하고자 하는 현재 픽처(1210) 내의 현재 블록(610)에 대해 DNN에 기반한 인터 예측을 수행하여 예측 데이터(1250)를 생성할 수 있다. 이 때, DNN(1240)은 출력으로 생성되는 예측 데이터(640)가 현재 픽처(1210) 내의 현재 블록의 원 데이터와 같아지도록 학습된 네트워크일 수 있다. 즉, 학습된 DNN을 이용함으로써 현재 블록의 원 데이터와의 오차가 가장 적은 예측 데이터(1250)가 생성될 수 있다. 학습된 DNN(1240)은 입력 패턴을 분석하여 그 특징을 찾아내어 올바른 참조 픽처 및 참조 블록 위치를 결정할 수 있는 일반화 능력을 갖는다. 따라서, 일 실시예에 따른 DNN에 기반한 인터 예측은 움직임 벡터, 예측 방향, 참조 픽처 인덱스 등과 같은 예측 정보의 시그널링을 필요로 하지 않는다. The inter-prediction unit 115 and 235 according to an exemplary embodiment may generate the prediction data 1250 by performing inter-prediction based on the DNN on the current block 610 in the current picture 1210 to be predicted . In this case, the DNN 1240 may be a learned network such that the prediction data 640 generated as an output is the same as the original data of the current block in the current picture 1210. That is, by using the learned DNN, the prediction data 1250 having the smallest error from the original data of the current block can be generated. The learned DNN 1240 has a generalization capability capable of analyzing an input pattern and finding its characteristics to determine a correct reference picture and reference block location. Thus, inter prediction based on DNN according to an embodiment does not require signaling of prediction information such as a motion vector, a prediction direction, a reference picture index, and the like.
일 실시예에 따른 DNN(1240)은 컨볼루션 풀링 레이어, 히든 레이어 및 완전 연결 레이어를 포함하는 레이어들의 세트로 구현될 수 있다. 예를 들어, DNN(1240)의 전체적인 구조는 컨볼루션 풀링 레이어에 히든 레이어가 이어지고, 히든 레이어에 완전 연결 레이어가 이어지는 형태로 이루어질 수 있다. The DNN 1240 according to one embodiment may be implemented as a set of layers including a convolutional pulling layer, a hidden layer, and a fully connected layer. For example, the overall structure of the DNN 1240 may be in the form of a hidden layer in the convolution pooling layer, followed by a fully connected layer in the hidden layer.
일 실시예에 따른 DNN(1240)의 구조는 도 5를 통해 전술한 바와 같으므로, DNN(1240)의 자세한 구조에 대한 설명은 생략하도록 한다.Since the structure of the DNN 1240 according to an embodiment is as described above with reference to FIG. 5, a detailed description of the structure of the DNN 1240 will be omitted.
일 실시예에 따른 영상 부호화 장치(100)는 현재 픽처(1210) 내 현재 블록의 원 데이터와 예측 데이터(1250)와의 차이를 계산함으로써 레지듀얼 데이터를 생성하며, 생성된 레지듀얼 데이터를 부호화한 비트스트림을 생성하여 영상 복호화 장치(200)로 전달할 수 있다. 일 실시예에 따른 영상 부호화 장치(100)는 별도의 예측 정보(예를 들어, 움직임 벡터, 예측 방향, 참조 픽처 인덱스 등)를 부호화하지 않는다.The image encoding apparatus 100 generates residual data by calculating the difference between the original data of the current block in the current picture 1210 and the prediction data 1250 and outputs the encoded residual data And transmits the generated stream to the video decoding apparatus 200. The image encoding apparatus 100 according to the embodiment does not encode additional prediction information (e.g., a motion vector, a prediction direction, a reference picture index, etc.).
일 실시예에 따른 영상 복호화 장치(200)는 비트스트림으로부터 획득한 레지듀얼 데이터를 예측 데이터(1250)와 더함으로써 현재 픽처(1210) 내 현재 블록의 데이터를 복원할 수 있다. 이 때, 영상 복호화 장치(200)는 비트스트림으로부터 별도의 예측 정보를 획득하지 않고도 예측 데이터(1250)를 생성할 수 있다.The image decoding apparatus 200 according to an embodiment can restore the data of the current block in the current picture 1210 by adding the residual data acquired from the bitstream to the prediction data 1250. [ At this time, the video decoding apparatus 200 can generate the prediction data 1250 without acquiring another prediction information from the bitstream.
도 13은 일 실시예에 따른 비트스트림의 구조를 나타낸 도면이다.13 is a diagram illustrating a structure of a bitstream according to an embodiment.
부호화된 비트스트림(1300)은 다수의 NAL(Network Abstraction Layer) 단위들로 구성된다. NAL 단위는 부호화된 슬라이스(1340)와 같은 부호화된 샘플 데이터 뿐만 아니라, 파라미터 세트 데이터, 슬라이스 헤더 데이터(미도시) 또는 보충 향상 정보 데이터(supplemental enhancement information data; 미도시)와 같은 하이 레벨 신택스 메타데이터를 포함할 수 있다.The encoded bitstream 1300 is composed of a plurality of NAL (Network Abstraction Layer) units. The NAL unit is used to store not only encoded sample data such as an encoded slice 1340 but also high level syntax metadata such as parameter set data, slice header data (not shown) or supplemental enhancement information data (not shown) . ≪ / RTI >
파라미터 세트는, 다수의 비트스트림 레이어에 적용될 수도 있는 필수 신택스 엘리먼트(예를 들면, 비디오 파라미터 세트(VPS; 1310)), 하나의 레이어 내의 부호화된 비디오 시퀀스에 적용될 수도 있는 필수 신택스 엘리먼트(예를 들면, 시퀀스 파라미터 세트(SPS; 1320)), 또는 하나의 부호화된 비디오 시퀀스 내의 다수의 픽쳐에 적용될 수도 있는 필수 신택스 엘리먼트(예를 들면, 픽쳐 파라미터 세트(PPS; 1330))를 포함하는 하이 레벨 신택스 구조일 수 있다. 파라미터 세트는 비트스트림의 부호화된 픽처와 함께 전송되거나, 신뢰 가능한 채널, 하드 코딩, 대역외 송신 등을 포함하는 다른 수단을 통해 송신될 수 있다.The parameter set may include a required syntax element (e.g., a video parameter set (VPS) 1310) that may be applied to multiple bitstream layers, a required syntax element that may be applied to an encoded video sequence within a layer , A sequence parameter set (SPS) 1320), or a required syntax element (e.g., a picture parameter set (PPS) 1330) that may be applied to multiple pictures in a single encoded video sequence Lt; / RTI > 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.
SEI 메시지는, 복호화 프로세스를 위해 필수적이지 않을 수도 있지만, 픽처 출력 타이밍, 디스플레이, 손실 검출 및 은닉과 같은 다양한 다른 목적들을 위하여 이용될 수 있는 정보를 반송할 수 있다.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.
일 실시예에 따라, 비트스트림(1300)에 포함되는 파라미터 세트에는 DNN에 기반한 예측의 수행을 위한 부가 정보가 포함될 수 있다. 일 실시예에 따른 부가 정보는 DNN의 구조에 대한 정보(예를 들어, 필터 세트, 노드 개수에 대한 정보 등) 및 DNN이 적용되는 블록에 대한 정보(예를 들어, 예측 블록 지표 등)를 포함할 수 있다. 또한, 부가 정보는 입력 데이터를 RNN에 입력하는 순서를 결정하기 위한 입력 각도 및/또는 입력 순서에 대한 정보를 포함할 수도 있다.According to one embodiment, the parameter set included in the bitstream 1300 may include additional information for performing prediction based on the DNN. The additional information according to an exemplary embodiment includes information on the structure of the DNN (e.g., filter set, information on the number of nodes, etc.) and information on the block to which the DNN is applied can do. Further, the additional information may include information on the input angle and / or the input order for determining the order of inputting the input data to the RNN.
예를 들어, 부가 정보는 비트스트림(1300) 내의 비디오 파라미터 세트(1310), 시퀀스 파라미터 세트(1320), 픽쳐 파라미터 세트(1330) 등을 통해 시그널링될 수 있다.For example, the side information may be signaled through a video parameter set 1310, a sequence parameter set 1320, a picture parameter set 1330, etc. in the bit stream 1300.
한편, 상기와 같은 부가 정보는 비트스트림을 통해 전달될 수도 있으나, 영상 부호화 장치(100)와 영상 복호화 장치(200) 간에 미리 공유될 수도 있다. 또한, 부가 정보는 통신이 가능한 별도 서버를 통해 공유될 수도 있다.Meanwhile, the additional information 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. Further, the additional information may be shared through a separate server capable of communication.
도 14는 일 실시예에 따른 영상 부호화 장치(1400)의 개략적인 블록도를 도시한다.FIG. 14 shows a schematic block diagram of an image encoding apparatus 1400 according to an embodiment.
일 실시예에 따른 영상 부호화 장치(1400)는 도 1의 영상 부호화 장치(100)에 대응할 수 있다. The image encoding apparatus 1400 according to one embodiment may correspond to the image encoding apparatus 100 of FIG.
도 14를 참조하면, 영상 부호화 장치(1400)는 블록 결정부(1410), 예측부(1420), 압축부(1430) 및 전송부(1440)를 포함한다. 도 14의 블록 결정부(1410)는 도 1의 블록 결정부(110)에 대응할 수 있다. 도 14의 예측부(1420)는 도 1의 인트라 예측부(120) 또는 인터 예측부(115)에 대응할 수 있다. 도 14의 압축부(1430)는 도 1의 변환부(130), 양자화부(135) 및 엔트로피 부호화부(155)에 대응할 수 있다.14, the image encoding apparatus 1400 includes a block determining unit 1410, a predicting unit 1420, a compressing unit 1430, and a transmitting unit 1440. The block determination unit 1410 of FIG. 14 may correspond to the block determination unit 110 of FIG. The prediction unit 1420 of FIG. 14 may correspond to the intra prediction unit 120 or the inter prediction unit 115 of FIG. The compression unit 1430 of FIG. 14 may correspond to the conversion unit 130, the quantization unit 135, and the entropy encoding unit 155 of FIG.
일 실시예에 따른 블록 결정부(1410)는 부호화 단위의 최대 크기에 따라, 현재 픽처의 영상 데이터를 최대 부호화 단위로 분할할 수 있다. 각각의 최대 부호화 단위는 블록 형태 및 분할 형태별로 분할되는 블록(즉, 부호화 단위)들을 포함할 수 있다. 일 실시예에 따른 최대 부호화 단위는 최대 부호화 단위에 포함된 공간 영역(spatial domain)의 영상 데이터가 블록 형태 및 분할 형태에 따라 계층적으로 분류될 수 있다. 부호화 단위의 블록 형태는 정사각형 또는 직사각형일 수 있으며, 임의의 기하학적 형태일 수 있으므로, 일정한 크기의 데이터 단위로 제한되는 것은 아니다. 하나 이상의 블록의 블록 형태 및 분할 형태는 R-D 코스트 계산에 기초해 결정될 수 있다. The block determination unit 1410 according to an exemplary embodiment may divide the image data of the current picture into a maximum encoding unit according to the maximum size of the encoding unit. 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.
일 실시예에 따라, 예측부(1420)는 블록 결정부(1410)에서 결정된 블록들 중에서 현재 블록에 대해 DNN에 기반한 예측을 수행한다. According to one embodiment, the predicting unit 1420 performs a DNN-based prediction on the current block among the blocks determined by the block determining unit 1410. [
인트라 예측의 경우, 예측부(1420)는 현재 블록에 대해 DNN에 기반한 제 1 예측을 수행하여 제 1 예측 데이터를 생성하고, 제 1 예측 데이터에 대해 DNN에 기반한 제 2 예측을 수행하여 제 2 예측 데이터를 생성하고, 제 1 예측 데이터 및 상기 제 2 예측 데이터를 이용하여 현재 블록에 대한 최종 예측 데이터를 생성할 수 있다. 여기서, 제 1 예측은 RNN을 기반으로 할 수 있으며, 제 2 예측은 CNN을 기반으로 할 수 있다. 일 실시예에 따른 인트라 예측의 구체적인 과정에 대해서는 도 6 내지 도 12를 통해 전술하였으므로, 자세한 설명은 생략하기로 한다.In the case of intraprediction, the predicting unit 1420 generates a first prediction data by performing a first prediction based on a DNN with respect to a current block, performs a second prediction based on the DNN on the first prediction data, And generate the final prediction data for the current block using the first prediction data and the second prediction data. Here, the first prediction may be based on RNN, and the second prediction may be based on CNN. The concrete procedure of intra prediction according to an embodiment has been described above with reference to FIG. 6 to FIG. 12, and a detailed description thereof will be omitted.
인터 예측의 경우, 예측부(1420)는 하나 이상의 블록 중 현재 블록에 대해 DNN에 기반한 인터 예측을 수행하여 하나 이상의 참조 픽처 및 하나 이상의 참조 블록 위치를 결정하고, 하나 이상의 참조 픽처 및 하나 이상의 참조 블록 위치를 이용하여 현재 블록에 대한 예측 데이터를 생성할 수 있다. 일 실시예에 따른 인터 예측의 구체적인 과정에 대해서는 도 13을 통해 전술하였으므로, 자세한 설명은 생략하기로 한다.In the case of inter prediction, the prediction unit 1420 performs inter prediction based on the DNN on the current block among the one or more blocks to determine one or more reference pictures and one or more reference block positions, and determines one or more reference pictures and one or more reference blocks The prediction data for the current block can be generated using the position. The detailed process of the inter prediction according to the embodiment has been described with reference to FIG. 13, so a detailed description will be omitted.
일 실시에에 따른 압축부(1430)는 각 블록의 원 데이터와, 예측부(1420)으로부터 출력된 각 블록에 대한 예측 데이터의 차이를 계산함으로써 레지듀얼 데이터를 생성한다. 압축부(1430)는 레지듀얼 데이터를 변환 및 양자화하여 블록 별로 양자화된 변환 계수를 생성한다. 압축부(1430)는 양자화된 변환 계수를 엔트로피 부호화한 비트스트림을 출력한다. 부호화된 비트스트림에는 레지듀얼 데이터의 부호화 결과가 포함될 수 있다. 또한, 비트스트림에는 블록 형태, 분할 형태, 변환 단위의 크기 정보 등을 나타내는 정보의 부호화 결과가 포함될 수도 있다.The compression unit 1430 according to one embodiment generates residual data by calculating the difference between the original data of each block and the prediction data for each block output from the prediction unit 1420. [ The compression unit 1430 transforms and quantizes residual data and generates block-quantized transform coefficients. The compression unit 1430 outputs a bitstream obtained by entropy encoding the quantized transform coefficients. The encoded bitstream may include the encoding result of the residual data. In addition, the bit stream may include the encoding result of the information indicating the block type, the division type, the size information of the conversion unit, and the like.
일 실시예에 따른 전송부(1440)는, 압축부(1430)에서 출력된 비트스트림을 영상 복호화 장치로 전송한다. The transmitting unit 1440 according to an embodiment transmits the bit stream output from the compressing unit 1430 to the image decoding apparatus.
도 15는 일 실시예에 따른 영상 복호화 장치(1500)의 개략적인 블록도를 도시한다.FIG. 15 shows a schematic block diagram of an image decoding apparatus 1500 according to an embodiment.
일 실시예에 따른 영상 복호화 장치(1500)는 도 2의 영상 복호화 장치(200)에 대응할 수 있다. The image decoding apparatus 1500 according to one embodiment may correspond to the image decoding apparatus 200 of FIG.
도 15를 참조하면, 영상 복호화 장치(1500)는 수신부(1510), 블록 결정부(1520), 예측부(1530) 및 복원부(1540)를 포함한다. 도 15의 수신부(1510)는 도 2의 수신부(210)에 대응할 수 있다. 도 15의 블록 결정부(1520)는 도 2의 블록 결정부(215)에 대응할 수 있다. 도 15의 예측부(1530)는 도 2의 인트라 예측부(240) 또는 인터 예측부(235)에 대응할 수 있다. 도 15의 복원부(1540)는 도 2의 엔트로피 복호화부(220), 역양자화부(225) 및 역변환부(230)에 대응할 수 있다.15, the image decoding apparatus 1500 includes a receiving unit 1510, a block determining unit 1520, a predicting unit 1530, and a restoring unit 1540. The receiving unit 1510 of FIG. 15 may correspond to the receiving unit 210 of FIG. The block determination unit 1520 of FIG. 15 may correspond to the block determination unit 215 of FIG. The prediction unit 1530 of FIG. 15 may correspond to the intra prediction unit 240 or the inter prediction unit 235 of FIG. The restoration unit 1540 of FIG. 15 may correspond to the entropy decoding unit 220, the inverse quantization unit 225, and the inverse transformation unit 230 of FIG.
일 실시예에 따른 수신부(1510)는 부호화된 비트스트림을 수신한다.The receiving unit 1510 according to an embodiment receives the encoded bitstream.
일 실시예에 따른 블록 결정부(1520)는 비트스트림으로부터 분할 정보를 획득하여 공간 영역의 영상 데이터를 블록 형태 및 분할 형태에 따라 계층적으로 분할할 수 있다. 한편, 복호화에 이용되는 블록들이 일정한 형태 및 크기를 가질 경우, 블록 결정부(1520)는 분할 정보를 이용하지 않고 영상 데이터를 분할할 수 있다.The block determination unit 1520 according to an embodiment may obtain the division information from the bit stream and divide the image data of the spatial domain into hierarchical blocks 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 block determining unit 1520 can divide the image data without using the division information.
일 실시예에 따라, 예측부(1530)는 블록 결정부(1520)에서 결정된 블록들 중에서 현재 블록에 대해 DNN에 기반한 예측을 수행한다. 한편, DNN의 구조에 대한 정보는 부가 정보의 형태로서 비트스트림으로부터 획득될 수도 있다.According to one embodiment, the predicting unit 1530 performs prediction based on the DNN on the current block among the blocks determined by the block determining unit 1520. [ On the other hand, the information on the structure of the DNN may be acquired from the bitstream as a form of additional information.
인트라 예측의 경우, 예측부(1530)는 현재 블록에 대해 DNN에 기반한 제 1 예측을 수행하여 제 1 예측 데이터를 생성하고, 제 1 예측 데이터에 대해 DNN에 기반한 제 2 예측을 수행하여 제 2 예측 데이터를 생성하고, 제 1 예측 데이터 및 상기 제 2 예측 데이터를 이용하여 현재 블록에 대한 최종 예측 데이터를 생성할 수 있다. 여기서, 제 1 예측은 RNN을 기반으로 할 수 있으며, 제 2 예측은 CNN을 기반으로 할 수 있다. 일 실시예에 따른 인트라 예측의 구체적인 과정에 대해서는 도 6 내지 도 11을 통해 전술하였으므로, 자세한 설명은 생략하기로 한다.In the case of intraprediction, the predicting unit 1530 generates a first prediction data by performing a first prediction based on a DNN with respect to a current block, performs a second prediction based on DNN with respect to the first prediction data, And generate the final prediction data for the current block using the first prediction data and the second prediction data. Here, the first prediction may be based on RNN, and the second prediction may be based on CNN. The concrete procedure of the intra prediction according to the embodiment has been described above with reference to FIG. 6 to FIG. 11, and a detailed description thereof will be omitted.
인터 예측의 경우, 예측부(1530)는 하나 이상의 블록 중 현재 블록에 대해 DNN에 기반한 인터 예측을 수행하여 하나 이상의 참조 픽처 및 하나 이상의 참조 블록 위치를 결정하고, 하나 이상의 참조 픽처 및 하나 이상의 참조 블록 위치를 이용하여 현재 블록에 대한 예측 데이터를 생성할 수 있다. 일 실시예에 따른 인터 예측의 구체적인 과정에 대해서는 도 12를 통해 전술하였으므로, 자세한 설명은 생략하기로 한다.In the case of inter prediction, the prediction unit 1530 performs inter prediction based on DNN on the current block among the one or more blocks to determine one or more reference pictures and one or more reference block positions, and determines one or more reference pictures and one or more reference blocks The prediction data for the current block can be generated using the position. The detailed process of the inter prediction according to the embodiment has been described with reference to FIG. 12, so a detailed description will be omitted.
일 실시에에 따른 복원부(1540)는 비트스트림을 엔트로피 복호화하여 획득한 양자화된 변환계수를 역양자화 및 역변환하여 각 블록의 레지듀얼 데이터를 획득한다. 그 후, 복원부(1540)는 각 블록의 레지듀얼 데이터와 예측부(1530)에서 생성된 각 블록의 예측 데이터를 이용하여 영상을 복원한다. The reconstruction unit 1540 according to one embodiment obtains the residual data of each block by inverse-quantizing and inverse transforming the quantized transform coefficients obtained by entropy decoding the bitstream. Thereafter, the restoring unit 1540 restores the image by using the residual data of each block and the predicted data of each block generated by the predicting unit 1530.
도 16은 일 실시예에 따른 영상 부호화 방법을 나타낸 플로우 차트이다.16 is a flowchart illustrating an image encoding method according to an embodiment.
단계 S1610에서, 영상 부호화 장치(100)는 영상을 분할하는 하나 이상의 블록을 결정한다. In step S1610, the image coding apparatus 100 determines one or more blocks for dividing the image.
단계 S1620에서, 영상 부호화 장치(100)는 하나 이상의 블록 중 현재 블록에 대해 DNN에 기반한 예측을 수행하여 현재 블록에 대한 예측 데이터를 생성한다.In step S1620, the image encoding apparatus 100 generates prediction data for the current block by performing prediction based on the DNN on the current block among the one or more blocks.
단계 S1630에서, 영상 부호화 장치(100)는 현재 블록에 대응하는 원 데이터와 예측 데이터를 이용하여 현재 블록의 레지듀얼 데이터를 생성한다.In step S1630, the image coding apparatus 100 generates residual data of the current block by using the original data and the prediction data corresponding to the current block.
단계 S1640에서, 영상 부호화 장치(100)는 레지듀얼 데이터를 부호화한 비트스트림을 생성한다.In step S1640, the image coding apparatus 100 generates a bit stream obtained by coding residual data.
도 17은 일 실시예에 따른 영상 복호화 방법을 나타낸 플로우 차트이다.17 is a flowchart illustrating a video decoding method according to an embodiment.
단계 S1710에서, 영상 복호화 장치(200)는 부호화된 영상의 비트스트림을 수신한다. In step S1710, the video decoding apparatus 200 receives the bit stream of the encoded video.
단계 S1720에서, 영상 복호화 장치(200)는 부호화된 영상으로부터 분할된 하나 이상의 블록을 결정한다.In step S1720, the image decoding apparatus 200 determines one or more blocks that are divided from the encoded image.
단계 S1730에서, 영상 복호화 장치(200)는 하나 이상의 블록 중 현재 블록에 대해 DNN에 기반한 예측을 수행하여 현재 블록에 대한 예측 데이터를 생성한다.In step S1730, the image decoding apparatus 200 generates prediction data for the current block by performing prediction based on the DNN on the current block among the one or more blocks.
단계 S1740에서, 영상 복호화 장치(200)는 비트스트림으로부터 현재 블록의 레지듀얼 데이터를 추출한다.In step S1740, the video decoding apparatus 200 extracts the residual data of the current block from the bitstream.
단계 S1750에서, 영상 복호화 장치(200)는 예측 데이터와 레지듀얼 데이터를 이용하여 현재 블록을 복원한다.In step S1750, the image decoding apparatus 200 restores the current block using the predictive data and the residual data.
이하, 도 18 내지 도 31을 참조하여 일 실시예에 따른 영상의 데이터 단위를 결정하는 방법이 상술된다. 도 18 내지 도 31에서 설명되는 부호화 단위에 대한 분할 방법은 변환의 기초가 되는 변환 단위의 분할 방법에도 동일하게 적용될 수 있다.Hereinafter, a method of determining a data unit of an image according to an embodiment will be described with reference to FIGS. 18 to 31. FIG. The dividing method for the coding unit described in Figs. 18 to 31 can be similarly applied to the dividing method of the conversion unit as the basis of the conversion.
도 18은 일 실시예에 따라 영상 복호화 장치(200)가 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.FIG. 18 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.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보를 이용하여 부호화 단위의 형태를 결정할 수 있고, 분할 형태 정보를 이용하여 부호화 단위가 어떤 형태로 분할되는지를 결정할 수 있다. 즉, 영상 복호화 장치(200)가 이용하는 블록 형태 정보가 어떤 블록 형태를 나타내는지에 따라 분할 형태 정보가 나타내는 부호화 단위의 분할 방법이 결정될 수 있다. According to an exemplary 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.
일 실시예에 따라, 영상 복호화 장치(200)는 현재 부호화 단위가 정사각형 형태임을 나타내는 블록 형태 정보를 이용할 수 있다. 예를 들어 영상 복호화 장치(200)는 분할 형태 정보에 따라 정사각형의 부호화 단위를 분할하지 않을지, 수직으로 분할할지, 수평으로 분할할지, 4개의 부호화 단위로 분할할지 등을 결정할 수 있다. 도 18을 참조하면, 현재 부호화 단위(1800)의 블록 형태 정보가 정사각형의 형태를 나타내는 경우, 영상 복호화 장치(200)는 분할되지 않음을 나타내는 분할 형태 정보에 따라 현재 부호화 단위(1800)와 동일한 크기를 가지는 부호화 단위(1810a)를 분할하지 않거나, 소정의 분할방법을 나타내는 분할 형태 정보에 기초하여 분할된 부호화 단위(1810b, 1810c, 1810d 등)를 결정할 수 있다. According to one embodiment, 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. Referring to FIG. 18, when the block type information of the current encoding unit 1800 indicates a square shape, the image decoding apparatus 200 determines the size of the current encoding unit 1800 according to the division type information indicating that the current block is not divided 1810c, 1810c, 1810d, etc.) based on the division type information indicating the predetermined division method.
도 18을 참조하면 영상 복호화 장치(200)는 일 실시예에 따라 수직방향으로 분할됨을 나타내는 분할 형태 정보에 기초하여 현재 부호화 단위(1800)를 수직방향으로 분할한 두 개의 부호화 단위(1810b)를 결정할 수 있다. 영상 복호화 장치(200)는 수평방향으로 분할됨을 나타내는 분할 형태 정보에 기초하여 현재 부호화 단위(1800)를 수평방향으로 분할한 두 개의 부호화 단위(1810c)를 결정할 수 있다. 영상 복호화 장치(200)는 수직방향 및 수평방향으로 분할됨을 나타내는 분할 형태 정보에 기초하여 현재 부호화 단위(1800)를 수직방향 및 수평방향으로 분할한 네 개의 부호화 단위(1810d)를 결정할 수 있다. 다만 정사각형의 부호화 단위가 분할될 수 있는 분할 형태는 상술한 형태로 한정하여 해석되어서는 안되고, 분할 형태 정보가 나타낼 수 있는 다양한 형태가 포함될 수 있다. 정사각형의 부호화 단위가 분할되는 소정의 분할 형태들은 이하에서 다양한 실시예를 통해 구체적으로 설명하도록 한다. Referring to FIG. 18, the image decoding apparatus 200 determines two encoding units 1810b obtained by dividing the current encoding unit 1800 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 1810c obtained by dividing the current encoding unit 1800 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 1810d obtained by dividing the current encoding unit 1800 in the vertical direction and the horizontal direction based on the division type information indicating that the image is divided in the vertical direction and the horizontal direction. However, 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.
도 19는 일 실시예에 따라 영상 복호화 장치(200)가 비-정사각형의 형태인 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.FIG. 19 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.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위가 비-정사각형 형태임을 나타내는 블록 형태 정보를 이용할 수 있다. 영상 복호화 장치(200)는 분할 형태 정보에 따라 비-정사각형의 현재 부호화 단위를 분할하지 않을지 소정의 방법으로 분할할지 여부를 결정할 수 있다. 도 19를 참조하면, 현재 부호화 단위(1900 또는 1950)의 블록 형태 정보가 비-정사각형의 형태를 나타내는 경우, 영상 복호화 장치(200)는 분할되지 않음을 나타내는 분할 형태 정보에 따라 현재 부호화 단위(1900 또는 1950)와 동일한 크기를 가지는 부호화 단위(1910 또는 1960)를 분할하지 않거나, 소정의 분할방법을 나타내는 분할 형태 정보에 따라 기초하여 분할된 부호화 단위(1920a, 1920b, 1930a, 1930b, 1930c, 1970a, 1970b, 1980a, 1980b, 1980c)를 결정할 수 있다. 비-정사각형의 부호화 단위가 분할되는 소정의 분할 방법은 이하에서 다양한 실시예를 통해 구체적으로 설명하도록 한다.According to one 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. 19, if the block type information of the current encoding unit 1900 or 1950 indicates a non-square shape, the image decoding apparatus 200 determines whether the current encoding unit 1900 1920b, 1930a, 1930b, 1930c, 1970a, 1930b, 1930a, 1930b, 1930c, and 1950c) 1970b, 1980a, 1980b, 1980c). The predetermined division method in which the non-square coding unit is divided will be described in detail through various embodiments.
일 실시예에 따라 영상 복호화 장치(200)는 분할 형태 정보를 이용하여 부호화 단위가 분할되는 형태를 결정할 수 있고, 이 경우 분할 형태 정보는 부호화 단위가 분할되어 생성되는 적어도 하나의 부호화 단위의 개수를 나타낼 수 있다. 도 19를 참조하면 분할 형태 정보가 두 개의 부호화 단위로 현재 부호화 단위(1900 또는 1950)가 분할되는 것을 나타내는 경우, 영상 복호화 장치(200)는 분할 형태 정보에 기초하여 현재 부호화 단위(1900 또는 1950)를 분할하여 현재 부호화 단위에 포함되는 두 개의 부호화 단위(1920a, 12220b, 또는 1970a, 1970b)를 결정할 수 있다. According to an exemplary embodiment, the image decoding apparatus 200 may determine a type in which an encoding unit is divided using segmentation type information. In this case, the segmentation type information indicates a number of at least one encoding unit . 19, if the division type information indicates that the current encoding unit 1900 or 1950 is divided into two encoding units, the image decoding apparatus 200 determines the current encoding unit 1900 or 1950 based on the division type information, To determine two encoding units 1920a, 12220b, or 1970a and 1970b included in the current encoding unit.
일 실시예에 따라 영상 복호화 장치(200)가 분할 형태 정보에 기초하여 비-정사각형의 형태의 현재 부호화 단위(1900 또는 1950)를 분할하는 경우, 비-정사각형의 현재 부호화 단위(1900 또는 1950)의 긴 변의 위치를 고려하여 현재 부호화 단위를 분할할 수 있다. 예를 들면, 영상 복호화 장치(200)는 현재 부호화 단위(1900 또는 1950)의 형태를 고려하여 현재 부호화 단위(1900 또는 1950)의 긴 변을 분할하는 방향으로 현재 부호화 단위(1900 또는 1950)를 분할하여 복수개의 부호화 단위를 결정할 수 있다. When the video decoding apparatus 200 divides the current coding unit 1900 or 1950 in a non-square form based on the division type information, the non-square current coding unit 1900 or 1950 The current encoding unit can be divided in consideration of the position of the long side. For example, the image decoding apparatus 200 may divide the current encoding unit 1900 or 1950 in the direction of dividing the long side of the current encoding unit 1900 or 1950 in consideration of the type of the current encoding unit 1900 or 1950 So that a plurality of encoding units can be determined.
일 실시예에 따라, 분할 형태 정보가 홀수개의 블록으로 부호화 단위를 분할하는 것을 나타내는 경우, 영상 복호화 장치(200)는 현재 부호화 단위(1900 또는 1950)에 포함되는 홀수개의 부호화 단위를 결정할 수 있다. 예를 들면, 분할 형태 정보가 3개의 부호화 단위로 현재 부호화 단위(1900 또는 1950)를 분할하는 것을 나타내는 경우, 영상 복호화 장치(200)는 현재 부호화 단위(1900 또는 1950)를 3개의 부호화 단위(1930a, 1930b, 1930c, 1980a, 1980b, 1980c)로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위(1900 또는 1950)에 포함되는 홀수개의 부호화 단위를 결정할 수 있으며, 결정된 부호화 단위들의 크기 모두가 동일하지는 않을 수 있다. 예를 들면, 결정된 홀수개의 부호화 단위(1930a, 1930b, 1930c, 1980a, 1980b, 1980c) 중 소정의 부호화 단위(1930b 또는 1980b)의 크기는 다른 부호화 단위(1930a, 1930c, 1980a, 1980c)들과는 다른 크기를 가질 수도 있다. 즉, 현재 부호화 단위(1900 또는 1950)가 분할되어 결정될 수 있는 부호화 단위는 복수의 종류의 크기를 가질 수 있고, 경우에 따라서는 홀수개의 부호화 단위(1930a, 1930b, 1930c, 1980a, 1980b, 1980c)가 각각 서로 다른 크기를 가질 수도 있다. According to one embodiment, when the division type information indicates that an encoding unit is divided into an odd number of blocks, the video decoding apparatus 200 can determine an odd number of encoding units included in the current encoding unit 1900 or 1950. [ For example, when the division type information indicates that the current coding unit 1900 or 1950 is divided into three coding units, the video decoding apparatus 200 divides the current coding unit 1900 or 1950 into three coding units 1930a , 1930b, 1930c, 1980a, 1980b, 1980c). According to an exemplary embodiment, the image decoding apparatus 200 may determine an odd number of encoding units included in the current encoding unit 1900 or 1950, and the sizes of the determined encoding units may not be the same. For example, the size of a predetermined encoding unit 1930b or 1980b among the determined odd number of encoding units 1930a, 1930b, 1930c, 1980a, 1980b, and 1980c is different from the size of other encoding units 1930a, 1930c, . In other words, an encoding unit that can be determined by dividing the current encoding unit 1900 or 1950 may have a plurality of types of sizes, and may be an odd number of encoding units 1930a, 1930b, 1930c, 1980a, 1980b, May have different sizes.
일 실시예에 따라 분할 형태 정보가 홀수개의 블록으로 부호화 단위가 분할되는 것을 나타내는 경우, 영상 복호화 장치(200)는 현재 부호화 단위(1900 또는 1950)에 포함되는 홀수개의 부호화 단위를 결정할 수 있고, 나아가 영상 복호화 장치(200)는 분할하여 생성되는 홀수개의 부호화 단위들 중 적어도 하나의 부호화 단위에 대하여 소정의 제한을 둘 수 있다. 도 19를 참조하면 영상 복호화 장치(200)는 현재 부호화 단위(1900 또는 1950)가 분할되어 생성된 3개의 부호화 단위(1930a, 1930b, 1930c, 1980a, 1980b, 1980c)들 중 중앙에 위치하는 부호화 단위(1930b, 1980b)에 대한 복호화 과정을 다른 부호화 단위(1930a, 1930c, 1980a, 1980c)와 다르게 할 수 있다. 예를 들면, 영상 복호화 장치(200)는 중앙에 위치하는 부호화 단위(1930b, 1980b)에 대하여는 다른 부호화 단위(1930a, 1930c, 1980a, 1980c)와 달리 더 이상 분할되지 않도록 제한하거나, 소정의 횟수만큼만 분할되도록 제한할 수 있다.According to an exemplary embodiment, when the division type information indicates that an encoding unit is divided into an odd number of blocks, the image decoding apparatus 200 can determine an odd number of encoding units included in the current encoding unit 1900 or 1950, The image decoding apparatus 200 may set a predetermined restriction on at least one of the odd number of encoding units generated by division. Referring to FIG. 19, the image decoding apparatus 200 includes an encoding unit 1930a, 1930b, 1930c, 1980a, 1980b, and 1980c generated by dividing a current encoding unit 1900 or 1950, (1930b, 1980b) can be made different from other encoding units (1930a, 1930c, 1980a, 1980c). For example, the image decoding apparatus 200 may restrict the encoding units 1930b and 1980b positioned at the center to be not further divided, or may be limited to a predetermined number of times, differently from other encoding units 1930a, 1930c, 1980a, It can be limited to be divided.
도 20은 일 실시예에 따라 영상 복호화 장치(200)가 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 부호화 단위를 분할하는 과정을 도시한다.FIG. 20 illustrates a process in which the video decoding apparatus 200 divides an encoding unit based on at least one of block type information and division type information according to an embodiment.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 정사각형 형태의 제1 부호화 단위(2000)를 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다. 일 실시예에 따라 분할 형태 정보가 수평 방향으로 제1 부호화 단위(2000)를 분할하는 것을 나타내는 경우, 영상 복호화 장치(200)는 제1 부호화 단위(2000)를 수평 방향으로 분할하여 제2 부호화 단위(2010)를 결정할 수 있다. 일 실시예에 따라 이용되는 제1 부호화 단위, 제2 부호화 단위, 제3 부호화 단위는 부호화 단위 간의 분할 전후 관계를 이해하기 위해 이용된 용어이다. 예를 들면, 제1 부호화 단위를 분할하면 제2 부호화 단위가 결정될 수 있고, 제2 부호화 단위가 분할되면 제3 부호화 단위가 결정될 수 있다. 이하에서는 이용되는 제1 부호화 단위, 제2 부호화 단위 및 제3 부호화 단위의 관계는 상술한 특징에 따르는 것으로 이해될 수 있다. According to an embodiment, the image decoding apparatus 200 may determine to divide or not divide the first coding unit 2000 of a square shape into coding units based on at least one of the block type information and the division type information. According to one embodiment, when the division type information indicates division of the first encoding unit 2000 in the horizontal direction, the image decoding apparatus 200 divides the first encoding unit 2000 in the horizontal direction, (2010) can be determined. The first encoding unit, the second encoding unit, and the third encoding unit used according to an embodiment are terms used to understand the relation before and after the division between encoding units. For example, if the first encoding unit is divided, the second encoding unit can be determined, and if the second encoding unit is divided, the third encoding unit can be determined. Hereinafter, 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.
일 실시예에 따라 영상 복호화 장치(200)는 결정된 제2 부호화 단위(2010)를 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다. 도 20를 참조하면 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(2000)를 분할하여 결정된 비-정사각형의 형태의 제2 부호화 단위(2010)를 적어도 하나의 제3 부호화 단위(2020a, 2020b, 2020c, 2020d 등)로 분할하거나 제2 부호화 단위(2010)를 분할하지 않을 수 있다. 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 획득할 수 있고 영상 복호화 장치(200)는 획득한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(2000)를 분할하여 다양한 형태의 복수개의 제2 부호화 단위(예를 들면, 2010)를 분할할 수 있으며, 제2 부호화 단위(2010)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(2000)가 분할된 방식에 따라 분할될 수 있다. 일 실시예에 따라, 제1 부호화 단위(2000)가 제1 부호화 단위(2000)에 대한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제2 부호화 단위(2010)로 분할된 경우, 제2 부호화 단위(2010) 역시 제2 부호화 단위(2010)에 대한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제3 부호화 단위(예를 들면, 2020a, 2020b, 2020c, 2020d 등)으로 분할될 수 있다. 즉, 부호화 단위는 부호화 단위 각각에 관련된 분할 형태 정보 및 블록 형태 정보 중 적어도 하나에 기초하여 재귀적으로 분할될 수 있다. 따라서 비-정사각형 형태의 부호화 단위에서 정사각형의 부호화 단위가 결정될 수 있고, 이러한 정사각형 형태의 부호화 단위가 재귀적으로 분할되어 비-정사각형 형태의 부호화 단위가 결정될 수도 있다. 도 20을 참조하면, 비-정사각형 형태의 제2 부호화 단위(2010)가 분할되어 결정되는 홀수개의 제3 부호화 단위(2020b, 2020c, 2020d) 중 소정의 부호화 단위(예를 들면, 가운데에 위치하는 부호화 단위 또는 정사각형 형태의 부호화 단위)는 재귀적으로 분할될 수 있다. 일 실시예에 따라 홀수개의 제3 부호화 단위(2020b, 2020c, 2020d) 중 하나인 정사각형 형태의 제3 부호화 단위(2020c)는 수평 방향으로 분할되어 복수개의 제4 부호화 단위로 분할될 수 있다. According to an exemplary embodiment, the image decoding apparatus 200 may determine that the determined second encoding unit 2010 is not divided or divided into encoding units based on at least one of the block type information and the division type information. Referring to FIG. 20, the video decoding apparatus 200 decodes a second coding unit 2010 of a non-square shape determined by dividing a first coding unit 2000 based on at least one of block type information and division type information It may be divided into at least one third encoding unit 2020a, 2020b, 2020c, 2020d, or the like, or the second encoding unit 2010 may not be divided. The image decoding apparatus 200 can acquire at least one of the block type information and the division type information and the image decoding apparatus 200 can acquire at least one of the first encoding unit 2000 (For example, 2010), and the second encoding unit 2010 may divide a plurality of second encoding units (for example, 2010) of various types into a first encoding unit The unit 2000 can be divided according to the divided method. According to an embodiment, when the first encoding unit 2000 is divided into the second encoding units 2010 based on at least one of the block type information and the division type information for the first encoding unit 2000, The coding unit 2010 may be divided into a third coding unit (e.g., 2020a, 2020b, 2020c, 2020d, etc.) based on at least one of block type information and division type information for the second coding unit 2010 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. Therefore, a square encoding unit may be determined in a non-square encoding unit, and a non-square encoding unit may be determined by dividing the square encoding unit recursively. Referring to FIG. 20, among the odd third encoding units 2020b, 2020c, and 2020d in which the non-square second encoding unit 2010 is divided and determined, a predetermined encoding unit (for example, An encoding unit or a square-shaped encoding unit) can be recursively divided. In an exemplary embodiment, the third encoding unit 2020c, which is one of the odd-numbered third encoding units 2020b, 2020c, and 2020d, may be divided in the horizontal direction and divided into a plurality of fourth encoding units.
부호화 단위의 재귀적 분할에 이용될 수 있는 방법에 대하여는 다양한 실시예를 통해 후술하도록 한다.A method which can be used for recursive division of an encoding unit will be described later in various embodiments.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제3 부호화 단위(2020a, 2020b, 2020c, 2020d 등) 각각을 부호화 단위들로 분할하거나 제2 부호화 단위(2010)를 분할하지 않는 것으로 결정할 수 있다. 영상 복호화 장치(200)는 일 실시예에 따라 비-정사각형 형태의 제2 부호화 단위(2010)를 홀수개의 제3 부호화 단위(2020b, 2020c, 2020d)로 분할할 수 있다. 영상 복호화 장치(200)는 홀수개의 제3 부호화 단위(2020b, 2020c, 2020d) 중 소정의 제3 부호화 단위에 대하여 소정의 제한을 둘 수 있다. 예를 들면 영상 복호화 장치(200)는 홀수개의 제3 부호화 단위(2020b, 2020c, 2020d) 중 가운데에 위치하는 부호화 단위(2020c)에 대하여는 더 이상 분할되지 않는 것으로 제한하거나 또는 설정 가능한 횟수로 분할되어야 하는 것으로 제한할 수 있다. 도 20를 참조하면, 영상 복호화 장치(200)는 비-정사각형 형태의 제2 부호화 단위(2010)에 포함되는 홀수개의 제3 부호화 단위(2020b, 2020c, 2020d)들 중 가운데에 위치하는 부호화 단위(2020c)는 더 이상 분할되지 않거나, 소정의 분할 형태로 분할(예를 들면 4개의 부호화 단위로만 분할하거나 제2 부호화 단위(2010)가 분할된 형태에 대응하는 형태로 분할)되는 것으로 제한하거나, 소정의 횟수로만 분할(예를 들면 n회만 분할, n>0)하는 것으로 제한할 수 있다. 다만 가운데에 위치한 부호화 단위(2020c)에 대한 상기 제한은 단순한 실시예들에 불과하므로 상술한 실시예들로 제한되어 해석되어서는 안되고, 가운데에 위치한 부호화 단위(2020c)가 다른 부호화 단위(2020b, 2020d)와 다르게 복호화 될 수 있는 다양한 제한들을 포함하는 것으로 해석되어야 한다.According to an embodiment, the image decoding apparatus 200 may divide each of the third encoding units 2020a, 2020b, 2020c, and 2020d into encoding units based on at least one of block type information and division type information, It can be determined that the unit 2010 is not divided. The image decoding apparatus 200 may divide the non-square second encoding unit 2010 into odd third encoding units 2020b, 2020c, and 2020d according to an embodiment. The image decoding apparatus 200 may set a predetermined restriction on a predetermined third encoding unit among odd numbered third encoding units 2020b, 2020c, and 2020d. For example, the image decoding apparatus 200 may limit the encoding unit 2020c located in the middle among the odd numbered third encoding units 2020b, 2020c, and 2020d to no longer be divided or be divided into a set number of times . Referring to FIG. 20, the image decoding apparatus 200 includes an odd number of third encoding units 2020b, 2020c, and 2020d included in a non-square second encoding unit 2010, 2020c are not further divided or limited to being divided into a predetermined division form (for example, divided into only four coding units or divided into a form corresponding to a form in which the second coding unit 2010 is divided) (For example, dividing only n times, n > 0). The above restriction on the coding unit 2020c positioned in the middle is merely an example and should not be construed to be limited to the above embodiments and the coding unit 2020c positioned in the middle is not limited to the other coding units 2020b and 2020d Quot;), < / RTI > which can be decoded differently.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위를 분할하기 위해 이용되는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 현재 부호화 단위 내의 소정의 위치에서 획득할 수 있다. According to an exemplary embodiment, 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.
도 21은 일 실시예에 따라 영상 복호화 장치(200)가 홀수개의 부호화 단위들 중 소정의 부호화 단위를 결정하기 위한 방법을 도시한다. 도 21을 참조하면, 현재 부호화 단위(2100)의 블록 형태 정보 및 분할 형태 정보 중 적어도 하나는 현재 부호화 단위(2100)에 포함되는 복수개의 샘플 중 소정 위치의 샘플(예를 들면, 가운데에 위치하는 샘플(2140))에서 획득될 수 있다. 다만 이러한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나가 획득될 수 있는 현재 부호화 단위(2100) 내의 소정 위치가 도 21에서 도시하는 가운데 위치로 한정하여 해석되어서는 안되고, 소정 위치에는 현재 부호화 단위(2100)내에 포함될 수 있는 다양한 위치(예를 들면, 최상단, 최하단, 좌측, 우측, 좌측상단, 좌측하단, 우측상단 또는 우측하단 등)가 포함될 수 있는 것으로 해석되어야 한다. 영상 복호화 장치(200)는 소정 위치로부터 획득되는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 획득하여 현재 부호화 단위를 다양한 형태 및 크기의 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다.FIG. 21 illustrates a method by which the image decoding apparatus 200 determines a predetermined encoding unit among odd number of encoding units according to an embodiment. Referring to FIG. 21, at least one of the block type information and the division type information of the current encoding unit 2100 is a sample of a predetermined position among a plurality of samples included in the current encoding unit 2100 (for example, Sample 2140). However, the predetermined position in the current coding unit 2100 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. 21, and the current coding unit 2100 (E.g., top, bottom, left, right, top left, bottom left, top right or bottom right, etc.) 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.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위가 소정의 개수의 부호화 단위들로 분할된 경우 그 중 하나의 부호화 단위를 선택할 수 있다. 복수개의 부호화 단위들 중 하나를 선택하기 위한 방법은 다양할 수 있으며, 이러한 방법들에 대한 설명은 이하의 다양한 실시예를 통해 후술하도록 한다.According to one embodiment, when the current encoding unit is divided into a predetermined number of encoding units, 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.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위를 복수개의 부호화 단위들로 분할하고, 소정 위치의 부호화 단위를 결정할 수 있다. According to an exemplary embodiment, the image decoding apparatus 200 may divide a current encoding unit into a plurality of encoding units and determine a predetermined encoding unit.
도 21은 일 실시예에 따라 영상 복호화 장치(200)가 홀수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위한 방법을 도시한다.FIG. 21 shows 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.
일 실시예에 따라 영상 복호화 장치(200)는 홀수개의 부호화 단위들 중 가운데에 위치하는 부호화 단위를 결정하기 위하여 홀수개의 부호화 단위들 각각의 위치를 나타내는 정보를 이용할 수 있다. 도 21을 참조하면, 영상 복호화 장치(200)는 현재 부호화 단위(2100)를 분할하여 홀수개의 부호화 단위들(2120a, 2120b, 2120c)을 결정할 수 있다. 영상 복호화 장치(200)는 홀수개의 부호화 단위들(2120a, 2120b, 2120c)의 위치에 대한 정보를 이용하여 가운데 부호화 단위(2120b)를 결정할 수 있다. 예를 들면 영상 복호화 장치(200)는 부호화 단위들(2120a, 2120b, 2120c)에 포함되는 소정의 샘플의 위치를 나타내는 정보에 기초하여 부호화 단위들(2120a, 2120b, 2120c)의 위치를 결정함으로써 가운데에 위치하는 부호화 단위(2120b)를 결정할 수 있다. 구체적으로, 영상 복호화 장치(200)는 부호화 단위들(2120a, 2120b, 2120c)의 좌측 상단의 샘플(2130a, 2130b, 2130c)의 위치를 나타내는 정보에 기초하여 부호화 단위(2120a, 2120b, 2120c)의 위치를 결정함으로써 가운데에 위치하는 부호화 단위(2120b)를 결정할 수 있다. According to an exemplary 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. Referring to FIG. 21, the image decoding apparatus 200 may divide the current encoding unit 2100 to determine odd number of encoding units 2120a, 2120b, and 2120c. The image decoding apparatus 200 can determine the center encoding unit 2120b by using information on the positions of the odd number of encoding units 2120a, 2120b, and 2120c. For example, the image decoding apparatus 200 determines the positions of the encoding units 2120a, 2120b, and 2120c based on information indicating the positions of predetermined samples included in the encoding units 2120a, 2120b, and 2120c, The coding unit 2120b located in the coding unit 2120 can be determined. Specifically, the video decoding apparatus 200 determines the positions of the coding units 2120a, 2120b, and 2120c based on information indicating the positions of the upper left samples 2130a, 2130b, and 2130c of the coding units 2120a, By determining the position, the coding unit 2120b located in the center can be determined.
일 실시예에 따라 부호화 단위(2120a, 2120b, 2120c)에 각각 포함되는 좌측 상단의 샘플(2130a, 2130b, 2130c)의 위치를 나타내는 정보는 부호화 단위(2120a, 2120b, 2120c)의 픽처 내에서의 위치 또는 좌표에 대한 정보를 포함할 수 있다. 일 실시예에 따라 부호화 단위(2120a, 2120b, 2120c)에 각각 포함되는 좌측 상단의 샘플(2130a, 2130b, 2130c)의 위치를 나타내는 정보는 현재 부호화 단위(2100)에 포함되는 부호화단위(2120a, 2120b, 2120c)들의 너비 또는 높이를 나타내는 정보를 포함할 수 있고, 이러한 너비 또는 높이는 부호화 단위(2120a, 2120b, 2120c)의 픽처 내에서의 좌표 간의 차이를 나타내는 정보에 해당할 수 있다. 즉, 영상 복호화 장치(200)는 부호화 단위(2120a, 2120b, 2120c)의 픽처 내에서의 위치 또는 좌표에 대한 정보를 직접이용하거나 좌표간의 차이값에 대응하는 부호화 단위의 너비 또는 높이에 대한 정보를 이용함으로써 가운데에 위치하는 부호화 단위(2120b)를 결정할 수 있다. Information indicating the positions of the upper left samples 2130a, 2130b, and 2130c included in the coding units 2120a, 2120b, and 2120c according to an exemplary embodiment is a position in the picture of the coding units 2120a, 2120b, and 2120c Or information about the coordinates. Information indicating the positions of the upper left samples 2130a, 2130b, and 2130c included in the coding units 2120a, 2120b, and 2120c according to one embodiment is stored in the coding units 2120a and 2120b included in the current coding unit 2100 And 2120c, and the width or height may correspond to information indicating a difference between coordinates of the encoding units 2120a, 2120b, and 2120c in a picture. That is, the image decoding apparatus 200 may directly use the information on the positions or coordinates of the coding units 2120a, 2120b, and 2120c in the pictures or the information on the width or height of the coding units corresponding to the difference between the coordinates The encoding unit 2120b located in the center can be determined.
일 실시예에 따라, 상단 부호화 단위(2120a)의 좌측 상단의 샘플(2130a)의 위치를 나타내는 정보는 (xa, ya) 좌표를 나타낼 수 있고, 가운데 부호화 단위(2120b)의 좌측 상단의 샘플(2130b)의 위치를 나타내는 정보는 (xb, yb) 좌표를 나타낼 수 있고, 하단 부호화 단위(2120c)의 좌측 상단의 샘플(2130c)의 위치를 나타내는 정보는 (xc, yc) 좌표를 나타낼 수 있다. 영상 복호화 장치(200)는 부호화 단위(2120a, 2120b, 2120c)에 각각 포함되는 좌측 상단의 샘플(2130a, 2130b, 2130c)의 좌표를 이용하여 가운데 부호화 단위(2120b)를 결정할 수 있다. 예를 들면, 좌측 상단의 샘플(2130a, 2130b, 2130c)의 좌표를 오름차순 또는 내림차순으로 정렬하였을 때, 가운데에 위치하는 샘플(2130b)의 좌표인 (xb, yb)를 포함하는 부호화 단위(2120b)를 현재 부호화 단위(2100)가 분할되어 결정된 부호화 단위(2120a, 2120b, 2120c) 중 가운데에 위치하는 부호화 단위로 결정할 수 있다. 다만 좌측 상단의 샘플(2130a, 2130b, 2130c)의 위치를 나타내는 좌표는 픽처 내에서의 절대적인 위치를 나타내는 좌표를 나타낼 수 있고, 나아가 상단 부호화 단위(2120a)의 좌측 상단의 샘플(2130a)의 위치를 기준으로, 가운데 부호화 단위(2120b)의 좌측 상단의 샘플(2130b)의 상대적 위치를 나타내는 정보인 (dxb, dyb)좌표, 하단 부호화 단위(2120c)의 좌측 상단의 샘플(2130c)의 상대적 위치를 나타내는 정보인 (dxc, dyc)좌표를 이용할 수도 있다. 또한 부호화 단위에 포함되는 샘플의 위치를 나타내는 정보로서 해당 샘플의 좌표를 이용함으로써 소정 위치의 부호화 단위를 결정하는 방법이 상술한 방법으로 한정하여 해석되어서는 안되고, 샘플의 좌표를 이용할 수 있는 다양한 산술적 방법으로 해석되어야 한다.The information indicating the position of the upper left sample 2130a of the upper coding unit 2120a may indicate the coordinates (xa, ya) and the upper left sample 2130b of the middle coding unit 2120b May represent the coordinates (xb, yb), and the information indicating the position of the upper left sample 2130c of the lower coding unit 2120c may indicate the coordinates (xc, yc). The image decoding apparatus 200 can determine the center encoding unit 2120b by using the coordinates of the upper left samples 2130a, 2130b and 2130c included in the encoding units 2120a, 2120b and 2120c. For example, when the coordinates of the upper left samples 2130a, 2130b and 2130c are sorted in ascending or descending order, the coding unit 2120b including (xb, yb) coordinates of the sample 2130b positioned at the center, Can be determined as a coding unit located in the middle of the coding units 2120a, 2120b, and 2120c determined by dividing the current coding unit 2100. [ However, the coordinates indicating the positions of the upper left samples 2130a, 2130b, and 2130c may indicate the coordinates indicating the absolute position in the picture, and the position of the upper left sample 2130a of the upper coding unit 2120a may be (Dxb, dyb) coordinates indicating the relative position of the upper left sample 2130b of the middle coding unit 2120b and the relative position of the upper left sample 2130c of the lower coding unit 2120c Information dyn (dxc, dyc) coordinates may also be used. Also, 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.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위(2100)를 복수개의 부호화 단위(2120a, 2120b, 2120c)로 분할할 수 있고, 부호화 단위(2120a, 2120b, 2120c)들 중 소정의 기준에 따라 부호화 단위를 선택할 수 있다. 예를 들면, 영상 복호화 장치(200)는 부호화 단위(2120a, 2120b, 2120c) 중 크기가 다른 부호화 단위(2120b)를 선택할 수 있다.According to an embodiment, the image decoding apparatus 200 may divide the current encoding unit 2100 into a plurality of encoding units 2120a, 2120b, and 2120c, and may encode a predetermined reference among the encoding units 2120a, 2120b, and 2120c The encoding unit can be selected. For example, the image decoding apparatus 200 can select an encoding unit 2120b having a different size from among the encoding units 2120a, 2120b, and 2120c.
일 실시예에 따라 영상 복호화 장치(200)는 상단 부호화 단위(2120a)의 좌측 상단의 샘플(2130a)의 위치를 나타내는 정보인 (xa, ya) 좌표, 가운데 부호화 단위(2120b)의 좌측 상단의 샘플(2130b)의 위치를 나타내는 정보인 (xb, yb) 좌표, 하단 부호화 단위(2120c)의 좌측 상단의 샘플(2130c)의 위치를 나타내는 정보인 (xc, yc) 좌표를 이용하여 부호화 단위(2120a, 2120b, 2120c) 각각의 너비 또는 높이를 결정할 수 있다. 영상 복호화 장치(200)는 부호화 단위(2120a, 2120b, 2120c)의 위치를 나타내는 좌표인 (xa, ya), (xb, yb), (xc, yc)를 이용하여 부호화 단위(2120a, 2120b, 2120c) 각각의 크기를 결정할 수 있다. According to an embodiment, the image decoding apparatus 200 may include a (xa, ya) coordinate which is information indicating the position of the upper left sample 2130a of the upper encoding unit 2120a, a (Xc, yc) coordinates, which is information indicating the position of the lower-stage coding unit 2130b and the position of the upper-left sample 2130c of the lower- stage coding unit 2120c, 2120b, and 2120c, respectively. The image decoding apparatus 200 encodes the encoded data in units of encoding units 2120a, 2120b, and 2120c using coordinates (xa, ya), (xb, yb), (xc, yc) indicating the positions of the encoding units 2120a, ) Can be determined.
일 실시예에 따라, 영상 복호화 장치(200)는 상단 부호화 단위(2120a)의 너비를 xb-xa로 결정할 수 있고 높이를 yb-ya로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 가운데 부호화 단위(2120b)의 너비를 xc-xb로 결정할 수 있고 높이를 yc-yb로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 하단 부호화 단위의 너비 또는 높이는 현재 부호화 단위의 너비 또는 높이와 상단 부호화 단위(2120a) 및 가운데 부호화 단위(2120b)의 너비 및 높이를 이용하여 결정할 수 있다. 영상 복호화 장치(200)는 결정된 부호화 단위(2120a, 2120b, 2120c)의 너비 및 높이에 기초하여 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정할 수 있다. 도 21을 참조하면, 영상 복호화 장치(200)는 상단 부호화 단위(2120a) 및 하단 부호화 단위(2120c)의 크기와 다른 크기를 가지는 가운데 부호화 단위(2120b)를 소정 위치의 부호화 단위로 결정할 수 있다. 다만 상술한 영상 복호화 장치(200)가 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정하는 과정은 샘플 좌표에 기초하여 결정되는 부호화 단위의 크기를 이용하여 소정 위치의 부호화 단위를 결정하는 일 실시예에 불과하므로, 소정의 샘플 좌표에 따라 결정되는 부호화 단위의 크기를 비교하여 소정 위치의 부호화 단위를 결정하는 다양한 과정이 이용될 수 있다. According to an embodiment, the image decoding apparatus 200 can determine the width of the upper encoding unit 2120a 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 2120b as xc-xb and the height as yc-yb. The image decoding apparatus 200 may determine the width or height of the lower encoding unit using the width or height of the current encoding unit and the width and height of the upper encoding unit 2120a and the middle encoding unit 2120b . The image decoding apparatus 200 can determine an encoding unit having a different size from other encoding units based on the width and height of the determined encoding units 2120a, 2120b, and 2120c. Referring to FIG. 21, the image decoding apparatus 200 may determine a coding unit 2120b as a coding unit at a predetermined position while having a size different from that of the upper coding unit 2120a and the lower coding unit 2120c. However, 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.
다만 부호화 단위의 위치를 결정하기 위하여 고려하는 샘플의 위치는 상술한 좌측 상단으로 한정하여 해석되어서는 안되고 부호화 단위에 포함되는 임의의 샘플의 위치에 대한 정보가 이용될 수 있는 것으로 해석될 수 있다. However, the position of the sample to be considered for determining the position of the coding unit should not be interpreted as being limited to the left upper end, and information about the position of any sample included in the coding unit can be interpreted as being available.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위의 형태를 고려하여, 현재 부호화 단위가 분할되어 결정되는 홀수개의 부호화 단위들 중 소정 위치의 부호화 단위를 선택할 수 있다. 예를 들면, 현재 부호화 단위가 너비가 높이보다 긴 비-정사각형 형태라면 영상 복호화 장치(200)는 수평 방향에 따라 소정 위치의 부호화 단위를 결정할 수 있다. 즉, 영상 복호화 장치(200)는 수평 방향으로 위치를 달리 하는 부호화 단위들 중 하나를 결정하여 해당 부호화 단위에 대한 제한을 둘 수 있다. 현재 부호화 단위가 높이가 너비보다 긴 비-정사각형 형태라면 영상 복호화 장치(200)는 수직 방향에 따라 소정 위치의 부호화 단위를 결정할 수 있다. 즉, 영상 복호화 장치(200)는 수직 방향으로 위치를 달리 하는 부호화 단위들 중 하나를 결정하여 해당 부호화 단위에 대한 제한을 둘 수 있다. According to an exemplary embodiment, 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.
일 실시예에 따라 영상 복호화 장치(200)는 짝수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여 짝수개의 부호화 단위들 각각의 위치를 나타내는 정보를 이용할 수 있다. 영상 복호화 장치(200)는 현재 부호화 단위를 분할하여 짝수개의 부호화 단위들을 결정할 수 있고 짝수개의 부호화 단위들의 위치에 대한 정보를 이용하여 소정 위치의 부호화 단위를 결정할 수 있다. 이에 대한 구체적인 과정은 도 21에서 상술한 홀수개의 부호화 단위들 중 소정 위치(예를 들면, 가운데 위치)의 부호화 단위를 결정하는 과정에 대응하는 과정일 수 있으므로 생략하도록 한다.According to an exemplary embodiment, 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 above-mentioned odd number of coding units.
일 실시예에 따라, 비-정사각형 형태의 현재 부호화 단위를 복수개의 부호화 단위로 분할한 경우, 복수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여 분할 과정에서 소정 위치의 부호화 단위에 대한 소정의 정보를 이용할 수 있다. 예를 들면 영상 복호화 장치(200)는 현재 부호화 단위가 복수개로 분할된 부호화 단위들 중 가운데에 위치하는 부호화 단위를 결정하기 위하여 분할 과정에서 가운데 부호화 단위에 포함된 샘플에 저장된 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 이용할 수 있다. According to one embodiment, when a non-square current encoding unit is divided into a plurality of encoding units, in order to determine an encoding unit at a predetermined position among a plurality of encoding units, Can be used. For example, in order to determine an encoding unit located in the middle among the plurality of encoding units in which the current encoding unit is divided, 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.
도 21을 참조하면 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 현재 부호화 단위(2100)를 복수개의 부호화 단위들(2120a, 2120b, 2120c)로 분할할 수 있으며, 복수개의 부호화 단위들(2120a, 2120b, 2120c) 중 가운데에 위치하는 부호화 단위(2120b)를 결정할 수 있다. 나아가 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나가 획득되는 위치를 고려하여, 가운데에 위치하는 부호화 단위(2120b)를 결정할 수 있다. 즉, 현재 부호화 단위(2100)의 블록 형태 정보 및 분할 형태 정보 중 적어도 하나는 현재 부호화 단위(2100)의 가운데에 위치하는 샘플(2140)에서 획득될 수 있으며, 상기 블록 형태 정보 및 상기 분할 형태 정보 중 적어도 하나에 기초하여 현재 부호화 단위(2100)가 복수개의 부호화 단위들(2120a, 2120b, 2120c)로 분할된 경우 상기 샘플(2140)을 포함하는 부호화 단위(2120b)를 가운데에 위치하는 부호화 단위로 결정할 수 있다. 다만 가운데에 위치하는 부호화 단위로 결정하기 위해 이용되는 정보가 블록 형태 정보 및 분할 형태 정보 중 적어도 하나로 한정하여 해석되어서는 안되고, 다양한 종류의 정보가 가운데에 위치하는 부호화 단위를 결정하는 과정에서 이용될 수 있다.Referring to FIG. 21, the image decoding apparatus 200 may divide the current encoding unit 2100 into a plurality of encoding units 2120a, 2120b, and 2120c based on at least one of block type information and division type information, It is possible to determine the encoding unit 2120b located in the middle of the plurality of encoding units 2120a, 2120b, and 2120c. Furthermore, the image decoding apparatus 200 can determine the coding unit 2120b 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. That is, at least one of the block type information and the division type information of the current encoding unit 2100 can be acquired in the sample 2140 located in the middle of the current encoding unit 2100, and the block type information and the division type information If the current encoding unit 2100 is divided into a plurality of encoding units 2120a, 2120b, and 2120c based on at least one of the encoding units 2120a to 2120c, You can decide. However, 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 .
일 실시예에 따라 소정 위치의 부호화 단위를 식별하기 위한 소정의 정보는, 결정하려는 부호화 단위에 포함되는 소정의 샘플에서 획득될 수 있다. 도 21을 참조하면, 영상 복호화 장치(200)는 현재 부호화 단위(2100)가 분할되어 결정된 복수개의 부호화 단위들(2120a, 2120b, 2120c) 중 소정 위치의 부호화 단위(예를 들면, 복수개로 분할된 부호화 단위 중 가운데에 위치하는 부호화 단위)를 결정하기 위하여 현재 부호화 단위(2100) 내의 소정 위치의 샘플(예를 들면, 현재 부호화 단위(2100)의 가운데에 위치하는 샘플)에서 획득되는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 이용할 수 있다. 즉, 영상 복호화 장치(200)는 현재 부호화 단위(2100)의 블록 블록 형태를 고려하여 상기 소정 위치의 샘플을 결정할 수 있고, 영상 복호화 장치(200)는 현재 부호화 단위(2100)가 분할되어 결정되는 복수개의 부호화 단위(2120a, 2120b, 2120c)들 중, 소정의 정보(예를 들면, 블록 형태 정보 및 분할 형태 정보 중 적어도 하나)가 획득될 수 있는 샘플이 포함된 부호화 단위(2120b)를 결정하여 소정의 제한을 둘 수 있다. 도 21을 참조하면 일 실시예에 따라 영상 복호화 장치(200)는 소정의 정보가 획득될 수 있는 샘플로서 현재 부호화 단위(2100)의 가운데에 위치하는 샘플(2140)을 결정할 수 있고, 영상 복호화 장치(200)는 이러한 샘플(2140)이 포함되는 부호화 단위(2120b)를 복호화 과정에서의 소정의 제한을 둘 수 있다. 다만 소정의 정보가 획득될 수 있는 샘플의 위치는 상술한 위치로 한정하여 해석되어서는 안되고, 제한을 두기 위해 결정하려는 부호화 단위(2120b)에 포함되는 임의의 위치의 샘플들로 해석될 수 있다.According to an embodiment, predetermined information for identifying a coding unit at a predetermined position may be obtained from a predetermined sample included in a coding unit to be determined. Referring to FIG. 21, the image decoding apparatus 200 includes a plurality of encoding units 2120a, 2120b, and 2120c, which are determined by dividing the current encoding unit 2100, (For example, a sample located at the center of the current encoding unit 2100) at a predetermined position in the current encoding unit 2100 to determine the encoding unit of the current encoding unit 2100, And at least one of division type information. That is, the video decoding apparatus 200 can determine the sample at the predetermined position in consideration of the block block shape of the current encoding unit 2100, and the video decoding apparatus 200 determines that the current encoding unit 2100 is divided An encoding unit 2120b 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 encoding units 2120a, 2120b, and 2120c A predetermined limit can be set. Referring to FIG. 21, the image decoding apparatus 200 may determine a sample 2140 located in the center of the current encoding unit 2100 as a sample from which predetermined information can be obtained, The coding unit 200 may limit the coding unit 2120b including the sample 2140 to a predetermined limit in the decoding process. However, the position of the sample from which predetermined information can be obtained can not be construed to be limited to the above-mentioned position, but can be interpreted as samples at arbitrary positions included in the encoding unit 2120b to be determined for limiting.
일 실시예에 따라 소정의 정보가 획득될 수 있는 샘플의 위치는 현재 부호화 단위(2100)의 형태에 따라 결정될 수 있다. 일 실시예에 따라 블록 형태 정보는 현재 부호화 단위의 형태가 정사각형인지 또는 비-정사각형인지 여부를 결정할 수 있고, 형태에 따라 소정의 정보가 획득될 수 있는 샘플의 위치를 결정할 수 있다. 예를 들면, 영상 복호화 장치(200)는 현재 부호화 단위의 너비에 대한 정보 및 높이에 대한 정보 중 적어도 하나를 이용하여 현재 부호화 단위의 너비 및 높이 중 적어도 하나를 반으로 분할하는 경계 상에 위치하는 샘플을 소정의 정보가 획득될 수 있는 샘플로 결정할 수 있다. 또다른 예를 들면, 영상 복호화 장치(200)는 현재 부호화 단위에 관련된 블록 형태 정보가 비-정사각형 형태임을 나타내는 경우, 현재 부호화 단위의 긴 변을 반으로 분할하는 경계에 인접하는 샘플 중 하나를 소정의 정보가 획득될 수 있는 샘플로 결정할 수 있다. The position of a sample from which predetermined information can be obtained according to an embodiment may be determined according to the type of the current encoding unit 2100. According to one embodiment, the block type information can determine whether the current encoding unit is a square or a non-square, and determine the position of a sample from which predetermined information can be obtained according to the shape. For example, 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. For example, when the block type information related to the current encoding unit is a non-square type, 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 >
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위를 복수개의 부호화 단위로 분할한 경우, 복수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여, 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 이용할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 부호화 단위에 포함된 소정 위치의 샘플에서 획득할 수 있고, 영상 복호화 장치(200)는 현재 부호화 단위가 분할되어 생성된 복수개의 부호화 단위들을 복수개의 부호화 단위 각각에 포함된 소정 위치의 샘플로부터 획득되는 분할 형태 정보 및 블록 형태 정보 중 적어도 하나를 이용하여 분할할 수 있다. 즉, 부호화 단위는 부호화 단위 각각에 포함된 소정 위치의 샘플에서 획득되는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 이용하여 재귀적으로 분할될 수 있다. 부호화 단위의 재귀적 분할 과정에 대하여는 도 20를 통해 상술하였으므로 자세한 설명은 생략하도록 한다. According to an exemplary embodiment, when the current encoding unit is divided into a plurality of encoding units, the image decoding apparatus 200 may determine at least one of the block type information and the division type information One can be used. According to an embodiment, 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. That is, 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 is described in detail with reference to FIG. 20, and a detailed description thereof will be omitted.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정할 수 있고, 이러한 적어도 하나의 부호화 단위가 복호화되는 순서를 소정의 블록(예를 들면, 현재 부호화 단위)에 따라 결정할 수 있다. According to an exemplary embodiment, 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 >
도 22는 일 실시예에 따라 영상 복호화 장치(200)가 현재 부호화 단위를 분할하여 복수개의 부호화 단위들을 결정하는 경우, 복수개의 부호화 단위들이 처리되는 순서를 도시한다.FIG. 22 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.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보에 따라 제1 부호화 단위(2200)를 수직 방향으로 분할하여 제2 부호화 단위(2210a, 2210b)를 결정하거나 제1 부호화 단위(2200)를 수평 방향으로 분할하여 제2 부호화 단위(2230a, 2230b)를 결정하거나 제1 부호화 단위(2200)를 수직 방향 및 수평 방향으로 분할하여 제2 부호화 단위(2250a, 2250b, 2250c, 2250d)를 결정할 수 있다. According to one embodiment, the image decoding apparatus 200 may divide the first encoding unit 2200 in the vertical direction according to the block type information and the division type information to determine the second encoding units 2210a and 2210b, 2250b, 2250c, 2250d by dividing the first encoding unit 2200 in the horizontal direction and the second encoding units 2230a, 2230b or dividing the first encoding unit 2200 in the vertical direction and the horizontal direction, Can be determined.
도 22를 참조하면, 영상 복호화 장치(200)는 제1 부호화 단위(2200)를 수직 방향으로 분할하여 결정된 제2 부호화 단위(2210a, 2210b)를 수평 방향(2210c)으로 처리되도록 순서를 결정할 수 있다. 영상 복호화 장치(200)는 제1 부호화 단위(2200)를 수평 방향으로 분할하여 결정된 제2 부호화 단위(2230a, 2230b)의 처리 순서를 수직 방향(2230c)으로 결정할 수 있다. 영상 복호화 장치(200)는 제1 부호화 단위(2200)를 수직 방향 및 수평 방향으로 분할하여 결정된 제2 부호화 단위(2250a, 2250b, 2250c, 2250d)를 하나의 행에 위치하는 부호화 단위들이 처리된 후 다음 행에 위치하는 부호화 단위들이 처리되는 소정의 순서(예를 들면, 래스터 스캔 순서((raster scan order) 또는 z 스캔 순서(z scan order)(2250e) 등)에 따라 결정할 수 있다. 22, the image decoding apparatus 200 may determine the order in which the second encoding units 2210a and 2210b determined by dividing the first encoding unit 2200 in the vertical direction are processed in the horizontal direction 2210c . The image decoding apparatus 200 may determine the processing order of the second encoding units 2230a and 2230b determined by dividing the first encoding unit 2200 in the horizontal direction as the vertical direction 2230c. The image decoding apparatus 200 processes the encoding units located in one row of the second encoding units 2250a, 2250b, 2250c, and 2250d determined by dividing the first encoding unit 2200 in the vertical direction and the horizontal direction (For example, a raster scan order or a z scan order 2250e) in which the encoding units located in the next row are processed.
일 실시예에 따라 영상 복호화 장치(200)는 부호화 단위들을 재귀적으로 분할할 수 있다. 도 22을 참조하면, 영상 복호화 장치(200)는 제1 부호화 단위(2200)를 분할하여 복수개의 부호화 단위들(2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, 2250d)을 결정할 수 있고, 결정된 복수개의 부호화 단위들(2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, 2250d) 각각을 재귀적으로 분할할 수 있다. 복수개의 부호화 단위들(2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, 2250d)을 분할하는 방법은 제1 부호화 단위(2200)를 분할하는 방법에 대응하는 방법이 될 수 있다. 이에 따라 복수개의 부호화 단위들(2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, 2250d)은 각각 독립적으로 복수개의 부호화 단위들로 분할될 수 있다. 도 22를 참조하면 영상 복호화 장치(200)는 제1 부호화 단위(2200)를 수직 방향으로 분할하여 제2 부호화 단위(2210a, 2210b)를 결정할 수 있고, 나아가 제2 부호화 단위(2210a, 2210b) 각각을 독립적으로 분할하거나 분할하지 않는 것으로 결정할 수 있다. According to an exemplary embodiment, the image decoding apparatus 200 may recursively divide encoding units. 22, the image decoding apparatus 200 may determine a plurality of encoding units 2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, and 2250d by dividing the first encoding unit 2200, It is possible to recursively divide each of the determined plurality of encoding units 2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, and 2250d. The method of dividing the plurality of encoding units 2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, and 2250d may be a method corresponding to the method of dividing the first encoding unit 2200. [ Accordingly, the plurality of encoding units 2210a, 2210b, 2230a, 2230b, 2250a, 2250b, 2250c, and 2250d may be independently divided into a plurality of encoding units. 22, the image decoding apparatus 200 may determine the second encoding units 2210a and 2210b by dividing the first encoding unit 2200 in the vertical direction, and may further determine the second encoding units 2210a and 2210b Can be determined not to divide or separate independently.
일 실시예에 따라 영상 복호화 장치(200)는 좌측의 제2 부호화 단위(2210a)를 수평 방향으로 분할하여 제3 부호화 단위(2220a, 2220b)로 분할할 수 있고, 우측의 제2 부호화 단위(2210b)는 분할하지 않을 수 있다. According to an embodiment, the image decoding apparatus 200 may divide the left second encoding unit 2210a in the horizontal direction into third encoding units 2220a and 2220b, and the second encoding unit 2210b ) May not be divided.
일 실시예에 따라 부호화 단위들의 처리 순서는 부호화 단위의 분할 과정에 기초하여 결정될 수 있다. 다시 말해, 분할된 부호화 단위들의 처리 순서는 분할되기 직전의 부호화 단위들의 처리 순서에 기초하여 결정될 수 있다. 영상 복호화 장치(200)는 좌측의 제2 부호화 단위(2210a)가 분할되어 결정된 제3 부호화 단위(2220a, 2220b)가 처리되는 순서를 우측의 제2 부호화 단위(2210b)와 독립적으로 결정할 수 있다. 좌측의 제2 부호화 단위(2210a)가 수평 방향으로 분할되어 제3 부호화 단위(2220a, 2220b)가 결정되었으므로 제3 부호화 단위(2220a, 2220b)는 수직 방향(2220c)으로 처리될 수 있다. 또한 좌측의 제2 부호화 단위(2210a) 및 우측의 제2 부호화 단위(2210b)가 처리되는 순서는 수평 방향(2210c)에 해당하므로, 좌측의 제2 부호화 단위(2210a)에 포함되는 제3 부호화 단위(2220a, 2220b)가 수직 방향(2220c)으로 처리된 후에 우측 부호화 단위(2210b)가 처리될 수 있다. 상술한 내용은 부호화 단위들이 각각 분할 전의 부호화 단위에 따라 처리 순서가 결정되는 과정을 설명하기 위한 것이므로, 상술한 실시예에 한정하여 해석되어서는 안되고, 다양한 형태로 분할되어 결정되는 부호화 단위들이 소정의 순서에 따라 독립적으로 처리될 수 있는 다양한 방법으로 이용되는 것으로 해석되어야 한다.According to an embodiment, the processing order of the encoding units may be determined based on the division process of the encoding units. In other words, the processing order of the divided coding units can be determined based on the processing order of the coding units immediately before being divided. The image decoding apparatus 200 can determine the order in which the third encoding units 2220a and 2220b determined by dividing the second encoding unit 2210 on the left side are processed independently of the second encoding unit 2210b on the right side. The third encoding units 2220a and 2220b may be processed in the vertical direction 2220c since the second encoding units 2210a on the left side are divided in the horizontal direction and the third encoding units 2220a and 2220b are determined. Since the order in which the left second encoding unit 2210a and the right second encoding unit 2210b are processed corresponds to the horizontal direction 2210c, the third encoding unit 2210a included in the left second encoding unit 2210a, The right encoding unit 2210b may be processed after the frames 2220a and 2220b are processed in the vertical direction 2220c. 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.
도 23은 일 실시예에 따라 영상 복호화 장치(200)가 소정의 순서로 부호화 단위가 처리될 수 없는 경우, 현재 부호화 단위가 홀수개의 부호화 단위로 분할되는 것임을 결정하는 과정을 도시한다.23 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.
일 실시예에 따라 영상 복호화 장치(200)는 획득된 블록 형태 정보 및 분할 형태 정보에 기초하여 현재 부호화 단위가 홀수개의 부호화 단위들로 분할되는 것을 결정할 수 있다. 도 23을 참조하면 정사각형 형태의 제1 부호화 단위(2300)가 비-정사각형 형태의 제2 부호화 단위(2310a, 2310b)로 분할될 수 있고, 제2 부호화 단위(2310a, 2310b)는 각각 독립적으로 제3 부호화 단위(2320a, 2320b, 2320c, 2320d, 2320e)로 분할될 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 제2 부호화 단위 중 좌측 부호화 단위(2310a)는 수평 방향으로 분할하여 복수개의 제3 부호화 단위(2320a, 2320b)를 결정할 수 있고, 우측 부호화 단위(2310b)는 홀수개의 제3 부호화 단위(2320c, 2320d, 2320e)로 분할할 수 있다. 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. Referring to FIG. 23, the first encoding unit 2300 in the form of a square may be divided into second encoding units 2310a and 2310b in a non-square form, and the second encoding units 2310a and 2310b may be independently 3 encoding units 2320a, 2320b, 2320c, 2320d, and 2320e. According to an embodiment, the image decoding apparatus 200 may determine a plurality of third encoding units 2320a and 2320b by dividing the left encoding unit 2310a of the second encoding unit in the horizontal direction, and the right encoding unit 2310b Can be divided into an odd number of third encoding units 2320c, 2320d, and 2320e.
일 실시예에 따라 영상 복호화 장치(200)는 제3 부호화 단위들(2320a, 2320b, 2320c, 2320d, 2320e)이 소정의 순서로 처리될 수 있는지 여부를 판단하여 홀수개로 분할된 부호화 단위가 존재하는지를 결정할 수 있다. 도 23를 참조하면, 영상 복호화 장치(200)는 제1 부호화 단위(2300)를 재귀적으로 분할하여 제3 부호화 단위(2320a, 2320b, 2320c, 2320d, 2320e)를 결정할 수 있다. 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여, 제1 부호화 단위(2300), 제2 부호화 단위(2310a, 2310b) 또는 제3 부호화 단위(2320a, 2320b, 2320c, 2320d, 2320e)가 분할되는 형태 중 홀수개의 부호화 단위로 분할되는지 여부를 결정할 수 있다. 예를 들면, 제2 부호화 단위(2310a, 2310b) 중 우측에 위치하는 부호화 단위가 홀수개의 제3 부호화 단위(2320c, 2320d, 2320e)로 분할될 수 있다. 제1 부호화 단위(2300)에 포함되는 복수개의 부호화 단위들이 처리되는 순서는 소정의 순서(예를 들면, z-스캔 순서(z-scan order)(2330))가 될 수 있고, 영상 복호화 장치(200)는 우측 제2 부호화 단위(2310b)가 홀수개로 분할되어 결정된 제3 부호화 단위(2320c, 2320d, 2320e)가 상기 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 판단할 수 있다.According to one embodiment, the image decoding apparatus 200 determines whether or not the third encoding units 2320a, 2320b, 2320c, 2320d, and 2320e can be processed in a predetermined order, and determines whether there are odd-numbered encoding units You can decide. Referring to FIG. 23, the image decoding apparatus 200 may recursively divide the first encoding unit 2300 to determine the third encoding units 2320a, 2320b, 2320c, 2320d, and 2320e. The video decoding apparatus 200 may further include a first coding unit 2300, a second coding unit 2310a, and a third coding unit 2320a, 2320b, 2320c, and 2320c based on at least one of block type information and division type information, 2320d, and 2320e may be divided into odd number of coding units among the divided types. For example, an encoding unit located on the right of the second encoding units 2310a and 2310b may be divided into odd third encoding units 2320c, 2320d, and 2320e. The order in which the plurality of coding units included in the first coding unit 2300 are processed may be a predetermined order (for example, a z-scan order 2330) 200 can determine whether the third encoding units 2320c, 2320d, and 2320e determined by dividing the right second encoding unit 2310b into odd numbers satisfy the condition that the third encoding units 2320c, 2320d, and 2320e can be processed according to the predetermined order.
일 실시예에 따라 영상 복호화 장치(200)는 제1 부호화 단위(2300)에 포함되는 제3 부호화 단위(2320a, 2320b, 2320c, 2320d, 2320e)가 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 결정할 수 있으며, 상기 조건은 제3 부호화 단위(2320a, 2320b, 2320c, 2320d, 2320e)의 경계에 따라 제2 부호화 단위(2310a, 2310b)의 너비 및 높이 중 적어도 하나를 반으로 분할되는지 여부와 관련된다. 예를 들면 비-정사각형 형태의 좌측 제2 부호화 단위(2310a)의 높이를 반으로 분할하여 결정되는 제3 부호화 단위(2320a, 2320b)는 조건을 만족하지만, 우측 제2 부호화 단위(2310b)를 3개의 부호화 단위로 분할하여 결정되는 제3 부호화 단위(2320c, 2320d, 2320e)들의 경계가 우측 제2 부호화 단위(2310b)의 너비 또는 높이를 반으로 분할하지 못하므로 제3 부호화 단위(2320c, 2320d, 2320e)는 조건을 만족하지 못하는 것으로 결정될 수 있고, 영상 복호화 장치(200)는 이러한 조건 불만족의 경우 스캔 순서의 단절(disconnection)로 판단하고, 판단 결과에 기초하여 우측 제2 부호화 단위(2310b)는 홀수개의 부호화 단위로 분할되는 것으로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 홀수개의 부호화 단위로 분할되는 경우 분할된 부호화 단위들 중 소정 위치의 부호화 단위에 대하여 소정의 제한을 둘 수 있으며, 이러한 제한 내용 또는 소정 위치 등에 대하여는 다양한 실시예를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.According to an embodiment, the image decoding apparatus 200 satisfies a condition that third encoding units 2320a, 2320b, 2320c, 2320d, and 2320e included in the first encoding unit 2300 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 2310a and 2310b is divided in half according to the boundaries of the third encoding units 2320a, 2320b, 2320c, 2320d, and 2320e . For example, the third coding units 2320a and 2320b determined by dividing the height of the left-side second coding unit 2310a in the non-square form by half, satisfy the condition, but the right second coding unit 2310b is set to 3 Since the boundaries of the third encoding units 2320c, 2320d, and 2320e determined by dividing the first encoding units 2320c, 2320d, and 2320d by the encoding units 2320c, 2320d, and 2320e do not divide the width or height of the right second encoding unit 2310b by half, 2320e may be determined as not satisfying the condition and the image decoding apparatus 200 may determine that the scanning order is disconnection in the case of such unsatisfactory condition and the right second encoding unit 2310b is determined based on the determination result It can be determined to be divided into odd number of encoding units. 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.
도 24는 일 실시예에 따라 영상 복호화 장치(200)가 제1 부호화 단위(2400)를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다. 일 실시예에 따라 영상 복호화 장치(200)는 수신부(210)를 통해 획득한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(2400)를 분할할 수 있다. 정사각형 형태의 제1 부호화 단위(2400)는 4개의 정사각형 형태를 가지는 부호화 단위로 분할되거나 또는 비-정사각형 형태의 복수개의 부호화 단위로 분할할 수 있다. 예를 들면 도 24을 참조하면, 블록 형태 정보가 제1 부호화 단위(2400)는 정사각형임을 나타내고 분할 형태 정보가 비-정사각형의 부호화 단위로 분할됨을 나타내는 경우 영상 복호화 장치(200)는 제1 부호화 단위(2400)를 복수개의 비-정사각형의 부호화 단위들로 분할할 수 있다. 구체적으로, 분할 형태 정보가 제1 부호화 단위(2400)를 수평 방향 또는 수직 방향으로 분할하여 홀수개의 부호화 단위를 결정하는 것을 나타내는 경우, 영상 복호화 장치(200)는 정사각형 형태의 제1 부호화 단위(2400)을 홀수개의 부호화 단위들로서 수직 방향으로 분할되어 결정된 제2 부호화 단위(2410a, 2410b, 2410c) 또는 수평 방향으로 분할되어 결정된 제2 부호화 단위(2420a, 2420b, 2420c)로 분할할 수 있다. FIG. 24 illustrates a process in which the image decoding apparatus 200 determines at least one encoding unit by dividing a first encoding unit 2400 according to an embodiment. According to an embodiment, the image decoding apparatus 200 may divide the first encoding unit 2400 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 2400 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. 24, when the block type information indicates that the first encoding unit 2400 is square and that the division type information is divided into non-square encoding units, the image decoding apparatus 200 determines that the first encoding unit The encoding unit 2400 may be divided into a plurality of non-square encoding units. Specifically, when the division type information indicates that the first encoding unit 2400 is divided horizontally or vertically to determine an odd number of encoding units, the image decoding apparatus 200 includes a first encoding unit 2400 in the form of a square Can be divided into the second encoding units 2410a, 2410b, and 2410c divided in the vertical direction as the odd number of encoding units, or the second encoding units 2420a, 2420b, and 2420c determined by being divided in the horizontal direction.
일 실시예에 따라 영상 복호화 장치(200)는 제1 부호화 단위(2400)에 포함되는 제2 부호화 단위(2410a, 2410b, 2410c, 2420a, 2420b, 2420c)가 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 결정할 수 있으며, 상기 조건은 제2 부호화 단위(2410a, 2410b, 2410c, 2420a, 2420b, 2420c)의 경계에 따라 제1 부호화 단위(2400)의 너비 및 높이 중 적어도 하나를 반으로 분할되는지 여부와 관련된다. 도 24를 참조하면 정사각형 형태의 제1 부호화 단위(2400)를 수직 방향으로 분할하여 결정되는 제2 부호화 단위(2410a, 2410b, 2410c)들의 경계가 제1 부호화 단위(2400)의 너비를 반으로 분할하지 못하므로 제1 부호화 단위(2400)는 소정의 순서에 따라 처리될 수 있는 조건을 만족하지 못하는 것으로 결정될 수 있다. 또한 정사각형 형태의 제1 부호화 단위(2400)를 수평 방향으로 분할하여 결정되는 제2 부호화 단위(2420a, 2420b, 2420c)들의 경계가 제1 부호화 단위(2400)의 너비를 반으로 분할하지 못하므로 제1 부호화 단위(2400)는 소정의 순서에 따라 처리될 수 있는 조건을 만족하지 못하는 것으로 결정될 수 있다. 영상 복호화 장치(200)는 이러한 조건 불만족의 경우 스캔 순서의 단절(disconnection)로 판단하고, 판단 결과에 기초하여 제1 부호화 단위(2400)는 홀수개의 부호화 단위로 분할되는 것으로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 홀수개의 부호화 단위로 분할되는 경우 분할된 부호화 단위들 중 소정 위치의 부호화 단위에 대하여 소정의 제한을 둘 수 있으며, 이러한 제한 내용 또는 소정 위치 등에 대하여는 다양한 실시예를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.According to an exemplary embodiment, the image decoding apparatus 200 may be configured such that the second encoding units 2410a, 2410b, 2410c, 2420a, 2420b, and 2420c included in the first encoding unit 2400 are processed in a predetermined order And the condition is that at least one of the width and the height of the first encoding unit 2400 is divided in half according to the boundaries of the second encoding units 2410a, 2410b, 2410c, 2420a, 2420b, and 2420c . 24, the boundaries of the second encoding units 2410a, 2410b, and 2410c, which are determined by dividing the first encoding unit 2400 in the vertical direction, are halved in the width of the first encoding unit 2400 The first encoding unit 2400 can be determined as not satisfying a condition that can be processed in a predetermined order. Also, since the boundaries of the second encoding units 2420a, 2420b, and 2420c determined by dividing the first encoding unit 2400 in the horizontal direction into the horizontal direction can not divide the width of the first encoding unit 2400 in half, 1 encoding unit 2400 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 order is disconnection in the case of such unsatisfactory condition and determine that the first encoding unit 2400 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.
일 실시예에 따라, 영상 복호화 장치(200)는 제1 부호화 단위를 분할하여 다양한 형태의 부호화 단위들을 결정할 수 있다.According to one embodiment, the image decoding apparatus 200 may determine the encoding units of various types by dividing the first encoding unit.
도 24를 참조하면, 영상 복호화 장치(200)는 정사각형 형태의 제1 부호화 단위(2400), 비-정사각형 형태의 제1 부호화 단위(2430 또는 2450)를 다양한 형태의 부호화 단위들로 분할할 수 있다. 24, the image decoding apparatus 200 may divide a first coding unit 2400 in a square form and a first coding unit 2430 or 2450 in a non-square form into various types of coding units .
도 25는 일 실시예에 따라 영상 복호화 장치(200)가 제1 부호화 단위(2500)가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위가 소정의 조건을 만족하는 경우 제2 부호화 단위가 분할될 수 있는 형태가 제한되는 것을 도시한다.25 shows an example in which when the non-square second encoding unit determined by dividing the first encoding unit 2500 by the image decoding apparatus 200 satisfies a predetermined condition, the second encoding unit is divided Lt; RTI ID = 0.0 > limited. ≪ / RTI >
일 실시예에 따라 영상 복호화 장치(200)는 수신부(210)를 통해 획득한 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 정사각형 형태의 제1 부호화 단위(2500)를 비-정사각형 형태의 제2 부호화 단위(2510a, 2510b, 2520a, 2520b)로 분할하는 것으로 결정할 수 있다. 제2 부호화 단위(2510a, 2510b, 2520a, 2520b)는 독립적으로 분할될 수 있다. 이에 따라 영상 복호화 장치(200)는 제2 부호화 단위(2510a, 2510b, 2520a, 2520b) 각각에 관련된 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 복수개의 부호화 단위로 분할하거나 분할하지 않는 것을 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 수직 방향으로 제1 부호화 단위(2500)가 분할되어 결정된 비-정사각형 형태의 좌측 제2 부호화 단위(2510a)를 수평 방향으로 분할하여 제3 부호화 단위(2512a, 2512b)를 결정할 수 있다. 다만 영상 복호화 장치(200)는 좌측 제2 부호화 단위(2510a)를 수평 방향으로 분할한 경우, 우측 제2 부호화 단위(2510b)는 좌측 제2 부호화 단위(2510a)가 분할된 방향과 동일하게 수평 방향으로 분할될 수 없도록 제한할 수 있다. 만일 우측 제2 부호화 단위(2510b)가 동일한 방향으로 분할되어 제3 부호화 단위(2514a, 2514b)가 결정된 경우, 좌측 제2 부호화 단위(2510a) 및 우측 제2 부호화 단위(2510b)가 수평 방향으로 각각 독립적으로 분할됨으로써 제3 부호화 단위(2512a, 2512b, 2514a, 2514b)가 결정될 수 있다. 하지만 이는 영상 복호화 장치(200)가 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(2500)를 4개의 정사각형 형태의 제2 부호화 단위(2530a, 2530b, 2530c, 2530d)로 분할한 것과 동일한 결과이며 이는 영상 복호화 측면에서 비효율적일 수 있다.According to an exemplary embodiment, the image decoding apparatus 200 may include a first encoding unit 2500 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 2510a, 2510b, 2520a, and 2520b. The second encoding units 2510a, 2510b, 2520a, and 2520b 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 2510a, 2510b, 2520a, and 2520b . According to one embodiment, the image decoding apparatus 200 divides the non-square left second encoding unit 2510a determined by dividing the first encoding unit 2500 in the vertical direction into a horizontal direction, 2512a, 2512b can be determined. However, in the case where the left second encoding unit 2510a is divided in the horizontal direction, the right-side second encoding unit 2510b is arranged in the horizontal direction in the same way as the direction in which the left second encoding unit 2510a is divided, As shown in Fig. If the right second encoding unit 2510b is divided in the same direction and the third encoding units 2514a and 2514b are determined, the left second encoding unit 2510a and the right second encoding unit 2510b are arranged in the horizontal direction The third encoding units 2512a, 2512b, 2514a, and 2514b can be determined by being independently divided. However, this is because the video decoding apparatus 200 divides the first encoding unit 2500 into four square-shaped second encoding units 2530a, 2530b, 2530c, and 2530d 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.
일 실시예에 따라 영상 복호화 장치(200)는 수평 방향으로 제1 부호화 단위(12100)가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위(2520a 또는 2520b)를 수직 방향으로 분할하여 제3 부호화 단위(2522a, 2522b, 2524a, 2524b)를 결정할 수 있다. 다만 영상 복호화 장치(200)는 제2 부호화 단위 중 하나(예를 들면 상단 제2 부호화 단위(2520a))를 수직 방향으로 분할한 경우, 상술한 이유에 따라 다른 제2 부호화 단위(예를 들면 하단 부호화 단위(2520b))는 상단 제2 부호화 단위(2520a)가 분할된 방향과 동일하게 수직 방향으로 분할될 수 없도록 제한할 수 있다. According to one embodiment, the image decoding apparatus 200 divides the second encoding unit 2520a or 2520b in the non-square form determined by dividing the first encoding unit 12100 in the horizontal direction into the vertical direction, (2522a, 2522b, 2524a, 2524b). However, if one of the second coding units (for example, the upper second coding unit 2520a) is divided in the vertical direction, the video decoding apparatus 200 may generate a second coding unit (for example, The encoding unit 2520b) can be restricted so that the upper second encoding unit 2520a can not be divided in the vertical direction in the same direction as the divided direction.
도 26은 일 실시예에 따라 분할 형태 정보가 4개의 정사각형 형태의 부호화 단위로 분할하는 것을 나타낼 수 없는 경우, 영상 복호화 장치(200)가 정사각형 형태의 부호화 단위를 분할하는 과정을 도시한다.FIG. 26 illustrates 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.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(2600)를 분할하여 제2 부호화 단위(2610a, 2610b, 2620a, 2620b 등)를 결정할 수 있다. 분할 형태 정보에는 부호화 단위가 분할될 수 있는 다양한 형태에 대한 정보가 포함될 수 있으나, 다양한 형태에 대한 정보에는 정사각형 형태의 4개의 부호화 단위로 분할하기 위한 정보가 포함될 수 없는 경우가 있다. 이러한 분할 형태 정보에 따르면, 영상 복호화 장치(200)는 정사각형 형태의 제1 부호화 단위(2600)를 4개의 정사각형 형태의 제2 부호화 단위(2630a, 2630b, 2630c, 2630d)로 분할하지 못한다. 분할 형태 정보에 기초하여 영상 복호화 장치(200)는 비-정사각형 형태의 제2 부호화 단위(2610a, 2610b, 2620a, 2620b 등)를 결정할 수 있다. According to an embodiment, the image decoding apparatus 200 divides the first encoding unit 2600 based on at least one of the block type information and the division type information, and outputs the second encoding units 2610a, 2610b, 2620a, 2620b, 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. According to the division type information, the image decoding apparatus 200 can not divide the first encoding unit 2600 in the square form into the second encoding units 2630a, 2630b, 2630c, and 2630d in the form of a quadrangle. Based on the division type information, the video decoding apparatus 200 can determine the non-square second encoding units 2610a, 2610b, 2620a, 2620b, and the like.
일 실시예에 따라 영상 복호화 장치(200)는 비-정사각형 형태의 제2 부호화 단위(2610a, 2610b, 2620a, 2620b 등)를 각각 독립적으로 분할할 수 있다. 재귀적인 방법을 통해 제2 부호화 단위(2610a, 2610b, 2620a, 2620b 등) 각각이 소정의 순서대로 분할될 수 있으며, 이는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 제1 부호화 단위(2600)가 분할되는 방법에 대응하는 분할 방법일 수 있다. According to an embodiment, the image decoding apparatus 200 may independently divide the non-square second encoding units 2610a, 2610b, 2620a, and 2620b, respectively. Each of the second encoding units 2610a, 2610b, 2620a, 2620b, and the like may be divided in a predetermined order through a recursive method, and the first encoding unit 2600 May be a partitioning method corresponding to a method in which a partition is divided.
예를 들면 영상 복호화 장치(200)는 좌측 제2 부호화 단위(2610a)가 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2612a, 2612b)를 결정할 수 있고, 우측 제2 부호화 단위(2610b)가 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2614a, 2614b)를 결정할 수 있다. 나아가 영상 복호화 장치(200)는 좌측 제2 부호화 단위(2610a) 및 우측 제2 부호화 단위(2610b) 모두 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2616a, 2616b, 2616c, 2616d)를 결정할 수도 있다. 이러한 경우 제1 부호화 단위(2600)가 4개의 정사각형 형태의 제2 부호화 단위(2630a, 2630b, 2630c, 2630d)로 분할된 것과 동일한 형태로 부호화 단위가 결정될 수 있다. For example, the image decoding apparatus 200 can determine the third encoding units 2612a and 2612b in the form of a square by dividing the left second encoding unit 2610a in the horizontal direction, and the second right encoding unit 2610b It is possible to determine the third encoding units 2614a and 2614b in the form of a square by being divided in the horizontal direction. Further, the image decoding apparatus 200 may divide the left second encoding unit 2610a and the right second encoding unit 2610b in the horizontal direction to determine the square-shaped third encoding units 2616a, 2616b, 2616c, and 2616d have. In this case, the encoding unit can be determined in the same manner as that of the first encoding unit 2600 divided into the four second square encoding units 2630a, 2630b, 2630c, and 2630d.
또 다른 예를 들면 영상 복호화 장치(200)는 상단 제2 부호화 단위(2620a)가 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2622a, 2622b)를 결정할 수 있고, 하단 제2 부호화 단위(2620b)가 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2624a, 2624b)를 결정할 수 있다. 나아가 영상 복호화 장치(200)는 상단 제2 부호화 단위(2620a) 및 하단 제2 부호화 단위(2620b) 모두 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(2622a, 2622b, 2624a, 2624b)를 결정할 수도 있다. 이러한 경우 제1 부호화 단위(2600)가 4개의 정사각형 형태의 제2 부호화 단위(2630a, 2630b, 2630c, 2630d)로 분할된 것과 동일한 형태로 부호화 단위가 결정될 수 있다.  In another example, the image decoding apparatus 200 can determine the third encoding units 2622a and 2622b in the shape of a square by dividing the upper second encoding unit 2620a in the vertical direction, and the lower second encoding units 2620b Can be divided in the vertical direction to determine the third encoding units 2624a and 2624b in the form of a square. Furthermore, the image decoding apparatus 200 may divide the upper second encoding unit 2620a and the lower second encoding unit 2620b in the vertical direction to determine the square-shaped third encoding units 2622a, 2622b, 2624a, and 2624b have. In this case, the encoding unit can be determined in the same manner as that of the first encoding unit 2600 divided into the four second square encoding units 2630a, 2630b, 2630c, and 2630d.
도 27은 일 실시예에 따라 복수개의 부호화 단위들 간의 처리 순서가 부호화 단위의 분할 과정에 따라 달라질 수 있음을 도시한 것이다.FIG. 27 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.
일 실시예에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보에 기초하여 제1 부호화 단위(2700)를 분할할 수 있다. 블록 형태 정보가 정사각형 형태를 나타내고, 분할 형태 정보가 제1 부호화 단위(2700)가 수평 방향 및 수직 방향 중 적어도 하나의 방향으로 분할됨을 나타내는 경우, 영상 복호화 장치(200)는 제1 부호화 단위(2700)를 분할하여 제2 부호화 단위(예를 들면, 2710a, 2710b, 2720a, 2720b 등)를 결정할 수 있다. 도 27을 참조하면 제1 부호화 단위2700)가 수평 방향 또는 수직 방향만으로 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위(2710a, 2710b, 2720a, 2720b)는 각각에 대한 블록 형태 정보 및 분할 형태 정보에 기초하여 독립적으로 분할될 수 있다. 예를 들면 영상 복호화 장치(200)는 제1 부호화 단위(2700)가 수직 방향으로 분할되어 생성된 제2 부호화 단위(2710a, 2710b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(2716a, 2716b, 2716c, 2716d)를 결정할 수 있고, 제1 부호화 단위(2700)가 수평 방향으로 분할되어 생성된 제2 부호화 단위(2720a, 2720b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(2726a, 2726b, 2726c, 2726d)를 결정할 수 있다. 이러한 제2 부호화 단위(2710a, 2710b, 2720a, 2720b)의 분할 과정은 도 25과 관련하여 상술하였으므로 자세한 설명은 생략하도록 한다. According to an embodiment, the image decoding apparatus 200 may divide the first encoding unit 2700 based on the block type information and the division type information. When the block type information indicates a square shape and the division type information indicates that the first encoding unit 2700 is divided into at least one of a horizontal direction and a vertical direction, the image decoding apparatus 200 includes a first encoding unit 2700 (E.g., 2710a, 2710b, 2720a, 2720b, etc.) can be determined by dividing the second encoding unit (e.g. Referring to FIG. 27, the non-square second encoding units 2710a, 2710b, 2720a, and 2720b, which are determined by dividing the first encoding unit 2700 only in the horizontal direction or the vertical direction, As shown in FIG. For example, the image decoding apparatus 200 divides the second encoding units 2710a and 2710b generated by dividing the first encoding unit 2700 in the vertical direction into the horizontal direction and outputs the third encoding units 2716a and 2716b, 2726c and 2716d can be determined and the second coding units 2720a and 2720b generated by dividing the first coding unit 2700 in the horizontal direction are respectively divided in the horizontal direction and the third coding units 2726a, 2726b and 2726c , 2726d) can be determined. Since the process of dividing the second encoding units 2710a, 2710b, 2720a, and 2720b has been described in detail with reference to FIG. 25, a detailed description will be omitted.
일 실시예에 따라 영상 복호화 장치(200)는 소정의 순서에 따라 부호화 단위를 처리할 수 있다. 소정의 순서에 따른 부호화 단위의 처리에 대한 특징은 도 22과 관련하여 상술하였으므로 자세한 설명은 생략하도록 한다. 도 27을 참조하면 영상 복호화 장치(200)는 정사각형 형태의 제1 부호화 단위(2700)를 분할하여 4개의 정사각형 형태의 제3 부호화 단위(2716a, 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, 2726d)를 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 제1 부호화 단위(2700)가 분할되는 형태에 따라 제3 부호화 단위(2716a, 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, 2726d)의 처리 순서를 결정할 수 있다. According to an embodiment, the image decoding apparatus 200 may process a coding unit in a predetermined order. The features of the processing of the encoding unit according to the predetermined order have been described above with reference to FIG. 22, and a detailed description thereof will be omitted. 27, the image decoding apparatus 200 divides a first encoding unit 2700 in a square form into four quadrangle-shaped third encoding units 2716a, 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, 2726d Can be determined. According to an embodiment, the image decoding apparatus 200 may process the third encoding units 2716a, 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, and 2726d according to the form in which the first encoding unit 2700 is divided You can decide.
일 실시예에 따라 영상 복호화 장치(200)는 수직 방향으로 분할되어 생성된 제2 부호화 단위(2710a, 2710b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(2716a, 2716b, 2716c, 2716d)를 결정할 수 있고, 영상 복호화 장치(200)는 좌측 제2 부호화 단위(2710a)에 포함되는 제3 부호화 단위(2716a, 2716b)를 수직 방향으로 먼저 처리한 후, 우측 제2 부호화 단위(2710b)에 포함되는 제3 부호화 단위(2716c, 2716d)를 수직 방향으로 처리하는 순서(2717)에 따라 제3 부호화 단위(2716a, 2716b, 2716c, 2716d)를 처리할 수 있다. According to an embodiment, the image decoding apparatus 200 divides the second encoding units 2710a and 2710b generated in the vertical direction into the horizontal direction to determine the third encoding units 2716a, 2716b, 2716c, and 2716d And the image decoding apparatus 200 first processes the third encoding units 2716a and 2716b included in the left second encoding unit 2710a in the vertical direction and then processes the third encoding units 2716a and 2716b included in the right second encoding unit 2710b The third encoding units 2716a, 2716b, 2716c, and 2716d can be processed in accordance with an order 2717 of processing the third encoding units 2716c and 2716d in the vertical direction.
일 실시예에 따라 영상 복호화 장치(200)는 수평 방향으로 분할되어 생성된 제2 부호화 단위(2720a, 2720b)를 수직 방향으로 각각 분할하여 제3 부호화 단위(2726a, 2726b, 2726c, 2726d)를 결정할 수 있고, 영상 복호화 장치(200)는 상단 제2 부호화 단위(2720a)에 포함되는 제3 부호화 단위(2726a, 2726b)를 수평 방향으로 먼저 처리한 후, 하단 제2 부호화 단위(2720b)에 포함되는 제3 부호화 단위(2726c, 2726d)를 수평 방향으로 처리하는 순서(2727)에 따라 제3 부호화 단위(2726a, 2726b, 2726c, 2726d)를 처리할 수 있다.According to an embodiment, the image decoding apparatus 200 divides the second encoding units 2720a and 2720b generated in the horizontal direction into vertical directions to determine the third encoding units 2726a, 2726b, 2726c, and 2726d And the image decoding apparatus 200 first processes the third encoding units 2726a and 2726b included in the upper second encoding unit 2720a in the horizontal direction and then processes the third encoding units 2726a and 2726b included in the lower second encoding unit 2720b The third encoding units 2726a, 2726b, 2726c, and 2726d can be processed in accordance with the sequence 2727 of processing the third encoding units 2726c and 2726d in the horizontal direction.
도 27을 참조하면, 제2 부호화 단위(2710a, 2710b, 2720a, 2720b)가 각각 분할되어 정사각형 형태의 제3 부호화 단위(2716a, 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, 2726d)가 결정될 수 있다. 수직 방향으로 분할되어 결정된 제2 부호화 단위(2710a, 2710b) 및 수평 방향으로 분할되어 결정된 제2 부호화 단위(2720a, 2720b)는 서로 다른 형태로 분할된 것이지만, 이후에 결정되는 제3 부호화 단위(2716a, 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, 2726d)에 따르면 결국 동일한 형태의 부호화 단위들로 제1 부호화 단위(2700)가 분할된 결과가 된다. 이에 따라 영상 복호화 장치(200)는 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 상이한 과정을 통해 재귀적으로 부호화 단위를 분할함으로써 결과적으로 동일한 형태의 부호화 단위들을 결정하더라도, 동일한 형태로 결정된 복수개의 부호화 단위들을 서로 다른 순서로 처리할 수 있다.Referring to FIG. 27, the second encoding units 2710a, 2710b, 2720a, and 2720b are divided to determine the third encoding units 2716a, 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, and 2726d, have. The second encoding units 2710a and 2710b determined to be divided in the vertical direction and the second encoding units 2720a and 2720b determined to be divided in the horizontal direction are divided into different formats. However, the third encoding units 2716a , 2716b, 2716c, 2716d, 2726a, 2726b, 2726c, and 2726d, the result is that the first encoding unit 2700 is divided into the same type of encoding units. Accordingly, the image decoding apparatus 200 recursively divides the encoding units through different processes based on at least one of the block type information and the division type information, thereby eventually determining the same type of encoding units, Lt; RTI ID = 0.0 > units of < / RTI >
도 28은 일 실시예에 따라 부호화 단위가 재귀적으로 분할되어 복수개의 부호화 단위가 결정되는 경우, 부호화 단위의 형태 및 크기가 변함에 따라 부호화 단위의 심도가 결정되는 과정을 도시한다.FIG. 28 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.
일 실시예에 따라 영상 복호화 장치(200)는 부호화 단위의 심도를 소정의 기준에 따라 결정할 수 있다. 예를 들면 소정의 기준은 부호화 단위의 긴 변의 길이가 될 수 있다. 영상 복호화 장치(200)는 현재 부호화 단위의 긴 변의 길이가 분할되기 전의 부호화 단위의 긴 변의 길이보다 2n (n>0) 배로 분할된 경우, 현재 부호화 단위의 심도는 분할되기 전의 부호화 단위의 심도보다 n만큼 심도가 증가된 것으로 결정할 수 있다. 이하에서는 심도가 증가된 부호화 단위를 하위 심도의 부호화 단위로 표현하도록 한다.According to an exemplary embodiment, the image decoding apparatus 200 may determine the depth of a coding unit according to a predetermined criterion. For example, a predetermined criterion may be a length of a long side of a coding unit. When the length of the long side of the current coding unit is divided by 2 n (n> 0) times the length of the long side of the coding unit before the current coding unit is divided, 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. Hereinafter, an encoding unit with an increased depth is expressed as a lower-depth encoding unit.
도 28을 참조하면, 일 실시예에 따라 정사각형 형태임을 나타내는 블록 형태 정보(예를 들면 블록 형태 정보는 ′0: SQUARE′를 나타낼 수 있음)에 기초하여 영상 복호화 장치(200)는 정사각형 형태인 제1 부호화 단위(2800)를 분할하여 하위 심도의 제2 부호화 단위(2802), 제3 부호화 단위(2804) 등을 결정할 수 있다. 정사각형 형태의 제1 부호화 단위(2800)의 크기를 2Nx2N이라고 한다면, 제1 부호화 단위(2800)의 너비 및 높이를 1/21배로 분할하여 결정된 제2 부호화 단위(2802)는 NxN의 크기를 가질 수 있다. 나아가 제2 부호화 단위(2802)의 너비 및 높이를 1/2크기로 분할하여 결정된 제3 부호화 단위(2804)는 N/2xN/2의 크기를 가질 수 있다. 이 경우 제3 부호화 단위(2804)의 너비 및 높이는 제1 부호화 단위(2800)의 1/22배에 해당한다. 제1 부호화 단위(2800)의 심도가 D인 경우 제1 부호화 단위(2800)의 너비 및 높이의 1/21배인 제2 부호화 단위(2802)의 심도는 D+1일 수 있고, 제1 부호화 단위(2800)의 너비 및 높이의 1/22배인 제3 부호화 단위(2804)의 심도는 D+2일 수 있다. Referring to FIG. 28, on the basis of block type information (for example, block type information may indicate '0: SQUARE') indicating that the block type information is a square type according to an embodiment, 1 encoding unit 2800 may be divided to determine the second encoding unit 2802, the third encoding unit 2804, and the like of the lower depth. The size of the square shape of the first encoding unit 2800 if it 2Nx2N, the second encoding unit 2802, the width and height of the first encoding unit 2800 is determined by dividing 1/2 times 1 have a size of NxN . Furthermore, the third coding unit 2804 determined by dividing the width and height of the second coding unit 2802 by a half size may have a size of N / 2xN / 2. In this case, it corresponds to 1/2 2 times the width and height of the first encoding unit 2800 of the third encoding unit (2804). The case where the depth of the first encoding unit 2800 D a first depth of coding units 2800 1 1/2 times the second encoding unit 2802 in the width and height may be in the D + 1, the first encoding depth of 1/2 2 times the third encoding unit 2804 of the width and height of the unit 2800 may be a D + 2.
일 실시예에 따라 비-정사각형 형태를 나타내는 블록 형태 정보(예를 들면 블록 형태 정보는, 높이가 너비보다 긴 비-정사각형임을 나타내는 ′1: NS_VER′ 또는 너비가 높이보다 긴 비-정사각형임을 나타내는 ′2: NS_HOR′를 나타낼 수 있음)에 기초하여, 영상 복호화 장치(200)는 비-정사각형 형태인 제1 부호화 단위(2810 또는 2820)를 분할하여 하위 심도의 제2 부호화 단위(2812 또는 2822), 제3 부호화 단위(2814 또는 2824) 등을 결정할 수 있다. According to an exemplary embodiment, block type information indicating a non-square shape (for example, block type information is' 1: NS_VER 'indicating that the height is a non-square having a width greater than the width or' 2 >: NS_HOR '), the image decoding apparatus 200 divides the non-square first coding unit 2810 or 2820 into second lower coding units 2812 or 2822, The third encoding unit 2814 or 2824, or the like.
영상 복호화 장치(200)는 Nx2N 크기의 제1 부호화 단위(2810)의 너비 및 높이 중 적어도 하나를 분할하여 제2 부호화 단위(예를 들면, 2802, 2812, 2822 등)를 결정할 수 있다. 즉, 영상 복호화 장치(200)는 제1 부호화 단위(2810)를 수평 방향으로 분할하여 NxN 크기의 제2 부호화 단위(2802) 또는 NxN/2 크기의 제2 부호화 단위(2822)를 결정할 수 있고, 수평 방향 및 수직 방향으로 분할하여 N/2xN 크기의 제2 부호화 단위(2812)를 결정할 수도 있다.The video decoding apparatus 200 may determine a second coding unit (e.g., 2802, 2812, 2822, etc.) by dividing at least one of the width and the height of the first coding unit 2810 of Nx2N size. That is, the image decoding apparatus 200 can determine the second encoding unit 2802 of NxN size or the second encoding unit 2822 of NxN / 2 size by dividing the first encoding unit 2810 in the horizontal direction, The second encoding unit 2812 having the size of N / 2xN may be determined by dividing the second encoding unit 2812 in the horizontal direction and the vertical direction.
일 실시예에 따라 영상 복호화 장치(200)는 2NxN 크기의 제1 부호화 단위(2820) 의 너비 및 높이 중 적어도 하나를 분할하여 제2 부호화 단위(예를 들면, 2802, 2812, 2822 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(200)는 제1 부호화 단위(2820)를 수직 방향으로 분할하여 NxN 크기의 제2 부호화 단위(2802) 또는 N/2xN 크기의 제2 부호화 단위(2812)를 결정할 수 있고, 수평 방향 및 수직 방향으로 분할하여 NxN/2 크기의 제2 부호화 단위(2822)를 결정할 수도 있다.According to an embodiment, the image decoding apparatus 200 divides at least one of the width and the height of the 2NxN first encoding unit 2820 to determine a second encoding unit (e.g., 2802, 2812, 2822, etc.) It is possible. That is, the image decoding apparatus 200 can determine the second encoding unit 2802 of NxN size or the second encoding unit 2812 of N / 2xN size by dividing the first encoding unit 2820 in the vertical direction, The second encoding unit 2822 of the NxN / 2 size may be determined by dividing the image data in the horizontal direction and the vertical direction.
일 실시예에 따라 영상 복호화 장치(200)는 NxN 크기의 제2 부호화 단위(2802) 의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 2804, 2814, 2824 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(200)는 제2 부호화 단위(2802)를 수직 방향 및 수평 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(2804)를 결정하거나 N/22xN/2 크기의 제3 부호화 단위(2814)를 결정하거나 N/2xN/22 크기의 제3 부호화 단위(2824)를 결정할 수 있다.According to an exemplary embodiment, the image decoding apparatus 200 divides at least one of the width and the height of the second encoding unit 2802 of NxN size to determine a third encoding unit (e.g., 2804, 2814, and 2824) It is possible. That is, the image decoding device 200 includes a second sub-coding unit 2802 in the vertical direction and the horizontal direction to determine the N / 2xN / 2 size, a third coding unit 2804 or to N / 2 2 xN / 2 size The third encoding unit 2814 of the N / 2xN / 2 2 size can be determined, or the third encoding unit 2824 of the N / 2xN / 2 2 size can be determined.
일 실시예에 따라 영상 복호화 장치(200)는 N/2xN 크기의 제2 부호화 단위(2812)의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 2804, 2814, 2824 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(200)는 제2 부호화 단위(2812)를 수평 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(2804) 또는 N/2xN/22 크기의 제3 부호화 단위(2824)를 결정하거나 수직 방향 및 수평 방향으로 분할하여 N/22xN/2 크기의 제3 부호화 단위(2814)를 결정할 수 있다.According to an exemplary embodiment, the image decoding apparatus 200 divides at least one of the width and the height of the second encoding unit 2812 of N / 2xN size to generate a third encoding unit (e.g., 2804, 2814, and 2824) . That is, the image decoding apparatus 200 divides the second encoding unit 2812 in the horizontal direction to obtain a third encoding unit 2804 of N / 2xN / 2 or a third encoding unit 2804 of N / 2xN / 2 2 size 2824) may be a crystal or division by determining the N / 2 2 xN / 2 the size of the third encoding unit 2814 in the vertical direction and the horizontal direction.
일 실시예에 따라 영상 복호화 장치(200)는 NxN/2 크기의 제2 부호화 단위(2814)의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 2804, 2814, 2824 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(200)는 제2 부호화 단위(2812)를 수직 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(2804) 또는 N/22xN/2 크기의 제3 부호화 단위(2814)를 결정하거나 수직 방향 및 수평 방향으로 분할하여 N/2xN/22크기의 제3 부호화 단위(2824)를 결정할 수 있다.According to an embodiment, the image decoding apparatus 200 divides at least one of the width and the height of the second encoding unit 2814 of NxN / 2 size into a third encoding unit (e.g., 2804, 2814, 2824, etc.) . That is, the image decoding device 200 includes a second by dividing the coding unit 2812 in the vertical direction N / 2xN / 2 size, a third encoding unit 2804 or N / 2 2, xN / 2 size, a third encoding unit of the The second encoding unit 2814 can be determined or divided into vertical and horizontal directions to determine a third encoding unit 2824 of N / 2xN / 2 2 size.
일 실시예에 따라 영상 복호화 장치(200)는 정사각형 형태의 부호화 단위(예를 들면, 2800, 2802, 2804)를 수평 방향 또는 수직 방향으로 분할할 수 있다. 예를 들면, 2Nx2N 크기의 제1 부호화 단위(2800)를 수직 방향으로 분할하여 Nx2N 크기의 제1 부호화 단위(2810)를 결정하거나 수평 방향으로 분할하여 2NxN 크기의 제1 부호화 단위(2820)를 결정할 수 있다. 일 실시예에 따라 심도가 부호화 단위의 가장 긴 변의 길이에 기초하여 결정되는 경우, 2Nx2N 크기의 제1 부호화 단위(2800, 2802 또는 2804)가 수평 방향 또는 수직 방향으로 분할되어 결정되는 부호화 단위의 심도는 제1 부호화 단위(2800, 2802 또는 2804)의 심도와 동일할 수 있다.According to one embodiment, the image decoding apparatus 200 may divide a square-shaped encoding unit (for example, 2800, 2802, and 2804) into a horizontal direction or a vertical direction. For example, the first encoding unit 2800 of the size 2Nx2N is divided in the vertical direction to determine the first encoding unit 2810 of the size Nx2N or the horizontal direction to determine the first encoding unit 2820 of 2NxN size . According to one embodiment, when the depth is determined based on the length of the longest side of the encoding unit, the depth of the encoding unit in which the first encoding unit 2800, 2802, or 2804 of 2Nx2N size is divided in the horizontal direction or the vertical direction is determined May be the same as the depth of the first encoding unit (2800, 2802 or 2804).
일 실시예에 따라 제3 부호화 단위(2814 또는 2824)의 너비 및 높이는 제1 부호화 단위(2810 또는 2820)의 1/22배에 해당할 수 있다. 제1 부호화 단위(2810 또는 2820)의 심도가 D인 경우 제1 부호화 단위(2810 또는 2820)의 너비 및 높이의 1/2배인 제2 부호화 단위(2812 또는 2814)의 심도는 D+1일 수 있고, 제1 부호화 단위(2810 또는 2820)의 너비 및 높이의 1/22배인 제3 부호화 단위(2814 또는 2824)의 심도는 D+2일 수 있다. According to one embodiment it may correspond to 1/2 2 times the third encoding unit of width and height of a first encoding unit (2810 or 2820) of (2814 or 2824). When the depth of the first coding unit 2810 or 2820 is D, the depth of the second coding unit 2812 or 2814 which is half the width and height of the first coding unit 2810 or 2820 is D + and, the depth of the first encoding unit 2 1/2 times the third encoding unit (2814 or 2824) of the width and height of (2810 or 2820) may be a D + 2.
도 29는 일 실시예에 따라 부호화 단위들의 형태 및 크기에 따라 결정될 수 있는 심도 및 부호화 단위 구분을 위한 인덱스(part index, 이하 PID)를 도시한다.FIG. 29 shows a depth and a PID (PID) for a coding unit classification that can be determined according to the type and size of coding units according to an exemplary embodiment.
일 실시예에 따라 영상 복호화 장치(200)는 정사각형 형태의 제1 부호화 단위(2900)를 분할하여 다양한 형태의 제2 부호화 단위를 결정할 수 있다. 도 29를 참조하면, 영상 복호화 장치(200)는 분할 형태 정보에 따라 제1 부호화 단위(2900)를 수직 방향 및 수평 방향 중 적어도 하나의 방향으로 분할하여 제2 부호화 단위(2902a, 2902b, 2904a, 2904b, 2906a, 2906b, 2906c, 2906d)를 결정할 수 있다. 즉, 영상 복호화 장치(200)는 제1 부호화 단위(2900)에 대한 분할 형태 정보에 기초하여 제2 부호화 단위(2902a, 2902b, 2904a, 2904b, 2906a, 2906b, 2906c, 2906d)를 결정할 수 있다. According to an embodiment, the image decoding apparatus 200 may divide the first encoding unit 2900 in a square shape to determine various types of second encoding units. 29, the video decoding apparatus 200 divides the first coding unit 2900 into at least one of a vertical direction and a horizontal direction according to the division type information, and outputs the second coding units 2902a, 2902b, 2904a, 2904b, 2906a, 2906b, 2906c, 2906d. That is, the video decoding apparatus 200 can determine the second encoding units 2902a, 2902b, 2904a, 2904b, 2906a, 2906b, 2906c, and 2906d based on the division type information for the first encoding unit 2900. [
일 실시예에 따라 정사각형 형태의 제1 부호화 단위(2900)에 대한 분할 형태 정보에 따라 결정되는 제2 부호화 단위(2902a, 2902b, 2904a, 2904b, 2906a, 2906b, 2906c, 2906d)는 긴 변의 길이에 기초하여 심도가 결정될 수 있다. 예를 들면, 정사각형 형태의 제1 부호화 단위(2900)의 한 변의 길이와 비-정사각형 형태의 제2 부호화 단위(2902a, 2902b, 2904a, 2904b)의 긴 변의 길이가 동일하므로, 제1 부호화 단위(2900)와 비-정사각형 형태의 제2 부호화 단위(2902a, 2902b, 2904a, 2904b)의 심도는 D로 동일하다고 볼 수 있다. 이에 반해 영상 복호화 장치(200)가 분할 형태 정보에 기초하여 제1 부호화 단위(2900)를 4개의 정사각형 형태의 제2 부호화 단위(2906a, 2906b, 2906c, 2906d)로 분할한 경우, 정사각형 형태의 제2 부호화 단위(2906a, 2906b, 2906c, 2906d)의 한 변의 길이는 제1 부호화 단위(2900)의 한 변의 길이의 1/2배 이므로, 제2 부호화 단위(2906a, 2906b, 2906c, 2906d)의 심도는 제1 부호화 단위(2900)의 심도인 D보다 한 심도 하위인 D+1의 심도일 수 있다.The second encoding units 2902a, 2902b, 2904a, 2904b, 2906a, 2906b, 2906c, and 2906d, which are determined according to the division type information for the first encoding unit 2900 in a square form, Depth can be determined based on. For example, since the length of one side of the first encoding unit 2900 in the square form is equal to the length of the long side of the second encoding units 2902a, 2902b, 2904a, and 2904b in the non-square form, 2900) and the non-square type second encoding units 2902a, 2902b, 2904a, 2904b are denoted by D in the same manner. On the other hand, when the image decoding apparatus 200 divides the first encoding unit 2900 into four square-shaped second encoding units 2906a, 2906b, 2906c, and 2906d based on the division type information, 2906b, 2906c, and 2906d are 1/2 times the length of one side of the first encoding unit 2900, the depths of the second encoding units 2906a, 2906b, 2906c, May be a depth of D + 1 that is one depth lower than D, which is the depth of the first encoding unit 2900.
일 실시예에 따라 영상 복호화 장치(200)는 높이가 너비보다 긴 형태의 제1 부호화 단위(2910)를 분할 형태 정보에 따라 수평 방향으로 분할하여 복수개의 제2 부호화 단위(2912a, 2912b, 2914a, 2914b, 2914c)로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 너비가 높이보다 긴 형태의 제1 부호화 단위(2920)를 분할 형태 정보에 따라 수직 방향으로 분할하여 복수개의 제2 부호화 단위(2922a, 2922b, 2924a, 2924b, 2924c)로 분할할 수 있다.According to an embodiment, the image decoding apparatus 200 divides a first encoding unit 2910 of a shape whose height is longer than a width in a horizontal direction according to division type information to generate a plurality of second encoding units 2912a, 2912b, 2914a, 2914b, and 2914c. According to one embodiment, the image decoding apparatus 200 divides a first encoding unit 2920 of a shape whose width is longer than a height in a vertical direction according to the division type information, and generates a plurality of second encoding units 2922a, 2922b, 2924a, 2924b, and 2924c.
일 실시예에 따라 비-정사각형 형태의 제1 부호화 단위(2910 또는 2920)에 대한 분할 형태 정보에 따라 결정되는 제2 부호화 단위(2912a, 2912b, 2914a, 2914b, 2116a, 2116b, 2116c, 2116d)는 긴 변의 길이에 기초하여 심도가 결정될 수 있다. 예를 들면, 정사각형 형태의 제2 부호화 단위(2912a, 2912b)의 한 변의 길이는 높이가 너비보다 긴 비-정사각형 형태의 제1 부호화 단위(2910)의 한 변의 길이의 1/2배이므로, 정사각형 형태의 제2 부호화 단위(2902a, 2902b, 2904a, 2904b)의 심도는 비-정사각형 형태의 제1 부호화 단위(2910)의 심도 D보다 한 심도 하위의 심도인 D+1이다. The second encoding units 2912a, 2912b, 2914a, 2914b, 2116a, 2116b, 2116c, and 2116d determined according to the division type information for the first encoding unit 2910 or 2920 of the non- The depth can be determined based on the length of the long side. For example, since the length of one side of the square-shaped second encoding units 2912a and 2912b is 1/2 times the length of one side of the non-square first encoding unit 2910 whose height is longer than the width, The depth of the second encoding units 2902a, 2902b, 2904a, and 2904b in the form of D + 1 is one depth below the depth D of the first encoding unit 2910 in the non-square form.
나아가 영상 복호화 장치(200)가 분할 형태 정보에 기초하여 비-정사각형 형태의 제1 부호화 단위(2910)를 홀수개의 제2 부호화 단위(2914a, 2914b, 2914c)로 분할할 수 있다. 홀수개의 제2 부호화 단위(2914a, 2914b, 2914c)는 비-정사각형 형태의 제2 부호화 단위(2914a, 2914c) 및 정사각형 형태의 제2 부호화 단위(2914b)를 포함할 수 있다. 이 경우 비-정사각형 형태의 제2 부호화 단위(2914a, 2914c)의 긴 변의 길이 및 정사각형 형태의 제2 부호화 단위(2914b)의 한 변의 길이는 제1 부호화 단위(2910)의 한 변의 길이의 1/2배 이므로, 제2 부호화 단위(2914a, 2914b, 2914c)의 심도는 제1 부호화 단위(2910)의 심도인 D보다 한 심도 하위인 D+1의 심도일 수 있다. 영상 복호화 장치(200)는 제1 부호화 단위(2910)와 관련된 부호화 단위들의 심도를 결정하는 상기 방식에 대응하는 방식으로, 너비가 높이보다 긴 비-정사각형 형태의 제1 부호화 단위(2920)와 관련된 부호화 단위들의 심도를 결정할 수 있다.Furthermore, the image decoding apparatus 200 may divide the non-square first encoding unit 2910 into odd second encoding units 2914a, 2914b, and 2914c based on the division type information. The odd number of second encoding units 2914a, 2914b and 2914c may include non-square second encoding units 2914a and 2914c and a square second encoding unit 2914b. In this case, the length of the long sides of the non-square second encoding units 2914a and 2914c and the length of one side of the second encoding unit 2914b in the square shape are set to 1/2 of the length of one side of the first encoding unit 2910, The depth of the second encoding units 2914a, 2914b and 2914c may be a depth of D + 1 which is one depth lower than the depth D of the first encoding unit 2910. [ The image decoding apparatus 200 is connected to the first encoding unit 2920 in the form of a non-square shape whose width is longer than the height in a manner corresponding to the scheme for determining the depths of the encoding units associated with the first encoding unit 2910 The depth of the encoding units can be determined.
일 실시예에 따라 영상 복호화 장치(200)는 분할된 부호화 단위들의 구분을 위한 인덱스(PID)를 결정함에 있어서, 홀수개로 분할된 부호화 단위들이 서로 동일한 크기가 아닌 경우, 부호화 단위들 간의 크기 비율에 기초하여 인덱스를 결정할 수 있다. 도 29를 참조하면, 홀수개로 분할된 부호화 단위들(2914a, 2914b, 2914c) 중 가운데에 위치하는 부호화 단위(2914b)는 다른 부호화 단위들(2914a, 2914c)와 너비는 동일하지만 높이가 다른 부호화 단위들(2914a, 2914c)의 높이의 두 배일 수 있다. 즉, 이 경우 가운데에 위치하는 부호화 단위(2914b)는 다른 부호화 단위들(2914a, 2914c)의 두 개를 포함할 수 있다. 따라서, 스캔 순서에 따라 가운데에 위치하는 부호화 단위(2914b)의 인덱스(PID)가 1이라면 그 다음 순서에 위치하는 부호화 단위(2914c)는 인덱스가 2가 증가한 3일수 있다. 즉 인덱스의 값의 불연속성이 존재할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 이러한 분할된 부호화 단위들 간의 구분을 위한 인덱스의 불연속성의 존재 여부에 기초하여 홀수개로 분할된 부호화 단위들이 서로 동일한 크기가 아닌지 여부를 결정할 수 있다. According to one embodiment, 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. 29, an encoding unit 2914b positioned at the center among the odd-numbered encoding units 2914a, 2914b, and 2914c has the same width as other encoding units 2914a and 2914c, And may be twice as high as the height of the sidewalls 2914a and 2914c. That is, in this case, the middle encoding unit 2914b may include two of the other encoding units 2914a and 2914c. Therefore, if the index (PID) of the coding unit 2914b located at the center is 1 according to the scanning order, the coding unit 2914c positioned next to the coding unit 2914c 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. According to an exemplary embodiment, 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.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위로부터 분할되어 결정된 복수개의 부호화 단위들을 구분하기 위한 인덱스의 값에 기초하여 특정 분할 형태로 분할된 것인지를 결정할 수 있다. 도 29를 참조하면 영상 복호화 장치(200)는 높이가 너비보다 긴 직사각형 형태의 제1 부호화 단위(2910)를 분할하여 짝수개의 부호화 단위(2912a, 2912b)를 결정하거나 홀수개의 부호화 단위(2914a, 2914b, 2914c)를 결정할 수 있다. 영상 복호화 장치(200)는 복수개의 부호화 단위 각각을 구분하기 위하여 각 부호화 단위를 나타내는 인덱스(PID)를 이용할 수 있다. 일 실시예에 따라 PID는 각각의 부호화 단위의 소정 위치의 샘플(예를 들면, 좌측 상단 샘플)에서 획득될 수 있다. According to an exemplary embodiment, 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. 29, the image decoding apparatus 200 divides a first coding unit 2910 of a rectangular shape whose height is longer than the width to determine an even number of coding units 2912a and 2912b or an odd number of coding units 2914a and 2914b , 2914c can be determined. The image decoding apparatus 200 may use an index (PID) indicating each coding unit to distinguish each of the plurality of coding units. According to one embodiment, the PID may be obtained at a sample of a predetermined position of each coding unit (e.g., the upper left sample).
일 실시예에 따라 영상 복호화 장치(200)는 부호화 단위의 구분을 위한 인덱스를 이용하여 분할되어 결정된 부호화 단위들 중 소정 위치의 부호화 단위를 결정할 수 있다. 일 실시예에 따라 높이가 너비보다 긴 직사각형 형태의 제1 부호화 단위(2910)에 대한 분할 형태 정보가 3개의 부호화 단위로 분할됨을 나타내는 경우 영상 복호화 장치(200)는 제1 부호화 단위(2910)를 3개의 부호화 단위(2914a, 2914b, 2914c)로 분할할 수 있다. 영상 복호화 장치(200)는 3개의 부호화 단위(2914a, 2914b, 2914c) 각각에 대한 인덱스를 할당할 수 있다. 영상 복호화 장치(200)는 홀수개로 분할된 부호화 단위 중 가운데 부호화 단위를 결정하기 위하여 각 부호화 단위에 대한 인덱스를 비교할 수 있다. 영상 복호화 장치(200)는 부호화 단위들의 인덱스에 기초하여 인덱스들 중 가운데 값에 해당하는 인덱스를 갖는 부호화 단위(2914b)를, 제1 부호화 단위(2910)가 분할되어 결정된 부호화 단위 중 가운데 위치의 부호화 단위로서 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 분할된 부호화 단위들의 구분을 위한 인덱스를 결정함에 있어서, 부호화 단위들이 서로 동일한 크기가 아닌 경우, 부호화 단위들 간의 크기 비율에 기초하여 인덱스를 결정할 수 있다. 도 29를 참조하면, 제1 부호화 단위(2910)가 분할되어 생성된 부호화 단위(2914b)는 다른 부호화 단위들(2914a, 2914c)와 너비는 동일하지만 높이가 다른 부호화 단위들(2914a, 2914c)의 높이의 두 배일 수 있다. 이 경우 가운데에 위치하는 부호화 단위(2914b)의 인덱스(PID)가 1이라면 그 다음 순서에 위치하는 부호화 단위(2914c)는 인덱스가 2가 증가한 3일수 있다. 이러한 경우처럼 균일하게 인덱스가 증가하다가 증가폭이 달라지는 경우, 영상 복호화 장치(200)는 다른 부호화 단위들과 다른 크기를 가지는 부호화 단위를 포함하는 복수개의 부호화 단위로 분할된 것으로 결정할 수 있다. 일 실시예에 따라 분할 형태 정보가 홀수개의 부호화 단위로 분할됨을 나타내는 경우, 영상 복호화 장치(200)는 홀수개의 부호화 단위 중 소정 위치의 부호화 단위(예를 들면 가운데 부호화 단위)가 다른 부호화 단위와 크기가 다른 형태로 현재 부호화 단위를 분할할 수 있다. 이 경우 영상 복호화 장치(200)는 부호화 단위에 대한 인덱스(PID)를 이용하여 다른 크기를 가지는 가운데 부호화 단위를 결정할 수 있다. 다만 상술한 인덱스, 결정하고자 하는 소정 위치의 부호화 단위의 크기 또는 위치는 일 실시예를 설명하기 위해 특정한 것이므로 이에 한정하여 해석되어서는 안되며, 다양한 인덱스, 부호화 단위의 위치 및 크기가 이용될 수 있는 것으로 해석되어야 한다. According to an exemplary embodiment, 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 2910 having a height greater than the width is divided into three encoding units, the image decoding apparatus 200 transmits the first encoding unit 2910 It can be divided into three coding units 2914a, 2914b and 2914c. The image decoding apparatus 200 may assign an index to each of the three encoding units 2914a, 2914b, and 2914c. 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 2914b having an index corresponding to a middle value among the indices based on the indices of the encoding units so as to encode the middle position among the encoding units determined by dividing the first encoding unit 2910 Can be determined as a unit. According to an exemplary embodiment, 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 . 29, the coding unit 2914b generated by dividing the first coding unit 2910 is divided into coding units 2914a and 2914c having the same width as the other coding units 2914a and 2914c but different in height Can be double the height. In this case, if the index (PID) of the coding unit 2914b positioned at the center is 1, the coding unit 2914c positioned next to the coding unit 2914c may be three days in which the index is increased by two. In this case, when the index increases uniformly and the increment increases, 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. According to an exemplary embodiment, when the division type information indicates division into odd number of coding 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. In this case, the image decoding apparatus 200 can determine an encoding unit having a different size by using an index (PID) for the encoding unit. However, 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.
일 실시예에 따라 영상 복호화 장치(200)는 부호화 단위의 재귀적인 분할이 시작되는 소정의 데이터 단위를 이용할 수 있다. According to an exemplary embodiment, the image decoding apparatus 200 may use a predetermined data unit in which recursive division of encoding units starts.
도 30은 일 실시예에 따라 픽처에 포함되는 복수개의 소정의 데이터 단위에 따라 복수개의 부호화 단위들이 결정된 것을 도시한다.30 shows that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to an embodiment.
일 실시예에 따라 소정의 데이터 단위는 부호화 단위가 블록 형태 정보 및 분할 형태 정보 중 적어도 하나를 이용하여 재귀적으로 분할되기 시작하는 데이터 단위로 정의될 수 있다. 즉, 현재 픽처를 분할하는 복수개의 부호화 단위들이 결정되는 과정에서 이용되는 최상위 심도의 부호화 단위에 해당할 수 있다. 이하에서는 설명 상 편의를 위해 이러한 소정의 데이터 단위를 기준 데이터 단위라고 지칭하도록 한다. According to an exemplary 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 a process of determining a plurality of coding units for dividing a current picture. Hereinafter, such a predetermined data unit is referred to as a reference data unit for convenience of explanation.
일 실시예에 따라 기준 데이터 단위는 소정의 크기 및 형태를 나타낼 수 있다. 일 실시예에 따라, 기준 부호화 단위는 MxN의 샘플들을 포함할 수 있다. 여기서 M 및 N은 서로 동일할 수도 있으며, 2의 승수로 표현되는 정수일 수 있다. 즉, 기준 데이터 단위는 정사각형 또는 비-정사각형의 형태를 나타낼 수 있으며, 이후에 정수개의 부호화 단위로 분할될 수 있다. According to one embodiment, the reference data unit may represent a predetermined size and shape. According to one embodiment, the reference encoding unit may comprise samples of MxN. Here, M and N may be equal to each other, or may be an integer represented by a multiplier of 2. That is, the reference data unit may represent a square or a non-square shape, and may be divided into an integer number of encoding units.
일 실시예에 따라 영상 복호화 장치(200)는 현재 픽처를 복수개의 기준 데이터 단위로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(200)는 현재 픽처를 분할하는 복수개의 기준 데이터 단위를 각각의 기준 데이터 단위에 대한 분할 정보를 이용하여 분할할 수 있다. 이러한 기준 데이터 단위의 분할 과정은 쿼드 트리(quad-tree)구조를 이용한 분할 과정에 대응될 수 있다. According to an embodiment, 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 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.
일 실시예에 따라 영상 복호화 장치(200)는 현재 픽처에 포함되는 기준 데이터 단위가 가질 수 있는 최소 크기를 미리 결정할 수 있다. 이에 따라, 영상 복호화 장치(200)는 최소 크기 이상의 크기를 갖는 다양한 크기의 기준 데이터 단위를 결정할 수 있고, 결정된 기준 데이터 단위를 기준으로 블록 형태 정보 및 분할 형태 정보를 이용하여 적어도 하나의 부호화 단위를 결정할 수 있다. According to an exemplary embodiment, the image decoding apparatus 200 may determine in advance a minimum size that a reference data unit included in a 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.
도 30을 참조하면, 영상 복호화 장치(200)는 정사각형 형태의 기준 부호화 단위(3000)를 이용할 수 있고, 또는 비-정사각형 형태의 기준 부호화 단위(3002)를 이용할 수도 있다. 일 실시예에 따라 기준 부호화 단위의 형태 및 크기는 적어도 하나의 기준 부호화 단위를 포함할 수 있는 다양한 데이터 단위(예를 들면, 시퀀스(sequence), 픽처(picture), 슬라이스(slice), 슬라이스 세그먼트(slice segment), 최대부호화단위 등)에 따라 결정될 수 있다. Referring to FIG. 30, the image decoding apparatus 200 may use a reference encoding unit 3000 of a square shape or a reference encoding unit 3002 of a non-square shape. According to an exemplary embodiment, 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).
일 실시예에 따라 영상 복호화 장치(200)의 수신부(210)는 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보 중 적어도 하나를 상기 다양한 데이터 단위마다 비트스트림으로부터 획득할 수 있다. 정사각형 형태의 기준 부호화 단위(3000)에 포함되는 적어도 하나의 부호화 단위가 결정되는 과정은 도 18의 현재 부호화 단위가 분할되는 과정을 통해 상술하였고, 비-정사각형 형태의 기준 부호화 단위(3000)에 포함되는 적어도 하나의 부호화 단위가 결정되는 과정은 도 19의 현재 부호화 단위(1900 또는 1950)가 분할되는 과정을 통해 상술하였으므로 자세한 설명은 생략하도록 한다.According to an embodiment, 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 3000 in the form of a square is described in detail in the process of dividing the current encoding unit of FIG. 18 and included in the non-square-type reference encoding unit 3000 The process of determining at least one encoding unit of FIG. 19 has been described in the process of dividing the current encoding unit 1900 or 1950 of FIG. 19, so a detailed description will be omitted.
일 실시예에 따라 영상 복호화 장치(200)는 소정의 조건에 기초하여 미리 결정되는 일부 데이터 단위에 따라 기준 부호화 단위의 크기 및 형태를 결정하기 위하여, 기준 부호화 단위의 크기 및 형태를 식별하기 위한 인덱스를 이용할 수 있다. 즉, 수신부(210)는 비트스트림으로부터 상기 다양한 데이터 단위(예를 들면, 시퀀스, 픽처, 슬라이스, 슬라이스 세그먼트, 최대부호화단위 등) 중 소정의 조건(예를 들면 슬라이스 이하의 크기를 갖는 데이터 단위)을 만족하는 데이터 단위로서 슬라이스, 슬라이스 세그먼트, 최대부호화 단위 등 마다, 기준 부호화 단위의 크기 및 형태의 식별을 위한 인덱스만을 획득할 수 있다. 영상 복호화 장치(200)는 인덱스를 이용함으로써 상기 소정의 조건을 만족하는 데이터 단위마다 기준 데이터 단위의 크기 및 형태를 결정할 수 있다. 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보를 상대적으로 작은 크기의 데이터 단위마다 비트스트림으로부터 획득하여 이용하는 경우, 비트스트림의 이용 효율이 좋지 않을 수 있으므로, 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보를 직접 획득하는 대신 상기 인덱스만을 획득하여 이용할 수 있다. 이 경우 기준 부호화 단위의 크기 및 형태를 나타내는 인덱스에 대응하는 기준 부호화 단위의 크기 및 형태 중 적어도 하나는 미리 결정되어 있을 수 있다. 즉, 영상 복호화 장치(200)는 미리 결정된 기준 부호화 단위의 크기 및 형태 중 적어도 하나를 인덱스에 따라 선택함으로써, 인덱스 획득의 기준이 되는 데이터 단위에 포함되는 기준 부호화 단위의 크기 및 형태 중 적어도 하나를 결정할 수 있다.In order to determine the size and type of the reference encoding unit according to a predetermined data unit predetermined based on a predetermined condition, 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 extracts a predetermined condition (for example, a data unit having a size equal to or smaller than a slice) among the various data units (for example, a sequence, a picture, a slice, a slice segment, It is possible to obtain only an index for identifying the size and type of the reference encoding unit for each slice, slice segment, maximum encoding unit, and the like. 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. When the information on the type of the reference encoding unit and the information on the size of the reference encoding unit are obtained from the bitstream for each relatively small data unit and used, the use efficiency of the bitstream may not be good. Therefore, Information on the size of the reference encoding unit and information on the size of the reference encoding unit can be acquired and used. In this case, at least one of the size and the type of the reference encoding unit corresponding to the index indicating the size and type of the reference encoding unit may be predetermined. 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.
일 실시예에 따라 영상 복호화 장치(200)는 하나의 최대 부호화 단위에 포함하는 적어도 하나의 기준 부호화 단위를 이용할 수 있다. 즉, 영상을 분할하는 최대 부호화 단위에는 적어도 하나의 기준 부호화 단위가 포함될 수 있고, 각각의 기준 부호화 단위의 재귀적인 분할 과정을 통해 부호화 단위가 결정될 수 있다. 일 실시예에 따라 최대 부호화 단위의 너비 및 높이 중 적어도 하나는 기준 부호화 단위의 너비 및 높이 중 적어도 하나의 정수배에 해당할 수 있다. 일 실시예에 따라 기준 부호화 단위의 크기는 최대부호화단위를 쿼드 트리 구조에 따라 n번 분할한 크기일 수 있다. 즉, 영상 복호화 장치(200)는 최대부호화단위를 쿼드 트리 구조에 따라 n 번 분할하여 기준 부호화 단위를 결정할 수 있고, 다양한 실시예들에 따라 기준 부호화 단위를 블록 형태 정보 및 분할 형태 정보 중 적어도 하나에 기초하여 분할할 수 있다.According to an exemplary embodiment, 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. That is, 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.
도 31은 일 실시예에 따라 픽처(3100)에 포함되는 기준 부호화 단위의 결정 순서를 결정하는 기준이 되는 프로세싱 블록을 도시한다.31 shows a processing block serving as a reference for determining a determination order of a reference encoding unit included in a picture 3100 according to an embodiment.
일 실시예에 따라 영상 복호화 장치(200)는 픽처를 분할하는 적어도 하나의 프로세싱 블록을 결정할 수 있다. 프로세싱 블록이란, 영상을 분할하는 적어도 하나의 기준 부호화 단위를 포함하는 데이터 단위로서, 프로세싱 블록에 포함되는 적어도 하나의 기준 부호화 단위는 특정 순서대로 결정될 수 있다. 즉, 각각의 프로세싱 블록에서 결정되는 적어도 하나의 기준 부호화 단위의 결정 순서는 기준 부호화 단위가 결정될 수 있는 다양한 순서의 종류 중 하나에 해당할 수 있으며, 각각의 프로세싱 블록에서 결정되는 기준 부호화 단위 결정 순서는 프로세싱 블록마다 상이할 수 있다. 프로세싱 블록마다 결정되는 기준 부호화 단위의 결정 순서는 래스터 스캔(raster scan), Z 스캔(Z-scan), N 스캔(N-scan), 우상향 대각 스캔(up-right diagonal scan), 수평적 스캔(horizontal scan), 수직적 스캔(vertical scan) 등 다양한 순서 중 하나일 수 있으나, 결정될 수 있는 순서는 상기 스캔 순서들에 한정하여 해석되어서는 안 된다. According to one 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.
일 실시예에 따라 영상 복호화 장치(200)는 프로세싱 블록의 크기에 대한 정보를 획득하여 영상에 포함되는 적어도 하나의 프로세싱 블록의 크기를 결정할 수 있다. 영상 복호화 장치(200)는 프로세싱 블록의 크기에 대한 정보를 비트스트림으로부터 획득하여 영상에 포함되는 적어도 하나의 프로세싱 블록의 크기를 결정할 수 있다. 이러한 프로세싱 블록의 크기는 프로세싱 블록의 크기에 대한 정보가 나타내는 데이터 단위의 소정의 크기일 수 있다. According to an exemplary embodiment, 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.
일 실시예에 따라 영상 복호화 장치(200)의 수신부(210)는 비트스트림으로부터 프로세싱 블록의 크기에 대한 정보를 특정의 데이터 단위마다 획득할 수 있다. 예를 들면 프로세싱 블록의 크기에 대한 정보는 영상, 시퀀스, 픽처, 슬라이스, 슬라이스 세그먼트 등의 데이터 단위로 비트스트림으로부터 획득될 수 있다. 즉 수신부(210)는 상기 여러 데이터 단위마다 비트스트림으로부터 프로세싱 블록의 크기에 대한 정보를 획득할 수 있고 영상 복호화 장치(200)는 획득된 프로세싱 블록의 크기에 대한 정보를 이용하여 픽처를 분할하는 적어도 하나의 프로세싱 블록의 크기를 결정할 수 있으며, 이러한 프로세싱 블록의 크기는 기준 부호화 단위의 정수배의 크기일 수 있다. According to an embodiment, 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. For example, information on the size of a processing block can be obtained from a bitstream in units of data such as an image, a sequence, a picture, a slice, a slice segment, or the like. That is, the receiving unit 210 may acquire information on the size of the processing block from the bitstream for each of the plurality of data units, and the image decoding apparatus 200 may obtain information on the size of the 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.
일 실시예에 따라 영상 복호화 장치(200)는 픽처(3100)에 포함되는 프로세싱 블록(3102, 3112)의 크기를 결정할 수 있다. 예를 들면, 영상 복호화 장치(200)는 비트스트림으로부터 획득된 프로세싱 블록의 크기에 대한 정보에 기초하여 프로세싱 블록의 크기를 결정할 수 있다. 도 31을 참조하면, 영상 복호화 장치(200)는 일 실시예에 따라 프로세싱 블록(3102, 3112)의 가로크기를 기준 부호화 단위 가로크기의 4배, 세로크기를 기준 부호화 단위의 세로크기의 4배로 결정할 수 있다. 영상 복호화 장치(200)는 적어도 하나의 프로세싱 블록 내에서 적어도 하나의 기준 부호화 단위가 결정되는 순서를 결정할 수 있다.According to an exemplary embodiment, the image decoding apparatus 200 may determine the sizes of the processing blocks 3102 and 3112 included in the picture 3100. For example, 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. Referring to FIG. 31, the image decoding apparatus 200 according to an exemplary embodiment of the present invention has a horizontal size of the processing blocks 3102 and 3112 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.
일 실시예에 따라, 영상 복호화 장치(200)는 프로세싱 블록의 크기에 기초하여 픽처(3100)에 포함되는 각각의 프로세싱 블록(3102, 3112)을 결정할 수 있고, 프로세싱 블록(3102, 3112)에 포함되는 적어도 하나의 기준 부호화 단위의 결정 순서를 결정할 수 있다. 일 실시예에 따라 기준 부호화 단위의 결정은 기준 부호화 단위의 크기의 결정을 포함할 수 있다.According to one embodiment, the video decoding apparatus 200 may determine each of the processing blocks 3102 and 3112 included in the picture 3100 based on the size of the processing block, and may include in the processing blocks 3102 and 3112 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.
일 실시예에 따라 영상 복호화 장치(200)는 비트스트림으로부터 적어도 하나의 프로세싱 블록에 포함되는 적어도 하나의 기준 부호화 단위의 결정 순서에 대한 정보를 획득할 수 있고, 획득한 결정 순서에 대한 정보에 기초하여 적어도 하나의 기준 부호화 단위가 결정되는 순서를 결정할 수 있다. 결정 순서에 대한 정보는 프로세싱 블록 내에서 기준 부호화 단위들이 결정되는 순서 또는 방향으로 정의될 수 있다. 즉, 기준 부호화 단위들이 결정되는 순서는 각각의 프로세싱 블록마다 독립적으로 결정될 수 있다.According to an exemplary 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.
일 실시예에 따라 영상 복호화 장치(200)는 특정 데이터 단위마다 기준 부호화 단위의 결정 순서에 대한 정보를 비트스트림으로부터 획득할 수 있다. 예를 들면, 수신부(210)는 기준 부호화 단위의 결정 순서에 대한 정보를 영상, 시퀀스, 픽처, 슬라이스, 슬라이스 세그먼트, 프로세싱 블록 등의 데이터 단위로마다 비트스트림으로부터 획득할 수 있다. 기준 부호화 단위의 결정 순서에 대한 정보는 프로세싱 블록 내에서의 기준 부호화 단위 결정 순서를 나타내므로, 결정 순서에 대한 정보는 정수개의 프로세싱 블록을 포함하는 특정 데이터 단위 마다 획득될 수 있다.According to an exemplary embodiment, 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. For example, the receiving unit 210 may acquire information on the determination order 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.
영상 복호화 장치(200)는 일 실시예에 따라 결정된 순서에 기초하여 적어도 하나의 기준 부호화 단위를 결정할 수 있다.The video decoding apparatus 200 may determine at least one reference encoding unit based on the determined order according to an embodiment.
일 실시예에 따라 수신부(210)는 비트스트림으로부터 프로세싱 블록(3102, 3112)과 관련된 정보로서, 기준 부호화 단위 결정 순서에 대한 정보를 획득할 수 있고, 영상 복호화 장치(200)는 상기 프로세싱 블록(3102, 3112)에 포함된 적어도 하나의 기준 부호화 단위를 결정하는 순서를 결정하고 부호화 단위의 결정 순서에 따라 픽처(3100)에 포함되는 적어도 하나의 기준 부호화 단위를 결정할 수 있다. 도 31을 참조하면, 영상 복호화 장치(200)는 각각의 프로세싱 블록(3102, 3112)과 관련된 적어도 하나의 기준 부호화 단위의 결정 순서(3104, 3114)를 결정할 수 있다. 예를 들면, 기준 부호화 단위의 결정 순서에 대한 정보가 프로세싱 블록마다 획득되는 경우, 각각의 프로세싱 블록(3102, 3112)과 관련된 기준 부호화 단위 결정 순서는 프로세싱 블록마다 상이할 수 있다. 프로세싱 블록(3102)과 관련된 기준 부호화 단위 결정 순서(3104)가 래스터 스캔(raster scan)순서인 경우, 프로세싱 블록(3102)에 포함되는 기준 부호화 단위는 래스터 스캔 순서에 따라 결정될 수 있다. 이에 반해 다른 프로세싱 블록(3112)과 관련된 기준 부호화 단위 결정 순서(3114)가 래스터 스캔 순서의 역순인 경우, 프로세싱 블록(3112)에 포함되는 기준 부호화 단위는 래스터 스캔 순서의 역순에 따라 결정될 수 있다.According to an embodiment, the receiving unit 210 may obtain information on the reference encoding unit determination order from the bitstream as the information related to the processing blocks 3102 and 3112, and the video decoding apparatus 200 may receive the information 3102, and 3112, and determine at least one reference encoding unit included in the picture 3100 according to the determination order of the encoding unit. Referring to FIG. 31, the image decoding apparatus 200 may determine a determination order 3104 and 3114 of at least one reference encoding unit associated with each of the processing blocks 3102 and 3112. For example, when information on the determination order of reference encoding units is obtained for each processing block, the reference encoding unit determination order associated with each processing block 3102 and 3112 may be different for each processing block. If the reference encoding unit determination order 3104 related to the processing block 3102 is a raster scan order, the reference encoding unit included in the processing block 3102 can be determined according to the raster scan order. On the other hand, when the reference encoding unit determination order 3114 related to the other processing block 3112 is a reverse order of the raster scan order, the reference encoding unit included in the processing block 3112 can be determined according to the reverse order of the raster scan order.
영상 복호화 장치(200)는 일 실시예에 따라, 결정된 적어도 하나의 기준 부호화 단위를 복호화할 수 있다. 영상 복호화 장치(200)는 상술한 실시예를 통해 결정된 기준 부호화 단위에 기초하여 영상을 복호화 할 수 있다. 기준 부호화 단위를 복호화 하는 방법은 영상을 복호화 하는 다양한 방법들을 포함할 수 있다.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.
일 실시예에 따라 영상 복호화 장치(200)는 현재 부호화 단위의 형태를 나타내는 블록 형태 정보 또는 현재 부호화 단위를 분할하는 방법을 나타내는 분할 형태 정보를 비트스트림으로부터 획득하여 이용할 수 있다. 블록 형태 정보 또는 분할 형태 정보는 다양한 데이터 단위와 관련된 비트스트림에 포함될 수 있다. 예를 들면, 영상 복호화 장치(200)는 시퀀스 파라미터 세트(sequence parameter set), 픽처 파라미터 세트(picture parameter set), 비디오 파라미터 세트(video parameter set), 슬라이스 헤더(slice header), 슬라이스 세그먼트 헤더(slice segment header)에 포함된 블록 형태 정보 또는 분할 형태 정보를 이용할 수 있다. 나아가, 영상 복호화 장치(200)는 최대 부호화 단위, 기준 부호화 단위, 프로세싱 블록마다 비트스트림으로부터 블록 형태 정보 또는 분할 형태 정보에 대응하는 신택스를 비트스트림으로부터 획득하여 이용할 수 있다.According to an exemplary embodiment, 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. For example, the video decoding apparatus 200 may include 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. Further, 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.
이제까지 다양한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.Various embodiments have been described above. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.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,

Claims (15)

  1. 부호화된 영상의 비트스트림을 수신하는 단계;Receiving a bitstream of the encoded image;
    상기 부호화된 영상으로부터 분할된 하나 이상의 블록을 결정하는 단계;Determining at least one block segmented from the encoded image;
    상기 하나 이상의 블록 중 현재 블록에 대해 DNN(Deep Neural Network)에 기반한 예측을 수행하여 상기 현재 블록에 대한 예측 데이터를 생성하는 단계;Performing prediction based on a DNN (Deep Neural Network) on a current block among the one or more blocks to generate prediction data for the current block;
    상기 비트스트림으로부터 상기 현재 블록의 레지듀얼 데이터를 추출하는 단계; 및Extracting residual data of the current block from the bitstream; And
    상기 예측 데이터와 상기 레지듀얼 데이터를 이용하여 상기 현재 블록을 복원하는 단계를 포함하는, 영상 복호화 방법.And reconstructing the current block using the prediction data and the residual data.
  2. 제 1 항에 있어서,The method according to claim 1,
    상기 DNN은, 상기 현재 블록의 원(original) 데이터와의 오차를 최소화한 상기 예측 데이터를 생성하도록 학습된 네트워크인, 영상 복호화 방법.Wherein the DNN is a network that has been learned to generate the prediction data that minimizes an error with the original data of the current block.
  3. 제 1 항에 있어서,The method according to claim 1,
    상기 예측 데이터를 생성하는 단계는,Wherein the step of generating the prediction data comprises:
    상기 현재 블록에 대해 DNN에 기반한 제 1 예측을 수행하여 제 1 예측 데이터를 생성하는 단계;Performing first prediction based on DNN for the current block to generate first prediction data;
    상기 제 1 예측 데이터에 대해 DNN에 기반한 제 2 예측을 수행하여 제 2 예측 데이터를 생성하는 단계; 및Generating second prediction data by performing a second prediction based on DNN with respect to the first prediction data; And
    상기 제 1 예측 데이터 및 상기 제 2 예측 데이터를 이용하여 상기 예측 데이터를 생성하는 단계를 포함하는, 영상 복호화 방법.And generating the prediction data using the first prediction data and the second prediction data.
  4. 제 3 항에 있어서,The method of claim 3,
    상기 제 1 예측은 RNN(Recurrent Neural Network)에 기반하여 수행되고, 상기 제 2 예측은 CNN(Convolutional Neural Network)에 기반하여 수행되는, 영상 복호화 방법.Wherein the first prediction is performed based on a RNN (Recurrent Neural Network), and the second prediction is performed based on a CNN (Convolutional Neural Network).
  5. 제 4 항에 있어서,5. The method of claim 4,
    상기 RNN은 상기 현재 블록의 원 데이터와의 오차를 최소화한 상기 제 1 예측 데이터를 생성하도록 학습된 네트워크인, 영상 복호화 방법.Wherein the RNN is a network that is learned to generate the first prediction data that minimizes an error with the original data of the current block.
  6. 제 4 항에 있어서,5. The method of claim 4,
    상기 CNN은 상기 현재 블록의 원 데이터에서 상기 제 1 예측 데이터를 뺀 값과의 오차를 최소화한 상기 제 2 예측 데이터를 생성하도록 학습된 네트워크인, 영상 복호화 방법.Wherein the CNN is a network that is learned to generate the second predictive data that minimizes an error with a value obtained by subtracting the first predictive data from original data of the current block.
  7. 제 4 항에 있어서,5. The method of claim 4,
    상기 제 1 예측 데이터를 생성하는 단계는,Wherein the generating the first prediction data comprises:
    상기 현재 블록에 인접한 주변 블록들을 시간 스텝(time step) 별로 소정 방향에 따라 상기 RNN 내 LSTM(long short-term memory) 네트워크의 각 셀(cell)에 입력하는 단계;Inputting neighboring blocks adjacent to the current block into cells of a long short-term memory (LSTM) network in the RNN according to a predetermined direction on a time step basis;
    상기 각 셀 내의 복수의 게이트(gate)를 이용하여 상기 시간 스텝에 대한 셀 출력을 생성하는 단계; 및Generating a cell output for the time step using a plurality of gates in each cell; And
    상기 RNN의 완전 연결 네트워크(fully connected network)를 통해, 상기 셀 출력을 처리하는 단계를 포함하는, 영상 복호화 방법.And processing the cell output via a fully connected network of the RNN.
  8. 제 7 항에 있어서,8. The method of claim 7,
    상기 입력하는 단계는,Wherein the step of inputting comprises:
    상기 현재 블록을 기준으로 하나 이상의 입력 각도를 결정하는 단계;Determining one or more input angles based on the current block;
    상기 하나 이상의 입력 각도의 각각을 따라 위치한 입력 각도 별 주변 블록을 결정하는 단계; 및Determining a neighboring block for each input angle located along each of the one or more input angles; And
    상기 입력 각도 별 주변 블록을 시계 방향의 순서로 상기 LSTM 네트워크의 각 셀에 입력하는 단계를 포함하는, 영상 복호화 방법.And inputting neighboring blocks for each input angle to each cell of the LSTM network in a clockwise order.
  9. 제 8 항에 있어서,9. The method of claim 8,
    상기 입력 각도 별 주변 블록이 복수 개일 경우, 동일한 입력 각도에 위치한 주변 블록들 사이의 입력 순서는 상기 현재 블록에서 먼 위치로부터 가까운 위치의 순서인, 영상 복호화 방법.Wherein an input order between neighboring blocks located at the same input angle is a position closer to a position farther from the current block when there are a plurality of neighboring blocks according to the input angle.
  10. 제 7 항에 있어서,8. The method of claim 7,
    상기 입력하는 단계는,Wherein the step of inputting comprises:
    상기 주변 블록들을 Z 스캔의 순서로 상기 LSTM 네트워크의 각 셀에 입력하는 단계를 포함하는, 영상 복호화 방법.And inputting the neighboring blocks to each cell of the LSTM network in the order of Z scans.
  11. 제 4 항에 있어서,5. The method of claim 4,
    상기 제 2 예측 데이터를 생성하는 단계는,Wherein the generating the second prediction data comprises:
    상기 제 1 예측 데이터 및 상기 현재 블록에 인접한 주변 복원 데이터를 상기 CNN의 컨볼루션 레이어(convolutional layer)에 입력하는 단계; 및Inputting the first prediction data and neighboring reconstructed data adjacent to the current block into a convolutional layer of the CNN; And
    상기 컨볼루션 레이어의 복수의 필터를 이용하여 컨볼루션 동작을 수행하는 단계를 포함하는, 영상 복호화 방법.And performing a convolution operation using a plurality of filters of the convolution layer.
  12. 제 1 항에 있어서,The method according to claim 1,
    상기 예측 데이터를 생성하는 단계는,Wherein the step of generating the prediction data comprises:
    상기 현재 블록이 참조하는 하나 이상의 참조 픽처 및 하나 이상의 참조 블록 위치를 결정하는 단계; 및Determining one or more reference pictures and one or more reference block locations to which the current block refers; And
    상기 하나 이상의 참조 픽처 및 상기 하나 이상의 참조 블록 위치를 이용하여 상기 예측 데이터를 생성하는 단계를 포함하는, 영상 복호화 방법.Generating the prediction data using the one or more reference pictures and the one or more reference block positions.
  13. 제 1 항에 있어서,The method according to claim 1,
    상기 DNN의 구조에 대한 정보 및 상기 DNN에 기반한 예측을 수행하는 블록에 대한 정보는 상기 비트스트림의 비디오 파라미터 세트, 시퀀스 파라미터 세트 및 픽처 파라미터 세트 중 적어도 하나로부터 획득되는, 영상 복호화 방법.Wherein information on the structure of the DNN and information on a block that performs prediction based on the DNN are obtained from at least one of a video parameter set, a sequence parameter set, and a picture parameter set of the bitstream.
  14. 부호화된 영상의 비트스트림을 수신하는 수신부;A receiver for receiving a bit stream of an encoded image;
    상기 부호화된 영상으로부터 분할된 하나 이상의 블록을 결정하는 블록 결정부;A block determining unit for determining one or more blocks divided from the encoded image;
    상기 하나 이상의 블록 중 현재 블록에 대해 DNN(Deep Neural Network)에 기반한 예측을 수행하여 상기 현재 블록에 대한 예측 데이터를 생성하는 예측부; 및A prediction unit for generating prediction data for the current block by performing prediction based on DNN (Deep Neural Network) on the current block among the one or more blocks; And
    상기 비트스트림으로부터 상기 현재 블록의 레지듀얼 데이터를 추출하고, 상기 예측 데이터와 상기 레지듀얼 데이터를 이용하여 상기 현재 블록을 복원하는 복원부를 포함하는, 영상 복호화 장치.And a decompression unit for extracting the residual data of the current block from the bitstream and restoring the current block using the prediction data and the residual data.
  15. 영상을 분할하는 하나 이상의 블록을 결정하는 단계;Determining one or more blocks to divide an image;
    상기 하나 이상의 블록 중 현재 블록에 대해 DNN(Deep Neural Network)에 기반한 예측을 수행하여 상기 현재 블록에 대한 예측 데이터를 생성하는 단계;Performing prediction based on a DNN (Deep Neural Network) on a current block among the one or more blocks to generate prediction data for the current block;
    상기 현재 블록에 대응하는 원(original) 데이터와 상기 예측 데이터를 이용하여 상기 현재 블록의 레지듀얼 데이터를 생성하는 단계; 및Generating residual data of the current block using original data corresponding to the current block and the prediction data; And
    상기 레지듀얼 데이터를 부호화한 비트스트림을 생성하는 단계를 포함하는, 영상 부호화 방법.And generating a bitstream obtained by coding the residual data.
PCT/KR2017/007270 2017-07-06 2017-07-06 Method and device for encoding or decoding image WO2019009452A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/KR2017/007270 WO2019009452A1 (en) 2017-07-06 2017-07-06 Method and device for encoding or decoding image
PCT/KR2018/001552 WO2019009491A1 (en) 2017-07-06 2018-02-06 Method and device for encoding or decoding image
CN201880045127.1A CN110892723B (en) 2017-07-06 2018-02-06 Method and apparatus for encoding or decoding image
KR1020207000379A KR102651878B1 (en) 2017-07-06 2018-02-06 Method and device for encoding or decoding video
US16/625,461 US11197013B2 (en) 2017-07-06 2018-02-06 Method and device for encoding or decoding image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2017/007270 WO2019009452A1 (en) 2017-07-06 2017-07-06 Method and device for encoding or decoding image

Publications (1)

Publication Number Publication Date
WO2019009452A1 true WO2019009452A1 (en) 2019-01-10

Family

ID=64950162

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/007270 WO2019009452A1 (en) 2017-07-06 2017-07-06 Method and device for encoding or decoding image

Country Status (1)

Country Link
WO (1) WO2019009452A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020154119A1 (en) * 2019-01-22 2020-07-30 Apple Inc. Predictive coding with neural networks
CN111641831A (en) * 2019-03-01 2020-09-08 杭州海康威视数字技术股份有限公司 Intra-frame prediction method, device, equipment and storage medium
CN112102004A (en) * 2020-09-18 2020-12-18 合肥工业大学 Click rate prediction fusion method based on residual error learning
CN113132735A (en) * 2019-12-30 2021-07-16 北京大学 Video coding method based on video frame generation
CN114363631A (en) * 2021-12-09 2022-04-15 慧之安信息技术股份有限公司 Deep learning-based audio and video processing method and device
WO2023287104A1 (en) * 2021-07-15 2023-01-19 주식회사 칩스앤미디어 Image encoding/decoding method using neural network-based in-loop filter, device, and recording medium storing bitstream

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150093633A (en) * 2010-11-08 2015-08-18 성균관대학교산학협력단 Methods of encoding and decoding using multi-level prediction and apparatuses for using the same
US20160360202A1 (en) * 2015-06-05 2016-12-08 Sony Corporation Banding prediction for video encoding
WO2017036370A1 (en) * 2015-09-03 2017-03-09 Mediatek Inc. Method and apparatus of neural network based processing in video coding
KR20170059040A (en) * 2015-11-19 2017-05-30 전자부품연구원 Optimal mode decision unit of video encoder and video encoding method using the optimal mode decision

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150093633A (en) * 2010-11-08 2015-08-18 성균관대학교산학협력단 Methods of encoding and decoding using multi-level prediction and apparatuses for using the same
US20160360202A1 (en) * 2015-06-05 2016-12-08 Sony Corporation Banding prediction for video encoding
WO2017036370A1 (en) * 2015-09-03 2017-03-09 Mediatek Inc. Method and apparatus of neural network based processing in video coding
KR20170059040A (en) * 2015-11-19 2017-05-30 전자부품연구원 Optimal mode decision unit of video encoder and video encoding method using the optimal mode decision

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TODERICI, GEORGE ET AL., FULL RESOLUTION IMAGE COMPRESSION WITH RECURRENT NEURAL NETWORKS, August 2016 (2016-08-01), pages 2 - 10, XP080720602, Retrieved from the Internet <URL:https://arxiv.org/abs/1608.05148> *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020154119A1 (en) * 2019-01-22 2020-07-30 Apple Inc. Predictive coding with neural networks
US11240492B2 (en) 2019-01-22 2022-02-01 Apple Inc. Neural network based residual coding and prediction for predictive coding
CN111641831A (en) * 2019-03-01 2020-09-08 杭州海康威视数字技术股份有限公司 Intra-frame prediction method, device, equipment and storage medium
CN111641831B (en) * 2019-03-01 2023-09-01 杭州海康威视数字技术股份有限公司 Intra-frame prediction method, device, equipment and storage medium
CN113132735A (en) * 2019-12-30 2021-07-16 北京大学 Video coding method based on video frame generation
CN112102004A (en) * 2020-09-18 2020-12-18 合肥工业大学 Click rate prediction fusion method based on residual error learning
CN112102004B (en) * 2020-09-18 2022-08-30 合肥工业大学 Click rate prediction fusion method based on residual error learning
WO2023287104A1 (en) * 2021-07-15 2023-01-19 주식회사 칩스앤미디어 Image encoding/decoding method using neural network-based in-loop filter, device, and recording medium storing bitstream
CN114363631A (en) * 2021-12-09 2022-04-15 慧之安信息技术股份有限公司 Deep learning-based audio and video processing method and device
CN114363631B (en) * 2021-12-09 2022-08-05 慧之安信息技术股份有限公司 Deep learning-based audio and video processing method and device

Similar Documents

Publication Publication Date Title
WO2019009491A1 (en) Method and device for encoding or decoding image
WO2019009488A1 (en) Method and device for encoding or decoding image
WO2019009452A1 (en) Method and device for encoding or decoding image
WO2020262995A1 (en) Video signal processing method and device using secondary transform
WO2017065525A2 (en) Method and device for encoding or decoding image
WO2011068360A2 (en) Method and apparatus for encoding/decoding high resolution images
WO2020076143A1 (en) Video signal processing method and apparatus using multi-assumption prediction
WO2020080698A1 (en) Method and device for evaluating subjective quality of video
WO2017026681A1 (en) Inter prediction method and apparatus in video coding system
WO2017014585A1 (en) Method and device for processing video signal using graph-based transform
WO2019235896A1 (en) Video signal processing method and apparatus using adaptive motion vector resolution
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
WO2021177652A1 (en) Image encoding/decoding method and device for performing feature quantization/de-quantization, and recording medium for storing bitstream
WO2013002554A2 (en) Video encoding method using offset adjustments according to pixel classification and apparatus therefor, video decoding method and apparatus therefor
WO2013002619A2 (en) Video encoding method with bit depth adjustment for fixed-point conversion and apparatus therefor, and video decoding method and aparatus therefor
WO2017086747A1 (en) Method and device for encoding/decoding image using geometrically modified picture
WO2018047995A1 (en) Intra-prediction mode-based image processing method and apparatus therefor
WO2020246806A1 (en) Matrix-based intra prediction device and method
WO2016195455A1 (en) Method and device for processing video signal by using graph-based transform
WO2017010850A1 (en) Method and device for processing video signal by using separable graph-based transform
WO2021054676A1 (en) Image encoding/decoding method and device for performing prof, and method for transmitting bitstream
WO2018124333A1 (en) Intra prediction mode-based image processing method, and apparatus therefor
WO2018174457A1 (en) Image processing method and device therefor
WO2018044125A1 (en) Method and apparatus for performing transformation using layered givens transform
WO2020213945A1 (en) Transform in intra prediction-based image coding

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: 17916481

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17916481

Country of ref document: EP

Kind code of ref document: A1