Method and apparatus for encoding/decoding image using split layer
Abstract
This record has no abstract on file.
Term
4 yearsto projected expiry
Projected expiry 1 October 2030, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
1 claim: 1 independent, 0 dependent
- 1PATENT RESERVATIONS ZASTRZEŻENIA PATENTOWE 1. A video coding device containing:1. Urządzenie do kodowania wideo zawierające: jednostkę wyznaczającą maksymalną warstwę podziału (2620) do wyznaczania wartości maksymalnej warstwy podziału i odpowiadającego minimalnego rozmiaru podbloku dla kodowania bieżącego bloku, przy czym wartością maksymalnej warstwy podziału jest liczba warstw, według których bieżący blok może być maksymalnie podzielony na podbloki przy użyciu struktury drzewiastej, zaś wspomniane podbloki mają rozmiar równy lub większy od minimalnego rozmiaru podbloku;the maximum partition layer determining unit (2620) for determining the maximum partition layer value and the corresponding minimum subblock size for the coding of the current block, wherein the maximum partition layer value is the number of layers according to which the current block can be maximally divided into subblocks using a tree structure, and said subblocks have a size equal to or greater than the minimum size of the subblock;koder maksymalnej warstwy podziału (2630) do kodowania wartości maksymalnej warstwy podziału i minimalnego rozmiaru podbloku w strumieniu bitów, aby wskazać rozmiar bieżącego bloku w strumieniu bitów;i koder wideo (2610) do wytwarzania zakodowanych danych obrazu z bieżącego bloku przez zakodowanie poszczególnych podbloków wewnątrz bieżącego bloku, które mają rozmiar równy lub większy od minimalnego rozmiaru podbloku i do kodowania informacji o podziale wskazującej podział bieżącego bloku na poszczególne podbloki przy użyciu struktury drzewiastej. maximum partition layer encoder (2630) for encoding the maximum partition layer value and the minimum subblock size in the bit stream to indicate the size of the current block in the bit stream;and a video encoder (2610) for generating encoded image data from the current block by encoding individual subblocks within the current block that are equal to or larger than the minimum size of the subblock and for encoding partition information indicating the split of the current block into individual subblocks using a tree structure. 2. A video decoding device comprising: 2. Urządzenie do dekodowania wideo zawierające: dekoder maksymalnej warstwy podziału (3210) do dekodowania wartości maksymalnej warstwy podziału i opowiadającego minimalnego rozmiaru podbloku ze strumienia bitów, aby zdekodować bieżący blok, przy czym wartość maksymalnej warstwy podziału jest liczbą warstw, według których bieżący blok może być maksymalnie podzielony na podbloki przy użyciu struktury drzewiastej i przy czym wspomniane podbloki mają rozmiar równy lub większy od minimalnego rozmiaru podbloku, oraz do wyznaczania rozmiaru bieżącego bloku na podstawie wartości maksymalnej warstwy podziału i minimalnego rozmiaru podbloku;i dekoder wideo (3220) do dekodowania bieżącego bloku mającego wyznaczony rozmiar przez zdekodowanie informacji o podziale i zakodowanych danych obrazu dla bieżącego bloku wydobytych ze strumienia bitów, przy czym bieżący blok jest odtwarzany przez zdekodowanie poszczególnych podbloków wewnątrz bieżącego bloku, które mają rozmiar równy lub większy od minimalnego rozmiaru podbloku i są identyfikowane przez informację o podziale. maximum partition layer decoder (3210) for decoding the maximum partition layer value and the corresponding minimum subblock size from the bit stream to decode the current block, the maximum partition layer value being the number of layers at which the current block can be maximally divided into subblocks using the structure woody and wherein said subblocks have a size equal to or greater than the minimum size of the subblock, and for determining the size of the current block based on the maximum split layer value and the minimum subblock size;and a video decoder (3220) for decoding a current block having a predetermined size by decoding split information and encoded image data for the current block extracted from the bit stream, wherein the current block is played by decoding individual subblocks within the current block that are equal or larger in size from the minimum subblock size and are identified by the split information. EP2485490 Υ / Υ ΥΥ ΥΥΥΥΥΥΥχΥΥ EP2485490 Υ/Υ ΥΥ ΥΥΥΥΥΥΥχΥΥ Μ, Ν are integers equal to or greater than 16 Μ, Ν są liczbami całkowitymi równymi lub większymi od 16 FIG.l Figure IA FIG. 2 FIG. 2 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 kO 'C EP2485490 kO 'C CD (/) 1q CD (/) 1q FIG. 6 FIG. 6 EP2485490 δ EP2485490 δ ) 5 • c <D )5 •c <D Ε Ε FIG. 7 FIG. 7 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 FIG. 13 FIG. 13 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 Beginning Początek FIG. 18 FIG. 18 EP2485490 EP2485490 EP2485490 EP2485490 Macroblock size = 64 x 64 Rozmiar makrobloku=64 x 64 FIG. 20 FIG. twenty Maximum split layer value: 4 Wartość maksymalnej warstwy podziału: 4 EP2485490 | Τ | ~ | ~ 7]: The coding order of the split type EP2485490 |Τ| ~ |~7] : Kolejność kodowania typu podziału FIG. 21 FIG. 21 FIG. 22 FIG. 22 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 EP2485490 Macroblock size— 64x64 Maximum split layer value: 4 Rozmiar makrobloku— 64x64 Wartość maksymalnej warstwy podziału : 4 Flag for layer 0: 1 (Used) Flag for layer 1: 0 (Not used) Flag for layer 2: 0 (Not used) Flag for layer 3: 1 (Used) Flaga dla warstwy 0: 1 (Użyta) Flaga dla warstwy 1: 0 (Nie użyta) Flaga dla warstwy 2: 0 (Nie użyta) Flaga dla warstwy 3: 1 (Użyta) FIG. 30 FIG. thirty EP2485490 EP2485490 100 100 EP2485490 EP2485490 101 101 EP2485490 EP2485490 102 102 EP2485490 EP2485490 103 103 EP2485490 EP2485490 104 104 EP2485490 EP2485490 ODNOŚNIKI CYTOWANE W OPISIE REFERENCES CITED IN THE DESCRIPTION Poniższa lista odnośników cytowanych przez zgłaszającego ma na celu wyłącznie pomoc dla czytającego i nie stanowi części dokumentu patentu europejskiego. Pomimo, że dołożono największej staranności przy jej tworzeniu, nie można wykluczyć błędów lub przeoczeń i EUP nie ponosi żadnej odpowiedzialności w tym względzie. The following list of references cited by the applicant is for the reader's convenience only and does not form part of the European patent document. Although the greatest care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard. Literatura niepatentowa cytowana w opisie • KIM J. et al. Enlarging MB size for high fidelity video coding beyond HD. 36th meeting of the VCEG in San Diego, USA, 10 May 2008 [0007] Non-patent literature cited in the description • KIM J. et al. Enlarging MB size for high fidelity video coding beyond HD. 36th meeting of the VCEG in San Diego, USA, 10 May 2008 [0007] 105 105
759 paragraphs in 24 sections, as filed
Technical field] [0001] The present disclosure relates to a method and apparatus for encoding / decoding an image by means of a separation or partitioning layer. In particular, the present disclosure relates to a method and apparatus that perform coding and decoding in a subblock unit after block separation into subblocks when the high resolution image is encoded with variable size blocks and improves compression efficiency by efficiently encoding / decoding block partition information.
[State of the art] [0002] The statements contained in this section are only an outline of the information regarding the present invention and cannot constitute the state of the art.
[0003] Technologies for compressing video data include H.261, H.263, H.264, MPEG-2, MPEG-4 and the like. According to these video compression standards, each image is divided and encoded in fixed-size macroblocks made of rectangular areas having a 16x16 pixel luminance component and an 8x8 pixel chrominance component. All luminance components and all chrominance components of each macroblock are subject to spatial and temporal prediction, and then the predicted residual blocks are subject to transformation, quantization, entropy coding and ultimately transmission.
[0004] The recently adopted H.264 / AVC standard recommends that coding devices use 16x16 pixel blocks for a fixed macroblock size and divide each macroblock into smaller blocks for which intra-picture or inter-picture prediction is performed. When performing intra-image prediction, each macroblock can be divided into smaller 16x16, 8x8 or 4x4 sizes and the 16x16 block is subjected to intra-imaging prediction in one of four prediction modes, 8x8 and 4x4 blocks are subjected to intra-imaging prediction in one of nine prediction modes. In the case of inter-picture prediction, the macroblock can be divided into 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 or 4x4 blocks, and then used for inter-picture prediction with motion compensation. The transformation is performed on 8x8 or 4x4 blocks, and the quantization used for transformation coefficients is a scalar quantization.
[0005] However, since typical video compression technology uses fixed-size macroblocks during image encoding (even if H.264 / AVC splits and encodes macroblocks in smaller block units, the macroblock has a fixed size), the high-resolution image encoding barely achieves sufficient coding performance.
[0006] In addition, because the macroblock size is fixed, the sizes of subblocks within the macroblock, which are units of prediction or transformation, are also limited.
[0007] Document D1 ("Enlarging MB size for high fidelity video coding beyond HD" by Kim J. et al, published on 05.10.2008 at the 36th VCEG meeting in San Diego, USA with reference number VCEG-AJ21) discloses a method video coding that extends the architecture of the H.264 codec with the increased size of the macroblock. If the same minimum subblock size is maintained, the larger the macroblock size is, the greater the number of split levels.
[Discussion of the invention] [Technical problem] [0008] Therefore, to solve the above-mentioned problem within the various forms of the present invention
EP2485490 intends to encode the image using variable size blocks and different sizes of subblocks when the high resolution image is encoded, and improve compression efficiency by efficiently encoding and decoding block partition information.
[Technical solution] [0009] Within one embodiment of the present invention, a video encoding / decoding device comprising a video encoder is provided for encoding the image by producing encoded image data by encoding the current block divided into a plurality of sub-blocks and producing encoded data with information about broken down an encoded partition information data) by encoding partition information for the current block; and a video decoder for decoding the image as a result of reproducing partition information for the current block by decoding encoded data with information about the split extracted from the bit stream and reproducing the current block divided into multiple subblocks by decoding the encoded image data extracted from the bit stream in accordance with the reproduced information on the split for the current block.
[0010] As another aspect of the present invention, there is provided a video encoding apparatus comprising a video encoder for encoding the image by producing encoded image data by encoding the current block divided into a plurality of sub-blocks; and a partition information encoder for encoding partition information as a result of generating the encoded partition information data by encoding the partition information for the current block.
[0011] Another aspect of the invention provides a video coding apparatus comprising a maximum partition layer determining unit for determining the maximum partition layer value for the current block; maximum partition layer encoder for encoding the maximum partition layer by producing encoded data with the maximum partition layer by encoding the maximum partition layer value for the current block; and a video encoder for encoding the image by producing the encoded image data by encoding the current block using the minimum subblock size determined according to the determined maximum partition layer value.
[0012] Another aspect of the invention provides a video coding apparatus comprising a maximum partition layer determining unit for determining the maximum partition layer value for the current block; maximum partition layer encoder for encoding the maximum partition layer by producing encoded data with the maximum partition layer by encoding the maximum partition layer value for the current block; and a video encoder for encoding the image by producing the encoded image data by encoding the current block using the minimum subblock size determined according to the determined maximum partition layer value.
[0013] As part of another embodiment of the invention, there is provided a video coding apparatus comprising a macroblock size determining unit for determining the macroblock size candidates; a video encoder for encoding the input image with each of the candidate macroblock sizes; macroblock size determining unit for determining the macroblock size based on the coding cost for each of the candidate macroblock sizes and for generating a bit stream containing image data encoded using the determined macroblock size and information on the determined macroblock size.
[0014] Another aspect of the invention provides a video coding apparatus comprising a split information decoder for decoding split information as a result of reproducing the split information for the current block by decoding the encoded information with the split information.
EP2485490 extracted from the bit stream; and a video decoder for decoding the image as a result of reproducing the current block divided into multiple subblocks by decoding the encoded image data extracted from the data stream according to the reproduced partition information for the current block.
[0015] Another aspect of the invention provides a video coding apparatus comprising a maximum partition layer decoder for decoding the maximum partition layer as a result of reproducing the maximum partition layer value by decoding the encoded data with the maximum partition layer extracted from the bit stream; and a video decoder for decoding the image as a result of playing the current block by decoding the encoded image data extracted from the bit stream using a minimum subblock size depending on the reconstructed value of the maximum split layer.
[0016] Another aspect of the invention provides a video coding apparatus comprising a macroblock size determining unit for determining the macroblock size by extracting the macroblock size information from the bit stream and determining the macroblock size using the extracted macroblock size information; and a video decoder for decoding the image by extracting the encoded image data from the bit stream and creating the reconstructed image by decoding the encoded image data depending on the macroblock size identified by the macroblock size information.
[0017] Another aspect of the invention provides a video encoding / decoding method comprising encoding the image by producing encoded image data by encoding the current block divided into a plurality of subblocks and generating the encoded partition information data by encoding the partition information for the current block; and decoding the image as a result of reproducing the split information for the current block by decoding the encoded information with the split information extracted from the bit stream and reproducing the current block divided into multiple subblocks by decoding the encoded image data extracted from the bit stream in accordance with the reconstructed split information for the current block .
[0018] Another aspect of the invention provides a video coding method comprising generating encoded image data by encoding the current block such that it is divided into a plurality of subblocks; generating coded split information by encoding split information for the current block; and creating a bit stream containing the encoded image data and the encoded partition information.
[0019] Many subblocks may be square.
[0020] Division may be carried out by means of one of many types of division selected.
[0021] The current block may be a macroblock exceeding 16x16 block size.
[0022] The partition information may indicate block sizes for a plurality of subblocks contained in the current block.
[0023] The partition information may be identified by information indicating the type of partition for each partition layer, and the stage of generating the encoded data with the partition information may encode the partition information by sequential coding of information indicating the partition type for each partition layer based on the information coding order indicating the type of division.
[0024] The partition information may be identified by the partition layer number and information indicating the partition type, and the step of producing the encoded partition information data may encode the partition information by encoding the partition layer number and the type indicating information
EP2485490 division using a tree structure.
[0025] Split can only use squares, and split information can only contain split layer values.
[0026] The split may refer to a rectangular block divided into smaller rectangular blocks.
[0027] The partition information may be identified by the partition layer value and the partition flag, and the step of producing the encoded partition information data may encode the partition information by encoding the partition layer value and the partition flag.
[0028] The step of generating the encoded partition information may encode the partition information by encoding the partition layer value and partition flag only if the current block is an intra block.
[0029] Many subblocks may be square blocks.
[0030] Another aspect of the invention provides a video encoding device including a setting of candidate minimum subblock sizes (ang. setting minimum subblock size candidates;); encoding the input image with each of the candidate minimum subblock sizes; determining a minimum subblock size based on the coding cost for each of the candidate subblock sizes and creating a bit stream containing image data encoded using the determined minimum subblock size and information about the determined minimum subblock size.
[0031] The information about the determined minimum subblock size can be either information about the value of the minimum subblock size or information about the value of the maximum partition layer value.
[0032] The step of determining the minimum subblock size may include determining a maximum split layer value for the current block; generating encoded maximum split layer data by encoding the maximum split layer value for the current block; decoding the encoded image data by encoding the current block using a minimum subblock size determined depending on the determined maximum split layer value; and creating a bit stream containing the encoded maximum split layer data and the encoded image data.
[0033] The step of generating the encoded image data may encode the current block using the minimum subblock size determined depending on the maximum split layer value and the subblocks determined depending on the accessibility of the individual layers, and the bit stream generating step may further include information indicating the use or no use of individual layers after splitting the bit stream.
[0034] Information indicating the use or non-use of each of the partition layers may be indexes of the table formed by combining use cases or non-use of individual layers.
[0035] Another aspect of the invention provides a video encoding device comprising determining available partition layers for the current block; selecting a split layer from designated available split layers to minimize the coding cost of the current block; generating encoded image data by encoding the current block using a selected partition layer; and creating a bit stream comprising the encoded partition layer data generated by encoding the selected partition layer information, the encoded partition information data generated by the encoding partition information for the current block and the encoded image data.
EP2485490 [0036] As part of another embodiment of the invention, there is provided a video encoding device comprising setting macroblock size candidates; encoding the input image using each of the candidate macroblock sizes; determining the macroblock size based on the coding cost for each of the candidate macroblock sizes; and creating a bit stream containing the encoded image data using the determined macroblock size and information about the determined macroblock size.
[0037] The information about the determined macroblock size may be information about the value of the macroblock size or information about the value of the maximum size of the subblock and about the value of the maximum partition layer or information about up / down scaling of the macroblock of a predetermined size.
[0038] The information about the macroblock size value may be a flag indicating whether to transmit the macroblock information.
[0039] The information about the determined macroblock size may be a flag indicating whether to use the macroblock with a reference size.
[0040] The information about the determined macroblock size may be a flag indicating whether to use the macroblock size from the previous frame.
[0041] The determined macroblock size information may define different sizes for macroblocks between the intra frame and the inter frame.
[0042] The video coding method may further include establishing a reference minimum subblock size and encoding a flag indicating whether to use the reference minimum subblock size in each frame header, in the slice header or in the minimum subblock header.
[0043] A block having the size increased or decreased by a predetermined factor relative to the reference minimum subblock size can be selected as the current minimum subblock when the flag indicates that the minimum reference subblock size has not been used.
[0044] The intra and inter frames can be encoded using different minimum subblock sizes.
[0045] Information on the value of the macroblock size or information on the value of the maximum subblock size can be obtained using a table defining block sizes.
[0046] Another aspect of the invention provides a video decoding method comprising reproducing partition information for the current block by decoding encoded data with partition information extracted from the bit stream; and restoring the current block to divide it into multiple subblocks by decoding the encoded image data extracted from the bit stream in accordance with the restored partition information for the current block.
[0047] The partition information may be identified by information indicating the type of partition for each partition layer.
[0048] The partition information may be identified by the partition layer number and information indicating the type of partition.
[0049] Partition information may be identified by a partition layer value and a partition flag.
[0050] The split can only use squares, and the split information can only contain split layer values.
[0051] Division may refer to rectangular blocks divided into smaller rectangular blocks.
[0052] Another aspect of the invention provides a video coding method comprising reproducing a minimum subblock size by decoding encoded data with a minimum size
EP2485490 subblock extracted from the bit stream; and restoring the current block by decoding the encoded image data extracted from the bit stream using the reconstructed minimum subblock size.
[0053] The encoded data with the minimum subblock size extracted from the bit stream may be either information about the value of the minimum subblock size or information about the value of the maximum partition layer.
[0054] The step of creating the current block may encode the current block using the minimum subblock size determined according to the maximum partition layer value and the subblocks determined depending on the availability of individual layers.
[0055] The video decoding method may further include information indicating the use or non-use of individual layers in the form of table indexes formed by combining use cases or non-use of individual layers.
[0056] Another aspect of the invention provides a video decoding method comprising reproducing partition layer information and partition information by decoding partitioned encoded data and partitioned encoded data extracted from the bit stream; and restoring the current block by decoding the encoded image data extracted from the bit stream using the restored partition layer information and the restored partition information.
[0057] Another aspect of the invention provides a video decoding method comprising determining the macroblock size by extracting the macroblock size information from the bit stream and determining the macroblock size using the extracted macroblock size information; and decoding the image by extracting the encoded image data from the bit stream and creating a reconstructed image by decoding the encoded image data depending on the macroblock size identified by the macroblock size information.
[0058] The information about the macroblock size may be information about the value of the macroblock size or information about the value of the maximum size of the subblock and about the value of the maximum partition layer or information about the up / down scaling of the macroblock with a predetermined size.
[0059] The information about the value of the macroblock size may be information about the reference maroblock size.
[0060] The information on the macroblock size may be a flag indicating whether to use the macroblock size from the previous frame.
[0061] The macroblock size information may define different sizes for macroblocks between the intra frame and the inter frame.
[0062] The video decoding method may further include restoring the minimum subblock size by setting the reference minimum subblock size and decoding the flag indicating whether to use the reference minimum subblock size in each frame header, in the slice header or in the minimum subblock header.
[0063] The minimum subblock size can be reproduced by decoding information indicating an increase or decrease of a predetermined factor relative to the reference minimum subblock size when the flag indicates that the minimum reference subblock size has not been used.
[0064] The intra cage and inter cage may have different minimum subblock sizes defined.
[0065] Information on the value of the macroblock size or information on the value of the maximum subblock size can be obtained using a table defining block sizes.
EP2485490 [Advantageous effects] [0066] According to the present invention, as described above, effective video coding and decoding can be achieved by encoding the image using variable size macroblocks and various subblock sizes when high resolution image coding, and encoding and decoding information on block division.
[Description of the drawings] [0067]
Fig. 1-3 are exemplary diagrams illustrating macroblocks in an M x N pixel unit according to one embodiment of the present invention,
Fig. 4 and Fig. 5 are exemplary diagrams illustrating different modes of the subblock according to one embodiment of the present invention,
Fig. 6 is a block diagram illustrating a video encoding device according to one embodiment of the present invention,
Fig. 7 is a block diagram illustrating a video decoding device according to one embodiment of the present invention,
Fig. 8 is a schematic diagram illustrating the first implementation of the video encoding device according to another embodiment of the present invention,
Fig. 9 is an exemplary diagram illustrating subblocks formed by separating the macroblock for each layer according to a different embodiment of the present invention,
Fig. 10 is an exemplary diagram illustrating types of splits according to another embodiment of the present invention,
Fig. 11 is an exemplary diagram illustrating a macroblock divided into subblocks of different block sizes according to another embodiment of the present invention,
Fig. 12 is an exemplary diagram illustrating sequentially the processes in which the macroblock is separated for each partition layer,
Fig. 13 is an example diagram illustrating processes in which information indicating the type of macroblock splitting for each layer is sequentially coded in the order of the subblocks,
Fig. 14 is an exemplary diagram illustrating a method of coding block partition information using a tree structure according to another embodiment of the present invention,
Fig. 15 and Fig. 16 are exemplary diagrams illustrating an example of how to code block partition information using a tree structure according to another embodiment of the present invention,
Figs. 17 and 18 are exemplary diagrams illustrating another example of a method for encoding block partition information using a tree structure according to another embodiment of the present invention,
Fig. 19 illustrates subblocks separated based on the value of the partition layer according to another embodiment of the present invention,
Fig. 20 is an exemplary diagram illustrating the process of coding block partition information using the partition layer value and partition flag according to another aspect of the present invention,
Fig. 21 is an example diagram illustrating a macroblock divided into subblocks of different block sizes according to another embodiment of the present invention,
Fig. 22 is an example diagram illustrating the process of sequential coding of information indicating the type of partition for each macroblock layer in order of subblocks,
Fig. 23 is a block diagram illustrating a video coding method according to another embodiment of the present
EP2485490 of the invention,
Fig. 24 is a block diagram illustrating a video decoding device according to another embodiment of the present invention,
Fig. 25 is a block diagram illustrating a video coding method according to another aspect of the present invention,
Fig. 26 is a block diagram illustrating a video encoding device according to yet another embodiment of the present invention,
Fig. 27 is an example diagram illustrating the relationship between a partition layer and the minimum size of a subblock according to yet another embodiment of the present invention,
Fig. 28 is a block diagram illustrating an example of how to determine the maximum split layer value according to yet another aspect of the present invention,
Fig. 29 is a block diagram illustrating another example of a method for determining the maximum split layer value according to yet another aspect of the present invention,
Fig. 30 is an example diagram illustrating the process of coding partition information for the current block using only selected partition layers according to yet another aspect of the present invention,
Fig. 31 is a block diagram illustrating a video coding method according to yet another aspect of the present invention,
Fig. 32 is a block diagram illustrating a video decoding device according to yet another embodiment of the present invention,
Fig. 33 is a block diagram illustrating a video decoding method according to yet another embodiment of the present invention,
Fig. 34 is an exemplary diagram illustrating types of divisions according to another embodiment of the present invention,
Fig. 35 is a schematic diagram illustrating a video encoding device according to yet another embodiment of the present invention,
Fig. 36 is a block diagram illustrating the implementation of the video coding method according to another aspect of the present invention, and
Fig. 37 is a block diagram illustrating the implementation of a video decoding device according to another embodiment of the present invention.
[Mode for carrying out the invention] [0068] In the following, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following, the same elements will be designated by the same reference numerals, although they are shown in different drawings. Furthermore, in the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted in case it could obscure the subject of the present invention.
[0069] In addition, terms such as first, second, A, B, (a) and (b) may be used in the description of components of the present invention. Their purpose is only to distinguish one component from another, not to imply or suggest the essence, order or sequence of components. If a component has been described as 'linked', 'connected' or 'related' to another component, this may not only mean that these components are directly 'related', 'connected' or 'related', but also that they are indirectly 'connected', 'connected' or 'related' by means of a third component.
[0070] The video encoding device and the video decoding device will be discussed
EP2485490 in the following description, may be a personal computer (PC), notebook computer, handheld computer (PDA), portable multimedia player (PMP), PlayStation Portable console (PSP) or mobile communication terminal, and may concern many devices containing such communication device like a communication modem to communicate with various devices or a wired / wireless communication network, memory for storing various programs and data for encoding or decoding video, and a microprocessor for executing a program for performing operations and control.
[0071] In addition, the video encoded in the bit stream by the video encoding device is transmitted to the video decoding device via a wired / wireless communication network such as internet, NFC (Near Field Communication), wireless LAN (Local Area Network) . WiBro (Wireless Broadband) network and a mobile network or via a communication interface such as a cable or universal serial bus (USB) in real time or not in real time and decoded in a video decoding device, and therefore the decoded video can be played and reproduced as video.
[0072] In general, the video contains a series of frames, and each frame is divided into predefined areas such as macroblocks, which are reference units for encoding and decoding the image. The macroblocks are divided into intra macroblocks and inter macroblocks according to the macroblock decoding method. The intra macroblock refers to a macroblock encoded using predictive intra-image coding. Predictive intra-image coding corresponds to the scheme for producing predicted blocks by predicting the pixel of the current block using pixels of reconstructed blocks previously coded and decoded within the current frame for which the current coding is performed, and coding the value of the difference between the predicted block generated and the pixel of the current block. Inter macroblock refers to a macroblock encoded using predictive inter-picture coding. Predictive inter-picture coding corresponds to a predicted block generation scheme by predicting the current block within the current frame with respect to one or more past frames or future frames and encoding the difference value between the predicted block produced and the current block. Here, the frame to which the current frame is encoded or decoded will be referred to as the reference frame.
A) Encoding and decoding using a macroblock or block having an arbitrary size [0073] In the following, an example is described for encoding and decoding an image in a unit of blocks. Here, the block may be a macroblock size M x N (M and N may be integers equal to or greater than 16) or a subblock or smaller block size O x P (O and P may be integers equal to or less than M or N) . The coding and decoding of an image in a unit of blocks is only exemplary and the image may be encoded and decoded in a unit being a specific area such as blocks or indefinite areas. However, the video encoding / decoding device, which will be described later, may use blocks having an arbitrary size and the block size is a size predetermined between the video encoding device and the video decoding device.
A-1) Arbitrary Macroblock [0074] Figs. 1-3 are exemplary diagrams illustrating macroblocks in a unit M × N pixels according to one embodiment of the present invention.
[0075] Fig. 1 shows, as an example, macroblocks in the unit M x N pixels (hereinafter referred to as M x N macroblocks) expressed as part of an input image having a certain size, Fig. 2 shows
EP2485490 as an example, a CIF image containing 396 16 x 16 macroblocks, and Fig. 3 is an example of a CIF image containing 54 64 x 32 macroblocks.
[0076] In conventional video compression technology, the image is separated into macroblocks with a fixed size of 16 x 16, and then encoded and decoded as shown in Fig. 2. However, in the form of the present invention, the image can be encoded and decoded using 64 x macroblocks 32 (not only size 64 x 32 is available, but also M x N (larger than size 16 x 16), such as size 64 x 64 and size 32 x 64) as shown in Fig. 3.
A-2) Example of a Subblock Mode [0077] Figs. 4 and 5 are exemplary diagrams illustrating different modes of the subblock according to one embodiment of the present invention.
[0078] Fig. 4 shows the subblock modes available for a 32 x 32 macroblock and Fig. 5 shows the subblock modes available for a 32 x 16 macroblock.
[0079] According to one embodiment of the present invention, the M x N macroblock may be split into smaller blocks, i.e., subblocks as shown in Fig. 4 and Fig. 5. Image macroblocks may be encoded using in-picture prediction or encoded using inter-picture prediction in a sub-block unit.
A-3) Description of the video encoding device [0080] Fig. 6 is a block diagram illustrating the video encoding device according to one embodiment of the present invention.
[0081] The video encoding device according to one embodiment of the present invention corresponds to the video encoding device using macroblocks having a size equal to or greater than the arbitrary size and may include a predictor 610, encoder 620, player 630, filter 640 and frame memory 650. Here the player 630, filter 640 and frame memory 650 may be omitted or selectively contained in another element according to the implementation method.
[0082] The predictor 610 may include a motion estimator 612, a motion compensator 614 and an intra-image predictor 616 and performs prediction of the macroblocks of the input image. Here, macroblocks refer to macroblocks with a size equal to or greater than 16 x 16 (i.e. macroblocks with the size M x N, where M and N are integers equal to or greater than 16).
[0083] The motion estimator 612 generates a motion vector by comparing the macroblock whose prediction is desired with the reference frame stored in frame memory 650 and estimating the motion for the corresponding macroblock.
[0084] The motion compensator 614 retrieves a block corresponding to the size of the macroblock, whose prediction is desired, from a reference frame stored in the frame memory 650 with reference to the motion vector generated by the motion estimator 612. The block downloaded by the motion compensator 614 becomes the predicted macroblock having the predicted value of the macroblock whose prediction is desired.
[0085] The intra-image predictor 616 performs intra-image prediction of a block whose prediction is desired. For intra-image prediction, the intra-image predictor 616 generates a reference block using the restored neighbor pixel information already coded and decoded, and compares the reference block with the target macroblock to be encoded to determine the intra-image prediction mode. Then, the intra-picture predictor 616 performs intra-picture prediction of the macroblock in accordance with the designated intra-picture prediction mode.
EP2485490
The macroblock predicted by the intra-picture predictor 616 becomes the predicted macroblock having the predicted target macroblock value.
[0086] The encoder 620 encodes a residual signal, which is the difference between the pixel values of the target macroblock and the predicted macroblock. In particular, the encoder 620 encodes the residual signal by transformation, quantization, and entropy coding. Furthermore, when the encoder 620 performs inter-picture prediction of the target macroblock to be encoded, the encoder 620 may encode the traffic information such as the motion vector generated by the traffic estimator 612 and the macroblock mode information such as the macroblock size. In the case where the encoder 620 performs intra-picture prediction of the target macroblock to be encoded, the encoder 620 may encode the prediction mode information such as the intra-picture prediction mode and macroblock mode information such as the macroblock size.
[0087] Player 630 performs inverse quantization and inverse transformation for the transformed and quantized residual signal and adds a residual signal to the predicted macroblock output from the predictor 610 to reproduce the target macroblock.
[0088] The filter 640 filters the reconstructed target macroblock using a filter such as a block-removing filter. The filtered regenerated macroblock is placed in the frame 650 memory and used in the predictor 610 for inter-picture prediction of the next macroblock or macroblock from the next frame. A-4) Description of the video decoding device [0089] Fig. 7 is a block diagram illustrating the video decoding device according to one embodiment of the present invention.
[0090] The video decoding device according to one embodiment of the present invention may include a decoder 710, predictor 720, player 730, filter 740 and frame memory 750.
[0091] The decoder 710 extracts from the input bit stream the three types of information required to decode the macroblock. First, the decoder 710 decodes entropy and extracts information about the macroblock type regarding whether the macroblock whose decoding is currently desirable, is an intro macroblock or inter macroblock, and information about the subblock mode indicating the subblock modes for the macroblock.
[0092] Secondly, the decoder 710 extracts information required for prediction as a result of entropy decoding. In this case, the method of decoding the type of prediction data to be decoded and the prediction data are different depending on whether each block is an intra block or an inter block. When the block to be played is an inter block, reference frame information required for the compensation of the movement of each subblock and motion information such as the motion vector are extracted from the bit stream and decoded. When the block to be reproduced is an inter block, information about the intra-three-frame prediction modes for the luminance component and the chrominance component are extracted from the bit stream and decoded.
[0093] Finally, the decoder 710 decodes the information required to decode the residual signal. Information indicating whether there is a transformation coefficient that is not equal to 0 is first decoded in each subblock (e.g. CBP), and transformation information indicating the transformation type and quantized transformation coefficient are decoded for blocks having a transformation coefficient that is not equal to 0.
[0094] The predictor 720 performs prediction of the current block to be decoded currently, and may include a motion compensator 722 and an intra-image predictor 724. When the current block is an inter block, then
EP2485490 motion compensator 722 generates a predicted macroblock by retrieving pixels corresponding to the size of the current macroblock from a reference frame stored in frame 750 memory using the reconstructed motion vector decoded by the decoder 710. When the current block is an intra block, then the intra-image predictor 724 generates the predicted macroblock by predicting the current macroblock according to the reconstructed intra-picture prediction mode decoded by the 710 decoder. After generating the residual signal by inverse quantizing the quantized transformation coefficient decoded by the 710 decoder and inverse transformation of the inverse quantized transformation coefficient using the reconstructed transformation type extracted from the 710 decoder, the player 730 produces the regenerated macroblock by adding the generated residual signal to the predicted macroblock of the predetermined macroblock. The produced regenerated macroblock is filtered in filter 740 and stored in frame 750 memory, and the filtered and stored macroblock is used to play the next block or the next frame.
[0095] As described above, the video encoding device 600 and the video decoding device 700 according to one embodiment of the present invention can encode and decode the image using blocks having an arbitrary size.
B) Block splitting and coding and decoding split information [0096] In the following, as another embodiment of the present invention, a device and method for splitting a macroblock having an arbitrary size into multiple subblocks will be described by using a partition (or partition) layer for prediction or transformation and effectively encode and decode partition information indicating the shapes and sizes of subblocks created by separation. However, although the video encoding / decoding device, which will be discussed below, may use macroblocks having an arbitrary size, alternatively the video encoding device and the video decoding device may perform encoding / decoding using the macroblock size and the minimum subblock size previously established between the coding device video and video decoding device.
[0097] The partition information may be information indicating the sizes and shapes of subblocks created by separation for prediction and transformation. The video encoding device includes split information and encoded image data in the bit stream and transmits the bit stream to the video decoding device.
[0098] Furthermore, the video coding apparatus may encode split information for the prediction and split information for the transformation, respectively.
[0099] During decoding, the video decoding device extracts and decodes split information from the bit stream and splits the macroblock into multiple subblocks for prediction or transformation. The video decoding device then performs a prediction or transformation in the sub-block unit to reproduce the image.
B-1) Video coding device
B-1-1) Coding device [0100] Fig. 8 is a block diagram illustrating a video coding device according to another aspect of the present invention.
[0101] The video encoding apparatus 800 according to another aspect of the present invention may include a video encoder 810 and a partition information encoder 820.
[0102] The video encoding apparatus 800 of Fig. 8 encodes partition information in the split information encoder 820 and then encodes the predicted data and / or image data including the data required for
EP2485490 to decode the residual signal such as transformation type, CBP and transformation coefficient. Here, the predicted data corresponds to data indicating whether each subblock is an intra block or an inter block, and for the intra block correspond to the intra-image prediction mode and for the inter block correspond to motion information. The video encoder 810 may be implemented as a video encoding apparatus 600 according to one embodiment of the present invention described with reference to Fig. 6. That is, the video encoder 810 separates the macroblock having an arbitrary size into sub-blocks of different sizes for prediction or transformation, performs predictive coding on individual sub-blocks, and then determines the prediction modes for individual blocks and the type of macroblock splitting having the lowest coding cost. Partition information indicating the determined type of macroblock splitting is encoded in the bit stream by the 820 encoder and encoded using predictive coding image data from multiple subblocks generated by separation within the macroblock is produced.
[0103] The split information encoder 820 encodes the split information input as the video encoder 810 to generate the partition information data. Here, information about the division can be information about the sizes and shapes of blocks for many subblocks created by separating the macroblock for prediction or transformation.
[0104] In typical video compression technology, because the macroblock size is set to 16 x 16, small subblocks such as 8 x 8, 4 x 4 subblocks, etc. can be used. However, according to one embodiment of the present invention, since the macroblock size can be variously set to be equal to or larger than 16x16, the sizes and shapes of the subblocks can also be variously set and thus the macroblock can be divided into sub-blocks of different shapes . Therefore, according to another embodiment of the present invention, the predictive coding in the video decoding device should be made by transmitting to the video decoding device information about the size and shape of the subblocks created by macroblock separation and macroblock separation in the same manner as performed in the video coding device. Referring to Figs. 9-22, it is described that the partition information encoder 820 encodes block information.
B-1-2) Subblock Mode [0105] According to another embodiment of the present invention, the macroblock is split into subblocks of different sizes for each layer and predictive coding and predictive decoding can be performed for each split subblock.
[0106] Fig. 9 is an exemplary diagram illustrating subblocks formed by separating the macroblock for each layer according to another embodiment of the present invention.
[0107] In Fig. 9, the macroblock size is N x N and N is an integer equal to or greater than 16. Fig. 9 shows subblocks that can be separated based on the assumption that the minimum subblock size for subblock sizes is 4 x 4. However, this assumption is only for the purpose of describing embodiments of the present invention. The horizontal dimension and the vertical dimension of the macroblock may not be equal and the minimum size of the subblock may be set to a different size than the size of 4 x 4.
[0108] As shown in Fig. 9, according to another embodiment of the present invention, the macroblock may be divided into sub-blocks of different sizes for each layer. The macroblock can be divided into four types of subblocks for each layer from layer 0 to layer log2 (N / 4). In this case, K + 1 layer subblocks can only be used when the K layer subblock (0 <K <log2 (N / 4)) is divided into 4 subblocks.
[0109] For example, in the case of a 64 x 64 macroblock, the macroblock may be divided into 4 layers from layer 0 to layer 3 and the individual layers may comprise subblocks having 4 different
EP2485490 block sizes. Layer 0 contains a subblock respectively having a block size of 64 x 64, subblocks having a block size of 64 x 32, subblocks having a block size of 32 x 64 and subblocks having a block size of 32 x 32. Layer 1 includes a subblock having a block size of 32 x 32, subblocks having a size of block 32 x 16, subblocks having a block size 16 x 32 and subblocks having a block size 16 x 16. Layer 2 contains a subblock having a block size of 16 x 16, subblocks having a block size of 16 x 8, subblocks having a block size of 8 x 16 and subblocks having a block size of 8 x 8. Layer 3 contains a subblock having a block size of 8 x 8, subblocks having a block size 8 x 4, subblocks having a block size of 4 x 8 and subblocks having a block size of 4 x 4. Here, subblocks contained in layer 1 can only be used if in layer 0 a macroblock having a block size of 64 x 64 is split into subblocks having a block size of 32 x 32, and subblocks contained in layer 2 can only be used if in layer 1 a subblock having the 32 x 32 block size is divided into sub-blocks having a 16 x 16 block size. In addition, subblocks contained in layer 3 can only be used when in layer 2 a subblock having a block size of 16 x 16 is split into subblocks having a block size of 8 x 8.
[0110] Here, when the N x N block in the K layer is split into 4 subblocks having the size N / 2 x N / 2, the split N / 2 x N / 2 subblock may be included in both layers K and K + 1. That is, in a 64 x 64 macroblock, a 32 x 32 subblock may be designated as a subblock type contained in layer 0 or a subblock type contained in layer 1.
[0111] In this case, the method of allocating the layer number to a subblock resulting from separation may vary depending on the availability of each layer. If a K + 1 layer is available, the K + 1 layer number is allocated to the subblock. If the K + 1 layer is not available, the K layer number is allocated to the subblock.
[0112] For example, if the size of the macroblock is 64 x 64 and the number of the maximum partition layer is 4, then when the 64 x 64 macroblock is split into 4 32 x 32 subblocks, the 32 x 32 subblock is contained in layer 1 When one 32 x 32 subblock inside a macroblock is split into 4 16 x 16 subblocks, each 16 x 16 subblock is contained in layer 2. When each 16 x 16 sub-block is divided into 4 8 x 8 sub-blocks, the 8 x 8 sub-block is contained in layer 3. When each 8 x 8 sub-block is divided into 4 4 x 4 sub-blocks, then the 4 x 4 sub-block it is contained in layer 3 because layer 4 is not available.
[0113] In addition, when the N x N block in layer K is split into 4 subblocks of the size N / 2 x N / 2, the N / 2 x N / 2 subblock resulting from the separation may be assigned a layer number K. when the N / 2 x N / 2 sub-block is split into smaller sub-blocks, the separated layer sub-block N / 2 x N / 2 is assigned the layer number K + 1.
[0114] For example, if the macroblock size is 64 x 64 and the maximum partition layer number is 4, then when the 64 x 64 macroblock is split into 4 32 x 32 subblocks, the 32 x 32 subblock is contained in layer 0 When one 32 x 32 subblock inside a macroblock is split into 4 16 x 16 subblocks, each 16 x 16 subblock is contained in layer 1. When each 16 x 16 sub-block is divided into 4 8 x 8 sub-blocks, the 8 x 8 sub-block is included in layer 2. In addition, when each 8 x 8 sub-block is divided into 4 4 x 4 sub-blocks, then sub-block 4 x 4 is included in layer 3.
B-1-3) Type of partition [0115] Furthermore, the macroblock can be separated using the various types of partition shown in Fig. 10 and Fig. 34.
EP2485490 [0116] Fig. 10 and Fig. 34 are exemplary diagrams illustrating types of divisions according to another embodiment of the present invention.
B-1-3-1) Example 1 Division Types [0117] Fig. 10 is an exemplary diagram illustrating partition types according to another embodiment of the present invention.
[0118] Fig. 10 is an example of partition type information (partition type numbers) to identify block sizes for subblocks created by separation for each layer.
NN
K 2 K [0119] As shown in Fig. 10, when the sub-block <sup>2</sup> x <sup>2</sup> macroblock contained in layer K is not
N
2<sup>K</sup> separated, this information indicating the type of split is assigned the value "0". When subblock x
NN <sup>N</sup>
K 2 K 2K + I <sup>2</sup> is split into two size sub-blocks <sup>2</sup> x <sup>2</sup> , this information indicating the type of breakdown is
NN <sub>2</sub><sup>K</sup> 2 <sup>K</sup> 2 <sup>K + 1</sup> assigned value "1". When the sub-block<sup>2</sup> x <sup>2</sup> is split into two size sub-blocks <sup>2</sup> x
NNN k 2 k 2K <sup>2</sup> , then the information indicating the type of split is assigned the value "2". When the sub-block<sup>2</sup> x <sup>2</sup> is
NN 2K + 1 2 k + 1 divided into four sub-blocks of size <sup>2</sup> x <sup>2</sup> , then the information indicating the type of split is assigned the value "3". The split number refers to the number assigned to identify everyone
NN
2K 2K chapter to subblocks based on the type of division. For example, when a sub-block<sup>2</sup> x <sup>2</sup> in layer K no
NN
2K 2K is separated by an unseparated subblock <sup>2</sup> x <sup>2</sup> Division number "0" is assigned. In addition, when the sub-block
N
2<sup>K</sup>
LV k + 1 2K + 1 in layer K is divided into four sub-blocks of size <sup>2</sup> x <sup>2</sup> , this
NN <sub>2</sub> K + 1 <sub>2</sub> K + 1 individual sub-blocks <sup>2</sup> x <sup>2</sup> they can be sequentially assigned partition numbers 0, 1, 2 and 3 starting from the subblock located on the upper left of the macroblock and going in the direction of raster scanning.
B-1-3-2) Example No. 1 for 2 partition types [0120] Fig. 34 is an exemplary diagram illustrating partition types according to another embodiment of the present invention.
[0121] Fig. 34 is an example of information indicating split type (split type number) to identify block sizes for subblocks created by split for each layer.
NN
K 2K [0122] As shown in Fig. 34, when the sub-block <sup>2</sup> x <sup>2</sup> macroblock contained in layer K is not
N
2<sup>K</sup> separated, this information indicating the type of split is assigned the value "0". When subblock x
EP2485490
NNN
K 2K + 1 2K + 1 <sup>2</sup> is divided into four sub-blocks of size <sup>2</sup> x <sup>2</sup> , then the information indicating the type of split is assigned the value "1". The division number refers to the number assigned for identification
NN
K 2 K of each subblock chapter based on the type of division. For example, when a sub-block<sup>2</sup> x <sup>2</sup> in the K layer
NN
K 2 K is not separated, it is an unseparated subblock <sup>2</sup> x <sup>2</sup> Division number "0" is assigned.
NN <sup>N</sup>
K 2 K 2K + 1
In addition, when the sub-block <sup>2</sup> x <sup>2</sup> in layer K it is divided into four sub-blocks of size <sup>2</sup> x
NNN
2K + 1 2 k + 1 2 k + 1 <sup>2</sup> , are individual sub-blocks <sup>2</sup> x <sup>2</sup> they can be sequentially assigned partition numbers 0, 1, 2 and 3 starting from the subblock located on the upper left of the macroblock and going in the direction of raster scanning.
[0123] In addition, different types of splits can be combined and used for each layer. For example, layer 0 and layer 1 may use the split type shown in Fig. 34, and lower layers below layer 1 may use the split type shown in Fig. 10.
B-1-4) Method for coding partition information [0124] Various methods of coding partition information will be described below, which is information indicating the sizes and shapes of subblocks used for prediction or transformation within a macroblock according to one embodiment of the present invention.
B-1-4-1) Method for decoding partition information 1 [0125] First, a first method for encoding partition information will be described.
[0126] According to a first method, partition information indicating the type of macroblock separation into sub-blocks of different sizes can be represented by information indicating the partition type (partition type numbers) for each layer. Many subblocks contained in a macroblock can be properly identified by information indicating the type of partition for each layer. Partition information encoder 810 may encode block partition information using information indicating the type of partition for each layer in various ways, which will be described later.
[0127] For example, the split information encoder 810 may encode the split information for the current block by sequential coding of information indicating the partition type for each macroblock partition layer based on the coding order of the information indicating the partition type.
[0128] In the following, with reference to Figs. 11-13, a method for coding partition information for the current block by sequential coding of information indicating the partition type for each macroblock partition layer based on the order of coding information indicating the partition type will be described.
[0129] Fig. 11 is an exemplary diagram illustrating the separation of macroblocks into sub-blocks having different block sizes according to another embodiment of the present invention.
[0130] Fig. 11 shows the macroblock separation into subblocks having different block sizes based on the subblock types shown in Fig. 10, in which the macroblock has a block size of 64 x 64 and the maximum partition layer number is 4.
[0131] According to another embodiment of the present invention, when the macroblock is split as shown in Fig. 11, the macroblock partition information may be encoded by sequential coding of the information.
EP2485490 indicating the partition type for each partition layer based on the coding order of the information indicating the partition type.
[0132] Fig. 12 shows the sequential separation processes of the macroblock shown in Fig. 11 for each partition layer. Referring to Fig. 12 a subblock having a block size of 64 x64 is split into 4 subblocks having a block size of 32 x 32 in layer 0 (L0), a subblock L1-P0 (having division number 1 in layer 1) and a subblock L1-P3 (having division number 3 in layer 1 ) are divided respectively into 4 sub-blocks having a block size of 16 x 16 (L1), and L1-P1 subblock (having partition number 1 in layer 1) and L1-P2 subblock (having partition number 2 in layer 1) are split into 2 subblocks having a block size of 16 x 32 and 2 subblocks respectively with a block size of 32 x 16 in layer 1. After dividing L1P1 and L1-P2 subblocks into 2 subblocks, respectively, the subblocks are no longer separated so that the subblock division numbers are not illustrated in Fig. 15. The L2-P0 subblock (having partition number 0 in layer 2) is split into 4 subblocks having a block size of 8 x 8 and the L2-P subblock (having partition number 3 in layer 2) is split into 2 subblocks having a block size of 16x2 in layer 2 (L2). The L3-P0 subblock (having partition number 0 in layer 3) and the L3-P1 subblock (having partition number 1 in layer 3) are divided into 4 subblocks having a block size of 4 x 4 in layer 3 (L3), respectively.
[0133] The coding order of the information indicating the partition type is as follows.
[0134] First, information indicating the partition type for the macroblock partition type is encoded. Then, if the macroblock is divided into 4 sub-blocks, information indicating the type of division for individual sub-blocks created by the separation is sequentially coded. For example, when the N x N block is split into 4 sub-blocks, information indicating the partition type for the first N / 2 x N / 2 sub-block is coded. When the first N / 2 x N / 2 subblock is split into 4 subblocks, information indicating the type of split for the N / 4 x N / 4 subblocks resulting from the split is coded. When the size of the N / 4 x N / 4 subblock created by separation corresponds to the minimum size of the subblock or when the N / 4 x N / 4 subblock created by separation is no longer split into 4 smaller subblocks, information indicating the type of division for the next N / subblock 4 x N / 4 is encoded in raster scan order. When the size of the N / 4 x N / 4 subblock does not correspond to the minimum size of the subblock and the N / 4 x N / 4 subblock is divided into 4 subblocks having the block size N / 8 x N / 8, coding of information indicating the division type for the first subblock N / 8 x N / 8. The coding of information indicating the partition type is continued until the information indicating the partition type for all subblocks within the macroblock is encoded.
[0135] Fig. 13 is an exemplary diagram illustrating a process of sequentially encoding information indicating the partition type for each macroblock layer.
[0136] The table shown in Fig. 13 is created when the information indicating the partition type for individual subblocks within the macroblock shown in Fig. 11 is encoded. The numbers recorded in "□" in Fig. 11 refer to the coding order of information indicating the type of partition for each subblock. If the information indicating the partition type for each macroblock layer is sequentially encoded according to the coding order of the information indicating the partition type, then the information indicating the partition type for each layer may be encoded in the order shown in Fig. 11.
[0137] First, because a subblock (L0-P0) having a block size of 64 x 64 is split into 4 subblocks having a block size of 32 x 32, the information indicating the partition type 3 is coded. Because the first subblock (L1-P0) having a block size of 32 x 32 out of 4 subblocks having a block size of 32 x 32
EP2485490 inside a sub-block having a block size of 64 x 64 is split into 4 sub-blocks having a block size of 16 x 16, then information indicating the type of partition 3 is coded. The first subblock (L2-P0) having a block size of 16 x 16 out of 4 subblocks having a block size of 16 x 16 inside the first subblock (L1-P0) having a block size of 32 x 32 is divided into 4 subblocks having a block size of 8 x 8, type of division 3 is coded. Since 4 sub-blocks (L3-P0, L3-P1, L3-P2 and L3-P3) having a block size of 8 x 8 inside a sub-block (L2-P0) having a block size of 16 x 16 have not been further split into smaller sub-blocks, this information indicating the split type {3, 3, 0, 0}, respectively, is coded. Because layer 3 sub-blocks cannot be split into smaller sub-blocks, information indicating the type of partition for sub-blocks contained in layer 3 is not coded.
[0138] Since the information indicating the partition type for subblocks contained in layer 3 has been completely encoded, the information indicating the partition type for a second subblock (L2-P1) having a block size of 16 x 16 and a third subblock (L2-P2) having a block size of 16 x 16 in layer 2 is coded. However, in this case, all these subblocks are no longer split into smaller subblocks, so that information indicating partition type 0 is encoded. Because information indicating the partition type is not 3, although a fourth subblock (L2-P3) having a block size of 16 x 16 is split into subblocks having a block size of 16 x 8, only the information indicating the partition type 1 is encoded. Since the information indicating the partition type for the 4 subblocks contained in the layer 2 has been completely encoded, the information indicating the partition type for the second subblock (L1-P1) having a block size of 32 x 32 in the layer 1 is encoded. In this case, because the second subblock (L1-P1) having a block size of 32 x 32 in layer 1 is split into subblocks having a block size of 16 x 32, and the individual subblocks resulting from the separation have not been further split into smaller subblocks, this information indicating division type 2 is coded. In the same way, information indicating the division type for a second subblock (L1-P2) having a block size of 32 x 32 and for a fourth subblock (L1-P3) having a block size of 32 x 32 in layer 1, and for 4 smaller subblocks (L2-P0 , L2-P1, L2-P2 and L3-P3) having a block size of 16 x 16 is sequentially encoded and thus the string {1, 3, 0, 0, 0, 0} is encoded.
[0139] If information about the macroblock partition types shown in Fig. 11 is encoded according to such a coding method, the information indicating the partition type {3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 2, 1 , 3, 0, 0, 0, 0} is coded as shown in Fig. 13.
[0140] In addition, it is possible to code information indicating the partition type in the following order. [0141] Information indicating the partition type {3} for layer 0 is encoded, information indicating the partition type {3, 2, 1, 3} for 4 subblocks (L1-P0, L1-P1, L1-P2 and L1-P3) in layer 1 is coded, information indicating the partition type {3, 0, 0, 1, 0, 0, 0, 0} for 8 subblocks (4 subblocks contained in L1-P0 and 4 subblocks contained in L1-P3) in layer 2 is coded and information indicating the partition type {3, 3, 0, 0} for 4 sub-blocks (4 sub-blocks contained in L2-P0 inside L1-P0) in layer 3 is coded. In this case, information indicating the type of division {3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0} is coded.
[0142] In this case, information indicating the partition type can be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc.
[0143] For example, when binary arithmetic coding is used, a different binary value may be used for each of the partition type information depending on the layer number associated with the partition type information to be currently coded. Information indicating the type of partition can be coded using Table 1 if the layer number is equal to or less than log2 (N / 16) and information indicating the type of partition can be coded using Table 2 if the number
EP2485490 layer is larger than log2 (N / 16). For example, because with reference to Table 1 information indicating the division type 3 for the subblock (L1-P0) of Fig. 11 can be expressed by the binary number "01", the information indicating the division type 3 can be encoded by performing arithmetic coding on numbers binary "0" and "1". In addition, since information indicating the partition type 0 for the subblock (L3-P2) contained in the subblock (L2-P0) can be expressed by the binary number "1", the information indicating the type of partition 3 can be encoded by performing arithmetic coding on the binary number " 1 ".
<td>Information indicating the type of division</td><td colspan="2">Binary string</td>
<td> 0</td><td> 0</td><td> 0</td>
<td> 1</td><td> 1</td><td> 1</td>
<td> 2</td><td> 1</td><td> 0</td>
<td> 3</td><td> 0</td><td> 1</td>
Table 1
<td>Information indicating the type of division</td><td colspan="3">Binary string</td>
<td> 0</td><td> 1</td><td></td><td></td>
<td> 1</td><td> 0</td><td> 0</td><td></td>
<td> 2</td><td> 0</td><td> 1</td><td> 1</td>
<td> 3</td><td> 0</td><td> 1</td><td> 0</td>
Table 2 [0144] In addition, the actual value of information indicating the type of partition can be encoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0145] Furthermore, when the macroblock is split using the split types shown in Fig. 34 according to another embodiment of the present invention, the information indicating the split type may be a flag having 1 bit length indicating whether the current block is split into 4 subblocks.
B-1-4-2) Method No. 2 for Encoding Partition Information [0146] As another form of encoding block partition information using the split type for each macroblock layer, the split information encoder 810 can encode block partition information using a tree structure . That is, the split information encoder 810 first codes the layer number using a tree structure, and then encodes the block partition information by encoding information indicating the type of partition.
[0147] Hereinafter, a second method for coding block partition information using a tree structure will be described with reference to Figs. 14-18.
[0148] Fig. 14A and Fig. 14B are exemplary diagrams illustrating a method of coding block partition information using a tree structure according to another embodiment of the present invention.
[0149] Fig. 14A shows the layer numbers of the individual macroblock subblocks for each level and Fig. 14B shows the layer numbers of the individual subblocks for each level in the tree structure.
[0150] In Fig. 14A, the macroblock size is N x N and the macroblock is divided into subblocks by
EP2485490 partition types shown in Fig. 10. Fig. 14A illustrates the case in which the macroblock is split into sub-blocks having, for example, a block size of N x (N / 2). A macroblock having a block size of N x N is divided into 2 subblocks having a block size of N x (N / 2) and the information indicating the type of partition is 1. Here, because each N x (N / 2) subblock is contained in layer 0, then the minimum the value of the layer number for 2 subblocks at level 1 of the tree is 0. The layer number for the level 0 of the tree becomes 0, respectively. Meanwhile, the numbers indicated in "", such as "01", "1" and "001" represent the bit strings in Figs. 14-18.
[0151] Fig. 14B illustrates on the tree structure the layer numbers of the individual subblocks for each level shown in Fig. 14A.
[0152] After coding the number "0 (1 bit)" corresponding to the value of the difference between the layer number of the higher node and the layer number of the current node whose encoding is desired, the value "1" is encoded at the end. For example, when the value of the difference between the layer number of the upper node and the layer number of the current node is 3, the binary number "0001" is encoded. When the value of the difference is 0, the binary number "1" is coded. Since there is no higher node for level 0, it is assumed that the layer number of the higher node is 0. The value of the difference between the layer number 0 for level 0 and the assumed number of layer 0 of the higher node is 0, respectively, so that the string of bits for the layer number 0 for level 0 becomes "1".
[0153] Since the layer number for level 1 and the layer number for level 0 are equal, the layer number may no longer be encoded and the information indicating the partition type 1 for level 1 is encoded.
[0154] As described above, information indicating the type of split may be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc.
[0155] In addition, information indicating the type of partition can be encoded by various binary coding methods such as unary code, truncated unary code, Golomb exponential code, etc.
[0156] Also, different binary values can be used depending on the layer numbers.
[0157] Furthermore, when the macroblock is split using split types according to another embodiment of the present invention shown in Fig. 34, the information indicating the split type may be a flag having 1 bit length indicating whether the current block is split into 4 subblocks.
[0158] The information indicating the partition type 1 according to the above embodiment may represent the value of the information indicating the partition type by means of a bit string as described above. For example, because the values indicating the division type "0", "1", "2" and "3" correspond to 4 types, they can be represented by "00", "01", "10", and "11" by allocation of 2 bits. In this case, information indicating the type of partition 1 may be represented by "01".
[0159] When the macroblock partition information shown in Fig. 14A is finally encoded using a tree structure, the data to be encoded becomes the string "101", respectively. [0160] Fig. 15 and Fig. 16 are exemplary diagrams illustrating an example of a method for coding block partition information using a tree structure according to another embodiment of the present invention. [0161] Fig. 15 shows an example of the process of determining the layer number for each sub-block at each level in order to encode block division information using a tree structure when a macroblock having a block size N x N is split into 2 sub-blocks having a block size (N / 2) x (N / 4) , 1 sub-block having block size (N / 2) x (N / 2), 2 sub-blocks having block size (N / 4) x (N / 2), 4 sub-blocks having block size (N / 4) x (N / 4) ).
EP2485490 [0162] First, level 2 is created according to a macroblock having a block size of N x N and simultaneously level 1 is created according to the minimum value of the layer number for 2 subblocks contained in the first subblock having a block size (N / 2) x (N / 2 ) inside the macroblock from level 2, the minimum value of the layer number for 1 subblock contained in the second subblock having the block size (N / 2) x (N / 2) inside the macroblock from level 2, minimum value of layer number for 2 subblocks contained in the third subblock having block size (N / 2) x (N / 2) inside the macroblock from level 2 minimum value of layer number of 4 subblocks contained in the fourth subblock having block size (N / 2) x ( N / 2) inside a macroblock from level 2.
[0163] Fig. 16 illustrates the process of creating a tree structure according to the layer number for each level created in Fig. 15 and encoding the layer number and partition type.
[0164] The layer number for the level 0 to be encoded is 1 and there is no higher node for level 0. Because based on the assumption that the layer number of the higher node is "0", the value of the difference between the layer number of the higher node and the number layers for level 0 is 1, then the string of bits for the layer number for level 0 becomes "01". Because the layer numbers for level 1 to be encoded are 1, 1, 1, 1, respectively, and the layer number for the higher node (level 0) is 1, the value of the difference between the layer numbers is 1 and the same bit strings for individual numbers layers are "1", "1", "1" and "1". Because all the level 2 layer numbers to be encoded are included in level 1, these layer numbers no longer need to be coded. Information indicating the division type 1, 0, 2 and 3 is coded accordingly. Because information indicating the partition type is encoded by binary arithmetic coding or Huffman coding using different tables depending on the layer number as described above, the bit strings for the information indicating the partition type 1, 0, 2 and 3 may become, for example, "00 "," 11 "," 10 "and" 01 ". Therefore, the layer number and information indicating the type of partition to be finally encoded will become "01"> 1 "> 1"> "1"> "1"> "00"> "11"> "10"> "01" . As a result, the string "01111100111001" is encoded and it becomes encoded data with partition information.
[0165] Fig. 17 and Fig. 18 are exemplary diagrams illustrating another example of a method for encoding block partition information using a tree structure according to another embodiment of the present invention. [0166] Fig. 17 shows an example of a case in which a macroblock having a block size N x N is divided into 2 subblocks having a block size (N / 2) x (N / 4), 1 subblock having a block size (N / 2) x (N / 2), sub-blocks having block size (N / 4) x (N / 2), 2 sub-blocks having block size (N / 32) x (N / 16), 4 sub-blocks having block size (N / 32) x (N / 32), 6 sub-blocks having a block size (N / 16) x (N / 16) and 2 sub-blocks having a block size (N / 4) x (N / 4). A fourth macroblock subblock having a block size (N / 2) x (N / 2) is divided into 4 subblocks having a block size (N / 4) x (N / 4) and a first subblock and a second subblock having a block size (N / 4) x (N / 4) among 4 subblocks having a block size (N / 4) x (N / 4) are divided into 4 subblocks having a block size (N / 16) x (N / 16) respectively. Here, because the first sub-block and the second sub-block having the block size (N / 16) x (N / 16) among the sub-blocks having the block size (N / 16) x (N / 16) resulting from the separation of the first sub-block having the block size (N / 4) ) x (N / 4) are separated into smaller blocks, layer numbers 2 and 3 are allocated as shown in Fig. 17.
[0167] Fig. 18 can be formed if the macroblock shown in Fig. 17 is formed according to the layer number for each level in the tree structure in the same manner as described in Fig. 15.
[0168] Fig. 18 illustrates the process of creating a tree structure according to the layer number for each
EP2485490 of the level created in Fig. 17 and encoding of layer numbers and partition types.
[0169] If the layer numbers and information indicating the partition type are coded in the same way as described in Fig. 16, then the data to be ultimately encoded will become "01111010111100111010011111011111".
B-1-4-3) Method No. 3 for coding partition information [0170] In the following, with reference to Fig. 19 and Fig. 20, a third method for coding block partition information will be described.
[0171] According to a third method, the partition information encoder 810 may encode block partition information using a partition layer value and a partition flag. That is, the split information encoder 810 separates the macroblock using only subblocks having a square shape such as N x N, (N / 2) x (N / 2) and (N / 4) x (N / 4) when the block type, which encodes split information is an intro block and can encode block split information by encoding the value of the split layers of individual subblocks and split flags. Below with reference to Fig. 19 and Fig. twenty a method of coding block partition information using the partition layer value and partition flag is described.
[0172] Fig. 19 is an exemplary diagram illustrating subblock separation based on partition layer values according to another embodiment of the present invention.
[0173] When a macroblock having an N x N block size (N is an integer equal to or greater than 16) is separated according to partition layer values 0, 1 and 2, the sizes and shapes of the subblocks can be determined as shown in Fig. 19. When a macroblock having a block size of N x N is split according to the value of the partition layer 0, the macroblock is split into only one subblock having a block size of N x N. When the macroblock is split according to the value of the partition layer 1, the macroblock is split into 4 subblocks having a block size (N / 2) x (N / 2). When the macroblock is split according to the value of partition layer 2, the macroblock is split into 8 subblocks having a block size (N / 4) x (N / 4).
[0174] When it is assumed that the value of the partition layer of any block is x, then the block size for
NN
2X 2Χ subblock corresponding to the block can become <sup>2</sup> x <sup>2</sup> . For example, when the value of a split layer is 3, a macroblock having a block size of 64 x 64 is split into subblocks having a block size of 8 x 8. Also, when the value of a split layer of a subblock having a block size of 8 x 8 is 1, then a subblock having a block size 8 x 8 is divided into sub-blocks having a block size of 4 x 4.
NN
X 2Χ [0175] The split flag is a flag indicating that when the N x N block is split into sub-blocks <sup>2</sup> x <sup>2</sup>
NN
X 2 X is one or more sub-blocks <sup>2</sup> x <sup>2</sup> are divided into smaller sub-blocks.
NN
NN <sub>2</sub><sup>X</sup> 2<sup>X</sup> 2<sup>X</sup><sub>2</sub><sup>X</sup> [0176] For example, when the N x N block is split into sub-blocks <sup>2</sup> x <sup>2</sup> and all sub-blocks <sup>2</sup> x <sup>2 </sup>inside a N x N block they are not split into smaller sub-blocks, they are a value division flag (e.g. 0)
NN
X 2Χ indicating that no subblocks <sup>2</sup> x <sup>2</sup> in block N x N they are not split into smaller subblocks.
NN
NN <sub>2</sub><sup>X</sup> 2<sup>X</sup> 2<sup>X</sup><sub>2</sub><sup>X</sup> [0177] When the N x N block is split into sub-blocks <sup>2</sup> x <sup>2</sup> and one or more sub-blocks <sup>2</sup> x <sup>2</sup>
EP2485490 inside a block N x N is split into smaller sub-blocks, the split flag has a value (e.g. 1)
NN
X 2 X indicating that all subblocks <sup>2</sup> x <sup>2</sup> inside the block N x N are divided into smaller subblocks.
[0178] When the split flag has a value indicating that the subblock is split into smaller subblocks, then
NN
2X 2 X split layer values and split flags for all subblocks <sup>2</sup> x <sup>2</sup> inside the block N x N are
NN
X 2Χ coded and types of subblocks of individual subblocks <sup>2</sup> x <sup>2</sup> are transmitted to the video decoding device.
[0179] However, when the size of the split subblock according to the split layer value corresponds to the minimum block size (i.e. the subblock cannot be split into smaller subblocks), the split flag is not coded.
[0180] Said split layer value and split flag are included in the bit stream and are encoded and transmitted to the video decoding device. In the method of coding the split layer value, the macroblock size to be transmitted can be encoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0181] Alternatively, the macroblock size may be encoded using binary arithmetic coding, Huffman coding, etc.
[0182] Alternatively, the table index value previously established between the video coding apparatus and the video decoding apparatus may be encoded using the various binary coding methods mentioned.
[0183] The split flag may be included in the bit stream using 1 bit indicating whether the block is split or not.
[0184] Fig. 20 is an exemplary diagram illustrating a process for coding block partition information using a split layer value and a split flag according to another embodiment of the present invention.
[0185] Fig. 20 shows an example of coding block partition information using a split layer value and split flag when the macroblock block size is 64 x 64 and the maximum split layer value is 4.
[0186] When the macroblock is split as shown in Fig. 20, partition layer values and partition flags of individual subblocks are generated for each partition number for each layer to identify individual subblocks as shown in the table in Fig. 20 and partition layer values and division flags are sequentially coded from sub-block L0-P0 to sub-block L1-P3. Because the L0-P0 subblock having a block size of 64 x 64 is split into 4 subblocks having a block size of 32 x 32, the value of the split layer is 1. The value of the split flag of each 32 x 32 subblock is set to indicate that the subblock is split into smaller ones subblocks and split layer value and split flag are coded.
[0187] Since the L1-P0 subblock having a block size of 32 x 32 is not split into smaller subblocks, the value of the partition layer is 0 and the partition flag does not need to be coded. Because the L1-P1 subblock having a block size of 32 x 32 is split into subblocks having a block size of 8 x 8, the value of the split layer is 2. Because the subblocks having a block size of 8 x8 are no longer separated, the split flag is
EP2485490 coded as 0 indicating that the subblock is not split. In this case, the sizes and shapes of the sub-blocks L2-P0 to L2-P15, which are smaller sub-blocks of the L1-P1 sub-block can be identified in the video decoding device by encoding only the values of the split layers and the split flags for the sub-blocks L2-P0 to L2- P15 without separate coding of split types for sub-blocks L2-P0 to L2P15. Because the L1-P2 subblock having a block size of 32 x 32 is split into 4 subblocks having a block size of 16 x 16, the value of the split layer is 1 and the split flag is encoded as 1 indicating that the subblock is split into smaller subblocks. Since it has been pointed out that the L1-P2 subblock is split into smaller subblocks by indicating the L1-P2 subblock division flag as 1, the types of division of the individual subblocks from L2-P0 to L2-P3 are coded. The split layer values for L2-P0, L2-P1 and L2-P2 subblocks are 0, respectively, and therefore split flags do not need to be coded because of split layer values equal to 0. Because L2-P3 subblock is split into 4 x block sizes 4 and subblocks created by separation are not split into smaller subblocks, the partition layer 2 and division flag 0 indicating that the subblock is not separated should be encoded. However, the value of the maximum partition layer and the sum of all layer values for L1-P1 and L2-P3 subblocks are equal, with the maximum partition layer value being 4 and each value of the partition layer of L1-P1 and L2-P3 subblocks is equal to 2. You can infer that the subblock can no longer be further appropriately split, which means that the split flag does not need to be coded. Finally, because the L1-P3 subblock having a block size of 32 x 32 is split into 64 subblocks having a 4 x 4 block size, the value of the partition layer is 3 and its value of the partition layer is equal to the value of the maximum partition layer as for the L2-P3 subblock . It can be concluded that the subblock cannot be properly separated anymore, which means that the split flag does not need to be coded.
[0188] In the above-described method, block partition information may be encoded by coding the partition layer value and partition flag for the partition number for each layer to identify individual macroblock subblocks.
[0189] Meanwhile, Figures 11-13 describe a method of coding block partition information by sequential coding of information indicating the partition type for each macroblock layer in order of subblock order and producing coded data with partition information, but it is not necessary to split the macroblock into subblocks as shown in Fig. 11-13 and block partition information may be encoded by sequential coding of information indicating the partition type for each macroblock layer in the order of the subblocks even when the macroblock is split as shown in Fig. 21.
B-1-4-4) Method No. 4 for coding partition information [0190] In the following, a fourth method for coding block partition information is described with reference to Fig. 21 and Fig. 22.
[0191] Fig. 21 is an exemplary diagram illustrating another example of a macroblock split into sub-blocks having different block sizes according to another embodiment of the present invention.
[0192] Meanwhile, it has been described that sub-blocks in layer K + 1 are available only when a sub-block in layer
K (0 <K <log2 (N / 4)) is split into 4 subblocks in layer K in Fig. 9, but subblocks in layer K + 1 are available when a subblock in layer K is split into one or more subblocks in layer K in Fig. 21 (i.e. when the information indicating the partition type is 1, 2 or 3).
[0193] Fig. 21 shows an example in which a macroblock having a block size of 64 x 64 is split into 2 subblocks having a block size of 64 x 16 and 2 subblocks having a block size of 32 x 32. The numbers written in "□" represent the coding order of the indicating information type of division for individual subblocks. if
EP2485490 information indicating the type of partition for individual layers of the macroblock is sequentially coded in the order of the subblocks, then information indicating the type of partition for individual layers can be encoded in the order shown in Fig. 11.
[0194] Fig. 22 is another exemplary diagram illustrating a process of sequentially encoding information indicating the partition type for individual macroblock layers in order of subblock order.
[0195] The table shown in Fig. 22 is created if the type information of the individual subblock splits is coded for the macroblock shown in Fig. 21. If the information indicating the type of splitting of the individual macroblock layers is sequentially coded in the order of the subblocks, the information indicating the splitting type for individual layers can be encoded in the order shown in Fig. 11.
[0196] In this case, information indicating the type of split may be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc.
[0197] Alternatively, the actual value of the information indicating the partition type may be encoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0198] Furthermore, when the macroblock is split using the split types according to another embodiment of the present invention shown in Fig. 34, the information indicating the split type may be a flag having one bit length indicating that the current block is split into 4 subblocks or not.
B-1-5) Description of the block coding scheme [0199] Fig. 23 is a block diagram illustrating the video coding method according to another aspect of the present invention.
[0200] According to the video coding method according to another embodiment of the present invention, the video coding apparatus 800 in step S2310 generates encoded image data by performing predictive coding on a current block divided into a plurality of sub-blocks, at step S2320 it generates encoded partition information data by encoding the partition information for the current block and in step S 2330 it produces a bit stream containing the encoded image data and the encoded partition information data. [0201] Here, the current block may be a macroblock having a size larger than the 16 x 16 block size, and the partition information may include block sizes and arrangements of multiple subblocks within the current block. [0202] Multiple subblocks can be identified by information indicating the type of partition for each partition layer. In this case, the video encoding apparatus 800 may encode the split information for the current block by sequentially encoding information indicating the split type for each split layer in accordance with the coding order of the information indicating the split type or encode the split information for the current block by encoding the layer numbers and indicating information type of partition using a tree structure in step S2320.
[0203] Furthermore, the video encoding apparatus 800 may encode partition information for the current block using partition layer values and partition flags. In particular, the video encoding apparatus 800 may encode partition information for the current block using partition layer values and partition flags only if the block type of the current block is an intro block. Since the method of encoding split information for the current block by the video encoding apparatus 800 is described in Figs. 8-22, its detailed description will be omitted here.
B-2) Example of implementation No. 2 of the video decoding device
EP2485490
B-2-1) Block diagram and description of the decoding device [0204] Fig. 24 block diagram illustrating the video decoding device according to another embodiment of the present invention.
[0205] The video decoding apparatus 2400 according to another aspect of the present invention may include a partition information decoder 2410 and a video decoder 2420.
[0206] The split information decoder 2410 extracts and decodes the encoded data with the split information from the bit stream and reproduces the partition information for the current block. Here, the partition information for the current block may be information indicating the type of partition for each partition layer, layer numbers, and information indicating the type of partition using a tree structure or values of partition layers and partition flags. When the split information for the current block is information indicating the split type according to the coding order of the information indicating the split type, the split information decoder 2410 can obtain information indicating the split type for each layer shown in Fig. 13 by decoding the encoded data with the split information and can get the current block divided into many subblocks shown in Fig. 11 by splitting the current block into multiple subblocks according to information indicating the type of partition for each layer based on information indicating the type of partition and the coding order shown in the table in Fig. 3.
[0207] When the partition information for the current block corresponds to the layer numbers and information indicating the type of partition using the tree structure, the partition information decoder 2410 can obtain the layer numbers and information indicating the type of partition expressed in the form of a tree structure as shown in Fig. 16 by decoding encoded data with partition information and can get the current block split into many subblocks shown in Fig. 15 by inversely carrying out the method described in Fig. 15 and Fig. 16 using layer numbers and information indicating the type of partition expressed in the form of a tree structure as shown in Fig. 16.
[0208] When the split information for the current block corresponds to the partition layer values and partition flags, the partition information decoder 2410 can obtain the partition layer values and partition flag shown in Fig. 20 by decoding the encoded partition information data and can obtain the current block divided into many subblocks shown in Fig. 20 by inversely carrying out the method described in Fig. 20.
[0209] The video decoder 2420 may be the same or similarly constructed as a video decoding device according to one embodiment of the present invention described with reference to Fig. 7. However, the video decoder 2420 according to another aspect of the present invention extracts and decodes encoded image data in subblocks generated by splitting according to the split information for the current block reproduced by the split information decoder 2410, and then reproduces the individual subblocks by predictive coding. In this case, the image data extracted from the bit stream by the video decoder 2420 may be the predicted data and / or data required to decode the residual signal such as transformation type, CBP and transformation coefficient. Here, the predicted data corresponds to data indicating whether each subblock is an intra block or an inter block and corresponds to the intra-image prediction mode for the intra block and motion information for the inter block.
B-2-2) Method of decoding partition information [0210] Various methods of decoding partition information will be described below, which is information indicating the sizes and shapes of sub-blocks within the macroblock used for prediction or transformation according to one embodiment of the present invention.
EP2485490
B-2-2-1) Method No. 1 for decoding partition information [0211] First, a decoding method according to the first method for encoding partition information will be described.
[0212] Information indicating the type of partition is decoded using the type of subblock available for each layer predetermined between the video coding apparatus and the video decoding apparatus in the order previously determined between the video coding apparatus and the video decoding apparatus. For example, the available block types for individual layers may be the subblock types shown in Fig. 10 and Fig. 34 and information indicating the partition type can be sequentially decoded in the order shown in Fig. 11 and Fig. 13.
[0213] The following describes a method for decoding under the same conditions as the examples used to describe the first method for encoding partition information. The partition information is decoded based on the subblock types shown in Fig. 10 in the order shown in Fig. 11.
[0214] The split information decoder 2410 extracts and decodes first the information indicating the split type from the bit stream and reproduces the information indicating the split type for the macroblock layer 0. When the reproduced value of the partition type information is 0, it means that the macroblock is not split into sub-blocks, so that the decoding of information indicating the type of split of the current sub-block is completed. Then the prediction or transformation is performed in the N x N macroblock unit.
[0215] When the reproduced value of the partition type information for layer 0 is 1, the macroblock is split into 2 N x N / 2 sub-blocks and the decoding of information indicating the type of the current sub-block is completed. Then the prediction or transformation is performed in the N x N / 2 macroblock unit.
[0216] When the reproduced value of the partition type information for layer 0 is 2, the macroblock is split into 2 N / 2 x N subblocks and the decoding of information indicating the type of the current subblock is completed. Then the prediction or inverse transformation is performed in the N / 2 x N macroblock unit.
[0217] When the reproduced value of the information indicating the partition type for layer 0 is 3, the macroblock is split into 4 subblocks of the size N / 2 x N / 2 and the information indicating the partition type of the first subblock (having partition number 0 in layer 1) is decoded . Here, the layer number of the N / 2 x N / 2 subblocks is 1, which is an increased value relative to the higher layer number.
[0218] When the information indicating the split type of the subblock having the partition number 0 in layer 1 extracted and decoded from the bit stream is not NN 3, the information indicating the split type of the second subblock of size N / 2 x N / 2 (having division 1 in layer 1 ) is coded.
[0219] When the information indicating the partition type of the subblock having the partition number 0 in layer 1 extracted and decoded from the bit stream is 3, the current subblock is divided into 4 subblocks and the layer number is 2. Then the information indicating the type of partition for the subblock corresponding to partition number 0 in layer 1 it is extracted and decoded from the bit stream.
[0220] In the case where the layer K number of the current subblock having the partition number Y corresponds to the maximum value that can be allocated to the layer numbers, if the decoded information indicating the partition type for the current block (having partition number Y for the layer number K) is 3 , then the current sub-block is split into 4 sub-blocks, and then information indicating the partition type for the next block (having the partition number Y + 1 for the layer number K) is decoded in the order of raster scanning.
[0221] When the partition number of the current subblock corresponds to the maximum value of the partition number contained in the current layer, information indicating the partition type for the higher layer subblocks that has not yet been decoded is decoded.
[0222] The decoding method according to one of the embodiments of Fig. 11 is described below based on the case in which the macroblock size is 64 x 64 and the maximum partition layer number is 4. In the embodiment of Fig. 11 a value coded according to information indicating the type of partition the video encoding device is {3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 0}.
[0223] First, information indicating the partition type for layer 0 is decoded.
[0224] Because the decoded information indicating the partition type is 3, the 64 x 64 macroblock is split into 4 32 x 32 subblocks (L1-P0, L1-P1, L1-P2 and L1-P3).
[0225] Since each 32x32 subblock can be split into smaller subblocks, information indicating the partition type for the first 32x32 subblock (L1-P0) within the 64x64 macroblock is decoded.
[0226] Since the second decoded information indicating the partition type is 3, the L1-P0 subblock is split into 4 16 x 16 subblocks (L2-P0, L2-P1, L2-P2 and L2-P3) and information indicating the partition type for L2-P0 subblock it is extracted and decoded from the bit stream.
[0227] Since the third decoded information indicating the partition type is 3, the L2-P0 subblock with size 16 x 16 is split into 4 8 x 8 subblocks (L3-P0, L3-P1, L3-P2 and L3-P3) and information indicating the partition type for L3-P0 subblock is extracted and decoded from the bit stream.
[0228] Since the fourth decoded information indicating the partition type is 3, the L3-P0 subblock of size 8 x 8 is divided into 4 subblocks of size 4 x 4. Here, because the number of the maximum partition layer is 4, the subblock cannot be separated into smaller subblocks, thus information indicating the type of split for the L3-P1 subblock is extracted and decoded from the bit stream.
[0229] Because the fifth decoded information indicating the partition type is 3, the L3-P1 subblock of 8 x 8 size is split into 4 4 x 4 subblocks and the information indicating the partition type for the L3-P2 subblock is extracted and decoded from the stream bits.
[0230] Since the sixth decoded information indicating the partition type is 0, the L3-P2 subblock of size 8 x 8 is no longer separated and the information indicating the partition type for the L3-P2 subblock, which is another subblock, is extracted and decoded from the bit stream.
[0231] Since the seventh decoded information indicating the partition type is 0, the 8x8 size L3-P3 subblock is also not separated. Here, because the split number of the current subblock corresponds to the maximum split number value contained in the current layer, information indicating the split type for L2-P1 subblock from the higher layer is extracted and decoded from the bit stream.
[0232] Because the eighth decoded information indicating the partition type is 0, the block size for L2-P1 subblock is 16 x 16.
[0233] In the same way, information indicating the partition type for L2-P2 and L2-P3 subblocks is extracted and decoded from the bit stream and the individual types of the subblocks are determined.
[0234] Since the ninth decoded information indicating the partition type is 0, the block size for the L2-P2 subblock is 16 x 16. Because the tenth decoded information indicating the partition type is 1, the L2-P3 subblock is split into 2 16 x block size 8.
[0235] Since all information indicating the partition type for subblocks contained in layer 2 has been
EP2485490 decoded, this information indicating the partition type for the second L1-P1 subblock, size 32 x 32, from layer 1, which is the upper layer, is decoded.
[0236] Since the eleventh decoded information indicating the partition type is 2, the 32 x 32 block corresponding to the L1-P1 subblock is split into 2 16 x 32 subblocks and the information indicating the partition type for the L1-P2 subblock is decoded.
[0237] Since the twelfth decoded information indicating the partition type is 1, the 32 x 32 block corresponding to the L1-P2 subblock is split into 2 32 x 16 subblocks and the information indicating the partition type for the L1-P3 subblock is decoded.
[0238] Since the thirteenth decoded information indicating the partition type is 3, the 32 x 32 block corresponding to the L1-P3 subblock is split into 4 16 x 16 subblocks (L2-P0, L2-P1, L2-P3 and L2-P3) and information indicating the type of partition for individual sub-blocks is decoded in the same way.
[0239] Because the fourteenth decoded information indicating the split type is 0, the L2P0 subblock type is 16 x 16 and the information indicating the split type for the L2-P1 subblock, which is another subblock, is decoded because the L2-P0 subblock is no longer separated .
[0240] Since the fifteenth decoded information indicating the split type is 0, the L2P1 subblock type is 16 x 16 and the information indicating the split type for the L2-P2 subblock, which is another subblock, is decoded because the L2-P1 subblock is no longer separated .
[0241] Since the sixteenth decoded information indicating the split type is 0, the L2P2 subblock type is 16 x 16 and the information indicating the split type for the L2-P3 subblock, which is another subblock, is encoded because the L2-P2 subblock is no longer separated .
[0242] Since the seventeenth decoded information indicating the partition type is 0, the L2-P3 subblock type is 16 x 16 and the decoding of information indicating the partition type for the current macroblock is terminated because the subblock types for all subblocks within the macroblock have been determined.
[0243] In the following, a method for decoding information indicating a partition type will be described when all information indicating a partition type for upper layers is encoded, and then information indicating a partition type for lower layers is encoded in accordance with the coding order of the information indicating the partition type.
[0244] In the embodiment of Fig. 11, the value encoded according to the information indicating the partition type in the video encoding device is {3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0}.
[0245] First, information indicating the partition type for layer 0 is decoded.
[0246] Since the decoded information indicating the partition type is 3, the 64 x 64 macroblock is split into 4 32 x 32 subblocks (L1-P0, L1-P1, L1-P2 and L1-P3).
[0247] Since the number of subblocks contained in layer 1 is 4, 4 parts of information indicating the type of partition are decoded. Because the information indicating the type of division for subblocks (L1-P0, L1-P1, L1P2 and L1-P3) restored from the bit stream is {3, 2, 1, 3}, then subblocks L1-P0 and L1-P3 are divided into 4 subblocks 16 x 16 size, the L1-P1 sub-block is split into 2 16 x 32 sub-blocks and the L1-P2 sub-block is split into 2 32 x 16 sub-blocks.
[0248] Information indicating the partition type for 8 8 x 8 subblocks from layer 2 contained in L1-P0 and L1-P3 subblocks is extracted and decoded from the bit stream.
[0249] Because the information indicating the partition type for 4 subblocks (L2-P0, L2-P1, L2-P2 and L2-P3)
EP2485490 contained in the reconstructed L1-P0 is {3, 0, 0, 1} and the information indicating the division type for 4 subblocks (L2P0, L2-P1, L2-P2 and L2-P3) contained in the reconstituted L1-P3 is {0, 0, 0, 0}, then the sub-block L2-P0 contained in the sub-block L1-P0 is divided into 4 sub-blocks of 4 x 4 size and the sub-block L2-P3 is divided into 2 sub-blocks of size 8 x 4.
[0250] Since the information indicating the partition type for all L2-P1 and L2-P2 subblocks contained in the L1-P0 subblock and 4 subblocks contained in the L1-P3 subblock is 0, these subblocks are not separated.
[0251] Because the L2-P0 subblock contained in the L1-P0 subblock is split into 4 subblocks and they can no longer be split into smaller subblocks, the decoding of information indicating the split type for the current macroblock is terminated.
[0252] In this case, the information indicating the partition type is entropy decoded using a method previously established between the video coding apparatus and the video decoding apparatus among the lossless compression / decompression methods such as binary arithmetic coding, Huffman coding, etc.
[0253] Furthermore, the actual value of the information indicating the partition type can be decoded by various binary coding methods such as unary code, truncated unary code, Golomb exponential code, etc.
[0254] Also, the video decoding device performs entropy decoding using Tables 1 and 2 according to the layer numbers of the information indicating the partition type when the video coding device uses binary arithmetic coding, uses Table 1 if the layer number is equal to or less than log2 ( N / 16) and uses Table 2 if the layer number is greater than log2 (N / 16) according to the information coding method indicating the partition type.
[0255] For example, when information indicating the partition type contained in layer 1 is entropy coded for 64 x 64 macroblock, 2 bits are entropy decoded, and then the information indicating the partition type is obtained using Table 1.
[0256] When information indicating the partition type contained in layer 3 is entropy coded for 64 x 64 macroblock, Table 2 is used. First, 1 bit is entropy decoded. Then, when the decoded bit string is 1, the information indicating the split type is set to 0 and entropy decoding of information indicating the split type for the current block is terminated. When the decoded bit string is not 1, the next 1 bit is entropy decoded in the bit stream. When the second decoded bit is 0, information indicating the partition type for the current block is set to 1 and entropy decoding for information indicating the partition type for the current block is terminated. When the second decoded bit is 1, the next 1 bit is entropy decoded in the bit stream and using Table 2, it is determined whether the information indicating the type of split of the current block is 2 or 3.
[0257] Furthermore, when it is predetermined between the video encoding device and the video decoding device that the partition types according to another embodiment of the present invention shown in Fig. 34 are used, it can be determined whether the current subblock is split into 4 subblocks by entorphic decoding 1 bit to decode information indicating the type of partition.
B-2-2-2) Method No. 2 for decoding partition information [0258] The decoding method according to the second method for encoding partition information is described below.
[0259] According to a second method, block partition information may be decoded by first
EP2485490 decoding layer numbers using a tree structure and then decoding information indicating the type of partition.
[0260] In a method of decoding layer numbers, the value of the difference between the layer number for the current level and the layer number for the higher level is reproduced by decoding the bit strings 0 and 1. In this case, 1 bit is read and decoded from the bit stream to reproduce the difference value . When the decoded bit is 0, the next 1 bit is read and decoded from the bit stream. In the same way bit 0 is continuously played until bit 1 is played. When the restored bit is 1, no further bits are read or decoded and the number of 0 restored becomes the value of the difference.
[0261] The decoding of the layer number for level 0 and the value of the difference between the layer number for level 0 and the number 0 is started from the bit stream using said method for reproducing the layer number. When the restored layer number for level 0 is greater than the number 0, a tree is created by creating child nodes for the current node. The number of newly created child nodes varies depending on how the subblocks were previously resolved between the video encoding device and the video decoding device. According to the method of separating subblocks shown in Fig. 9, because subblocks contained in the lower layer can be used only when the current subblock is divided into 4 subblocks, then 4 child nodes are created. Newly created nodes have level values increased by 1 relative to the level value for the higher layer.
[0262] That is, if the reconstructed layer number for level 0 is greater than the level 0 value, then the tree structure is created by creating 4 child nodes at level 1. [0263] Then, 4 difference values for the newly created layer numbers nodes are extracted and restored from the bit stream and layer numbers for individual nodes are restored by adding difference values to the layer numbers of the higher nodes.
[0264] In the same way, when the reconstructed layer number for each node and the node level value are equal, a lower-level child node is not created for the corresponding node. When the reconstructed layer number for each node is greater than the node level value, 4 child nodes are created for the corresponding node and the decoding of layer numbers for newly created nodes is performed.
[0265] However, when the reconstructed layer number is the maximum value that can be allocated to layer numbers (that is, when the layer number starts with 0, then the maximum value that can be allocated to the layer number corresponds to the "maximum value of the partition layer -1 "), then 4 child nodes are created for the current node, but decoding of layer numbers for individual nodes is not performed.
[0266] A tree is created until the layer number for the lower nodes is not equal to the level number for each node or the layer number does not have a maximum value that can be assigned to the layer number, and the reproduction of layer numbers for each node is constantly performed.
[0267] Next, decoding information indicating the partition type for the lowest nodes is performed. Information indicating the type of partition for individual nodes is entropy decoded using a method previously established between the video coding apparatus and the video decoding apparatus among the methods of lossless compression / decompression such as binary arithmetic coding, Huffman coding, etc.
EP2485490 [0268] Furthermore, the actual value of information indicating the partition type can be decoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0269] Also, the video decoding device performs entropy decoding using Tables 1 and 2 according to the layer numbers from the information indicating the partition type, when the video coding device uses binary arithmetic coding, uses Table 1 when the layer number is equal to or less than log2 (N / 16) and uses Table 2 if the layer number is greater than log2 (N / 16) as well as the method of coding information indicating the type of partition. For example, when information indicating the type of partition contained in layer 1 is entropy coded, then 2 bits are entropy decoded, and then information indicating the type of partition is obtained by means of Table 1. When information indicating the type of partition contained in layer 3 is entropy coded, Table 2 is used. For example, first 1 bit is entropy decoded. Then, when the decoded bit is 1, the information indicating the partition type is set to 0 and entropy decoding of information indicating the partition type for the current block is terminated. When the decoded bit string is not 1, the next 1 bit is entropy decoded in the bit stream. When the second decoded bit is 0, information indicating the partition type for the current block is set to 1 and entropy decoding for information indicating the partition type for the current block is terminated. When the second decoded bit is 1, the next 1 bit is entropy decoded in the bit stream and using Table 2, it is determined whether the information indicating the type of split of the current block is 2 or 3.
[0270] Furthermore, when it is predetermined between the video coding device and the video decoding device that the split types according to another embodiment of the present invention shown in Fig. 34 are used, it can be determined whether the current subblock is split into 4 subblocks by entropy decoding 1 bit to decode information indicating the type of partition.
[0271] Hereinafter, the decoding method according to one of the embodiments of Fig. 14A and Fig. 14B will be described. The bit string value encoded according to the partition information in the video coding apparatus is "101" for the embodiments of Fig. 14A and Fig. 14B.
[0272] First, 1 bit is extracted and restored from the bit stream to recover the layer number for level 0. Because the bit extracted from the bit stream is 1, the value of the difference for the reproduced layer number for level 0 is 0. For level 0, because there is no higher node, the layer value is reproduced by adding a value of 0 previously determined between the video encoding device and the video decoding device to the reproduced difference value. In this case, the difference value is 0 and thus the reproduced layer value becomes 0.
[0273] Since both the reproduced layer value and the level value are 0, the number decoding process is completed and the information indicating the partition type is decoded.
[0274] Because of the method directly expressing the value of the partition type information by means of a bit string when the information indicating the split type is encoded in the form of Fig. 14A and Fig. 14B, the video decoding device also extracts 2 bits from the bit stream and reproduces the value in the same way. Because the string of bits "01" is expressed by the integer "1", the reproduced information indicating the type of division becomes 1.
[0275] When the shapes of the macroblock subblocks are determined using the reconstructed layer value and partition type information, all subblocks within the macroblock are contained in layer 0, so that the subblock has one of the types of 64 x 64, 64 x 32, 32 x 64 subblocks and 32 x 32. In addition, you can
EP2485490 deduce that the macroblock is split into 2 64 x 32 subblocks because the information indicating the partition type is 0.
[0276] The decoding method according to one of the embodiments of Fig. 15 and Fig. 16 is described below. In the embodiment of Fig. 16, the bit string value encoded according to the partition information in the video encoding device is "01111100111001".
[0277] First, 1 bit is extracted and restored from the bit stream to recover the layer number for level 0. Because the bit extracted from the bit stream is 0, another 1 bit is extracted and restored from the bit stream. Because the second bit reproduced is 1, the difference value for the layer number for item is reproduced level 0 is terminated. Because the bitstream extracted for reproducing the difference value is "01", the difference value becomes 1, which corresponds to the number 0, and the value 1 created by adding the restored difference value 0 to 0 is allocated as the layer number.
[0278] Since the reconstructed layer number for level 0 is greater than the value of level 0, then 4 child nodes located at level 1 are created for the current node.
[0279] 1 bit is extracted from the bit stream to recover the layer number for the first node from level 1. Because the third extracted bit is 1, the value of the difference becomes 0. The layer 1 number for the first node is reproduced by adding the reconstructed difference value to the layer number for level 0, which is the higher node for the first node from level 1. Because the restored layer 1 number for level 1 and the level 1 value are equal, decoding of the difference value for the second node from level 1 is started.
[0280] 1 bit is extracted from the bit stream to recover the layer number for the second node from level 1. Because the fourth bit extracted is 1, the value of the difference becomes 0. The layer number 1 for the second node is reproduced by adding the restored value of the difference to the layer number for level 0, which is the higher node for the second node from level 1. Because the restored layer 1 number for level 1 and the level 1 value are equal, decoding of the difference value for the third node from level 1 begins.
[0281] 1 bit is extracted from the bit stream to recover the layer number for the third node from level 1. Because the fifth bit extracted is 1, the difference value becomes 0. The layer 1 number for the third node is reproduced by adding the restored value difference to the layer number for level 0, which is the higher node for the third node from level 1. Because the restored layer 1 number for level 1 and the level 1 value are equal, decoding of the difference value for the fourth node from level 1 is started.
[0282] 1 bit is extracted from the bit stream to recover the layer number for the fourth node from level 1. Because the sixth bit extracted is 1, the difference value becomes 0. The layer 1 number for the fourth node is restored by adding the reconstructed difference value to the layer number for level 0, which is the higher node for the fourth node from level 1.
[0283] Since the layer numbers for all nodes at level 1 have been restored and there is no node at level 2, decoding of layer numbers is completed and decoding of information indicating the type of partition for individual nodes is performed.
[0284] For the embodiments of Fig. 15 and Fig. 16, because the information indicating the partition type is encoded by the allocation of the bit strings "11", "00", "10" and "01" for the information indicating the partition type, then the decoding device video also reproduces in the same way information indicating the type of division by
EP2485490 extracting 2 bits for individual nodes from the bit stream.
[0285] Since there are 4 nodes at level 1 being the nodes at the lowest level in the form of Fig. 15 and Fig. 16, the information indicating the partition type is reproduced by extracting 2 bits from the bit stream for individual nodes.
[0286] Since the seventh and eighth bit extracted from the bit stream correspond to the string "00", the information indicating the partition type for the first node is 1. Because the ninth and tenth bit extracted from the bit stream correspond to the string "11", the information indicating the partition type for the second node is 0. Because the eleventh and twelfth bits extracted from the bit stream correspond to the string "10", the information indicating the type of split for the third node is 2. Since the thirteenth and fourteenth bit extracted from the bit stream correspond to the string "01", the information indicating the type of partition for the fourth node is 3.
[0287] When the macroblock subblock shapes are determined using the reconstructed layer value and partition type information, all subblocks within the macroblock are contained in layer 1, so that the 64 x 64 macroblock is split into 4 32 x 32 subblocks and individual subblocks 32 x 32 have one of the 32 x 32, 32 x 16, 16 x 32 and 16 x 16 subblock types that are included in layer 1.
[0288] Because the reproduced information indicating the partition type for the first subblock is 1, the first 32 x 32 subblock is split into 2 32 x 16 subblocks. Because the reproduced information indicating the partition type for the second subblock is 0, the second 32 x 32 subblock is divided into 1 sub-block of size 32 x 32. In the same way, because the reproduced information indicating the type of division for the third subblock is 2, the third 32x32 subblock is divided into 2 subblocks of 16x32 size. Because the reproduced information indicating the type of division for the fourth subblock is 3, the fourth subblock 32 x 32 is split into four 16 x 16 subblocks. The subblocks resulting from the separation are illustrated in Fig. 15.
[0289] The decoding method according to one of the embodiments of Fig. 17 and Fig. 18 is described below. For the embodiment of Fig. 18, the bit string value encoded according to the split information in the video coding apparatus is "01111010111100111010011111011111".
[0290] First, 1 bit is extracted and restored from the bit stream to recover the layer number for level 0. Because the bit extracted from the bit stream is 0, another 1 bit is extracted and restored from the bit stream. Since the second bit reproduced is 1, the reproduction of the difference value for the layer number for level 0 is terminated. Because the bitstream extracted for reproducing the difference value is "01", the difference value becomes 1, which corresponds to the number 0, and the value 1 created by adding the restored difference value 0 to 0 is allocated as the layer number. [0291] Since the restored layer 0 number for level 0 is greater than the value for level 0, then 4 child nodes at level 1 are created for the current node.
[0292] 1 bit is extracted from the bit stream to reconstruct the layer number for the first node from level 1. Because the third extracted bit is 1, the value of the difference becomes 0. The layer number 1 for the first node is reproduced by adding the reconstructed difference value to the layer number for level 0, which is the higher node for the first node from level 1. Because the restored layer 1 number for level 1 and the level 1 value are equal, decoding of the difference value for the second node from level 1 is started.
[0293] 1 bit is extracted from the bit stream to recover the layer number for the second node from level 1. Because the fourth bit extracted is 1, the value of the difference becomes 0. Layer number 1
EP2485490 for the second node is restored by adding the restored difference value to the layer number for level 0, which is the higher node for the second node from level 1. Because the restored layer 1 number for level 1 and the level 1 value are equal, then decoding of the value begins difference for the third node from level 1.
[0294] 1 bit is extracted from the bit stream to restore the layer number for the third node from level 1. Because the fifth extracted bit is 1, the value of the difference becomes 0. The layer number 1 for the third node is reproduced by adding the reconstructed difference value to layer number for level 0, which is the higher node for the third node from level 1. Because the restored layer 1 number for level 1 and the level 1 value are equal, decoding of the difference value for the fourth node from level 1 is started.
[0295] 1 bit is extracted from the bit stream to reconstruct the layer number for the fourth node from level 1. Because the sixth bit extracted is 0, a further 1 bit is extracted and restored from the bit stream. Since the seventh bit extracted is 1, the reproduction of the difference value for the fourth node from level 1 is terminated. Because the bitstream extracted to reproduce the difference value is "01", the difference value becomes 1, which is the number 0, and the layer 2 number is restored by adding the reconstructed difference value to the layer 1 number for the higher node. Because the reconstructed layer 2 number has a value greater than the level 1 value at which the current node is located, 4 child nodes are created for the fourth node from level 1. The created child nodes are at level 2.
[0296] Because the layer numbers for all level 1 nodes are reproduced, the layer numbers for level 2 nodes are decoded in the same way.
[0297] The nodes at level 2 are the child nodes of the fourth level 1 node and the bits extracted to restore the first level 2 node are "01", which are the eighth bit and the ninth bit. Since the value of the difference between the first level 2 node and the layer 2 number for the higher node is 1, the layer number of the current node is 3. In this case, because the reconstructed layer 3 number is greater than the level 2 value, 4 child nodes are created. However, because, as described above, the reproduced layer 3 value has a maximum value that can be allocated to partition layer numbers, layer numbers are not decoded for 4 newly created level 3 nodes.
[0298] The bits extracted for retrieving the second to fourth nodes of level 2 are "111", which correspond to the tenths to the twelfth bits. Because the value of differences for all 3 nodes is 0, the layer number of the second, third and fourth node from level 2 is 2.
[0299] Since the layer numbers of all nodes at level 2 have been reproduced and the layer numbers of the nodes at level 3 are not reproduced, the decoding of the layer numbers is completed and decoding of information indicating the type of division for individual nodes from the lowest level is performed.
[0300] For the embodiments of Fig. 17 and Fig. 18, because the information indicating the partition type is encoded by the allocation of the bit strings "11", "00", "10" and "01" for the information indicating the partition type, then the decoding device video also reproduces in the same way information indicating the type of division by extracting 2 bits for individual nodes from the bit stream.
[0301] Since Level 1 has 3 nodes, Level 3 has 4 nodes and Level 2 has 3 nodes being the lowest level nodes for the form of Figs. 17 and 18,
EP2485490 is information indicating the partition type is reproduced by extracting from the bit stream 2 bits for individual nodes.
[0302] When the information indicating the partition type is decoded in the same manner as described in Fig. 16, the bits extracted to decode the partition types for the 3 nodes at level 1 are "00", "11" and "10" in sequence , so that the information indicating the type of partition for the first node from level 1 is 1, the information indicating the type of partition for the second node from level 1 is 0, and the information indicating the type of partition for the third node from level 1 is 2.
[0303] Since the bits extracted to decode the split types for the 4 nodes at level 3 are "10", "01", "11" and "11" in sequence, the information indicating the type of partition for the first level 3 node is 2 , the information indicating the type of division for the second node from level 3 is 3, and the information indicating the type of division for the third and fourth nodes from level 3 is 0, respectively.
[0304] Because the bits extracted to decode the split types for the second to fourth nodes are "01", "11" and "11", respectively, the information indicating the partition type for the second level 2 node is 3 and the information indicating the partition type, respectively for the third and fourth node from level 2 is 0. [0305] When the shapes of the macroblock subblocks are determined using the reconstructed layer value and information indicating the type of partition, the layer numbers of the subblocks within the macroblock have values equal to or greater than 1, so that the 64x64 macroblock is split into 4 subblocks of size 32 x 32. Because the numbers of the node layers from the first to the third from level 1 is 1, then the 32 x 32 subblocks from the first to third inside the macroblock have respectively one of the types of the 32 x 32, 32 x 16, 16 x 32 and 16 x 16 subblocks, which are located at level 1. Because the reconstructed information indicating the type of division for the first 32 x 32 subblock is 1, the first 32 x 32 subblock is divided into 2 32 x 16 subblocks. Because the reconstructed information indicating the type of division for the second 32 x 32 subblock is 0, then the second 32 x 32 subblock is divided into 1 subblock of 32 x 32 size. In the same way, because the reproduced information indicating the type of division for the third 32 x subblock 32 is 2, the third 32 x 32 sub-block is split into 2 16 x 32 sub-blocks.
[0306] Because the reconstructed layer number for the fourth node from level 1 corresponding to the fourth 32x32 subblock is 2, the fourth 32x32 subblock is split into 4 16x16 size subblocks and 16x16 subblocks from 16x16 subblocks created by Separation of the corresponding 4 nodes from level 2 having a layer number greater than 2 are separated once more to have a higher layer. Here, because the restored layer number for the first level 2 node is 3, the first 16x16 subblock is again split into 4 8x8 size subblocks.
[0307] Next, the subblock types for the individual subblocks are determined according to the information indicating the partition type for the individual subblocks, as illustrated in Fig. 17.
B-2-2-3) Method No. 3 for decoding partition information [0308] The decoding method according to the third method for encoding partition information is described below.
[0309] According to a third method, block partition information may be decoded by decoding the values of partition layers and partition flags.
[0310] Partition layer values are first extracted and recovered from the bit stream, and then the macroblock is separated according to the partition layer value. For example, when the macroblock size n_<sub>2</sub>x is N x N and the reproduced partition layer value is x, the macroblock is split into subblocks <sup>2</sup>
EP2485490 n_
2<sup>x</sup> [0311] Then, when the restored split flag is recovered by extracting and playing the split flag from the stream
NN xx bits has a value (e.g., 0) that indicates all subblocks <sup>2</sup> x <sup>2</sup> inside the macroblock are not split into smaller subblocks, then the decoding of the macroblock split information is completed.
NN <sub>2</sub><sup>x</sup><sub>2</sub><sup>x</sup> [0312] When the split flag has a value (e.g., 1) indicating that one or more subblocks <sup>2</sup> x <sup>2 </sup>inside the macroblock is split into smaller subblocks, the value of the split layer and split flags for individual subblocks are extracted and restored from the bit stream in the same way in the order of raster scanning.
[0313] The decoding method for the embodiment of Fig. 20 is described below. For the embodiment of Fig. 20, the split layer value and the split flag encoded according to the split information in the video encoding device are {1, 1, 0, 2, 0, 1 , 1, 0, 0, 0, 2, 3}.
[0314] The split layer value is first extracted from the bit stream and the split layer value and split flag 1 are decoded. Because the partition layer value is 1, the 64 x 64 macroblock is split into 4 32 x 32 subblocks.
[0315] Because the decoded split flag is 1, the split layer value and split flag are constantly decoded for each 32x32 subblock.
[0316] Since the value of the partition layer for the first 32x32 subblock is 0, it can be concluded that the first 32x32 subblock is not split into smaller subblocks. In this case, the split flag is not decoded from the bit stream.
[0317] The split layer value for the second 32 x 32 subblock is extracted and decoded from the bit stream. Because the reproduced partition layer value is 2, the 32 x 32 subblock is split into 16 8 x 8 subblocks and the split flag is then extracted and decoded in the bit stream. Since the reproduced partition flag is 0, it can be concluded that 16 subblocks within the second 32x32 subblock are not split into smaller subblocks and the value of the partition layer for the third 32x32 subblock is extracted and decoded from the bit stream.
[0318] Since the reproduced partition layer value is 1, the 32 x 32 subblock is split into 4 16 x 16 subblocks and the partition flag is decoded from the bit stream. Since the decoded split flag is 1, it can be concluded that one or more 16 x 16 subblocks are split into smaller subblocks and the value of the split layer and the split flag are decoded for each 16 x 16 subblock.
[0319] In the same way, the split layer value is extracted and restored from the bit stream for each 16 x 16 subblock. Then, when the split layer value is not 0, the split flag is extracted and restored from the bit stream.
[0320] It can be concluded from the above-described form that the value of the partition layers for 16 x 16 subblocks from first to third is 0 and the value of the partition layer for the fourth 16 x 16 subblock is 2. [0321] Because the value of the partition layer for the fourth 16 x subblock 16 is 2, the 16 x 16 sub-block is split into 16 4 x 4 sub-blocks. However, in this case the split flag is not decoded because none of the 4 x 4 sub-blocks can be split into smaller sub-blocks, although they have been recreated
EP2485490 layer value is not 0.
[0322] Then, the split layer value for the fourth 32 x 32 subblock is extracted and decoded from the bit stream. In this case, since the reproduced partition layer value is 3, the 32 x 32 subblock is split into 64 4 x 4 subblocks and the decoding of partition information is terminated because the size of the subblocks created by the separation is the minimum block size. [0323] Said split layer value and split flag are extracted and decoded from the bit stream and the split layer value is decoded using a method previously established between the video coding apparatus and the video decoding apparatus among various binary coding methods such as unary code, truncated code Golomb's unary exponential code, etc.
[0324] Alternatively, the partition layer value may be decoded using methods such as binary arithmetic coding, Huffman coding, etc.
[0325] Alternatively, the table index value previously established between the video coding apparatus and the video decoding apparatus may be decoded using said various binary coding / decoding methods.
[0326] The split flag is used to determine if the current subblock is split into smaller subblocks by extracting and decoding 1 bit from the bit stream.
B-2-2-4) Method No. 4 for decoding partition information [0327] The decoding method according to the fourth method for encoding partition information is described below.
[0328] The fourth method of decoding partition information is similar to the first method of decoding partition information. However, information indicating the type of partition is constantly extracted and decoded from the bit stream until the information indicating the type of partition for all sub-blocks has a value (e.g. 0) indicating that the subblock is not split into smaller subblocks or that the size of the subblock resulting from the split from the current block according to the information indicating the type of partition is the minimum size of the subblock.
[0329] The decoding method according to one of the embodiments of Fig. 21 and Fig. 22 is described below. According to one of the embodiments of Fig. 22, information indicating the partition type encoded according to the partition information in the video encoding device is {1,1, 0, 0, 2, 0, 0}.
[0330] Since the first reproduced information indicating the partition type is 1, the 64 x 64 macroblock is split into 2 64 x 32 subblocks (L1-P0 and L1-P1) and information indicating the partition type for the first 64 x 32 subblock is extracted and played from the bit stream.
[0331] Since the second reproduced information indicating the partition type is 1, the 64 x 32 subblock is split into 2 64 x 16 subblocks (L2-P0 and L2-P1) and information indicating the partition type for the first 64 x 16 subblock is extracted and played from the bit stream.
[0332] Since the third reproduced information indicating the partition type is 0, the 64 x 16 subblock corresponding to the L2-P0 subblock is not split into smaller subblocks, and the information indicating the partition type for the L2-P1 subblock, which is another subblock of the L2-P0 subblock, is extracted and restored from the bit stream.
[0333] Since the fourth reconstructed information indicating the partition type is 0, the 64 x 16 subblock is not split into smaller subblocks. Because the split information for the subblocks in L2 has been reproduced, the information indicating the split type for the L1-P1 subblock is extracted and restored from the bit stream.
EP2485490 [0334] Because the fifth reproduced information indicating the partition type is 2, the 64 x 32 subblock corresponding to the L1-P1 subblock is split into two 32 x 32 subblocks (L2-P0 and L2-P1) and information indicating the type of partition for the first a 32 x 32 subblock (L2-P0) is extracted and restored from the bit stream.
[0335] Since the sixth reproduced information indicating the partition type is 0, the 32 x 32 subblock corresponding to the L2-P0 subblock is not split into smaller subblocks and the information indicating the partition type for the L2-P1 subblock, which is another subblock of the L2-P0 subblock, is extracted and restored from the bit stream.
[0336] Since the seventh reproduced information indicating the partition type is 0, the 32x32 subblock corresponding to the L2-P1 subblock is not split into smaller subblocks. Since the block types for all subblocks within the macroblock have been determined, the decoding of the split information is completed.
[0337] In this case, the information indicating the partition type is entropy decoded by a method previously established between the video coding apparatus and the video decoding apparatus among lossless compression / decompression methods such as binary arithmetic coding, Huffman coding, etc.
[0338] In addition, the actual value of the information indicating the partition type can be decoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0339] Also, the video decoding device performs entropy decoding using Tables 1 and 2 according to layer numbers from information indicating the partition type when the video coding device uses binary arithmetic coding, uses Table 1 when the layer number is equal to or less than log2 (N / 16) and uses Table 2 if the layer number is greater than log2 (N / 16), as well as the method of encoding information indicating the type of partition.
[0340] For example, when information indicating the partition type contained in layer 1 is entropy decoded for 64 x 64 macroblock, 2 bits are entropy decoded, and then the information indicating the partition type is obtained using Table 1.
[0341] When the information indicating the partition type contained in layer 3 is entropy decoded for 64 x 64 macroblock, Table 2 is used. First, 1 bit is entropy decoded. Then, when the decoded bit string is 1, the information indicating the partition type is set to 0 and entropy decoding of information indicating the partition type for the current subblock is terminated. When the decoded bit string is not 1, the next 1 bit is entropy decoded from the bit stream. When the second decoded bit is 0, information indicating the split type for the current subblock is set to 1 and entropy decoding of information indicating the split type for the current subblock is terminated. When the second decoded bit is 1, the next 1 bit is entropy decoded from the bit stream and using Table 2, it is determined whether the information indicating the partition type for the current subblock is 2 or 3.
[0342] Furthermore, when it is predetermined between the video coding device and the video decoding device that the partition types according to another embodiment of the present invention shown in Fig. 34 are used, it can be determined whether the current subblock is split into 4 subblocks by entropy decoding 1 bit to decode information indicating the type of partition.
B-2-3) Block diagram for decoding
EP2485490 [0343] Fig. 25 is a block diagram illustrating a video decoding method according to another embodiment of the present invention.
[0344] According to a video decoding method according to another aspect of the present invention, the 2400 video decoding device in step S2510 restores partition information for the current block by decoding the data with partition information from the bit stream using decoding methods according to said forms and in step S2520 restores the current block split into multiple subblocks by performing predictive coding on the encoded image data extracted from the bit stream according to the split information for the restored current block.
[0345] As described above, according to another embodiment of the present invention, even when a macroblock having a block size equal to or greater than 16 x 16 is split into sub-blocks of different sizes, the compression efficiency can be improved by encoding the macroblock partition information with a small number of bits using the split type for each layer or split layer value.
C) Coding and decoding maximum partition layer information [0346] The device and method for determining the maximum partition layer indicating the number of layers into which a macroblock having an arbitrary size can be maximally separated to effectively divide information, macroblock separation is described below as another embodiment of the present invention. into many subblocks for prediction or transformation using the determined maximum split layer, and then effectively encode and decode partition information using the maximum partition layer. Here, the minimum subblock size inside a macroblock can be determined by the maximum partition layer and the image is encoded using only subblocks having a size equal to or larger than the corresponding size at the time of the macroblock encoding.
[0347] The maximum partition layer may be information indicating the minimum subblock size that can be used for prediction or transformation and encoded in the sequence header, in the header of each frame, in the slice header or in the macroblock header. In addition, the maximum partition layer information for the prediction and the maximum partition layer information for the transformation can be coded, respectively.
[0348] In addition, partition information may be information indicating the sizes and shapes of subblocks created by separation for prediction or transformation. Division information and encoded image data are contained in the bit stream and encoded, and then transmitted to the video decoding device. In addition, split information for the prediction and split information for the transformation can be coded, respectively.
[0349] During decoding, subblock sizes and shapes are restored by extracting and decoding data with the maximum partition layer from the bit stream, and then extracting and decoding subblock partition information for prediction or transformation using the restored maximum partition layer. Then the image is restored as a result of prediction or inverse transformation by extracting and restoring from the bit stream encoded data for individual subblocks.
C-1) Device for video coding
C-1-1) Encoding device [0350] Fig. 26 is a block diagram illustrating the video encoding device according to yet
EP2485490 of another embodiment of the present invention.
[0351] The video encoding apparatus 2600 according to yet another aspect of the present invention may include a video encoder 2610, a maximum partition layer determining unit 2620 and a maximum partition layer encoder 2630.
[0352] The video encoder 2610 may be implemented as a video encoder 800 according to one embodiment of the present invention described in Fig. 8. That is, the video encoder 2610 generates encoded partition information and image data by performing predictive coding using subblocks in accordance with top established macroblock splitting types. In this case, the video encoder 2610 may determine the partition types using the minimum subblock size according to the maximum partition layer value determined by the maximum partition layer determining unit 2620 at the time of determining the macroblock partition types. Furthermore, the video encoder 2610 encodes partition information using the maximum partition layer when encoding partition information.
[0353] The maximum partition layer determining unit 2620 determines the partition type for the current block using the minimum subblock size according to the candidate maximum partition layer values and determines the maximum partition layer value of the current block using the coding cost generated at the time of coding. In this case, the partition type for the current block is determined using the minimum subblock size according to the candidate values of the maximum partition layers and the coding cost generated during the coding can be calculated by the unit itself determining the maximum partition layer 2620. However, if the maximum partition layer determining unit 2620 determines the candidate maximum partition layer values, then the video encoder 2610 determines the partition type for the current block using the minimum subblock size according to the corresponding candidate partition layer value, calculates the coding costs generated during coding to convey the costs encoding the unit determining the maximum partition layer 2620. Then, the maximum partition layer determining unit 2620 can determine the maximum partition layer value for the current block using the transferred coding costs. After determining the maximum split layer value for the current block, the video encoder 2610 places in the bit stream an image previously encoded with the corresponding maximum split layer value. The method by which the maximum partition layer determining unit 2620 determines the maximum partition layer value and accordingly determines the minimum subblock size will be discussed in detail below.
[0354] The maximum partition layer encoder 2630 generates encoded data with the maximum partition layer by encoding the maximum partition layer value and places the generated data in a bit stream.
C-1-2) Relationship between the partition layer and the minimum subblock size [0355] Macroblock size, minimum subblock size and maximum partition layer (MaxLayer) corresponding to the layer value that can be used maximum can be set based on each other's values.
[0356] That is, the macroblock size can be obtained using the maximum partition layer (MaxLayer) and the minimum block size, and the minimum subblock size can be obtained using the macroblock size and the maximum partition layer.
[0357] When the minimum subblock size is N x N, the maximum block size is (Nx2MaxLayer) x (Nx2MaxLayer). For the N x N pixel macroblock, the minimum block size is
EP2485490 (N / (2MaxLayer)) x (N / (2MaxLayer)).
[0358] Fig. 27 is an exemplary diagram illustrating the relationship between a partition layer and the minimum size of a subblock according to yet another embodiment of the present invention.
[0359] Referring to Fig. 27, when the macroblock size is M x N and the partition layer value is x, then
NN xx is the minimum subblock size available <sup>2</sup> x <sup>2</sup> . For example, if the value of a macroblock partition layer having a block size of 64 x 64, then the minimum subblock size available is 4 x 4. Here, the value of the partition layer is used differently for width and height, i.e., M and N for a macroblock having block size M x N.
[0360] Accordingly, the maximum partition layer determining unit 2620 may determine the minimum subblock size by determining the maximum partition layer value for the macroblock. To this end, the unit designating the maximum partition layer 2620 calculates the coding costs for candidate partition layer values and can determine the maximum layer value using the coding costs for candidate partition layers values. The following describes how to determine the maximum split layer value for a macroblock based on the assumption that the macroblock size is M x N (M is an integer equal to or greater than 16)
C-1-3) Method for determining the maximum partition layer [0361] Fig. 28 is a block diagram illustrating an example of the method for determining the maximum partition layer value according to yet another aspect of the present invention.
[0362] The unit determining the maximum partition layer 2620 in step S2810 sets the initial value x, which is the candidate value of the maximum partition layer, to log2 (M / 16), in step 2820 ~ X ~ X determines the partition type for the macroblock using the minimum subblock size (M /<sup>2</sup> ) x (M /<sup>2</sup> ) when the maximum partition layer value is x and calculates the coding costs (hereinafter "cost x"), when one frame (any frame) of the image is encoded according to the designated partition type, in step S2830 it determines the partition type for the macroblock using the minimum subblock size <sub>9</sub>X + 1 <sub>9</sub>X + 1 (M / <sup>2</sup> ) x (M / <sup>2</sup> ) when the candidate value of the maximum partition layer is x + 1 and calculates the coding costs (hereinafter referred to as "cost x + 1"), when any frame is coded and in step S2840 compares cost x with cost x + 1 to determine if cost x is less than cost x + 1.
[0363] When as a result of the determination of step S2840 it turns out that the cost x is less than the cost x + 1, the unit determining the maximum partition layer 2620 in step 2850 sets x as the value of the maximum partition layer. When, as a result of the determination from step S2840, it turns out that the cost x is equal to or greater than the cost x + 1, the unit determining the maximum partition layer 2620 in step S2860 determines whether x + 1 is equal to log2 (M / 4). When x + 1 is not equal to log2 (M / 4), the unit determining the maximum partition layer 2620 in step 2870 sets x equal to x + 1 and goes to step S2820. When x + 1 is equal to log2 (M / 4), the unit determining the maximum partition layer 2620 in step 2880 sets x + 1 as the value of the maximum partition layer.
[0364] Fig. 29 is a block diagram illustrating another example of a method for determining the maximum split layer value according to another embodiment of the present invention.
[0365] The maximum split layer determining unit 2620 in step S2910 sets the initial value of x, which is the candidate maximum split layer value, to log2 (M / 16), in step 2920 determines the type of partition for the macroblock using the minimum subblock size (M /<sup>2</sup> ) x (M /<sup>2</sup> ), when
EP2485490 the candidate maximum partition layer value is x and calculates the coding costs (hereinafter referred to as "cost x") when one frame (any frame) of the image is encoded according to the designated partition type, in step S2930 it determines the partition type for the macroblock using the minimum subblock size (M / <sup>2</sup> ) x (M / <sup>2</sup> ) when the candidate value of the maximum partition layer is x + 1 and calculates the coding costs (hereinafter referred to as "cost x + 1"), when any frame is coded and in step S2940 compares cost x with cost x + 1 to determine if cost x is less from cost x + 1.
[0366] When as a result of the determination from step S2940 it turns out that the cost x is equal to or greater than the cost x1, the unit determining the maximum partition layer 2620 in step S2950 sets x equal x-1 and goes to step S2920. When the cost x is less than the cost x-1, the unit determining the maximum partition layer 2620 in step 2960 sets x as the value of the maximum partition layer. [0367] The maximum partition layer determining unit 2620 can determine the maximum partition layer value not only using the methods described in Figs. 28 and 29, but also using other methods. That is, as yet another example of determining the maximum partition layer value, the maximum partition layer determining unit 2620 calculates the coding cost for each candidate maximum partition layer value available to the macroblock and can determine the candidate maximum partition layer value having the lowest coding cost as the maximum partition layer value by comparing the coding costs calculated with each other.
C-1-4) Method of coding partition information [0368] The method for coding partition information using the maximum partition layer value according to yet another aspect of the present invention is described below.
[0369] As described above, after determining the value of the maximum partition layer, which indicates the total number of layers, the available partition layers in the macroblock are determined. However, there may be layers in the designated partition layers that are not used. In this case, you may not need to encode information indicating the type of split for layers that are not used. [0370] Therefore, according to yet another aspect of the present invention, information about the partition layers selected for use among the available partition layers determined by the value of the maximum partition layer can be included in the bit stream and the partition information for the current block can be encoded using only selected layers split, when information about whether individual layers are available is transmitted in the bit stream. In the method of encoding block information, said various methods of encoding partition information may be used.
[0371] When the macroblock size is 64 x 64 and the value of the maximum partition layer is 2, then layers 0 and 1 are available layers and layers 2 and 3 are not available layers. Accordingly, the macroblock can be divided into 64 x 64, 64 x 32, 32 x 64 and 32 x 32 sub-blocks, which correspond to the types of sub-blocks contained in layer 0 and sub-blocks of 32 x 32, 32 x 16, 16 x 32 and 16 x 16, which correspond to the types of subblocks contained in layer 1. However, the macroblock cannot be separated into sub-blocks 16 x 8, 8 x 16, 8 x 8, 8 x 4, 4 x 8 and 4 x 4, which correspond to the types of sub-blocks in layers 2 and 3. That is, individual sub-blocks 16 x 16 cannot be split into smaller sub-blocks. [0372] In this case, the number of bits required to encode the partition information may be reduced by transmitting the maximum partition layer value in the data stream and using the maximum partition layer value. The video decoding device extracts and restores the value of the maximum partition layer from the data stream, sets as available layers all layers higher than the reproduced maximum partition layer and sets as unavailable layers lower than
EP2485490 recreated maximum split layer. The video decoding device then decodes the split information using the determined information.
[0373] Alternatively, when subblock types contained in a particular layer are not used, a macroblock with a size of e.g. 64 x 64 is split into 4 subblocks with a size of 32 x 32. When all individual 32 x 32 subblocks are split into subblocks of equal size or smaller than 16 x 16, it can be concluded that the types of sub-blocks contained in layer 1 are not used and layer 1 may be marked as an inaccessible layer.
[0374] In this case, it is possible to reduce the number of bits required to encode partition information by encoding information as to whether individual layers are available in the bit stream. The video decoding device extracts and reproduces information about whether individual layers are available in the bit stream, and then decodes partition information using the reproduced information about whether individual layers are available.
[0375] As described above, according to yet another aspect of the present invention, the partition information may be encoded by encoding the maximum split layer value in the bit stream and using only the available split layers determined by the maximum split layer value.
[0376] Alternatively, the partition information may be encoded by placing and encoding in the bit stream information about whether individual layers are available from among the available partition layers determined by the value of the maximum partition layer and using only the available partition layers.
[0377] The value of the maximum partition layer and / or flag information regarding whether individual partition layers are available can be placed and encoded in the sequence header, in the header of each frame, or in the slice header.
[0378] In this case, the value of the maximum partition layer can be encoded using lossless compression such as binary arithmetic coding, Huffman coding, etc. and various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0379] In a method of coding information indicating whether individual layers are available, a flag having 1 bit length indicating whether each layer is available can be encoded using methods such as binary arithmetic coding, Huffman coding, etc.
[0380] Alternatively, a table index may be encoded with information indicating whether individual layers are available. In this case, the table index can be encoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0381] Alternatively, the layer flag for the used layer is set to 1, the layer flag for the unused layer is set to 0 and the integer value enabling the least significant bit (LSB) to indicate whether the highest layer is available. The created integer value can then be encoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0382] In addition, an integer value can be created by setting the layer flag for the used layer to 0, the layer flag for the unused layer to 1, and allowing the least significant bit (LSB) to indicate whether the highest layer is available.
[0383] Fig. 30 is an exemplary diagram illustrating the process of encoding partition information for
EP2485490 of the current block using only selected partition layers according to yet another aspect of the present invention. FIG. thirty illustrates an example of coding block partition information by encoding the maximum partition layer and / or information indicating whether individual layers are available, encoding the value of the maximum partition layer and data (layer flags) indicating whether individual layers are accessible using information using various methods of encoding information about broken down followed by coding information indicating the type of split using the information.
[0384] In Fig. 30, when the macroblock size is assumed to be 64 x 64, the maximum partition layer is 4, layers 0 and 3 are available and layers 1 and 2 are not available, then the macroblock can be split into sub-blocks of size 64 x 64, 64 x 32, 32 x 64 and 32 x 32, which correspond to the types of subblocks contained in layer 1. When the macroblock is separated into 32 x 32 subblocks, each 32 x 32 subblock can be separated into 8 x 8, 8 x 4, 4 x 8 and 4 x 4 subblocks that correspond to the types of subblocks contained in layer 3. That is, when the 32 x 32 subblock is divided according to information indicating the type of partition shown in Fig. 10, the 32 x 32 subblock is divided into 16 8 x 8 size subblocks. [0385] After first coding the value of the maximum partition layer 4 using said method of encoding the maximum partition layer value, the layer flag for the used layer is set to 1, and the layer flag for the unused layer is set to 0 and a one-bit flag indicating whether each layer is available. According to one embodiment of Fig. 30, the flags of available layers are encoded from the highest layer to the lowest layer as "1001".
[0386] Next, the macroblock partition information is encoded using said various methods of encoding partition information. The embodiment of Fig. 30 shows a method using a method of coding information indicating a partition type, which is the first method among methods of encoding partition information, based on the types of subblocks shown in Fig. 10.
[0387] Here, when the N x N block with the layer number K is split into 4 subblocks, the method of assigning the layer number to the separated subblocks differs depending on whether individual layers are available. If a K + 1 layer is available, the K + 1 layer number is allocated to subblocks. If the K + 1 layer is not available, the K layer number is allocated to subblocks.
[0388] For example, when the macroblock size is 64 x 64, then the 32 x 32 subblock may be designated as a subblock type contained in layer 0 or designated as a subblock type contained in layer 1. In this case, when layer 1 is the available layer, the 32 x 32 subblock is assigned a layer 1 number. When layer 1 is not available, the 32 x 32 subblock is assigned a layer 0 number.
[0389] Since the macroblock is split into 4 subblocks, information indicating the partition type 3 is first coded and information indicating the partition type for 4 32 x 32 subblocks is encoded.
[0390] Since the first 32 x 32 subblock (L0-P0) is not split, it is coded information indicating the partition type 0 and the information indicating the partition type for the second 32 x 32 subblock (L0-P1) is coded.
[0391] Because the second 32 x 32 subblock (L0-P1) is split into 16 8 x 8 subblocks (from L2P0 to L2-P14), information indicating the partition type 3 is coded. Here, the 8 x 8 subblock may be an 8 x 8 block contained in layer 2 or it may be a subblock contained in layer 3 and the layer 3 number is allocated because layer 2 is not available.
[0392] Next, information indicating the partition type for all 16 sub-blocks of 8 x 8 size within the L0-P0 sub-block is encoded and information indicating the partition type for the third 32 x sub-block
EP2485490 (L0-P0) is coded.
[0393] Since the third 32 x 32 (L0-P0) subblock is divided into 16 8 x 8 subblocks (from L2P0 to L2-P15), information indicating the type of division 3 is coded, information indicating the type of division for all 16 subblocks 8 x 8 inside L0-P2 sub-block is coded and information indicating the partition type 0 for the fourth 32 x 32 sub-block (L0-P0) is coded.
[0394] Accordingly, the video encoding device 2600 according to yet another aspect of the present invention may encode partition information of the corresponding macroblock by encoding layer flags and information indicating the partition type for partition numbers of individual layers.
C-1-5) Block diagram for coding [0395] Fig. 31 is a block diagram illustrating a video coding method according to yet another embodiment of the present invention.
[0396] According to the video coding method according to yet another aspect of the present invention, the video coding device 2600 produces the maximum partition layer and / or data indicating whether individual partition layers are available by determining and encoding in step S3110 the maximum partition layer value and / or information indicating whether individual partition layers are available, performing predictive coding on the current block at step S3120 using the minimum subblock size determined according to the value of the maximum partition layer and subblocks determined according to whether individual layers are available, and creating at step S3130 the encoded maximum partition layer and / or bit stream containing data indicating whether individual layers are available and encoded image data. The bit stream, generated as described above, is transmitted to the video decoding device and decoded.
[0397] The video coding apparatus 2600 may at a step S3110 determine a maximum partition layer value using the coding costs for the candidate maximum partition layer values. The video encoding apparatus 2600 may determine the maximum split layer value by increasing or decreasing the value of the candidate maximum split layer values. Furthermore, the video encoding device 2600 may determine a candidate maximum partition layer value having the lowest coding cost as a maximum partition layer value by comparing the coding costs for individual candidate maximum partition layer values.
C-2) Decoder
C-2-1) Block diagram and description of the video decoding device [0398] Fig. 32 is a block diagram illustrating the video decoding device according to yet another embodiment of the present invention.
[0399] The video decoding apparatus 3200 according to yet another aspect of the present invention may include a maximum split layer decoder 3210 and a video decoder 3220.
[0400] The maximum partition layer decoder 3210 decodes encoded data with the maximum partition layer extracted from the bit stream to reproduce the maximum partition layer value.
[0401] The video decoder 2420 may be the same or similarly constructed as the video decoding device according to one embodiment of the present invention described in connection with Fig. 7. However, the video decoder 3220 according to yet another embodiment of the present invention performs predictive decoding on the encoded image data extracted from the bit stream using the minimum subblock size based on the maximum split layer value reproduced by the maximum layer decoder
EP2485490 split 3210 to play the current block.
C-2-2) Method for decoding partition information [0402] The method for decoding partition information using the maximum partition layer value according to yet another aspect of the present invention is described below.
[0403] The video decoding device extracts a maximum partition layer representing the total number of layers and / or data indicating whether each layer is accessible from a location predetermined between the video decoding device and the video encoding device from the sequence header, the header of each frame or the slice header in bit stream and then decodes the split information of each block using the extracted information using said various methods of decoding split information.
[0404] In the method of decoding the maximum partition layer and / or information about the available layers, first the maximum partition layer data is extracted and decoded from the data stream and data indicating whether each layer is available, available subblock types and minimum subblock size according to the indicative data Whether each layer is available is extracted using the decoded value of the maximum split layer. For example, when the macroblock size is 64 x 64 and the value of the maximum partition layer extracted and restored from the bit stream is 3, layers 0, 1 and 2 are set as available layers and layer 3 is set as unavailable layer. The macroblock can be divided into 64 x 64, 64 x 32, 32 x 64 and 32 x 32 sub-blocks that correspond to the types of sub-blocks contained in layer 0, sub-blocks of 32 x 32, 32 x 16, 16 x 32 and 16 x 16, which correspond to the types of subblocks contained in layer 1 and subblocks with sizes 16 x 16, 16 x 8, 8 x 16 and 8 x 8, which correspond to the types of subblocks contained in layer 2. However, the macroblock cannot be separated into 8 x 4, 4 x 8 and 4 x 4 sub-blocks that correspond to the types of sub-blocks contained in layer 3. That is, individual 8 x 8 blocks cannot be separated into smaller sub-blocks. In this case, the minimum subblock size available is set to 8 x 8.
[0405] Alternatively, after extraction and recovery from the data bit stream with the maximum partition layer, data indicating whether each layer is available, which corresponds to the number of layers determined by the restored value of the maximum partition layer, is extracted and decoded from the bit stream. Then the available subblock types and minimum subblock size are extracted according to the reproduced value of the maximum partition layer and the availability of each layer.
[0406] For example, when the macroblock size is 64 x 64 and the value of the maximum partition layer extracted and restored from the bit stream is 3, data indicating whether 3 layers are available are extracted and decoded from the bit stream. When reconstructed data indicating whether each layer is available means that layers 0 and 2 are available and layer 1 is not available, the macroblock can be separated into sub-blocks of 64 x 64, 64 x 32, 32 x 64 and 32 x 32, which correspond to the types of subblocks contained in layer 0 and subblocks with sizes 16 x 16, 16 x 8, 8 x 16 and 8 x 8, which correspond to the types of subblocks contained in layer 2. However, the macroblock cannot be divided into sub-blocks of 32 x 32, 32 x 16, 16 x 32 and 16 x 16, which correspond to the types of sub-blocks contained in layer 1 and sub-blocks of 8 x 4, 4 x 8 and 4 x 4, which correspond to the types of subblocks contained in layer 3.
[0407] Alternatively, the video decoding device determines the maximum split layer value using the minimum subblock size and macroblock size previously set between the video decoding device and the video encoding device and extracts and decodes from the bit stream data indicating whether individual layers are available, which correspond to the number of layers
EP2485490 determined by the maximum split layer value to determine available subblock types according to the reconstructed data indicating whether individual layers are available. For example, when the macroblock size previously determined between the video coding device and the video decoding device is 32 x 32 and the minimum subblock size is 8 x 8, the number of maximum partition layers is 2. Accordingly, data indicating whether 2 layers are available are extracted and decoded from the bit stream. When reconstructed data indicating whether individual layers are available means that layer 0 is not available and layer 1 is available, then the macroblock can only have block types 16 x 16, 16 x 8, 8 x 16 and 8 x 8 that correspond to the types of subblocks contained in layer 1. Therefore, when decoding macroblock split information, the macroblock is split into 4 16 x 16 subblocks, and only the split information for each 16 x 16 subblock is extracted and decoded from the bit stream.
[0408] In this case, the value of the maximum partition layer may be decoded using a method previously established between the video coding apparatus and the video decoding apparatus among methods such as binary arithmetic coding, Huffman coding, etc.
[0409] Alternatively, the value of the maximum partition layer can be decoded by methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0410] In a method of decoding information indicating whether each layer is available, data indicating whether each layer is available can be decoded by a method previously established between the video coding apparatus and the video decoding apparatus from methods such as binary arithmetic coding, Huffman coding, etc.
[0411] Alternatively, a table index showing whether individual layers are used is decoded by methods such as unary code, truncated unary code, exponential Golomb code, etc. and the fact indicating whether individual layers are used can be extracted by means of a table previously established between the video encoding device and the video decoding device.
[0412] Alternatively, the integer value is decoded by methods such as unary code, truncated unary code, exponential Golomb code, etc. and the decoded integer value may be decoded by presenting the integer value as a binary string having a maximum split layer value equal to the number of bits.
[0413] The decoding method according to one of the embodiments of Fig. 30 is described below.
[0414] According to the said embodiment of Fig. 30, in the data encoded according to the partition information in the video coding apparatus, the maximum partition information is 4, the layer flag indicating whether individual layers are used is "1001" and the information indicating the type of partition is {3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}.
[0415] The video decoding device extracts and decodes data with the maximum partition layer from the bit stream and reproduces the value of the maximum partition layer 4. Since the maximum partition layer is 4, the flag (layer flag) indicating whether 4 layers are available is being played. The layer flag for layer 0 is decoded by extracting and decoding 1 bit from the bit stream. After playing the flag indicating whether layer 0 is available, the layer flags for layers 1, 2 and 3 are extracted and decoded from the bit stream in the same way. Because the reconstructed layer flag for layer 0 is 1, the reconstructed layer flag for layer 1 is 0, the reconstructed layer flag for layer 2 is 0 and the reconstructed layer flag for layer 3 is 1, then layers 0 and 3 are set as available layers and layers 1 and 2 are set as unavailable layers. Then the information is used to decode
EP2485490 information on macroblock splitting.
[0416] Since the first reproduced information indicating the partition type is 3, the macroblock is split into 4 32 x 32 subblocks and information indicating the partition type for each 32 x 32 subblock is extracted and decoded from the bit stream.
[0417] Here, when the N x N block with the layer number K is divided into 4 subblocks, the method of assigning the layer number to the separated subblocks differs depending on whether individual layers are available. If a K + 1 layer is available, the K + 1 layer number is allocated to subblocks. If the K + 1 layer is not available, the K layer number is allocated to subblocks.
[0418] According to one embodiment of Fig. 30, 32 x 32 subblocks separated from the macroblock correspond to a type of subblock that can be included in both layer 0 and layer 1, but the layer number of the 32x32 subblock is 0 because layer 1 is not available.
[0419] Since the second reproduced information indicating the partition type is 0, the subblock type for the first 32 x 32 subblock (L0-P0) within the macroblock is 32 x 32. Since the information indicating the partition type for the first 32 x 32 subblock is not 3, then information indicating the division type for the second 32 x 32 subblock (L0-P1) is decoded.
[0420] Since the third reproduced information indicating the partition type is 3 and layers 1 and 2 are not available, the L0-P1 subblock is divided into 16 subblocks (from L3-P0 to L3-P15) of 8 x 8 size and information indicating the type division for each 8 x 8 subblock is extracted and decoded from the bit stream, because the 8 x 8 subblock can be split into smaller ones under the blocks.
[0421] Since all reconstructed information indicating the type of division from fourteenth to nineteenth is equal to 0, it can be concluded that the type of all subblocks L3-P0 to L3-P15 created by splitting L0-P1 is 8 x 8.
[0422] Since the twentieth reproduced information indicating the partition type is 3 and layers 1 and 2 are not available, the L0-P2 subblock is divided into 16 subblocks (from L3-P0 to L3-P15) of 8 x 8 size and information indicating the type partition for each 8 x 8 subblock is extracted and decoded from the bit stream, because the 8 x 8 subblock can be split into smaller subblocks.
[0423] Because the next reproduced information indicating the partition type is 2, the L3-P0 subblock contained in the L0-P2 subblock is split into 2 4 x 8 subblocks and all subblock types L3-P1 to L3-P15 are set to 8 x 8, because all 15 pieces of information indicating the type of division reproduced from this point are equal to 0.
[0424] Since the last restored information indicating the split type is 0, the L0-P3 subblock type is 32 x 32 and the split information decoding process is terminated because the split types for all subblocks within the macroblock have been determined.
C-2-1) Block diagram for decoding [0425] Fig. 33 is a block diagram illustrating a video coding method according to yet another embodiment of the present invention.
[0426] Based on the video decoding method according to yet another aspect of the present invention, the video decoding device 3200 in step S3310 decodes the encoded data with the maximum split layer extracted from the bit stream to reproduce the value of the maximum split layer and performs predictive decoding on the encoded step S3320 image data extracted from the bit stream using the minimum subblock size according to the reconstructed value of the maximum partition layer, to play the current block.
EP2485490 [0427] As described above according to yet another aspect of the present invention, even when a macroblock having a size equal to or greater than 16 x 16 is split into sub-blocks of different sizes, the minimum sub-block size can be set using the maximum partition layer value. For this reason, no decoding of split information is required for layers that are not used. As a result, the macroblock split information can be encoded with fewer bits and thus the compression performance can be improved.
[0428] Furthermore, the video coding apparatus according to yet another aspect of the present invention determines the available partition layers for the current block, selects the partition layer that causes the lowest coding cost of the current block from among the available partition layers, produces image data encoded by performing predictive coding on the current block using only the selected split layer and can produce a bit stream containing encoded data with the split layer formed by encoding information about the selected split layer, encoded partition information data created by encoding partition information for current block based on the selected split layer and encoded image data. Here, one or more split layers may be selected as the split layer resulting in the least coding cost of the current block. Accordingly, the video coding apparatus can generate encoded image data by determining the available partition layers for the current block, selecting one or more partition layers that result in the lowest coding cost for the current block from among the available partition layers and separation, and predictive coding of the current block using only one or more selected split layers. Therefore, the video encoding device can encode macroblock split information with fewer bits and thus improve compression performance.
[0429] In addition, the video decoding device according to yet another aspect of the present invention may reproduce split layer information and split information by decoding split data with split information encoded data and split coded data extracted from the bit stream and reconstruct the current block by performing predictive decoding on encoded image data extracted from the bit stream using the reconstructed partition layer information and reconstructed partition information.
D) Coding and decoding the macroblock size [0430] According to the said embodiments, it is assumed that the macroblock has a predetermined size between the video encoding device and the video decoding device. In addition, based on this assumption, a method of separating the macroblock and coding and decoding of split information were then described.
[0431] Hereinafter, a method of determining a macroblock size having a variable size and coding and decoding will be described to signal the determined macroblock size to a decoding device.
[0432] In general, a high resolution image can be efficiently encoded in a large block unit. However, coding performance is not always improved when all areas of the image are encoded with the largest blocks. For example, in the case of a monotonous image, it may be effective to encode the image in a macroblock unit such as a large 128 x 128 macroblock. However, when a complex image is encoded in a 128x128 macroblock unit, most macroblocks are split into smaller subblocks and most subblocks can be predicted or transformed in a block unit having an size equal to or smaller than 16
EP2485490 x 16. In this case, since the split information indicating that each macroblock has been separated into sub-blocks having a size equal to or smaller than the size of 16 x 16, should be encoded, that is, effective image coding by choosing the size of the macroblock that corresponds to size 16 x 16.
[0433] According to another embodiment of the present invention, the maximum block size that can be used for prediction or transformation to further improve the performance of said split information coding method is determined, the image is encoded in a unit of the selected block size and the image is reproduced by decoding the image using the maximum block size identified by the information contained in the bit stream.
[0434] Below, although for convenience of description it is not described that the maximum block size (e.g. macroblock) that can be used for prediction and the maximum block size that can be used for transformation can be set separately, this separate setting the maximum block size for the prediction and the maximum block size for the transformation may apply.
[0435] In addition, any information may be encoded in the sequence header, frame header, slice header or macroblock header.
[0436] After determining the size of the macroblock in accordance with one embodiment of the present invention, which will be discussed below, the macroblock may be split into subblocks based on the method of separating the macroblock in accordance with said embodiments of the present invention. In addition, prediction or transformation can be performed on the subblock unit. In this case, the video encoding device according to one embodiment of the present invention encodes information on the macroblock size and / or partition information regarding the macroblock separation, and then can transmit the encoded information to the video decoding device according to one embodiment of the present invention. The video decoding device according to one embodiment of the present invention can capture the size of the macroblock to be decoded and / or subblock information within the macroblock by decoding the macroblock size information and / or macroblock partition information. As described above, the partition information can be implemented in various ways. Information on the division of the macroblock according to one embodiment of the present invention, which includes information on whether the macroblock is divided into subblocks and / or information on the types of subblocks resulting from the separation of the macroblock, is signaled to a video decoding device according to one embodiment of the present invention.
D-1) Video coding device
D-1-1) Description of the encoding device [0437] Fig. 35 is a block diagram illustrating the 3500 video encoding device according to yet another embodiment of the present invention.
[0438] According to an embodiment of the video coding apparatus according to another embodiment of the present invention, the video coding apparatus may include a macroblock 3510 candidate size configuration unit, a video encoder 3520 and a macroblock size determining unit 3530.
[0439] The macroblock size candidate configuration unit 3510 configures the macroblock candidate sizes that can be used by the video encoding device 3500 according to yet another embodiment of the present invention. Candidate macroblock sizes are provided by the user or determined according to the image features. Alternatively, the macroblock candidate sizes can be set as candidate groups (e.g. size 64 x 64, size 32 x 32 and size 16 x 16) supplied by another device.
[0440] In the case where the candidate macroblock sizes are determined according to the image features,
EP2485490 if the image resolution is 4K x 2K and the width / height ratio is 16: 9, then the candidate macroblock sizes may include 128 x 128 size, 128 x 64 size, 64 x 128 size, 64 x 64 size, 64 x 32 size 32 x 64, 32 x 32 size, 32 x 16 size, 16 x 32 size and 16 x 16 size. [0441] The video encoder 3520 may be implemented as a video encoding device according to one embodiment of the present invention described in connection with Fig. 6, Fig. 8 or Fig. 26. That is, the video encoder 3520 encodes the image with each candidate macroblock size configured by the unit to configure the candidate macroblock sizes 3510 and produces image data for each macroblock size. In this case, each macroblock is internally split into subblocks (here, a subblock having a minimum subblock size can be a block in a unit of 4 x 4 pixels), which are smaller blocks than the macroblock and intra-image coding or inter-image coding is performed on subblocks created by separation. Partition information indicating the sizes and shapes of subblocks within the macroblock may be placed in the bit stream using the method of encoding partition information according to said embodiments of the present invention.
[0442] As another way of operating the video encoder 3520, coding is performed using 16x16 size macroblocks and 32x32 size. As a result of coding, the coding cost when using 32x32 macroblocks is higher than the cost of coding in when 16 x 16 macroblocks are used, the 16 x 16 size is determined as the macroblock size. When the coding cost when using 32 x 32 macroblocks is lower than the coding cost when using 16 x 16 macroblocks, the coding is performed again using 64 x 64 macroblocks, followed by the coding costs for macroblock using 32x32 size and 64x64 size are compared in the same way. Accordingly, the macroblock size can be determined.
[0443] Furthermore, as another mode of operation of the 3520 video encoder, the coding is performed using 16x16 size, 32x16 size, 16x32 size and 32x32 size macroblocks. As a result of the coding, the macroblock size having the best performance is selected coding. And then encoding is performed using as macroblocks pixel blocks created by doubling the width, height and both widths as well as the height of the selected macroblock, respectively. If the coding performance is not improved by using the increased macroblock size, the coding is terminated and the macroblock size is determined.
[0444] The macroblock size determining unit 3530 calculates the coding costs (i.e. coding costs of image data for each macroblock size) resulting when the video encoder 3520 encodes the image using each macroblock size and compares the coding costs for individual macroblock sizes to determine the optimal macroblock size from candidate macroblock sizes. Here, the optimal macroblock size can be any macroblock size if this macroblock size results in the lowest coding cost when the image is encoded using the corresponding macroblock size. However, when coding cost is used, different optimal macroblock sizes can be determined by coding cost.
[0445] Furthermore, when the macroblock size is determined, the macroblock size determining unit 3530 generates encoded image data using the corresponding macroblock size as a bit stream. In this case, information about the determined macroblock size can be encoded and placed in the bit stream. Information on the size of the macroblock can be placed in the bit stream for the whole image only once or it can be placed in the bit stream in each frame of the whole
EP2485490 image. Furthermore, according to another embodiment of the present invention, the macroblock size that corresponds to the coding / decoding unit can be selected differently for each frame, slice or layer of the macroblock.
D-1-2) Method of coding the macroblock size [0446] Various methods for coding the macroblock size according to one embodiment of the present invention are described below.
[0447] As described above, since the macroblock size can be calculated using the minimum subblock size and maximum partition layer (MaxLayer), the macroblock size can be obtained by encoding the determined value of the macroblock size or encoding the minimum subblock size and maximum partition layer.
[0448] That is, in the method of encoding block size information indicating the macroblock size or minimum subblock size and encoding the subblock size, the maximum partition layer information (MaxLayer) is coded together and transmitted to the video decoding device.
[0449] The maximum partition layer information may be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc. Alternatively, the maximum split layer information can be encoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
D-1-2-1) Method of coding the macroblock size 1 [0450] First, a first method of coding the macroblock size will be described.
[0451] A flag (Set_Mbsize_flag) indicating whether to transmit macroblock size information may be included in the sequence header, in each frame header or in the slice header. The macroblock size can be transmitted or not transmitted according to the flag value. If the macroblock size is not transmitted, macroblocks having a predetermined size are used as macroblocks, for example 16x16 blocks.
[0452] If the macroblock size is specified, information on the macroblock size is transmitted. In this case, macroblocks having an arbitrary size, for which horizontal dimensions and vertical dimensions are separately determined, can be used. Alternatively, when using square macroblocks, only information about one side of the square macroblock is encoded and then can be transmitted to the decoding device.
[0453] The value of the macroblock size to be encoded may be determined as the actual macroblock size or a value indicating how many times the macroblock is to be increased or decreased relative to the predetermined size may be transmitted. In addition, the macroblock size value can be represented by the smaller number of bits by applying a log function to the macroblock size value instead of directly encoding the macroblock size value. For example, the value of log2 (selected size in MB / X) (X is any positive integer that is a multiple of 2) is encoded. In this case, the X value can be selected as the available minimum macroblock size. For example, if the minimum macroblock size available is 8 x 8, then it is preferable to select "8" as the X value. In this case, the value "0" is coded when the current macroblock is an 8 x 8 block and the value "1" is coded when the current macroblock is a 16 x 16 block. If the minimum macroblock size is 16 x 16, then it is preferable to select "16" instead of "8" as the X value. In this case, the value "0" is coded when the current macroblock is a 16 x 16 block and the value "1" is coded when the current macroblock is a block 32
EP2485490 x 32. Accordingly, the size of the current macroblock can be represented by a number of bits smaller than the number of bits used to encode large numbers such as 8, 16 or 32.
[0454] Furthermore, enlargements of the horizontal dimension and the vertical dimension may be coded accordingly.
[0455] Alternatively, the macroblock size value may be a table index value previously determined between the video encoding device and the video decoding device.
[0456] In this case, the macroblock size to be transmitted can be encoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0457] In the following, for convenience of description, it is not described to set the horizontal dimension and the vertical dimension separately, but separate setting of the horizontal dimension and the vertical dimension may apply. In addition, although it is exemplified, for example, that the data is encoded in the sequence header and in the frame header, the data may be encoded in the slice header or in the macroblock header.
[0458] An example of the syntax according to the first method of encoding the macroblock size is as follows.
Set_MBsize_Flag if (Set_MBsize_Flag == 1) <sup>{</sup>
MBsize <sup>}</sup>
Or
Set_MBsize_Flag if (Set_MBsize_Flag == 1) <sup>{</sup>
MBsize_width
MBsize_height <sup>}</sup> [0459] In addition, block size information such as MB_size, which indicates the size of the macroblock, can be encoded with a minimum subblock size and a maximum partition layer.
[0460] Here, the value of the minimum subblock size to be encoded can be determined as the actual minimum subblock size or a value indicating how many times the subblock is to be increased or decreased relative to the predetermined size can be transmitted. In addition, the value of the minimum subblock size can be represented by fewer bits by applying a logarithmic function to the value of the minimum subblock size instead of directly coding the value of the minimum subblock size. For example, the value of log2 (minblockSize / X) (X is any positive integer that is a multiple of 2) is encoded. In this case, the X value can be selected as the available minimum subblock size. For example, if the minimum subblock size available is 4 x 4, then it is preferable to select "4" as the X value. In this case, the value "0" is encoded when the minimum subblock to be encoded according to the current macroblock size is block with a size of 4 x 4 and the value "1" is coded when the minimum subblock is an 8 x 8 block. If the minimum macroblock size is 8 x 8, it is preferable to select "8" instead of "4" as the X value. In this case, the value "0" is coded when the available minimum subblock size according to the size of the current macroblock is 8 x 8 and the value "1" is coded when
EP2485490 minimum subblock size is 16 x 16.
[0461] Furthermore, enlargements of the horizontal dimension and the vertical dimension may be coded accordingly.
[0462] Alternatively, the minimum subblock size value may be a table index value defining a block size previously determined between the video encoding device and the video decoding device.
[0463] In this case, the minimum subblock size can be encoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0464] The maximum split layer information may be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc. Alternatively, the maximum split layer information can be encoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0465] When the macroblock size is encoded using the minimum subblock size and maximum partition layer, an example of said first syntax may be represented as follows.
Set_MBsize_Flag if (Set_MBsize_Flag == 1) <sup>{</sup> minBlockSize
MaxLayer <sup>}</sup>
Or
Set_MBsize_Flag if (Set_MBsize_Flag == 1) <sup>{</sup> minBlockSize_width minBlockSize_height
Max Layer <sup>}</sup> [0466] Alternatively, the macroblock size may be transmitted to the video decoding apparatus in the header of each sequential, frame, slice or macroblock without encoding the flag (Set_Mbsize_flag) indicating whether to transmit macroblock size information.
D-1-2-2) Method of coding the macroblock size 2 [0467] A second method for coding the macroblock size is described below.
[0468] According to a second method, the size M x N is set as the reference macroblock size and the flag indicating whether to use the reference macroblock size is encoded in the header of each frame, slice or header. When the reference macroblock size is not used, the selected macroblock size is encoded. Alternatively, after encoding in the header of the flag sequence indicating whether to set the reference macroblock size, a predetermined size, for example, 16 x 16 size is used as the reference macroblock size if the reference macroblock size is not set and the reference macroblock size can be encoded and contained in sequence header, if the reference macroblock size is set.
EP2485490 [0469] Here, in the method of coding the default_Mbsize value, which is information indicating the reference macroblock size or MB_size value, which is information indicating the current macroblock size, the actual macroblock size may be determined or a value indicating how many times the macroblock may be increased or reduced may be transmitted relative to the set size. Alternatively, as described in said first method, the macroblock size value may be represented by a smaller number of bits by applying a logarithmic function to the macroblock size value instead of directly encoding the macroblock size value.
[0470] Furthermore, enlargements of the horizontal dimension and the vertical dimension may be coded accordingly.
[0471] Alternatively, the macroblock size value may be a table index value previously determined between the video encoding device and the video decoding device.
[0472] In this case, the macroblock size to be transmitted can be encoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0473] An example of the syntax of said second method of encoding the macroblock size is represented as follows.
Sequence, frame or slice header Set_defaultMBsize_Flag if (Set_MBsize_Flag == 1) <sup>{</sup> defait_MBsize <sup>}</sup>
Frame, slice or macroblock header use_defalt_MBsize_flag if (use_defalt_MBsize_flag == 0) <sup>{</sup>
MB_size <sup>}</sup> [0474] In addition, block size information such as default_MBsize indicating the default or reference macroblock size and MB_size indicating the macroblock size can be encoded with a minimum subblock size and a maximum partition layer.
[0475] In the reference coding method of the default_minBlockSize minimum subblock size indicating the reference macroblock size or the minimum size of the minBlockSize subblock indicating information about the size of the current macroblock, the minimum size of the subblock to be actually encoded can be specified and a value indicating how many times the subblock has be increased or decreased relative to the predetermined size. Alternatively, as described in said first method, the value of the minimum subblock size may be represented by a smaller number of bits by applying a logarithmic function to the value of the minimum subblock size instead of directly coding the value of the minimum subblock size.
[0476] Furthermore, enlargements of the horizontal dimension and the vertical dimension may be coded accordingly.
EP2485490 [0477] Alternatively, the minimum subblock size value may be a table index value previously determined between the video encoding device and the video decoding device.
[0478] In this case, the minimum subblock size to be transmitted can be encoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0479] The maximum partition layer information may be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc. Alternatively, the maximum split layer information can be encoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0480] When the macroblock size is encoded using the minimum subblock size and maximum partition layer, an example of said second syntax may be represented as follows. Sequence, frame or slice header
Set_defaultMBsize_Flag if (Set_MBsize_Flag == 1) <sup>{</sup> default_minBlockSize default_MaxLayer <sup>}</sup>
Frame, slice or macroblock header use_default_MBsize_flag if (use_defalut_MBsize_flag == 0) <sup>{</sup> minBlockSize
MaxLayer <sup>}</sup>
D-1-2-3) Method of coding the macroblock size 3 [0481] A third method of coding the macroblock size is described below.
[0482] According to a third method, the size M x N is determined as the reference macroblock size and a flag indicating whether to use the reference macroblock size is encoded in each header of each frame, slice header or minimum subblock header and transmitted to the video decoding device. When the flag indicates that the reference macroblock size is used, a block having the same size as the reference macroblock size is selected as the current macroblock. However, when the flag indicates that the reference macroblock size is not used, a block having the size increased or decreased by a predetermined factor relative to the reference macroblock size is selected as the current macroblock in the encoding or decoding process. For example, a block having a horizontal dimension and a vertical dimension twice as large or twice as small as the horizontal dimension and the vertical dimension of the reference macroblock may be selected as the current macroblock.
[0483] When different increase or decrease factors are possible, these different factors can be represented by using a flag length greater than 2 bits. Alternatively, information indicating an increase factor or a reduction factor may be further encoded
EP2485490 in addition to the flag indicating whether to use the reference macroblock size.
[0484] When the flag indicates that the reference macroblock size is not used and the block having the size increased relative to the reference macroblock size is selected as the current macroblock, then the reference macroblock size corresponds to the minimum macroblock size available for encoding or decoding the current bit stream. On the contrary, when the flag indicates that the reference macroblock size is not used and the block having the size reduced relative to the reference macroblock size is selected as the current macroblock, then the reference macroblock size corresponds to the minimum macroblock size available for encoding or decoding the current bit stream.
[0485] The video decoding device may select the size of the current macroblock using a flag indicating whether to use the reference macroblock size and / or additional information indicating an increase or decrease by a predetermined ratio relative to the reference macroblock size.
[0486] According to one embodiment of the present invention, a flag indicating whether to set the reference macroblock size may be included in the sequence header. If the reference macroblock size is not set, it can be predefined to use the predefined size, for example, 16 x 16 as the reference macroblock size.
[0487] When the reference macroblock size is set and signaled to the video decoding apparatus, the reference macroblock size information is encoded and may be included in the sequence header. According to one embodiment of the present invention, the video encoding apparatus may signal information indicating the maximum macroblock size available for encoding or decoding the current bit stream of the video decoding apparatus as reference macroblock size information. According to another aspect of the present invention, the video coding apparatus may signal information indicating the minimum macroblock available for encoding or decoding the current bit stream of the video decoding apparatus as reference macroblock size information. According to yet another aspect of the present invention, the video encoding device may signal information about both the maximum macroblock size and the minimum macroblock size available for encoding or decoding the current bit stream of the video decoding device as reference macroblock size information.
[0488] In the method of coding the default_MBSize value, which is information about the reference macroblock size, the actual macroblock size may be determined and a value indicating how many times the macroblock may be increased or decreased relative to the predetermined size may be transmitted. Alternatively, as described in said first method, the macroblock size value may be represented by a smaller number of bits by applying a logarithmic function to the macroblock size value instead of directly encoding the macroblock size value.
[0489] In particular, for example, when the value default_MBSize indicates the maximum macroblock size available for encoding or decoding the current bit stream, the value log2 (X / default_MBSize) (X is any positive integer that is a multiple of 2) is encoded. In this case, the maximum available macroblock size can be selected as the X value. Alternatively, when the value default_MBSize indicates the available minimum macroblock size for encoding or decoding the current bit stream, the value log2 (default_MBSize / X) (X is any positive integer that is a multiple of 2) is encoded. In this case, the minimum available
EP2485490 The macroblock size can be selected as the X value.
[0490] Furthermore, enlargements of the horizontal dimension and the vertical dimension may be coded accordingly.
[0491] Alternatively, the macroblock size value may be a table index value previously determined between the video encoding device and the video decoding device.
[0492] In this case, the macroblock size to be transmitted can be encoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0493] Furthermore, block size information such as default_MBsize indicating the reference macroblock size and MB_size indicating the macroblock size can be encoded with a minimum subblock size and a maximum partition layer.
[0494] In the method of coding the default_minBlockSize value, which is information about the reference minimum subblock size, the minimum size of the subblock to be actually encoded can be determined and a value indicating how many times the subblock may be increased or decreased relative to the predetermined size can be transmitted. Alternatively, as described in said first method, the value of the minimum subblock size may be represented by a smaller number of bits by applying a logarithmic function to the value of the minimum subblock size instead of directly coding the value of the minimum subblock size.
[0495] In particular, for example, when the default_minBlockSize value indicates the maximum subblock size according to the maximum macroblock size available for encoding or decoding the current bit stream, the value log2 (X / default_minBlockSize) (X is any positive integer that is a multiple of 2 ) is coded. In this case, the maximum subblock size available can be selected as the X value. Alternatively, when the default_minBlockSize value indicates the available minimum macroblock size according to the minimum macroblock size available for encoding or decoding the current bit stream, the value log2 (default_minBlockSize / X) (X is any positive integer that is a multiple of 2) is encoded. In this case, the available minimum subblock size can be selected as the X value.
[0496] Furthermore, enlargements of the horizontal dimension and the vertical dimension may be coded accordingly.
[0497] Alternatively, the reference minimum subblock size may be a table index value previously established between the video encoding device and the video decoding device.
[0498] In this case, the reference minimum subblock size can be encoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0499] Maximum split layer information may be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc. Alternatively, the maximum split layer information can be encoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
D-1-2-4) Method of coding macroblock size 4 [0500] A fourth method of coding the macroblock size is described below.
[0501] According to a fourth method, after coding in the first frame a flag indicating whether to use the reference macroblock size and the macroblock size selected in the case where the reference
EP2485490 The macroblock size is not used, the flag indicating whether to use the macroblock size from the previous frame and the macroblock size for the current frame in case the macroblock size from the previous frame is not used can be encoded in subsequent frames starting from the second frame.
[0502] In the method of coding the default_MBsize value, which is information indicating the reference macroblock size or MB_size value, which is information indicating the size of the current macroblock, the actual macroblock size may be determined and a value indicating how many times the macroblock may be increased or decreased relative to previously may be transmitted fixed size. Alternatively, as described in said first method, the macroblock size values may be represented by a smaller number of bits by applying a log function to the macroblock size values instead of directly encoding the macroblock size values.
[0503] Furthermore, enlargements of the horizontal dimension and the vertical dimension may be coded accordingly. Alternatively, the macroblock size values to be encoded may be a table index value previously established between the encoding device and the video decoding device.
[0504] In this case, the macroblock size to be transmitted can be encoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0505] An example of the syntax of said fourth method of encoding the macroblock size is represented as follows.
First frame use_default_MBsize_flag if (use_default_MBsize_flag == 0) <sup>{</sup>
MB_size <sup>}</sup>
From the second frame use_prevPic_MBsize_flag if (use_prevPic_MBsize_flag == 0) <sup>{</sup>
MB_size <sup>}</sup> [0506] In addition, block size information, such as MBsize, indicating the macroblock size can be encoded with a minimum subblock size and a maximum partition layer.
[0507] The minimum subblock size to be actually encoded can be determined and a value indicating how many times the subblock is to be increased or decreased relative to the predetermined size can be transmitted. Alternatively, as described in said first method, a logarithmic function may be applied to the minimum subblock size value instead of directly encoding the minimum subblock size value.
[0508] Furthermore, enlargements of the horizontal dimension and the vertical dimension may be coded accordingly. Alternatively, the minimum subblock size may be a table index value previously established between the encoding device and the video decoding device.
[0509] In this case, the reference minimum subblock size can be encoded with
EP2485490 different binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0510] The maximum split layer information may be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc. Alternatively, the maximum partition layer information may be encoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0511] When the reference macroblock size or macroblock size is encoded using the minimum subblock size and maximum partition layer, an example of said fourth syntax may be represented as follows.
First frame use_defalt_MBsize_flag if (use_defalt_MBsize_flag == 0) <sup>{</sup> minBlockSize
MaxLayer <sup>}</sup>
From the second frame use_prevPic_MBsize_flag if (use_prevPic_MBsize_flag == 0) <sup>{</sup> minBlockSize
MaxLayer <sup>}</sup>
D-1-2-5) Method of coding macroblock size [0512] A fifth method of coding macroblock sizes will be described below.
[0513] According to a fifth method, different macroblock sizes are used for the intra and inter frames. That is, the macroblock size for the intra frame and the macroblock size for the inter frame are encoded in the sequence header. Alternatively, any macroblock size according to the frame type can only be encoded in the headers of the first intra frame and the first inter frame. A method of encoding information regarding the macroblock size for an intra frame and the macroblock size for an inter frame can be used in conjunction with said methods.
Sequence header
Set_intraMBsize_Flag
Set_interMBsize_Flag if (Set_interMBsize_Flag == 1) <sup>{</sup> intraMBsize <sup>}</sup> if (Set_interMBsize_Flag == 1) <sup>{</sup> interMBsize <sup>}</sup>
EP2485490 [0514] Furthermore, information regarding intra macroblock size or inter macroblock size can be encoded with a minimum block size and a maximum partition layer.
[0515] When the intra macroblock size or inter macroblock size is encoded using the minimum subblock size and maximum partition layer, an example of said fifth syntax may be represented as follows.
Sequence header
Set_intraMBsize_Flag
Set_interMBsize_Flag if (Set_intraMBsize_Flag == 1) <sup>{</sup>
Intra_minBlockSize
Intra_MaxLayer <sup>}</sup> if (Set_interMBsize_Flag == 1) <sup>{</sup>
Inter_minBlockSize
Inter_MaxLayer <sup>}</sup>
D-1-3) Description of the order of the coding methods [0516] Fig. 36 is a block diagram illustrating the implementation of the video coding method according to another aspect of the present invention.
[0517] The video encoding apparatus in step S3610 configures the candidate macroblock sizes, in step S3620 encodes the input image with each candidate macroblock size, in step S3630 determines the macroblock size based on the coding costs for each candidate macroblock size and in step S3640 produces a bit stream containing image data encoded using the designated macroblock size and information about the determined macroblock size. Because in Fig. 35 it has been described that the video coding apparatus configures the macroblock candidate sizes, encodes the image for each macroblock candidate size and determines the macroblock size based on the coding costs of the encoded image data for each candidate macroblock size, a detailed description thereof is omitted.
D-2) Video decoding device
D-2-1) Description of the decoding device [0518] Fig. 37 is a block diagram illustrating the implementation of the video decoding device according to another embodiment of the present invention.
[0519] According to an embodiment of the video decoding device according to another aspect of the present invention, the video decoding device 3700 may include a macroblock size configuration unit 3710 and a video decoder 3720.
[0520] The macroblock size configuration unit 3710 extracts macroblock size information from the bit stream before decoding in the macroblock unit and configures the macroblock size using the extracted information.
[0521] When it is previously established between the video encoding device and the video decoding device that the macroblock size information is included in the bit stream only once, then
EP2485490 image can be reproduced by decoding information as a bit stream for the entire image only once and using the extracted macroblock size when decoding the entire image. Once it is determined that the macroblock size is encoded / decoded in each frame, the image can be restored by extracting the macroblock size from the bit stream for each frame and using different macroblock sizes for each frame. Furthermore, according to another embodiment of the present invention, the image can be reproduced by extracting the macroblock size for each frame, slice or layer of the macroblock and using the selected macroblock size.
[0522] The video decoder 3720 may be implemented as a video decoding device according to one embodiment of the present invention described in connection with Fig. 32 and the sizes and shapes of subblocks created by separation for prediction or transformation within a macroblock are reproduced by decoding partition information according to reconstituted macroblock size by means of methods according to said forms. Individual subblocks are restored by extracting and decoding encoded image data for individual subblocks from the bit stream.
D-2-2) Method for decoding macroblock size information [0523] Various methods for encoding macroblock size according to one aspect of the present disclosure are described below.
D-2-2-1) Method No. 1 for decoding macroblock size information [0524] First, a decoding method according to the first method of encoding the macroblock size was described.
[0525] The flag (Set_MBsize_flag) indicating whether to transmit macroblock size information may be included, the flag (Set_Mbsize_flag) indicating whether to transmit macroblock size information is entropy decoded at a predetermined location such as a sequence header, each frame header or slice header. When the decoded flag has a value indicating that the macroblock size is not transmitted, the macroblock having a predetermined size predetermined between the video encoding device and the video decoding device, for example, a 16x16 block is used as a macroblock.
[0526] When the flag-decoded macroblock size (Set_Mbsize_flag) indicates that the block size is specified, the macroblock size is entropy decoded and extracted by a method previously established between the video encoding device and the video decoding device among various entropy decoding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0527] When the horizontal dimension and the vertical dimension of the macroblock are separately determined and then transmitted, the horizontal dimension and the vertical dimension can be obtained by entropy decoding of each dimension. Alternatively, if a square macroblock is used, only information indicating one side of the square macroblock can be entropy coded.
[0528] The decoded value can be determined as the actual macroblock size and a value indicating how many times the macroblock is to be increased or decreased relative to the predetermined size can be transmitted. In addition, when the video coding apparatus encodes a value created by applying a logarithmic function to a macroblock size value, the macroblock size can be determined by applying the exponential function to the entropy decoded value. For example, when the video encoding device encodes the y value, which is a value equal to log2 (MBsize selected in the / X encoder) (X is any positive integer that is a multiple of 2), then the device for
EP2485490 video decoding entropy decodes yi can get the macroblock size selected in the encoder by multiplying <sup>2</sup> by X. Here, X corresponds to the value previously determined between the video encoding device and the video decoding device or the value extracted from the bit stream before decoding the macroblock size. When the minimum macroblock size available for X is selected and used and the available minimum macroblock size is 8 x 8, the macroblock size is set to 8 x 8 if the decoded y value is "0" and the macroblock size is set to 16 x 16 if the decoded y value is "1". When the minimum available macroblock size is 16 x 16, the value "16" instead of "8" is used as X and the macroblock size is set to 16 x 16 if the decoded y value is "0".
[0529] Furthermore, when the video coding apparatus decodes the magnifications of the horizontal dimension and the vertical dimension, respectively, the macroblock size can be obtained by entropy decoding the magnifications of the horizontal dimension and the vertical dimension, respectively.
[0530] In addition, when the table index value previously determined between the video coding apparatus and the video decoding apparatus is encoded, the macroblock size can be obtained by using the decoded value as the table index value.
[0531] In this case, the macroblock size can be decoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc. For convenience of description, it is not described to decode and extract the horizontal dimension and the vertical dimension separately, but separate extraction of the horizontal dimension and the vertical dimension may apply. In addition, although it is illustrated, for example, that the data is decoded in the sequence header and frame header, the macroblock size may be decoded in the slice header or macroblock header when the video encoding apparatus encodes the macroblock size in the slice header or the macroblock header.
[0532] When it is previously established between the video coding device and the video decoding device that the minimum subblock size and maximum partition layer are used as macroblock size information, the information about the minimum subblock size and maximum partition layer are extracted and decoded from the stream bits, then the macroblock size can be reproduced.
[0533] When the decoded macroblock size flag (Set_MBsize_flag) indicates that the block size is specified, the minimum subblock size is entropy decoded and extracted by a method previously established between the video encoding device and the video decoding device among various entropy decoding methods such like unar code, truncated unar code, exponential Golomb code, etc.
[0534] When the horizontal dimension and the vertical dimension of the minimum subblock size are separately determined and then transmitted, the horizontal dimension and the vertical dimension can be obtained by entropy decoding of each dimension. Alternatively, if a square macroblock is used, only information indicating one side of the square macroblock can be entropy coded.
[0535] The decoded value may be determined as the actual minimum subblock size and a value indicating how many times the subblock is to be increased or decreased relative to the predetermined size may be transmitted. Also, when the video coding apparatus encodes a value created by applying a logarithmic function to the value of the minimum subblock size, the minimum size of the subblock can be determined by applying the exponential function to the entropy decoded value. For example, when the video encoding device encodes the y value, which is equal to
EP2485490 log2 (minBlockSize selected in the video coding device according to the selected macroblock size / X) (X is any positive integer that is a multiple of 2), this video decoding device decodes the entropy value y and can get the minimum subblock size according to the macroblock size selected on the video encoding device by multiplying <sup>2</sup> by X. Here, X corresponds to the value previously determined between the video encoding device and the video decoding device or the value extracted from the bit stream before decoding the minimum subblock size. When the minimum macroblock size available for X is selected and used and the available minimum subblock size is 4 x 4, the minimum subblock size is set to 4 x 4 if the decoded y value is "0" and the minimum macroblock size is set to 8 x 8 if the decoded y value is "1". When the minimum subblock size available is 8 x 8, the value "8" instead of "4" is used as X and the minimum subblock size is set to 8 x 8 if the decoded y value is "0".
[0536] Furthermore, when the video coding apparatus decodes the enlargement of the horizontal dimension and the vertical dimension, respectively, the minimum subblock size can be obtained by entropy decoding the enlargements of the horizontal dimension and the vertical dimension, respectively.
[0537] Additionally, when the table index value previously determined between the video encoding device and the video decoding device is encoded, a minimum subblock size can be obtained by using the decoded value as the table index value.
[0538] In this case, the minimum subblock size can be decoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0539] The maximum partition layer information is decoded by lossless compression such as binary arithmetic coding, Huffman coding, etc. and can be decoded using various methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0540] When the reconstructed minimum subblock size is N x N and the maximum partition layer is x, the macroblock size is (Nx <sup>2</sup> ) x (Nx <sup>2</sup> ) .
E-2-2-2) Method No. 2 for decoding macroblock size information [0541] The decoding method according to the second method for encoding the macroblock size is described below. [0542] According to a second method, the size M x N previously determined between the video coding device and the video decoding device is set as the reference macroblock size and the flag indicating whether to use the reference macroblock size is entropy decoded from the header of each frame, from the slice header and from the macroblock header . When the value of the decoded flag indicates that the reference macroblock size is not used, the macroblock information is extracted by entropy decoding of the macroblock size information and the macroblock size is set. When the value of the decoded flag indicates that the reference macroblock size is used, it means that the macroblock size information is not included in the bit stream, so that the predefined reference macroblock size is set as the macroblock size and a number of decoding processes are performed.
[0543] When the reference macroblock size is included in the sequence header and transmitted to the video decoding apparatus by the video encoding apparatus, the reference macroblock size may be extracted from a predetermined location such as the sequence header, etc.
EP2485490 inside a bit stream. Here, the reference macroblock size or current macroblock size is assigned an entropy decoded value and the macroblock size can be obtained by rescaling (increasing or decreasing) the predetermined size by an entropy decoded value. Alternatively, as described in said first decoding method, when the video coding apparatus encodes a value created by applying a logarithmic function to a macroblock size value, the macroblock size value can be obtained using the exponential function. [0544] Furthermore, when the video coding apparatus decodes the magnifications of the horizontal dimension and the vertical dimension, respectively, the macroblock size can be obtained by entropy decoding the magnifications of the horizontal dimension and the vertical dimension, respectively.
[0545] In addition, when the table index value previously determined between the video encoding device and the video decoding device is encoded, the macroblock size can be obtained by using the decoded value as the table index value.
[0546] In this case, the macroblock size that can be transmitted can be decoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0547] Also, when the reference macroblock size or macroblock size information corresponds to the minimum subblock size and maximum partition layer information, the information about the reference minimum subblock size according to the reference macroblock size or the minimum subblock size compatible with the macroblock size and information about maximum split layer are extracted and decoded from the bit stream, and then the macroblock size is decoded.
[0548] Here, a reference minimum subblock size and minimum subblock size may be extracted from a predetermined location such as a sequence within a bit stream. The reference minimum subblock size and the current minimum subblock size can be assigned an entropy decoded value and the minimum subblock size can be obtained by rescaling (increasing or decreasing) the predetermined size by the entropy decoded value. Alternatively, as described in said first decoding method, when the video coding apparatus encodes a value created by applying a logarithmic function to the minimum subblock size value, the minimum subblock size value can be obtained using the exponential function.
[0549] Also, when the video coding apparatus decodes the enlargement of the horizontal dimension and the vertical dimension, respectively, the minimum subblock size can be obtained by entropy decoding the enlargements of the horizontal dimension and the vertical dimension, respectively.
[0550] In addition, when the table index value previously determined between the video encoding device and the video decoding device is encoded, a minimum subblock size can be obtained by using the decoded value as the table index value.
[0551] In this case, the minimum subblock size can be decoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0552] The maximum partition layer information may be decoded by lossless compression such as binary arithmetic coding, Huffman coding, etc. and various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0553] When the reconstructed minimum subblock size is N x N and the maximum partition layer is x,
EP2485490 ryX ryX is the macroblock size (Nx <sup>2</sup> ) x (Nx <sup>2</sup> ) .
D-2-2-3) Method No. 3 for decoding macroblock size information [0554] The decoding method according to the third method for encoding the macroblock size is described below. [0555] According to a third method, the video decoding device extracts from the bit stream a flag indicating whether to use the reference macroblock size and / or additional information indicating an increase or decrease in a predetermined ratio relative to the reference macroblock size, and then the macroblock size can be extracted using the above information .
[0556] First, the N x N size is set as the reference macroblock size and the flag indicating whether to use the reference macroblock size is decoded in each header of each frame, slice header and macroblock header. When the flag indicates that the reference macroblock size is used, the size of the current macroblock is evenly set to the reference macroblock size and decoding is performed using the set macroblock size in the macroblock unit. However, when the flag indicates that the reference macroblock size is not used, the value increased or decreased relative to the reference macroblock size by a factor previously set between the video encoding device and the video decoding device is set as the current macroblock size and the decoding is performed in the macroblock unit . For example, the size increased or decreased twice relative to the horizontal dimension and the vertical dimension of the reference macroblock may be set as the size of the current macroblock.
[0557] When the video coding apparatus uses different increase or decrease coefficients, it places the selected coefficient in the bit stream and encodes the bit stream, and the video decoding apparatus can obtain different coefficients by decoding the number of bits in the bit stream previously determined between the coding apparatus video and video decoding device during entropy decoding.
[0558] Alternatively, when information indicating an increase factor or a reduction factor is included in the bit stream and encoded in addition to the flag indicating whether to use the reference macroblock size, the increase factor or reduction factor may be decoded or not decoded according to the value of the flag indicating whether to use the reference size macroblock after the flag is decoded. If the increase factor or reduction factor is not decoded, then the reference macroblock size is set as the current block size, and then the decoding processes are performed.
[0559] When the decoded flag indicates that the reference macroblock size is different from the current macroblock size and the decoded factor is an increasing factor, the reference macroblock size is set as the minimum macroblock size available for encoding or decoding the current bit stream, and then the size increased relative to the reference The macroblock size by entropy decoded factor is set as the size of the current macroblock. On the contrary, when the entropy decoded factor is a decreasing factor, the reference macroblock size is set as the maximum macroblock size available for encoding or decoding the current bit stream, and then the size reduced relative to the reference macroblock size by the entropy decoded factor is set as the current macroblock size.
[0560] According to an embodiment of the present invention, when the flag indicating whether to set the reference macroblock size is included in the header of the bit stream sequence and then transmitted, then
EP2485490 the decoder entropy decodes the flag in the sequence header. And then, when the flag indicates that the reference macroblock size is set, the decoder extracts reference macroblock size information from a predetermined location, such as a bit stream sequence header, and sets the reference macroblock size using the extracted information. When the flag indicates that the reference macroblock size is not set, the size previously determined between the video encoding device and the video decoding device, e.g. 16 x 16 size, may be used as the reference macroblock size.
[0561] According to an embodiment of the present invention, the video decoding device extracts information indicating the maximum macroblock size available for encoding or decoding the current bit stream from the bit stream and can use the extracted information to set the reference macroblock size. According to another embodiment of the present invention, the video decoding device extracts information indicating the minimum macroblock size available for encoding or decoding the current bit stream from the bit stream and can use the extracted information to set the reference macroblock size. According to yet another embodiment of the present invention, the video decoding device extracts information indicating both the maximum macroblock size and the minimum macroblock size available for encoding or decoding the current bit stream from the bit stream and can use the extracted information to set the reference macroblock size.
[0562] In the method of decoding the default_Mbsize value, which is information indicating the reference macroblock size, the entropy decoded value itself may be set as the reference macroblock size value and the reference macroblock size may be obtained by increasing or decreasing the predetermined size using the entropy decoded value as increasing factor or reducing factor. Alternatively, as described in said first decoding method, when the video coding apparatus encodes a value created by applying a logarithmic function to a macroblock size value, the macroblock size value can be obtained using the exponential function.
[0563] In particular, for example, when the value default_MBsize indicates the maximum macroblock size available for encoding or decoding the current bit stream and the video encoding device encodes the y value, which is a value equal to log2 (X / default_MBsize) (X is any positive integer , which is a multiple of 2), then the video decoding device can get the value default_Mbsize by entropy decoding y and multiplying X by <sup>2</sup> . In this case, X may be a value predetermined between the video encoding device and the video decoding device, such as the maximum available macroblock size, or the value extracted from the bit stream before decoding the default_MBsize value.
[0564] Alternatively, when the default_MBsize value indicates the minimum macroblock size available for encoding or decoding the current bit stream and the video encoding device encodes the y value, which is a value equal to log2 (X / default_MBsize) (X is any positive integer that is a multiple of 2), this video decoding device extracts the y value from the bit stream by entropy decoding. And then the video decoding device sets as default_MBsize the value created by multiplying X by <sup>2</sup> . In this case, X may be a value previously determined between the video encoding device and the video decoding device, such
EP2485490 as the minimum macroblock size available, or the value extracted from the bit stream before decoding the default_MBsize value.
[0565] Furthermore, when the video coding apparatus decodes the enlargement of the horizontal dimension and the vertical dimension, respectively, the reference macroblock size can be obtained by entropy decoding the enlargements of the horizontal dimension and the vertical dimension, respectively.
[0566] In addition, when the table index value previously determined between the video coding apparatus and the video decoding apparatus is encoded, a reference macroblock size can be obtained by using the decoded value as the table index value.
[0567] In this case, the reference macroblock size may be decoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0568] Furthermore, when the reference macroblock size or macroblock size information corresponds to the minimum subblock size and maximum partition layer information, the information about the reference minimum subblock size according to the reference macroblock size or the minimum subblock size compatible with the macroblock size and information about maximum split layer are extracted and decoded from the bit stream, and then the macroblock size is decoded.
[0569] In the method of decoding the default_minBlockSize value, which is information indicating the reference minimum subblock size, the entropy decoded value itself can be set as the reference minimum subblock size value and the reference minimum subblock size can be obtained by increasing or decreasing the predetermined size by value entropy decoded as an increase factor or decrease factor. Alternatively, as described in said first decoding method, when the video coding apparatus encodes a value created by applying a logarithmic function to the minimum subblock size value, the minimum subblock size value can be obtained using the exponential function. [0570] In particular, for example, when the default_minBlockSize value indicates the maximum minimum subblock size available for encoding or decoding the current bit stream and the video encoding device encodes the y value which is a value equal to log2 (X / default_minBlockSize) (X is any positive number integer, which is a multiple of 2), this video decoding device can get
2> y default_minBlockSize by entropy decoding the y value and multiplying X by <sup>2</sup> . In this case, X may be a value predetermined between the video encoding device and the video decoding device such as the available maximum minimum subblock size or the value extracted from the bit stream before decoding the default_minBlockSize value.
[0571] Alternatively, when the default_minBlockSize value indicates the minimum minimum subblock size available for encoding or decoding the current bit stream and the video encoding device encodes the y value, which is a value equal to log2 (X / default_minBlockSize) (X is any positive integer that is multiple 2), this video decoding device decodes entropy and extracts the value of y from the bit stream using entropy decoding. And then the video decoding device sets as default_minBlockSize the value created by multiplying X r
by <sup>2</sup> . In this case, X may be a value predetermined between the video encoding device and the video decoding device such as the smallest minimum size available
EP2485490 subblock or value extracted from the bit stream before decoding the default_minBlockSize value. [0572] Furthermore, when the video coding apparatus decodes the enlargement of the horizontal dimension and the vertical dimension, respectively, a reference minimum subblock size can be obtained by entropy decoding the enlargements of the horizontal dimension and the vertical dimension, respectively.
[0573] In addition, when the table index value previously established between the video coding apparatus and the video decoding apparatus is encoded, a reference minimum subblock size can be obtained by using the decoded value as the table index value.
[0574] In this case, the reference minimum subblock size can be decoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0575] The maximum partition layer information may be decoded by lossless compression such as binary arithmetic coding, Huffman coding, etc. and various methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0576] When the reconstructed minimum subblock size is N x N and the maximum partition layer is x, the macroblock size is (Nx <sup>2</sup> ) x (Nx <sup>2</sup> ) .
D-2-2-4) Method no. 4 for decoding macroblock size information [0577] The decoding method according to the fourth method of encoding the macroblock size is described below.
[0578] According to a fourth method, after encoding in the first frame the flag indicating whether to use the reference macroblock size and the macroblock size selected in the case where the reference macroblock size is not used, the flag indicating whether to use the macroblock size from the previous frame and the macroblock size for the current frame in the case of, when the macroblock size from the previous frame is not used, they can be encoded in subsequent frames starting from the second frame.
[0579] When a flag indicating whether to use the reference macroblock size indicates that the reference macroblock size is used, the macroblock size is evenly set to the reference macroblock size, and then decoding the first frame begins.
[0580] Beginning with the second frame, a flag indicating whether to use the macroblock size from the previous frame as the macroblock size for the current frame is decoded, and then the macroblock size information for decoding the current frame is decoded when the macroblock size from the previous frame is not used. When the macroblock size from the previous frame is used to decode the current frame, the macroblock size is set to a value equal to the macroblock size from the previous frame and the second frame is decoded.
[0581] In the method of decoding the default_MBsize value, which is information indicating the reference macroblock size or MB_size value, which is information indicating the macroblock size for the current frame, entropy decoded value can be used as the macroblock size and the macroblock size can be obtained by increasing or decreasing the top of the set size using entropy decoded value as increasing factor or reducing factor. Alternatively, as described in said first decoding method, when the video coding apparatus encodes a value created by applying a logarithmic function to a macroblock size value, the macroblock size value can be obtained using the exponential function.
[0582] Also, when the video coding device decodes the enlargement of the horizontal dimension and the vertical dimension, respectively, the reference macroblock size can be obtained by entropy
EP2485490 decode enlargements of the horizontal dimension and the vertical dimension respectively.
[0583] In addition, when the table index value previously determined between the video coding apparatus and the video decoding apparatus is encoded, a reference macroblock size can be obtained by using the decoded value as the table index value.
[0584] In this case, the reference macroblock size may be decoded using various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0585] Also, when the macroblock size information corresponds to the minimum subblock size and maximum partition layer information, the minimum subblock size information and maximum partition layer information are entropy decoded from the bit stream, and then the macroblock size is decoded.
[0586] In a method of decoding, the default_minBlockSize value, which is information indicating the reference minimum subblock size, or minblockSize value, which is information indicating the minimum subblock size for the current frame, the entropy decoded value can be used as the minimum subblock size and the minimum subblock size can be obtained by increasing or decreasing the predetermined size using the entropy decoded value as the increasing factor or the reducing factor. Alternatively, as described in said first decoding method, when the video coding apparatus encodes a value created by applying a logarithmic function to the minimum subblock size value, the minimum subblock size value can be obtained using the exponential function.
[0587] Furthermore, when the video coding apparatus decodes the enlargement of the horizontal dimension and the vertical dimension, respectively, the reference minimum subblock size can be obtained by entropy decoding the enlargements of the horizontal dimension and the vertical dimension, respectively.
[0588] In addition, when the table index value previously determined between the video coding apparatus and the video decoding apparatus is encoded, a reference minimum subblock size can be obtained by using the decoded value as the table index value.
[0589] In this case, the reference minimum subblock size can be decoded by various binary coding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0590] The maximum partition layer information may be decoded by lossless compression such as binary arithmetic coding, Huffman coding, etc. and various methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0591] When the reconstructed minimum subblock size is N x N and the maximum partition layer is x, the macroblock size is (Nx <sup>2</sup> ) x (Nx <sup>2</sup> ) .
D-2-2-5) Method No. 5 for decoding macroblock size information [0592] The decoding method according to the fifth method of encoding the macroblock size is described below. [0593] According to a fifth method, the macroblock sizes for the intra and inter frames respectively are extracted from predetermined locations within the bit stream between the video coding apparatus and the video decoding apparatus, and the macroblock size is set according to the frame type.
[0594] Flags indicating whether to decode the macroblock size for an intra frame and indicating whether to decode the macroblock size for an inter frame are played in the sequence header or in the frame headers, respectively,
EP2485490 and then the macroblock size for the intra or inter frame is decoded according to the flag value in the bit stream or the image is played back using the predetermined macroblock size.
[0595] A method of decoding information regarding the macroblock size for an intra frame and the macroblock size for an inter frame can be used in conjunction with said decoding methods according to said coding methods.
[0596] Also, when the information about the intro macroblock size or the inter macroblock size corresponds to the information about the minimum subblock size and maximum partition layer, the information about the minimum subblock size and information about the maximum partition layer are entropy decoded from the bit stream, then the macroblock size is decoded.
[0597] A method of decoding information regarding a minimum subblock size for an intra frame or a minimum subblock size for an inter frame can be used in conjunction with said decoding methods according to said encoding methods.
[0598] The maximum partition layer information may be decoded by lossless compression such as binary arithmetic coding, Huffman coding, etc. and various methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0599] When the reconstructed minimum subblock size is N x N and the maximum partition layer is x, the macroblock size is (Nx <sup>2</sup> ) x (Nx <sup>2</sup> ) .
D-2-3) Block diagram illustrating the decoding operation [0600] Meanwhile, the video decoding method according to one embodiment of the present invention may include extracting from the bit stream information of the macroblock size and configuring the macroblock size using the extracted information in the step S3810, extracting the encoded image data from the bit stream and creating the reconstructed image by decoding the encoded image data according to the block size identified by the block size information in step S3820.
[0601] It should be obvious to those skilled in the art that the various forms of macroblock size determination and encoding and decoding of size information may be implemented in a variety of ways by combining them with the individual forms of macroblock separation and coding and decoding of macroblock partitioning information according to said embodiments of the present invention.
[0602] The main features of the present invention can be summarized as follows.
The use of blocks having a variable size (e.g. a macroblock which is a coding / decoding unit)
Determining the size of a block having a variable size and encoding the size information
Separating a block having a predetermined size into subblocks and encoding partition information [0603] Meanwhile, as an example of macroblock separation according to one embodiment of the present invention, separation for prediction or transformation has been described in said embodiments. However, prediction or transformation is just an example to which separation can be applied, and the macroblock can be separated for various purposes besides prediction or transformation. In addition, the object that is subject to separation can be not only a macroblock, but also any area of the image. For example, even when a block having a predetermined size that corresponds to a prediction unit is split into sub-blocks for effective transformation, a split according to one embodiment of the present invention can be used.
[0604] In other words, the present disclosure provides various separation methods and a method and apparatus for efficiently encoding and decoding separation information when separation is required
EP2485490 image block for sub-blocks for any purpose.
[0605] Meanwhile, the video encoding / decoding device according to one embodiment of the present invention can be implemented by connecting the input terminal of the video decoding device according to one embodiment of the present invention to the output terminal of the video decoding device according to one embodiment of the present invention.
[0606] The video encoding / decoding device according to one embodiment of the present invention comprises a video encoder for encoding the image by producing encoded image data by encoding the current block divided into a plurality of subblocks and generating the encoded partition information data by encoding the partition information for the current block; and a video decoder for decoding the image as a result of reproducing the split information for the current block by decoding the encoded data with the split information extracted from the bit stream and playing the current block divided into multiple subblocks by decoding the encoded image data extracted from the bit stream according to the reconstructed split information for the current block.
[0607] The video encoding / decoding method according to one aspect of the present invention comprises encoding the image by generating encoded image data by encoding the current block divided into a plurality of subblocks and generating the encoded partition information data by encoding the partition information for the current block; and decoding the image as a result of reproducing the split information for the current block by decoding the encoded information with the split information extracted from the bit stream and reproducing the current block divided into multiple subblocks by decoding the encoded image data extracted from the bit stream in accordance with the reconstructed split information for the current block .
[0608] In the above description, although all components of the embodiments of the present invention may have been explained as assembled or functionally combined as a unit, the present disclosure is not intended to be limited to such embodiments. Rather, within the scope of the present invention, individual components can be selectively and functionally combined any number of times. Each of the components can also be implemented alone in the form of hardware, while the respective components can be selectively combined partially or in whole and implemented in the form of a computer program having program modules to perform the functions of hardware equivalents. The codes or code segments that make up such a program can be easily deduced by those skilled in the art. The computer program may be stored on a computer readable medium that can, in operation, implement the embodiments of the present invention. Candidates for computer-readable media include magnetic media, optical media, and media using a carrier wave.
[0609] Furthermore, terms such as 'contain', 'assemble' and 'have' should by default be interpreted as containing or open, and not as excluding or closing unless expressly defined otherwise. All terms that are technical, scientific or otherwise agree with meanings as understood by those skilled in the art, unless otherwise defined. Common terms found in dictionaries should be interpreted in the context of related technical records in a way that is not very ideal or impractical, unless this disclosure clearly defines them in this way.
[0610] Although exemplary embodiments of the present invention have been described for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible without departing
EP2485490 from the essential features of the disclosure. Therefore, exemplary embodiments of the present invention have not been described for limiting purposes. For this reason, the scope of the disclosure is not to be limited by the above forms, but by the claims and their equivalents.
[Industrial use] [0611] As described above, the present disclosure is very useful for applications in the areas of image compression processing for high resolution video coding and decoding by effectively encoding and decoding block division information during high resolution image coding using macroblocks variable size, which results in improved compression performance.
Contents24
113 members in 10 offices
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| 20090093982 | Republic of Korea | A | |
| 20090093987 | Republic of Korea | A | |
| 10820868 | European Patent Office (EPO) | A | |
| 2010006735 | Republic of Korea | W | |
| 20100096032 | Republic of Korea | A | |
| EP20100820868 | – | – | – |
| KR20090093982 | – | – | – |
| KR20090093987 | – | – | – |
| KR20100096032 | – | – | – |
| WO2010KR06735 | – | – | – |
Members113
| Document | Office | Kind | |
|---|---|---|---|
| KR20110036519A | Republic of Korea | A | |
| KR20110036520A | Republic of Korea | A | |
| KR20110036521A | Republic of Korea | A | |
| WO2011040794A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2011040795A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2011040796A2 | World Intellectual Property Organization (WIPO) | A2 | |
| KR20110043407A | Republic of Korea | A | |
| KR20110043510A | Republic of Korea | A | |
| WO2011049392A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2011040794A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO2011040795A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO2011040796A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO2011049392A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP2485489A2 | European Patent Office (EPO) | A2 | |
| EP2485490A2 | European Patent Office (EPO) | A2 | |
| US2012207211A1 | United States of America | A1 | |
| CN102668565A | China | A | |
| US2012269274A1 | United States of America | A1 | |
| CN102907098A | China | A | |
| CN102918840A | China | A | |
| US2013039415A1 | United States of America | A1 | |
| US2013136179A1 | United States of America | A1 | |
| KR20130088110A | Republic of Korea | A | |
| EP2485490A4 | European Patent Office (EPO) | A4 | |
| US2013315299A1 | United States of America | A1 | |
| EP2485489A4 | European Patent Office (EPO) | A4 | |
| KR101479129B1 | Republic of Korea | B1 | |
| KR20150014414A | Republic of Korea | A | |
| KR20150014416A | Republic of Korea | A | |
| CN104602013A | China | A | |
| CN104661026A | China | A | |
| CN104683808A | China | A | |
| CN104683809A | China | A | |
| KR101534049B1 | Republic of Korea | B1 | |
| US2015195543A1 | United States of America | A1 | |
| KR101543314B1 | Republic of Korea | B1 | |
| KR101543319B1 | Republic of Korea | B1 | |
| US9137545B2 | United States of America | B2 | |
| CN104935934A | China | A | |
| CN104935935A | China | A | |
| CN104954799A | China | A | |
| EP2485490B1 | European Patent Office (EPO) | B1 | |
| US2015288960A1 | United States of America | A1 | |
| US2015288961A1 | United States of America | A1 | |
| US2015288971A1 | United States of America | A1 | |
| US2015288972A1 | United States of America | A1 | |
| US2015288987A1 | United States of America | A1 | |
| CN105007491A | China | A | |
| CN105007492A | China | A | |
| CN105049865A | China | A | |
| US2015334401A1 | United States of America | A1 | |
| US2015334402A1 | United States of America | A1 | |
| US2015341637A1 | United States of America | A1 | |
| CN102668565B | China | B | |
| US9215461B2 | United States of America | B2 | |
| ES2554237T3 | Spain | T3 | |
| HK1205610A1 | Hong Kong, China | A1 | |
| US9264716B2 | United States of America | B2 | |
| EP2991353A1 | European Patent Office (EPO) | A1 | |
| EP2991356A1 | European Patent Office (EPO) | A1 | |
| EP2993904A1 | European Patent Office (EPO) | A1 | |
| PL2485490T3This record | Poland | T3 | |
| CN102907098B | China | B | |
| US9344731B2 | United States of America | B2 | |
| US9344732B2 | United States of America | B2 | |
| CN102918840B | China | B | |
| HUE026080T2 | Hungary | T2 | |
| KR101635830B1 | Republic of Korea | B1 | |
| US9462277B2 | United States of America | B2 | |
| US9462278B2 | United States of America | B2 | |
| KR20160114559A | Republic of Korea | A | |
| KR101673028B1 | Republic of Korea | B1 | |
| US9549190B2 | United States of America | B2 | |
| KR101698499B1 | Republic of Korea | B1 | |
| KR101698509B1 | Republic of Korea | B1 | |
| US9565444B2 | United States of America | B2 | |
| EP2991353B1 | European Patent Office (EPO) | B1 | |
| EP2993904B1 | European Patent Office (EPO) | B1 | |
| US9609334B2 | United States of America | B2 | |
| US9609335B2 | United States of America | B2 | |
| ES2625010T3 | Spain | T3 | |
| ES2628515T3 | Spain | T3 | |
| PL2991353T3 | Poland | T3 | |
| PL2993904T3 | Poland | T3 | |
| CN104602013B | China | B | |
| US9813710B2 | United States of America | B2 | |
| HUE033566T2 | Hungary | T2 | |
| CN105049865B | China | B | |
| CN104683808B | China | B | |
| CN105007491B | China | B | |
| CN105007492B | China | B | |
| HUE034567T2 | Hungary | T2 | |
| CN104661026B | China | B | |
| CN104935934B | China | B | |
| CN104935935B | China | B | |
| CN104954799B | China | B | |
| CN104683809B | China | B | |
| US10136129B2 | United States of America | B2 | |
| EP2991356B1 | European Patent Office (EPO) | B1 | |
| DK2991356T3 | Denmark | T3 |
Numbers
- Publication, DOCDB
- 2485490
- Publication, EPODOC
- PL2485490T
- Application
- 820868
- Application, DOCDB
- 10820868
- Application, EPODOC
- PL20100820868T
Titles2
- English
- METHOD AND APPARATUS FOR ENCODING/DECODING IMAGE USING SPLIT LAYER
- Polish
- Sposób i urządzenie do kodowania/dekodowania obrazu za pomocą warstwy rozdziału
Classification
- IPC, 5
- H04N19 176
- H04N19 119
- H04N19 44
- H04N19 463
- H04N19 96