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

WO2009151232A2 - 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치 - Google Patents

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

Info

Publication number
WO2009151232A2
WO2009151232A2 PCT/KR2009/002942 KR2009002942W WO2009151232A2 WO 2009151232 A2 WO2009151232 A2 WO 2009151232A2 KR 2009002942 W KR2009002942 W KR 2009002942W WO 2009151232 A2 WO2009151232 A2 WO 2009151232A2
Authority
WO
WIPO (PCT)
Prior art keywords
data processing
processing unit
group
mode
encoding
Prior art date
Application number
PCT/KR2009/002942
Other languages
English (en)
French (fr)
Other versions
WO2009151232A3 (ko
Inventor
천지엔러
이재출
이상래
천민수
이교혁
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to JP2011513412A priority Critical patent/JP5670885B2/ja
Priority to CN200980131662.XA priority patent/CN102124739B/zh
Priority to US12/997,747 priority patent/US20110090967A1/en
Priority to EP09762619.6A priority patent/EP2293567A4/en
Priority to AU2009258401A priority patent/AU2009258401A1/en
Publication of WO2009151232A2 publication Critical patent/WO2009151232A2/ko
Publication of WO2009151232A3 publication Critical patent/WO2009151232A3/ko
Priority to US14/604,286 priority patent/US9924174B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present invention relates to encoding and decoding of video.
  • the size of the macroblock is fixed to 16 ⁇ 16.
  • H.264 / AVC may be subdivided into 4 ⁇ 4 blocks of 8 ⁇ 8 or less for more accurate estimation or prediction.
  • FIG. 1 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 3 illustrates the concept of a group which is a data processing unit proposed in the present invention.
  • FIG. 4 shows an example of a subgroup which is a data processing unit proposed in the present invention.
  • FIG. 5 shows another example of a subgroup which is a data processing unit proposed in the present invention.
  • FIG. 6 illustrates syntax of an encoding mode according to an embodiment of the present invention.
  • FIG. 8 is a flowchart of an encoding method of determining an encoding mode of a group according to an embodiment of the present invention.
  • FIG. 9 is a flowchart of a method of reading and decoding an encoding mode according to an embodiment of the present invention.
  • FIG. 10 illustrates a hierarchical structure of data processing units possible in the present invention.
  • FIG. 11 illustrates syntax of a super macroblock and an encoding mode in units of macroblocks according to another embodiment of the present invention.
  • FIG. 12 illustrates a motion vector estimation method when the encoding mode is the skip mode according to another embodiment of the present invention.
  • FIG. 13 shows a decoding procedure for each data processing unit according to another embodiment of the present invention.
  • CBP 15 compares an existing coding scheme with a syntax coding scheme associated with a coded block pattern (CBP) and a coefficient block size according to another embodiment of the present invention.
  • CBP coded block pattern
  • FIG 17 shows an encoding mode of a B frame according to another embodiment of the present invention.
  • FIG. 18 is a flowchart of an image encoding method according to an embodiment of the present invention.
  • 19 is a flowchart of an image decoding method according to an embodiment of the present invention.
  • 20A, 20B, 20C, 20D, 20E, and 20F illustrate block diagrams of modified embodiments of the image encoding apparatus 100, considering data processing units dynamically determined according to one embodiment, respectively.
  • 20G is a flowchart of an image encoding method considering a data processing unit dynamically determined according to an embodiment of the present invention.
  • 21 illustrates a scan method for each data processing unit for motion estimation considering a large data processing unit according to an embodiment of the present invention.
  • FIG. 22 illustrates availability of neighboring neighboring data processing units in motion estimation considering a large data processing unit according to an embodiment of the present invention.
  • 23A illustrates a simplified hierarchical data processing unit of a large data processing unit according to an embodiment of the present invention.
  • 23B illustrates syntax considering a large data processing unit according to an embodiment of the present invention.
  • 24A, 24B and 24C illustrate various configurations of skip groups according to an embodiment of the present invention.
  • 25A and 25B illustrate a motion vector derivation method in a large data processing unit and a motion vector derivation method of a lower data processing unit according to an embodiment of the present invention.
  • 26A and 26B illustrate various motion estimation schemes for chroma components of a large data processing unit according to an embodiment of the present invention.
  • FIG. 27 illustrates a scheme of deriving a size of a data processing unit for a chroma component of a large data processing unit according to an embodiment of the present invention.
  • FIG. 28 is a flowchart of a method of using a coding block pattern considering a large data processing unit according to an embodiment of the present invention.
  • 29A and 29B illustrate various methods of scanning a coding block pattern considering a large data processing unit according to an embodiment of the present invention.
  • FIGS. 30A, 30B, 30C, 30D, 30E, and 30F illustrate block diagrams of modified embodiments of the image decoding apparatus 200 considering data processing units dynamically determined according to one embodiment, respectively.
  • 31A, 31B, 31C, 31D, 31E, and 31F illustrate a flowchart of a modified embodiment of the image encoding method 1800, considering data processing units dynamically determined according to one embodiment, respectively.
  • 32A, 32B, 32C, 32D, 32E, and 32F illustrate a flowchart of a modified embodiment of the image decoding method 19100, taking into account dynamically determined data processing units according to an embodiment.
  • the present invention relates to image encoding and decoding based on dynamically determined data processing units.
  • an image encoding method includes a group including at least one basic block and at least one basic block and include a subgroup included in the group with respect to an image classified into basic blocks. Classifying the data; Determining an encoding mode of the predetermined group indicating a method of encoding data of a predetermined group by one data processing unit of the group, subgroup, and basic block to encode the predetermined group; And encoding the data of the predetermined group according to the determined encoding mode.
  • an image encoding method includes a group including at least one basic block and at least one basic block and include a subgroup included in the group with respect to an image classified into basic blocks. Classifying the data; Determining an encoding mode of the predetermined group indicating a method of encoding data of a predetermined group by one data processing unit of the group, subgroup, and basic block to encode the predetermined group; And encoding the data of the predetermined group according to the determined encoding mode.
  • the image encoding method may further include encoding a flag indicating an encoding mode of the predetermined group.
  • the data classification step of the image encoding method may include determining a size of a group indicating a number of basic blocks included in the group and a shape of a group formed by the basic blocks included in the group. can do.
  • the data classification step of the image encoding method may include determining a subgroup of the group based on a level indicating the number of subgroups included in the group and a scanning order of the basic blocks. Can be.
  • the encoding mode of the image encoding method is a data processing unit in which the data of the group is encoded, and is a data processing unit indicating one of the group unit, the subgroup unit, and the basic block unit.
  • the determining of the encoding mode of the image encoding method may further include performing encoding on the data processing unit according to at least one estimation mode for each of the predetermined data processing units of the group; Calculating an error rate by encoding for each combination of the predetermined data processing unit and the estimation mode; And determining an estimation mode of the predetermined data processing unit corresponding to the minimum error rate among the calculated error rates.
  • the encoding error rates considering the estimation mode may be compared for each data processing unit in the group, and the combination of the data processing unit and the estimation mode corresponding to the minimum error rate may be obtained.
  • the method may include determining an encoding mode of.
  • the image encoding method may further include rearranging the coefficients of which data of one of the group unit and the subgroup unit are frequency-converted into a plurality of basic block units.
  • the image encoding method may further include encoding a flag indicating whether the frequency-converted coefficients are rearranged in units of basic blocks.
  • the image encoding method may further include encoding a flag indicating a data processing unit for frequency conversion of data in the group.
  • the group unit size, shape, and maximum level may be determined for each data unit of a picture, a sequence, and a group of the image data.
  • an image decoding method includes encoding one data processing unit among a basic block, a group including at least one basic block, and at least one basic block and a subgroup included in the group Receiving and parsing the collected data; Reading from the parsed data the encoding mode of the predetermined group indicating a manner in which a predetermined group of data is encoded by one data processing unit of the group, subgroup and basic block; And decoding the predetermined group of data based on the read encoding mode.
  • the encoding mode reading operation of the image decoding method may include: a form of a group configured as a data processing unit for decoding from the parsed data, a size of a group indicating a number of basic blocks included in the group, and Reading maximum level information about the maximum number of subgroups in the group; And determining a group, which is a data processing unit for classifying and decoding the parsed image data, by using the information about the type of the group and the size of the group.
  • the group unit may be set for each data unit of a picture, a sequence, and a group of the image data.
  • the subgroup may be set based on a level indicating the number of subgroups included in the group and a scanning order of the basic blocks.
  • the encoding mode reading step of the image decoding method may include: extracting an encoding mode flag indicating an encoding mode of the predetermined group from data for the predetermined group; And reading the encoding mode of the predetermined group by using the encoding mode flag.
  • the encoding mode of the group may include a data processing unit indicating whether the data processing unit in which the data of the group is encoded is one of the group, the subgroup, and the basic block. Information about; Information about a size of a data processing unit indicating the number of basic blocks included in the data processing unit; And information about an estimation mode indicating a method of determining reference information corresponding to the data processing unit for motion estimation of the data processing unit.
  • the group decoding step of the image decoding method may include: determining a data processing unit to perform decoding based on the information about the type of the data processing unit and the size information on the encoding mode; Determining an estimation mode of the data processing unit based on the information about the estimation mode of the encoding mode; And decoding the image data for the group based on the determined data processing unit and the estimation mode.
  • the encoding mode is encoding according to the estimation modes by performing encoding on at least one data processing unit according to at least one estimation mode among the data processing units in the group among the encoding for the group.
  • An error rate is calculated, and the combination of the predetermined data processing unit and the estimation mode corresponding to the minimum error rate among the encoding error rates of the estimation modes for each data processing unit is determined, and the encoding is performed for each combination of the data processing unit and the estimation mode in the group.
  • a combination of a data processing unit having a minimum error rate and an estimation mode may be selected and set to the coding mode of the group.
  • the decoding processing order of the basic block unit may be a zigzag scan method.
  • the image decoding method may further include rearranging the frequency-converted coefficients of the plurality of basic blocks into one of a group unit and a subgroup unit.
  • the image decoding method may further include reading, from the parsed data, a flag indicating whether data of one of the group unit and the subgroup unit has been rearranged in units of a basic block in which frequency-converted coefficients are rearranged. It may include.
  • the image decoding method may further include reading a flag indicating a data processing unit for frequency conversion of the data in the group from the parsed data.
  • An image encoding apparatus includes a group including at least one basic block and at least one basic block with respect to an image classified as a basic block, and the image as a subgroup included in the group.
  • a data classifying unit classifying data; In order to encode the group, the encoding mode of the group indicating the encoding method of the data of the group by the at least one data processing unit among the group unit, the subgroup unit and the basic block unit and the at least one data processing unit is determined.
  • An apparatus for decoding an image encodes one data processing unit among a basic block, a group including at least one basic block, and at least one basic block and a subgroup included in the group.
  • Receiving unit for receiving and parsing the data;
  • a group encoding mode reading unit which reads from the parsed data an encoding mode of the predetermined group indicating a manner in which a predetermined group of data is encoded by one data processing unit among the group, subgroup, and basic block;
  • a group decoder which decodes the predetermined group of data based on the read encoding mode.
  • the image is encoded in consideration of the data processing unit and the motion estimation mode corresponding to the encoding mode.
  • a method of encoding an image by a dynamically determined data processing unit includes frequency transform and quantization for encoding the input image based on a large data processing unit corresponding to the determined encoding mode of the group. Performing; Performing motion estimation for encoding the input image based on the large data processing unit; Performing in-loop filtering for encoding the input image based on the large data processing unit; And performing entropy encoding for encoding the input image based on the large data processing unit.
  • the image is decoded in consideration of the data processing unit and the motion estimation mode corresponding to the encoding mode.
  • a method of decoding an image by a data processing unit that is dynamically determined includes entropy decoding for decoding the data of the group based on a large data processing unit corresponding to the coding mode of the read group. Performing; Performing inverse quantization and inverse frequency transformation for decoding the data of the group based on the large data processing unit; Performing motion estimation for decoding the data of the group based on the large data processing unit; And performing in-loop filtering for decoding the data of the group based on the large data processing unit.
  • an apparatus for encoding an image by a dynamically determined data processing unit includes: frequency transform and quantization for encoding the input image based on a large data processing unit corresponding to the determined encoding mode of the group A frequency conversion and quantization unit performing a; A motion estimator configured to perform motion estimation for encoding the input image based on the large data processing unit; An in-loop filtering unit to perform in-loop filtering for encoding the input image based on the large data processing unit; And an entropy encoding unit configured to perform entropy encoding for encoding the input image based on the large data processing unit.
  • An apparatus for decoding an image by a data processing unit dynamically determined may further include entropy decoding for decoding the data of the group based on a large data processing unit corresponding to the read mode of the group.
  • An entropy decoding unit performing a;
  • An inverse quantization and inverse frequency transform unit configured to perform inverse quantization and inverse frequency transformation for decoding the data of the group based on the large data processing unit;
  • a motion estimation unit for performing motion estimation for decoding the data of the group based on the large data processing unit;
  • an in-loop filtering unit that performs in-loop filtering for decoding the data of the group based on the large data processing unit.
  • the size of the data processing unit for the frequency conversion may be determined based on the size of the data processing unit for the motion estimation.
  • a scan order for each data processing unit for sequential motion estimation may be determined based on the large data processing unit, and current data processing Neighbor availability may be determined whether a neighboring data processing unit located at the upper right of the unit is available as a reference block.
  • the motion estimation based on the large data processing unit may use a data processing unit having a square block form among the large data processing units.
  • the size of the data processing unit for frequency conversion based on the data processing unit in the square block form may be limited to a predetermined size smaller than or equal to the data processing unit in the square block form.
  • the motion estimation based on the large data processing unit may include an intra estimation of the large data processing unit, and may further include an intra estimation of the large data processing unit and performed based on an intra mode using a complex plane form. Intra estimation may be included.
  • a data processing unit capable of motion estimation in an intra mode may be preset based on the large data processing unit.
  • the motion estimation based on the large data processing unit may include a motion estimation performed in an estimation mode in which an intra mode and an inter mode based on the large data processing unit are mixed.
  • a motion vector for motion estimation may be determined based on the large data processing unit.
  • a motion vector estimator for an inter mode may be derived corresponding to a motion vector determined based on the large data processing unit.
  • the skip mode of the extended form may be determined based on the large data processing unit.
  • a skip group including data processing units of at least one skip mode adjacent to each other may be determined, and motion estimation may be simultaneously performed in the skip mode for all data processing units included in the same skip group.
  • the frequency transform based on the large data processing unit may include a large block-based integer discrete cosine transform based on the large data processing unit.
  • frequency conversion may be performed on a chroma component of a current data processing unit to a predetermined size determined based on the large data processing unit.
  • the modified frequency conversion may be performed to reduce the amount of computational load caused by the frequency conversion based on the large data processing unit.
  • Entropy encoding based on the large data processing unit may use a hierarchical coded block pattern according to the size of each data processing unit determined based on the large data processing unit.
  • entropy encoding based on the large data processing unit may include classifying the current data processing unit based on the probability of non-zero quantized coefficients among the quantized coefficients of the current data processing unit.
  • the coding block pattern may be scanned. Based on the classified region-specific coding block patterns of the current data processing unit, a strip of coefficients only of regions including non-zero coefficients may be scanned.
  • the display indicating the strip of coefficients of the region containing the non-zero coefficient may be encoded to be included in the bitstream, and the display indicating the coefficient strip of the region containing non-zero coefficients in the decoding process of the bitstream. You can read it.
  • the entropy encoding or entropy decoding may include a context-based adaptive binary arithmetic code scheme (CABAC) or a context-based adaptive variable length code scheme based on the large data processing unit.
  • CABAC Context-based Adaptive Variable Length Code
  • Entropy encoding or entropy decoding based on the large data processing unit may use a coding block pattern determined in a single context for an intra mode or a chroma component based on the large data processing unit.
  • In-loop filtering based on the large data processing unit may include whether to perform deblocking filtering on a lower data processing unit inside a current data processing unit based on the large data processing unit.
  • deblocking filtering on a boundary of a chroma component of a lower data processing unit within the current data processing unit may be performed during deblocking filtering on the chroma component of the current data processing unit. May be excluded.
  • the in-loop filtering may be performed by deblocking filtering of the current data processing unit in which motion estimation is performed in a mixture of inter mode and intra mode. Deblocking filtering on the boundary may be excluded.
  • the strength of the deblocking filtering for each boundary may be individually set for the boundary of at least one lower data processing unit inside the current data processing unit.
  • the in-loop filtering may include additional filtering for reducing a ringing effect on a current data processing unit having a large size based on the large data processing unit.
  • the present invention includes a computer readable recording medium having recorded thereon a program for implementing an image encoding method by a data processing unit which is dynamically determined according to an embodiment of the present invention.
  • the present invention also includes a computer readable recording medium having recorded thereon a program for implementing an image decoding method by a dynamically determined data processing unit according to an embodiment of the present invention.
  • FIG. 1 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
  • the image encoding apparatus 100 includes a data classifier 110, a group encoding mode determiner 120, and a group encoder 130.
  • the data classifying unit 100 When the input image data is classified in basic block units, the data classifying unit 100 includes a group including at least one basic block and the at least one basic block based on the basic block. The data is classified into subgroups and basic blocks to be included, and the classified data is output to the group encoding mode determiner 120 and the group encoder 130.
  • Basic blocks, groups, and subgroups are types of data processing units for encoding a video data.
  • the group may have an attribute of 'size' indicating the number of basic blocks and 'type' formed by the basic blocks included in the group.
  • the subgroup is determined according to the 'level' representing the number of subgroups in the group and the 'scan order' between the basic blocks in the group.
  • An attribute of a group including at least one of a size, a shape, a maximum level, and a scan order may be determined for each group, picture, and sequence.
  • the group encoding mode determiner 120 is a data processing unit used to encode a group, that is, information about a method of encoding data in a group by at least one data processing unit among a group unit, a subgroup unit, and a basic block unit. Determine the encoding mode of the group including.
  • An embodiment of the group encoding mode determiner 120 determines an error rate generated by encoding data of each group for each data processing unit among groups, subgroups, and basic blocks classified by the data classifier 110.
  • the encoding mode of the group may be determined based on an error rate of each group of data processing units. Therefore, the image data is encoded by the data processing unit dynamically determined based on the error rate for each data processing unit of the group.
  • the encoding mode determined by the group encoding mode determiner 120 includes: information on a type of a data processing unit indicating whether to encode data of a group in a group unit, a subgroup unit, or a basic block unit; Information on a size of a data processing unit indicating the number of basic blocks included in the data processing unit; Information about an estimation mode indicating a manner of determining reference information required for motion estimation by a data processing unit; At least one of the.
  • the group encoding mode determiner 120 calculates an error rate when the data of the group is encoded in the basic block unit for each data processing unit, an error rate when the data is encoded in the subgroup unit, and an error rate when the data is encoded in the group unit.
  • the data processing unit having the smallest error rate may be determined as the coding processing unit of the corresponding group. That is, the encoding and the error rate calculating process are performed for each group, subgroup, and basic block unit.
  • the embodiment of the group encoding mode determiner 120 may compare the error rates in the case of encoding in various estimation modes for each data processing unit, and determine an estimation mode having the smallest error rate for each data processing unit. .
  • the group encoding mode determiner 120 encodes data of a group in a skip mode, an inter mode, and an intra mode as an estimation mode for each data processing unit, calculates and compares encoding error rates for each estimation mode, and generates the smallest error rate.
  • An estimation mode for generating a may be determined as a representative estimation mode of the data processing unit. That is, the comparison of the error rate by performing encoding for each estimation mode and the corresponding estimation mode determination process are performed for each group unit, subgroup unit, and basic block unit.
  • the group encoding mode determiner 120 may compare the error rate of the representative estimation mode for each data processing unit and determine a data processing unit having the smallest error rate as the representative data processing unit for the data of the corresponding group. Based on the combination of the representative data processing unit and the representative estimation mode causing the smallest error rate, the information about the type, size, and representative estimation mode of the representative data processing unit of the group is determined as the encoding mode of the group.
  • the group encoder 130 encodes and outputs image data input from the data classifier 110 according to a group encoding mode determined by the group encoding mode determiner 120.
  • the image encoding apparatus 100 may further encode a group encoding mode flag that encodes a flag indicating a coding mode for each group in addition to the image data.
  • the image encoding apparatus 100 may encode data in one picture through a zigzag scan method instead of a raster scan method between basic blocks.
  • the image encoding apparatus 100 may rearrange coefficients in which one data among a group unit and a subgroup unit are frequency-converted into a plurality of basic block units.
  • the image encoding apparatus 100 may frequency convert image data in units of basic blocks or subgroups. In this case, the data processing unit for frequency conversion may not match the data processing unit for motion estimation.
  • the image encoding apparatus 100 may encode a flag indicating whether data of a predetermined data processing unit is rearranged according to a variable data processing unit whose frequency is transformed.
  • FIG. 2 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • the image decoding apparatus 200 includes a receiver 210, a group encoding mode reader 220, and a group decoder 230.
  • the concepts of the basic block, the group, the subgroup, and the encoding mode are the same as described above in the description of the image encoding apparatus 100 according to an embodiment.
  • the receiving unit 210 receives and parses data encoded in one data processing unit among a basic block, a group, and a subgroup, extracts information to be decoded, and transmits the decoded information to the group encoding mode reading unit 220 and the group decoding unit 230.
  • the group encoding mode reading unit 220 reads the encoding mode of the group from the data parsed by the receiving unit 210 and outputs the group encoding mode to the group decoding unit 230.
  • the group encoding mode reader 220 may read information about the shape, size, and maximum level of the group from the parsed data, and determine a predetermined group by using the read shape and size information of the group.
  • the attribute of a group may be set for each data unit such as a group, a picture, a sequence, and the like.
  • the group encoding mode reader 220 of another embodiment may extract a group encoding mode flag indicating a encoding mode of a predetermined group from the parsed data, and read the encoding mode of the predetermined group using the group encoding mode flag.
  • the read group coding mode includes information on a type, a size, an estimation mode, and the like, of a data processing unit to be used when decoding data of each group.
  • the group decoder 230 decodes the group data received by the receiver 210 by using the group coding mode input from the group coding mode reader 220.
  • the group decoder 230 determines an intra-group data processing unit for decoding the data of the group based on the information about the type and size of the data processing unit in the encoding mode, and based on the information about the estimation mode in the encoding mode.
  • the estimation mode of the data processing unit may be determined.
  • the group decoder 230 may decode the data of the group based on the data processing unit and the estimation mode determined from the encoding mode.
  • the group decoder 230 may read and decode a coding mode for each group by scanning data of one picture according to a zigzag scan method of a basic block unit.
  • the image decoding apparatus 200 may rearrange the frequency-converted coefficients of the plurality of basic blocks into one of a group unit and a subgroup unit.
  • the image decoding apparatus 200 may also inversely transform data classified in units of basic blocks or subgroups.
  • the image decoding apparatus 200 may further extract a flag indicating whether coefficients obtained by frequency-transforming one of the group unit and the subgroup unit are rearranged in the basic block unit in the encoding process from the parsed data. Based on the coefficient rearrangement flag, the coefficients may be rearranged into one of a group unit and a subgroup unit in the decoding process.
  • FIG. 3 illustrates the concept of a group which is a data processing unit proposed in the present invention.
  • a conventional macroblock unit may be a relatively small unit to store useful information, compared to a large amount of data. For example, at high definition (HD) or higher resolution and higher resolution, bits that are preferably used for actual texture coding due to small macroblocks are macroblocks such as macroblock mode and motion vectors. By being assigned to the additional information that is a symbol, a rate-distortion cost may be lowered.
  • HD high definition
  • motion vectors By being assigned to the additional information that is a symbol, a rate-distortion cost may be lowered.
  • the present invention introduces a group unit including at least one basic block as a data processing unit.
  • the basic block 300 is a unit including at least one data.
  • it may be an 8 ⁇ 8, 16 ⁇ 16 macroblock, etc. of MPEG or H.264.
  • a group is a unit including at least one basic block, and the size and size of the group indicating the number of basic blocks may be arbitrarily determined.
  • group 310 of size 16 and square shape, groups 320 and 325 of size 8 and rectangular shape, group 330 of size 13 and diamond shape may be present.
  • the shape and size of such a group may be set constantly in units of pictures and picture sequences of the image data, or may be set individually for every group.
  • FIG. 4 shows an example of a subgroup which is a data processing unit proposed in the present invention.
  • the subgroup in the group includes at least one basic block in the group, and the first determining method of determining the subgroup is a method determined according to the level and the scanning order.
  • 4 shows a group of square shape, group size 16, maximum level 4.
  • the level 4 may be classified into groups 410, 420, and 450 which are level 4, groups 430 and 460 which are level 2, and groups 440 which are level 1, according to the number of subgroups in the group.
  • the scanning order of the basic block in the group it may be classified into a group 410 of zigzag scan order, groups 420, 430, and 440 of vertical scan order, and groups 450 and 460 of raster scan order.
  • the subgroup is set in the order of level 4 and the zigzag scan for the size 16 and the square-shaped group 410, four subgroups of the size 4 and square may be formed.
  • four subgroups 422, 424, 426, and 428 having a size of 4 and a rectangular shape may be formed.
  • four subgroups 452, 454, 456, and 458 having a size of 4 and a rectangular shape may be formed.
  • two subgroups 432 and 434 of the size 8 and rectangular shape may be formed.
  • two subgroups 462 and 464 having a size of 8 and a rectangular shape may be formed.
  • one subgroup 445 of the size 16 and square-shaped may be formed.
  • a predetermined scan order may be set for each level.
  • the data processing unit for frequency conversion may be a unit equal to or less than the size of the group or subgroup defined above.
  • FIG. 5 shows another example of a subgroup which is a data processing unit proposed in the present invention.
  • the second determination method of determining the subgroup is a method of dividing the sequence of the basic blocks listed according to the scanning order of the basic blocks in the group according to the levels.
  • 5 illustrates a second determination method of a subgroup by taking groups 500 and 550 having a square shape and a group size of 16 as an example.
  • the group 500 having a square shape and a group size of 16 has basic blocks 1, 2, 5, 9, 6, 3, 4, 7, 10, 13, 14, 11, 8, 12, 15, and 16 according to the zigzag scan order.
  • the sequence 510 of the basic blocks may be rearranged in the order of.
  • the level of the group 500 is 3, the basic block sequence 510 includes the first subgroup including basic blocks 1, 2, 5, 9, and 6, and includes basic blocks 3, 4, 7, 10, and 13 It may be classified into a third subgroup including a second subgroup, basic blocks 14, 11, 8, 12, 15, and 16. Accordingly, when the group 500 is classified into a subgroup of level 3 according to the zigzag scan order, the group 520 and the r subgroup may be classified together.
  • the group 550 having a square shape and a group size of 16 has the basic blocks 4, 8, 3, 2, 7, 12, 16, 11, 6, 1, 5, 10, 15,
  • the sequences 560 of the basic blocks may be rearranged in the order of 14, 9, and 13.
  • the level of the group 550 is 4, the basic block sequence 560 includes a first subgroup including basic blocks 4, 8, 3, and 2, and a second subgroup including basic blocks 7, 12, 16, and 11. , May be classified into a third subgroup including basic blocks 6, 1, 5, and 10, and a fourth subgroup including basic blocks 15, 14, 9, and 13. Accordingly, when the group 550 is classified into a level 4 subgroup according to the reverse zigzag scan order, the subgroup may be classified like the group 570.
  • FIG. 6 illustrates syntax of an encoding mode according to an embodiment of the present invention.
  • a flowchart of a process of reading a group encoding mode according to a syntax indicating a encoding mode of a predetermined group is shown.
  • the group encoding mode reader 220 checks a flag (Group_SKIP) indicating whether data of a predetermined group is encoded in a skip mode of a group unit. If the value of the 'Group_SKIP' flag is 1, decoding is performed in a skip mode of a group unit on the data of the corresponding group (step 620). If the value of the 'Group_SKIP' flag is 0, the flow proceeds to step 630.
  • a flag Group_SKIP
  • the group encoding mode reader 220 determines whether a subgroup according to a level is set. If so, the group encoding mode reading unit 220 checks the decoding method of each subgroup (step 640). If the subgroup is not set, the group encoding mode reading unit 220 checks the decoding scheme in units of basic blocks (step 650).
  • the level should be greater than 1 and less than the group size. If the level is 1, it is the same data processing unit as the group.
  • the group encoding mode reading unit 220 checks a flag Subgroup_SKIP indicating whether data of the corresponding group is encoded in a skip mode of a subgroup (step 640). If the value of the 'Subgroup_SKIP' flag is 1, the group encoder 230 performs decoding in a skip mode of a subgroup unit (step 660). If the value of the 'Subgroup_SKIP' flag is 0, the group encoder 230 decodes the subgroups in the estimation mode except the skip mode (step 670).
  • the 'Subgroup_SKIP' flag value should not be set to 1 for all subgroups.
  • the general mode in subgroup decoding is determined according to the level and the scanning order.
  • the level must be less than or equal to the maximum level.
  • the group encoding mode reading unit 220 checks a flag Unit_SKIP indicating whether data of the corresponding group is encoded in a skip mode of a basic block unit (step 650). If the value of the 'Unit_SKIP' flag is 1, the group encoder 230 performs decoding in the skip mode of the basic block unit (step 680). If the value of the 'Unit_SKIP' flag is 0, the group encoder 230 decodes the basic block unit in the estimation mode except the skip mode (step 690).
  • the 'Unit_SKIP' flag value should not be set to 1 for all basic blocks.
  • the coding scheme for each data processing unit in the group may be arbitrarily determined in some cases.
  • an example of an encoding method for each data processing unit of the group 710 having a square shape, group size 4, and maximum level 2 is described.
  • the subgroup 720 of the vertical scan order and the subgroup 730 of the raster scan order are set according to the scanning order, and the level is 1 day.
  • the subgroup 740 is set up.
  • a 16 ⁇ 16 skip mode may be adopted as a coding method for the basic block 700.
  • the general mode (Unit_Mode) of the encoding method of the basic block 700 is 16x16, 8x8, 4x4 intra mode and 16x16, 16x8, 8x16, 8x8, 4x8.
  • One of 8x4 and 4x4 inter modes may be adopted.
  • one of 32 ⁇ 32 inter mode and 32 ⁇ 32 intra mode may be adopted as a general mode (Subgroup_Mode) of the coding scheme for the subgroup 740 of the level 1.
  • a general mode (Subgroup_Mode) of the coding schemes for the subgroups 720 and 730 of the level 2 one of 16 ⁇ 32 inter mode and 32 ⁇ 16 inter mode may be adopted.
  • a 32 ⁇ 32 skip mode may be set as a skip mode (Group_SKIP).
  • FIG. 8 is a flowchart of an encoding method of determining an encoding mode of a group according to an embodiment of the present invention.
  • the flowchart 800 is a flowchart of a process followed by the image encoding apparatus 100, in particular, the image encoding mode determiner 120, to determine a coding mode of a predetermined group.
  • a predetermined group of data to be encoded is determined (step 810).
  • the shape, size, and maximum level information of the group may be set in picture, sequence, or group units.
  • encoding is performed in a skip mode of a group unit (step 820), and a RD cost is calculated as an error rate by encoding of the skip mode of a group unit (step 830). For example, the RD cost according to the encoding of the 32x32 skip mode for the 32x32 group is calculated.
  • Encoding of the basic block unit is performed (step 840). Encoding in basic block units may be performed in a skip mode, an intra mode, and an inter mode, respectively. Since encoding in units of basic blocks must be performed for each basic block in the group, step 840 is repeated as many as the number of basic blocks in the group corresponding to the group size.
  • the RD cost due to the encoding of the basic block unit is calculated (step 850). For example, 16 ⁇ 16 skip mode, 16 ⁇ 16/8 ⁇ 8/4 ⁇ 4 intra mode, 16 ⁇ 16/16 ⁇ 8/8 ⁇ 16/8 ⁇ 8/4 ⁇ 8/8 ⁇ 4/4 ⁇ The smallest basic block unit of the RD cost calculated as a result of encoding each basic block unit such as 4 inter mode is searched. That is, the combination of the basic block size and the estimation mode corresponding to the minimum RD cost in the basic block unit is selected.
  • Encoding of subgroup units is performed (step 860). To set the subgroup, the level is checked (step 862), the scanning order is checked (step 864), and encoding is performed for each subgroup of the corresponding level (step 860). Encoding in subgroup units may be performed in an intra mode and an inter mode, respectively. Since the encoding in the subgroup unit should be performed for each subgroup in the group, steps 862, 864, and 860 are repeated by the number of possible levels according to the level.
  • the RD cost due to encoding in subgroup units is calculated (step 870). For each subgroup, an optimal estimation mode with the smallest RD cost among intra-mode and inter-mode encoding is determined, and a combination of the subgroup and the estimation mode with the smallest RD cost among all subgroups is determined. For example, the smallest subgroup unit among the RD costs calculated as a result of encoding by subblock units such as 32 ⁇ 32 inter mode / 32 ⁇ 32 intra mode or 16 ⁇ 32/32 ⁇ 16 inter mode according to the level is searched. do. That is, a combination of subgroup size and estimation mode is selected corresponding to the minimum RD cost in subgroup units.
  • the image encoding mode determiner 120 compares the RD cost of the group unit calculated in step 830, the RD cost of the basic block unit combination selected in step 850, and the RD cost of the subgroup unit combination selected in step 870. Select a cost (step 880).
  • the image encoding mode determiner 120 determines an encoding mode of the corresponding group based on the combination of the size and the estimation mode of the data processing unit or the data processing unit corresponding to the lowest RD cost selected in step 880 (step 890).
  • the coding mode of the group includes information related to the type of the data processing unit and the size of the data processing unit (32 ⁇ 32, 32 ⁇ 16, 16 ⁇ 32) whether the unit is a group unit, a subgroup unit, or a basic block unit. , 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16, 8 ⁇ 8, 4 ⁇ 8, 8 ⁇ 4, 4 ⁇ 4), and information about an estimation mode (skip, intra, inter mode, etc.).
  • FIG. 9 is a flowchart of a method of reading and decoding an encoding mode according to an embodiment of the present invention.
  • the flowchart 900 shows a flowchart of a process of the image decoding apparatus 200, in particular, the group encoding mode reading unit 220, reading a group encoding mode for decoding a predetermined group.
  • the group encoding mode reading unit 220 obtains information on the shape, size, and maximum level of the group from the data to be decoded, and determines a predetermined group among the data to be decoded (step 910).
  • Information about the shape, size, and maximum level of the group may be set in picture, sequence, or group units.
  • the group encoding mode reading unit 220 checks a flag Group_Skip indicating whether a predetermined group is encoded in a skip mode of a group unit (step 920). If it is determined that the skip mode is in the unit of the group, decoding is performed in the skip mode for the corresponding group (step 930). If it is determined that the mode is not the skip mode of the group unit, the process moves to step 940.
  • the group encoding mode reading unit 220 checks the level of the group. If the subgroup is not set based on the level of the check result, the group encoding mode reading unit 220 checks the decoding method in basic block units (step 990). When the level is confirmed, the group encoding mode reading unit 220 checks the level of the subgroup (step 960) and determines the scanning order (step 970). The group encoding mode reading unit 220 performs decoding on the subgroup determined according to the level and the scanning order (step 950). Since the decoding is performed for each subgroup in the group, the decoding process (steps 960, 970, 950) of the subgroup is repeated by the number of levels in the group.
  • the group coding mode reading unit 220 checks a flag Unit_mode indicating an estimation mode in basic block units (step 990). The group encoding mode reading unit 220 performs decoding on the corresponding basic block according to the estimation mode determined according to the verification result (step 980). If the value of the 'Subgroup_SKIP' flag is 0, the group encoding mode reading unit 220 performs decoding on the corresponding subgroup in the estimation mode excluding the skip mode in step 670. Since decoding is performed for each basic block in the group, the decoding process (steps 990 and 980) of the basic block is repeated as much as the group size.
  • an example of the inter-mode motion vector estimation method may determine the median value of the motion vectors of all the peripheral data processing units of the current data processing unit as the motion vector of the current data processing unit.
  • the motion vector estimation method of the inter mode may be determined differently in consideration of the size of a group, a subgroup, a basic block, and the like.
  • the size, type, etc. of the neighboring blocks to be referred to may be set differently according to the size of the data processing unit.
  • one example of an intra mode motion estimation scheme is a weighted average of five adjacent pixel values, with reference to five adjacent pixels located on any angle or direction of the current data processing unit. average) may be estimated as the current pixel value.
  • an example of the intra mode motion estimation method may rearrange a predetermined group of data for each data processing unit for frequency conversion processing and use the predetermined group as a reference pixel.
  • the x-axis change amount and the y-axis change amount of the motion vector may be expressed using gradation.
  • a current block may be estimated using a weighted average of two estimated signals such as a motion vector.
  • the weighted average may be obtained by giving a greater weight to the nearest reference pixel for each pixel.
  • the flags indicating the skip mode in group units may be collected in picture units and processed at once.
  • a flag indicating a skip mode of group B in the picture only may be processed at a time.
  • One embodiment of the present invention proposes a method of deriving information of a current data processing unit as a method compared with a skip mode. For example, both motion vector and texture information can be derived without being signaled.
  • motion vector information may be signaled and texture information may be derived, or texture information may be signaled and motion vector information may be derived.
  • An estimation mode in which only DC information is signaled is possible.
  • Various motion information derivation schemes may be defined for each quantization parameter (Qp).
  • the data processing unit of the skip mode may form a hierarchical structure. For example, if the 16x16 block in the 32x32 block of the skip mode is also the skip mode, a flag indicating the hierarchical structure of the 32x32 skip flag and the 16x16 skip flag may be set. In addition, a group that is a set of basic blocks in a skip mode may be formed.
  • video compression performance may be improved by extending an existing macroblock size to a more efficient size to cope with an increasing resolution of video content.
  • a hierarchical concept of groups, subgroups, and basic blocks proposed by the present invention will be described as a super macroblock of 32 ⁇ 32 data.
  • Another embodiment of the present invention implemented as a hierarchical structure in units of 16x16 macroblocks (hereinafter also referred to as 'MB'), and units of 8x8 macroblocks, also denoted as 'SMB' or 'S-MB' Examples are detailed.
  • FIG. 10 illustrates a hierarchical structure of data processing units possible in the present invention.
  • the hierarchical structure 1000 of the data processing unit may have a three-level structure.
  • the first layer 1010 is the largest size 32 ⁇ 32 super macroblock, for example, one 32 ⁇ 32 skip mode, one 32 ⁇ 32 inter mode, and two 32 ⁇ 16 inter modes. If included, there may be a case in which four 16x16 inter modes are included when two 16x32 inter modes are included. Frequency conversion in units of 16 ⁇ 16 blocks, 8 ⁇ 8 blocks, and 4 ⁇ 4 blocks may be performed on the first layer 1010.
  • the second layer 1020 corresponds to a differentiated 16 ⁇ 16 macroblock among the super macroblocks of the first layer 1010.
  • 16 ⁇ 16 macroblocks of the second layer 1020 may be divided into two 16s in one 16 ⁇ 16 intra mode, one 16 ⁇ 16 skip mode, and one 16 ⁇ 16 inter mode.
  • the x8 inter mode in case of including two 8x16 inter modes, there may be a case in which four 8x8 inter modes are included.
  • the frequency conversion in units of 8 ⁇ 8 blocks and 4 ⁇ 4 blocks may be performed on the second layer 1020.
  • the third layer 1030 corresponds to an 8 ⁇ 8 block divided among the macroblocks of the second layer 1020.
  • the 8 ⁇ 8 macroblock of the third layer 1030 includes one 8 ⁇ 8 skip mode, one 8 ⁇ 8 inter mode, and two 8 ⁇ 4 inter modes.
  • frequency conversion in units of 4 ⁇ 4 blocks may be performed.
  • the decoding and decoding can be performed in the 32 ⁇ 32 super macroblock mode for a large amount of video data, but also the macroblock mode of 8 ⁇ 8 or less can be processed.
  • a processing such as a skip mode, an intra mode, a macroblock unit of 16 ⁇ 16 or less, and the like may be adopted in the same manner as the existing sub-decoding scheme. The cost and time required to build a system can be reduced.
  • FIG. 11 illustrates syntax of a super macroblock and an encoding mode in units of macroblocks according to another embodiment of the present invention.
  • the group encoding mode reading unit 220 first sets a flag SMB_SKIP indicating whether the encoding mode of the current group is encoded in a skip mode of a super macroblock unit. Confirm (step 1110). If the value of the 'SMB_SKIP' flag is 1, the group decoder 230 performs decoding by motion estimation in a skip mode of 32 ⁇ 32 super macroblock units (step 1120).
  • the group encoding mode reading unit 220 determines whether the current group is encoded in a super macroblock unit (step 1130). If the super macroblock unit encoding is performed in the estimation mode other than the skip mode by the determination of step 1130, the result of the determination is transferred to the group decoder 230, and the group decoder 230 sets 32 according to the 'SMB_mode' flag. The decoding is performed through motion estimation in units of super macroblocks of ⁇ 32 inter mode, 32 ⁇ 16 inter mode, 16 ⁇ 32 inter mode, and 16 ⁇ 16 inter mode (step 1140).
  • the motion estimation method based on the super macroblock unit of the 16 ⁇ 16 inter mode may be the same as the motion estimation method based on the macroblock unit of the existing 16 ⁇ 16 inter mode.
  • the group encoding mode reading unit 220 If it is determined by the determination in step 1130 that the current group is not encoded in the super macroblock unit inter mode, the group encoding mode reading unit 220 generates a flag MB_SKIP indicating whether the group is encoded in the skip mode in macroblock units. Confirm (step 1150).
  • step 1150 If encoding is performed in the skip mode in units of macroblocks according to the determination of step 1150, the result of the determination is transmitted to the group decoder 230, and the group decoder 230 transmits the 16 ⁇ 16 super macroblock according to the 'MB_SKIP' flag.
  • operation 1160 decoding is performed through motion estimation in a skip mode.
  • the group decoder 230 If the encoding is not performed in the skip mode in units of macroblocks by the determination of step 1150, the result of the determination is transmitted to the group decoder 230, and the group decoder 230 according to the 'MB_SKIP' flag performs 16 ⁇ 16 intra mode. Decoding is performed in units of macroblocks such as 16 ⁇ 16 inter mode, 16 ⁇ 8 inter mode, 8 ⁇ 16 inter mode, 8 ⁇ 8 inter mode, or sub macroblock units smaller than 8 ⁇ 8 macroblock (step 1170). .
  • FIG. 12 illustrates a motion vector estimation method when the encoding mode is the skip mode according to another embodiment of the present invention.
  • the video encoding apparatus 100 and the video decoding apparatus 200 may use a super macroblock unit based motion vector estimation method or a macroblock unit based motion vector estimation method to estimate a motion vector of a block in skip mode. Can be used.
  • the super macroblock of the 32 ⁇ 32 skip mode may estimate the motion vector using the motion vector of the neighboring block.
  • the neighboring block may be a super macroblock or a macroblock.
  • the motion vector of the super macroblock is estimated according to Equation 1 below.
  • MV Median (MVa, MVb, MVc)
  • Median ( ⁇ ) is a function that outputs the median value of the input. That is, the motion vector MV 1210 of the super macroblock has a median value among the motion vector MVa 1220 of the left block, the motion vector MVb 1225 of the upper block, and the motion vector MVc 1230 of the upper right block. Determined by the motion vector.
  • a macroblock of 16 ⁇ 16 skip mode may estimate a motion vector of a macroblock using the motion vector of a neighboring block.
  • the motion vector of the macroblock may be estimated according to Equations 2, 3, 4, and 5 below.
  • MV0 Median (MVa, MVb, MVc)
  • MV1 Median (MV0, MVc, MVd)
  • MV2 Median (MVe, MV0, MV1)
  • MV3 Median (MV0, MV1, MV2)
  • the macroblocks MV0 (1240), MV1 (1245), MV2 (1250), and MV3 (1255) in the 16 ⁇ 16 skip mode include the motion vector of the left block, the motion vector of the top block, and the motion of the upper right block. It is determined as a motion vector having a median value among the vectors. That is, according to Equation 2, MV0 1240 is determined as the median value of MVa 1260, MVb 1265, and MVc 1270, and according to Equation 3, MV1 1245 is MV0 1240 and MVc 1270.
  • the median of MVd 1275, MV2 (1250) is the median of MVe (1280), MV0 (1240), MV1 (1245) by Equation (4), and MV3 (1255) is MV2 ( 1250, MV0 1240, and MV1 1245.
  • the image encoding apparatus 100 may periodically insert a flag indicating a motion vector estimation method into a slice or a predetermined data unit whether the motion vector estimation is performed in the super macroblock unit or the motion vector estimation in the macroblock unit. have.
  • the image decoding apparatus 200 may extract a flag for a motion vector estimation method from a slice or a predetermined data unit and use the same to estimate a super macroblock or a motion vector of the macroblock.
  • FIG. 13 shows a decoding procedure for each data processing unit according to another embodiment of the present invention.
  • a zigzag scan order for each 16 ⁇ 16 macroblock instead of a raster scan method 1310 for scanning for each macroblock in a horizontal direction. (1320) is introduced.
  • the current macroblock is included in a block that is one of a set of 16 ⁇ 16 macroblocks (16 ⁇ 16 MB), such as block 1330, and in a 32 ⁇ 32 super macroblock (32 ⁇ 32 S-MB), such as block 1340.
  • Macroblocks macroblocks contained in 32x16 or 16x32 super macroblock pairs (32x16 / 16x32 S-MB), such as block 1350, 32x16 or 16x32 half-, such as block 1370 Macroblocks included in the super macroblocks 32 ⁇ 16/16 ⁇ 32 S-MB_half, 16 ⁇ 16 macroblocks (16 ⁇ 16 MB) such as block 1360, and the like.
  • the group encoding mode determiner 120 of the image encoding apparatus 100 is one 32 ⁇ 32 super macroblock and four 16 ⁇ 16 macroblocks for each 32 ⁇ 32 super macroblock.
  • the RD cost may be compared to determine that the encoding is performed in either 32 ⁇ 32 super macroblock mode or 16 ⁇ 16 macroblock mode.
  • the present invention can be easily implemented using the existing encoding or decoding system.
  • edge portion of the image that does not conform to the unit of the super macroblock may be easily processed using a 32 ⁇ 16 or 16 ⁇ 32 half-super macroblock such as block 1370 or a 16 ⁇ 16 macroblock such as block 1360. .
  • the frequency coefficients 1400 of the 16 ⁇ 16 block may be rearranged into the 8 ⁇ 8 macroblock 1450 according to the interleaved method in the image encoding and decoding processes.
  • the coefficients rearranged in 8 ⁇ 8 macroblock units may be entropy encoded or decoded in 8 ⁇ 8 macroblock units.
  • An example of a method of rearranging coefficients of a 16 ⁇ 16 block in an interleaved manner in units of 8 ⁇ 8 macroblocks is 8 ⁇ of upper left, upper right, lower left, and lower right according to the positions of the coefficients of the 16 ⁇ 16 block. Can be rearranged to 8 macroblocks.
  • the coefficients at the upper left of the coefficients of the 2x2 blocks among the 16x16 blocks are arranged as 8x8 macroblocks 1460 at the upper left. That is, the coefficient 1410 of the 16x16 block is arranged as the coefficient 1462 of the 8x8 macroblock 1460 in the upper left corner.
  • the coefficients at the upper right of the coefficients of the 2x2 blocks among the 16x16 blocks are arranged in the 8x8 macroblock 1470 at the upper right. That is, the coefficient 1430 of the 16x16 block is arranged as the coefficient 1472 of the 8x8 macroblock 1470 in the upper right corner.
  • the coefficients at the lower left of the coefficients of the 2x2 blocks among the 16x16 blocks are arranged in the 8x8 macroblock 1480 at the lower left. That is, the coefficient 1420 of the 16x16 block is arranged as the coefficient 1462 of the 8x8 macroblock 1480 at the lower left.
  • the coefficients at the lower right of the coefficients of the 2x2 blocks among the 16x16 blocks are arranged as 8x8 macroblocks 1490 at the lower right. That is, the coefficient 1440 of the 16x16 block is arranged as the coefficient 1452 of the 8x8 macroblock 1490 at the lower right.
  • CBP 15 compares an existing coding scheme with a syntax coding scheme associated with a coded block pattern (CBP) and a coefficient block size according to another embodiment of the present invention.
  • CBP coded block pattern
  • the encoding method 1510 of the coefficient considering the general coded block pattern (CBP) checks the CBP value (step 1520). If the CBP value is 0, the encoding process of the coefficient considering the CBP is terminated. If the CBP value is not 0, the flag TFlag indicating the coefficient block size is encoded (step 1530), and the current coefficient is encoded (step 1540), thereby encoding the coefficients considering the CBP.
  • the 'Tflag' flag may indicate whether the coefficients are in units of 8x8 or 4x4 blocks.
  • the CBP value is confirmed (step 1520). If the CBP value is 0, encoding of the coefficient considering the CBP is terminated. If the CBP value is not 0, a flag (TFlag8) indicating whether the current coefficient is a coefficient in units of 8 ⁇ 8 or 4 ⁇ 4 blocks is encoded (step 1560), and the determination result based on the value of the 'TFlag8' flag (step 1570). Is a coefficient in units of 4x4 blocks, the coefficient is encoded (step 1590), thereby completing the encoding of the coefficient.
  • TFlag8 flag
  • a flag (TFlag16) indicating whether the current coefficient is a coefficient of 8 ⁇ 8 or 16 ⁇ 16 block units is encoded.
  • Step 1580 encoding of the coefficient is completed by encoding the current coefficient (step 1590).
  • the present invention can be performed by encoding and frequency inverse transform through frequency conversion by a variable block size using two flags (TFlag8 and TFlag16) associated with data processing units in which frequency-converted coefficients are arranged. have.
  • one embodiment of the present invention may introduce an integer unit of frequency transformation as well as the size of an array block of frequency transformed coefficients.
  • the length of the end of block (EOB) can be reduced through an 8 ⁇ 8 interleaved coefficient block.
  • the 'Tfalg8' flag value is 1, only 1 bit is additionally required for the overhead for the 16 ⁇ 16 inter mode. Since the energy compression efficiency is increased due to the blocks of various sizes, the frequency conversion frequency may be reduced.
  • the video encoding apparatus 200 introduces a hierarchical CBP encoding scheme.
  • a flag MB_CBP_flag indicating whether CBP information is encoded is encoded (step 1600).
  • step 1610 if the value of the 'MB_CBP_flag' flag is 0, no further information is needed, and thus the CBP encoding process is terminated.
  • step 1610 if the 'MB_CBP_flag' flag value is 1, encoding of the CBP for the corresponding macroblock is performed (step 1620).
  • the image decoding apparatus 200 may extract the 'MB_CBP_flag' flag inserted in the received data, and determine whether decoding of the CBP is necessary for the macroblock to be decoded.
  • FIG 17 shows an encoding mode of a B frame according to another embodiment of the present invention.
  • the image encoding apparatus 100 and the image decoding apparatus 200 of the present invention may introduce a S-MB DIRECT mode in a super macroblock unit as an encoding mode for a B frame. If the encoding mode of the current super macroblock is a direct mode, texture coding should be performed.
  • a flag MB_CBP_FLAG indicating whether CBP encoding is included in each of the 16 ⁇ 16 macroblocks 1720, 1730, 1740, and 1750 of the 32 ⁇ 32 super macroblock 1710 corresponds to the corresponding 16 ⁇ 16 macroblock. Indicates whether the 1720, 1730, 1740, and 1750 are the skip mode or the direct mode encoding.
  • the motion vector may be estimated using the same motion estimation method as the direct mode according to the H.264 standard. .
  • Another example of the image encoding apparatus 100 and the image decoding apparatus 200 may determine a block unit for a dynamic range division method based on a quantization parameter, a resolution, and a sequence characteristic.
  • the data processing unit may be classified into various directions as well as the horizontal direction and the vertical direction.
  • the first level may include a super macroblock of an estimation mode in which an intra mode and an inter mode are combined as well as a skip mode and an inter mode.
  • the coding mode or data processing unit may be set for each data unit such as a picture, a sequence, a slice, a macroblock, and the like, and may be expressed by a maximum or minimum basic block size and a differentiation layer level.
  • the binary tree of the hierarchical structure of the data processing unit may be divided into an n-ary tree.
  • the size of blocks in order of the size of a block for motion estimation, the size of a block for frequency transformation, and the size of a block for deblocking filtering. May be kept equal to or less than.
  • the data processing unit for motion estimation and the data processing unit for frequency conversion may be integrated or separated.
  • Intra or inter mode macroblocks formed into any group may be formed into a group including any number of basic blocks.
  • block estimation may be performed based on the size of the group, or frequency conversion may be performed based on the size of the group.
  • the group may be formed of any number of skip blocks of macroblocks.
  • FIG. 18 is a flowchart of an image encoding method according to an embodiment of the present invention.
  • the image data classified as the basic block is classified into an extended concept including a group, a subgroup, and the basic block.
  • the group may have attributes of size, shape and maximum level indicating the number of basic blocks, and the subgroup may be set according to the level and the scanning order.
  • operation 1820 as a data processing unit used to encode a group, information about at least one of a group unit, a subgroup unit, and a basic block unit, and a method of encoding data of a group by the at least one data processing unit.
  • the coding mode of the group containing the information is determined.
  • the encoding mode of the group may be determined based on an error rate generated by encoding of data of the group performed for each data processing unit in the group. For each group, an optimal data processing unit and an estimation mode are selected by comparing the encoding error rate in group units, the lowest error rate among encoding error rates of all subgroups in the group, and the lowest error rate among encoding error rates of all basic blocks in the group.
  • the coding mode of each group includes information about an optimal data processing unit and an estimation mode of the group.
  • data of each group is encoded according to the determined encoding mode.
  • information on whether or not the frequency-converted coefficients in the group are rearranged in a predetermined data processing unit, CBP encoding information, and the like may be encoded and inserted into the transmission data.
  • 19 is a flowchart of an image decoding method according to an embodiment of the present invention.
  • data encoded in one data processing unit among a basic block, a group, and a subgroup is received, and information necessary for decoding is parsed from the received data.
  • Image data to be decoded from the received data may be parsed, and parameters necessary for decoding the image may be parsed.
  • a predetermined group of encoding modes indicating a method of encoding data of a predetermined group by one data processing unit among a group, a subgroup, and a basic block is read from the data parsed in operation 1910.
  • the group In order to determine the group, information representing the size, shape and maximum level of the group is extracted and read from the parsed data. Once the group is determined, the coding mode of each group is extracted and read.
  • the data of a predetermined group is obtained by using information on which data processing unit has been extracted and read from the coding mode of the predetermined group, information related to the size and shape of the data processing unit, and information on a motion estimation method. Decrypted.
  • 20A, 20B, 20C, 20D, 20E, and 20F illustrate block diagrams of modified embodiments of the image encoding apparatus 100, considering data processing units dynamically determined according to one embodiment, respectively.
  • the group encoder 130 of the image encoding apparatus 100 encodes data of a group according to a data processing unit and an estimation mode based on the encoding mode of the group determined by the group encoding mode determiner 120. To this end, motion estimation, in-loop filtering, and entropy coding are performed, including frequency transform and quantization, intra estimation, and inter estimation.
  • the image encoding apparatus 100 dynamically determines a data processing unit of a group. Therefore, the data processing unit of the group may be one of a hierarchical structure of a group, a subgroup, and a basic block.
  • the data processing unit dynamically determined by the image encoding apparatus 100 may be a data processing unit not defined in the existing image encoding format, a unique process that is distinguished from the existing image encoding process is required. For example, when a large data processing unit having a larger size than a 16 ⁇ 16 or 8 ⁇ 8 macroblock is used, the group encoder 130 must perform an image encoding operation through a process considering a large data processing unit.
  • 20A is a block diagram of a case in which frequency transform and quantization in consideration of a large data processing unit are applied to the group encoder 130 of the image encoding apparatus 100 according to an embodiment.
  • the first embodiment of the group encoder 130 of the image encoding apparatus 100 includes a motion weight including a frequency transform and quantizer 2003, an intra estimator, and an inter estimator in consideration of a large data processing unit.
  • An inverse 133, an in-loop filtering unit 137, and an entropy encoding unit 139 are included.
  • the frequency transform and quantization unit 2001 considering the large data processing unit according to the first embodiment of the group encoder 130 performs frequency transform by the large data processing unit based on the encoding mode determined by the group encoding mode determiner 120. And an integer discrete cosine transform and quantization based on a large data processing unit to perform quantization.
  • the frequency transform and quantization unit 2001 considering the large data processing unit according to the first embodiment of the group encoder 130 performs a chroma component of the large data processing unit to perform frequency transformation and quantization by the large data processing unit. Discrete cosine transform and quantization may be performed for.
  • the frequency transform and quantization unit 2001 considering the large data processing unit according to the first embodiment of the group encoder 130 reduces the burden of the amount of computation that may be weighted by the discrete cosine transform based on the large data processing unit. To achieve this, a discrete cosine transform capable of low complexity operations can be performed.
  • 20B is a block diagram when motion estimation processing considering a large data processing unit is applied to the group encoder 130 of the image encoding apparatus 100 according to an embodiment.
  • a second embodiment of the group encoder 130 of the image encoding apparatus 100 is a frequency transform and quantization unit 131, a motion estimation unit 2003 by processing considering a large data processing unit, and The loop filter 137 and the entropy encoder 139 are included. Intra estimation and inter estimation may be performed based on processing considering a large data processing unit.
  • the motion estimation unit 2003 by processing considering the large data processing unit according to the second embodiment of the group encoder 130 may consider the large data processing unit based on the encoding mode determined by the group encoding mode determiner 120. For example, a combination of a large data processing unit for motion estimation and a data processing unit for frequency conversion may be predetermined.
  • the data processing unit for frequency conversion is preferably smaller than the data processing unit for motion estimation.
  • the motion estimation unit 2003 by processing considering the large data processing unit according to the second embodiment of the group encoder 130 considers a large data processing unit, and scan method and neighbor block for motion estimation for each data processing unit. Neighbor availability can be determined as a reference block.
  • the motion estimation unit 2003 by processing considering the large data processing unit according to the second embodiment of the group encoder 130 is square in order to save the transmission amount of the bit indicating the encoding mode in consideration of the large data processing unit.
  • a simplified coding mode that only adopts a form data processing unit may be used.
  • 20C is a block diagram of an intra estimation considering a large data processing unit is applied to the group encoder 130 of the image encoding apparatus 100 according to an embodiment.
  • the third embodiment of the group encoder 130 of the image encoding apparatus 100 includes a frequency transform and quantizer 131, an intra estimator 2004 and an inter estimator in consideration of a large data processing unit ( 135, an in-loop filtering unit 137 and an entropy encoding unit 139.
  • the intra estimator 2004 considering the large data processing unit according to the third embodiment of the group encoder 130 may further define an intra mode for performing intra estimation on a predetermined large data processing unit.
  • the intra estimator 2004 considering the large data processing unit according to the third embodiment of the group encoder 130 estimates using the complex plain in the intra mode for accurate motion estimation of the larger data processing unit. Mode can be introduced.
  • the intra estimator 2004 considering the large data processing unit according to the third embodiment of the group encoder 130 may limit the type of the large data processing unit capable of intra estimation.
  • FIG. 20D is a block diagram of an inter estimation considering a large data processing unit is applied to the group encoder 130 of the image encoding apparatus 100 according to an embodiment.
  • a fourth embodiment of the group encoder 130 of the image encoding apparatus 100 includes an inter estimator considering the frequency transform and quantizer 131, the intra estimator 134, and a large data processing unit. 2005), an in-loop filtering unit 137 and an entropy encoding unit 139.
  • the inter estimator 2005 considering the large data processing unit according to the fourth embodiment of the group encoder 130 may introduce a mixed mode in which inter estimation and intra estimation may be mixed as an estimation mode of the large data processing unit. Can be.
  • the inter estimator 2005 considering the large data processing unit according to the fourth embodiment of the group encoder 130 determines the motion vector MV for each large data processing unit and accordingly derives the motion vector estimator MVP. can do.
  • the inter estimator 2005 considering the large data processing unit according to the fourth embodiment of the group encoder 130 newly introduces a skip mode for the large data processing unit and includes a plurality of skip processing data processing units.
  • Skip groups can be set. All of the data processing units of the skip mode belonging to the skip group may be skipped together.
  • FIG. 20E illustrates a block diagram when in-loop filtering considering large data processing units is applied to the group encoder 130 of the image encoding apparatus 100 according to an embodiment.
  • a fifth embodiment of the group encoder 130 of the image encoding apparatus 100 includes a motion estimator 133 including a frequency transform and quantizer 131, an intra estimator, and an inter estimator.
  • the loop filtering unit 2007 and the entropy encoder 139 are included.
  • the in-loop filtering unit 2007 considering the large data processing unit according to the fifth embodiment of the group encoder 130 determines whether to filter the boundary of the lower processing unit inside the large data processing unit and adjusts the filtering strength. Can be.
  • the in-loop filtering unit 2007 considering the large data processing unit according to the fifth embodiment of the group encoder 130 may perform in-loop filtering to reduce the ringing effect inside the large data processing unit.
  • FIG. 20F is a block diagram of entropy coding considering a large data processing unit for the group encoder 130 of the image encoding apparatus 100 according to an embodiment.
  • a sixth embodiment of the group encoder 130 of the image encoding apparatus 100 is a motion estimator 133 including a frequency transform and quantizer 131, an intra estimator, and an inter estimator.
  • the loop filter 137 and the entropy encoder 2009 are included.
  • the entropy encoder 2009 considering the large data processing unit according to the sixth embodiment of the group encoder 130 defines an encoding block pattern for the large data processing unit. Also, the entropy encoder 2009 may scan the coding block pattern based on a probability that a non-zero coding block pattern exists in the data processing unit.
  • the in-loop filtering unit 2007 considering the large data processing unit according to the sixth embodiment of the group encoder 130 may use context-based adaptive binary arithmetic coding (CABAC) or context-based adaptive variable length for the large data processing unit. Coding (CAVLC) may be applied.
  • CABAC context-based adaptive binary arithmetic coding
  • CAVLC context-based adaptive variable length for the large data processing unit. Coding
  • the in-loop filtering unit 2007 considering the large data processing unit according to the sixth embodiment of the group encoder 130 may set a new context of the coding block pattern for the large data processing unit.
  • the first to sixth embodiments of the above-described group encoder 130 are unique processes that may be performed in consideration of a large data processing unit for each encoding process.
  • a method of encoding an image sequence based on a large block which is one of the large data processing units over the entire image encoding process will be described with reference to FIG. 20G.
  • 20G is a flowchart of an image encoding method considering a data processing unit dynamically determined according to an embodiment of the present invention.
  • the image encoding method 2000 encodes the input image sequence 2010 by using a block corresponding to a predetermined encoding mode among the block 2020 having a hierarchical structure.
  • the hierarchical structure 2020 of the block is the same as the hierarchical structure of the group, subgroup, and basic block described above with reference to FIG. 10.
  • the image encoding method 2000 outputs an image bitstream through a frequency conversion and quantization step s2030, a motion estimation step s2040, an in-loop filtering step s2080, and an entropy encoding step s2090. s2098).
  • the motion estimation step s2040 includes an intra estimation step s2060 and an inter estimation step s2070 based on the predetermined processing 2050.
  • the frequency transform and quantization step s2030, the processing for motion estimation 2050, the intra estimation step s2060, the inter estimation step s2070, The in-loop filtering step s2080 and the entropy encoding step s2090 may also perform a unique process considering the large block.
  • a unique process that takes into account the large block of the frequency transform and quantization step s2030 may include a large block-based integer discrete cosine transform and quantization 2032, a discrete cosine transform and quantization for chroma components of the large block. It may include at least one of a low complexity operation 2036 for a large block-based discrete cosine transform.
  • a unique process considering large blocks of processing 2050 for motion estimation includes a combination 2052 of large blocks for motion estimation and large blocks for frequency transform, a block scanning method for motion estimation, and neighboring block reference possibilities 2054. ), At least one of the simplified mode 2056 of the large block of the hierarchical structure.
  • the unique process considering the large block of the intra estimation step s2060 includes at least one of the introduction of the large block-based intra mode 2062, the introduction of the complex plane for intra estimation 2064, and the determination of the predictable intra mode 2066. It may include one.
  • the unique process considering the large block of the inter estimation step s2070 includes the introduction of the estimation mode in which the intra mode and the inter mode are mixed (2072), the determination method of the motion vector (MV) of the large block, and the motion vector estimator (MVP). At least one of a derivation scheme 2074, a new skip mode of the large block, and the introduction 2076 of the skip group.
  • the unique process considering the large block in the in-loop filtering step s2080 includes at least one of determining whether to filter the boundary inside the large block and determining the filtering strength 2082, and reducing the ringing effect reduction filtering 2084 inside the large block. can do.
  • the unique process considering the large block in the entropy encoding step (s2090) includes the introduction of the coding block pattern (CBP) for the large block, the coding block pattern scanning method 2092, and the context-based adaptive binary arithmetic coding (CABAC) considering the large block. Or introduction of context-based adaptive variable length coding (CAVLC) 2094 or a context setting method 2096 for a coding block pattern of a large block.
  • CBP coding block pattern
  • CABAC context-based adaptive binary arithmetic coding
  • the video encoding apparatus 100 or the video encoding method 2000 considering the large data processing unit described above with reference to FIGS. 20A to 20G may be a unique process considering the large data processing unit without significantly changing the existing video encoding format. Images can be encoded by adding or replacing them.
  • the unique process considering the large data processing unit is preferably applied to the image decoding corresponding to the image encoding. Therefore, the unique process for each process described below may be applied to image decoding as well as image encoding.
  • processing 2050 for inherent processing of the motion estimation unit 133 of the group encoder 130 of the image encoding apparatus 100 and motion estimation of the image encoding method 2000 according to an embodiment Is described in detail.
  • processing for motion estimation may be applied to an image decoding apparatus corresponding to the image encoding apparatus 100 according to an exemplary embodiment.
  • the processing for motion estimation may include a combination of a large data processing unit for motion estimation and a data processing unit for frequency conversion, a block scanning method for motion estimation, and the possibility of referencing a neighboring block of a neighboring block, Characterized by a simplified mode.
  • the data processing unit for motion estimation is proportional to the data processing unit for motion estimation in the range below the maximum size of the data processing unit for motion estimation. Therefore, the data processing unit for frequency conversion may be expanded.
  • the data processing unit for motion estimation is 32 ⁇ 32 or 16 ⁇ 16 macroblocks
  • the data processing unit for frequency conversion is 32 ⁇ 32, 16 ⁇ 16, 8 ⁇ 8 according to the data processing unit for motion estimation. , 4 ⁇ 4 blocks.
  • FIG. 21 illustrates a scan method for each data processing unit for motion estimation considering a large data processing unit according to an embodiment of the present invention.
  • a super macroblock unit scan method is described.
  • a large data processing unit in one frame 1320 is searched for an encoding mode by a zigzag scan method.
  • the super macroblocks inside the frame 1320 may be aligned side by side in the horizontal and vertical direction so that the blocks may be arranged in units of 64 ⁇ 64 large blocks.
  • the motion estimation scan scheme may be applied to a case in which super macroblocks within the frame 2100 are not aligned as illustrated in FIG. 21, in addition to the case illustrated in FIG. 13.
  • the first scan object 2110 of the frame 2100 may not be a square super macroblock.
  • Square shaped super macroblocks 2140 scanned in zigzag are not necessarily aligned side by side.
  • the super macroblock 2120 and the super macroblock 2130 are adjacent neighboring blocks but are not aligned with each other.
  • the neighboring block may be used as the reference block in the same manner as the existing neighboring block estimation and context.
  • the reference block is changed in some cases, so that the motion vector estimator or intra estimator of the current block may be set to point to a block of the same size at the nearest position. Can be.
  • FIG. 22 illustrates availability of neighboring neighboring data processing units in motion estimation considering a large data processing unit according to an embodiment of the present invention.
  • FIG. 22 As examples of data processing units, existing 16 ⁇ 16 macroblocks 2200 and 32 ⁇ 32 super macroblocks 2250 are used.
  • whether the upper right neighbor block can be used as a reference block is whether the neighboring block has already been scanned and the position index unit. Can be determined by.
  • Blocks within one frame may refer to the first block group 2202 that may refer to the upper right neighboring block for each 4 ⁇ 4 block that is the minimum data unit, and cannot refer to the neighboring block on the upper right only in the case of 4 ⁇ 4 index.
  • the second block group 2204 which cannot refer to the upper right neighboring block only in case of 8 ⁇ 8 index
  • the third block group 2206 which cannot refer to the upper right neighboring block only in case of 16 ⁇ 16 index
  • the fourth block group 2208 is classified.
  • the 4 ⁇ 4 blocks a 1 , a 2 , a 3 , b 1 , b 2 , b 3 , c 1 , c 2 , c 3 , d 1 , d 2 corresponds to the first block group 2202 that may refer to the neighboring block on the upper right side.
  • the 4 ⁇ 4 blocks a 4 , b 4 , c 4 , and d 4 correspond to the second block group 2204 which cannot refer to the neighboring block on the upper right side only in the case of the 4 ⁇ 4 index.
  • the 4x4 block d 2 corresponds to the third block group 2206 which cannot refer to the neighboring block on the upper right side only in the case of an 8x8 index.
  • the first block group 2202, the second block group 2204, and the third block group 2206 may be classified with respect to neighboring block referencing possibilities.
  • a 16 ⁇ 16 index may be added in addition to a 4 ⁇ 4 or 8 ⁇ 8 index to determine a reference block. Therefore, there may be a fourth block group 2208 that cannot refer to the neighboring block on the upper right side only in the case of 16 ⁇ 16 index.
  • 4 ⁇ 4 blocks A 4 , B 4 , C 4 , D 4 , E 4 , F 4 , G 4 , H 4 , I 4 , J 4 , K 4 , L 4 , M 4 , N 4 , O 4 , P 4 corresponds to the second block group 2204 which cannot refer to the neighboring block on the upper right side only in the case of the 4x4 index.
  • the 4 ⁇ 4 blocks D 2 , H 2 , L 2 , and P 2 correspond to the third block group 2206 that cannot refer to the neighboring block on the upper right side only in the case of an 8 ⁇ 8 index.
  • the 4x4 block N 2 corresponds to the fourth block group 2208 which cannot refer to the neighboring block on the upper right side only in the case of 16x16 index.
  • the neighboring block reference possibility of the upper right side may be used as an input variable of a condition for determining a motion vector estimator or an intra estimator or a derivation function of the motion vector estimator or an intra estimator. Therefore, when a large data processing unit is introduced according to an embodiment, the possibility of referencing a neighboring block on the upper right side by a 16 ⁇ 16 index is added as an input variable of a condition or a derivation function for determining a motion vector estimator or an intra estimator. Can be.
  • 23A illustrates a simplified hierarchical data processing unit of a large data processing unit according to an embodiment of the present invention.
  • a data processing unit may include blocks having a square shape (32 ⁇ 32, 16 ⁇ 16, 8 ⁇ 8, 4 ⁇ 4), and It includes all rectangular blocks 32 ⁇ 16, 16 ⁇ 32, 16 ⁇ 8, 8 ⁇ 16, 8 ⁇ 4, and 4 ⁇ 8. According to the hierarchical structure 1000 of data processing units, encoding by various data processing units is possible.
  • the image encoding apparatus 100 may be simplified to a hierarchical structure 2310 of a data processing unit including only blocks having a square shape.
  • the first layer 2310 may include a 32 ⁇ 32 super macroblock in an intra mode, a 32 ⁇ 32 super macroblock in a skip mode, a 32 ⁇ 32 super macroblock in an inter mode, and a 16 ⁇ 16 macroblock.
  • the first layer 2310 may be frequency-converted in at least one of 32 ⁇ 32, 16 ⁇ 16, 8 ⁇ 8, and 4 ⁇ 4 block units.
  • the second layer 2320 may include 16 ⁇ 16 macroblocks in an intra mode, 16 ⁇ 16 macroblocks in a skip mode, 16 ⁇ 16 macroblocks in an inter mode, and 8 ⁇ 8 macroblocks in an inter mode.
  • the second layer 2320 may be frequency-converted in at least one of 16 ⁇ 16, 8 ⁇ 8, and 4 ⁇ 4 block units.
  • the third layer 2330 may include 8 ⁇ 8 macroblocks in a skip mode, 8 ⁇ 8 macroblocks in an inter mode, and 4 ⁇ 4 blocks in an inter mode.
  • the third layer 2330 may be frequency-converted in at least one unit of 8 ⁇ 8 and 4 ⁇ 4 block units.
  • blocks of the inter mode and the intra mode having the same size and shape exist, respectively.
  • the bits representing the encoding modes can be saved.
  • the syntax 2350 includes various information according to an encoding mode of a predetermined data processing unit.
  • a value of 'mode' 2352 indicates an encoding mode.
  • a 'ref_idx / mvd' value 2354 indicates a variation of the reference index and the motion vector.
  • a 'coded_block_pattern' value 2356 represents a coding block pattern.
  • a 'transform_size_flag' value 2358 indicates the size of a data processing unit for frequency transformation.
  • a 'residual ()' value 2360 represents information about the residual component.
  • bits of the 'mode' value 2352 may be saved.
  • the 'coded_block_pattern' value 2356 and the 'transform_size_flag' value 2358 of the syntax 2350 may be modified.
  • a unique process considering a large data processing unit is introduced. can do.
  • a large block based intra mode 2062 is added. For example, 32 ⁇ 32 super macroblocks in intra mode and 16 ⁇ 16 macroblocks in intra mode may be added.
  • an encoding mode indicating that intra estimation is possible for each data processing unit may be individually determined.
  • an estimation mode in which intra mode and inter mode are mixed may be set for any large data processing unit.
  • the intra mode or the inter mode may be mixed for each lower data processing unit in the large data processing unit.
  • a skip mode for a large data processing unit is newly defined, and a skip group including data processing units of at least one skip mode may be introduced.
  • a skip group including 32x32 super macroblocks in a skip mode and 32x32 super macroblocks in a plurality of skip modes is proposed through FIGS. 24A-24C below.
  • 24A, 24B and 24C illustrate various configurations of skip groups according to an embodiment of the present invention.
  • a 32 ⁇ 32 super macroblock is used as the large data processing unit of FIGS. 24A, 24B, and 24C.
  • blocks in adjacent skip modes may be grouped into a skip group and simultaneously skipped for a skip group. Therefore, when a skip group is read while scanning one frame, it should be determined whether adjacent neighboring blocks are blocks of a skip mode included in the same skip group.
  • an indication is needed to indicate whether a given block is in skip mode and included in a skip group.
  • 24A, 24B and 24C use a skip mode flag as an indication to indicate whether a given block is a skip mode and included in a skip group. If the skip mode flag is '0', the corresponding block is a non-skip mode block, and if it is '2', the corresponding block is the start block of the skip group and '1' indicates that the block belongs to the skip group.
  • a position of a skip group may be selected to search for a block that is a skip mode in a frame and scan the skip group.
  • a maximum size of a skip group including blocks of adjacent skip modes may be limited.
  • the position of the skip group when the position of the skip group is fixed and the size is fixed (frame 2400 of FIG. 24A), the position of the skip group is fixed and is of any size.
  • skip groups When formed (frame 2440 in FIG. 24B), skip groups may be located at all positions and skip processing may be performed when formed in any size (frame 2470 in FIG. 24C).
  • the size of the skip group is fixed to 64 ⁇ 64 blocks. Therefore, in order to search the scan group, it is necessary to search whether only the 32 ⁇ 32 super macroblock located at the upper left of every 64 ⁇ 64 block is in the skip mode. For example, since the skip mode flag of the 32 ⁇ 32 super macroblock 2412 is indicated as '0', the 64 ⁇ 64 block 2410 including the super macroblock 2412 is not skipped. Can be confirmed.
  • the skip mode flag of the super macroblock 2432 is marked as '2', it may be confirmed that the skip mode flag is the start block of the skip group. Since the size of the skip group of the first frame 2400 is fixed to 64 ⁇ 64 blocks, the 64 ⁇ 64 block 2430 including the super macroblock 2432 at the upper left is a skip group. In addition, it can be expected that all other super macroblocks (2434, etc.) in the 64x64 block 2430 are all blocks of the skip mode in which the skip mode flag is '1'.
  • the size of the skip group is not fixed, but the position where the skip group can start is fixed. That is, since the skip group can be started from the 32 ⁇ 32 block located at the upper left of every 64 ⁇ 64 block, when the frame 2440 is scanned, the skip mode flag of the 32 ⁇ 32 block located at the upper left of every 64 ⁇ 64 block is displayed. Just check whether it is '0' or '2'. For example, if it is scanned that the skip mode flag of the 32 ⁇ 32 block on the upper left of the 64 ⁇ 64 block 2450 is '0', it is confirmed that the 64 ⁇ 64 block 2450 is not a skip group.
  • the skip group flag 2460 starting from the 32x32 block 2461 should be determined since the skip mode flag is '2'.
  • 32 ⁇ 32 blocks 2442, 2463, 2464, having the skip mode flag '1' in succession, 2465, 2466, 2467, 2468, and 2469 may be identified as being included in the same skip group 2460 as the 32 ⁇ 32 block 2241.
  • the skip mode flag of the 32 ⁇ 32 block in the fixed position should be checked, but the block that has already been scanned and confirmed to be included in the predetermined skip group is not scanned.
  • 32 ⁇ 32 blocks 2463, 2467, and 2469 are located at the top left of each 64 ⁇ 64 block, so that the fixed mode block should be skipped because the skip mode flag should be scanned, but already skip groups according to the previous scan order. It is confirmed that the block included in (2460). Therefore, the 32 ⁇ 32 blocks 2463, 2467, and 2469 are scanned without going through to the next position.
  • the skip mode flag and the size of the skip group of the 32 ⁇ 32 block of the fixed position may be transmitted from the encoding end and received by the decoding end.
  • the decoding end may read the skip mode flags of the blocks of the frame to identify whether the block is the skip mode.
  • the skip mode flag does not need to be transmitted and received separately for a block indicating that the skip mode flag is '1' and that it is a block of another skip group.
  • the size of the skip group is not fixed, and the position at which the skip group can start is not fixed. Therefore, when scanning frame 2470, skip mode flags of all 32x32 blocks should be checked.
  • a skip group 2480 starting from the 32x32 block 2482 should be determined.
  • all 32 ⁇ 32 blocks having a skip mode flag of '1' are all 32 ⁇ 32 blocks (2482). It can be confirmed that it is included in the same skip group (2480).
  • skip group 2480 After the skip group 2480 is determined, the 32 ⁇ 32 blocks included in the skip group 2480 are skipped without scanning, and the scan proceeds to the next 32 ⁇ 32 block 2492 that does not belong to the skip group 2480. Similarly, skip group 2490 may be determined starting with 32 ⁇ 32 block 2492.
  • the skip mode flag of the 32 ⁇ 32 block and the size of the skip group at all positions may be transmitted from the encoder and received by the decoder.
  • the decoding end may identify whether the skip mode is a block mode for each block in the corresponding frame using the skip mode flag.
  • the skip mode flag does not need to be transmitted and received separately for the 32 ⁇ 32 block identified as being included in another skip group.
  • the skip mode blocks can be skipped into groups according to various embodiments described above with reference to FIGS. 24A, 24B, and 24C.
  • bits for indicating a skip mode for each block can be saved.
  • the skip mode can be efficiently searched without all the blocks having to be scanned.
  • the motion vector MV according to the inter estimation may be determined in a large data processing unit, and the motion vector estimator MVP may also be derived in a large data processing unit.
  • 25A and 25B illustrate a motion vector derivation method in a large data processing unit and a motion vector derivation method of a lower data processing unit according to an embodiment of the present invention.
  • the motion vector MV and the motion vector estimator MVP generated by inter estimation are derived in a large data processing unit.
  • a large data processing unit (a group of 16 ⁇ 16 macroblocks, that is, 32) using a motion vector of an existing data processing unit (16 ⁇ 16 macroblocks) is used.
  • a method of deriving a motion vector (x 32 blocks) is disclosed.
  • the motion vector mvs for the 32 ⁇ 32 super macroblock inter 32 ⁇ 32 which is the inter mode is estimated or Induced.
  • a motion vector of a super macroblock may be derived using a motion vector of a macroblock.
  • mv 1 , mv 2 , and mv 3 represent mv 0 .
  • mv 1 , mv 2 , and mv 3 may be estimated according to Equation 6 below.
  • the median (x, y) function is a function for obtaining an intermediate value of x and y, and the input variable 'neighbors' represents a representative motion vector of adjacent large data processing units.
  • the motion vector of the 16 ⁇ 16 macroblock may be estimated as the median value of the motion vector mv 0 of the representative 16 ⁇ 16 macroblock 2502 and the representative motion vector of the adjacent 32 ⁇ 32 block.
  • one motion vector may be regarded as a motion vector of each of the 16 ⁇ 16 macroblocks without having to measure all the motion vectors for each 16 ⁇ 16 macroblock, and each 32 ⁇ 32 super macroblock unit.
  • the motion vector of mv s can be estimated from the motion vector of the 16 ⁇ 16 macroblock.
  • an additional signal for signaling a motion vector mv 0 (or a motion vector mv s of 32 ⁇ 32 blocks) of one macroblock is used for signaling about a motion vector of 32 ⁇ 32 blocks between an encoding end and a decoding end. You need to send a flag. Also, the decoder may derive the remaining unsigned motion vectors mv 1 , mv 2 , and mv 3 through three derivation processes using the received motion vectors.
  • FIG. 25B another method of estimating a motion vector of a 32 ⁇ 32 block using a 16 ⁇ 16 macroblock motion vector is proposed.
  • Another estimation method subsamples the 32x32 block 2510 into 16x16 macroblocks to estimate the motion vector of the 32x32 block using the motion vectors of the subsampled blocks.
  • the upper left pixel 2512, the upper right pixel 2514, the lower left pixel 2516, and the lower right pixel 2518 are respectively an upper left macroblock 2522 and an upper right macroblock 2524, respectively.
  • subsampled 16 ⁇ 16 macroblocks 2522, 2524, 2526, and 2528 may be generated.
  • Each of the motion vectors mv 0 ′, mv 1 ′, mv 2 ′, and mv 3 ′ of the subsampled 16 ⁇ 16 macroblocks 2252, 2524, 2526, and 2528 may be derived as follows.
  • the motion vectors mv 0 ′, mv 1 ′, mv 2 ′, and mv 3 ′ of the 16 ⁇ 16 macroblocks 2522, 2524, 2526, and 2528 measure only one of the motion vectors, and the remaining motion vectors are also measured. Can be estimated.
  • the frequency transform and quantization step of the image encoding apparatus 100 and the image encoding method 2000 according to an embodiment (s2030) according to an embodiment are unique in consideration of large data processing units.
  • the process of can be introduced.
  • the data processing unit for each encoding mode may be larger than the existing macroblock size
  • a large block-based integer discrete cosine transform and quantization other than 8 ⁇ 8 or 4 ⁇ 4 blocks may be introduced, and (i-2)
  • the size of the data processing unit may be changed according to the luma component in consideration of a color specification.
  • a modified form of a discrete cosine transform for a low complexity operation may be introduced to reduce the computational burden caused by the (i-3) large block-based discrete cosine transform.
  • 26A and 26B illustrate various motion estimation schemes for chroma components of a large data processing unit according to an embodiment of the present invention.
  • Discrete cosine transform 2034 for a large block based chroma component is described below.
  • YUV color specification formats include the YUV 420 format and the YUV 444 format.
  • FIG. 26A illustrates a frequency conversion method for each estimation mode for the YUV 420 format
  • FIG. 26B illustrates a frequency conversion method for each estimation mode for the YUV 444 format.
  • the data processing unit of each estimation mode for the luma component is 32 ⁇ 32 super macroblock.
  • the block diagram 2600 of FIG. 26A is a frequency transform and quantization unit 2001 that considers a large data processing unit, and illustrates a frequency conversion scheme applicable to each of the estimation modes for the chroma component of the YUV 420 format.
  • the ratio of bits allocated to each of the Y, U, and V components is 4: 1: 1, so that the luma corresponding to the Y component is the bit amount allocated to each of the chroma components corresponding to the U and V components. Less than a quarter of the amount of bits assigned to the component. Therefore, it is preferable that the size of the data processing unit for the chroma component is one fourth or less as compared with the size of the data processing unit for the luma component.
  • the maximum size of the data processing unit for frequency conversion for chroma components is preferably 16 ⁇ 16 blocks, which is one quarter of 32 ⁇ 32 blocks.
  • encoding may be performed on the chroma component of the large data processing unit according to an embodiment through quantization 2630 and entropy encoding 2640. Can be.
  • the block diagram 2650 of FIG. 26B is another embodiment of the frequency conversion and quantization unit 2001 considering a large data processing unit, and illustrates a frequency conversion scheme applicable to each of the estimation modes for the chroma component of the YUV 444 format.
  • the bit amount allocated to each of the chroma components is the same as the bit amount allocated to the luma component.
  • the maximum size of the data processing unit for the luma component is 32 ⁇ 32 blocks
  • the maximum size of the data processing unit for the chroma component may also be 32 ⁇ 32 blocks.
  • a 4x4 discrete cosine transform and a 2x2 Hadamard transform 2662 i.e., 8x8, after directional intra estimation 2661 of 8x8 blocks is performed.
  • a new data processing unit in which a 16x16 discrete cosine transform (2664) is performed after (ii) a 16x16 block of directional intra estimation (2663) is performed, and (iii) 32x
  • a new data processing unit may be added in which a 32 ⁇ 32 discrete cosine transform 2666 is performed after 32 blocks of directional intra estimation 2665 are performed.
  • encoding is performed on the chroma component of the large data processing unit according to an embodiment through quantization 2680 and entropy encoding 2690. Can be.
  • FIG. 27 A table that summarizes the relationship between the estimation mode and the frequency transform block according to the block diagrams 2600 and 2650 illustrated with reference to FIGS. 26A and 26B is illustrated in FIG. 27. Accordingly, the size of the frequency transform block for the chroma component may be derived according to the size of the frequency transform block for the luma component for each estimation mode.
  • FIG. 27 illustrates a scheme of deriving a size of a data processing unit for a chroma component of a large data processing unit according to an embodiment of the present invention.
  • the (i-1) large block based integer discrete cosine transform and quantization 2032 and (i-2) the discrete block cosine transform 2034 for the large block based chroma component are described below.
  • the size of the frequency transform block for the chroma component is less than a quarter of the size of the frequency transform block for the luma component.
  • the minimum size of the frequency conversion block is 8 ⁇ 8 blocks.
  • the data processing unit for the discrete cosine transform for the luma component of the intra mode includes 32 ⁇ 32, 16 ⁇ 16, 8 ⁇ 8, and 4 ⁇ 4 blocks. Therefore, when the discrete cosine transform block for the luma component of the intra mode of the YUV 420 format is 32 ⁇ 32 blocks, the discrete cosine transform block of the chroma component may be derived as a 16 ⁇ 16 block. In addition, when the discrete cosine transform block for the luma component of the intra mode of the YUV 420 format is 16 ⁇ 16, 8 ⁇ 8, and 4 ⁇ 4 blocks, the discrete cosine transform block of the chroma component is an 8 ⁇ 8 block that is a minimum data unit. Can be induced.
  • the data processing unit for the discrete cosine transform for the luma component of the inter mode includes 16 ⁇ 16, 8 ⁇ 8, and 4 ⁇ 4 blocks. Therefore, when the discrete cosine transform block for the luma component of the inter mode of the YUV 420 format is 16 ⁇ 16, 8 ⁇ 8, and 4 ⁇ 4 blocks, the discrete cosine transform block of the chroma component is an 8 ⁇ 8 block that is a minimum data unit. Can be induced.
  • the size of the frequency transform block for the chroma component may be the same as the size of the frequency transform block for the luma component.
  • the minimum size of the frequency conversion block is 8x8 blocks.
  • the data processing unit for the discrete cosine transform for the luma component of the intra mode includes 32 ⁇ 32, 16 ⁇ 16, 8 ⁇ 8, and 4 ⁇ 4 blocks. Therefore, if the discrete cosine transform block for the luma component of the intra mode of the YUV 444 format is 32 ⁇ 32 block and 16 ⁇ 16 block, the discrete cosine transform block of the chroma component is led to 32 ⁇ 32 block and 16 ⁇ 16 block, respectively. Can be.
  • the discrete cosine transform block for the luma component of the intra mode of the YUV 444 format is an 8 ⁇ 8 or 4 ⁇ 4 block
  • the discrete cosine transform block of the chroma component may be derived as an 8 ⁇ 8 block that is a minimum data unit. have.
  • the data processing unit for discrete cosine transform for the luma component of the inter mode of the YUV 444 format includes 16 ⁇ 16, 8 ⁇ 8, and 4 ⁇ 4 blocks. Therefore, when the discrete cosine transform block for the luma component of the inter mode of the YUV 444 format is a 16 ⁇ 16 block, the discrete cosine transform block of the chroma component may be derived as a 16 ⁇ 16 block. In addition, when the discrete cosine transform block for the luma component of the inter mode of the YUV 444 format is an 8 ⁇ 8 or 4 ⁇ 4 block, the discrete cosine transform block for the chroma component may be derived as an 8 ⁇ 8 block that is a minimum data unit. Can be.
  • the data processing unit for the chroma component can be derived from the data processing unit for the discrete cosine transform of the luma component.
  • the frequency conversion for each estimation mode has been described using only the YUV 420 format and the YUV 444 format among the YUV color standard formats, the image encoding or the image decoding according to the dynamically determined data processing unit according to the embodiment is performed in the YUV 420 format and the YUV 444 format. It is not limited only to.
  • the in-loop filtering unit 2007 of the image encoding apparatus 100 and the frequency conversion and quantization step s2080 of the image encoding method 2000 may be unique in consideration of large data processing units. You can introduce a process.
  • the size of the large data processing unit may be larger than that of the existing macroblock, filtering on the inside of the large data processing unit needs to be considered.
  • a unique process related to in-loop filtering considering a large data processing unit may include determining whether to perform filtering on lower data processing unit boundaries inside the large data processing unit, and determining a filtering strength for each boundary. It may include filtering to reduce the ringing effect according to the encoding of the data processing unit.
  • whether to perform filtering on the boundary of the lower data processing unit inside the large data processing unit and the method of determining the filtering strength for each boundary may be determined in the existing image encoding or image decoding.
  • the in-loop filtering related flag used in in-loop filtering may be described as follows.
  • an in-loop filtering related flag is set.
  • the in-loop filtering related flag may include a first flag ('filterLeftMbEdgeFlag') indicating whether in-loop filtering is performed on a boundary between the current macroblock and the left neighboring macroblock, and a boundary between the current macroblock and the upper neighboring macroblock. It includes a second flag ('filterTopMbEdgeFlag') indicating whether to perform in-loop filtering for.
  • In-loop filtering related flag is also used to reduce block artifacts caused by frequency transformation based on 8 ⁇ 8 or 4 ⁇ 4 blocks within a 16 ⁇ 16 or 8 ⁇ 8 macroblock. Or it may include a third flag ('filterInternalEdgeflag') indicating whether in-loop filtering is performed in the 8x8 macroblock.
  • 'filterInternalEdgeflag' indicating whether in-loop filtering is performed in the 8x8 macroblock.
  • the in-loop filtering related flag may include a fourth flag ('chromaEdgeflag') indicating whether in-loop filtering is performed on the boundary of the block for the chroma component.
  • the first, second, and fourth flags are set to '0', and the current boundary is If the boundary is outside the large data processing unit, the first, second, and fourth flags may be set to '1'. That is, an in-loop filtering related flag may be set to not perform in-loop filtering on the boundary of the macroblock included in the large data processing unit.
  • the third flag when frequency conversion is performed by a 16 ⁇ 16 macroblock, the third flag may be set to '0'. That is, when the frequency is converted to 16 ⁇ 16 macroblocks in the encoding mode of 16 ⁇ 16 macroblock units, the in-loop filtering is not performed to reduce the boundary effect due to the frequency conversion in the 16 ⁇ 16 macroblocks.
  • the filtering related flag may be set.
  • the in-loop filtering related flag is a fifth flag ('mixedModeEdgeFlag') indicating whether in-loop filtering is performed on a boundary between neighboring blocks of different estimation modes in case of a macroblock of an estimation mode mixed with intra mode and inter mode. It may include.
  • the current data processing unit is the large data processing unit under the condition of the fifth flag. You can add additional cases. Also, the in-loop filtering strength may be individually set for each boundary of the lower data processing unit inside the large data processing unit.
  • a ringing effect may occur in addition to the boundary effect. Therefore, in in-loop filtering of image encoding and image decoding according to an embodiment, filtering for reducing a ringing effect according to encoding of a large data processing unit may be performed.
  • the entropy encoding unit 2009 of the image encoding apparatus 100 and the entropy encoding step s2090 of the image encoding method 2000 introduce a unique process considering a large data processing unit. can do.
  • a unique process for entropy encoding or decoding considering a large data processing unit may include a hierarchical coding block pattern (CBP) and a scanning method of a coding block pattern considering a large data processing unit (2092). ), The introduction of context-based adaptive binary arithmetic coding (CABAC) or context-based adaptive variable length coding (CAVLC) in consideration of large data processing units (2094), coding block patterns for large data processing units of intra mode or chroma components. An introduction 2096 of a single context for.
  • CABAC context-based adaptive binary arithmetic coding
  • CAVLC context-based adaptive variable length coding
  • FIG. 28 is a flowchart of a method using a coding block pattern considering a large data processing unit according to an embodiment of the present invention.
  • Entropy encoding and entropy decoding may use not only a coding block pattern CBP8 for an 8 ⁇ 8 block, which is a conventional coding block pattern, but also a hierarchical coding block pattern considering a large data processing unit.
  • an encoding mode of a data processing unit may include an inter mode (Inter_32 ⁇ 32) of a 32 ⁇ 32 super macroblock, an inter mode (Inter_32 ⁇ 16) of a 32 ⁇ 16 super macroblock, and a 16 ⁇ 32 super.
  • the encoding mode of the data processing unit of the 16x16 block or more, such as the interblock (Inter_16x32) of the macroblock the coding block pattern CBP16 for the 16x16 block is added. Therefore, entropy encoding or decoding may be performed according to a hierarchical coding block pattern including CBP16 and CBP8.
  • step 2810 it is determined whether CBP16 (Luma_CBP16) for the luma component is '1', and if it is '0', the texture processing operation for entropy encoding is terminated. If CBP16 (Luma_CBP16) for the luma component is '1', a flag Tr_type indicating the size of the data processing unit is encoded in step 2820, and then CBP8 is encoded in step 2830. In step 2840, texture processing for the luma component is performed.
  • step 2850 it is determined whether CBP16 (Chroma_CBP16) for the chroma component is '1', and in step 2860, texture processing for the chroma component is performed.
  • a coding block pattern CBP16 of a 16 ⁇ 16 block is added.
  • the case is illustrated, even when the data processing unit is further modified, there may be a modified coding block pattern in consideration of the data processing unit.
  • 29A and 29B illustrate various methods of scanning a coding block pattern considering a large data processing unit according to an embodiment of the present invention.
  • a scanning method 2092 of the coding block pattern CBP considering the large data processing unit will be described below.
  • the entropy encoding scans the data processing unit 2900 and searches for a coding block pattern other than '0'.
  • the conventional scan method scans an 8 ⁇ 8 square block interleaved.
  • Entropy encoding introduces a method of reciprocating in a zigzag scan around a diagonal line from the upper left to the lower right of the data processing unit 2900. Since the coding block pattern located at the upper left corner of the data processing unit 2900 has a higher probability of not being zero, the efficiency of entropy coding for encoding a non-zero valid bit may be improved.
  • the data processing unit 2900 may be divided into a plurality of boundaries 2910, 2920, 2930, 2940, 2950, 2960, and 2970 to scan efficiency of the coding block pattern.
  • the zigzag scan method it is detected whether there is a non-zero coding block pattern (the position with the 'x' mark) among strips of the region between the boundaries, and only the strips containing the non-zero coding block pattern are encoded. desirable.
  • the scanning method of the coding block pattern scans the data processing unit 2900 to scan a first region before the boundary 2910, a first region between the boundaries 2910, and 2920, and a third region between the boundaries 2920 and 2930.
  • Area, fourth area between borders 2930 and 2940, fifth area between borders 2940 and 2950, sixth area between borders 2950 and 2960, seventh area between borders 2960 and 2970, and eighth area after border 2970 The strip of the region including the coding block pattern other than '0' should be encoded.
  • FIGS. 29A and 29B two schemes are shown in FIGS. 29A and 29B, respectively, to represent strips of regions that contain non-zero coding block patterns to save transmission bits.
  • 'effective strip' and 'end strip' are defined to indicate that only data of at least one area from the area of the effective strip to the area of the ending strip is valid data.
  • an 'end strip' may be defined to indicate that only data of at least one area up to an area of the 'end strip' is valid data.
  • a flag indicating an end strip on a syntax may be defined in order to determine a scan area of a coding block pattern of the data processing unit 2900. There is no need for a flag indicating that the strip is not finished before the area of the ending strip. Thus, for the transmission bits of one data processing unit 2900, only one bit for the flag indicating the end strip in relation to the coding block pattern is needed.
  • a single context of a new coding block pattern and a new coding block pattern for an intra mode or a large data processing unit of a chroma component may be defined according to an introduction of an encoding mode of a large data processing unit.
  • an encoding mode of a large data processing unit may include an intra mode (Intra_32 ⁇ 32) of a 32 ⁇ 32 super macroblock, an intra mode (Intra_16 ⁇ 16) of a 16 ⁇ 16 macroblock, and a 16 ⁇ 16 macro.
  • Intra mode (Cr_16 ⁇ 16, Cb_16 ⁇ 16) for the chroma component of the block may be newly included.
  • the context of the coding block pattern of the current data processing unit is preferably set to one context for the coding block pattern for each large data processing unit.
  • the context of the coding block pattern in the inter mode may be set in the same manner as the context of the coding block pattern for an 8x8 macroblock which is an existing inter mode. Accordingly, the context of the current 8x8 macroblock may be determined using the context of the neighboring 8x8 macroblock in inter mode.
  • the decoding stage when decoding an image bitstream encoded by entropy encoding based on a large data processing unit, entropy decoding considering the large data processing unit is necessary. For example, the decoding unit according to an embodiment reconstructs an image by entropy decoding using an encoding block pattern for each 16 ⁇ 16 macroblock.
  • FIGS. 30A, 30B, 30C, 30D, 30E, and 30F illustrate block diagrams of modified embodiments of the image decoding apparatus 200 considering data processing units dynamically determined according to one embodiment, respectively.
  • the group decoder 230 considers entropy decoding, inverse quantization and inverse frequency transformation, intra estimation and motion in consideration of the large data processing unit.
  • a reconstructed image is generated through compensation and in-loop filtering.
  • the receiver 210 may receive an image bitstream transmitted from the image encoding apparatus 100, and the group encoding mode reader 220 may read an encoding mode from the image bitstream.
  • the encoding mode can be read from syntax, flags, and the like.
  • the group decoder 230 encodes the group data based on the read encoding mode.
  • the group decoder 230 may perform a unique process that is distinguished from an existing video encoding / decoding format for decoding in consideration of a dynamically determined data processing unit.
  • the unique processes considering the large data processing unit among the dynamically determined data processing units correspond to the techniques described above with reference to FIGS. 21 to 29B.
  • a unique process for each process of the group decoder 230 will be described in detail.
  • 30A illustrates a block diagram of entropy decoding considering a large data processing unit for the group decoder 230 of the image decoding apparatus 200 according to an exemplary embodiment.
  • the first embodiment of the group decoder 230 of the image decoding apparatus 200 includes an entropy decoder 3010, an intra estimator and a motion compensator 233, and inverse quantization considering a large data processing unit. And an inverse frequency converter 237 and an in-loop filter 239.
  • the entropy decoding unit 3010 considering the large data processing unit according to the first embodiment of the group decoding unit 230 performs entropy decoding by the large data processing unit based on the encoding mode read by the group encoding mode reading unit 220. Can be done. Entropy decoding performed by the entropy decoding unit 3010 is [[VI. Entropy encoding]] is the operation of decoding the entropy encoded bitstream.
  • the coding block pattern described above with reference to FIGS. 28 to 29B may be used in the entropy decoding unit 3010 according to an embodiment.
  • the read coding block pattern may be encoded by being scanned according to a direction in which a coding block pattern other than '0' has a high probability of occurrence.
  • the entropy decoding unit 3010 considering the large data processing unit according to the first embodiment of the group decoder 230 may perform context-based adaptive binary processing on the large data processing unit in order to perform entropy decoding by the large data processing unit.
  • Arithmetic coding (CABAC) or context-based adaptive variable length coding (CAVLC) may be used.
  • the entropy decoding unit 3010 considering the large data processing unit according to the first embodiment of the group decoder 230 may decode a newly set context for an encoding block pattern based on the large data processing unit.
  • FIG. 30B is a block diagram when motion estimation processing considering a large data processing unit is applied to the group decoder 230 of the image decoding apparatus 200 according to an embodiment.
  • a second embodiment of the group decoder 230 of the image decoding apparatus 200 includes an entropy decoder 231, an intra estimator and a motion compensator 3030 according to processing considering a large data processing unit. And an inverse quantization and inverse frequency converter 237 and an in-loop filter 239.
  • the intra estimator and the motion compensator 3030 according to the processing considering the large data processing unit according to the second embodiment of the group decoder 230 are large data based on the encoding mode read by the group encoding mode reading unit 220.
  • motion estimation or compensation may be performed according to a process.
  • processing considering a large data processing unit is [[III. Motion estimation processing].
  • the data processing unit may be determined by a combination of a large data processing unit for motion estimation and a data processing unit for frequency conversion.
  • the intra estimator and the motion compensator 3030 perform motion estimation for each data processing unit determined in consideration of the large data processing unit.
  • the scan scheme and the possibility of referencing neighboring blocks of neighboring blocks can be used.
  • a preferred embodiment of a scan scheme for motion estimation for each data processing unit and the possibility of referencing a neighboring block of a neighboring block has been described above with reference to FIGS. 13, 21, and 22.
  • the intra estimator and the motion compensator 3030 according to the processing considering the large data processing unit according to the second embodiment of the group decoder 230 may use a simplified encoding mode in which only a large data processing unit having a square shape is used. It is available. Preferred embodiments of the simplified encoding mode have been described above with reference to FIGS. 23A and 23B.
  • FIG. 30C illustrates a block diagram when intra estimation considering large data processing units is applied to the group decoder 230 of the image decoding apparatus 200 according to an embodiment.
  • a third embodiment of the group decoder 230 of the image decoding apparatus 200 includes an entropy decoder 231, an intra estimator 3040 and a motion compensator 235 considering a large data processing unit. And an inverse quantization and inverse frequency converter 237 and an in-loop filter 239.
  • the image is [III-1. [Intra Estimation]], when encoded according to the unique process according to the embodiment described above, the video decoding apparatus 200 also [[III-1. Intra estimation] based on the process described above.
  • the intra estimator 3040 considering the large data processing unit according to the third embodiment of the group decoder 230 may use an intra mode added to a predetermined large data processing unit.
  • the intra estimator 3040 may use a 32 ⁇ 32 super macroblock in an intra mode, a 16 ⁇ 16 super macroblock in an intra mode, or the like.
  • the intra estimator 3040 considering the large data processing unit according to the third embodiment of the group decoder 230 estimates using the complex plain in the intra mode for more accurate motion estimation of the large data processing unit. Mode can be introduced.
  • the intra estimator 3040 considering the large data processing unit according to the third embodiment of the group decoder 230 may perform intra estimation using only a limited type of large data processing unit.
  • FIG. 30D is a block diagram of a case where motion compensation considering a large data processing unit is applied to the group decoder 230 of the image decoding apparatus 200 according to an embodiment.
  • a fourth embodiment of the group decoder 230 of the image decoding apparatus 200 includes an entropy decoder 231, an intra estimator 234, and a motion compensation unit 3050 in consideration of a large data processing unit. And an inverse quantization and inverse frequency converter 237 and an in-loop filter 239.
  • [[III-2. Inter estimation] is preferably performed based on a unique process that is different from the embodiment described above.
  • the motion compensation unit 3050 considering the large data processing unit according to the fourth embodiment of the group decoder 230 may introduce a mixed mode in which inter estimation and intra estimation may be mixed as an estimation mode of the large data processing unit. Can be.
  • the motion compensation unit 3050 considering the large data processing unit according to the fourth embodiment of the group decoder 230 may use the motion vector MV and the motion vector estimator MVP determined for each large data processing unit.
  • the motion compensation unit 3050 considering the large data processing unit according to the fourth embodiment of the group decoder 230 uses a new skip mode defined for each large data processing unit and includes a plurality of skip processing data processing units.
  • the skip group can be skipped at the same time.
  • FIG. 30E illustrates a block diagram when inverse quantization and inverse frequency transformation are applied to a group decoder 230 of the image decoding apparatus 200 in consideration of a large data processing unit.
  • the inverse quantization considering the entropy decoder 231, the intra estimator and the motion compensator 233, and the large data processing unit is performed.
  • the inverse quantization and inverse frequency converter 3070 considering the large data processing unit is [[IV. Frequency conversion and quantization]], it is preferable to perform the reverse process of the frequency conversion and quantization technique according to the embodiment described above.
  • the inverse quantization and inverse frequency converter 3070 considering the large data processing unit according to the fifth embodiment of the group decoder 230 performs large data processing to perform inverse quantization and inverse frequency conversion by the large data processing unit. Integer discrete cosine inverse transformation and inverse quantization based on unit may be performed.
  • the inverse quantization and inverse frequency converter 3070 considering the large data processing unit according to the fifth embodiment of the group decoder 230 performs large data processing to perform inverse frequency transformation and inverse quantization by the large data processing unit.
  • Discrete cosine inverse transformation and inverse quantization may be performed on the chroma component of the unit.
  • the inverse quantization and inverse frequency transformer 3070 considering the large data processing unit according to the fifth embodiment of the group decoder 230 may increase the amount of computation that may be increased by the discrete cosine inverse transform based on the large data processing unit.
  • FIG. 30F illustrates a block diagram when in-loop filtering considering large data processing units is applied to the group decoder 230 of the image decoding apparatus 200 according to an embodiment.
  • a sixth embodiment of the group decoder 230 of the image decoding apparatus 200 includes an entropy decoder 231, an intra estimator and a motion compensator 233, an inverse quantization and an inverse frequency transform unit ( 237) and an in-loop filtering unit 3090 considering a large data processing unit.
  • the in-loop filtering unit 3090 considering the large data processing unit is [[V. In-loop filtering]], it is preferable to perform an operation corresponding to the in-loop filtering according to the embodiment described above.
  • the in-loop filtering unit 2007 considering the large data processing unit according to the sixth embodiment of the group decoder 230 may determine whether to perform filtering on the boundary of the lower processing unit inside the large data processing unit. .
  • the filtering strength may be adjusted for each boundary of the lower processing unit inside the large data processing unit.
  • the in-loop filtering unit 2007 considering the large data processing unit according to the sixth embodiment of the group decoder 230 may perform in-loop filtering to reduce the ringing effect in the large data processing unit.
  • the first to sixth embodiments of the group decoder 230 described above with reference to FIGS. 30A to 30F are different from the existing 16x16, 8x8, and 4x4 blocks according to the read encoding mode.
  • the data of the group may be decoded using the data processing unit.
  • various processes using the large data processing unit may be applied to the existing video encoding / decoding format.
  • 31A, 31B, 31C, 31D, 31E, and 31F illustrate a flowchart of a modified embodiment of the image encoding method 1800, considering data processing units dynamically determined according to one embodiment, respectively.
  • step 1810 image data classified into basic blocks is classified into an extended concept including groups, subgroups, and basic blocks.
  • operation 1820 information about a data processing unit used to encode the group and an encoding mode of the group are determined.
  • the encoding mode of the group may include an encoding mode considering a large data processing unit.
  • frequency conversion and quantization, motion estimation, in-loop filtering, and entropy encoding processes may be performed to encode the group.
  • Figs. 31A to 31F each process-specific process for encoding a group is described in detail.
  • FIG. 31A is a flowchart illustrating a case where frequency transform and quantization in consideration of a large data processing unit are applied to a group encoding step 1830 of an image encoding method 1800 according to an embodiment of the present invention.
  • the data of the group is encoded through frequency transformation and quantization according to an encoding mode considering a large data processing unit.
  • Large block-based integer discrete cosine transform and quantization (2032), discrete cosine transform and quantization (2034) for chroma components of large block, discrete block based discrete cosine transform for frequency conversion and quantization considering large data processing unit At least one of the low complexity operations 2036 may be performed.
  • FIG. 31B is a flowchart of a case in which motion estimation by processing considering a large data processing unit is applied to the group encoding step 1830 of the image encoding method 1800 according to an embodiment of the present invention.
  • the data of the group is encoded through motion estimation processing according to an encoding mode considering the large data processing unit.
  • a combination 2052 of a large block for motion estimation and a large block for frequency conversion, a block scanning method for motion estimation, and a neighboring block reference possibility 2054 of neighboring blocks At least one of the simplified mode 2056 of the large block may be performed.
  • FIG. 31C is a flowchart of a case in which an intra estimation considering a large data processing unit is applied to a group encoding step 1830 of the image encoding method 1800 according to an embodiment of the present invention.
  • the data of the group is encoded through intra estimation according to an encoding mode considering a large data processing unit.
  • intra estimation considering the large data processing unit, at least one of a large block based intra mode 2062, introduction of a complex plane for intra estimation 2064, and determination of an estimable intra mode 2066 may be performed. .
  • FIG. 31D is a flowchart of a case in which inter estimation considering a large data processing unit is applied to a group encoding step 1830 of the image encoding method 1800 according to an embodiment of the present invention.
  • the data of the group is encoded through inter estimation according to an encoding mode considering a large data processing unit.
  • an introduction of an intra mode and an inter mode estimation mode is introduced 2207, a method of determining a motion vector (MV) of a large block, and a method of deriving a motion vector estimator (MVP) 2074.
  • MV motion vector
  • MVP motion vector estimator
  • FIG. 31E illustrates a flowchart when in-loop filtering considering large data processing units is applied to a group encoding step 1830 of the image encoding method 1800 according to an embodiment of the present invention.
  • the data of the group is encoded through in-loop filtering according to an encoding mode considering the large data processing unit.
  • in-loop filtering considering the large data processing unit, at least one of filtering and determining the strength of the boundary inside the large block 2208 and ringing effect reduction filtering 2084 inside the large block may be performed.
  • FIG. 31F is a flowchart of a case in which entropy encoding considering a large data processing unit is applied to a group encoding step 1830 of the image encoding method 1800 according to an embodiment of the present invention.
  • the group data is encoded through entropy encoding according to an encoding mode considering a large data processing unit.
  • the coding block pattern (CBP) for large blocks and coding block pattern scanning method 2092, context-based adaptive binary arithmetic coding (CABAC) or context-based consideration of large blocks At least one of introduction 2094 of adaptive variable length coding (CAVLC) and context setting 2096 for a coding block pattern of a large block may be performed.
  • 32A, 32B, 32C, 32D, 32E, and 32F illustrate a flowchart of a modified embodiment of the image decoding method 1900, taking into account dynamically determined data processing units, according to an embodiment.
  • an image bitstream is received and parsed.
  • the received video bitstream includes data encoded in basic blocks, groups, and subgroups.
  • the coding mode of the group indicating the coding method of the group is read.
  • the coding mode of the group may include a data processing unit of the group and a motion estimation mode such as an intra mode, an inter mode, a skip mode, and the like.
  • entropy decoding, inverse frequency transform and inverse quantization, motion estimation and compensation, and in-loop filtering may be performed to decode the group.
  • 32A to 32F a unique process for each process for decoding a group is described in detail.
  • 32A is a flowchart of a case in which entropy decoding considering a large data processing unit is applied to the group decoding step 1930 of the image decoding method 1900 according to an embodiment.
  • step 1931 the data of the group is decoded through entropy encoding considering the large data processing unit.
  • coding block patterns based on large data processing units may be used.
  • Entropy coding considering large data processing units may use context-based adaptive binary arithmetic coding (CABAC) or context-based adaptive variable length coding (CAVLC) for large data processing units.
  • CABAC context-based adaptive binary arithmetic coding
  • CAVLC context-based adaptive variable length coding
  • the coding block pattern may be decoded using a newly set context for the coding block pattern based on the large data processing unit.
  • 32B is a flowchart of a case in which motion estimation processing considering a large data processing unit is applied to the group decoding step 1930 of the image decoding method 1900, according to an exemplary embodiment.
  • the data of the group is decoded through motion estimation or compensation performed according to a process considering a large data processing unit.
  • the data processing unit may be determined by a combination of a large data processing unit for motion estimation and a data processing unit for frequency conversion.
  • the scan method for motion estimation for each data processing unit determined in consideration of the large data processing unit and the possibility of referencing the neighboring block of the neighboring block may be used.
  • processing considering a large data processing unit for intra estimation and motion compensation may use a simplified encoding mode in which only a large data processing unit having a square shape is used.
  • 32C is a flowchart of an example in which intra estimation considering large data processing units is applied to the group decoding step 1930 of the image decoding method 1900, according to an exemplary embodiment.
  • the data of the group is decoded through intra estimation according to an encoding mode considering a large data processing unit.
  • An intra estimating step considering the large data processing unit according to an embodiment may use an intra mode added to the large data processing unit.
  • An estimation mode using a complex plain may be introduced into an intra mode considering a large data processing unit.
  • Intra estimation taking into account large data processing units may be performed only for a limited kind of large data processing units.
  • 32D is a flowchart of a case in which motion compensation considering a large data processing unit is applied to the group decoding step 1930 of the image decoding method 1900, according to an exemplary embodiment.
  • the data of the group is decoded through motion compensation according to an encoding mode considering a large data processing unit.
  • a mixed mode in which inter estimation and intra estimation may be mixed as an estimation mode of the large data processing unit.
  • the motion vector MV and the motion vector estimator MVP determined for each large data processing unit may be used for motion compensation.
  • a new skip mode defined for each large data processing unit is used, and a skip group including data processing units of a plurality of skip modes may be simultaneously skipped.
  • 32E is a flowchart of a case in which inverse quantization and inverse frequency transformation are applied in consideration of a large data processing unit in a group decoding step 1930 of the image decoding method 1900, according to an exemplary embodiment.
  • the data of the group is decoded through inverse quantization and inverse frequency transformation according to an encoding mode considering large data processing units.
  • integer discrete cosine inverse transformation and inverse quantization based on large data processing units may be performed.
  • Discrete cosine inverse transform and inverse quantization may be performed on the chroma component of the large data processing unit.
  • Discrete cosine inverse transforms for low complexity operations may be performed to reduce the burden of computation that may be increased by the discrete cosine inverse transform based on large data processing units.
  • 32F is a flowchart of a case where in-loop filtering considering a large data processing unit is applied to the group decoding step 1930 of the image decoding method 1900 according to an embodiment.
  • the data of the group is decoded through in-loop filtering considering a large data processing unit.
  • in-loop filtering considering the large data processing unit, it may be determined whether to perform filtering on the boundary of the lower processing unit inside the large data processing unit.
  • the filtering strength may be adjusted for each boundary of the lower processing unit inside the large data processing unit.
  • in-loop filtering may be performed to reduce the ringing effect inside the large data processing unit.
  • the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.
  • the computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, a DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

Landscapes

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

Abstract

본 발명은 동적으로 결정된 데이터 처리 단위에 기초하는 영상 부호화 및 복호화에 관한 것이다. 본 발명은, 기본블록으로 분류된 영상 데이터에 대해, 적어도 하나의 기본블 록을 포함하는 그룹 및 적어도 하나의 기본블록을 포함하며 그룹에 포함되는 서브 그룹으로 영상 데이터를 분류하여, 소정 그룹을 부호화하기 위해, 그룹, 서브그룹 및 기본블록 중 하나의 데이터 처리 단위에 의해 소정 그룹의 데이터를 부호화하는 방식을 나타내는 그룹의 부호화 모드를 결정하고, 결정된 부호화 모드에 따라 그룹의 데이터를 부호화하는 영상 부호화 방법을 개시한다. 영상 부호화 과정 중 각각의 세부 과정들은 그룹의 부호화 모드를 고려하여 수행된다.

Description

영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
기술분야
본 발명은, 영상의 부호화 및 복호화에 관한 것이다.
배경기술
기존의 MPEG2, MPEG4, H.264/AVC와 같은 블록 기반 비디오 부복호화 방식에서 매크로블록의 크기는 16×16 으로 고정되어 있다. 특히, H.264/AVC의 경우 좀 더 정확한 추정 또는 예측을 위해서 8×8 이하의 4×4 블록으로 세분하여 사용하기도 한다.
도면의 간단한 설명
도 1 은 본 발명의 일 실시예에 따른 영상 부호화 장치의 블록도를 도시한다.
도 2 는 본 발명의 일 실시예에 따른 영상 복호화 장치의 블록도를 도시한다.
도 3 은 본 발명에서 제안하는 데이터 처리 단위인 그룹의 개념을 도시한다.
도 4 는 본 발명에서 제안하는 데이터 처리 단위인 서브그룹의 일 예를 도시한다.
도 5 는 본 발명에서 제안하는 데이터 처리 단위인 서브그룹의 다른 예를 도시한다.
도 6 은 본 발명의 일 실시예에 따른 부호화 모드의 신택스를 도시한다.
도 7 은 데이터 처리 단위 별 부호화 방식의 일례를 도시한다.
도 8 은 본 발명의 일 실시예에 따라 그룹의 부호화 모드를 결정하는 부호화 방법의 흐름도를 도시한다.
도 9 은 본 발명의 일 실시예에 따라 부호화 모드를 판독하여 복호화하는 방법의 흐름도를 도시한다.
도 10 은 본 발명에서 가능한 데이터 처리 단위의 계층적 구조를 도시한다.
도 11 은 본 발명의 다른 실시예에 따른 수퍼 매크로블록 및 매크로블록 단위에 의한 부호화 모드의 신택스를 도시한다.
도 12 는 본 발명의 다른 실시예에 따라 부호화 모드가 스킵 모드인 경우 움직임 벡터 추정 방식을 도시한다.
도 13 은 본 발명의 다른 실시예의 데이터 처리 단위별 부복호화 처리 순서를 도시한다.
도 14 는 본 발명의 다른 실시예의 주파수 계수의 배열 방식을 도시한다.
도 15 는 기존 부호화 방식 및 본 발명의 다른 실시예에 따른 CBP(Coded Block Pattern) 및 계수 블록 크기와 관련된 신택스 부호화 방식을 비교한다.
도 16 은 본 발명의 다른 실시예의 CBP 관련 신택스를 도시한다.
도 17 은 본 발명의 다른 실시예의 B 프레임의 부호화 모드를 도시한다.
도 18 은 본 발명의 일 실시예에 따른 영상 부호화 방법의 흐름도를 도시한다.
도 19 는 본 발명의 일 실시예에 따른 영상 복호화 방법의 흐름도를 도시한다.
도 20a, 20b, 20c, 20d, 20e 및 20f 는 각각 일 실시예에 따라 동적으로 결정된 데이터 처리 단위를 고려하는 영상 부호화 장치(100)의 변형 실시예의 블록도를 도시한다.
도 20g 은 본 발명의 일 실시예에 따라 동적으로 결정된 데이터 처리 단위를 고려한 영상 부호화 방법의 흐름도를 도시한다.
도 21 은 본 발명의 일 실시예에 따른 대형 데이터 처리 단위를 고려한 움직임 추정을 위해 데이터 처리 단위별 스캔 방식을 도시한다.
도 22 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위를 고려한 움직임 추정에서, 인접하는 이웃 데이터 처리 단위의 이용 가능성을 도시한다.
도 23a 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위 중 간소화된 계층적 데이터 처리 단위를 도시한다.
도 23b 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위를 고려한 신택스를 도시한다.
도 24a, 24b 및 24c 는 본 발명의 일 실시예에 따른 스킵 그룹의 여러 가지 구성 방식을 도시한다.
도 25a 및 25b 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위 내의 움직임 벡터 유도 방식과 하위 데이터 처리 단위의 움직임 벡터 유도 방식을 도시한다.
도 26a 및 26b 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위의 크로마 성분을 위한 여러 가지 움직임 추정 방식을 도시한다.
도 27 은 본 발명의 일 실시예에 따른 대형 데이터 처리 단위의 크로마 성분에 대한 데이터 처리 단위의 사이즈를 유도하는 방식을 도시한다.
도 28 은 본 발명의 일 실시예에 따른 대형 데이터 처리 단위를 고려한 부호화 블록 패턴을 이용하는 방법의 흐름도를 도시한다.
도 29a 및 29b 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위를 고려한 부호화 블록 패턴을 스캔하는 여러 가지 방식을 도시한다.
도 30a, 30b, 30c, 30d, 30e 및 30f 는 각각 일 실시예에 따라 동적으로 결정된 데이터 처리 단위를 고려하는 영상 복호화 장치(200)의 변형 실시예의 블록도를 도시한다.
도 31a, 31b, 31c, 31d, 31e 및 31f는 각각 일 실시예에 따라 동적으로 결정된 데이터 처리 단위를 고려하는 영상 부호화 방법(1800)의 변형 실시예의 흐름도를 도시한다.
도 32a, 32b, 32c, 32d, 32e 및 32f는 각각 일 실시예에 따라 동적으로 결정된 데이터 처리 단위를 고려하는 영상 복호화 방법(19100)의 변형 실시예의 흐름도를 도시한다.
기술적 과제
본 발명은 동적으로 결정된 데이터 처리 단위에 기초하는 영상 부호화 및 복호화에 관한 것이다.
기술적 해결방법
본 발명의 일 실시예에 의한 영상 부호화 방법은, 기본블록으로 분류된 영상에 대해, 적어도 하나의 기본블록을 포함하는 그룹 및 적어도 하나의 기본블록을 포함하며 상기 그룹에 포함되는 서브그룹으로 상기 영상 데이터를 분류하는 단계; 상기 소정 그룹을 부호화하기 위해, 상기 그룹, 서브그룹 및 기본블록 중 하나의 데이터 처리 단위에 의해 소정 그룹의 데이터를 부호화하는 방식을 나타내는 상기 소정 그룹의 부호화 모드를 결정하는 단계; 및 상기 결정된 부호화 모드에 따라 상기 소정 그룹의 데이터를 부호화하는 단계를 포함한다.
발명의 실시를 위한 최선의 형태
본 발명의 일 실시예에 의한 영상 부호화 방법은, 기본블록으로 분류된 영상에 대해, 적어도 하나의 기본블록을 포함하는 그룹 및 적어도 하나의 기본블록을 포함하며 상기 그룹에 포함되는 서브그룹으로 상기 영상 데이터를 분류하는 단계; 상기 소정 그룹을 부호화하기 위해, 상기 그룹, 서브그룹 및 기본블록 중 하나의 데이터 처리 단위에 의해 소정 그룹의 데이터를 부호화하는 방식을 나타내는 상기 소정 그룹의 부호화 모드를 결정하는 단계; 및 상기 결정된 부호화 모드에 따라 상기 소정 그룹의 데이터를 부호화하는 단계를 포함한다.
일 실시예에 따른 영상 부호화 방법은, 상기 소정 그룹의 부호화 모드를 나타내는 플래그를 부호화하는 단계를 더 포함할 수 있다.
일 실시예에 따른 영상 부호화 방법의 상기 데이터 분류 단계는, 상기 그룹에 포함되는 기본블록의 개수를 나타내는 그룹의 크기 및 상기 그룹에 포함되는 기본블록에 의해 형성되는 그룹의 형태를 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 영상 부호화 방법의 상기 데이터 분류 단계는, 상기 그룹에 포함되는 서브그룹의 개수를 나타내는 레벨 및 상기 기본블록의 스캔 순서에 기초하여, 상기 그룹의 서브그룹을 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 영상 부호화 방법의 상기 부호화 모드는, 상기 그룹의 데이터의 부호화가 수행되는 데이터 처리 단위로써, 상기 그룹 단위, 상기 서브그룹 단위, 상기 기본블록 단위 중 어느 하나인지를 나타내는 데이터 처리 단위의 종류에 관한 정보; 상기 데이터 처리 단위에 포함되는 기본블록의 개수를 나타내는 상기 데이터 처리 단위의 크기에 관한 정보; 및 상기 데이터 처리 단위에 대한 움직임 추정을 위해 상기 데이터 처리 단위에 대응되는 참조 정보를 결정하는 방식을 나타내는 추정 모드에 관한 정보 중 적어도 하나를 포함할 수 있다.
일 실시예에 따른 영상 부호화 방법의 상기 부호화 모드 결정 단계는, 상기 그룹의 소정 데이터 처리 단위별로, 적어도 하나의 추정 모드에 따라 상기 데이터 처리 단위에 대한 부호화를 수행하는 단계; 상기 소정 데이터 처리 단위 및 추정 모드의 조합별로 부호화에 의한 오차율을 산출하는 단계; 및 상기 산출된 오차율 중 최소의 오차율에 대응하는 상기 소정 데이터 처리 단위의 추정 모드를 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 영상 부호화 방법의 상기 부호화 모드 결정 단계는, 상기 그룹 내 데이터 처리 단위 별로 추정 모드를 고려한 부호화 오차율들을 비교하여, 최소의 오차율에 대응하는 데이터 처리 단위 및 추정 모드의 조합을 상기 그룹의 부호화 모드로 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 영상 부호화 방법은, 그룹 단위 및 서브그룹 단위 중 하나의 데이터가 주파수 변환된 계수를 복수 개의 기본블록 단위로 재배열하는 단계를 더 포함할 수 있다.
일 실시예에 따른 상기 영상 부호화 방법은, 상기 주파수 변환된 계수가 기본 블록 단위로 재배열되었는지 여부를 나타내는 플래그를 부호화하는 단계를 더 포함할 수 있다.
일 실시예에 따른 상기 영상 부호화 방법은, 상기 그룹 내 데이터의 주파수 변환을 위한 데이터 처리 단위를 나타내는 플래그를 부호화하는 단계를 더 포함할 수 있다.
일 실시예에 따른 상기 데이터 분류 단계는, 상기 영상 데이터의 픽처, 시퀀스 및 그룹 중 하나의 데이터 단위별로 상기 그룹 단위 크기, 형태 및 최대 레벨을 결정할 수 있다.
본 발명의 일 실시예에 따른 영상 복호화 방법은, 기본블록, 적어도 하나의 기본블록을 포함하는 그룹, 및 적어도 하나의 기본블록을 포함하며 상기 그룹에 포함되는 서브그룹 중 하나의 데이터 처리 단위로 부호화된 데이터를 수신하여 파싱하는 단계; 상기 파싱된 데이터로부터, 상기 그룹, 서브그룹 및 기본블록 중 하나의 데이터 처리 단위에 의해 소정 그룹의 데이터를 부호화한 방식을 나타내는 상기 소정 그룹의 부호화 모드를 판독하는 단계; 및 상기 판독된 부호화 모드에 기초하여 상기 소정 그룹의 데이터를 복호화하는 단계를 포함한다.
일 실시예에 따른 영상 복호화 방법의 상기 부호화 모드 판독 단계는, 상기 파싱된 데이터로부터, 복호화를 위한 데이터 처리 단위로써 설정된 그룹의 형태, 상기 그룹 내에 포함되는 기본블록의 개수를 나타내는 그룹의 크기 및 상기 그룹 내 서브그룹의 최대 개수에 관한 최대 레벨 정보를 판독하는 단계; 및 상기 그룹의 형태 및 상기 그룹의 크기에 관한 정보를 이용하여, 상기 파싱된 영상 데이터를 분류하여 복호화하기 위한 데이터 처리 단위인 그룹을 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 영상 복호화 방법에서 상기 그룹 단위는, 상기 영상 데이터의 픽처, 시퀀스 및 그룹 중 하나의 데이터 단위 별로 설정될 수 있다.
일 실시예에 따른 영상 복호화 방법에서 상기 서브그룹은, 상기 그룹에 포함되는 서브그룹의 개수를 나타내는 레벨, 및 상기 기본블록의 스캔 순서에 기초하여 설정될 수 있다.
일 실시예에 따른 영상 복호화 방법의 상기 부호화 모드 판독 단계는, 상기 소정 그룹에 대한 데이터로부터 상기 소정 그룹의 부호화 모드를 나타내는 부호화 모드 플래그를 추출하는 단계; 및 상기 부호화 모드 플래그를 이용하여 상기 소정 그룹의 부호화 모드를 판독하는 단계를 포함할 수 있다.
일 실시예에 따른 영상 복호화 방법에서 상기 그룹의 부호화 모드는, 상기 그룹의 데이터가 부호화된 데이터 처리 단위가, 상기 그룹, 상기 서브그룹, 상기 기본블록 중 어느 하나인지를 나타내는 데이터 처리 단위의 종류에 관한 정보; 상기 데이터 처리 단위에 포함되는 기본블록의 개수를 나타내는 데이터 처리 단위의 크기에 관한 정보; 및 상기 데이터 처리 단위에 대한 움직임 추정을 위해 상기 데이터 처리 단위에 대응되는 참조 정보를 결정하는 방식을 나타내는 추정 모드에 관한 정보 중 적어도 하나를 포함할 수 있다.
일 실시예에 따른 영상 복호화 방법의 상기 그룹 복호화 단계는, 상기 부호화 모드의 상기 데이터 처리 단위의 종류에 관한 정보 및 크기에 관한 정보에 기초하여 복호화를 수행할 데이터 처리 단위를 결정하는 단계; 상기 부호화 모드의 추정 모드에 관한 정보에 기초하여 상기 데이터 처리 단위의 추정 모드를 결정하는 단계; 및 상기 결정된 데이터 처리 단위 및 추정 모드에 기초하여, 상기 그룹에 대한 영상 데이터를 복호화하는 단계를 포함할 수 있다.
일 실시예에 따른 영상 복호화 방법에서 상기 부호화 모드는, 상기 그룹에 대한 부호화 중, 상기 그룹 내의 데이터 처리 단위별로, 적어도 하나의 추정 모드에 따른 소정 데이터 처리 단위에 대한 부호화를 수행하여 추정 모드별 부호화 오차율을 산출하고, 상기 데이터 처리 단위별로 상기 추정 모드별 부호화 오차율 중 최소의 오차율에 대응하는 상기 소정 데이터 처리 단위 및 추정 모드의 조합을 결정하여, 상기 그룹 내의 데이터 처리 단위 및 추정 모드의 조합 별로 부호화 오차율을 비교하여, 최소의 오차율을 갖는 데이터 처리 단위 및 추정 모드의 조합을 선택하여 상기 그룹의 부호화 모드로 설정된 것일 수 있다.
일 실시예에 따른 영상 복호화 방법에서 상기 기본 블록 단위의 복호화 처리 순서는 지그재그 스캔 방식일 수 있다.
일 실시예에 따른 영상 복호화 방법은, 복수 개의 기본 블록의 주파수 변환된 계수를 그룹 단위 및 서브그룹 단위 중 하나로 재배열하는 단계를 더 포함할 수 있다.
일 실시예에 따른 영상 복호화 방법은, 상기 파싱된 데이터로부터, 상기 그룹 단위 및 서브그룹 단위 중 하나의 데이터가 주파수 변환된 계수가 기본 블록 단위로 재배열되었는지 여부를 나타내는 플래그를 판독하는 단계를 더 포함할 수 있다.
일 실시예에 따른 영상 복호화 방법은, 상기 파싱된 데이터로부터, 상기 그룹 내 데이터의 주파수 변환을 위한 데이터 처리 단위를 나타내는 플래그를 판독하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 장치는, 기본블록으로 분류된 영상에 대해, 적어도 하나의 기본블록을 포함하는 그룹 및 적어도 하나의 기본블록을 포함하며 상기 그룹에 포함되는 서브그룹으로 상기 영상 데이터를 분류하는 데이터 분류부; 상기 그룹을 부호화하기 위해, 그룹 단위, 서브그룹 단위 및 기본블록 단위 중 적어도 하나의 데이터 처리 단위 및 상기 적어도 하나의 데이터 처리 단위에 의한 상기 그룹의 데이터의 부호화 방식을 나타내는 상기 그룹의 부호화 모드를 결정하는 그룹 부호화 모드 결정부; 및 상기 결정된 부호화 모드에 따라 상기 그룹의 데이터를 부호화하는 그룹 부호화부를 포함한다.
본 발명의 일 실시예에 따른 영상 복호화 장치는, 기본블록, 적어도 하나의 기본블록을 포함하는 그룹, 및 적어도 하나의 기본블록을 포함하며 상기 그룹에 포함되는 서브그룹 중 하나의 데이터 처리 단위로 부호화된 데이터를 수신하여 파싱하는 수신부; 상기 파싱된 데이터로부터, 상기 그룹, 서브그룹 및 기본블록 중 하나의 데이터 처리 단위에 의해 소정 그룹의 데이터를 부호화한 방식을 나타내는 상기 소정 그룹의 부호화 모드를 판독하는 그룹 부호화 모드 판독부; 및 상기 판독된 부호화 모드에 기초하여 상기 소정 그룹의 데이터를 복호화하는 그룹 복호화부를 포함한다.
일 실시예에 따라, 영상에 대한 데이터 처리 단위의 종류 및 움직임 추정 방식을 나타내는 부호화 모드가 결정되면, 부호화 모드에 대응하는 데이터 처리 단위 및 움직임 추정 모드를 고려하여 영상을 부호화한다.
본 발명의 일 실시예에 따라 동적으로 결정된 데이터 처리 단위에 의해 영상을 부호화하는 방법은, 상기 결정된 그룹의 부호화 모드에 대응하는 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 주파수 변환 및 양자화를 수행하는 단계; 상기 대형 데이터 처리 단위에 기초하여, 상기 입력 영상의 부호화를 위한 움직임 추정을 수행하는 단계; 상기 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 인루프 필터링을 수행하는 단계; 및 상기 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 엔트로피 부호화를 수행하는 단계를 더 포함한다.
일 실시예에 따라, 영상에 대한 데이터 처리 단위의 종류 및 움직임 추정 방식을 나타내는 부호화 모드가 판독되면, 부호화 모드에 대응하는 데이터 처리 단위 및 움직임 추정 모드를 고려하여 영상을 복호화한다.
본 발명의 일 실시예에 따라 동적으로 결정된 데이터 처리 단위에 의해 영상을 복호화하는 방법은, 상기 판독된 그룹의 부호화 모드에 대응되는 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 엔트로피 복호화를 수행하는 단계; 상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 역양자화 및 역주파수 변환을 수행하는 단계; 상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 움직임 추정을 수행하는 단계; 및 상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 인루프 필터링을 수행하는 단계를 더 포함한다.
본 발명의 일 실시예에 따라 동적으로 결정된 데이터 처리 단위에 의해 영상을 부호화하는 장치는, 상기 결정된 그룹의 부호화 모드에 대응하는 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 주파수 변환 및 양자화를 수행하는 주파수 변환 및 양자화부; 상기 대형 데이터 처리 단위에 기초하여, 상기 입력 영상의 부호화를 위한 움직임 추정을 수행하는 움직임 추정부; 상기 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 인루프 필터링을 수행하는 인루프 필터링부; 및 상기 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 엔트로피 부호화를 수행하는 엔트로피 부호화부를 더 포함한다.
본 발명의 일 실시예에 따라 동적으로 결정된 데이터 처리 단위에 의해 영상을 복호화하는 장치는, 상기 판독된 그룹의 부호화 모드에 대응되는 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 엔트로피 복호화를 수행하는 엔트로피 복호화부; 상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 역양자화 및 역주파수 변환을 수행하는 역양자화 및 역주파수 변환부; 상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 움직임 추정을 수행하는 움직임 추정부; 및 상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 인루프 필터링을 수행하는 인루프 필터링부를 더 포함한다.
일 실시예에 따른 상기 영상 부호화 방법 또는 상기 복호화 방법에서는, 상기 움직임 추정을 위한 데이터 처리 단위의 사이즈에 기초하여 상기 주파수 변환을 위한 데이터 처리 단위의 사이즈가 결정될 수 있다.
일 실시예에 따른 상기 영상 부호화 방법 및 상기 영상 복호화 방법의 움직임 추정 수행과 관련하여, 상기 대형 데이터 처리 단위에 기초하여, 순차적 움직임 추정을 위한 데이터 처리 단위별 스캔 순서가 결정될 수 있고, 현재 데이터 처리 단위의 우측 상단에 위치하는 이웃하는 데이터 처리 단위를 참조 블록으로 이용할 수 있는지 여부(Neighbor availability)가 결정될 수 있다.
일 실시예에 따라 상기 대형 데이터 처리 단위에 기초하는 움직임 추정은, 상기 대형 데이터 처리 단위 중 정사각 블록 형태의 데이터 처리 단위를 이용할 수 있다. 상기 정사각 블록 형태의 데이터 처리 단위에 기초하여 주파수 변환을 위한 데이터 처리 단위의 사이즈는 상기 정사각 블록 형태의 데이터 처리 단위보다 작거나 같은 소정 사이즈로 제한될 수 있다.
일 실시예에 따라 상기 대형 데이터 처리 단위에 기초하는 움직임 추정은, 상기 대형 데이터 처리 단위의 인트라 추정을 포함할 수 있으며, 또한 컴플렉스 플레인 형태를 이용한 인트라 모드에 기초하여 수행되는 상기 대형 데이터 처리 단위의 인트라 추정을 포함할 수 있다. 일 실시예에 따라 상기 대형 데이터 처리 단위에 기초하여, 인트라 모드로 움직임 추정이 가능한 데이터 처리 단위가 미리 설정될 수 있다.
일 실시예에 따른 상기 대형 데이터 처리 단위에 기초하는 움직임 추정은, 상기 대형 데이터 처리 단위에 기초한 인트라 모드 및 인터 모드가 혼합된 형태의 추정 모드로 수행되는 움직임 추정을 포함할 수 있으며, 인터 모드의 움직임 추정을 위한 움직임 벡터는 상기 대형 데이터 처리 단위에 기초하여 결정될 수 있다. 또한, 상기 대형 데이터 처리 단위에 기초하여 결정된 움직임 벡터에 대응하여 인터 모드를 위한 움직임 벡터 추정자가 유도될 수 있다.
일 실시예에 따른 상기 대형 데이터 처리 단위에 기초하는 움직임 추정과 관련하여, 상기 대형 데이터 처리 단위에 기초하여 확장된 형태의 스킵 모드가 결정될 수 있다. 또한, 상호 인접하는 적어도 하나의 스킵 모드의 데이터 처리 단위를 포함하는 스킵 그룹이 결정되고, 동일한 스킵 그룹에 포함되는 모든 데이터 처리 단위에 대해서는 동시에 스킵 모드로 움직임 추정이 수행될 수 있다.
일 실시예에 따른 상기 대형 데이터 처리 단위에 기초하는 상기 주파수 변환은, 상기 대형 데이터 처리 단위에 기초한 대형 블록 기반의 정수 이산 코사인 변환을 포함할 수 있다. 또한, 현재 데이터 처리 단위의 크로마 성분에 대해 상기 대형 데이터 처리 단위에 기초하여 결정된 소정 사이즈로 주파수 변환이 수행될 수 있다. 일 실시예에 따른 대형 데이터 처리 단위에 기초한 주파수 변환에 의해 발생하는 연산량 부담을 줄이도록 변형된 형태의 주파수 변환이 수행될 수 있다.
일 실시예에 따른 상기 대형 데이터 처리 단위에 기초하는 엔트로피 부호화는, 상기 대형 데이터 처리 단위에 기초하여 결정되는 데이터 처리 단위별 사이즈에 따라 계층적인 부호화 블록 패턴(coded block pattern)을 이용할 수 있다.
일 실시예에 따른 상기 대형 데이터 처리 단위에 기초하는 엔트로피 부호화는, 상기 현재 데이터 처리 단위를 상기 현재 데이터 처리 단위의 양자화된 계수들 중 0이 아닌 양자화된 계수가 존재할 확률에 기초하여 분류한 영역 별로 부호화 블록 패턴을 스캔할 수 있다. 상기 현재 데이터 처리 단위의 분류된 영역별 부호화 블록 패턴에 기초하여, 0이 아닌 계수가 포함된 영역만의 계수의 스트립이 스캔될 수 있다. 또한, 상기 0이 아닌 계수가 포함된 영역의 계수의 스트립을 나타내는 표시는 비트스트림에 포함되도록 부호화될 수 있으며, 비트스트림의 복호화 과정에서 0이 아닌 계수가 포함된 영역의 계수 스트립임을 나타내는 표시를 판독해낼 수 있다.
일 실시예에 따른 상기 엔트로피 부호화 또는 엔트로피 복호화는, 상기 대형 데이터 처리 단위에 기초하여 컨텍스트 기반 적응적 이진 산술 부호 기법(Context-based Adaptive Binary Arithmetic Code: CABAC) 또는 컨텍스트 기반 적응적 가변 길이 부호 기법(Context-based Adaptive Variable Length Code: CABAC)을 이용할 수 있다.
일 실시예에 따른 상기 대형 데이터 처리 단위에 기초하는 엔트로피 부호화 또는 엔트로피 복호화는, 상기 대형 데이터 처리 단위에 기초하는 인트라 모드 또는 크로마 성분에 대해 단일 컨텍스트로 결정된 부호화 블록 패턴을 이용할 수 있다.
일 실시예에 따른 상기 대형 데이터 처리 단위에 기초하는 인루프 필터링은, 상기 대형 데이터 처리 단위에 기초하여 현재 데이터 처리 단위 내부의 하위 데이터 처리 단위에 대한 디블로킹 필터링의 수행 여부를 포함할 수 있다. 또한, 상기 현재 데이터 처리 단위에 대한 디블로킹 필터링 중, 상기 현재 데이터 처리 단위 내부의 하위 데이터 처리 단위의 좌측 경계 또는 상단 경계에 대한 디블로킹 필터링, 소정 사이즈의 데이터 처리 단위로 주파수 변환된 상기 현재 데이터 처리 단위 내부의 하위 데이터 처리 단위의 경계에 대한 디블로킹 필터링은 제외될 수 있다.
또한, 일 실시예에 따른 상기 인루프 필터링에서는, 상기 현재 데이터 처리 단위의 크로마 성분에 대한 디블로킹 필터링 중, 상기 현재 데이터 처리 단위 내부의 하위 데이터 처리 단위의 크로마 성분의 경계에 대한 디블로킹 필터링이 제외될 수 있다. 일 실시예에 따른 상기 인루프 필터링은, 인터 모드 및 인트라 모드가 혼합된 형태로 움직임 추정이 수행된 상기 현재 데이터 처리 단위에 대한 디블로킹 필터링 중, 상기 현재 데이터 처리 단위 내부의 하위 데이터 처리 단위의 경계에 대한 디블로킹 필터링이 제외될 수 있다.
일 실시예에 따른 상기 인루프 필터링 수행과 관련하여, 상기 현재 데이터 처리 단위 내부의 적어도 하나의 하위 데이터 처리 단위의 경계에 대해, 경계별 디블로킹 필터링의 강도가 개별적으로 설정될 수 있다.
일 실시예에 따른 상기 인루프 필터링은, 상기 대형 데이터 처리 단위에 기초하여, 대형 사이즈인 현재 데이터 처리 단위에 대해 링잉 효과 감소를 위한 부가적인 필터링을 포함할 수 있다.
본 발명은, 본 발명의 일 실시예에 따라 동적으로 결정된 데이터 처리 단위에 의한 영상 부호화 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독가능한 기록 매체를 포함한다.
또한 본 발명은, 본 발명의 일 실시예에 따라 동적으로 결정된 데이터 처리 단위에 의한 영상 복호화 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독가능한 기록 매체를 포함한다.
발명의 실시를 위한 형태
이하, 본 명세서의 이해를 위해 본 발명의 실시예들의 목차를 소개한다.
먼저, [[Ⅰ. 데이터 처리 단위의 동적 결정]]에서 일 실시예에 따라 동적으로 결정되는 데이터 처리 단위 및 부호화 모드에 관해 상술된다.
[[Ⅱ. 동적으로 결정된 데이터 처리 단위에 의한 영상 부호화 장치]]에서는, 앞서 동적으로 결정된 데이터 처리 단위 및 부호화 모드에 따라 영상을 부호화하는 장치에 관해 기술된다.
일 실시예에 따라 동적으로 결정된 데이터 처리 단위에 의한 영상 부호화 장치의 각각의 세부 동작에 관하여, [[Ⅲ. 움직임 추정 프로세싱]], [[Ⅲ-1. 인트라 추정]], [[Ⅲ-2. 인터 추정]], [[Ⅳ. 주파수 변환 및 양자화]], [[Ⅴ. 엔트로피 부호화]]에서 상술된다.
[[Ⅶ. 동적으로 결정된 데이터 처리 단위에 의한 영상 복호화 장치]]에서는, 일 실시예에 따라 동적으로 결정된 데이터 처리 단위에 의한 영상 부호화 장치에 대응되는 일 실시예에 따라 동적으로 결정된 데이터 처리 단위에 의한 영상 복호화 장치에 관해 상술된다.
[[Ⅷ. 동적으로 결정된 데이터 처리 단위에 의한 영상 부호화 방법 및 영상 복호화 방법]]에서는, 일 실시예에 따라 동적으로 결정된 데이터 처리 단위에 의한 영상 부호화 방법 및 그에 대응하는 영상 복호화 방법이 상술된다.
[[Ⅰ. 데이터 처리 단위의 동적 결정]]
도 1 은 본 발명의 일 실시예에 따른 영상 부호화 장치의 블록도를 도시한다.
일 실시예에 따른 영상 부호화 장치(100)는 데이터 분류부(110), 그룹 부호화 모드 결정부(120), 그룹 부호화부(130)를 포함한다.
데이터 분류부(100)는 입력된 영상 데이터가 기본블록 단위로 분류되어 있는 경우, 기본블록에 기초하여 영상 데이터를 적어도 하나의 기본블록을 포함하는 그룹, 및 적어도 하나의 기본블록을 포함하며 그룹에 포함되는 서브그룹 및 기본블록으로 데이터를 분류하고, 분류된 데이터를 그룹 부호화 모드 결정부(120) 및 그룹 부호화부(130)로 출력한다.
기본블록, 그룹, 서브그룹은 영상 데이터를 부호화 처리하기 위한 데이터 처리 단위의 종류이다.
그룹은 기본블록의 개수를 나타내는 '크기' 및 그룹에 포함되는 기본블록에 의해 형성되는 '형태'의 속성을 가질 수 있다. 서브그룹은 그룹 내 서브그룹의 개수를 나타내는 '레벨' 및 그룹 내 기본블록 간의 '스캔순서'에 따라 결정된다. 크기, 형태, 최대 레벨, 스캔 순서 중 적어도 하나를 포함하는 그룹의 속성은 각각의 그룹, 픽처, 시퀀스별로 결정될 수 있다.
그룹의 결정 방식에 대해서는 이하 도 3, 서브그룹의 결정 방식에 대해서는 이하 도 4 및 5 에서 상술된다.
그룹 부호화 모드 결정부(120)는 그룹을 부호화하기 위해 이용되는 데이터 처리 단위, 즉, 그룹 단위, 서브그룹 단위 및 기본블록 단위 중 적어도 하나의 데이터 처리 단위에 의한 그룹 내 데이터의 부호화 방식에 관한 정보를 포함하는 그룹의 부호화 모드를 결정한다.
그룹 부호화 모드 결정부(120)의 일 실시예는 데이터 분류부(110)에서 분류된 그룹, 서브그룹, 기본블록 중 각각의 데이터 처리 단위별로 각각의 그룹의 데이터를 부호화하여 발생하는 오차율을 결정하고, 각각의 그룹의 데이터 처리 단위별 오차율에 기초하여 해당 그룹의 부호화 모드를 결정할 수 있다. 따라서, 그룹의 데이터 처리 단위별 오차율에 기초하여 동적으로 결정된 데이터 처리 단위에 의해 영상 데이터가 부호화된다.
그룹 부호화 모드 결정부(120)에서 결정하는 부호화 모드는, 그룹의 데이터를 그룹 단위, 서브그룹 단위, 기본블록 단위 중 어느 단위로 부호화 처리할지 여부를 나타내는 데이터 처리 단위의 종류에 관한 정보; 데이터 처리 단위에 포함되는 기본블록의 개수를 나타내는 데이터 처리 단위의 크기에 관한 정보; 데이터 처리 단위에 의한 움직임 추정을 위해 필요한 참조 정보를 결정하는 방식을 나타내는 추정 모드에 관한 정보; 중 적어도 하나를 포함한다.
그룹 부호화 모드 결정부(120)는 그룹의 데이터를 데이터 처리 단위별로 ,기본블록 단위로 부호화한 경우의 오차율, 서브그룹 단위로 부호화한 경우의 오차율, 그룹 단위로 부호화한 경우의 오차율을 산출하여 상호 비교하여, 가장 오차율이 적은 데이터 처리 단위를 해당 그룹의 부호화 처리 단위로 결정할 수 있다. 즉, 부호화 수행 및 오차율 산출 과정이 그룹 단위, 서브그룹 단위, 기본블록 단위마다 수행된다.
또한, 그룹 부호화 모드 결정부(120)의 일 실시예는, 각각의 데이터 처리 단위마다 여러 가지 추정 모드로 부호화한 경우의 오차율을 비교하여, 데이터 처리 단위별로 오차율이 가장 적은 추정 모드를 결정할 수 있다.
예를 들어, 그룹 부호화 모드 결정부(120)는 그룹의 데이터를 데이터 처리 단위마다 추정 모드로써 스킵 모드, 인터 모드, 인트라 모드로 부호화하고, 추정 모드별 부호화 오차율을 산출하여 비교하여, 가장 작은 오차율을 발생시키는 추정 모드를 해당 데이터 처리 단위의 대표 추정 모드로 결정할 수 있다. 즉, 추정 모드별 부호화 수행에 의한 오차율의 비교 및 그에 따른 대표 추정 모드 결정 과정이 그룹 단위, 서브그룹 단위, 기본블록 단위마다 수행된다.
그룹 부호화 모드 결정부(120)는 데이터 처리 단위 별로 대표 추정 모드의 오차율을 비교하여 가장 작은 오차율을 갖는 데이터 처리 단위를 해당 그룹의 데이터를 위한 대표 데이터 처리 단위로 결정할 수 있다. 가장 작은 오차율을 야기하는 대표 데이터 처리 단위 및 대표 추정 모드의 조합에 기초하여, 해당 그룹의 대표 데이터 처리 단위의 종류, 크기, 대표 추정 모드에 관한 정보가 해당 그룹의 부호화 모드로 결정된다.
그룹 부호화부(130)는 그룹 부호화 모드 결정부(120)에서 결정된 그룹별 부호화 모드에 따라 데이터 분류부(110)로부터 입력된 영상 데이터를 부호화하여 출력한다. 영상 부호화 장치(100)는 영상 데이터 이외에도 그룹별 부호화 모드를 나타내는 플래그를 부호화하는 그룹 부호화 모드 플래그를 더 부호화할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 기본블록 간의 래스터 스캔 방식 대신 지그재그 스캔 방식을 통해 한 픽처 내의 데이터를 부호화할 수 있다.
일 실시예에 따른 영상 부호화 장치(100)는 그룹 단위 및 서브그룹 단위 중 하나의 데이터가 주파수 변환된 계수를 복수 개의 기본블록 단위로 재배열할 수 있다. 일 실시예에 따른 영상 부호화 장치(100)는 기본블록 또는 서브그룹 단위로 영상 데이터를 주파수 변환할 수 있다. 이때 주파수 변환을 위한 데이터 처리 단위는 움직임 추정을 위한 데이터 처리 단위와 일치하지 않을 수도 있다.
일 실시예에 따른 영상 부호화 장치(100)는 소정 데이터 처리 단위의 데이터가 주파수 변환된 계수가 가변적인 데이터 처리 단위에 따라 재배열되었는지 여부를 나타내는 플래그를 부호화할 수도 있다.
도 2 는 본 발명의 일 실시예에 따른 영상 복호화 장치의 블록도를 도시한다.
일 실시예에 따른 영상 복호화 장치(200)는 수신부(210), 그룹 부호화 모드 판독부(220) 및 그룹 복호화부(230)를 포함한다. 기본블록, 그룹, 서브그룹, 부호화 모드 등의 개념은 일 실시예에 따른 영상 부호화 장치(100)의 설명에서 전술된 바와 동일하다.
수신부(210)는 기본 블록, 그룹, 서브그룹 중 하나의 데이터 처리 단위로 부호화된 데이터를 수신하고 파싱하여, 복호화될 정보들을 추출하고 그룹 부호화 모드 판독부(220) 및 그룹 복호화부(230)로 출력한다.
그룹 부호화 모드 판독부(220)는 수신부(210)에서 파싱된 데이터로부터 그룹의 부호화 모드를 판독하여, 그룹 복호화부(230)로 출력한다. 그룹 부호화 모드 판독부(220)는 파싱된 데이터로부터, 그룹의 형태, 크기, 최대 레벨에 관한 정보를 판독하고, 판독된 그룹의 형태 및 크기 정보를 이용하여 소정 그룹을 결정할 수 있다. 그룹의 속성은 그룹, 픽처, 시퀀스 등의 데이터 단위별로 설정되어 있을 수 있다.
다른 실시예의 그룹 부호화 모드 판독부(220)는 파싱된 데이터로부터 소정 그룹의 부호화 모드를 나타내는 그룹 부호화 모드 플래그를 추출하고, 그룹 부호화 모드 플래그를 이용하여 소정 그룹의 부호화 모드를 판독할 수 있다. 판독된 그룹별 부호화 모드는 각각의 그룹의 데이터를 복호화할 때 사용될 데이터 처리 단위의 종류, 크기, 추정 모드 등에 관한 정보를 포함하고 있다.
그룹 복호화부(230)는 그룹 부호화 모드 판독부(220)로부터 입력된 그룹별 부호화 모드를 이용하여, 수신부(210)에서 수신된 그룹별 데이터를 복호화하여 출력한다.
그룹 복호화부(230)는 부호화 모드 중 데이터 처리 단위의 종류 및 크기에 관한 정보에 기초하여 그룹의 데이터의 복호화를 위한 그룹 내 데이터 처리 단위를 결정하고, 부호화 모드 중 추정 모드에 관한 정보에 기초하여 해당 데이터 처리단위의 추정 모드를 결정할 수 있다. 그룹 복호화부(230)는 부호화 모드로부터 결정된 데이터 처리 단위 및 추정 모드에 기초하여 해당 그룹의 데이터를 복호화할 수 있다.
그룹 복호화부(230)는 기본블록 단위의 지그재그 스캔 방식에 따라 한 픽처의 데이터를 스캔함으로써 그룹별 부호화 모드를 판독하며 복호화할 수 있다.
일 실시예의 영상 복호화 장치(200)는 복수 개의 기본 블록의 주파수 변환된 계수를 그룹 단위 및 서브그룹 단위 중 하나로 재배열할 수도 있다. 일 실시예의 영상 복호화 장치(200)는 기본블록 또는 서브그룹 단위로 분류된 데이터를 주파수 역변환할 수도 있다.
영상 복호화 장치(200)는 파싱된 데이터로부터 그룹 단위 및 서브그룹 단위 중 하나의 데이터가 주파수 변환된 계수가 부호화 과정에서 기본 블록 단위로 재배열되어 있는지 여부를 나타내는 플래그를 더 추출할 수 있다. 계수 재배열 여부 플래그에 기초하여 복호화 과정에서 계수를 그룹 단위 및 서브그룹 단위 중 하나로 재배열할 수 있다.
도 3 은 본 발명에서 제안하는 데이터 처리 단위인 그룹의 개념을 도시한다.
대용량의 데이터를 처리할 수 있는 하드웨어 및 네트워크 환경이 구축되면서, 대용량의 데이터에 비해 기존의 매크로블록 단위가 유용한 정보를 수록하기에 상대적으로 작은 단위일 수 있다. 예를 들어, SD(Standard Definition)급 이상의 HD(High Definition)급 해상도 및 그 이상의 해상도에서는 작은 크기의 매크로블록으로 인하여 실제 텍스쳐 코딩에 사용되는 것이 바람직한 비트가 매크로블록 모드, 움직임 벡터 등의 매크로블록 심볼인 부가 정보에 할당됨으로써 RD 코스트(Rate-Distortion Cost)가 저하될 수 있다.
본 발명은 적어도 하나의 기본블록을 포함하는 그룹 단위를 데이터 처리 단위로써 도입한다.
기본블록(300)은 적어도 하나의 데이터를 포함하는 단위이다. 예를 들면, MPEG 또는 H.264의 8×8, 16×16 매크로블록 등일 수 있다.
그룹은 적어도 하나의 기본블록을 포함하는 단위로써, 그 형태 및 기본블록의 개수를 나타내는 그룹의 크기는 임의로 결정될 수 있다. 예를 들면, 크기 16 및 정사각형 형태인 그룹(310), 크기 8 및 직사각형 형태인 그룹(320, 325), 크기 13 및 다이아몬드 형태인 그룹(330) 등이 존재할 수 있다. 이러한 그룹의 형태 및 크기는 영상 데이터의 픽처, 픽처 시퀀스 단위로 일정하게 설정될 수도 있으며, 모든 그룹마다 개별적으로 설정될 수도 있다.
도 4 는 본 발명에서 제안하는 데이터 처리 단위인 서브그룹의 일 예를 도시한다.
그룹 내의 서브그룹은 그룹 내 적어도 하나의 기본블록을 포함하며, 서브그룹을 결정하는 제 1 결정 방식은 레벨 및 스캔 순서에 따라 결정되는 방식이다. 도 4 는 정사각형 형태, 그룹 크기 16, 최대 레벨 4인 그룹을 도시한다.
먼저, 그룹 내 서브그룹의 개수에 따라 레벨 4인 그룹(410, 420, 450), 레벨 2인 그룹(430, 460), 레벨 1인 그룹(440)으로 분류될 수 있다.
또한, 그룹 내 기본블록의 스캔순서에 따라 지그재그 스캔 순서의 그룹(410), 버티컬 스캔 순서의 그룹(420, 430, 440), 래스터 스캔 순서의 그룹(450, 460)으로 분류될 수 있다.
따라서, 크기 16, 정사각형 형태의 그룹(410)에 대해 레벨 4, 지그재그 스캔 순서로 서브그룹이 설정되면 크기 4, 정사각형 형태의 4개의 서브그룹이 형성될 수 있다. 그룹(420)에 대해 레벨 4, 버티컬 스캔 순서로 서브그룹이 설정되면, 크기 4, 직사각형 형태의 4개의 서브그룹(422, 424, 426, 428)이 형성될 수 있다. 마찬가지로 그룹(450)에 대해 레벨 4, 래스터 스캔 순서로 서브그룹이 설정되면, 크기 4, 직사각형 형태의 4개의 서브그룹(452, 454, 456, 458)이 형성될 수 있다.
크기 16, 정사각형 형태의 그룹(430)에 대해 레벨 2, 버티컬 스캔 순서로 서브그룹이 설정되면, 크기 8, 직사각형 형태의 2개의 서브그룹(432, 434)이 형성될 수 있다. 마찬가지로 그룹(460)에 대해 레벨 2, 래스터 스캔 순서로 서브그룹이 설정되면, 크기 8, 직사각형 형태의 2개의 서브그룹(462, 464)이 형성될 수 있다.
크기 16, 정사각형 형태의 그룹(440)에 대해 레벨 1, 버터컬 스캔 순서로 서브그룹이 설정되면, 크기 16, 정사각형 형태의 1개의 서브그룹(445)이 형성될 수 있다.
도 4에는 각각의 레벨마다 여러 가지 스캔 순서가 모두 설정되어 있지만, 레벨 별로 소정 스캔 순서가 설정될 수도 있다. 또한, 주파수 변환을 위한 데이터 처리 단위는 앞서 정의된 그룹, 서브그룹의 크기 이하의 단위일 수도 있다.
도 5 는 본 발명에서 제안하는 데이터 처리 단위인 서브그룹의 다른 예를 도시한다.
서브그룹을 결정하는 제 2 결정 방식은 그룹 내 기본블록의 스캔 순서에 따라 나열되는 기본블록의 시퀀스를 레벨에 따라 구분하는 방식이다. 도 5 는 정사각형 형태, 그룹 크기 16인 그룹(500, 550)을 예로 들어 서브그룹의 제 2 결정 방식이 상술된다.
정사각형 형태, 그룹 크기 16인 그룹(500)은 지그재그 스캔 순서에 따라 기본블록 1, 2, 5, 9, 6, 3, 4, 7, 10, 13, 14, 11, 8, 12, 15, 16의 순서로 기본블록의 시퀀스(510)가 재배열될 수 있다. 그룹(500)의 레벨이 3인 경우 기본블록 시퀀스(510)는 기본블록 1, 2, 5, 9, 6을 포함하는 제 1 서브그룹, 기본블록 3, 4, 7, 10, 13을 포함하는 제 2 서브그룹, 기본블록 14, 11, 8, 12, 15, 16을 포함하는 제 3 서브그룹으로 분류될 수 있다. 따라서, 그룹(500)을 지그재그 스캔 순서에 따라 레벨 3의 서브그룹으로 분류하면 그룹(520)와 r서브그룹이 같이 분류될 수 있다.
다른 예로써, 정사각형 형태, 그룹 크기 16인 그룹(550)은 역지그재그 스캔 순서에 따라 기본블록 4, 8, 3, 2, 7, 12, 16, 11, 6, 1, 5, 10, 15, 14, 9, 13의 순서로 기본블록의 시퀀스(560)가 재배열될 수 있다. 그룹(550)의 레벨이 4인 경우 기본블록 시퀀스(560)는 기본블록 4, 8, 3, 2를 포함하는 제 1 서브그룹, 기본블록 7, 12, 16, 11을 포함하는 제 2 서브그룹, 기본블록 6, 1, 5, 10을 포함하는 제 3 서브그룹, 기본블록 15, 14, 9, 13를 포함하는 제 4 서브그룹으로 분류될 수 있다. 따라서, 그룹(550)을 역지그재그 스캔 순서에 따라 레벨 4의 서브그룹으로 분류하면 그룹(570)와 같이 서브그룹이 분류될 수 있다.
도 6 은 본 발명의 일 실시예에 따른 부호화 모드의 신택스를 도시한다.
일 실시예에 따른 영상 복호화 장치(200)의 그룹 부호화 모드 판독부(220)에서, 소정 그룹의 부호화 모드를 나타내는 신택스에 따라 그룹 부호화 모드를 판독하는 과정의 흐름도를 나타낸다.
단계 610에서, 그룹 부호화 모드 판독부(220)는 소정 그룹의 데이터가 그룹 단위의 스킵 모드로 부호화되었는지 여부를 나타내는 플래그(Group_SKIP)를 확인한다. 'Group_SKIP' 플래그 값이 1이면 해당 그룹의 데이터에 대해 그룹 단위의 스킵 모드로 복호화를 수행한다(단계 620). 'Group_SKIP' 플래그 값이 0이면 단계 630으로 이동한다.
단계 630에서, 그룹 부호화 모드 판독부(220)는 레벨에 따른 서브그룹이 설정되는지 여부를 판단한다. 그렇다면 그룹 부호화 모드 판독부(220)는 서브그룹 단위의 복호화 방식을 조사한다(단계 640). 서브그룹이 설정되지 않았다면 그룹 부호화 모드 판독부(220)는 기본블록 단위의 복호화 방식을 조사한다(단계 650).
바람직한 실시예에서는, 레벨은 1보다는 크고 그룹 크기보다는 작아야 한다. 레벨이 1이라면 그룹과 동일한 데이터 처리 단위이기 때문이다.
그룹 부호화 모드 판독부(220)는 해당 그룹의 데이터가 서브그룹 단위의 스킵 모드로 부호화되었는지 여부를 나타내는 플래그(Subgroup_SKIP)를 확인한다(단계 640). 'Subgroup_SKIP' 플래그 값이 1이면 그룹 부호화부(230)는 서브그룹 단위의 스킵 모드로 복호화를 수행한다(단계 660). 'Subgroup_SKIP' 플래그 값이 0이면 그룹 부호화부(230)는 스킵 모드를 제외한 추정 모드로 서브그룹 단위의 복호화를 수행한다(단계 670).
그룹 단위의 스킵 모드에 대한 차별성을 위해, 바람직한 실시예에서는, 모든 서브그룹에 대해 'Subgroup_SKIP' 플래그 값이 1로 설정되어 있어서는 안된다.
바람직한 실시예에서, 서브그룹 단위의 복호화(Subgroup_Mode)에 있어서 일반 모드는, 레벨 및 스캔 순서에 따라 결정된다. 이때 레벨은 최대 레벨보다 작거나 같아야 한다.
그룹 부호화 모드 판독부(220)는 해당 그룹의 데이터가 기본블록 단위의 스킵 모드로 부호화되었는지 여부를 나타내는 플래그(Unit_SKIP)를 확인한다(단계 650). 'Unit_SKIP' 플래그의 값이 1이라면 그룹 부호화부(230)는 기본블록 단위의 스킵 모드로 복호화를 수행한다(단계 680). 'Unit_SKIP' 플래그의 값이 0이라면 그룹 부호화부(230)는 스킵 모드를 제외한 추정 모드로 기본블록 단위의 복호화를 수행한다(단계 690).
바람직한 실시예에서, 서브그룹 단위 또는 그룹 단위의 스킵 모드에 대한 차별성을 위해, 바람직한 실시예에서는, 모든 기본블록에 대해 'Unit_SKIP' 플래그 값이 1로 설정되어 있어서는 안된다.
도 7 은 데이터 처리 단위 별 부호화 방식의 일례를 도시한다.
그룹 내 데이터 처리 단위별 부호화 방식은 경우에 따라 임의로 결정될 수 있다. 이하, 정사각형 형태, 그룹 크기 4, 최대 레벨 2 인 그룹(710)의 데이터 처리 단위별 부호화 방식의 일례가 서술된다.
크기 4, 최대 레벨 2인 그룹(710)에 있어서, 레벨이 2일 때 스캔 순서에 따라 버티컬 스캔 순서의 서브그룹(720), 래스터 스캔 순서의 서브그룹(730)이 설정되고, 레벨이 1일 때 서브그룹(740)이 설정된다.
기본블록(700)에 대한 부호화 방식 중 스킵 모드(Unit_SKIP)는 16×16 스킵 모드가 채택될 수 있다. 또한, 기본블록(700)의 부호화 방식 중 일반 모드(Unit_Mode)는 16×16, 8×8, 4×4 인트라 모드 및 16×16, 16×8, 8×16, 8×8, 4×8, 8×4, 4×4 인터 모드 중 하나가 채택될 수 있다.
서브그룹(720, 730)에 대한 부호화 방식으로써, 레벨 1의 서브그룹(740)에 대한 부호화 방식 중 일반 모드(Subgroup_Mode)는 32×32 인터 모드 및 32×32 인트라 모드 중 하나가 채택될 수 있다. 레벨 2의 서브그룹(720, 730)에 대한 부호화 방식 중 일반 모드(Subgroup_Mode)는 16×32 인터 모드 및 32×16 인터 모드 중 하나가 채택될 수 있다.
그룹(710)에 대한 부호화 방식은 스킵 모드(Group_SKIP)로 32×32 스킵 모드가 설정될 수 있다.
도 8 은 본 발명의 일 실시예에 따라 그룹의 부호화 모드를 결정하는 부호화 방법의 흐름도를 도시한다.
도 8 을 참고하여, 데이터 처리 단위별 부호화 모드에 관련하여 최적의 데이터 처리 단위 및 추정 모드를 결정하는 방식이 서술된다.
흐름도(800)는 소정 그룹의 부호화 모드를 결정하기 위해 영상 부호화 장치(100), 특히 영상 부호화 모드 결정부(120)가 따르는 프로세스에 관한 흐름도이다.
부호화하고자 하는 데이터로부터 획득된 그룹의 형태, 크기, 최대 레벨에 대한 정보에 기초하여, 부호화될 데이터 중 소정 그룹이 결정된다(단계 810). 그룹의 형태, 크기, 최대 레벨 정보는 픽처, 시퀀스, 또는 그룹 단위로 설정되어 있을 수 있다.
이하, 데이터 처리 단위별 부호화가 수행된다.
먼저 그룹 단위의 스킵 모드로 부호화가 수행되고(단계 820), 그룹 단위의 스킵 모드의 부호화에 의한 오차율로써 RD 코스트(Rate Distortion Cost)가 산출된다(단계 830). 예를 들어, 32×32 그룹에 대한 32×32 스킵 모드의 부호화에 따른 RD 코스트가 산출된다.
기본블록 단위의 부호화가 수행된다(단계 840). 기본블록 단위의 부호화는 스킵 모드, 인트라 모드, 인터 모드로 각각 수행될 수 있다. 기본블록 단위의 부호화는 그룹 내 기본블록마다 수행되어야 하므로 그룹 크기에 상응하는 그룹 내 기본블록의 개수만큼 단계 840이 반복된다.
기본블록 단위의 부호화에 의한 RD 코스트가 산출된다(단계 850). 예를 들어, 16×16 스킵 모드, 16×16/8×8/4×4 인트라 모드, 16×16/16×8/8×16/8×8/4×8/8×4/4×4 인터 모드 등의 기본블록 단위별로 부호화한 결과 산출되는 RD 코스트 중 가장 작은 기본블록 단위가 검색된다. 즉, 기본블록 단위의 최소 RD 코스트에 상응하는 기본블록 크기 및 추정 모드의 조합이 선택된다.
서브그룹 단위의 부호화가 수행된다(단계 860). 서브그룹을 설정하기 위해 레벨을 확인하고(단계 862), 스캔 순서를 확인하여(단계 864), 해당 레벨의 각각의 서브그룹마다 부호화가 수행된다(단계 860). 서브그룹 단위의 부호화는 인트라 모드, 인터 모드로 각각 수행될 수 있다. 서브그룹 단위의 부호화는 그룹 내 서브그룹마다 수행되어야 하므로 레벨에 따라 가능한 레벨의 수만큼 단계 862, 864, 860이 반복된다.
서브그룹 단위의 부호화에 의한 RD 코스트가 산출된다(단계 870). 각각의 서브그룹마다 인트라 모드, 인터 모드의 부호화 중 가장 RD 코스트가 작은 최적 추정 모드가 결정되고, 모든 서브그룹 중 RD 코스트가 가장 작은 서브그룹 및 추정 모드의 조합이 결정된다. 예를 들어, 레벨에 따라 32×32 인터 모드/32×32 인트라 모드 또는 16×32/32×16 인터 모드 등의 서브블록 단위별로 부호화한 결과 산출되는 RD 코스트들 중 가장 작은 서브그룹 단위가 검색된다. 즉, 서브그룹 단위의 최소 RD 코스트에 상응하는 서브그룹 크기 및 추정 모드의 조합이 선택된다.
영상 부호화 모드 결정부(120)는, 단계 830에서 산출된 그룹 단위의 RD 코스트, 단계 850에서 선택된 기본블록 단위 조합의 RD 코스트, 단계 870에서 선택된 서브그룹 단위 조합의 RD 코스트를 비교하여, 최저 RD 코스트를 선택한다(단계 880).
영상 부호화 모드 결정부(120)는, 단계 880에서 선택된 최저 RD 코스트에 대응되는 데이터 처리 단위 또는 데이터 처리 단위의 크기 및 추정 모드 조합에 기초하여 해당 그룹의 부호화 모드를 결정한다(단계 890). 예를 들어, 그룹의 부호화 모드는, 그룹 단위, 서브그룹 단위, 기본블록 단위 중 어느 단위인지 데이터 처리 단위의 종류, 데이터 처리 단위의 크기와 관련된 정보(32×32, 32×16, 16×32, 16×16, 16×8, 8×16, 8×8, 4×8, 8×4, 4×4 ), 추정 모드(스킵, 인트라, 인터 모드 등)에 관한 정보를 포함할 수 있다.
도 9 은 본 발명의 일 실시예에 따라 부호화 모드를 판독하여 복호화하는 방법의 흐름도를 도시한다.
흐름도(900)는 영상 복호화 장치(200), 특히 그룹 부호화 모드 판독부(220)가 소정 그룹의 복호화를 위해 그룹의 부호화 모드를 판독하는 프로세스의 흐름도를 나타낸다.
그룹 부호화 모드 판독부(220)는 복호화하고자 하는 데이터로부터 그룹의 형태, 크기, 최대 레벨에 대한 정보를 획득하여, 복호화될 데이터 중 소정 그룹을 결정한다(단계 910). 그룹의 형태, 크기, 최대 레벨에 대한 정보는 픽처, 시퀀스, 또는 그룹 단위로 설정되어 있을 수 있다.
그룹 부호화 모드 판독부(220)는 소정 그룹이 그룹 단위의 스킵 모드로 부호화되었는지 여부를 나타내는 플래그(Group_Skip)를 확인한다(단계 920). 확인 결과 그룹 단위의 스킵 모드인 경우 해당 그룹에 대해 스킵 모드로 복호화한다(단계 930). 확인 결과 그룹 단위의 스킵 모드가 아닌 경우 단계 940으로 이동한다.
단계 940에서, 그룹 부호화 모드 판독부(220)는 그룹의 레벨을 확인한다. 확인 결과 레벨에 의해 서브그룹이 설정되지 않았다면 그룹 부호화 모드 판독부(220)는 기본블록 단위의 복호화 방식을 조사한다(단계 990). 레벨이 확인된 경우 그룹 부호화 모드 판독부(220)는, 서브그룹의 레벨을 확인하고(단계 960), 스캔 순서를 결정한다(단계 970). 그룹 부호화 모드 판독부(220)는 레벨 및 스캔 순서에 따라 결정된 서브그룹에 대해 복호화를 수행한다(단계 950). 그룹 내 서브그룹마다 복호화되므로, 그룹 내 레벨의 수만큼 서브그룹의 복호화 과정(단계 960, 970, 950)이 반복된다.
그룹 부호화 모드 판독부(220)는 기본블록 단위의 추정 모드를 나타내는 플래그(Unit_mode)를 확인한다(단계 990). 확인 결과에 따라 결정된 추정 모드에 따라 그룹 부호화 모드 판독부(220)는 해당 기본블록에 대해 복호화를 수행한다(단계 980). 그룹 부호화 모드 판독부(220)는 'Subgroup_SKIP' 플래그 값이 0이면 단계 670에 따라 스킵 모드를 제외한 추정 모드로 해당 서브그룹에 대한 복호화를 수행한다. 그룹 내 기본블록마다 복호화되므로, 그룹 크기만큼 기본블록의 복호화 과정(단계 990, 980)이 반복된다.
이하, 본 발명에서 제안하는 그룹, 서브그룹, 기본블록의 가변적인 데이터 처리 단위에 의한 부호화 및 복호화에 있어서, 다양한 실시예가 상술된다.
본 발명의 일 실시예에서, 인터 모드의 움직임 벡터 추정 방식의 일례는 현재 데이터 처리 단위의 모든 주변 데이터 처리 단위의 움직임 벡터의 중앙값(median value)을 현재 데이터 처리 단위의 움직임 벡터로 결정할 수 있다.
본 발명의 일 실시예에서, 인터 모드의 움직임 벡터 추정 방식은 그룹, 서브그룹, 기본블록 등의 크기를 고려하여 달리 결정될 수도 있다. 예를 들어, 데이터 처리 단위의 크기에 따라 참조하는 주변 블록의 크기, 종류 등이 달리 설정될 수 있다.
본 발명의 일 실시예에서, 인트라 모드의 움직임 추정 방식의 일례는, 현재 데이터 처리 단위의 임의의 각도 또는 방향 상에 위치하는 인접 픽셀 5개를 참조하여, 5개의 인접 픽셀값의 가중평균값(weighted average)을 현재 픽셀값으로 추정할 수 있다.
본 발명의 일 실시예에서, 인트라 모드의 움직임 추정 방식의 일례는, 소정 그룹을 주파수 변환 처리를 위한 데이터 처리 단위별로 소정 그룹의 데이터를 재배열하여 참조 픽셀로 사용할 수 있다. 인트라 모드의 추정 방식의 다른 예는, 움직임 벡터의 x축 변화량 및 y축 변화량을 그라데이션(gradation, ∇)을 이용하여 표현할 수도 있다.
32×32 인트라 모드의 블록의 움직임 추정 방식의 일례는, 움직임 벡터 등의 추정 신호 두 개의 가중평균을 이용하여 현재 블록을 추정할 수 있다. 가중평균은 픽셀별로 가장 가까운 참조 픽셀에 더 큰 가중치를 주는 방식으로 구해질 수 있다.
본 발명의 일 실시예에서, 그룹 단위의 스킵 모드를 나타내는 플래그는 픽처 단위로 모아서 한번에 처리될 수 있다. 바람직한 실시예에서, B 픽처만 해당 픽처 내의 그룹 단위의 스킵 모드를 나타내는 플래그가 한번에 처리될 수 있다.
본 발명의 일 실시예는 스킵 모드와 대비되는 방식으로서 현재 데이터 처리 단위의 정보를 유도하는 방식을 제안한다. 예를 들어, 움직임 벡터 및 텍스쳐 정보가 모두 시그널링되지 않고 유도될 수 있다. 또한, 움직임 벡터 정보는 시그널링되고 텍스쳐 정보는 유도되거나, 텍스쳐 정보는 시그널링되고 움직임 벡터 정보는 유도될 수 있다. DC 정보만 시그널링되는 추정 모드가 가능하다. 양자화 파라미터(Quantization parameter, Qp)별로 다양한 움직임 정보 유도 방식이 정의될 수도 있다.
본 발명의 일 실시예는 스킵 모드의 데이터 처리 단위가 계층 구조를 형성할 수 있다. 예를 들어, 스킵 모드의 32×32 블록 내의 16×16 블록도 스킵 모드라면, 32×32 스킵 플래그 및 16×16 스킵 플래그의 계층 구조를 나타내는 플래그가 설정될 수 있다. 또한, 스킵 모드인 기본블록의 집합인 그룹이 형성될 수도 있다.
본 발명의 실시예들에 따라, 점차 증가하고 있는 비디오 컨텐츠의 해상도에 대응하기 위해 기존의 매크로블록 크기를 보다 효율적인 크기로 확장하여 비디오 압축 성능이 향상될 수 있다.
이하, 도 10 내지 17을 참고로 기존의 H.264 동영상 부복호화 방식에 대비하여, 본 발명에서 제안하는 그룹, 서브그룹, 기본블록의 계층적 개념을 32×32 데이터의 수퍼 매크로블록(이하, 'SMB' 또는 'S-MB'로도 표기됨) 단위, 16×16 매크로블록(이하, 'MB'로도 표기됨) 단위, 8×8 매크로블록 단위의 계층적 구조로써 구현한 본 발명의 다른 실시예가 상술된다.
도 10 은 본 발명에서 가능한 데이터 처리 단위의 계층적 구조를 도시한다.
데이터 처리 단위의 계층적 구조(1000)는 3단계의 구조를 가질 수 있다. 제 1 계층(1010)은 가장 큰 사이즈인 32×32 수퍼 매크로블록이며, 예를 들어 한 개의 32×32 스킵 모드인 경우, 한 개의 32×32 인터 모드인 경우, 두 개의 32×16 인터 모드를 포함하는 경우, 두 개의 16×32 인터 모드를 포함하는 경우, 네 개의 16×16 인터 모드를 포함하는 경우가 있을 수 있다. 제 1 계층(1010)에 대해서는 16×16 블록, 8×8 블록 및 4×4 블록 단위의 주파수 변환이 수행될 수 있다.
제 2 계층은 (1020)은 제 1 계층(1010)의 수퍼 매크로블록 중 분화된 16×16 매크로블록에 해당한다. 예를 들어, 제 2 계층(1020)의 16×16 매크로블록은 한 개의 16×16 인트라 모드인 경우, 한 개의 16×16 스킵 모드인 경우, 한 개의 16×16 인터 모드인 경우, 두 개의 16×8 인터 모드를 포함하는 경우, 두 개의 8×16 인터 모드를 포함하는 경우, 네 개의 8×8 인터 모드를 포함하는 경우가 있을 수 있다. 제 2 계층(1020)에 대해서는 8×8 블록 및 4×4 블록 단위의 주파수 변환이 수행될 수 있다.
제 3 계층(1030)은 제 2 계층(1020)의 매크로블록 중 분화된 8×8 블록에 해당한다. 예를 들어, 제 3 계층(1030)의 8×8 매크로블록은, 한 개의 8×8 스킵 모드인 경우, 한 개의 8×8 인터 모드인 경우, 두 개의 8×4 인터 모드를 포함하는 경우, 두 개의 4×8 인터 모드를 포함하는 경우, 네 개의 4×4 인터 모드를 포함하는 경우가 있을 수 있다. 제 3 계층(1030)에 대해서는 4×4 블록 단위의 주파수 변환이 수행될 수 있다.
본 발명이 제안하는 매크로블록의 확장형 계층 구조에 따라, 대용량의 비디오 데이터를 위한 32×32 수퍼 매크로블록 모드로 부복호화가 가능할 뿐만 아니라, 8×8 이하의 매크로블록 모드로도 프로세싱이 가능하다. 또한, 본 발명이 제안하는 매크로블록의 확장형 계층 구조에서, 스킵 모드, 또는 인트라 모드, 16×16 이하의 매크로블록 단위 등의 처리는 기존 부복호화 방식과 동일한 방식이 채택될 수 있으므로 새로운 부복호화 시스템의 구축을 위해 필요한 비용 및 시간이 절감될 수 있다.
도 11 은 본 발명의 다른 실시예에 따른 수퍼 매크로블록 및 매크로블록 단위에 의한 부호화 모드의 신택스를 도시한다.
영상 복호화 장치(200)의 다른 실시예에 따르면, 그룹 부호화 모드 판독부(220)는 현재 그룹의 부호화 모드를 판단하기 위해 먼저 수퍼 매크로블록 단위의 스킵 모드로 부호화되었는지 여부를 나타내는 플래그(SMB_SKIP)를 확인한다(단계 1110). 'SMB_SKIP' 플래그 값이 1 이면 그룹 복호화부(230)는 32×32 수퍼 매크로블록 단위의 스킵 모드로 움직임 추정을 통한 복호화를 수행한다(단계 1120).
'SMB_SKIP' 플래그 값이 0 이면 그룹 부호화 모드 판독부(220)는 현재 그룹이 수퍼 매크로블록 단위로 부호화되었는지 여부를 판단한다(단계 1130). 단계 1130 의 판단에 의해 스킵 모드가 아닌 추정 모드로 수퍼 매크로블록 단위의 부호화가 이루어졌다면 그 판단 결과는 그룹 복호화부(230)로 전달되어, 그룹 복호화부(230)는 'SMB_mode' 플래그에 따라 32×32 인터 모드, 32×16 인터 모드, 16×32 인터 모드, 16×16 인터 모드의 수퍼 매크로블록 단위로 움직임 추정을 통한 복호화를 수행한다(단계 1140).
바람직한 실시예에 따르면, 16×16 인터 모드의 수퍼 매크로블록 단위에 의한 움직임 추정 방식은 기존 16×16 인터 모드의 매크로블록 단위에 의한 움직임 추정 방식과 동일할 수 있다.
단계 1130 의 판단에 의해 현재 그룹이 수퍼 매크로블록 단위 인터 모드로 부호화되지 않았다고 판단되면, 그룹 부호화 모드 판독부(220)는 매크로블록 단위의 스킵 모드로 부호화된 그룹인지 여부를 나타내는 플래그(MB_SKIP)를 확인한다(단계 1150).
단계 1150 의 판단에 의해 매크로블록 단위의 스킵 모드로 부호화가 이루어졌다면 그 판단 결과는 그룹 복호화부(230)로 전달되고, 그룹 복호화부(230)는 'MB_SKIP' 플래그에 따라 16×16 수퍼 매크로블록 단위로 스킵 모드의 움직임 추정을 통한 복호화를 수행한다(단계 1160).
단계 1150 의 판단에 의해 매크로블록 단위의 스킵 모드로 부호화가 이루어지지 않았다면 그 판단 결과는 그룹 복호화부(230)로 전달되고, 그룹 복호화부(230)는 'MB_SKIP' 플래그에 따라 16×16 인트라 모드, 16×16 인터 모드, 16×8 인터 모드, 8×16 인터 모드, 8×8 인터 모드 등의 매크로블록 단위 또는 8×8 매크로블록보다 작은 서브 매크로블록 단위로 복호화를 수행한다(단계 1170).
도 12 는 본 발명의 다른 실시예에 따라 부호화 모드가 스킵 모드인 경우 움직임 벡터 추정 방식을 도시한다.
다른 실시예에 따른 영상 부호화 장치(100) 및 영상 복호화 장치(200)는 스킵 모드인 블록의 움직임 벡터를 추정하기 위해 수퍼 매크로블록 단위 기반의 움직임 벡터 추정 방식 또는 매크로블록 단위 기반의 움직임 벡터 추정 방식을 사용할 수 있다.
수퍼 매크로블록 단위 기반의 움직임 벡터 추정 방식의 일례는, 32×32 스킵 모드의 수퍼 매크로블록은 주변 블록의 움직임 벡터를 이용하여 움직임 벡터를 추정할 수 있다. 주변 블록은 수퍼 매크로블록 또는 매크로블록일 수 있다. 예를 들어, 아래 수학식 1에 따라 수퍼 매크로블록의 움직임 벡터가 추정된다.
[수학식 1]
MV = Median(MVa, MVb, MVc)
Median(·) 함수는 입력의 중앙값을 출력하는 함수이다. 즉, 수퍼 매크로블록의 움직임 벡터 MV(1210)는 주변 블록 중 좌측 블록의 움직임 벡터 MVa(1220), 상단 블록의 움직임 벡터 MVb(1225), 우측 상단 블록의 움직임 벡터 MVc(1230) 중 중앙값을 갖는 움직임 벡터로 결정된다.
매크로블록 단위 기반의 움직임 벡터 추정 방식의 일례는, 16×16 스킵 모드의 매크로블록은 주변 블록의 움직임 벡터를 이용하여 매크로블록의 움직임 벡터를 추정할 수 있다. 예를 들어, 아래 수학식 2, 3, 4 및 5 에 따라 매크로블록의 움직임 벡터가 추정될 수 있다.
[수학식 2]
MV0 = Median(MVa, MVb, MVc)
[수학식 3]
MV1 = Median(MV0, MVc, MVd)
[수학식 4]
MV2 = Median(MVe, MV0, MV1)
[수학식 5]
MV3 = Median(MV0, MV1, MV2)
16×16 스킵 모드의 매크로블록 MV0(1240), MV1(1245), MV2(1250), MV3(1255)은 각각의 주변 블록 중 좌측 블록의 움직임 벡터, 상단 블록의 움직임 벡터, 우측 상단 블록의 움직임 벡터 중 중앙값을 갖는 움직임 벡터로 결정된다. 즉, 수학식 2에 의해 MV0(1240)는 MVa(1260), MVb(1265), MVc(1270)의 중앙값으로 결정되며, 수학식 3에 의해 MV1(1245)는 MV0(1240), MVc(1270), MVd(1275)의 중앙값으로, 수학식 4에 의해 MV2(1250)는 MVe(1280), MV0(1240), MV1(1245)의 중앙값으로, 수학식 5에 의해 MV3(1255)는 MV2(1250), MV0(1240), MV1(1245)의 중앙값으로 결정된다.
다른 실시예에 따른 영상 부호화 장치(100)는 수퍼 매크로블록 단위의 움직임 벡터 추정 또는 매크로블록 단위의 움직임 벡터 추정인지 여부를 움직임 벡터 추정 방식을 나타내는 플래그를 슬라이스 또는 소정 데이터 단위에 규칙적으로 삽입할 수 있다. 다른 실시예에 따른 영상 복호화 장치(200)는 슬라이스 또는 소정 데이터 단위로부터 움직임 벡터 추정 방식에 대한 플래그를 추출하여 수퍼 매크로블록 또는 매크로블록의 움직임 벡터를 추정하는데 이용할 수 있다.
도 13 은 본 발명의 다른 실시예의 데이터 처리 단위별 부복호화 처리 순서를 도시한다.
본 발명에서는 영상의 부호화 또는 복호화 단계에서 3단계 계층 구조를 가지는 확장된 매크로블록 모드를 지원하기 위해, 수평 방향으로 매크로블록 별로 스캔하는 래스터 스캔 방식(1310) 대신 16×16 매크로블록 별로 지그재그 스캔 순서(1320)를 도입한다.
예를 들어, 현재 매크로블록은 블록 1330과 같은 16×16 매크로블록들의 집합 중 하나(16×16 MB)인 블록, 블록 1340과 같은 32×32 수퍼 매크로블록(32×32 S-MB)에 포함된 매크로블록, 블록 1350과 같은 32×16 또는 16×32 수퍼 매크로블록 쌍(32×16/16×32 S-MB)에 포함된 매크로블록, 블록 1370과 같은 32×16 또는 16×32 하프-수퍼 매크로블록(32×16/16×32 S-MB_half)에 포함된 매크로블록, 블록 1360과 같은 16×16 매크로블록(16×16 MB) 등일 수 있다.
본 발명의 영상 부호화 장치(100)의 그룹 부호화 모드 결정부(120)는 각각의 32×32 수퍼 매크로블록에 대해서, 하나의 32×32 수퍼 매크로블록인 경우 및 4개의 16×16 매크로블록 인 경우의 RD 코스트를 비교하여, 32×32 수퍼 매크로블록 모드 또는 16×16 매크로블록 모드 중 하나로 부호화하도록 결정할 수 있다.
매크로블록의 지그재그 스캔 방식에 의해 기존의 부호화 또는 복호화 시스템의 구조를 크게 변경하지 않고 스캔 방식만 변경하여 사용할 수 있으므로, 기존의 부호화 또는 복호화 시스템을 이용하여 본 발명을 용이하게 구현할 수도 있다.
또한, 수퍼 매크로블록 단위에 부합하지 않은 영상의 가장자리 부분은 블록 1370과 같은 32×16 또는 16×32 하프-수퍼 매크로블록 또는 블록 1360과 같은 16×16 매크로블록 등을 이용하여 쉽게 처리될 수 있다.
도 14 는 본 발명의 다른 실시예의 주파수 계수의 배열 방식을 도시한다.
본 발명은 영상 부호화 과정 및 복호화 과정에서 16×16 블록의 주파수 계수들(1400)을 인터리브드 방식에 따라 8×8 매크로블록(1450)으로 재배열할 수 있다. 이렇게 8×8 매크로블록 단위로 재배열된 계수들은 8×8 매크로블록 단위로 엔트로피 부호화 또는 복호화될 수 있다.
16×16 블록의 계수들을 8×8 매크로블록 단위의 인터리브드 방식으로 재배열하는 방식의 일례는, 16×16 블록의 계수들의 위치에 따라 좌측 상단, 우측 상단, 좌측 하단, 우측 하단의 8×8 매크로블록으로 재배열할 수 있다.
계수의 재배열 순서에 따르면, 16×16 블록 중 2×2 블록의 계수 중 좌측 상단의 계수는 좌측 상단의 8×8 매크로블록(1460)으로 배치된다. 즉, 16×16 블록의 계수(1410)는 좌측 상단의 8×8 매크로블록(1460)의 계수(1462)로 배치된다.
또한, 16×16 블록 중 2×2 블록의 계수 중 우측 상단의 계수는 우측 상단의 8×8 매크로블록(1470)으로 배치된다. 즉, 16×16 블록의 계수(1430)는 우측 상단의 8×8 매크로블록(1470)의 계수(1472)로 배치된다.
마찬가지로, 16×16 블록 중 2×2 블록의 계수 중 좌측 하단의 계수는 좌측 하단의 8×8 매크로블록(1480)으로 배치된다. 즉, 16×16 블록의 계수(1420)는 좌측 하단의 8×8 매크로블록(1480)의 계수(1482)로 배치된다.
마지막으로 16×16 블록 중 2×2 블록의 계수 중 우측 하단의 계수를 우측 하단의 8×8 매크로블록(1490)으로 배치한다. 즉, 16×16 블록의 계수(1440)는 우측 하단의 8×8 매크로블록(1490)의 계수(1492)로 배치된다.
도 15 는 기존 부호화 방식 및 본 발명의 다른 실시예에 따른 CBP(Coded Block Pattern) 및 계수 블록 크기와 관련된 신택스 부호화 방식을 비교한다.
일반적인 CBP(Coded Block Pattern)를 고려한 계수의 부호화 방식(1510)은 CBP 값을 확인하여(단계 1520), CBP 값이 0이면 CBP를 고려한 계수의 부호화 과정을 종료한다. CBP 값이 0이 아니면 계수 블록 크기를 나타내는 플래그(TFlag)를 부호화하고(단계 1530), 현재 계수를 부호화함(단계 1540)으로써 CBP를 고려한 계수의 부호화가 완료된다. 기존의 부복호화 방식과 같이 8×8 또는 4×4 블록 단위로 주파수 변환된 계수가 나열된 경우, 'Tflag' 플래그는 8×8 또는 4×4 블록 단위의 계수인지 여부를 나타낼 수 있다.
본 발명이 제안하는 CBP(Coded Block Pattern)를 고려한 부호화 방식(1550)에 따르면, CBP 값이 확인되여(단계 1520), CBP 값이 0이면 CBP를 고려한 계수의 부호화가 종료한다. CBP 값이 0이 아니면 현재 계수가 8×8 또는 4×4 블록 단위의 계수인지 나타내는 플래그(TFlag8)가 부호화되고(단계 1560), 'TFlag8' 플래그의 값에 기초한 판단 결과(단계 1570) 현재 계수가 4×4 블록 단위의 계수라면 계수가 부호화됨(단계 1590)으로써 계수의 부호화가 완료된다.
'TFlag8' 플래그의 값에 기초한 판단 결과(단계 1570) 현재 계수가 4×4 블록 단위의 계수가 아니라면, 현재 계수가 8×8 또는 16×16 블록 단위의 계수인지 나타내는 플래그(TFlag16)가 부호화되고(단계 1580), 현재 계수가 부호화됨(단계 1590)으로써 계수의 부호화가 완료된다.
따라서, 본 발명은 주파수 변환된 계수가 배열된 데이터 처리 단위와 관련된 두 개의 플래그(TFlag8, TFlag16)를 이용하여, 가변적인 블록 크기에 의한 주파수 변환을 통한 부호화 및 주파수 역변환을 통한 복호화가 수행될 수 있다.
주파수 변환과 관련하여, 본 발명의 일 실시예는 주파수 변환된 계수의 배열 블록의 크기 뿐만 아니라 정수 단위의 주파수 변환을 도입할 수도 있다. 8×8 인터리브드 방식의 계수 블록을 통해 EOB(End of Block) 길이가 감소될 수 있다. 또한, 'Tfalg8' 플래그 값이 1일 때 16×16 인터 모드를 위한 오버헤드는 1 비트만이 추가적으로 요구된다. 다양한 크기의 블록으로 인해 에너지 압축 효율이 높아지므로, 주파수 변환 빈도가 감소될 수도 있다.
도 16 은 본 발명의 다른 실시예의 CBP 관련 신택스를 도시한다.
본 발명의 다른 실시예에 따른 영상 부호화 장치(200)는 계층적 구조의 CBP 부호화 방식을 도입한다. 스킵 모드가 아닌 매크로블록을 위해, CBP 정보의 부호화 여부를 나타내는 플래그(MB_CBP_flag)가 부호화된다(단계 1600). 'MB_CBP_flag' 플래그에 기초한 판단 결과(단계 1610), 'MB_CBP_flag' 플래그 값이 0이라면 더 이상의 추가 정보가 필요하지 않으므로 CBP 부호화 과정이 종료된다. 'MB_CBP_flag' 플래그에 기초한 판단 결과(단계 1610), 'MB_CBP_flag' 플래그 값이 1이라면 해당 매크로블록을 위한 CBP의 부호화가 수행된다(단계 1620).
본 발명의 다른 실시예에 따른 영상 복호화 장치(200)는 수신된 데이터에 삽입되어 있는 'MB_CBP_flag' 플래그를 추출하여, 복호화 대상인 매크로블록에 대해 CBP의 복호화가 필요한지 여부를 판단할 수 있다.
도 17 은 본 발명의 다른 실시예의 B 프레임의 부호화 모드를 도시한다.
본 발명의 영상 부호화 장치(100) 및 영상 복호화 장치(200)는 B 프레임을 위한 부호화 모드로써 수퍼 매크로블록 단위의 다이렉트 모드(S-MB DIRECT mode)를 도입할 수 있다. 현재 수퍼 매크로블록의 부호화 모드가 다이렉트 모드라면 텍스처 코딩이 수행되어야 한다.
예를 들어, 32×32 수퍼 매크로블록(1710)의 각각의 16×16 매크로블록(1720, 1730, 1740, 1750)마다 포함된 CBP 부호화 여부를 나타내는 플래그(MB_CBP_FLAG)는, 해당 16×16 매크로블록(1720, 1730, 1740, 1750)이 스킵 모드인지 다이렉트 모드의 부호화인지 여부를 나타낸다.
즉, 'MB_CBP_FLAG' 플래그가 1인 매크로블록(1720, 1750)은 다이렉트 모드의 매크로블록(1760, 1790)이므로, H.264 표준에 따르는 다이렉트 모드와 동일한 움직임 추정 방식으로 움직임 벡터가 추정될 수 있다.
반면에, 'MB_CBP_FLAG' 플래그가 0인 매크로블록(1730, 1740)은 다이렉트 모드의 매크로블록(1770, 1780)이므로, 움직임 벡터의 추정을 위해 더 이상의 정보가 필요하지는 않다.
영상 부호화 장치(100) 및 영상 복호화 장치(200)의 다른 예는 다이나믹 레인지 분할 방식을 위한 블록 단위를 양자화 파라미터, 해상도, 시퀀스 특성에 기초하여 결정할 수 있다. 또한, 수평 방향, 수직 방향 뿐만 아니라 다양한 방향으로 데이터 처리 단위가 분류될 수 있다.
전술된 3단계의 계층 구조에서 제 1 레벨은 스킵 모드 및 인터 모드 뿐만 아니라, 인트라 모드 및 인터 모드가 복합된 추정 모드의 수퍼 매크로블록을 포함할 수 있다.
부호화 모드 또는 데이터 처리 단위는 픽처, 시퀀스, 슬라이스, 매크로블록 등의 다양한 데이터 단위 별로 설정될 수 있으며, 최대 또는 최소 기본블록 사이즈 및 분화 계층 레벨로 표현될 수도 있다. 데이터 처리 단위의 계층 구조의 2단계 구조(binary tree)는 n단계 구조(n-ary tree)로 분화될 수 있다.
영상 부호화 장치(100) 및 영상 복호화 장치(200)의 다른 실시예에서, 움직임 추정을 위한 블록의 크기, 주파수 변환을 위한 블록의 크기, 디블로킹 필터링을 위한 블록의 크기 순으로 순차적으로 블록의 크기가 작거나 같도록 유지될 수 있다. 또한, 움직임 추정을 위한 데이터 처리 단위 및 주파수 변환을 위한 데이터 처리 단위를 통합하거나 분리하여 표현되도록 할 수 있다.
임의의로 그룹으로 형성된 인트라 또는 인터 모드의 매크로블록들은 임의의 개수의 기본 블록을 포함하는 그룹으로 형성될 수 있다. 이 경우, 그룹의 사이즈에 기초하여 블록 추정이 수행되거나, 그룹의 사이즈에 기초하여 주파수 변환이 수행될 수 있다.
임의의 개수의 스킵 모드의 매크로블록들로 그룹이 형성될 수도 있다.
도 18 은 본 발명의 일 실시예에 따른 영상 부호화 방법의 흐름도를 도시한다.
단계 1810에서, 기본블록으로 분류된 영상 데이터가 그룹, 서브그룹 및 기본블록을 포함하는 확장된 개념으로 분류된다. 그룹은 기본블록의 개수를 나타내는 크기, 형태 및 최대 레벨의 속성을 가질 수 있으며, 서브그룹은 레벨 및 스캔 순서에 따라 설정될 수 있다.
단계 1820에서, 그룹을 부호화하기 위해 이용되는 데이터 처리 단위로써 그룹 단위, 서브그룹 단위 및 기본블록 단위 중 적어도 하나에 관한 정보 및 상기 적어도 하나의 데이터 처리 단위에 의해 그룹의 데이터를 부호화하는 방식에 관한 정보를 포함하는 그룹의 부호화 모드가 결정된다.
그룹의 부호화 모드는, 그룹 내 각각의 데이터 처리 단위별로 수행된 그룹의 데이터에 대한 부호화에 의해 발생되는 오차율에 기초하여 결정될 수 있다. 각각의 그룹마다 그룹 단위의 부호화 오차율, 그룹 내 모든 서브그룹의 부호화 오차율 중 최저 오차율, 그룹 내 모든 기본블록의 부호화 오차율 중 최저 오차율을 비교하여, 최적의 데이터 처리 단위 및 추정 모드가 선택된다. 각각의 그룹의 부호화 모드는 해당 그룹의 최적의 데이터 처리 단위 및 추정 모드에 대한 정보를 포함한다.
단계 1830에서, 결정된 부호화 모드에 따라 각각의 그룹의 데이터가 부호화된다. 영상 데이터 및 그룹별 부호화 모드를 나타내는 정보 뿐만 아니라 그룹 내 주파수 변환된 계수가 소정 데이터 처리 단위로 재배열되었는지 여부에 대한 정보, CBP 부호화 정보 등이 부호화되어 전송 데이터에 삽입될 수도 있다.
도 19 는 본 발명의 일 실시예에 따른 영상 복호화 방법의 흐름도를 도시한다.
단계 1910에서, 기본블록, 그룹, 및 서브그룹 중 하나의 데이터 처리 단위로 부호화된 데이터가 수신되어, 수신된 데이터로부터 복호화에 필요한 정보가 파싱된다. 수신된 데이터로부터 복호화 대상이 되는 영상 데이터를 파싱하고, 영상의 복호화를 위해 필요한 파라미터 등이 파싱될 수도 있다.
단계 1920에서, 단계 1910에서 파싱된 데이터로부터, 그룹, 서브그룹 및 기본블록 중 하나의 데이터 처리 단위에 의해 소정 그룹의 데이터를 부호화한 방식을 나타내는 소정 그룹의 부호화 모드가 판독된다.
그룹을 결정하기 위해, 파싱된 데이터로부터 그룹의 크기, 형태, 최대 레벨을 나타내는 정보를 추출하여 판독한다. 그룹이 결정되면 각각의 그룹의 부호화 모드를 추출하여 판독한다.
단계 1930에서, 판독된 부호화 모드에 대응되는 소정 그룹의 데이터가 복호화된다.
소정 그룹의 부호화 모드로부터 추출 및 판독된 어느 데이터 처리 단위로 복호화해야 하는지 여부에 대한 정보, 해당 데이터 처리 단위의 크기 및 형태에 관련된 정보, 움직임 추정 방식에 관한 정보 등을 이용하여 소정 그룹의 데이터가 복호화된다.
[[Ⅱ. 동적으로 결정된 데이터 처리 단위에 의한 영상 부호화 장치]]
도 20a, 20b, 20c, 20d, 20e 및 20f 는 각각 일 실시예에 따라 동적으로 결정된 데이터 처리 단위를 고려하는 영상 부호화 장치(100)의 변형 실시예의 블록도를 도시한다.
일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)는 그룹 부호화 모드 결정부(120)에서 결정된 그룹의 부호화 모드에 기초하는 데이터 처리 단위 및 추정 모드에 따라 그룹의 데이터를 부호화하기 위해, 주파수 변환 및 양자화, 인트라 추정 및 인터 추정을 포함하는 움직임 추정, 인루프 필터링, 엔트로피 부호화를 수행한다.
일 실시예에 따른 영상 부호화 장치(100)는 그룹의 데이터 처리 단위를 동적으로 결정한다. 따라서, 그룹의 데이터 처리 단위는, 그룹, 서브그룹, 기본블록의 계층적 구조 중 하나일 수 있다.
일 실시예에 따른 영상 부호화 장치(100)에 의해 동적으로 결정되는 데이터 처리 단위는 기존 영상 부호화 포맷에서는 정의되지 않은 데이터 처리 단위일 수 있으므로, 기존 영상 부호화 프로세스와는 구별되는 고유 프로세스가 필요하다. 예를 들어, 16×16 또는 8×8 매크로블록보단 큰 사이즈의 대형 데이터 처리 단위가 이용되는 경우 그룹 부호화부(130)는 대형 데이터 처리 단위를 고려하는 프로세스를 통해 영상 부호화 작업을 수행하여야 한다.
도 20a 는 일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)에 대해 대형 데이터 처리 단위를 고려한 주파수 변환 및 양자화가 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)의 제 1 실시예는 대형 데이터 처리 단위를 고려한 주파수 변환 및 양자화부(2003), 인트라 추정부 및 인터 추정부를 포함하는 움직임 추정부(133), 인루프 필터링부(137) 및 엔트로피 부호화부(139)를 포함한다.
그룹 부호화부(130)의 제 1 실시예에 따른 대형 데이터 처리 단위를 고려한 주파수 변환 및 양자화부(2001)는 그룹 부호화 모드 결정부(120)에서 결정된 부호화 모드에 기초한 대형 데이터 처리 단위에 의해 주파수 변환 및 양자화를 수행하기 위해, 대형 데이터 처리 단위를 기반의 정수 이산 코사인 변환 및 양자화를 수행할 수 있다.
그룹 부호화부(130)의 제 1 실시예에 따른 대형 데이터 처리 단위를 고려한 주파수 변환 및 양자화부(2001)는 대형 데이터 처리 단위에 의해 주파수 변환 및 양자화를 수행하기 위해, 대형 데이터 처리 단위의 크로마 성분에 대해 이산 코사인 변환 및 양자화를 수행할 수 있다.
그룹 부호화부(130)의 제 1 실시예에 따른 대형 데이터 처리 단위를 고려한 주파수 변환 및 양자화부(2001)는 대형 데이터 처리 단위를 기반으로 하는 이산 코사인 변환에 의해 가중될 수 있는 연산량의 부담을 감소하기 위해 저복잡도 연산이 가능한 이산 코사인 변환을 수행할 수 있다.
도 20b 는 일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)에 대해 대형 데이터 처리 단위를 고려한 움직임 추정 프로세싱이 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)의 제 2 실시예는 주파수 변환 및 양자화부(131), 대형 데이터 처리 단위를 고려한 프로세싱에 의한 움직임 추정부(2003), 인루프 필터링부(137) 및 엔트로피 부호화부(139)를 포함한다. 대형 데이터 처리 단위를 고려한 프로세싱을 기반으로 하여 인트라 추정 및 인터 추정이 수행될 수 있다.
그룹 부호화부(130)의 제 2 실시예에 따른 대형 데이터 처리 단위를 고려한 프로세싱에 의한 움직임 추정부(2003)는 그룹 부호화 모드 결정부(120)에서 결정된 부호화 모드에 기초한 대형 데이터 처리 단위를 고려하여, 움직임 추정을 위한 대형 데이터 처리 단위 및 주파수 변환을 위한 데이터 처리 단위의 조합이 미리 결정될 수 있다. 주파수 변환을 위한 데이터 처리 단위는 움직임 추정을 위한 데이터 처리 단위보다 사이즈가 작은 것이 바람직하다.
그룹 부호화부(130)의 제 2 실시예에 따른 대형 데이터 처리 단위를 고려한 프로세싱에 의한 움직임 추정부(2003)는 대형 데이터 처리 단위를 고려하여, 데이터 처리 단위별 움직임 추정을 위한 스캔 방식 및 이웃 블록을 참조 블록으로 이용할 수 있는 가능성(Neighbor availability)을 결정할 수 있다.
그룹 부호화부(130)의 제 2 실시예에 따른 대형 데이터 처리 단위를 고려한 프로세싱에 의한 움직임 추정부(2003)는 대형 데이터 처리 단위를 고려하여, 부호화 모드를 나타내는 비트의 전송량을 절약하기 위해, 정사각 형태의 데이터 처리 단위만이 채택하는 간략화된 부호화 모드를 이용할 수 있다.
도 20c 는 일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)에 대해 대형 데이터 처리 단위를 고려한 인트라 추정이 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)의 제 3 실시예는 주파수 변환 및 양자화부(131), 대형 데이터 처리 단위를 고려한 인트라 추정부(2004) 및 인터 추정부(135), 인루프 필터링부(137) 및 엔트로피 부호화부(139)를 포함한다.
그룹 부호화부(130)의 제 3 실시예에 따른 대형 데이터 처리 단위를 고려한 인트라 추정부(2004)는 소정 대형 데이터 처리 단위에 대해 인트라 추정을 수행하는 인트라 모드를 추가적으로 정의할 수 있다.
그룹 부호화부(130)의 제 3 실시예에 따른 대형 데이터 처리 단위를 고려한 인트라 추정부(2004)는 보다 대형 데이터 처리 단위의 정확한 움직임 추정을 위해, 인트라 모드에 컴플렉스 플레인(complex plain)을 이용한 추정 모드를 도입할 수 있다.
그룹 부호화부(130)의 제 3 실시예에 따른 대형 데이터 처리 단위를 고려한 인트라 추정부(2004)는, 인트라 추정이 가능한 대형 데이터 처리 단위의 종류를 한정할 수 있다.
도 20d 는 일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)에 대해 대형 데이터 처리 단위를 고려한 인터 추정이 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)의 제 4 실시예는 주파수 변환 및 양자화부(131), 인트라 추정부(134) 및 대형 데이터 처리 단위를 고려한 인터 추정부(2005), 인루프 필터링부(137) 및 엔트로피 부호화부(139)를 포함한다.
그룹 부호화부(130)의 제 4 실시예에 따른 대형 데이터 처리 단위를 고려한 인터 추정부(2005)는 대형 데이터 처리 단위의 추정 모드로써, 인터 추정 및 인트라 추정이 혼재할 수 있는 혼합 모드를 도입할 수 있다.
그룹 부호화부(130)의 제 4 실시예에 따른 대형 데이터 처리 단위를 고려한 인터 추정부(2005)는 대형 데이터 처리 단위 별로 움직임 벡터(MV)를 결정하고, 그에 따라 움직임 벡터 추정자(MVP)를 유도할 수 있다.
그룹 부호화부(130)의 제 4 실시예에 따른 대형 데이터 처리 단위를 고려한 인터 추정부(2005)는 대형 데이터 처리 단위에 대한 스킵 모드를 새로이 도입하고, 복수의 스킵 모드의 데이터 처리 단위를 포함하는 스킵 그룹을 설정할 수 있다. 스킵 그룹에 속하는 스킵 모드의 데이터 처리 단위들 모두에 대해서는 함께 스킵 처리할 수 있다.
도 20e 는 일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)에 대해 대형 데이터 처리 단위를 고려한 인루프 필터링이 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)의 제 5 실시예는 주파수 변환 및 양자화부(131), 인트라 추정부 및 인터 추정부를 포함하는 움직임 추정부(133), 인루프 필터링부(2007) 및 엔트로피 부호화부(139)를 포함한다.
그룹 부호화부(130)의 제 5 실시예에 따른 대형 데이터 처리 단위를 고려한 인루프 필터링부(2007)는 대형 데이터 처리 단위 내부의 하위 처리 단위의 경계에 대한 필터링 여부를 결정하고, 필터링 강도를 조절할 수 있다.
그룹 부호화부(130)의 제 5 실시예에 따른 대형 데이터 처리 단위를 고려한 인루프 필터링부(2007)는 대형 데이터 처리 단위 내부의 링잉 효과를 감소시키기 위한 인루프 필터링을 수행할 수 있다.
도 20f 는 일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)에 대해 대형 데이터 처리 단위를 고려한 엔트로피 부호화가 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)의 제 6 실시예는 주파수 변환 및 양자화부(131), 인트라 추정부 및 인터 추정부를 포함하는 움직임 추정부(133), 인루프 필터링부(137) 및 엔트로피 부호화부(2009)를 포함한다.
그룹 부호화부(130)의 제 6 실시예에 따른 대형 데이터 처리 단위를 고려한 엔트로피 부호화부(2009)는 대형 데이터 처리 단위에 대한 부호화 블록 패턴을 정의한다. 또한, 엔트로피 부호화부(2009)는 데이터 처리 단위 내에 0이 아닌 부호화 블록 패턴이 존재할 확률에 기초하여 부호화 블록 패턴을 스캔할 수 있다.
그룹 부호화부(130)의 제 6 실시예에 따른 대형 데이터 처리 단위를 고려한 인루프 필터링부(2007)는 대형 데이터 처리 단위에 대해 컨텍스트 기반 적응적 이진 산술 부호화(CABAC) 또는 컨텍스트 기반 적응적 가변 길이 부호화(CAVLC)를 적용할 수 있다.
그룹 부호화부(130)의 제 6 실시예에 따른 대형 데이터 처리 단위를 고려한 인루프 필터링부(2007)는, 대형 데이터 처리 단위에 대한 부호화 블록 패턴의 신규 컨텍스트를 설정할 수 있다.
전술한 그룹 부호화부(130)의 제 1 실시예 내지 제 6 실시예는, 각각의 부호화 과정별로 대형 데이터 처리 단위를 고려하여 수행할 수 있는 고유 프로세스들이다. 이하, 영상 부호화 전과정에 걸쳐 대형 데이터 처리 단위 중 하나인 대형 블록을 기반으로 영상 시퀀스를 부호화하는 방법을 도 20g를 참조하여 후술한다.
도 20g 은 본 발명의 일 실시예에 따라 동적으로 결정된 데이터 처리 단위를 고려한 영상 부호화 방법의 흐름도를 도시한다.
일 실시예에 따른 영상 부호화 방법(2000)은 계층적 구조의 블록(2020) 중 소정 부호화 모드에 대응하는 블록을 이용하여, 입력 영상 시퀀스(2010)에 대한 부호화를 수행한다. 블록의 계층적 구조(2020)는 도 10을 참조하여 전술된 그룹, 서브그룹, 기본블록의 계층적 구조와 동일하다.
일 실시예에 따른 영상 부호화 방법(2000)은 주파수 변환 및 양자화 단계(s2030), 움직임 추정 단계(s2040), 인루프 필터링 단계(s2080), 엔트로피 부호화 단계(s2090)을 거쳐 영상 비트스트림을 출력(s2098)한다. 움직임 추정 단계(s2040)는 소정 프로세싱(2050) 기반의 인트라 추정 단계(s2060) 및 인터 추정 단계(s2070)을 포함한다.
일 실시예에 따른 영상 부호화 방법(s2000)은 대형 블록을 고려하므로, 주파수 변환 및 양자화 단계(s2030), 움직임 추정을 위한 프로세싱(2050), 인트라 추정 단계(s2060), 인터 추정 단계(s2070), 인루프 필터링 단계(s2080), 엔트로피 부호화 단계(s2090)도 대형 블록을 고려한 고유 프로세스를 수행할 수 있다.
예를 들어, 주파수 변환 및 양자화 단계(s2030)의 대형 블록을 고려한 고유 프로세스는, 대형 블록 기반의 정수 이산 코사인 변환 및 양자화(2032), 대형 블록의 크로마 성분에 대한 이산 코사인 변환 및 양자화(2034), 대형 블록 기반의 이산 코사인 변환을 위한 저복잡도 연산(2036) 중 적어도 하나를 포함할 수 있다.
움직임 추정을 위한 프로세싱(2050)의 대형 블록을 고려한 고유 프로세스는, 움직임 추정을 위한 대형 블록 및 주파수 변환을 위한 대형 블록의 조합(2052), 움직임 추정을 위한 블록 스캐닝 방식 및 이웃 블록 참조 가능성(2054), 계층적 구조의 대형 블록의 간략화 모드(2056) 중 적어도 하나를 포함할 수 있다.
인트라 추정 단계(s2060)의 대형 블록을 고려한 고유 프로세스는, 대형 블록 기반의 인트라 모드의 도입(2062), 인트라 추정을 위한 컴플렉스 플레인의 도입(2064), 추정 가능한 인트라 모드의 결정(2066) 중 적어도 하나를 포함할 수 있다.
인터 추정 단계(s2070)의 대형 블록을 고려한 고유 프로세스는, 인트라 모드 및 인터 모드가 혼합된 추정 모드의 도입(2072), 대형 블록의 움직임 벡터(MV)의 결정 방식 및 움직임 벡터 추정자(MVP)의 유도 방식(2074), 대형 블록의 신규한 스킵 모드 및 스킵 그룹의 도입(2076) 중 적어도 하나를 포함할 수 있다.
인루프 필터링 단계(s2080)의 대형 블록을 고려한 고유 프로세스는, 대형 블록 내부의 경계에 대한 필터링 여부 결정 및 필터링 강도 결정(2082), 대형 블록 내부의 링잉 효과 감소 필터링(2084) 중 적어도 하나를 포함할 수 있다.
엔트로피 부호화 단계(s2090)의 대형 블록을 고려한 고유 프로세스는, 대형 블록에 대한 부호화 블록 패턴(CBP)의 도입 및 부호화 블록 패턴 스캔 방식(2092), 대형 블록을 고려한 컨텍스트 기반 적응적 이진 산술 부호화(CABAC) 또는 컨텍스트 기반 적응적 가변 길이 부호화(CAVLC)의 도입(2094), 대형 블록의 부호화 블록 패턴에 대한 컨텍스트의 설정 방식(2096) 중 적어도 하나를 포함할 수 있다.
도 20a 내지 20g를 참조하여 전술된, 대형 데이터 처리 단위를 고려한 영상 부호화 장치(100) 또는 영상 부호화 방법(2000)은, 기존 영상 부호화 포맷을 크게 변경하지 않은 채, 대형 데이터 처리 단위를 고려한 고유 프로세스들을 추가하거나 대체하여 적용함으로써 영상을 부호화할 수 있다.
앞서 도 20a 내지 20g를 참조하여 영상 부호화에 대해서만 기술하였지만, 대형 데이터 처리 단위를 고려한 고유 프로세스는 영상 부호화에 대응하는 영상 복호화에 적용되는 것이 바람직하다. 따라서 이하 상술되는 각 과정별 고유 프로세스는 영상 부호화 뿐만 아니라 영상 복호화에도 적용될 수 있다.
[[Ⅲ. 움직임 추정 프로세싱]]
이하, 일 실시예에 따른 영상 부호화 장치(100)의 그룹 부호화부(130)의 움직임 추정부(133)의 고유 프로세싱 및 일 실시예에 따른 영상 부호화 방법(2000)의 움직임 추정을 위한 프로세싱(2050)에 대해 상술된다. 또한, 일 실시예에 따른 영상 부호화 장치(100)에 대응하는 영상 복호화 장치에서도 이하 움직임 추정을 위한 프로세싱이 적용될 수 있다.
일 실시예에 따른 움직임 추정을 위한 프로세싱은, 움직임 추정을 위한 대형 데이터 처리 단위 및 주파수 변환을 위한 데이터 처리 단위의 조합, 움직임 추정을 위한 블록 스캐닝 방식 및 이웃 블록의 이웃 블록 참조 가능성, 대형 블록의 간략화 모드로 특징지을 수 있다.
첫째, 움직임 추정을 위한 데이터 처리 단위가 기존 16×16 또는 8×8 매크로블록 이상으로 확대됨에 따라, 움직임 추정을 위한 데이터 처리 단위의 최대 사이즈 이하의 범위에서, 움직임 추정을 위한 데이터 처리 단위에 비례하여 주파수 변환을 위한 데이터 처리 단위도 확대될 수 있다.
즉, 움직임 추정을 위한 데이터 처리 단위가 32×32 또는 16×16 매크로블록인 경우, 움직임 추정을 위한 데이터 처리 단위에 따라 주파수 변환을 위한 데이터 처리 단위는 32×32, 16×16, 8×8, 4×4 블록 중 하나로 조합될 수 있다.
둘째, 움직임 추정을 위한 블록 스캐닝 방식 및 이웃 블록의 이웃 블록 참조 가능성은 이하 도 21 및 22를 참조하여 상술한다.
도 21 은 본 발명의 일 실시예에 따른 대형 데이터 처리 단위를 고려한 움직임 추정을 위해 데이터 처리 단위별 스캔 방식을 도시한다. 앞서 도 13을 참조하여 수퍼 매크로블록 단위의 스캔 방식이 설명된 바와 같이, 한 프레임 내(1320)의 대형 데이터 처리 단위는 지그재그 스캔 방식에 의해 부호화 모드가 검색된다.
도 13과 같이 프레임(1320) 내부의 수퍼 매크로블록이 가로 세로 방향으로 나란히 정렬되어 64×64 라지 블록(Large Block) 단위로 블록들이 정렬될 수 있다. 일 실시예에 따른 움직임 추정 스캔 방식은, 도 13과 같이 정렬된 경우 이외에도, 도 21과 같이 프레임(2100) 이내의 수퍼 매크로블록들이 정렬되지 않은 경우에도 적용될 수 있다.
예를 들어, 프레임(2100)의 첫 스캔 대상(2110)이 정사각 형태의 수퍼 매크로블록이 아니어도 된다. 지그재그로 스캔되는 정사각 형태의 수퍼 매크로블록들(2140)이 반드시 나란히 정렬되어야 하는 것은 아니다. 수퍼 매크로블록(2120) 및 수퍼 매크로블록(2130)은 인접한 이웃 블록이지만 서로 일렬로 정렬되어 있지 않다.
또한, 정사각 형태의 수퍼 매크로블록(32×32 S-MB, 32×16/16×32 S-MB) 형태로 스캔될 수는 없더라도 직사각 형태의 수퍼 매크로블록(32×16/16×32 S-MB_half)에 의해 스캔될 수 있는 위치에서, 16×16 매크로블록(2140) 단위로 스캔될 수도 있다.
프레임(1320)과 같이 스캔 대상 블록들이 정렬된 경우에는, 기존의 이웃 블록 추정 및 컨텍스트와 동일한 방식으로 이웃 블록을 참조 블록으로 이용할 수 있다. 그러나 프레임(2100)과 같이 스캔 대상 블록이 정렬되지 않은 경우에는, 참조 블록이 경우에 따라 변경되므로, 현재 블록의 움직임 벡터 추정자 또는 인트라 추정자는 가장 인접한 위치의 동일 사이즈의 블록을 가리키도록 설정될 수 있다.
정사각 형태의 블록(32×32 S-MB, 32×16/16×32 S-MB, 16×16 MB)만 설정 가능한 간략화 모드에서는 추가적으로 발생하는 연산 복잡도(complexity) 및 시그널링(signaling)이 제어될 수 있다.
도 22 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위를 고려한 움직임 추정에서, 인접하는 이웃 데이터 처리 단위의 이용 가능성을 도시한다. 데이터 처리 단위의 예시로 기존 16×16 매크로블록(2200) 및, 32×32 수퍼 매크로블록(2250)이 이용된다.
움직임 벡터 추정자(MVP) 및 인트라 추정 수행 중에, 상단 우측의 이웃 블록을 참조블록으로 이용할 수 있는지 여부(이하, 이웃 블록 참조 가능성(neighbor availability))은, 이미 스캔된 주변 블록인지 여부와 위치 인덱스 단위에 의해 결정될 수 있다.
도 22에서, 데이터 처리 단위로써 정사각 형태의 블록이 이용되는 경우를 참조하여 이웃 블록 참조 가능성이 설명된다. 한 프레임 내의 블록들은, 최소 데이터 단위인 4×4 블록별로 상단 우측의 이웃 블록을 참조할 수 있는 제 1 블록군(2202), 4×4 인덱스의 경우에만 상단 우측의 이웃 블록을 참조할 수 없는 제 2 블록군(2204), 8×8 인덱스의 경우에만 상단 우측의 이웃 블록을 참조할 수 없는 제 3 블록군(2206), 16×16 인덱스의 경우에만 상단 우측의 이웃 블록을 참조할 수 없는 제 4 블록군(2208)로 분류된다.
예를 들어 기존 16×16 매크로블록(2200)의 경우, 4×4 블록 a1, a2, a3, b1, b2, b3, c1, c2, c3, d1, d2는 상단 우측의 이웃 블록을 참조할 수 있는 제 1 블록군(2202)에 해당한다. 4×4 블록 a4, b4, c4, d4 는 4×4 인덱스의 경우에만 상단 우측의 이웃 블록을 참조할 수 없는 제 2 블록군(2204)에 해당한다. 4×4 블록 d2는 8×8 인덱스의 경우에만 상단 우측의 이웃 블록을 참조할 수 없는 제 3 블록군(2206)에 해당한다.
따라서, 기존 16×16 매크로블록(2200)의 경우, 이웃 블록 참조 가능성과 관련하여 제 1 블록군(2202), 제 2 블록군(2204), 제 3 블록군(2206)이 분류될 수 있다.
일 실시예에 따라 대형 데이터 처리 단위가 도입되는 경우, 참조 블록의 결정을 위해 4×4 또는 8×8 인덱스 이외에 16×16 인덱스가 추가될 수 있다. 따라서, 16×16 인덱스의 경우에만 상단 우측의 이웃 블록을 참조할 수 없는 제 4 블록군(2208)이 존재될 수 있다.
32×32 수퍼 매크로블록(2250)의 경우, 4×4 블록 A1, A2, A3, B1, B2, B3, C1, C2, C3, D1, D3, E1, E2, E3, F1, F2, F3, G1, G2, G3, H1, H3, I1, I2, I3, J1, J2, J3, K1, K2, K3, L1, L3, M1, M2, M3, N1, N3, O1, O2, O3, P1, P3 는 상단 우측의 이웃 블록을 참조할 수 있는 제 1 블록군(2202)에 해당한다.
4×4 블록 A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, L4, M4, N4, O4, P4 는 4×4 인덱스의 경우에만 상단 우측의 이웃 블록을 참조할 수 없는 제 2 블록군(2204)에 해당한다. 4×4 블록 D2, H2, L2, P2 는 8×8 인덱스의 경우에만 상단 우측의 이웃 블록을 참조할 수 없는 제 3 블록군(2206)에 해당한다.
한편, 4×4 블록 N2는 16×16 인덱스의 경우에만 상단 우측의 이웃 블록을 참조할 수 없는 제 4 블록군(2208)에 해당한다.
상단 우측의 이웃 블록 참조 가능성은 움직임 벡터 추정자 또는 인트라 추정자를 결정하기 위한 조건 또는 움직임 벡터 추정자 또는 인트라 추정자의 유도 함수의 입력 변수로 이용될 수 있다. 따라서, 일 실시예에 따라 대형 데이터 처리 단위가 도입되는 경우, 움직임 벡터 추정자 또는 인트라 추정자를 결정하기 위한 조건 또는 유도 함수의 입력 변수로써, 16×16 인덱스에 의한 상단 우측의 이웃 블록 참조 가능성이 추가될 수 있다.
셋째, 정사각 형태의 데이터 처리 단위만이 채택되는 간략화된 부호화 모드는 이하 도 23a 및 23b를 참조하여 후술한다.
도 23a 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위 중 간소화된 계층적 데이터 처리 단위를 도시한다.
도 10에서 전술된 데이터 처리 단위의 계층적 구조(1000)에 따르면, 일 실시예에 따른 데이터 처리 단위는 정사각 형태의 블록들(32×32, 16×16, 8×8, 4×4) 및 직사각 형태의 블록들(32×16, 16×32, 16×8, 8×16, 8×4, 4×8)를 모두 포함하고 있다. 데이터 처리 단위의 계층적 구조(1000)에 따르면 다양한 데이터 처리 단위에 의한 부호화가 가능하다.
일 실시예에 따른 영상 부호화 장치(100)는 정사각 형태의 블록들만을 포함하는 데이터 처리 단위의 계층적 구조(2310)로 간략화될 수 있다.
제 1 계층(2310)은 인트라 모드의 32×32 수퍼 매크로블록, 스킵 모드의 32×32 수퍼 매크로블록, 인터 모드의 32×32 수퍼 매크로블록, 16×16 매크로블록을 포함할 수 있다. 제 1 계층(2310)은 32×32, 16×16, 8×8, 4×4 블록 단위 중 적어도 한 단위로 주파수 변환될 수 있다.
제 2 계층(2320)은 인트라 모드의 16×16 매크로블록, 스킵 모드의 16×16 매크로블록, 인터 모드의 16×16 매크로블록, 인터 모드의 8×8 매크로블록을 포함할 수 있다. 제 2 계층(2320)은 16×16, 8×8, 4×4 블록 단위 중 적어도 한 단위로 주파수 변환될 수 있다.
제 3 계층(2330)은 스킵 모드의 8×8 매크로블록, 인터 모드의 8×8 매크로블록, 인터 모드의 4×4 블록을 포함할 수 있다. 제 3 계층(2330)은 8×8, 4×4 블록 단위 중 적어도 한 단위로 주파수 변환될 수 있다.
간략화된 데이터 처리 단위의 계층적 구조(2310)에 따르면, 동일한 크기 및 형태인 인터 모드 및 인트라 모드의 블록이 각각 존재하게 된다. 또한, 부호화 모드의 수가 감소하므로, 부호화 모드를 나타내는 비트가 절약될 수 있다.
도 23b 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위를 고려한 신택스를 도시한다. 신택스(2350)는 소정 데이터 처리 단위의 부호화 모드에 따른 각종 정보를 포함한다.
'mode' 값(2352)은 부호화 모드를 나타낸다. 'ref_idx/mvd' 값(2354)은 참조 인덱스 및 움직임 벡터의 변이를 나타낸다. 'coded_block_pattern' 값(2356)은 부호화 블록 패턴을 나타낸다. 'transform_size_flag' 값(2358)은 주파수 변환을 위한 데이터 처리 단위의 크기를 나타낸다. 'residual()' 값(2360)은 잔차 성분에 관한 정보를 나타낸다.
간략화된 데이터 처리 단위의 계층적 구조(2310)에 따르면, 'mode' 값(2352)의 비트가 절약될 수 있다. 또한, 부호화 모드에 따른 주파수 변환을 위한 데이터 처리 단위의 크기가 제한되면, 신택스(2350) 중 'coded_block_pattern' 값(2356) 및 'transform_size_flag' 값(2358)이 변형될 수 있다.
[[Ⅲ-1. 인트라 추정]]
일 실시에에 따른 영상 부호화 장치(100)의 인트라 추정부(2004) 및 일 실시예에 따른 영상 부호화 방법(2000)의 인트라 추정 단계(s2060)는, 대형 데이터 처리 단위를 고려한 고유의 프로세스를 도입할 수 있다.
첫째, 대형 블록 기반의 인트라 모드(2062)가 추가된다. 예를 들어, 인트라 모드의 32×32 수퍼 매크로블록, 인트라 모드의 16×16 매크로블록이 추가될 수 있다.
둘째, 보다 정교한 인트라 추정을 위한 컴플렉스 플레인을 이용한 추정 모드가 도입될 수 있다.
셋째, 각각의 데이터 처리 단위 별로 인트라 추정 가능함을 나타내는 부호화 모드가 개별적으로 결정될 수 있다.
[[Ⅲ-2. 인터 추정]]
일 실시에에 따른 영상 부호화 장치(100)의 인터 추정부(2005) 및 일 실시예에 따른 영상 부호화 방법(2000)의 인터 추정 단계(s2070)는, 대형 데이터 처리 단위를 고려한 고유의 프로세스를 도입할 수 있다.
첫째, 임의의 대형 데이터 처리 단위에 대해 인트라 모드 및 인터 모드가 혼합된 추정 모드가 설정될 수 있다. 또한, 대형 데이터 처리 단위 내의 하위 데이터 처리 단위별로 인트라 모드 또는 인터 모드가 혼재하여 설정될 수 있다.
둘째, 대형 데이터 처리 단위에 대한 스킵 모드가 새롭게 정의되고, 적어도 하나의 스킵 모드의 데이터 처리 단위를 포함하는 스킵 그룹이 도입될 수 있다. 예를 들어, 스킵 모드의 32×32 수퍼 매크로블록, 복수의 스킵 모드의 32×32 수퍼 매크로블록을 포함하는 스킵 그룹이 이하 도 24a 내지 24c를 통해 제안된다.
도 24a, 24b 및 24c 는 본 발명의 일 실시예에 따른 스킵 그룹의 여러 가지 구성 방식을 도시한다. 설명의 편의를 위해 도 24a, 24b 및 24c의 대형 데이터 처리 단위로는 32×32 수퍼 매크로블록이 이용된다.
일 실시예에 따른 영상 부호화 및 영상 복호화는, 스킵 모드인 블록을 스킵 처리하는데 있어서, 상호 인접하는 스킵 모드인 블록을 스킵 그룹으로 묶어 스킵 그룹에 대해 동시에 스킵 처리할 수 있다. 따라서, 한 프레임을 스캔하다가 스킵 그룹이 판독되면 인접하는 이웃 블록들이 동일한 스킵 그룹에 포함되는 스킵 모드의 블록인지 여부가 판단되어야 한다.
따라서, 소정 블록이 스킵 모드이며 스킵 그룹에 포함되는지 여부를 나타내기 위한 표시가 필요하다. 도 24a, 24b 및 24c 에 도시된 일 실시예는, 소정 블록이 스킵 모드이며 스킵 그룹에 포함되는지 여부를 나타내기 위한 표시로써 스킵 모드 플래그를 사용한다. 스킵 모드 플래그가 '0'이면 해당 블록은 스킵 모드가 아닌 블록이며, '2'이면 해당 블록이 스킵 그룹의 시작 블록이고, '1'이면 해당 블록이 스킵 그룹에 속하는 블록임을 나타낸다.
일 실시예에 따른 스킵 그룹에 관련하여, 프레임 내의 스킵 모드인 블록을 검색하고 스킵 그룹을 스캔하기 위해, 스킵 그룹의 위치가 선정될 수 있다. 또한, 인접하는 스킵 모드의 블록들을 포함하는 스킵 그룹의 최대 사이즈가 제한될 수 있다.
따라서, 일 실시예에 따라 대형 데이터 처리 단위에 기초한 인터 추정에서는, 스킵 그룹의 위치가 고정되고 사이즈가 고정된 경우(도 24a의 프레임(2400)), 스킵 그룹의 위치가 고정되고 임의의 사이즈로 형성되는 경우(도 24b의 프레임(2440)), 모든 위치에 스킵 그룹이 위치할 수 있고 임의의 사이즈로 형성되는 경우(도 24c의 프레임(2470))로 스킵 처리를 할 수 있다.
도 24a의 제 1 프레임(2400)에서는 스킵 그룹의 사이즈가 64×64 블록으로 고정되어 있다. 따라서 스캔 그룹을 검색하기 위해서는, 64×64 블록마다 좌측 상단에 위치한 32×32 수퍼 매크로블록만 스킵 모드인지 검색하면 된다. 예를 들어, 32×32 수퍼 매크로블록(2412)의 스킵 모드 플래그가 '0'으로 표시되어 있으므로 스킵 모드가 아니고, 수퍼 매크로블록(2412)을 포함하는 64×64 블록(2410)은 스킵 그룹이 아님이 확인될 수 있다.
64×64 블록(2410)의 다음 스캔 순서로 64×64 블록(2420)의 좌측 상단 수퍼 매크로블록을 검색하여 스킵 모드 플래그가 '0'이면 64×64 블록(2420)도 스킵 그룹이 아님이 확인될 수 있다.
수퍼 매크로블록(2432)의 스킵 모드 플래그는 '2'로 표시되어 있으므로 스킵 그룹의 시작 블록임이 확인될 수 있다. 제 1 프레임(2400)의 스킵 그룹의 사이즈는 64×64 블록으로 고정되어 있으므로, 수퍼 매크로블록(2432)을 좌측 상단에 포함하는 64×64 블록(2430)이 스킵 그룹이다. 또한, 64×64 블록(2430) 내의 다른 수퍼 매크로블록들(2434 등)은 모두 스킵 모드 플래그가 '1'인 스킵 모드의 블록임이 예상될 수 있다.
도 24a를 참조하여 예시된 고정 위치 및 고정 사이즈의 스킵 그룹의 경우, 고정 위치의 32×32 블록의 스킵 모드 플래그가 '0' 또는 '2'인지 여부만 확인되면 인접 블록들도 스킵 모드인지 여부가 확인될 수 있으므로, 부호화단으로부터 고정 위치의 해당 블록의 스킵 모드 플래그만 송신되면 복호화단에서 수신하여 해당 프레임의 모든 블록들이 스킵 모드인지 여부를 식별할 수 있다.
도 24b의 프레임(2440)에서는, 스킵 그룹의 사이즈가 고정되어 있지 않지만, 스킵 그룹이 시작할 수 있는 위치는 고정되어 있다. 즉, 매 64×64 블록의 좌측 상단에 위치한 32×32 블록으로부터 스킵 그룹이 시작될 수 있으므로, 프레임(2440)을 스캔할 때 64×64 블록마다 좌측 상단에 위치한 32×32 블록의 스킵 모드 플래그가 '0' 또는 '2'인지 확인하면 된다. 예를 들어, 64×64 블록(2450)의 좌측 상단의 32×32 블록의 스킵 모드 플래그가 '0'임이 스캔되면 64×64 블록(2450)은 스킵 그룹이 아님이 확인된다.
한편, 다른 64×64 블록의 좌측 상단에 위치한 32×32 블록(2461)이 스캔되면 스킵 모드 플래그가 '2'이므로 32×32 블록(2461)으로부터 시작하는 스킵 그룹(2460)이 결정되어야 한다. 32×32 블록(2461)의 우측 방향 및 하단 방향으로 인접하는 32×32 블록들의 스킵 모드 플래그를 스캔하여, 연속적으로 스킵 모드 플래그가 '1'인 32×32 블록들(2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469)은 32×32 블록(2461)과 동일한 스킵 그룹(2460)에 포함되는 것으로 확인될 수 있다.
또한, 프레임(2440)을 스캔하는 도중 고정 위치의 32×32 블록의 스킵 모드 플래그는 확인되어야 하지만, 이미 이전에 스캔되어 소정 스킵 그룹에 포함됨이 확인되었던 블록은 스캔되지 않는다. 예를 들어, 32×32 블록들(2463, 2467, 2469)은 각각 개별적인 64×64 블록의 좌측 상단에 위치하므로 스킵 모드 플래그가 스캔되어야 하는 고정 위치의 블록이지만, 이미 이전 스캔 순서에 따라 스킵 그룹(2460)에 포함되는 블록임이 확인된 상태이다. 따라서, 32×32 블록들(2463, 2467, 2469)은 스캔하지 않은 채 다음 위치로 스캔이 진행하게 된다.
도 24b를 참조하여 예시된 고정 위치 및 고정 사이즈의 스킵 그룹의 경우, 고정 위치의 32×32 블록의 스킵 모드 플래그 및 스킵 그룹의 사이즈가 부호화단으로부터 송신되어 복호화단에서 수신할 수 있다. 복호화단은, 해당 프레임의 블록들의 스킵 모드 플래그를 판독하여 해당 블록이 스킵 모드인지 여부를 식별할 수 있다. 다만, 고정 위치의 블록이더라도 스킵 모드 플래그가 '1'이어서 다른 스킵 그룹의 블록임이 표시되는 블록은 별도로 스킵 모드 플래그가 송수신될 필요가 없다.
도 24c의 프레임(2470)에서는, 스킵 그룹의 사이즈가 고정되어 있지 않으며, 스킵 그룹이 시작할 수 있는 위치도 고정되어 있지 않다. 따라서, 프레임(2470)을 스캔할 때 모든 32×32 블록의 스킵 모드 플래그가 확인되어야 한다.
예를 들어, 32×32 블록(2472)의 스킵 모드 플래그가 '0'이므로 다음 순서로는 바로 인접하는 32×32 블록(2474)이 스캔된다. 스캔의 진행 과정에 따라, 스킵 모드 플래그가 '2'인 32×32 블록가 검색될 때까지 모든 32×32 블록들이 차례로 스캔된다.
한편, 스킵 모드 플래그가 '2'인 32×32 블록(2482)이 스캔되면 32×32 블록(2482)으로부터 시작하는 스킵 그룹(2480)이 결정되어야 한다. 32×32 블록(2482)의 우측 방향 및 하단 방향으로 인접하는 32×32 블록들의 스킵 모드 플래그를 스캔하여, 연속적으로 스킵 모드 플래그가 '1'인 32×32 블록들은 모두 32×32 블록(2482)과 동일한 스킵 그룹(2480)에 포함되는 것으로 확인될 수 있다.
스킵 그룹(2480)이 결정된 후 스킵 그룹(2480)에 포함된 32×32 블록들은 스캔 없이 건너뛰고, 스킵 그룹(2480)에 속하지 않는 다음 32×32 블록(2492)으로 스캔이 진행된다. 마찬가지로, 32×32 블록(2492)을 시작으로 스킵 그룹(2490)이 결정될 수 있다.
도 24c를 참조하여 예시된 고정 위치 및 임의의 사이즈의 스킵 그룹의 경우, 모든 위치에서의 32×32 블록의 스킵 모드 플래그 및 스킵 그룹의 사이즈가 부호화단으로부터 송신되어 복호화단에서 수신할 수 있다. 복호화단은, 스킵 모드 플래그를 이용하여, 해당 프레임에서의 블록별로 스킵 모드인지 여부를 식별할 수 있다. 다만, 다른 스킵 그룹에 포함되는 것으로 확인된 32×32 블록은 별도로 스킵 모드 플래그가 송수신될 필요가 없다.
따라서, 본 발명은 도 24a, 24b 및 24c를 참조하여 전술된 다양한 실시예에 따라 스킵 모드의 블록들을 그룹으로 스킵 처리할 수 있으므로, 각각의 블록별로 스킵 모드를 표시하기 위한 비트가 절약될 수 있으며, 모든 블록이 스캔될 필요 없이 스킵 모드가 효율적으로 검색될 수 있다.
셋째, 인터 추정에 따른 움직임 벡터(MV)은 대형 데이터 처리 단위로 결정될 수 있으며, 움직임 벡터 추정자(MVP)도 대형 데이터 처리 단위로 유도될 수 있다.
도 25a 및 25b 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위 내의 움직임 벡터 유도 방식과 하위 데이터 처리 단위의 움직임 벡터 유도 방식을 도시한다.
일 실시예에 따른 인터 추정에 의해 생성되는 움직임 벡터(MV) 및 움직임 벡터 추정자(MVP)는 대형 데이터 처리 단위로 유도된다. 그러나 도 25a 및 25b 에서는 대형 데이터 처리 단위의 개별적인 부호화 모드의 추가 없이, 기존 데이터 처리 단위(16×16 매크로블록)의 움직임 벡터를 이용하여 대형 데이터 처리 단위(16×16 매크로블록의 그룹, 즉 32×32 블록)의 움직임 벡터를 유도하는 방법이 개시된다.
예를 들어 일 실시예에 따른 대형 데이터 처리 단위인 32×32 수퍼 매크로블록(2500)의 인터 추정이라면, 인터 모드인 32×32 수퍼 매크로블록(inter 32×32)에 대한 움직임 벡터 mvs가 추정되거나 유도된다.
한편, 대형 데이터 처리 단위의 부호화 모드가 개별적으로 정의되지 않은 영상 부호화 또는 영상 복호화 과정에서, 매크로블록의 움직임 벡터를 이용하여 수퍼매크로블록의 움직임 벡터를 유도할 수 있다.
예를 들어, 16×16 매크로블록들(2502, 2504, 2506, 2508)의 움직임 벡터가 각각 mv0, mv1, mv2, mv3인 경우, mv1, mv2, mv3는 mv0를 이용하여 유도될 수 있다. 일례로, 아래 수학식 6에 따라 mv1, mv2, mv3가 추정될 수 있다.
[수학식 6]
mv1 = mv2 = mv3 = f(mv0), (여기서, f(x) = median(x, neighbors))
median(x, y) 함수는 x 및 y의 중간값을 구하는 함수이며, 입력 변수 'neighbors'는 인접하는 대형 데이터 처리 단위의 대표 움직임 벡터를 나타낸다. 16×16 매크로블록의 움직임 벡터는 대표 16×16 매크로블록(2502)의 움직임 벡터 mv0 및 인접하는 32×32 블록의 대표 움직임 벡터의 중간값으로 추정될 수 있다.
따라서, 도 25a의 경우에 따르면 16×16 매크로블록별로 모두 움직임 벡터를 측정할 필요 없이, 하나의 움직임 벡터를 16×16 매크로블록 각각의 움직임 벡터로 간주할 수 있으며, 32×32 수퍼 매크로블록 단위의 움직임 벡터 mvs가 16×16 매크로블록의 움직임 벡터로부터 추정될 수 있다.
도 25a의 경우는 부호화단 및 복호화단 사이에는 32×32 블록의 움직임 벡터에 관한 시그널링을 위해, 한 매크로블록의 움직임 벡터 mv0(또는 32×32 블록의 움직임 벡터 mvs)를 시그널링하기 위한 추가 플래그를 전송할 필요가 있다. 또한, 복호화단은, 수신된 움직임 벡터를 이용한 세 번의 유도 과정을 통해, 시그널링되지 않은 나머지 움직임 벡터 mv1, mv2, mv3를 유도할 수 있다.
도 25b에서는 16×16 매크로블록 움직임 벡터를 이용한 32×32 블록의 움직임 벡터를 추정하는 또 다른 방식이 제안된다. 또 다른 추정 방식은, 32×32 블록(2510)을 16×16 매크로블록들로 서브샘플링하여, 서브샘플링된 블록들의 움직임 벡터를 이용하여 32×32 블록의 움직임 벡터를 추정한다.
예를 들어, 좌측 상단 픽셀(2512), 우측 상단 픽셀(2514), 좌측 하단 픽셀(2516), 우측 하단 픽셀(2518)은 각각 순서대로 좌측 상단 매크로블록(2522), 우측 상단 매크로블록(2524), 좌측 하단 매크로블록(2526), 우측 하단 매크로블록(2528)으로 매핑함으로써, 서브샘플링된 16×16 매크로블록들(2522, 2524, 2526, 2528)이 생성될 수 있다.
서브 샘플링된 16×16 매크로블록들(2522, 2524, 2526, 2528)의 각각의 움직임 벡터 mv0', mv1', mv2', mv3' 는 아래와 같이 유도될 수 있다.
[수학식 7]
mv1' = mv2' = mv3' = mv0'
따라서, 16×16 매크로블록들(2522, 2524, 2526, 2528)의 각각의 움직임 벡터 mv0', mv1', mv2', mv3' 는 그 중 움직임 벡터 하나만 측정하면 나머지 움직임 벡터들도 추정될 수 있다.
32×32 블록(2510)의 움직임 벡터는 16×16 매크로블록들(2522, 2524, 2526, 2528)의 대표 움직임 벡터 MV(= mv1' = mv2' = mv3' = mv0')로 추정될 수 있다. 또는, mv1',mv2', mv3', mv0'를 이용한 움직임 벡터 추정자를 이용하여 MV가 추정될 수 있다. 따라서, 도 25b의 경우는 부호화단 및 복호화단 사이에는 32×32 블록의 움직임 벡터에 관한 시그널링을 위해, 한 매크로블록의 움직임 벡터(mv0', mv1', mv2', mv3' 중 하나)를 시그널링하기 위한 추가 플래그의 전송이 필요하다.
[[Ⅳ. 주파수 변환 및 양자화]]
일 실시에에 따른 영상 부호화 장치(100)의 주파수 변환 및 양자화부(2001) 및 일 실시예에 따른 영상 부호화 방법(2000)의 주파수 변환 및 양자화 단계(s2030)는, 대형 데이터 처리 단위를 고려한 고유의 프로세스를 도입할 수 있다.
일 실시예에 따른 영상 부호화 또는 영상 복호화는, 부호화 모드별 데이터 처리 단위가 기존 매크로블록 사이즈보다 클 수 있으므로, 기존의 주파수 변환의 데이터 처리 단위인 8×8 또는 4×4 블록 이외의 데이터 처리 단위가 도입될 수 있다.
이에 따라 일 실시에에 따른 영상 부호화 및 영상 복호화는, (i-1) 8×8 또는 4×4 블록 이외의 대형 블록 기반의 정수 이산 코사인 변환 및 양자화가 도입될 수 있으며, (i-2) 대형 블록 기반의 크로마 성분에 대한 이산 코사인 변환은, 컬러 규격을 고려하여 루마 성분에 따라 데이터 처리 단위의 사이즈가 변경될 수 있다. 또한, (i-3) 대형 블록 기반의 이산 코산 변환에 의해 발생하는 연산 부담량을 감소하기 위해 저복잡도 연산을 위한 변형된 형태의 이산 코사인 변환이 도입될 수 있다.
도 26a 및 26b 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위의 크로마 성분을 위한 여러 가지 움직임 추정 방식을 도시한다. (i-2) 대형 블록 기반의 크로마 성분에 대한 이산 코사인 변환(2034)이 후술된다. YUV 컬러 규격 포맷은 YUV 420 포맷 및 YUV 444 포맷을 포함한다. 도 26a는 YUV 420 포맷에 대한 추정 모드 별 주파수 변환 방식을 설명하고, 도 26b는 YUV 444 포맷에 대한 추정 모드 별 주파수 변환 방식을 설명한다. 루마 성분에 대한 추정 모드별 데이터 처리 단위가 32×32 수퍼 매크로블록인 경우를 예로 든다.
도 26a의 블록도(2600)는 대형 데이터 처리 단위를 고려한 주파수 변환 및 양자화부(2001)의 일 실시예로써, YUV 420 포맷의 크로마 성분에 대해 추정 모드별로 적용 가능한 주파수 변환 방식을 도시한다.
YUV 420 포맷은 Y 성분, U성분, V 성분 각각에 할당되는 비트량의 비율이 4:1:1 이므로, U, V 성분에 해당하는 각각의 크로마 성분에 할당되는 비트량이 Y 성분에 해당하는 루마 성분에 할당되는 비트량의 4분의 1 이하이다. 따라서 루마 성분에 대한 데이터 처리 단위의 사이즈에 비해 크로마 성분에 대한 데이터 처리 단위의 사이즈가 4분의 1 이하인 것이 바람직하다. 예를 들어, 크로마 성분을 위한 주파수 변환을 위한 데이터 처리 단위의 최대 사이즈는 32×32 블록의 4분의 1인 16×16 블록인 것이 바람직하다.
인트라 모드(2610)의 경우, (i) 8×8 블록의 방향성 인트라 추정(2612)이 수행된 후 4×4 이산 코사인 변환 및 2×2 하다마드(Hadamard) 변환(2614), 즉 8×8 주파수 변환이 수행되는 기존 방식에 추가적으로 (ii) 16×16 블록의 방향성 인트라 추정(2616)이 수행된 후 16×16 이산 코사인 변환(2618)이 수행되는 새로운 데이터 처리 단위가 추가될 수 있다.
또한, 인터 모드(2620)의 경우, N×M 블록의 인터 추정(2622)이 수행된 후 (i) 4×4 이산 코사인 변환 및 2×2 하다마드(Hadamard) 변환(2624), 즉 8×8 주파수 변환이 수행되는 기존 방식과 더불어 (ii) 16×16 이산 코사인 변환(2626)이 수행되는 새로운 데이터 처리 단위가 추가될 수 있다.
인트라 모드(2610) 또는 인터 모드(2620)에 따른 움직임 추정 및 주파수 변환 이후 양자화(2630) 및 엔트로피 부호화(2640)를 거쳐, 일 실시예에 따른 대형 데이터 처리 단위의 크로마 성분에 대해 부호화가 수행될 수 있다.
도 26b의 블록도(2650)는 대형 데이터 처리 단위를 고려한 주파수 변환 및 양자화부(2001)의 다른 실시예로써, YUV 444 포맷의 크로마 성분에 대해 추정 모드별로 적용 가능한 주파수 변환 방식을 도시한다.
YUV 444 포맷은 Y 성분, U성분, V 성분 각각에 할당되는 비트량의 비율이 4:4:4 이므로, 크로마 성분 각각에 할당되는 비트량이 루마 성분에 할당되는 비트량과 동일하다. 예를 들어 루마 성분에 대한 데이터 처리 단위의 최대 사이즈가 32×32 블록이므로 크로마 성분에 대한 데이터 처리 단위의 최대 사이즈도 32×32 블록일 수 있다.
인트라 모드(2660)의 경우, (i) 8×8 블록의 방향성 인트라 추정(2661)이 수행된 후 4×4 이산 코사인 변환 및 2×2 하다마드(Hadamard) 변환(2662), 즉 8×8 주파수 변환이 수행되는 기존 방식과 더불어, (ii) 16×16 블록의 방향성 인트라 추정(2663)이 수행된 후 16×16 이산 코사인 변환(2664)이 수행되는 새로운 데이터 처리 단위, (iii) 32×32 블록의 방향성 인트라 추정(2665)이 수행된 후 32×32 이산 코사인 변환(2666)이 수행되는 새로운 데이터 처리 단위가 추가될 수 있다.
또한, 인터 모드(2670)의 경우, N×M 블록의 인터 추정(2672)이 수행된 후 (i) 4×4 이산 코사인 변환 및 2×2 하다마드(Hadamard) 변환(2624), 즉 8×8 주파수 변환이 수행되는 기존 방식과 더불어 (ii) 16×16 이산 코사인 변환(2676)이 수행되는 새로운 데이터 처리 단위가 추가될 수 있다.
인트라 모드(2660) 또는 인터 모드(2670)에 따른 움직임 추정 및 주파수 변환 이후, 양자화(2680) 및 엔트로피 부호화(2690)를 거쳐, 일 실시예에 따른 대형 데이터 처리 단위의 크로마 성분에 대해 부호화가 수행될 수 있다.
도 26a 및 26b를 참조하여 도시된 블록도(2600, 2650)에 따른 추정 모드 및 주파수 변환 블록의 관계를 구체적으로 정리한 테이블이 도 27에서 도시된다. 이에 따라 각각의 추정 모드별로 루마 성분에 대한 주파수 변환 블록의 사이즈에 따라 크로마 성분에 대한 주파수 변환 블록의 사이즈가 유도될 수 있다.
도 27 은 본 발명의 일 실시예에 따른 대형 데이터 처리 단위의 크로마 성분에 대한 데이터 처리 단위의 사이즈를 유도하는 방식을 도시한다. (i-1) 대형 블록 기반의 정수 이산 코사인 변환 및 양자화(2032) 및 (i-2) 대형 블록 기반의 크로마 성분에 대한 이산 코사인 변환(2034)이 후술된다.
YUV 420 포맷의 경우, 크로마 성분을 위한 주파수 변환 블록의 사이즈는 루마 성분을 위한 주파수 변환 블록의 사이즈의 4분의 1 이하이다. 다만, 주파수 변환 블록의 최소 사이즈가 8×8 블록이다.
YUV 420 포맷의 경우 인트라 모드의 루마 성분을 위한 이산 코사인 변환을 위한 데이터 처리 단위는, 32×32, 16×16, 8×8, 4×4 블록을 포함한다. 따라서 YUV 420 포맷의 인트라 모드의 루마 성분을 위한 이산 코사인 변환 블록이 32×32 블록인 경우, 해당 크로마 성분의 이산 코사인 변환 블록은 16×16 블록으로 유도될 수 있다. 또한, YUV 420 포맷의 인트라 모드의 루마 성분을 위한 이산 코사인 변환 블록이 16×16, 8×8, 4×4 블록인 경우, 해당 크로마 성분의 이산 코사인 변환 블록은 최소 데이터 단위인 8×8 블록으로 유도될 수 있다.
YUV 420 포맷의 경우 인터 모드의 루마 성분을 위한 이산 코사인 변환을 위한 데이터 처리 단위는, 16×16, 8×8, 4×4 블록을 포함한다. 따라서, YUV 420 포맷의 인터 모드의 루마 성분을 위한 이산 코사인 변환 블록이 16×16, 8×8, 4×4 블록인 경우, 해당 크로마 성분의 이산 코사인 변환 블록은 최소 데이터 단위인 8×8 블록으로 유도될 수 있다.
YUV 444 포맷의 경우, 인트라 모드의 경우 크로마 성분을 위한 주파수 변환 블록의 사이즈는 루마 성분을 위한 주파수 변환 블록의 사이즈와 동일할 수 있다. 마찬가지로, 주파수 변환 블록의 최소 사이즈는 8×8 블록이다.
YUV 444 포맷의 경우 인트라 모드의 루마 성분을 위한 이산 코사인 변환을 위한 데이터 처리 단위는, 32×32, 16×16, 8×8, 4×4 블록을 포함한다. 따라서 YUV 444 포맷의 인트라 모드의 루마 성분을 위한 이산 코사인 변환 블록이 32×32 블록 및 16×16 블록인 경우, 해당 크로마 성분의 이산 코사인 변환 블록은 각각 32×32 블록 및 16×16 블록으로 유도될 수 있다.
또한, YUV 444 포맷의 인트라 모드의 루마 성분을 위한 이산 코사인 변환 블록이 8×8, 4×4 블록인 경우, 해당 크로마 성분의 이산 코사인 변환 블록은 최소 데이터 단위인 8×8 블록으로 유도될 수 있다.
YUV 444 포맷의 인터 모드의 루마 성분을 위한 이산 코사인 변환을 위한 데이터 처리 단위는, 16×16, 8×8, 4×4 블록을 포함한다. 따라서, YUV 444 포맷의 인터 모드의 루마 성분을 위한 이산 코사인 변환 블록이 16×16 블록인 경우, 해당 크로마 성분의 이산 코사인 변환 블록은 16×16 블록으로 유도될 수 있다. 또한, YUV 444 포맷의 인터 모드의 루마 성분을 위한 이산 코사인 변환 블록이 8×8, 4×4 블록인 경우, 해당 크로마 성분을 위한 이산 코사인 변환 블록은 최소 데이터 단위인 8×8 블록으로 유도될 수 있다.
따라서, 루마 성분의 이산 코사인 변환을 위한 데이터 처리 단위로부터 크로마 성분을 위한 데이터 처리 단위가 유도될 수 있다. YUV 컬러 규격 포맷 중 YUV 420 포맷 및 YUV 444 포맷만을 이용하여 추정 모드별 주파수 변환이 설명되었지만, 일 실시예에 따른 동적으로 결정된 데이터 처리 단위에 따른 영상 부호화 또는 영상 복호화가 YUV 420 포맷 및 YUV 444 포맷에만 한정되는 것이 아니다.
[[Ⅴ. 인루프 필터링]]
일 실시에에 따른 영상 부호화 장치(100)의 인루프 필터링부(2007) 및 일 실시예에 따른 영상 부호화 방법(2000)의 주파수 변환 및 양자화 단계(s2080)는, 대형 데이터 처리 단위를 고려한 고유의 프로세스를 도입할 수 있다.
일 실시예에 따른 영상 부호화 또는 영상 복호화는, 대형 데이터 처리 단위의 사이즈가 기존 매크로블록의 사이즈보다 클 수 있으므로, 대형 데이터 처리 단위 내부에 대한 필터링이 고려될 필요가 있다.
따라서, 일 실시예에 따라 대형 데이터 처리 단위를 고려한 인루프 필터링에 관한 고유 프로세스는, 대형 데이터 처리 단위 내부의 하위 데이터 처리 단위 경계에 대한 필터링 수행 여부의 결정 및 경계별 필터링 강도의 결정 방식, 대형 데이터 처리 단위의 부호화에 따른 링잉 효과 감소를 위한 필터링을 포함할 수 있다.
일 실시예에 따른 대형 데이터 처리 단위를 고려한 인루프 필터링에서, 대형 데이터 처리 단위 내부의 하위 데이터 처리 단위 경계에 대한 필터링 수행 여부 및 경계별 필터링 강도의 결정 방식은, 기존 영상 부호화 또는 영상 복호화에서의 인루프 필터링에서 사용된 인루프 필터링 관련 플래그를 이용하여 아래와 같이 설명될 수 있다.
기존 방식에 따르면 16×16 매크로블록 또는 8×8 매크로블록마다 경계에 대해 인루프 필터링의 수행 여부가 판단된다. 예를 들어, 기존 H.264 영상 부복호화 포맷에서는 인루프 필터링 관련 플래그가 설정된다. 인루프 필터링 관련 플래그는, 현재 매크로블록 및 좌측 이웃 매크로블록 사이의 경계에 대한 인루프 필터링의 수행 여부를 나타내는 제 1 플래그('filterLeftMbEdgeFlag'), 및 현재 매크로블록 및 상단 이웃 매크로블록 사이의 경계에 대한 인루프 필터링의 수행 여부를 나타내는 제 2 플래그('filterTopMbEdgeFlag')를 포함한다.
또한, 인루프 필터링 관련 플래그는, 16×16 또는 8×8 매크로블록 내부에서 8×8 또는 4×4 블록에 기초한 주파수 변환에 의해 발생하는 경계 효과(block artifact)를 감소하기 위해, 16×16 또는 8×8 매크로블록 내부에서의 인루프 필터링의 수행 여부를 나타내는 제 3 플래그('filterInternalEdgeflag')를 포함할 수 있다.
또한, 인루프 필터링 관련 플래그는, 크로마 성분에 대한 블록의 경계에 대한 인루프 필터링의 수행 여부를 나타내는 제 4 플래그('chromaEdgeflag')를 포함할 수 있다.
일 실시예에 따른 영상 부호화 또는 영상 복호화에서는 16×16 또는 8×8 매크로블록보다 큰 대형 데이터 처리 단위로 부호화되기 때문에, 기존의 인루프 필터링 관련 플래그를 이용하기 위해서는 인루프 필터링을 수행하기 위한 조건에 대형 데이터 처리 단위 내부인지 여부가 추가되어야 한다.
예를 들어, 일 실시예에 따른 영상 부호화 또는 영상 복호화의 인루프 필터링에서는, 현재 경계가 대형 데이터 처리 단위 내부의 경계가라면 제 1, 2, 4 플래그를 '0'으로 설정하고, 현재 경계가 대형 데이터 처리 단위 외부의 경계가라면 제 1, 2, 4 플래그를 '1'로 설정할 수 있다. 즉, 대형 데이터 처리 단위 내부에 포함되는 매크로블록의 경계에 대해서는 인루프 필터링을 수행하지 않도록 인루프 필터링 관련 플래그가 설정될 수 있다.
또한, 일 실시예에 따른 영상 부호화 또는 영상 복호화의 인루프 필터링에서는, 16×16 매크로블록에 의해 주파수 변환된 경우, 제 3 플래그가 '0'으로 설정될 수 있다. 즉, 16×16 매크로블록 단위의 부호화 모드에서 16×16 매크로블록으로 주파수 변환된 경우에는 16×16 매크로블록 내부에 대해 주파수 변환에 따른 경계 효과를 감소하기 위한 인루프 필터링을 수행하지 않도록 인루프 필터링 관련 플래그가 설정될 수 있다.
인루프 필터링 관련 플래그는, 인트라 모드 및 인터 모드가 혼합된 추정 모드의 매크로블록의 경우, 상호 다른 추정 모드의 이웃 블록 간 경계에 대한 인루프 필터링의 수행 여부를 나타내는 제 5 플래그('mixedModeEdgeFlag')를 포함할 수 있다.
일 실시예에 따른 영상 부호화 또는 영상 복호화의 인루프 필터링에서는, 대형 데이터 처리 단위의 내부에서 인트라 모드 및 인터 모드의 이웃 블록이 존재할 수 있으므로, 제 5 플래그의 조건에 현재 데이터 처리 단위가 대형 데이터 처리 단위인 경우를 추가할 수 있다. 또한, 대형 데이터 처리 단위의 내부의 하위 데이터 처리 단위의 경계마다 인루프 필터링 강도가 개별적으로 설정될 수 있다.
일 실시예에 따른 영상 부호화 및 영상 복호화는, 대형 데이터 처리 단위로 각종 프로세스가 수행되므로 경계 효과 이외에도 링잉 효과가 발생할 수 있다. 따라서, 일 실시예에 따른 영상 부호화 및 영상 복호화의 인루프 필터링에서, 대형 데이터 처리 단위의 부호화에 따른 링잉 효과 감소를 위한 필터링이 수행할 수 있다.
[[Ⅵ. 엔트로피 부호화]]
일 실시에에 따른 영상 부호화 장치(100)의 엔트로피 부호화부(2009) 및 일 실시예에 따른 영상 부호화 방법(2000)의 엔트로피 부호화 단계(s2090)는, 대형 데이터 처리 단위를 고려한 고유의 프로세스를 도입할 수 있다.
일 실시예에 따른 대형 데이터 처리 단위를 고려한 엔트로피 부호화 또는 복호화를 위한 고유 프로세스는, 대형 데이터 처리 단위를 고려한 계층적 부호화 블록 패턴(Coded Block Pattern, CBP) 및 부호화 블록 패턴의 스캔 방식의 도입(2092), 대형 데이터 처리 단위를 고려한 컨텍스트 기반 적응적 이진 산술 부호화(CABAC) 또는 컨텍스트 기반 적응적 가변 길이 부호화(CAVLC)의 도입(2094), 인트라 모드 또는 크로마 성분의 대형 데이터 처리 단위에 대한 부호화 블록 패턴에 대한 단일 컨텍스트의 도입(2096)을 포함한다.
도 28 은 본 발명의 일 실시예에 따른 대형 데이터 처리 단위를 고려한 부호화 블록 패턴을 이용한 방법의 흐름도를 도시한다.
일 실시예에 따른 엔트로피 부호화 및 엔트로피 복호화는, 기존의 부호화 블록 패턴인 8×8 블록에 대한 부호화 블록 패턴(CBP8) 뿐만 아니라, 대형 데이터 처리 단위를 고려한 계층적 부호화 블록 패턴을 이용할 수 있다.
예를 들어, 일 실시예에 따른 데이터 처리 단위의 부호화 모드가 32×32 수퍼 매크로블록의 인터 모드(Inter_32×32), 32×16 수퍼 매크로블록의 인터 모드(Inter_32×16), 16×32 수퍼 매크로블록의 인터 모드(Inter_16×32) 등 16×16 블록의 인터 모드 이상의 데이터 처리 단위의 부호화 모드인 경우에, 16×16 블록에 대한 부호화 블록 패턴(CBP16)이 추가된다. 따라서, CBP16 및 CBP8을 포함하는 계층적 부호화 블록 패턴에 따라 엔트로피 부호화 또는 복호화가 수행될 수 있다.
따라서, Inter_32×32, Inter_32×16, Inter_16×32의 부호화 모드에 대한 엔트로피 부호화의 경우 CBP16부터 부호화되어야 한다(단계 2800). 먼저 단계 2810에서 루마 성분에 대한 CBP16(Luma_CBP16)이 '1'인지 판단되고, '0'이면 엔트로피 부호화를 위한 텍스처 프로세싱 작업이 종료된다. 루마 성분에 대한 CBP16(Luma_CBP16)이 '1'이면 단계 2820에서 데이터 처리 단위의 크기를 나타내는 플래그(Tr_type)이 부호화된 후, 단계 2830에서 CBP8이 부호화된다. 단계 2840에서 루마 성분에 대한 텍스처 프로세싱이 수행된다.
단계 2850에서, 크로마 성분에 대한 CBP16(Chroma_CBP16)이 '1'인지 판단되고 단계 2860에서 크로마 성분에 대한 텍스처 프로세싱이 수행된다.
CBP16을 이용한 엔트로피 부호화 방법의 흐름도(2800)은 일 실시예에 따라 16×16 블록의 인터 모드 이상의 데이터 처리 단위의 부호화 모드인 경우에, 16×16 블록에 대한 부호화 블록 패턴(CBP16)이 추가된 경우를 도시하고 있지만, 데이터 처리 단위가 추가적으로 변형되는 경우에도 데이터 처리 단위를 고려하여 변형된 부호화 블록 패턴이 존재할 수 있다.
도 29a 및 29b 는 본 발명의 일 실시예에 따른 대형 데이터 처리 단위를 고려한 부호화 블록 패턴을 스캔하는 여러 가지 방식을 도시한다. 대형 데이터 처리 단위를 고려한 부호화 블록 패턴(CBP)의 스캔 방식(2092)이 후술된다.
일 실시예에 따른 엔트로피 부호화는, 데이터 처리 단위(2900)를 스캔하며 '0'이 아닌 부호화 블록 패턴을 검색한다. 기존 스캔 방식은 8×8 정사각 블록을 인터리브드 방식으로 스캔한다.
일 실시예에 따른 엔트로피 부호화는 데이터 처리 단위(2900)의 좌측 상단에서부터 우측 하단을 향하는 대각선을 중심으로 지그재그로 왕복하며 스캔하는 방식을 도입한다. 데이터 처리 단위(2900) 내의 좌측 상단에 위치하는 부호화 블록 패턴일수록 0이 아닐 확률이 높으므로 0이 아닌 유효 비트를 부호화하고자 하는 엔트로피 부호화의 효율성이 향상될 수 있다.
일 실시예에 따른 부호화 블록 패턴의 스캔 효율성을 위해 데이터 처리 단위(2900)를 다수의 경계들(2910, 2920, 2930, 2940, 2950, 2960, 2970)으로 구획할 수 있다. 지그재그 스캔 방식에 따라, 경계들 사이의 영역의 스트립 중 0이 아닌 부호화 블록 패턴('x' 표시가 있는 위치)이 있는지 여부가 검색되고, 0이 아닌 부호화 블록 패턴이 포함된 스트립만 부호화되는 것이 바람직하다.
즉, 일 실시예에 따른 부호화 블록 패턴의 스캔 방식은 데이터 처리 단위(2900)를 스캔하여, 경계 2910 이전의 제 1 영역, 경계 2910 및 2920 사이의 제 1 영역, 경계 2920 및 2930 사이의 제 3 영역, 경계 2930 및 2940 사이의 제 4 영역, 경계 2940 및 2950 사이의 제 5 영역, 경계 2950 및 2960 사이의 제 6 영역, 경계 2960 및 2970 사이의 제 7 영역, 경계 2970 이후의 제 8 영역 중 '0'이 아닌 부호화 블록 패턴이 포함된 영역의 스트립이 부호화되어야 한다.
일 실시예는, 전송 비트를 절약하기 위해 '0'이 아닌 부호화 블록 패턴이 포함된 영역의 스트립을 나타내는 두 가지 방식이 도 29a 및 29b에서 각각 도시된다.
도 29a에서는 '유효 스트립' 및 '종료 스트립'을 정의하여, 유효 스트립의 영역으로부터 종료 스트립의 영역까지의 적어도 하나의 영역의 데이터만이 유효 데이터임을 나타낼 수 있다. 도 29b에서는 '종료 스트립'을 정의하여, '종료 스트립'의 영역까지의 적어도 하나의 영역의 데이터만이 유효 데이터임을 나타낼 수 있다.
도 29a의 경우에는, 데이터 처리 단위(2900)의 부호화 블록 패턴의 스캔 영역을 결정하기 위해 신택스 상에서 유효 스트립 및 종료 스트립을 나타내는 플래그만 각각 정의되면 된다. 유효 스트립의 영역 및 종료 스트립의 영역 사이에 무효 스트립이 있더라도, 무효 스트립을 나타내는 플래그가 필요 없으며, 종료되지 않은 스트립임을 나타내는 플래그도 필요 없다. 따라서, 하나의 데이터 처리 단위(2900)의 전송 비트에 대해, 부호화 블록 패턴과 관련하여 유효 스트립 및 종료 스트립울 각각 나타내는 플래그를 위한 2 비트만이 필요하다.
도 29b의 경우에는, 데이터 처리 단위(2900)의 부호화 블록 패턴의 스캔 영역을 결정하기 위해 신택스 상에서 종료 스트립을 나타내는 플래그만 정의되면 된다. 종료 스트립의 영역 이전의 종료되지 않은 스트립임을 나타내는 플래그도 필요 없다. 따라서, 하나의 데이터 처리 단위(2900)의 전송 비트에 대해, 부호화 블록 패턴과 관련하여 종료 스트립을 나타내는 플래그를 위한 1 비트만이 필요하다.
일 실시예에 따른 엔트로피 부호화는, 대형 데이터 처리 단위의 부호화 모드의 도입에 따라 인트라 모드 또는 크로마 성분의 대형 데이터 처리 단위에 대한 신규 부호화 블록 패턴 및 신규 부호화 블록 패턴의 단일 컨텍스트가 정의될 수 있다.
예를 들어, 일 실시예에 따른 대형 데이터 처리 단위의 부호화 모드는 32×32 수퍼 매크로블록의 인트라 모드(Intra_32×32), 16×16 매크로블록의 인트라 모드(Intra_16×16), 16×16 매크로블록의 크로마 성분을 위한 인트라 모드(Cr_16×16, Cb_16×16)를 새롭게 포함할 수 있다.
인트라 모드의 대형 데이터 처리 단위는 내부의 모든 데이터가 0일 확률이 매우 적다. 따라서, 현재 데이터 처리 단위의 부호화 블록 패턴의 컨텍스트는 이웃 데이터 처리 단위의 컨텍스트를 이용하기 보다는, 각각의 대형 데이터 처리 단위 별로 부호화 블록 패턴에 대한 하나의 컨텍스트가 설정되는 것이 바람직하다.
인터 모드의 부호화 블록 패턴의 컨텍스트는, 기존의 인터 모드인 8×8 매크로블록에 대한 부호화 블록 패턴의 컨텍스트와 동일한 방식으로 설정될 수 있다. 따라서, 인터 모드인 이웃 8×8 매크로블록의 컨텍스트를 이용하여 현재 8×8 매크로블록의 컨텍스트가 결정될 수 있다.
일 실시예에 따른 복호화단에서, 대형 데이터 처리 단위에 기초한 엔트로피 부호화에 의해 부호화된 영상 비트스트림을 복호화하는 경우, 대형 데이터 처리 단위를 고려한 엔트로피 복호화가 필요하다. 예를 들어, 일 실시예에 따른 복호화단은, 16×16 매크로블록 별 부호화 블록 패턴을 이용한 엔트로피 복호화를 통해 영상을 복원한다.
[[Ⅶ. 동적으로 결정된 데이터 처리 단위에 의한 영상 복호화 장치]]
도 30a, 30b, 30c, 30d, 30e 및 30f 는 각각 일 실시예에 따라 동적으로 결정된 데이터 처리 단위를 고려하는 영상 복호화 장치(200)의 변형 실시예의 블록도를 도시한다.
일 실시예에 따른 영상 복호화 장치(200)에 대형 데이터 처리 단위를 적용하기 위해, 그룹 복호화부(230)는 대형 데이터 처리 단위를 고려하여, 엔트로피 복호화, 역양자화 및 역주파수 변환, 인트라 추정 및 움직임 보상, 인루프 필터링을 거쳐 복원 영상을 생성한다.
수신부(210)는 영상 부호화 장치(100)로부터 전송된 영상 비트스트림을 수신하고, 그룹 부호화 모드 판독부(220)는 영상 비트스트림으로부터 부호화 모드를 판독할 수 있다. 부호화 모드는 신택스, 플래그 등으로부터 판독될 수 있다. 그룹 복호화부(230)는 판독된 부호화 모드에 기초하여 그룹 데이터를 부호화한다.
일 실시예에 따른 그룹 복호화부(230)는 동적으로 결정된 데이터 처리 단위를 고려한 복호화를 위해 기존 영상 부복호화 포맷과는 구별되는 고유 프로세스를 수행할 수 있다. 동적으로 결정된 데이터 처리 단위 중 대형 데이터 처리 단위를 고려한 고유 프로세스들을 앞서 도 21 내지 도 29b를 참조하여 설명한 기술들에 상응한다. 이하, 그룹 복호화부(230)의 각 과정별 고유 프로세스가 상술된다.
도 30a 는 일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)에 대해 대형 데이터 처리 단위를 고려한 엔트로피 복호화가 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)의 제 1 실시예는 대형 데이터 처리 단위를 고려한 엔트로피 복호화부(3010), 인트라 추정부 및 움직임 보상부(233), 역 양자화 및 역주파수 변환부(237) 및 인루프 필터링부(239)를 포함한다.
그룹 복호화부(230)의 제 1 실시예에 따른 대형 데이터 처리 단위를 고려한 엔트로피 복호화부(3010)는 그룹 부호화 모드 판독부(220)에서 판독된 부호화 모드에 기초한 대형 데이터 처리 단위에 의해 엔트로피 복호화를 수행할 수 있다. 엔트로피 복호화부(3010)에서 수행하는 엔트로피 복호화는, [[Ⅵ. 엔트로피 부호화]]에서 전술된 엔트로피 부호화된 비트스트림을 복호화하는 작업이다.
도 28 내지 도 29b 를 참조하여 전술된 부호화 블록 패턴이 일 실시예에 따른 엔트로피 복호화부(3010)에서 사용될 수 있다. 판독된 부호화 블록 패턴은, '0'이 아닌 부호화 블록 패턴이 발생활 확률이 높은 방향에 따라 스캔되어 부호화된 것일 수 있다.
그룹 복호화부(230)의 제 1 실시예에 따른 대형 데이터 처리 단위를 고려한 엔트로피 복호화부(3010)는 대형 데이터 처리 단위에 의해 엔트로피 복호화를 수행하기 위해, 대형 데이터 처리 단위에 대해 컨텍스트 기반 적응적 이진 산술 부호화(CABAC) 또는 컨텍스트 기반 적응적 가변 길이 부호화(CAVLC)를 이용할 수 있다.
그룹 복호화부(230)의 제 1 실시예에 따른 대형 데이터 처리 단위를 고려한 엔트로피 복호화부(3010)는 대형 데이터 처리 단위를 기반으로 하는 부호화 블록 패턴에 대한 신규로 설정된 컨텍스트를 복호화할 수 있다.
도 30b 는 일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)에 대해 대형 데이터 처리 단위를 고려한 움직임 추정 프로세싱이 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)의 제 2 실시예는 엔트로피 복호화부(231), 대형 데이터 처리 단위를 고려한 프로세싱에 따르는 인트라 추정부 및 움직임 보상부(3030), 역양자화 및 역주파수 변환부(237) 및 인루프 필터링부(239)를 포함한다.
그룹 복호화부(230)의 제 2 실시예에 따른 대형 데이터 처리 단위를 고려한 프로세싱에 따르는 인트라 추정부 및 움직임 보상부(3030)는 그룹 부호화 모드 판독부(220)에서 판독된 부호화 모드에 기초한 대형 데이터 처리 단위에 의해 프로세스에 따라 움직임 추정 또는 보상을 수행할 수 있다. 일 실시에에 따른 대형 데이터 처리 단위를 고려한 프로세싱은 [[Ⅲ. 움직임 추정 프로세싱]]에서 전술됐다.
일 실시예에 따른 데이터 처리 단위는, 움직임 추정을 위한 대형 데이터 처리 단위 및 주파수 변환을 위한 데이터 처리 단위의 조합에 의해 결정될 수 있다.
그룹 복호화부(230)의 제 2 실시예에 따른 대형 데이터 처리 단위를 고려한 프로세싱에 따르는 인트라 추정부 및 움직임 보상부(3030)는, 대형 데이터 처리 단위를 고려하여 결정된 데이터 처리 단위별 움직임 추정을 위한 스캔 방식 및 이웃 블록의 이웃 블록 참조 가능성을 이용할 수 있다. 데이터 처리 단위별 움직임 추정을 위한 스캔 방식 및 이웃 블록의 이웃 블록 참조 가능성의 바람직한 실시예는, 도 13, 21 및 22 를 참조하여 전술되었다.
그룹 복호화부(230)의 제 2 실시예에 따른 대형 데이터 처리 단위를 고려한 프로세싱에 따르는 인트라 추정부 및 움직임 보상부(3030)는, 정사각 형태의 대형 데이터 처리 단위만이 이용되는 간략화된 부호화 모드를 이용할 수 있다. 간략화된 부호화 모드의 바람직한 실시예는 도 23a 및 23b 를 참조하여 전술됐다.
도 30c 는 일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)에 대해 대형 데이터 처리 단위를 고려한 인트라 추정이 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)의 제 3 실시예는 엔트로피 복호화부(231), 대형 데이터 처리 단위를 고려한 인트라 추정부(3040) 및 움직임 보상부(235), 역양자화 및 역주파수 변환부(237) 및 인루프 필터링부(239)를 포함한다. 영상이 [Ⅲ-1. 인트라 추정]]에서 전술된 일 실시예에 따른 고유 프로세스에 따라 부호화된 경우, 영상 복호화 장치(200)에서도 [[Ⅲ-1. 인트라 추정]]에서 전술된 프로세스에 기초하여 복호화하는 것이 바람직하다.
그룹 복호화부(230)의 제 3 실시예에 따른 대형 데이터 처리 단위를 고려한 인트라 추정부(3040)는 소정 대형 데이터 처리 단위에 대해 추가되는 인트라 모드를 이용할 수 있다. 예를 들어, 인트라 추정부(3040)는 인트라 모드의 32×32 수퍼 매크로블록, 인트라 모드의 16×16 수퍼 매크로블록 등을 이용할 수 있다.
그룹 복호화부(230)의 제 3 실시예에 따른 대형 데이터 처리 단위를 고려한 인트라 추정부(3040)는 보다 정확한 대형 데이터 처리 단위의 움직임 추정을 위해, 인트라 모드에 컴플렉스 플레인(complex plain)을 이용한 추정 모드를 도입할 수 있다.
그룹 복호화부(230)의 제 3 실시예에 따른 대형 데이터 처리 단위를 고려한 인트라 추정부(3040)는, 제한된 종류의 대형 데이터 처리 단위만을 이용하여 인트라 추정을 수행할 수 있다.
도 30d 는 일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)에 대해 대형 데이터 처리 단위를 고려한 움직임 보상이 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)의 제 4 실시예는 엔트로피 복호화부(231), 인트라 추정부(234) 및 대형 데이터 처리 단위를 고려한 움직임 보상부(3050), 역양자화 및 역주파수 변환부(237) 및 인루프 필터링부(239)를 포함한다. 일 실시예에 따른 대형 데이터 처리 단위에 의해 부호화된 영상에 대해서는, 일 실시예에 따른 [[Ⅲ-2. 인터 추정]]에서 전술된 일 실시예에 다른 고유 프로세스에 기초하여 움직임 추정 및 움직임 보상을 수행되는 것이 바람직하다.
그룹 복호화부(230)의 제 4 실시예에 따른 대형 데이터 처리 단위를 고려한 움직임 보상부(3050)는 대형 데이터 처리 단위의 추정 모드로써, 인터 추정 및 인트라 추정이 혼재할 수 있는 혼합 모드를 도입할 수 있다.
그룹 복호화부(230)의 제 4 실시예에 따른 대형 데이터 처리 단위를 고려한 움직임 보상부(3050)는 대형 데이터 처리 단위 별로 결정된 움직임 벡터(MV) 및 움직임 벡터 추정자(MVP)를 이용할 수 있다.
그룹 복호화부(230)의 제 4 실시예에 따른 대형 데이터 처리 단위를 고려한 움직임 보상부(3050)는 대형 데이터 처리 단위 별로 정의된 신규 스킵 모드를 이용하고, 복수의 스킵 모드의 데이터 처리 단위를 포함하는 스킵 그룹에 대해 동시에 스킵 처리할 수 있다.
도 30e 는 일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)에 대해 대형 데이터 처리 단위를 고려한 역양자화 및 역주파수 변환이 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)의 제 5 실시예는 엔트로피 복호화부(231), 인트라 추정부 및 움직임 보상부(233), 대형 데이터 처리 단위를 고려한 역양자화 및 역주파수 변환부(3070) 및 인루프 필터링부(239)를 포함한다. 대형 데이터 처리 단위를 고려한 역양자화 및 역주파수 변환부(3070)는, [[Ⅳ. 주파수 변환 및 양자화]]에서 전술된 일 실시예에 따른 주파수 변환 및 양자화 기법의 역과정을 수행하는 것이 바람직하다.
그룹 복호화부(230)의 제 5 실시예에 따른 대형 데이터 처리 단위를 고려한 역양자화 및 역주파수 변환부(3070)는 대형 데이터 처리 단위에 의해 역양자화 및 역주파수 변환을 수행하기 위해, 대형 데이터 처리 단위를 기반으로 하는 정수 이산 코사인 역변환 및 역양자화를 수행할 수 있다.
그룹 복호화부(230)의 제 5 실시예에 따른 대형 데이터 처리 단위를 고려한 역양자화 및 역주파수 변환부(3070)는 대형 데이터 처리 단위에 의해 역주파수 변환 및 역양자화를 수행하기 위해, 대형 데이터 처리 단위의 크로마 성분에 대해 이산 코사인 역변환 및 역양자화를 수행할 수 있다.
그룹 복호화부(230)의 제 5 실시예에 따른 대형 데이터 처리 단위를 고려한 역양자화 및 역주파수 변환부(3070)는 대형 데이터 처리 단위를 기반으로 하는 이산 코사인 역변환에 의해 증가할 수 있는 연산량의 부담을 감소하기 위해 저복잡도 연산을 지향하는 이산 코사인 역변환을 수행할 수 있다.
도 30f 는 일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)에 대해 대형 데이터 처리 단위를 고려한 인루프 필터링이 적용된 경우의 블록도를 도시한다.
일 실시예에 따른 영상 복호화 장치(200)의 그룹 복호화부(230)의 제 6 실시예는 엔트로피 복호화부(231), 인트라 추정부 및 움직임 보상부(233), 역양자화 및 역주파수 변환부(237) 및 대형 데이터 처리 단위를 고려한 인루프 필터링부(3090)를 포함한다. 대형 데이터 처리 단위를 고려한 인루프 필터링부(3090)는, [[Ⅴ. 인루프 필터링]]에서 전술된 일 실시예에 따른 인루프 필터링에 대응하는 작업을 수행하는 것이 바람직하다.
그룹 복호화부(230)의 제 6 실시예에 따른 대형 데이터 처리 단위를 고려한 인루프 필터링부(2007)는, 대형 데이터 처리 단위 내부의 하위 처리 단위의 경계에 대해 필터링을 수행할지 여부가 결정될 수 있다. 또한, 대형 데이터 처리 단위 내부의 하위 처리 단위의 경계별로 필터링 강도가 조절될 수 있다.
그룹 복호화부(230)의 제 6 실시예에 따른 대형 데이터 처리 단위를 고려한 인루프 필터링부(2007)는 대형 데이터 처리 단위 내부의 링잉 효과의 감소를 위해 인루프 필터링을 수행할 수 있다.
앞서 도 30a 내지 30f를 참조하여 설명된 그룹 복호화부(230)의 제 1 실시예 내지 제 6 실시예는, 판독된 부호화 모드에 따라 기존의 16×16, 8×8, 4×4 블록 이외의 데이터 처리 단위를 이용하여 그룹의 데이터를 복호화할 수 있다. 특히, 대형 데이터 처리 단위를 고려하여 기존 영상 부복호화 포맷의 신택스를 변형함으로써, 기존 영상 부복호화 포맷에 대형 데이터 처리 단위에 의한 다양한 프로세스를 적용할 수 있다.
[[Ⅷ. 동적으로 결정된 데이터 처리 단위에 의한 영상 부호화 방법 및 영상 복호화 방법]]
도 31a, 31b, 31c, 31d, 31e 및 31f는 각각 일 실시예에 따라 동적으로 결정된 데이터 처리 단위를 고려하는 영상 부호화 방법(1800)의 변형 실시예의 흐름도를 도시한다.
도 31a, 31b, 31c, 31d, 31e 및 31f에 대해 모두 공통적으로, 단계 1810에서, 기본블록으로 분류된 영상 데이터가 그룹, 서브그룹 및 기본블록을 포함하는 확장된 개념으로 분류된다. 또한, 단계 1820에서, 그룹을 부호화하기 위해 이용되는 데이터 처리 단위에 관한 정보 및 그룹의 부호화 모드가 결정된다. 여기서 그룹의 부호화 모드는 대형 데이터 처리 단위를 고려한 부호화 모드를 포함할 수 있다.
단계 1830에서는, 그룹의 부호화를 위해, 주파수 변환 및 양자화, 움직임 추정, 인루프 필터링, 엔트로피 부호화 과정이 수행될 수 있다. 도 31a 내지 31f를 참조하여, 그룹의 부호화를 위한 각각의 과정별 고유 프로세스가 상술된다.
도 31a 은 본 발명의 일 실시예에 따른 영상 부호화 방법(1800)의 그룹 부호화 단계(1830)에 대해 대형 데이터 처리 단위를 고려한 주파수 변환 및 양자화가 적용된 경우의 흐름도를 도시한다.
단계 1831에서, 대형 데이터 처리 단위를 고려한 부호화 모드에 따른 주파수 변환 및 양자화를 거쳐 그룹의 데이터가 부호화된다. 대형 데이터 처리 단위를 고려한 주파수 변환 및 양자화를 위해, 대형 블록 기반의 정수 이산 코사인 변환 및 양자화(2032), 대형 블록의 크로마 성분에 대한 이산 코사인 변환 및 양자화(2034), 대형 블록 기반의 이산 코사인 변환을 위한 저복잡도 연산(2036) 중 적어도 하나가 수행될 수 있다.
도 31b 은 본 발명의 일 실시예에 따른 영상 부호화 방법(1800)의 그룹 부호화 단계(1830)에 대해 대형 데이터 처리 단위를 고려한 프로세싱에 의한 움직임 추정이 적용된 경우의 흐름도를 도시한다.
단계 1833에서, 대형 데이터 처리 단위를 고려한 부호화 모드에 따른 움직임 추정 프로세싱을 거쳐 그룹의 데이터가 부호화된다. 대형 데이터 처리 단위를 고려한 움직임 추정 프로세싱을 위해, 움직임 추정을 위한 대형 블록 및 주파수 변환을 위한 대형 블록의 조합(2052), 움직임 추정을 위한 블록 스캐닝 방식 및 이웃 블록의 이웃 블록 참조 가능성(2054), 대형 블록의 간략화 모드(2056) 중 적어도 하나가 수행될 수 있다.
도 31c 은 본 발명의 일 실시예에 따른 영상 부호화 방법(1800)의 그룹 부호화 단계(1830)에 대해 대형 데이터 처리 단위를 고려한 인트라 추정이 적용된 경우의 흐름도를 도시한다.
단계 1834에서, 대형 데이터 처리 단위를 고려한 부호화 모드에 따른 인트라 추정을 거쳐 그룹의 데이터가 부호화된다. 대형 데이터 처리 단위를 고려한 인트라 추정을 위해, 대형 블록 기반의 인트라 모드(2062), 인트라 추정을 위한 컴플렉스 플레인의 도입(2064), 추정 가능한 인트라 모드의 결정(2066) 중 적어도 하나가 수행될 수 있다.
도 31d 은 본 발명의 일 실시예에 따른 영상 부호화 방법(1800)의 그룹 부호화 단계(1830)에 대해 대형 데이터 처리 단위를 고려한 인터 추정이 적용된 경우의 흐름도를 도시한다.
단계 1835에서, 대형 데이터 처리 단위를 고려한 부호화 모드에 따른 인터 추정을 거쳐 그룹의 데이터가 부호화된다. 대형 데이터 처리 단위를 고려한 인터 추정을 위해, 인트라 모드 및 인터 모드가 혼합된 추정 모드의 도입(2072), 대형 블록의 움직임 벡터(MV)의 결정 방식 및 움직임 벡터 추정자(MVP)의 유도 방식(2074), 대형 블록의 신규한 스킵 모드 및 스킵 그룹의 도입(2076) 중 적어도 하나가 수행될 수 있다.
도 31e 은 본 발명의 일 실시예에 따른 영상 부호화 방법(1800)의 그룹 부호화 단계(1830)에 대해 대형 데이터 처리 단위를 고려한 인루프 필터링이 적용된 경우의 흐름도를 도시한다.
단계 1837에서, 대형 데이터 처리 단위를 고려한 부호화 모드에 따른 인루프 필터링을 거쳐 그룹의 데이터가 부호화된다. 대형 데이터 처리 단위를 고려한 인루프 필터링을 위해, 대형 블록 내부의 경계에 대한 필터링 여부 결정 및 필터링 강도 결정(2082), 대형 블록 내부의 링잉 효과 감소 필터링(2084) 중 적어도 하나가 수행될 수 있다.
도 31f 은 본 발명의 일 실시예에 따른 영상 부호화 방법(1800)의 그룹 부호화 단계(1830)에 대해 대형 데이터 처리 단위를 고려한 엔트로피 부호화가 적용된 경우의 흐름도를 도시한다.
단계 1839에서, 대형 데이터 처리 단위를 고려한 부호화 모드에 따른 엔트로피 부호화를 거쳐 그룹의 데이터가 부호화된다. 대형 데이터 처리 단위를 고려한 엔트로피 부호화를 위해, 대형 블록에 대한 부호화 블록 패턴(CBP)의 도입 및 부호화 블록 패턴 스캔 방식(2092), 대형 블록을 고려한 컨텍스트 기반 적응적 이진 산술 부호화(CABAC) 또는 컨텍스트 기반 적응적 가변 길이 부호화(CAVLC)의 도입(2094), 대형 블록의 부호화 블록 패턴에 대한 컨텍스트 설정(2096) 중 적어도 하나가 수행될 수 있다.
도 32a, 32b, 32c, 32d, 32e 및 32f는 각각 일 실시예에 따라 동적으로 결정된 데이터 처리 단위를 고려하는 영상 복호화 방법(1900)의 변형 실시예의 흐름도를 도시한다.
도 32a, 32b, 32c, 32d, 32e 및 32f에 대해 모두 공통적으로, 단계 1910에서, 영상 비트스트림을 수신하여 파싱한다. 수신된 영상 비트스트림은 기본블록, 그룹, 서브그룹 단위로 부호화된 데이터를 포함한다. 또한, 단계 1920에서, 그룹의 부호화 방식을 나타내는 그룹의 부호화 모드를 판독한다. 그룹의 부호화 모드는 그룹의 데이터 처리 단위 및, 인트라 모드, 인터 모드, 스킵 모드 등의 움직임 추정 모드를 포함할 수 있다.
단계 1930에서는, 그룹의 복호화를 위해, 엔트로피 복호화, 역주파수 변환 및 역양자화, 움직임 추정 및 보상, 인루프 필터링 과정이 수행될 수 있다. 도 32a 내지 32f를 참조하여, 그룹의 복호화를 위한 각각의 과정별 고유 프로세스가 상술된다.
도 32a 는 일 실시예에 따른 영상 복호화 방법(1900)의 그룹 복호화 단계(1930)에 대해 대형 데이터 처리 단위를 고려한 엔트로피 복호화가 적용된 경우의 흐름도를 도시한다.
단계 1931에서, 대형 데이터 처리 단위를 고려한 엔트로피 부호화를 거쳐 그룹의 데이터가 복호화된다. 대형 데이터 처리 단위를 고려한 엔트로피 복호화를 수행하기 위해, 대형 데이터 처리 단위를 기반으로 하는 부호화 블록 패턴이 이용될 숭 있다. 대형 데이터 처리 단위를 고려한 엔트로피 부호화는, 대형 데이터 처리 단위에 대해 컨텍스트 기반 적응적 이진 산술 부호화(CABAC) 또는 컨텍스트 기반 적응적 가변 길이 부호화(CAVLC)를 이용할 수 있다.
대형 데이터 처리 단위를 고려한 엔트로피 복호화를 수행하기 위해, 대형 데이터 처리 단위를 기반으로 하는 부호화 블록 패턴에 대한 신규로 설정된 컨텍스트를 이용하여 부호화 블록 패턴이 복호화될 수 있다.
도 32b 는 일 실시예에 따른 영상 복호화 방법(1900)의 그룹 복호화 단계(1930)에 대해 대형 데이터 처리 단위를 고려한 움직임 추정 프로세싱이 적용된 경우의 흐름도를 도시한다.
단계 1933에서, 대형 데이터 처리 단위를 고려한 프로세스에 따라 수행하는 움직임 추정 또는 보상을 거쳐 그룹의 데이터가 복호화된다. 일 실시예에 따른 데이터 처리 단위는, 움직임 추정을 위한 대형 데이터 처리 단위 및 주파수 변환을 위한 데이터 처리 단위의 조합에 의해 결정될 것일 수 있다. 대형 데이터 처리 단위를 고려하여 결정된 데이터 처리 단위별 움직임 추정을 위한 스캔 방식 및 이웃 블록의 이웃 블록 참조 가능성을 이용할 수 있다.
일 실시예에 따라 인트라 추정 및 움직임 보상을 위해 대형 데이터 처리 단위를 고려한 프로세싱은, 정사각 형태의 대형 데이터 처리 단위만이 이용되는 간략화된 부호화 모드를 이용할 수 있다.
도 32c 는 일 실시예에 따른 영상 복호화 방법(1900)의 그룹 복호화 단계(1930)에 대해 대형 데이터 처리 단위를 고려한 인트라 추정이 적용된 경우의 흐름도를 도시한다.
단계 1934에서, 대단위 데이터 처리 단위를 고려한 부호화 모드에 따른 인트라 추정을 거쳐 그룹의 데이터가 복호화된다. 일 실시예에 따른 대형 데이터 처리 단위를 고려한 인트라 추정 단계는, 대형 데이터 처리 단위에 대해 추가되는 인트라 모드를 이용할 수 있다. 대형 데이터 처리 단위를 고려한 인트라 모드에 컴플렉스 플레인(complex plain)을 이용한 추정 모드가 도입될 수 있다. 대형 데이터 처리 단위를 고려한 인트라 추정은, 제한된 종류의 대형 데이터 처리 단위에 대해서만 수행될 수도 있다.
도 32d 는 일 실시예에 따른 영상 복호화 방법(1900)의 그룹 복호화 단계(1930)에 대해 대형 데이터 처리 단위를 고려한 움직임 보상이 적용된 경우의 흐름도를 도시한다.
단계 1935에서, 대단위 데이터 처리 단위를 고려한 부호화 모드에 따른 움직임 보상을 거쳐 그룹의 데이터가 복호화된다. 대형 데이터 처리 단위를 고려한 움직임 보상을 위해, 대형 데이터 처리 단위의 추정 모드로써, 인터 추정 및 인트라 추정이 혼재할 수 있는 혼합 모드가 이용될 수 있다.
움직임 보상을 위해 대형 데이터 처리 단위 별로 결정된 움직임 벡터(MV) 및 움직임 벡터 추정자(MVP)가 이용될 수 있다. 대형 데이터 처리 단위 별로 정의된 신규 스킵 모드가 이용되고, 복수의 스킵 모드의 데이터 처리 단위를 포함하는 스킵 그룹에 대해 동시에 스킵 처리될 수 있다.
도 32e 는 일 실시예에 따른 영상 복호화 방법(1900)의 그룹 복호화 단계(1930)에 대해 대형 데이터 처리 단위를 고려한 역양자화 및 역주파수 변환이 적용된 경우의 흐름도를 도시한다.
단계 1937에서, 대단위 데이터 처리 단위를 고려한 부호화 모드에 따른 역양자화 및 역주파수 변환을 거쳐 그룹의 데이터가 복호화된다.
대형 데이터 처리 단위를 고려한 역양자화 및 역주파수 변환을 위해, 대형 데이터 처리 단위를 기반으로 하는 정수 이산 코사인 역변환 및 역양자화가 수행될 수 있다. 대형 데이터 처리 단위의 크로마 성분에 대해 이산 코사인 역변환 및 역양자화가 수행될 수 있다. 대형 데이터 처리 단위를 기반으로 하는 이산 코사인 역변환에 의해 증가할 수 있는 연산량의 부담을 감소하기 위해 저복잡도 연산을 지향하는 이산 코사인 역변환이 수행될 수 있다.
도 32f 는 일 실시예에 따른 영상 복호화 방법(1900)의 그룹 복호화 단계(1930)에 대해 대형 데이터 처리 단위를 고려한 인루프 필터링이 적용된 경우의 흐름도를 도시한다.
단계 1939에서, 대단위 데이터 처리 단위를 고려한 인루프 필터링을 거쳐 그룹의 데이터가 복호화된다.
대단위 데이터 처리 단위를 고려한 인루프 필터링을 수행하기 위해, 대형 데이터 처리 단위 내부의 하위 처리 단위의 경계에 대해 필터링을 수행할지 여부가 결정될 수 있다. 또한, 대형 데이터 처리 단위 내부의 하위 처리 단위의 경계별로 필터링 강도가 조절될 수 있다. 또한, 대형 데이터 처리 단위 내부의 링잉 효과의 감소를 위해 인루프 필터링을 수행할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (43)

1. 기본블록으로 분류된 영상 데이터에 대해, 적어도 하나의 기본블록을 포함하는 그룹 및 적어도 하나의 기본블록을 포함하며 상기 그룹에 포함되는 서브그룹으로 상기 영상 데이터를 분류하는 단계;
소정 그룹을 부호화하기 위해, 상기 그룹, 서브그룹 및 기본블록 중 하나의 데이터 처리 단위에 의해 소정 그룹의 데이터를 부호화하는 방식을 나타내는 상기 소정 그룹의 부호화 모드를 결정하는 단계; 및
상기 결정된 부호화 모드에 따라 상기 소정 그룹의 데이터를 부호화하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
2. 제 1 항에 있어서, 상기 영상 부호화 방법은,
상기 소정 그룹의 부호화 모드를 나타내는 플래그를 부호화하는 단계를 더 포함하는 것을 특징으로 하는 영상 부호화 방법.
3. 제 1 항에 있어서, 상기 데이터 분류 단계는,
상기 그룹에 포함되는 기본블록의 개수를 나타내는 그룹의 크기 및 상기 그룹에 포함되는 기본블록에 의해 형성되는 그룹의 형태를 결정하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
4. 제 1 항에 있어서, 상기 데이터 분류 단계는,
상기 그룹에 포함되는 서브그룹의 개수를 나타내는 레벨 및 상기 기본블록의 스캔 순서에 기초하여, 상기 그룹의 서브그룹을 결정하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
5. 제 1 항에 있어서, 상기 부호화 모드는,
상기 그룹의 데이터의 부호화가 수행되는 데이터 처리 단위로써, 상기 그룹 단위, 상기 서브그룹 단위, 상기 기본블록 단위 중 어느 하나인지를 나타내는 데이터 처리 단위의 종류에 관한 정보;
상기 데이터 처리 단위에 포함되는 기본블록의 개수를 나타내는 상기 데이터 처리 단위의 크기에 관한 정보; 및
상기 데이터 처리 단위에 대한 움직임 추정을 위해 상기 데이터 처리 단위에 대응되는 참조 정보를 결정하는 방식을 나타내는 추정 모드에 관한 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 부호화 방법.
6. 제 1 항에 있어서, 상기 부호화 모드 결정 단계는,
상기 그룹의 소정 데이터 처리 단위별로, 적어도 하나의 추정 모드에 따라 상기 데이터 처리 단위에 대한 부호화를 수행하는 단계;
상기 소정 데이터 처리 단위 및 추정 모드의 조합별로 부호화에 의한 오차율을 산출하는 단계; 및
상기 산출된 오차율 중 최소의 오차율에 대응하는 상기 소정 데이터 처리 단위의 추정 모드를 결정하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
7. 제 6 항에 있어서, 상기 부호화 모드 결정 단계는,
상기 그룹 내 데이터 처리 단위 별로 추정 모드를 고려한 부호화 오차율들을 비교하여, 최소의 오차율에 대응하는 데이터 처리 단위 및 추정 모드의 조합을 상기 그룹의 부호화 모드로 결정하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
8. 제 1 항에 있어서 상기 영상 부호화 방법은,
그룹 단위 및 서브그룹 단위 중 하나의 데이터가 주파수 변환된 계수를 복수 개의 기본블록 단위로 재배열하는 단계를 더 포함하는 것을 특징으로 하는 영상 부호화 방법.
9. 제 1 항에 있어서, 상기 영상 부호화 방법은,
상기 그룹 내 데이터의 주파수 변환을 위한 데이터 처리 단위를 나타내는 플래그를 부호화하는 단계를 더 포함하는 것을 특징으로 하는 영상 부호화 방법.
10. 제 1 항에 있어서, 상기 데이터 분류 단계는,
상기 영상 데이터의 픽처, 시퀀스 및 그룹 중 하나의 데이터 단위별로 상기 그룹 단위 크기, 형태 및 최대 레벨을 결정하는 것을 특징으로 하는 영상 부호화 방법.
11. 제 1 항에 있어서, 상기 부호화 단계는,
상기 결정된 그룹의 부호화 모드에 대응하는 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 주파수 변환 및 양자화를 수행하는 단계;
상기 대형 데이터 처리 단위에 기초하여, 상기 입력 영상의 부호화를 위한 움직임 추정을 수행하는 단계;
상기 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 인루프 필터링을 수행하는 단계; 및
상기 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 엔트로피 부호화를 수행하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
12. 제 11 항에 있어서, 상기 부호화 단계는,
상기 움직임 추정을 위한 데이터 처리 단위의 사이즈에 기초하여 상기 주파수 변환을 위한 데이터 처리 단위의 사이즈가 결정되는 것을 특징으로 하는 영상 부호화 방법.
13. 제 11 항에 있어서, 상기 움직임 추정 수행 단계는,
상기 대형 데이터 처리 단위에 기초한 움직임 추정 프로세싱을 통하여 인트라 추정 또는 인터 추정을 수행하는 단계를 포함하고,
상기 대형 데이터 처리 단위에 기초한 움직임 추정 프로세스는,
상기 대형 데이터 처리 단위에 기초하는 순차적 움직임 추정을 위한 결정된 데이터 처리 단위별 스캔 순서에 따른 움직임 추정 프로세스,
상기 대형 데이터 처리 단위에 기초하여 수행될 상기 입력 영상에 대한 움직임 추정을 위해, 현재 데이터 처리 단위의 우측 상단에 위치하는 이웃하는 데이터 처리 단위의 참조 가능성이 결정되는 움직임 추정 프로세스, 및
상기 대형 데이터 처리 단위에 기초하여, 상기 데이터 처리 단위 중 정사각 블록 형태의 데이터 처리 단위를 이용하는 움직임 추정 프로세스 중 적어도 하나인 것을 특징으로 하는 영상 부호화 방법.
14. 제 11 항에 있어서, 상기 움직임 추정 수행 단계는,
상기 대형 데이터 처리 단위에 기초하여 인트라 추정을 수행하는 단계를 포함고,
상기 대형 데이터 처리 단위에 기초하는 인트라 추정은,
컴플렉스 플레인 형태의 인트라 모드에 기초하여 상기 대형 데이터 처리 단위로 수행하는 인트라 추정,
상기 대형 데이터 처리 단위에 기초하여, 인트라 모드로 움직임 추정이 가능하도록 미리 설정된 데이터 처리 단위로 수행되는 인트라 추정, 및
상기 대형 데이터 처리 단위에 기초하여, 인트라 모드 및 인터 모드가 혼합된 형태의 추정 모드로 수행되는 인트라 추정 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 부호화 방법.
15. 제 11 항에 있어서, 상기 움직임 추정 수행 단계는,
상기 대형 데이터 처리 단위에 기초하여 인터 추정을 수행하는 단계를 포함하고,
상기 대형 데이터 처리 단위에 기초하는 인터 추정은,
현재 데이터 처리 단위에 대한 인터 모드의 움직임 추정을 위한 움직임 벡터를 결정하는 인터 추정,
상기 대형 데이터 처리 단위에 기초하여, 상기 움직임 벡터에 대응하는 움직임 벡터 추정자를 유도하는 인터 추정, 및
상기 대형 데이터 처리 단위에 기초하여 확장된 형태의 스킵 모드를 결정하여, 상호 인접하는 적어도 하나의 스킵 모드의 데이터 처리 단위를 포함하는 스킵 그룹에 대해 동시에 스킵 처리를 수행하는 인터 추정 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 부호화 방법.
16. 제 11 항에 있어서, 상기 주파수 변환 및 양자화 수행 단계는,
상기 대형 데이터 처리 단위에 기초하여, 대형 블록 기반의 정수 이산 코사인 변환,
상기 대형 데이터 처리 단위에 기초하여 현재 데이터 처리 단위의 크로마 성분에 대한 주파수 변환, 및
상기 대형 데이터 처리 단위를 고려한 주파수 변환에 기인하는 연산량 부담을 감소하기 위해 변형된 형태의 주파수 변환 중 적어도 하나를 수행하는 것을 포함하는 것을 특징으로 하는 영상 부호화 방법.
17. 제 11 항에 있어서, 상기 엔트로피 부호화 수행 단계는,
현재 데이터 처리 단위에 대해 주파수 변환 및 양자화를 수행하여 생성된 양자화된 계수들을 이용하여, 상기 대형 데이터 처리 단위에 기초하여 데이터 처리 단위별 사이즈에 따라 계층적으로 결정된 부호화 블록 패턴(coded block pattern),
상기 현재 데이터 처리 단위의 양자화된 계수들 중 0이 아닌 양자화된 계수가 존재할 확률에 기초하는 순서에 따른 부호화 블록 패턴의 스캔.
상기 대형 데이터 처리 단위에 기초하여 변형된 컨텍스트 기반 적응적 이진 산술 부호화(Context-based Adaptive Binary Arithmetic Coding: CABAC) 또는 컨텍스트 기반 적응적 가변 길이 부호화(Context-based Adaptive Variable Length Coding: CAVLC),
상기 대형 데이터 처리 단위에 기초하여, 인트라 모드 또는 크로마 성분의 대형 데이터 처리 단위의 부호화 블록 패턴에 대해 결정되는 단일 컨텍스트 중 적어도 하나를 수행하는 것을 특징으로 하는 영상 부호화 방법.
18. 제 11 항에 있어서, 상기 인루프 필터링 수행 단계는,
상기 대형 데이터 처리 단위에 기초하여, 대형 데이터 처리 단위 내부의 하위 데이터 처리 단위의 경계, 소정 데이터 처리 단위로 주파수 변환된 상기 대형 데이터 처리 단위 내부의 하위 데이터 처리 단위의 경계, 상기 대형 데이터 처리 단위 내부의 하위 데이터 처리 단위의 크로마 성분의 경계, 및 인터 모드 및 인트라 모드가 혼합된 형태로 움직임 추정이 수행된 상기 대형 데이터 처리 단위 내부의 하위 데이터 처리 단위의 경계에 대한 디블로킹 필터링 중 적어도 하나의 필터링의 수행 여부가 결정되고,
상기 대형 데이터 처리 단위 내부의 적어도 하나의 하위 데이터 처리 단위의 경계에 대해, 경계별 디블로킹 필터링의 강도가 개별적으로 설정되고,
상기 대형 데이터 처리 단위에 기초하여, 대형 사이즈인 현재 데이터 처리 단위에 대해 링잉 효과 감소를 위한 부가적인 필터링을 수행하는 것을 특징으로 하는 영상 부호화 방법.
19. 기본블록, 적어도 하나의 기본블록을 포함하는 그룹, 및 적어도 하나의 기본블록을 포함하며 상기 그룹에 포함되는 서브그룹 중 하나의 데이터 처리 단위로 부호화된 데이터를 수신하여 파싱하는 단계;
상기 파싱된 데이터로부터, 상기 그룹, 서브그룹 및 기본블록 중 하나의 데이터 처리 단위에 의해 소정 그룹의 데이터를 부호화한 방식을 나타내는 상기 소정 그룹의 부호화 모드를 판독하는 단계; 및
상기 판독된 부호화 모드에 기초하여 상기 소정 그룹의 데이터를 복호화하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.
20. 제 19 항에 있어서, 상기 부호화 모드 판독 단계는,
상기 파싱된 데이터로부터, 복호화를 위한 데이터 처리 단위로써 설정된 그룹의 형태, 상기 그룹 내에 포함되는 기본블록의 개수를 나타내는 그룹의 크기 및 상기 그룹 내 서브그룹의 최대 개수에 관한 최대 레벨 정보를 판독하는 단계; 및
상기 그룹의 형태 및 상기 그룹의 크기에 관한 정보를 이용하여, 상기 파싱된 영상 데이터를 분류하여 복호화하기 위한 데이터 처리 단위인 그룹을 결정하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
21. 제 20 항에 있어서,
상기 그룹 단위는, 상기 영상 데이터의 픽처, 시퀀스 및 그룹 중 하나의 데이터 단위 별로 설정된 것을 특징으로 하는 영상 복호화 방법.
22. 제 19 항에 있어서,
상기 서브그룹은, 상기 그룹에 포함되는 서브그룹의 개수를 나타내는 레벨, 및 상기 기본블록의 스캔 순서에 기초하여 설정된 것을 특징으로 하는 영상 복호화 방법.
23. 제 19 항에 있어서, 상기 부호화 모드 판독 단계는,
상기 소정 그룹에 대한 데이터로부터 상기 소정 그룹의 부호화 모드를 나타내는 부호화 모드 플래그를 추출하는 단계; 및
상기 부호화 모드 플래그를 이용하여 상기 소정 그룹의 부호화 모드를 판독하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.
24. 제 19 항에 있어서,
상기 그룹의 부호화 모드는, 상기 그룹의 데이터가 부호화된 데이터 처리 단위가, 상기 그룹, 상기 서브그룹, 상기 기본블록 중 어느 하나인지를 나타내는 데이터 처리 단위의 종류에 관한 정보;
상기 데이터 처리 단위에 포함되는 기본블록의 개수를 나타내는 데이터 처리 단위의 크기에 관한 정보; 및
상기 데이터 처리 단위에 대한 움직임 추정을 위해 상기 데이터 처리 단위에 대응되는 참조 정보를 결정하는 방식을 나타내는 추정 모드에 관한 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 복호화 방법.
25. 제 24 항에 있어서, 상기 그룹 복호화 단계는,
상기 부호화 모드의 상기 데이터 처리 단위의 종류에 관한 정보 및 크기에 관한 정보에 기초하여 복호화를 수행할 데이터 처리 단위를 결정하는 단계;
상기 부호화 모드의 추정 모드에 관한 정보에 기초하여 상기 데이터 처리 단위의 추정 모드를 결정하는 단계; 및
상기 결정된 데이터 처리 단위 및 추정 모드에 기초하여, 상기 그룹에 대한 영상 데이터를 복호화하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.
26. 제 24 항에 있어서, 상기 부호화 모드는,
상기 그룹에 대한 부호화 중, 상기 그룹 내의 데이터 처리 단위별로, 적어도 하나의 추정 모드에 따른 소정 데이터 처리 단위에 대한 부호화를 수행하여 추정 모드별 부호화 오차율을 산출하고,
상기 데이터 처리 단위별로 상기 추정 모드별 부호화 오차율 중 최소의 오차율에 대응하는 상기 소정 데이터 처리 단위 및 추정 모드의 조합을 결정하여,
상기 그룹 내의 데이터 처리 단위 및 추정 모드의 조합 별로 부호화 오차율을 비교하여, 최소의 오차율을 갖는 데이터 처리 단위 및 추정 모드의 조합을 선택하여 상기 그룹의 부호화 모드로 설정된 것을 특징으로 하는 영상 복호화 방법.
27. 제 19 항에 있어서,
상기 기본 블록 단위의 복호화 처리 순서는 지그재그 스캔 방식인 것을 특징으로 하는 영상 복호화 방법.
28. 제 19 항에 있어서, 상기 영상 복호화 방법은,
복수 개의 기본 블록의 주파수 변환된 계수를 그룹 단위 및 서브그룹 단위 중 하나로 재배열하는 단계를 더 포함하는 것을 특징으로 하는 영상 복호화 방법.
29. 제 20 항에 있어서, 상기 영상 복호화 방법은,
상기 파싱된 데이터로부터, 상기 그룹 내 데이터의 주파수 변환을 위한 데이터 처리 단위를 나타내는 플래그를 판독하는 단계를 더 포함하는 것을 특징으로 하는 영상 복호화 방법.
30. 제19 항에 있어서, 상기 복호화 단계는,
상기 판독된 그룹의 부호화 모드에 대응되는 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 엔트로피 복호화를 수행하는 단계;
상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 역양자화 및 역주파수 변환을 수행하는 단계;
상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 움직임 추정을 수행하는 단계; 및
상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 인루프 필터링을 수행하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.
31. 제 30 항에 있어서, 상기 복호화 단계는,
상기 움직임 추정을 위한 데이터 처리 단위의 사이즈에 기초하여 상기 주파수 변환을 위한 데이터 처리 단위의 사이즈가 결정되는 것을 특징으로 하는 영상 복호화 방법.
32. 제 30 항에 있어서, 상기 움직임 추정 수행 단계는,
상기 대형 데이터 처리 단위에 기초하여 결정되는 순차적 움직임 추정을 위한 데이터 처리 단위별로 결정되는 스캔 순서,
상기 대형 데이터 처리 단위에 기초하여 결정되는 현재 데이터 처리 단위의 우측 상단에 위치하는 이웃하는 데이터 처리 단위의 참조 가능성,
상기 대형 데이터 처리 단위 중 정사각 블록 형태의 데이터 처리 단위만이 이용되는 간략화 모드 중 적어도 하나를 이용하는 것을 특징으로 하는 영상 복호화 방법.
33. 제 30 항에 있어서, 상기 움직임 추정 수행 단계는,
상기 대형 데이터 처리 단위에 기초하여 인트라 추정을 수행하는 단계를 포함하고,
상기 인트라 추정 단계는,
컴플렉스 플레인 형태의 인트라 모드에 기초하여 상기 대형 데이터 처리 단위로 수행되는 인트라 추정,
상기 대형 데이터 처리 단위에 기초하여, 인트라 모드의 움직임 추정이 가능하도록 미리 설정된 데이터 처리 단위,
상기 대형 데이터 처리 단위에 기초하여, 인트라 모드 및 인터 모드가 혼합된 형태의 추정 모드 중 적어도 하나를 이용하여 상기 그룹의 데이터의 복호화를 위한 움직임 추정을 수행하는 것을 특징으로 하는 영상 복호화 방법.
34. 제 30 항에 있어서, 상기 움직임 추정 수행 단계는,
상기 대형 데이터 처리 단위에 기초하여 인터 추정을 수행하는 단계를 포함하고,
상기 인터 추정 단계는,
상기 대형 데이터 처리 단위에 기초하여 결정된 현재 데이터 처리 단위에 대한 인터 모드의 움직임 추정을 위해 결정된 움직임 벡터,
상기 대형 데이터 처리 단위에 기초하여, 상기 움직임 벡터에 대응되도록 유도된 움직임 벡터 추정자, 및
상기 대형 데이터 처리 단위에 기초하여 결정된 확장된 형태의 스킵 모드 및 상호 인접하는 적어도 하나의 스킵 모드의 데이터 처리 단위를 포함하는 스킵 그룹 중 적어도 하나를 이용하여 인터 추정을 수행하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.
35. 제 30 항에 있어서, 상기 역양자화 및 역주파수 변환 수행 단계는,
상기 대형 데이터 처리 단위에 기초하는 대형 블록 기반의 정수 이산 코사인 역변환,
상기 대형 데이터 처리 단위에 기초하는 대형 데이터 처리 단위의 크로마 성분에 대해 역주파수 변환,
상기 대형 데이터 처리 단위를 고려한 역주파수 변환에 기인하는 연산량 부담을 감소하기 위해 변형된 형태의 역주파수 변환 중 적어도 하나를 수행하는 것을 특징으로 하는 영상 복호화 방법.
36. 제 30 항에 있어서, 상기 엔트로피 복호화 수행 단계는,
상기 대형 데이터 처리 단위에 기초하여 데이터 처리 단위별 사이즈에 따라 결정된 계층적 부호화 블록 패턴,
상기 대형 데이터 처리 단위의 양자화된 계수들 중 0이 아닌 양자화된 계수가 존재할 확률에 기초하여 스캔된 부호화 블록 패턴,
상기 대형 데이터 처리 단위를 고려하는 컨텍스트 기반 적응적 이진 산술 부호화 기법 또는 컨텍스트 기반 적응적 가변 길이 부호화 기법에 의해 엔트로피 부호화된 데이터에 대하여 엔트로피 복호화,
상기 대형 데이터 처리 단위에 기초하여, 인트라 모드 또는 크로마 성분의 대형 데이터 처리 단위에 대한 단일 컨텍스트로 결정된 부호화 블록 패턴 중 적어도 하나를 이용하는 것을 특징으로 하는 영상 복호화 방법.
37. 제 30 항에 있어서, 상기 인루프 필터링 수행 단계는,
상기 대형 데이터 처리 단위에 기초하여, 대형 사이즈인 현재 데이터 처리 단위 내부의 하위 데이터 처리 단위에 대한 디블로킹 필터링, 소정 사이즈의 데이터 처리 단위로 주파수 변환된 상기 현재 데이터 처리 단위 내부의 하위 데이터 처리 단위의 경계에 대한 디블로킹 필터링, 상기 현재 데이터 처리 단위 내부의 하위 데이터 처리 단위의 크로마 성분의 경계에 대한 디블로킹 필터링 및, 인터 모드 및 인트라 모드가 혼합된 형태로 움직임 추정이 수행된 상기 현재 데이터 처리 단위 내부의 하위 데이터 처리 단위의 경계에 대한 디블로킹 필터링 중 적어도 하나의 수행 여부를 결정하고,
상기 현재 데이터 처리 단위 내부의 적어도 하나의 하위 데이터 처리 단위의 경계에 대해, 경계별 디블로킹 필터링의 강도를 개별적으로 설정하고,
상기 대형 데이터 처리 단위에 기초하여, 대형 사이즈인 현재 데이터 처리 단위에 대해 링잉 효과 감소를 위한 부가적인 필터링을 수행하는 것을 특징으로 하는 영상 복호화 방법.
38. 기본블록으로 분류된 영상 데이터에 대해, 적어도 하나의 기본블록을 포함하는 그룹 및 적어도 하나의 기본블록을 포함하며 상기 그룹에 포함되는 서브그룹으로 상기 영상 데이터를 분류하는 데이터 분류부;
상기 그룹을 부호화하기 위해, 그룹 단위, 서브그룹 단위 및 기본블록 단위 중 적어도 하나의 데이터 처리 단위 및 상기 적어도 하나의 데이터 처리 단위에 의한 상기 그룹의 데이터의 부호화 방식을 나타내는 상기 그룹의 부호화 모드를 결정하는 그룹 부호화 모드 결정부; 및
상기 결정된 부호화 모드에 따라 상기 그룹의 데이터를 부호화하는 그룹 부호화부를 포함하는 것을 특징으로 하는 영상 부호화 장치.
39. 기본블록, 적어도 하나의 기본블록을 포함하는 그룹, 및 적어도 하나의 기본블록을 포함하며 상기 그룹에 포함되는 서브그룹 중 하나의 데이터 처리 단위로 부호화된 데이터를 수신하여 파싱하는 수신부;
상기 파싱된 데이터로부터, 상기 그룹, 서브그룹 및 기본블록 중 하나의 데이터 처리 단위에 의해 소정 그룹의 데이터를 부호화한 방식을 나타내는 상기 소정 그룹의 부호화 모드를 판독하는 그룹 부호화 모드 판독부; 및
상기 판독된 부호화 모드에 기초하여 상기 소정 그룹의 데이터를 복호화하는 그룹 복호화부를 포함하는 것을 특징으로 하는 영상 복호화 장치.
40. 제 38 항에 있어서, 상기 그룹 부호화부는,
상기 결정된 그룹의 부호화 모드에 대응하는 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 주파수 변환 및 양자화를 수행하는 주파수 변환 및 양자화부;
상기 대형 데이터 처리 단위에 기초하여, 상기 입력 영상의 부호화를 위한 움직임 추정을 수행하는 움직임 추정부;
상기 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 인루프 필터링을 수행하는 인루프 필터링부; 및
상기 대형 데이터 처리 단위에 기초하여 상기 입력 영상의 부호화를 위한 엔트로피 부호화를 수행하는 엔트로피 부호화부를 포함하는 것을 특징으로 하는 영상 부호화 장치.
41. 제 39 항에 있어서, 상기 그룹 복호화부는,
상기 판독된 그룹의 부호화 모드에 대응되는 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 엔트로피 복호화를 수행하는 엔트로피 복호화부;
상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 역양자화 및 역주파수 변환을 수행하는 역양자화 및 역주파수 변환부;
상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 움직임 추정을 수행하는 움직임 추정부; 및
상기 대형 데이터 처리 단위에 기초하여 상기 그룹의 데이터의 복호화를 위한 인루프 필터링을 수행하는 인루프 필터링부를 포함하는 것을 특징으로 하는 영상 복호화 장치.
42. 제 1 항의 영상 부호화 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
43 . 제 19 항의 영상 복호화 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
PCT/KR2009/002942 2008-06-13 2009-06-03 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치 WO2009151232A2 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2011513412A JP5670885B2 (ja) 2008-06-13 2009-06-03 映像符号化方法及びその装置、映像復号化方法及びその装置
CN200980131662.XA CN102124739B (zh) 2008-06-13 2009-06-03 图像编码方法及其装置、图像解码方法及其装置
US12/997,747 US20110090967A1 (en) 2008-06-13 2009-06-03 Image-encoding method and a device therefor, and image-decoding method and a device therefor
EP09762619.6A EP2293567A4 (en) 2008-06-13 2009-06-03 IMAGE ENCODING METHOD AND DEVICE AND IMAGE DECODING METHOD AND DEVICE
AU2009258401A AU2009258401A1 (en) 2008-06-13 2009-06-03 Image-encoding method and a device therefor, and image-decoding method and a device therefor
US14/604,286 US9924174B2 (en) 2008-06-13 2015-01-23 Image-encoding method and a device therefor, and image-decoding method and a device therefor

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US6117508P 2008-06-13 2008-06-13
US61/061,175 2008-06-13
US8233808P 2008-07-21 2008-07-21
US61/082,338 2008-07-21
KR10-2008-0102464 2008-10-20
KR1020080102464A KR20090129926A (ko) 2008-06-13 2008-10-20 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
KR10-2009-0040890 2009-05-11
KR1020090040890A KR101599879B1 (ko) 2008-06-13 2009-05-11 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US12/997,747 A-371-Of-International US20110090967A1 (en) 2008-06-13 2009-06-03 Image-encoding method and a device therefor, and image-decoding method and a device therefor
US14/604,286 Continuation US9924174B2 (en) 2008-06-13 2015-01-23 Image-encoding method and a device therefor, and image-decoding method and a device therefor

Publications (2)

Publication Number Publication Date
WO2009151232A2 true WO2009151232A2 (ko) 2009-12-17
WO2009151232A3 WO2009151232A3 (ko) 2010-03-04

Family

ID=41689802

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/002942 WO2009151232A2 (ko) 2008-06-13 2009-06-03 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치

Country Status (7)

Country Link
US (2) US20110090967A1 (ko)
EP (2) EP2953368A1 (ko)
JP (3) JP5670885B2 (ko)
KR (2) KR20090129926A (ko)
CN (2) CN102124739B (ko)
AU (3) AU2009258401A1 (ko)
WO (1) WO2009151232A2 (ko)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102986213A (zh) * 2010-04-16 2013-03-20 Sk电信有限公司 视频编码/解码设备和方法
JP2013517665A (ja) * 2010-01-14 2013-05-16 サムスン エレクトロニクス カンパニー リミテッド 階層的データ単位のパターン情報を利用するビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
JP2013517669A (ja) * 2010-01-14 2013-05-16 サムスン エレクトロニクス カンパニー リミテッド 動きベクトルを符号化/復号化する方法及び装置
JP2015084574A (ja) * 2009-05-29 2015-04-30 三菱電機株式会社 画像復号装置および画像復号方法
JP2015128317A (ja) * 2010-09-29 2015-07-09 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 復号方法、復号装置およびプログラム
CN104796697A (zh) * 2010-01-14 2015-07-22 三星电子株式会社 视频解码设备
CN105187829A (zh) * 2010-04-13 2015-12-23 Ge视频压缩有限责任公司 变换系数块的编码、解码装置及方法
JP2016167830A (ja) * 2008-10-03 2016-09-15 クゥアルコム・インコーポレイテッドQualcomm Incorporated 大型マクロ・ブロックを用いたビデオ・コーディング
US9743087B2 (en) 2010-09-30 2017-08-22 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
JP2017147750A (ja) * 2011-03-10 2017-08-24 シャープ株式会社 画像復号装置、および画像符号化装置
US9788015B2 (en) 2008-10-03 2017-10-10 Velos Media, Llc Video coding with large macroblocks
CN107396118A (zh) * 2011-07-18 2017-11-24 太阳专利托管公司 编码方法和编码装置
RU2720975C2 (ru) * 2011-11-07 2020-05-15 Долби Интернэшнл Аб Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы
US11277630B2 (en) 2011-11-07 2022-03-15 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8126046B2 (en) * 2006-06-30 2012-02-28 Intel Corporation Flexible macroblock ordering and arbitrary slice ordering apparatus, system, and method
KR20110001990A (ko) * 2009-06-30 2011-01-06 삼성전자주식회사 영상 데이터의 인 루프 필터링 장치 및 방법과 이를 이용한 영상 부호화/복호화 장치
US20120106629A1 (en) 2009-07-01 2012-05-03 Thomson Licensing Llc Methods and apparatus for signaling intra prediction for large blocks for video encoders and decoders
EP2449779A1 (en) 2009-07-02 2012-05-09 Thomson Licensing Methods and apparatus for video encoding and decoding binary sets using adaptive tree selection
EP2474165A1 (en) * 2009-09-04 2012-07-11 Koninklijke Philips Electronics N.V. Scalable image coding and decoding
NO331356B1 (no) * 2009-10-16 2011-12-12 Cisco Systems Int Sarl Fremgangsmater, dataprogrammer og anordninger for koding og dekoding av video
US9467705B2 (en) 2009-12-30 2016-10-11 Ariscale Inc. Video encoding apparatus, video decoding apparatus, and video decoding method for performing intra-prediction based on directionality of neighboring block
WO2011126282A2 (en) * 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
KR101503269B1 (ko) * 2010-04-05 2015-03-17 삼성전자주식회사 영상 부호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치, 및 영상 복호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치
CN102823248B (zh) 2010-04-08 2015-06-24 株式会社东芝 图像编码方法以及图像编码装置
WO2011129671A2 (ko) * 2010-04-16 2011-10-20 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
KR101791242B1 (ko) 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
KR101791078B1 (ko) 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
WO2011129672A2 (ko) * 2010-04-16 2011-10-20 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
CN105704490B (zh) * 2010-04-16 2018-07-31 Sk电信有限公司 视频编码设备
US9706204B2 (en) 2010-05-19 2017-07-11 Sk Telecom Co., Ltd. Image encoding/decoding device and method
PT2592832T (pt) 2010-07-09 2016-09-20 Samsung Electronics Co Ltd Método e aparelho para codificar/descodificar por entropia um coeficiente de transformação
US10091529B2 (en) 2010-07-09 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding a transform coefficient
US20120014441A1 (en) * 2010-07-15 2012-01-19 Sharp Laboratories Of America, Inc. Parallel video coding based on boundaries
EP2624557B1 (en) * 2010-09-30 2018-08-01 Samsung Electronics Co., Ltd Video encoding method for encoding hierarchical-structure symbols and video decoding method for decoding hierarchical-structure symbols
CN102447895B (zh) 2010-09-30 2013-10-02 华为技术有限公司 扫描方法及装置、反扫描方法及装置
KR101483179B1 (ko) * 2010-10-06 2015-01-19 에스케이 텔레콤주식회사 주파수 마스크 테이블을 이용한 주파수변환 블록 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US9525884B2 (en) * 2010-11-02 2016-12-20 Hfi Innovation Inc. Method and apparatus of slice boundary filtering for high efficiency video coding
WO2012093891A2 (ko) 2011-01-06 2012-07-12 삼성전자 주식회사 계층적 구조의 데이터 단위를 이용한 비디오의 부호화 방법 및 장치, 그 복호화 방법 및 장치
JP2012147127A (ja) * 2011-01-07 2012-08-02 Sony Corp 画像処理装置および方法
US8925027B2 (en) * 2011-01-20 2014-12-30 Vidyo, Inc. Participant aware configuration for video encoder
WO2012134046A2 (ko) 2011-04-01 2012-10-04 주식회사 아이벡스피티홀딩스 동영상의 부호화 방법
CN105812806B (zh) * 2011-06-23 2019-04-26 Jvc 建伍株式会社 图像解码装置和图像解码方法
USRE47366E1 (en) 2011-06-23 2019-04-23 Sun Patent Trust Image decoding method and apparatus based on a signal type of the control parameter of the current block
CA2837532C (en) 2011-06-23 2018-10-02 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
TWI581615B (zh) 2011-06-24 2017-05-01 Sun Patent Trust A decoding method, a coding method, a decoding device, an encoding device, and a coding / decoding device
MX2013012019A (es) 2011-06-24 2013-12-10 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparto de codificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
MX2013013483A (es) 2011-06-27 2014-02-27 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
WO2013001765A1 (ja) 2011-06-28 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
MY160181A (en) * 2011-06-28 2017-02-28 Samsung Electronics Co Ltd Method and apparatus for coding video and method and apparatus for decoding video accompanied with arithmetic coding
CN102857746B (zh) * 2011-06-28 2017-03-29 中兴通讯股份有限公司 环路滤波编解码方法及装置
WO2013001767A1 (ja) * 2011-06-29 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
EP2727354A1 (en) * 2011-06-30 2014-05-07 Huawei Technologies Co., Ltd Encoding of prediction residuals for lossless video coding
US20140153648A1 (en) * 2011-06-30 2014-06-05 Samsung Electronics Co., Ltd. Method and apparatus for encoding motion information using skip mode, and method and apparatus for decoding same
WO2013001769A1 (ja) 2011-06-30 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
KR102007047B1 (ko) 2011-06-30 2019-08-02 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
JP2013012995A (ja) * 2011-06-30 2013-01-17 Sony Corp 画像処理装置および方法
WO2013008438A1 (ja) 2011-07-11 2013-01-17 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
SI2739053T1 (sl) * 2011-07-29 2019-11-29 Sun Patent Trust Postopek za dekodiranje videa, naprava za dekodiranje videa
EP3306921B1 (en) * 2011-09-09 2020-11-04 Sun Patent Trust Low complex deblocking filter decisions
WO2013039357A2 (ko) * 2011-09-14 2013-03-21 삼성전자 주식회사 비디오 부호화, 복호화 방법 및 장치
US9185404B2 (en) 2011-10-07 2015-11-10 Qualcomm Incorporated Performing transform dependent de-blocking filtering
RU2646308C1 (ru) * 2011-10-17 2018-03-02 Кт Корпорейшен Способ декодирования видеосигнала
KR101550724B1 (ko) 2011-10-17 2015-09-07 주식회사 케이티 영상 부호화/복호화 방법 및 그 장치
US9807403B2 (en) 2011-10-21 2017-10-31 Qualcomm Incorporated Adaptive loop filtering for chroma components
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
WO2013077713A1 (ko) * 2011-11-27 2013-05-30 엘지전자 주식회사 변환 계수 재정렬 방법 및 이를 이용하는 장치
CN103200400B (zh) 2012-01-09 2018-03-16 中兴通讯股份有限公司 一种图像层和分片层的编解码方法、编解码器和电子设备
WO2013129822A1 (ko) * 2012-02-27 2013-09-06 세종대학교산학협력단 영상 부호화와 복호화 장치 및 영상을 부호화와 복호화하는 방법
KR20130098122A (ko) 2012-02-27 2013-09-04 세종대학교산학협력단 영상 부호화/복호화 장치 및 영상을 부호화/복호화하는 방법
KR20130116754A (ko) * 2012-04-16 2013-10-24 주식회사 팬택 엔트로피 부복호화 방법 및 이러한 방법을 사용하는 장치
US9124872B2 (en) * 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
KR102290420B1 (ko) * 2013-04-05 2021-08-17 삼성전자주식회사 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9877048B2 (en) * 2014-06-09 2018-01-23 Qualcomm Incorporated Entropy coding techniques for display stream compression (DSC)
KR101919015B1 (ko) * 2014-10-07 2018-11-16 삼성전자주식회사 다 시점 영상 부호화/복호화 방법 및 장치
US20160127731A1 (en) * 2014-11-03 2016-05-05 National Chung Cheng University Macroblock skip mode judgement method for encoder
US10715818B2 (en) * 2016-08-04 2020-07-14 Intel Corporation Techniques for hardware video encoding
KR20180040827A (ko) * 2016-10-13 2018-04-23 디지털인사이트 주식회사 부호화 유닛의 그룹을 사용하는 비디오 코딩 방법 및 장치
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
KR102390413B1 (ko) 2017-03-03 2022-04-25 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
WO2018160034A1 (ko) * 2017-03-03 2018-09-07 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
US10735754B2 (en) 2017-04-26 2020-08-04 Google Llc Chromatic aberration modeling in image compression and enhancement
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
CN117640951A (zh) 2018-05-23 2024-03-01 松下电器(美国)知识产权公司 解码装置和编码装置
CN114342405A (zh) 2019-06-24 2022-04-12 Lg电子株式会社 图像解码方法和用于该图像解码方法的装置
WO2023022543A1 (ko) * 2021-08-18 2023-02-23 엘지전자 주식회사 채널간 상관도에 기반한 피쳐 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100196838B1 (ko) 1995-12-23 1999-06-15 전주범 블럭벌 상관 관계에 의한 부호화 장치
US6633611B2 (en) * 1997-04-24 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for region-based moving image encoding and decoding
AUPP248298A0 (en) * 1998-03-20 1998-04-23 Canon Kabushiki Kaisha A method and apparatus for hierarchical encoding and decoding an image
EP1075759A4 (en) 1998-04-29 2009-01-28 Sensormatic Electronics Corp COMPRESSING VIDEO DATA IN AN INFORMATION SYSTEM
US6522694B1 (en) * 1998-10-09 2003-02-18 Matsushita Electric Industrial Co., Ltd. Programmable filter for removing stuffing bits from an MPEG-2 bit-stream
JP3939551B2 (ja) * 1999-08-24 2007-07-04 富士通株式会社 動画像処理装置、その方法、及び記録媒体
EP1279290A1 (en) * 2000-04-04 2003-01-29 Koninklijke Philips Electronics N.V. Video encoding method using a wavelet transform
US6870963B2 (en) * 2001-06-15 2005-03-22 Qualcomm, Inc. Configurable pattern optimizer
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
JP2003319394A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
US7302006B2 (en) * 2002-04-30 2007-11-27 Hewlett-Packard Development Company, L.P. Compression of images and image sequences through adaptive partitioning
KR100999221B1 (ko) 2003-02-21 2010-12-07 파나소닉 주식회사 픽처 코딩 방법 및 디코딩 방법
KR100510137B1 (ko) * 2003-04-30 2005-08-26 삼성전자주식회사 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치
US7362810B2 (en) * 2003-05-13 2008-04-22 Sigmatel, Inc. Post-filter for deblocking and deringing of video data
US7852919B2 (en) * 2003-09-07 2010-12-14 Microsoft Corporation Field start code for entry point frames with predicted first field
KR101014660B1 (ko) 2003-10-24 2011-02-16 삼성전자주식회사 인트라 예측 방법 및 장치
US7400681B2 (en) * 2003-11-28 2008-07-15 Scientific-Atlanta, Inc. Low-complexity motion vector prediction for video codec with two lists of reference pictures
EP1730695A2 (en) 2004-03-09 2006-12-13 Thomson Research Funding Corporation Reduced resolution update mode for advanced video coding
US8116374B2 (en) * 2004-05-07 2012-02-14 Broadcom Corporation Method and system for generating a transform size syntax element for video decoding
JP4026622B2 (ja) 2004-07-06 2007-12-26 日産自動車株式会社 ハイブリッド車両の制御装置
FR2872974A1 (fr) * 2004-07-06 2006-01-13 Thomson Licensing Sa Procede ou dispositif de codage adaptatif
JP2006054846A (ja) * 2004-07-12 2006-02-23 Sony Corp 符号化方法、符号化装置、復号方法、復号装置およびそれらのプログラム
US8948266B2 (en) * 2004-10-12 2015-02-03 Qualcomm Incorporated Adaptive intra-refresh for digital video encoding
KR100647294B1 (ko) * 2004-11-09 2006-11-23 삼성전자주식회사 화상 데이터 부호화 및 복호화 방법 및 장치
KR101215614B1 (ko) * 2005-09-09 2012-12-26 삼성전자주식회사 영상의 부호화 및 복호화 장치와, 그 방법, 및 이를수행하기 위한 프로그램이 기록된 기록 매체
US8107748B2 (en) * 2005-09-16 2012-01-31 Sony Corporation Adaptive motion search range
JP5227187B2 (ja) * 2006-01-09 2013-07-03 トムソン ライセンシング マルチビュービデオ符号化のための低解像度アップデートモードを提供する方法及び装置
US8213495B2 (en) * 2006-02-06 2012-07-03 Panasonic Corporation Picture decoding method and picture decoding apparatus
JP2007243427A (ja) * 2006-03-07 2007-09-20 Nippon Hoso Kyokai <Nhk> 符号化装置及び復号化装置
KR100736104B1 (ko) * 2006-04-06 2007-07-06 삼성전자주식회사 독립적 파싱을 지원하는 비디오 코딩 방법 및 장치
JP2007336468A (ja) * 2006-06-19 2007-12-27 Sharp Corp 再符号化装置、再符号化方法およびプログラム
JP4250638B2 (ja) * 2006-06-30 2009-04-08 株式会社東芝 動画像符号化装置及びその方法
KR101382101B1 (ko) * 2006-08-25 2014-04-07 톰슨 라이센싱 감소된 해상도의 파티셔닝을 위한 방법 및 장치
JP2008092137A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 画像符号化装置及び画像符号化方法
US7545293B2 (en) * 2006-11-14 2009-06-09 Qualcomm Incorporated Memory efficient coding of variable length codes
US8488668B2 (en) * 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
US8483282B2 (en) * 2007-10-12 2013-07-09 Qualcomm, Incorporated Entropy coding of interleaved sub-blocks of a video block

Non-Patent Citations (2)

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

Cited By (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11758194B2 (en) 2008-10-03 2023-09-12 Qualcomm Incorporated Device and method for video decoding video blocks
US11039171B2 (en) 2008-10-03 2021-06-15 Velos Media, Llc Device and method for video decoding video blocks
US10225581B2 (en) 2008-10-03 2019-03-05 Velos Media, Llc Video coding with large macroblocks
US9930365B2 (en) 2008-10-03 2018-03-27 Velos Media, Llc Video coding with large macroblocks
US9788015B2 (en) 2008-10-03 2017-10-10 Velos Media, Llc Video coding with large macroblocks
JP2016167830A (ja) * 2008-10-03 2016-09-15 クゥアルコム・インコーポレイテッドQualcomm Incorporated 大型マクロ・ブロックを用いたビデオ・コーディング
JP2016036176A (ja) * 2009-05-29 2016-03-17 三菱電機株式会社 画像復号装置、画像符号化装置およびビットストリーム
JP2015084574A (ja) * 2009-05-29 2015-04-30 三菱電機株式会社 画像復号装置および画像復号方法
JP2017118573A (ja) * 2009-05-29 2017-06-29 三菱電機株式会社 画像復号装置、画像復号方法、画像符号化装置、画像符号化方法および符号化データ
JP2018164295A (ja) * 2010-01-14 2018-10-18 サムスン エレクトロニクス カンパニー リミテッド ビデオ復号化方法、ビデオ復号化装置、符号化方法及び記録媒体
JP2018142994A (ja) * 2010-01-14 2018-09-13 サムスン エレクトロニクス カンパニー リミテッド ビデオ復号化方法とその装置、ビデオ符号化方法とその装置
JP2013517665A (ja) * 2010-01-14 2013-05-16 サムスン エレクトロニクス カンパニー リミテッド 階層的データ単位のパターン情報を利用するビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
CN105245876A (zh) * 2010-01-14 2016-01-13 三星电子株式会社 视频解码设备
US11128856B2 (en) 2010-01-14 2021-09-21 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
CN104811697A (zh) * 2010-01-14 2015-07-29 三星电子株式会社 对视频进行解码的方法
JP2015133760A (ja) * 2010-01-14 2015-07-23 サムスン エレクトロニクス カンパニー リミテッド 復号化方法及び復号化装置
JP2016195433A (ja) * 2010-01-14 2016-11-17 サムスン エレクトロニクス カンパニー リミテッド ビデオ復号化方法及びビデオ復号化装置
JP2016195434A (ja) * 2010-01-14 2016-11-17 サムスン エレクトロニクス カンパニー リミテッド 復号化方法及び復号化装置
JP2013517669A (ja) * 2010-01-14 2013-05-16 サムスン エレクトロニクス カンパニー リミテッド 動きベクトルを符号化/復号化する方法及び装置
US9628812B2 (en) 2010-01-14 2017-04-18 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
US9628809B2 (en) 2010-01-14 2017-04-18 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
US9635375B2 (en) 2010-01-14 2017-04-25 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
US9641855B2 (en) 2010-01-14 2017-05-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
JP2015133761A (ja) * 2010-01-14 2015-07-23 サムスン エレクトロニクス カンパニー リミテッド 復号化方法及び復号化装置
US10582194B2 (en) 2010-01-14 2020-03-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
US10194173B2 (en) 2010-01-14 2019-01-29 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
CN104811698A (zh) * 2010-01-14 2015-07-29 三星电子株式会社 视频解码设备
JP2017169230A (ja) * 2010-01-14 2017-09-21 サムスン エレクトロニクス カンパニー リミテッド ビデオ復号化方法とその装置
CN104796695A (zh) * 2010-01-14 2015-07-22 三星电子株式会社 视频解码设备
US10110894B2 (en) 2010-01-14 2018-10-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
US9894356B2 (en) 2010-01-14 2018-02-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video by considering skip and split order
CN104796697A (zh) * 2010-01-14 2015-07-22 三星电子株式会社 视频解码设备
CN105245876B (zh) * 2010-01-14 2018-09-18 三星电子株式会社 视频解码设备
US10015520B2 (en) 2010-01-14 2018-07-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video by using pattern information in hierarchical data unit
US10129549B2 (en) 2010-04-13 2018-11-13 Ge Video Compression, Llp Coding of significance maps and transform coefficient blocks
US11095906B2 (en) 2010-04-13 2021-08-17 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10021404B2 (en) 2010-04-13 2018-07-10 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US9998741B2 (en) 2010-04-13 2018-06-12 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10855999B2 (en) 2010-04-13 2020-12-01 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
CN105187829A (zh) * 2010-04-13 2015-12-23 Ge视频压缩有限责任公司 变换系数块的编码、解码装置及方法
US11297336B2 (en) 2010-04-13 2022-04-05 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
CN105187829B (zh) * 2010-04-13 2018-10-26 Ge 视频压缩有限责任公司 变换系数块的编码、解码装置及方法
US10123025B2 (en) 2010-04-13 2018-11-06 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US11252419B2 (en) 2010-04-13 2022-02-15 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10148968B2 (en) 2010-04-13 2018-12-04 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US11025926B2 (en) 2010-04-13 2021-06-01 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US11128875B2 (en) 2010-04-13 2021-09-21 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10306243B2 (en) 2010-04-13 2019-05-28 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10306242B2 (en) 2010-04-13 2019-05-28 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10341668B2 (en) 2010-04-13 2019-07-02 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10750191B2 (en) 2010-04-13 2020-08-18 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10462474B2 (en) 2010-04-13 2019-10-29 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10477223B2 (en) 2010-04-13 2019-11-12 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US11070822B2 (en) 2010-04-13 2021-07-20 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US11032556B2 (en) 2010-04-13 2021-06-08 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
US10587884B2 (en) 2010-04-13 2020-03-10 Ge Video Compression, Llc Coding of significance maps and transform coefficient blocks
CN105306935A (zh) * 2010-04-16 2016-02-03 Sk电信有限公司 视频编码/解码设备和方法
CN102986213A (zh) * 2010-04-16 2013-03-20 Sk电信有限公司 视频编码/解码设备和方法
JP2015128317A (ja) * 2010-09-29 2015-07-09 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 復号方法、復号装置およびプログラム
USRE49991E1 (en) 2010-09-29 2024-05-28 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus and integrated circuit for generating a code stream with a hierarchical code structure
JP2017060179A (ja) * 2010-09-29 2017-03-23 サン パテント トラスト 復号方法、復号装置およびプログラム
USRE47510E1 (en) 2010-09-29 2019-07-09 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus and integrated circuit for generating a code stream with a hierarchical code structure
USRE48726E1 (en) 2010-09-29 2021-09-07 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus and integrated circuit for generating a code stream with a hierarchical code structure
US9749630B2 (en) 2010-09-30 2017-08-29 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
US10616579B2 (en) 2010-09-30 2020-04-07 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
US9743087B2 (en) 2010-09-30 2017-08-22 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
US11729389B2 (en) 2010-09-30 2023-08-15 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
US11310500B2 (en) 2010-09-30 2022-04-19 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
US10038905B2 (en) 2010-09-30 2018-07-31 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
US20180309993A1 (en) * 2010-09-30 2018-10-25 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
JP2017147750A (ja) * 2011-03-10 2017-08-24 シャープ株式会社 画像復号装置、および画像符号化装置
CN107396118B (zh) * 2011-07-18 2020-02-21 太阳专利托管公司 编码方法和编码装置
CN107396118A (zh) * 2011-07-18 2017-11-24 太阳专利托管公司 编码方法和编码装置
US11277630B2 (en) 2011-11-07 2022-03-15 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US10681389B2 (en) 2011-11-07 2020-06-09 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US11109072B2 (en) 2011-11-07 2021-08-31 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US11889098B2 (en) 2011-11-07 2024-01-30 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US11943485B2 (en) 2011-11-07 2024-03-26 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
RU2720975C2 (ru) * 2011-11-07 2020-05-15 Долби Интернэшнл Аб Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы

Also Published As

Publication number Publication date
US20150146796A1 (en) 2015-05-28
KR20090129926A (ko) 2009-12-17
AU2014210684A1 (en) 2014-09-04
AU2014210684B2 (en) 2016-03-03
US20110090967A1 (en) 2011-04-21
WO2009151232A3 (ko) 2010-03-04
EP2293567A4 (en) 2014-10-01
CN104093019A (zh) 2014-10-08
JP5670885B2 (ja) 2015-02-18
JP2016165148A (ja) 2016-09-08
JP2011523321A (ja) 2011-08-04
CN102124739B (zh) 2014-08-13
US9924174B2 (en) 2018-03-20
AU2014210591B2 (en) 2016-03-03
EP2293567A2 (en) 2011-03-09
AU2009258401A1 (en) 2009-12-17
KR101599879B1 (ko) 2016-03-07
JP6336513B2 (ja) 2018-06-06
CN102124739A (zh) 2011-07-13
AU2014210591A1 (en) 2014-08-28
JP2015035825A (ja) 2015-02-19
CN104093019B (zh) 2018-09-28
EP2953368A1 (en) 2015-12-09
KR20090129939A (ko) 2009-12-17

Similar Documents

Publication Publication Date Title
WO2009151232A2 (ko) 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
WO2018097693A2 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019190224A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2017222237A1 (ko) 화면 내 예측 방법 및 장치
WO2019177354A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018226015A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018012886A1 (ko) 영상 부호화/복호화 방법 및 이를 위한 기록 매체
WO2019182385A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2017171370A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020004987A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020009514A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018097692A2 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019172705A1 (ko) 샘플 필터링을 이용한 영상 부호화/복호화 방법 및 장치
WO2018012851A1 (ko) 영상 부호화/복호화 방법 및 이를 위한 기록 매체
WO2020076125A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020111785A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2019059676A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019240493A1 (ko) 문맥 적응적 이진 산술 부호화 방법 및 장치
WO2020005035A1 (ko) 처리율 향상을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2011040794A2 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
WO2012096539A2 (ko) 선택적 스캔 모드를 이용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2020141816A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020017910A1 (ko) 지역 조명 보상을 통한 효과적인 비디오 부호화/복호화 방법 및 장치
WO2020256466A1 (ko) 화면 내 예측 모드 및 엔트로피 부호화/복호화 방법 및 장치
WO2020005045A1 (ko) 머지 모드 기반의 인터 예측 방법 및 장치

Legal Events

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

Ref document number: 200980131662.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: 09762619

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 12997747

Country of ref document: US

Ref document number: 2011513412

Country of ref document: JP

Ref document number: 2009762619

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009258401

Country of ref document: AU

Ref document number: 12/MUMNP/2011

Country of ref document: IN

ENP Entry into the national phase

Ref document number: 2009258401

Country of ref document: AU

Date of ref document: 20090603

Kind code of ref document: A