WO2011129671A2 - 영상 부호화/복호화 장치 및 방법 - Google Patents

영상 부호화/복호화 장치 및 방법 Download PDF

Info

Publication number
WO2011129671A2
WO2011129671A2 PCT/KR2011/002761 KR2011002761W WO2011129671A2 WO 2011129671 A2 WO2011129671 A2 WO 2011129671A2 KR 2011002761 W KR2011002761 W KR 2011002761W WO 2011129671 A2 WO2011129671 A2 WO 2011129671A2
Authority
WO
WIPO (PCT)
Prior art keywords
block
information
encoding
encoded
mode
Prior art date
Application number
PCT/KR2011/002761
Other languages
English (en)
French (fr)
Other versions
WO2011129671A3 (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
Priority claimed from KR1020110035424A external-priority patent/KR101813189B1/ko
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to US13/641,673 priority Critical patent/US10015512B2/en
Priority to CN201180029802.XA priority patent/CN102986213B/zh
Publication of WO2011129671A2 publication Critical patent/WO2011129671A2/ko
Publication of WO2011129671A3 publication Critical patent/WO2011129671A3/ko
Priority to US14/752,189 priority patent/US9967588B2/en
Priority to US14/752,108 priority patent/US9967587B2/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Definitions

  • the present invention relates to an image encoding / decoding apparatus and method. More specifically, it is possible to efficiently encode the encoding information used to encode the image and to encode the image by selectively using various encoding methods, and correspondingly according to the encoded information and the encoding method encoded as described above.
  • the present invention relates to an image encoding / decoding apparatus and method capable of improving the compression efficiency and the reconstruction efficiency of an image.
  • Video data compression techniques include H.261, H.263, MPEG-2, and MPEG-4.
  • the video compression standard encodes each image by dividing each image into macroblocks having a fixed size consisting of 16 ⁇ 16 pixels of a luminance component and a rectangular area 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 block mode used in the existing video encoding apparatus encodes a flag indicating that the current encoding target block uses a predictive motion vector and has no transform coefficient to be encoded, and no further information is encoded.
  • the block type information and the prediction information are encoded and the transform coefficient is encoded.
  • the present invention is to improve the compression efficiency of the image by efficiently encoding the encoding information used to encode the image and to encode the image by selectively using various encoding methods and decoding methods. There is a main purpose.
  • An image encoding / decoding apparatus for achieving the above object encodes split mode information indicating whether a block mode of a block to be encoded in a macroblock is a skip mode, and blocks block information and splitting.
  • An image encoder for encoding at least one of transform type information of a block, coded block pattern (CBP) information, and delta quantization parameter information according to a combination of mode information, and encoding coefficient information of the block based on encoded information of the block; And block mode information indicating whether a block mode of a block to be decoded by decoding the bitstream is a skip mode, split mode information indicating whether a block is divided into subblocks, and block mode information and split mode information. And an image decoder for restoring the transform type information encoded according to the combination of the at least one and restoring the block based on the recovered information or decoding the bitstream.
  • CBP coded block pattern
  • An image encoding apparatus for achieving the above object encodes split mode information indicating whether a block mode of a block to be encoded in a macroblock is a skip mode, and blocks block information and the split mode.
  • the encoding information encoder may generate the lowest node value in the macroblock based on the block mode information and the split mode information, and generate the highest node value of the tree structure based on the generated lowest node value.
  • the encoding information encoder may select a transform type in units of 16 ⁇ 16 pixel blocks for a macroblock, and use the same transform type as a transform type selected in units of 16 ⁇ 16 pixel blocks for a subblock within the 16 ⁇ 16 pixel block.
  • the encoding information encoder may select a transform type in blocks corresponding to 16x16 pixel blocks or more within a macroblock, and select a transform type in 16x16 pixel blocks for subblocks divided into blocks smaller than 16x16 pixel blocks. have.
  • the encoding information encoder may omit the encoding of the transform type for blocks without transform coefficients.
  • the encoding information encoder may omit the encoding of the transform type.
  • an apparatus for encoding an image encodes split mode information indicating whether a block mode of a block to be encoded in a macroblock is a skip mode, and includes block mode information and split mode.
  • the CBP information of the block may be a 1-bit flag indicating whether there is a non-zero transform coefficient in the block.
  • the encoding information encoder may omit generation of a node value for the current block when information indicating that there is no transform coefficient to be encoded in the current block among the previously transmitted mode values or flags.
  • the encoding information encoder may encode the CBP information when the block includes a non-zero transform coefficient.
  • the encoding information encoder may generate a node value depending on whether there is a non-zero transform coefficient in the 4x4 transform or 8x8 pixelblock for the luminance component of the block.
  • the encoding information encoder may generate a node value according to whether a non-zero transform coefficient is present in an 8x16 pixel block or a 16x8 pixel block with respect to an 8x16 transform or a 16x8 transform with respect to a luminance component of the block.
  • the encoding information encoder may generate the lowest node value in the macroblock based on the block mode information and the split mode information, and generate the highest node value of the tree structure based on the generated lowest node value.
  • an apparatus for encoding an image encodes split mode information indicating whether a block mode of a block to be encoded in a macroblock is a skip mode, and encodes block mode information and splitting.
  • the encoding information encoder may generate the lowest node value in the macroblock based on the block mode information and the split mode information, and generate the highest node value of the tree structure based on the generated lowest node value.
  • the encoding information encoder may encode delta quantization parameter information only for a 16x16 pixelblock or macroblock having a non-zero transform coefficient to be encoded in the macroblock.
  • the encoding information encoder may convert the delta quantization parameter information into a predetermined code number and then encode the code number in a tree structure.
  • the encoding information encoder may encode only the non-zero delta quantization parameter information after encoding the absolute value of the delta quantization parameter information.
  • a block mode information indicating whether a block mode of a block to be decoded by decoding a bitstream is a skip mode, and a block is a subblock.
  • a coded information decoder for reconstructing split mode information indicating whether or not to be divided into pieces, and transform type information encoded according to a combination of block mode information and split mode information; And an image decoder for restoring the block based on the information restored by the encoded information decoder or for decoding the bitstream.
  • An image decoding apparatus for achieving the above object is block mode information indicating whether a block mode of a block to be decoded by decoding a bitstream is a skip mode, and a block is a subblock.
  • a coded information decoder for reconstructing split mode information indicating whether or not to be divided into CBP information encoded according to a combination of block mode information and split mode information;
  • an image decoder for restoring the block based on the information restored by the encoded information decoder or for decoding the bitstream.
  • an image decoding apparatus for achieving the above object is block mode information indicating whether a block mode of a block to be decoded by decoding a bitstream is a skip mode, and a block is a sub A coded information decoder for reconstructing split mode information indicating whether to be divided into blocks and delta quantization parameter information encoded according to a combination of the block mode information and the split mode information; And an image decoder for restoring the block based on the information restored by the encoded information decoder or for decoding the bitstream.
  • the video encoding / decoding method encodes split mode information indicating whether a block mode of a block to be encoded in a macroblock is a skip mode, and performs block mode information and split mode information. Encoding at least one of transform type information, CBP information, and delta quantization parameter information of the block according to the combination, and encoding coefficient information of the block based on the encoded information of the block; And block mode information indicating whether a block mode of a block to be decoded by decoding the bitstream is a skip mode, split mode information indicating whether a block is divided into subblocks, and block mode information and split mode information. Restoring the encoded transform type information according to a combination of the two and restoring the block based on the restored information or decoding the bitstream.
  • a method of encoding an image encoding split mode information indicating whether a block mode of a block to be encoded in a macroblock is a skip mode, and combining block mode information and the split mode information.
  • Encoding information encoding step of encoding transform type information of a block according to the encoding; And an image encoding step of encoding the coefficient information of the block based on the transform type information of the block.
  • the lowest node value in the macroblock may be generated based on the block mode information and the split mode information, and the highest node value of the tree structure may be generated based on the generated lowest node value.
  • a transform type may be selected in units of 16 ⁇ 16 pixel blocks for a macroblock, and a transform type identical to the transform type selected in units of 16 ⁇ 16 pixel blocks may be used for a subblock within the 16 ⁇ 16 pixel block.
  • a transform type may be selected for a block of 16x16 pixel blocks or more within a macroblock, and a transform type may be selected for 16x16 pixel blocks for a subblock divided into blocks smaller than 16x16 pixel blocks. Can be.
  • encoding of a transform type may be omitted for blocks without transform coefficients.
  • encoding of the transform type may be omitted.
  • Another embodiment of an image encoding method according to the present invention for achieving the above object is to encode split mode information indicating whether a block mode of a block to be encoded in a macroblock is a skip mode, and block mode information and split mode.
  • An encoding information encoding step of encoding the CBP information according to the combination of the information;
  • the CBP information of the block may be a 1-bit flag indicating whether there is a non-zero transform coefficient in the block.
  • the encoding information encoding step when information indicating that a transform coefficient to be encoded is not included in the current block among the previously transmitted mode values or flags, generation of node values for the current block may be omitted.
  • the CBP information may be encoded when the block includes non-zero transform coefficients.
  • the encoding information encoding step may generate a node value depending on whether there is a non-zero transform coefficient in the 4x4 transform or 8x8 pixelblock for the luminance component of the block.
  • the encoding information encoding step may generate a node value according to whether a non-zero transform coefficient is present in an 8x16 pixel block or a 16x8 pixelblock for a 16x8 transform or a luminance component of the block.
  • the lowest node value in the macroblock may be generated based on the block mode information and the split mode information, and the highest node value of the tree structure may be generated based on the generated lowest node value.
  • Another embodiment of the image encoding method according to the present invention for achieving the above object is to encode split mode information indicating whether a block mode of a block to be encoded in a macroblock is a skip mode, and block mode information and division An encoding information encoding step of encoding the delta quantization parameter information of the block according to the combination of the mode information; And an image encoding step of encoding coefficient information of the block based on the delta quantization parameter information of the block.
  • the lowest node value in the macroblock may be generated based on the block mode information and the split mode information, and the highest node value of the tree structure may be generated based on the generated lowest node value.
  • the delta quantization parameter information may be encoded only for a 16x16 pixelblock or a macroblock having a non-zero transform coefficient to be encoded in the macroblock.
  • the delta quantization parameter information may be converted into a predetermined code number, and then the code number may be encoded in a tree structure.
  • the absolute value of the delta quantization parameter information may be encoded, and then only the non-zero delta quantization parameter information may be encoded.
  • a block mode information indicating whether a block mode of a block to be decoded by decoding a bitstream is a skip mode, and a block is a subblock.
  • Another embodiment of an image decoding method for achieving the above object is block mode information indicating whether a block mode of a block to be decoded by decoding a bitstream is a skip mode, and the block is a subblock.
  • the compression efficiency of an image can be improved by efficiently encoding encoding information used to encode an image and encoding an image by selectively using various encoding methods and decoding methods.
  • the image reconstruction efficiency may be improved by adaptively decoding the image according to the encoding of the image.
  • FIG. 1 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention.
  • FIG. 2 is a diagram schematically illustrating the image encoder of FIG. 1.
  • FIG. 3 is an exemplary diagram illustrating macroblocks and subblocks for intra prediction encoding and inter prediction encoding of various sizes according to an embodiment of the present invention.
  • FIG. 4 is an exemplary view showing a number for each division type according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating an image encoding method according to an embodiment of the present invention.
  • FIG. 6 is an exemplary diagram illustrating a syntax structure of a bitstream encoded according to an embodiment of the present invention.
  • FIG. 7 and 8 are exemplary diagrams for describing a process of encoding split type information using a tree structure according to an embodiment of the present invention.
  • 9 and 10 are diagrams for explaining an example of a tree structure according to an embodiment of the present invention.
  • 11 and 12 are diagrams for explaining encoding and decoding of a transform type according to an embodiment of the present invention.
  • FIG. 13 is a diagram illustrating an example of a lowest node value for a transform type value to be encoded.
  • FIG. 14 is a diagram illustrating an example of the highest node value of FIG. 13.
  • FIG. 15 is a diagram illustrating an example of a tree structure of macroblock number 1 of FIG. 11.
  • FIG. 16 is a diagram illustrating an example of a tree structure of macroblock number 4 of FIG. 11.
  • FIG. 17 is a diagram illustrating an example of a tree structure of macroblock number 7 of FIG. 11.
  • FIG. 18 is a diagram illustrating another example of a lowest node value for a transform type value to be encoded.
  • FIG. 19 is a diagram illustrating an example of a tree structure of macroblock number 4 shown in FIG. 18.
  • FIG. 20 is a diagram illustrating an example of a tree structure of macroblock number 7 shown in FIG. 18.
  • 21 is a flowchart illustrating a coding / decoding procedure of a CBPX flag and a CBP.
  • 22 is a diagram illustrating an example of a selected block mode and a selected transform type in an encoder.
  • FIG. 23 is a diagram illustrating an example of a lowest node value for a transmission unit of a CBP bit and a CBP bit value.
  • FIG. 24 is a diagram illustrating an example of the most significant node value when a block corresponding to the 16x16 region of FIG. 23 is used as the most significant block.
  • 25 is a diagram for explaining an example of delta quantization parameter coding.
  • FIG. 26 is a diagram illustrating an example of converting a delta quantization parameter of FIG. 25 into a promised code number.
  • FIG. 27 is a diagram for explaining a tree structure generation example of FIG. 26.
  • FIG. 28 is a diagram for explaining another example of generating the tree structure of FIG. 26.
  • 29 is a diagram for explaining another example of delta quantization parameter encoding.
  • FIG. 30 is a diagram illustrating a case where an absolute value of the delta quantization parameter of FIG. 29 is taken.
  • FIG. 31 is a diagram illustrating a method of encoding a code of FIG. 29.
  • 32 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 33 is a diagram schematically illustrating the image decoder of FIG. 32.
  • 34 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.
  • 35 is a block diagram schematically illustrating a video encoding apparatus according to another embodiment of the present invention.
  • 36 is a flowchart illustrating a video encoding method according to another embodiment of the present invention.
  • FIG. 37 is a block diagram schematically illustrating a configuration of an image decoding apparatus according to another embodiment of the present invention.
  • 38 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.
  • 39 is a diagram for explaining an example of transform information encoding according to the second embodiment of the present invention.
  • 40 is a diagram for explaining an example of transform information encoding of subblock B of FIG. 39 using a tree structure.
  • FIG. 41 is a diagram for explaining an example of transform information encoding of subblock C of FIG. 39 using a tree structure.
  • FIG. 42 is a diagram for explaining another example of transform information encoding of subblock C of FIG. 39 using a tree structure.
  • FIG. 43 is a diagram for explaining an example of transform information encoding of subblock D of FIG. 39 using a tree structure.
  • a video encoding apparatus (Video Encoding Apparatus) and a video decoding apparatus (Video Decoding Apparatus) according to an embodiment of the present invention to be described later, a personal computer (PC), a notebook computer, a personal digital assistant (PDA), A portable multimedia player (PMP: Portable Multimedia Player), PlayStation Portable (PSP: PlayStation Portable), a wireless communication terminal (Wireless Communication Terminal), a smart phone (Smart Phone) and the like, to communicate with various devices or wired or wireless communication network It refers to various devices including a communication device such as a communication modem, a memory for storing various programs and data for encoding or decoding an image, and a microprocessor for executing and operating a program.
  • a communication device such as a communication modem
  • a memory for storing various programs and data for encoding or decoding an image
  • a microprocessor for executing and operating a program.
  • 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.
  • the input image is divided, encoded, and decoded in units of macroblocks, but embodiments of the present invention are not limited thereto. It may be divided into an atypical region and encoded and decoded in the divided region unit.
  • FIG. 1 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention.
  • the image encoding apparatus 100 may be configured to include an encoding information encoder 110 and an image encoder 200.
  • the encoding information encoder 110 divides the block mode information indicating whether the block mode of the block to be encoded is a skip mode and the block is divided into subblocks. Encoding the partition mode information indicating whether the information is determined, and encoding skip motion information of the block according to a combination of the block mode information and the partition mode information, or block type information of the block. Prediction Encoding Information including Pd and Prediction Information is encoded.
  • encoding information refers to additional information used to encode pixel information, not pixel information itself, when encoding pixel information of an image in block units.
  • coded information may include block mode information, split mode information, skip motion information, block type information, prediction information, predictive coding information, transform type information, coded block pattern (CBP), and the like.
  • Information such as a delta quantization parameter, skip type information, and the like may be used.
  • the block mode information refers to information indicating whether a block mode of a block is a skip mode.
  • the block mode is a mode indicating whether a block is skipped without being encoded or encoded without being skipped.
  • the block mode may be represented by two modes, a skip mode and a non-skip mode.
  • Such block mode information may be embodied as a skip block flag, for example, a 1-bit flag indicating whether the block mode of the block is the skip mode or the non-skip mode, but is not necessarily limited thereto. It may be implemented.
  • the skip mode refers to a mode in which specific information such as block type information, motion information, or transform coefficients is not encoded.
  • the image encoding apparatus 100 may encode only the information indicating the skip mode, and may not encode other block types, motion information, and transform coefficients. .
  • the skip mode may be a mode in which only motion information of a block is encoded and information such as type information and transform coefficient is not encoded.
  • the skip mode may be a mode in which only a transform type and a transform coefficient of a block are encoded and type information and motion information are not encoded.
  • information that is not transmitted in the skip mode for each block size may be different. For example, when the 64x64 block is in the skip mode, only the transform coefficient may be encoded. When the 16x16 block is in the skip mode, only motion information may be encoded.
  • Split mode information refers to information indicating whether a block is divided into smaller subblocks.
  • the macroblock of 64x64 pixel size has two 64x32 pixel size. It can be divided into subblocks of various sizes and numbers such as subblocks, one 64x32 pixel subblock, two 32x32 pixel subblocks, four 32x32 pixel subblocks, and the like.
  • the mode information indicates whether the macroblock is divided into subblocks and encoded.
  • partition mode information may be implemented as, for example, a partition flag, which is a 1-bit flag indicating whether a block is divided into subblocks or not, but is not necessarily limited thereto. It may be.
  • split mode information refers to information indicating whether a block is split into smaller subblocks of a specific size.
  • the image encoding apparatus 100 uses 64x64 pixels through a 1-bit flag indicating whether the block is divided into 16x16 blocks.
  • a macroblock of size may be divided into 16 16x16 blocks, and may be divided into smaller subblocks for each 16x16 block, and may be encoded through information (divided type) indicating the shape of the subblock.
  • the skip motion information includes a motion vector determined by motion estimation of the block or the difference vector between the motion vector of the block and the predicted motion vector of the block and / or the reference picture. Refers to the index. That is, when the block mode of the block is the skip mode, the image encoding apparatus 100 encodes skip motion information without encoding coefficient information of the block, and restores and restores skip motion information in the image decoding apparatus to be described later. The block is restored by compensating for the motion of the block by using skip motion information.
  • the image encoding apparatus 100 determines a motion determined by motion estimation on the block. Only the difference vector between the vector itself or the motion vector of the block and the predictive motion vector of the block is encoded, and the reference picture index and the motion information of the block are not encoded.
  • the image decoding apparatus to be described later reconstructs only the determined motion vector itself or the difference vector between the motion vector of the corresponding block and the predicted motion vector of the block, and uses a reference picture index of 0 (that is, uses a picture previously reconstructed as the reference picture). The block is restored by compensating for the motion.
  • the skip mode when determining the predicted motion vector of the block to be encoded, when at least one of the motion vector of the upper block and the left block of the current block to be encoded is a zero vector, that is, ⁇ 0 , 0 ⁇ ), a zero vector may be used as a predicted motion vector. Otherwise, the median of the motion vectors of the upper, left, and upper-right blocks is used as the predicted motion vector.
  • the prediction motion vector when the current decoding target block is the skip mode, when the prediction motion vector is determined, when the motion vector of the upper or left block is ⁇ 0,0 ⁇ , the ⁇ 0,0 ⁇ vector is used as the prediction motion vector and then restored. The block is recovered by performing motion compensation by restoring the difference vector.
  • another prediction motion vector for each block size may be used.
  • the median vector is used as a predictive motion vector regardless of the vector value of the upper block and the left block of the current encoding target block, and for the 16x16 block, the upper block or the left block of the current encoding target block. If the vector of is (0,0), the zero-vector is used as the predictive vector. Otherwise, the median vector of three motion vectors of the left block, the upper block, and the upper-left block is used as the predictive motion vector. (In the case of the opposite, too)
  • the block type information refers to information indicating whether a corresponding block is an inter block or an intra block and a division type of a subblock of the corresponding block.
  • such block type information may be encoded in units of macroblocks, and the 1-bit block type flag indicating whether the macroblock is an inter macroblock or an intra macroblock and a subblock of the block. It may be implemented by including partition type information indicating a partition type.
  • the block type flag may indicate whether the corresponding block is an inter macroblock or an intra macroblock as binary bits of 1 or 0.
  • the partition type information may be represented by a partition type number of a subblock.
  • the block type information may be encoded in a 16x16 size unit, and when the current 16x16 block is an intra block, it indicates that all subblocks in the current block are in intra mode.
  • the block type information includes a block type flag of 1 bit indicating whether the block is an inter macroblock or an intra macroblock, partition type information indicating a partition type of a subblock of the block, and a block mode of the subblock. It may be implemented by including a 1-bit skip subblock flag indicating whether the skip mode.
  • the skip subblock flag indicates whether each subblock of the corresponding block is in a skip mode, and when a subblock is in a skip mode, it indicates that the subblock is skipped without being encoded. That is, when a subblock is a skip mode among subblocks of a block to be encoded, motion information or coefficient information is not encoded for the subblock.
  • the block type information may be implemented as a block type number assigned to a plurality of available block types based on whether the corresponding block is an inter block or an intra block and a partition type of a subblock of the corresponding block.
  • the block type information may indicate a block type of a block to be encoded according to split mode information or may indicate a block type of each subblock of a block to be encoded.
  • the split type information indicates whether the block to be encoded is an inter macroblock or an intra macroblock and the split type of the block (ie If the split mode information indicates that a block to be encoded is divided into subblocks, the split type information indicates whether each subblock of the block to be encoded is an interblock or an intrablock. And the partition type of the subblocks of the corresponding block.
  • the prediction information refers to information used for prediction when predicting and encoding a block to be encoded or each subblock of the block.
  • Such prediction information may be information about an intra prediction mode for intra prediction encoding, information about a motion vector for inter prediction encoding, information about a reference picture index, and the like.
  • Transform type information refers to information on a transform unit that performs transform and quantization when transforming and quantizing a block to be encoded or each subblock of the corresponding block. For example, when a block of 64x64 pixel size is no longer partitioned and encoded and 16x16 transform is determined to be efficient, information indicating that 16x16 transform is used may be encoded as transform type information.
  • the coded block pattern refers to information indicating whether a block to be encoded or the coefficients of each subblock of the corresponding block are all zero, and the delta quantization parameter indicates a quantization parameter for the block to be encoded or each subblock of the corresponding block. Say information.
  • the above-described block mode information, split mode information, block type information, prediction information, split type information, coded block pattern, and delta quantization parameter may be determined by the encoding information encoder 110 by analyzing an input image.
  • the 200 may analyze and determine the input image.
  • the image encoder 200 encodes coefficient information of a block based on block type information and prediction information of the block. For example, the image encoder 200 indicates that the block mode information indicates that the block mode of the block to be encoded is not the skip mode, and the block type information indicates that the block is divided into subblocks of various shapes and sizes. In accordance with the prediction information for each subblock, intra-prediction encoding or inter-prediction encoding of each subblock is performed to encode coefficient information of the corresponding block.
  • the coefficient information refers to information about quantized transform coefficients generated by predicting a luminance component and / or a chrominance component of a block to be encoded in the image, and transforming and quantizing the residual block. Texture data).
  • the image encoder 200 may include a predictor 210, a subtracter 220, a transformer and quantizer 230, an encoder 240, and inverse quantization. And an inverse transformer and inverse quantizer 250, an adder 260, a filter 270, and a picture buffer 280.
  • the predictor 210 may be configured to include an intra predictor 212 and an inter predictor 214, and the inter predictor 214 may again move with a motion estimator 216. It may be configured to include a motion compensator (218).
  • An input picture consisting of one picture or frame of a video is divided into macroblocks having NxN (where N is an integer greater than or equal to 16) pixels, and each of the divided macroblocks is encoded in the image of FIG. Input to device 100.
  • the macroblock is a luminance block having NxN pixels and a chrominance block having two (M / 2) x (N / 2) pixels ( Chrominance Block).
  • the macroblock includes not only 16x16 pixel blocks but also 32x32 pixel blocks, 64x64 pixel blocks, and the like, and macroblocks larger than 16x16 pixel blocks are also called extended macroblocks.
  • Each macroblock may be divided into smaller subblocks as shown in FIG. 3 to perform intra prediction encoding or inter prediction encoding.
  • FIG. 3 is an exemplary diagram illustrating macroblocks for intra prediction encoding and inter prediction encoding and subblocks of various sizes according to an embodiment of the present invention.
  • the subblocks 64x64 pixel blocks, 64x32 pixel blocks, 32x64 pixel blocks, 32x32 pixel blocks belong to the macroblock layer 0
  • the subblocks 32x32 pixel blocks, 32x16 pixel blocks, The 16x32 pixel block and the 16x16 pixel block belong to macroblock layer 1.
  • the subblocks of the macroblock layer K + 1 may be used only when the largest subblock of the subblocks of the macroblock layer K (where 0 ⁇ K ⁇ log 2 (N / 4)) is divided into four blocks. have.
  • the image encoding apparatus 100 may calculate encoding efficiency when the macroblock is encoded into each subblock, and determine the subblock when the highest encoding efficiency is the final intra prediction block or the inter prediction block. Coding efficiency may be measured based on a rate-distortion optimization (RDO) technique.
  • RDO rate-distortion optimization
  • the size of the minimum block may be determined according to the maximum layer value MaxLayer, which is the maximum usable layer value. For example, in the case of a macroblock of N ⁇ N pixels, the size of the minimum block may be determined as N / (2 MaxLayer ).
  • FIG. 4 is an exemplary view showing a number for each division type according to an embodiment of the present invention.
  • the partition type number 0 is assigned to the N / 2 K ⁇ N / 2 K pixel blocks of macroblock layer K. Is assigned. If the N / 2 K ⁇ N / 2 K pixel block of macroblock layer K is divided into two N / 2 K ⁇ N / 2 K + 1 pixel blocks, N / 2 K ⁇ N / 2 of macroblock layer K The division type number 1 is assigned to the K pixel block.
  • N / 2 K ⁇ N / 2 K pixel block of macroblock layer K is divided into two N / 2 K + 1 ⁇ N / 2 K pixel blocks, N / 2 K ⁇ N / 2 of macroblock layer K
  • the division type number 2 is assigned to the K pixel block.
  • the macroblock layer K of the N / 2 K ⁇ N / 2 K pixel block is 4 N / 2 K + 1 ⁇ N / 2 when divided into K + 1, the macroblock layer K N / 2 K ⁇ N / 2
  • the division type number 3 is assigned to the K pixel block.
  • numbers such as 0, 1, 2, and 3 indicated in the divided subblocks in the N / 2 K ⁇ N / 2 K pixel blocks of each macroblock layer K indicate a partition number for identifying each subblock. )to be.
  • FIG. 5 is a flowchart illustrating an image encoding method according to an embodiment of the present invention.
  • the image encoding apparatus 100 encodes block mode information indicating whether a block mode of a block to be encoded of an image is a skip mode (S510). That is, the image encoding apparatus 100 determines whether to encode coefficient information of a block to be encoded or to encode only motion information of a block without encoding coefficient information of the block, and when only encoding motion information of a block. Encoding block mode information indicating that is a skip mode, and when encoding not only the motion information of the block but also the coefficient information of the block, the block mode information indicating that the block mode is not the skip mode is encoded.
  • the image encoding apparatus 100 encodes split mode information indicating whether a corresponding block is divided into subblocks (S520). That is, the image encoding apparatus 100 determines whether to encode a block to be encoded into smaller subblocks to encode each subblock or to encode the block without dividing the block into smaller subblocks, and then divide the block into smaller subblocks. When encoding without partitioning, encoding is performed on split mode information indicating that a block is not divided into subblocks. When splitting and encoding a block into smaller subblocks, encoding is performed on split mode information indicating that a block is divided into subblocks. .
  • a block to be encoded is a macroblock having a size of 64x64 pixels
  • the image encoding apparatus 100 divides a macroblock having a size of 64x64 pixels into subblocks having a size of 16x16 pixels and encodes or encodes without subdivision. Is determined, and the split mode information is encoded accordingly.
  • each 16x16 block may be divided into smaller sized subblocks, and the block type is encoded and transmitted to the decoder.
  • the image encoding apparatus 100 encodes skip motion information of a block according to a combination of block mode information and split mode information, or encodes predictive encoding information including block type information of a block and prediction information of the block (S530).
  • the coefficient information of the block is encoded based on the type information and the prediction information (S540). That is, the image encoding apparatus 100 may block according to each case in which the block mode information combines whether the block mode of the block to be encoded is the skip mode and whether the split mode information indicates that the block is divided into subblocks. Encodes in different ways.
  • the image encoding apparatus 100 may encode a skip motion vector for the block. have. That is, the image encoding apparatus 100 performs motion estimation on a block to be encoded in units of 64x64 pixels to find a reference block, which is the block most similar to the block to be encoded, in the reference picture, and to find a relative position between the reference block and the block to be encoded.
  • a motion vector indicating is determined as a skip motion vector
  • a reference picture index indicating a reference picture including a reference block is determined as a skip reference picture index
  • skip motion information including a skip motion vector and a skip reference picture index is encoded.
  • the image encoding apparatus 100 skips the motion vector for the subblock of the block to be encoded. Can be encoded. That is, the image encoding apparatus 100 performs motion estimation for each subblock of the block to be encoded in units of 16x16 pixels to find a reference subblock in the reference picture, which is the block most similar to each subblock of the block to be encoded, in the reference picture.
  • a motion vector indicating a relative position of a block and each subblock of a block to be encoded is determined as a skip motion vector, and a reference picture index indicating a reference picture including a reference subblock is determined as a skip reference picture index.
  • the skip motion information including the skip reference picture index is encoded. Therefore, when the block mode information indicates that the block mode of the block is the skip mode and the split mode information indicates that the block is divided into subblocks, the skip motion information is encoded by the number of each subblock.
  • the image encoding apparatus 100 corresponds to a block to be encoded.
  • the predictive encoding information including the block type information and the prediction information about each other may be encoded. That is, the image encoding apparatus 100 performs motion estimation on a block to be encoded in units of 64x64 pixels to find a reference block, which is the block most similar to the block to be encoded, in the reference picture, and to find a relative position between the reference block and the block to be encoded.
  • Coefficient information obtained by transforming and quantizing the block is encoded, and block type information and prediction information used for predictive encoding are also encoded.
  • the block for the subblock of the block Predictive encoding information including type information and prediction information may be encoded. That is, when the block type of the subblock of the block to be encoded is an interblock, the video encoding apparatus 100 may be divided into subblocks of 16x16, 16x8, 8x16, and 8x8 sizes. When a 16x16 block is divided into four 8x8 subblocks, each 8x8 block may be divided into 8x8, 8x4, 8x4, and 4x4 smaller subblocks within the 8x8 block.
  • a motion vector indicating the relative position of the reference subblock and each subblock of the block to be encoded in the reference picture by finding a reference subblock that is the block most similar to each subblock of the block to be encoded by motion estimation in units of the size of the subblock
  • a predicted subblock generated by determining a reference picture index indicating a reference picture including a reference subblock, and compensating for the motion of each subblock of a block to be encoded based on the determined motion vector for each subblock;
  • Coefficient information obtained by transforming and quantizing a residual subblock, which is a difference between subblocks of a block to be encoded, is encoded, and prediction encoding information such as block type information and prediction information used for prediction encoding is also encoded.
  • the intra prediction mode of the corresponding subblock is determined, and the coefficient information and the predictive encoding information are encoded by predictive encoding based on the determined intra prediction mode. Therefore, when the block mode information indicates that the block mode of the block is not the skip mode and the split mode information indicates that the block is not divided into subblocks, the coefficient information and the predictive encoding information are encoded by the number of each subblock.
  • the block type information may be a block type number assigned to a plurality of available block types based on whether the block is an inter macroblock or an intra macroblock and a partition type of a subblock of the block.
  • the predictive encoding information may further include one or more of transform type information for the subblock, an encoded block pattern for the subblock, and a delta quantization parameter for the subblock.
  • the block type information may include a block type flag indicating whether a block is an inter macroblock or an intra macroblock and partition type information indicating a partition type of a subblock of a block.
  • the block type information indicates whether the block is an inter macroblock or an intra macroblock.
  • a skip subblock flag indicating whether the block mode of the subblock is the skip mode may be further included. That is, when the block mode of the block to be encoded is not the skip mode and the corresponding block is divided into subblocks, the image encoding apparatus 100 does not necessarily have to encode coefficient information and prediction encoding information for each subblock. When the block mode of any subblock is the skip mode, only the skip subblock flag may be encoded.
  • the image encoding apparatus 100 may encode the split type information using a tree structure.
  • the apparatus 100 for encoding an image may be configured to group a plurality of subblocks in a predetermined area unit and to allocate a minimum value of a split type value of subblocks included in the grouped area as a split type value for the grouped area. Is repeated for each layer up to the top layer, and the split type information may be encoded by encoding a difference value between the split type value for the region grouped by the layer and the split type value for the grouped region of the upper layer.
  • a method of encoding split type information by the image encoding apparatus 100 will be described in detail later with reference to FIGS. 7 and 8.
  • FIG. 6 is an exemplary diagram illustrating a syntax structure of a bitstream encoded according to an embodiment of the present invention.
  • a bitstream having a syntax structure as shown in FIG. 6 may be generated.
  • . 6 shows a bitstream for a block to be encoded.
  • the bitstream generated by encoding the block may include a block mode information field, a split mode information field, and a skip motion information field.
  • Data encoded with block mode information is allocated to the block mode information field
  • data encoded with partition mode information is allocated to the split mode information field
  • data encoded with skip motion information is assigned to the skip motion information field.
  • the block mode is the skip mode
  • the coefficient information of the block is not encoded and motion estimation is performed on the block.
  • skip motion information which is information about the motion determined by performing, is encoded and assigned to the skip motion information field.
  • motion information determined by motion estimation for the corresponding block is encoded as skip motion information
  • each sub of the corresponding block is represented.
  • Motion information for each subblock determined by motion estimation for the block is encoded as skip motion information and assigned to the skip motion information field.
  • the bitstream generated by encoding the block includes a block mode information field, a split mode information field, a block type information field, a prediction information field, a CBP subblock flag field, and a transform. It may be configured to include a type information field, a CBP field, a delta QP field and a coefficient information field.
  • the CBP subblock flag field, the conversion type information field, the CBP field, and the delta QP field are not necessarily included in the bitstream, and some or all of them may be optionally included in the bitstream.
  • Data encoded with block mode information is allocated to the block mode information field, and data encoded with partition mode information is allocated to the split mode information field.
  • the block mode is not the skip mode
  • coefficient information of the block is encoded in both the partition mode of the corresponding block identified by the partition mode information and the partition mode of the block.
  • the predictive encoding information which is various information used for encoding the coefficient information, is encoded in the bitstream.
  • Such prediction encoding information may include block type information and prediction information, but may further include CBP subblock flags, transform type information, CBP, delta QP, and the like.
  • the predictive encoding information is encoded only for the corresponding block and assigned to each field, and the split mode information indicates that the corresponding block is divided into subblocks.
  • the information is encoded for each subblock of the block and assigned to each field.
  • the coefficient information field data obtained by encoding coefficient information about the block or subblocks of the block is allocated.
  • FIG. 7 and 8 are exemplary diagrams for describing a process of encoding split type information using a tree structure according to an embodiment of the present invention.
  • split type values of respective subblocks of a block to be encoded are grouped into a predetermined region and represented as split type values for each layer.
  • Mx (a, b) represents a partition type value of a subblock corresponding to the position of (a, b) in a block to be encoded. That is, Mx (0,0) is the division of the subblock corresponding to the position of (0,0) in the block to be encoded (that is, the first subblock in the raster scan direction in the block to be encoded). Represents a type value, and Mx (0,1) is a partition type of a subblock corresponding to the position of (0,1) in the block to be encoded (that is, the second subblock in the raster scan direction within the block to be encoded). Indicates a value.
  • Group the partition type values of the subblocks shown in 7A in a constant region unit for example, a constant region unit including two or more subblocks
  • select the minimum value of the partition type values of the subblocks included in the grouped region Assigns the partition type values for the grouped areas.
  • FIG. 7B shows a result of grouping the partition type values of the subblocks shown in 7A and assigning a minimum value to the partition type value for the grouped region.
  • an area including subblocks (0,0), (0,1), (1,0), and (1,1) shown in 7A is set and grouped in a predetermined area unit, and within the grouped area M, an area grouped by selecting the minimum value among the partition type values M X (0,0), M X (0,1), M X (1,0), and M X (1,1) of each included subblock A division type value of X ⁇ 1 (0,0) was assigned.
  • the area including the subblocks (0, 2), (0, 3), (1, 2), and (1, 3) is set in a predetermined area unit and grouped, and each subblock included in the grouped area is grouped. of division type value M X (0,2), M X (0,3), M X (1,2), M X (1,3) in the region of the grouping by selecting a minimum value M -1 X (0 It is assigned with a split type value of, 1). In this manner, the same process is performed on the remaining subblocks.
  • the process of allocating the partition type values of the subblocks shown in 7A to the partition type values of the grouped regions shown in 7B is performed by M X -2 , M X -3 . Repeatedly performing up to M 1 layer can assign the partition type value of the grouped area like 7C, and repeating up to M 0 layer again grouped to have the split type value of one grouped area like 7D. can do.
  • a predetermined area unit is set to an area including four subblocks adjacent to each other.
  • Subblocks may be grouped and assigned a partition type value in various ways such as an area including blocks.
  • partition type value of subblocks of a block to be encoded when assigned as a partition type value of a grouped region may be represented as a tree structure as illustrated in FIG. 8.
  • the node values of the tree structure illustrated in FIG. 8 may be encoded by encoding a difference value with a node value of an upper node. have.
  • a method of encoding a difference value between node values and a node value of an upper node encodes binary bit 0 by the difference value and encodes binary bit 1 at the end. If the difference between the node value of the node to be currently encoded and the node value of the higher node is 0, binary bit 1 is encoded.
  • an arithmetic encoding method may be used. In this case, a different context may be used for each layer.
  • the node value (hereinafter, referred to as 'top node value') of the top node may be encoded as in the following three examples.
  • the highest node value may be encoded by encoding a difference value with 0 using binary bits of 0 and 1 as described above.
  • the highest node value is the difference between the largest partition type number and 0. It can be encoded by encoding using binary bits.
  • the highest node value is a difference between the smallest partition type number and 0 and 1. It can be encoded by encoding using binary bits of.
  • the remaining node values except the highest node may be encoded by encoding the difference between the node value of the node to be encoded and the node value of the upper node of the corresponding node using binary bits 0 and 1.
  • each node value may be encoded by encoding the number of binary bits 0 as much as the difference value, and finally encoding the binary bit 1. If the difference between the node value of the node to be encoded and the node value of the higher node is 0, binary bit 1 is encoded.
  • each node value may be encoded by encoding as many binary bits 1 as the difference value and encoding binary bit 0 at the end, and when the difference value is 0, the binary bit 0 may be encoded. .
  • the node values of the lower nodes of the upper node are not encoded. For example, if the node value of node M 1 (0,0) is 3, M 2 (0,0), M 2 (0,1), and M 2 which are subordinate nodes of node M 1 (0,0) The node values of the (1,0) and M 2 (1,1) nodes are not encoded.
  • M 1 (0,0) is the minimum of M 2 (0,0), M 2 (0,1), M 2 (1,0), and M 2 (1,1), so M 2 (0,0) ), M 2 (0,1), M 2 (1,0), and M 2 (1,1) all have a value of 3 or more.
  • M 2 (0,0) since the maximum value of the split type value is 3, M 2 (0,0), M 2 (0,1), M 2 (1,0), and M 2 (1,1) are different from 3. There is no need to encode it because it cannot have a value.
  • the node value of the node to be encoded is the maximum value that the partition type number can have, only the number of binary bits 0 as many as the difference value is encoded. Do not encode binary bit 1 at the end.
  • the values M 2 (0,1) and M 2 (1,0) encode 00, not binary bit 001.
  • the node value of the last node is not encoded when the node values of the nodes except the last node are all larger than the node value of the upper node.
  • the remaining node values except for the top node may be encoded by encoding the difference between the node value of the node to be encoded and the node value of the upper node of the corresponding node using binary bits 0 and 1 as described above.
  • it may be encoded by encoding a difference value between the node value of each node and the partition type value having the highest frequency of occurrence of the partition type.
  • the split type value with the highest frequency here may use a fixed value or may not be fixed. If it is not fixed, it may be encoded and transmitted to the decoder or may not be transmitted.
  • the mode with the highest frequency of occurrence can be used by accumulating the statistics of the blocks encoded in the above.
  • Another embodiment of encoding the partition type information by using the tree structure is the partition type value of the subblocks shown in 7A.
  • the partition type values of the grouped regions of 7B are determined by grouping them, when a large number of partition types is set in order of high frequency, the maximum value of the grouped regions may be used as the partition type value of the grouped regions.
  • FIG. 9 and 10 are diagrams for explaining an example of a tree structure according to an embodiment of the present invention.
  • subdivision type values of subblocks corresponding to positions (a, b) in a block to be encoded are ⁇ 0, 2, 1, 2, 1, 2, 2 in the raster scan direction.
  • 0, 1, 0, 0, 1, 2, 1, 1 ⁇ the partition type values of the respective subblocks may be grouped into four adjacent subblock units. In this case, the rest of the rightmost side or the bottom end can be grouped with the rest even if not four subblocks.
  • the first group is ⁇ 0, 2, 2, 2 ⁇ in the raster scan direction, and the second group is ⁇ 1, 2, 0, 1 ⁇
  • the third group may be ⁇ 1, 0 ⁇
  • the fourth group may be ⁇ 0, 1 ⁇
  • the fifth group is ⁇ 2, 1 ⁇
  • the sixth group may be ⁇ 1 ⁇ . If the minimum value of the partition type value of the subblocks included in each group is selected and assigned as the partition type value for the grouped region, as shown in FIG. 9 (b), ⁇ 0, 0, 1, 0, 1, 1 ⁇ .
  • Such partition type values can be grouped into four adjacent partition type values as in the case of (a).
  • Encoding of the transform type first generates the lowest node according to the mode of the block.
  • the node may not be created when the block mode is the skip mode.
  • the lowest node is created according to the selection of the conversion type.
  • the unit for selecting a transform type or the method is encoded and transmitted so that the encoder and the decoder operate in the same method.
  • a transform type may be selected and encoded in units of 16 ⁇ 16 pixel blocks with respect to a macroblock.
  • subblocks in the 16x16 pixel block may use the same type of transform. That is, even in a block larger than 16x16 pixel blocks, a conversion type may be selected in units of 16x16 blocks, and a conversion type may be transmitted for each 16x16 pixel block in which the CBP16 flag is not 0.
  • the transform type may be selected and encoded.
  • the fixed transform for example, 4x4 pixels
  • Block may not be encoded.
  • the transform type may be selected in units of blocks, and when the block is divided into blocks smaller than 16x16, the transform type may be selected and encoded in units of 16x16 blocks.
  • the encoding of the transform type may use fixed Table 1 regardless of the number of transforms that can be selected for each transform type, and may use Table 2 according to the number of selectable transforms.
  • FIG. 11 and 12 are diagrams for explaining encoding and decoding of a transform type according to an embodiment of the present invention.
  • FIG. 11 shows a transform type selected in units of corresponding blocks for blocks of 16x16 or larger and smaller than 16x16 pixel blocks. In the case of division into blocks, macroblock numbers in the case of selecting a conversion type in units of 16 ⁇ 16 pixel blocks are illustrated.
  • FIG. 12 is a diagram illustrating respective block modes and selected conversion types of FIG. 11.
  • 4x4 transform is used and the transform type is encoded according to Table 1 regardless of the number of transforms that can be selected for each transform type.
  • macroblock number 0 is a skip mode.
  • macroblock number 1 includes blocks using the CBP16 flag 0 and blocks using 8x8 transform
  • macroblock number 2 includes blocks using the CBP16 flag 0 and blocks using the 4x4 transform.
  • Macroblock number 3 uses a 16x16 transform with a CBP32 flag of 1
  • macroblock number 4 includes blocks using a 16x8 transform, blocks using a 16x16 transform and blocks using an 8x16 transform. In this case, since the remaining blocks of macroblock number 4 are divided into blocks smaller than 8x8 pixel blocks, a fixed 4x4 transform is used. In this case, the transform type may not be encoded.
  • Macroblock number 5 also includes blocks that use 4x4 transform and blocks that are smaller than 8x8 pixelblocks. In this case, blocks divided into blocks smaller than 8x8 pixel blocks use a fixed 4x4 transform and thus may not encode a transform type.
  • Macroblock number 6 indicates that the CBP32 flag selects and encodes a 4x4 transform as 1, and macroblock number 7 includes a block using an 8x8 transform, a block using a 4x4 transform, and a block in skip mode. Further, macroblock number 8 includes blocks using 4x4 transform and blocks using fixed 4x4 transform divided into blocks smaller than 8x8 pixelblocks. In FIG. 12, blocks that do not encode a transform type are displayed separately.
  • the hatched blocks are either SKIP blocks or blocks with the CBPX flag of 0, indicating blocks without transform coefficients.
  • Blocks separated by cross grids are blocks that use fixed transforms. As it is known, it represents a block that does not need to send the transform type.
  • Applying Table 1 to the selected transform type for each block in FIG. 12 may indicate the lowest node value as shown in FIG. 13. Selecting the minimum value from the node values of each block shown in FIG. An upper node as shown in FIG. 14 can be obtained.
  • macroblock number 0 has no encoding bit of the transform type. Since the lowest node value is ⁇ 1, 1, 1 ⁇ as shown in FIG. 15, the macroblock number 1 allocates the minimum value 1 as the highest node value, encodes the coded bit 01 representing the difference between the highest node value 1 and 0, and then places the lowest value. The bit encodes encoding bit 111 representing a difference value from the most significant node value 1.
  • Macroblock number 2 encodes a difference between transform type values 0 and 0 of the second 16x16 pixelblock in the macroblock since there is only one node. In this case, the coding bit may be represented by one.
  • Macroblock No. 3 encodes a difference between transform type values 2 and 0 of a 32x32 block because the block type is a 32x32 pixel block. In this case, the encoding bit may be represented by 00.
  • Macroblock number 4 uses a fixed transform type (e.g., 4x4 transform) since the third 16x16 block in the macroblock is divided into subblocks smaller than 8x8 pixels, and thus it is not necessary to encode the transform type.
  • a node corresponding to the third 16x16 block is not generated, and a node is generated only for the other three 16x16 pixel blocks, and only a difference value between the highest node values 2 and 0 is encoded. That is, as shown in FIG. 16, the minimum node value is selected from the lowest node value ⁇ 2, 2, 2 ⁇ , and the encoding bit for the difference between the highest node value 2 and 0 encodes 00.
  • Macroblock number 5 uses a fixed transform type (4x4 transform) because the second 16x16 pixelblock in the macroblock is divided into subblocks smaller than 8x8 pixelblocks, and does not need to encode the transform type. Therefore, a node corresponding to the second 16x16 pixelblock is not generated.
  • the difference between the transform type value 0 and 0 of the first 16x16 pixelblock is encoded.
  • the coding bit may be represented by one.
  • macroblock number 6 has only one node, the difference value between 0 and 0 of the transform type value of the second 16x16 block in the macroblock is encoded.
  • the coding bit may be represented by one.
  • Macroblock number 7 does not create nodes for the first 16x16 pixel block and the third 16x16 pixel block in the macroblock. As shown in FIG.
  • Applying Table 2 to the selected transform type for each block of FIG. 12 may indicate the lowest node value as shown in FIG. 18. Even in this case, blocks that do not encode a transform type are displayed separately.
  • macroblock number 0 has no encoding bit of the transform type. Since the lowest node value is ⁇ 2, 2, 2 ⁇ as shown in FIG. 15, the macroblock number 1 allocates the minimum value 2 as the highest node value, and encodes a coded bit 00 indicating a difference value between the highest node value 2 and zero.
  • Macroblock number 2 encodes a difference between transform type values 0 and 0 of the second 16x16 pixelblock in the macroblock since there is only one node. In this case, the coding bit may be represented by one.
  • Macroblock No. 3 encodes the difference between transform type values 1 and 0 of the 32x32 block since the block type is a 32x32 pixel block. In this case, the encoding bit may be represented by 01.
  • Macroblock number 4 uses a fixed transform type (e.g., 4x4 transform) since the third 16x16 block in the macroblock is divided into subblocks smaller than 8x8 pixels, and thus it is not necessary to encode the transform type. Therefore, a node corresponding to the third 16x16 block is not generated, and nodes are generated only for the other three 16x16 pixel blocks, and only the difference between the highest node values 1 and 0 is encoded. That is, as shown in FIG. 19, the lowest node value ⁇ 1, 1, 1 ⁇ is selected from the lowest node value, and the encoding bit 01 for the difference value between the highest node value 1 and 0 is encoded. In this case, 111 may be encoded by encoding bits representing a lowest node value.
  • 4x4 transform e.g., 4x4 transform
  • Macroblock number 5 uses a fixed transform type (4x4 transform) because the second 16x16 pixelblock in the macroblock is divided into subblocks smaller than 8x8 pixelblocks, and does not need to encode the transform type. Therefore, a node corresponding to the second 16x16 pixelblock is not generated. In this case, since there is only one node, the encoding bit representing the difference between the transform type value 0 and 0 of the first 16x16 pixelblock encodes 1. Since macroblock number 6 has only one node, encoding bit 1 representing a difference between transform type values 0 and 0 of the second 16x16 block in the macroblock is encoded.
  • Macroblock number 7 does not create nodes for the first 16x16 pixelblock and the third 16x16 pixelblock in the macroblock.
  • the lowest node value is ⁇ 2, 0 ⁇ , so the highest node values 0 and 0 Encoded bit 1 indicating a difference value of is encoded, and encoded bit 00 indicating a difference value between the transform type value 2 of the second 16x16 pixel block and the most significant node value is encoded.
  • the transform type value of the fourth 16x16 pixelblock may not be encoded. Since macroblock number 8 has only one node, encoding bit 1 representing a difference value between 0 and a transform type value 0 of the first 16x16 pixelblock in the macroblock is encoded.
  • 21 is a flowchart illustrating an example of a process of encoding a CBPX_flag and a CBP according to an embodiment of the present invention.
  • 21 illustrates an example of a process of encoding a CBPX_flag and a CBP for an intra macroblock when the macroblock is a 64x64 pixel block.
  • the encoding information encoder 110 determines whether the size of the subblock of the macroblock is one of 64x64, 64x32, and 32x64 (S2110). If the size of the subblock is not one of 64x64, 64x32, and 32x64, It is determined whether the size is one of 32x32, 32x16, and 16x32.
  • step S2110 when intra prediction is performed by dividing the macroblock into units of 16x16 pixels, in step S2110, it is determined whether the size of the subblock is a 64x64 pixel block, that is, whether intra prediction coding is performed in units of macroblocks. When the size of the subblock is not a 64x64 pixel block, it may be determined whether the size of the subblock is a 32x32 pixel block. As a result of the determination in step S2120, when the size of the subblock is one of 32x32, 32x16, and 16x32 or 32x32 pixel block, it is determined whether there is a non-zero transform coefficient in the subblock (S2130).
  • the CBP32 flag (for example, may be represented by 1 bit such as '1') indicating that there is a non-zero coefficient to be coded in the corresponding subblock is encoded (S2140), and the 16x16 pixel block in the subblock is encoded. If the CBP is encoded as a unit (S2150), and there is no non-zero transform coefficient in the subblock, a CBP32 flag indicating that there is no non-zero transform coefficient in the subblock (for example, 1 bit such as '0') It may be encoded (S2160).
  • the CBP64 flag is a flag indicating the presence or absence of a coefficient to be encoded that is not zero in a 64x64 pixel block.
  • the CBP32 flag is a flag indicating the presence or absence of a non-zero coefficient to be encoded in a 32x32 pixel block.
  • Such a CBPX flag indicates whether the luminance component blocks have a non-zero transformation coefficient since the transform type does not need to be transmitted when the residual block of the luminance component does not have a nonzero transformation coefficient. Used to.
  • the CBP is encoded in units of 16x16 pixel blocks, and indicates whether there is a non-zero transform coefficient for each 8x8 pixel block in the 16x16 pixel block using 1 bit per 8x8 pixel block, and two 2x2 chrominance component DC blocks for the color difference component. Indicates whether there is a non-zero transform coefficient using 1 bit, and indicates whether there are non-zero transform coefficients in two 8x8 color difference component AC blocks using 1 bit.
  • step S2120 if the size of the subblock is not one of 32x32, 32x16 and 16x32 or is not a 32x32 pixel block, the process proceeds to step S2150 to encode the CBP.
  • the size of the sub block when the size of the sub block is not a 32x32, 32x16, or 16x32 pixel block, it may be determined whether the size of the subblock is a 16x16, 16x8, or 8x16 pixel block. If the subblock is a 16x16, 16x8, or 8x16 pixel block, if there is a non-zero coding coefficient in the subblock, the CBP16 flag (for example, may be represented by 1 bit such as '1') is encoded. In other cases, the CBP may be encoded in units of 16 ⁇ 16 pixel blocks without using the CBP flag.
  • step S2110 if the size of the subblock is one of 64x64, 64x32, and 32x64 or is a 64x64 pixel block, it is determined whether there is a non-zero transform coefficient in the subblock (S2170), and the non-zero transform in the subblock. If there is a coefficient, a CBP64 flag (for example, may be represented by 1 bit such as '1') indicating that there is a non-zero transform coefficient is encoded (S2180), and the non-zero coefficient to be encoded in the subblock is If not, a CBP64 flag (for example, may be represented by 1 bit such as '0') indicating that there is no coefficient to encode other than 0 is encoded (S2190).
  • the CBP64 flag is a flag indicating whether a non-zero quantized transform coefficient exists in a 64x64 pixel block.
  • the conversion type is encoded when the CBP flag is not zero.
  • the CBP is encoded, and when the CBP is not 0, the transform type applied in units of 16x16 pixel blocks is encoded.
  • the CBP is encoded according to the transform type. If 16x16 transform is used, only the CBP 2-bits of the chrominance component are encoded. If 8x16 or 16x8 transform is used, CBP 2-bit indicating whether two 8x16 or 16x8 pixel blocks within the 16x16 pixel block have a non-zero transform coefficient. Encode However, in exceptional cases, when the CBP bit of the first divided block of the two divided blocks is 0, the CBP bits of the second divided block may not be encoded.
  • CBP is a 1-bit plate indicating whether there is a non-zero transform coefficient in a block, and the unit of a block encoding / decoding a CBP bit varies according to the type of transform selected.
  • a block having no transform coefficient to be encoded for example, a block in SKIP mode, a block having a CBPX flag of 0, etc.
  • a block that does not need to encode a CBP for example, a 16x16 transform is performed. Blocks to be used) were divided into cross lattice patterns.
  • the method for generating the least significant node is described. If there is data indicating that there is no transform coefficient to be encoded in the current block among the mode values or flags already transmitted, no node is generated for the block without the coding transform coefficient. .
  • a node is not generated for a SKIP block, and a node is generated for an XxX block in which the CBPX flag is 0 (where X is the number of pixels indicating the size of the block).
  • X is the number of pixels indicating the size of the block.
  • CBP is coded for a block having a nonzero transform coefficient, and depending on the transform type, the number of nodes is 0 or 4 for a 4x4 transform or 8x8 transform for a luminance component. 1 (i.e., generating nodes per 8x8 pixelblock), or 8x16 or 16x8 transforms for luminance components, indicating 0 or 1 for non-zero transform coefficients in a 16x8 or 8x16 block (i.e., 16x8 or Generating nodes per 8x16 block), the chrominance component generates nodes for the AC and DC components in 8x8 block units (i.e., transmits 1 bit to the AC component and 1 bit to the DC component).
  • the minimum value of the lower nodes is used as the upper node value
  • the uppermost node may use a node representing a 16x16 area as the uppermost node (or specify a different size of the uppermost node).
  • the values of the lower nodes may not be encoded / decoded.
  • the values of the lower nodes may be encoded.
  • FIG. 23 When an encoding mode and a transform type are selected as illustrated in FIG. 22, a unit of transmission of a CBP may be represented as illustrated in FIG. 23. In the case where a block corresponding to the 16x16 region in FIG. 23 is used as the highest block, the highest node value may be allocated as shown in FIG. 24.
  • the CBP is assigned according to whether or not there is a transform coefficient in the block.
  • the encoding of the CBP is not limited to the described method, and various modifications such as using a pattern of the CBP are possible.
  • 25 is a diagram for explaining encoding / decoding of delta quantization parameters.
  • the delta quantization parameter of an intra 16x16 pixelblock or an inter 16x16 pixelblock whose CBP is not 0 is transmitted.
  • each delta quantization parameter may be encoded by converting the code number into a promised code number and then tree-coding the code number. For example, assuming that the delta quantization parameter of each pixel block of 16x16 is as shown in FIG. 25 and the code number promised corresponding to the delta quantization parameter is as shown in Table 3, each delta quantization parameter in FIG. Can be converted to code number.
  • the delta quantization parameter 0 can be converted to code number 0
  • the delta quantization parameter 1 can be converted to code number 1
  • the delta quantization parameter -1 can be converted to code number 2
  • the delta quantization parameter 2 is Convert to code number 3
  • delta quantization parameter -2 to code number 4
  • delta quantization parameter 3 to code number 5
  • delta quantization parameter -3 to code number 6
  • Other delta quantization parameters can likewise be converted to promised code numbers.
  • the delta quantization parameter of FIG. 25 is converted into a code number. In this way, a tree can be generated based on the node value of each 16x16 pixelblock converted into a code number. As a first example, if the minimum value is selected from the node values of the 16x16 pixelblock converted to the code number as shown in FIG. 26 and assigned to the upper node value, it may be represented as shown in FIG. 27.
  • the difference between the node value 0 and the zero of the upper node M0 may be encoded by encoding bit 1.
  • the lower nodes M1 (0,0), M1 (0,1), and M1 (1,0) may be encoded.
  • the difference value 0 between the node value 0 of M1 (1,1) and the node value 0 of the upper node M0 can also be encoded by encoding bit 1.
  • the difference between the node value 0 and the zero of the upper node M0 may be encoded by encoding bit 1.
  • the node value 0 of the lower node M1 (0,0) and the node value 0 of the upper node M0 may be encoded.
  • the difference value 0 may be encoded by encoding bit 1
  • the difference value 2 between node value 2 of lower node M1 (0, 1) and node value 0 of upper node M0 may be encoded by encoding bit 001, and lower node M1.
  • the difference value 1 between the node value 1 of (1,0) and the node value 0 of the upper node M0 can be encoded by encoding bit 01, and the node value 3 of the lower node M1 (1,1) and the node value of the upper node M0 are encoded.
  • the difference value 3 of zero can be encoded by encoding bit 0001.
  • the difference value 1 between the node value 1 and the 0 of the upper node M0 may be encoded by encoding bit 01, and the node value 1 of the lower nodes M1 (0,0) and M1 (0, 1) may be encoded.
  • the difference value 0 of the node value 1 of the upper node M0 can be encoded with encoding bit 1
  • the difference value 2 between the node value 3 of the lower node M1 (1,0) and the node value 1 of the upper node M0 is encoded bit 001.
  • the difference value 1 between the node value 2 of the lower node M1 (1, 1) and the node value 1 of the upper node M0 may be encoded by encoding bit 01.
  • the difference value 2 between the node value 2 and the zero of the upper node M0 may be encoded by encoding bit 001, and the lower nodes M1 (0,0), M1 (0,1), and M1 (1, 0), the difference value 0 between the node value 2 of M1 (1,1) and the node value 2 of the upper node M0 can be encoded by encoding bit 1.
  • the difference value 2 between the node value 2 and the 0 of the upper node M0 may be encoded by encoding bit 001, and the lower nodes M1 (0,0), M1 (0, 1), and M1 (1,
  • the difference value 0 between the node value 2 of 0) and the node value 2 of the upper node M0 may be encoded by encoding bit 1, respectively, and the node value 5 of the lower node M1 (1,1) and the node value 2 of the upper node M0 may be encoded.
  • the difference value 3 can be encoded by encoding bit 0001.
  • the difference value 1 between the node value 1 and the 0 of the upper node M0 may be encoded by encoding bit 01, and the node value 5 of the lower node M1 (0,0) and the node value 1 of the upper node M0 may be encoded.
  • the difference value 4 may be encoded by encoding bit 00001, respectively, and the difference value 2 between the node value 3 of the lower nodes M1 (1,0) and M1 (1,0) and the node value 1 of the upper node M0 may be encoded bit 001.
  • the difference value 0 between the node value 1 of the lower node M1 (1, 1) and the node value 1 of the upper node M0 may be encoded by encoding bit 1.
  • the method of allocating the node value of the upper node from the lower nodes is not limited to the above-described method, and may select the maximum value among the node values of the lower nodes and assign it to the node value of the upper node.
  • this second method if the maximum value is selected from the node values of the 16x16 pixelblock converted into the code number as shown in FIG. 26 and assigned as the upper node value, it may be represented as shown in FIG.
  • the difference between the node value 0 and the zero of the upper node M0 may be encoded by encoding bit 1.
  • the lower nodes M1 (0,0), M1 (0,1), and M1 (1,0) may be encoded.
  • the encoding bit may be omitted for the difference between the node value 0 of M1 (1,1) and the node value 0 of the upper node M0.
  • the difference value 3 between the node value 3 and the zero of the upper node M0 may be encoded by encoding bit 0001, and the node value 0 of the lower node M1 (0,0) and the node value 3 of the upper node M0 may be encoded.
  • the difference value 1 may be encoded by encoding bit 0001, and the difference value 1 between node value 2 of lower node M1 (0,1) and node value 3 of upper node M0 may be encoded by encoding bit 01, and the lower node may be encoded.
  • the difference value 2 between the node value 1 of M1 (1,0) and the node value 3 of the upper node M0 can be encoded by encoding bit 001, and the node value 3 of the lower node M1 (1,1) and the node of the upper node M0
  • the difference value 0 of the value 3 may be encoded by encoding bit 1.
  • the difference between the node values 3 and 0 of the upper node M0 may be encoded by encoding bit 0001, and the node values 1 and higher of the lower nodes M1 (0,0) and M1 (0, 1) may be encoded.
  • the difference value 2 of the node value 3 of the node M0 can be encoded with the encoding bit 001, respectively, and the difference value between the node value 3 of the lower node M1 (1,0) and the node value 3 of the upper node M0 is encoded with the encoding bit 1.
  • the difference value 1 between the node value 2 of the lower node M1 (1, 1) and the node value 3 of the upper node M0 may be encoded by encoding bit 01.
  • the difference between node values 2 and 0 of the upper node M0 may be encoded by encoding bit 001, and the lower nodes M1 (0,0), M1 (0,1), and M1 (1,0). ),
  • the difference value 0 between the node value 2 of M1 (1,1) and the node value 2 of the upper node M0 can be encoded by encoding bit 1.
  • the difference between the node values 5 and 0 of the upper node M0 may be encoded by encoding bit 000001, and the lower nodes M1 (0,0), M1 (0, 1), and M1 (1,0).
  • Difference value 3 between node value 2 of node) and node value 5 of upper node M0 can be encoded by encoding bit 0001, respectively, and the difference between node value 5 of lower node M1 (1,1) and node value 5 of upper node M0
  • the value 0 may be encoded by encoding bit 1.
  • the difference between the node value 5 and the zero of the upper node M0 may be encoded by encoding bit 000001, and the node value 5 of the lower node M1 (0,0) and the node value 5 of the upper node M0 may be encoded.
  • the difference value 0 can be encoded with encoding bit 00001, respectively, and the difference value 2 between the node value 3 of the lower nodes M1 (1,0) and M1 (1,0) and the node value 5 of the upper node M0 is encoded bit 001.
  • the difference value 4 between the node value 1 of the lower node M1 (1,1) and the node value 5 of the upper node M0 may be encoded by encoding bit 00001.
  • the difference value with 0 is encoded, but the difference value between the random value with the highest frequency and the highest node value is encoded. It may be.
  • an arbitrary value used may be encoded and informed to the decoder, or an arbitrary promised value may be used, or the encoder and the decoder may operate in the same manner and be calculated.
  • a maximum value is encoded to inform the decoder or a maximum value among lower node values is assigned as an upper node value.
  • the minimum value may be encoded to tell the decoder a range of values.
  • the difference value 0 between the node value 0 and 0 of the upper node M0 is the encoding bit.
  • the difference value 0 between the node value 0 of the lower node M1 (0,0) and the node value 0 of the upper node M0 can be encoded by encoding bit 1, and the lower value of the node M1 (0,1)
  • the difference value 2 between the node value 2 and the node value 0 of the upper node M0 can be encoded by encoding bit 001, and the difference value 1 between the node value 1 of the lower node M1 (1,0) and the node value 0 of the upper node M0 is
  • the encoding bit 01 may be encoded, and the encoding bit may be omitted for the difference value 3 between the node value 3 of the lower node M1 (1, 1) and the node value 0 of the upper node M0.
  • the difference value between the node value 2 and 0 of the upper node M0 is encoded bit 001.
  • the difference between the node value 2 of the lower nodes M1 (0,0), M1 (0,1), M1 (1,0), M1 (1,1) and the node value 2 of the upper node M0 0 may be encoded by encoding bit 1.
  • a method of encoding a code only for a nonzero delta parameter after encoding the absolute value of the delta quantization parameter may be used.
  • the absolute value of the delta quantization parameter of FIG. 25 is taken, it may be represented by FIG. 29. In this case, all of the above-described tree generation methods may be applied.
  • a minimum value may be selected and allocated among lower node values, and an absolute value may be encoded.
  • the method can be encoded using Table 3.
  • the encoding bit having the maximum value 0 may be encoded as 0, the difference value 0 between the node value 0 and the 0 of the upper node M0, and the lower node M1 (0,0), M1 (0,1). ), The difference value 0 between the node value 0 of M1 (1,0) and M1 (1,1) and the node value 0 of the upper node M0 omits the encoding of the coded bits.
  • the maximum value 2 may be encoded by encoding bit 001, and the difference between the node value 0 and 0 of the upper node M0 may be encoded by encoding bit 1 and the lower node M1 (0,0).
  • the difference value 0 between the node value 0 of the node value 0 and the node value 0 of the upper node M0 may be encoded by encoding bit 1, and the node value 1 of the lower node M1 (0,1) and M1 (1,0) may be encoded.
  • Difference value 1 of node value 0 may be encoded by encoding bit 01
  • difference value 2 between node value 2 of lower node M1 (1,1) and node value 0 of upper node M0 may be encoded by encoding bit 001.
  • the maximum value 2 may be encoded by encoding bit 001, and the difference value 1 between node value 1 and 0 of upper node M0 may be encoded by encoding bit 01, and lower node M1 (0,0).
  • difference value 0 between node value 1 of M1 (0, 1) and node value 1 of upper node M0 can be encoded by encoding bit 1, respectively, and node value 2 and higher node of lower node M1 (1,0) are encoded.
  • Difference value 1 of node value 1 of M0 may be encoded by encoding bit 01, and difference value 0 between node value 1 of lower node M1 (1,1) and node value 1 of upper node M0 may be encoded by encoding bit 1.
  • the maximum value 1 may be encoded by encoding bit 01, and the difference value 1 between node value 1 and 0 of upper node M0 may be encoded by encoding bit 01, and lower node M1 (0,0). ), The difference value 0 between the node value 1 of M1 (0,1), M1 (1,0) and M1 (1,1) and the node value 1 of the upper node M0 may be omitted.
  • the maximum value 3 may be encoded by encoding bit 0001, and the difference value 1 between node value 1 and 0 of the upper node M0 may be encoded by encoding bit 01, and lower node M1 (0,0). ),
  • the difference value 0 between node value 1 of M1 (0, 1) and M1 (1,0) and node value 1 of upper node M0 can be encoded with encoding bit 1, respectively, and the lower node M1 (1,1)
  • the difference value 2 between the node value 3 and the node value 1 of the upper node M0 may be encoded by encoding bit 001.
  • the maximum value 3 may be encoded by encoding bit 0001, and the difference value 1 between node value 1 and 0 of the upper node M0 may be encoded by encoding bit 01, and the lower node M1 (0,0).
  • Difference value 2 between node value 3 of node) and node value 1 of upper node M0 can be encoded by encoding bit 001, and node value 2 of lower node M1 (1,0) and M1 (1,0) and upper node M0
  • the difference value 1 of the node value 1 may be encoded using the encoding bit 01, and the difference value 0 between the node value 1 of the lower node M1 (1,1) and the node value 1 of the upper node M0 may be omitted. Can be.
  • encoding on a code can be performed. For example, 0 can be used when the sign is + and 1 can be used when the sign is-. Of course, the opposite coded bits may be allocated. In this case, the upper node may use the minimum value of the lower nodes and may use the maximum value.
  • FIG. 30 except for the case where the absolute value of the delta quantization parameter is 0, coding for the sign of the delta quantization parameter is assigned 0 to + and 1 to ⁇ , and the minimum value is selected among the lowest node values. If it is assigned to a node value, it can be represented as shown in FIG. That is, in the case of (a) in FIG. 30, since all absolute values are 0, there is no data to be encoded.
  • the difference value 0 between the upper node values 0 and 0 of (b) may be encoded by encoding bit 1. Since the node value of M1 (0,0) is 0, encoding of the encoding bit may be omitted.
  • the difference value 1 between the node value 1 of M1 (0,1) and the upper node value 0 may be encoded by encoding bit 0, and the node value 0 and the upper node of M1 (1,0) and M1 (1,1) may be encoded.
  • the difference value 0 and the value 0 may be encoded by encoding bit 1, respectively.
  • the difference value 0 between the upper node value 0 and 0 of (c) may be encoded by encoding bit 1, and nodes of M1 (0,0), M1 (0,1), and M1 (1,0)
  • the difference value 0 between the value 0 and the upper node value 0 may be encoded by encoding bit 1.
  • the difference value 1 between the node value 1 of M1 (1,1) and the upper node value 0 may be encoded by encoding bit 0. have.
  • the difference value 1 between the upper node value 1 and 0 in (d) may be encoded by encoding bit 0, and M1 (0,0), M1 (0,1), M1 (1,0), and M1.
  • the difference value 0 between the node value 1 of (1, 1) and the upper node value 1 may omit encoding of the coded bits, respectively.
  • the difference value 1 between the upper node value 1 and 0 in (e) may be encoded by encoding bit 0, and M1 (0,0), M1 (0,1), M1 (1,0), and M1.
  • the difference value 0 between the node value 1 of (1, 1) and the upper node value 1 may omit encoding of the coded bits, respectively.
  • the difference value 0 between the upper node value 0 and 0 in (f) may be encoded by encoding bit 1, and M1 (0,0), M1 (0,1), M1 (1,0), and M1
  • the difference value 0 between the node value 0 of (1, 1) and the upper node value 0 may be encoded by encoding bit 1.
  • 32 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
  • the image decoding apparatus 3200 may include an encoding information decoder 3210 and an image decoder 3300.
  • the encoding information decoder 3210 decodes the bitstream to restore block mode information indicating whether the block mode of the block to be decoded is the skip mode and split mode information indicating whether the block is divided into subblocks.
  • the bitstream is decoded according to the combination of the block mode information and the split mode information to restore the skip motion information of the block or the prediction encoding information including the block type information of the block and the prediction information of the block.
  • the encoding information decoder 3210 decodes a bitstream having a syntax structure as shown in FIG. 6.
  • the data allocated to the block mode information field and the data allocated to the split mode information field from the bitstream.
  • Type information, prediction information, CBP subblock flag, transform type information, Predictive coding information such as CBP and delta QP are recovered.
  • the CBP subblock flag field, the transform type information field, the CBP field, the delta QP, etc., of the prediction encoding information are not necessarily reconstructed, but only when the image encoding apparatus 100 and the image decoding apparatus 3200 are mutually promised. Can be restored.
  • the image decoder 3300 reconstructs the block by reconstructing the block based on the skip motion information or by decoding the coefficient information reconstructed by decoding the bitstream based on the predictive encoding information.
  • the image decoder 3300 may motion compensate for a block to be decoded or each subblock of the corresponding block by using the recovered skip motion information.
  • the predictive encoded information is restored by the encoding information decoder 3210, the generated block is reconstructed into a block to be decoded, and the block to be decoded or each subblock of the corresponding block is intra-prepared by using the reconstructed predictive encoding information.
  • a prediction block is generated by inter prediction, a bitstream is decoded to restore coefficient information, and a block to be decoded is added by adding a residual block and a prediction block based on the reconstructed coefficient information.
  • the image decoder 3300 may include a decoder, a dequantizer and an inverse transformer, a predictor, an adder, a filter, and a picture buffer.
  • the predictor may comprise a motion compensator.
  • 34 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.
  • the image decoding apparatus 3200 decodes a bitstream to indicate block mode information indicating whether a block mode of a block to be decoded is a skip mode and a block is a subblock.
  • partition mode information indicating whether partitioning is performed is performed. That is, the image decoding apparatus 3200 extracts and decodes the data encoded with the block mode information and the data encoded with the split mode information from the bitstream of the block to be decoded to restore the block mode information and the split mode information.
  • the image decoding apparatus 3200 restores skip motion information of a block by decoding the bitstream according to a combination of block mode information and split mode information, or restores predictive encoding information including block type information of a block and prediction information of the block.
  • the block is reconstructed by reconstructing the block based on the skip motion information or by decoding the coefficient information which is reconstructed by decoding the bitstream based on the predictive encoding information (S3430). That is, the image decoding apparatus 3200 combines whether the reconstructed block mode information indicates that the block mode of the block to be encoded is the skip mode and whether the reconstructed split mode information indicates that the block is divided into subblocks.
  • blocks are encoded in different ways.
  • the image decoding apparatus 3200 performs steps S3420 and S3430 on the assumption that the block is divided into subblocks having a size of 16x16 pixels. An example is demonstrated.
  • the image decoding apparatus 3400 decodes the bitstream to skip the block. Information can be restored. That is, the image decoding apparatus 3400 extracts and decodes the data encoded with the skip motion information from the bitstream, and restores the skip motion information. The skip motion information is restored as one motion information for a block to be decoded. In this case, in operation S3430, the image decoding apparatus 3200 restores the generated block to the block to be decoded by compensating for the motion of the block to be decoded using the reconstructed skip motion information.
  • the image decoding apparatus 3200 decodes the bitstream and skips the subblocks of the block.
  • the motion information can be restored. That is, the image decoding apparatus 3200 extracts and decodes the data encoded with the skip motion information from the bitstream to restore the skip motion information.
  • the skip motion information is a plurality of pieces of motion information for each subblock of the block to be decoded. Is restored.
  • the image decoding apparatus 3200 may compensate for the motion of each subblock of the block to be decoded using the skip motion information of each subblock to be reconstructed. Reconstruct the block to be decoded through each subblock.
  • the image decoding apparatus 3200 decodes the bitstream to determine the block.
  • the predictive coding information can be reconstructed. That is, the image decoding apparatus 3200 extracts and decodes the data encoded by the prediction encoding information from the bitstream, and restores the prediction encoding information.
  • the prediction encoding information is restored to one prediction encoding information about a block to be decoded.
  • the image decoding apparatus 3200 extracts and decodes the coefficient information encoded data from the bitstream based on the block type information and the prediction information of the reconstructed prediction encoding information, and restores and restores the coefficient information. Reconstruct the residual block by inverse quantization and inverse transform of the coefficient information, and generate a prediction block by predicting a block to be decoded based on the block type information and the prediction information, and decoding by adding the reconstructed residual block and the prediction block. Restore the block you want to
  • the image decoding apparatus 3200 decodes the bitstream to subblocks of the block. Predictive coding information may be recovered. That is, the image decoding apparatus 3200 extracts and decodes the data encoded by the prediction encoding information from the bitstream, and restores the prediction encoding information.
  • the prediction encoding information includes a plurality of prediction encoding information for each subblock of the block to be decoded. Is restored.
  • the image decoding apparatus 3200 extracts and decodes data in which coefficient information is encoded from the bitstream based on block type information and prediction information of the reconstructed prediction encoding information, and then coefficients for each subblock. Restoring the information and restoring the remaining subblocks by inverse quantization and inverse transformation of coefficient information for each subblock to be restored, and generating a prediction subblock by predicting each subblock based on block type information and prediction information, Each subblock is reconstructed by adding the reconstructed residual subblock and the predicted subblock, and a block to be decoded through the subblock is reconstructed.
  • the block type information may be a block type number assigned to a plurality of available block types based on whether the block is an inter macroblock or an intra macroblock and a partition type of a subblock of the block.
  • the predictive encoding information may further include one or more of transform type information for the subblock, an encoded block pattern for the subblock, and a delta quantization parameter for the subblock.
  • the block type information may include a block type flag indicating whether a block is an inter macroblock or an intra macroblock and partition type information indicating a partition type of a subblock of a block.
  • the block type information indicates whether the block is an inter macroblock or
  • the skip subblock flag indicating whether the block mode of the subblock is the skip mode may be further included. That is, when the block mode of the block to be decoded is not the skip mode and the corresponding block is divided into subblocks, the image decoding apparatus 3200 may include data in which coefficient information is encoded for each subblock and prediction encoding information from the bitstream. It is not necessary to extract and decode the encoded data. If only the skip subblock flag is decoded from the bitstream and it is determined that the block mode of any subblock is the skip mode, decoding may be skipped for the corresponding subblock.
  • the image decoding apparatus 3200 may restore the partition type information by using a tree structure.
  • the partition type number is set as the partition type value, and the large partition type number is set in the order of the frequency of occurrence of the partition type, and the highest partition type number is compared with the largest partition type number.
  • the image decoding apparatus 3200 extracts data in which the partition type information is encoded from the bitstream, and decodes the binary bits 0 and 1 of the extracted data to make a difference. Restore the highest node value by restoring the value and subtracting the restored difference value from the largest partition type number.
  • the image decoding apparatus 3200 reads and decodes one bit of the data in which the partition type information is encoded, restores the binary bit, and reads the next bit when the restored binary bit is 0 to restore the difference value. . Decode in this way and continue to restore binary bit 0 until binary bit 1 is restored, and if the restored binary bit is 1, no more bits are read and decoded, and the difference is that the number of recovered binary bits 0 do. However, if the number of bits is read as the difference between the maximum value and the minimum value of the partition type number, the next bit is not read and the difference value is the number of recovered binary bits 0 (in this case, the difference value is The difference between the maximum and minimum values that a partition type number can have).
  • the partition type number is set as the partition type value, and the large partition type number is set in the order of the frequency of occurrence of the partition type, and thus the smallest partition type number.
  • the image decoding apparatus 3200 extracts data in which the partition type information is encoded from the bitstream, and decodes binary bits 0 and 1 of the extracted data. Restores the difference value and subtracts the restored difference value from the smallest partition type number to restore the highest node value.
  • the method of restoring the difference value by the image decoding apparatus 3200 is as described above.
  • the image decoding apparatus 3200 may encode the bit. Data obtained by encoding the partition type information is extracted from the stream, and binary values 0 and 1 of the extracted data are decoded to restore the difference value restored to the most significant node value. In this case, the method of restoring the difference value by the image decoding apparatus 3200 is as described above.
  • the image decoding apparatus 3200 decodes node values of lower nodes of the highest node.
  • the image encoding apparatus 100 encodes the node value by encoding the binary bit 0 by the number of difference values between the node value of the node to be encoded and the node value of the higher node
  • the image decoding apparatus 3200 performs the node of each node.
  • the next one bit of the bits extracted from the bitstream and read to restore the highest node value is read and decoded. If the recovered binary bit is 0, the next bit is read and decoded.
  • the maximum value of the partition type number can be restored to the node value to be decoded without restoring the binary bit. If the restored binary bit is 1, no more bits are read and the number of restored binary bits 0 is restored to the difference value, and the node value of the node to be decoded by adding the node value of the upper node to the restored difference value. Restore If the image encoding apparatus 100 encodes the node value by encoding the binary bit 1 by the number of difference values between the node value of the node to be encoded and the node value of the higher node, the binary bit reconstructed in the above-described method is Binary bits are recovered by decoding one bit until zero.
  • the difference value according to the number of binary bits 0 restored up to now and the node value of the upper node of the corresponding node is the maximum value that the partition type number can have. Instead of reading the bits and restoring the binary bits, the maximum value of the partition type number can be restored to the node value. Also, when restoring the node value of the last node among the nodes having the same parent node, if the node values of the nodes except the last node are all larger than the node value of the parent node, the bit is no longer read and the binary bit is not restored. Restore the node value of the upper node to the node value of the last node.
  • the partition type information is generated in order of increasing frequency. If the number is set, the node value of the current node is restored by subtracting the restored parent node and node value.
  • the corresponding block since the corresponding block may be encoded and decoded in an efficient manner according to the combination of the block mode and the split mode of the block to be encoded in the image, the compression efficiency of the image may be improved. Can be improved.
  • 35 is a block diagram schematically illustrating a video encoding apparatus according to another embodiment of the present invention.
  • the image encoding apparatus 3500 may include an encoding information encoder 3510 and an image encoder 3520.
  • the encoding information encoder 3510 encodes skip type information indicating a skip type of a block to be encoded, and encodes skip motion information of the block according to the skip type information. That is, when the block mode of the block to be encoded is the skip mode, the encoding information encoder 3510 encodes skip type information indicating a skip type of the block, and encodes skip motion information of the block based on the skip type information. For example, the encoding information encoder 3510 encodes skip motion information of a block when the skip type of the block indicates that the skip motion information of the block is encoded.
  • the image encoder 3520 encodes coefficient information of the block according to the skip type information of the block. That is, when the block mode of the block to be encoded is the skip mode, the image encoder 3520 encodes the coefficient information of the block based on the skip type information. For example, the image encoder 3520 encodes skip motion information of a block when the skip type of the block indicates that the coefficient information of the block is encoded.
  • the image encoder 3520 is a predictor, a subtractor, a transform and a quantizer, an encoder, an inverse quantization and an inverse transformer, an adder, a filter, a picture, as in the image encoder 200 according to an embodiment of the present invention described above with reference to FIG. 1. Buffer and the like.
  • both the skip motion information and the coefficient information are not encoded for the block, and only the skip type information is encoded.
  • 36 is a flowchart illustrating a video encoding method according to another embodiment of the present invention.
  • the image encoding apparatus 3500 encodes skip type information indicating a skip type of a block to be encoded, in operation S3610.
  • the skip type indicates how the skip mode block is encoded when the block mode of the block is the skip mode. That is, when the block mode of the block to be encoded is the skip mode, the image encoding apparatus 3500 encodes only the coefficient information of the block, only the motion information of the block, or encodes the block information when encoding the block according to the skip mode.
  • the skip type information indicating whether or not to skip the encoding is encoded.
  • Such skip type information may be implemented as a skip type flag of 1 bit.
  • the skip type information may be represented in three cases as follows through a skip type flag of 1 bit. For example, if the skip type flag is 0, the skip mode may skip without encoding the block. If the skip type flag is 1, the skip mode may indicate that the skip motion vector is encoded without encoding the coefficient information of the block. . As another example, when the skip type flag is 0, the skip mode may skip the encoding without encoding the block. When the skip type flag is 1, the skip motion vector of the block may be encoded without encoding the coefficient information of the block. As another example, if the skip type flag is 0, the skip motion vector of the block is encoded without encoding the coefficient information of the block. If the skip type flag is 1, the coefficient information of the block is encoded without encoding the skip motion vector of the block. Can be indicated.
  • the image encoding apparatus 3500 skips encoding of the block, encodes skip motion information of the block, or encodes coefficient information of the block according to the skip type information (S3620).
  • the skip type information may indicate that the encoding of the block is skipped or the skip motion information of the block may be encoded.
  • the skip type information may indicate that the encoding of the block is skipped or the coefficient information of the block may be encoded.
  • the skip type information may indicate encoding skip motion information of the block or may indicate encoding coefficient information of the block.
  • the image encoding apparatus 3500 encodes skip motion information of the block to be encoded and encodes coefficient information of the corresponding block. I never do that.
  • the image encoding apparatus 3500 encodes coefficient information of the block to be encoded and encodes skip motion vector information of the corresponding block. I never do that.
  • coefficient information of a block to be encoded may be predictively encoded using motion information determined based on motion information of neighboring blocks of the block.
  • FIG. 37 is a block diagram schematically illustrating a configuration of an image decoding apparatus 3700 according to another embodiment of the present invention.
  • the image decoding apparatus 3700 may include an encoding information decoder 1210 and an image decoder 1220.
  • the encoding information decoder 3710 restores skip type information indicating a skip type of a block to be decoded by decoding the bitstream, and restores skip motion information of the block by decoding the bitstream according to the skip type information.
  • the image decoder 3720 may reconstruct a block based on motion information determined according to a preset method according to skip type information, reconstruct a block based on skipped motion information, or based on coefficient information reconstructed by decoding a bitstream. Restore the block.
  • the image decoder 3720 is restored by the encoded information decoder 3710.
  • the block generated by compensating for the motion of the block to be decoded using the skip motion information is restored to the block to be decoded.
  • the image decoder 3720 reconstructs the coefficient information by decoding the bitstream, and restores the restored coefficient information.
  • the image decoder 3720 may move the block using the motion information determined in a predetermined manner. The block generated by performing the compensation is restored to the corresponding block.
  • the motion information determined in a preset manner may be motion information determined by using motion information of a neighboring block.
  • the motion information determined in various preset manners may be used.
  • 38 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.
  • the image decoding apparatus 1200 decodes a bitstream and restores skip type information indicating a skip type of a block to be decoded (S3810) and according to the skip type information. Restores the block based on the motion information determined in a predetermined manner or decodes the bitstream to restore the block based on the skipped motion information of the restored block, or restores the block based on the coefficient information restored by decoding the bitstream. (S3820).
  • the image decoding apparatus 3700 may restore skip type information only when the block mode of the block is the skip mode. That is, since the bitstream includes data in which the skip type information is encoded only when the block mode of the block to be decoded is the skip mode, the data in which the skip type information is encoded from the bitstream is extracted and decoded only in the skip mode. Restore skip type information.
  • the image decoding apparatus 3700 may reconstruct the block based on the motion information determined in a preset manner. That is, when the skip type information indicates that the encoding of the block is skipped, the image encoding apparatus 3500 skips the encoding of the corresponding block, and thus the bitstream indicates that there is no data in which the encoding information or the coefficient information of the corresponding block is encoded. Therefore, without extracting and decoding data from the bitstream, the motion information (that is, the motion vector and the reference picture index) of the corresponding block is determined in a predetermined manner as promised with the image encoding apparatus 3500, and the determined motion information is used. Then, the block generated by compensating for the motion of the corresponding block is restored to the block to be decoded.
  • the motion information that is, the motion vector and the reference picture index
  • the image decoding apparatus 3700 may reconstruct the block based on the skip motion information of the block that is decoded by decoding the bitstream. That is, when the skip type information indicates that skip motion information of a block is encoded, the video decoding apparatus 3700 encodes skip motion information rather than coefficient information of the corresponding block in the video encoding apparatus 3500, and includes coefficient information in the bitstream. Since there is no encoded data, the block is generated by extracting and decoding skipped motion information from the bitstream, restoring the skipped motion information, and compensating for the motion of the corresponding block using the recovered skipped motion information. Restores the block to be decoded.
  • the image decoding apparatus 3700 may reconstruct the block based on the coefficient information restored by decoding the bitstream. That is, if the skip type information 3700 indicates that the skip type information encodes the coefficient information of the block, the image encoding apparatus 3500 encodes the coefficient information rather than the skip motion information of the corresponding block, and thus the coefficient information is included in the bitstream. Since there is no encoded data, it is possible to recover coefficient information by extracting and decoding data encoded with coefficient information from a bitstream, and to restore residual blocks by inverse quantization and inverse transform of the restored coefficient information.
  • the second embodiment of the present invention describes another embodiment of tree structure coding of transform information (eg, transform type, transform subblock split flag, CBP flag, etc.) related to the transform subblock.
  • transform information eg, transform type, transform subblock split flag, CBP flag, etc.
  • the transform subblock may be obtained by dividing into blocks of variable sizes in each macroblock or subblock.
  • the transform type may be determined according to the transform subblock.
  • the transform type may be determined according to the prediction mode.
  • the information about the size and type of possible transform subblocks may be included in various headers.
  • the header may be a slice header, a picture header, and a sequence header.
  • the size of the maximum transform subblock and the size of the minimum transform subblock may be encoded, and the size of the minimum transform subblock of intra prediction and inter prediction may be different. For example, when the size of the maximum transform subblock is 64x64 and the size of the minimum transform subblock is 4x4, the size of the minimum transform subblock of the intra prediction block may be encoded as 16x16.
  • the sizes of transform subblocks possible for transform of the intra prediction block are 64x64, 32x32, 16x16
  • the sizes of transform subblocks possible for transform of the inter prediction block are 64x64, 32x32, 16x16, 8x8. 4x4.
  • 39 is a diagram for explaining an example of transform information encoding according to the second embodiment of the present invention.
  • 39-A shows a case in which the current macroblock is divided into subblocks. That is, the current macroblock has been divided into four blocks of subblocks A, B, C, and D.
  • 39-B indicates a predicted subblock of a subblock in the current macroblock. That is, the sub block A is in the Skip mode, the sub block B is divided into four intra prediction sub blocks of 16x16, and the sub blocks C and D are divided into two inter prediction subblocks of 8x16 and 16x8, respectively.
  • 39-C represents the size of the transform subblock of the subblock in the current macroblock. That is, since subblock A is in the Skip mode, the subblock B is transformed and quantized into 8x8 transform subblocks, and subblocks C and D are transformed and quantized into 32x32 and 16x16 transform subblocks, respectively.
  • 39-D, 39-E, and 39-F represent CBP flags of one luminance component and two chrominance components.
  • 39-G shows the block number of the sub block in the current macroblock.
  • 40 is a diagram for explaining an example of transform information encoding of subblock B of FIG. 39 using a tree structure.
  • Sub_block_CBP_flag which indicates whether a transform coefficient of a luminance and chrominance component has a non-zero coefficient in a current subblock B
  • a split_flag that indicates whether a current subblock is divided into transform subblocks.
  • CBP_flag and split_flag of the color difference components Cr and Cb and the luminance component Y are encoded for each transform subblock. Referring to 39-G of FIG.
  • the transform subblock is divided again Are encoded in the order of P1, P2, P3, and P4 in the order of Cb_CBP_flag, Cr_CBP_flag, split_flag, and Y_CBP_flag of each transform subblock.
  • Other transform subblocks are encoded in the same order and in the same syntax.
  • each syntax may be encoded using a context adaptive binary arithmetic encoding (CABAC) using a different context according to a surrounding situation, or a syntax value may be encoded into 1 bit without using a context.
  • CABAC context adaptive binary arithmetic encoding
  • FIG. 41 is a diagram for explaining an example of transform information encoding of subblock C of FIG. 39 using a tree structure.
  • the current subblock C is an inter prediction block that is not divided into transform subblocks. Accordingly, the Sub_block_CBP_flag of the current subblock C is encoded by 1, the split_flag is encoded by 0, and then encoded in the order of Cb_CBP_flag, Cr_CBP_flag, and Y_CBP_flag.
  • FIG. 42 is a diagram for explaining another example of transform information encoding of subblock C of FIG. 39 using a tree structure.
  • split_flag indicating whether a transform subblock of the current subblock is divided is encoded, and CBP flags (Cb, Cr, and Y) are encoded.
  • sub_block_CBP_flag does not have to be encoded.
  • the order of sub_block_CBP_flag and split_flag of the highest node may be changed for each tree structure of all subblocks.
  • FIG. 43 is a diagram for explaining an example of transform information encoding of subblock D of FIG. 39 using a tree structure.
  • the current subblock D is an inter prediction block divided into transform subblocks. Therefore, sub_block_CBP_flag and split_flag of the current subblock D are encoded by 1, respectively. 39-G, split_flag and cbp_flag of each transform subblock divided in the order of P15, P16, P17, and P18 are encoded in the order of split_flag, Cb_CBP_flag, Cr_CBP_flag, and Y_CBP_flag.
  • the above-described syntax and the order of the syntax are exemplary only and are not limited to the above-described examples.
  • the encoded data of the transform information according to an embodiment of the present invention may include syntax and transform information of one or more of sub_block_CBP_flag, split flag, and cbp_flag (for each component) among the transform information.
  • it includes a case where sub_block_CBP_flag indicating whether or not a color coefficient and a luminance component have non-zero transform coefficients in each subblock is encoded as the highest node value.
  • transform information decoding corresponds to an inverse process of transform information encoding
  • those skilled in the art will understand the transform information decoding process from the above-described transform information encoding process.
  • the skip mode of the block may be defined in various ways, and the image may be encoded and decoded by selectively using various methods according to characteristics and / or implementation methods or needs of the image. Therefore, the compression efficiency of the image can be improved.
  • the embodiment of the present invention is applied to the field of video compression for encoding and decoding a video, and efficiently encodes encoding information used to encode the video, and selectively uses various encoding and decoding methods. It is a very useful invention to generate an effect that can improve the compression efficiency of the image by allowing the image to be encoded.

Landscapes

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

Abstract

영상 부호화/복호화 장치 및 방법이 개시된다. 본 발명에 따른 영상 부호화/복호화 장치는, 매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 블록 모드 정보 및 분할 모드 정보의 조합에 따라 블록의 변환 타입 정보, CBP(Coded Block Pattern) 정보 및 델타 양자화 파라미터 정보 중 적어도 하나를 부호화하며, 블록의 부호화된 정보를 기초로 상기 블록의 계수 정보를 부호화하는 영상 부호화기; 및 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 블록 모드 정보와 분할모드 정보의 조합에 따라 부호화된 변환 타입 정보를 복원하며, 복원된 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 블록을 복원하는 영상 복호화기를 포함하는 것을 특징으로 한다.

Description

영상 부호화/복호화 장치 및 방법
본 발명은 영상 부호화/복호화 장치 및 방법에 관한 것이다. 더욱 상세하게는, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 하며, 이와 같이 부호화된 부호화 정보 및 부호화 방식에 따라 대응적으로 영상을 복호화함으로써 영상의 압축 효율 및 복원 효율을 향상시킬 수 있는 영상 부호화/복호화 장치 및 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
동영상 데이터를 압축기술로는 H.261, H.263, MPEG-2, MPEG-4 등이 있다. 이러한 비디오 압축 표준은 각 영상을 휘도 성분의 16x16 크기의 화소들과 각 색차 성분의 8x8 크기의 화소들의 사각 영역으로 이루어진 고정된 크기를 가지는 매크로블록(Macroblock)들로 나누어 부호화한다. 각 매크로블록의 모든 휘도와 색차 성분들은 공간적으로나 시간적으로 예측되고, 예측 잔여분은 변환 및 양자화, 엔트로피 코딩이 수행되어 전송된다.
기존의 영상부호화 장치에서 사용하는 블록모드는 현재 부호화 대상 블록이 예측 움직임 벡터를 사용하고 부호화 할 변환계수가 없는 블록임을 나타내는 플래그를 부호화하고 더 이상의 정보는 부호화하지 않는다. 그리고 예측 움직임 벡터를 사용하지 않거나 부화화할 변환계수가 있는 블록인 경우 블록의 타입 정보와 예측 정보(예측움직임 벡터와의 차이 벡터와 참조픽처 번호)를 부호화하고 변환계수를 부호화한다.
하지만, 이와 같은 통상적인 영상 압축 기술에서는 부호화할 데이터로 차이 움직임 벡터만 있고 부호화 할 변환계수가 없는 블록의 경우, 또는 차이 움직임 벡터가 없고 부호화할 변환계수만 있는 블록을 부호화 할 경우 효율적인 부호화가 어려운 문제점이 있으며, 영상을 부호화하는 데 이용되는 다양한 정보 등의 효율적인 부호화가 어려운 문제점이 있다.
또한, 영상의 복호화는 영상의 부호화에 대응하여 이루어지기 때문에, 영상의 부호화에 대한 압축 효율이 저하된 상태에서는 고효율의 복호화를 기대하기 어렵다는 문제점이 있다.
전술한 문제점을 해결하기 위해 본 발명은, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식과 복호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 함으로써 영상의 압축 효율을 향상시키는 데 주된 목적이 있다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 장치는, 매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 블록 모드 정보 및 분할 모드 정보의 조합에 따라 블록의 변환 타입 정보, CBP(Coded Block Pattern) 정보 및 델타 양자화 파라미터 정보 중 적어도 하나를 부호화하며, 블록의 부호화된 정보를 기초로 상기 블록의 계수 정보를 부호화하는 영상 부호화기; 및 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 블록 모드 정보와 분할모드 정보의 조합에 따라 부호화된 변환 타입 정보를 복원하며, 복원된 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 블록을 복원하는 영상 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화 장치는, 매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 블록 모드 정보 및 상기 분할 모드 정보의 조합에 따라 블록의 변환 타입 정보를 부호화하는 부호화 정보 부호화기; 및 블록의 변환 타입 정보를 기초로 블록의 계수 정보를 부호화하는 영상 부호화기를 포함하는 것을 특징으로 한다.
여기서, 부호화 정보 부호화기는, 블록 모드 정보 및 상기 분할 모드 정보에 기초하여 매크로블록 내의 최하위 노드값을 생성하며, 생성된 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성할 수 있다.
또한, 부호화 정보 부호화기는, 매크로블록에 대하여 16x16 화소블록 단위로 변환 타입을 선택하며, 16x16 화소블록 내의 서브블록에 대해서는 16x16 화소블록 단위로 선택된 변환 타입과 동일한 변환 타입을 사용할 수 있다.
또한, 부호화 정보 부호화기는, 매크로블록 내의 16x16 화소블록 이상의 블록에 대해서는 해당 블록 단위로 변환 타입을 선택하고, 16x16 화소블록보다 작은 블록으로 분할된 서브블록에 대해서는 16x16 화소블록 단위로 변환 타입을 선택할 수 있다.
또한, 부호화 정보 부호화기는, 변환 계수가 없는 블록에 대해서는 변환타입의 부호화를 생략할 수 있다.
또한, 부호화 정보 부호화기는, 블록의 블록모드가 스킵 모드이거나 CBPX 플래그가 0인 경우, 변환타입의 부호화를 생략할 수 있다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영상 부호화 장치는, 매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 블록 모드 정보 및 분할 모드 정보의 조합에 따라 CBP 정보를 부호화하는 부호화 정보 부호화기; 및 블록의 CBP 정보를 기초로 블록의 계수 정보를 부호화하는 영상 부호화기를 포함하는 것을 특징으로 한다.
여기서, 블록의 CBP 정보는 블록 내에 0이 아닌 변환계수가 있는지의 여부를 나타내는 1비트 플래그일 수 있다.
또한, 부호화 정보 부호화기는, 기 전송된 모드값이나 플래그 중 현재의 블록 내에 부호화할 변환계수가 없음을 나타내는 정보가 포함된 경우, 현재의 블록에 대한 노드값의 생성을 생략할 수 있다.
또한, 부호화 정보 부호화기는, 블록이 0이 아닌 변환 계수를 포함하고 있는 경우에 CBP 정보를 부호화할 수 있다.
또한, 부호화 정보 부호화기는, 블록의 휘도 성분에 대해서 4x4 변환 또는 8x8 변환에 대해서는 8x8 화소블록 내에 0이 아닌 변환계수가 있는지의 여부에 따라 노드값을 생성할 수 있다.
또한, 부호화 정보 부호화기는, 블록의 휘도 성분에 대해서 8x16 변환 또는 16x8 변환에 대해서는 8x16 화소블록 또는 16x8 화소블록 내에 0이 아닌 변환계수가 있는지의 여부에 따라 노드값을 생성할 수 있다.
또한, 블록의 블록 모드가 스킵 모드이거나 CBPX 플래그가 0인 경우, CBP 정보의 부호화를 위한 노드값의 생성을 생략할 수 있다.
또한, 부호화 정보 부호화기는, 블록 모드 정보 및 상기 분할 모드 정보에 기초하여 매크로블록 내의 최하위 노드값을 생성하며, 생성된 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성할 수 있다.
전술한 목적을 달성하기 위한 본 발명의 또 다른 실시예에 따른 영상 부호화 장치는, 매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 블록 모드 정보 및 분할 모드 정보의 조합에 따라 블록의 델타 양자화 파라미터 정보를 부호화하는 부호화 정보 부호화기; 및 블록의 델타 양자화 파라미터 정보를 기초로 블록의 계수 정보를 부호화하는 영상 부호화기를 포함하는 것을 특징으로 한다.
여기서, 부호화 정보 부호화기는, 블록 모드 정보 및 상기 분할 모드 정보에 기초하여 매크로블록 내의 최하위 노드값을 생성하며, 생성된 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성할 수 있다.
또한, 부호화 정보 부호화기는, 매크로블록 내의 부호화할 0이 아닌 변환계수가 있는 16x16 화소블록 또는 매크로블록에 대해서만 델타 양자화 파라미터 정보를 부호화할 수 있다.
또한, 부호화 정보 부호화기는, 델타 양자화 파라미터 정보를 기 설정된 코드번호로 변환한 후, 코드번호를 트리구조로 부호화할 수 있다.
또한, 부호화 정보 부호화기는, 델타 양자화 파라미터 정보의 절대값을 부호화한 후, 0이 아닌 델타 양자화 파라미터 정보에 대해서만 부호화할 수 있다.
전술한 목적을 달성하기 위한 본 발명에 따른 영상 복호화 장치의 일 실시예는, 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 블록 모드 정보와 분할모드 정보의 조합에 따라 부호화된 변환 타입 정보를 복원하는 부호화 정보 복호화기; 및 부호화 정보 복호화기에 의해 복원된 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 블록을 복원하는 영상 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명에 따른 영상 복호화 장치의 다른 실시예는, 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 블록 모드 정보와 분할모드 정보의 조합에 따라 부호화된 CBP 정보를 복원하는 부호화 정보 복호화기; 및 부호화 정보 복호화기에 의해 복원된 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 블록을 복원하는 영상 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명에 따른 영상 복호화 장치의 또 다른 실시예는, 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 블록 모드 정보와 분할모드 정보의 조합에 따라 부호화된 델타 양자화 파라미터 정보를 복원하는 부호화 정보 복호화기; 및 부호화 정보 복호화기에 의해 복원된 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 블록을 복원하는 영상 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명에 따른 영상 부호화/복호화 방법은, 매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 블록 모드 정보 및 분할 모드 정보의 조합에 따라 블록의 변환 타입 정보, CBP 정보 및 델타 양자화 파라미터 정보 중 적어도 하나를 부호화하며, 블록의 부호화된 정보를 기초로 블록의 계수 정보를 부호화하는 단계; 및 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 블록 모드 정보와 분할모드 정보의 조합에 따라 부호화된 변환 타입 정보를 복원하며, 복원된 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 블록을 복원하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명에 따른 영상 부호화 방법은, 매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 블록 모드 정보 및 상기 분할 모드 정보의 조합에 따라 블록의 변환 타입 정보를 부호화하는 부호화 정보 부호화 단계; 및 블록의 변환 타입 정보를 기초로 블록의 계수 정보를 부호화하는 영상 부호화 단계를 포함하는 것을 특징으로 한다.
여기서, 부호화 정보 부호화 단계는, 블록 모드 정보 및 분할 모드 정보에 기초하여 매크로블록 내의 최하위 노드값을 생성하며, 생성된 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성할 수 있다.
또한, 부호화 정보 부호화 단계는, 매크로블록에 대하여 16x16 화소블록 단위로 변환 타입을 선택하며, 16x16 화소블록 내의 서브블록에 대해서는 16x16 화소블록 단위로 선택된 변환 타입과 동일한 변환 타입을 사용할 수 있다.
또한, 부호화 정보 부호화 단계는, 매크로블록 내의 16x16 화소블록 이상의 블록에 대해서는 해당 블록 단위로 변환 타입을 선택하고, 16x16 화소블록보다 작은 블록으로 분할된 서브블록에 대해서는 16x16 화소블록 단위로 변환 타입을 선택할 수 있다.
또한, 부호화 정보 부호화 단계는, 변환 계수가 없는 블록에 대해서는 변환타입의 부호화를 생략할 수 있다.
또한, 부호화 정보 부호화 단계는, 블록의 블록모드가 스킵 모드이거나 CBPX 플래그가 0인 경우, 변환타입의 부호화를 생략할 수 있다.
전술한 목적을 달성하기 위한 본 발명에 따른 영상 부호화 방법의 다른 실시예는, 매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 블록 모드 정보 및 분할 모드 정보의 조합에 따라 CBP 정보를 부호화하는 부호화 정보 부호화 단계; 및 블록의 CBP 정보를 기초로 블록의 계수 정보를 부호화하는 영상 부호화 단계를 포함하는 것을 특징으로 한다.
여기서, 블록의 CBP 정보는 블록 내에 0이 아닌 변환계수가 있는지의 여부를 나타내는 1비트 플래그일 수 있다.
또한, 부호화 정보 부호화 단계는, 기 전송된 모드값이나 플래그 중 현재의 블록 내에 부호화할 변환계수가 없음을 나타내는 정보가 포함된 경우, 현재의 블록에 대한 노드값의 생성을 생략할 수 있다.
또한, 부호화 정보 부호화 단계는, 블록이 0이 아닌 변환 계수를 포함하고 있는 경우에 CBP 정보를 부호화할 수 있다.
또한, 부호화 정보 부호화 단계는, 블록의 휘도 성분에 대해서 4x4 변환 또는 8x8 변환에 대해서는 8x8 화소블록 내에 0이 아닌 변환계수가 있는지의 여부에 따라 노드값을 생성할 수 있다.
또한, 부호화 정보 부호화 단계는, 블록의 휘도 성분에 대해서 8x16 변환 또는 16x8 변환에 대해서는 8x16 화소블록 또는 16x8 화소블록 내에 0이 아닌 변환계수가 있는지의 여부에 따라 노드값을 생성할 수 있다.
또한, 블록의 블록 모드가 스킵 모드이거나 CBPX 플래그가 0인 경우, CBP 정보의 부호화를 위한 노드값의 생성을 생략할 수 있다.
또한, 부호화 정보 부호화 단계는, 블록 모드 정보 및 분할 모드 정보에 기초하여 매크로블록 내의 최하위 노드값을 생성하며, 생성된 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성할 수 있다.
전술한 목적을 달성하기 위한 본 발명에 따른 영상 부호화 방법의 또 다른 실시예는, 매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 블록 모드 정보 및 분할 모드 정보의 조합에 따라 블록의 델타 양자화 파라미터 정보를 부호화하는 부호화 정보 부호화 단계; 및 블록의 델타 양자화 파라미터 정보를 기초로 블록의 계수 정보를 부호화하는 영상 부호화 단계를 포함하는 것을 특징으로 한다.
여기서, 부호화 정보 부호화 단계는, 블록 모드 정보 및 분할 모드 정보에 기초하여 매크로블록 내의 최하위 노드값을 생성하며, 생성된 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성할 수 있다.
또한, 부호화 정보 부호화 단계는, 매크로블록 내의 부호화할 0이 아닌 변환계수가 있는 16x16 화소블록 또는 매크로블록에 대해서만 델타 양자화 파라미터 정보를 부호화할 수 있다.
또한, 부호화 정보 부호화 단계는, 델타 양자화 파라미터 정보를 기 설정된 코드번호로 변환한 후, 코드번호를 트리구조로 부호화할 수 있다.
또한, 부호화 정보 부호화 단계는, 델타 양자화 파라미터 정보의 절대값을 부호화한 후, 0이 아닌 델타 양자화 파라미터 정보에 대해서만 부호화할 수 있다.
전술한 목적을 달성하기 위한 본 발명에 따른 영상 복호화 방법의 일 실시예는, 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 블록 모드 정보와 분할모드 정보의 조합에 따라 부호화된 변환 타입 정보를 복원하는 부호화 정보 복호화 단계; 및 부호화 정보 복호화기에 의해 복원된 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 블록을 복원하는 영상 복호화 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명에 따른 영상 복호화 방법의 다른 실시예는, 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 블록 모드 정보와 분할모드 정보의 조합에 따라 부호화된 CBP 정보를 복원하는 부호화 정보 복호화 단계; 및 부호화 정보 복호화기에 의해 복원된 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 블록을 복원하는 영상 복호화 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명에 따른 영상 복호화 방법의 또 다른 실시예는, 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 블록 모드 정보와 분할모드 정보의 조합에 따라 부호화된 델타 양자화 파라미터 정보를 복원하는 부호화 정보 복호화 단계; 및 부호화 정보 복호화기에 의해 복원된 정보를 기초로 블록을 복원하거나 상기 비트스트림을 복호화하여 블록을 복원하는 영상 복호화 단계를 포함하는 것을 특징으로 한다.
이러한 본 발명에 따르면, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식과 복호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 함으로써 영상의 압축 효율을 향상시킬 수 있다.
또한, 영상의 부호화에 따라 적응적으로 영상을 복호화함으로써 영상의 복원 효율을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 2는 도 1의 영상 부호화기를 개략적으로 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 다양한 크기의 인트라 예측 부호화와 인터 예측 부호화를 위한 매크로블록과 서브블록을 나타낸 예시도이다.
도 4는 본 발명의 일 실시예에 따른 분할 타입별 번호를 나타낸 예시도이다.
도 5는 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따라 부호화된 비트스트림의 신택스 구조를 나타낸 예시도이다.
도 7 및 도 8은 본 발명의 일 실시예에 따라 트리 구조를 이용하여 분할 타입 정보를 부호화하는 과정을 설명하기 위한 예시도이다.
도 9 및 도 10은 본 발명의 실시예에 따른 트리 구조의 예를 설명하기 위해 도시한 도면이다.
도 11 및 도 12는 본 발명의 실시예에 따른 변환 타입의 부호화 및 복호화를 설명하기 위해 도시한 도면이다.
도 13은 부호화할 변환타입 값에 대한 최하위 노드값의 예를 나타낸 도면이다.
도 14는 도 13에 대한 최상위 노드값의 예를 나타낸 도면이다.
도 15는 도 11의 매크로블록 번호 1에 대한 트리구조의 예를 나타낸 도면이다.
도 16은 도 11의 매크로블록 번호 4에 대한 트리구조의 예를 나타낸 도면이다.
도 17은 도 11의 매크로블록 번호 7에 대한 트리구조의 예를 나타낸 도면이다.
도 18은 부호화할 변환 타입 값에 대한 최하위 노드 값의 다른 예를 나타낸 도면이다.
도 19는 도 18에 대한 매크로블록 번호 4의 트리구조의 예를 나타낸 도면이다.
도 20은 도 18에 대한 매크로블록 번호 7의 트리구조의 예를 나타낸 도면이다.
도 21은 CBPX 플래그 및 CBP의 부호화/복호화 순서를 설명하기 위해 도시한 흐름도이다.
도 22는 부호화기에서 선택된 블록 모드 및 선택된 변환타입의 예를 나타낸 도면이다.
도 23은 CBP 비트의 전송단위와 CBP 비트값에 대한 최하위 노드값의 예를 나타낸 도면이다.
도 24는 도 23에 대한 16x16 영역에 해당하는 블록을 최상위 블록으로 사용하는 경우의 최상위 노드값의 예를 나타낸 도면이다.
도 25는 델타 양자화 파라미터 부호화의 예를 설명하기 위해 도시한 도면이다.
도 26은 도 25의 델타 양자화 파라미터를 약속된 코드번호로 변환한 경우의 예를 나타낸 도면이다.
도 27은 도 26의 트리구조 생성예를 설명하기 위해 도시한 도면이다.
도 28은 도 26의 트리구조 생성의 다른 예를 설명하기 위해 도시한 도면이다.
도 29는 델타 양자화 파라미터 부호화의 다른 예를 설명하기 위해 도시한 도면이다.
도 30은 도 29의 델타 양자화 파라미터의 절대값을 취한 경우를 나타낸 도면이다.
도 31은 도 29의 부호를 부호화하는 방법을 설명하기 위해 도시한 도면이다.
도 32는 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
도 33은 도 32의 영상 복호화기를 개략적으로 도시한 도면이다.
도 34는 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
도 35는 본 발명의 다른 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 36은 본 발명의 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
도 37은 본 발명의 다른 실시예에 따른 영상 복호화 장치의 구성을 간략하게 나타낸 블록 구성도이다.
도 38은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
도 39는 본 발명의 제2 실시예에 따른 변환 정보 부호화의 예를 설명하기 위해 도시한 도면이다.
도 40은 트리 구조를 이용한 도39의 서브 블록 B의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
도 41은 트리 구조를 이용한 도 39의 서브 블록 C의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
도 42는 트리 구조를 이용한 도 39의 서브 블록 C의 변환 정보 부호화의 또 다른 예시를 설명하기 위한 도면이다.
도 43은 트리 구조를 이용한 도 39의 서브 블록 D의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
후술할 본 발명의 실시예에 따른 영상 부호화 장치(Video Encoding Apparatus)와 영상 복호화 장치(Video Decoding Apparatus)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선통신 단말기(Wireless Communication Terminal), 스마트 폰(Smart Phone) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
이하의 설명에서는 입력 영상이 매크로블록 단위로 분할되어 부호화되고 복호화되는 것으로 설명하지만, 본 발명의 실시예는 이에 한정되지 않고 매크로블록과 같이 정형화된 블록의 형태가 아닌 원형, 사다리꼴, 6각형 등 다양한 비정형의 영역으로 분할되어 분할된 영역 단위로 부호화되고 복호화될 수도 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 부호화 정보 부호화기(110) 및 영상 부호화기(200)를 포함하여 구성될 수 있다.
부호화 정보 부호화기(Encoding Information Encoder, 110)는 영상의 부호화하고자 하는 블록의 블록 모드(Block Mode)가 스킵 모드(Skip Mode)인지 여부를 나타내는 블록 모드 정보(Block Mode Information)와 블록이 서브블록으로 분할되는지 여부를 나타내는 분할 모드 정보(Partition Mode Information)를 부호화하고, 블록 모드 정보 및 분할 모드 정보의 조합에 따라 블록의 스킵 움직임 정보(Skip Motion Information)를 부호화하거나 블록의 블록 타입 정보(Block Type Information)와 예측 정보(Prediction Information)를 포함하는 예측 부호화 정보(Prediction Encoding Information)를 부호화한다.
본 발명의 실시예에서, 부호화 정보란 영상의 화소 정보를 블록 단위로 부호화할 때 화소 정보 그 자체가 아니라 화소 정보를 부호화하는 데 이용되는 부가적인 정보를 말한다. 이러한 부호화 정보로서는 블록의 블록 모드 정보, 분할 모드 정보, 스킵 움직임 정보, 블록 타입 정보, 예측 정보, 예측 부호화 정보, 변환 타입 정보(Transform Type Information), 부호화된 블록 패턴(CBP: Coded Block Pattern), 델타 양자화 파라미터(Delta Quantization Parameter), 스킵 타입 정보 등과 같은 정보가 될 수 있다.
블록 모드 정보란 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 정보를 말한다. 블록 모드란 블록을 부호화하지 않고 스킵할지 아니면 스킵하지 않고 부호화할지 여부를 나타내는 모드로서 스킵 모드(Skip Mode)와 넌스킵 모드(Non-skip Mode)의 두 가지 모드로 나타낼 수 있다. 이러한 블록 모드 정보는 예를 들어 블록의 블록 모드가 스킵 모드인지 또는 넌스킵 모드인지 여부를 나타내는 1 비트의 플래그(Flag)인 스킵 블록 플래그로 구현될 수 있지만, 반드시 이에 한정되지 않고 다른 다양한 방식으로 구현될 수도 있다.
스킵 모드(Skip Mode)란 블록 타입 정보, 움직임 정보 또는 변환계수와 같은 특정 정보들을 부호화하지 않는 모드를 뜻한다.
예를 들어, 영상 부호화 장치(100)가 입력 영상에서 현재 부호화하고자 하는 블록이 스킵 모드인 경우 스킵임을 나타내는 정보만을 부호화하고 그 외 블록 타입, 움직임 정보, 변환계수 등은 부호화지 않는 모드일 수 있다.
또 다른 예로, 스킵 모드는 블록의 움직임 정보만 부호화하고 타입정보, 변환계수와 같은 정보는 부호화 하지 않는 모드일 수 있다.
또 다른 예로, 스킵 모드는 블록의 변환타입과 변환계수만을 부호화하고 타입정보, 움직임 정보는 부호화 하지 않는 모드일 수 있다.
또 다른 구현 예로, 블록 크기 별로 스킵 모드인 경우의 전송하지 않는 정보들이 다를 수 있다. 예를 들어 64x64블록이 스킵모드인 경우에는 변환계수만을 부호화하고, 16x16블록이 스킵모드인 경우에는 움직임 정보만을 부호화할 수 있다.
분할 모드 정보란 블록이 더 작은 서브블록으로 분할되는지 여부를 나타내는 정보를 말한다.
예를 들어, 영상 부호화 장치(100)가 입력 영상에서 현재 부호화하고자 하는 블록이 매크로블록이고 매크로블록의 크기가 64x64 화소 크기의 블록이라고 가정하면, 64x64 화소 크기의 매크로블록은 두 개의 64x32 화소 크기의 서브블록, 하나의 64x32 화소 크기의 서브블록과 두 개의 32x32 화소 크기의 서브블록, 네 개의 32x32 화소 크기의 서브블록 등과 같이 다양한 크기와 개수의 서브블록으로 분할되어 서브블록 별로 부호화될 수 있는데, 분할 모드 정보는 매크로블록이 서브블록들로 분할되어 부호화되는지 여부를 나타낸다. 이러한 분할 모드 정보는 예를 들어 블록이 서브블록으로 분할되는지 또는 분할되지 않는지 여부를 나타내는 1 비트의 플래그인 분할 플래그(Partition Flag)로 구현될 수 있지만, 반드시 이에 한정되지 않고 다른 다양한 방식으로 구현될 수도 있다.
또 다른 예로, 분할 모드 정보는 블록이 특정 크기의 더 작은 서브블록으로 분할되는지 여부를 나타내는 정보를 말한다.
예를 들어 영상 부호화 장치(100)가 입력 영상에서 현재 부호화하고자 하는 블록이 매크로블록이고 매크로블록의 크기가 64x64화소 크기의 블록이라고 가정하면, 16x16블록으로 분할되는지를 나타내는 1 비트 플래그를 통해 64x64 화소 크기의 매크로블록은 16개의 16x16블록으로 분할될 수 있고 각 16x16블록에 대해서는 더 작은 서브블록으로 분할 될 수 있으며 서브블록의 모양을 나타내는 정보(분할 타입)를 통해 부호화 할 수 있다.
스킵 움직임 정보는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 해당 블록에 대해 움직임 추정하여 결정된 움직임 벡터 그 자체나 해당 블록의 움직임 벡터와 해당 블록의 예측 움직임 벡터 간의 차분 벡터 및/또는 참조 픽처 인덱스를 말한다. 즉, 해당 블록의 블록 모드가 스킵 모드인 경우, 영상 부호화 장치(100)는 해당 블록의 계수 정보는 부호화하지 않고 스킵 움직임 정보만을 부호화하며, 후술할 영상 복호화 장치에서 스킵 움직임 정보를 복원하고 복원된 스킵 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 해당 블록을 복원한다.
스킵 모드의 또 다른 구현 예로, 부호화하고자 하는 참조 픽처 인덱스가 0인 경우에만 스킵 모드를 적용하여 블록의 블록 모드가 스킵 모드인 경우, 영상 부호화 장치(100)는 해당 블록에 대해 움직임 추정하여 결정된 움직임 벡터 그 자체나 해당 블록의 움직임 벡터와 해당 블록의 예측 움직임 벡터 간의 차분 벡터만을 부호화 하고 참조 픽처 인덱스와 해당 블록의 움직임 정보는 부호화하지 않는다. 후술하는 영상 복호화 장치에서는 결정된 움직임 벡터 그 자체 또는 해당 블록의 움직임 벡터와 해당 블록의 예측 움직임 벡터간의 차분 벡터만을 복원하고 참조 픽처 인덱스를 0 (즉, 바로 이전에 복원된 픽처를 참조 픽처로 사용)으로 하여 해당 블록을 움직임을 보상하여 해당 블록을 복원한다.
스킵 모드의 또 다른 구현 예로, 부호화하고자 하는 블록의 예측 움직임 벡터 결정 시 현재 부호화 대상 블록의 위쪽 블록과 왼쪽 블록의 움직임 벡터 중 하나 이상이 움직임 벡터가 제로벡터(Zero-Vector인 경우, 즉 {0,0})인 경우 예측 움직임 벡터로 제로벡터를 사용할 수 도 있다. 그 외의 경우 위, 왼쪽, 위-오른쪽 블록의 움직임 벡터의 중앙값을 예측 움직임 벡터로 사용한다. 후술하는 영상 복호화 장치에서는 현재 복호화 대상인 블록이 스킵 모드인 경우, 예측 움직임 벡터 결정시 위 또는 왼쪽 블록의 움직임 벡터가 {0,0}인 경우 예측 움직임 벡터로 {0,0}벡터를 사용하고 복원된 차이벡터를 복원하여 움직임 보상을 수행하여 해당 블록을 복원한다.
또 다른 구현 예로, 블록 크기 별 다른 예측 움직임 벡터를 사용하도록 할 수도 있다. 일 예로, 16x16보다 큰 블록에 대해서는 현재 부호화 대상 블록의 위쪽 블록과 왼쪽 블록의 벡터값과 상관없이 median vector를 예측 움직임 벡터로 사용하고 16x16 크기의 블록에 대해서는 현재 부호화 대상 블록의 위쪽 블록 또는 왼쪽 블록의 벡터가 (0,0)인 경우 zero-vector를 예측벡터로 사용하며 그 외의 경우 왼쪽 블록, 위쪽 블록, 위-왼쪽 블록의 세 개의 움직임 벡터의 median 벡터를 예측 움직임 벡터로 사용한다. (반대의 경우도 성립)
블록 타입 정보는 부호화하고자 하는 블록의 블록 모드가 스킵 모드가 아닌 경우, 해당 블록이 인터 블록인지 또는 인트라 블록인지 여부와 해당 블록의 서브블록의 분할 타입을 나타내는 정보를 말한다.
일 예로, 이러한 블록 타입 정보는 매크로블록 단위로 부호화 할 수 있으며 해당 매크로 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 1 비트의 블록 타입 플래그(Block Type Flag)와 해당 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보(Partition Type Information)를 포함하여 구현될 수 있다. 예를 들어, 블록 타입 플래그는 해당 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 1 또는 0의 이진 비트로 나타낼 수 있다. 분할 타입 정보는 서브블록의 분할 타입별 번호로 나타낼 수 있다. 다른 예로, 블록 타입 정보는 16x16 크기 단위로 부호화 할 수 있으며 현재 16x16블록이 인트라 블록인 경우 현재 블록 내 서브블록들은 모두 인트라 모드임을 나타낸다.
또 다른 예로, 블록 타입 정보는 해당 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 1 비트의 블록 타입 플래그와 해당 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보와 서브블록의 블록 모드가 스킵 모드인지 여부를 나타내는 1 비트의 스킵 서브블록 플래그(Skip Subblock Flag)를 포함하여 구현될 수 있다. 여기서, 스킵 서브블록 플래그는 해당 블록의 서브블록 각각이 스킵 모드인지 여부를 나타내며, 어느 서브블록이 스킵 모드인 경우, 해당 서브블록에 대해서는 부호화하지 않고 스킵함을 나타낸다. 즉, 부호화하고자 하는 블록의 서브블록들 중에서 어느 서브블록이 스킵 모드인 경우, 해당 서브블록에 대해서는 움직임 정보나 계수 정보가 부호화되지 않는다.
또 다른 예로, 블록 타입 정보는 해당 블록이 인터 블록인지 또는 인트라 블록인지 여부와 해당 블록의 서브블록의 분할 타입을 기초로 이용 가능한 복수 개의 블록 타입에 할당된 블록 타입 번호로 구현될 수 있다.
또한, 블록 타입 정보는 분할 모드 정보에 따라 부호화하고자 하는 블록의 블록 타입을 나타내거나 부호화하고자 하는 블록의 서브블록 각각의 블록 타입을 나타낼 수 있다. 예를 들어, 분할 모드 정보가 부호화하고자 하는 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 분할 타입 정보는 부호화하고자 하는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부와 해당 블록의 분할 타입(즉, 분할되지 않은 매크로블록의 타입)을 나타내며, 분할 모드 정보가 부호화하고자 하는 블록이 서브블록으로 분할됨을 나타내는 경우, 분할 타입 정보는 부호화하고자 하는 블록의 각 서브블록이 인터 블록인지 또는 인트라 블록인지 여부와 해당 블록의 서브블록들의 분할 타입을 나타낸다.
예측 정보는 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 예측 부호화할 때, 예측에 이용된 정보를 말한다. 이러한 예측 정보는 인트라 예측 부호화를 위한 인트라 예측 모드에 대한 정보가 될 수도 있고 인터 예측 부호화를 위한 움직임 벡터에 대한 정보와 참조 픽처 인덱스(Reference Picture Index)에 대한 정보 등이 될 수 있다.
변환 타입 정보는 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 변환 및 양자화할 때, 변환 및 양자화를 수행한 변환 단위에 대한 정보를 말한다. 예를 들어, 64x64 화소 크기의 블록이 더 이상 분할되지 않고 부호화되고 16x16 변환이 효율적인 것으로 결정된 경우에는 16x16 변환이 사용되었음을 나타내는 정보가 변환 타입 정보로 부호화될 수 있다.
부호화된 블록 패턴은 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록의 계수가 모두 0인지 여부를 나타내는 정보를 말하며, 델타 양자화 파라미터는 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록에 대한 양자화 파라미터를 나타내는 정보를 말한다.
이상에서 전술한 블록 모드 정보, 분할 모드 정보, 블록 타입 정보, 예측 정보, 분할 타입 정보, 부호화된 블록 패턴, 델타 양자화 파라미터는 부호화 정보 부호화기(110)가 입력 영상을 분석하여 결정할 수도 있지만, 영상 부호화기(200)가 입력 영상을 분석하여 결정할 수도 있다.
영상 부호화기(200)는 블록의 블록 타입 정보와 예측 정보를 기초로 블록의 계수 정보를 부호화한다. 예를 들어, 영상 부호화기(200)는 블록 모드 정보가 부호화하고자 하는 블록의 블록 모드가 스킵 모드가 아님을 나타내고, 블록 타입 정보가 해당 블록이 여러 가지의 형태와 크기의 서브블록으로 분할되었음을 나타내는 경우, 각 서브블록 별 예측 정보에 따라 각 서브블록을 인트라 예측 부호화하거나 인터 예측 부호화하여 해당 블록의 계수 정보를 부호화한다. 여기서, 계수 정보란 영상의 부호화하고자 하는 블록의 휘도 성분 및/또는 색차 성분을 예측하여 그 잔차 블록을 변환 및 양자화하여 생성되는 양자화된 변환 계수에 대한 정보를 말하며, 계수 정보가 부호화되어 텍스처 데이터(Texture Data)로서 비트스트림에 포함된다.
도 2는 본 발명의 실시예에 따른 영상 부호화기(200)를 개략적으로 도시한 도면이다. 도면을 참조하면, 영상 부호화기(200)는 예측기(Predictor)(210), 감산기(Subtracter)(220), 변환기 및 양자화기(Transformer and Quantizer)(230), 부호화기(Encoder)(240), 역양자화기 및 역변환기(Inverse Transformer and Inverse Quantizer)(250), 가산기(Adder)(260), 필터(Filter)(270) 및 픽처 버퍼(Picture Buffer)(280)를 포함하여 구성될 수 있다.
예측기(210)는 인트라 예측기(Intra Predictor)(212)와 인터 예측기(Inter Predictor)(214)를 포함하여 구성될 수 있으며, 인터 예측기(214)는 다시 움직임 추정기(Motion Estimator)(216)와 움직임 보상기(Motion Compensator)(218)를 포함하여 구성될 수 있다.
동영상의 하나의 픽처 또는 프레임으로 이루어진 입력 영상(Input Picture)은 NxN(단, N은 16이상의 정수) 화소를 가지는 매크로블록(Macroblock)들로 분할되고, 분할된 각 매크로블록은 도 1의 영상 부호화 장치(100)에 입력된다. 입력 영상이 4:2:0 포맷(Format)의 영상의 경우, 매크로블록은 NxN 화소를 가지는 휘도 블록(Luminance Block)과 두 개의 (M/2)x(N/2) 화소를 가지는 색차 블록(Chrominance Block)으로 이루어진다. 여기서, 매크로블록은 16x16 화소블록 뿐만 아니라, 32x32 화소블록, 64x64 화소블록 등을 포함하며, 16x16 화소블록보다 큰 매크로블록을 확장된 매크로블록이라고도 한다.
각 매크로블록은 도 3에 도시한 바와 같이 내부적으로 더 작은 서브블록(Subblock)으로 분할되어 인트라 예측 부호화(Intra Prediction Encoding) 또는 인터 예측 부호화(Inter Prediction Encoding)가 수행될 수 있다.
도 3은 본 발명의 실시예에 따른 인트라 예측 부호화와 인터 예측 부호화를 위한 매크로블록과 다양한 크기의 서브블록을 나타낸 예시도이다.
도 3은 N이 16 이상의 정수이며 최소 블록의 크기가 4x4화소인 경우의 매크로블록과 서브블록을 예시적으로 나타내었다. 매크로블록이 64x64 화소 블록일 때, 서브블록인 64x64 화소 블록, 64x32 화소 블록, 32x64 화소 블록, 32x32 화소 블록은 매크로블록 레이어(Layer) 0에 속하고, 서브블록인 32x32 화소 블록, 32x16 화소 블록, 16x32 화소 블록, 16x16 화소 블록은 매크로블록 레이어 1에 속한다. 여기서, 매크로블록 레이어 K(단, 0≤K≤log2(N/4))의 서브블록 중 제일 큰 서브블록이 4 개의 블록으로 분할된 경우에만 매크로블록 레이어 K+1의 서브블록들이 사용될 수 있다.
영상 부호화 장치(100)는 각 서브블록으로 매크로블록을 부호화했을 경우의 부호화 효율을 계산하고, 가장 부호화 효율이 높은 경우의 서브블록을 최종적인 인트라 예측 블록 또는 인터 예측 블록으로 결정할 수 있다. 부호화 효율은 율-왜곡 최적화(RDO: Rate-Distortion Optimization) 기법에 근거하여 측정할 수 있다.
최소 블록의 크기는 최대로 사용할 수 있는 레이어값인 최대 레이어값(MaxLayer)에 따라 결정될 수 있다. 예를 들어, NxN 화소의 매크로블록인 경우, 최소 블록의 크기는 N/(2MaxLayer)로 결정될 수 있다.
도 4는 본 발명의 일 실시예에 따른 분할 타입별 번호를 나타낸 예시도이다.
매크로블록 레이어 K의 N/2K × N/2K 화소 블록이 더 이상 작은 서브블록으로 분할되지 않는 경우에는 매크로블록 레이어 K의 N/2K × N/2K 화소 블록에 분할 타입 번호 0이 할당된다. 매크로블록 레이어 K의 N/2K × N/2K 화소 블록이 두 개의 N/2K × N/2K+1 화소 블록으로 분할된 경우에는 매크로블록 레이어 K의 N/2K × N/2K 화소 블록에 분할 타입 번호 1이 할당된다. 매크로블록 레이어 K의 N/2K × N/2K 화소 블록이 두 개의 N/2K+1 × N/2K 화소 블록으로 분할된 경우에는 매크로블록 레이어 K의 N/2K × N/2K 화소 블록에 분할 타입 번호 2가 할당된다. 매크로블록 레이어 K의 N/2K × N/2K 화소 블록이 4 개의 N/2K+1 × N/2K+1 로 분할되는 경우에는 매크로블록 레이어 K의 N/2K × N/2K 화소 블록에 분할 타입 번호 3이 할당된다. 도 3에서 각 매크로블록 레이어 K의 N/2K × N/2K 화소 블록 내의 분할된 서브블록에 표시된 0, 1, 2, 3 등의 숫자는 각 서브블록을 식별하기 위한 파티션 번호(Partition Number)이다.
도 5는 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 영상 부호화 방법에 따르면, 영상 부호화 장치(100)는 영상의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 블록 모드 정보를 부호화한다(S510). 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록의 계수 정보를 부호화할지 아니면 블록의 계수 정보는 부호화하지 않고 블록의 움직임 정보만을 부호화할지 여부를 결정하고, 블록의 움직임 정보만을 부호화하는 경우 블록 모드가 스킵 모드임을 나타내는 블록 모드 정보를 부호화하며, 블록의 움직임 정보뿐만 아니라 블록의 계수 정보도 부호화하는 경우 블록 모드가 스킵 모드가 아님을 나타내는 블록 모드 정보를 부호화한다.
영상 부호화 장치(100)는 해당 블록이 서브블록으로 분할되는지 여부를 나타내는 분할 모드 정보를 부호화한다(S520). 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록을 더 작은 서브블록으로 분할하여 서브블록 별로 부호화할지 아니면 블록을 더 작은 서브블록으로 분할하지 않고 부호화할지 여부를 결정하고, 블록을 더 작은 서브블록으로 분할하지 않고 부호화하는 경우 블록이 서브블록으로 분할되지 않음을 나타내는 분할 모드 정보를 부호화하며, 블록을 더 작은 서브블록으로 분할하여 부호화하는 경우 블록이 서브블록으로 분할됨을 나타내는 분할 모드 정보를 부호화한다. 예를 들어, 부호화하고자 하는 블록이 64x64 화소 크기의 매크로블록인 경우, 영상 부호화 장치(100)는 64x64 화소 크기의 매크로블록을 16x16 화소 크기의 서브블록들로 분할하여 부호화할지 분할하지 않고 부호화할지 여부를 결정하고, 그에 따라 분할 모드 정보를 부호화한다. 64x64화소 크기의 매크로블록을 16x16화소 크기의 서브블록들로 분할하여 부호화할 경우, 각각의 16x16 블록들은 더 작은 크기의 서브블록들로 분할될 수 있으며 블록타입을 부호화하여 복호화기에 전송한다
영상 부호화 장치(100)는 블록 모드 정보 및 분할 모드 정보의 조합에 따라 블록의 스킵 움직임 정보를 부호화하거나 블록의 블록 타입 정보 및 블록의 예측 정보를 포함하는 예측 부호화 정보를 부호화하고(S530), 블록 타입 정보 및 예측 정보를 기초로 블록의 계수 정보를 부호화한다(S540). 즉, 영상 부호화 장치(100)는 블록 모드 정보가 부호화하고자 하는 블록의 블록 모드가 스킵 모드임을 나타내는지 여부와 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는지 여부를 조합한 각 경우에 따라서 블록을 다른 방식으로 부호화한다.
이하에서는 부호화하고자 하는 블록이 64x64 화소 크기의 매크로블록이며 16x16 화소 크기의 서브블록으로 분할되는 경우를 가정하여 영상 부호화 장치(100)의 단계 S530 및 단계 S540의 수행 과정에 대해 예를 들어 설명한다.
단계 S530에서, 블록 모드 정보가 블록의 블록 모드가 스킵 모드임을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 영상 부호화 장치(100)는 블록에 대한 스킵 움직임 벡터를 부호화할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록에 대해 64x64 화소 단위로 움직임 추정하여 부호화하고자 하는 블록과 가장 유사한 블록인 참조 블록을 참조 픽처 내에서 찾고 참조 블록과 부호화하고자 하는 블록의 상대적인 위치를 나타내는 움직임 벡터를 스킵 움직임 벡터로서 결정하고 참조 블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 스킵 참조 픽처 인덱스로서 결정하며, 스킵 움직임 벡터와 스킵 참조 픽처 인덱스를 포함하는 스킵 움직임 정보를 부호화한다.
단계 S530에서, 영상 부호화 장치(100)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드임을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는 경우, 부호화하고자 하는 블록의 서브블록에 대한 스킵 움직임 벡터를 부호화할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록의 각 서브블록에 대해 16x16 화소 단위로 움직임 추정하여 부호화하고자 하는 블록의 각 서브블록과 가장 유사한 블록인 참조 서브블록을 참조 픽처 내에서 찾고 참조 서브블록과 부호화하고자 하는 블록의 각 서브블록의 상대적인 위치를 나타내는 움직임 벡터를 스킵 움직임 벡터로서 결정하고 참조 서브블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 스킵 참조 픽처 인덱스로서 결정하며, 스킵 움직임 벡터와 스킵 참조 픽처 인덱스를 포함하는 스킵 움직임 정보를 부호화한다. 따라서, 블록 모드 정보가 블록의 블록 모드가 스킵 모드임을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는 경우, 스킵 움직임 정보는 각 서브블록의 개수만큼 부호화된다.
단계 S530 및 단계 S540에서, 영상 부호화 장치(100)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 부호화하고자 하는 블록에 대한 블록 타입 정보 및 예측 정보를 포함하는 예측 부호화 정보를 부호화할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록에 대해 64x64 화소 단위로 움직임 추정하여 부호화하고자 하는 블록과 가장 유사한 블록인 참조 블록을 참조 픽처 내에서 찾고 참조 블록과 부호화하고자 하는 블록의 상대적인 위치를 나타내는 움직임 벡터를 결정하고 참조 블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 결정하며, 결정된 움직임 벡터를 기초로 부호화하고자 하는 블록의 움직임을 보상하여 생성되는 예측 블록과 부호화하고자 하는 블록 간의 차이인 잔여 블록을 변환 및 양자화한 계수 정보를 부호화하며, 예측 부호화에 이용되는 블록 타입 정보와 예측 정보 등도 부호화한다.
단계 S530 및 단계 S540에서, 영상 부호화 장치(100)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는 경우, 블록의 서브블록에 대한 블록 타입 정보 및 예측 정보를 포함하는 예측 부호화 정보를 부호화할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록의 서브블록의 블록 타입이 인터 블록인 경우, 부호화하고자 하는 블록의 각 서브블록은 16x16, 16x8, 8x16, 8x8 크기의 서브블록으로 분할될 수 있으며 16x16블록이 4개의 8x8 크기의 서브블록으로 분할된 경우 각 8x8블록은 8x8블록 내에서 8x8, 8x4, 8x4, 4x4 크기의 더 작은 서브블록으로 분할 될 수 있다. 서브블록의 크기 단위로 움직임 추정하여 부호화하고자 하는 블록의 각 서브블록과 가장 유사한 블록인 참조 서브블록을 참조 픽처 내에서 찾고 참조 서브블록과 부호화하고자 하는 블록의 각 서브블록의 상대적인 위치를 나타내는 움직임 벡터를 결정하고 참조 서브블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 결정하며, 결정된 각 서브블록에 대한 움직임 벡터를 기초로 부호화하고자 하는 블록의 각 서브블록의 움직임을 보상하여 생성되는 예측 서브블록과 부호화하고자 하는 블록의 각 서브블록 간의 차이인 잔여 서브블록을 변환 및 양자화한 계수 정보를 부호화하며, 예측 부호화에 이용되는 블록 타입 정보와 예측 정보 등과 같은 예측 부호화 정보도 부호화한다.
만약, 부호화하고자 하는 블록의 서브블록의 블록 타입이 인트라 블록인 경우에는 해당 서브블록의 인트라 예측 모드를 결정하고 결정된 인트라 예측 모드를 기초로 예측 부호화하여 계수 정보와 예측 부호화 정보를 부호화한다. 따라서, 블록 모드 정보가 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 계수 정보와 예측 부호화 정보는 각 서브블록의 개수만큼 부호화된다.
여기서, 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부와 블록의 서브블록의 분할 타입을 기초로 이용 가능한 복수 개의 블록 타입에 할당된 블록 타입 번호일 수 있다. 예측 부호화 정보는 서브블록에 대한 변환 타입 정보, 서브블록에 대한 부호화된 블록 패턴 및 서브블록에 대한 델타 양자화 파라미터 중 하나 이상을 추가로 포함할 수 있다. 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 블록 타입 플래그와 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보를 포함할 수 있다.
또한, 블록 모드 정보가 부호화하고자 하는 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 해당 블록이 서브블록으로 분할됨을 나타내는 경우, 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 블록 타입 플래그와 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보뿐만 아니라 서브블록의 블록 모드가 스킵 모드인지 여부를 나타내는 스킵 서브블록 플래그를 추가로 포함할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드가 아니고 해당 블록이 서브블록으로 분할되는 경우, 각 서브블록에 대해 반드시 계수 정보와 예측 부호화 정보를 부호화해야 하는 것은 아니며, 임의의 서브블록의 블록 모드가 스킵 모드인 경우에는 스킵 서브블록 플래그만을 부호화할 수 있다.
단계 S530에서, 영상 부호화 장치(100)는 블록 타입 정보를 부호화할 때, 트리 구조를 이용하여 분할 타입 정보를 부호화할 수 있다. 예를 들어, 영상 부호화 장치(100)는 복수 개의 서브블록을 일정한 영역 단위로 그룹화하고, 그룹화된 영역에 포함되는 서브블록들의 분할 타입값의 최소값을 그룹화된 영역에 대한 분할 타입값으로 할당하는 과정을 최상위 레이어까지 레이어별로 반복하며, 레이어별로 그룹화된 영역에 대한 분할 타입값과 상위 레이어의 그룹화된 영역에 대한 분할 타입값 간의 차이값을 부호화함으로써 분할 타입 정보를 부호화할 수 있다. 영상 부호화 장치(100)가 분할 타입 정보를 부호화하는 방법에 대해서는 후술하는 과정에서 도 7 및 도 8을 통해 상세히 설명한다.
도 6은 본 발명의 일 실시예에 따라 부호화된 비트스트림의 신택스 구조를 나타낸 예시도이다.
전술한 본 발명의 일 실시예에 따른 영상 부호화 방법에 따라 영상 부호화 장치(100)가 입력 영상의 부호화하고자 하는 블록을 부호화하면 도 6에 도시한 바와 같은 신택스 구조를 가지는 비트스트림이 생성될 수 있다. 도 6에서는 부호화하고자 하는 블록에 대한 비트스트림을 나타내었다.
6A는 블록 모드가 스킵 모드인 경우의 비트스트림의 신택스 구조를 나타낸 것이다. 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 해당 블록을 부호화하여 생성되는 비트스트림은 블록 모드 정보 필드, 분할 모드 정보 필드 및 스킵 움직임 정보 필드를 포함하여 구성될 수 있다. 블록 모드 정보 필드에는 블록 모드 정보가 부호화된 데이터가 할당되고, 분할 모드 정보 필드에는 분할 모드 정보가 부호화된 데이터가 할당되며, 스킵 움직임 정보 필드에는 스킵 움직임 정보가 부호화된 데이터가 할당된다.
블록 모드가 스킵 모드인 경우에는 분할 모드 정보에 의해 식별되는 해당 블록의 분할 모드가 서브블록으로 분할되는 경우와 분할되지 않는 경우 모두, 해당 블록의 계수 정보는 부호화되지 않고 해당 블록에 대해 움직임 추정을 수행하여 결정되는 움직임에 대한 정보인 스킵 움직임 정보만이 부호화되어 스킵 움직임 정보 필드에 할당된다. 이때, 분할 모드가 서브블록으로 분할되지 않음을 나타내는 경우에는 해당 블록에 대해 움직임 추정되어 결정되는 움직임 정보가 스킵 움직임 정보로서 부호화되고, 분할 모드가 서브블록으로 분할됨을 나타내는 경우에는 해당 블록의 각 서브블록에 대해 움직임 추정되어 결정되는 각 서브블록에 대한 움직임 정보가 스킵 움직임 정보로서 부호화되어, 스킵 움직임 정보 필드에 할당된다.
6B는 블록 모드가 스킵 모드가 아닌 경우의 비트스트림의 신택스 구조를 나타낸 것이다. 부호화하고자 하는 블록의 블록 모드가 스킵 모드가 아닌 경우, 해당 블록을 부호화하여 생성되는 비트스트림은 블록 모드 정보 필드, 분할 모드 정보 필드, 블록 타입 정보 필드, 예측 정보 필드, CBP 서브블록 플래그 필드, 변환 타입 정보 필드, CBP 필드, 델타 QP 필드 및 계수 정보 필드를 포함하여 구성될 수 있다. 여기서, CBP 서브블록 플래그 필드, 변환 타입 정보 필드, CBP 필드 및 델타 QP 필드는 비트스트림에 반드시 포함되어야 하는 것은 아니며 구현 방식에 일부 또는 전부가 선택적으로 비트스트림에 포함될 수 있다.
블록 모드 정보 필드에는 블록 모드 정보가 부호화된 데이터가 할당되고, 분할 모드 정보 필드에는 분할 모드 정보가 부호화된 데이터가 할당된다. 블록 모드가 스킵 모드가 아닌 경우에는 분할 모드 정보에 의해 식별되는 해당 블록의 분할 모드가 서브블록으로 분할되는 경우와 분할되지 않는 경우 모두, 해당 블록의 계수 정보를 부호화한다. 따라서, 이 경우, 계수 정보를 부호화한 데이터가 비트스트림에 포함될 뿐만 아니라, 계수 정보를 부호화하는 데 이용된 다양한 정보인 예측 부호화 정보가 부호화된 데이터가 비트스트림에 포함된다. 이러한 예측 부호화 정보에는 블록 타입 정보 및 예측 정보가 포함될 수 있지만, CBP 서브블록 플래그, 변환 타입 정보, CBP, 델타 QP 등도 추가로 포함될 수 있다.
만약, 분할 모드 정보가 해당 블록이 서브블록으로 분할되지 않음을 나타내는 경우 예측 부호화 정보는 해당 블록에 대해서만 부호화되어 각 필드에 할당되고, 분할 모드 정보가 해당 블록이 서브블록으로 분할됨을 나타내는 경우 예측 부호화 정보는 해당 블록의 각 서브블록에 대해 부호화되어 각 필드에 할당된다. 계수 정보 필드에는 해당 블록 또는 해당 블록의 서브블록에 대한 계수 정보가 부호화된 데이터가 할당된다.
도 7 및 도 8은 본 발명의 일 실시예에 따라 트리 구조를 이용하여 분할 타입 정보를 부호화하는 과정을 설명하기 위한 예시도이다.
도 7에서는 트리 구조를 이용하여 분할 타입 정보를 부호화하기 위해 부호화하고자 하는 블록의 각 서브블록에 대한 분할 타입값을 일정한 영역 단위로 묶어 레이어별 분할 타입값으로 나타내었다.
7A는 부호화하고자 하는 블록 내의 각 서브블록과 각 서브블록에 대한 분할 타입값을 나타낸 것이다. 7A에서, Mx(a,b)는 부호화하고자 하는 블록 내의 (a,b)의 위치에 해당하는 서브블록의 분할 타입 값을 나타낸다. 즉, Mx(0,0)은 부호화하고자 하는 블록 내의 (0,0)의 위치에 해당하는 서브블록(즉, 부호화하고자 하는 블록 내에서 래스터 스캔(Raster Scan) 방향으로 첫 번째 서브블록)의 분할 타입 값을 나타내고, Mx(0,1)은 부호화하고자 하는 블록 내의 (0,1)의 위치에 해당하는 서브블록(즉, 부호화하고자 하는 블록 내에서 래스터 스캔 방향으로 두 번째 서브블록)의 분할 타입 값을 나타낸다.
7A에 나타낸 서브블록들의 분할 타입 값들을 일정한 영역 단위(예를 들면, 두 개 이상의 서브블록을 포함하는 일정한 영역 단위)로 그룹화하고, 그룹화된 영역에 포함되는 서브블록들의 분할 타입 값의 최소값을 선택하여 그룹화된 영역에 대한 분할 타입 값으로 할당한다.
7B는 7A에 나타낸 서브블록들의 분할 타입 값들을 그룹화하여 최소값을 그룹화된 영역에 대한 분할 타입 값으로 할당한 결과를 나타내었다. 예를 들어, 7A에 나타낸 서브블록 (0,0), (0,1), (1,0), (1,1)을 포함하는 영역을 일정한 영역 단위로 설정하여 그룹화하고, 그룹화된 영역 내에 포함된 각 서브블록들의 분할 타입 값 MX(0,0), MX(0,1), MX(1,0), MX(1,1) 중 최소값을 선택하여 그룹화된 영역인 MX -1(0,0)의 분할 타입 값으로 할당하였다. 다시, 서브블록 (0,2), (0,3), (1,2), (1,3)을 포함하는 영역을 일정한 영역 단위로 설정하여 그룹화하고, 그룹화된 영역 내에 포함된 각 서브블록들의 분할 타입 값 MX(0,2), MX(0,3), MX(1,2), MX(1,3) 중 최소값을 선택하여 그룹화된 영역인 MX -1(0,1)의 분할 타입 값으로 할당하였다. 이와 같은 방식으로 나머지 서브블록들에 대해서도 동일한 과정을 수행한다. 7A에 나타낸 서브블록들의 분할 타입 값을 7B에 나타낸 그룹화된 영역의 분할 타입 값으로 할당하는 과정을 MX -2, MX -3 … M1 레이어(Layer)까지 반복적으로 수행하면 7C와 같이 그룹화된 영역의 분할 타입 값을 할당할 수 있으며, 다시 M0 레이어까지 반복하면 7D와 같이 하나의 그룹화된 영역의 분할 타입 값을 가지도록 그룹화할 수 있다.
다만, 도 7에서는 일정한 영역 단위가 주변에 인접한 네 개의 서브블록들을 포함하는 영역으로 설정되는 것으로 설명했지만, 반드시 이에 한정되지 않고 주변에 인접한 여덟 개의 서브블록들을 포함하는 영역, 인접하지 않은 여섯 개의 서브블록들을 포함하는 영역 등과 같이 다양한 방식으로 서브블록들을 그룹화하여 분할 타입 값을 할당할 수도 있다.
도 7에 도시한 바와 같이 부호화하고자 하는 블록의 서브블록들의 분할 타입 값을 그룹화된 영역의 분할 타입 값으로 할당한 것을 트리 구조로 나타내면 도 8과 같이 나타낼 수 있다.
도 8에서는 레이어별로 그룹화된 영역에 대한 분할 타입 값을 트리 구조로 예시적으로 나타내었다. 레이어별 그룹화된 영역에 대한 분할 타입 값을 노드값(Node Value)이라고 가정하면, 도 8에 도시된 트리 구조의 노드값들은 상위 노드(Node)의 노드값과의 차이값을 부호화함으로써 부호화될 수 있다.
노드값들과 상위 노드의 노드값의 차이값을 부호화하는 방법은 차이값만큼의 이진 비트 0을 부호화하고 마지막에 이진 비트 1을 부호화한다. 만약, 현재 부호화할 노드의 노드값과 상위 노드의 노드값의 차이가 0인 경우에는 이진 비트 1을 부호화한다. 0과 1의 이진 비트를 부호화할 때 예를 들어 산술 부호화 방법을 이용할 수 있는데, 이때 각 레이어별로 다른 콘텍스트(Context)를 이용할 수 있다.
이와 같이, 트리 구조를 이용하여 분할 타입 값 즉, 노드값을 부호화할 때, 최상위 노드의 노드값(이하 '최상위 노드값'이라 칭함)은 후술하는 세 가지의 예와 같이 부호화될 수 있다. 일 예로, 최상위 노드값은 0과의 차이값을 전술한 바와 같이 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화될 수 있다. 다른 예로, 분할 타입 값으로 분할 타입 별 번호가 설정되고 분할 타입의 발생 빈도수가 높은 순서로 큰 분할 타입별 번호가 설정된 경우, 최상위 노드값은 가장 큰 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화될 수 있다. 또 다른 예로, 분할 타입 값으로 분할 타입 별 번호가 설정되고 분할 타입의 발생 빈도수가 높은 순서로 작은 분할 타입 별 번호가 설정된 경우, 최상위 노드값은 가장 작은 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화될 수 있다.
최상위 노드를 제외한 나머지 노드값들은 부호화하고자 하는 노드의 노드값과 해당 노드의 상위 노드의 노드값의 차이값을 이진 비트 0과 1을 이용하여 부호화함으로써 부호화될 수 있다. 즉, 차이값만큼의 개수의 이진 비트 0을 부호화하고 마지막에 이진 비트 1을 부호화함으로써 각 노드값들이 부호화될 수 있다. 만약, 부호화하고자 하는 노드의 노드값과 상위 노드의 노드값의 차이가 0인 경우에는 이진 비트 1을 부호화한다. 또한, 이와는 반대로, 차이값만큼의 개수의 이진 비트 1을 부호화하고 마지막에 이진 비트 0을 부호화함으로써 각 노드값들이 부호화될 수도 있으며, 이때 차이값이 0인 경우, 이진 비트 0을 부호화할 수 있다.
다만, 각 노드값을 부호화할 때 상위 노드값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 해당 상위 노드의 하위 노드들의 노드값들은 부호화되지 않는다. 예를 들어, M1(0,0) 노드의 노드값이 3인 경우, M1(0,0) 노드의 하위 노드인 M2(0,0), M2(0,1), M2(1,0), M2(1,1) 노드의 노드값은 부호화되지 않는다. 즉, M1(0,0)은 M2(0,0), M2(0,1), M2(1,0), M2(1,1)의 최소값이므로 M2(0,0), M2(0,1), M2(1,0), M2(1,1)은 모두 3이상의 값을 가진다. 하지만, 도 4에서 분할 타입 값의 최대값은 3이므로 M2(0,0), M2(0,1), M2(1,0), M2(1,1)은 3 이외의 다른 값을 가질 수 없기 때문에 부호화할 필요가 없다.
또한, 부호화하고자 하는 노드와 상위 노드의 차이값을 부호화할 때, 부호화하고자 하는 노드의 노드값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 차이값만큼의 개수의 이진 비트 0만을 부호화하고, 마지막에 이진 비트 1을 부호화하지 않는다. 예를 들어, 부호화하고자 하는 노드의 상위 노드의 노드값 M1(0,0)와 부호화하고자 하는 노드의 노드값 M2(0,0), M2(0,1), M2(1,0), M2(1,1)이 각각 1, 2, 3, 3, 2라고 가정하면, 노드값 M2(0,0)와 M2(1,1)은 이진 비트 01을 부호화하고 노드값 M2(0,1)과 M2(1,0)은 이진 비트 001이 아니라 00을 부호화한다.
또한, 같은 상위 노드를 가지는 노드들 중 마지막 노드의 노드값을 부호화하는 경우, 마지막 노드를 제외한 노드들의 노드값이 상위 노드의 노드값보다 모두 큰 경우 마지막 노드의 노드값은 부호화하지 않는다. 예를 들어, 부호화하고자 하는 노드의 상위 노드의 노드값 M1(0,0)과 부호화하고자 하는 노드의 노드값 M2(0,0), M2(0,1), M2(1,0), M2(1,1)이 각각 1, 2, 3, 3, 1이라고 가정하면, 노드값 M2(0,0), M2(0,1), M2(1,0)이 모두 노드값 M1(0,0)보다 크므로, 제일 마지막 노드의 노드값 M2(1,1)는 부호화하지 않는다.
한편, 최상위 노드를 제외한 나머지 노드값들은 전술한 바와 같이 부호화하고자 하는 노드의 노드값과 해당 노드의 상위 노드의 노드값의 차이값을 이진 비트 0과 1을 이용하여 부호화함으로써 부호화될 수도 있지만, 이와는 달리 각 노드의 노드값과 분할 타입의 발생 빈도수가 가장 높은 분할 타입값의 차이값을 부호화함으로써 부호화될 수 있다. (여기서 발생 빈도수가 가장 높은 분할 타입값은 고정값을 사용할 수도 있고 고정값이 아닐 수도 있다. 고정값이 아닌 경우, 부호화하여 복호화기에 전송할 수도 있고 또는 전송하지 않을 수도 있는데 전송하지 않는 경우 현재 블록 이전에 부호화화된 블록들의 통계를 누적하여 현재까지 발생 빈도수가 가장 높은 모드를 사용할 수 도 있다.) 트리 구조를 이용하여 분할 타입 정보를 부호화하는 또 다른 실시예로 7A에 나타낸 서브블록들의 분할 타입 값들을 그룹화하여 7B의 그룹화된 영역의 분할 타입 값을 정할 때 발생빈도수가 높은 순서로 큰 분할 타입 별 번호가 설정된 경우 그룹화된 영역의 값들 중 최대값을 그룹화된 영역의 분할 타입 값으로 사용할 수 있다.
도 9 및 도 10은 본 발명의 실시예에 따른 트리 구조의 예를 설명하기 위해 도시한 도면이다. 부호화하고자 하는 블록 내의 (a,b) 위치에 해당하는 서브블록들의 분할 타입 값이 도 9의 (a)에 도시한 바와 같이 래스터 스캔 방향으로 {0, 2, 1, 2, 1, 2, 2, 0, 1, 0, 0, 1, 2, 1, 1}이라고 가정하면, 각각의 서브블록들의 분할 타입 값들은 인접한 네 개의 서브블록 단위로 그룹화할 수 있다. 이 경우, 최우측이나 최하단의 나머지들은 네 개의 서브블록이 되지 않더라도 나머지들끼리의 그룹화가 가능하다. 이와 같이 (a)에 도시한 서브블록들의 분할 타입 값을 그룹별로 나타내면, 래스터 스캔 방향으로 제1 그룹은 {0, 2, 2, 2}이며, 제2 그룹은 {1, 2, 0, 1}이고, 제3 그룹은 {1, 0}이며, 제4 그룹은 {0, 1}이고, 제5 그룹은 {2, 1}이며, 제6 그룹은 {1}이 될 수 있다. 각각의 그룹에 포함되는 서브블록들의 분할 타입 값의 최소값을 선택하여 그룹화된 영역에 대한 분할 타입 값으로 할당하면, 도 9의 (b)에 나타낸 바와 같이 래스터 스캔 방향으로 {0, 0, 1, 0, 1, 1}이 된다. 이와 같은 분할 타입 값들은 (a)의 경우와 마찬가지로 인접한 네 개의 분할 타입 값들로 그룹화할 수 있다. (b)에 나타낸 분할 타입 값들에 대한 각각의 그룹들에서 최소값을 선택하여 그룹화된 영역에 대한 분할 타입 값으로 할당하면, 도 9의 (c)에 나타낸 바와 같이 래스터 스캔 방향으로 {0, 1}이 되며, 이에 대하여 최종적으로 최소값을 선택하여 분할 타입 값으로 할당하면 도 9의 (d)에 나타낸 바와 같이 0이 된다. 이와 같은 과정을 트리 구조로 나타내면 도 10과 같다.
다음에 변환 타입 정보를 부호화/복호화하는 방법에 대하여 설명한다.
변환 타입의 부호화는 우선 블록의 모드에 따라 최하위 노드를 생성한다. 이때, 블록 모드가 스킵 모드인 경우에는 노드를 생성하지 않을 수 있다. 다음에 변환 타입의 선택에 따라 최하위 노드를 생성한다. 이때, 변환 타입을 선택하는 단위는 또는 방법이 부호화되어 전송됨으로써 부호화기와 복호화기가 동일한 방법으로 동작하도록 하는 것이 바람직하다.
변환 타입의 부호화는 매크로블록에 대하여 16x16 화소블록 단위로 변환 타입을 선택하여 부호화할 수 있다. 이 경우, 16x16 화소 블록 내의 서브블록은 동일한 타입의 변환을 사용할 수 있다. 즉, 16x16 화소블록보다 큰 블록인 경우에도 16x16 블록 단위로 변환타입을 선택할 수 있으며, CBP16 플래그가 0이 아닌 16x16 화소블록마다 변환타입을 전송할 수 있다. 여기서, 16x16 화소블록이 8x8 화소블록보다 작은 블록으로 분할되었더라도 변환 타입을 선택하여 부호화할 수 있으며, 16x16 화소블록이 8x8 화소블록보다 작은 블록으로 분할된 경우에는 고정된 변환(예를 들면, 4x4 화소블록)을 사용하도록 하여 변환타입을 부호화하지 않을 수도 있다.
또는, 16x16 이상인 크기의 블록에 대해서는 블록단위로 변환타입을 선택하고 16x16 보다 작은 블록으로 분할된 경우에는 16x16 블록단위로 변환타입을 선택하여 부호화할 수도 있다.
이때, 변환 타입의 부호화는 변환 타입 별 선택 가능한 변환의 개수와 상관없이 고정된 표 1을 사용할 수 있으며, 선택 가능한 변환의 개수에 따라 표 2를 사용할 수도 있다.
[표 1]
Figure PCTKR2011002761-appb-I000001
[표 2]
Figure PCTKR2011002761-appb-I000002
도 11 및 도 12는 본 발명의 실시예에 따른 변환 타입의 부호화 및 복호화를 설명하기 위해 도시한 도면으로서, 도 11은 16x16 이상의 블록에 대해서는 해당 블록 단위로 변환타입을 선택하고 16x16 화소블록보다 작은 블록으로 분할된 경우에는 16x16 화소블록 단위로 변환타입을 선택하는 경우의 매크로블록 번호를 나타내며, 도 12는 도 11에 대한 각각의 블록 모드 및 선택된 변환타입을 예시한 도면이다. 여기서, 16x16 화소블록 내의 서브블록이 8x8 화소블록보다 작은 블록으로 분할된 경우에는 4x4 변환을 사용하고, 변환 타입 별 선택 가능한 변환의 개수와 관계없이 표 1에 따라 변환 타입을 부호화하는 것으로 가정한다.
도 11 및 도 12를 참조하면, 매크로블록 번호 0은 스킵 모드이다. 또한, 매크로블록 번호 1은 CBP16 플래그가 0인 블록과 8x8 변환을 사용하는 블록들을 포함하며, 매크로블록 번호 2는 CBP16 플래그가 0인 블록들과 4x4 변환을 사용하는 블록들을 포함한다. 매크로블록 번호 3은 CBP32 플래그가 1로서 16x16 변환을 사용하며, 매크로블록 번호 4는 16x8 변환을 사용하는 블록들, 16x16 변환을 사용하는 블록 및 8x16 변환을 사용하는 블록들을 포함한다. 이때, 매크로블록 번호 4의 나머지 블록은 8x8 화소블록보다 작은 블록으로 분할되어 있으므로 고정된 4x4 변환을 사용하며 이 경우 변환타입은 부호화하지 않을 수 있다. 또한, 매크로블록 번호 5는 4x4 변환을 사용하는 블록들과 8x8 화소블록보다 작은 블록으로 분할된 블록들을 포함한다. 이때, 8x8 화소블록보다 작은 블록으로 분할된 블록들은 고정된 4x4 변환을 사용하므로 변환타입을 부호화하지 않을 수 있다. 매크로블록 번호 6은 CBP32 플래그가 1로서 4x4 변환을 선택하여 부호화함을 나타내고, 매크로블록 번호 7은 8x8 변환을 사용하는 블록과 4x4 변환을 사용하는 블록 및 스킵 모드인 블록을 포함한다. 또한, 매크로블록 번호 8은 4x4 변환을 사용하는 블록들과 8x8 화소블록보다 작은 불록으로 분할되어 고정된 4x4 변환을 사용하는 블록들을 포함한다. 도 12에는 변환 타입을 부호화하지 않는 블록에 대하여 구분하여 표시하였다. 특히, 빗금으로 구분한 블록은 SKIP 블록이거나 CBPX 플래그가 0인 블록으로서 변환 계수가 없는 블록을 나타내며, 십자의 격자무늬로 구분한 블록은 고정된 변환을 사용하는 블록으로서 복호기에서 해당하는 변환 타입을 알 수 있으므로 변환 타입을 전송할 필요가 없는 블록을 나타낸다.
도 12의 각각의 블록에 대한 선택된 변환 타입에 표 1을 적용하면 도 13과 같이 최하위 노드값을 나타낼 수 있으며, 도 13에 나타낸 각각의 블록들의 노드값들에서 최소값을 선택하여 노드값으로 할당하면 도 14와 같은 상위 노드를 얻을 수 있다. 예를 들어, 도 12에서 매크로블록 번호 0은 변환 타입의 부호화 비트가 없다. 매크로블록 번호 1은 도 15와 같이 최하위 노드값이 {1, 1, 1}이므로 최소값 1을 최상위 노드값으로 할당하며, 최상위 노드값 1과 0과의 차이값을 나타내는 부호화 비트 01을 부호화하고 최하위 비트는 최상위 노드값 1과의 차이값을 나타내는 부호화 비트 111을 부호화한다. 매크로블록 번호 2는 노드가 1개이므로 매크로블록 내의 두 번째 16x16 화소블록의 변환 타입값 0과 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 1로 나타낼 수 있다. 매크로블록 번호 3은 블록 타입이 32x32 화소블록이므로 32x32 블록의 변환 타입값 2와 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 00으로 나타낼 수 있다. 매크로블록 번호 4는 매크로블록 내의 세 번째의 16x16 블록이 8x8 화소보다 작은 서브블록으로 분할되었으므로 고정된 변환 타입(예를 들면, 4x4 변환)을 사용하며 따라서 변환 타입을 부호화하지 않아도 된다. 그러므로, 세 번째 16x16 블록에 해당하는 노드를 생성하지 않으며 그 외 3개의 16x16 화소블록에 대해서만 노드를 생성하고, 최상위 노드값 2와 0과의 차이값만을 부호화한다. 즉, 도 16에 도시한 바와 같이 최하위 노드값인 {2, 2, 2}로부터 최소값인 최상위 노드값을 선택하며, 최상위 노드값 2와 0과의 차이값에 대한 부호화 비트는 00을 부호화한다. 매크로블록 번호 5는 매크로블록 내 두 번째 16x16 화소블록이 8x8 화소블록보다 작은 서브블록으로 분할되었으므로 고정된 변환 타입(4x4 변환)을 사용하며 변환 타입을 부호화하지 않아도 된다. 따라서 두 번째 16x16 화소블록에 해당하는 노드를 생성하지 않는다. 이 경우, 노드가 한 개뿐이므로 첫 번째 16x16 화소블록의 변환 타입값 0과 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 1로 나타낼 수 있다. 매크로블록 번호 6은 노드가 한 개이므로 매크로블록 내 두 번째 16x16 블록의 변환 타입값 0과 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 1로 나타낼 수 있다. 매크로블록 번호 7은 매크로블록 내의 첫 번째 16x16 화소블록과 세 번째의 16x16 화소블록에 대해서는 노드를 생성하지 않으며, 도 17에 나타낸 바와 같이 최하위 노드값은 {1, 0}이므로 최상위 노드값 0과 0의 차이값을 나타내는 부호화 비트 1을 부호화하고, 두 번째 16x16 화소블록의 변환 타입값 1과 최상위 노드값과의 차이값을 나타내는 부호화 비트 01을 부호화한다. 또한, 네 번째 16x16 화소블록의 변환 타입값은 CBP16 플래그가 1이며 4x4 변환을 사용하므로 변환 타입값을 부호화하지 않을 수 있다. 매크로블록 번호 8은 노드가 한 개이므로 매크로블록 내 첫 번째 16x16 화소블록의 변환타입 값 0과 0과의 차이값을 나타내는 부호화 비트 1을 부호화한다.
도 12의 각각의 블록에 대한 선택된 변환 타입에 표 2를 적용하면 도 18과 같이 최하위 노드값을 나타낼 수 있다. 이 경우에도 변환 타입을 부호화하지 않는 블록에 대해서는 구분하여 표시하였다.
이에 대하여 상세하게 살펴보면, 매크로블록 번호 0은 변환 타입의 부호화 비트가 없다. 매크로블록 번호 1은 도 15와 같이 최하위 노드값이 {2, 2, 2}이므로 최소값 2를 최상위 노드값으로 할당하며, 최상위 노드값 2와 0과의 차이값을 나타내는 부호화 비트 00을 부호화한다. 매크로블록 번호 2는 노드가 1개이므로 매크로블록 내의 두 번째 16x16 화소블록의 변환 타입값 0과 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 1로 나타낼 수 있다. 매크로블록 번호 3은 블록 타입이 32x32 화소블록이므로 32x32 블록의 변환 타입값 1과 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 01로 나타낼 수 있다. 매크로블록 번호 4는 매크로블록 내의 세 번째의 16x16 블록이 8x8 화소보다 작은 서브블록으로 분할되었으므로 고정된 변환 타입(예를 들면, 4x4 변환)을 사용하며 따라서 변환 타입을 부호화하지 않아도 된다. 그러므로, 세 번째 16x16 블록에 해당하는 노드를 생성하지 않으며 그 외 3개의 16x16 화소블록에 대해서만 노드를 생성하고, 최상위 노드값 1과 0과의 차이값만을 부호화한다. 즉, 도 19에 도시한 바와 같이 최하위 노드값인 {1, 1, 1}로부터 최소값인 최상위 노드값을 선택하며, 최상위 노드값 1과 0과의 차이값에 대한 부호화 비트 01을 부호화한다. 이때, 최하위 노드값을 나타내는 부호화 비트로 111이 부호화될 수 있다. 매크로블록 번호 5는 매크로블록 내 두 번째 16x16 화소블록이 8x8 화소블록보다 작은 서브블록으로 분할되었으므로 고정된 변환 타입(4x4 변환)을 사용하며 변환 타입을 부호화하지 않아도 된다. 따라서 두 번째 16x16 화소블록에 해당하는 노드를 생성하지 않는다. 이 경우, 노드가 한 개뿐이므로 첫 번째 16x16 화소블록의 변환 타입값 0과 0과의 차이값을 나타내는 부호화 비트는 1을 부호화한다. 매크로블록 번호 6은 노드가 한 개이므로 매크로블록 내 두 번째 16x16 블록의 변환 타입값 0과 0과의 차이값을 나타내는 부호화 비트 1을 부호화한다. 매크로블록 번호 7은 매크로블록 내의 첫 번째 16x16 화소블록과 세 번째의 16x16 화소블록에 대해서는 노드를 생성하지 않으며, 도 20에 나타낸 바와 같이 최하위 노드값은 {2, 0}이므로 최상위 노드값 0과 0의 차이값을 나타내는 부호화 비트 1을 부호화하고, 두 번째 16x16 화소블록의 변환 타입값 2와 최상위 노드값과의 차이값을 나타내는 부호화 비트 00을 부호화한다. 또한, 네 번째 16x16 화소블록의 변환 타입값은 CBP16 플래그가 1이며 4x4 변환을 사용하므로 변환 타입값을 부호화하지 않을 수 있다. 매크로블록 번호 8은 노드가 한 개이므로 매크로블록 내 첫 번째 16x16 화소블록의 변환타입 값 0과 0과의 차이값을 나타내는 부호화 비트 1을 부호화한다.
다음에 CBP 정보를 부호화/복호화하는 방법에 대하여 설명한다.
도 21은 본 발명의 일 실시예에 따른 CBPX_플래그와 CBP를 부호화 과정의 예를 나타낸 흐름도이다. 도 21에서는 매크로블록이 64x64 화소 블록인 경우, 인트라 매크로블록에 대한 CBPX_플래그와 CBP를 부호화하는 과정의 예를 나타내었다. 부호화 정보 부호화기(110)는 매크로블록의 서브블록의 크기가 64x64, 64x32 및 32x64 중 하나인지 여부를 판단하며(S2110), 서브블록의 크기가 64x64, 64x32 및 32x64 중 하나가 아닌 경우에는 서브블록의 크기가 32x32, 32x16 및 16x32 중 하나인지 여부를 판단한다(S2120). 이때, 매크로블록을 16x16 화소 단위로 분할하여 인트라 예측을 수행하는 경우, 단계 S2110에서는 서브 블록의 크기가 64x64 화소 블록인지 즉, 매크로블록 단위로 인트라 예측 부호화를 수행하는지 판단하며, 단계 S2120에서는 서브 블록의 크기가 64x64 화소 블록이 아닌 경우에 서브 블록의 크기가 32x32 화소 블록인지를 판단할 수 있다. 단계 S2120의 판단 결과, 그 서브블록의 크기가 32x32, 32x16 및 16x32 중 하나이거나 32x32 화소 블록인 경우, 서브블록 내 0이 아닌 변환 계수가 있는지 여부를 판단하며(S2130), 0이 아닌 변환 계수가 있는 경우에는 해당 서브블록 내에 0이 아닌 부호화할 계수가 있음을 나타내는 CBP32 플래그(예를 들어, '1'과 같이 1 비트로 표시될 수 있다)를 부호화하고(S2140), 서브블록 내에서 16x16 화소 블록 단위로 CBP를 부호화하며(S2150), 서브블록 내 0이 아닌 변환 계수가 없는 경우에는 서브블록 내에 0이 아닌 변환 계수가 없음을 나타내는 CBP32 플래그(예를 들어, '0'과 같이 1비트로 표시될 수 있다)를 부호화한다(S2160).
여기서, CBP64 플래그는 64x64 화소 블록 내 0이 아닌 부호화할 계수의 존재 유무를 나타내는 플래그이다. 마찬가지로, CBP32 플래그는 32x32 화소 블록 내 0이 아닌 부호화할 계수의 존재 유무를 나타내는 플래그이다. 이와 같은 CBPX 플래그(X는 32, 64 등)는 휘도 성분의 잔여 블록이 0이 아닌 변환계수를 가지지 않는 경우에는 변환 타입을 전송할 필요가 없으므로, 휘도 성분 블록들이 0이 아닌 변환계수를 가지는지를 나타내는 데 사용된다. CBP는 16x16 화소 블록 단위로 부호화되며, 16x16 화소 블록 내 각 8x8 화소 블록 당 0이 아닌 변환 계수가 있는지 여부를 8x8 화소 블록 당 1비트를 이용하여 나타내고, 색차 성분에 대해서는 두 개의 2x2 색차 성분 DC 블록 내 0이 아닌 변환 계수가 있는지 여부를 1 비트를 이용하여 나타내며, 두 개의 8x8 색차 성분 AC 블록 내 0이 아닌 변환 계수가 있는지 여부를 1 비트를 이용하여 나타낸다.
한편, 단계 S2120에서, 서브블록의 크기가 32x32, 32x16 및 16x32 중 하나가 아니거나 32x32 화소 블록이 아닌 경우에는, 단계 S2150으로 진행하여 CBP를 부호화한다. 이때, 서브 블록의 크기가 32x32, 32x16 또는 16x32 화소 블록이 아닌 경우에 서브 블록의 크기가 16x16, 16x8 또는 8x16 화소 블록인지를 판단할 수 있다. 서브 블록이 16x16, 16x8 또는 8x16 화소 블록인 경우, 해당 서브 블록 내에 0이 아닌 부호화할 계수가 있는 경우에는 CBP16 플래그(예를 들어, '1'과 같이 1 비트로 표시될 수 있음)를 부호화하며, 그 외의 경우에는 CBP 플래그를 사용하지 않고 16x16 화소 블록 단위로 CBP를 부호화할 수 있다.
또한, 단계 S2110에서, 서브블록의 크기가 64x64, 64x32 및 32x64 중 하나 이거나 64x64 화소 블록인 경우에는 서브블록 내 0이 아닌 변환 계수가 있는지 여부를 판단하여(S2170), 서브블록 내 0이 아닌 변환 계수가 있는 경우에는 0이 아닌 변환 계수가 있음을 나타내는 CBP64 플래그(예를 들어, '1'과 같이 1 비트로 표시될 수 있다)를 부호화하고(S2180), 서브블록 내 0이 아닌 부호화할 계수가 없는 경우에는 0이 아닌 부호화할 계수가 없음을 나타내는 CBP64 플래그(예를 들어, '0'과 같이 1 비트로 표시될 수 있다)를 부호화한다(S2190). 여기서, CBP64 플래그는 64x64 화소 블록 내 0이 아닌 양자화된 변환 계수의 존재 유무를 나타내는 플래그이다.
CBP 플래그를 부호화하는 경우에 대하여, CBP 플래그가 0이 아닌 경우에 변환 타입을 부호화한다. 예외적으로, 16x16 화소 블록이 네 개의 8x8 화소 블록으로 분할된 경우에는 CBP를 부호화한 후 CBP가 0이 아닌 경우에 16x16 화소 블록 단위로 적용되는 변환 타입을 부호화한다.
변환 타입을 부호화한 후에는 변환 타입에 따라 CBP를 부호화한다. 16x16 변환이 사용된 경우에는 색차 성분의 CBP 2비트만 부호화하며, 8x16 또는 16x8 변환이 사용된 경우에는 16x16 화소 블록 내의 두 개의 8x16 또는 16x8 화소 블록이 0이 아닌 변환 계수를 가지는지를 나타내는 CBP 2비트를 부호화한다. 다만, 예외적으로 두 개의 분할블록 중 첫 번째 분할블록의 CBP 비트가 0인 경우에는 두 번째 분할 블록의 CBP 비트는 부호화하지 않을 수 있다.
도 22는 부호화 정보 부호화기(110)에서 선택된 블록 모드 및 선택된 블록 타입을 예시한 도면이다. CBP는 블록 내 0이 아닌 변환계수가 있는지 여부를 나타내는 1비트 플래트이며, 여기서 선택된 변환의 종류에 따라 CBP 비트를 부호화/복호화하는 블록의 단위는 달라진다. 도 22에서 부호화할 변환계수가 없는 블록(예를 들면, SKIP 모드인 블록, CBPX 플래그가 0인 블록 등)은 빗금으로 표시하였고, CBP를 부호화할 필요가 없는 블록(예를 들면, 16x16 변환을 사용하는 블록)은 십자의 격자무늬로 구분하였다.
최하위 노드를 생성하는 방법에 대하여 설명하면, 이미 전송된 모드값이나 플래그 중 현재 블록내의 부호화할 변환계수가 없음을 나타내는 데이터가 있는 경우에 대해서, 부호화 변환계수가 없는 블록에 대해서는 노드를 생성하지 않는다. 예를 들어, 도 21에 나타낸 방법으로 데이터를 부호화/복호화하는 경우, SKIP 블록에 대해서는 노드를 생성하지 않으며, CBPX 플래그가 0인 XxX(X는 블록의 크기를 나타내는 화소 수) 블록에 대해서는 노드를 생성하지 않고, 또한 16x16 변환의 경우 CBP16 플래그를 통해 알 수 있으므로 CBP에 대한 노드를 생성하지 않는다.
또한, 0이 아닌 변환계수가 있는 블록에 대해서 CBP를 부호화하며, 변환 타입에 따라 노드의 개수는 휘도 성분에 대해서 4x4 변환 또는 8x8 변환하는 경우에는 8x8 블록 내 0이 아닌 변환계수가 있는지를 0 또는 1로 나타내고(즉, 8x8 화소블록 당 노드를 생성), 휘도 성분에 대해서 8x16 변환 또는 16x8 변환하는 경우에는 16x8 또는 8x16 블록 내 0이 아닌 변환계수가 있는지를 0 또는 1로 나타내며(즉, 16x8 또는 8x16 블록당 노드 생성), 색차 성분은 8x8 블록단위로 AC 성분과 DC 성분에 대해서 노드를 생성한다(즉, AC 성분에 1비트, DC 성분에 1비트를 전송한다).
또한, 상위노드를 생성할 때 하위노드들의 최소값을 상위노드 값으로 사용하며, 최상위 노드는 16x16 영역을 뜻하는 노드를 최상위 노드로 할 수 있다(또는 최상위 노드의 크기를 다르게 지정할 수도 있다).
또한, 상위노드의 값이 1인 경우에는 하위 노드들의 값은 부호화/복호화하지 않을 수 있으며, 상위 노드의 값이 0인 경우에 하위 노드들의 값을 부호화할 수 있다.
도 22와 같이 부호화 모드와 변환 타입이 선택된 경우, CBP의 전송의 단위는 도 23과 같이 나타낼 수 있다. 도 23에서 16x16 영역에 해당하는 블록을 최상위 블록으로 사용하는 경우, 최상위 노드값은 도 24와 같이 할당될 수 있다.
이상에서는 블록 내에 변환계수가 있는지의 여부에 따라 CBP를 할당하는 것으로 설명하였지만, CBP의 부호화는 설명한 방법에 한정되는 것이 아니며, CBP의 패턴을 이용하는 등의 다양한 변형이 가능하다.
도 25는 델타 양자화 파라미터의 부호화/복호화를 설명하기 위해 도시한 도면이다. 본 발명의 실시예에서는 부호화할 0이 아닌 변환계수가 있는 16x16 화소블록 또는 매크로블록의 델타 양자화 파라미터만을 전송하는 것이 바람직하다. 예를 들어, 인트라 16x16 화소블록이나 CBP가 0이 아닌 인터 16x16 화소블록의 델타 양자화 파라미터를 전송한다.
델타 양자화 파라미터를 부호화하는 한가지 방법으로, 각각의 델타 양자화 파라미터는 약속된 코드번호로 변환 후, 코드 번호를 트리 코딩하는 방식으로 부호화할 수 있다. 예를 들어, 각각이 16x16인 화소블록의 델타 양자화 파라미터가 도 25와 같고 델타 양자화 파라미터에 대응하여 약속된 코드번호가 표 3과 같다고 가정하면, 도 25의 각각의 델타 양자화 파라미터는 표 3의 약속된 코드번호로 변환할 수 있다.
[표 3]
Figure PCTKR2011002761-appb-I000003
즉, 델타 양자화 파라미터 0은 코드번호 0으로 변환할 수 있으며, 델타 양자화 파라미터 1은 코드번호 1로 변환할 수 있고, 델타 양자화 파라미터 -1은 코드번호 2로 변환할 수 있으며, 델타 양자화 파라미타 2는 코드번호 3으로 변환할 수 있고, 델타 양자화 파라미터 -2는 코드번호 4로 변환할 수 있으며, 델타 양자화 파라미터 3은 코드번호 5로 변환할 수 있고, 델타 양자화 파라미터 -3은 코드번호 6으로 변환할 수 있다. 기타의 다른 델타 양자화 파라미터도 이와 마찬가지로 약속된 코드번호로 변환할 수 있다. 이와 같이 도 25의 델타 양자화 파라미터를 코드번호로 변환하여 도시하면 도 26과 같다. 이와 같이 코드번호로 변환된 각각의 16x16 화소블록의 노드값에 기초하여 트리를 생성할 수 있다. 첫 번째 예로, 도 26과 같이 코드번호로 변환된 16x16 화소블록의 노드값들로부터 최소값을 선택하여 상위 노드값으로 할당하면 도 27과 같이 나타낼 수 있다.
도 27의 (a)에서 상위 노드 M0의 노드값 0과 0의 차이값은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값 0도 부호화 비트 1로 부호화할 수 있다.
도 27의 (b)에서 상위 노드 M0의 노드값 0과 0의 차이값은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값 0은 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(0,1)의 노드값 2와 상위 노드 M0의 노드값 0의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(1,0)의 노드값 1과 상위 노드 M0의 노드값 0의 차이값 1은 부호화 비트 01로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 3과 상위 노드 M0의 노드값 0의 차이값 3은 부호화 비트 0001로 부호화할 수 있다.
도 27의 (c)에서 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0) 및 M1(0, 1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 각각 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(1,0)의 노드값 3과 상위 노드 M0의 노드값 1의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 1의 차이값 1은 부호화 비트 01로 부호화할 수 있다.
도 27의 (d)에서 상위 노드 M0의 노드값 2와 0의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 2의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 27의 (e)에서 상위 노드 M0의 노드값 2와 0의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0, 1) 및 M1(1,0)의 노드값 2와 상위 노드 M0의 노드값 2의 차이값 0은 각각 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 5와 상위 노드 M0의 노드값 2의 차이값 3은 부호화 비트 0001로 부호화할 수 있다.
도 27의 (f)에서 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 5와 상위 노드 M0의 노드값 1의 차이값 4는 각각 부호화 비트 00001로 부호화할 수 있고, 하위 노드 M1(1,0) 및 M1(1,0)의 노드값 3과 상위 노드 M0의 노드값 1의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
하위 노드들로부터 상위 노드의 노드값을 할당하는 방법은 전술한 방법에 한정되는 것이 아니며, 하위 노드들의 노드값들 중에서 최대값을 선택하여 상위 노드의 노드값으로 할당할 수도 있다. 이러한 두 번째 방법의 예로, 도 26과 같이 코드번호로 변환된 16x16 화소블록의 노드값들로부터 최대값을 선택하여 상위 노드값으로 할당하면 도 28과 같이 나타낼 수 있다.
도 28의 (a)에서 상위 노드 M0의 노드값 0과 0의 차이값은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값에 대해서는 부호화 비트를 생략할 수 있다.
도 28의 (b)에서 상위 노드 M0의 노드값 3과 0의 차이값 3은 부호화 비트 0001로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 0과 상위 노드 M0의 노드값 3의 차이값 1은 부호화 비트 0001으로 부호화할 수 있고, 하위 노드 M1(0,1)의 노드값 2와 상위 노드 M0의 노드값 3의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(1,0)의 노드값 1과 상위 노드 M0의 노드값 3의 차이값 2는 부호화 비트 001로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 3과 상위 노드 M0의 노드값 3의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 28의 (c)에서 상위 노드 M0의 노드값 3과 0의 차이값은 부호화 비트 0001로 부호화할 수 있으며, 하위 노드 M1(0,0) 및 M1(0, 1)의 노드값 1과 상위 노드 M0의 노드값 3의 차이값 2는 각각 부호화 비트 001로 부호화할 수 있고, 하위 노드 M1(1,0)의 노드값 3과 상위 노드 M0의 노드값 3의 차이값은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 3의 차이값 1은 부호화 비트 01로 부호화할 수 있다.
도 28의 (d)에서 상위 노드 M0의 노드값 2와 0의 차이값은 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 2의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 28의 (e)에서 상위 노드 M0의 노드값 5와 0의 차이값은 부호화 비트 000001로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0, 1) 및 M1(1,0)의 노드값 2와 상위 노드 M0의 노드값 5의 차이값 3은 각각 부호화 비트 0001로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 5와 상위 노드 M0의 노드값 5의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 28의 (f)에서 상위 노드 M0의 노드값 5와 0의 차이값은 부호화 비트 000001로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 5와 상위 노드 M0의 노드값 5의 차이값 0은 각각 부호화 비트 00001로 부호화할 수 있고, 하위 노드 M1(1,0) 및 M1(1,0)의 노드값 3과 상위 노드 M0의 노드값 5의 차이값2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 1과 상위 노드 M0의 노드값 5의 차이값 4는 부호화 비트 00001로 부호화할 수 있다.
최상위 노드값으로 하위 노드값들 중 최소값을 할당하는 방법에서 최상위 노드의 값을 부호화할 때 0과의 차이값을 부호화하였으나, 발생 빈도수가 높은 임의의 값과 최상위 노드값과의 차이값을 부호화할 수도 있다. 이때 사용되는 임의의 값은 부호화하여 복호화기에 알려줄 수도 있으며, 또는 임의의 약속된 값을 사용할 수도 있고, 부호화기와 복호화기가 동일하게 동작하여 계산하도록 할 수도 있다.
또한, 트리 생성을 위한 세 번째 방법으로, 상위 노드값으로 하위 노드값들 중 최소값을 할당하는 경우에 최대값을 부호화하여 복호기에 알려주거나 상위 노드값으로 하위 노드값들 중 최대값을 할당하는 경우에는 최소값을 부호화하여 복호기에 값의 범위를 알려줄 수도 있다. 이 경우, 전술한 상위 노드값으로 하위 노드값들 중 최소값을 할당하는 경우인 도 27의 (b)의 부호화 비트를 예로 설명하면, 상위 노드 M0의 노드값 0과 0의 차이값 0은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값 0은 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(0,1)의 노드값 2와 상위 노드 M0의 노드값 0의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(1,0)의 노드값 1과 상위 노드 M0의 노드값 0의 차이값 1은 부호화 비트 01로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 3과 상위 노드 M0의 노드값 0의 차이값 3은 부호화 비트를 생략할 수 있다. 또한, 전술한 상위 노드값으로 하위 노드값들 중 최대값을 할당하는 경우인 도 28의 (d)의 부호화 비트를 예로 설명하면, 상위 노드 M0의 노드값 2와 0의 차이값은 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 2의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
또한, 델타 양자화 파라미터를 부호화하는 다른 방법으로, 델타 양자화 파라미터의 절대값을 부호화한 후, 0이 아닌 델타 파라미터에 대해서만 부호를 코딩하는 방법을 사용할 수 있다. 예를 들어, 도 25의 델타 양자화 파라미터에 대하여 절대값을 취하면 도 29로 나타낼 수 있으며, 이 경우에도 전술한 트리 생성 방법이 모두 적용될 수 있다.
첫 번째의 트리 생성 방법을 이용하며 최대값을 부호화하여 전송하는 경우, 먼저, 상위 노드 값은 도 30에 도시한 바와 같이 하위 노드값들 중에서 최소값이 선택되어 할당될 수 있으며, 절대값을 부호화하는 방법은 표 3을 이용하여 부호화할 수 있다.
도 30의 (a)에서 최대값 0의 부호화 비트는 0으로 부호화할 수 있으며, 상위 노드 M0의 노드값 0과 0의 차이값 0과, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값 0은 부호화 비트의 부호화를 생략한다.
도 30의 (b)에서 최대값 2는 부호화 비트 001로 부호화할 수 있으며, 상위 노드 M0의 노드값 0과 0의 차이값은 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(0,0)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값 0은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(0,1) 및 M1(1,0)의 노드값 1과 상위 노드 M0의 노드값 0의 차이값 1은 부호화 비트 01로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 0의 차이값 2는 부호화 비트 001로 부호화할 수 있다.
도 30의 (c)에서 최대값 2는 부호화 비트 001로 부호화할 수 있고, 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0) 및 M1(0, 1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 각각 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(1,0)의 노드값 2와 상위 노드 M0의 노드값 1의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 30의 (d)에서 최대값 1은 부호화 비트 01로 부호화할 수 있고, 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 부호화 비트의 부호화가 생략될 수 있다.
도 30의 (e)에서 최대값 3은 부호화 비트 0001로 부호화할 수 있고, 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0, 1) 및 M1(1,0)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 각각 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 3과 상위 노드 M0의 노드값 1의 차이값 2는 부호화 비트 001로 부호화할 수 있다.
도 30의 (f)에서 최대값 3은 부호화 비트 0001로 부호화할 수 있고, 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 3과 상위 노드 M0의 노드값 1의 차이값 2는 부호화 비트 001로 부호화할 수 있고, 하위 노드 M1(1,0) 및 M1(1,0)의 노드값 2와 상위 노드 M0의 노드값 1의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 부호화 비트의 부호화가 생략될 수 있다.
다음에 부호에 대한 부호화를 수행할 수 있다. 예를 들어, 부호가 +일 경우에는 0, 부호가 -일 경우에는 1을 이용할 수 있다. 물론, 그 반대의 부호화 비트를 할당할 수도 있다. 이때, 상위 노드는 하위 노드들의 최소값을 사용할 수 있으며, 최대값을 사용할 수도 있다. 도 30에서 델타 양자화 파라미터의 절대값이 0인 경우를 제외하고 델타 양자화 파라미터의 부호에 대한 부호화를 +에 0을 할당하고 -에 1을 할당하며, 각각의 최하위 노드값들 중에서 최소값을 선택하여 상위 노드값으로 할당하면 도 31과 같이 나타낼 수 있다. 즉, 도 30에서 (a)의 경우는 절대값이 모두 0이므로 부호화할 데이터가 없다.
도 31에서 (b)의 상위 노드값 0과 0과의 차이값 0은 부호화 비트 1로 부호화할 수 있으며, M1(0,0)의 노드값은 0이므로 부호화 비트의 부호화를 생략할 수 있고, M1(0,1)의 노드값 1과 상위 노드값 0과의 차이값 1은 부호화 비트 0으로 부호화할 수 있으며, M1(1,0) 및 M1(1,1)의 노드값 0과 상위 노드값 0과의 차이값 0은 각각 부호화 비트 1로 부호화할 수 있다.
도 31에서 (c)의 상위 노드값 0과 0과의 차이값 0은 부호화 비트 1로 부호화할 수 있으며, M1(0,0), M1(0,1) 및 M1(1,0)의 노드값 0과 상위 노드값 0과의 차이값 0은 부호화 비트 1로 부호화할 수 있고, M1(1,1)의 노드값 1과 상위 노드값 0과의 차이값 1은 부호화 비트 0으로 부호화할 수 있다.
도 31에서 (d)의 상위 노드값 1과 0과의 차이값 1은 부호화 비트 0으로 부호화할 수 있으며, M1(0,0), M1(0,1), M1(1,0) 및 M1(1,1)의 노드값 1과 상위 노드값 1과의 차이값 0은 각각 부호화 비트의 부호화를 생략할 수 있다.
도 31에서 (e)의 상위 노드값 1과 0과의 차이값 1은 부호화 비트 0으로 부호화할 수 있으며, M1(0,0), M1(0,1), M1(1,0) 및 M1(1,1)의 노드값 1과 상위 노드값 1과의 차이값 0은 각각 부호화 비트의 부호화를 생략할 수 있다.
도 31에서 (f)의 상위 노드값 0과 0과의 차이값 0은 부호화 비트 1로 부호화할 수 있으며, M1(0,0), M1(0,1), M1(1,0) 및 M1(1,1)의 노드값 0과 상위 노드값 0과의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 32는 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 복호화 장치(3200)는 부호화 정보 복호화기(3210) 및 영상 복호화기(3300)를 포함하여 구성될 수 있다.
부호화 정보 복호화기(3210)는 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 블록 모드 정보와 블록이 서브블록으로 분할되는지 여부를 나타내는 분할 모드 정보를 복원하고, 블록 모드 정보와 분할 모드 정보의 조합에 따라 비트스트림을 복호화하여 블록의 스킵 움직임 정보를 복원하거나 블록의 블록 타입 정보와 블록의 예측 정보를 포함하는 예측 부호화 정보를 복원한다.
예를 들어, 부호화 정보 복호화기(3210)는 도 6에 도시한 바와 같은 신택스 구조를 가지는 비트스트림을 복호화하는데, 우선 비트스트림으로부터 블록 모드 정보 필드에 할당된 데이터와 분할 모드 정보 필드에 할당된 데이터를 추출하고 복호화하여 블록 모드 정보와 분할 모드 정보를 복원하며, 복원된 블록 모드 정보와 분할 모드 정보의 조합에 따라 6A에 나타낸 바와 같이 비트스트림으로부터 스킵 움직임 정보 필드에 할당된 데이터를 추출하고 복호화하여 스킵 움직임 정보를 복원하거나 6B에 나타낸 바와 같이 비트스트림으로부터 블록 타입 정보 필드, 예측 정보 필드, CBP 서브블록 플래그 필드, 변환 타입 정보 필드, CBP 필드, 델타 QP 필드 등에 할당된 데이터를 추출하고 복호화하여 블록 타입 정보, 예측 정보, CBP 서브블록 플래그, 변환 타입 정보, CBP, 델타 QP 등과 같은 예측 부호화 정보를 복원한다. 여기서, 예측 부호화 정보 중 CBP 서브블록 플래그 필드, 변환 타입 정보 필드, CBP 필드, 델타 QP 등은 반드시 복원되어야 하는 것은 아니며, 영상 부호화 장치(100)와 영상 복호화 장치(3200)가 서로 약속한 경우에만 복원될 수 있다.
영상 복호화기(3300)는 스킵 움직임 정보를 기초로 블록을 복원하거나 예측 부호화 정보를 기초로 비트스트림을 복호화하여 복원되는 계수 정보를 복호화하여 블록을 복원한다.
예를 들어, 영상 복호화기(3300)는 부호화 정보 복호화기(3210)에 의해 스킵 움직임 정보가 복원되면, 복원된 스킵 움직임 정보를 이용하여 복호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 움직임 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원하며, 부호화 정보 복호화기(3210)에 의해 예측 부호화 정보가 복원되면 복원된 예측 부호화 정보를 이용하여 복호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 인트라 예측 또는 인터 예측하여 예측 블록을 생성하고, 비트스트림을 복호화하여 계수 정보를 복원하며, 복원된 계수 정보에 의한 잔여 블록과 예측 블록을 가산하여 복호화하고자 하는 블록을 복원한다.
도 33은 영상 복호화기(3300)를 개략적으로 도시한 도면이다. 도면을 참조하면, 영상 복호화기(3300)는 복호화기(Decoder), 역양자화기 및 역변환기, 예측기, 가산기, 필터 및 픽처 버퍼를 포함하여 구성될 수 있다. 예측기는 움직임 보상기를 포함하여 구성될 수 있다.
도 34는 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 영상 복호화 방법에 따르면, 영상 복호화 장치(3200)는 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 블록 모드 정보와 블록이 서브블록으로 분할되는지 여부를 나타내는 분할 모드 정보를 복원한다(S3410). 즉, 영상 복호화 장치(3200)는 복호화하고자 하는 블록에 대한 비트스트림으로부터 블록 모드 정보가 부호화된 데이터와 분할 모드 정보가 부호화된 데이터를 추출하고 복호화하여 블록 모드 정보와 분할 모드 정보를 복원한다.
영상 복호화 장치(3200)는 블록 모드 정보와 분할 모드 정보의 조합에 따라 비트스트림을 복호화하여 블록의 스킵 움직임 정보를 복원하거나 블록의 블록 타입 정보와 블록의 예측 정보를 포함하는 예측 부호화 정보를 복원하며(S3420), 스킵 움직임 정보를 기초로 블록을 복원하거나 예측 부호화 정보를 기초로 비트스트림을 복호화하여 복원되는 계수 정보를 복호화하여 블록을 복원한다(S3430). 즉, 영상 복호화 장치(3200)는 복원된 블록 모드 정보가 부호화하고자 하는 블록의 블록 모드가 스킵 모드임을 나타내는지 여부와 복원된 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는지 여부를 조합한 각 경우에 따라서 블록을 다른 방식으로 부호화한다.
이하에서는 부호화하고자 하는 블록이 64x64 화소 크기의 매크로블록이고 블록이 서브블록으로 분할되는 경우 16x16 화소 크기의 서브블록으로 분할되는 것으로 가정하여 영상 복호화 장치(3200)가 단계 S3420 및 단계 S3430을 수행하는 과정에 대해 예를 들어 설명한다.
단계 S3420에서, 영상 복호화 장치(3400)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드임을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 비트스트림을 복호화하여 블록에 대한 스킵 움직임 정보를 복원할 수 있다. 즉, 영상 복호화 장치(3400)는 비트스트림으로부터 스킵 움직임 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 움직임 정보를 복원하는데, 스킵 움직임 정보는 복호화하고자 하는 블록에 대한 하나의 움직임 정보로 복원된다. 이 경우, 단계 S3430에서, 영상 복호화 장치(3200)는 복원되는 스킵 움직임 정보를 이용하여 복호화하고자 하는 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다.
단계 S3420에서, 영상 복호화 장치(3200)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드임을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는 경우, 비트스트림을 복호화하여 블록의 서브블록에 대한 스킵 움직임 정보를 복원할 수 있다. 즉, 영상 복호화 장치(3200)는 비트스트림으로부터 스킵 움직임 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 움직임 정보를 복원하는데, 스킵 움직임 정보는 복호화하고자 하는 블록의 각 서브블록에 대한 움직임 정보로 복수 개로 복원된다. 이 경우, 단계 S3430에서, 영상 복호화 장치(3200)는 복원되는 각 서브블록에 대한 스킵 움직임 정보를 이용하여 복호화하고자 하는 블록의 각 서브블록의 움직임을 보상하여 생성되는 서브블록을 복호화하고자 하는 블록의 각 서브블록으로 복원하고 그를 통해 복호화하고자 하는 블록을 복원한다.
단계 S3420에서, 영상 복호화 장치(3200)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 비트스트림을 복호화하여 블록에 대한 예측 부호화 정보를 복원할 수 있다. 즉, 영상 복호화 장치(3200)는 비트스트림으로부터 예측 부호화 정보가 부호화된 데이터를 추출하고 복호화하여 예측 부호화 정보를 복원하는데, 예측 부호화 정보는 복호화하고자 하는 블록에 대한 하나의 예측 부호화 정보로 복원된다. 이 경우, 단계 S930에서, 영상 복호화 장치(3200)는 복원되는 예측 부호화 정보의 블록 타입 정보와 예측 정보 등을 기초로 비트스트림으로부터 계수 정보가 부호화된 데이터를 추출하고 복호화하여 계수 정보를 복원하고 복원되는 계수 정보를 역 양자화 및 역 변환하여 잔여 블록을 복원하며, 블록 타입 정보와 예측 정보 등을 기초로 복호화하고자 하는 블록을 예측하여 예측 블록을 생성하며, 복원되는 잔여 블록과 예측 블록을 가산하여 복호화하고자 하는 블록을 복원한다.
단계 S3420에서, 영상 복호화 장치(3200)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는 경우, 비트스트림을 복호화하여 블록의 서브블록에 대한 예측 부호화 정보를 복원할 수 있다. 즉, 영상 복호화 장치(3200)는 비트스트림으로부터 예측 부호화 정보가 부호화된 데이터를 추출하고 복호화하여 예측 부호화 정보를 복원하는데, 예측 부호화 정보는 복호화하고자 하는 블록의 각 서브블록에 대한 복수 개의 예측 부호화 정보로 복원된다. 이 경우, 단계 S3430에서, 영상 복호화 장치(3200)는 복원되는 예측 부호화 정보의 블록 타입 정보와 예측 정보 등을 기초로 비트스트림으로부터 계수 정보가 부호화된 데이터를 추출하고 복호화하여 각 서브블록에 대한 계수 정보를 복원하고 복원되는 각 서브블록에 대한 계수 정보를 역 양자화 및 역 변환하여 잔여 서브블록을 복원하며, 블록 타입 정보와 예측 정보 등을 기초로 각 서브블록을 예측하여 예측 서브블록을 생성하며, 복원되는 잔여 서브블록과 예측 서브블록을 가산하여 각 서브블록을 복원하며 그를 통해 복호화하고자 하는 블록을 복원한다.
여기서, 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부와 블록의 서브블록의 분할 타입을 기초로 이용 가능한 복수 개의 블록 타입에 할당된 블록 타입 번호일 수 있다. 예측 부호화 정보는 서브블록에 대한 변환 타입 정보, 서브블록에 대한 부호화된 블록 패턴 및 서브블록에 대한 델타 양자화 파라미터 중 하나 이상을 추가로 포함할 수 있다. 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 블록 타입 플래그와 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보를 포함할 수 있다.
또한, 복원된 블록 모드 정보가 복호화하고자 하는 블록의 블록 모드가 스킵 모드가 아님을 나타내고 복원된 분할 모드 정보가 해당 블록이 서브블록으로 분할됨을 나타내는 경우, 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 블록 타입 플래그와 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보뿐만 아니라 서브블록의 블록 모드가 스킵 모드인지 여부를 나타내는 스킵 서브블록 플래그를 추가로 포함할 수 있다. 즉, 영상 복호화 장치(3200)는 복호화하고자 하는 블록의 블록 모드가 스킵 모드가 아니고 해당 블록이 서브블록으로 분할되는 경우, 비트스트림으로부터 각 서브블록에 대해 계수 정보가 부호화된 데이터와 예측 부호화 정보가 부호화된 데이터를 추출하고 복호화해야 하는 것은 아니며, 비트스트림으로부터 스킵 서브블록 플래그만을 복호화하여 임의의 서브블록의 블록 모드가 스킵 모드인 것으로 판단되는 경우에는 해당 서브블록에 대해서는 복호화를 스킵할 수 있다.
단계 S3420에서, 영상 복호화 장치(3200)는 비트스트림을 복호화하여 블록 타입 정보를 복원할 때, 트리 구조를 이용하여 분할 타입 정보를 복원할 수 있다.
이하에서는 도 7 및 도 8을 참조하여, 본 발명의 일 실시예에 따라 비트스트림을 복호화하여 블록 타입 정보를 복원할 때, 트리 구조를 이용하여 분할 타입 정보를 복원하는 과정을 설명한다.
영상 부호화 장치(100)에서 최상위 노드값을 부호화할 때, 분할 타입값으로 분할 타입별 번호가 설정되고 분할 타입의 발생 빈도수가 높은 순서로 큰 분할 타입별 번호가 설정되어 가장 큰 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화한 경우, 영상 복호화 장치(3200)는 비트스트림으로부터 분할 타입 정보가 부호화된 데이터를 추출하고, 추출된 데이터의 이진 비트 0과 1을 복호화하여 차이값을 복원하고 가장 큰 분할 타입 번호로부터 복원된 차이값을 빼서 최상위 노드값을 복원한다. 이때, 영상 복호화 장치(3200)가 차이값을 복원하기 위해, 분할 타입 정보가 부호화된 데이터의 한 비트를 읽어 들여 복호화하고 이진 비트를 복원하고, 복원된 이진 비트가 0인 경우 다음 비트를 읽어 들인다. 이와 같은 방식으로 복호화하여 이진 비트 1이 복원될 때까지 이진 비트 0을 계속 복원하고, 복원된 이진 비트가 1인 경우 더 이상 비트를 읽어 들여 복호화하지 않으며 차이값은 복원된 이진 비트 0의 개수가 된다. 다만, 비트의 개수가 분할 타입 번호가 가질 수 있는 최대값과 최소값의 차이값만큼 읽어 들여진 경우에는 다음 비트를 읽어 들이지 않으며 차이값은 복원된 이진 비트 0의 개수가 된다(이 경우, 차이값은 분할 타입 번호가 가질 수 있는 최대값과 최소값의 차이값이 됨).
반대로, 영상 부호화 장치(100)에서 최상위 노드값을 부호화할 때, 분할 타입값으로 분할 타입별 번호가 설정되고 분할 타입의 발생 빈도수가 낮은 순서로 큰 분할 타입별 번호가 설정되어 가장 작은 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화한 경우, 영상 복호화 장치(3200)는 비트스트림으로부터 분할 타입 정보가 부호화된 데이터를 추출하고, 추출된 데이터의 이진 비트 0과 1을 복호화하여 차이값을 복원하고 가장 작은 분할 타입 번호로부터 복원된 차이값을 빼서 최상위 노드값을 복원한다. 이때, 영상 복호화 장치(3200)가 차이값을 복원하는 방법은 전술한 바와 같다.
또한, 영상 부호화 장치(100)에서 최상위 노드값을 부호화할 때, 0과의 차이값을 전술한 바와 같이 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화 한 경우, 영상 복호화 장치(3200)는 비트스트림으로부터 분할 타입 정보가 부호화된 데이터를 추출하고, 추출된 데이터의 이진 비트 0과 1을 복호화하여 복원되는 차이값을 최상위 노드값으로 복원한다. 이때, 영상 복호화 장치(3200)가 차이값을 복원하는 방법은 전술한 바와 같다.
이후 영상 복호화 장치(3200)는 최상위 노드의 하위 노드들의 노드값을 복호화한다. 영상 부호화 장치(100)에서 부호화하고자 하는 노드의 노드값과 상위 노드의 노드값의 차이값의 개수만큼 이진 비트 0을 부호화하여 노드값을 부호화하는 경우, 영상 복호화 장치(3200)는 각 노드의 노드값들을 복호화할 때, 비트스트림으로부터 추출되고 최상위 노드값을 복원하기 위해 읽어들여진 비트들의 다음의 한 비트를 읽어 들여 복호화하고 복원된 이진 비트가 0인 경우, 다음 비트를 읽어 들여 복호화한다. 복원된 상위 노드의 노드값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 이진 비트를 복원하지 않고 분할타입 번호가 가질 수 있는 최대값을 복호화하고자 하는 노드값으로 복원한다. 만약, 복원된 이진 비트가 1인 경우 더 이상 비트를 읽어 들이지 않으며 복원된 이진 비트 0의 개수를 차이값으로 복원하고, 복원된 차이값에 상위 노드의 노드값을 더하여 복호화하고자 하는 노드의 노드값을 복원한다. 만약, 영상 부호화 장치(100)에서 부호화하고자 하는 노드의 노드값과 상위 노드의 노드값의 차이값의 개수만큼 이진 비트 1을 부호화하여 노드값을 부호화하는 경우, 전술한 방법에서 복원된 이진 비트가 0일 때까지 한 비트씩을 복호화하여 이진 비트를 복원한다.
다만, 복호화하고자 하는 노드값을 복원할 때, 현재까지 복원한 이진 비트 0의 개수에 따른 차이값과 해당 노드의 상위 노드의 노드값을 더한 값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 더 이상 비트를 읽어 들여 이진 비트를 복원하지 않고 분할 타입 번호가 가질 수 있는 최대값을 해당 노드값으로 복원한다. 또한, 동일한 상위 노드를 가지는 노드들 중 마지막 노드의 노드값을 복원할 때 마지막 노드를 제외한 노드들의 노드값이 상위 노드의 노드값보다 모두 큰 경우, 더 이상 비트를 읽어 들여 이진 비트를 복원하지 않고 상위 노드의 노드값을 마지막 노드의 노드값으로 복원한다.
트리 구조를 이용하여 분할 타입 정보를 복호화하는 또 다른 실시예로 7A에 나타낸 서브블록들의 분할 타입값들을 그룹화하여 7B의 그룹화된 영역의 분할 타입값을 정할 때 발생빈도수가 높은 순서로 큰 분할 타입별 번호가 설정된 경우 복원한 상위노드 노드와 노드값을 빼서 현재노드의 노드값을 복원한다.
이상에서 전술한 바와 같이, 본 발명의 일 실시예에 따르면, 영상에서 부호화하고자 하는 블록의 블록 모드와 분할 모드의 조합에 따라 효율적인 방식으로 해당 블록을 부호화고 복호화할 수 있으므로, 영상의 압축 효율을 향상시킬 수 있다.
이상에서는 부호화하고자 하는 블록의 블록 모드 정보와 분할 모드 정보의 조합에 따라 해당 블록을 부호화 방법과 부호화를 통해 생성되는 비트스트림의 신택스 구조에 대해 본 발명의 일 실시예를 통해 설명했다. 이하에서는 본 발명의 다른 실시예를 통해 부호화하고자 하는 블록의 스킵 타입 정보에 따라 해당 블록에 대한 부호화 방식을 선택적으로 이용하여 영상을 부호화하는 방법에 대해 설명한다.
도 35는 본 발명의 다른 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 다른 실시예에 따른 영상 부호화 장치(3500)는 부호화 정보 부호화기3510) 및 영상 부호화기(3520)를 포함하여 구성될 수 있다.
부호화 정보 부호화기(3510)는 영상의 부호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 부호화하고, 스킵 타입 정보에 따라 블록의 스킵 움직임 정보를 부호화한다. 즉, 부호화 정보 부호화기(3510)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 블록의 스킵 타입을 나타내는 스킵 타입 정보를 부호화하며, 스킵 타입 정보를 기초로 블록의 스킵 움직임 정보를 부호화한다. 예를 들어, 부호화 정보 부호화기(3510)는 블록의 스킵 타입이 블록의 스킵 움직임 정보를 부호화함을 나타내는 경우 블록의 스킵 움직임 정보를 부호화한다.
영상 부호화기(3520)는 블록의 스킵 타입 정보에 따라 블록의 계수 정보를 부호화한다. 즉, 영상 부호화기(3520)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 스킵 타입 정보를 기초로 블록의 계수 정보를 부호화한다. 예를 들어, 영상 부호화기(3520)는 블록의 스킵 타입이 블록의 계수 정보를 부호화함을 나타내는 경우 블록의 스킵 움직임 정보를 부호화한다. 이러한 영상 부호화기(3520)는 도 1을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화기(200)와 같이 예측기, 감산기, 변환 및 양자화기, 부호화기, 역 양자화 및 역변환기, 가산기, 필터, 픽처 버퍼 등을 포함하여 구성될 수 있다.
만약, 블록의 스킵 타입 정보가 블록에 대한 부호화를 스킵함을 나타내는 경우, 해당 블록에 대해서는 스킵 움직임 정보와 계수 정보 모두가 부호화되지 않고 스킵 타입 정보만이 부호화된다.
도 36은 본 발명의 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 다른 실시예에 따른 영상 부호화 방법에 따르면, 영상 부호화 장치(3500)는 영상의 부호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 부호화한다(S3610). 여기서, 스킵 타입이란 블록의 블록 모드가 스킵 모드일 때, 어떠한 방식으로 스킵 모드의 블록을 부호화할 것인지를 나타낸다. 즉, 영상 부호화 장치(3500)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 해당 블록을 스킵 모드에 따라 부호화할 때 블록의 계수 정보만을 부호화할지 아니면 블록의 움직임 정보만을 부호화할지 아니면 블록에 대한 부호화를 스킵할지 여부를 나타내는 스킵 타입 정보를 부호화한다.
이러한 스킵 타입 정보는 1 비트의 스킵 타입 플래그로 구현될 수 있는데, 1 비트의 스킵 타입 플래그를 통해 다음과 같이 세 가지 경우로 스킵 타입을 나타낼 수 있다. 일 예로, 스킵 타입 플래그가 0이면 스킵 모드가 블록에 대해 부호화를 하지 않고 스킵하는 것을 나타내고 스킵 타입 플래그가 1이면 스킵 모드가 블록의 계수 정보는 부호화하지 않고 스킵 움직임 벡터를 부호화하는 것을 나타낼 수 있다. 다른 예로, 스킵 타입 플래그가 0이면 스킵 모드가 블록에 대해 부호화를 하지 않고 스킵하는 것을 나타내고 스킵 타입 플래그가 1이면 블록의 스킵 움직임 벡터는 부호화하지 않고 블록의 계수 정보를 부호화하는 것을 나타낼 수 있다. 또 다른 예로, 스킵 타입 플래그가 0이면 블록의 계수 정보를 부호화하지 않고 블록의 스킵 움직임 벡터를 부호화하는 것을 나타내고 스킵 타입 플래그가 1이면 블록의 스킵 움직임 벡터를 부호화하지 않고 블록의 계수 정보를 부호화하는 것을 나타낼 수 있다.
영상 부호화 장치(3500)는 스킵 타입 정보에 따라 블록의 부호화를 스킵하거나 블록의 스킵 움직임 정보를 부호화하거나 블록의 계수 정보를 부호화한다(S3620).
여기서, 스킵 타입 정보는 블록의 부호화를 스킵함을 나타내거나 블록의 스킵 움직임 정보를 부호화함을 나타낼 수 있다. 또는, 스킵 타입 정보는 블록의 부호화를 스킵함을 나타내거나 블록의 계수 정보를 부호화함을 나타낼 수 있다. 또는 스킵 타입 정보는 블록의 스킵 움직임 정보를 부호화함을 나타내거나 블록의 계수 정보를 부호화함을 나타낼 수 있다.
따라서, 단계 S3620에서, 영상 부호화 장치(3500)는 스킵 타입 정보가 블록의 스킵 타입이 블록의 부호화를 스킵함을 나타내는 경우, 블록의 부호화를 수행하지 않고 스킵한다.
또한, 단계 S3620에서, 영상 부호화 장치(3500)는 스킵 타입 정보가 블록의 스킵 타입이 스킵 움직임 정보를 부호화함을 나타내는 경우, 부호화하고자 하는 블록의 스킵 움직임 정보를 부호화하고 해당 블록의 계수 정보는 부호화하지 않는다.
또한, 단계 S3620에서, 영상 부호화 장치(3500)는 스킵 타입 정보가 블록의 스킵 타입이 계수 정보를 부호화함을 나타내는 경우, 부호화하고자 하는 블록의 계수 정보를 부호화하고 해당 블록의 스킵 움직임 벡터 정보는 부호화하지 않는다. 이 경우, 부호화하고자 하는 블록의 계수 정보는 해당 블록의 주변 블록의 움직임 정보를 기초로 결정되는 움직임 정보를 이용하여 예측 부호화될 수 있다.
도 37은 본 발명의 다른 실시예에 따른 영상 복호화 장치(3700)의 구성을 간략하게 나타낸 블록 구성도이다.
본 발명의 다른 실시예에 따른 영상 복호화 장치(3700)는 부호화 정보 복호화기(1210) 및 영상 복호화기(1220)를 포함하여 구성될 수 있다.
부호화 정보 복호화기(3710)는 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 복원하고, 스킵 타입 정보에 따라 비트스트림을 복호화하여 블록의 스킵 움직임 정보를 복원한다.
영상 복호화기(3720)는 스킵 타입 정보에 따라 기 설정된 방식에 따라 결정되는 움직임 정보를 기초로 블록을 복원하거나 스킵 움직임 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 복원되는 계수 정보를 기초로 블록을 복원한다.
즉, 영상 복호화기(3720)는 부호화 정보 복호화기(3710)에 의해 복원되는 스킵 타입 정보가 블록의 스킵 타입이 스킵 움직임 벡터를 부호화함을 나타내는 경우, 부호화 정보 복호화기(3710)에 의해 복원되는 스킵 움직임 정보를 이용하여 복호화하고자 하는 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다. 또한, 영상 복호화기(3720)는 부호화 정보 복호화기(3710)에 의해 복원되는 스킵 타입 정보가 블록의 계수 정보를 부호화함을 나타내는 경우, 비트스트림을 복호화하여 계수 정보를 복원하고, 복원된 계수 정보를 역 양자화 및 역 변환하여 잔여 블록을 복원하며, 기 설정된 방식으로 결정되는 움직임 정보를 이용하여 움직임 보상하여 생성되는 예측 블록과 가산하여 복호화하고자 하는 블록을 복원한다. 만약, 영상 복호화기(3720)는 부호화 정보 복호화기(3710)에 의해 복원되는 스킵 타입 정보가 블록에 대한 부호화를 스킵함을 나타내는 경우, 기 설정된 방식으로 결정되는 움직임 정보를 이용하여 해당 블록의 움직임 보상을 수행하여 생성되는 블록을 해당 블록으로 복원한다.
여기서, 기 설정된 방식으로 결정되는 움직임 정보란 주변 블록의 움직임 정보를 이용하여 결정되는 움직임 정보일 수 있는데, 반드시 이에 한정되지 않고 기 설정된 다양한 방식으로 결정되는 움직임 정보가 이용될 수 있다.
도 38은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 영상 복호화 방법에 따르면, 영상 복호화 장치(1200)는 비트스트림을 복호화하여 복호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 복원하고(S3810), 스킵 타입 정보에 따라 기 설정된 방식으로 결정되는 움직임 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 복원되는 블록의 스킵 움직임 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 복원되는 계수 정보를 기초로 블록을 복원한다(S3820).
단계 S3810에서, 영상 복호화 장치(3700)는 블록의 블록 모드가 스킵 모드인 경우에만 스킵 타입 정보를 복원할 수 있다. 즉, 복호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우에만 비트스트림에 스킵 타입 정보가 부호화된 데이터가 포함되어 있으므로, 스킵 모드인 경우에만 비트스트림으로부터 스킵 타입 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 타입 정보를 복원한다.
단계 S3820에서, 영상 복호화 장치(3700)는 복원되는 스킵 타입 정보가 블록의 부호화를 스킵함을 나타내는 경우, 기 설정된 방식으로 결정되는 움직임 정보를 기초로 블록을 복원할 수 있다. 즉, 스킵 타입 정보가 블록의 부호화를 스킵함을 나타내는 경우, 영상 부호화 장치(3500)에서 해당 블록의 부호화를 스킵하여 비트스트림에는 해당 블록에 대한 부호화 정보나 계수 정보가 부호화된 데이터가 없음을 알 수 있으므로, 비트스트림으로부터 데이터를 추출하여 복호화하지 않고, 영상 부호화 장치(3500)와 약속되어 기 설정된 방식으로 해당 블록의 움직임 정보(즉, 움직임 벡터와 참조 픽처 인덱스)를 결정하고 결정된 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다.
단계 S3820에서, 영상 복호화 장치(3700)는 스킵 타입 정보가 블록의 스킵 움직임 정보를 부호화함을 나타내는 경우, 비트스트림을 복호화하여 복원되는 블록의 스킵 움직임 정보를 기초로 블록을 복원할 수 있다. 즉, 영상 복호화 장치(3700)는 스킵 타입 정보가 블록의 스킵 움직임 정보를 부호화함을 나타내는 경우, 영상 부호화 장치(3500)에서 해당 블록의 계수 정보가 아닌 스킵 움직임 정보를 부호화하여 비트스트림에는 계수 정보가 부호화된 데이터가 없음을 알 수 있으므로, 비트스트림으로부터 스킵 움직임 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 움직임 정보를 복원하고 복원된 스킵 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다.
단계 S3820에서, 영상 복호화 장치(3700)는 스킵 타입 정보가 블록의 계수 정보를 부호화함을 나타내는 경우, 비트스트림을 복호화하여 복원되는 계수 정보를 기초로 블록을 복원할 수 있다. 즉, 영상 복호화 장치(3700)는 스킵 타입 정보가 블록의 계수 정보를 부호화함을 나타내는 경우, 영상 부호화 장치(3500)에서 해당 블록의 스킵 움직임 정보가 아닌 계수 정보를 부호화하여 비트스트림에는 계수 정보가 부호화된 데이터가 없음을 알 수 있으므로, 비트스트림으로부터 계수 정보가 부호화된 데이터를 추출하고 복호화하여 계수 정보를 복원하고 복원된 계수 정보를 역 양자화 및 역 변환하여 잔여 블록을 복원하며 영상 부호화 장치(3500)와 약속되어 기 설정된 방식으로 해당 블록의 움직임 정보(즉, 움직임 벡터와 참조 픽처 인덱스)를 결정하고 결정된 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 생성되는 예측 블록과 복원된 잔여 블록을 가산하여 복호화하고자 하는 블록을 복원한다.
제 2 실시예
이하, 본 발명의 제 2 실시예를 설명한다. 특히, 본 발명의 제 2 실시예에서는 변환 서브 블록과 관련된 변환 정보 (예컨대, 변환 타입, 변환 서브 블록 분할 플래그, CBP 플래그 등)의 트리 구조 부호화의 또 다른 실시예에 대해 설명한다.
제 2 실시예에 따르면 변환 서브 블록은 각 매크로블록 또는 서브 블록 내에서 가변 크기의 블록으로 분할함으로써 얻어질 수 있다. 또한, 변환 서브 블록에 따라 변환 타입이 결정될 수 있다. 또는 예측 모드에 따라 변환 타입을 결정할 수도 있다.
이때, 가능한 변환 서브 블록의 크기와 타입에 관한 정보는 다양한 헤더에 포함될 수 있다. 여기서 헤더는 슬라이스 헤더, 픽처 헤더, 시퀀스 헤더가 될 수 있다. 또한, 최대 변환 서브 블록의 크기와 최소 변환 서브 블록의 크기를 부호화하고, 인트라 예측과 인터 예측의 최소 변환 서브 블록의 크기를 다르게 둘 수 있다. 예를 들어, 최대 변환 서브 블록의 크기가 64x64 이고, 최소 변환 서브 블록의 크기가 4x4인 경우, 다시 인트라 예측 블록의 최소 변환 서브 블록의 크기를 16x16으로 부호화 할 수 있다. 이러한 경우, 인트라 예측 블록의 변환을 위해 가능한 변환 서브 블록의 크기는 64x64, 32x32, 16x16이 되고, 인터 예측 블록의 변환을 위해 가능한 변환 서브 블록의 크기는 64x64, 32x32, 16x16, 8x8. 4x4가 된다.
도 39는 본 발명의 제 2 실시예에 따른 변환 정보 부호화의 예를 설명하기 위해 도시한 도면이다.
도 39에서, 39-A는 현재 매크로블록이 서브 블록들로 분할된 경우를 나타낸다. 즉, 현재 매크로블록이 서브 블록 A, B, C, D의 4개의 블록으로 분할되었다.
39-B는 현재 매크로블록 내 서브 블록의 예측 서브 블록을 나타낸다. 즉, 서브 블록 A는 Skip 모드이고, 서블 블록 B는 16x16의 4개의 인트라 예측 서브 블록으로 분할되었고, 서브 블록 C와 D는 각각 8x16과 16x8의 2개의 인터 예측 서브 블록으로 분할되었다.
39-C는 현재 매크로블록 내 서브 블록의 변환 서브 블록의 크기를 나타낸다. 즉, 서브 블록 A는 Skip 모드 이므로 변환하지 않고, 서브 블록 B는 8x8 크기의 변환 서브 블록으로 변환 및 양자화 되었고, 서브 블록 C와 D는 각각 32x32와 16x16 크기의 변환 서브 블록으로 변환 및 양자화되었다.
39-D와 39-E, 39-F는 1개의 휘도 성분과 2개의 색차 성분의 CBP 플래그를 나타낸다.
도 39-G는 현재 매크로블록 내 서브 블록의 블록 숫자를 나타낸다.
도 40은 트리 구조를 이용한 도 39의 서브 블록 B의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
도 39 및 도 40을 참조하면, 먼저 현재 서브 블록 B 내에 휘도와 색차 성분의 변환 계수가 0이 아닌 계수가 있는지를 나타내는 Sub_block_CBP_flag가 부호화되고, 현재 서브 블록이 변환 서브 블록으로 분할되었는지를 나타내는 split_flag가 부호화된다. 이후 각 변환 서브 블록마다 색차 성분 (Cr, Cb)과 휘도 성분 (Y)의 CBP_flag와 split_flag를 부호화한다. 도 39의 39-G를 참조하면, P1, P2, P3, P4로 분할된 변환 서브 블록의 split_flag와 cbp_flag를 Cb_CBP_flag, Cr_CBP_flag, split_flag 순으로 1/1/1로 부호화한 뒤 다시 분할된 변환 서브 블록의 P1, P2, P3, P4 순으로 각 변환 서브 블록의 Cb_CBP_flag, Cr_CBP_flag, split_flag, Y_CBP_flag 순으로 부호화 한다. 다른 변환 서브 블록도 동일한 순서와 동일한 신택스로 부호화 된다.
이때 각 신택스는 컨텍스트 적응적 이진산술부호화(CABAC)를 이용하여 주변 상황에 따라 다른 컨텍스트를 이용하여 부호화할 수도 있고, 컨텍스트를 이용하지 않고, 신택스 값을 1 bit로 부호화할 수도 있다.
도 41은 트리 구조를 이용한 도 39의 서브 블록 C의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
도 39 및 도 41을 참조하면, 현재 서브 블록 C는 변환 서브 블록으로 분할 되지 않은 인터 예측 블록이다. 따라서 현재 서브 블록 C 의 Sub_block_CBP_flag를 1로 부호화하고, split_flag를 0으로 부호화한 뒤 Cb_CBP_flag, Cr_CBP_flag, Y_CBP_flag 순으로 부호화한다.
도 42는 트리 구조를 이용한 도 39의 서브 블록 C의 변환 정보 부호화의 또 다른 예시를 설명하기 위한 도면이다.
도 39와 도 42를 참조하면, 먼저 현재 서브 블록의 변환 서브 블록이 분할 되었는지를 나타내는 split_flag를 부호화하고, CBP 플래그 (Cb, Cr, Y)를 부호화 한다. 이 경우 sub_block_CBP_flag를 부호화하지 않아도 된다. 또한, 모든 서브 블록의 트리 구조마다 최상위 노드의 sub_block_CBP_flag와 split_flag는 순서가 변경될 수 있다.
도 43은 트리 구조를 이용한 도 39의 서브 블록 D의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
도 39와 도 43을 참조하면, 현재 서브 블록 D는 변환 서브 블록으로 분할 된 인터 예측 블록이다. 따라서 현재 서브 블록 D 의 sub_block_CBP_flag와 split_flag를 각각 1로 부호화 한다. 그 뒤, 도 39-G를 참조하면 P15, P16, P17, P18의 순서대로로 분할된 각 변환 서브 블록의 split_flag와 cbp_flag를 split_flag, Cb_CBP_flag, Cr_CBP_flag, Y_CBP_flag 순으로 부호화한다.
전술한 각 신택스와 신택스의 순서는 예시적인 것일 뿐 전술한 예에 한정되지 않는다. 본 발명의 실시예에 따른 변환 정보의 부호화 데이터는 변환 정보 중 sub_block_CBP_flag, split flag, cbp_flag (각 성분 별) 중 하나 이상의 신택스 및 변환 정보를 포함하여 구성될 수 있다. 특히, 서브 블록 별로 각 서브 블록에 색차와 휘도 성분에 0이 아닌 변환 계수가 있는지를 나타내는 sub_block_CBP_flag를 최상위 노드값으로 부호화하는 경우를 포함한다.
본 발명의 실시예에 따른 변환 정보 복호화는 변환 정보 부호화의 역과정에 해당하므로 당업자라면 전술한 변환 정보 부호화 과정으로부터 변환 정보 복호화 과정을 이해할 수 있을 것이다.
이상에서 전술한 바와 같이, 본 발명의 다른 실시예에 따르면 블록의 스킵 모드를 다양한 방식으로 정의하고 영상의 특성 및/또는 구현 방식이나 필요에 따라 다양한 방식을 선택적으로 이용하여 영상을 부호화하고 복호화할 수 있으므로, 영상의 압축 효율을 향상시킬 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 또한, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 따라서, 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명의 실시예는, 동영상을 부호화하고 복호화하는 영상 압축 분야에 적용되어, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식과 복호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 함으로써 영상의 압축 효율을 향상시킬 수 있는 효과를 발생하는 매우 유용한 발명이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은 2010년 04월 16일 및 2011년 04월 16일 한국에 출원한 특허출원번호 제 10-2010-0035533 호 및 10-2011-0035424에 대해 미국 특허법 119(a)조(35 U.S.C 119(a))에 따라 우선권을 주장하면, 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다. 아울러, 본 특허출원은 미국 이외에 국가에 대해서도 위와 동일한 동일한 이유로 우선권을 주장하면 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다.

Claims (48)

  1. 영상 부호화/복호화 장치에 있어서,
    매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 상기 블록 모드 정보 및 상기 분할 모드 정보의 조합에 따라 상기 블록의 변환 타입 정보, CBP(Coded Block Pattern) 정보 및 델타 양자화 파라미터 정보 중 적어도 하나를 부호화하며, 상기 블록의 부호화된 정보를 기초로 상기 블록의 계수 정보를 부호화하는 영상 부호화기; 및
    비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 상기 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 상기 블록 모드 정보와 상기 분할모드 정보의 조합에 따라 부호화된 변환 타입 정보를 복원하며, 상기 복원된 정보를 기초로 상기 블록을 복원하거나 상기 비트스트림을 복호화하여 상기 블록을 복원하는 영상 복호화기
    를 포함하는 것을 특징으로 하는 영상 부호화/복호화 장치.
  2. 영상을 부호화하는 장치에 있어서,
    매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 상기 블록 모드 정보 및 상기 분할 모드 정보의 조합에 따라 상기 블록의 변환 타입 정보를 부호화하는 부호화 정보 부호화기; 및
    상기 블록의 변환 타입 정보를 기초로 상기 블록의 계수 정보를 부호화하는 영상 부호화기
    를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  3. 제 2항에 있어서, 상기 부호화 정보 부호화기는,
    상기 블록 모드 정보 및 상기 분할 모드 정보에 기초하여 상기 매크로블록 내의 최하위 노드값을 생성하며, 생성된 상기 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성하는 것을 특징으로 하는 영상 부호화 장치.
  4. 제 2항에 있어서, 상기 부호화 정보 부호화기는,
    상기 매크로블록에 대하여 16x16 화소블록 단위로 변환 타입을 선택하며, 상기 16x16 화소블록 내의 서브블록에 대해서는 상기 16x16 화소블록 단위로 선택된 변환 타입과 동일한 변환 타입을 사용하는 것을 특징으로 하는 영상 부호화 장치.
  5. 제 2항에 있어서, 상기 부호화 정보 부호화기는,
    상기 매크로블록 내의 16x16 화소블록 이상의 블록에 대해서는 해당 블록 단위로 변환 타입을 선택하고, 16x16 화소블록보다 작은 블록으로 분할된 서브블록에 대해서는 16x16 화소블록 단위로 변환 타입을 선택하는 것을 특징으로 하는 영상 부호화 장치.
  6. 제 2항에 있어서, 상기 부호화 정보 부호화기는,
    변환 계수가 없는 블록에 대해서는 변환타입의 부호화를 생략하는 것을 특징으로 하는 영상 부호화 장치.
  7. 제 2항에 있어서, 상기 부호화 정보 부호화기는,
    상기 블록의 블록모드가 스킵 모드이거나 CBPX 플래그가 0인 경우, 변환타입의 부호화를 생략하는 것을 특징으로 하는 영상 부호화 장치.
  8. 영상을 부호화하는 장치에 있어서,
    매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 상기 블록 모드 정보 및 상기 분할 모드 정보의 조합에 따라 상기 CBP 정보를 부호화하는 부호화 정보 부호화기; 및
    상기 블록의 CBP 정보를 기초로 상기 블록의 계수 정보를 부호화하는 영상 부호화기
    를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  9. 제 8항에 있어서,
    상기 블록의 CBP 정보는 상기 블록 내에 0이 아닌 변환계수가 있는지의 여부를 나타내는 1비트 플래그인 것을 특징으로 하는 영상 부호화 장치.
  10. 제 8항에 있어서, 상기 부호화 정보 부호화기는,
    기 전송된 모드값이나 플래그 중 현재의 상기 블록 내에 부호화할 변환계수가 없음을 나타내는 정보가 포함된 경우, 상기 현재의 블록에 대한 노드값의 생성을 생략하는 것을 특징으로 하는 영상 부호화 장치.
  11. 제 8항에 있어서, 상기 부호화 정보 부호화기는,
    상기 블록이 0이 아닌 변환 계수를 포함하고 있는 경우에 상기 CBP 정보를 부호화하는 것을 특징으로 하는 영상 부호화 장치.
  12. 제 11항에 있어서, 상기 부호화 정보 부호화기는,
    상기 블록의 휘도 성분에 대해서 4x4 변환 또는 8x8 변환에 대해서는 8x8 화소블록 내에 0이 아닌 변환계수가 있는지의 여부에 따라 노드값을 생성하는 것을 특징으로 하는 영상 부호화 장치.
  13. 제 11항에 있어서, 상기 부호화 정보 부호화기는,
    상기 블록의 휘도 성분에 대해서 8x16 변환 또는 16x8 변환에 대해서는 8x16 화소블록 또는 16x8 화소블록 내에 0이 아닌 변환계수가 있는지의 여부에 따라 노드값을 생성하는 것을 특징으로 하는 영상 부호화 장치.
  14. 제 8항에 있어서,
    상기 블록의 블록 모드가 스킵 모드이거나 CBPX 플래그가 0인 경우, CBP 정보의 부호화를 위한 노드값의 생성을 생략하는 것을 특징으로 하는 영상 부호화 장치.
  15. 제 8항에 있어서, 상기 부호화 정보 부호화기는,
    상기 블록 모드 정보 및 상기 분할 모드 정보에 기초하여 상기 매크로블록 내의 최하위 노드값을 생성하며, 생성된 상기 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성하는 것을 특징으로 하는 영상 부호화 장치.
  16. 영상을 부호화하는 장치에 있어서,
    매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 상기 블록 모드 정보 및 상기 분할 모드 정보의 조합에 따라 상기 블록의 델타 양자화 파라미터 정보를 부호화하는 부호화 정보 부호화기; 및
    상기 블록의 델타 양자화 파라미터 정보를 기초로 상기 블록의 계수 정보를 부호화하는 영상 부호화기
    를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  17. 제 16항에 있어서, 상기 부호화 정보 부호화기는,
    상기 블록 모드 정보 및 상기 분할 모드 정보에 기초하여 상기 매크로블록 내의 최하위 노드값을 생성하며, 생성된 상기 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성하는 것을 특징으로 하는 영상 부호화 장치.
  18. 제 16항에 있어서, 상기 부호화 정보 부호화기는,
    상기 매크로블록 내의 부호화할 0이 아닌 변환계수가 있는 16x16 화소블록 또는 상기 매크로블록에 대해서만 상기 델타 양자화 파라미터 정보를 부호화하는 것을 특징으로 하는 영상 부호화 장치.
  19. 제 16항에 있어서, 상기 부호화 정보 부호화기는,
    상기 델타 양자화 파라미터 정보를 기 설정된 코드번호로 변환한 후, 상기 코드번호를 트리구조로 부호화하는 것을 특징으로 하는 영상 부호화 장치.
  20. 제 16항에 있어서, 상기 부호화 정보 부호화기는,
    상기 델타 양자화 파라미터 정보의 절대값을 부호화한 후, 0이 아닌 델타 양자화 파라미터 정보에 대해서만 부호화하는 것을 특징으로 하는 영상 부호화 장치.
  21. 영상을 복호화하는 장치에 있어서,
    비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 상기 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 상기 블록 모드 정보와 상기 분할모드 정보의 조합에 따라 부호화된 변환 타입 정보를 복원하는 부호화 정보 복호화기; 및
    상기 부호화 정보 복호화기에 의해 복원된 정보를 기초로 상기 블록을 복원하거나 상기 비트스트림을 복호화하여 상기 블록을 복원하는 영상 복호화기
    를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  22. 영상을 복호화하는 장치에 있어서,
    비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 상기 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 상기 블록 모드 정보와 상기 분할모드 정보의 조합에 따라 부호화된 CBP 정보를 복원하는 부호화 정보 복호화기; 및
    상기 부호화 정보 복호화기에 의해 복원된 정보를 기초로 상기 블록을 복원하거나 상기 비트스트림을 복호화하여 상기 블록을 복원하는 영상 복호화기
    를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  23. 영상을 복호화하는 장치에 있어서,
    비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 상기 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 상기 블록 모드 정보와 상기 분할모드 정보의 조합에 따라 부호화된 델타 양자화 파라미터 정보를 복원하는 부호화 정보 복호화기; 및
    상기 부호화 정보 복호화기에 의해 복원된 정보를 기초로 상기 블록을 복원하거나 상기 비트스트림을 복호화하여 상기 블록을 복원하는 영상 복호화기
    를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  24. 영상 부호화/복호화 방법에 있어서,
    매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 상기 블록 모드 정보 및 상기 분할 모드 정보의 조합에 따라 상기 블록의 변환 타입 정보, CBP 정보 및 델타 양자화 파라미터 정보 중 적어도 하나를 부호화하며, 상기 블록의 부호화된 정보를 기초로 상기 블록의 계수 정보를 부호화하는 단계; 및
    비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 상기 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 상기 블록 모드 정보와 상기 분할모드 정보의 조합에 따라 부호화된 변환 타입 정보를 복원하며, 상기 복원된 정보를 기초로 상기 블록을 복원하거나 상기 비트스트림을 복호화하여 상기 블록을 복원하는 단계
    를 포함하는 것을 특징으로 하는 영상 부호화/복호화 방법.
  25. 영상을 부호화하는 방법에 있어서,
    매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 상기 블록 모드 정보 및 상기 분할 모드 정보의 조합에 따라 상기 블록의 변환 타입 정보를 부호화하는 부호화 정보 부호화 단계; 및
    상기 블록의 변환 타입 정보를 기초로 상기 블록의 계수 정보를 부호화하는 영상 부호화 단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  26. 제 25항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 블록 모드 정보 및 상기 분할 모드 정보에 기초하여 상기 매크로블록 내의 최하위 노드값을 생성하며, 생성된 상기 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성하는 것을 특징으로 하는 영상 부호화 방법.
  27. 제 25항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 매크로블록에 대하여 16x16 화소블록 단위로 변환 타입을 선택하며, 상기 16x16 화소블록 내의 서브블록에 대해서는 상기 16x16 화소블록 단위로 선택된 변환 타입과 동일한 변환 타입을 사용하는 것을 특징으로 하는 영상 부호화 방법.
  28. 제 25항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 매크로블록 내의 16x16 화소블록 이상의 블록에 대해서는 해당 블록 단위로 변환 타입을 선택하고, 16x16 화소블록보다 작은 블록으로 분할된 서브블록에 대해서는 16x16 화소블록 단위로 변환 타입을 선택하는 것을 특징으로 하는 영상 부호화 방법.
  29. 제 25항에 있어서, 상기 부호화 정보 부호화 단계는,
    변환 계수가 없는 블록에 대해서는 변환타입의 부호화를 생략하는 것을 특징으로 하는 영상 부호화 방법.
  30. 제 25항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 블록의 블록모드가 스킵 모드이거나 CBPX 플래그가 0인 경우, 변환타입의 부호화를 생략하는 것을 특징으로 하는 영상 부호화 방법.
  31. 영상을 부호화하는 방법에 있어서,
    매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 상기 블록 모드 정보 및 상기 분할 모드 정보의 조합에 따라 상기 CBP 정보를 부호화하는 부호화 정보 부호화 단계; 및
    상기 블록의 CBP 정보를 기초로 상기 블록의 계수 정보를 부호화하는 영상 부호화 단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  32. 제 31항에 있어서,
    상기 블록의 CBP 정보는 상기 블록 내에 0이 아닌 변환계수가 있는지의 여부를 나타내는 1비트 플래그인 것을 특징으로 하는 영상 부호화 방법.
  33. 제 31항에 있어서, 상기 부호화 정보 부호화 단계는,
    기 전송된 모드값이나 플래그 중 현재의 상기 블록 내에 부호화할 변환계수가 없음을 나타내는 정보가 포함된 경우, 상기 현재의 블록에 대한 노드값의 생성을 생략하는 것을 특징으로 하는 영상 부호화 방법.
  34. 제 33항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 블록이 0이 아닌 변환 계수를 포함하고 있는 경우에 상기 CBP 정보를 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  35. 제 33항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 블록의 휘도 성분에 대해서 4x4 변환 또는 8x8 변환에 대해서는 8x8 화소블록 내에 0이 아닌 변환계수가 있는지의 여부에 따라 노드값을 생성하는 것을 특징으로 하는 영상 부호화 방법.
  36. 제 33항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 블록의 휘도 성분에 대해서 8x16 변환 또는 16x8 변환에 대해서는 8x16 화소블록 또는 16x8 화소블록 내에 0이 아닌 변환계수가 있는지의 여부에 따라 노드값을 생성하는 것을 특징으로 하는 영상 부호화 방법.
  37. 제 31항에 있어서,
    상기 블록의 블록 모드가 스킵 모드이거나 CBPX 플래그가 0인 경우, CBP 정보의 부호화를 위한 노드값의 생성을 생략하는 것을 특징으로 하는 영상 부호화 방법.
  38. 제 31항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 블록 모드 정보 및 상기 분할 모드 정보에 기초하여 상기 매크로블록 내의 최하위 노드값을 생성하며, 생성된 상기 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성하는 것을 특징으로 하는 영상 부호화 방법.
  39. 영상을 부호화하는 방법에 있어서,
    매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 분할 모드 정보를 부호화하고, 상기 블록 모드 정보 및 상기 분할 모드 정보의 조합에 따라 상기 블록의 델타 양자화 파라미터 정보를 부호화하는 부호화 정보 부호화 단계; 및
    상기 블록의 델타 양자화 파라미터 정보를 기초로 상기 블록의 계수 정보를 부호화하는 영상 부호화 단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  40. 제 39항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 블록 모드 정보 및 상기 분할 모드 정보에 기초하여 상기 매크로블록 내의 최하위 노드값을 생성하며, 생성된 상기 최하위 노드값을 기초에 기초하여 트리 구조의 최상위 노드값을 생성하는 것을 특징으로 하는 영상 부호화 방법.
  41. 제 39항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 매크로블록 내의 부호화할 0이 아닌 변환계수가 있는 16x16 화소블록 또는 상기 매크로블록에 대해서만 상기 델타 양자화 파라미터 정보를 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  42. 제 39항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 델타 양자화 파라미터 정보를 기 설정된 코드번호로 변환한 후, 상기 코드번호를 트리구조로 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  43. 제 39항에 있어서, 상기 부호화 정보 부호화 단계는,
    상기 델타 양자화 파라미터 정보의 절대값을 부호화한 후, 0이 아닌 델타 양자화 파라미터 정보에 대해서만 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  44. 영상을 복호화하는 방법에 있어서,
    비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 상기 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 상기 블록 모드 정보와 상기 분할모드 정보의 조합에 따라 부호화된 변환 타입 정보를 복원하는 부호화 정보 복호화 단계; 및
    상기 부호화 정보 복호화기에 의해 복원된 정보를 기초로 상기 블록을 복원하거나 상기 비트스트림을 복호화하여 상기 블록을 복원하는 영상 복호화 단계
    를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  45. 영상을 복호화하는 방법에 있어서,
    비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 상기 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 상기 블록 모드 정보와 상기 분할모드 정보의 조합에 따라 부호화된 CBP 정보를 복원하는 부호화 정보 복호화 단계; 및
    상기 부호화 정보 복호화기에 의해 복원된 정보를 기초로 상기 블록을 복원하거나 상기 비트스트림을 복호화하여 상기 블록을 복원하는 영상 복호화 단계
    를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  46. 영상을 복호화하는 방법에 있어서,
    비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지의 여부를 나타내는 블록 모드 정보, 상기 블록이 서브블록으로 분할되는지의 여부를 나타내는 분할모드 정보, 및 상기 블록 모드 정보와 상기 분할모드 정보의 조합에 따라 부호화된 델타 양자화 파라미터 정보를 복원하는 부호화 정보 복호화 단계; 및
    상기 부호화 정보 복호화기에 의해 복원된 정보를 기초로 상기 블록을 복원하거나 상기 비트스트림을 복호화하여 상기 블록을 복원하는 영상 복호화 단계
    를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  47. 영상을 부호화하는 방법에 있어서,
    매크로블록 내의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 정보를 부호화하는 단계;
    및 상기 부호화하고자 하는 블록의 블록 모드가 분할 모드의 경우, 인트라 예측 및 인터 예측에 따라 최대 변환 서브 블록의 크기와 최소 변환 서브 블록의 크기를 부호화하는 변환정보 부호화 단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  48. 제 47항에 있어서,
    상기 변환정보 부호화 단계는,
    상기 부호화하고자 하는 블록 내에 휘도와 색차 성분의 변환계수가 0이 아닌 계수가 있는지를 나타내는 정보를 부호화하고, 상기 부호화하고자 하는 블록이 변환 서브 블록으로 분할되었는지를 나타내는 정보를 부호화하며, 각 상기 변환 서브 블록마다 색차 성분과 휘도 성분에 대한 정보를 부호화하는 것을 특징으로 하는 영상 부호화 방법.
PCT/KR2011/002761 2010-04-16 2011-04-18 영상 부호화/복호화 장치 및 방법 WO2011129671A2 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US13/641,673 US10015512B2 (en) 2010-04-16 2011-04-18 Method for decoding images based on block mode information
CN201180029802.XA CN102986213B (zh) 2010-04-16 2011-04-18 视频编码/解码设备和方法
US14/752,189 US9967588B2 (en) 2010-04-16 2015-06-26 Apparatus and method for encoding/decoding images
US14/752,108 US9967587B2 (en) 2010-04-16 2015-06-26 Apparatus and method for encoding/decoding images

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2010-0035533 2010-04-16
KR20100035533 2010-04-16
KR1020110035424A KR101813189B1 (ko) 2010-04-16 2011-04-16 영상 부호화/복호화 장치 및 방법
KR10-2011-0035424 2011-04-16

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/641,673 A-371-Of-International US10015512B2 (en) 2010-04-16 2011-04-18 Method for decoding images based on block mode information
US14/752,108 Continuation US9967587B2 (en) 2010-04-16 2015-06-26 Apparatus and method for encoding/decoding images

Publications (2)

Publication Number Publication Date
WO2011129671A2 true WO2011129671A2 (ko) 2011-10-20
WO2011129671A3 WO2011129671A3 (ko) 2012-03-15

Family

ID=44799214

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/002761 WO2011129671A2 (ko) 2010-04-16 2011-04-18 영상 부호화/복호화 장치 및 방법

Country Status (1)

Country Link
WO (1) WO2011129671A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109479131A (zh) * 2016-06-24 2019-03-15 世宗大学校产学协力团 视频信号处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090129926A (ko) * 2008-06-13 2009-12-17 삼성전자주식회사 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
KR20100018191A (ko) * 2008-08-06 2010-02-17 에스케이 텔레콤주식회사 부호화 모드 결정 방법 및 장치와 그를 이용한 영상 부호화장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090129926A (ko) * 2008-06-13 2009-12-17 삼성전자주식회사 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
KR20090129939A (ko) * 2008-06-13 2009-12-17 삼성전자주식회사 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
KR20100018191A (ko) * 2008-08-06 2010-02-17 에스케이 텔레콤주식회사 부호화 모드 결정 방법 및 장치와 그를 이용한 영상 부호화장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109479131A (zh) * 2016-06-24 2019-03-15 世宗大学校产学协力团 视频信号处理方法及装置
CN109479131B (zh) * 2016-06-24 2023-09-01 世宗大学校产学协力团 视频信号处理方法及装置

Also Published As

Publication number Publication date
WO2011129671A3 (ko) 2012-03-15

Similar Documents

Publication Publication Date Title
WO2014003423A4 (ko) 영상 부호화/복호화 방법 및 장치
WO2017086746A1 (ko) 화면내 예측 모드 부호화/복호화 방법 및 장치
WO2016195460A1 (ko) 화면 내 예측에 대한 부호화/복호화 방법 및 장치
WO2013157825A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2011019253A2 (en) Method and apparatus for encoding video in consideration of scanning order of coding units having hierarchical structure, and method and apparatus for decoding video in consideration of scanning order of coding units having hierarchical structure
WO2019225993A1 (ko) 비디오 신호 처리 방법 및 장치
WO2013002556A2 (ko) 인트라 예측을 수반한 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2011019249A2 (en) Video encoding method and apparatus and video decoding method and apparatus, based on hierarchical coded block pattern information
WO2011049397A2 (en) Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
WO2011071328A2 (en) Method and apparatus for encoding video, and method and apparatus for decoding video
WO2012005520A2 (en) Method and apparatus for encoding video by using block merging, and method and apparatus for decoding video by using block merging
WO2011040794A2 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
WO2013002554A2 (ko) 픽셀 분류에 따른 오프셋 조정을 이용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2017086738A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2015093890A1 (ko) 인트라 예측을 수반한 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2014010943A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2019182295A1 (ko) 비디오 신호 처리 방법 및 장치
WO2011129672A2 (ko) 영상 부호화/복호화 장치 및 방법
WO2020213944A1 (ko) 영상 코딩에서 매트릭스 기반의 인트라 예측을 위한 변환
WO2021107532A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2012093890A2 (ko) 양방향 예측 및 단일방향 예측이 가능한 비디오 예측 방법 및 그 장치, 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2016182298A1 (ko) 적응적인 순서로 결정되는 블록을 이용하여 영상을 부호화 또는 복호화하는 방법 및 장치
WO2018034374A1 (ko) 인트라 예측 필터링을 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
WO2018155983A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020071836A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180029802.X

Country of ref document: CN

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

Ref document number: 11769137

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13641673

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 PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 04/02/2013)

122 Ep: pct application non-entry in european phase

Ref document number: 11769137

Country of ref document: EP

Kind code of ref document: A2