WO2017043766A1 - Video encoding and decoding method and device - Google Patents

Video encoding and decoding method and device Download PDF

Info

Publication number
WO2017043766A1
WO2017043766A1 PCT/KR2016/008258 KR2016008258W WO2017043766A1 WO 2017043766 A1 WO2017043766 A1 WO 2017043766A1 KR 2016008258 W KR2016008258 W KR 2016008258W WO 2017043766 A1 WO2017043766 A1 WO 2017043766A1
Authority
WO
WIPO (PCT)
Prior art keywords
region
prediction block
block
generating
motion vector
Prior art date
Application number
PCT/KR2016/008258
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 KR1020177034246A priority Critical patent/KR20180040517A/en
Priority to CN201680052136.4A priority patent/CN108028933A/en
Priority to US15/741,018 priority patent/US20180199058A1/en
Priority to EP16844586.4A priority patent/EP3297286A4/en
Publication of WO2017043766A1 publication Critical patent/WO2017043766A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/439Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using cascaded computational arrangements for performing a single operation, e.g. filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Definitions

  • the present invention relates to a video encoding and decoding method and apparatus, and more particularly, to a video encoding and decoding method and apparatus for performing inter prediction.
  • Image compression technology is a technique of compressing image data by dividing one frame into a plurality of blocks in order to reduce bits to be processed, and removing temporal and spatial redundancy for each block.
  • a method of compressing an image using pixels around a target block to be encoded is an example of a method of compressing an image by removing spatial redundancy, and the method is generally referred to as intra prediction encoding.
  • a method of compressing an image using a reference block of another frame compressed before a target block is an example of a method of compressing an image by removing temporal redundancy, and the method is called inter prediction encoding.
  • the present invention is directed to the above-described needs, and an object of the present invention is to provide a video encoding and decoding method and apparatus for performing inter prediction by dividing a target block of a current frame into a plurality of regions.
  • the target block of the current frame is divided into a first region and a second region according to a predetermined division method, the first Generating a first prediction block including a region corresponding to the first region by searching for a first motion vector with respect to the first region in a reference frame, according to the preset division method, Dividing a first prediction block into a third region and a fourth region, and generating boundary information; searching for a second motion vector of the fourth region corresponding to the second region in a second reference frame to search for the fourth region; Generating a second prediction block including an area corresponding to an area and merging the first prediction block and the second prediction block according to the boundary information to correspond to the target block; Generating a third predictive block.
  • the first motion vector and the first motion vector found in the first reference frame with respect to the target block to be decoded in the current frame Receiving a second motion vector searched in a second reference frame, in each of the first reference frame and the second reference frame, based on the first motion vector and the second motion vector, a first prediction block and a second motion vector; Generating a prediction block, dividing the first prediction block into a plurality of regions according to a predetermined division method, generating boundary information, and generating the first prediction block and the second prediction block according to the boundary information. Generating a third prediction block corresponding to the target block by merging.
  • the encoding apparatus divides a target block of a current frame into a first region and a second region according to an interface for communicating with a decoding apparatus and a predetermined division method, and includes a first reference.
  • the decoding apparatus may include a first motion vector and a first motion vector searched in a first reference frame with respect to an interface communicating with the encoding apparatus and a target block to be decoded in the current frame.
  • a first prediction block is based on the first motion vector and the second motion vector.
  • generating a second prediction block dividing the first prediction block into a plurality of regions according to a predetermined division method, generating boundary information, and generating the first prediction block and the second prediction according to the boundary information.
  • the prediction accuracy may be improved by dividing the target block of the current frame into a plurality of regions according to pixel values of the target block.
  • FIG. 1 is a block diagram showing a configuration of an encoding apparatus for helping understanding of the present invention.
  • FIG. 2 is a block diagram showing a configuration of a decoding apparatus for helping understanding of the present invention.
  • FIG. 3 is a simplified block diagram illustrating an encoding apparatus according to an embodiment of the present invention.
  • 4A and 4B are diagrams for describing a method of dividing a target block, according to an exemplary embodiment.
  • FIG. 5 is a diagram for describing a method of generating a prediction block according to an embodiment of the present invention.
  • 6A and 6B are diagrams for describing boundary information according to an embodiment of the present invention.
  • FIG. 7 is a diagram for describing a method of merging prediction blocks according to an embodiment of the present invention.
  • FIG. 8 is a simplified block diagram illustrating a decoding apparatus according to an embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating a prediction block generation method of an encoding apparatus according to an embodiment of the present invention.
  • FIG. 10 is a flowchart illustrating a method of generating a prediction block of a decoding apparatus according to an embodiment of the present invention.
  • one component eg, a first component
  • another component eg, a second component
  • Reference to “connected to” should be understood to include all components, even when each component is directly connected or indirectly connected through another component (eg, a third component).
  • a component e.g., a first component
  • it is different from a component. It may be understood that there is no other component (eg, a third component) between the elements.
  • the encoding apparatus 100 may include a motion predictor 111, a motion compensator 112, an intra predictor 120, a switch 115, a subtractor 125, and a converter 130. And a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference image buffer 190.
  • the encoding apparatus 100 is an apparatus that encodes a video and changes it into another signal form.
  • the video includes a plurality of frames, and each frame may include a plurality of pixels.
  • the encoding apparatus 100 may be an apparatus for compressing raw original data.
  • the encoding apparatus 100 may be an apparatus for changing the precoded data into another signal form.
  • the encoding apparatus 100 may perform encoding by dividing each frame into a plurality of blocks.
  • the encoding apparatus 100 may perform encoding on a block basis through temporal or spatial prediction, transformation, quantization, filtering, entropy encoding, and the like.
  • Prediction means generating a prediction block similar to a target block to be encoded.
  • a unit of a target block to be encoded may be defined as a prediction unit (PU), and prediction is divided into temporal prediction and spatial prediction.
  • Temporal prediction means inter prediction.
  • the encoding apparatus 100 may store some reference pictures having a high correlation with the current image to be encoded, and may perform inter-screen prediction by using the reference pictures. That is, the encoding apparatus 100 may generate a prediction block from a reference image decoded after encoding at a previous time. In this case, the encoding apparatus 100 is said to be inter prediction encoding.
  • the motion predictor 111 may search for a block having the highest temporal correlation with the target block from the reference image stored in the reference image buffer 190.
  • the motion predictor 111 may search for a block having the highest temporal correlation with the target block in the interpolated image by interpolating the reference image.
  • the reference picture buffer 190 is a space for storing the reference picture.
  • the reference image buffer 190 is used only when performing inter prediction and may store some reference images having a high correlation with the image to be currently encoded.
  • the reference image may be an image generated by sequentially transforming, quantizing, inverse quantization, inverse transformation, and filtering a difference block to be described later. That is, the reference picture may be a picture decoded after encoding.
  • the motion compensator 112 may generate a prediction block based on the motion information of the block having the highest temporal correlation with the target block found by the motion predictor 111.
  • the motion information may include a motion vector, a reference picture index, and the like.
  • the intra predictor 120 may generate a prediction value for the target block by performing spatial prediction from encoded neighboring pixels in the current image.
  • the encoding apparatus 100 is said to be intra prediction encoding.
  • Inter prediction encoding or intra prediction encoding may be determined in units of coding units (CUs).
  • the coding unit may include at least one prediction unit.
  • the position of the switch 115 may be changed to correspond to the method of predictive encoding.
  • the reference picture decoded after temporal prediction may be an image to which filtering has been applied, or the adjacent pixels decoded after encoding in spatial prediction may be pixels to which no filtering is applied.
  • the subtractor 125 may generate a residual block by obtaining a difference between the target block and the prediction block obtained from the temporal prediction or the spatial prediction.
  • the difference block may be a block from which a lot of redundancy has been removed by the prediction process, but may be a block including information to be encoded because the prediction is not completely performed.
  • the transformer 130 may output a transform coefficient of the frequency domain by transforming the difference block after prediction within the screen or between the screens in order to remove spatial redundancy.
  • a unit of a transform is a transform unit (TU), and may be determined irrespective of a prediction unit.
  • TU transform unit
  • a frame including a plurality of difference blocks may be divided into a plurality of transform units regardless of a prediction unit, and the transform unit 130 may perform the transform for each transform unit.
  • the division of the transform unit may be determined according to the bit rate optimization.
  • the present invention is not limited thereto, and the transform unit may be determined in association with at least one of the coding unit and the prediction unit.
  • the converter 130 may perform a conversion to concentrate energy of each conversion unit in a specific frequency region.
  • the transform unit 130 may concentrate data in the low frequency region by performing a discrete cosine transform (DCT) based transformation on each transform unit.
  • the transform unit 130 may perform a Discrete Fourier Transform (DFT) based transform or a Discrete Sine Transform (DST) based transform.
  • DCT discrete cosine transform
  • DFT Discrete Fourier Transform
  • DST Discrete Sine Transform
  • the quantization unit 140 performs quantization on the transform coefficients and approximates the transform coefficients to representative values of a predetermined number. That is, the quantization unit 140 may map input values in a specific range to one representative value. In this process, high frequency signals that are not well recognized by humans can be eliminated and information loss can occur.
  • the quantization unit 140 may use one of equalization and non-uniform quantization methods according to the probability distribution of the input data or the purpose of quantization. For example, when the probability distribution of the input data is equal, the quantization unit 140 may use an equalization quantization method. Alternatively, the quantization unit 140 may use a non-uniform quantization method when the probability distribution of the input data is not equal.
  • the entropy encoder 150 may reduce the amount of data by variably allocating the lengths of the symbols according to the occurrence probability of the symbol with respect to the data input from the quantization unit 140. That is, the entropy encoder 150 may generate a bit stream by expressing the input data as a bit string having a variable length consisting of 0 and 1 based on the probability model.
  • the entropy encoder 150 may express input data by allocating a small number of bits to a symbol having a high occurrence probability and a large number of bits to a symbol having a low occurrence probability. Accordingly, the size of the bit string of the input data can be reduced, and the compression performance of video encoding can be improved.
  • the entropy encoder 150 may perform entropy coding by variable length coding or arithmetic coding such as Huffman coding and Exponential-Golomb coding.
  • the inverse quantization unit 160 and the inverse transform unit 170 may receive the input quantized transform coefficients and perform inverse transformation after inverse quantization, respectively, to generate a reconstructed differential block.
  • the adder 175 may generate the reconstructed block by adding the reconstructed difference block and the predictive block obtained from the temporal prediction or the spatial prediction.
  • the filter unit 180 may apply at least one of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the reconstructed image.
  • the filtered reconstructed image may be stored in the reference image buffer 190 and used as a reference image.
  • the decoding apparatus 200 may include an entropy decoder 210, an inverse quantizer 220, an inverse transformer 230, an adder 235, an intra predictor 240, and a motion compensator ( 250, a switch 255, a filter unit 260, and a reference image buffer 270.
  • the decoding apparatus 200 may reconstruct a video by receiving a bit stream generated by the encoding apparatus and performing decoding.
  • the decoding apparatus 200 may perform decoding through entropy decoding, inverse quantization, inverse transformation, filtering, and the like on a block basis.
  • the entropy decoder 210 may entropy decode the input bit stream to generate quantized transform coefficients.
  • the entropy decoding method may be a method in which the method used by the entropy encoder 150 is reversely applied to FIG. 1.
  • the inverse quantization unit 220 may receive inverse quantization by receiving a quantized transform coefficient. That is, according to the operations of the quantization unit 140 and the inverse quantization unit 220, an input value of a specific range is changed to any one reference input value within a specific range, and in this process, an input value and one reference input value As much as errors can occur.
  • the inverse transform unit 230 inversely transforms the data output from the inverse quantization unit 220, and inversely applies the method used by the transformer 130 inversely.
  • the inverse transform unit 230 may generate a reconstructed difference block by performing inverse transform.
  • the adder 235 may generate the reconstructed block by adding the reconstructed difference block and the predictive block.
  • the prediction block may be a block generated by inter prediction encoding or intra prediction encoding.
  • the motion compensator 250 receives or derives motion information about a target block to be decoded from the encoding apparatus 100 (derived from a neighboring block) and based on the received or derived motion information.
  • a prediction block can be generated.
  • the motion compensator 250 may generate a prediction block from the reference picture stored in the reference picture buffer 270.
  • the motion information may include a motion vector, a reference picture index, and the like, for a block having the highest temporal correlation with the target block.
  • the reference image buffer 270 may store some reference images having a high correlation with the image to be currently decoded.
  • the reference image may be an image generated by filtering the above-described reconstruction block. That is, the reference image may be an image obtained by decoding a bit stream generated by the encoding apparatus.
  • the reference image used in the decoding apparatus may be the same as the reference image used in the encoding apparatus.
  • the intra prediction unit 240 may generate a prediction value for a target block by performing spatial prediction from encoded adjacent pixels in the current image.
  • the switch 255 may be changed in position according to the method of predictive encoding of the target block.
  • the filter unit 260 may apply at least one of a deblocking filter, SAO, and ALF to the reconstructed image.
  • the filtered reconstructed image may be stored in the reference image buffer 270 and used as a reference image.
  • the decoding apparatus 200 may further include a parser (not shown) which parses information related to an encoded image included in a bit stream.
  • the parser may include the entropy decoder 210 or may be included in the entropy decoder 210.
  • the encoding apparatus 100 may compress data of a video through an encoding process and transmit the compressed data to the decoding apparatus 200.
  • the decoding apparatus 200 may reconstruct the video by decoding the compressed data.
  • FIG. 3 is a simplified block diagram illustrating an encoding device 100 according to an embodiment of the present invention.
  • the encoding apparatus 100 includes an interface 310 and a processor 320.
  • FIG. 3 briefly illustrates various components, for example, when the encoding apparatus 100 is a device having a function such as a communication function and a control function. Therefore, according to the exemplary embodiment, some of the components shown in FIG. 3 may be omitted or changed, and other components may be further added.
  • the interface 310 may communicate with the decryption apparatus 200.
  • the interface 310 may transmit the encoded bit stream, motion information, or the like to the decoding apparatus 200.
  • the interface 310 communicates with the decryption apparatus 200 using wired / wireless LAN, WAN, Ethernet, Bluetooth, Zigbee, IEEE 1394, Wifi, or Power Line Communication (PLC). Can be performed.
  • wired / wireless LAN WAN, Ethernet, Bluetooth, Zigbee, IEEE 1394, Wifi, or Power Line Communication (PLC).
  • PLC Power Line Communication
  • the processor 320 may divide the target block of the current frame to be encoded into a first region and a second region according to a preset division method.
  • the predetermined division method may be a method of dividing the target block into a plurality of areas based on pixel values of a plurality of pixels constituting the target block.
  • the processor 320 may calculate an average value from pixel values of a plurality of pixels constituting the target block, and divide the target block into a first area and a second area based on the average value.
  • the processor 320 may divide the target block using a predetermined value rather than an average value.
  • the present invention is not limited thereto, and the processor 320 may use any method as long as it can determine a boundary in the target block.
  • the processor 320 may generate a first prediction block including a region corresponding to the first region by searching for a first motion vector with respect to the first region in the first reference frame.
  • the reference frame may be one of the reference pictures.
  • the motion vector may be represented by ( ⁇ x, ⁇ y).
  • the first prediction block may be a region located at (-1, 5) with respect to the first region in a frame before one frame of the frame having the first region.
  • the motion vector may be a difference between the same reference point of the first region and the first prediction block.
  • the motion vector may be a difference between coordinate values of an upper left point of the first region and an upper left point of the first prediction block.
  • the processor 320 may search for an area corresponding to only the first area and not an area corresponding to the entire target block. That is, the processor 320 may search for a block having the highest temporal correlation with the first block, instead of searching for a block having the highest temporal correlation with the target block.
  • the processor 320 may search for a first motion vector with respect to the first region in the first reference frame and apply a first prediction corresponding to a region in which different weights are applied to pixel values constituting the first region and the second region, respectively. You can also create blocks. Here, the processor 320 may determine a weight to be applied to the first region and the second region based on pixel values constituting the first region and the second region.
  • the processor 320 may divide the first prediction block into a third region and a fourth region according to a predetermined division method, and generate boundary information.
  • the predetermined division method is the same as the method of dividing the target block.
  • the decoding apparatus 200 cannot divide the target block because there is no information about the target block (the original image). However, the decoding apparatus 200 may reconstruct the reference frame, and thus may split the first prediction block that is a part of the first reference frame.
  • the encoding apparatus 100 splits the target block using a predetermined method and the decoding apparatus 200 splits the first prediction block using the same preset method, the splitting result is different, and an error is generated. Will occur.
  • the encoding apparatus 100 divides the first prediction block into the third region and the fourth region, since the same first prediction block as the decoding apparatus 200 may be divided, an error does not occur. Therefore, the encoding apparatus 100 splits the first prediction block once again when the first prediction block is generated.
  • the third region divided by the same method has a form similar to that of the first region. Accordingly, the fourth region also has a similar shape to the second region.
  • the processor 320 may generate a second prediction block including a region corresponding to the fourth region by searching for a second motion vector for the fourth region corresponding to the second region in the second reference frame.
  • the second reference frame may be one of the reference pictures, and may be a different frame from the first reference frame.
  • the present invention is not limited thereto, and the second reference frame and the first reference frame may be the same frame.
  • the processor 320 may search for an area corresponding only to the fourth area, not an area corresponding to the entire first prediction block. That is, the processor 320 may search for the block having the highest temporal correlation with the fourth region, instead of searching for the block having the highest temporal correlation with the first prediction block.
  • the processor 320 may search for a second motion vector with respect to a fourth region corresponding to the second region in the second reference frame, and apply a different weight to the pixel values constituting the third region and the fourth region.
  • a corresponding second prediction block may be generated.
  • the processor 320 may determine weights to be applied to the third and fourth regions based on pixel values constituting the third and fourth regions.
  • the processor 320 may generate a third prediction block corresponding to the target block by merging the first prediction block and the second prediction block according to the boundary information. For example, the processor 320 may generate the third prediction block by merging the third region of the first prediction block and the region corresponding to the fourth region in the second prediction block based on the boundary information.
  • the processor 320 may apply horizontal and vertical filtering to boundaries between regions corresponding to the third region and the fourth region.
  • the processor 320 may control the interface 310 to transmit the first motion vector and the second motion vector to the decoding apparatus 200.
  • 4A and 4B are diagrams for describing a method of dividing a target block, according to an exemplary embodiment.
  • the left side of FIG. 4A shows the current frame to be encoded, and the right side shows an enlarged view of the target block 410 of the current frame.
  • the current frame is divided into a plurality of blocks of the same size, but this is only an example.
  • the current frame may be divided into a plurality of blocks of different sizes or may include rectangular blocks other than squares.
  • the processor 320 may divide the target block 410 into the first region 420 and the second region 430 according to a predetermined division method. For example, the processor 320 may divide the target block 410 based on a predetermined pixel value.
  • the preset pixel value may be an average pixel value of a plurality of pixels constituting the target block 410. Alternatively, the preset pixel value may be an average pixel value of some pixels constituting the target block 410. Alternatively, the preset pixel value may be a pixel value set by the user.
  • the processor 320 may divide the target block 410 into two regions based on one pixel value, but is not limited thereto. For example, the processor 320 may divide the target block 410 into a plurality of regions based on the plurality of pixel values.
  • the processor 320 divides the target block 410 into the first region 420, the second region 430, and the third region 440 based on a predetermined pixel value. You may. In this case, the processor 320 ignores the third region 440 in consideration of the number of pixels constituting the third region 440, and replaces the target block 410 with the first region 420 and the second region ( 430 may be divided. Accordingly, the processor 320 may distinguish the target block 410 based on the most prominent boundary of the target block 410.
  • the present invention is not limited thereto, and the processor 320 may not divide the target block 410.
  • the processor 320 may not divide the target block 410 when the pixel values of the plurality of pixels constituting the target block 410 are irregular.
  • FIG. 5 is a diagram for describing a method of generating a prediction block according to an embodiment of the present invention.
  • the processor 320 searches for a first motion vector for the first area 510 in the reference frame to generate a first prediction block 530 including an area corresponding to the first area. can do.
  • the processor 320 may perform prediction without considering the second region 520.
  • prediction may be performed by considering a part of the second region.
  • the processor 320 searches for a first motion vector for the first region 510 in the reference frame, and applies different weights to pixel values constituting the first region 510 and the second region 520, respectively.
  • the first prediction block 530 corresponding to the region may be generated.
  • the processor 320 may determine a weight to be applied to the first region 510 and the second region 520 based on pixel values constituting the first region 510 and the second region 520.
  • the processor 320 may determine a weight to be applied to each region so that the boundary of the first region 510 and the second region 520 is prominent.
  • the present invention is not limited thereto, and the processor 320 may set the shape of the first region 510 to be more important than the pixel value of the first region 510 and perform prediction. Alternatively, the processor 320 may set the shape of the first area 510 to be more important than the shape of the second area 520 and perform prediction.
  • the processor 320 may perform bidirectional prediction.
  • the processor 320 may perform bidirectional prediction considering only the first region 510.
  • the processor 320 may perform weighted prediction.
  • 6A and 6B are diagrams for describing boundary information according to an embodiment of the present invention.
  • the processor 320 may generate the first prediction block and then divide the first prediction block by the same division method as the division method of the target block.
  • the first prediction block is similar to the target block, but may not be exactly the same. Therefore, as shown in FIG. 6A, the division boundary 610 of the target block and the division boundary 620 of the first prediction block may have an error.
  • the processor 320 may divide the first prediction block and generate boundary information.
  • the boundary information may be generated as a mask for each region.
  • the boundary information may be information indicating the coordinates of the boundary of each region.
  • the processor 320 divides the first prediction block into a third region and a fourth region, searches for a second motion vector for the fourth region corresponding to the second region in the second reference frame, and corresponds to the fourth region.
  • a second prediction block including the region may be generated. Since this process is the same as the method of generating the prediction block of FIG. 5, a detailed description thereof is omitted.
  • FIG. 7 is a diagram for describing a method of merging prediction blocks according to an embodiment of the present invention.
  • the processor 320 merges the first prediction block 710 and the second prediction block 720 according to the boundary information 735, and thus the third prediction block 730 corresponding to the target block. Can be generated.
  • the boundary information 735 may be information about a division boundary of the first prediction block.
  • the processor 320 may correspond to the region 725 corresponding to the fourth region 716 in the third region 715 and the second prediction block 720 of the first prediction block 710 based on the boundary information 735. ) May be merged to generate a third prediction block 730.
  • the processor 320 may generate the third prediction block 730 by masking the first prediction block 710 and the second prediction block 720.
  • the processor 320 may generate the third prediction block 730 by applying different weights to the first prediction block 710 and the second prediction block 720, respectively.
  • the processor 320 generates the third prediction block 730 and then applies horizontal and vertical filtering to the boundary between the region 725 corresponding to the third region 715 and the fourth region 716. can do.
  • the processor 320 may determine the filter coefficient and the size in consideration of the characteristics of the third prediction block 730.
  • the processor 320 may transmit the generated motion vector to the decoding apparatus 200.
  • the processor 320 may transmit the absolute value of the generated motion vector to the decoding apparatus 200 or may transmit a difference value with the predicted motion vector. In this case, the processor 320 may use different prediction motion vectors for each divided region.
  • FIG. 8 is a simplified block diagram illustrating a decoding apparatus 200 according to an embodiment of the present invention.
  • the decoding device 200 includes an interface 810 and a processor 820.
  • FIG. 8 is a diagram briefly illustrating various components, for example, when the decoding apparatus 200 is a device having a function such as a communication function and a control function. Therefore, according to an embodiment, some of the components shown in FIG. 8 may be omitted or changed, and other components may be further added.
  • the interface 810 may communicate with the encoding apparatus 100.
  • the interface 810 may receive an encoded bit stream, motion information, and the like from the encoding apparatus 100.
  • the interface 810 communicates with the encoding apparatus 100 using wired / wireless LAN, WAN, Ethernet, Bluetooth, Zigbee, IEEE 1394, Wifi, or Power Line Communication (PLC). Can be performed.
  • wired / wireless LAN WAN, Ethernet, Bluetooth, Zigbee, IEEE 1394, Wifi, or Power Line Communication (PLC).
  • PLC Power Line Communication
  • the processor 820 receives, from the encoding apparatus 100, the first motion vector searched in the first reference frame and the second motion vector searched in the second reference frame with respect to the target block to be decoded in the current frame. can do.
  • the processor 820 may receive the absolute values of the first motion vector and the second motion vector from the encoding apparatus 100.
  • the processor 820 may receive a difference value with the predicted motion vector.
  • the processor 820 may receive a difference value using different prediction motion vectors for each divided region.
  • the processor 820 may calculate the motion vector by adding the predicted motion vector and the difference value.
  • the processor 820 may generate a first prediction block and a second prediction block based on the first motion vector and the second motion vector in each of the first reference frame and the second reference frame.
  • the first reference frame and the second reference frame may be the same reference frame.
  • the reference frame may be one of the reference images.
  • the processor 820 may divide the first prediction block into a plurality of regions and generate boundary information according to a predetermined division method.
  • the preset division method is the same as the preset method of dividing the target block used by the encoding apparatus 100.
  • the division method there may be a method of dividing the first prediction block into a plurality of regions based on pixel values of a plurality of pixels constituting the first prediction block.
  • the processor 820 may generate a third prediction block corresponding to the target block by merging the first prediction block and the second prediction block according to the boundary information.
  • the processor 820 divides the first prediction block into the first region and the second region according to a preset division method, and based on the boundary information, the processor 820 removes the first prediction block from the first region and the second prediction block of the first prediction block.
  • the third prediction block may be generated by merging regions corresponding to the two regions. However, this is only an example.
  • the third prediction block may be generated by dividing the first prediction block into three or more regions.
  • the processor 820 may apply horizontal and vertical filtering to boundaries between regions corresponding to the first region and the second region. In particular, the processor 820 may determine the filter coefficient and the size in consideration of the characteristics of the third prediction block.
  • FIG. 8 a prediction block generation operation of the decoding apparatus 200 has been described. Except for performing the prediction, the operation of generating the prediction block is the same as the encoding apparatus 100, and thus, a detailed description thereof is omitted. In addition, since the operation of the decoding apparatus 200 after generating the predictive block is the same as described with reference to FIG. 2, it is omitted.
  • FIG. 9 is a flowchart illustrating a prediction block generation method of an encoding apparatus according to an embodiment of the present invention.
  • the target block of the current frame is divided into a first region and a second region according to a predetermined division method (S910).
  • a first prediction block including a region corresponding to the first region is generated by searching for a first motion vector for the first region in the first reference frame.
  • the first prediction block is divided into a third region and a fourth region, and boundary information is generated according to a predetermined division method.
  • a second prediction block including a region corresponding to the fourth region is generated by searching for a second motion vector for the fourth region corresponding to the second region in the second reference frame.
  • the first prediction block and the second prediction block are merged according to the boundary information to generate a third prediction block corresponding to the target block.
  • the predetermined division method may be a method of dividing the target block into a plurality of areas based on pixel values of a plurality of pixels constituting the target block.
  • generating the third prediction block may generate a third prediction block by merging the third region of the first prediction block and the region corresponding to the fourth region in the second prediction block. Can be.
  • horizontal and vertical filtering may be applied to boundaries between regions corresponding to the third and fourth regions.
  • the generating of the first prediction block searches for a first motion vector for the first region in the first reference frame, and applies different weights to pixel values constituting the first region and the second region, respectively.
  • Generating the first prediction block corresponding to the region and generating the second prediction block (S940) may be performed by searching for a second motion vector for the fourth region corresponding to the second region in the second reference frame to search for the third region.
  • a weight to be applied to the first region and the second region is determined based on pixel values configuring the first region and the second region, and the third region and the pixel value based on the pixel values configuring the third region and the fourth region.
  • the weight to be applied to the fourth region may be determined.
  • FIG. 10 is a flowchart illustrating a method of generating a prediction block of a decoding apparatus according to an embodiment of the present invention.
  • a first motion vector searched in a first reference frame and a second motion vector searched in a second reference frame are received with respect to a target block to be decoded in the current frame (S1010).
  • a first prediction block and a second prediction block are generated based on the first motion vector and the second motion vector (S1020).
  • the first prediction block is divided into a plurality of areas according to a predetermined division method, and boundary information is generated.
  • the first prediction block and the second prediction block are merged according to the boundary information to generate a third prediction block corresponding to the target block (S1040).
  • the predetermined division method may be a method of dividing the first prediction block into a plurality of regions based on pixel values of the plurality of pixels constituting the first prediction block.
  • the dividing operation (S1030) may be performed by dividing the first prediction block into a first region and a second region, and generating the third prediction block (S1040) according to a predetermined division method.
  • a third prediction block may be generated by merging regions corresponding to the second region in the first region and the second prediction block of the first prediction block.
  • horizontal and vertical filtering may be applied to boundaries between regions corresponding to the first region and the second region.
  • the prediction accuracy may be improved by dividing the target block of the current frame into a plurality of regions according to pixel values of the target block.
  • the prediction block is generated by dividing the target block into two regions, but this is only an example.
  • the encoding apparatus may divide the target block into three regions and generate a moving vector for each region.
  • the methods according to various embodiments of the present disclosure may be programmed and stored in various storage media. Accordingly, the method according to the various embodiments described above may be implemented in various types of encoding apparatuses and decoding apparatuses that execute a storage medium.
  • a non-transitory computer readable medium may be provided in which a program for sequentially performing the above-described control method is stored.
  • the non-transitory readable medium refers to a medium that stores data semi-permanently and is readable by a device, not a medium storing data for a short time such as a register, a cache, a memory, and the like.
  • a non-transitory readable medium such as a CD, a DVD, a hard disk, a Blu-ray disk, a USB, a memory card, a ROM, or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Disclosed is an encoding device. The present encoding device comprises a processor which: divides a target block of the current frame into a first area and a second area according to a predetermined division method and an interface communicating with a decoding device; searches for a first motion vector for the first area in a first reference frame, so as to generate a first prediction block including an area corresponding to the first area; divides the first prediction block into a third area and a fourth area according to the predetermined division method, and generates boundary information; searches for a second motion vector for the fourth area corresponding to the second area in a second reference frame, and generates a second prediction block including an area corresponding to the fourth area; merges the first prediction block and the second prediction block according to the boundary information so as to generate a third prediction block corresponding to the target block; and controls the interface to transmit the first motion vector and the second motion vector to the decoding device.

Description

비디오 부호화, 복호화 방법 및 장치 Video encoding and decoding method and apparatus
본 발명은 비디오 부호화, 복호화 방법 및 장치에 대한 것으로, 더욱 상세하게는 인터 예측을 수행하는 비디오 부호화, 복호화 방법 및 장치에 대한 것이다.The present invention relates to a video encoding and decoding method and apparatus, and more particularly, to a video encoding and decoding method and apparatus for performing inter prediction.
전자 기술의 발달로 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도의 영상이 보급되고 있다. 고해상도의 영상을 제공하기 위해서는 고효율의 영상 압축 기술이 필요하다. 예를 들어, 1280×720 해상도(HD)의 component sample 당 8bits인 RGB 영상을 초당 30장 처리하는 경우 초당 1280×720×8×3×30=663,552,000 비트를 처리해야 하나, 3840×2160 해상도(UHD)의 component sample 당 8bits인 RGB 영상을 초당 30장 처리하는 경우에는 초당 3840×2160×8×3×30=5,971,968,000 비트를 처리해야 한다. 즉, 영상의 해상도가 커질수록 처리해야 하는 비트는 기하급수적으로 증가하게 되고, 영상의 저장 비용 및 전송 비용이 증가하게 된다.BACKGROUND With the development of electronic technology, high resolution images such as high definition (HD) images and ultra high definition (UHD) images are spreading. To provide high resolution images, high efficiency image compression technology is required. For example, when processing 30 RGB images per second with 8bits per component sample of 1280 × 720 resolution (HD), 1280 × 720 × 8 × 3 × 30 = 663,552,000 bits should be processed per second, but 3840 × 2160 resolution (UHD). In the case of processing 30 RGB images of 8 bits per component sample per second), it is necessary to process 3840 × 2160 × 8 × 3 × 30 = 5,971,968,000 bits per second. That is, as the resolution of the image increases, the bits to be processed increase exponentially, and the storage cost and the transmission cost of the image increase.
영상 압축 기술은 처리해야 하는 비트를 줄이기 위해 하나의 프레임을 복수의 블록(Block)으로 구분하고, 각 블록에 대하여 시간적, 공간적 중복성을 제거하여 영상의 데이터를 압축하는 기술이며, 영상을 부호화한다고 한다. 부호화하고자 하는 타겟 블록의 주변 픽셀을 이용하여 영상을 압축하는 방법이 공간적 중복성을 제거하여 영상을 압축하는 방법의 일 예이고, 해당 방법을 일반적으로 인트라 예측 부호화한다고 한다. 타겟 블록 이전에 압축된 다른 프레임의 참조 블록을 이용하여 영상을 압축하는 방법이 시간적 중복성을 제거하여 영상을 압축하는 방법의 일 예이고, 해당 방법을 인터 예측 부호화한다고 한다.Image compression technology is a technique of compressing image data by dividing one frame into a plurality of blocks in order to reduce bits to be processed, and removing temporal and spatial redundancy for each block. . A method of compressing an image using pixels around a target block to be encoded is an example of a method of compressing an image by removing spatial redundancy, and the method is generally referred to as intra prediction encoding. A method of compressing an image using a reference block of another frame compressed before a target block is an example of a method of compressing an image by removing temporal redundancy, and the method is called inter prediction encoding.
종래의 인터 예측 부호화에서는 타겟 블록을 부호화하는 경우 사각형의 블록만이 이용되었다. 또한, 각각의 블록에서 블록 테두리의 가로, 세로는 각각 프레임의 가로, 세로와 평행을 이루었다.In conventional inter prediction encoding, only a rectangular block is used to encode a target block. In each block, the width and length of the block border are parallel to the width and length of the frame, respectively.
다만, 실제 영상에는 곡선으로 표현되는 객체가 훨씬 많이 분포하며, 곡선으로 표현되는 객체를 사각형의 블록으로 분할하여 부호화하는 경우, 부호화의 정확도가 떨어지는 문제가 있었다. 그에 따라, 영상에 포함되는 객체의 경계를 반영하여 부호화할 필요성이 대두되었다.However, in an actual image, a much larger number of objects represented by curves are distributed, and there is a problem in that the accuracy of encoding is inferior when the objects represented by curves are divided and encoded into rectangular blocks. Accordingly, a need arises for encoding by reflecting a boundary of an object included in an image.
본 발명은 상술한 필요성에 따른 것으로, 본 발명의 목적은 현재 프레임의 타겟 블록을 복수의 영역으로 분할하여 인터 예측을 수행하는 비디오 부호화, 복호화 방법 및 장치를 제공함에 있다.SUMMARY OF THE INVENTION The present invention is directed to the above-described needs, and an object of the present invention is to provide a video encoding and decoding method and apparatus for performing inter prediction by dividing a target block of a current frame into a plurality of regions.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따르면, 부호화 장치의 부호화 방법은 기설정된 분할 방법에 따라, 현재 프레임의 타겟 블록을 제1 영역 및 제2 영역으로 분할하는 단계, 제1 참조 프레임(Reference frame)에서 상기 제1 영역에 대한 제1 움직임 벡터를 탐색하여 상기 제1 영역에 대응되는 영역을 포함하는 제1 예측 블록을 생성하는 단계, 상기 기설정된 분할 방법에 따라, 상기 제1 예측 블록을 제3 영역 및 제4 영역으로 분할하고, 경계 정보를 생성하는 단계, 제2 참조 프레임에서 상기 제2 영역에 대응되는 상기 제4 영역에 대한 제2 움직임 벡터를 탐색하여 상기 제4 영역에 대응되는 영역을 포함하는 제2 예측 블록을 생성하는 단계 및 상기 경계 정보에 따라 상기 제1 예측 블록 및 상기 제2 예측 블록을 병합하여 상기 타겟 블록에 대응되는 제3 예측 블록을 생성하는 단계를 포함한다.According to an embodiment of the present invention for achieving the above object, in the encoding method of the encoding apparatus, the target block of the current frame is divided into a first region and a second region according to a predetermined division method, the first Generating a first prediction block including a region corresponding to the first region by searching for a first motion vector with respect to the first region in a reference frame, according to the preset division method, Dividing a first prediction block into a third region and a fourth region, and generating boundary information; searching for a second motion vector of the fourth region corresponding to the second region in a second reference frame to search for the fourth region; Generating a second prediction block including an area corresponding to an area and merging the first prediction block and the second prediction block according to the boundary information to correspond to the target block; Generating a third predictive block.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따르면, 복호화 장치의 복호화 방법은 현재 프레임에서 복호화할 타겟 블록에 대해, 제1 참조 프레임(Reference frame)에서 탐색된 제1 움직임 벡터 및 제2 참조 프레임에서 탐색된 제2 움직임 벡터를 수신하는 단계, 상기 제1 참조 프레임 및 상기 제2 참조 프레임 각각에서, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 기초하여 제1 예측 블록 및 제2 예측 블록을 생성하는 단계, 기설정된 분할 방법에 따라, 상기 제1 예측 블록을 복수의 영역으로 분할하고, 경계 정보를 생성하는 단계 및 상기 경계 정보에 따라 상기 제1 예측 블록 및 상기 제2 예측 블록을 병합하여 상기 타겟 블록에 대응되는 제3 예측 블록을 생성하는 단계를 포함한다.According to an embodiment of the present invention for achieving the above object, in the decoding method of the decoding apparatus, the first motion vector and the first motion vector found in the first reference frame with respect to the target block to be decoded in the current frame Receiving a second motion vector searched in a second reference frame, in each of the first reference frame and the second reference frame, based on the first motion vector and the second motion vector, a first prediction block and a second motion vector; Generating a prediction block, dividing the first prediction block into a plurality of regions according to a predetermined division method, generating boundary information, and generating the first prediction block and the second prediction block according to the boundary information. Generating a third prediction block corresponding to the target block by merging.
한편, 본 발명의 일 실시 예에 따르면, 부호화 장치는 복호화 장치와 통신을 수행하는 인터페이스 및 기설정된 분할 방법에 따라, 현재 프레임의 타겟 블록을 제1 영역 및 제2 영역으로 분할하며, 제1 참조 프레임(Reference frame)에서 상기 제1 영역에 대한 제1 움직임 벡터를 탐색하여 상기 제1 영역에 대응되는 영역을 포함하는 제1 예측 블록을 생성하며, 상기 기설정된 분할 방법에 따라, 상기 제1 예측 블록을 제3 영역 및 제4 영역으로 분할하고, 경계 정보를 생성하며, 제2 참조 프레임에서 상기 제2 영역에 대응되는 상기 제4 영역에 대한 제2 움직임 벡터를 탐색하여 상기 제4 영역에 대응되는 영역을 포함하는 제2 예측 블록을 생성하며, 상기 경계 정보에 따라 상기 제1 예측 블록 및 상기 제2 예측 블록을 병합하여 상기 타겟 블록에 대응되는 제3 예측 블록을 생성하며, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 상기 복호화 장치로 전송하도록 상기 인터페이스를 제어하는 프로세서를 포함한다.Meanwhile, according to an embodiment of the present invention, the encoding apparatus divides a target block of a current frame into a first region and a second region according to an interface for communicating with a decoding apparatus and a predetermined division method, and includes a first reference. Search for a first motion vector for the first region in a reference frame to generate a first prediction block including a region corresponding to the first region, and according to the preset division method, the first prediction Splitting the block into third and fourth regions, generating boundary information, searching for a second motion vector for the fourth region corresponding to the second region in a second reference frame, and corresponding to the fourth region Generate a second prediction block including a region to be formed, and merge the first prediction block and the second prediction block according to the boundary information to form a third prediction block corresponding to the target block. Generation and includes the first motion vector and a processor for controlling the interface to transmit the second motion vector to said decryption device.
한편, 본 발명의 일 실시 예에 따르면, 복호화 장치는 부호화 장치와 통신을 수행하는 인터페이스 및 현재 프레임에서 복호화할 타겟 블록에 대해, 제1 참조 프레임(Reference frame)에서 탐색된 제1 움직임 벡터 및 제2 참조 프레임에서 탐색된 제2 움직임 벡터가 상기 부호화 장치로부터 수신되면, 상기 제1 참조 프레임 및 상기 제2 참조 프레임 각각에서, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 기초하여 제1 예측 블록 및 제2 예측 블록을 생성하며, 기설정된 분할 방법에 따라, 상기 제1 예측 블록을 복수의 영역으로 분할하고, 경계 정보를 생성하며, 상기 경계 정보에 따라 상기 제1 예측 블록 및 상기 제2 예측 블록을 병합하여 상기 타겟 블록에 대응되는 제3 예측 블록을 생성하는 프로세서를 포함한다.Meanwhile, according to an embodiment of the present invention, the decoding apparatus may include a first motion vector and a first motion vector searched in a first reference frame with respect to an interface communicating with the encoding apparatus and a target block to be decoded in the current frame. When the second motion vector searched in the second reference frame is received from the encoding apparatus, in each of the first reference frame and the second reference frame, a first prediction block is based on the first motion vector and the second motion vector. And generating a second prediction block, dividing the first prediction block into a plurality of regions according to a predetermined division method, generating boundary information, and generating the first prediction block and the second prediction according to the boundary information. And a processor for merging the blocks to generate a third prediction block corresponding to the target block.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 현재 프레임의 타겟 블록을 타겟 블록의 픽셀 값에 따라 복수의 영역으로 분할하여 인터 예측을 수행함에 따라 예측의 정확도를 향상시킬 수 있다.According to various embodiments of the present disclosure as described above, the prediction accuracy may be improved by dividing the target block of the current frame into a plurality of regions according to pixel values of the target block.
도 1은 본 발명의 이해를 돕기 위한 부호화 장치의 구성을 나타낸 블록도이다.1 is a block diagram showing a configuration of an encoding apparatus for helping understanding of the present invention.
도 2는 본 발명의 이해를 돕기 위한 복호화 장치의 구성을 나타낸 블록도이다.2 is a block diagram showing a configuration of a decoding apparatus for helping understanding of the present invention.
도 3은 본 발명의 일 실시 예에 따른 부호화 장치를 설명하기 위한 간략화된 블럭도이다.3 is a simplified block diagram illustrating an encoding apparatus according to an embodiment of the present invention.
도 4a 및 도 4b는 본 발명의 일 실시 예에 따른 타겟 블록을 분할하는 방법을 설명하기 위한 도면이다.4A and 4B are diagrams for describing a method of dividing a target block, according to an exemplary embodiment.
도 5는 본 발명의 일 실시 예에 따른 예측 블록을 생성하는 방법을 설명하기 위한 도면이다.5 is a diagram for describing a method of generating a prediction block according to an embodiment of the present invention.
도 6a 및 도 6b는 본 발명의 일 실시 예에 따른 경계 정보를 설명하기 위한 도면이다.6A and 6B are diagrams for describing boundary information according to an embodiment of the present invention.
도 7은 본 발명의 일 실시 예에 따른 예측 블록을 병합하는 방법을 설명하기 위한 도면이다.7 is a diagram for describing a method of merging prediction blocks according to an embodiment of the present invention.
도 8은 본 발명의 일 실시 예에 따른 복호화 장치를 설명하기 위한 간략화된 블럭도이다.8 is a simplified block diagram illustrating a decoding apparatus according to an embodiment of the present invention.
도 9는 본 발명의 일 실시 예에 따른 부호화 장치의 예측 블록 생성 방법을 설명하기 위한 흐름도이다.9 is a flowchart illustrating a prediction block generation method of an encoding apparatus according to an embodiment of the present invention.
도 10은 본 발명의 일 실시 예에 따른 복호화 장치의 예측 블록 생성 방법을 설명하기 위한 흐름도이다.10 is a flowchart illustrating a method of generating a prediction block of a decoding apparatus according to an embodiment of the present invention.
이하, 본 발명의 다양한 실시 예에 대해서, 첨부된 도면을 참조하여 설명한다. 본 명세서에 기재된 내용은, 본 발명의 범위를 특정한 실시 형태로 한정하려는 것이 아니며, 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.Hereinafter, various embodiments of the present disclosure will be described with reference to the accompanying drawings. It is to be understood that the description herein is not intended to limit the scope of the invention to specific embodiments, but includes various modifications, equivalents, and / or alternatives to the embodiments. In connection with the description of the drawings, the same or similar reference numerals may be used for similar components.
또한, 본 명세서에서 하나의 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 기능적 또는 통신적으로(operatively or communicatively) 연결(coupled)되어 있다거나, 접속되어(connected to) 있다고 언급하는 것은, 각 구성요소들이 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 간접적으로 연결되는 경우까지 모두 포함할 수 있다는 것으로 이해되어야 한다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 어떤 구성요소와 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.In addition, in this specification, one component (eg, a first component) is coupled or connected to another component (eg, a second component) operatively or communicatively. Reference to “connected to” should be understood to include all components, even when each component is directly connected or indirectly connected through another component (eg, a third component). On the other hand, when a component (e.g., a first component) is said to be "directly connected" or "directly connected" to another component (e.g., a second component), it is different from a component. It may be understood that there is no other component (eg, a third component) between the elements.
본 명세서(disclosure)에서 사용된 용어들은, 임의의 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 또한, 본 명세서에서는 설명의 편의상 단수 표현을 사용할 수도 있으나, 이는 문맥상 명백하게 다르게 뜻하지 않는 한, 복수 표현까지 포함하는 의미로 해석될 수 있다. 또한, 본 명세서에서 사용되는 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 명세서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 명세서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 명세서에서 정의된 용어일지라도 본 명세서의 실시 예들을 배제하도록 해석될 수 없다.The terminology used herein is for the purpose of describing any example embodiments only and is not intended to limit the scope of other embodiments. In addition, in the present specification, a singular expression may be used for convenience of description, but it may be interpreted as a meaning including a plurality of expressions unless the context clearly indicates otherwise. In addition, the terms used herein may have the same meaning as commonly understood by those of ordinary skill in the art. Among the terms used herein, the terms defined in the general dictionary may be interpreted as having the same or similar meaning as the meaning in the context of the related art, and unless it is clearly defined herein, the ideal or excessively formal meaning Not interpreted as In some cases, even if terms are defined herein, they may not be interpreted to exclude embodiments of the present disclosure.
이하에서, 첨부된 도면을 이용하여 본 발명의 다양한 실시 예들에 대하여 구체적으로 설명한다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 이해를 돕기 위한 부호화 장치(100)의 구성을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 영상 버퍼(190)를 포함한다.1 is a block diagram illustrating a configuration of an encoding apparatus 100 to help understanding of the present invention. As shown in FIG. 1, the encoding apparatus 100 may include a motion predictor 111, a motion compensator 112, an intra predictor 120, a switch 115, a subtractor 125, and a converter 130. And a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference image buffer 190.
부호화 장치(100)는 비디오를 부호화하여 다른 신호 형태로 변경하는 장치이다. 여기서, 비디오는 복수의 프레임으로 구성되어 있으며, 각 프레임은 복수의 픽셀을 포함할 수 있다. 예를 들어, 부호화 장치(100)는 가공되지 않은 원본 데이터를 압축하기 위한 장치일 수 있다. 또는, 부호화 장치(100)는 기 부호화된 데이터를 다른 신호 형태로 변경하는 장치일 수도 있다.The encoding apparatus 100 is an apparatus that encodes a video and changes it into another signal form. In this case, the video includes a plurality of frames, and each frame may include a plurality of pixels. For example, the encoding apparatus 100 may be an apparatus for compressing raw original data. Alternatively, the encoding apparatus 100 may be an apparatus for changing the precoded data into another signal form.
부호화 장치(100)는 각 프레임을 복수의 블록으로 구분하여 부호화를 수행할 수 있다. 부호화 장치(100)는 블록 단위로 시간적 또는 공간적 예측, 변환, 양자화, 필터링, 엔트로피 부호화 등을 거쳐 부호화를 수행할 수 있다.The encoding apparatus 100 may perform encoding by dividing each frame into a plurality of blocks. The encoding apparatus 100 may perform encoding on a block basis through temporal or spatial prediction, transformation, quantization, filtering, entropy encoding, and the like.
예측은 부호화하고자 하는 타겟 블록과 유사한 예측 블록을 생성하는 것을 의미한다. 여기서, 부호화하고자 하는 타겟 블록의 단위를 예측 유닛(Prediction Unit, PU)이라고 정의할 수 있으며, 예측은 시간적 예측 및 공간적 예측으로 구분된다.Prediction means generating a prediction block similar to a target block to be encoded. Here, a unit of a target block to be encoded may be defined as a prediction unit (PU), and prediction is divided into temporal prediction and spatial prediction.
시간적 예측은 화면 간 예측을 의미한다. 부호화 장치(100)는 현재 부호화하려는 영상과 상관도가 높은 일부의 참조 영상(Reference picture)을 저장하고 이를 이용하여 화면 간 예측을 수행할 수 있다. 즉, 부호화 장치(100)는 이전 시간에 부호화 후 복호화된 참조 영상으로부터 예측 블록을 생성할 수 있다. 이 경우, 부호화 장치(100)는 인터(Inter) 예측 부호화한다고 말한다.Temporal prediction means inter prediction. The encoding apparatus 100 may store some reference pictures having a high correlation with the current image to be encoded, and may perform inter-screen prediction by using the reference pictures. That is, the encoding apparatus 100 may generate a prediction block from a reference image decoded after encoding at a previous time. In this case, the encoding apparatus 100 is said to be inter prediction encoding.
인터 예측 부호화하는 경우, 움직임 예측부(111)는 참조 영상 버퍼(190)에 저장되어 있는 참조 영상에서 타겟 블록과 가장 시간적 상관도가 높은 블록을 검색할 수 있다. 움직임 예측부(111)는 참조 영상을 보간(Interpolation)하여 보간된 영상에서 타겟 블록과 가장 시간적 상관도가 높은 블록을 검색할 수도 있다.In the case of inter prediction encoding, the motion predictor 111 may search for a block having the highest temporal correlation with the target block from the reference image stored in the reference image buffer 190. The motion predictor 111 may search for a block having the highest temporal correlation with the target block in the interpolated image by interpolating the reference image.
여기서, 참조 영상 버퍼(190)는 참조 영상을 저장하는 공간이다. 참조 영상 버퍼(190)는 화면 간 예측을 수행하는 경우에만 이용되며, 현재 부호화하려는 영상과 상관도가 높은 일부의 참조 영상을 저장하고 있을 수 있다. 참조 영상은 후술할 차분 블록을 순차적으로 변환, 양자화, 역양자화, 역변환, 필터링하여 생성된 영상일 수 있다. 즉, 참조 영상은 부호화 후 복호화된 영상일 수 있다.Here, the reference picture buffer 190 is a space for storing the reference picture. The reference image buffer 190 is used only when performing inter prediction and may store some reference images having a high correlation with the image to be currently encoded. The reference image may be an image generated by sequentially transforming, quantizing, inverse quantization, inverse transformation, and filtering a difference block to be described later. That is, the reference picture may be a picture decoded after encoding.
움직임 보상부(112)는 움직임 예측부(111)에서 찾은 타겟 블록과 가장 시간적 상관도가 높은 블록에 대한 움직임 정보를 바탕으로 예측 블록을 생성할 수 있다. 여기서, 움직임 정보는 움직임 벡터, 참조 영상 인덱스 등을 포함할 수 있다.The motion compensator 112 may generate a prediction block based on the motion information of the block having the highest temporal correlation with the target block found by the motion predictor 111. Here, the motion information may include a motion vector, a reference picture index, and the like.
공간적 예측은 화면 내 예측을 의미한다. 인트라 예측부(120)는 현재 영상 내의 부호화된 인접 픽셀들로부터 공간적 예측을 수행하여 타겟 블록에 대한 예측 값을 생성할 수 있다. 이 경우, 부호화 장치(100)는 인트라(Intra) 예측 부호화한다고 말한다.Spatial prediction means intra prediction. The intra predictor 120 may generate a prediction value for the target block by performing spatial prediction from encoded neighboring pixels in the current image. In this case, the encoding apparatus 100 is said to be intra prediction encoding.
인터 예측 부호화 또는 인트라 예측 부호화는 코딩 유닛(Coding Unit, CU) 단위로 결정될 수 있다. 여기서, 코딩 유닛은 적어도 하나의 예측 유닛을 포함할 수 있다. 예측 부호화의 방법이 결정되면 스위치(115)의 위치가 예측 부호화의 방법에 대응되도록 변경될 수 있다.Inter prediction encoding or intra prediction encoding may be determined in units of coding units (CUs). Here, the coding unit may include at least one prediction unit. When the method of predictive encoding is determined, the position of the switch 115 may be changed to correspond to the method of predictive encoding.
한편, 시간적 예측에서의 부호화 후 복호화된 참조 영상은 필터링이 적용된 영상이나, 공간적 예측에서의 부호화 후 복호화된 인접 픽셀들은 필터링이 적용되지 않은 픽셀들일 수 있다.Meanwhile, the reference picture decoded after temporal prediction may be an image to which filtering has been applied, or the adjacent pixels decoded after encoding in spatial prediction may be pixels to which no filtering is applied.
감산기(125)는 타겟 블록과 시간적 예측 또는 공간적 예측으로부터 얻어진 예측 블록의 차이를 구해 차분 블록(Residual block)을 생성할 수 있다. 차분 블록은 예측 과정에 의해서 중복성이 많이 제거된 블록일 수 있으나, 예측이 완벽하게 이루어지지 않아 부호화해야 할 정보를 포함하는 블록일 수도 있다.The subtractor 125 may generate a residual block by obtaining a difference between the target block and the prediction block obtained from the temporal prediction or the spatial prediction. The difference block may be a block from which a lot of redundancy has been removed by the prediction process, but may be a block including information to be encoded because the prediction is not completely performed.
변환부(130)는 공간적 중복성을 제거하기 위해 화면 내 또는 화면 간 예측 이후의 차분 블록을 변환하여 주파수 영역의 변환 계수를 출력할 수 있다. 이때, 변환의 단위는 변환 유닛(Transform Unit, TU)이며, 예측 유닛과는 무관하게 결정될 수도 있다. 예를 들어, 복수의 차분 블록을 포함하는 프레임은 예측 유닛과는 무관하게 복수의 변환 유닛으로 분할되고, 변환부(130)는 각 변환 유닛 별로 변환을 수행할 수 있다. 변환 유닛의 분할은 비트율 최적화에 따라 결정될 수 있다.The transformer 130 may output a transform coefficient of the frequency domain by transforming the difference block after prediction within the screen or between the screens in order to remove spatial redundancy. In this case, a unit of a transform is a transform unit (TU), and may be determined irrespective of a prediction unit. For example, a frame including a plurality of difference blocks may be divided into a plurality of transform units regardless of a prediction unit, and the transform unit 130 may perform the transform for each transform unit. The division of the transform unit may be determined according to the bit rate optimization.
다만, 이에 한정되는 것은 아니며, 변환 유닛은 코딩 유닛 및 예측 유닛 중 적어도 하나와 연관되어 결정될 수도 있다.However, the present invention is not limited thereto, and the transform unit may be determined in association with at least one of the coding unit and the prediction unit.
변환부(130)는 각 변환 유닛의 에너지를 특정 주파수 영역에 집중시키기 위해 변환을 수행할 수 있다. 예를 들어, 변환부(130)는 각 변환 유닛에 대해 DCT(Discrete Cosine Transform) 기반의 변환을 수행하여 저주파 영역으로 데이터를 집중시킬 수 있다. 또는, 변환부(130)는 DFT(Discrete Fourier Transform) 기반의 변환 또는 DST(Discrete Sine Transform) 기반의 변환을 수행할 수도 있다.The converter 130 may perform a conversion to concentrate energy of each conversion unit in a specific frequency region. For example, the transform unit 130 may concentrate data in the low frequency region by performing a discrete cosine transform (DCT) based transformation on each transform unit. Alternatively, the transform unit 130 may perform a Discrete Fourier Transform (DFT) based transform or a Discrete Sine Transform (DST) based transform.
양자화부(140)는 변환 계수에 대해 양자화를 수행하며, 변환 계수를 기설정된 수의 대표 값으로 근사화할 수 있다. 즉, 양자화부(140)는 특정 범위의 입력 값을 하나의 대표 값으로 매핑할 수 있다. 이 과정에서 사람이 잘 인지하지 못하는 고주파 신호가 제거될 수 있으며, 정보의 손실이 발생할 수 있다.The quantization unit 140 performs quantization on the transform coefficients and approximates the transform coefficients to representative values of a predetermined number. That is, the quantization unit 140 may map input values in a specific range to one representative value. In this process, high frequency signals that are not well recognized by humans can be eliminated and information loss can occur.
양자화부(140)는 입력 데이터의 확률 분포나 양자화의 목적에 따라 균등 양자화 및 비균등 양자화 방법 중 하나를 이용할 수 있다. 예를 들어, 양자화부(140)는 입력 데이터의 확률 분포가 균등할 때에는 균등 양자화 방법을 이용할 수 있다. 또는, 양자화부(140)는 입력 데이터의 확률 분포가 균등하지 않을 때에는 비균등 양자화 방법을 이용할 수도 있다.The quantization unit 140 may use one of equalization and non-uniform quantization methods according to the probability distribution of the input data or the purpose of quantization. For example, when the probability distribution of the input data is equal, the quantization unit 140 may use an equalization quantization method. Alternatively, the quantization unit 140 may use a non-uniform quantization method when the probability distribution of the input data is not equal.
엔트로피 부호화부(150)는 양자화부(140)에서 입력된 데이터에 대해 심볼(Symbol)의 발생 확률에 따라 심볼의 길이를 가변적으로 할당하여 데이터양을 축소할 수 있다. 즉, 엔트로피 부호화부(150)는 입력된 데이터를 확률 모델을 기반으로 0과 1로 구성된 가변 길이의 비트열로 표현하여 비트 스트림을 생성할 수 있다.The entropy encoder 150 may reduce the amount of data by variably allocating the lengths of the symbols according to the occurrence probability of the symbol with respect to the data input from the quantization unit 140. That is, the entropy encoder 150 may generate a bit stream by expressing the input data as a bit string having a variable length consisting of 0 and 1 based on the probability model.
예를 들어, 엔트로피 부호화부(150)는 높은 발생 확률을 갖는 심볼에는 적은 수의 비트를 할당하고, 낮은 발생 확률을 갖는 심볼에는 많은 수의 비트를 할당하여 입력 데이터를 표현할 수 있다. 그에 따라, 입력 데이터의 비트열의 크기가 감소될 수 있고, 영상 부호화의 압축 성능을 향상시킬 수 있다.For example, the entropy encoder 150 may express input data by allocating a small number of bits to a symbol having a high occurrence probability and a large number of bits to a symbol having a low occurrence probability. Accordingly, the size of the bit string of the input data can be reduced, and the compression performance of video encoding can be improved.
엔트로피 부호화부(150)는 허프만 부호화 및 지수 골룸 부호화(Exponential-Golomb coding)와 같은 가변 길이 부호화(Variable Length Coding) 또는 산술 부호화(Arithmetic Coding) 방법에 의해 엔트로피 부호화를 수행할 수 있다.The entropy encoder 150 may perform entropy coding by variable length coding or arithmetic coding such as Huffman coding and Exponential-Golomb coding.
역양자화부(160) 및 역변환부(170)는 양자화된 변환 계수를 입력받아 각각 역양자화 후 역변환을 수행하여 복원된 차분 블록을 생성할 수 있다.The inverse quantization unit 160 and the inverse transform unit 170 may receive the input quantized transform coefficients and perform inverse transformation after inverse quantization, respectively, to generate a reconstructed differential block.
가산기(175)는 복원된 차분 블록과 시간적 예측 또는 공간적 예측으로부터 얻어진 예측 블록를 더해 복원 블록을 생성할 수 있다.The adder 175 may generate the reconstructed block by adding the reconstructed difference block and the predictive block obtained from the temporal prediction or the spatial prediction.
필터부(180)는 디블록킹 필터(Deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나를 복원 영상에 적용할 수 있다. 필터링된 복원 영상은 참조 영상 버퍼(190)에 저장되어 참조 영상으로서 활용될 수 있다.The filter unit 180 may apply at least one of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the reconstructed image. The filtered reconstructed image may be stored in the reference image buffer 190 and used as a reference image.
도 2는 본 발명의 이해를 돕기 위한 복호화 장치(200)의 구성을 나타낸 블록도이다. 도 2에 도시된 바와 같이, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 가산기(235), 인트라 예측부(240), 움직임 보상부(250), 스위치(255), 필터부(260) 및 참조 영상 버퍼(270)를 포함한다.2 is a block diagram illustrating a configuration of a decoding apparatus 200 to help understanding of the present invention. As shown in FIG. 2, the decoding apparatus 200 may include an entropy decoder 210, an inverse quantizer 220, an inverse transformer 230, an adder 235, an intra predictor 240, and a motion compensator ( 250, a switch 255, a filter unit 260, and a reference image buffer 270.
복호화 장치(200)는 부호화 장치에서 생성된 비트 스트림을 입력 받아 복호화를 수행하여 비디오를 재구성할 수 있다. 복호화 장치(200)는 블록 단위로 엔트로피 복호화, 역양자화, 역변환, 필터링 등을 거쳐 복호화를 수행할 수 있다.The decoding apparatus 200 may reconstruct a video by receiving a bit stream generated by the encoding apparatus and performing decoding. The decoding apparatus 200 may perform decoding through entropy decoding, inverse quantization, inverse transformation, filtering, and the like on a block basis.
엔트로피 복호화부(210)는 입력된 비트 스트림을 엔트로피 복호화하여 양자화된 변환 계수를 생성할 수 있다. 이때, 엔트로피 복호화 방법은 도 1에 엔트로피 부호화부(150)에서 이용한 방법을 역으로 적용한 방법일 수 있다.The entropy decoder 210 may entropy decode the input bit stream to generate quantized transform coefficients. In this case, the entropy decoding method may be a method in which the method used by the entropy encoder 150 is reversely applied to FIG. 1.
역양자화부(220)는 양자화된 변환 계수를 입력받아 역양자화를 수행할 수 있다. 즉, 양자화부(140) 및 역양자화부(220)의 동작에 따라 특정 범위의 입력 값이 특정 범위 내의 어느 하나의 기준 입력 값으로 변경되며, 이 과정에서 입력 값과 어느 하나의 기준 입력 값의 차이만큼의 에러가 발생할 수 있다.The inverse quantization unit 220 may receive inverse quantization by receiving a quantized transform coefficient. That is, according to the operations of the quantization unit 140 and the inverse quantization unit 220, an input value of a specific range is changed to any one reference input value within a specific range, and in this process, an input value and one reference input value As much as errors can occur.
역변환부(230)는 역양자화부(220)로부터 출력된 데이터를 역변환하며, 변환부(130)에서 이용한 방법을 역으로 적용하여 역변환을 수행할 수 있다. 역변환부(230)는 역변환을 수행하여 복원된 차분 블록을 생성할 수 있다.The inverse transform unit 230 inversely transforms the data output from the inverse quantization unit 220, and inversely applies the method used by the transformer 130 inversely. The inverse transform unit 230 may generate a reconstructed difference block by performing inverse transform.
가산기(235)는 복원된 차분 블록과 예측 블록을 더해 복원 블록을 생성할 수 있다. 여기서, 예측 블록은 인터 예측 부호화 또는 인트라 예측 부호화로 생성된 블록일 수 있다.The adder 235 may generate the reconstructed block by adding the reconstructed difference block and the predictive block. Here, the prediction block may be a block generated by inter prediction encoding or intra prediction encoding.
인터 예측 부호화하는 경우, 움직임 보상부(250)는 부호화 장치(100)로부터 복호화하고자 하는 타겟 블록에 대한 움직임 정보를 수신 혹은 유도(주변 블록으로부터 derivation)하여, 수신된 혹은 유도된 움직임 정보를 바탕으로 예측 블록을 생성할 수 있다. 여기서, 움직임 보상부(250)는 참조 영상 버퍼(270)에 저장되어 있는 참조 영상에서 예측 블록을 생성할 수 있다. 움직임 정보는 타겟 블록과 가장 시간적 상관도가 높은 블록에 대한 움직임 벡터, 참조 영상 인덱스 등을 포함할 수 있다.In the case of inter prediction encoding, the motion compensator 250 receives or derives motion information about a target block to be decoded from the encoding apparatus 100 (derived from a neighboring block) and based on the received or derived motion information. A prediction block can be generated. Here, the motion compensator 250 may generate a prediction block from the reference picture stored in the reference picture buffer 270. The motion information may include a motion vector, a reference picture index, and the like, for a block having the highest temporal correlation with the target block.
여기서, 참조 영상 버퍼(270)는 현재 복호화하려는 영상과 상관도가 높은 일부의 참조 영상을 저장하고 있을 수 있다. 참조 영상은 상술한 복원 블록을 필터링하여 생성된 영상일 수 있다. 즉, 참조 영상은 부호화 장치에서 생성된 비트 스트림이 복호화된 영상일 수 있다. 또한, 복호화 장치에서 이용되는 참조 영상은 부호화 장치에서 이용되는 참조 영상과 동일할 수 있다.Here, the reference image buffer 270 may store some reference images having a high correlation with the image to be currently decoded. The reference image may be an image generated by filtering the above-described reconstruction block. That is, the reference image may be an image obtained by decoding a bit stream generated by the encoding apparatus. In addition, the reference image used in the decoding apparatus may be the same as the reference image used in the encoding apparatus.
인트라 예측 부호화하는 경우, 인트라 예측부(240)는 현재 영상 내의 부호화된 인접 픽셀들로부터 공간적 예측을 수행하여 타겟 블록에 대한 예측 값을 생성할 수 있다.In the case of intra prediction encoding, the intra prediction unit 240 may generate a prediction value for a target block by performing spatial prediction from encoded adjacent pixels in the current image.
한편, 스위치(255)는 타겟 블록의 예측 부호화의 방법에 따라 위치가 변경될 수 있다.On the other hand, the switch 255 may be changed in position according to the method of predictive encoding of the target block.
필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나를 복원 영상에 적용할 수 있다. 필터링된 복원 영상은 참조 영상 버퍼(270)에 저장되어 참조 영상으로서 활용될 수 있다.The filter unit 260 may apply at least one of a deblocking filter, SAO, and ALF to the reconstructed image. The filtered reconstructed image may be stored in the reference image buffer 270 and used as a reference image.
한편, 복호화 장치(200)는 비트 스트림에 포함되어 있는 부호화된 영상에 관련된 정보를 파싱하는 파싱부(미도시)를 더 포함할 수 있다. 파싱부는 엔트로피 복호화부(210)를 포함할 수도 있고, 엔트로피 복호화부(210)에 포함될 수도 있다.Meanwhile, the decoding apparatus 200 may further include a parser (not shown) which parses information related to an encoded image included in a bit stream. The parser may include the entropy decoder 210 or may be included in the entropy decoder 210.
상술한 바와 같이 부호화 장치(100)는 부호화 과정을 통해 비디오의 데이터를 압축하고, 압축된 데이터를 복호화 장치(200)로 전송할 수 있다. 복호화 장치(200)는 압축된 데이터를 복호화하여 비디오를 재구성할 수 있다.As described above, the encoding apparatus 100 may compress data of a video through an encoding process and transmit the compressed data to the decoding apparatus 200. The decoding apparatus 200 may reconstruct the video by decoding the compressed data.
이하에서는 인터 예측 부호화하는 경우에 움직임 예측을 수행하는 방법에 대하여 구체적으로 설명한다. 특히, 타겟 블록을 복수의 영역으로 분할하여 움직임 예측을 수행하는 방법에 대하여 설명한다.Hereinafter, a method of performing motion prediction in the case of inter prediction encoding will be described in detail. In particular, a method of performing motion prediction by dividing a target block into a plurality of regions will be described.
도 3은 본 발명의 일 실시 예에 따른 부호화 장치(100)를 설명하기 위한 간략화된 블럭도이다.3 is a simplified block diagram illustrating an encoding device 100 according to an embodiment of the present invention.
도 3에 도시된 바와 같이, 부호화 장치(100)는 인터페이스(310) 및 프로세서(320)를 포함한다.As shown in FIG. 3, the encoding apparatus 100 includes an interface 310 and a processor 320.
한편, 도 3은 부호화 장치(100)가 통신 기능 및 제어 기능 등과 같은 기능을 구비한 장치인 경우를 예로 들어, 각종 구성 요소들을 간략하게 도시한 것이다. 따라서, 실시 예에 따라서는, 도 3에 도시된 구성 요소 중 일부는 생략 또는 변경될 수도 있고, 다른 구성 요소가 더 추가될 수도 있다.Meanwhile, FIG. 3 briefly illustrates various components, for example, when the encoding apparatus 100 is a device having a function such as a communication function and a control function. Therefore, according to the exemplary embodiment, some of the components shown in FIG. 3 may be omitted or changed, and other components may be further added.
인터페이스(310)는 복호화 장치(200)와 통신을 수행할 수 있다. 구체적으로, 인터페이스(310)는 복호화 장치(200)로 부호화된 비트 스트림, 움직임 정보 등을 전송할 수 있다.The interface 310 may communicate with the decryption apparatus 200. In detail, the interface 310 may transmit the encoded bit stream, motion information, or the like to the decoding apparatus 200.
인터페이스(310)는 유/무선 LAN, WAN, 이더넷, 블루투스(Bluetooth), 지그비(Zigbee), IEEE 1394, 와이파이(Wifi) 또는 PLC(Power Line Communication) 등을 이용하여, 복호화 장치(200)와 통신을 수행할 수 있다.The interface 310 communicates with the decryption apparatus 200 using wired / wireless LAN, WAN, Ethernet, Bluetooth, Zigbee, IEEE 1394, Wifi, or Power Line Communication (PLC). Can be performed.
프로세서(320)는 기설정된 분할 방법에 따라, 부호화하고자 하는 현재 프레임의 타겟 블록을 제1 영역 및 제2 영역으로 분할할 수 있다. 여기서, 기설정된 분할 방법은 타겟 블록을 구성하는 복수의 픽셀들의 픽셀 값에 기초하여 타겟 블록을 복수의 영역으로 구분하는 방법일 수 있다.The processor 320 may divide the target block of the current frame to be encoded into a first region and a second region according to a preset division method. Here, the predetermined division method may be a method of dividing the target block into a plurality of areas based on pixel values of a plurality of pixels constituting the target block.
예를 들어, 프로세서(320)는 타겟 블록을 구성하는 복수의 픽셀들의 픽셀 값으로부터 평균 값을 산출하고, 평균 값을 기준으로 타겟 블록을 제1 영역 및 제2 영역으로 분할할 수 있다. 또는, 프로세서(320)는 평균 값이 아닌 기설정된 값을 이용하여 타겟 블록을 분할할 수도 있다.For example, the processor 320 may calculate an average value from pixel values of a plurality of pixels constituting the target block, and divide the target block into a first area and a second area based on the average value. Alternatively, the processor 320 may divide the target block using a predetermined value rather than an average value.
다만, 이에 한정되는 것은 아니며, 프로세서(320)는 타겟 블록 내의 경계를 결정할 수 있는 방법이라면 어떠한 방법이라도 사용할 수 있다.However, the present invention is not limited thereto, and the processor 320 may use any method as long as it can determine a boundary in the target block.
프로세서(320)는 제1 참조 프레임(Reference frame)에서 제1 영역에 대한 제1 움직임 벡터를 탐색하여 제1 영역에 대응되는 영역을 포함하는 제1 예측 블록을 생성할 수 있다. 여기서, 참조 프레임은 참조 영상 중 하나일 수 있다.The processor 320 may generate a first prediction block including a region corresponding to the first region by searching for a first motion vector with respect to the first region in the first reference frame. Here, the reference frame may be one of the reference pictures.
한편, 움직임 벡터는 (△x, △y)로 표현될 수 있다. 예를 들어, 제1 예측 블록은 제1 영역이 있는 프레임의 한 프레임 이전의 프레임에서 제1 영역을 기준으로 (-1, 5)에 위치한 영역일 수 있다. 이때, 움직임 벡터는 제1 영역 및 제1 예측 블록의 동일한 기준점의 차이일 수 있다. 예를 들어, 움직임 벡터는 제1 영역의 좌측 상단 지점과 제1 예측 블록의 좌측 상단 지점의 좌표 값의 차이일 수 있다.Meanwhile, the motion vector may be represented by (Δx, Δy). For example, the first prediction block may be a region located at (-1, 5) with respect to the first region in a frame before one frame of the frame having the first region. In this case, the motion vector may be a difference between the same reference point of the first region and the first prediction block. For example, the motion vector may be a difference between coordinate values of an upper left point of the first region and an upper left point of the first prediction block.
프로세서(320)는 타겟 블록 전체에 대응되는 영역이 아닌 제1 영역에만 대응되는 영역을 검색할 수 있다. 즉, 프로세서(320)는 타겟 블록과 가장 시간적 상관도가 높은 블록을 검색하는 것이 아니라 제1 영역과 가장 시간적 상관도가 높은 블록을 검색할 수 있다.The processor 320 may search for an area corresponding to only the first area and not an area corresponding to the entire target block. That is, the processor 320 may search for a block having the highest temporal correlation with the first block, instead of searching for a block having the highest temporal correlation with the target block.
또는, 프로세서(320)는 제1 참조 프레임에서 제1 영역에 대한 제1 움직임 벡터를 탐색하여, 제1 영역 및 제2 영역을 구성하는 픽셀 값에 각각 상이한 가중치를 적용한 영역에 대응되는 제1 예측 블록을 생성할 수도 있다. 여기서, 프로세서(320)는 제1 영역 및 제2 영역을 구성하는 픽셀 값에 기초하여 제1 영역 및 제2 영역에 적용될 가중치를 결정할 수 있다.Alternatively, the processor 320 may search for a first motion vector with respect to the first region in the first reference frame and apply a first prediction corresponding to a region in which different weights are applied to pixel values constituting the first region and the second region, respectively. You can also create blocks. Here, the processor 320 may determine a weight to be applied to the first region and the second region based on pixel values constituting the first region and the second region.
제1 예측 블록이 생성되면, 프로세서(320)는 기설정된 분할 방법에 따라, 제1 예측 블록을 제3 영역 및 제4 영역으로 분할하고, 경계 정보를 생성할 수 있다. 여기서, 기설정된 분할 방법은 타겟 블록을 분할한 방법과 동일한 방법이다.When the first prediction block is generated, the processor 320 may divide the first prediction block into a third region and a fourth region according to a predetermined division method, and generate boundary information. Here, the predetermined division method is the same as the method of dividing the target block.
복호화 장치(200)는 타겟 블록(원본 영상)에 대한 정보가 없기 때문에 타겟 블록을 분할할 수 없다. 다만, 복호화 장치(200)는 참조 프레임을 재구성할 수 있고, 그에 따라 제1 참조 프레임의 일부인 제1 예측 블록은 분할할 수 있다.The decoding apparatus 200 cannot divide the target block because there is no information about the target block (the original image). However, the decoding apparatus 200 may reconstruct the reference frame, and thus may split the first prediction block that is a part of the first reference frame.
따라서, 부호화 장치(100)에서 타겟 블록을 기설정된 방법을 이용하여 분할하고, 복호화 장치(200)에서 제1 예측 블록을 동일한 기설정된 방법을 이용하여 분할하더라도, 그 분할 결과는 다르게 되고, 에러가 발생하게 된다.Therefore, even if the encoding apparatus 100 splits the target block using a predetermined method and the decoding apparatus 200 splits the first prediction block using the same preset method, the splitting result is different, and an error is generated. Will occur.
다만, 부호화 장치(100)가 제1 예측 블록을 제3 영역 및 제4 영역으로 분할하는 경우, 복호화 장치(200)와 동일한 제1 예측 블록을 분할할 수 있기 때문에 에러가 발생하지 않게 된다. 따라서, 부호화 장치(100)는 제1 예측 블록이 생성되면 다시 한번 제1 예측 블록을 분할하게 된다.However, when the encoding apparatus 100 divides the first prediction block into the third region and the fourth region, since the same first prediction block as the decoding apparatus 200 may be divided, an error does not occur. Therefore, the encoding apparatus 100 splits the first prediction block once again when the first prediction block is generated.
한편, 제1 예측 블록은 타겟 블록의 제1 영역에 대응되는 영역을 포함하고 있으므로, 동일한 방법에 의해 분할된 제3 영역은 제1 영역과 유사한 형태를 갖는다. 그에 따라, 제4 영역 역시 제2 영역과 유사한 형태를 갖는다.On the other hand, since the first prediction block includes a region corresponding to the first region of the target block, the third region divided by the same method has a form similar to that of the first region. Accordingly, the fourth region also has a similar shape to the second region.
프로세서(320)는 제2 참조 프레임에서 제2 영역에 대응되는 제4 영역에 대한 제2 움직임 벡터를 탐색하여 제4 영역에 대응되는 영역을 포함하는 제2 예측 블록을 생성할 수 있다. 여기서, 제2 참조 프레임은 참조 영상 중 하나일 수 있고, 제1 참조 프레임과는 다른 프레임일 수 있다. 다만, 이에 한정되는 것은 아니며, 제2 참조 프레임과 제1 참조 프레임이 동일한 프레임일 수도 있다.The processor 320 may generate a second prediction block including a region corresponding to the fourth region by searching for a second motion vector for the fourth region corresponding to the second region in the second reference frame. Here, the second reference frame may be one of the reference pictures, and may be a different frame from the first reference frame. However, the present invention is not limited thereto, and the second reference frame and the first reference frame may be the same frame.
프로세서(320)는 제1 예측 블록 전체에 대응되는 영역이 아닌 제4 영역에만 대응되는 영역을 검색할 수 있다. 즉, 프로세서(320)는 제1 예측 블록과 가장 시간적 상관도가 높은 블록을 검색하는 것이 아니라 제4 영역과 가장 시간적 상관도가 높은 블록을 검색할 수 있다.The processor 320 may search for an area corresponding only to the fourth area, not an area corresponding to the entire first prediction block. That is, the processor 320 may search for the block having the highest temporal correlation with the fourth region, instead of searching for the block having the highest temporal correlation with the first prediction block.
또는, 프로세서(320)는 제2 참조 프레임에서 제2 영역에 대응되는 제4 영역에 대한 제2 움직임 벡터를 탐색하여 제3 영역 및 제4 영역을 구성하는 픽셀 값에 각각 상이한 가중치를 적용한 영역에 대응되는 제2 예측 블록을 생성할 수도 있다. 여기서, 프로세서(320)는 제3 영역 및 제4 영역을 구성하는 픽셀 값에 기초하여 제3 및 제4 영역에 적용될 가중치를 결정할 수 있다.Alternatively, the processor 320 may search for a second motion vector with respect to a fourth region corresponding to the second region in the second reference frame, and apply a different weight to the pixel values constituting the third region and the fourth region. A corresponding second prediction block may be generated. Here, the processor 320 may determine weights to be applied to the third and fourth regions based on pixel values constituting the third and fourth regions.
프로세세(320)는 경계 정보에 따라 제1 예측 블록 및 제2 예측 블록을 병합하여 타겟 블록에 대응되는 제3 예측 블록을 생성할 수 있다. 예를 들어, 프로세서(320)는 경계 정보에 기초하여 제1 예측 블록의 제3 영역 및 제2 예측 블록에서 제4 영역에 대응되는 영역을 병합하여 제3 예측 블록을 생성할 수 있다.The processor 320 may generate a third prediction block corresponding to the target block by merging the first prediction block and the second prediction block according to the boundary information. For example, the processor 320 may generate the third prediction block by merging the third region of the first prediction block and the region corresponding to the fourth region in the second prediction block based on the boundary information.
한편, 프로세서(320)는 제3 예측 블록을 생성한 후, 제3 영역 및 제4 영역에 대응되는 영역의 경계에 수평 방향 및 수직 방향 필터링을 적용할 수 있다.Meanwhile, after generating the third prediction block, the processor 320 may apply horizontal and vertical filtering to boundaries between regions corresponding to the third region and the fourth region.
그리고, 프로세서(320)는 제1 움직임 벡터 및 제2 움직임 벡터를 복호화 장치(200)로 전송하도록 인터페이스(310)를 제어할 수 있다.In addition, the processor 320 may control the interface 310 to transmit the first motion vector and the second motion vector to the decoding apparatus 200.
도 4a 및 도 4b는 본 발명의 일 실시 예에 따른 타겟 블록을 분할하는 방법을 설명하기 위한 도면이다.4A and 4B are diagrams for describing a method of dividing a target block, according to an exemplary embodiment.
도 4a의 좌측은 부호화하고자 하는 현재 프레임을 나타내고, 우측은 현재 프레임의 타겟 블록(410)을 확대한 도면이다. 현재 프레임은 동일한 크기의 복수의 블록으로 구분되어 있으나, 이는 일 실시 예에 불과하다. 예를 들어, 현재 프레임은 서로 다른 크기의 복수의 블록으로 구분되어 있을 수도 있고, 정사각형이 아닌 직사각형의 블록을 포함할 수도 있다.The left side of FIG. 4A shows the current frame to be encoded, and the right side shows an enlarged view of the target block 410 of the current frame. The current frame is divided into a plurality of blocks of the same size, but this is only an example. For example, the current frame may be divided into a plurality of blocks of different sizes or may include rectangular blocks other than squares.
도 4a의 우측에 도시된 바와 같이, 프로세서(320)는 기설정된 분할 방법에 따라, 타겟 블록(410)을 제1 영역(420) 및 제2 영역(430)으로 분할할 수 있다. 예를 들어, 프로세서(320)는 기설정된 픽셀 값을 기준으로 타겟 블록(410)을 분할할 수도 있다. 기설정된 픽셀 값은 타겟 블록(410)을 구성하는 복수의 픽셀들의 평균 픽셀 값일 수 있다. 또는, 기설정된 픽셀 값은 타겟 블록(410)을 구성하는 일부 픽셀들의 평균 픽셀 값일 수 있다. 또는, 기설정된 픽셀 값은 사용자에 의해 설정된 픽셀 값일 수 있다.As shown in the right side of FIG. 4A, the processor 320 may divide the target block 410 into the first region 420 and the second region 430 according to a predetermined division method. For example, the processor 320 may divide the target block 410 based on a predetermined pixel value. The preset pixel value may be an average pixel value of a plurality of pixels constituting the target block 410. Alternatively, the preset pixel value may be an average pixel value of some pixels constituting the target block 410. Alternatively, the preset pixel value may be a pixel value set by the user.
프로세서(320)는 타겟 블록(410)을 하나의 픽셀 값을 기준으로 두 개의 영역으로 분할할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 프로세서(320)는 타겟 블록(410)을 복수의 픽셀 값을 기준으로 복수의 영역으로 분할할 수도 있다.The processor 320 may divide the target block 410 into two regions based on one pixel value, but is not limited thereto. For example, the processor 320 may divide the target block 410 into a plurality of regions based on the plurality of pixel values.
한편, 도 4b에 도시된 바와 같이, 프로세서(320)는 기설정된 픽셀 값을 기준으로 제1 영역(420), 제2 영역(430) 및 제3 영역(440)으로 타겟 블록(410)을 분할할 수도 있다. 이 경우, 프로세서(320)는 제3 영역(440)을 구성하는 픽셀의 수를 고려하여 제3 영역(440)을 무시하고, 타겟 블록(410)을 제1 영역(420) 및 제2 영역(430)으로 분할할 수도 있다. 그에 따라, 프로세서(320)는 타겟 블록(410)의 가장 두드러지는 경계를 기준으로 타겟 블록(410)을 구분할 수 있다.As illustrated in FIG. 4B, the processor 320 divides the target block 410 into the first region 420, the second region 430, and the third region 440 based on a predetermined pixel value. You may. In this case, the processor 320 ignores the third region 440 in consideration of the number of pixels constituting the third region 440, and replaces the target block 410 with the first region 420 and the second region ( 430 may be divided. Accordingly, the processor 320 may distinguish the target block 410 based on the most prominent boundary of the target block 410.
다만, 이에 한정되는 것은 아니며, 프로세서(320)는 타겟 블록(410)을 분할하지 않을 수도 있다. 예를 들어, 프로세서(320)는 타겟 블록(410)을 구성하는 복수의 픽셀들의 픽셀 값이 불규칙적인 경우, 타겟 블록(410)을 분할하지 않을 수도 있다.However, the present invention is not limited thereto, and the processor 320 may not divide the target block 410. For example, the processor 320 may not divide the target block 410 when the pixel values of the plurality of pixels constituting the target block 410 are irregular.
도 5는 본 발명의 일 실시 예에 따른 예측 블록을 생성하는 방법을 설명하기 위한 도면이다.5 is a diagram for describing a method of generating a prediction block according to an embodiment of the present invention.
도 5에 도시된 바와 같이, 프로세서(320)는 참조 프레임에서 제1 영역(510)에 대한 제1 움직임 벡터를 탐색하여 제1 영역에 대응되는 영역을 포함하는 제1 예측 블록(530)을 생성할 수 있다. 이때, 프로세서(320)는 제2 영역(520)은 고려하지 않고 예측을 수행할 수 있다. 또는, 제2 영역 일부를 함께 고려하여 예측을 수행할 수도 있다.As shown in FIG. 5, the processor 320 searches for a first motion vector for the first area 510 in the reference frame to generate a first prediction block 530 including an area corresponding to the first area. can do. In this case, the processor 320 may perform prediction without considering the second region 520. Alternatively, prediction may be performed by considering a part of the second region.
또는, 프로세서(320)는 참조 프레임에서 제1 영역(510)에 대한 제1 움직임 벡터를 탐색하여, 제1 영역(510) 및 제2 영역(520)을 구성하는 픽셀 값에 각각 상이한 가중치를 적용한 영역에 대응되는 제1 예측 블록(530)을 생성할 수도 있다. 이 경우, 프로세서(320)는 제1 영역(510) 및 제2 영역(520)을 구성하는 픽셀 값에 기초하여 제1 영역(510) 및 제2 영역(520)에 적용될 가중치를 결정할 수 있다.Alternatively, the processor 320 searches for a first motion vector for the first region 510 in the reference frame, and applies different weights to pixel values constituting the first region 510 and the second region 520, respectively. The first prediction block 530 corresponding to the region may be generated. In this case, the processor 320 may determine a weight to be applied to the first region 510 and the second region 520 based on pixel values constituting the first region 510 and the second region 520.
예를 들어, 프로세서(320)는 제1 영역(510) 및 제2 영역(520)의 경계가 두드러지도록 각각의 영역에 적용될 가중치를 결정할 수도 있다.For example, the processor 320 may determine a weight to be applied to each region so that the boundary of the first region 510 and the second region 520 is prominent.
다만, 이에 한정되는 것은 아니며, 프로세서(320)는 제1 영역(510)의 형태를 제1 영역(510)의 픽셀 값보다 중요한 요소로 설정하고 예측을 수행할 수도 있다. 또는, 프로세서(320)는 제1 영역(510)의 형태를 제2 영역(520)의 형태보다 중요한 요소로 설정하고 예측을 수행할 수도 있다.However, the present invention is not limited thereto, and the processor 320 may set the shape of the first region 510 to be more important than the pixel value of the first region 510 and perform prediction. Alternatively, the processor 320 may set the shape of the first area 510 to be more important than the shape of the second area 520 and perform prediction.
도 5에서는 단방향 예측에 대하여만 도시하고 있으나, 이에 한정되는 것은 아니다. 예를 들어, 프로세서(320)는 양방향 예측을 수행할 수 있으며, 특히 제1 영역(510)만을 고려하여 양방향 예측을 수행할 수도 있다. 이 경우, 프로세서(320)는 가중 예측을 수행할 수도 있다.In FIG. 5, only the unidirectional prediction is illustrated, but is not limited thereto. For example, the processor 320 may perform bidirectional prediction. In particular, the processor 320 may perform bidirectional prediction considering only the first region 510. In this case, the processor 320 may perform weighted prediction.
도 6a 및 도 6b는 본 발명의 일 실시 예에 따른 경계 정보를 설명하기 위한 도면이다.6A and 6B are diagrams for describing boundary information according to an embodiment of the present invention.
프로세서(320)는 제1 예측 블록을 생성한 후 타겟 블록을 분할한 방법과 동일한 분할 방법으로 제1 예측 블록을 분할할 수 있다.The processor 320 may generate the first prediction block and then divide the first prediction block by the same division method as the division method of the target block.
제1 예측 블록은 타겟 블록과는 유사하나, 완전히 동일하지는 않을 수 있다. 따라서, 도 6a에 도시된 바와 같이, 타겟 블록의 분할 경계선(610)과 제1 예측 블록의 분할 경계선(620)은 오차가 있을 수 있다.The first prediction block is similar to the target block, but may not be exactly the same. Therefore, as shown in FIG. 6A, the division boundary 610 of the target block and the division boundary 620 of the first prediction block may have an error.
프로세서(320)는 제1 예측 블록을 분할하고, 경계 정보를 생성할 수 있다. 경계 정보는 각 영역에 대한 마스크로서 생성될 수도 있다. 또는, 경계 정보는 각 영역의 경계의 좌표를 나타내는 정보일 수도 있다.The processor 320 may divide the first prediction block and generate boundary information. The boundary information may be generated as a mask for each region. Alternatively, the boundary information may be information indicating the coordinates of the boundary of each region.
프로세서(320)는 제1 예측 블록을 제3 영역 및 제4 영역으로 분할하고, 제2 참조 프레임에서 제2 영역에 대응되는 제4 영역에 대한 제2 움직임 벡터를 탐색하여 제4 영역에 대응되는 영역을 포함하는 제2 예측 블록을 생성할 수 있다. 이와 같은 과정은 도 5의 예측 블록을 생성하는 방법과 동일하므로 구체적인 설명은 생략한다.The processor 320 divides the first prediction block into a third region and a fourth region, searches for a second motion vector for the fourth region corresponding to the second region in the second reference frame, and corresponds to the fourth region. A second prediction block including the region may be generated. Since this process is the same as the method of generating the prediction block of FIG. 5, a detailed description thereof is omitted.
도 7은 본 발명의 일 실시 예에 따른 예측 블록을 병합하는 방법을 설명하기 위한 도면이다.7 is a diagram for describing a method of merging prediction blocks according to an embodiment of the present invention.
도 7에 도시된 바와 같이, 프로세서(320)는 경계 정보(735)에 따라 제1 예측 블록(710) 및 제2 예측 블록(720)을 병합하여 타겟 블록에 대응되는 제3 예측 블록(730)을 생성할 수 있다. 여기서, 경계 정보(735)는 제1 예측 블록의 분할 경계선에 대한 정보일 수 있다.As shown in FIG. 7, the processor 320 merges the first prediction block 710 and the second prediction block 720 according to the boundary information 735, and thus the third prediction block 730 corresponding to the target block. Can be generated. Here, the boundary information 735 may be information about a division boundary of the first prediction block.
특히, 프로세서(320)는 경계 정보(735)에 기초하여 제1 예측 블록(710)의 제3 영역(715) 및 제2 예측 블록(720)에서 제4 영역(716)에 대응되는 영역(725)을 병합하여 제3 예측 블록(730)을 생성할 수 있다.In particular, the processor 320 may correspond to the region 725 corresponding to the fourth region 716 in the third region 715 and the second prediction block 720 of the first prediction block 710 based on the boundary information 735. ) May be merged to generate a third prediction block 730.
또는, 프로세서(320)는 제1 예측 블록(710) 및 제2 예측 블록(720)을 마스킹하여 제3 예측 블록(730)을 생성할 수도 있다. 또는, 프로세서(320)는 제1 예측 블록(710) 및 제2 예측 블록(720)에 각각 상이한 가중치를 적용하여 제3 예측 블록(730)을 생성할 수도 있다.Alternatively, the processor 320 may generate the third prediction block 730 by masking the first prediction block 710 and the second prediction block 720. Alternatively, the processor 320 may generate the third prediction block 730 by applying different weights to the first prediction block 710 and the second prediction block 720, respectively.
이후, 프로세서(320)는 제3 예측 블록(730)을 생성한 후, 제3 영역(715) 및 제4 영역(716)에 대응되는 영역(725)의 경계에 수평 방향 및 수직 방향 필터링을 적용할 수 있다. 특히, 프로세서(320)는 필터 계수 및 크기를 제3 예측 블록(730)의 특성을 고려하여 결정할 수 있다.Thereafter, the processor 320 generates the third prediction block 730 and then applies horizontal and vertical filtering to the boundary between the region 725 corresponding to the third region 715 and the fourth region 716. can do. In particular, the processor 320 may determine the filter coefficient and the size in consideration of the characteristics of the third prediction block 730.
한편, 프로세서(320)는 생성된 움직임 벡터를 복호화 장치(200)로 전송할 수 있다. 프로세서(320)는 생성된 움직임 벡터의 절대값을 복호화 장치(200)로 전송할 수도 있고, 예측 움직임 벡터와의 차분 값을 전송할 수도 있다. 이때, 프로세서(320)는 분할된 각 영역에 대하여 서로 다른 예측 움직임 벡터를 이용할 수도 있다.The processor 320 may transmit the generated motion vector to the decoding apparatus 200. The processor 320 may transmit the absolute value of the generated motion vector to the decoding apparatus 200 or may transmit a difference value with the predicted motion vector. In this case, the processor 320 may use different prediction motion vectors for each divided region.
도 3 내지 도 7에서는 부호화 장치(100)의 예측 블록 생성 동작에 대하여 설명하였다. 예측 블록 생성 후의 부호화 장치(100)의 동작은 도 1에서 설명한 바와 동일하므로 생략한다.3 to 7 have described the prediction block generation operation of the encoding apparatus 100. Since the operation of the encoding apparatus 100 after generating the predictive block is the same as described with reference to FIG. 1, it is omitted.
도 8은 본 발명의 일 실시 예에 따른 복호화 장치(200)를 설명하기 위한 간략화된 블럭도이다.8 is a simplified block diagram illustrating a decoding apparatus 200 according to an embodiment of the present invention.
도 8에 도시된 바와 같이, 복호화 장치(200)는 인터페이스(810) 및 프로세서(820)를 포함한다.As shown in FIG. 8, the decoding device 200 includes an interface 810 and a processor 820.
한편, 도 8은 복호화 장치(200)가 통신 기능 및 제어 기능 등과 같은 기능을 구비한 장치인 경우를 예로 들어, 각종 구성 요소들을 간략하게 도시한 것이다. 따라서, 실시 예에 따라서는, 도 8에 도시된 구성 요소 중 일부는 생략 또는 변경될 수도 있고, 다른 구성 요소가 더 추가될 수도 있다.Meanwhile, FIG. 8 is a diagram briefly illustrating various components, for example, when the decoding apparatus 200 is a device having a function such as a communication function and a control function. Therefore, according to an embodiment, some of the components shown in FIG. 8 may be omitted or changed, and other components may be further added.
인터페이스(810)는 부호화 장치(100)와 통신을 수행할 수 있다. 구체적으로, 인터페이스(810)는 부호화 장치(100)로부터 부호화된 비트 스트림, 움직임 정보 등을 수신할 수 있다.The interface 810 may communicate with the encoding apparatus 100. In detail, the interface 810 may receive an encoded bit stream, motion information, and the like from the encoding apparatus 100.
인터페이스(810)는 유/무선 LAN, WAN, 이더넷, 블루투스(Bluetooth), 지그비(Zigbee), IEEE 1394, 와이파이(Wifi) 또는 PLC(Power Line Communication) 등을 이용하여, 부호화 장치(100)와 통신을 수행할 수 있다.The interface 810 communicates with the encoding apparatus 100 using wired / wireless LAN, WAN, Ethernet, Bluetooth, Zigbee, IEEE 1394, Wifi, or Power Line Communication (PLC). Can be performed.
프로세서(820)는 현재 프레임에서 복호화할 타겟 블록에 대해, 제1 참조 프레임(Reference frame)에서 탐색된 제1 움직임 벡터 및 제2 참조 프레임에서 탐색된 제2 움직임 벡터를 부호화 장치(100)로부터 수신할 수 있다. 여기서, 프로세서(820)는 제1 움직임 벡터 및 제2 움직임 벡터의 절대값을 부호화 장치(100)로부터 수신할 수 있다.The processor 820 receives, from the encoding apparatus 100, the first motion vector searched in the first reference frame and the second motion vector searched in the second reference frame with respect to the target block to be decoded in the current frame. can do. Here, the processor 820 may receive the absolute values of the first motion vector and the second motion vector from the encoding apparatus 100.
또는, 프로세서(820)는 예측 움직임 벡터와의 차분 값을 수신할 수도 있다. 이때, 프로세서(820)는 분할된 각 영역에 대하여 서로 다른 예측 움직임 벡터를 이용한 차분 값을 수신할 수도 있다.Alternatively, the processor 820 may receive a difference value with the predicted motion vector. In this case, the processor 820 may receive a difference value using different prediction motion vectors for each divided region.
프로세서(820)는 차분 값이 수신된 경우, 예측 움직임 벡터와 차분 값을 더하여 움직임 벡터를 산출할 수 있다.When the difference value is received, the processor 820 may calculate the motion vector by adding the predicted motion vector and the difference value.
프로세서(820)는 제1 참조 프레임 및 제2 참조 프레임 각각에서, 제1 움직임 벡터 및 제2 움직임 벡터에 기초하여 제1 예측 블록 및 제2 예측 블록을 생성할 수 있다. 여기서, 제1 참조 프레임 및 제2 참조 프레임은 동일한 참조 프레임일 수 있다. 또한, 참조 프레임은 참조 영상 중 하나일 수 있다.The processor 820 may generate a first prediction block and a second prediction block based on the first motion vector and the second motion vector in each of the first reference frame and the second reference frame. Here, the first reference frame and the second reference frame may be the same reference frame. In addition, the reference frame may be one of the reference images.
그리고, 프로세서(820)는 기설정된 분할 방법에 따라, 제1 예측 블록을 복수의 영역으로 분할하고, 경계 정보를 생성할 수 있다. 여기서, 기설정된 분할 방법은 부호화 장치(100)에서 이용한 타겟 블록을 분할하는 기설정된 방법과 동일한 방법이다.The processor 820 may divide the first prediction block into a plurality of regions and generate boundary information according to a predetermined division method. Here, the preset division method is the same as the preset method of dividing the target block used by the encoding apparatus 100.
분할 방법의 예로서, 제1 예측 블록을 구성하는 복수의 픽셀들의 픽셀 값에 기초하여 제1 예측 블록을 복수의 영역으로 구분하는 방법이 있을 수 있다.As an example of the division method, there may be a method of dividing the first prediction block into a plurality of regions based on pixel values of a plurality of pixels constituting the first prediction block.
프로세서(820)는 경계 정보에 따라 제1 예측 블록 및 제2 예측 블록을 병합하여 타겟 블록에 대응되는 제3 예측 블록을 생성할 수 있다.The processor 820 may generate a third prediction block corresponding to the target block by merging the first prediction block and the second prediction block according to the boundary information.
특히, 프로세서(820)는 기설정된 분할 방법에 따라, 제1 예측 블록을 제1 영역 및 제2 영역으로 분할하고, 경계 정보에 기초하여 제1 예측 블록의 제1 영역 및 제2 예측 블록에서 제2 영역에 대응되는 영역을 병합하여 제3 예측 블록을 생성할 수도 있다. 다만, 이는 일 실시 예에 불과하고, 제1 예측 블록을 세 영역 이상으로 분할하여 제3 예측 블록을 생성할 수도 있다.In particular, the processor 820 divides the first prediction block into the first region and the second region according to a preset division method, and based on the boundary information, the processor 820 removes the first prediction block from the first region and the second prediction block of the first prediction block. The third prediction block may be generated by merging regions corresponding to the two regions. However, this is only an example. The third prediction block may be generated by dividing the first prediction block into three or more regions.
프로세서(820)는 제3 예측 블록을 생성한 후, 제1 영역 및 제2 영역에 대응되는 영역의 경계에 수평 방향 및 수직 방향 필터링을 적용할 수 있다. 특히, 프로세서(820)는 필터 계수 및 크기를 제3 예측 블록의 특성을 고려하여 결정할 수 있다.After generating the third prediction block, the processor 820 may apply horizontal and vertical filtering to boundaries between regions corresponding to the first region and the second region. In particular, the processor 820 may determine the filter coefficient and the size in consideration of the characteristics of the third prediction block.
도 8에서는 복호화 장치(200)의 예측 블록 생성 동작에 대하여 설명하였다. 예측을 수행하는 동작을 제외하고, 예측 블록을 생성하는 동작은 부호화 장치(100)와 동일하여 구체적인 설명은 생략하였다. 또한, 예측 블록 생성 후의 복호화 장치(200)의 동작은 도 2에서 설명한 바와 동일하므로 생략한다.In FIG. 8, a prediction block generation operation of the decoding apparatus 200 has been described. Except for performing the prediction, the operation of generating the prediction block is the same as the encoding apparatus 100, and thus, a detailed description thereof is omitted. In addition, since the operation of the decoding apparatus 200 after generating the predictive block is the same as described with reference to FIG. 2, it is omitted.
도 9는 본 발명의 일 실시 예에 따른 부호화 장치의 예측 블록 생성 방법을 설명하기 위한 흐름도이다.9 is a flowchart illustrating a prediction block generation method of an encoding apparatus according to an embodiment of the present invention.
먼저, 기설정된 분할 방법에 따라, 현재 프레임의 타겟 블록을 제1 영역 및 제2 영역으로 분할한다(S910). 그리고, 제1 참조 프레임(Reference frame)에서 제1 영역에 대한 제1 움직임 벡터를 탐색하여 제1 영역에 대응되는 영역을 포함하는 제1 예측 블록을 생성한다(S920). 그리고, 기설정된 분할 방법에 따라, 제1 예측 블록을 제3 영역 및 제4 영역으로 분할하고, 경계 정보를 생성한다(S930). 그리고, 제2 참조 프레임에서 제2 영역에 대응되는 제4 영역에 대한 제2 움직임 벡터를 탐색하여 제4 영역에 대응되는 영역을 포함하는 제2 예측 블록을 생성한다(S940). 그리고, 경계 정보에 따라 제1 예측 블록 및 제2 예측 블록을 병합하여 타겟 블록에 대응되는 제3 예측 블록을 생성한다(S950).First, the target block of the current frame is divided into a first region and a second region according to a predetermined division method (S910). In operation S920, a first prediction block including a region corresponding to the first region is generated by searching for a first motion vector for the first region in the first reference frame. In operation S930, the first prediction block is divided into a third region and a fourth region, and boundary information is generated according to a predetermined division method. In operation S940, a second prediction block including a region corresponding to the fourth region is generated by searching for a second motion vector for the fourth region corresponding to the second region in the second reference frame. In operation S950, the first prediction block and the second prediction block are merged according to the boundary information to generate a third prediction block corresponding to the target block.
여기서, 기설정된 분할 방법은 타겟 블록을 구성하는 복수의 픽셀들의 픽셀 값에 기초하여 타겟 블록을 복수의 영역으로 구분하는 방법일 수 있다.Here, the predetermined division method may be a method of dividing the target block into a plurality of areas based on pixel values of a plurality of pixels constituting the target block.
한편, 제3 예측 블록을 생성하는 단계(S950)는 경계 정보에 기초하여 제1 예측 블록의 제3 영역 및 제2 예측 블록에서 제4 영역에 대응되는 영역을 병합하여 제3 예측 블록을 생성할 수 있다.In operation S950, generating the third prediction block may generate a third prediction block by merging the third region of the first prediction block and the region corresponding to the fourth region in the second prediction block. Can be.
특히, 제3 예측 블록을 생성한 후, 제3 영역 및 제4 영역에 대응되는 영역의 경계에 수평 방향 및 수직 방향 필터링을 적용할 수 있다.In particular, after generating the third prediction block, horizontal and vertical filtering may be applied to boundaries between regions corresponding to the third and fourth regions.
한편, 제1 예측 블록을 생성하는 단계(S920)는 제1 참조 프레임에서 제1 영역에 대한 제1 움직임 벡터를 탐색하여, 제1 영역 및 제2 영역을 구성하는 픽셀 값에 각각 상이한 가중치를 적용한 영역에 대응되는 제1 예측 블록을 생성하고, 제2 예측 블록을 생성하는 단계(S940)는 제2 참조 프레임에서 제2 영역에 대응되는 제4 영역에 대한 제2 움직임 벡터를 탐색하여 제3 영역 및 제4 영역을 구성하는 픽셀 값에 각각 상이한 가중치를 적용한 영역에 대응되는 제2 예측 블록을 생성할 수 있다.In operation S920, the generating of the first prediction block searches for a first motion vector for the first region in the first reference frame, and applies different weights to pixel values constituting the first region and the second region, respectively. Generating the first prediction block corresponding to the region and generating the second prediction block (S940) may be performed by searching for a second motion vector for the fourth region corresponding to the second region in the second reference frame to search for the third region. And second prediction blocks corresponding to regions in which different weights are applied to pixel values constituting the fourth region.
여기서, 제1 영역 및 제2 영역을 구성하는 픽셀 값에 기초하여 제1 영역 및 제2 영역에 적용될 가중치를 결정하고, 제3 영역 및 제4 영역을 구성하는 픽셀 값에 기초하여 제3 영역 및 제4 영역에 적용될 가중치를 결정할 수 있다.Here, a weight to be applied to the first region and the second region is determined based on pixel values configuring the first region and the second region, and the third region and the pixel value based on the pixel values configuring the third region and the fourth region. The weight to be applied to the fourth region may be determined.
도 10은 본 발명의 일 실시 예에 따른 복호화 장치의 예측 블록 생성 방법을 설명하기 위한 흐름도이다.10 is a flowchart illustrating a method of generating a prediction block of a decoding apparatus according to an embodiment of the present invention.
먼저, 현재 프레임에서 복호화할 타겟 블록에 대해, 제1 참조 프레임(Reference frame)에서 탐색된 제1 움직임 벡터 및 제2 참조 프레임에서 탐색된 제2 움직임 벡터를 수신한다(S1010). 그리고, 제1 참조 프레임 및 제2 참조 프레임 각각에서, 제1 움직임 벡터 및 제2 움직임 벡터에 기초하여 제1 예측 블록 및 제2 예측 블록을 생성한다(S1020). 그리고, 기설정된 분할 방법에 따라, 제1 예측 블록을 복수의 영역으로 분할하고, 경계 정보를 생성한다(S1030). 그리고, 경계 정보에 따라 제1 예측 블록 및 제2 예측 블록을 병합하여 타겟 블록에 대응되는 제3 예측 블록을 생성한다(S1040).First, a first motion vector searched in a first reference frame and a second motion vector searched in a second reference frame are received with respect to a target block to be decoded in the current frame (S1010). In each of the first reference frame and the second reference frame, a first prediction block and a second prediction block are generated based on the first motion vector and the second motion vector (S1020). In operation S1030, the first prediction block is divided into a plurality of areas according to a predetermined division method, and boundary information is generated. The first prediction block and the second prediction block are merged according to the boundary information to generate a third prediction block corresponding to the target block (S1040).
여기서, 기설정된 분할 방법은 제1 예측 블록을 구성하는 복수의 픽셀들의 픽셀 값에 기초하여 제1 예측 블록을 복수의 영역으로 구분하는 방법일 수 있다.Here, the predetermined division method may be a method of dividing the first prediction block into a plurality of regions based on pixel values of the plurality of pixels constituting the first prediction block.
한편, 분할하는 단계(S1030)는 기설정된 분할 방법에 따라, 제1 예측 블록을 제1 영역 및 제2 영역으로 분할하고, 제3 예측 블록을 생성하는 단계(S1040)는 경계 정보에 기초하여 제1 예측 블록의 제1 영역 및 제2 예측 블록에서 제2 영역에 대응되는 영역을 병합하여 제3 예측 블록을 생성할 수 있다.Meanwhile, the dividing operation (S1030) may be performed by dividing the first prediction block into a first region and a second region, and generating the third prediction block (S1040) according to a predetermined division method. A third prediction block may be generated by merging regions corresponding to the second region in the first region and the second prediction block of the first prediction block.
여기서, 제3 예측 블록을 생성한 후, 제1 영역 및 제2 영역에 대응되는 영역의 경계에 수평 방향 및 수직 방향 필터링을 적용할 수 있다.Here, after generating the third prediction block, horizontal and vertical filtering may be applied to boundaries between regions corresponding to the first region and the second region.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 현재 프레임의 타겟 블록을 타겟 블록의 픽셀 값에 따라 복수의 영역으로 분할하여 인터 예측을 수행함에 따라 예측의 정확도를 향상시킬 수 있다.According to various embodiments of the present disclosure as described above, the prediction accuracy may be improved by dividing the target block of the current frame into a plurality of regions according to pixel values of the target block.
한편, 이상에서는 타겟 블록을 두 개의 영역으로 분할하여 예측 블록을 생성하는 것으로 설명하였으나, 이는 일 실시 예에 불과하다. 예를 들어, 부호화 장치는 타겟 블록을 세 개의 영역으로 분할하고, 각 영역에 대한 움직인 벡터를 생성할 수도 있다.In the above description, the prediction block is generated by dividing the target block into two regions, but this is only an example. For example, the encoding apparatus may divide the target block into three regions and generate a moving vector for each region.
한편, 이러한 다양한 실시 예에 따른 방법들은 프로그래밍되어 각종 저장 매체에 저장될 수 있다. 이에 따라, 저장 매체를 실행하는 다양한 유형의 부호화 장치 및 복호화 장치에서 상술한 다양한 실시 예에 따른 방법들이 구현될 수 있다.Meanwhile, the methods according to various embodiments of the present disclosure may be programmed and stored in various storage media. Accordingly, the method according to the various embodiments described above may be implemented in various types of encoding apparatuses and decoding apparatuses that execute a storage medium.
구체적으로는, 상술한 제어 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다. Specifically, a non-transitory computer readable medium may be provided in which a program for sequentially performing the above-described control method is stored.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.The non-transitory readable medium refers to a medium that stores data semi-permanently and is readable by a device, not a medium storing data for a short time such as a register, a cache, a memory, and the like. Specifically, the various applications or programs described above may be stored and provided in a non-transitory readable medium such as a CD, a DVD, a hard disk, a Blu-ray disk, a USB, a memory card, a ROM, or the like.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.In addition, although the preferred embodiment of the present invention has been shown and described above, the present invention is not limited to the above-described specific embodiment, the technical field to which the invention belongs without departing from the spirit of the invention claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be individually understood from the technical spirit or the prospect of the present invention.

Claims (15)

  1. 부호화 장치의 부호화 방법에 있어서,In the encoding method of the encoding device,
    기설정된 분할 방법에 따라, 현재 프레임의 타겟 블록을 제1 영역 및 제2 영역으로 분할하는 단계;Dividing the target block of the current frame into a first region and a second region according to a preset division method;
    제1 참조 프레임(Reference frame)에서 상기 제1 영역에 대한 제1 움직임 벡터를 탐색하여 상기 제1 영역에 대응되는 영역을 포함하는 제1 예측 블록을 생성하는 단계;Generating a first prediction block including a region corresponding to the first region by searching for a first motion vector for the first region in a first reference frame;
    상기 기설정된 분할 방법에 따라, 상기 제1 예측 블록을 제3 영역 및 제4 영역으로 분할하고, 경계 정보를 생성하는 단계;Dividing the first prediction block into a third region and a fourth region according to the preset division method, and generating boundary information;
    제2 참조 프레임에서 상기 제2 영역에 대응되는 상기 제4 영역에 대한 제2 움직임 벡터를 탐색하여 상기 제4 영역에 대응되는 영역을 포함하는 제2 예측 블록을 생성하는 단계; 및Generating a second prediction block including a region corresponding to the fourth region by searching for a second motion vector of the fourth region corresponding to the second region in a second reference frame; And
    상기 경계 정보에 따라 상기 제1 예측 블록 및 상기 제2 예측 블록을 병합하여 상기 타겟 블록에 대응되는 제3 예측 블록을 생성하는 단계;를 포함하는 부호화 방법.And generating a third prediction block corresponding to the target block by merging the first prediction block and the second prediction block according to the boundary information.
  2. 제1항에 있어서,The method of claim 1,
    상기 기설정된 분할 방법은,The predetermined division method,
    상기 타겟 블록을 구성하는 복수의 픽셀들의 픽셀 값에 기초하여 상기 타겟 블록을 복수의 영역으로 구분하는 방법인, 부호화 방법.And a method of dividing the target block into a plurality of areas based on pixel values of a plurality of pixels constituting the target block.
  3. 제1항에 있어서,The method of claim 1,
    상기 제3 예측 블록을 생성하는 단계는,Generating the third prediction block may include:
    상기 경계 정보에 기초하여 상기 제1 예측 블록의 상기 제3 영역 및 상기 제2 예측 블록에서 상기 제4 영역에 대응되는 영역을 병합하여 상기 제3 예측 블록을 생성하는, 부호화 방법.And a third prediction block is generated by merging regions corresponding to the fourth region in the third region and the second prediction block of the first prediction block based on the boundary information.
  4. 제3항에 있어서,The method of claim 3,
    상기 제3 예측 블록을 생성한 후, 상기 제3 영역 및 상기 제4 영역에 대응되는 영역의 경계에 수평 방향 및 수직 방향 필터링을 적용하는 단계;를 더 포함하는, 부호화 방법.After generating the third prediction block, applying horizontal and vertical filtering to a boundary between a region corresponding to the third region and the fourth region.
  5. 제1항에 있어서,The method of claim 1,
    상기 제1 예측 블록을 생성하는 단계는,Generating the first prediction block may include:
    상기 제1 참조 프레임에서 상기 제1 영역에 대한 제1 움직임 벡터를 탐색하여, 상기 제1 영역 및 상기 제2 영역을 구성하는 픽셀 값에 각각 상이한 가중치를 적용한 영역에 대응되는 제1 예측 블록을 생성하고,The first motion vector is searched for the first region in the first reference frame to generate a first prediction block corresponding to a region in which different weights are applied to pixel values constituting the first region and the second region. and,
    상기 제2 예측 블록을 생성하는 단계는,Generating the second prediction block may include:
    상기 제2 참조 프레임에서 상기 제2 영역에 대응되는 상기 제4 영역에 대한 제2 움직임 벡터를 탐색하여 상기 제3 영역 및 상기 제4 영역을 구성하는 픽셀 값에 각각 상이한 가중치를 적용한 영역에 대응되는 제2 예측 블록을 생성하는, 부호화 방법.A second motion vector corresponding to the fourth area corresponding to the second area in the second reference frame, and corresponding to an area in which different weights are applied to pixel values constituting the third area and the fourth area, respectively. An encoding method for generating a second prediction block.
  6. 제5항에 있어서,The method of claim 5,
    상기 제1 영역 및 상기 제2 영역을 구성하는 픽셀 값에 기초하여 상기 제1 영역 및 상기 제2 영역에 적용될 가중치를 결정하고, Determine a weight to be applied to the first region and the second region based on pixel values constituting the first region and the second region,
    상기 제3 영역 및 상기 제4 영역을 구성하는 픽셀 값에 기초하여 상기 제3 영역 및 상기 제4 영역에 적용될 가중치를 결정하는, 부호화 방법.And a weight to be applied to the third region and the fourth region based on pixel values constituting the third region and the fourth region.
  7. 복호화 장치의 복호화 방법에 있어서,In the decoding method of the decoding device,
    현재 프레임에서 복호화할 타겟 블록에 대해, 제1 참조 프레임(Reference frame)에서 탐색된 제1 움직임 벡터 및 제2 참조 프레임에서 탐색된 제2 움직임 벡터를 수신하는 단계;Receiving, for a target block to be decoded in a current frame, a first motion vector searched in a first reference frame and a second motion vector searched in a second reference frame;
    상기 제1 참조 프레임 및 상기 제2 참조 프레임 각각에서, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 기초하여 제1 예측 블록 및 제2 예측 블록을 생성하는 단계;Generating a first prediction block and a second prediction block based on the first motion vector and the second motion vector in each of the first reference frame and the second reference frame;
    기설정된 분할 방법에 따라, 상기 제1 예측 블록을 복수의 영역으로 분할하고, 경계 정보를 생성하는 단계; 및Dividing the first prediction block into a plurality of regions and generating boundary information according to a predetermined division method; And
    상기 경계 정보에 따라 상기 제1 예측 블록 및 상기 제2 예측 블록을 병합하여 상기 타겟 블록에 대응되는 제3 예측 블록을 생성하는 단계;를 포함하는 복호화 방법.And generating a third prediction block corresponding to the target block by merging the first prediction block and the second prediction block according to the boundary information.
  8. 제7항에 있어서,The method of claim 7, wherein
    상기 기설정된 분할 방법은,The predetermined division method,
    상기 제1 예측 블록을 구성하는 복수의 픽셀들의 픽셀 값에 기초하여 상기 제1 예측 블록을 복수의 영역으로 구분하는 방법인, 복호화 방법.And a method of dividing the first prediction block into a plurality of areas based on pixel values of a plurality of pixels constituting the first prediction block.
  9. 제7항에 있어서,The method of claim 7, wherein
    상기 분할하는 단계는,The dividing step,
    상기 기설정된 분할 방법에 따라, 상기 제1 예측 블록을 제1 영역 및 제2 영역으로 분할하고,According to the predetermined division method, the first prediction block is divided into a first region and a second region,
    상기 제3 예측 블록을 생성하는 단계는,Generating the third prediction block may include:
    상기 경계 정보에 기초하여 상기 제1 예측 블록의 상기 제1 영역 및 상기 제2 예측 블록에서 상기 제2 영역에 대응되는 영역을 병합하여 상기 제3 예측 블록을 생성하는, 복호화 방법.And generating a third prediction block by merging regions corresponding to the second region from the first region and the second prediction block of the first prediction block based on the boundary information.
  10. 제9항에 있어서,The method of claim 9,
    상기 제3 예측 블록을 생성한 후, 상기 제1 영역 및 상기 제2 영역에 대응되는 영역의 경계에 수평 방향 및 수직 방향 필터링을 적용하는 단계;를 더 포함하는, 복호화 방법.After generating the third prediction block, applying horizontal and vertical filtering to boundaries between regions corresponding to the first region and the second region.
  11. 부호화 장치에 있어서,In the encoding device,
    복호화 장치와 통신을 수행하는 인터페이스; 및An interface for communicating with the decryption apparatus; And
    기설정된 분할 방법에 따라, 현재 프레임의 타겟 블록을 제1 영역 및 제2 영역으로 분할하며, 제1 참조 프레임(Reference frame)에서 상기 제1 영역에 대한 제1 움직임 벡터를 탐색하여 상기 제1 영역에 대응되는 영역을 포함하는 제1 예측 블록을 생성하며, 상기 기설정된 분할 방법에 따라, 상기 제1 예측 블록을 제3 영역 및 제4 영역으로 분할하고, 경계 정보를 생성하며, 제2 참조 프레임에서 상기 제2 영역에 대응되는 상기 제4 영역에 대한 제2 움직임 벡터를 탐색하여 상기 제4 영역에 대응되는 영역을 포함하는 제2 예측 블록을 생성하며, 상기 경계 정보에 따라 상기 제1 예측 블록 및 상기 제2 예측 블록을 병합하여 상기 타겟 블록에 대응되는 제3 예측 블록을 생성하며, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 상기 복호화 장치로 전송하도록 상기 인터페이스를 제어하는 프로세서;를 포함하는 부호화 장치.The target block of the current frame is divided into a first region and a second region according to a preset division method, and a first motion vector for the first region is searched for in the first reference frame to search for the first region. Generating a first prediction block including a region corresponding to the first prediction block, dividing the first prediction block into a third region and a fourth region, generating boundary information, and generating a second reference frame according to the predetermined division method Generates a second prediction block including a region corresponding to the fourth region by searching for a second motion vector of the fourth region corresponding to the second region, and generates the first prediction block according to the boundary information. And generating a third prediction block corresponding to the target block by merging the second prediction block, and transmitting the first motion vector and the second motion vector to the decoding apparatus. And a processor for controlling the interface.
  12. 제11항에 있어서,The method of claim 11,
    상기 기설정된 분할 방법은,The predetermined division method,
    상기 타겟 블록을 구성하는 복수의 픽셀들의 픽셀 값에 기초하여 상기 타겟 블록을 복수의 영역으로 구분하는 방법인, 부호화 장치.And a method of dividing the target block into a plurality of areas based on pixel values of a plurality of pixels constituting the target block.
  13. 제11항에 있어서,The method of claim 11,
    상기 프로세서는,The processor,
    상기 경계 정보에 기초하여 상기 제1 예측 블록의 상기 제3 영역 및 상기 제2 예측 블록에서 상기 제4 영역에 대응되는 영역을 병합하여 상기 제3 예측 블록을 생성하는, 부호화 장치.And encoding the region corresponding to the fourth region in the third region and the second prediction block of the first prediction block to generate the third prediction block based on the boundary information.
  14. 제13항에 있어서,The method of claim 13,
    상기 프로세서는,The processor,
    상기 제3 예측 블록을 생성한 후, 상기 제3 영역 및 상기 제4 영역에 대응되는 영역의 경계에 수평 방향 및 수직 방향 필터링을 적용하는, 부호화 장치.And after generating the third prediction block, horizontal and vertical filtering are applied to boundaries between regions corresponding to the third region and the fourth region.
  15. 복호화 장치에 있어서,In the decoding device,
    부호화 장치와 통신을 수행하는 인터페이스; 및An interface for communicating with an encoding device; And
    현재 프레임에서 복호화할 타겟 블록에 대해, 제1 참조 프레임(Reference frame)에서 탐색된 제1 움직임 벡터 및 제2 참조 프레임에서 탐색된 제2 움직임 벡터가 상기 부호화 장치로부터 수신되면, 상기 제1 참조 프레임 및 상기 제2 참조 프레임 각각에서, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 기초하여 제1 예측 블록 및 제2 예측 블록을 생성하며, 기설정된 분할 방법에 따라, 상기 제1 예측 블록을 복수의 영역으로 분할하고, 경계 정보를 생성하며, 상기 경계 정보에 따라 상기 제1 예측 블록 및 상기 제2 예측 블록을 병합하여 상기 타겟 블록에 대응되는 제3 예측 블록을 생성하는 프로세서;를 포함하는 복호화 장치.For the target block to be decoded in the current frame, when the first motion vector searched in the first reference frame and the second motion vector searched in the second reference frame are received from the encoding apparatus, the first reference frame And generating a first prediction block and a second prediction block in each of the second reference frames based on the first motion vector and the second motion vector, and according to a predetermined division method, a plurality of the first prediction blocks. And a processor configured to divide the data into regions of the region, generate boundary information, and merge the first prediction block and the second prediction block according to the boundary information to generate a third prediction block corresponding to the target block. Device.
PCT/KR2016/008258 2015-09-10 2016-07-28 Video encoding and decoding method and device WO2017043766A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020177034246A KR20180040517A (en) 2015-09-10 2016-07-28 Video encoding and decoding method and apparatus
CN201680052136.4A CN108028933A (en) 2015-09-10 2016-07-28 Video coding and decoding method and device
US15/741,018 US20180199058A1 (en) 2015-09-10 2016-07-28 Video encoding and decoding method and device
EP16844586.4A EP3297286A4 (en) 2015-09-10 2016-07-28 Video encoding and decoding method and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562216520P 2015-09-10 2015-09-10
US62/216,520 2015-09-10

Publications (1)

Publication Number Publication Date
WO2017043766A1 true WO2017043766A1 (en) 2017-03-16

Family

ID=58240844

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/008258 WO2017043766A1 (en) 2015-09-10 2016-07-28 Video encoding and decoding method and device

Country Status (5)

Country Link
US (1) US20180199058A1 (en)
EP (1) EP3297286A4 (en)
KR (1) KR20180040517A (en)
CN (1) CN108028933A (en)
WO (1) WO2017043766A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3780607A4 (en) * 2018-04-13 2021-02-17 Zhejiang University Information maintaining encoding and decoding method and device
WO2019229682A1 (en) * 2018-05-31 2019-12-05 Beijing Bytedance Network Technology Co., Ltd. Application of interweaved prediction
WO2019229683A1 (en) 2018-05-31 2019-12-05 Beijing Bytedance Network Technology Co., Ltd. Concept of interweaved prediction
CN110636299B (en) 2018-06-21 2022-06-14 北京字节跳动网络技术有限公司 Method, apparatus and computer-readable recording medium for processing video data
EP4287619A3 (en) 2018-11-08 2024-01-31 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for encoding/decoding image signal and device therefor
CN113597760B (en) 2019-01-02 2024-08-16 北京字节跳动网络技术有限公司 Video processing method
WO2021030019A1 (en) * 2019-08-15 2021-02-18 Alibaba Group Holding Limited Block partitioning methods for video coding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080064007A (en) * 2007-01-03 2008-07-08 삼성전자주식회사 Method and apparatus for video encoding, and method and apparatus for video decoding using motion vector tracking
KR20130009833A (en) * 2010-04-07 2013-01-23 가부시키가이샤 제이브이씨 켄우드 Moving image encoding device, moving image encoding method, moving image encoding program, moving image decoding device, moving image decoding method, and moving image decoding program
KR20130041146A (en) * 2010-07-20 2013-04-24 가부시키가이샤 엔.티.티.도코모 Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program
KR20130079261A (en) * 2011-12-30 2013-07-10 (주)휴맥스 3d image encoding method and apparatus, and decoding method and apparatus
JP2015088805A (en) * 2013-10-29 2015-05-07 ソニー株式会社 Encoding device, decoding device, encoded data, encoding method, decoding method and program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080107965A (en) * 2007-06-08 2008-12-11 삼성전자주식회사 Method and apparatus for encoding and decoding image using object boundary based partition
EP2280550A1 (en) * 2009-06-25 2011-02-02 Thomson Licensing Mask generation for motion compensation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080064007A (en) * 2007-01-03 2008-07-08 삼성전자주식회사 Method and apparatus for video encoding, and method and apparatus for video decoding using motion vector tracking
KR20130009833A (en) * 2010-04-07 2013-01-23 가부시키가이샤 제이브이씨 켄우드 Moving image encoding device, moving image encoding method, moving image encoding program, moving image decoding device, moving image decoding method, and moving image decoding program
KR20130041146A (en) * 2010-07-20 2013-04-24 가부시키가이샤 엔.티.티.도코모 Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program
KR20130079261A (en) * 2011-12-30 2013-07-10 (주)휴맥스 3d image encoding method and apparatus, and decoding method and apparatus
JP2015088805A (en) * 2013-10-29 2015-05-07 ソニー株式会社 Encoding device, decoding device, encoded data, encoding method, decoding method and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3297286A4 *

Also Published As

Publication number Publication date
EP3297286A1 (en) 2018-03-21
KR20180040517A (en) 2018-04-20
US20180199058A1 (en) 2018-07-12
EP3297286A4 (en) 2018-04-18
CN108028933A (en) 2018-05-11

Similar Documents

Publication Publication Date Title
WO2017043766A1 (en) Video encoding and decoding method and device
WO2017069419A1 (en) Intra-prediction method and apparatus in video coding system
WO2017057953A1 (en) Method and device for coding residual signal in video coding system
WO2011019234A2 (en) Method and apparatus for encoding and decoding image by using large transformation unit
WO2017082670A1 (en) Method and apparatus for coefficient induced intra prediction in image coding system
WO2016204360A1 (en) Method and device for predicting block on basis of illumination compensation in image coding system
WO2016148438A2 (en) Method of processing video signal and device for same
WO2017069590A1 (en) Modeling-based image decoding method and device in image coding system
WO2010114283A9 (en) Method and apparatus for processing video signals
WO2013069932A1 (en) Method and apparatus for encoding image, and method and apparatus for decoding image
WO2011126277A2 (en) Low complexity entropy-encoding/decoding method and apparatus
WO2017160117A1 (en) Method and apparatus for processing intra-prediction-based video signal
WO2017052000A1 (en) Method and apparatus for motion vector refinement-based inter prediction in image coding system
WO2015009039A1 (en) Method for improving intra-prediction of diagonal mode in video coding
WO2016204531A1 (en) Method and device for performing adaptive filtering according to block boundary
WO2013062193A1 (en) Method and apparatus for image decoding
WO2011149291A2 (en) Method and apparatus for processing a video signal
WO2015083929A1 (en) Method, apparatus, and system for encoding and decoding image
WO2017043763A1 (en) Encoding device, decoding device, and encoding and decoding method thereof
WO2011019246A2 (en) Method and apparatus for encoding/decoding image by controlling accuracy of motion vector
EP2556671A2 (en) Low complexity entropy-encoding/decoding method and apparatus
WO2017043769A1 (en) Encoding device, decoding device, and encoding method and decoding method thereof
WO2013002550A2 (en) Method and apparatus for coding/decoding through high-speed coding unit mode decision
WO2011108879A2 (en) Video coding device, video coding method thereof, video decoding device, and video decoding method thereof
WO2017052272A1 (en) Method and apparatus for intra prediction in video coding system

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20177034246

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2016844586

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE