Nothing Special   »   [go: up one dir, main page]

WO2011040796A2 - 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 - Google Patents

가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
WO2011040796A2
WO2011040796A2 PCT/KR2010/006740 KR2010006740W WO2011040796A2 WO 2011040796 A2 WO2011040796 A2 WO 2011040796A2 KR 2010006740 W KR2010006740 W KR 2010006740W WO 2011040796 A2 WO2011040796 A2 WO 2011040796A2
Authority
WO
WIPO (PCT)
Prior art keywords
prediction
macroblock
subblock
type
information
Prior art date
Application number
PCT/KR2010/006740
Other languages
English (en)
French (fr)
Other versions
WO2011040796A3 (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 US13/499,406 priority Critical patent/US9549190B2/en
Priority claimed from KR20100096035A external-priority patent/KR101479129B1/ko
Publication of WO2011040796A2 publication Critical patent/WO2011040796A2/ko
Publication of WO2011040796A3 publication Critical patent/WO2011040796A3/ko
Priority to US14/745,152 priority patent/US9609334B2/en
Priority to US14/745,181 priority patent/US9609335B2/en
Priority to US14/745,093 priority patent/US9565444B2/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/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/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Definitions

  • the present invention relates to an image encoding / decoding method using a variable size macroblock. More specifically, the present invention relates to a method and apparatus for efficiently encoding and decoding a high resolution image by encoding and decoding a subblock or a prediction reference unit in a macroblock having a variable size using various prediction modes.
  • Video data compression techniques include H.261, H.263, MPEG-2, and MPEG-4.
  • each image is divided and encoded into macroblocks having a fixed size including 16 ⁇ 16 pixels of luminance component and rectangular areas of 8 ⁇ 8 pixels of each color difference component. All luminance and chrominance components of each macroblock are predicted spatially and temporally, and the prediction residual is transmitted by performing transform, quantization, and entropy coding.
  • the encoding apparatus uses a 16x16 pixel block as a fixed macroblock size and determines whether each macroblock is an intra macroblock or an inter macroblock, and then adds a macroblock. The intra prediction or inter prediction is performed by dividing into small blocks.
  • each macroblock can be divided into 16x16, 8x8, and 4x4 sizes, with four prediction modes for 16x16 blocks and nine for 8x8 and 4x4 blocks. Intra predict using one of the prediction modes.
  • the macroblock may be divided into smaller blocks having sizes of 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, and 4x4 and used for inter prediction through motion compensation.
  • the transform is performed in blocks of 8x8 or 4x4 size, and scalar quantization is used for quantization of transform coefficients.
  • macroblocks may be referred to as a size suitable for small QCIF, CIF-like small images of the past, and is inappropriate as a size of a macroblock for high resolution image compression such as 4Kx2K image.
  • macroblocks are encoded by dividing them into smaller block units, but in the case of intra macroblocks, all subblocks in the macroblocks may use only intra mode, and inter macroblocks. In this case, since all subblocks in a macroblock can use only an inter mode, efficient encoding is difficult when encoding a high resolution image including various regions in an image.
  • the present invention provides a method for efficiently predicting macroblock prediction information using a method of using a macroblock of variable size and using various prediction modes for subblocks in the macroblock and a reference prediction unit.
  • the main purpose is to provide an encoding and decoding method.
  • An image encoding / decoding apparatus for achieving the above object encodes a macroblock for each prediction reference unit candidate, determines a prediction reference unit according to the encoding cost for each prediction reference unit candidate, and determines the determined prediction.
  • An image encoder for generating a bitstream including image data encoded in a reference unit, information about a prediction type for each determined prediction reference unit, and prediction data according to the prediction type; And extracting information about a prediction type for each prediction reference unit, prediction data according to the prediction type, and encoded image data from the bitstream, and decoding the image data encoded according to the prediction type for each prediction reference unit to generate a reconstructed image. It characterized in that it comprises a decoder.
  • an apparatus for encoding an image including: a macroblock divider for dividing a variable size macroblock into a plurality of subblocks; A predictor for selectively determining and predicting inter prediction or intra prediction in each subblock unit; And an encoder for encoding split information indicating the size and shape of subblocks in the macroblock, prediction type information for each subblock indicating whether each subblock is an intra mode or an inter mode, and prediction data according to the prediction type of the subblock. Characterized in that.
  • a video encoding apparatus including: a macroblock divider for dividing a variable size macroblock into a plurality of subblocks; A predictor for selectively encoding and predicting inter prediction or intra prediction in units of macroblocks or subblocks within macroblocks according to a prediction type of a macroblock; And an encoder for encoding the prediction type information and the prediction data of each subblock or the prediction data of each subblock according to the segmentation information indicating the size and shape of the subblocks in the macroblock and the macroblock prediction type.
  • an image decoding apparatus provides partition information indicating a size of subblocks in a macroblock of variable size, whether each subblock is intra predicted or inter predicted, from an input bitstream.
  • a decoder which decodes prediction type information indicating a and prediction mode information required for intra or inter prediction; And a predictor for predicting a current block to be decoded in a macroblock by using prediction type information and prediction mode information for each decoded subblock.
  • a video decoding apparatus including macroblock type information indicating a type of a variable macroblock from an input bitstream, split information indicating a size of macroblock subblocks, and a macroblock.
  • a decoder for extracting and decoding prediction type information and prediction mode data of each subblock according to the type information or prediction mode data of each subblock; Predict the current block to be decoded in the macroblock by using the prediction type information and the prediction mode information of each subblock in the macroblock according to the decoded macroblock type, or the macroblock type and the prediction mode information of each subblock in the macroblock. It characterized in that it comprises a predictor.
  • a video decoding apparatus for achieving the above object, a prediction reference unit setter for setting the prediction reference unit in a macroblock of a variable size by extracting the prediction reference unit information from the input bitstream ; And a decoder for extracting and decoding prediction type information for each subblock in the prediction reference unit according to the prediction type information and the prediction type information from the bitstream in the set prediction reference unit.
  • an image encoding / decoding method encodes a macroblock for each prediction reference unit candidate, determines a prediction reference unit according to the encoding cost for each prediction reference unit candidate, and determines the determined prediction. Generating prediction data according to the prediction type and information about the image data encoded in the reference unit, the prediction type for each determined prediction reference unit; And extracting the information about the prediction type for each prediction reference unit, the prediction data according to the prediction type, and the encoded image data from the bitstream, and decoding the encoded image data according to the prediction type for each prediction reference unit. It is done.
  • a video encoding method comprising: dividing a variable size macroblock into a plurality of subblocks; A prediction encoding step of selectively determining inter prediction or intra prediction in units of each subblock; And encoding split information indicating the size of subblocks in the macroblock, prediction type information for each subblock indicating whether each subblock is an intra mode or an inter mode, and prediction data according to the prediction type of the subblock. It features.
  • intra prediction mode information for an intra block and motion information for an inter block can also be encoded.
  • a video encoding method comprising: dividing a variable size macroblock into a plurality of subblocks; Selectively determining inter prediction or intra prediction in units of macroblocks or subblocks within macroblocks according to the prediction type of the macroblocks; And encoding the prediction type information and the prediction data of each subblock or the prediction data of each subblock according to the partition information indicating the size of the subblocks in the macroblock and the macroblock prediction type.
  • a method of decoding an image comprising: partition information indicating a size of each subblock in a macroblock having a variable size from an input bitstream, and inter prediction whether each subblock is intra predicted.
  • Decoding prediction type information indicating whether the information has been received and prediction mode information required for intra or inter prediction; Predicting a current block to be decoded in the macroblock by using prediction type information and prediction mode information for each decoded subblock.
  • the macroblock type information indicating the type of the variable macroblock from the input bitstream, the partition information indicating the size of each subblock in the macroblock, Extracting and decoding prediction type information and prediction mode data of each subblock according to macroblock type information or prediction mode data of each subblock; Predicting the current block to be decoded in the macroblock using the prediction type information and the prediction mode information of each subblock in the macroblock according to the decoded macroblock type, or the macroblock type and the prediction mode information of each subblock in the macroblock. Characterized in that it comprises a step.
  • a method of decoding an image comprising: setting prediction reference units in a macroblock having a variable size by extracting prediction reference unit information from an input bitstream; And extracting and decoding prediction type information for each subblock in the prediction reference unit according to the prediction type information and the prediction type information from the bitstream in the set prediction reference unit.
  • a high resolution image is efficiently encoded using various combinations of prediction modes such as intra prediction or inter prediction for subblocks in a macroblock. Can be decrypted
  • the split information and the prediction information of the macroblock may be efficiently encoded and decoded using the reference prediction unit.
  • 1 to 3 are exemplary diagrams for describing a macroblock in MxN pixel units according to an embodiment of the present invention.
  • 4 and 5 are exemplary diagrams illustrating various subblock modes according to an embodiment of the present invention.
  • FIG. 6 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention.
  • FIG. 7 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 8 is a block diagram schematically illustrating a video encoding apparatus according to another embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating a video encoding method according to another embodiment of the present invention.
  • FIG. 10 is a block diagram schematically illustrating an image decoding apparatus according to another embodiment of the present invention.
  • FIG. 11 is an exemplary diagram illustrating a subblock obtained by dividing a macroblock into layers according to an embodiment of the present invention.
  • 12 and 13 are exemplary diagrams illustrating a division type according to an embodiment of the present invention.
  • FIG. 14 is an exemplary diagram illustrating a macroblock divided into subblocks of various block sizes according to an embodiment of the present invention.
  • 15 is an exemplary diagram sequentially illustrating a process of dividing a macroblock into divided layers.
  • FIG. 16 is an exemplary diagram for describing a process of sequentially encoding segmentation type indication information for each layer of a macroblock according to the order of subblocks.
  • a video encoding apparatus (Video Encoding Apparatus), a video decoding apparatus (Video Decoding Apparatus) to be described below is a personal computer (PC), notebook computer, personal digital assistant (PDA), portable multimedia player (PMP) : Portable Multimedia Player (PSP), PlayStation Portable (PSP: PlayStation Portable), Mobile Communication Terminal (Mobile Communication Terminal), and the like, and may be used to encode a video or a communication device such as a communication modem for communicating with various devices or a wired or wireless communication network. It refers to various devices having various programs for decoding and a memory for storing data, a microprocessor for executing and controlling a program.
  • PC personal computer
  • PDA personal digital assistant
  • PMP portable multimedia player
  • PSP Portable Multimedia Player
  • PSP PlayStation Portable
  • Mobile Communication Terminal Mobile Communication Terminal
  • the image encoded in the bitstream by the video encoding apparatus is real-time or non-real-time through the wired or wireless communication network, such as the Internet, local area wireless communication network, wireless LAN network, WiBro network, mobile communication network, or the like, or a cable, universal serial bus (USB: Universal)
  • the image decoding apparatus may be transmitted to a video decoding apparatus through a communication interface such as a serial bus, decoded by the video decoding apparatus, reconstructed, and played back.
  • subblocks of a fixed size macroblock of an inter picture are predictively encoded and predictively decoded using the same prediction method. That is, all of the subblocks in one macroblock are inter prediction coded or all intra prediction coded.
  • an image is encoded using a macroblock having a variable size, and may be encoded or decoded by using inter prediction or intra prediction selectively for each subblock in the macroblock.
  • subblocks in a macroblock may be encoded / decoded using only an intra prediction mode, and may be encoded or decoded using intra prediction or inter prediction selectively for subblocks in a macroblock only in an inter picture. have .
  • the macroblock may be classified into three types, an intra macroblock, an inter macroblock, and an intra / inter macroblock, and may be applied only when the macroblock type is an intra / inter macroblock type.
  • each subblock in the intra macroblock is intra prediction encoded
  • each subblock in the inter macroblock is inter-predictive encoded, and in the case of intra / inter macroblock, inter prediction or intra prediction is selectively performed for each subblock in the macroblock.
  • Information about whether an intra prediction mode or an inter prediction mode is used for each block is encoded only when intra prediction or inter prediction is selectively used for each subblock in the macroblock.
  • 1 to 3 are exemplary diagrams for describing a macroblock in MxN pixel units according to an embodiment of the present invention.
  • FIG. 1 exemplarily illustrates macroblocks (hereinafter, referred to as MxN size macroblocks) in MxN pixel units expressed in a part of an input image having an arbitrary size, and in FIG. 2, 396 16x16 size macroblocks are illustrated.
  • a CIF image composed of blocks is exemplarily illustrated, and
  • FIG. 3 exemplarily shows a CIF image composed of 54 64x32 macroblocks.
  • the image is divided into macroblocks having a fixed size of 16x16, encoded, and decoded.
  • an image may be encoded and decoded using a macroblock having a size of 64x32 macroblocks as well as MxN size (but 16x16 size or more) such as 64x64 size and 32x64 size.
  • 4 and 5 are exemplary diagrams illustrating various subblock modes according to an embodiment of the present invention.
  • FIG. 4 shows a subblock mode that can be used for a macroblock of size 32x32
  • FIG. 5 shows a subblock mode that can be used for a macroblock of size of 32x16.
  • the macroblock of MxN size may be divided into smaller blocks, that is, subblocks as shown in FIGS. 4 and 5, and the macroblock of the image is intra-united in such a subblock unit. It may be predictively coded or inter prediction coded.
  • FIG. 6 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention.
  • An image encoding apparatus is an apparatus for encoding an image using a macroblock of an arbitrary size or more, and includes a macroblock splitter (605), a predictor (610), and an encoder (620). ), A reproducer 630, a filter 640, and a frame memory 650.
  • the decompressor 630, the filter 640, and the frame memory 650 may be selectively omitted or included in other components according to an implementation method.
  • the macroblock divider 605 divides the macroblock into one or more subblocks using the division type shown in FIGS. 4 and 5 and generates partition information indicating the size and shape of the subblocks in the macroblock. Each divided subblock is input to the predictor 610, and split information is input to the encoder.
  • the predictor 610 may include a motion estimator 612, a motion compensator 614, and an intra predictor 616 to predict the input block.
  • the block refers to a macroblock of size MxN (where M and N may be an integer greater than or equal to 16) or a subblock or subblock of size OxP (where O and P are integers less than or equal to M or N).
  • the motion estimator 612 compares the block to be predicted with the reference picture stored in the frame memory 650 and estimates the motion of the block to generate a motion vector.
  • the motion compensator 614 may refer to the motion vector generated by the motion estimator 612 to obtain blocks corresponding to the size of the block to be predicted from the reference picture stored in the frame memory 650.
  • the block obtained by the motion compensator 614 becomes a macroblock having the predicted value of the block to be predicted.
  • the intra predictor 616 intra predicts a block to be predicted. To this end, the intra predictor 616 generates a reference block using neighboring pixel information that is already encoded, decoded, and reconstructed, compares the reference block with the encoding target block, and determines an intra prediction mode, and determines a block according to the determined intra prediction mode. Intra prediction. The block predicted by the intra predictor 616 becomes a predicted block having the predicted value of the target block.
  • the encoder 620 encodes partition information indicating the size and shape of subblocks in the macroblock generated by the macroblock divider 605, and may entropy encode the partition information. Also, the encoder 620 encodes prediction information of each subblock in the macroblock divided by the split information. When inter prediction of a target block to be encoded, a motion such as a motion vector generated by the motion estimator 612 may be used. When intra prediction and information are performed, prediction mode information such as an intra prediction mode may be encoded. In addition, the residual signal, which is a difference between the pixel values of each subblock and the prediction block, is encoded. The residual signal may be transformed, quantized, entropy encoded, and encoded.
  • the reconstructor 630 inversely quantizes and inverse transforms the transformed and quantized residual signal and adds the prediction block output from the predictor 610 to reconstruct the target block.
  • the filter 640 filters the restored target macroblock using a filter such as a deblocking filter.
  • the filtered reconstructed macroblock is stored in the frame memory 650 and used by the predictor 610 to predict the next macroblock or the macroblock of the next picture.
  • the size of the macroblock is fixed to 16x16, only subblocks having a small number of shapes, such as 8x8 and 4x4 sizes, may be used accordingly.
  • the size of the macroblock may be variously determined to be 16 ⁇ 16 or more, the size and shape of the subblock may be variously determined, and accordingly, the macroblock may be divided into various types of subblocks.
  • information on how the macroblock is divided into subblocks of what size and in what form is transmitted to the image decoding apparatus in the same manner as the macroblock is divided in the image encoding apparatus. It should be partitioned so that it can be predictively decoded.
  • a macroblock may be divided into subblocks of various sizes for each layer, and prediction encoding and prediction decoding may be performed for each divided subblock.
  • FIG. 11 is an exemplary diagram illustrating a subblock obtained by dividing a macroblock into layers according to an embodiment of the present invention.
  • the size of the macroblock shown in FIG. 11 is N ⁇ N (N is an integer of 16 or more).
  • the minimum subblock size is assumed to be 4 x 4. However, this assumption is only for explaining an embodiment of the present invention, the horizontal and vertical size of the macroblock may not be the same and the minimum subblock size may be other size other than 4x4.
  • a macroblock may be divided into subblocks of various sizes for each layer.
  • the macroblock may be divided into subblocks having four shapes for each layer from layer 0 to layer log2 (N / 4).
  • the subblocks of the K + 1 layer may be used only when the subblocks of the corresponding layer are divided into four subblocks in the layer K (where 0 ⁇ K ⁇ log2 (N / 4)).
  • the macroblock when the macroblock is a 64x64 block, the macroblock may be divided into four layers from layers 0 to 3, and each layer may include subblocks having four different block sizes. Therefore, a 64x64 block sized subblock, a 64x32 block sized subblock, a 32x64 block sized subblock, a 32x32 block sized subblock belong to layer 0, a 32x32 block sized subblock, a 32x16 block sized subblock, Subblocks of 16x32 block size, subblocks of 16x16 block size belong to Layer 1, subblocks of 16x16 block size, subblocks of 16x8 block size, subblocks of 8x16 block size, subblocks of 8x8 block size Subblocks of 8x8 block size, subblocks of 8x4 block size, subblocks of 4x8 block size, and subblocks of 4x4 block size belong to layer 3.
  • subblocks belonging to layer 1 may be used only when a macroblock having a 64x64 block size is divided into subblocks having a 32x32 block size in layer 0, and a subblock having a size of 32x32 block of layer 1 is a subblock having a 16x16 block size
  • Subblocks belonging to layer 2 may be used only when the block is divided into blocks
  • subblocks belonging to layer 3 may be used only when the subblock of layer 2 is divided into subblocks of 8 ⁇ 8 block size.
  • four NxN blocks with layer number K If divided into subblocks, The subblock may belong to layer K or may belong to layer K + 1. That is, when the macroblock is 64x64 size, the 32x32 sized subblock may be determined as a subblock type included in layer 0 or may be determined as a subblock type belonging to layer 1.
  • the method of assigning a layer number to the divided subblocks depends on whether each layer is available. If layer K + 1 is available, layer number K + 1 is assigned to the subblock. If layer K + 1 is not available, layer number K is assigned to the layer number of the subblock.
  • the 32x32 subblock belongs to layer 1. If one 32x32 subblock in a macroblock is divided into four 16x16 subblocks, each 16x16 subblock belongs to Layer 2, and in the same way, if a 16x16 subblock is divided into four 8x8 subblocks, the 8x8 subblock belongs to Layer 3. do. If the 8x8 subblock is divided into four 4x4 subblocks, the 4x4 subblocks belong to layer 3 because layer 4 is not available.
  • K may be allocated to the layer number of the subblock. In this case, If the subblock is divided into smaller subblocks, the layer number K + 1 is allocated.
  • the 32x32 subblock belongs to layer 0 when the macroblock is 64x64 divided into four 32x32 subblocks. If one 32x32 subblock in a macroblock is divided into four 16x16 subblocks, each 16x16 subblock belongs to Layer 1, and in the same way, if a 16x16 subblock is divided into four 8x8 subblocks, the 8x8 subblock belongs to Layer 2. do. When the 8x8 subblock is divided into four 4x4 subblocks, the 4x4 subblocks belong to layer 3.
  • the macroblock may be divided using various types of division as shown in FIGS. 12 and 13. 12 and 13 are exemplary diagrams illustrating a division type according to an embodiment of the present invention.
  • FIG. 12 is an exemplary diagram illustrating a partition type according to an embodiment of the present invention.
  • partition type indication information (Partition Type Number) for identifying a block size of a subblock divided by layer.
  • partition type indication information is given as 0, and the subblock is Going two When divided into subblocks, partition type indication information is given as 1, and the subblocks Going two When divided into subblocks, partition type indication information is given as 2, and the subblocks There are four When divided into subblocks, a partition type number may be assigned to 3.
  • the partition number indicates a number assigned to identify each subblock divided according to the partition type. For example, a subblock of layer K If is not split, the undivided subblock The partition number of 0 is given.
  • subblocks of layer K There are four When divided into subblocks, each The subblocks may be assigned partition numbers 0, 1, 2, and 3 in the raster scan direction from the upper left subblocks. 13 is an exemplary diagram illustrating a partition type according to an embodiment of the present invention.
  • FIG. 13 exemplarily shows partition type indication information (Partition Type Number) for identifying a block size of a subblock divided by layer.
  • partition type indication information partition type indication information is given as 0 and the subblock is There are four When divided into subblocks, a partition type number may be assigned to 1. The partition number indicates a number assigned to identify each subblock divided according to the partition type. For example, a subblock of layer K If is not split, the undivided subblock The partition number of 0 is given. Also, subblocks of layer K There are four When divided into subblocks, each The subblocks may be assigned partition numbers 0, 1, 2, and 3 in the raster scan direction from the upper left subblocks.
  • various division types may be combined for each layer.
  • the division type shown in FIG. 13 may be used, and the lower layers of the layer 1 may use the division type shown in FIG. 12.
  • the encoder 620 encodes the partition information received from the macroblock splitter 605 and a prediction type indicating whether each subblock is an intra mode or an inter mode and prediction data according to the prediction type.
  • the encoder 620 first encodes the partition information to transmit the size and shape of the subblocks in the macroblock to the decoder, and encodes the prediction type and the prediction data of each subblock.
  • the encoder 620 encodes partition information indicating the size and shape of subblocks in the macroblock received from the macroblock divider 605.
  • partition information of a block indicating a form in which a macroblock is divided into subblocks having various sizes may be represented using split type indication information for each partition layer of the macroblock. Accordingly, the plurality of subblocks constituting the macroblock may be identified by partition type indication information for each partition layer.
  • the encoder 620 may encode the partition information of the block by using the partition type indication information of each layer of the macroblock. As described below, the encoder 620 may encode the partition information of the block in various ways.
  • the encoder 620 may encode split information of the current block by sequentially encoding split type indication information for each partition layer of the macroblock according to the split type indication information encoding order.
  • FIG. 14 is an exemplary diagram illustrating a macroblock divided into subblocks of various block sizes according to an embodiment of the present invention.
  • FIG. 14 a macroblock having a block size of 64 ⁇ 64, a maximum partition layer of 4, and a subblock having various block sizes is illustrated using a subblock type shown in FIG. 10.
  • the partition type indication information for each partition layer may be sequentially encoded according to the partition type indication information encoding order to encode the partition information of the macroblock.
  • a process of dividing the macroblocks shown in FIG. 14 for each of the divided layers may be represented as shown in FIG. 15.
  • a 64x64 block sized subblock is divided into four 32x32 block sized subblocks, and in layer 1 (L1), L1-P0 (partition number 0 of layer 1)
  • the subblock of L1-P3 is further divided into four 16x16 block size subblocks, and the subblocks of L1-P1 (partition number 1 of layer 1) and L1-P2 (
  • the subblocks of partition number 2) of layer 1 are divided into subblocks of 16x32 block size and subblocks of 32x16 block size, respectively.
  • the partition number for each layer is not represented.
  • layer 2 the subblocks of L2-P0 (partition number 0 of layer 2) are further divided into four 8x8 block size subblocks and L2-P3 (partition number 3 of layer 2) is divided into two 16x2 blocks. It is divided into subblocks of size.
  • L3 the subblocks of L3-P0 (partition number 0 of layer 3) and the subblocks of L3-P1 (partition number 1 of layer 3) are each divided into four 4x4 block size subblocks.
  • the order of encoding division type indication information is as follows.
  • split type indication information indicating a partition type of a macroblock when the macroblock is divided into four subblocks, split type indication information of each divided subblock is continuously encoded. For example, when an NxN block is divided into four subblocks, the partition type indication information of the first (N / 2) x (N / 2) subblock in the NxN block is encoded and the first (N / 2) x (N / 2). When the subblock is divided into four subblocks again, the partition type indication information of the divided (N / 4) x (N / 4) blocks is encoded.
  • FIG. 16 is an exemplary diagram for describing a process of sequentially encoding split type indication information for each layer of a macroblock. to be.
  • the encoding may be performed as shown in FIG. 16.
  • numerals written in ' ⁇ ' indicate an order of encoding division type indication information of each subblock.
  • the layer type partition type indication information is sequentially encoded in the order shown in FIG. 14.
  • the partition type indication information 3 is encoded. Since the first 32x32 block size subblocks L1-P0 among the four 32x32 block size subblocks in the 64x64 block size subblock are also divided into four 16x16 block size subblocks, the partition type indication information 3 is encoded. The first 16x16 block size subblock (L2-P0) of the four 16x16 block size subblocks in the first 32x32 block size subblock (L1-P0) of Layer 1 is also divided into four 8x8 block size subblocks.
  • split type indication information ⁇ 3, 3, 0, 0 ⁇ is encoded. Since subblocks of the layer 3 cannot be divided into smaller subblocks, the partition type indication information of the subblocks belonging to the layer 3 is not encoded.
  • the partition type indication information of the second 16x16 block size subblock L2-P1 and the third 16x16 block size subblock L2-P2 is encoded. However, since all of them are no longer divided into small blocks, division type indication information 0 is encoded.
  • the fourth 16x16 block size subblock L2-P3 is divided into 16x8 block size subblocks, but since the partition type indication information is not 3, only the partition type indication information 1 is encoded.
  • the split type indication information of the four subblocks in the layer 2 is encoded, the split type indication information of the subblocks L1 to P1 of the second 32x32 block size of the layer 1 is encoded, and the split type indication information of the second 32x32 block size of the layer 1 is encoded.
  • the subblocks L1-P1 are divided into subblocks having a size of 16 ⁇ 32 blocks, and each of the divided subblocks is no longer divided into small subblocks, thereby encoding partition type indication information 2.
  • the third 32x32 block size subblock L1-P2 of layer 1 the fourth 32x32 block size subblock L1-P3 of layer 1, and four 16x16 block size subblocks below it (
  • the split type indication information of L2-P0, L2-P1, L2-P2, and L2-P3) is sequentially encoded, ⁇ 1, 3, 0, 0, 0, 0 ⁇ is encoded.
  • the division type indication information ⁇ 3, 3, 3, 3, 3, 0, 0, 0, as shown in FIG. , 0, 1, 2, 1, 3, 0, 0, 0 ⁇ is encoded.
  • split type indication information encoding may also be performed in the following order.
  • 0, 0 ⁇ may be encoded
  • partition type indication information ⁇ 3, 3, 0, 0 ⁇ of four subblocks of the layer 3 (four subblocks belonging to L2-P0 in L1-P0) may be encoded.
  • split type indication information ⁇ 3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0 ⁇ is encoded.
  • the method of encoding the split type indication information may be encoded into a binary bit string using lossless compression encoding such as binary arithmetic coding or Huffman coding.
  • each type of partition type indication information may use different binary values according to the layer number of the type of partition type indication information to be currently encoded.
  • the dividing type indication information is one bit long indicating whether or not the current block is divided into four subblocks. It may be a flag.
  • the encoder After encoding the split information of the macroblock, the encoder encodes the prediction data according to the prediction type and the prediction type of each subblock.
  • the syntax and the encoding / decoding method representing the prediction type and the prediction data according to each picture type may be as follows.
  • intra prediction or inter prediction is selected and encoded, and then encoding prediction type information indicating whether intra prediction or inter prediction has been performed for each subblock, and in case of an intra block, intra prediction mode information and inter block In this case, motion information is encoded.
  • an available prediction type may vary according to the picture type.
  • the types of available prediction types that each subblock can use may be SKIP mode, intra prediction, or inter prediction encoding motion information.
  • the types of available prediction types that can be used by each subblock may be a SKIP mode, intra prediction, or an inter prediction or direct mode for encoding motion information.
  • the types of prediction types usable may vary according to the size and shape of the subblock.
  • Tables 1 to 4 show examples of usable prediction types and types according to the size and shape of blocks.
  • the types of prediction types according to the blocks of Tables 1 to 4 may be different only by way of example. This is because when both intra mode and inter mode are available, it is recommended to use inter mode in areas without texture, such as a background, in which case the block size is generally large.
  • the complex region is intended to select one of the intra mode and the inter mode, since the complex region is mainly small in size of the subblock. This is because macroblocks larger than 16 ⁇ 16 may exist in various regions within a macroblock because encoding efficiency may be deteriorated when the prediction encoding is selectively performed using inter prediction or intra prediction in units of macroblocks.
  • prediction type information is not encoded, and prediction type information is encoded only when two or more types are used.
  • intra prediction or inter prediction it may indicate whether intra prediction or inter prediction is performed using a syntax of 1 bit length.
  • the prediction type may be indicated by using a 1-bit or 2-bit length syntax. For example, if there are three types of prediction types that can be used, SKIP, inter prediction, and intra prediction, first, one bit indicating whether or not SKIP is encoded, and then, if not in SKIP mode, one more bit is encoded to inter prediction. It may indicate whether the subblock is an intra predicted subblock. Alternatively, even when the available prediction type is Direct, inter prediction, or intra prediction, one bit indicating whether a direct mode is encoded may be encoded, and if not, the first bit indicating whether intra prediction or inter prediction is further encoded. have.
  • SKIP SKIP
  • Direct a type of prediction type that can be used
  • inter prediction first, one bit indicating whether SKIP or not is encoded, and if it is not in SKIP mode, one more bit is further encoded to determine whether it is a direct predicted subblock. It may indicate whether an inter predicted subblock.
  • the prediction type may be encoded by using a syntax of 1 bit to 3 bits in length. For example, if the types of prediction types available are SKIP, Direct, Inter Prediction, and Intra Prediction, first, one bit indicating whether SKIP is SKIP or not is encoded. Indicates whether or not. If it is not the SKIP mode or the direct mode, one bit may be encoded to indicate whether it is an inter predicted subblock or an intra predicted subblock.
  • the prediction type may be encoded by using a 2-bit fixed length syntax.
  • the prediction type may be encoded by using a promised table.
  • variable length encoding method of the syntax indicating the prediction type may be various binary codes such as unary code, truncated unary code, exponential golem code, etc. Coding) can be used to encode.
  • arithmetic encoding may be performed using the prediction type information of the neighboring block.
  • the prediction type may be encoded using a plurality of syntaxes.
  • three syntaxes may be used: SKIP_flag to indicate whether it is in SKIP mode or Direct_flag to indicate whether it is in direct mode or pred_type to indicate whether it is an intra block or an inter block.
  • SKIP_flag to indicate whether it is in SKIP mode
  • Direct_flag to indicate whether it is in direct mode
  • pred_type to indicate whether it is an intra block or an inter block.
  • Each syntax can also be encoded using a different method.
  • the encoded data of the next subblock is encoded.
  • Pred_dir which is information indicating a prediction direction
  • Pred_dir is encoded in the prediction indicating whether the L0 prediction, the L1 prediction, or the bidirectional prediction is performed.
  • the picture type is a P picture and the prediction type is a subblock that encodes motion information
  • a difference motion vector (MVD) and a reference picture index (ref_idx) indicating a reference picture are encoded.
  • Pred_dir is encoded and one or two pieces of motion vector information and a reference picture index according to Pred_dir are coded.
  • the reference picture index is not encoded.
  • Intra prediction mode information is encoded for a subblock in which the prediction type identified by the subblock in the intra picture or the prediction type information in the inter picture is intra predicted. For example, when the size of the subblock is a 4x4 subblock, a prediction mode indicating a selected prediction mode among nine intra prediction modes is encoded.
  • FIG. 7 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
  • An image decoding apparatus may include a decoder 710, a predictor 720, a decompressor 730, a filter 740, and a frame memory 750.
  • the decoder 710 extracts three types of information required for macroblock decoding from the input bitstream.
  • the decoder 710 firstly extracts partition information indicating the size and shape of each subblock in the macroblock to be decoded from the bitstream and entropy decodes it. The decoder 710 may then identify which type of subblock the macroblock is divided by using the reconstructed partition information. Second, the decoder 710 entropy decodes and extracts prediction type information indicating whether each subblock is intra predicted or inter predicted and prediction mode information required for intra or inter prediction. The type of prediction data to be decoded and the method of decoding the prediction data vary depending on whether each block is an intra block or an inter block.
  • reference picture information necessary for motion compensation of each subblock from the bitstream Extracts and decodes information about a motion such as a motion vector and a motion vector.
  • information about an intra prediction mode of a luminance component and a chrominance component is extracted and decoded from a bitstream.
  • the decoder 710 decodes information necessary for decoding the residual signal.
  • information indicating whether each subblock has a nonzero transform coefficient for example, CBP
  • transform information indicating a type of transform and a quantized transform coefficient are decoded.
  • the predictor 720 predicts a current block to be currently decoded, and may include a motion compensator 722 and an intra predictor 724.
  • the motion compensator 722 obtains a pixel equal to the size of the current block from the reference picture stored in the frame memory using the motion vector decoded and reconstructed by the decoder to generate a prediction block.
  • the intra predictor 724 predicts the current block according to the intra prediction mode decoded and reconstructed by the decoder 710 to generate a predicted block.
  • the decompressor 730 inversely quantizes the quantized transform coefficients decoded by the decoder 710 and inversely transforms the dequantized transform coefficients using the transform type extracted and reconstructed by the decoder to generate a residual signal.
  • the reconstructed block is generated by adding the generated residual signal to the prediction block generated by the predictor.
  • the generated reconstruction block is filtered by the filter 740 and stored in the frame memory 750 and used to reconstruct the next macroblock or the next picture.
  • the macroblock is divided into one or more subblocks using the reconstructed split information. Thereafter, the prediction type and the prediction mode information of each subblock are extracted from the bitstream using the size and shape information of the subblocks in the macroblock.
  • partition information which is information indicating the size and shape of subblocks used for prediction or transformation in a macroblock.
  • the split type indication information is decoded in the order promised with the image encoding apparatus by using a subblock type available for each layer promised by the encoder.
  • the usable subblock type for each layer may be the subblock type shown in FIGS. 15 and 16, and the order of decoding the partition type indication information may be sequentially decoded according to the order shown in FIG. 14 or 16. have.
  • the decoder 710 extracts and decodes the first partition type indication information from the bitstream to restore the partition type indication information of the macroblock layer 0. If the reconstructed partition type indication information value is 0, it means that the macroblock is not divided into subblocks, and thus the decoding of the partition type indication information of the current macroblock ends. Thereafter, prediction or inverse transformation is performed with macroblock N ⁇ N size.
  • the macroblock When the partition type indication information of the reconstructed layer 0 is 1, the macroblock is divided into two Nx (N / 2) subblocks, and the decoding of the partition type indication information of the current macroblock is completed. Thereafter, the macroblock is predicted or inversely transformed in units of Nx (N / 2).
  • the macroblock is divided into two (N / 2) xN subblocks, and the decoding of the partition type indication information of the current macroblock is completed. Thereafter, the macroblock is predicted or inversely transformed in units of (N / 2) ⁇ N.
  • the subblock decodes partition type indication information of the first subblock (the subblock having partition number 0 of layer 1).
  • the layer number of the subblocks is 1, which is increased by 1 from the upper layer number.
  • the partition type indication information of the subblock having partition number 0 of Layer 1 extracted and decoded from the bitstream is not 3, the second in the macroblock The division type indication information of the subblock (block having partition number 1 of layer 1) is decoded.
  • the partition type indication information of the subblock having partition number 0 of layer 1 extracted from the bitstream and decoded is 3, the current subblock is divided into four subblocks, and the layer number is 2 at this time. Thereafter, the partition type indication information of the subblock corresponding to partition number 0 of the rare 2 is extracted from the bitstream and decoded.
  • the layer number K of the current subblock having the partition number Y is the maximum value that the layer number can have, if the split type indication information of the decoded current subblock (ie, layer K-partition number Y) is 3, the current subblock After dividing the block into four subblocks, the partition type indication information of the next subblock (the subblock having the layer K-partition number Y + 1) is decoded in the raster scan order.
  • the partition type indication information of the unblocked subblocks of the higher layer is decoded.
  • the value encoded by the split type indication information in the encoder is ⁇ 3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 0 ⁇ .
  • split type indication information of layer 0 is decoded.
  • the 64x64 macroblock is divided into four 32x32 blocks (L1-P0, L1-P1, L1-P2, and L1-P3).
  • each 32x32 subblock can be divided into smaller subblocks, the partition type indication information of the first 32x32 subblocks L1-P0 in the 64x64 macroblock is decoded.
  • the split type indication information decoded is 3
  • the L1-P0 subblock is divided into four 16x16 subblocks (L2-P0, L2-P1, L2-P2, and L2-P3), and the split type indication information of L2-P0 is obtained. Is extracted from the bitstream and decoded.
  • the L2-P0 subblock having a size of 16x16 is divided into four 8x8 subblocks (L3-P0, L3-P1, L3-P2, and L3-P3), and the partition type of L3-P0 is divided.
  • the indication information is extracted from the bitstream and decoded.
  • the 8x8 size L3-P0 subblock is divided into four 4x4 subblocks. Since the maximum partition layer of the 4x4 subblock is 4, it can no longer be divided into small subblocks, and thus the partition type indication information of L3-P1 is extracted from the bitstream and decoded.
  • the 8x8 size L3-P1 subblock is divided into four 4x4 subblocks, and the split type indication information of L3-P2 is extracted from the bitstream and decoded.
  • the 8x8 size L3-P2 subblock is not divided, and the split type indication information of the next subblock L3-P3 is extracted from the bitstream and decoded.
  • the seventh decoded split indication information is 0, no 8x8 size L3-P3 subblock is split. Since the partition number of the current subblock is the maximum value of the partition number belonging to the current layer, the partition type indication information of the upper layer L2-P1 is extracted from the bitstream and decoded.
  • the block size of L2-P1 is 16x16.
  • each subblock type is determined by extracting and decoding the split type indication information of L2-P2 and L2-P3 from the bitstream.
  • the block size of L2-P2 is 16x16 and the 10th decoded split indication information is 1, so L2-P3 is split into two 16x8 subblocks.
  • the split type indication information of the second 32x32 sized subblock L1-P1 of the upper layer 1 is decoded.
  • the split indication information decoded by the eleventh is 2, the 32x32 block corresponding to L1-P1 is divided into two 16x32 subblocks, and the split type indication information of L1-P2 is decoded.
  • the twelfth decoded split indication information is 1, the 32x32 block corresponding to L1-P2 is divided into two 32x16 subblocks, and the split type indication information of L1-P3 is decoded.
  • the thirteenth decoded split indication information is 3, so a 32x32 block corresponding to L1-P3 is divided into four 16x16 subblocks (L2-P0, L2-P1, L2-P2, and L2-P3) and each sub in the same manner. Decode the partition type indication information of the blocks.
  • the subblock type of L2-P0 is 16x16, and since it is no longer divided, the next subblock L2-P1 decodes the split type indication information.
  • the subblock type of L2-P1 is 16x16, and since it is no longer divided, the next subblock L2-P2 decodes the split type indication information.
  • the subblock type of L2-P2 is 16x16, and since the split block indication information is no longer divided, the next subblock, L2-P3, decodes the split type indication information.
  • the subblock type of L2-P3 is 16x16, and since the type of the mode subblocks in the macroblock is determined, decoding of the split indication information for decoding the current macroblock is finished.
  • the value encoded by the split type indication information is ⁇ 3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0 ⁇ .
  • split type indication information of layer 0 is decoded.
  • the 64x64 macroblock is divided into four 32x32 blocks (L1-P0, L1-P1, L1-P2, and L1-P3).
  • L1-P0 and L1-P3 have four 16x16 bits.
  • L1-P1 is divided into two 16x32 blocks
  • L1-P2 is divided into two 32x16 blocks.
  • the partition type indication information of eight 8x8 subblocks of layer 2 belonging to L1-P0 and L1-P3 is extracted and decoded from the bitstream.
  • the partition type indication information of four subblocks (L2-P0, L2-P1, L2-P2, L2-P3) belonging to the restored L1-P0 is ⁇ 3, 0, 0, 1 ⁇ , and 4 belonging to L1-P3 Since the partition type indication information of the two subblocks (L2-P0, L2-P1, L2-P2, L2-P3) is ⁇ 0, 0, 0, 0 ⁇ , L2-P0 belonging to L1-P0 has four 4x4 subblocks. L2-P3 is divided into two 8x4 subblocks.
  • the four subblocks belonging to L2-P1, L2-P2, and L1-P3 belonging to L1-P0 are not divided because the partition type indication information is all zero.
  • the subblocks L2-P0 belonging to L1-P0 are divided into four subblocks, but cannot be divided into smaller subblocks, so that the decoding of the split type indication information for decoding the current macroblock is completed.
  • the entropy decoding method of the split type indication information is entropy decoded using a method promised by an encoder among lossless compression coding / decoding methods such as binary arithmetic coding or Huffman coding.
  • the decoder when the encoder uses binary arithmetic coding as a method of encoding the partition type indication information and uses a binary table according to the layer number of the partition type indication information, the decoder also uses a binary table according to the layer number promised by the encoder. Perform entropy decoding.
  • the encoder when the encoder is promised to use the partition type according to another embodiment of the present invention shown in FIG. 16, it is determined whether the current subblock is divided into four subblocks by entropy decoding one bit for decoding the partition type indication information. You can also determine whether or not.
  • the decoder decodes prediction type information and prediction data according to the prediction type of each subblock in the macroblock.
  • the prediction type information decoding method may not decode from the bitstream according to the type of the picture.
  • the prediction type information decoding method may not decode from the bitstream according to the type of the picture.
  • all the macroblocks in the intra picture and subblocks in the macroblocks perform intra prediction without extracting and decoding prediction type information from the bitstream.
  • the prediction type information is extracted and decoded from the bitstream, and then the prediction type indicating whether each block is intra predicted or inter predicted is restored.
  • intra mode information or motion information according to the prediction type of each block determined by the type of the picture or the prediction type information received through the bitstream is extracted and decoded from the bitstream.
  • the prediction type information decoding process is performed.
  • the prediction type information decoding process will be described.
  • the types of usable prediction types vary according to the types of pictures and the size and shape of the subblocks, and the method of decoding prediction type information varies according to the types of usable prediction types.
  • the types of available prediction types that can be used by each subblock may be SKIP mode, intra prediction, or inter prediction encoding motion information.
  • the types of usable prediction types that each subblock can use may be SKIP mode, intra prediction, or inter prediction or direct mode for encoding motion information.
  • prediction types usable according to the size and shape of the subblock may vary as described in Tables 1 to 4 above.
  • prediction type information is not decoded, and prediction type information extraction and decoding are performed only on two or more subblocks. .
  • one bit is extracted from the bitstream and entropy decoded to set a selected prediction type of intra prediction and inter prediction.
  • one or two bits are extracted and decoded from the bitstream. For example, if there are three types of prediction types available, SKIP, inter prediction, and intra prediction, one bit indicating whether or not SKIP is first decoded, and then, if not in SKIP mode, one bit is further extracted from the bitstream. Then, decoding is performed to determine whether an inter predicted subblock or an intra predicted subblock. Or 1 bit indicating whether it is intra prediction or inter prediction if not in direct mode, after extracting and decoding one bit indicating whether the mode is Direct mode from the bitstream even if the available prediction type is Direct, inter prediction, or intra prediction. You can also extract and decode more.
  • SKIP SKIP
  • Direct a type of prediction type that can be used
  • inter prediction first, one bit indicating whether or not SKIP is decoded, and then, if not in SKIP mode, further decoding one bit to determine whether it is a direct predicted subblock. It may be determined whether it is an inter predicted subblock.
  • one to three bits may be extracted from the bitstream and decoded to decode the prediction type. For example, if the type of prediction type available is SKIP, Direct, Inter Prediction, or Intra Prediction, first decode one bit indicating whether it is SKIP or not, and if it is not in SKIP mode, decode one more bit to determine whether it is Direct mode. Indicates whether or not. If neither the SKIP mode nor the direct mode, 1 bit may be decoded to determine whether an inter predicted subblock or an intra predicted subblock.
  • the prediction type may be decoded by extracting and decoding 2 bits from the bitstream.
  • the prediction type may be decoded using the table promised by the encoder.
  • variable length decoding of the syntax indicating the prediction type may be performed using various methods such as unary code, truncated unary code, and exponential golem code. Can be decrypted
  • arithmetic decoding may be performed using the prediction type information of the neighboring block.
  • the prediction type may be decoded using a plurality of syntaxes. For example, three syntaxes may be used: SKIP_flag to indicate whether it is in SKIP mode or Direct_flag to indicate whether it is in direct mode or pred_type to indicate whether it is an intra block or an inter block. Each syntax can also be decoded using a different method.
  • Pred_dir which is information indicating a prediction direction among predictions indicating whether L0 prediction, L1 prediction, or bidirectional prediction, is decoded.
  • the difference motion vector MVD and a reference picture index ref_idx representing the reference picture are decoded. If the type of picture is a B picture, Pred_dir is decoded, and one or two pieces of motion vector information and a reference picture index according to Pred_dir are decoded. However, if there is only one reference picture that can be referred to, the reference picture index is not decoded.
  • the intra prediction mode information is decoded for the subblock in which the prediction type identified by the subblock in the intra picture or the prediction type information in the inter picture is intra predicted. For example, when the size of the subblock is 4x4, the prediction mode indicating the selected prediction mode among the nine intra prediction modes is decoded.
  • the image encoding apparatus and the image decoding apparatus can encode and decode an image using blocks of arbitrary sizes, and SKIP, DIRECT, and intra prediction for each subblock. It can be encoded / decoded using various prediction types and modes such as and inter prediction.
  • an apparatus and method for selectively encoding and decoding using intra prediction or inter prediction for a subblock in a macroblock of variable size while saving bits required for prediction type information Let's explain.
  • the macroblock is compared to determine the type of the macroblock by comparing the encoding cost, and the type of the selected macroblock. And predictively encode each subblock according to the available prediction type and the prediction mode according to the macroblock type to generate a bitstream.
  • a macroblock type is compared by comparing an encoding cost when using only intra prediction, an encoding cost when using only inter prediction, and an encoding cost when using both intra prediction and inter prediction.
  • each of the subblocks is predictively encoded according to the type of the selected macroblock and the selected prediction method of each subblock, thereby generating a bitstream.
  • the prediction type information and the prediction mode information are encoded for subblocks in the macroblock only when the determined macroblock type is a macroblock type using both intra prediction and inter prediction. Only the information is encoded to generate a bitstream.
  • the prediction block may be predictively encoded using only one of inter prediction and intra prediction according to the size of the macroblock, or may be selectively encoded using inter prediction or intra prediction. That is, the type of macroblocks that can be used may vary depending on the size of the macroblocks. For example, when the size of the macroblock is 32x32 or more, the prediction block may be predicted and encoded using a macroblock type that may select and use intra prediction or inter prediction for each subblock unit in the macroblock. However, the size of the macroblock may be 16x16 or 8x8. In the case of a macroblock, intra prediction or inter prediction is selectively used on a macroblock basis. In this case, when intra prediction or inter prediction may be selected and encoded in units of subblocks in the macroblock, prediction type information is encoded in units of subblocks only in the case of a macroblock type.
  • the size of the macroblock when the size of the macroblock is large, there may be various regions within the macroblock. For example, in the case of a 64x64 macroblock, a background area within the macroblock and a new area not included in the previous picture may be included in the macroblock. If intra prediction or inter prediction is selected in macroblock units, encoding efficiency may be reduced. Therefore, in the case of large macroblocks, various prediction types and modes in the macroblocks can be used to increase coding efficiency, and in the case of small macroblocks, intra prediction or inter prediction can be selected and used in units of macroblocks to minimize the types of prediction types. This is to reduce the number of bits required for the prediction type information.
  • the image encoding apparatus may be configured identically or similarly to the image encoding apparatus according to the embodiment of the present invention described above with reference to FIG. 6.
  • the image encoding apparatus encodes a macroblock using only a prediction type according to a macroblock type, and compares the encoding cost to determine a macroblock type and a prediction type of subblocks in the macroblock.
  • a bitstream is generated by predictively encoding each subblock according to the selected prediction scheme. For example, a macroblock type is determined by comparing the encoding cost using only intra prediction, the encoding cost using only inter prediction, and the encoding cost using both intra prediction and inter prediction. Accordingly, each subblock is predictively encoded to generate a bitstream.
  • the subblock in the macroblock is a macroblock type capable of selectively using intra prediction or inter prediction
  • whether an image is encoded by using inter prediction on each subblock or Information about a prediction type indicating whether to encode using intra prediction may be encoded and included in the bitstream.
  • all subblocks in one macroblock may be predictively encoded using inter prediction, all subblocks may be predictively encoded using intra prediction, and some subblocks may be May be inter predictively coded and the remaining subblocks may be intra predictively coded and may save bits required for prediction type information.
  • the macroblock type may be a SKIP macroblock, an intra macroblock, an inter macroblock, or a mixed inter / intra macroblock.
  • the SKIP macroblock encodes all subblocks in the macroblock using only the SKIP mode
  • the intra macroblock encodes all subblocks in the macroblock using only intra prediction.
  • the inter macroblock is encoded using inter prediction in which all subblocks in the macroblock transmit motion information or residual signal information.
  • the mixed-inter / intra macroblock is encoded using inter prediction that transmits intra prediction or motion information or residual signal information in units of subblocks within the macroblock.
  • intra macroblock there may be only an intra macroblock and an inter macroblock as a macroblock type.
  • all subblocks in the intra macroblock may be encoded using only intra prediction, and all subblocks in the inter macroblock may be selected and encoded by intra prediction or intra prediction that performs motion estimation and compensation in subblock units.
  • the encoder After encoding the segmentation information of the macroblock, the encoder encodes the macroblock type.
  • the type of the macroblock may be fixed according to the type of the picture or may be selected by comparing encoding costs.
  • all macroblock types in the picture are fixed to intra macroblocks, and only the prediction mode data indicating the intra prediction modes of the respective subblocks are encoded without encoding the macroblock type and the prediction type.
  • the macroblock type is determined according to an encoding cost, and after encoding the selected macroblock type, if there are two or more available prediction types according to the macroblock type, the prediction type of each subblock is encoded.
  • intra prediction mode information is encoded
  • motion information is encoded.
  • the method of encoding prediction mode data is encoded using the prediction mode information encoding method of the above-described embodiment.
  • a usable macroblock type according to a picture type may vary as shown in Tables 6-9.
  • the types of macroblocks of Tables 6 to 8 and the types of usable prediction types of subblocks according to the types of the macroblocks may be merely an example.
  • the macroblock type may be represented by encoding 1 bit or 2 bits. For example, after encoding a 1-bit long syntax indicating whether or not it is a SKIP macroblock, if it is not a SKIP macroblock, an additional 1-bit long syntax indicating whether it is a mixed inter-intra macroblock or an inter macroblock is encoded. .
  • the macroblock type may be represented by encoding 1 to 3 bits. For example, in Table 7, a 1-bit long syntax indicating whether or not a SKIP macroblock is encoded, for example, skip_flag, and then, when not a SKIP macroblock, a syntax indicating a macroblock type using a binary string of Table 10 is used. Can also be encoded.
  • the macroblock type of the current encoding target macroblock may be encoded using neighboring macroblocks of the current encoding target macroblock, for example, macroblock types of the upper and left macroblocks.
  • the coder may code using a code word table promised by the encoder and the decoder.
  • the macroblock type may be represented by encoding 1 bit or 3 bits.
  • a 1-bit length syntax such as skip_flag, indicating whether or not it is a SKIP macroblock, and if it is not a SKIP macroblock
  • the syntax indicating a macroblock type using a binary string of Table 11 is used.
  • the macroblock type of the current encoding target macroblock may be encoded by using macroblock types of neighboring macroblocks of the current encoding target macroblock, for example, upper and left macroblocks.
  • the coder may code using a code word table promised by the encoder and the decoder.
  • variable length encoding method of a syntax representing a macroblock type includes various binary encodings such as unary code, truncated unary code, and exponential golem code. It can be coded using Binary Coding).
  • arithmetic coding may be performed using prediction type information of a block.
  • macroblock types there are two syntaxes (skip_flag) to indicate whether or not a SKIP macroblock is used to indicate a macroblock type, and a syntax (mb_type) to indicate a macroblock type except a SKIP macroblock type when a non-SKIP macroblock is used.
  • skip_flag a syntax to indicate whether or not a SKIP macroblock is used to indicate a macroblock type
  • mb_type a syntax
  • macroblock types may be encoded using one or three or more syntaxes.
  • the prediction type information of each subblock in the macroblock is encoded.
  • a 1-bit length syntax indicating a prediction type of each subblock is encoded.
  • the prediction type may be indicated by using a 1-bit or 2-bit length syntax. For example, if there are three types of prediction types that can be used, SKIP, inter prediction, and intra prediction, first, one bit indicating whether or not SKIP is encoded, and then, if not in SKIP mode, one more bit is encoded to inter prediction. It may indicate whether the subblock is an intra predicted subblock. Alternatively, even when the available prediction type is Direct, inter prediction, or intra prediction, one bit indicating whether a direct mode is encoded may be encoded, and if not, the first bit indicating whether intra prediction or inter prediction is further encoded. have.
  • SKIP SKIP
  • Direct a type of prediction type that can be used
  • inter prediction first, one bit indicating whether SKIP or not is encoded, and if it is not in SKIP mode, one more bit is further encoded to determine whether it is a direct predicted subblock. It may indicate whether an inter predicted subblock.
  • the prediction type may be encoded by using a syntax of 1 bit to 3 bits in length. For example, if the types of prediction types available are SKIP, Direct, Inter Prediction, and Intra Prediction, first, one bit indicating whether SKIP is SKIP or not is encoded. Indicates whether or not. If it is not the SKIP mode or the direct mode, one bit may be encoded to indicate whether it is an inter predicted subblock or an intra predicted subblock.
  • the prediction type may be encoded by using a 2-bit fixed length syntax.
  • the prediction type may be encoded by using a promised table.
  • variable length encoding method of the syntax indicating the prediction type may be various binary codes such as unary code, truncated unary code, exponential golem code, etc. Coding) can be used to encode.
  • arithmetic encoding may be performed using the prediction type information of the neighboring block.
  • the prediction type may be encoded using a plurality of syntaxes.
  • three syntaxes may be used: SKIP_flag to indicate whether it is in SKIP mode or Direct_flag to indicate whether it is in direct mode or pred_type to indicate whether it is an intra block or an inter block.
  • SKIP_flag to indicate whether it is in SKIP mode
  • Direct_flag to indicate whether it is in direct mode
  • pred_type to indicate whether it is an intra block or an inter block.
  • Each syntax can also be encoded using a different method.
  • An image decoding apparatus may be configured similarly or similarly to the image decoding apparatus according to an embodiment of the present invention described above with reference to FIG. 7.
  • an image decoding apparatus decodes and reconstructs a type of a macroblock of a macroblock of an arbitrary size from a bitstream, and usable prediction type of subblocks in a macroblock according to a macroblock type. Only in two or more cases, prediction type information is extracted and decoded from the bitstream. After reconstructing the prediction type of each subblock, if the prediction type of the subblock is intra prediction, inter prediction to extract and decode intra prediction mode information from the bitstream and to include motion information or residual signal information in the bitstream. If, and extracts the motion information or the residual signal information from the bitstream to recover each subblock.
  • the decoder After decoding the segmentation information of the macroblock, the decoder extracts and extracts the macroblock type information from the bitstream using the picture type information. In this case, when the usable macroblock type according to the picture type is fixed, the macroblock type information decoding process is not performed from the bitstream.
  • macroblocks in an intra picture can use only intra prediction
  • extraction and decoding processes are not performed from a bitstream of macroblock type information and prediction type information, and the intra prediction mode information of each block is extracted and decoded into a bitstream.
  • the prediction type information is extracted from the bitstream only when there are two or more types of available prediction types determined by the macroblock type. And decrypt.
  • the prediction mode information according to the prediction type is extracted from the bitstream and decoded to recover the block.
  • a method of decoding prediction mode data is decoded using the prediction mode information decoding method of the above-described embodiment.
  • usable macroblock types according to picture types may vary as described in Tables 6 to 8 above.
  • the macroblock type may be decoded by decoding 1 bit or 2 bits. For example, after decoding a 1-bit length syntax indicating whether or not a SKIP macroblock is, and if not a SKIP macroblock, one more bit is extracted from the bitstream and decoded so that the type of the macroblock to be decoded is Mixed Inter-Intra Macro. Determine whether a block or an inter macroblock.
  • the macroblock type may be represented by decoding 1 to 3 bits. For example, in Table 7, after decoding a 1-bit length syntax, such as skip_flag, indicating whether or not it is a SKIP macroblock, and if it is not a SKIP macroblock, an additional 1 or 2 bits are additionally extracted and decoded to decode the macro. Restore the block type.
  • a macroblock type using Table 10 for the type of the macroblock other than the SKIP macroblock if the codeword reconstructed by extracting and decoding 1 bit from the bitstream is 1, it is determined as an inter macroblock. In this case, one bit from the bitstream is further extracted and decoded to determine whether it is an intra macroblock or a mixed inter-intra macroblock.
  • the macroblock type of the current decoding target macroblock may be decoded using neighboring macroblocks of the current decoding target macroblock, for example, macroblock types of the upper and left macroblocks.
  • it may be decoded using a code word table promised by an encoder and a decoder.
  • the macroblock type may be represented by decoding one or three bits.
  • a syntax indicating a macroblock type using a binary string of Table 11 is used. Can also be decoded.
  • the macroblock type of the current decoding target macroblock may be decoded using neighboring macroblocks of the current encoding target macroblock, for example, macroblock types of upper and left macroblocks.
  • it may be decoded using a code word table promised by an encoder and a decoder.
  • variable length decoding method of a syntax representing a macroblock type includes various binary codes such as unary code, truncated unary code, and exponential golem code. It can be decoded using Binary Coding).
  • arithmetic decoding may be performed using prediction type information of a block.
  • syntaxes to indicate whether or not a SKIP macroblock is used to indicate a macroblock type
  • mb_type a syntax that indicates a macroblock type except a SKIP macroblock type when it is not a SKIP macroblock type.
  • syntax is used, one or three or more syntaxes may be used to decode the macroblock type.
  • the prediction type information of each subblock in the macroblock is decoded.
  • a 1-bit length syntax indicating a prediction type of each subblock is decoded.
  • the prediction type may be decoded using syntax of 1 bit or 2 bits in length. For example, if there are three types of prediction types that can be used, SKIP, inter prediction, and intra prediction, first decode one bit indicating whether or not it is SKIP, and if not in SKIP mode, further decode one bit to inter prediction. It may be determined whether the subblock is an intra predicted subblock. Alternatively, even when the available prediction type is Direct, inter prediction, or intra prediction, one bit indicating whether a direct mode is decoded, and if it is not in direct mode, one bit indicating whether intra prediction or inter prediction is further decoded. have.
  • SKIP SKIP
  • Direct a type of prediction type that can be used
  • inter prediction first, one bit indicating whether or not SKIP is decoded, and then, if not in SKIP mode, further decoding one bit to determine whether it is a direct predicted subblock. It may be determined whether it is an inter predicted subblock.
  • the prediction type may be decoded using syntax of 1 bit to 3 bits in length. For example, if the type of prediction type available is SKIP, Direct, Inter Prediction, or Intra Prediction, first decode one bit indicating whether it is SKIP or not, and if it is not in SKIP mode, decode one more bit to determine whether it is Direct mode. Determine whether or not. If neither the SKIP mode nor the direct mode, 1 bit may be decoded to determine whether an inter predicted subblock or an intra predicted subblock.
  • the prediction type may be decoded using a 2-bit fixed length syntax.
  • the prediction type may be decoded using the promised table.
  • variable length decoding method of the syntax indicating the prediction type may include various binary codings such as unary code, truncated unary code, and exponential golem code. Can be decoded using the
  • arithmetic decoding may be performed using the prediction type information of the neighboring block.
  • the prediction type may be decoded using a plurality of syntaxes. For example, three syntaxes may be used: SKIP_flag to indicate whether it is in SKIP mode or Direct_flag to indicate whether it is in direct mode or pred_type to indicate whether it is an intra block or an inter block. Each syntax can also be decoded using a different method.
  • the prediction may be performed by using inter prediction or intra prediction selectively for each macroblock unit or each subblock within the macroblock.
  • only one of the inter prediction and intra prediction may be selected according to the prediction reference unit.
  • the prediction encoding may be performed by using, or the prediction encoding may be selectively performed by using inter prediction or intra prediction.
  • the prediction reference unit refers to a size of a block capable of selecting inter prediction or intra prediction within a macroblock. That is, the macroblock is a reference unit of encoding decoding processing, and the prediction reference unit is a unit capable of selecting a prediction method.
  • the prediction reference unit may be 32x32 or 16x16 for a 32x32 macroblock, or may be a block smaller than 16x16.
  • intra prediction or inter prediction may be selected only in units of 16 ⁇ 16 blocks, and subblocks in the reference unit use the same prediction type.
  • FIG. 8 is a block diagram schematically illustrating an example of an image encoding apparatus according to another embodiment of the present invention.
  • An example of an image encoding apparatus 800 includes a candidate prediction basic unit configuration 810, an image encoder 820, and a prediction basic unit determiner. 830 may be configured.
  • the candidate prediction reference unit setter 810 sets candidates of prediction reference units for macroblocks of any size.
  • the candidate of the prediction reference unit may be a predetermined candidate group (for example, 16x16, 32x32, etc.) input by a user or other device or may be determined according to characteristics of an image. For example, when the candidate of the prediction reference unit is determined according to the characteristics of the image, the candidate may be determined by various candidate groups in consideration of the size of the image, the aspect ratio, and the like.
  • the image encoder 820 may be implemented as an image encoding apparatus 600 according to an embodiment of the present invention described above with reference to FIG. 6.
  • the apparatus for encoding an image encodes by selectively using inter prediction or intra prediction in the corresponding prediction reference unit for each candidate of the prediction reference unit set by the candidate prediction reference unit setter 810.
  • a prediction reference unit in a macroblock may be transmitted to a decoder by encoding split information in macroblock units or may be transmitted only once in a sequence header, a picture, and a slice header. Thereafter, the prediction type information is encoded in the prediction reference unit instead of the subblock unit, and the prediction mode information is encoded in the subblock unit within the prediction reference unit.
  • the method of encoding the prediction type information and the prediction mode information according to the prediction type is encoded by using the encoding method of the encoder of FIG. 6 described above.
  • the prediction reference unit determiner 830 calculates an encoding cost (that is, an encoding cost of image data encoded for each candidate of the prediction reference unit) when the image encoder 820 encodes an image for each candidate of the prediction reference unit, and predicts each prediction.
  • the encoding cost of the image data encoded for each candidate of the reference unit is compared with each other to determine an optimal prediction reference unit among the candidates of the prediction reference unit.
  • the optimal prediction reference unit may be a candidate of a prediction reference unit having a minimum encoding cost when the image is encoded with a candidate of the prediction reference unit among candidates of each prediction reference unit, but if the encoding cost is used, It can be determined variously using.
  • the image encoder 820 encodes a macroblock using an available prediction type according to the picture type among the intra prediction mode and the inter prediction modes for each block, and compares the encoding cost to obtain an optimal prediction type and prediction mode for each block. After determining, if all subblocks in the macroblock use the intra prediction mode or the inter prediction mode, the prediction reference unit is determined as the macroblock size. If the prediction type of the subblocks in the macroblock includes intra prediction and inter prediction at the same time, intra prediction sets the maximum size of the selected subblock as a reference unit of prediction.
  • the macroblock type is encoded by setting the macroblock type to a value representing an intra macroblock, and when all subblocks in the macroblock use only inter prediction, the macroblock type is set to a value representing an inter macroblock. To encode it. If there is a block using intra prediction and inter prediction modes in the macroblock, the macroblock type is encoded by setting the macroblock type to a value representing an intra / inter macroblock, and the maximum size of the subblock in which the intra prediction is selected Can also be set.
  • the prediction reference unit determiner 830 may generate image data encoded in the prediction reference unit into a bitstream and transmit the image data to the decoder.
  • the determined prediction reference unit may be encoded only once in a sequence header or a header or slice header of each picture that is not a macroblock unit. In this case, segmentation information from a macroblock of any size to a prediction reference unit may not be encoded.
  • a reference unit of prediction may or may not be transmitted as a flag (Set_predBlockSize_flag) on whether to send the size of the reference unit of prediction to the sequence header or each picture or slice header.
  • an arbitrary size for example, a 16x16 size, may be used as a reference unit of prediction, or the prediction reference unit may be encoded by encoding split information for each macroblock.
  • the reference unit of the prediction is designated, information on the reference unit of the prediction is transmitted.
  • the horizontal size and the vertical size of the reference unit of the prediction may be set separately so that the reference unit of the prediction of any size may be used.
  • the reference unit of the prediction as a specific value, and send a value for how many times to increase or decrease from a predetermined size.
  • a log function may be applied to the size value of the prediction reference unit to represent the size value of the prediction reference unit using fewer bits. For example, log 2 (the reference of the selected prediction). Unit / X) (where X is any positive integer that is a multiple of 2), for example, if the value of X is 16, if the reference unit of the selected prediction is 16x16, encode 0 and 32x32. Code 1
  • the ratio between the width and the height may be separately encoded.
  • it may be an index value of a table promised by the encoder and the decoder.
  • the encoding may be performed using various binary coding methods such as unary code, truncated unary code, and exponential golem code.
  • the following shows an example of syntax according to the first method of the aforementioned prediction reference unit coding.
  • the contents of setting the horizontal and vertical sizes are not described, but the horizontal and vertical sizes may be set.
  • the data is encoded on the sequence header and the picture header, the encoding may be performed on the slice header.
  • the MxN size is set as the default prediction reference unit, and a flag indicating whether to use the default prediction reference unit for each picture header is encoded, and if the default prediction reference unit is not used, the reference unit of the selected prediction is encoded. .
  • a flag indicating whether to set the default prediction reference unit is encoded in the sequence header, and if the default prediction reference unit is not set, a predetermined size, for example, 16x16 size is used as the reference unit of the default prediction and the reference unit of the default prediction is set.
  • the reference unit of the default prediction may be encoded.
  • the method of encoding defalt_predBlockSize which is information indicating the size of the default prediction criterion unit, or predBlockSize, which is information indicating the size of the current prediction criterion unit, may specify the size of the actual prediction criterion unit or increase the number of times from the predetermined size. Or you can send a value to shrink.
  • the macroblock size value instead of encoding the prediction reference unit size value as it is, the macroblock size value may be represented using fewer bits by applying a log function to the prediction reference unit size value.
  • the ratio between the width and the height may be separately encoded.
  • it may be an index value of a table promised by the encoder and the decoder.
  • the encoding may be performed using various binary coding methods such as unary code, truncated unary code, and exponential golem code.
  • the following shows an example of syntax according to the second method of size coding of the aforementioned prediction reference unit.
  • the method of encoding the predBlockSize value which is information indicating the size of the current prediction reference unit, may specify the size of the actual prediction reference unit or may send a value for increasing or reducing the number of times from the predetermined size.
  • the macroblock size value instead of encoding the prediction reference unit size value as it is, may be represented using fewer bits by applying a log function to the prediction reference unit size value.
  • the ratio between the width and the height may be separately encoded.
  • it may be an index value of a table promised by the encoder and the decoder.
  • the encoding may be performed using various binary coding methods such as unary code, truncated unary code, and exponential golem code.
  • the following shows an example of syntax according to the second method of size coding of the aforementioned prediction reference unit.
  • FIG. 9 is a flowchart for explaining an example of an image encoding method according to another embodiment of the present invention.
  • the image encoding apparatus sets a candidate of the prediction reference unit, encodes the input image for each candidate of the prediction reference unit, and determines the prediction reference unit according to the encoding cost of the image data for each candidate of the prediction reference unit, and determines the determined prediction reference unit. Accordingly, a bitstream including coded image data and information about the determined prediction reference unit is generated by selectively using inter prediction or intra prediction for each subblock of the macroblock.
  • the apparatus for encoding a prediction criterion unit setting a candidate of a prediction reference unit, encoding an image for each candidate of the prediction reference unit, and determining the prediction reference unit according to the encoding cost of the image data encoded for each candidate of the prediction reference unit is illustrated in FIG. 8. As described above, detailed description thereof will be omitted.
  • FIG. 10 is a block diagram illustrating an implementation of an image decoding apparatus according to another embodiment of the present invention.
  • An example of an image decoding apparatus according to another embodiment of the present invention may be configured similarly or similarly to the image decoding apparatus 700 according to an embodiment of the present invention described above with reference to FIG. 7.
  • the image decoding apparatus may include a prediction reference unit setter and an image decoder.
  • An example of an image decoding apparatus is a prediction reference unit for selectively using inter prediction or intra prediction for a macroblock having an arbitrary size from a bitstream as well as image data encoded from a bitstream.
  • a macroblock equal to or smaller than the size of the prediction criterion unit identified by the information on the extracted prediction criterion unit (or, if necessary, the prediction criterion unit identified by decoding information on the extracted prediction criterion unit)
  • Reconstruction images are generated by decoding the encoded image data by selectively using inter prediction or intra prediction for each of the subblocks within.
  • the prediction reference unit seter extracts prediction reference unit information from the bitstream to set the prediction reference unit in the macroblock. If the encoder is promised to include the prediction reference unit information only once in the bitstream, the image may be reconstructed using the prediction reference unit extracted to decode the entire image by decoding only once in the bitstream of the entire picture, or for each picture. In the case where P is promised to encode / decode, the prediction reference unit information may be extracted for each picture from the bitstream, and the image may be reconstructed using different prediction reference units for each picture. In addition, according to another embodiment of the present invention, the information may be extracted for each picture, slice, or macroblock layer to reconstruct an image using the selected prediction reference unit.
  • the decoder When the prediction reference unit is set in the prediction reference unit setter, the decoder extracts the prediction type information from the bitstream as the prediction reference unit, and extracts and decodes the prediction mode information for each subblock according to the prediction type from the bitstream to restore the macroblock. do.
  • a flag (Set_predBlockSize _flag) is included to send information about the size of the prediction criterion unit, whether to send information about the size of the prediction criterion unit at the promised position, such as the sequence header or the header or slice header of each picture.
  • the decoded prediction criterion unit size designation flag (Set_predBlockSize _flag) indicates that the size of the prediction criterion unit is specified, Unary code, Truncated Unary-Code, and Exponential Gollum Among the various entropy decoding methods such as Exp-Golomb Code, the size of the prediction reference unit is entropy decoded and extracted by a method promised by the encoder.
  • the horizontal size and the vertical size of the prediction reference unit may be obtained by entropy decoding, or when the square prediction reference unit is used, only information indicating the length of one side may be entropy decoded. It may be.
  • the decoded value may be designated as the size of the actual prediction criterion unit, or the value obtained by increasing or reducing the decoded value several times from a predetermined size agreed with the encoder may be designated as the size of the prediction criterion unit.
  • the size of the prediction criterion unit may be set by applying an exponential function to the entropy-decoded value.
  • the encoder may log 2 (PredBlockSize / If y is encoded as a value of X) (X is any positive integer that is a multiple of 2), the decoder entropy decodes the y value and multiplies the value of X by 2 y to obtain the size of the prediction reference unit selected by the encoder. have.
  • the value of X may be a value promised by the encoder and the decoder or may be a value extracted before decoding the prediction reference unit size from the bitstream. If the value of X is 8, if the value of the decoded y is 0, the size of the prediction reference unit is set to 8x8. If the value of the decoded y is 1, the size of the prediction reference unit is set to 16x16.
  • the size of the prediction reference unit may be obtained by entropy decoding the ratio of the width and the height.
  • the size of the prediction reference unit may be obtained using the decoded value as the index value of the table.
  • the size of the prediction reference unit to be transmitted may be determined using various binary coding methods such as unary code, truncated unary code, and exponential golem code. Can be decrypted
  • the contents of decoding and extracting the horizontal and vertical sizes are not described, but the horizontal and vertical sizes may be extracted.
  • the data is decoded on the sequence header and the picture header.
  • the encoder encodes the size of the prediction reference unit in the slice header or the macroblock header, the size of the prediction reference unit may be decoded in the slice header.
  • the NxN size promised by the encoder is set as the reference prediction reference unit size, and a flag indicating whether to use the reference prediction reference unit size from each picture, slice, or macroblock header is entropy decoded.
  • the prediction reference unit size information is entropy decoded to extract related information of the prediction reference unit and to set the size of the prediction reference unit. If the decoded flag value indicates that the reference prediction unit size is used, the prediction reference unit size information is not included in the bitstream. Therefore, the size of the preset reference prediction unit is set to the size of the prediction reference unit. A series of decoding processes are performed.
  • the size of the reference prediction reference unit When the size of the reference prediction reference unit is included in the sequence header in the encoder and transmitted to the decoder, the size of the reference prediction reference unit may be extracted at a predetermined position such as a sequence header in the bitstream.
  • the size of the reference prediction reference unit or the size of the current prediction reference unit may be assigned an entropy decoded value, or the size of the prediction reference unit may be obtained by scaling (reducing or enlarging) a predetermined size with the entropy decoded value.
  • the size value of the prediction reference unit may be obtained using the exponential function.
  • the size of the prediction reference unit may be obtained by entropy decoding the ratio of the width and the height.
  • the size of the prediction reference unit may be obtained using the decoded value as the index value of the table.
  • the size of the prediction reference unit to be transmitted may be determined using various binary coding methods such as unary code, truncated unary code, and exponential golem code. Can be decrypted
  • the third method entropy-decoding the size information of the prediction reference unit after entropy decoding the size information of the prediction reference unit when not using the flag of the reference prediction reference unit size and the size of the reference prediction reference unit in the first picture
  • the prediction reference unit size required for the first picture decoding is obtained using the information.
  • the size of the prediction reference unit is set equal to the size of the reference prediction reference unit, and then the first picture is decoded.
  • the size of the prediction reference unit of the previous picture is set to the same value as the size of the prediction reference unit of the previous picture to decode the second picture.
  • the method of decoding PredBlockSize which is information indicating the size of the prediction criterion unit of the current picture, may use the entropy-decoded value as the size of the prediction criterion unit or enlarge it from a predetermined size by using the entropy-decoded value as an enlargement ratio or a reduction ratio.
  • the size of the prediction reference unit may be reduced.
  • the size value of the prediction reference unit may be obtained using the exponential function.
  • the reference prediction reference unit size may be obtained by entropy decoding the ratio of the width and the height.
  • the size of the reference prediction reference unit may be obtained using the decoded value as the index value of the table.
  • the reference prediction reference unit size is determined using various binary coding methods such as unary code, truncated unary code, and exponential golem code. Can be decrypted
  • the embodiment of the present invention generates an effect of efficiently encoding / decoding a high resolution image by encoding and decoding a subblock or a prediction reference unit in a macroblock having a variable size using various prediction modes. It is a very useful invention.

Landscapes

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

Abstract

가변 크기의 매크로블록을 이용한 영상 부호화/복호화 장치 및 방법이 개시된다. 본 발명의 실시예에 따른 영상 부호화/복호화 장치는, 예측 기준 단위 후보별로 매크로블록을 부호화하며, 예측 기준 단위 후보별 부호화 비용에 따라 예측 기준 단위를 결정하고, 결정된 예측 기준 단위로 부호화된 영상 데이터 및 결정된 예측 기준 단위 별 예측 타입에 대한 정보와 예측 타입에 따른 예측 데이터를 포함하는 비트스트림을 생성하는 영상 부호화기; 및 비트스트림으로부터 예측 기준 단위 별 예측 타입에 대한 정보 및 예측 타입에 따른 예측 데이터와 부호화된 영상 데이터를 추출하고, 예측 기준 단위 별 예측 타입에 따라 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 영상 복호화기를 포함하는 것을 특징으로 한다.

Description

가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
본 발명은 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치에 관한 것이다. 더욱 상세하게는, 다양한 예측 모드를 이용하여 가변 크기의 매크로블록 내 서브블록 또는 예측기준단위를 부호화 및 복호화함으로써 고해상도 영상을 효율적으로 부호화하고 복호화하는 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
동영상 데이터의 압축기술로는 H.261, H.263, MPEG-2, MPEG-4 등이 있다. 이러한 비디오 압축 표준에서는 각 영상을 휘도 성분의 16x16 크기의 화소들과 각 색차 성분의 8x8 크기의 화소들의 사각 영역으로 이루어진 고정된 크기를 가지는 매크로블록(Macroblock)들로 나누어 부호화한다. 각 매크로블록의 모든 휘도와 색차 성분들은 공간적으로나 시간적으로 예측되고, 예측 잔여분은 변환 및 양자화, 엔트로피 코딩이 수행되어 전송된다. 가장 최근에 제정된 H.264/AVC 표준에 따른 부호화 장치는 16x16 화소 블록을 고정된 매크로블록의 크기로 사용하고 각각의 매크로블록이 인트라 매크로블록인지 인터 매크로블록인지를 결정 후, 매크로블록을 더 작은 블록으로 분할하여 인트라 예측 또는 인터 예측을 수행한다. 인트라 매크로블록을 예측 부호화할 때, 각 매크로블록은 16x16, 8x8, 4x4의 크기로 분할될 수 있으며, 16x16 크기의 블록에 대해서는 4 가지의 예측 모드, 8x8 크기와 4x4 크기의 블록에 대해서는 9 가지의 예측 모드중 하나를 이용하여 인트라 예측한다. 인터 매크로블록을 예측의 경우, 매크로블록은 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 크기를 가지는 더 작은 블록으로 분할되어 움직임 보상을 통한 인터 예측에 이용될 수 있다. 변환은 8x8 크기 또는 4x4 크기의 블록 단위로 수행되고, 변환 계수의 양자화는 스칼라(Scalar) 양자화가 사용된다.
하지만, 고정된 크기의, 예컨대 16x16 크기, 매크로블록은 과거의 QCIF, CIF급의 작은 영상에 적합한 크기라 할 수 있으며, 4Kx2K 영상과 같은 고해상도 영상 압축을 위한 매크로블록의 크기로 부적합하다. 또한, H.264/AVC와 같은 기존 부호화/복호화 방법에서는 매크로블록을 더 작은 블록 단위로 분할하여 부호화하지만, 인트라 매크로블록인 경우 매크로블록 내 모든 서브블록들은 인트라 모드만을 사용할 수 있으며, 인터 매크로블록인 경우 매크로블록 내 모든 서브블록들은 인터 모드만을 사용할 수 있기 때문에 영상 내 다양한 영역을 포함하는 고해상도 영상을 부호화하는 경우 효율적인 부호화가 어려운 문제점이 있다.
전술한 문제점을 해결하기 위해 본 발명은, 가변 크기의 매크로블록을 사용하고 매크로블록 내 서브블록 들에 대해서 다양한 예측 모드를 사용할 수 있는 방법과 기준 예측 단위를 이용하여 매크로블록의 예측 정보를 효율적으로 부호화 및 복호화 방법을 제공하는데 주된 목적이 있다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 장치는, 예측 기준 단위 후보별로 매크로블록을 부호화하며, 예측 기준 단위 후보별 부호화 비용에 따라 예측 기준 단위를 결정하고, 결정된 예측 기준 단위로 부호화된 영상 데이터 및 결정된 예측 기준 단위 별 예측 타입에 대한 정보와 예측 타입에 따른 예측 데이터를 포함하는 비트스트림을 생성하는 영상 부호화기; 및 비트스트림으로부터 예측 기준 단위 별 예측 타입에 대한 정보 및 예측 타입에 따른 예측 데이터와 부호화된 영상 데이터를 추출하고, 예측 기준 단위 별 예측 타입에 따라 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 영상 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 영상 부호화 장치는, 가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 매크로블록 분할기; 각 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화하는 예측기; 및 매크로블록 내 서브블록들의 크기 및 모양을 나타내는 분할 정보, 각 서브블록이 인트라 모드인지 인터 모드인지를 나타내는 각 서브블록 별 예측 타입정보 및 서브블록의 예측 타입에 따른 예측 데이터를 부호화하는 부호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영상 부호화 장치는, 가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 매크로블록 분할기; 매크로블록의 예측 타입에 따라 매크로블록 단위 또는 매크로블록 내 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화하는 예측기; 및 매크로블록 내 서브블록들의 크기 및 모양을 나타내는 분할 정보, 매크로블록 예측 타입에 따라 각 서브블록의 예측 타입 정보와 예측 데이터 또는 각 서브블록의 예측 데이터를 부호화하는 부호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 영상 복호화 장치는, 입력되는 비트스트림으로부터 가변 크기의 매크로블록 내의 서브블록들의 크기를 나타내는 분할정보, 각 서브블록들이 인트라 예측되었는지 인터 예측되었는지를 나타내는 예측 타입정보, 및 인트라 또는 인터 예측에 필요한 예측 모드정보를 복호화하는 복호화기; 복호화된 각 서브블록 별 예측 타입정보 및 예측 모드정보를 이용하여 매크로블록 내의 복호화하고자 하는 현재 블록을 예측 하는 예측기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영상 복호화 장치는, 입력되는 비트스트림으로부터 가변 매크로블록의 타입을 나타내는 매크로블록 타입 정보, 매크로블록 서브블록들의 크기를 나타내는 분할 정보, 매크로블록 타입 정보에 따른 각 서브블록들의 예측 타입 정보와 예측 모드 데이터 또는 각 서브블록의 예측 모드 데이터를 추출하여 복호화하는 복호화기; 복호화된 매크로블록 타입에 따라 매크로블록 내 각 서브블록들의 예측 타입 정보와 예측 모드 정보 또는 매크로블록 타입과 매크로블록 내 각 서브블록들의 예측 모드 정보를 이용하여 상기 매크로블록 내의 복호화하고자 하는 현재 블록을 예측하는 예측기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 또 다른 실시예에 따른 영상 복호화 장치는, 입력되는 비트스트림으로부터 예측 기준단위 정보를 추출하여 가변 크기의 매크로블록 내 예측 기준단위를 설정하는 예측 기준단위 설정기; 및 설정된 예측 기준단위로 비트스트림으로부터 예측 타입정보 및 예측 타입정보에 따른 예측 기준 단위 내 서브블록 별 예측 모드정보를 추출하여 복호화하는 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 방법은, 예측 기준 단위 후보별로 매크로블록을 부호화하며, 예측 기준 단위 후보별 부호화 비용에 따라 예측 기준 단위를 결정하고, 결정된 예측 기준 단위로 부호화된 영상 데이터 및 결정된 예측 기준 단위 별 예측 타입에 대한 정보와 예측 타입에 따른 예측 데이터를 생성하는 단계; 및 비트스트림으로부터 예측 기준 단위 별 예측 타입에 대한 정보 및 예측 타입에 따른 예측 데이터와 부호화된 영상 데이터를 추출하고, 예측 기준 단위 별 예측 타입에 따라 부호화된 영상 데이터를 복호화하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 영상 부호화 방법은, 가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 단계; 각 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화 단계; 및 매크로블록 내 서브블록들의 크기를 나타내는 분할 정보, 각 서브블록이 인트라 모드인지 인터 모드인지를 나타내는 각 서브블록 별 예측 타입정보 및 서브블록의 예측 타입에 따른 예측 데이터를 부호화하는 단계를 포함하는 것을 특징으로 한다.
부호화 단계는, 인트라 픽처의 경우, 예측 타입정보는 부호화 하지 않고 각 서브블록의 인트라 예측 모드를 나타내는 예측 데이터만을 부호화할 수 있다.
또한, 부호화 단계는, 인터 픽처의 경우, 각 서브블록 별로 인트라 예측이 수행되었는지 인터 예측이 수행되었는지를 나타내는 예측 타입정보를 부호화한 후, 인트라 블록인 경우 인트라 예측 모드정보와 인터 블록인 경우 움직임 정보를 부호화할 수도 있다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영상 부호화 방법은, 가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 단계; 매크로블록의 예측 타입에 따라 매크로블록 단위 또는 매크로블록 내 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화하는 단계; 및 매크로블록 내 서브블록들의 크기를 나타내는 분할 정보, 매크로블록 예측 타입에 따라 각 서브블록의 예측 타입 정보와 예측 데이터 또는 각 서브블록의 예측 데이터를 부호화하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 영상 복호화 방법은, 입력되는 비트스트림으로부터 가변 크기의 매크로블록 내의 각 서브블록들의 크기를 나타내는 분할정보, 각 서브블록들이 인트라 예측되었는지 인터 예측되었는지를 나타내는 예측 타입정보, 및 인트라 또는 인터 예측에 필요한 예측 모드정보를 복호화하는 단계; 복호화된 각 서브블록 별 예측 타입정보 및 예측 모드정보를 이용하여 매크로블록 내의 복호화하고자 하는 현재 블록을 예측 하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영상 복호화 방법은, 입력되는 비트스트림으로부터 가변 매크로블록의 타입을 나타내는 매크로블록 타입 정보, 매크로블록 내 각 서브블록들의 크기를 나타내는 분할 정보, 매크로블록 타입 정보에 따른 각 서브블록들의 예측 타입 정보와 예측 모드 데이터 또는 각 서브블록의 예측 모드 데이터를 추출하여 복호화하는 단계; 복호화된 매크로블록 타입에 따라 매크로블록 내 각 서브블록들의 예측 타입 정보와 예측 모드 정보 또는 매크로블록 타입과 매크로블록 내 각 서브블록들의 예측 모드 정보를 이용하여 매크로블록 내의 복호화하고자 하는 현재 블록을 예측하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 또 다른 실시예에 따른 영상 복호화 방법은, 입력되는 비트스트림으로부터 예측 기준단위 정보를 추출하여 가변 크기의 매크로블록 내 예측 기준단위를 설정하는 단계; 및 설정된 예측 기준단위로 비트스트림으로부터 예측 타입정보 및 예측 타입정보에 따른 예측 기준 단위 내 서브블록 별 예측 모드정보를 추출하여 복호화하는 단계를 포함하는 것을 특징으로 한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 영상의 특성에 따라 기준 예측 단위를 결정함으로써 매크로블록 내 서브블록들에 대해서도 인트라 예측 또는 인터 예측과 같은 다양한 예측 모드 조합을 이용하여 고해상도 영상을 효율적으로 부호화하고 복호화 할 수 있다. 또한 기준 예측 단위를 이용하여 매크로블록의 분할 정보와 예측 정보를 효율적으로 부호화하고 복호화할 수 있다.
도 1 내지 도 3은 본 발명의 일 실시예에 따른 MxN 화소 단위의 매크로블록을 설명하기 위한 예시도이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 여러 가지 서브블록 모드를 나타낸 예시도이다.
도 6은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 7은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
도 8은 본 발명의 다른 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 9는 본 발명의 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
도 10은 본 발명의 다른 실시예에 따른 영상 복호화 장치를 개략적으로 나타낸 블록 구성도이다.
도 11는 본 발명의 일 실시예에 따라 매크로블록을 레이어별로 분할한 서브블록을 나타낸 예시도이다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 분할 타입을 나타낸 예시도이다.
도 14은 본 발명의 일 실시예에 따라 다양한 블록 크기의 서브블록으로 분할된 매크로블록을 나타낸 예시도이다.
도 15는 매크로블록이 분할 레이어별로 분할되는 과정을 순차적으로 나타낸 예시도이다.
도 16은 매크로블록의 레이어별 분할 타입 지시 정보를 서브블록의 순서에 따라 순차적으로 부호화하는 과정을 설명하기 위한 예시도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하에서 후술할 영상 부호화 장치(Video Encoding Apparatus), 영상 복호화 장치(Video Decoding Apparatus)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
[실시예 1]
A. 매크로블록 내 서브블록 단위로 인트라/인터 모드를 선택하여 부호화/복호화하는 방법
이하에서는, 가변 크기의 매크로블록 내 서브블록에 대해 인트라 예측 또는 인터 예측을 선택적으로 이용하여 부호화하고 복호화하는 장치에 대해 예를 들어 설명한다.
통상적인 영상 압축 기술에서는 인터 픽처의 고정된 크기의 어느 한 매크로블록의 서브블록들에 대해서는 동일한 예측 방법을 이용하여 예측 부호화하고 예측 복호화하였다. 즉, 하나의 매크로블록 내의 각 서브블록에 대해 모두 인터 예측 부호화하거나 모두 인트라 예측 부호화하였다.
하지만, 본 발명의 실시예에서는 가변 크기의 매크로블록을 이용하여 영상을 부호화하며, 매크로블록 내의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화하거나 복호화할 수 있다.
또는, 인트라 픽쳐의 경우 매크로블록 내 서브블록들은 인트라 예측 모드만을 사용하여 부호화/복호화하고 인터 픽쳐의 경우에만 매크로블록 내 서브블록들에 대해서 인트라 예측 또는 인터 예측을 선택적으로 이용하여 부호화하거나 복호화할 수도 있다 .
또는, 매크로블록의 타입을 인트라 매크로블록, 인터 매크로블록, 인트라/인터 매크로블록의 3가지로 구분하여 매크로블록의 타입이 인트라/인터 매크로블록 타입인 경우에만 적용할 수도 있다. 즉 인트라 매크로블록 내의 각 서브블록은 모두 인트라 예측 부호화하고 인터 매크로블록 내의 각 서브블록은 모두 인터예측 부호화하고 인트라/인터 매크로블록인 경우 매크로블록 내의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화하거나 복호화할 수 있다. 매크로블록 내 각 서브블록에 대해 인트라예측 또는 인터 예측을 선택적으로 사용하여 부호화하는 경우에만 각 블록별로 인트라 예측모드를 사용하는지 인터 예측 모드를 사용하는지에 대한 정보를 부호화한다.
A.1. 부호화 장치
A.1.1. 가변 크기의 매크로블록
도 1 내지 도 3은 본 발명의 일 실시예에 따른 MxN 화소 단위의 매크로블록을 설명하기 위한 예시도이다.
도 1에서는 임의의 크기를 가지는 입력 영상의 일 부분에서 표현된 MxN 화소 단위의 매크로블록(이하 'MxN 크기의 매크로블록'이라 칭함)을 예시적으로 나타내었고, 도 2에서는 396 개의 16x16 크기의 매크로블록으로 구성되는 CIF 영상을 예시적으로 나타내었으며, 도 3에서는 54 개의 64x32 크기의 매크로블록으로 구성되는 CIF 영상을 예시적으로 나타내었다.
기존의 영상 압축 기술에서는 도 2에 도시한 바와 같이, 영상을 16x16으로 고정된 크기를 가지는 매크로블록으로 분할하여 부호화하고 복호화하지만, 본 발명의 일 실시예에서는 도 3에 도시한 바와 같이, 64x32 크기(단, 64x32 크기의 매크로블록뿐만 아니라 64x64 크기, 32x64 크기와 같은 MxN 크기(단, 16x16 크기 이상)도 가능함)를 가지는 매크로블록을 이용하여 영상을 부호화하고 복호화할 수 있다.
A.1.2. 서브블록 모드의 예
도 4 및 도 5는 본 발명의 일 실시예에 따른 여러 가지 서브블록 모드를 나타낸 예시도이다.
도 4에서는 32x32 크기의 매크로블록에 대해 사용할 수 있는 서브블록 모드를 나타내었고, 도 5에서는 32x16 크기의 매크로블록에 대해 사용할 수 있는 서브블록 모드를 나타내었다.
본 발명의 일 실시예에 따르면, MxN 크기의 매크로블록은 도 4 및 도 5에 도시한 바와 같은 더 작은 블록 즉, 서브블록으로 분할될 수 있으며, 영상의 매크로블록은 이와 같은 서브블록 단위로 인트라 예측 부호화되거나 인터 예측 부호화될 수 있다.
A.1.3. 부호화기
도 6은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 부호화 장치는 임의의 크기 이상 매크로블록을 이용하여 영상을 부호화하는 장치로서, 매크로블록 분할기(Macroblock Splitter, 605), 예측기(Predictor, 610), 부호화기(Encoder, 620), 복원기(Reproducer, 630), 필터(Filter, 640) 및 프레임 메모리(Frame Memory, 650)를 포함하여 구성될 수 있다. 여기서, 복원기(630), 필터(640) 및 프레임 메모리(650)는 구현 방식에 따라 선택적으로 생략되거나 다른 구성 요소에 포함되어 구성될 수 있다.
매크로블록 분할기(605)는 도 4 및 도 5에 도시된 분할타입을 이용하여 매크로블록을 하나 이상의 서브블록으로 분할하고 매크로블록 내 서브블록들의 크기와 모양을 나타내는 분할 정보를 생성한다. 분할된 각 서브블록은 예측기(610)에 입력되고 분할 정보는 부호화기에 입력 된다.
예측기(610)는 움직임 추정기(612), 움직임 보상기(614) 및 인트라 예측기(616)를 포함하여 구성될 수 있으며, 입력 블록을 예측한다. 여기서, 블록은 MxN(단, M과 N은 16 이상의 정수일수 있다) 크기의 매크로블록이나 OxP(단, O와 P는 M 또는 N보다 작거나 같은 정수임) 크기의 서브블록 또는 하위 블록을 말한다.
움직임 추정기(612)는 예측하고자 하는 블록을 프레임 메모리(650)에 저장된 참조 픽처와 비교하여 해당 블록의 움직임을 추정함으로써 움직임 벡터를 생성한다.
움직임 보상기(614)는 움직임 추정기(612)에 의해 생성된 움직임 벡터를 참조하여 프레임 메모리(650)에 저장된 참조 픽처에서 예측하고자 하는 블록의 크기만큼의 블록을 가져온다. 움직임 보상기(614)가 가져온 블록이 예측하고자 하는 블록의 예측값을 가지는 매크로블록이 된다.
인트라 예측기(616)는 예측하고자 하는 블록을 인트라 예측한다. 이를 위해, 인트라 예측기(616)는 이미 부호화되고 복호화되어 복원된 주변 화소 정보를 이용하여 참조 블록을 생성하고 참조 블록과 부호화 대상 블록을 비교하여 인트라 예측 모드를 결정하고, 결정된 인트라 예측 모드에 따라 블록을 인트라 예측한다. 인트라 예측기(616)에 의해 예측된 블록이 대상 블록의 예측값을 가지는 예측 블록이 된다.
부호화기(620)는 매크로블록 분할기(605)에서 생성한 매크로블록 내 서브블록들의 크기와 모양을 나타내는 분할정보를 부호화하는데, 분할 정보를 엔트로피 부호화할 수 있다. 또한, 부호화기(620)는 분할 정보에 의해 분할된 매크로블록 내 각 서브블록들의 예측 정보를 부호화하는데, 부호화하고자 하는 대상 블록을 인터 예측하는 경우, 움직임 추정기(612)에서 생성한 움직임 벡터 등과 같은 움직임 정보와 인트라 예측을 하는 경우, 인트라 예측 모드와 같은 예측 모드정보를 부호화할 수 있다. 또한, 각 서브블록과 예측 블록의 화소값의 차이인 잔여 신호를 부호화하는데, 잔여 신호를 변환 및 양자화하고 엔트로피 부호화하여 부호화할 수 있다.
복원기(630)는 변환 및 양자화된 잔여 신호를 역 양자화 및 역 변환하여 예측기(610)로부터 출력되는 예측 블록과 가산하여 대상 블록을 복원한다.
필터(640)는 디블로킹 필터(Deblocking Filter)와 같은 필터를 이용하여 복원된 대상 매크로블록을 필터링한다. 필터링된 복원 매크로블록은 프레임 메모리(650)에 저장되어, 예측기(610)에서 다음 매크로블록 또는 다음 픽처의 매크로블록을 예측하는 데 활용된다.
이하에서는, 본 발명에 따른 임의의 크기의 매크로블록을 다양한 크기와 모양의 서브블록으로 분할하고 각 서브블록 단위로 예측 모드를 결정하여 부호화하기 위해 기존 부호화기와 다르게 동작하는 부호화기의 구성 요소들의 동작방법에 대해서 설명한다.
A.1.4. 매크로블록 분할기
통상적인 영상 압축 기술에 따르면, 매크로블록의 크기가 16x16으로 고정되어 있으므로 매크로블록의 서브블록도 그에 따라 8x8, 4x4 크기 등 소수의 형태를 가지는 서브블록만이 이용될 수 있으나, 본 발명의 실시예에 따르면, 매크로블록의 크기가 16x16 이상으로 다양하게 결정될 수 있으므로 그에 따라 서브블록의 크기와 형태도 다양하게 결정될 수 있으며, 그에 따라 매크로블록이 다양한 형태의 서브블록으로 분할될 수 있다. 따라서, 본 발명의 다른 실시예에서는 매크로블록이 어떠한 크기의 서브블록으로 어떠한 형태로 분할되었는지에 대한 정보를 영상 복호화 장치로 전송하여 영상 복호화 장치에서 매크로블록을 영상 부호화 장치에서 분할한 방식과 동일하게 분할하여 예측 복호화할 수 있도록 해야 한다.
본 발명의 실시예에 따르면, 매크로블록을 레이어 별로 다양한 크기의 서브블록으로 분할하고, 분할된 서브 블록 별로 예측 부호화 및 예측 복호화할 수도 있다.
도 11는 본 발명의 실시예에 따라 매크로블록을 레이어별로 분할한 서브블록을 나타낸 예시도이다.
도 11에 도시된 매크로블록의 크기는 N x N (N은 16 이상의 정수)이다. 최소 서브블록 크기는 4 x 4으로 가정한다. 다만, 이러한 가정은 본 발명의 실시예를 설명하기 위한 것일 뿐, 매크로블록의 가로와 세로의 크기는 동일하지 않을 수 있으며 최소 서브블록 크기는 4x4 이외의 다른 크기일 수 있다.
도 11에 도시한 바와 같이, 본 발명의 실시예에 따르면 매크로블록은 레이어별로 다양한 크기의 서브블록들로 분할될 수 있다. 매크로블록은 레이어 0 내지 레이어 log2(N/4)까지 각 레이어별로 4 개의 형태를 가지는 서브블록들로 분할될 수 있다. 이때, 레이어 K(단, 0≤K≤log2(N/4))에서 해당 레이어의 서브블록이 4개의 서브블록으로 분할된 경우에만 K+1 레이어의 서브블록들을 사용할 수 있다.
예를 들어, 매크로블록이 64x64 블록일 때, 매크로블록은 레이어 0 내지 레이어 3까지 4 개의 레이어로 분할될 수 있으며, 각 레이어는 4 개의 서로 다른 블록 크기를 가지는 서브블록을 포함할 수 있다. 따라서, 64x64 블록 크기의 서브블록, 64x32 블록 크기의 서브블록, 32x64 블록 크기의 서브블록, 32x32 블록 크기의 서브블록은 레이어 0에 속하고, 32x32 블록 크기의 서브블록, 32x16 블록 크기의 서브블록, 16x32 블록 크기의 서브블록, 16x16 블록 크기의 서브블록은 레이어 1에 속하며, 16x16 블록 크기의 서브블록, 16x8 블록 크기의 서브블록, 8x16 블록 크기의 서브블록, 8x8 블록 크기의 서브블록은 레이어 2에 속하며, 8x8 블록 크기의 서브블록, 8x4 블록 크기의 서브블록, 4x8 블록 크기의 서브블록, 4x4 블록 크기의 서브블록은 레이어 3에 속한다. 여기서, 64x64 블록 크기의 매크로블록이 레이어 0에서 32x32 블록 크기의 서브블록으로 분할된 경우에만 레이어 1에 속한 서브블록들을 사용할 수 있으며, 레이어 1의 32x32 블록 크기의 서브블록이 다시 16x16 블록 크기의 서브블록으로 분할된 경우에만 레이어 2에 속한 서브블록들을 사용할 수 있으며, 레이어 2의 16x16 블록 크기의 서브블록이 다시 8x8 블록 크기의 서브블록으로 분할된 경우에만 레이어 3에 속한 서브블록들을 사용할 수 있다. 여기서, 레이어 번호 K인 NxN블록이 4개의
Figure PCTKR2010006740-appb-I000001
서브블록으로 분할된 경우, 분할된
Figure PCTKR2010006740-appb-I000002
서브블록은 레이어 K에 속할 수도 있고 레이어 K+1에 속할 수도 있다. 즉, 매크로블록이 64x64 크기인 경우, 32x32크기의 서브블록은 레이어 0에 포함되는 서브블록 타입으로 판단될 수도 있고 레이어 1에 속하는 서브블록 타입으로 판단될 수도 있다.
이 경우, 분할된 서브블록에 레이어 번호를 할당하는 방법은 각 레이어의 사용 가능 여부에 따라 달라지게 된다. 만약 레이어 K+1이 사용 가능한 경우 서브블록에 레이어 번호 K+1을 할당하고 레이어 K+1이 사용 가능하지 않은 경우에는 서브블록의 레이어 번호에 레이어 번호 K를 할당한다.
예를 들면 매크로블록의 크기는 64x64이고 최대 분할 레이어가 4인 경우, 매크로블록이 64x64이 4개의 32x32서브블록으로 분할된 경우, 32x32 서브블록은 레이어 1에 속하게 된다. 매크로블록 내 하나의 32x32 서브블록이 4개의 16x16 서브블록으로 분할되면 각 16x16 서브블록은 레이어 2에 속하고 동일한 방법으로 16x16 서브블록이 4개의 8x8 서브블록으로 분할되면 8x8 서브블록은 레이어3에 속하게 된다. 만약 8x8 서브블록이 4개의 4x4 서브블록으로 분할된 경우 4x4 서브블록은 레이어 4는 사용 가능하지 않으므로 레이어 3에 속하게 된다.
또한, 레이어 K의 NxN블록이 4개의
Figure PCTKR2010006740-appb-I000003
서브블록으로 분할되었을 경우, 분할된
Figure PCTKR2010006740-appb-I000004
서브블록의 레이어 번호로 K를 할당할 수도 있다. 이 경우,
Figure PCTKR2010006740-appb-I000005
서브블록이 더 작은 서브블록으로 분할된 경우 레이어 번호 K+1을 할당하도록 한다.
예를 들면 매크로블록의 크기는 64x64이고 최대 분할 레이어가 4인 경우, 매크로블록이 64x64이 4개의 32x32서브블록으로 분할된 경우, 32x32 서브블록은 레이어 0에 속하게 된다. 매크로블록 내 하나의 32x32 서브블록이 4개의 16x16 서브블록으로 분할되면 각 16x16 서브블록은 레이어 1에 속하고 동일한 방법으로 16x16 서브블록이 4개의 8x8 서브블록으로 분할되면 8x8 서브블록은 레이어 2에 속하게 된다. 그리고 8x8 서브블록이 4개의 4x4 서브블록으로 분할된 경우 4x4 서브블록은 레이어 3에 속하게 된다. 또한, 도 12과 도 13에 도시한 것 같은 다양한 분할 타입을 이용하여 매크로블록을 분할할 수도 있다. 도 12과 도 13는 본 발명의 실시예에 따른 분할 타입을 나타낸 예시도이다.
도 12은 본 발명의 실시예에 따른 분할 타입을 나타낸 예시도이다.
도 12에서는 레이어별로 분할되는 서브블록의 블록 크기를 식별하기 위한 분할 타입 지시 정보(Partition Type Number)를 예시적으로 나타내었다.
도 12에 도시한 바와 같이, 매크로블록의 레이어 K의 서브블록
Figure PCTKR2010006740-appb-I000006
가 분할되지 않은 경우에는 분할 타입 지시 정보가 0으로 부여되고, 서브블록
Figure PCTKR2010006740-appb-I000007
가 두 개의
Figure PCTKR2010006740-appb-I000008
서브블록으로 분할된 경우 분할 타입 지시 정보가 1로 부여되며, 서브블록
Figure PCTKR2010006740-appb-I000009
가 두 개의
Figure PCTKR2010006740-appb-I000010
서브블록으로 분할된 경우 분할 타입 지시 정보가 2로 부여되며, 서브블록
Figure PCTKR2010006740-appb-I000011
가 네 개의
Figure PCTKR2010006740-appb-I000012
서브블록으로 분할된 경우 분할 타입 번호가 3으로 부여될 수 있다. 파티션 번호(Partition Number)는 분할 타입에 따라 분할된 각 서브블록을 식별하기 위해 부여되는 번호를 나타낸다. 예를 들어, 레이어 K의 서브블록
Figure PCTKR2010006740-appb-I000013
가 분할되지 않은 경우, 분할되지 않은 서브블록
Figure PCTKR2010006740-appb-I000014
의 파티션 번호는 0이 부여된다. 또한, 레이어 K의 서브블록
Figure PCTKR2010006740-appb-I000015
가 네 개의
Figure PCTKR2010006740-appb-I000016
서브블록으로 분할된 경우 각
Figure PCTKR2010006740-appb-I000017
서브블록들은 좌상단의 서브블록들로부터 래스터 스캔 방향으로 파티션 번호 0, 1, 2, 3으로 부여될 수 있다. 도 13는 본 발명의 일 실시예에 따른 분할 타입을 나타낸 예시도이다.
도 13에서는 레이어별로 분할되는 서브블록의 블록 크기를 식별하기 위한 분할 타입 지시 정보(Partition Type Number)를 예시적으로 나타내었다.
도 13에 도시한 바와 같이, 매크로블록의 레이어 K의 서브블록
Figure PCTKR2010006740-appb-I000018
가 분할되지 않은 경우에는 분할 타입 지시 정보 분할 타입 지시 정보 가 0으로 부여되고, 서브블록
Figure PCTKR2010006740-appb-I000019
가 네 개의
Figure PCTKR2010006740-appb-I000020
서브블록으로 분할된 경우 분할 타입 번호가 1로 부여될 수 있다. 파티션 번호(Partition Number)는 분할 타입에 따라 분할된 각 서브블록을 식별하기 위해 부여되는 번호를 나타낸다. 예를 들어, 레이어 K의 서브블록
Figure PCTKR2010006740-appb-I000021
가 분할되지 않은 경우, 분할되지 않은 서브블록
Figure PCTKR2010006740-appb-I000022
의 파티션 번호는 0이 부여된다. 또한, 레이어 K의 서브블록
Figure PCTKR2010006740-appb-I000023
가 네 개의
Figure PCTKR2010006740-appb-I000024
서브블록으로 분할된 경우 각
Figure PCTKR2010006740-appb-I000025
서브블록들은 좌상단의 서브블록들로부터 래스터 스캔 방향으로 파티션 번호 0, 1, 2, 3으로 부여될 수 있다.
또한 레이어 별로 다양한 분할 타입들을 결합하여 사용할 수도 있다. 예를 들어 레이어 0과 레이어 1에서는 도 13에 도시된 분할타입을 사용하고 레이어 1의 하위 레이어들은 도 12에 도시된 분할타입을 사용할 수도 있다.
A.1.5. 가변길이 부호화기
부호화기(620)는 매크로블록 분할기(605)로부터 입력받은 분할 정보와 각 서브블록이 인트라 모드인지 인터모드 인지를 나타내는 예측 타입과 예측 타입에 따른 예측 데이터를 부호화한다. 부호화기 (620)은 분할 정보를 먼저 부호화하여 매크로블록 내 서브블록들의 크기와 모양을 복호화기로 전송하고, 각 서브블록들의 예측 타입과 예측 데이터를 부호화한다.
A.1.5.1. 분할정보 부호화 방법
매크로블록 분할기(605)로부터 입력 받은 매크로블록 내 서브블록들의 크기와 모양을 나타내는 분할 정보를 부호화기(620)에서 부호화 한다.
본 발명의 분할정보 부호화 방법에 따르면, 매크로블록이 다양한 크기의 서브블록으로 분할되는 형태를 나타내는 블록의 분할 정보는 매크로블록의 분할 레이어별 분할 타입 지시 정보를 이용하여 나타낼 수 있다. 따라서, 매크로블록을 구성하는 복수 개의 서브블록은 분할 레이어별 분할 타입 지시 정보에 의해 식별될 수 있다. 부호화기(620)는 매크로블록의 레이어별 분할 타입 지시 정보를 이용하여 블록의 분할 정보를 부호화할 수 있는데, 후술하는 바와 같이 다양한 방식으로 블록의 분할 정보를 부호화할 수 있다.
일 예로, 부호화기(620)는 매크로블록의 분할 레이어별 분할 타입 지시 정보를 분할 타입 지시 정보 부호화 순서에 따라 순차적으로 부호화함으로써 현재 블록의 분할 정보를 부호화할 수 있다
이하에서는 도 14 내지 도 16을 통해 매크로블록의 분할 레이어별 분할 타입 지시 정보를 분할 타입 지시 정보 부호화 순서에 따라 순차적으로 부호화함으로써 현재 블록의 분할 정보를 부호화하는 방법에 대해 설명한다.
도 14은 본 발명의 실시예에 따라 다양한 블록 크기의 서브블록으로 분할된 매크로블록을 나타낸 예시도이다.
도 14에서는 매크로블록의 블록 크기가 64x64이고, 최대 분할 레이어가 4이며 도 10에 도시된 서브블록 타입을 이용하여 다양한 블록 크기의 서브블록으로 분할된 매크로블록을 나타내었다.
매크로블록이 도시한 바와 같이 분할되었을 때, 본 발명의 실시예에 따르면 분할 레이어별 분할 타입 지시 정보를 분할 타입 지시 정보 부호화 순서에 따라 순차적으로 부호화하여 매크로블록의 분할 정보를 부호화할 수 있다.
도 14에 도시한 매크로블록이 분할 레이어별로 분할되는 과정을 순차적으로 나타내면 도 15와 같이 나타낼 수 있다. 도 15를 참조하면, 레이어 0(L0)에서, 64x64 블록 크기의 서브블록은 4 개의 32x32 블록 크기의 서브블록으로 분할되며, 레이어 1(L1)에서, L1-P0(레이어 1의 파티션 번호 0)의 서브블록과 L1-P3(레이어 1의 파티션 번호 3)의 서브블록은 다시 4 개의 16x16 블록 크기의 서브블록으로 분할되고 L1-P1(레이어 1의 파티션 번호 1)의 서브블록과 L1-P2(레이어 1의 파티션 번호 2)의 서브블록은 각각 16x32 블록 크기의 서브블록과 32x16 블록 크기의 서브블록으로 분할된다. L1-P1과 L1-P2의 서브블록은 각각 2 개의 서브블록으로 분할된 후 더 이상 분할되지 않으므로 레이어별 파티션 번호를 나타내지 않았다. 레이어 2(L2)에서, L2-P0(레이어 2의 파티션 번호 0)의 서브블록은 다시 4 개의 8x8 블록 크기의 서브블록으로 분할되고 L2-P3(레이어 2의 파티션 번호 3)은 2 개의 16x2 블록 크기의 서브블록으로 분할된다. 다시, 레이어 3(L3)에서, L3-P0(레이어 3의 파티션 번호 0)의 서브블록과 L3-P1(레이어 3의 파티션 번호 1)의 서브블록은 각각 4 개의 4x4 블록 크기의 서브블록으로 분할된다.분할 타입 지시 정보를 부호화하는 순서는 다음과 같다.
먼저 매크로블록의 분할 타입을 나타내는 분할 타입 지시 정보를 부호화한 후, 매크로블록이 4개의 서브블록으로 분할되었을 경우, 분할된 각 서브블록의 분할 타입 지시 정보를 계속해서 부호화한다. 예를 들어 NxN블록이 4개의 서브블록으로 분할 되었을 경우 NxN블록내 첫번째 (N/2)x(N/2) 서브블록의 분할 타입 지시 정보를 부호화하고 첫번째 (N/2)x(N/2) 서브블록 다시 4개의 서브블록으로 분할된 경우 분할된 (N/4)x(N/4)블록의 분할 타입 지시정보를 부호화한다. 분할된 (N/4)x(N/4)블록이 최소 서브블록의 크기이거나 4개의 더 작은 서브블록으로 분할되지 않은 경우 래스터 스캔 순서로 다음 (N/4)x(N/4) 블록의 분할 타입 지시 정보를 부호화한다. 만약 (N/4)x(N/4)블록이 최소 서브블록의 최소 서브블록의 크기가 아니고 다시 4개의 (N/8)x(N/8) 크기의 서브블록으로 분할된 경우 해당 블록 내 첫번째 (N/8)x(N/8) 서브블록부터 분할 타입 지시 정보를 부호화한다. 매크로블록내 모든 서브블록들의 분할 타입 지시 정보를 부호화할때까지 분할 타입 지시 정보를 부호화를 수행한다.도 16은 매크로블록의 레이어별 분할 타입 지시 정보를 순차적으로 부호화하는 과정을 설명하기 위한 예시도이다.
도 14에 도시한 매크로블록의 각 서브블록의 분할 타입에 대한 정보를 부호화하면 도 16과 같이 부호화할 수 있다. 도 14에서, '□' 안에 기재된 숫자는 각 서브블록의 분할 타입 지시 정보를 부호화하는 순서를 나타낸다. 매크로블록의 레이어별 분할 타입 지시 정보를 분할 타입 지시 정보 부호화 순서에 따라 순차적으로 부호화하면, 도 14에 도시한 순서에 따라 레이어별 분할 타입 지시 정보를 순차적으로 부호화한다.
먼저, 레이어 0의 64x64 블록 크기의 서브블록(L0-P0)은 4 개의 32x32 블록 크기의 서브블록들로 분할되었으므로, 분할 타입 지시 정보 3을 부호화한다. 64x64 블록 크기의 서브블록 내 4 개의 32x32 블록 크기의 서브블록 중 첫 번째 32x32 블록 크기의 서브블록(L1-P0)도 4 개의 16x16 블록 크기의 서브블록으로 분할되었으므로 분할 타입 지시 정보 3을 부호화한다. 레이어 1의 첫 번째 32x32 블록 크기의 서브블록(L1-P0) 내 4 개의 16x16 블록 크기의 서브블록 중 첫 번째 16x16 블록 크기의 서브블록(L2-P0)도 4 개의 8x8 블록 크기의 서브블록으로 분할되었으므로 분할 타입 3을 부호화하고 해당 16x16 블록 크기의 서브블록(L2-P0) 내 4 개의 8x8블록(L3-P0, L3-P1, L3-P2, L3-P3)은 더 이상 작은 서브블록으로 분할되지 않으므로 분할 타입 지시 정보 {3, 3, 0, 0}을 각각 부호화한다. 레이어 3의 서브블록들은 더 작은 서브블록으로 분할될 수 없으므로 레이어 3에 속하는 서브블록들의 분할 타입 지시 정보 는 부호화하지 않는다.
레이어 3 내 서브블록들의 분할 타입 지시 정보를 모두 부호화했으므로 레이어 2의 두번째 16x16 블록 크기의 서브블록(L2-P1)과 세 번째 16x16 블록 크기의 서브블록(L2-P2)의 분할 타입 지시 정보를 부호화하는데, 모두 더 이상 작은 블록으로 분할되지 않았으므로 분할 타입 지시 정보 0을 부호화한다. 네 번째 16x16 블록 크기의 서브블록(L2-P3)은 16x8 블록 크기의 서브블록으로 분할되었지만 분할 타입 지시 정보가 3이 아니므로 분할 타입 지시 정보 1만을 부호화한다. 레이어 2 내의 4 개 서브블록들의 분할 타입 지시 정보를 모두 부호화했으므로 레이어 1의 두 번째 32x32 블록 크기의 서브블록(L1-P1)의 분할 타입 지시 정보를 부호화하는데, 레이어 1의 두 번째 32x32 블록 크기의 서브블록(L1-P1)은 16x32 블록 크기의 서브블록으로 분할되었고 분할된 각 서브블록은 더 이상 작은 서브블록으로 분할되지 않았으므로 분할 타입 지시 정보 2를 부호화한다. 이와 같은 방식으로 레이어 1의 세 번째 32x32 블록 크기의 서브블록(L1-P2)와 레이어 1의 네 번째 32x32 블록 크기의 서브블록(L1-P3) 및 그 하위의 4 개의 16x16 블록 크기의 서브블록(L2-P0, L2-P1, L2-P2, L2-P3)의 분할 타입 지시 정보를 차례로 부호화하면, {1, 3, 0, 0, 0, 0}을 부호화한다.
이와 같은 부호화 방식에 따라 도 14에 도시한 매크로블록의 분할 타입에 대한 정보를 부호화하면, 도 16에 도시한 바와 같이 분할 타입 지시 정보 {3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 0}가 부호화 된다.
또한, 분할 타입 지시 정보 부호화는 다음과 같은 순서도 가능하다.
레이어 0의 분할 타입 지시 정보 {3}을 부호화하고 레이어 1의 4 개의 서브블록(L1-P0, L1-P1, L1-P2, L1-P3)의 분할 타입 지시 정보 {3, 2, 1, 3}을 부호화하고 레이어 2의 8 개의 서브블록(L1-P0에 속하는 4 개의 서브블록과 L1-P3에 속하는 4 개의 서브블록)의 분할 타입 지시 정보 {3, 0, 0, 1, 0, 0, 0, 0}을 부호화하고 레이어 3의 4 개의 서브블록(L1-P0 내 L2-P0에 속하는 4 개의 서브블록)의 분할 타입 지시 정보 {3, 3, 0, 0}을 부호화할 수 있다. 이 경우, 분할 타입 지시 정보 {3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0}가 부호화된다.
이때 분할 타입 지시 정보를 부호화하는 방법은 이진 산술 부호화(Binary Arithmetic Coding) 또는 허프만 부호화(Huffman Coding) 등과 같은 무손실 압축 부호화를 이용하여 이진 비트 스트링(Bit String)으로 부호화될 수 있다.
또한, 이진 산술 부호화를 이용하는 경우, 각 분할 타입 지시 정보는 현재 부호화할 분할 타입 지시 정보의 레이어 번호에 따라 다른 이진값(Binary Value)을 이용할 수 있다.
또한, 실제 분할 타입 지시 정보 값을 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
또한 도 16에 도시된 본 발명의 실시예에 따른 분할 타입을 사용하여 매크로블록을 분할하는 경우, 분할 타입 지시 정보는 현재 블록을 4개의 서브블록으로 분할하는지 하지 않는지의 여부를 나타내는 1 비트 길이의 플래그일 수도 있다.
A.1.5.2. 예측정보 부호화 방법
매크로블록의 분할 정보를 부호화 한 후, 부호화기는 각 서브블록의 예측 타입과 예측 타입에 따른 예측 데이터를 부호화한다.
각 픽쳐 종류에 따라 예측 타입과 예측 데이터를 나타내는 신택스와 부호화/복호화 방법은 다음과 같을 수 있다.
먼저 인트라 픽쳐의 경우, 인트라 픽쳐 내 모든 매크로블록은 인트라 예측만을 이용하여 부호화하므로 예측 타입 정보는 부호화 하지 않고 각 서브블록의 인트라 예측 모드를 나타내는 예측 데이터 만을 부호화 한다.
인터 픽쳐인 경우 인트라 예측 또는 인터 예측을 선택하여 부호화하므로 각 서브블록 별로 인트라 예측이 수행되었는지 인터 예측이 수행되었는지를 나타내는 예측 타입 정보를 부호화한 후, 인트라 블록인 경우 인트라 예측 모드 정보와 인터 블록인 경우 움직임 정보를 부호화한다.
이하에서는, 인트라 예측기(616) 또는 움직임 추정기(612)로부터 입력 받은 각 서브블록들의 예측 데이터와 예측 타입을 부호화하는 방법을 설명한다.
A.1.5.2.1. 예측타입 부호화 방법
예측 타입 정보를 부호화하는 경우, 픽쳐 종류에 따른 사용 가능한 예측 타입이 달라질 수 있다.
P 픽쳐인 경우, 각 서브블록이 사용할 수 있는 사용 가능한 예측 타입의 종류는 SKIP모드, 인트라 예측, 또는 움직임 정보를 부호화하는 인터 예측일 수 있다. 또한, B 픽쳐인 경우, 각 서브블록이 사용할 수 있는 사용 가능한 예측 타입의 종류는 SKIP모드, 인트라 예측, 움직임 정보를 부호화하는 인터 예측 또는 Direct 모드 일 수 있다.
또한 서브블록의 크기와 모양에 따라 사용 가능한 예측 타입의 종류가 달라질 수도 있다. 표 1 내지 표 4는 블록의 크기와 모양에 따른 사용 가능한 예측 타입과 종류를 나타낸 일례이다. 단, 표 1 내지 표 4의 블록에 따른 예측 타입의 종류는 일례일 뿐 다를 수 있다. 왜냐하면, 인트라 모드와 인터 모드를 모두 사용 가능한 경우 배경과 같이 텍스쳐가 없는 영역은 인터 모드를 사용하는 것이 좋으며, 이 경우 블록의 크기는 대체적으로 크기 때문이다. 반면, 복잡한 영역은 인트라 모드와 인터 모드 중 하나를 선택하도록 하기 위함인데, 이러한 복잡한 영역은 주로 서브블록의 크기가 작기 때문이다. 이는 16x16 크기 이상의 매크로블록의 경우 매크로블록 내 다양한 영역이 존재할 수 있는데, 매크로블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측 부호화하는 경우 부호화 효율이 저하될 수 있기 때문이다.
표 1
Figure PCTKR2010006740-appb-T000001
표 2
Figure PCTKR2010006740-appb-T000002
표 3
Figure PCTKR2010006740-appb-T000003
표 4
Figure PCTKR2010006740-appb-T000004
표 5
Figure PCTKR2010006740-appb-T000005
서브블록의 크기와 모양에 따른 사용 가능한 예측 타입의 종류가 1가지인 경우, 예측 타입 정보는 부호화하지 않으며, 2가지 이상인 경우에만 예측 타입 정보를 부호화한다.
사용 가능한 예측 타입의 종류가 인트라 예측 또는 인터 예측의 두가지 인 경우, 1비트길이의 syntax를 이용하여 인트라 예측인지 인터 예측인지를 나타낼 수 있다.
만약 사용 가능한 예측 타입의 종류가 3가지인 경우 1비트 또는 2비트 길이의 syntax를 이용하여 예측 타입을 나타낼 수 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, 인터 예측, 인트라 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1 비트를 더 부호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 나타낼 수 있다. 또는 사용 가능한 예측 타입 종류가 Direct, 인터 예측, 인트라 예측인 경우에도 Direct 모드인지를 나타내는 1비트를 부호화한 후, Direct 모드가 아닌 경우, 인트라 예측인지 인터 예측인지를 나타내는 1비트를 더 부호화 할 수도 있다.
사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 부호화하여 Direct 예측된 서브블록인지 인터 예측된 서브블록인지를 나타낼 수 있다.
만약 사용 가능한 예측 타입의 종류가 4가지인 경우, 1비트 내지 3비트 길이의 syntax를 이용하여 예측 타입을 부호화할 수도 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측, 인트라 예측인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 부호화하여 Direct 모드인지 아닌지를 나타낸다. 만약 SKIP 모드도 아니고 Direct모드도 아닌 경우, 1비트를 부호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 나타낼 수 있다.
또는 2비트의 고정 길이의 Syntax를 이용하여 예측 타입을 부호화할 수도 있다.
또는 약속된 Table을 이용하여 예측 타입을 부호화할 수도 있다.
이때, 예측 타입을 나타내는 Syntax를 가변길이 부호화하는 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
또한, 현재 블록의 예측 타입을 부호화할 때 주변 블록의 예측 타입 정보를 이용하여 산술 부호화할 수도 있다.
여기서는 예측 타입을 나타내는 syntax를 한가지로 기술하였으나 복수개의 syntax를 이용하여 예측 타입을 부호화할 수도 있다. 예를 들어 SKIP모드인지 아닌지를 나타내기 위한 SKIP_flag와 direct 모드인지 아닌지를 나타내는 Direct_flag, 인트라 블록인지 인터 블록인지를 나타내기 위한 pred_type의 3가지 syntax가 사용될 수도 있다. 또한 각각의 syntax를 각각 다른 방법을 이용하여 부호화할 수도 있다.
A.1.5.2.2. 예측모드 정보 부호화 방법
예측 타입이 SKIP모드인 서브블록에 대해서는 현재 서브블록에 대해서는 더 이상 부호화할 데이터가 없으므로 다음 서브블록의 부호화 데이터를 부호화한다.
픽쳐의 종류가 B픽쳐이고 예측 타입이 DIRECT 모드인 서브블록인 경우, L0 예측, L1 예측, 양방향 예측인지를 나타내는 예측 중 예측 방향을 나타내는 정보인 Pred_dir를 부호화한다.
픽쳐의 종류가 P 픽쳐이고 예측 타입이 움직임 정보를 부호화하는 서브블록이 경우, 차이 움직임 벡터(MVD)와 참조픽쳐를 나타내는 참조픽쳐 인덱스(ref_idx)를 부호화한다. 픽쳐의 종류가 B픽쳐인 경우, Pred_dir를 부호화하고 Pred_dir에 따른 한 개 또는 두개의 움직임 벡터 정보와 참조픽쳐 인덱스를 부호한다. 단, 참조할 수 있는 참조 영상이 한장인 경우, 참조픽쳐 인덱스는 부호화하지 않는다.
인트라 픽쳐 내 서브블록 또는 인터 픽쳐 내 예측 타입 정보에 의해 식별되는 예측 타입이 인트라 예측된 서브블록에 대해서는 인트라 예측 모드 정보를 부호화한다. 예를 들어 서브블록의 크기가 4x4인 서브블록인 경우, 9가지 인트라 예측 모드들 중 선택된 예측 모드를 나타내는 예측 모드를 부호화한다.
A.2. 복호화 장치
도 7은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 복호화 장치는 복호화기(710), 예측기(720), 복원기(730), 필터(740) 및 프레임 메모리(750)를 포함하여 구성될 수 있다.
복호화기(710)는 입력되는 비트스트림으로부터 매크로블록 복호화에 필요한 3가지 타입의 정보를 추출한다.
복호화기(710)는 첫번째로, 현재 복호화하고자 하는 매크로블록 내 각 서브블록들의 크기와 모양을 나타내는 분할정보를 비트스트림으로부터 추출하고 엔트로피 복호화한다. 그 후 복호화기(710)는 복원된 분할 정보를 이용하여 매크로블록이 어떠한 형태의 서브블록으로 분할되었는지를 식별할 수 있다. 두번째로 복호화기(710)는 각 서브블록들이 인트라 예측 되었는지 인터 예측 되었는지를 나타내는 예측 타입 정보와 인트라 또는 인터 예측에 필요한 예측 모드 정보를 엔트로피 복호화하여 추출한다. 이때 복호화 할 예측 데이터의 종류와 예측 데이터 복호화 방법은 각 블록이 인트라 블록인지 인터 블록인지에 따라 달라지게 되는데 복원할 블록이 인터 블록인 경우에는 비트스트림으로부터 각 서브블록들의 움직임 보상에 필요한 참조픽쳐 정보와 움직임 벡터 등과 같은 움직임에 대한 정보를 추출하여 복호화하고, 인트라 블록인 경우에는 비트스트림으로부터 휘도 성분과 색차성분의 인트라 예측 모드에 대한 정보를 추출하여 복호화한다.
마지막으로 복호화기(710)는 잔여신호 복호화에 필요한 정보들을 복호화한다. 먼저 각 서브블록에 0이 아닌 변환계수가 있는지를 나타내는 정보, 예컨대 CBP,를 복호화하고 0이 아닌 변환계수가 있는 블록들에 대해서는 변환의 종류를 나타내는 변환정보와 양자화된 변환계수를 복호화한다.
예측기(720)는 현재 복호화하고자 하는 현재 블록을 예측하는데, 움직임 보상기(722)와 인트라 예측기(724)를 포함하여 구성될 수 있다. 움직임 보상기(722)는 현재 블록이 인터 블록인 경우, 복호화기에 의해 복호화되어 복원된 움직임 벡터를 이용하여 프레임 메모리에 저장된 참조 픽처에서 현재 블록의 크기만큼의 화소를 가져와서 예측 블록을 생성한다. 인트라 예측기(724)는 현재 블록이 인트라 블록인 경우, 복호화기(710)에 의해 복호화되어 복원된 인트라 예측 모드에 따라 현재 블록을 예측하여 예측 블록을 생성한다.
복원기(730)는 복호화기(710)에 의해 복호화된 양자화된 변환계수를 역양자화하고 복호화기에서 추출하고 복원한 변환종류를 이용하여 역양자화된 변환계수를 역 변환하여 잔여 신호를 생성한 후, 생성된 잔여신호를 예측기에 의해 생성된 예측 블록을 더하여 복원 블록을 생성한다. 생성된 복원 블록은 필터(740)에서 필터링되어 프레임 메모리(750)에 저장되고, 다음 매크로블록이나 다음 픽처를 복원하는 데 이용된다.
이하에서는, 본 발명의 부호화 방법에 따른 복호화기의 구성 요소들 중 기존 복호화기와 다르게 동작하는 복호화 장치의 구성 요소들의 동작방법에 대해서 설명한다.
A.2.1. (가변길이) 복호화기
복호화기(710)에서 비트스트림으로부터 분할 정보를 추출하고 복호화한 후, 복원된 분할정보를 이용하여 매크로블록을 하나 이상의 서브블록으로 분할한다. 이후, 매크로블록 내 서브블록들의 크기와 모양 정보를 이용하여 각 서브블록들의 예측 타입과 예측 모드 정보를 비트스트림으로부터 추출하고 복호화한다.
A.2.1.1. 분할정보 복호화 방법
이하에서는, 매크로블록 내 예측 또는 변환을 위해 사용된 서브블록들의 크기와 모양을 나타내는 정보인 분할 정보를 복호화하는 본 발명의 실시예에 따른 방법을 설명한다.
부호화기와 약속된 레이어별 사용 가능한 서브블록 타입을 이용하여 분할 타입 지시 정보를 영상 부호화 장치와 약속된 순서로 복호화를 수행한다. 예를 들어 레이어별 사용 가능한 서브블록 타입은 도 15과 도 16에 도시된 서브블록 타입일 수 있으며 분할 타입 지시 정보를 복호화하는 순서는 도 14 또는 도 16에 도시된 순서에 따라 순차적으로 복호화할 수 있다.
분할 정보 부호화방법에 설명을 위해 사용한 예시와 동일한 조건에서의 복호화 방법을 설명하도록 한다. 도 15에 도시한 서브블록 타입을 이용하여 도 14에 도시된 순서를 이용하여 분할 정보를 복호화한다.
복호화기(710)는 비트스트림으로부터 첫번째 분할 타입 지시 정보를 추출하고 복호화하여 매크로블록 레이어 0의 분할 타입 지시 정보를 복원한다. 복원한 분할 타입 지시 정보값이 0인 경우 매크로블록은 서브블록으로 분할되지 않았음을 의미하므로 현재 매크로블록의 분할 타입 지시 정보 복호화를 끝낸다. 이후 매크로블록 NxN 크기로 예측 또는 역변환이 수행된다.
복원한 레이어 0의 분할 타입 지시 정보가 1인 경우 매크로블록을 두 개의Nx(N/2) 서브블록으로 분할하고 현재 매크로블록의 분할 타입 지시 정보 복호화를 마친다. 이후 매크로블록은 Nx(N/2) 단위로 예측 또는 역변환이 수행된다.
복원한 레이어 0의 분할 타입 지시 정보값이 2인 경우 매크로블록을 두 개의 (N/2)xN 서브블록으로 분할하고 현재 매크로블록의 분할 타입 지시 정보 복호화를 마친다. 이후 매크로블록은 (N/2)xN 단위로 예측 또는 역변환이 수행된다.
복원한 레이어 0의 분할 타입 지시 정보값이 3인 경우 매크로블록을 네 개의
Figure PCTKR2010006740-appb-I000026
서브블록으로 첫번째 서브블록 (레이어 1의 파티션 번호 0인 서브블록)의 분할 타입 지시 정보를 복호화한다. 여기서
Figure PCTKR2010006740-appb-I000027
서브블록들의 레이어 번호는 상위 레이어 번호에서 1이 증가한 값으로 1이 된다.
비트스트림으로부터 추출하여 복호화한 레이어 1의 파티션 번호 0인 서브블록의 분할 타입 지시 정보가 3이 아닌 경우 매크로블록내 두번째
Figure PCTKR2010006740-appb-I000028
서브블록(레이어 1의 파티션 번호 1인 블록)의 분할 타입 지시 정보를 복호화한다.
비트스트림으로부터 추출하여 복호화한 레이어 1의 파티션 번호 0인 서브블록의 분할 타입 지시 정보가 3인 경우, 현재 서브블록은 4개의 서브블록으로 나뉘어지며 이때의 레이어 번호는 2가 된다. 이후 레어어 2의 파티션 번호 0에 해당하는 서브블록의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
만약 파티션 번호가 Y인 현재 서브블록의 레이어 번호 K가 레이어 번호가 가질 수 있는 최대값인 경우, 복호화 한 현재 서브블록(즉, 레이어 K-파티션 번호 Y)의 분할 타입 지시 정보가 3이면 현재 서브블록을 4개의 서브블록으로 분할한 후 래스터 스캔 순서로 다음 서브블록(레이어 K-파티션 번호 Y+1 인 서브블록)의 분할 타입 지시 정보를 복호화한다.
만약 현재 서브블록의 파티션 번호가 현재 레이어에 속하는 파티션 번호의 최대값인 경우, 상위 레이어의 아직 복호화하지 않은 서브블록들의 분할 타입 지시 정보를 복호화한다.
이하에서는 매크로블록의 크기가 64x64, 최대 분할 레이어가 4인 경우, 도 14의 실시예에 따른 복호화 방법을 설명한다. 도 14의 실시예에서 부호화기에서 분할 타입 지시 정보로 부호화한 값은 {3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 0}이다.
먼저 레이어 0의 분할 타입 지시 정보를 복호화한다.
복호화한 분할 타입 지시 정보가 3이므로 64x64 매크로블록을 4개의 32x32블록(L1-P0, L1-P1, L1-P2, L1-P3)으로 분할한다.
각 32x32 서브블록은 더 작은 서브블록으로 분할될 수 있으므로 64x64 매크로블록 내 첫번째 32x32 서브블록 (L1-P0)의 분할 타입 지시 정보를 복호화한다.
두번째로 복호화한 분할 타입 지시 정보가 3이므로 L1-P0 서브블록을 4개의 16x16서브블록(L2-P0, L2-P1, L2-P2, L2-P3)으로 분할하고 L2-P0의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
세번째로 복호화한 분할 지시 정보가 3이므로 16x16크기의 L2-P0 서브블록을 4개의 8x8 서브블록 (L3-P0, L3-P1, L3-P2, L3-P3)으로 분할하고 L3-P0의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
네번째로 복호화한 분할 지시 정보가 3이므로 8x8크기의 L3-P0 서브블록을 4개의 4x4 서브블록으로 분할한다. 여기서 4x4 서브블록의 최대 분할 레이어가 4이므로 더 이상 작은 서브블록으로 분할될 수 없으므로 L3-P1의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
다섯번째로 복호화한 분할 지시 정보가 3이므로 8x8크기의 L3-P1 서브블록을 4개의 4x4 서브블록으로 분할하고 L3-P2의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
여섯번째로 복호화한 분할 지시 정보가 0이므로 8x8크기의 L3-P2 서브블록은 분할하지 않으며 다음 서브블록인 L3-P3의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
일곱번째로 복호화한 분할 지시 정보가 0이므로 8x8크기의 L3-P3 서브블록도 분할하지 않는다. 여기서 현재 서브블록의 파티션 번호가 현재 레이어어 속하는 파티션 번호의 최대값이므로 상위 레이어 L2-P1의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
여덟번째로 복호화한 분할 지시 정보가 0이므로 L2-P1의 블록크기는 16x16이 된다.
동일한 방식으로 L2-P2와 L2-P3의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화하여 각각의 서브블록 타입을 결정한다.
여덟번째로 복호화한 분할 지시 정보도 0이므로 L2-P2의 블록크기는 16x16이고 열번째로 복호화한 분할 지시 정보는 1이므로 L2-P3는 두개의 16x8 서브블록으로 분할한다.
레이어 2에 속하는 서브블록들의 분할 지시 정보를 모두 복호화했으므로 상위 레이어인 레이어 1의 두번째 32x32 크기의 서브블록 L1-P1의 분할 타입 지시 정보를 복호화한다.
열한번째로 복호화한 분할 지시 정보는 2이므로 L1-P1에 해당하는 32x32블록을 두개의 16x32 서브블록으로 분할하고 L1-P2의 분할 타입 지시 정보를 복호화한다.
열두번째로 복호화한 분할 지시 정보는 1이므로 L1-P2에 해당하는 32x32블록을 두개의 32x16 서브블록으로 분할하고 L1-P3의 분할 타입 지시 정보를 복호화한다.
열세번째로 복호화한 분할 지시 정보는 3이므로 L1-P3에 해당하는 32x32블록을 네개의 16x16서브블록(L2-P0, L2-P1, L2-P2, L2-P3)으로 분할하고 동일한 방법으로 각 서브블록들의 분할 타입 지시 정보를 복호화한다.
열네번째로 복호화한 분할 지시 정보는 0이므로 L2-P0의 서브블록 타입은 16x16이며 더 이상 분할되지 않았으므로 다음 서브블록인 L2-P1이 분할 타입 지시 정보를 복호화한다.
열다섯번째로 복호화한 분할 지시 정보는 0이므로 L2-P1의 서브블록 타입은 16x16이며 더 이상 분할되지 않았으므로 다음 서브블록인 L2-P2이 분할 타입 지시 정보를 복호화한다.
열여섯번째로 복호화한 분할 지시 정보는 0이므로 L2-P2의 서브블록 타입은 16x16이며 더 이상 분할되지 않았으므로 다음 서브블록인 L2-P3이 분할 타입 지시 정보를 복호화한다.
열일곱번째로 복호화한 분할 지시 정보는 0이므로 L2-P3의 서브블록 타입은 16x16이며 매크로블록 내 모드 서브블록들의 타입이 결정되었으므로 현재 매크로블록 복호화를 위한 분할 지시 정보 복호화를 마친다.
이하에서는 분할 타입 지시 정보 부호화 순서가 상위 레이어의 분할 타입 지시 정보를 모두 부호화하고 하위 레이어의 분할 지시 정보를 부호화할 때 분할 타입 지시 정보를 복호화하는 방법을 도 14의 실시예를 사용하여 설명하면 다음과 같다.
도 14의 실시예에서 부호화기에서 분할 타입 지시 정보로 부호화한 값은 {3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0}이다.
먼저 레이어 0의 분할 타입 지시 정보를 복호화한다.
레이어 0의 분할 타입 지시 정보가 3이므로 64x64 매크로블록을 4개의 32x32블록(L1-P0, L1-P1, L1-P2, L1-P3)으로 분할한다.
레이어 1에 속하는 서브블록은 4개이므로 4개의 분할 타입 지시 정보를 복호화한다. 비트스트림으로부터 복원한 서브블록(L1-P0, L1-P1, L1-P2, L1-P3)의 분할 타입 지시 정보 {3, 2, 1, 3}이므로 L1-P0와 L1-P3은 4개의 16x16으로 분할하고, L1-P1은 두개의 16x32블록, L1-P2은 두개의 32x16 블록으로 분할한다.
L1-P0와 L1-P3에 속하는 레이어2의 8개의 8x8 서브블록들의 분할 타입 지시 정보를 비트스트림으로부터 추출하고 복호화한다.
복원한 L1-P0에 속하는 4개의 서브블록 (L2-P0, L2-P1, L2-P2, L2-P3)의 분할 타입 지시 정보가 {3, 0, 0, 1}이고 L1-P3에 속하는 4개의 서브블록 (L2-P0, L2-P1, L2-P2, L2-P3)의 분할 타입 지시 정보가 {0, 0, 0, 0}이므로 L1-P0에 속하는 L2-P0은 4개의 4x4 서브블록으로 분할하고, L2-P3은 두개의 8x4 서브블록으로 분할한다.
L1-P0에 속하는 L2-P1, L2-P2과 L1-P3에 속하는 4개의 서브블록들은 분할 타입 지시 정보가 모두 0이므로 분할하지 않는다.
L1-P0에 속하는 서브블록 L2-P0은 4개의 서브블록으로 분할 되었지만 더 이상 작은 서브블록으로 분할될 수 없으므로 현재 매크로블록 복호화를 위한 분할 타입 지시 정보 복호화를 마친다.
이때 분할 타입 지시 정보를 엔트로피 복호화하는 방법은 이진 산술 부호화(Binary Arithmetic Coding) 또는 허프만 부호화(Huffman Coding) 등과 같은 무손실 압축 부호화/복호화 방법들 중 부호화기와 약속된 방법을 이용해서 엔트로피 복호화한다.
또한, 실제 분할 타입 지시 정보 값을 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 복호화할 수 있다.
또한, 부호화기에서 분할 타입 지시 정보를 부호화하는 방법으로 이진 산술 부호화를 이용하고 분할 타입 지시 정보의 레이어 번호에 따라 다른 이진 테이블을 이용한 경우, 복호화기도 부호화기와 약속된 레이어 번호에 따른 이진 테이블을 사용하여 엔트로피 복호화를 수행한다.
또한 도 16에 도시된 본 발명의 다른 실시예에 따른 분할 타입을 사용하도록 부호화기와 약속된 경우, 분할 타입 지시 정보 복호화를 위해 1비트를 엔트로피 복호화하여 현재 서브블록이 4개의 서브블록으로 분할되었는지의 여부를 판단할 수도 있다.
A.2.1.2. 예측정보 복호화 방법
복호화기에서는 매크로블록 내 각 서브블록의 예측 타입 정보와 예측 타입에 따른 예측 데이터를 복호화한다.
이때 예측 타입 정보 복호화 방법은 는 픽쳐의 종류에 따라 비트스트림으로부터 복호화하지 않을 수도 있다. 예를 들어 인트라 픽쳐인 경우, 예측 타입 정보를 비트스트림으로부터 추출하여 복호화하지 않고, 인트라 픽쳐 내 모든 매크로블록과 매크로블록 내 서브블록들은 모두 인트라 예측을 수행하도록 한다.
인터 픽쳐인 경우, 비트스트림으로부터 예측 타입 정보를 추출하여 복호화한 후, 각 블록들이 인트라 예측되었는지 인터 예측이 되었는지는 나타내는 예측 타입을 복원한다.
이후, 픽쳐의 종류 또는 비트스트림을 통해 전송받은 예측 타입 정보에 의해 결정되는 각 블록의 예측 타입에 따른 인트라 모드 정보 또는 움직임 정보를 비트스트림으로부터 추출하고 복호화한다.
A.2.1.2.1. 예측 타입 정보 복호화 방법
인터 픽쳐와 같이 비트스트림으로부터 전송받은 예측 타입 정보에 의해 서브블록들의 예측 타입이 결정되는 경우, 예측 타입 정보 복호화 과정을 수행한다. 이하에서는 예측 타입 정보 복호화 과정에 대하여 설명한다.
픽쳐의 종류와 서브블록의 크기와 모양에 따라 사용 가능한 예측 타입의 종류는 다르며, 사용가능한 예측 타입의 종류에 따라 예측 타입 정보 복호화 방법은 달라지게 된다.
예를 들어, P 픽쳐인 경우 각 서브블록이 사용할 수 있는 사용 가능한 예측 타입의 종류는 SKIP모드, 인트라 예측, 또는 움직임 정보를 부호화하는 인터 예측일 수 있다.
B 픽쳐인 경우, 각 서브블록이 사용할 수 있는 사용 가능한 예측 타입의 종류는 SKIP모드, 인트라 예측, 움직임 정보를 부호화하는 인터 예측 또는 Direct 모드 일 수 있다.
또한 서브블록의 크기와 모양에 따라 사용 가능한 예측 타입의 종류는 전술한 표 1 내지 표 4과 같이 달라질 수 있다.
픽쳐의 종류, 서브블록의 크기와 모양에 따른 사용 가능한 예측 타입의 종류가 1가지고 결정된 경우, 예측 타입 정보는 복호화하지 않으며, 2가지 이상인 서브블록들에 대해서만 예측 타입 정보 추출과 복호화 과정을 수행한다.
복호화 대상 서브블록의 사용 가능한 예측 타입의 종류가 2가지인 경우, 비트스트림으로부터 1 비트를 추출하고 엔트로피 복호화하여 인트라 예측과 인터 예측 중 선택된 예측 타입을 설정한다.
사용 가능한 예측 타입의 종류가 3가지인 경우, 비트스트림으로부터 1비트 또는 2비트를 추출하고 복호화한다. 예를 들어 사용가능한 예측 타입의 종류가 SKIP, 인터 예측, 인트라 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1 비트를 더 비트스트림으로부터 추출하고 복호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 결정한다. 또는 사용 가능한 예측 타입 종류가 Direct, 인터 예측, 인트라 예측인 경우에도 Direct 모드인지를 나타내는 1비트를 비트스트림으로부터 추출하고 복호화한 후, Direct 모드가 아닌 경우, 인트라 예측인지 인터 예측인지를 나타내는 1비트를 더 추출하고 복호화 할 수도 있다.
사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 복호화하여 Direct 예측된 서브블록인지 인터 예측된 서브블록인지를 결정할 수도 있다.
만약 사용 가능한 예측 타입의 종류가 4가지인 경우, 1비트 내지 3비트를 비트스트림으로부터 추출하고 복호화하여 예측 타입을 복호화할 수도 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측, 인트라 예측인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 복호화하여 Direct 모드인지 아닌지를 나타낸다. 만약 SKIP 모드도 아니고 Direct모드도 아닌 경우, 1비트를 복호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 결정할 수도 있다.
또는 비트스트림으로부터 2비트를 추출하고 복호화하여 예측 타입을 복호화할 수도 있다.
또는 부호화기와 약속된 Table을 이용하여 예측 타입을 복호화할 수도 있다.
이때, 예측 타입을 나타내는 Syntax를 가변길이 복호화하는 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 방법을 이용하여 복호화할 수 있다.
또한, 현재 블록의 예측 타입을 복호화할 때 주변 블록의 예측 타입 정보를 이용하여 산술 복호화할 수도 있다.
여기서는 예측 타입을 나타내는 syntax를 한가지로 기술하였으나 복수개의 syntax를 이용하여 예측 타입을 복호화할 수도 있다. 예를 들어 SKIP모드인지 아닌지를 나타내기 위한 SKIP_flag와 direct 모드인지 아닌지를 나타내는 Direct_flag, 인트라 블록인지 인터 블록인지를 나타내기 위한 pred_type의 3가지 syntax가 사용될 수도 있다. 또한 각각의 syntax를 각각 다른 방법을 이용하여 복호화할 수도 있다.
A.2.1.2.2. 예측 모드 정보 복호화 방법
예측 타입이 SKIP모드인 서브블록에 대해서는 현재 서브블록에 대해서는 더 이상 복호화할 데이터가 없으므로 다음 서브블록의 부호화 데이터를 복호화한다.
픽쳐의 종류가 B 픽쳐이고 예측 타입이 DIRECT 모드인 서브블록인 경우, L0 예측, L1 예측, 양방향 예측인지를 나타내는 예측 중 예측 방향을 나타내는 정보인 Pred_dir를 복호화한다.
픽쳐의 종류가 P 픽쳐이고 예측 타입이 움직임 정보를 복호화하는 서브블록이 경우, 차이 움직임 벡터(MVD)와 참조픽쳐를 나타내는 참조픽쳐 인덱스(ref_idx)를 복호화한다. 픽쳐의 종류가 B픽쳐인 경우, Pred_dir를 복호화하고 Pred_dir에 따른 한 개 또는 두개의 움직임 벡터 정보와 참조픽쳐 인덱스를 복호화한다. 단, 참조할 수 있는 참조 영상이 한장인 경우, 참조픽쳐 인덱스는 복호화하지 않는다.
인트라 픽쳐 내 서브블록 또는 인터 픽쳐 내 예측 타입 정보에 의해 식별되는 예측 타입이 인트라 예측된 서브블록에 대해서는 인트라 예측 모드 정보를 복호화한다. 예를 들어 서브블록의 크기가 4x4인 서브블록인 경우, 9가지 인트라 예측 모드들 중 선택된 예측 모드를 나타내는 예측 모드를 복호화한다.
이상에서 전술한 바와 같이, 본 발명의 일 실시예에 따른 영상 부호화 장치와 영상 복호화 장치는 임의의 크기의 블록을 이용하여 영상을 부호화하고 복호화할 수 있으며, 각 서브블록 별로 SKIP, DIRECT, 인트라 예측, 인터 예측 등의 다양한 예측 타입과 모드를 사용하여 부호화/복호화할 수 있다.
[실시예 2]
B. 예측 타입 정보에 소요되는 비트를 절약하면서 가변 크기의 매크로블록 내 서브블록에 대해 인트라 예측 또는 인터 예측을 선택적으로 이용하여 부호화/복호화 하는 장치 및 방법
이하에서는 본 발명의 다른 실시예로서, 예측 타입 정보에 소요되는 비트를 절약하면서 가변 크기의 매크로블록 내 서브블록에 대해 인트라 예측 또는 인터 예측을 선택적으로 이용하여 부호화하고 복호화하는 장치와 방법에 대해 예를 들어 설명한다.
본 발명의 다른 실시예에 따른 영상 부호화 방법은 매크로블록 크기와 타입에 따른 사용가능한 예측 타입만을 사용하여 매크로블록을 부호화한 후, 부호화 비용을 비교하여 매크로블록의 타입을 결정하고 선택된 매크로블록의 타입과 매크로블록의 타입에 따른 사용가능한 예측 타입과 예측 모드에 따라 각 서브블록을 예측 부호화하여 비트스트림을 생성한다.
예를 들어 임의의 크기의 매크로블록을 인트라 예측만을 사용했을 때의 부호화 비용, 인터예측만 사용했을 때의 부호화 비용, 인트라 예측과 인터 예측을 모두 사용했을 때의 부호화 비용을 비교하여 매크로블록의 타입을 결정하고 선택된 매크로블록의 타입과 각 서브블록의 선택된 예측방식에 따라 각 서브블록을 예측 부호화하여 비트스트림을 생성한다. 이때 결정된 매크로블록의 타입이 인트라 예측과 인터 예측을 모두 사용하는 매크로블록 타입인 경우에만 매크로블록 내 서브블록들에 대해서 예측 타입 정보와 예측 모드 정보를 부호화하고 그 외의 매크로블록 타입인 경우, 예측 모드 정보만을 부호화하여 비트스트림을 생성한다.
또한, 매크로블록의 크기에 따라 인터 예측과 인트라 예측 중 하나만을 이용하여 예측 부호화하거나 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측 부호화할 수 있다. 즉 매크로블록 크기에 따라 사용가능한 매크로블록의 타입이 다를 수 있다. 예를 들어, 매크로블록의 크기가 32x32 이상인 경우, 매크로블록 내 각 서브블록 단위로 인트라 예측 또는 인터 예측을 선택하여 사용할 수 있는 매크로블록 타입을 이용하여 예측 부호화할 수 있지만, 16x16 크기 또는 8x8 크기의 매크로블록인 경우, 매크로블록 단위로 인트라 예측 또는 인터 예측을 선택적으로 사용한다. 이때 매크로블록 내 서브블록 단위로 인트라 예측 또는 인터 예측을 선택하여 부호화할 수 있는 경우 매크로블록 타입인 경우에만, 서브블록 단위로 예측 타입 정보를 부호화한다.
이는, 매크로블록의 크기가 큰 경우 매크로블록 내 다양한 영역이 존재할 수 있다. 예를 들어 64x64 매크로블록인 경우 매크로블록 내 배경영역과 이전 픽쳐에 없던 새로운 영역이 매크로블록 내 포함될 수 있는데, 매크로블록 단위로 인트라 예측 또는 인터 예측을 선택하도록 하면 부호화 효율이 떨어질 수 있다. 그러므로 큰 매크로블록인 경우 매크로블록 내 다양한 예측 타입과 모드 사용 가능하게 하여 부호화 효율을 높이고, 작은 매크로블록인 경우 매크로블록 단위로 인트라 예측 또는 인터 예측을 선택하여 사용하도록 하여 예측 타입의 종류를 최소한으로 줄여 예측 타입 정보에 필요한 비트수 절약하도록 하기 위함이다.
B.1. 부호화 장치
이러한 본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 도 6을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치와 동일 또는 유사하게 구성될 수 있다.
다만, 본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 매크로블록 타입에 따른 예측 타입만을 이용하여 매크로블록을 부호화하고, 부호화 비용을 비교하여 매크로블록 타입과 매크로블록 내 서브블록들의 예측 타입을 결정하고, 선택된 예측 방식에 따라 각 서브블록을 예측 부호화하여 비트스트림을 생성한다. 예를 들어 인트라 예측만을 사용했을 때의 부호화 비용, 인터 예측만 사용했을 때의 부호화 비용, 인트라 예측과 인터 예측을 모두 사용했을 때의 부호화 비용을 비교하여 매크로블록의 타입을 결정하고 선택된 예측 방식에 따라 각 서브블록을 예측 부호화하여 비트스트림을 생성한다.
본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 매크로블록내 각 서브블록이 인트라 예측 또는 인터예측을 선택적으로 사용할 수 있는 매크로블록 타입인 경우, 각 서브블록에 대해 인터 예측을 이용하여 부호화하는지 또는 인트라 예측을 이용하여 부호화하는지 여부를 나타내는 예측 타입에 대한 정보를 부호화하여 비트스트림에 포함시킬 수 있다.
따라서, 본 발명의 또 다른 실시예에 따르면, 하나의 매크로블록 내에 모든 서브블록이 인터 예측을 이용하여 예측 부호화될 수도 있고, 모든 서브블록이 인트라 예측을 이용하여 예측 부호화될 수도 있으며, 일부 서브블록은 인터 예측 부호화되고 나머지 서브블록은 인트라 예측 부호화될 수 있으며 예측 타입 정보에 소요되는 비트를 절약할 수 있다.
이하에서는, 분할 정보 부호화 후, 매크로블록 타입과 예측 타입 및 예측 모드 정보를 포함하는 예측 정보를 부호화하는 방법에 대해서 설명한다.
B.1.1. 예측정보 부호화 방법
매크로블록 타입은 SKIP 매크로블록, 인트라 매크로블록, 인터 매크로블록, Mixed 인터/인트라 매크로블록이 있을 수 있다. SKIP 매크로블록은 매크로블록 내 모든 서브블록이 SKIP 모드만을 이용하여 부호화하며, 인트라 매크로블록은 매크로블록 내 모든 서브블록이 인트라 예측만을 이용하여 부호화한다. 인터 매크로블록은 매크로 블록 내 모든 서브블록이 움직임 정보 또는 잔여신호 정보를 전송하는 인터예측을 이용하여 부호화한다. Mixed-인터/인트라 매크로블록은 매크로블록내 서브블록 단위로 인트라 예측 또는 움직임 정보 또는 잔여신호 정보를 전송하는 인터예측을 이용하여 부호화한다.
또한, 전술한 매크로블록 타입들 중 매크로블록 타입으로 인트라 매크로블록과 인터 매크로블록만 있을 수 있다. 이 경우, 인트라 매크로블록내 모든 서브블록은 인트라 예측만을 이용하여 부호화하고 인터 매크로블록 내 모든 서브블록은 서브블록 단위로 인트라, 또는 움직임 추정 및 보상을 수행하는 인터 예측이 선택하여 부호화할 수 있다.
매크로블록의 분할 정보를 부호화 한 후, 부호화기는 매크로블록 타입을 부호화한다.
여기서 매크로블록의 타입은 픽쳐의 종류에 따라 고정되거나 부호화 비용을 비교하여 선택하여 결정할 수 있다.
예를 들어 인트라 픽쳐인 경우, 픽쳐 내 모든 매크로블록의 타입은 인트라 매크로블록으로 고정되고 이때 매크로블록 타입과 예측 타입은 부호화하지 않고 각 서브블록들의 인트라 예측 모드를 나타내는 예측 모드 데이터만을 부호화한다.
인터 픽쳐인 경우, 매크로블록 타입은 부호화 비용에 따라 결정되고 선택된 매크로블록 타입을 부호화한 후 매크로블록 타입에 따른 사용 가능한 예측 타입이 2가지 이상인 경우, 각 서브블록들의 예측 타입을 부호화한다. 예측 타입이 인트라 예측 타입인 서브블록에 대해서는 인트라 예측 모드 정보를 부호화하고 인터 서브블록인 경우, 움직임 정보를 부호화한다.
예측 모드 데이터를 부호화하는 방법은 전술한 실시예의 예측 모드 정보 부호화 방법을 이용하여 부호화한다.
이하에서는, 매크로블록 타입을 부호화하는 방법에 대해 설명한다.
B.1.1.1. 매크로블록 타입 부호화 방법
인터 픽쳐 내 매크로블록과 같이 매크로블록 타입을 부호화하는 경우, 픽쳐 종류에 따라 사용가능한 매크로블록 타입은 표 6내지 표 9와 같이 달라질 수 있다. 단, 표 6내지 표 8의 매크로블록의 타입과 매크로블록의 타입에 따른 서브블록의 사용가능한 예측 타입의 종류는 일례일 뿐 다를 수 있다.
표 6
Figure PCTKR2010006740-appb-T000006
표 7
Figure PCTKR2010006740-appb-T000007
표 8
Figure PCTKR2010006740-appb-T000008
표 9
Figure PCTKR2010006740-appb-T000009
표 6 와 같이 사용 가능한 매크로블록 타입이 3가지인 경우, 1비트 또는 2비트 부호화하여 매크로블록 타입을 나타낼 수 있다. 예를 들어, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax를 부호화 후, SKIP 매크로블록이 아닌 경우, Mixed 인터-인트라 매크로블록인지 인터 매크로블록인지를 나타내는 추가의 1비트 길이의 syntax를 부호화한다.
만약 사용 가능한 매크로블록 타입이 4가지인 경우, 1비트 내지 3비트를 부호화하여 매크로블록 타입을 나타낼 수 있다. 예를 들어 표 7의 경우, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax, 예컨대 skip_flag,를 부호화한 후, SKIP 매크로블록이 아닌 경우, 표 10의 이진 스트링을 이용하여 매크로블록 타입을 나타내는 syntax를 부호화할 수도 있다. 또는 현재 부호화대상 매크로블록의 이웃한 매크로블록들, 예컨대 위와 왼쪽 매크로블록의 매크로블록 타입을 이용하여 현재 부호화 대상 매크로블록의 매크로블록 타입을 부호화할 수도 있다. 또는 부호화기와 복호화기가 약속한 Code Word table을 이용하여 부호화할 수도 있다.
표 10
Figure PCTKR2010006740-appb-T000010
만약 사용 가능한 매크로블록 타입이 표 8과 같이 5가지인 경우, 1비트 또는 3비트를 부호화하여 매크로블록 타입을 나타낼 수 있다. 예를 들어 표 8의 경우, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax, 예컨대 skip_flag,를 부호화한 후, SKIP 매크로블록이 아닌 경우, 표 11의 이진 스트링을 이용하여 매크로블록 타입을 나타내는 syntax를 부호화할 수도 있다. 또는 현재 부호화대상 매크로블록의 이웃한 매크로블록들, 예컨대 위와 왼쪽 매크로블록,의 매크로블록 타입을 이용하여 현재 부호화 대상 매크로블록의 매크로블록 타입을 부호화할 수도 있다. 또는 부호화기와 복호화기가 약속한 Code Word table을 이용하여 부호화할 수도 있다.
표 11
Figure PCTKR2010006740-appb-T000011
또한, 매크로블록 타입을 나타내는 Syntax를 가변길이 부호화하는 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
또한, 블록의 예측 타입 정보를 이용하여 산술 부호화할 수도 있다.
여기서는 매크로블록 타입을 나타내기 위해 SKIP 매크로블록인지 아닌지를 나타내기 위한 신택스(skip_flag)와 SKIP 매크로블록이 아닌 경우, SKIP 매크로블록 타입을 제외한 매크로블록 타입을 나타내기 위한 신택스 (mb_type)의 두 가지의 syntax를 이용하였으나, 한가지 또는 세가지 이상의 syntax를 이용하여 매크로블록 타입을 부호화할 수도 있다.
B.1.1.2. 매크로블록 타입에 따른 예측 타입 부호화 방법
매크로블록 타입에 따른 사용 가능한 예측 타입이 2가지 이상인 경우, 매크로블록 내 각 서브블록들의 예측 타입 정보를 부호화한다. 표 6 내지 표 8 의 매크로블록의 타입에 따른 서브블록의 사용 가능한 예측 타입의 종류가 두 가지인 경우, 각 서브블록의 예측 타입을 나타내는 1비트 길이의 syntax를 부호화한다.
만약 사용 가능한 예측 타입의 종류가 3가지인 경우 1비트 또는 2비트 길이의 syntax를 이용하여 예측 타입을 나타낼 수 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, 인터 예측, 인트라 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1 비트를 더 부호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 나타낼 수 있다. 또는 사용 가능한 예측 타입 종류가 Direct, 인터 예측, 인트라 예측인 경우에도 Direct 모드인지를 나타내는 1비트를 부호화한 후, Direct 모드가 아닌 경우, 인트라 예측인지 인터 예측인지를 나타내는 1비트를 더 부호화 할 수도 있다.
사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 부호화하여 Direct 예측된 서브블록인지 인터 예측된 서브블록인지를 나타낼 수 있다.
만약 사용 가능한 예측 타입의 종류가 4가지인 경우, 1비트 내지 3비트 길이의 syntax를 이용하여 예측 타입을 부호화할 수도 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측, 인트라 예측인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 부호화하여 Direct 모드인지 아닌지를 나타낸다. 만약 SKIP 모드도 아니고 Direct모드도 아닌 경우, 1비트를 부호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 나타낼 수 있다.
또는 2비트의 고정 길이의 Syntax를 이용하여 예측 타입을 부호화할 수도 있다.
또는 약속된 Table을 이용하여 예측 타입을 부호화할 수도 있다.
이때, 예측 타입을 나타내는 Syntax를 가변길이 부호화하는 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
또한, 현재 블록의 예측 타입을 부호화할 때 주변 블록의 예측 타입 정보를 이용하여 산술 부호화할 수도 있다.
여기서는 예측 타입을 나타내는 syntax를 한가지로 기술하였으나 복수개의 syntax를 이용하여 예측 타입을 부호화할 수도 있다. 예를 들어 SKIP모드인지 아닌지를 나타내기 위한 SKIP_flag와 direct 모드인지 아닌지를 나타내는 Direct_flag, 인트라 블록인지 인터 블록인지를 나타내기 위한 pred_type의 3가지 syntax가 사용될 수도 있다. 또한 각각의 syntax를 각각 다른 방법을 이용하여 부호화할 수도 있다.
B.2. 복호화 장치
본 발명의 또 다른 실시예에 따른 영상 복호화 장치는 도 7을 통해 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치와 동일 또는 유사하게 구성될 수 있다. 다만, 본 발명의 또 다른 실시예에 따른 영상 복호화 장치는 비트스트림으로부터 임의의 크기의 매크로블록의 매크로블록의 타입을 복호화하여 복원하고, 매크로블록 타입에 따른 매크로블록 내 서브블록들의 사용가능한 예측 타입이 2가지 이상인 경우에만 예측 타입 정보를 비트스트림으로부터 추출하고 복호화한다. 각 서브블록들의 예측 타입을 복원한 후, 서브블록의 예측 타입이 인트라 예측인 경우, 인트라 예측 모드 정보를 비트스트림으로부터 추출하고 복호화하고, 움직임 정보 또는 잔여신호 정보를 비트스트림에 포함하도록 하는 인터 예측인 경우, 비트스트림으로부터 움직임 정보 또는 잔여 신호 정보를 추출하고 복호화하여 각 서브블록을 복원한다.
이하에서는, 분할 정보 복호화 후, 매크로블록 타입과 예측 타입 및 예측 모드 정보를 포함하는 예측 정보를 복호화하는 방법에 대해서 설명한다.
B.2.1. 예측정보 복호화 방법
매크로블록의 분할 정보를 복호화 한 후, 복호화기는 픽쳐 타입 정보를 이용하여 매크로블록 타입 정보를 비트스트림으로부터 추출하여 복호화한다. 이때 픽쳐 종류에 따른 사용 가능한 매크로블록 타입이 고정된 경우, 비트스트림으로부터 매크로블록 타입 정보 복호화 과정은 수행하지 않는다.
예를 들어 인트라 픽쳐 내 매크로블록들은 인트라 예측만을 사용할 수 있으므로 매크로블록 타입 정보와 예측 타입 정보의 비트스트림으로부터 추출 및 복호화 과정은 수행하지 않으며 각 블록의 인트라 예측 모드 정보를 비트스트림으로 추출하고 복호화하여 복원한다.
인터 픽쳐 내 매크로블록인 경우, 매크로블록의 타입 정보를 비트스트림으로부터 추출하고 복호화한 후, 매크로블록 타입에 의해 결정되는 사용가능한 예측 타입의 종류가 2가지 이상인 경우에만 예측 타입 정보를 비트스트림으로부터 추출 및 복호화한다. 매크로블록 또는 서브블록의 예측 타입이 결정되면, 예측 타입에 따른 예측 모드 정보를 비트스트림으로부터 추출하고 복호하여 블록을 복원한다.
예측 모드 데이터를 복호화하는 방법은 전술한 실시예의 예측 모드 정보 복호화 방법을 이용하여 복호화한다.
이하에서는, 매크로블록 타입을 복호화하는 방법에 대해 설명한다.
B.2.1.1. 매크로블록 타입 복호화 방법
인터 픽쳐 내 매크로블록과 같이 매크로블록 타입을 복호화하는 경우, 픽쳐 종류에 따라 사용가능한 매크로블록 타입은 전술한 표 6 내지 표 8과 같이 달라질 수 있다.
표 6와 같이 사용 가능한 매크로블록 타입이 3가지인 경우, 1비트 또는 2비트 복호화하여 매크로블록 타입을 복호화할 수 있다. 예를 들어, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax를 복호화 후, SKIP 매크로블록이 아닌 경우, 비트스트림으로부터 1비트를 더 추출하고 복호화하여 복호화 대상 매크로블록의 타입이 Mixed 인터-인트라 매크로블록인지 인터 매크로블록인지를 결정한다.
만약 사용 가능한 매크로블록 타입이 4가지인 경우, 1비트 내지 3비트를 복호화하여 매크로블록 타입을 나타낼 수 있다. 예를 들어 표 7의 경우, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax, 예컨대 skip_flag,를 복호화한 후, SKIP 매크로블록이 아닌 경우, 추가로 1비트 또는 2비트를 더 추출하고 복호화하여 매크로블록 타입을 복원한다. SKIP 매크로블록이 아닌 매크로블록의 타입을 표 10를 이용하여 매크로블록 타입을 복호화할 경우, 비트스트림으로부터 1비트를 추출하고 복호화하여 복원된 코드워드가 1인 경우 인터 매크로블록으로 결정하고, 0인 경우 비트스트림으로부터 1비트를 더 추출하고 복호화하여 인트라 매크로블록인지 Mixed 인터-인트라 매크로블록인지 결정한다.
또는 현재 복호화 대상 매크로블록의 이웃한 매크로블록들, 예컨대 위와 왼쪽 매크로블록의 매크로블록 타입을 이용하여 현재 복호화 대상 매크로블록의 매크로블록 타입을 복호화할 수도 있다.
또는 부호화기와 복호화기가 약속한 Code Word table을 이용하여 복호화할 수도 있다.
만약 사용 가능한 매크로블록 타입이 표 8과 같이 5가지인 경우, 1비트 또는 3비트를 복호화하여 매크로블록 타입을 나타낼 수 있다. 예를 들어 표 8의 경우, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax, 예컨대 skip_flag,를 복호화한 후, SKIP 매크로블록이 아닌 경우, 표 11의 이진 스트링을 이용하여 매크로블록 타입을 나타내는 syntax를 복호화할 수도 있다.
또는 현재 부호화대상 매크로블록의 이웃한 매크로블록들, 예컨대 위와 왼쪽 매크로블록,의 매크로블록 타입을 이용하여 현재 복호화 대상 매크로블록의 매크로블록 타입을 복호화할 수도 있다.
또는 부호화기와 복호화기가 약속한 Code Word table을 이용하여 복호화할 수도 있다.
또한, 매크로블록 타입을 나타내는 Syntax를 가변길이 복호화하는 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 복호화할 수 있다.
또한, 블록의 예측 타입 정보를 이용하여 산술 복호화할 수도 있다.
여기서는 매크로블록 타입을 나타내기 위해 SKIP 매크로블록인지 아닌지를 나타내기 위한 신택스(skip_flag)와 SKIP 매크로블록이 아닌 경우, SKIP 매크로블록 타입을 제외한 매크로블록 타입을 나타내기 위한 신택스 (mb_type)의 두 가지의 syntax를 이용하였으나, 한가지 또는 세가지 이상의 syntax를 이용하여 매크로블록 타입을 복호화할 수도 있다.
B.2.1.2. 매크로블록 타입에 따른 예측 타입 복호화 방법
매크로블록 타입에 따른 사용 가능한 예측 타입이 2가지 이상인 경우, 매크로블록 내 각 서브블록들의 예측 타입 정보를 복호화한다. 표 6 내지 표 8의 매크로블록의 타입에 따른 서브블록의 사용 가능한 예측 타입의 종류가 두 가지인 경우, 각 서브블록의 예측 타입을 나타내는 1비트 길이의 syntax를 복호화한다.
만약 사용 가능한 예측 타입의 종류가 3가지인 경우 1비트 또는 2비트 길이의 syntax를 이용하여 예측 타입을 복호화할 수도 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, 인터 예측, 인트라 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1 비트를 더 복호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 결정할 수 있다. 또는 사용 가능한 예측 타입 종류가 Direct, 인터 예측, 인트라 예측인 경우에도 Direct 모드인지를 나타내는 1비트를 복호화한 후, Direct 모드가 아닌 경우, 인트라 예측인지 인터 예측인지를 나타내는 1비트를 더 복호화 할 수도 있다.
사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 복호화하여 Direct 예측된 서브블록인지 인터 예측된 서브블록인지를 결정할 수 있다.
만약 사용 가능한 예측 타입의 종류가 4가지인 경우, 1비트 내지 3비트 길이의 syntax를 이용하여 예측 타입을 복호화할 수도 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측, 인트라 예측인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 복호화하여 Direct 모드인지 아닌지를 결정한다. 만약 SKIP 모드도 아니고 Direct모드도 아닌 경우, 1비트를 복호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 결정할 수 있다
또는 2비트의 고정 길이의 Syntax를 이용하여 예측 타입을 복호화할 수도 있다.
또는 약속된 Table을 이용하여 예측 타입을 복호화할 수도 있다.
이때, 예측 타입을 나타내는 Syntax를 가변길이 복호화 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 복호화할 수 있다.
또한, 현재 블록의 예측 타입을 복호화할 때 주변 블록의 예측 타입 정보를 이용하여 산술 복호화할 수도 있다.
여기서는 예측 타입을 나타내는 syntax를 한가지로 기술하였으나 복수개의 syntax를 이용하여 예측 타입을 복호화할 수도 있다. 예를 들어 SKIP모드인지 아닌지를 나타내기 위한 SKIP_flag와 direct 모드인지 아닌지를 나타내는 Direct_flag, 인트라 블록인지 인터 블록인지를 나타내기 위한 pred_type의 3가지 syntax가 사용될 수도 있다. 또한 각각의 syntax를 각각 다른 방법을 이용하여 복호화할 수도 있다.
[실시예 3]
C. 예측기준 단위를 선택하여 부호화/복호화하는 장치 및 방법
한편, 전술한 바와 같이 매크로블록 단위 또는 매크로블록 내의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측할 수도 있지만, 예측 기준 단위를 선택하고 예측 기준 단위에 따라 인터 예측과 인트라 예측 중 하나만을 이용하여 예측 부호화하거나, 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측 부호화할 수 있다.
이하에서는 본 발명의 다른 실시예로서, 매크로블록 내 예측 기준 단위를 선택하고 예측 기준 단위로 인트라 예측 또는 인터 예측을 선택하여 부호화하고 복호화하는 장치와 방법에 대해 예를 들어 설명한다.
여기서, 예측 기준 단위란 매크로블록 내에서 인터 예측 또는 인트라 예측을 선택할 수 있는 블록의 크기를 말한다. 즉, 매크로블록은 인코딩 디코딩 처리의 기준 단위이며 예측 기준 단위는 예측 방법을 선택할 수 있는 단위를 말한다. 예를 들어 32x32 크기의 매크로블록에 대해서 예측 기준 단위는 32x32 또는 16x16일 수도 있으며, 16x16 보다 작은 크기의 블록일 수도 있다. 이 경우, 16x16 크기의 블록 단위로만 인트라 예측 또는 인터예측을 선택할 수 있으며, 기준 단위 내 서브블록들은 동일한 예측 타입을 사용한다.
C.1. 부호화 장치
도 8은 본 발명의 또 다른 실시예에 따른 영상 부호화 장치의 일례를 간략하게 나타낸 블록 구성도이다.
본 발명의 또 다른 실시예에 따른 영상 부호화 장치(800)의 일례는 후보 예측 기준 단위 설정기(Candidate Prediction Basic Unit Configuration, 810), 영상 부호화기(820) 및 예측 기준 단위 결정기(Prediction Basic Unit Determiner, 830)를 포함하여 구성될 수 있다.
후보 예측 기준 단위 설정기(810)는 임의의 크기의 매크로블록에 대한 예측 기준 단위의 후보를 설정한다. 예측 기준 단위의 후보는 사용자 등에 의해 입력되거나 기타 다른 장치로부터 입력되는 정해진 후보군(예를 들어, 16x16, 32x32 등)이거나, 영상의 특성에 따라 결정될 수 있다. 예측 기준 단위의 후보가 영상의 특성에 따라 결정되는 경우를 예를 들면, 영상의 크기와 가로와 세로 비율 등을 고려하여 다양한 후보군으로 결정될 수 있다.
영상 부호화기(820)는 도 6을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치(600)로 구현될 수 있다.
다만, 본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 후보 예측 기준 단위 설정기(810)에 의해 설정된 예측 기준 단위의 후보별로 해당 예측 기준 단위로 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화한다. 매크로블록 내 예측 기준 단위는 매크로블록 단위로 분할 정보를 부호화하여 복호화기에 전송할 수도 있고 시퀀스 헤더 또는 픽쳐, 슬라이스 헤더에 한번만 전송할 수도 있다. 이후, 서브블록 단위가 아닌 예측 기준 단위로 예측 타입 정보를 부호화하고 예측 기준 단위 내 서브블록 단위로 예측 모드 정보를 부호화한다.
예측 타입 정보와 예측 타입에 따른 예측 모드 정보를 부호화하는 방법은 전술한 도 6의 부호화기에서의 부호화 방법을 이용하여 부호화한다.
C.1.1. 예측 기준단위 결정 방법
예측 기준 단위 결정기(830)는 영상 부호화기(820)가 예측 기준 단위의 후보별로 영상을 부호화했을 때의 부호화 비용(즉, 예측 기준 단위의 후보별로 부호화된 영상 데이터의 부호화 비용)을 계산하고 각 예측 기준 단위의 후보별로 부호화된 영상 데이터의 부호화 비용을 서로 비교하여 예측 기준 단위의 후보들 중 최적의 예측 기준 단위를 결정한다. 여기서, 최적의 예측 기준 단위는 각 예측 기준 단위의 후보들 중 해당 예측 기준 단위의 후보로 영상을 부호화했을 때의 부호화 비용이 최소인 예측 기준 단위의 후보가 될 수 있지만, 부호화 비용을 이용하는 경우라면 그를 이용하여 다양하게 결정될 수 있다.
다음은 예측의 기준단위를 결정하는 또 다른 방법이다 (예측 기준 단위 결정기를 사용하지 않는 경우임).
영상 부호화기(820)는 매크로블록을 각 블록에 대해 인트라예측 모드와 인터 예측모드들 중 픽쳐 타입에 따른 사용가능한 예측 타입을 사용하여 부호화하고 부호화 비용을 비교하여 각 블록의 최적의 예측타입과 예측모드를 결정한 후, 매크로블록 내 모든 서브블록이 인트라예측 모드 또는 인터예측 모드를 사용하는 경우에는 예측 기준 단위를 매크로블록 크기로 결정한다. 만약 매크로블록 내 서브블록들의 예측 타입이 인트라 예측과 인터 예측이 동시에 존재하는 경우, 인트라 예측이 선택된 서브블록의 최대크기를 예측의 기준단위로 설정한다.
또는 매크로블록 타입을 인트라 매크로블록을 나타내는 값으로 매크로블록 타입을 설정하여 부호화하고 매크로블록 내 모든 서브블록이 인터예측만 사용하는 경우에는 매크로블록 타입을 인터 매크로블록을 나타내는 값으로 매크로블록 타입을 설정하여 부호화한다. 만약 매크로블록내 인트라 예측과 인터예측 모드를 사용하는 블록이 있는 경우, 매크로블록 타입을 인트라/인터 매크로블록을 나타내는 값으로 설정하여 부호화하고, 인트라 예측이 선택된 서브블록의 최대크기를 예측의 기준단위로 설정할 수도 있다.
또한, 예측 기준 단위 결정기(830)는 예측 기준 단위가 결정되면, 해당 예측 기준 단위로 부호화된 영상 데이터를 비트스트림으로 생성하고 복호화기로 전송할 수도 있다.
C.1.2. 기준단위 부호화 방법
결정된 예측 기준 단위는 매크로블록 단위가 아닌 시퀀스 헤더 또는 각 픽쳐의 헤더 또는 슬라이스 헤더에서 한번만 부호화할 수도 있다. 이 경우, 임의의 크기의 매크로블록으로부터 예측 기준 단위까지의 분할 정보는 부호화하지 않을 수 있다.
C.1.2.1. 기준단위 부호화 방법 1
이하에서는 선택된 예측의 기준 단위를 시퀀스, 픽쳐 또는 슬라이스 헤더에서 한번만 부호화하는 본 발명에 따른 다양한 방법들을 설명한다. 먼저 예측의 기준 단위를 부호화하는 첫번째 방법을 설명한다.
시퀀스 헤더 또는 각 픽처 또는 슬라이스 헤더에 예측의 기준 단위의 크기를 보낼지에 대한 플래그(Set_predBlockSize_flag)로 예측의 기준 단위를 전송할 수도 있고 전송하지 않을 수도 있도록 한다.
전송하지 않는 경우에는 임의의 크기, 예컨대 16x16 크기,를 예측의 기준 단위로 사용할 수도 있고 매크로블록마다 분할 정보를 부호화하여 예측 기준단위를 부호화할 수도 있다.
만약, 예측의 기준 단위를 지정하는 경우에는 예측의 기준 단위에 대한 정보를 전송한다. 이때, 예측의 기준 단위의 가로 크기와 세로 크기를 따로 설정하도록 하여 임의의 크기의 예측의 기준 단위를 사용할 수도 있다.
또한, 특정 값으로 예측의 기준 단위를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다.
또한, 예측 기준 단위의 크기값을 그대로 부호화하는 대신 예측 기준 단위의 크기값에 로그 함수를 적용함으로써 적은 비트를 이용하여 예측 기준 단위의 크기값을 나타낼 수 있다.예컨대, log2(선택된 예측의 기준단위/X) (X는 2의 배수인 임의의 양의 정수)의 값을 부호화하는데, 예를 들어 X의 값이 16인 경우,선택된 예측의 기준 단위가 16x16인 경우 0을 부호화하고 32x32인 경우 1을 부호화한다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
아래는 전술한 예측 기준 단위 부호화에 관한 첫번째 방법에 따른 신택스의 일 예를 나타낸다.
Set_ predBlockSize _flag
if(Set_ predBlockSize _flag == 1)
{
predBlockSize
}
또는
Set_ predBlockSize _flag
if(Set_ predBlockSize _flag == 1)
{
predBlockSize _Width
predBlockSize _height
}
이하에서는 가로와 세로의 크기를 각각 설정하는 것에 대한 내용은 기술하지 않지만, 가로와 세로의 크기를 각각 설정하는 것도 적용 가능하다. 또한, 시퀀스 헤더와 픽처 헤더 상에서 데이터를 부호화하는 것으로 예를 들었지만, 슬라이스 헤더에서 부호화할 수도 있다.
C.1.2.2. 기준단위 부호화 방법 2
이하에서는 예측 기준 단위를 부호화하는 두번째 방법을 설명한다.
두 번째 방법에 따르면, MxN 크기를 default 예측 기준 단위로 설정하고 각 픽처 헤더마다 default 예측 기준 단위를 사용할지를 나타내는 플래그를 부호화하고 default 예측 기준 단위를 사용하지 않을 경우, 선택된 예측의 기준 단위를 부호화한다. 또는 시퀀스 헤더에서 default 예측 기준 단위를 설정할지를 나타내는 플래그를 부호화한 후 default 예측 기준 단위를 설정하지 않는 경우 소정 사이즈, 예컨대 16x16 크기를 default 예측의 기준 단위로 사용하고 default 예측의 기준 단위를 설정하는 경우에는 default 예측의 기준 단위를 부호화할 수도 있다.
여기서 default 예측 기준 단위의 크기를 나타내는 정보인 defalt_ predBlockSize 또는 현재 예측 기준 단위의 크기를 나타내는 정보인 predBlockSize 값을 부호화하는 방법은 실제 예측 기준 단위의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다. 또는 전술한 첫번째 방법에서 설명한 바와 같이, 예측 기준 단위 크기값을 그대로 부호화하는 대신, 예측 기준 단위 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 매크로블록 크기값을 나타낼 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
아래는 전술한 예측 기준 단위의 크기 부호화에 관한 두번째 방법에 따른 신택스의 일 예를 나타낸다.
시퀀스 헤더:
Set_default predBlockSize _Flag
if(Set_ default predBlockSize _Flag == 1)
{
defalt_ predBlockSize
}
픽처헤더:
use_defalt_ predBlockSize _flag
if(use_defalt_ predBlockSize e_flag == 0)
{
predBlockSize
}
C.1.2.3. 기준단위 부호화 방법 3
이하에서는 예측 기준 단위를 부호화하는 세번째 방법을 설명한다.
세 번째 방법에 따르면 첫 번째 픽처에서 default 예측 기준 단위를 사용할지에 대한 플래그와 default 예측 기준 단위를 사용하지 않는 경우 선택된 예측의 기준 단위를 부호화한 후, 두 번째 픽처부터는 이전 픽처의 예측의 기준 단위를 사용할지에 대한 플래그와 이전 픽처의 예측의 기준 단위를 사용하지 않을 경우 현재 픽처의 예측의 기준 단위를 부호화할 수도 있다.
여기서 현재 예측 기준 단위의 크기를 나타내는 정보인 predBlockSize 값을 부호화하는 방법은 실제 예측 기준 단위의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다. 또는 전술한 첫번째 방법에서 설명한 바와 같이, 예측 기준 단위 크기값을 그대로 부호화하는 대신, 예측 기준 단위 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 매크로블록 크기값을 나타낼 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
아래는 전술한 예측 기준 단위의 크기 부호화에 관한 두번째 방법에 따른 신택스의 일 예를 나타낸다.
첫 번째 픽처의 픽처 헤더
use_defalt_ predBlockSize _flag
if(use_defalt_ predBlockSize _flag == 0)
{
predBlockSize
}
두 번째 픽처부터
use_prevPic_ predBlockSize _flag
if(use_prevPic_ predBlockSize e_flag == 0)
{
predBlockSize
}
C.1.3. (부호화) 방법
도 9는 본 발명의 또 다른 실시예에 따른 영상 부호화 방법의 일 예를 설명하기 위한 순서도이다.
영상 부호화 장치는 예측 기준 단위의 후보를 설정하고, 예측 기준 단위의 후보별로 입력 영상을 부호화하여, 예측 기준 단위의 후보별 영상 데이터의 부호화 비용에 따라 예측 기준 단위를 결정하며, 결정된 예측 기준 단위에 따라 매크로블록의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화된 영상 데이터 및 결정된 예측 기준 단위에 대한 정보를 포함하는 비트스트림을 생성한다. 영상 부호화 장치가 예측 기준 단위의 후보를 설정하고, 예측 기준 단위의 후보별로 영상을 부호화하며, 예측 기준 단위의 후보별로 부호화된 영상 데이터의 부호화 비용에 따라 예측 기준 단위를 결정하는 것에 대해서는 도 8을 통해 전술하였으므로, 상세한 설명은 생략한다.
C.2. 복호화 장치
도 10은 본 발명의 다른 실시예에 따른 영상 복호화 장치의 구현 예를 나타낸 블록 구성도이다.
본 발명의 또 다른 실시예에 따른 영상 복호화 장치의 일 예는 도 7을 통해 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치(700)와 동일 또는 유사하게 구성될 수 있다.
다만, 본 발명의 또 다른 실시예에 따른 영상 복호화 장치는 예측 기준단위 설정기와 영상 복호화기를 포함하여 구성될 수 있다.
본 발명의 또 다른 실시예에 따른 영상 복호화 장치의 일 예는 비트스트림으로부터 부호화된 영상 데이터뿐만 아니라 비트스트림으로부터 임의의 크기의 매크로블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하기 위한 예측 기준 단위에 대한 정보를 추출하고, 추출된 예측 기준 단위에 대한 정보에 의해 식별되는 예측 기준 단위(또는 필요에 따라서는 추출된 예측 기준 단위에 대한 정보를 복호화하여 식별되는 예측 기준 단위) 크기 이하의 매크로블록 내의 각 서브블록들에 대해서는 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화된 영상 데이터를 복호화함으로써 복원 영상을 생성한다.
예측 기준 단위 설정기는 비트스트림으로부터 예측 기준 단위 정보를 추출하여 매크로블록 내 예측 기준 단위를 설정한다. 만약 예측 기준 단위 정보는 비트스트림에 한번만 포함하기로 부호화기와 약속된 경우 전제 영상에 대한 비트스트림에 한번만 복호화하여 전체 영상 복호화에 추출한 예측 기준 단위를 이용하여 영상을 복원할 수도 있고 픽쳐마다 예측 기준 단위를 부호화/복호화 하기로 약속된 경우 비트스트림으로부터 각 픽쳐마다 예측 기준 단위 정보를 추출하여 각 픽쳐마다 다른 예측 기준 단위를 사용하여 영상을 복원할 수도 있다. 또한 본 발명에 따른 다른 실시예에 의하면 상기 정보는 픽쳐, 슬라이스 또는 매크로블록 계층마다 추출하도록 하여 선택된 예측 기준 단위를 이용하여 영상을 복원할 수도 있다.
예측 기준 단위 설정기에서 예측 기준 단위가 설정되면 복호화기에서는 예측 기준 단위로 예측 타입 정보를 비트스트림으로부터 추출하고 예측 타입에 따른 서브블록 별 예측 모드 정보를 비트스트림으로부터 추출하고 복호화하여 매크로블록을 복원한다.
C.2.1. 예측 기준단위 복호화 방법
이하에서는 선택된 예측 기준 단위를 복호화하는 본 발명에 따른 다양한 방법들을 설명한다.
C.2.1.1. 예측 기준단위 복호화 방법 1
먼저 예측 기준 단위를 부호화하는 첫번째 방법에 따른 복호화 방법을 설명한다.
예측 기준 단위의 크기에 대한 정보를 보낼지에 대한 플래그(Set_ predBlockSize _flag)가 포함된 경우, 시퀀스 헤더 또는 각 픽쳐의 헤더 또는 슬라이스 헤더 등의 약속된 위치에서 예측 기준 단위의 크기에 대한 정보를 보낼지에 대한 플래그(Set_ predBlockSize _flag)를 엔트로피 복호화한다. 복호화한 플래그가 예측 기준 단위의 크기가 전송되지 않았음을 나타내는 값인 경우, 부호화기와 약속된 소정 크기의 예측 기준 단위, 예컨대 16x16블록을 예측 기준 단위로 사용한다.
만약 복호화한 예측 기준 단위 크기 지정 플래그(Set_ predBlockSize _flag)가 예측 기준 단위의 크기가 지정되었음을 의미하는 경우, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary-Code), 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 엔트로피 복호화 방법들 중 부호화기와 약속된 방법으로 예측 기준 단위의 크기를 엔트로피 복호화하여 추출한다.
만약 예측 기준 단위의 가로 크기와 세로크기가 따로 설정되어 전송된 경우 가로크기와 세로크기를 각각 엔트로피 복호화하여 구할 수도 있고, 또는 정사각형 예측 기준 단위를 사용하는 경우 한 변의 길이를 나타내는 정보만을 엔트로피 복호화할 수도 있다.
복호화 한 값을 실제 예측 기준 단위의 크기로 지정할 수도 있고 복호화 한 값을 부호화기와 약속한 소정의 크기로부터 몇 배를 키우거나 축소시킨 값을 예측 기준 단위의 크기로 지정할 수도 있다. 또한 부호화기에서 예측 기준 단위의 크기값에 로그함수를 적용한 값을 부호화한 경우 엔트로피 복호화한 값을 지수함수를 적용하여 예측 기준 단위의 크기를 설정할 수도 있다 예컨대, 부호화기에서 log2(부호화기에서 선택된 PredBlockSize/X) (X는 2의 배수인 임의의 양의 정수)의 값인 y를 부호화한 경우 복호화기에서는 y값을 엔트로피 복호화하고 X의 값에 2y 를 곱하여 부호화기에 선택된 예측 기준 단위의 크기를 구할 수 있다. 여기서 X의 값은 부호화기와 복호화기가 약속한 값이거나 비트스트림으로부터 예측 기준 단위 크기를 복호화 하기 전 추출한 값일 수도 있다. 만약 X의 값이 8인 경우, 복호화 한 y의 값이 0이면 예측 기준 단위의 크기를 8x8로 설정하고 복호화 한 y의 값이 1이면 예측 기준 단위의 크기를 16x16으로 설정한다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 예측 기준 단위의 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 예측 기준 단위의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 전송할 예측 기준 단위 크기를 복호화 할 수 있다.
이하에서는 설명의 편의를 위해, 가로와 세로의 크기를 각각 복호화하여 추출하는 것에 대한 내용은 기술하지 않지만, 가로와 세로의 크기를 각각 추출하는 것도 적용 가능하다. 또한 시퀀스 헤더와 픽쳐 헤더 상에서 데이터를 복호화하는 것으로 예를 들었지만 부호화기에서 슬라이스 헤더 또는 매크로블록 헤더에서 예측 기준 단위의 크기를 부호화한 경우 슬라이스 헤더에서 예측 기준 단위의 크기를 복호화 할 수도 있다.
C.2.1.2. 예측 기준단위 복호화 방법 2
이하에서는 예측 기준 단위의 크기를 부호화하는 두번째 방법에 따른 복호화 방법을 설명한다.
두번째 방법에 따르면, 부호화기와 약속된 NxN 크기를 기준 예측 기준 단위 크기로 설정하고 각 픽쳐 또는 슬라이스, 매크로블록 헤더로부터 기준 예측 기준 단위 크기를 사용할지를 나타내는 플래그를 엔트로피 복호화한다. 복호화한 플래그 값이 기준 예측 기준 단위 크기를 사용하지 않음을 뜻하는 경우, 예측 기준 단위 크기 정보를 엔트로피 복호화하여 예측 기준 단위의 관련 정보를 추출하고 예측 기준 단위의 크기를 설정한다. 복호화한 플래그 값이 기준 예측 기준 단위 크기 사용함을 뜻하는 경우, 예측 기준 단위 크기 정보는 비트스트림에 포함되지 않았음을 뜻하므로 사전에 설정된 기준 예측 기준 단위의 크기를 예측 기준 단위의 크기로 설정하여 일련의 복호화 과정을 진행한다.
기준 예측 기준 단위의 크기는 부호화기에서 시퀀스 헤더 등에 포함되어 복호화기로 전송된 경우, 비트스트림 내 시퀀스 헤더 등의 약속된 위치에서 기준 예측 기준 단위의 크기를 추출할 수도 있다. 여기서 기준 예측 기준 단위의 크기 또는 현재 예측 기준 단위의 크기는 엔트로피 복호화 한 값을 할당할 수도 있고 엔트로피 복호화 한 값으로 소정의 크기를 스케일링 (축소 또는 확대)하여 예측 기준 단위의 크기를 얻을 수도 있다. 또는 전술한 첫번째 복호화 방법에서 설명한 바와 같이, 부호화기에서 예측 기준 단위의 크기값에 로그함수를 적용한 값을 부호화한 경우 지수함수를 이용하여 예측 기준 단위의 크기값을 얻을 수도 있다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 예측 기준 단위의 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 예측 기준 단위의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 전송할 예측 기준 단위 크기를 복호화 할 수 있다.
C.2.1.3. 예측 기준단위 복호화 방법 3
이하에서는 예측 기준 단위의 크기를 부호화하는 세번째 방법에 따른 복호화 방법을 설명한다.
세번째 방법에 따르면, 첫 번째 픽쳐에서 기준 예측 기준 단위의 크기를 사용할지에 대한 플래그와 기준 예측 기준 단위 크기를 사용하지 않는 경우 예측 기준 단위의 크기 정보를 엔트로피 복호화한 후, 복호화된 예측 기준 단위의 크기 정보를 이용하여 첫번째 픽쳐 복호화에 필요한 예측 기준 단위 크기를 구한다.
기준 예측 기준 단위의 크기를 사용할지에 대한 플래그가 기준 예측 기준 단위 크기를 사용함을 의미하는 경우 예측 기준 단위의 크기를 기준 예측 기준 단위의 크기와 동일하게 설정한 후 첫번째 픽쳐를 복호화한다.
두번째 픽쳐부터는 이전 픽쳐의 예측 기준 단위의 크기를 현재 예측 기준 단위의 크기로 사용할지에 대한 플래그를 복호화한 후, 이전 픽쳐의 예측 기준 단위의 크기를 사용하지 않을 경우 현재 픽쳐 복호화를 위한 예측 기준 단위의 크기 정보를 복호화한다. 이전 픽쳐의 예측 기준 단위의 크기를 현재 픽쳐 복호화에 사용하는 경우 예측 기준 단위의 크기를 이전 픽쳐의 예측 기준 단위의 크기와 동일한 값으로 설정하여 두번째 픽쳐를 복호화한다.
현재 픽쳐의 예측 기준 단위의 크기를 나타내는 정보인 PredBlockSize를 복호화하는 방법은 엔트로피 복호화한 값을 예측 기준 단위의 크기로 사용할 수도 있고 엔트로피 복호화한 값을 확대 비율 또는 축소 비율로 사용하여 소정의 크기로부터 확대 또는 축소하여 예측 기준 단위의 크기를 얻을 수도 있다. 또는 전술한 첫번째 복호화 방법에서 설명한 바와 같이, 부호화기에서 예측 기준 단위의 크기값에 로그함수를 적용한 값을 부호화한 경우 지수함수를 이용하여 예측 기준 단위의 크기값을 얻을 수도 있다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 기준 예측 기준 단위 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 기준 예측 기준 단위의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 기준 예측 기준 단위 크기를 복호화 할 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명의 실시예는, 다양한 예측 모드를 이용하여 가변 크기의 매크로블록 내 서브블록 또는 예측기준단위를 부호화 및 복호화함으로써 고해상도 영상을 효율적으로 부호화/복호화할 수 있는 효과를 발생하는 매우 유용한 발명이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은 2009년 10월 01일 한국에 출원한 특허출원번호 제 10-2009-0093982 호 및 2009년 10월 01일 출원한 특허출원번호 제 10-2009-0093987 호, 2009년 10월 21일 출원한 특허출원번호 제 10-2009-0100443 호, 2010년 10월 01일 출원한 특허출원번호 제 10-2010-0096035 호에 대해 미국 특허법 119(a)조(35 U.S.C § 119(a))에 따라 우선권을 주장하면, 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다. 아울러, 본 특허출원은 미국 이외에 국가에 대해서도 위와 동일한 동일한 이유로 우선권을 주장하면 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다.

Claims (14)

  1. 영상 부호화/복호화 장치에 있어서,
    예측 기준 단위 후보별로 매크로블록을 부호화하며, 상기 예측 기준 단위 후보별 부호화 비용에 따라 예측 기준 단위를 결정하고, 상기 결정된 예측 기준 단위로 부호화된 영상 데이터 및 상기 결정된 예측 기준 단위 별 예측 타입에 대한 정보와 상기 예측 타입에 따른 예측 데이터를 포함하는 비트스트림을 생성하는 영상 부호화기; 및
    상기 비트스트림으로부터 예측 기준 단위 별 예측 타입에 대한 정보 및 예측 타입에 따른 예측 데이터와 부호화된 영상 데이터를 추출하고, 상기 예측 기준 단위 별 예측 타입에 따라 상기 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 영상 복호화기
    를 포함하는 것을 특징으로 하는 영상 부호화/복호화 장치.
  2. 영상 부호화 장치에 있어서,
    가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 매크로블록 분할기;
    상기 각 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화하는 예측기; 및
    상기 매크로블록 내 서브블록들의 크기 및 모양을 나타내는 분할 정보, 각 서브블록이 인트라 모드인지 인터 모드인지를 나타내는 각 서브블록 별 예측 타입정보 및 상기 서브블록의 예측 타입에 따른 예측 데이터를 부호화하는 부호화기;
    를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  3. 영상 부호화 장치에 있어서,
    가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 매크로블록 분할기;
    상기 매크로블록의 예측 타입에 따라 매크로블록 단위 또는 매크로블록 내 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화하는 예측기; 및
    상기 매크로블록 내 서브블록들의 크기 및 모양을 나타내는 분할 정보, 매크로블록 예측 타입에 따라 각 서브블록의 예측 타입 정보와 예측 데이터 또는 각 서브블록의 예측 데이터를 부호화하는 부호화기;
    를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  4. 영상 복호화 장치에 있어서,
    입력되는 비트스트림으로부터 가변 크기의 매크로블록 내의 서브블록들의 크기를 나타내는 분할정보, 상기 각 서브블록들이 인트라 예측되었는지 인터 예측되었는지를 나타내는 예측 타입정보, 및 인트라 또는 인터 예측에 필요한 예측 모드정보를 복호화하는 복호화기; 및
    복호화된 각 서브블록 별 예측 타입정보 및 상기 예측 모드정보를 이용하여 상기 매크로블록 내의 복호화하고자 하는 현재 블록을 예측 하는 예측기
    를 포함하는 것을 특징으로 하는 영상 복호화 장치
  5. 영상 복호화 장치에 있어서,
    입력되는 비트스트림으로부터 가변 매크로블록의 타입을 나타내는 매크로블록 타입 정보, 상기 매크로블록 서브블록들의 크기를 나타내는 분할 정보, 매크로블록 타입 정보에 따른 각 서브블록들의 예측 타입 정보와 예측 모드 데이터 또는 각 서브블록의 예측 모드 데이터를 추출하여 복호화하는 복호화기; 및
    복호화된 상기 매크로블록 타입에 따라 매크로블록 내 각 서브블록들의 예측 타입 정보와 예측 모드 정보 또는 매크로블록 타입과 매크로블록 내 각 서브블록들의 예측 모드 정보를 이용하여 상기 매크로블록 내의 복호화하고자 하는 현재 블록을 예측하는 예측기
    를 포함하는 것을 특징으로 하는 영상 복호화 장치
  6. 영상 복호화 장치에 있어서,
    입력되는 비트스트림으로부터 예측 기준단위 정보를 추출하여 가변 크기의 매크로블록 내 예측 기준단위를 설정하는 예측 기준단위 설정기; 및
    설정된 상기 예측 기준단위로 상기 비트스트림으로부터 예측 타입정보 및 상기 예측 타입정보에 따른 예측 기준 단위 내 서브블록 별 예측 모드정보를 추출하여 복호화하는 복호화기
    를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  7. 영상 부호화/복호화 방법에 있어서,
    예측 기준 단위 후보별로 매크로블록을 부호화하며, 상기 예측 기준 단위 후보별 부호화 비용에 따라 예측 기준 단위를 결정하고, 상기 결정된 예측 기준 단위로 부호화된 영상 데이터 및 상기 결정된 예측 기준 단위 별 예측 타입에 대한 정보와 상기 예측 타입에 따른 예측 데이터를 생성하는 단계; 및
    상기 비트스트림으로부터 예측 기준 단위 별 예측 타입에 대한 정보 및 예측 타입에 따른 예측 데이터와 부호화된 영상 데이터를 추출하고, 상기 예측 기준 단위 별 예측 타입에 따라 상기 부호화된 영상 데이터를 복호화하는 단계
    를 포함하는 것을 특징으로 하는 영상 부호화/복호화 방법.
  8. 영상 부호화 방법에 있어서,
    가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 단계;
    상기 각 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화 단계; 및
    상기 매크로블록 내 서브블록들의 크기를 나타내는 분할 정보, 각 서브블록이 인트라 모드인지 인터 모드인지를 나타내는 각 서브블록 별 예측 타입정보 및 상기 서브블록의 예측 타입에 따른 예측 데이터를 부호화하는 단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  9. 제 8항에 있어서,
    상기 부호화 단계는,
    인트라 픽처의 경우, 상기 예측 타입정보는 부호화 하지 않고 상기 각 서브블록의 인트라 예측 모드를 나타내는 예측 데이터만을 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  10. 제 8항에 있어서,
    상기 부호화 단계는,
    인터 픽처의 경우, 상기 각 서브블록 별로 인트라 예측이 수행되었는지 인터 예측이 수행되었는지를 나타내는 상기 예측 타입정보를 부호화한 후, 인트라 블록인 경우 인트라 예측 모드정보와 인터 블록인 경우 움직임 정보를 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  11. 영상 부호화 방법에 있어서,
    가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 단계;
    상기 매크로블록의 예측 타입에 따라 매크로블록 단위 또는 매크로블록 내 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화하는 단계; 및
    상기 매크로블록 내 서브블록들의 크기를 나타내는 분할 정보, 매크로블록 예측 타입에 따라 각 서브블록의 예측 타입 정보와 예측 데이터 또는 각 서브블록의 예측 데이터를 부호화하는 단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  12. 영상 복호화 방법에 있어서,
    입력되는 비트스트림으로부터 가변 크기의 매크로블록 내의 각 서브블록들의 크기를 나타내는 분할정보, 상기 각 서브블록들이 인트라 예측되었는지 인터 예측되었는지를 나타내는 예측 타입정보, 및 인트라 또는 인터 예측에 필요한 예측 모드정보를 복호화하는 단계; 및
    복호화된 각 서브블록 별 예측 타입정보 및 상기 예측 모드정보를 이용하여 상기 매크로블록 내의 복호화하고자 하는 현재 블록을 예측 하는 단계
    를 포함하는 것을 특징으로 하는 영상 복호화 방법
  13. 영상 복호화 방법에 있어서,
    입력되는 비트스트림으로부터 가변 매크로블록의 타입을 나타내는 매크로블록 타입 정보, 상기 매크로블록 내 각 서브블록들의 크기를 나타내는 분할 정보, 매크로블록 타입 정보에 따른 각 서브블록들의 예측 타입 정보와 예측 모드 데이터 또는 각 서브블록의 예측 모드 데이터를 추출하여 복호화하는 단계; 및
    복호화된 상기 매크로블록 타입에 따라 매크로블록 내 각 서브블록들의 예측 타입 정보와 예측 모드 정보 또는 매크로블록 타입과 매크로블록 내 각 서브블록들의 예측 모드 정보를 이용하여 상기 매크로블록 내의 복호화하고자 하는 현재 블록을 예측하는 단계
    를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  14. 영상 복호화 방법에 있어서,
    입력되는 비트스트림으로부터 예측 기준단위 정보를 추출하여 가변 크기의 매크로블록 내 예측 기준단위를 설정하는 단계; 및
    설정된 상기 예측 기준단위로 상기 비트스트림으로부터 예측 타입정보 및 상기 예측 타입정보에 따른 예측 기준 단위 내 서브블록 별 예측 모드정보를 추출하여 복호화하는 단계
    를 포함하는 것을 특징으로 하는 영상 복호화 방법.
PCT/KR2010/006740 2009-10-01 2010-10-01 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 WO2011040796A2 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US13/499,406 US9549190B2 (en) 2009-10-01 2010-10-01 Method and apparatus for encoding/decoding image using variable-size macroblocks
US14/745,152 US9609334B2 (en) 2009-10-01 2015-06-19 Method and apparatus for encoding/decoding image using variable-size macroblocks
US14/745,181 US9609335B2 (en) 2009-10-01 2015-06-19 Method and apparatus for encoding/decoding image using variable-size macroblocks
US14/745,093 US9565444B2 (en) 2009-10-01 2015-06-19 Method and apparatus for encoding/decoding image using variable-size macroblocks

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR20090093982 2009-10-01
KR10-2009-0093982 2009-10-01
KR20090093987 2009-10-01
KR10-2009-0093987 2009-10-01
KR20090100443 2009-10-21
KR10-2009-0100443 2009-10-21
KR20100096035A KR101479129B1 (ko) 2009-10-01 2010-10-01 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR10-2010-0096035 2010-10-01

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/499,406 A-371-Of-International US9549190B2 (en) 2009-10-01 2010-10-01 Method and apparatus for encoding/decoding image using variable-size macroblocks
US14/745,093 Continuation US9565444B2 (en) 2009-10-01 2015-06-19 Method and apparatus for encoding/decoding image using variable-size macroblocks

Publications (2)

Publication Number Publication Date
WO2011040796A2 true WO2011040796A2 (ko) 2011-04-07
WO2011040796A3 WO2011040796A3 (ko) 2011-09-29

Family

ID=43826820

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2010/006740 WO2011040796A2 (ko) 2009-10-01 2010-10-01 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2011040796A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115348444A (zh) * 2017-07-06 2022-11-15 三星电子株式会社 图像编码方法和设备以及图像解码方法和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070029450A (ko) * 2005-09-09 2007-03-14 삼성전자주식회사 영상의 부호화 및 복호화 장치와, 그 방법, 및 이를수행하기 위한 프로그램이 기록된 기록 매체
KR20070069073A (ko) * 2005-12-27 2007-07-02 닛본 덴끼 가부시끼가이샤 부호화 데이터 출력 방법 및 장치, 재부호화 데이터 생성방법 및 장치, 부호화 데이터 복원 방법 및 장치, 부호화방법 및 장치, 및 컴퓨터 판독 가능한 기록 매체
KR20070118560A (ko) * 2006-06-12 2007-12-17 경희대학교 산학협력단 Fgs코딩에서 우선적인 인코딩/디코딩 방법 및 장치
KR20080034131A (ko) * 2005-07-22 2008-04-18 미쓰비시덴키 가부시키가이샤 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 화상 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체, 화상 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080034131A (ko) * 2005-07-22 2008-04-18 미쓰비시덴키 가부시키가이샤 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 화상 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체, 화상 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR20070029450A (ko) * 2005-09-09 2007-03-14 삼성전자주식회사 영상의 부호화 및 복호화 장치와, 그 방법, 및 이를수행하기 위한 프로그램이 기록된 기록 매체
KR20070069073A (ko) * 2005-12-27 2007-07-02 닛본 덴끼 가부시끼가이샤 부호화 데이터 출력 방법 및 장치, 재부호화 데이터 생성방법 및 장치, 부호화 데이터 복원 방법 및 장치, 부호화방법 및 장치, 및 컴퓨터 판독 가능한 기록 매체
KR20070118560A (ko) * 2006-06-12 2007-12-17 경희대학교 산학협력단 Fgs코딩에서 우선적인 인코딩/디코딩 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115348444A (zh) * 2017-07-06 2022-11-15 三星电子株式会社 图像编码方法和设备以及图像解码方法和设备
CN115348447A (zh) * 2017-07-06 2022-11-15 三星电子株式会社 图像编码方法和设备以及图像解码方法和设备

Also Published As

Publication number Publication date
WO2011040796A3 (ko) 2011-09-29

Similar Documents

Publication Publication Date Title
WO2011040794A2 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
WO2011040795A2 (ko) 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치
WO2020076143A1 (ko) 다중 가정 예측을 사용하는 비디오 신호 처리 방법 및 장치
WO2018097693A2 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019182385A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018030773A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2015122549A1 (ko) 동영상 처리 방법 및 장치
WO2018066867A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020076116A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018097692A2 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2017192011A2 (ko) 화면 내 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2011096741A2 (en) Method and apparatus for encoding video based on scanning order of hierarchical data units, and method and apparatus for decoding video based on scanning order of hierarchical data units
WO2020060158A1 (ko) 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
WO2017026681A1 (ko) 비디오 코딩 시스템에서 인터 예측 방법 및 장치
WO2011126272A2 (en) Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
WO2012005520A2 (en) Method and apparatus for encoding video by using block merging, and method and apparatus for decoding video by using block merging
WO2012096539A2 (ko) 선택적 스캔 모드를 이용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2014081226A1 (ko) 영상 디코딩 방법 및 이를 이용하는 장치
WO2020111843A1 (ko) 화면 내 예측 필터링을 이용한 비디오 신호 처리 방법 및 장치
WO2018135885A1 (ko) 변환 처리를 제공하는 영상 복호화 및 부호화 방법
WO2013141596A1 (ko) 트리 구조의 부호화 단위에 기초한 스케일러블 비디오 부호화 방법 및 그 장치, 트리 구조의 부호화 단위에 기초한 스케일러블 비디오 복호화 방법 및 그 장치
WO2011129672A2 (ko) 영상 부호화/복호화 장치 및 방법
WO2020096427A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020005045A1 (ko) 머지 모드 기반의 인터 예측 방법 및 장치
WO2016190627A1 (ko) 비디오 신호 처리 방법 및 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10820869

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase in:

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13499406

Country of ref document: US

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS (EPO FORM 1205A DATED 06-07-2012)

122 Ep: pct application non-entry in european phase

Ref document number: 10820869

Country of ref document: EP

Kind code of ref document: A2