Apparatus for encoding image using split layer
Abstract
The present invention relates to a method and an apparatus for encoding/decoding a video using a split layer. The video encoding/decoding method generates an encoded image data by encoding a current block partitioned into a plurality of subblocks, generates an encoded partition information data by encoding partition information of the current block, generates a bitstream including the encoded image data and the encoded partition information data, and then reconstructs the video image from the generated bitstream. According to the present disclosure, when encoding a high resolution video with variable sized blocks, various block shapes may be used for the encoding, and efficient encoding and decoding of the block partition information can improve the compression efficiency.
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 encoding device (2600) containing:1. Urządzenie do kodowania wideo (2600) zawierające: a unit determining the maximum partition layer (2620) for determining the maximum partition layer value and the minimum subblock size for encoding the current block, the maximum partition layer value indicating the number of layers according to which the current block can be maximally divided into subblocks using a tree structure, and the subblocks have a size equal to or greater than the minimum size of the sub-block;jednostkę wyznaczającą maksymalną warstwę podziału (2620) do wyznaczania wartości maksymalnej warstwy podziału i minimalnego rozmiaru podbloku dla kodowania bieżącego bloku, przy czym wartość maksymalna warstwy podziału wskazuje liczbę warstw, według której bieżący blok może być maksymalnie podzielony na podbloki przy użyciu struktury drzewiastej, zaś podbloki mają rozmiar równy lub większy od minimalnego rozmiaru podbloku;a maximum partition layer coder (2630) for coding the maximum partition layer value and logarithmic value values of the minimum subblock size in the bitstream to indicate the size of the current block in the bit stream;and a video encoder (2610) for generating coded image data by encoding individual subblocks within the current block that are equal to or larger than the minimum subblock size and to encode partition information indicating the division of the current block into individual subblocks using a tree structure. koder maksymalnej warstwy podziału (2630) do kodowania wartości maksymalnej warstwy podziału i wartości funkcji logarytmicznej 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 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. 2. An apparatus (2600) according to claim 1. 1. in which the value of the logarithmic function of the minimum subblock size to be encoded is log2 (minblockSize / X), where minblockSIze is the minimum size of the subblock and X is the predetermined positive integer being a multiple of 2. 2. Urządzenie (2600) według zastrz. 1., w którym wartość funkcji logarytmicznej minimalnego rozmiaru podbloku do zakodowania wynosi log2 (minblockSize/X), gdzie minblockSIze oznacza minimalny rozmiar podbloku a X jest określoną z góry dodatnią liczbą całkowitą będącą wielokrotnością 2. 3. The device (2600) according to claim 1. 1., in which the value of the maximum partition value and the value of the logarithmic function of the minimum subblock size are the values coded using 3. Urządzenie (2600) według zastrz. 1., w którym wartość maksymalnej wartości podziału i wartość funkcji logarytmicznej minimalnego rozmiaru podbloku są wartościami zakodowanymi przy użyciu EP2991353 Golomba's exponential code. EP2991353 eksponencjalnego kodu Golomba. 4. An apparatus (2600) according to claim 1, wherein the current block is 16 x 16, 32 x 32 or 64 x 64. 4. Urządzenie (2600) według zastrz.1., w którym bieżący blok ma rozmiar 16 x 16, 32 x 32 albo 64 x 64. EP2991353 χχχχΝ :: χ:: χ:: χ:: χ:: χ:: χ:: Χχ: χχχχχχχ :: χ:: EP2991353 χχχχΝ ::χ::χ::χ::χ::χ::χ::χχ:χχχχχχχ::χ:: Μ, Ν are integers equal or greater than 16 Figure IA Μ, Ν są liczbami całkowitymi równymi lub większymi od 16 FIG.l FIG. 2 FIG. 2 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 kO 'C <L) (/) 1q EP2991353 kO 'C <L) (/) 1q 6 discloses FIG.6 EP2991353 δ EP2991353 δ £ £ Έ • c <υ Έ •c <υ Ε Ε FIG. 7 FIG. 7 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 Numer typu Numer typu Numer typu podziału: 0 podziału: 1 podziału: 2 Type number Type number Number of division type: 0 division: 1 division: 2 FIG. 10 FIG. 10 Numer typu podziału: 3 Split type number: 3 EP2991353 EP2991353 EP2991353 EP2991353 FIG. 13 FIG. 13 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 Beginning Początek FIG. 18 FIG. 18 EP2991353 EP2991353 EP2991353 EP2991353 Macroblock size = 64 x 64 Rozmiar makrobloku=64 x 64 FIG. 20 FIG. 20 The value of the maximum dividing layer: 4 Wartość maksymalnej warstwy podziału: 4 EP2991353 [~ ϊ ~ | ~ | ~ 7]: The order of the split type encoding EP2991353 [~ϊ~| ~ |~7] : Kolejność kodowania typu podziału FIG. 21 FIG. 21 FIG. 22 FIG. 22 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 Macroblock size - 64x64 Maximum partition 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 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 EP2991353 3700 3700 Ν ro Ν ro JO o JO o > ϊ c >ϊ c about o N N ΙΟ ΙΟ '£ Z ω '£Z ω E E -l- «ω -ł—« ω 100 100 EP2991353 EP2991353 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 intended solely to assist the reader and does not form part of the European patent document. Although the utmost care has been taken in its creation, errors or omissions can not 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] 101 101
689 paragraphs in 17 sections, as filed
Technical field The present invention relates to a method and apparatus for coding / decoding an image by means of a separation or dividing layer. In particular, the present invention relates to a method and apparatus that performs encoding and decoding in a sub-block unit after the block is split into sub-blocks when the high-resolution image is encoded by variable-sized blocks and improves compression performance by effectively encoding / decoding block partition information.
[Background Art] [0002] The description describes both the coding technique and the appropriate decoding technique to provide a better understanding of the invention. The invention is, however, limited to the coding technique, and in particular to the coding apparatus.
[0003] The statements in this section are only an outline of information regarding the present invention and can not constitute prior art.
[0004] 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, followed by residual blocks to be transformed, quantized and entropy coded and finally transmitted.
[0005] In Kim J et al., "Enlarging MB size for high fidelity video coding beyond HD", 36. VCEG MEETING, 2008, an extension of the H.264 codec architecture with enlarged macroblock sizes is shown. The recently adopted H.264 / AVC standard recommends that coding devices use blocks of 16x16 pixels for a fixed macroblock size and divide each macroblock into smaller blocks for which intra-prediction or inter-prediction prediction is performed. When performing intra-pictorial prediction, each macroblock can be divided into smaller parts 16x16, 8x8 or 4x4, and the 16x16 block is subjected to intra prediction in one of four prediction modes, 8x8 and 4x4 blocks are subjected to intra prediction in one of the nine prediction modes . In the case of inter-prediction, the macroblock can be divided into blocks 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 or 4x4, and then used for inter-prediction with motion compensation. Transformation is performed on 8x8 or 4x4 blocks, and the quantization used for transformation coefficients is scalar quantization.
[0006] Nevertheless, since typical video compression technology uses fixed-sized macroblocks at the time of image coding (even if H.264 / AVC divides and encodes macroblocks in smaller block units, then the macroblock has a fixed size), then image coding in high resolution hardly achieves sufficient coding efficiency.
[0007] In addition, because the size of the macroblock is fixed, the sizes of the subblocks within the macroblock, which are prediction or transformation units, are also limited.
[Being] [Technical Problem] [0008] Therefore, to solve the aforementioned problem within various aspects of the present invention
EP2991353 intends to encode an image using variable size blocks and different subblock sizes when the high definition image is encoded, and improve compression efficiency by efficiently encoding and decoding block split information.
[Technical solution] Within the scope of the invention, there is provided a video coding apparatus in accordance with the features of claim 1. Preferred embodiments are set forth in the dependent claims. [Preferred effects] According to the present invention, as described above, effective video coding and decoding can be achieved by coding the image using variable-size macroblocks and different sizes of subblocks when the high resolution image is encoded, and encoding and decoding information about the image. broken block.
[Description of drawings] [0011]
Figs. 1-3 show exemplary schemes illustrating macroblocks in an M × N pixel unit according to an embodiment of the present invention,
Fig. 4 and Fig. 5 are examples of diagrams illustrating different subblock modes according to an embodiment of the present invention,
Fig. 6 is a block diagram illustrating a video encoding apparatus according to an embodiment of the present invention,
Fig. 7 is a block diagram illustrating a video decoding apparatus according to an embodiment of the present invention,
Fig. 8 is a schematic diagram illustrating a first embodiment of a video encoding apparatus according to another aspect of the present invention,
Fig. 9 is an exemplary diagram illustrating sub-blocks resulting from the separation of a macroblock for each layer according to another aspect of the present invention,
Fig. 10 is an exemplary diagram illustrating partition types according to another aspect of the present invention,
Fig. 11 is an exemplary diagram illustrating a macroblock being split into sub-blocks with different block sizes according to another aspect of the present invention,
Fig. 12 is an exemplary diagram illustrating in a sequential manner processes in which a macroblock is split for each partition layer,
Fig. 13 is an exemplary diagram illustrating processes in which information indicating the type of macroblock partition for each layer is sequentially coded according to the order of the subblocks,
Fig. 14 is an exemplary diagram illustrating a method for encoding block partition information using a tree structure according to another aspect of the present invention,
Fig. 15 and Fig. 16 show exemplary diagrams illustrating an example of a method for encoding block partition information using a tree structure according to another aspect of the present invention,
17 and 18 are exemplary diagrams illustrating another example of a method for encoding block partition information using a tree structure according to another aspect of the present invention,
Fig. 19 illustrates sub-blocks separated based on the partition layer value according to another aspect of the present invention,
Fig. 20 is an exemplary diagram illustrating a process for encoding block partition information at
EP2991353 using the partition layer value and the partition flag according to another aspect of the present invention,
Fig. 21 is an exemplary diagram illustrating a macroblock being split into subblocks having different block sizes in accordance with another aspect of the present invention,
Fig. 22 is an exemplary diagram illustrating a process for sequentially coding information indicating a partition type for each macroblock layer in accordance with the sequence of subblocks,
Fig. 23 is a block diagram illustrating a video encoding method according to another aspect of the present invention,
Fig. 24 is a block diagram illustrating a video decoding apparatus according to another aspect of the present invention,
Fig. 25 is a block diagram illustrating a video encoding method according to another aspect of the present invention,
Fig. 26 is a block diagram illustrating a video coding apparatus according to yet another aspect of the present invention,
Fig. 27 is an exemplary diagram illustrating the relationship between the partition layer and the minimum subblock size according to yet another aspect of the present invention,
Fig. 28 is a block diagram illustrating an example of a method for determining the maximum partition 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 partition layer value according to yet another aspect of the present invention,
Fig. 30 is an exemplary diagram illustrating the process of encoding 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 encoding method according to yet another aspect of the present invention,
Fig. 32 is a block diagram illustrating a video decoding apparatus according to yet another aspect of the present invention,
Fig. 33 is a block diagram illustrating a video decoding method according to yet another aspect of the present invention,
Fig. 34 is an exemplary diagram illustrating partition types according to another aspect of the present invention,
Fig. 35 is a schematic diagram illustrating a video encoding apparatus according to yet another aspect of the present invention,
Fig. 36 is a block diagram illustrating an embodiment of a video coding method according to another aspect of the present invention, i
Fig. 37 is a block diagram illustrating the implementation of a video decoding apparatus according to another aspect of the present invention.
[Embodiment of the invention] [0012] In the following, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, the same elements will be denoted by the same reference numerals, although they are depicted in various drawings. Furthermore, in the following description of the present invention, a detailed description of the known functions and configurations incorporated in this document will be omitted in the event that this could obscure the subject matter of the present invention.
[0013] In addition, in the description of components of the present invention, such may be used
EP2991353 as first, second, A, B, (a) and (b). Their purpose is only to distinguish one component from the other, not to imply or suggest the essence, sequence or sequence of components. If the component has been described as 'linked', 'connected' or 'related' to another component, it may not only mean that these components are directly 'linked', 'linked' or 'related', but also that they are indirect 'connected', 'linked' or 'linked' using a third component.
[0014] The video coding apparatus and the video decoding apparatus to be discussed in the following description may be a personal computer (PC), a notebook computer, a pocket computer (PDA), a portable media player (PMP), a PlayStation Portable console ( PSP) or a mobile communication terminal, and may refer to a plurality of devices comprising a communication device such as a communication modem for communicating with different devices or a wired / wireless communication network, memory for storing different programs and data for encoding or decoding video, and a microprocessor for executing the program for operation and control.
[0015] Furthermore, the video encoded in the bit stream by the video encoding apparatus is transmitted to the video decoding apparatus via a wired / wireless communication network such as the internet, an NFC (Near Field Communication) short-range network, a wireless LAN (Local Area Network). , WiBro (Wireless Broadband) and a cellular network or a communication interface such as a cable or universal serial bus (USB) in real time or non-real time and decoded in a video decoding device, and thus the decoded video can be reproduced and reproduced as a video.
[0016] In general, the video comprises a series of frames, and each frame is divided into predetermined areas such as macroblocks, which are reference units for coding and decoding an image. Macroblocks are divided into macroslots intra and macroblocks inter according to the macroblock decoding method. Intra macroblock refers to a macroblock encoded with predictive intra-coding. Predictive intra-image coding corresponds to a scheme for generating predicted blocks by predicting the pixel of the current block using the pixels of the reproduced blocks previously coded and decoded within the current frame for which the current coding is performed, and encoding the difference between the produced predicted block and the pixel of the current block. Inter macroblock refers to a macroblock encoded with predictive inter-picture coding. Predictive inter-picture coding corresponds to a scheme for generating a predicted block by predicting the current block within the current frame with respect to one or more past frames or future frames and encoding the value of the difference between the produced predicted block and the current block. Here the frame to which the coding or decoding of the current frame applies will be called the reference frame. Predictive inter-picture coding corresponds to a scheme for generating a predicted block by predicting the current block within the current frame with respect to one or more past frames or future frames and encoding the value of the difference between the produced predicted block and the current block. Here the frame to which the coding or decoding of the current frame applies will be called the reference frame. Predictive inter-picture coding corresponds to a scheme for generating a predicted block by predicting the current block within the current frame with respect to one or more past frames or future frames and encoding the value of the difference between the produced predicted block and the current block. Here the frame to which the coding or decoding of the current frame applies will be called the reference frame.
A) Encoding and decoding using a macroblock or block having an arbitrary size [0017] In the following, an example is described a device for coding and decoding an image in a block unit. Here, the block can be a M x N macroblock (M and N can be integers equal to or greater than 16) or a subblock or a smaller O x P block (O and P can be integers equal or less than M or N) . The coding and decoding of the picture in the block unit is only an example and the picture can be coded and decoded in a unit that is a specific area such as blocks or unspecified areas. However, the video coding / decoding device that will be described later may use blocks having an arbitrary size and the block size is size
EP2991353 predetermined between the video encoding apparatus and the video decoding apparatus.
A-1) Arbitrary Size Macroblock [0018] Figs. 1-3 show exemplary schemes illustrating macroblocks in an M × N pixel unit according to an embodiment of the present invention.
[0019] Fig. 1 shows as an example macroblocks in a unit M × N pixels (hereinafter referred to as M x N macroblocks) expressed as part of an input image having a certain size, Fig. 2 shows as an example a CIF image having 396 16 x 16-size macroblocks 16 and Fig. 3 shows as an example a CIF image comprising 54 macroblocks of size 64x32.
[0020] In conventional video compression technology, the image is split into fixed-size macroblocks 16x16, then encoded and decoded as shown in Fig. 2. However, in the embodiment of the present invention, the picture can be coded and decoded using 64 x macroblocks 32 (not only size 64 x 32, 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 Figure 3.
A-2) Example of Sub-Block Mode [0021] Fig. 4 and Fig. 5 are exemplary diagrams illustrating different sub-block modes according to an embodiment of the present invention.
[0022] Fig. 4 shows the subblock modes available for the 32 × 32 macroblock and Fig. 5 shows the subblock modes available for the 32 × 16 macroblock.
In one embodiment of the present invention, the M × N macroblock may be separated into smaller blocks, i.e., subblocks as shown in Fig. 4 and Fig. 5. The macro macroblocks may be coded using intra prediction or encoded using inter-prediction in a sub-unit unit.
A-3) Description of the video encoding apparatus [0024] Fig. 6 is a block diagram illustrating a video encoding apparatus according to an embodiment of the present invention.
The video coding apparatus according to one embodiment of the present invention corresponds to a picture coding device using macroblocks having a size equal to or larger than the arbitrary size and may comprise a predictor 610, an encoder 620, a player 630, a filter 640 and a frame memory 650. Here a player 630, filter 640 and frame memory 650 may be omitted or selectively included in another element according to the method of implementation.
[0026] The predictor 610 may include motion estimator 612, motion compensator 614 and intra predictor 616 and perform prediction of the input picture macroblocks. Here, the macroblocks refer to macroblocks of a size equal to or larger than the size of 16 x 16 (i.e. macroblock size M x N, where M and N are integers equal to or greater than 16).
[0027] The motion estimator 612 generates a motion vector by comparing the macroblock whose prediction is desired, with the reference frame stored in the memory of the 650 frame and the motion estimation for the corresponding macroblock.
The motion compensator 614 receives a block corresponding to the macroblock size whose prediction is desired from the reference frame stored in the frame memory 650 with reference to the motion vector generated by the motion estimator 612. The block taken by the motion compensator 614 becomes the predicted macroblock having the predicted macroblock value whose prediction is desired.
EP2991353 [0029] The intra predictor 616 performs intra-pictorial prediction of a block whose prediction is desired. For intra-pictorial prediction, the intra predictor 616 generates a reference block using information about reconstructed neighboring pixels already encoded and decoded, and compares the reference block with the target macroblock to be encoded to determine the intra prediction mode. Next, the intra predictor 616 performs intra-pictorial prediction of the macroblock according to the predicted intra-imaging prediction. The macroblock predicted by the intra predictor 616 becomes the predicted macroblock having the predicted value of the target macroblock.
[0030] The encoder 620 encodes a residual signal that 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. In addition, if the encoder 620 performs prediction between the images of the target macroblock to be encoded, the encoder 620 may encode traffic information such as a motion vector produced by the traffic estimator 612 and the macroblock mode information, such as the macroblock size. In case the encoder 620 performs intra prediction of the target macroblock to be encoded, the encoder 620 may encode the prediction mode information such as the intra prediction mode and the macroblock mode information such as the macroblock size.
[0031] The player 630 performs inverse quantization and inverse transformation for the transformed and quantized residual signal and adds a residual signal to the predicted macroblock being the output from the predictor 610 to reproduce the target macroblock.
[0032] The filter 640 filters the reconstructed target macroblock using a filter such as a block removal filter. The filtered reproduced macroblock is placed in the frame 650 memory and used in the predictor 610 for the inter-prediction of the next macroblock or macroblock from the next frame. A-4) Description of the video decoding apparatus [0033] Fig. 7 is a block diagram illustrating a video decoding apparatus according to an embodiment of the present invention.
[0034] The video decoding apparatus according to one of the embodiments of the present invention may comprise a decoder 710, a predictor 720, a player 730, a filter 740 and a frame memory.
[0035] The decoder 710 extracts from the input bit stream three types of information required to decode the macroblock.
[0036] First, the decoder 710 decodes entropy and extracts information about the macroblock type regarding whether the macroblock whose decode is currently desired is the intra macroblock or the inter macroblock, and information about the subblock mode indicating the subblock modes for the macroblock.
[0037] Second, the decoder 710 extracts the information required for the prediction as a result of entropy decoding. In this case, the decoding method of the type of prediction data to be decoded and the prediction data varies 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 traffic compensation of each subblock and traffic information such as a motion vector is extracted from the bit stream and decoded. When the block to be reproduced is an inter block, the information about the prediction modes in the image for the luminance component and the chrominance component are extracted from the bit stream and decoded.
[0038] Finally, the decoder 710 decodes the information required to decode the residual signal.
EP2991353
Information indicating whether there is a transformation coefficient that is not equal to 0 is first decoded in each subblock (e.g., CBP), and transform information indicating the type of transformation and quantized transform coefficient are decoded for blocks having a transformation coefficient that is not equal to 0.
The predictor 720 performs the prediction of the current block to be decoded on a current basis, and may include motion compensator 722 and intra predictor 724. When the current block is the inter block, the motion compensator 722 generates the predicted macroblock by retrieving pixels corresponding to the size of the current macroblock from the cage. The predicted intra predictor 724 generates the predicted macroblock by predicting the current macroblock according to the reproduced intra prediction mode decoded by the decoder 710. The reference is stored in the memory of the frame 750 using the reproduced motion vector decoded by the decoder 710.After generating the residual signal by inverse quantization of the quantized transformation coefficient decoded by the decoder 710 and the inverse transformation of the inverted transform coefficient using the reconstituted type extracted from the decoder 710, the player 730 generates the reproduced macroblock by adding the generated residual signal to the predicted macroblock generated by the predictor 720. the restored macroblock is filtered in filter 740 and stored in frame memory 750, and the filtered and stored macroblock is used to reproduce the next block or next frame.the player 730 generates the reproduced macroblock by adding the generated residual signal to the predicted macroblock generated by the predictor 720. The generated reproduced macroblock is filtered in filter 740 and stored in frame 750, and the filtered and stored macroblock is used to reproduce the next block or next frame.the player 730 generates the reproduced macroblock by adding the generated residual signal to the predicted macroblock generated by the predictor 720. The generated reproduced macroblock is filtered in filter 740 and stored in frame 750, and the filtered and stored macroblock is used to reproduce the next block or next frame.
[0040] As described above, the video encoding apparatus 600 and the video decoding apparatus 700 according to one embodiment of the present invention may encode and decode an image using blocks having an arbitrary size.
B) Block division and coding and decoding of partition information [0041] Hereinafter, another device and method for separating a macroblock having an arbitrary size into a plurality of subblocks by means of a partition layer (or separation) for prediction or transformation and for efficient coding and decoding of partition information indicating the shapes and sizes of subblocks created by separation. However, although the video encoding / decoding device that will be discussed below, it may use macroblocks having an arbitrary size,
[0042] The partition information may be information indicating the sizes and shapes of the subblocks created by the separation for prediction and transformation. The video coding apparatus includes split information and coded image data in the bitstream and transmits the bit stream to the video decoding apparatus.
[0043] Furthermore, the video coding apparatus may code the split information for the prediction and the partition information for the transformation, respectively.
[0044] At the time of decoding, the video decoding apparatus extracts and decodes the partition information from the bitstream and distributes the macroblock into a plurality of subblocks for prediction or transformation. The video decoding device then performs the prediction or transformation in the sub-block unit to reproduce the image.
B-1) Device for video coding
B-1-1) Coding device
EP2991353 [0045] Fig. 8 is a block diagram illustrating a video coding apparatus according to another aspect of the present invention.
[0046] The video encoding device 800 according to another aspect of the present invention may comprise a video encoder 810 and a partition information coder 820.
[0047] The video encoding apparatus 800 of Fig. 8 encodes partition information in the burst information encoder 820 and then encodes the predicted data and / or image data including the data required to decode the residual signal such as the type of transformation, CBP and transform coefficient. Here, the predicted data correspond to data indicating whether each subblock is an intra block or an inter block, and for the intra block they correspond to the intra prediction mode and for the inter block correspond to the traffic information. The video encoder 810 may be implemented as a video encoder 600 according to an embodiment of the present invention described with reference to Fig. 6. That is, the video encoder 810 splits a 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 macroblock partition type having the lowest coding cost. The partition information indicating the designated macroblock partition type is encoded in the bit stream by the encoder 820 and encoded using predictive coding. Image data from the plurality of subblocks resulting from the separation within the macroblock are generated.
[0048] The partition information encoder 820 encodes the partition information given by the video encoder 810 to produce data with partition information. Here, the partition information may be information about block sizes and shapes for many subblocks created by separating the macroblock for prediction or transformation.
[0049] In a typical video compression technology, as the macroblock size is set to 16 x 16 size, subblocks having a small size such as subblocks of magnitude 8 x 8, 4 x 4, etc. may be used. However, according to one embodiment of the present invention, since the size of the macroblock can be variously set to have a size equal to or larger than the size 16x16, the sizes and shapes of the subblocks can also be variously set and thus the macroblock can be separated into different shape sub-blocks. . Therefore, according to another aspect of the present invention, the predictive coding in the video decoding apparatus should be performed by transmitting to the video decoding apparatus information about the sizes and shapes of the subblocks resulting from the macroblock separation and the macroblock separation in the same manner as in the video coding apparatus. Referring to Figs. 9-22, it is described that the partition information encoder 820 encodes block information.
B-1-2) Subblock Mode [0050] According to another aspect of the present invention, the macroblock is split into sub-blocks of different sizes for each layer and predictive coding and prediction decoding may be performed for each sub-block sub-block.
[0051] Fig. 9 is an exemplary diagram illustrating subblocks resulting from a macroblock separation for each layer according to another aspect of the present invention.
[0052] In Fig. 9, the macroblock size is N × N and N is an integer equal to or greater than 16. Fig. 9 shows subblocks that can be separated on the assumption that the minimum size of the subblock 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 can be set to a different size than the size 4 x 4.
EP2991353 [0053] As shown in Fig. 9, according to another aspect of the present invention, the macroblock may be divided into sub-blocks of different sizes for each layer. A macroblock can be divided into four types of subblocks for each layer from layer 0 to layer log2 (N / 4). In this case, the K + 1 subblocks can only be used if the K-layer sub-block (0 <K <log2 (N / 4)) is split into 4 subblocks.
[0054] For example, for a 64 x 64 macroblock, the macroblock may be split into 4 layers from the layer 0 to the layer 3 and the individual layers may include subblocks having 4 different block sizes. Layer 0 contains a subblock 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 × 32. Layer 1 comprises a subblock having a block size of 32 × 32, subblocks having a size block 32 x 16, subblocks having a block size of 16 x 32 and subblocks having a block size of 16 x 16. Layer 2 comprises a subblock having a block size of 16 x 16, subblocks having a block size of 16 × 8, subblocks having a block size of 8 x 16 and subblocks having block size 8 x 8. Layer 3 contains a sub block with an 8 x 8 block size, subblocks having a block size of 8 x 4,
Here, when the N x N block in the K layer is separated into 4 subblocks having the size N / 2 x N / 2, the divided subblock N / 2 x N / 2 can be included in both layers K and K + 1. This is in a 64 x 64 macroblock, a 32 x 32 subblock can be designated as a subblock type contained in layer 0 or a subblock type included in layer 1.
In this case, the method of assigning the layer number to the subblock created by the separation may be different depending on the availability of each layer. If the K + 1 layer is available, the K + 1 layer number is allocated to the sub-block. If the layer K + 1 is not available, the layer number K is allocated to the sub-block.
[0057] 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 included in the layer 1 When one 32x32 subblock inside the macroblock is split into 4 16x16 subblocks, each 16x16 subblock is included in layer 2. When each 16x16 subblock is split into 4 sub 8 x 8 subblocks, an 8 x 8 subblock is included in layer 3. When each 8 x 8 subblock is split into 4 subblocks of size 4 x 4, the 4 x 4 subblock is included in layer 3, because layer 4 is not available.
Furthermore, when the N x N block in a K layer is separated into 4 N / 2 × N / 2 subblocks, the N / 2 × N / 2 subblocking resulting from the separation may be assigned a K-layer number. when the N / 2 x N / 2 subblock is split into smaller subblocks, then the sub-block N / 2 x N / 2 sub-block is assigned the K + 1 layer number.
[0059] 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 size subblocks, the 32 x 32 subblock is included in the 0 layer When one 32x32 subblock inside the macroblock is split into 4 16x16 subblocks, each 16x16 subblock is included in layer 1. When each subblock is 16x
EP2991353 is divided into 4 sub-8x8 sized sub-blocks, the 8x8 subblock is included in layer 2. In addition, when each 8x8 subblock is split into 4 subblocks with a size of 4 x 4, the 4 x 4 subblock is included in layer 3.
B-1-3) Partition type [0060] Furthermore, the macroblock may be separated using the various types of subdivisions shown in Figs. 10 and 34.
[0061] Fig. 10 and Fig. 34 are exemplary diagrams illustrating types of divisions according to another aspect of the present invention.
B-1-3-1) Example 1 partition types [0062] Fig. 10 is an exemplary diagram illustrating types of divisions according to another aspect of the present invention.
[0063] Fig. 10 shows an example of partition type indicating information (partition type numbers) to identify block sizes for subblocks created by separation for each layer.
NN [0064] As shown in Fig. 10, when the subblock <sub>2</sub><sup>K</sup><sub>2</sub><sup>K</sup> contained in the layer K of the macroblock is not
NN distributed, this information indicating the division type is assigned a value of "0". When the subblock - ^ χ- ^ κ is separated into two size subblocks
NN
-χ2<sup>KX</sup> 2<sup>K</sup>+ 'this information indicating the division type is
NNNN assigned the value "1". When the subblock - ^ χ ^ κ is separated into two subblocks - ^ + 1 χ ^ κ<sup>this</sup>
NN information indicating the division type is assigned the value "2". When the subblock - ^ χ ^ κ is separated into
NN four subblocks of size - ^ + 1<sup>x</sup>γ · - '' this information indicating the division type is assigned the value '3'. The division number refers to the number assigned to identify each chapter for subblocks on
NN based split type. For example, when a subblock - ^ χ ^ κ in layer K is not separated,
NN, an unseparated subblock, χ, is assigned a partition number of "0". In addition, when the sub-block<sub>2</sub><sup>κ</sup><sub>2</sub><sup>κ</sup>
NN
- ^ χ ^ Κ in layer K is divided into four size subblocks
NN
-χ<sub>2</sub>κ + 1 <sub>2</sub>κ + 1 are individual subblocks
NN
-χ<sub>2</sub>κ + 1 <sub>2</sub>κ + 1 can have sequentially allocated partition numbers 0, 1, 2 and 3 starting from the subblock located on the upper left part of the macroblock and going towards the raster scan. B-1-3-2) Example No. 1 for the 2 types of division [0065] Fig. 34 is an exemplary diagram illustrating partition types according to another aspect of the present invention.
[0066] Fig. 34 shows an example of partition type indicating information (partition type number) to identify block sizes for subblocks created by separation for each layer.
EP2991353
NN [0067] As shown in Fig. 34, when the subblock contained in the layer K of the macroblock is not
NN distributed, this information indicating the division type is assigned a value of "0". When the subblock - ^ k ^ k is
NN divided into four subblocks of size - ^ + 1<sup>x</sup>^ K + i 'this information indicating the division type is assigned the value' 1 '. The division number refers to the number assigned to identify each
NN subblock distribution based on the division type. For example, when the subblock ,, x. in the K layer is not<sub>2</sub><sup>K</sup><sub>2</sub><sup>K</sup>
NN separated, then the unseparated subblock ,, x is assigned the partition number "0". In addition, when<sub>2</sub><sup>K</sup><sub>2</sub><sup>K</sup>
NNNN subblock -x - in the layer K is divided into four subblocks with size - ^ + 1 <sup>x</sup>^ K + i 'are individual subblocks
NN
-x<sub>2</sub> K + 1 <sub>2</sub> K + 1 can have sequentially assigned partition numbers 0, 1, 2 and 3 starting from the subblock located at the top left of the macroblock and going towards the raster scan.
[0068] Furthermore, different types of divisions can be combined and used for each layer. For example, layer 0 and layer 1 can use the division type shown in Fig. 34, and lower layers below layer 1 can use the division type shown in Fig. 10.
B-1-4). Method for encoding partition information. [0069] Hereinafter, different methods for encoding partition information will be described, which is information indicating the sizes and shapes of subblocks used for predictions or transformations within a macroblock according to an embodiment of the present invention.
B-1-4-1) Method for decoding partition information 1 [0070] First, a first method for encoding partition information will be described.
[0071] According to a first method, partition information indicating the type of macroblock split into different sized subblocks can be represented by information indicating the partition type (partition type numbers) for each layer. Many subblocks contained in a macroblock may be appropriately identified by information indicating the type of partition for each layer. The partition information coder 810 may encode block split information using information indicating the partition type for each layer in different ways that will be described later.
[0072] For example, the partition information coder 810 may encode partition information for the current block by sequentially coding the partition type indicating information for each macroblock partition layer based on the coding order of the partition type indicating information.
[0073] In the following, referring to Figs. 11-13, a method for coding partition information for the current block by sequentially coding partition type indication information for each macroblock partition layer will be described based on the order of the split type information coding.
[0074] Fig. 11 is an exemplary diagram illustrating the partitioning of a macroblock into subblocks having different block sizes in accordance with another aspect of the present invention.
[0075] Fig. 11 shows the distribution of a macroblock into subblocks having different block sizes on a base
EP2991353 of the subblock types shown in Fig. 10, wherein the macroblock has a 64 x 64 block size and the maximum partition layer number is 4.
[0076] According to another aspect of the present invention, when the macroblock is split as shown in Fig. 11, the macroblock partition information may be coded by sequentially coding the partition type indicating information for each partition layer based on the order of the split type information coding.
[0077] Fig. 12 shows the sequential macroblock separation processes depicted 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 32 x 32 in layer 0 (L0), subblock L1-P0 (having partition number 1 in layer 1) and subblock L1-P3 (having number division 3 in layer 1) are divided into 4 subblocks having block size 16 x 16 (L1), and subblock L1-P1 (having partition number 1 in layer 1) and subblock L1-P2 (having partition number 2 in layer 1) are divided into 2 subblocks having a block size of 16 x 32 and 2 subblocks having a block size of 32 x 16 in layer 1. After dividing L1P1 and L1-P2 subblocks into 2 subblocks respectively, the subblocks are not further separated, so that the subblock partition numbers do not are illustrated in Fig. 15. The L2-P0 subblock (having the division number 0 in layer 2) is separated into 4 subblocks having an 8 x 8 block size and the L2-P subblock (having the division number 3 in layer 2) is split into 2 subblocks having a block size of 16 x 2 in layer 2 (L2). The L3-P0 subblock (having the division number 0 in layer 3) and the L3-P1 subblock (having the division number 1 in layer 3) are separated into 4 subblocks having a block size of 4 x 4 in the layer 3 (L3), respectively.
[0078] The order of coding information indicating the partition type is as follows.
[0079] First, information indicating the partition type for the macroblock partition type is coded. Then, if the macroblock is split into 4 subblocks, the information indicating the partition type for particular subblocks resulting from the separation is coded in sequence. For example, when the N x N block is divided into 4 subblocks, the information indicating the partition type for the first N / 2 × N / 2 subblock is coded. When the first subblock N / 2 x N / 2 is split into 4 subblocks, the information indicating the partition type for the N / 4 x N / 4 subblocks resulting from the separation is coded. When the N / 4 x N / 4 sub-block size created by the separation corresponds to the minimum size of the sub-block or when the N / 4 × N / 4 sub-block created by the separation is no longer separated into 4 smaller sub-blocks, this information indicating the division type for the next subblock N / 4 x N / 4 is coded in the order of raster scanning. When the N / 4 x N / 4 subblock size does not correspond to the minimum subblock size and the N / 4 x N / 4 subblock is split into 4 subblocks having an N / 8 × N / 8 block size, the information indicating the partition type for the first is performed. subblock N / 8 x N / 8. The coding of the partition type indicating information is continued until information indicating the partition type for all subblocks within the macroblock is encoded. this is the coding of information indicating the partition type for the first subblock N / 8 x N / 8. The coding of the partition type indicating information is continued until information indicating the partition type for all subblocks within the macroblock is encoded. this is the coding of information indicating the partition type for the first subblock N / 8 x N / 8. The coding of the partition type indicating information is continued until information indicating the partition type for all subblocks within the macroblock is encoded.
[0080] Fig. 13 is an exemplary diagram illustrating a sequential information coding process indicating the partition type for each macroblock layer.
[0081] 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 stored in "□" in Fig. 11 relate to the coding order of partition type information for individual subblocks. If the information indicating the partition type for each macroblock layer is sequentially coded according to the coding order of the partition type information, then the information indicating the partition type for each layer may be coded in the order shown in
EP2991353
Fig. 11.
[0082] First, because the subblock (L0-P0) having a 64 x 64 block size is split into 4 subblocks having a block size 32 x 32, the information indicating partition type 3 is coded. Since the first subblock (L1-P0) having a block size 32 x 32 out of 4 subblocks having a block size 32 x 32 inside a subblock having a 64 x 64 block size is divided into 4 subblocks having a block size of 16 x 16, then the partition type indication 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 32 x 32 block size is divided into 4 subblocks having a block size of 8 x 8, partition type 3 is coded. Because 4 subblocks (L3-P0, L3-P1, L3-P2 and L3-P3) having a block size of 8 x 8 inside the subblock (L2-P0) having a block size of 16 x 16 have not been separated further into smaller subblocks, this information indicating the partition type, respectively {3, 3, 0, 0 } is coded. Because subblocks in layer 3 can not be separated into smaller subblocks, information indicating the partition type for subblocks contained in layer 3 is not coded.
[0083] As the information indicating the partition type for the sub-blocks contained in layer 3 has been completely coded, this information indicates a 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. In this case, however, all these subblocks are no longer separated into smaller subblocks, so that the information indicating partition type 0 is coded. Since the information indicating the division type is not 3, although the fourth subblock (L2-P3) having a 16 x 16 block size is split into subblocks having a block size of 16 x 8, only the information indicating partition type 1 is coded. Because the information indicating the division type for 4 subblocks contained in layer 2 has been completely coded, information indicating the partition type for the second subblock (L1-P1) having the block size 32 x 32 in layer 1 is coded. In this case, because the second subblock (L1-P1) having a block size 32 x 32 in layer 1 is separated into subblocks having a block size of 16 x 32, and individual subblocks created by separation have not been further separated into smaller subblocks, then 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 32 x 32 and for a fourth subblock (L1-P3) having a block size 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 coded and the same sequence {1, 3, 0, 0, 0, 0} is coded.
[0084] If the information about the macroblock partition types shown in Fig. 11 is coded according to such a coding method, then the information indicating the partition type {3, 3, 3, 3, 0, 0, 0, 1, 2, 1 , 3, 0, 0, 0, 0} is encoded as shown in Fig. 13.
[0085] Furthermore, it is possible to code information indicating the partition type according to the following order. [0086] Information indicating the partition type {3} for layer 0 is coded, information indicating 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 partition type {3, 0, 0, 1, 0, 0, 0, 0} for 8 subblocks (4 subblocks contained in L1-P0 and 4 subblocks included in L1-P3) in layer 2 is coded and information indicating the division type {3, 3, 0, 0} for 4 subblocks (4 subblocks contained in L2-P0 inside L1-P0) in layer 3 is coded. In this case, the information indicating the division type {3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 3, 3, 0, 0} is coded.
In this case, the information indicating the partition type can be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc.
[0088] For example, when using binary arithmetic coding for each information
EP2991353 indicating the division type may use a different binary value depending on the layer number associated with the information indicating the partition type to be coded. Information indicating the division type may be encoded using Table 1 if the layer number is equal to or less than log2 (N / 16) and partition type indicating information can be encoded using Table 2 if the layer number is greater than log2 (N / 16). For example, since, with reference to Table 1, information indicating partition type 3 for the subblock (L1-P0) of Fig. 11 can be expressed by the binary number "01", the information indicating partition type 3 can be coded by performing arithmetic coding on numbers binary "0" and "1". Also,
<td>Information indicating the division type</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 division type</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 [0089] Furthermore, the actual value of the partition type indication information may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0090] Furthermore, when the macroblock is split using the partition types shown in Fig. 34 according to another aspect of the present invention, the partition type indicating information may be a flag having 1 bit of length indicating whether the current block is split into 4 subblocks.
B-1-4-2) Method No. 2 Coding of the Split Information [0091] As another form of block information encoding using the partition type for each macroblock layer, the partition information coder 810 can encode block partition information using a tree structure. . That is, the division information coder 810 first encodes the layer number using a tree structure, and then encodes block partition information by coding information indicating the partition type.
[0092] In the following, referring to Figs. 14-18, a second method for encoding block partition information using a tree structure will be described.
[0093] Fig. 14A and 14B illustrate exemplary diagrams illustrating a method of encoding block partition information using a tree structure according to another aspect of the present invention.
EP2991353 [0094] Fig. 14A shows the layer numbers of individual macroblock subblocks for each level and Fig. 14B shows the layer numbers of individual sub-blocks for each level in the tree structure.
[0095] In Fig. 14A the macroblock size is N × N and the macroblock is split into subblocks by the partition types shown in Fig. 10. Fig. 14A illustrates a case in which the macroblock is split into subblocks having for example a block size N x (N / 2). The macroblock having the block size N x N is separated into 2 subblocks having the block size N x (N / 2) and the information indicating the partition type is 1. Here, because each subblock N x (N / 2) is included in the layer 0, then the minimum the value of the layer number for the 2 subblocks at level 1 of the tree is 0. The layer number for level 0 of the tree becomes 0 accordingly. Meanwhile, the numbers indicated in "", such as "01", "1" and "001" represent the bit sequences in Fig. 14-18.
[0096] Fig. 14B illustrates in tree structure the layer numbers of individual sub-blocks for each level shown in Fig. 14A.
[0097] After encoding the number "0 (1 bit)" corresponding to the difference between the number of the higher node layer and the layer number of the current node whose coding is desired, the value "1" is encoded at the end. For example, when the value of the difference between the layer number of the higher node and the layer number of the current node is 3, the binary number "0001" is coded. When the difference value 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 layer number 0 of the higher node is 0, so that the sequence of bits for the layer number 0 for the level 0 becomes "1".
[0098] 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 information indicating the partition type 1 for level 1 is coded.
[0099] As described above, the partition type indicating information may be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc.
[0100] Furthermore, the partition type indicating information may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0101] Furthermore, different binary values may be used depending on the layer numbers.
[102] Furthermore, when the macroblock is split using the partition types according to another embodiment of the present invention shown in Fig. 34, the partition type indicating information may be a flag having a 1 bit length indicating whether the current block is split into 4 subblocks.
[0103] The information indicating partition type 1 according to the above embodiment may represent the value of information indicating the partition type by means of a sequence of bits as described above. For example, since 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, the information indicating division type 1 can be represented by "01".
[0104] When the macroblock partition information shown in Fig. 14A is finally encoded using a tree structure, the data to be encoded becomes "101" respectively. [0105] Fig. 15 and Fig. 16 show exemplary diagrams illustrating an example of a method for encoding block partition information using a tree structure according to another aspect of the present invention. [0106] Fig. 15 shows an example of a process for determining a layer number for each subblock on
EP2991353 each level to encode the block split information using a tree structure when the macroblock having the block size N x N is separated into 2 subblocks having a block size (N / 2) x (N / 4), 1 subblock having a block size (N / 2) x (N / 2), 2 subblocks having a block size (N / 4) x (N / 2), 4 subblocks having a block size (N / 4) x (N / 4).
[0107] First, level 2 is created according to a macroblock having a block size N x N and at the same time level 1 is created according to the minimum value of the layer number for the 2 subblocks included in the first subblock having 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, the minimum value of the layer number for the 2 subblocks contained in the third subblock having the size block (N / 2) x (N / 2) inside the macroblock from level 2 the minimum value of the layer number 4 of the subblocks contained in the fourth subblock having the block size (N / 2) x (N / 2) inside the macroblock from level 2.
[0108] Fig. 16 shows the process of creating a tree structure according to the layer number for each level created in Fig. 15 and coding the layer number and the partition type.
[0109] The layer number for 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 number of the higher node layer and the number layer for level 0 is 1, then the sequence of bits for the layer number for level 0 becomes "01". Since the layer numbers for level 1 to be encoded are 1, 1, 1, 1 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 sequence of bits for individual numbers layers are "1", "1", "1" and "1". Since all layer numbers for level 2 to be encoded are included at level 1, these layer numbers no longer have to be coded. The information indicating division type 1, 0, 2 and 3 are coded accordingly. Because the partition type information is encoded using binary arithmetic coding or Huffman coding using different tables depending on the layer number as described above, the bits for the information indicating 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 division to be eventually encoded will become "01"> "1"> "1"> "1"> "1"> "00"> "11"> "10"> " 01 ". As a result, the string "01111100111001" is coded and it becomes encoded data with partition information. 2 and 3 are properly coded. Because the partition type information is encoded using binary arithmetic coding or Huffman coding using different tables depending on the layer number as described above, the bits for the information indicating 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 division to be eventually encoded will become "01"> "1"> "1"> "1"> "1"> "00"> "11"> "10"> " 01 ". As a result, the string "01111100111001" is coded and it becomes encoded data with partition information. 2 and 3 are properly coded. Because the partition type information is encoded using binary arithmetic coding or Huffman coding using different tables depending on the layer number as described above, the bits for the information indicating 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 division to be eventually encoded will become "01"> "1"> "1"> "1"> "1"> "00"> "11"> "10"> " 01 ". As a result, the string "01111100111001" is coded and it becomes encoded data with partition information. Because the partition type information is encoded using binary arithmetic coding or Huffman coding using different tables depending on the layer number as described above, the bits for the information indicating 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 division to be eventually encoded will become "01"> "1"> "1"> "1"> "1"> "00"> "11"> "10"> " 01 ". As a result, the string "01111100111001" is coded and it becomes encoded data with partition information. Because the partition type information is encoded using binary arithmetic coding or Huffman coding using different tables depending on the layer number as described above, the bits for the information indicating 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 division to be eventually encoded will become "01"> "1"> "1"> "1"> "1"> "00"> "11"> "10"> " 01 ". As a result, the string "01111100111001" is coded and it becomes encoded data with partition information.
[0110] Fig. 17 and Fig. 18 show exemplary diagrams illustrating another example of a method for encoding block partition information using a tree structure according to another aspect of the present invention. [0111] Fig. 17 shows an example of a case where a macroblock having a block size N x N is split into 2 subblocks having a block size (N / 2) x (N / 4), 1 subblock having a block size (N / 2) x (N / 2), subblocks having a block size (N / 4) x (N / 2), 2 subblocks having a block size (N / 32) x (N / 16), 4 subblocks having a block size (N / 32) x (N / 32), 6 subblocks having a block size (N / 16) x (N / 16) and 2 subblocks having a block size (N / 4) x (N / 4). A fourth macroblock subblock having a block size (N / 2) x (N / 2) is split 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) of the 4 subblocks having a block size (N / 4) x (N / 4) are separated into 4 subblocks having a block size (N / 16) x (N / 16), respectively. Here, because the first subblock and the second subblock having a block size (N / 16) x (N / 16) of subblocks having a block size (N / 16) x (N / 16) formed by separating the first subblock having a block size (N / 4) ) x (N / 4) are separated into smaller blocks, the numbers of layers 2 and 3 are allocated as shown in Fig. 17.
EP2991353 [0112] Fig. 18 may 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.
[0113] Fig. 18 shows the process of creating a tree structure according to the layer number for each level formed in Fig. 17 and coding the layer numbers and partition types.
[0114] If the layer numbers and the partition type indicating information are encoded in the same manner as described in Fig. 16, then the data "which will eventually be encoded will become" 01111010111100111010011111011111 ".
B-1-4-3) Method No. 3 of the partition information encoding [0115] In the following referring to Fig. 19 and Fig. 20, a third method for encoding block partition information will be described.
[0116] According to a third method, the partition information coder 810 may code block split information using the partition layer value and the partition flag. That is, the division information encoder 810 separates the macroblock by 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 partition information, is an intra block and can encode block partition information by encoding partition layer values of individual subblocks and partition flags. Below, referring to Fig. 19 and Fig. 20, a method of encoding block partition information using a partition layer value and a partition flag is described.
[0117] Fig. 19 is an exemplary diagram illustrating separation of subblocks based on partition layer values according to another aspect of the present invention.
[0118] When a macroblock having an N × N block size (N is an integer equal to or greater than 16) is separated according to the partition layer values 0, 1 and 2, the sizes and shapes of the subblocks can be determined as shown in Fig. 19. When the macroblock having the block size N x N is separated according to the partition layer value 0, the macroblock is split into only one subblock having a block size N x N. When the macroblock is split according to the partition layer value 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 values of the partition layer 2, the macroblock is split into 8 subblocks having a block size (N / 4) x (N / 4).
[0119] When it is assumed that the partition layer value of any block is x, then the block size for
NN the subblock of the corresponding block can become <sub>vv</sub><sub>2</sub><sup>X</sup><sub>2</sub><sup>X</sup>
For example, when the value of the split layer is
3, the macroblock having a block size of 64 x 64 is split into subblocks having an 8 x 8 block size. Furthermore, when the value of the subblock division layer having an 8 x 8 block size is 1, the subblock having a 8 x 8 block size is split into subblocks having block size 4 x 4.
NN [0120] The split flag is a flag indicating that when the N x N block is separated into subblocks ~ ^ χΧ ^ χ, then
NN one or more subblocks - ^ χΧ ^ χ is separated into smaller subblocks.
NNNN [0121] For example, when the N x N block is separated into subblocks - ^ χΧ- ^ χ and all subblocks χχΧχχ inside the N x N block are not separated into smaller subblocks, then the split flag into a value (e.g. 0)
EP2991353
NN indicating that no subblocks - ^ χΧ- ^ χ in the N x N block are separated into smaller subblocks.
NNNN [0122] When the block N x N is separated into subblocks - ^ χΧ ^ χ and one or more subblocks - ^ χΧ ^ χ inside the block N x N is separated into smaller subblocks, then the split flag has a value (e.g. 1)
NN indicating that all subblocks - ^ χΧ ^ χ inside the Nx N block are separated into smaller subblocks.
[0123] When the split flag has a value indicating that the subblock is split into smaller subblocks, then
NN values of split layers and division flags for all subblocks <sub>v</sub> _V <sub>v</sub> inside the block N x N are <sub>2</sub><sup>X</sup><sub>2</sub><sup>X</sup>
NN coded and types of subblocks of individual subblocks <sub>v</sub> _V <sub>v</sub> are transmitted to the device to <sub>2</sub><sup>X</sup><sub>2</sub><sup>X</sup> video decoding.
[0124] However, when the size of the subblock divided in accordance with the partition layer value corresponds to the minimum block size (i.e. the subblock can not be separated into smaller subblocks), the partition flag is not coded.
[0125] Said partition layer value and partition flag are included in the bitstream and are encoded and transmitted to the video decoding apparatus. In the method of coding the partition layer values, the size of the macroblock to be transmitted may be encoded using a variety of binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0126] Alternatively, the macroblock size may be encoded using binary arithmetic coding, Huffman coding, etc.
[0127] Alternatively, the index value of the table predetermined between the video encoding apparatus and the video decoding apparatus may be encoded using said different binary coding methods.
[0128] The split flag may be included in the bitstream using 1 bit indicating whether the block is split or not.
[0129] FIG. 20 is an exemplary diagram illustrating a process of encoding block partition information using a partition layer value and a partition flag according to another aspect of the present invention.
[0130] Fig. 20 shows an example of block partition information coding using a partition layer value and a partition flag when the macroblock block size is 64 x 64 and the maximum partition layer value is 4.
[0131] When the macroblock is split as shown in Fig. 20, the values of the partition layers and partition flags of individual subblocks are generated for each partition number for each individual sub-block as identified in the table of Fig. 20 and partition layer values and partition flags are sequentially coded from the L0-P0 subblock to the L1-P3 subblock. Because the L0-P0 subblock having a 64 x 64 block size is split into 4 subblocks having a 32 x 32 block size, the split layer value is 1. The split partition value of each 32 x 32 subblock is set to a value indicating that the subblock is split into smaller subblocks and the value of the partition layer and the division flag are coded.
EP2991353 [0132] Since the L1-P0 subblock having a 32 x 32 block size is not split into smaller subblocks, the partition layer value is 0 and the split flag does not have to be coded. Because the L1-P1 subblock having a 32 x 32 block size is split into subblocks having a block size of 8 x 8, the partition layer value is 2. Because subblocks having an 8 x8 block size are no longer separated, the split flag is coded as 0 indicating that the sub-block is not separated. In this case, the sizes and shapes of the L2-P0 to L2-P15 subblocks, which are smaller subblocks of the L1-P1 subblock, can be identified in the video decoding apparatus by encoding only the partition layers values and partition flags for the subblocks L2-P0 to L2- P15 without separate coding of partition types for subblocks from L2-P0 to L2P15. Because the L1-P2 subblock having a 32 x 32 block size is split into 4 subblocks having a block size of 16 x 16, the partition layer value is 1 and the partition flag is coded as 1 indicating that the subblock is split into smaller subblocks. Since it has been indicated that the L1-P2 subblock is separated into smaller subblocks by indicating the L1-P2 partition split flag as 1, the division types of the individual L2-P0 to L2-P3 sub-block sub-blocks are coded. The values of the partition layers for L2-P0, L2-P1 and L2-P2 subblocks are respectively 0, and therefore the split flags do not have to be coded due to the values of partition layers equal to 0. Because the L2-P3 subblock is separated into subblocks having the block size 4 x 4 and the subblocks created by the separation are not separated into smaller subblocks, the division layer 2 and the division flag 0 indicating, that the sub-block is not separated, should be encoded. However, the maximum partition layer value and the sum of all layer values for the L1-P1 and L2-P3 subblocks are equal, the maximum partition layer value being 4, and each L1-P1 and L2-P3 partition subblock value is equal to 2. You can to conclude that the sub block can no longer be separated appropriately, which means that the split flag does not have to be coded. Finally, since the L1-P3 subblock having a 32 x 32 block size is split into 64 subblocks having a 4 x 4 block size, the partition layer value is 3 and its partition layer value is equal to the maximum partition layer value as for the L2-P3 subblock . It can be concluded that the sub-block can not be separated further appropriately, which means that the split flag does not have to be coded. they should be coded. However, the maximum partition layer value and the sum of all layer values for the L1-P1 and L2-P3 subblocks are equal, the maximum partition layer value being 4, and each L1-P1 and L2-P3 partition subblock value is equal to 2. You can to conclude that the sub block can no longer be separated appropriately, which means that the split flag does not have to be coded. Finally, since the L1-P3 subblock having a 32 x 32 block size is split into 64 subblocks having a 4 x 4 block size, the partition layer value is 3 and its partition layer value is equal to the maximum partition layer value as for the L2-P3 subblock . It can be concluded that the sub-block can not be separated further appropriately, which means that the split flag does not have to be coded. they should be coded. However, the maximum partition layer value and the sum of all layer values for the L1-P1 and L2-P3 subblocks are equal, the maximum partition layer value being 4, and each L1-P1 and L2-P3 partition subblock value is equal to 2. You can to conclude that the sub block can no longer be separated appropriately, which means that the split flag does not have to be coded. Finally, since the L1-P3 subblock having a 32 x 32 block size is split into 64 subblocks having a 4 x 4 block size, the partition layer value is 3 and its partition layer value is equal to the maximum partition layer value as for the L2-P3 subblock . It can be concluded that the sub-block can not be separated further appropriately, which means that the split flag does not have to be coded. the maximum partition layer value and the sum of all layer values for the L1-P1 and L2-P3 subblocks are equal, with the maximum partition layer value being 4 and each L1-P1 and L2-P3 partition sublayer value equal to 2. It can be deduced that the sub block can no longer be separated appropriately, which means that the split flag does not have to be coded. Finally, since the L1-P3 subblock having a 32 x 32 block size is split into 64 subblocks having a 4 x 4 block size, the partition layer value is 3 and its partition layer value is equal to the maximum partition layer value as for the L2-P3 subblock . It can be concluded that the sub-block can not be separated further appropriately, which means that the split flag does not have to be coded. the maximum partition layer value and the sum of all layer values for the L1-P1 and L2-P3 subblocks are equal, with the maximum partition layer value being 4 and each L1-P1 and L2-P3 partition sublayer value equal to 2. It can be deduced that the sub block can no longer be separated appropriately, which means that the split flag does not have to be coded. Finally, since the L1-P3 subblock having a 32 x 32 block size is split into 64 subblocks having a 4 x 4 block size, the partition layer value is 3 and its partition layer value is equal to the maximum partition layer value as for the L2-P3 subblock . It can be concluded that the sub-block can not be separated further appropriately, which means that the split flag does not have to be coded.
[0133] In the above-described manner, the block partition information may be coded by encoding the partition layer value and the partition flag for the partition number for each layer to identify individual macroblock subblocks.
[0134] Meanwhile, Fig. 11-13 describes a method for encoding block partition information by sequentially coding partition type indication information for each macroblock layer according to the order of the subblocks and generating coded partition information data, but it is not necessary to split the macroblock into subblocks. as shown in Figs. 11-13 and the block split information may be encoded by sequentially encoding partition type information for each macroblock layer according to the order of the subblocks even when the macroblock is split as shown in Fig. 21.
B-1-4-4) Method No. 4 for encoding partition information [0135] In the following referring to Figs. 21 and 22, a fourth method of encoding block partition information is described.
[0136] Fig. 21 is an exemplary diagram illustrating another example of a macroblock separated into subblocks having different block sizes in accordance with another aspect of the present invention.
[0137] Meanwhile, it has been described that subblocks in the layer K + 1 are only available if the subblock in the layer K (0 <K <log2 (N / 4)) is separated into 4 subblocks in the layer K in Fig. 9, but subblocks in the K + 1 layer are available when the sublayer in the layer K is separated into one or more subblocks in the layer K in Fig. 21
EP2991353 (that is, when the information indicating the partition type is 1, 2 or 3).
[0138] Fig. 21 is an example in which a macroblock having a 64 × 64 block size is split into 2 subblocks having a block size of 64 × 16 and 2 subblocks having a block size of 32 × 32. The numbers recorded in "□" represent the coding order of the information indicating partition type for individual sub blocks. If the information indicating the partition type for individual macroblock layers is sequentially coded according to the order of the subblocks, the information indicating the partition type for the individual layers may be coded according to the order shown in Fig. 11.
[0139] Fig. 22 is another example diagram illustrating a process for sequentially coding information indicating a partition type for individual macroblock layers according to the order of the subblocks.
[0140] The table shown in Fig. 22 is created if the partition type information of the individual subblocks for the macroblock shown in Fig. 21 is encoded. If the information indicating the partition type of the individual macroblock layers is sequentially coded according to the order of the subblocks, the information indicating the partition type for the individual layers can be coded according to the order shown in Fig. 11.
[0141] In this case, the partition type indicating information may be encoded into a binary string using lossless compression such as binary arithmetic coding, Huffman coding, etc.
[0142] Alternatively, the actual value of the partition type indication information may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0143] Furthermore, when the macroblock is split using the partition types according to another embodiment of the present invention shown in Fig. 34, the partition type indicating information may be a flag having one bit of length indicating that the current block is split into 4 subblocks or not.
B-1-5) Description of a block diagram of coding [0144] Fig. 23 is a block diagram illustrating a video coding method according to another aspect of the present invention.
According to a video encoding method according to another aspect of the present invention, the video encoding device 800 in step S2310 generates coded image data by performing predictive coding on the current split block into multiple subblocks, in step S2320 generates coded data with split information by encoding partition information for the current block and in step S 2330 generates a bitstream including coded image data and coded data with partition information. [0146] Here, the current block may be a macroblock having a size larger than the block size of 16 x 16 and the partition information may include block sizes and arrangements of the plurality of subblocks within the current block. [0147] A plurality of subblocks can be identified by information indicating a partition type for each partition layer.
[0148] Furthermore, the video encoding apparatus 800 may encode the partition information for the current block by using partition layer values and partition flags. In particular, the video encoding apparatus 800 may encode the partition information for the current block by using partition layer values
EP2991353 and split flags only if the block type of the current block is an intra block. Since the coding method of the partition information for the current block by the video encoding device 800 has been described in Figs. 8-22, its detailed description will be omitted here.
B-2) Embodiment No. 2 of the video decoding apparatus
B-2-1) Block diagram and description of the decoding device [0149] Fig. 24 a block diagram illustrating a video decoding apparatus according to another aspect of the present invention.
[0150] The video decoding apparatus 2400 according to another aspect of the present invention may comprise a partition information decoder 2410 and a video decoder 2420.
[0151] The partition information decoder 2410 extracts and decodes the encoded data with partition information from the bitstream and restores partition information for the current block. Here, the partition information for the current block can be information indicating the division type for each partition layer, layer numbers and information indicating the partition type using a tree structure or values of partition layers and partition flags. When the partition information for the current block is information indicating the partition type according to the order of information encoding indicating the partition type, the partition information decoder 2410 may obtain information indicating a partition type for each layer shown in Fig.
[0152] When the partition information for the current block corresponds to the layer numbers and information indicating the division type using a tree structure, the partition information decoder 2410 may obtain layer numbers and information indicating the partition type expressed in the form of a tree structure as shown in Fig. 16 by decoding the encoded data with the partition information and can obtain the current block separated into the plurality of subblocks shown in Fig. 15 by reverse execution of the method described in Fig. 15 and Fig. 16 using layer numbers and information indicating the partition type expressed as a tree structure as shown in Fig. 16.
[0153] When the partition information for the current block corresponds to the partition layer values and partition flags, the partition information decoder 2410 may obtain the partition layer values and partition flags shown in Fig. 20 by decoding the encoded partitioning data and can obtain the current block. divided into a plurality of subblocks shown in Fig. 20 by reverse execution of the method described in Fig. 20.
[0154] The video decoder 2420 may be the same or similarly constructed as a video decoding apparatus according to an 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 the encoded image data in subblocks. resulting from the separation according to the division information for the current block reproduced by the decoder of the partition information 2410, and then restores the individual subblocks by prediction coding. In this case, the image data extracted from the bit stream by the video decoder 2420 may be predicted data and / or data required to decode the residual signal such as the type of transformation, CBP and the transformation factor.
EP2991353
B-2-2) Method for decoding partition information [0155] Hereinafter, various methods for decoding partition information will be described, which is information indicating the sizes and shapes of subblocks within a macroblock used for prediction or transformation according to an embodiment of the present invention.
B-2-2-1) Method No. 1 to decode partition information [0156] First, a decoding method according to the first method of coding partition information will be described.
[0157] The information indicating the partition type is decoded using a sub-block type available for each layer predetermined between the video encoding apparatus and the video decoding apparatus according to a sequence predetermined between the video encoding 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 the partition type indicating information may be sequentially decoded according to the order shown in Fig. 11 and Fig. 13.
[0158] The following describes a decoding method under the same conditions as the examples used to describe the first method of encoding partition information. The partition information is decoded based on the types of subblocks depicted in Fig. 10 in accordance with the order shown in Fig. 11.
[0159] The partition information decoder 2410 extracts and decodes the information indicating the partition type from the bitstream first and restores information indicating the partition type for the macroblock layer 0. When the reproduced information indicating partition type is 0, it means that the macroblock is not split into subblocks, so that decoding information indicating the partition type of the current subblock is terminated. Then, the prediction or transformation is performed in the macro block N x N unit.
[0160] When the reproduced information indicating the partition type for the layer 0 is 1, the macroblock is split into 2 subblocks of size N x N / 2 and the decoding of the partition type indicating information of the current subblock is terminated. Then, the prediction or transformation is performed in the macromix N x N / 2 unit.
[0161] When the reproduced information indicating the partition type for the layer 0 is 2, the macroblock is split into 2 subblocks of size N / 2 x N and the decoding of the partition type indicating information of the current subblock is terminated. Then, the prediction or inverse transformation is performed in the macroblock N / 2 x N unit.
[0162] When the reproduced information indicating the partition type for the layer 0 is 3, the macroblock is split into 4 subblocks of 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 number of the N / 2 x N / 2 subblock layer is 1, which is an increased value relative to the upper layer number.
[0163] When the information indicating the partition type of the subblock having partition number 0 in layer 1 extracted and decoded from the bit stream is not NN 3, then information indicating partition type of the second subblock size N / 2 x N / 2 (having a division 1 in layer 1 ) is coded.
[0164] 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 split into 4 subblocks and the layer number is 2. Next, information indicating the partition type for the subblock corresponding to partition number 0 in layer 1 it is extracted and decoded from the bit stream.
[0165] In case the layer number K of the current subblock having the partition number Y corresponds to the maximum value that can be assigned to the layer numbers, then if the decoded information
EP2991353 indicating the division type for the current block (having the division number Y for the layer number K) is 3, then the current subblock is split into 4 subblocks, and then the information indicating the partition type for the next block (having the division number Y + 1 for the layer number K) it is decoded in the order of raster scanning.
[0166] When the partition number of the current subblock matches the maximum value of the partition number included in the current layer, information indicating the partition type for the sub-block sub-layers that has not yet been decoded is decoded.
[0167] The following describes a decoding method according to one of the embodiments of Fig. 11 based on a case in which the macroblock size is 64 × 64 and the maximum partition layer number is 4. In the embodiment of Fig. 11, the coded value according to the information indicating the partition type the video encoder is {3, 3, 3, 3, 3, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 0}.
[0168] First, information indicating the partition type for layer 0 is decoded.
[0169] 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).
[0170] Since each 32 x 32 subblock can be split into smaller subblocks, information indicating the partition type for the first 32 x 32 subblock (L1-P0) inside the 64 x 64 macroblock is decoded.
[0171] Since the second decoded information indicating the partition type is 3, the L1-P0 subblock is split into 4 16x16 subblocks (L2-P0, L2-P1, L2-P2 and L2-P3) and information indicating the partition type for the L2-P0 sub-block, it is extracted and decoded from the bit stream.
[0172] Since the third decoded information indicating the partition type is 3, the Lx-P0 sub-block size 16x16 is split into 4 subblocks of size 8x8 (L3-P0, L3-P1, L3-P2 and L3-P3) and information indicating the partition type for the L3-P0 subblock is extracted and decoded from the bit stream.
[0173] Since the fourth decoded information indicating the partition type is 3, the L3-P0 sub-block size 8x8 is split into 4 subblocks with a size of 4 x 4. Here, because the number of the maximum partition layer is 4, the subblock can not be separated into smaller subblocks, thus information indicating the partition type for the L3-P1 subblock is extracted and decoded from the bit stream.
[0174] Since the fifth decoded information indicating the partition type is 3, an 8x8 L3-P1 subblock is separated into 4 subblocks of size 4 x 4 and the partition type indicating information for the L3-P2 subblock is extracted and decoded from the stream bits.
[0175] Since the sixth decoded information indicating the partition type is 0, the 8x8 L3-P2 subblock is no longer separated and information indicating the partition type for the L3-P2 subblock, which is another subblock, is extracted and decoded from bit stream.
[0176] Since the seventh decoded information indicating the partition type is 0, the 8x8 L3-P3 subblock is also not split. Here, because the partition number of the current subblock corresponds to the maximum value of the partition number contained in the current layer, then information indicating the partition type for the L2-P1 sub-block from the higher layer is extracted and decoded from the bit stream.
[0177] Since the eighth decoded information indicating the partition type is 0, the block size for the L2-P1 subblock is 16 x 16.
[0178] 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 subblocks are determined.
EP2991353 [0179] Since the ninth decoded information indicating the partition type is 0, the block size for the L2-P2 subblock is 16 x 16. Since the tenth decoded information indicating the partition type is 1, the L2-P3 subblock is split into 2 16-size subblocks. x 8.
[0180] Since all information indicating the partition type for the sub-blocks contained in layer 2 has been decoded, information indicating the partition type for the second 32 × 32 subblock L1-P1 of layer 1, which is the higher layer, is decoded.
[0181] 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 × 32 subblocks and the partition type indicating information for the L1-P2 subblock is decoded.
[0182] Since the twelve decoded information indicating the partition type is 1, the 32 x 32 block corresponding to the L1-P2 subblock is split into 2 32x16 size subblocks and the partition type indicating information for the L1-P3 subblock is decoded.
[0183] 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 16x16 subblocks (L2-P0, L2-P1, L2-P3 and L2-P3) and information indicating the partition type for individual subblocks is decoded in the same way.
[0184] Since the 14th decoded information indicating the partition type is 0, the type of the L2P0 subblock is 16 x 16 and the partition type information for the L2-P1 subblock, which is another subblock, is decoded, because the L2-P0 subblock is no longer separated .
Since the fifteenth decoded information indicating the partition type is 0, the type of the L2P1 subblock is 16 x 16 and the information indicating the partition type for the L2-P2 subblock, which is another subblock, is decoded, because the L2-P1 subblock is no longer separated .
[0186] Since the sixteenth decoded information indicating the partition type is 0, the type of L2P2 subblock is 16 x 16 and the partition type indicating information for the L2-P3 subblock, which is another subblock, is encoded because the L2-P2 subblock is no longer separated .
[0187] Since the seventh decoded information indicating the partition type is 0, the type of L2-P3 subblock is 16 x 16 and the decoding of partition type indicating information for the current macroblock is terminated because the subblock types for all subblocks within the macroblock have been determined.
[0188] In the following, a method for decoding partition type indicating information will be described when all of the information indicating the partition type for the higher layers is coded, and then the partition type indicating information for the lower layers is coded according to the order of the partition type indicating information.
[0189] In the embodiment of Fig. 11, the value coded according to the information indicating the partition type in the video encoding apparatus is {3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0}.
[0190] First, the information indicating the partition type for layer 0 is decoded.
[0191] 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).
[00192] Since the number of subblocks contained in layer 1 is 4, 4 pieces of information indicating partition type are decoded. Since the information indicating the division type for subblocks (L1-P0, L1-P1, L1P2 and L1-P3) reproduced from the bit stream is {3, 2, 1, 3}, the subblocks L1-P0 and L1-P3 are separated into 4 subblocks 16 x 16 size, the L1-P1 subblock is split into 2 16 x 32 subblocks and a sub-block
EP2991353
L1-P2 is split into 2 32x16 sized subblocks.
[0193] Information indicating the partition type for 8 8 x 8 subblocks of layer 2 contained in the L1-P0 and L1-P3 subblocks is extracted and decoded from the bit stream.
[0194] Since the information indicating the partition type for the 4 subblocks (L2-P0, L2-P1, L2-P2 and L2-P3) contained in the reproduced L1-P0 is {3, 0, 0, 1} and information indicating the partition type for 4 subblocks (L2P0, L2-P1, L2-P2 and L2- P3) contained in the reconstructed L1-P3 is {0, 0, 0, 0}, then the L2-P0 subblock contained in the L1-P0 subblock is divided into 4 subblocks with a size of 4 x 4 and the L2-P3 subblock is split into two 8 x 4 subblocks.
[0195] Since the information indicating the partition type for all L2-P1 and L2-P2 subblocks contained in the L1-P0 sub-block and the 4 sub-blocks contained in the L1-P3 sub-block is 0, these subblocks are not split.
[0196] Because the L2-P0 subblock contained in the L1-P0 subleaver is split into 4 subblocks and they can no longer be further separated into smaller subblocks, the decoding of the partition type indicating information for the current macroblock is terminated.
In this case, the partition type indicating information is entropy decoded using a method predetermined between the video encoding apparatus and the video decoding apparatus among the lossless compression / decompression methods such as binary arithmetic coding, Huffman coding, etc.
[0198] Furthermore, the actual value of the partition type indicating information may be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0199] In addition, the video decoding apparatus performs entropy decoding using Tables 1 and 2 according to the layer numbers 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 smaller than log2 ( N / 16) and uses Table 2 if the layer number is greater than log2 (N / 16) according to the coding method of the partition type indicating information.
[0200] For example, when the information indicating the partition type included in the layer 1 is entropy encoded for the mac 64 of 64, the 2 bits are entropy decoded, and then the information indicating the partition type is obtained by means of Table 1.
[0201] When the information indicating the partition type contained in layer 3 is entropy encoded for a mac 64 -64 64 bit, Table 2 is used. First, 1 bit is entropy decoded. Then, when the decoded bit sequence is 1, the information indicating the partition type is set to 0 and the entropy decoding of the partition type indicating information for the current block is terminated. When the decoded bit sequence is not 1, the next 1 bit is entropy decoded in the bit stream. When the second decoded bit is 0, the information indicating the division type for the current block is set to 1 and the entropy decoding for the information indicating the partition type for the current block is terminated. When the second decoded bit is 1,
[0202] Further, when a video coding apparatus and the video decoding apparatus are predetermined that the partition types according to another embodiment of the present invention shown in Fig. 34 are used, it can be determined if the current subblock is split into 4 subblocks by entorpion decoding 1 bit to decode information indicating the partition type.
EP2991353
B-2-2-2) Method No. 2 decoding partition information [0203] In the following, a decoding method according to the second method of encoding partition information is described.
[0204] According to the second method, block partition information may be decoded by first decoding the layer numbers using a tree structure, and then decoding the partition type indicating information.
[0205] In the method of decoding layer numbers, the difference value between the layer number for the current level and the layer number for the higher level is reproduced by decoding the bits 0 and 1. In this case, 1 bit is read and decoded from the bitstream 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 constantly played until bit 1 is played. When the bit reproduced is 1, no further bits are read or decoded, and the value of the difference becomes the number of reproduced 0.
[0206] Decoding of the layer number at level 0 is initiated and the difference value between the layer number at level 0 and the number 0 is reproduced from the bitstream using said method for reproducing the layer number. When the reconstructed 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 have been predetermined between the coding deviceeo and a device for video decoding. According to the method of separating the subblocks shown in Fig. 9, since subblocks contained in the lower layer can be used only when the current subblock is split into 4 subblocks, the 4 child nodes are created. Newly created nodes have level values increased by 1 relative to the level value for the higher layer.
[0207] That is, when the reconstructed layer number for level 0 is greater than the level value 0, the tree structure is created by creating 4 child nodes located at level 1. [0208] Next, 4 difference values for the reproduced layer numbers of the newly created layers nodes are extracted and played from the bit stream, and layer numbers for individual nodes are restored by adding difference values to the layer numbers of higher nodes.
[0209] In the same manner, when the reconstructed layer number for each node and the node level value are equal to each other, the child node on the lower level is not created for the corresponding node. When the reconstructed layer number for each node is larger than the node level value, then 4 child nodes are created for the corresponding node and decoding of layer numbers for the newly created nodes is performed.
[0210] However, when the reproduced layer number is the maximum value that can be assigned to the layer numbers (i.e., when the layer number starts with 0, then the maximum value that can be assigned to the layer number corresponds to the "maximum partition layer value"). -1 "), then 4 child nodes are created for the current node, but decoding of layer numbers for individual nodes is not performed.
[0211] A tree is created until the layer number for the lower nodes is equal to the level number of each node or the layer number has the maximum value that can be allocated to the layer number, and the reproduction of layer numbers for each node is continuously performed.
[0212] Next, decoding information indicating the division type for the lowest is performed
EP2991353 nodes. Information indicating the partition type for individual nodes is entropy decoded using a method predetermined between the video encoding apparatus and the video decoding apparatus among the lossless compression / decompression methods such as binary arithmetic coding, Huffman coding, etc.
[0213] Furthermore, the actual value of the partition type indicating information may be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0214] Furthermore, the video decoding apparatus performs entropy decoding using Tables 1 and 2 according to the layer numbers of partitioning indicating information when the video encoding apparatus uses binary arithmetic coding, uses Table 1 when the layer number is equal to or smaller than log2 (N / 16) and uses Table 2 if the layer number is greater than log2 (N / 16) as the method of coding information indicating the partition type. For example, when the information indicating the partition type contained in layer 1 is entropy encoded, the 2 bits are entropy decoded, and then the partition type information is obtained using Table 1. When the partition type information contained in layer 3 is entropy encoded, then Table 2 is used. For example, first 1 bit is entropy decoded. Then, when the decoded bit is 1, the information indicating the division type is set to 0 and the entropy decoding of the partition type indicating information for the current block is terminated. When the decoded bit sequence is not 1, the next 1 bit is entropy decoded in the bit stream. When the second decoded bit is 0, the information indicating the division type for the current block is set to 1 and the entropy decoding for the information indicating the partition type for the current block is terminated. When the second decoded bit is 1, then the next 1 bit is entropy decoded in the bit stream and using Table 2 is determined whether the information indicating the division type of the current block is 2 or 3. this information indicating the division type is set to 0 and the entropy decoding information indicating the partition type for the current block is terminated. When the decoded bit sequence is not 1, the next 1 bit is entropy decoded in the bit stream. When the second decoded bit is 0, the information indicating the division type for the current block is set to 1 and the entropy decoding for the information indicating the partition type for the current block is terminated. When the second decoded bit is 1, then the next 1 bit is entropy decoded in the bit stream and using Table 2 is determined whether the information indicating the division type of the current block is 2 or 3. this information indicating the division type is set to 0 and the entropy decoding information indicating the partition type for the current block is terminated. When the decoded bit sequence is not 1, the next 1 bit is entropy decoded in the bit stream. When the second decoded bit is 0, the information indicating the division type for the current block is set to 1 and the entropy decoding for the information indicating the partition type for the current block is terminated. When the second decoded bit is 1, then the next 1 bit is entropy decoded in the bit stream and using Table 2 is determined whether the information indicating the division type of the current block is 2 or 3. the next 1 bit is entropy decoded in the bit stream. When the second decoded bit is 0, the information indicating the division type for the current block is set to 1 and the entropy decoding for the information indicating the partition type for the current block is terminated. When the second decoded bit is 1, then the next 1 bit is entropy decoded in the bit stream and using Table 2 is determined whether the information indicating the division type of the current block is 2 or 3. the next 1 bit is entropy decoded in the bit stream. When the second decoded bit is 0, the information indicating the division type for the current block is set to 1 and the entropy decoding for the information indicating the partition type for the current block is terminated. When the second decoded bit is 1, then the next 1 bit is entropy decoded in the bit stream and using Table 2 is determined whether the information indicating the division type of the current block is 2 or 3.
[0215] Furthermore, when a video coding apparatus and the video decoding apparatus are predetermined that the partition types according to another embodiment of the present invention shown in Fig. 34 are used, it can be determined if the current subblock is separated into 4 subblocks by entropy decoding. 1 bit to decode information indicating the partition type.
[0216] In the following, a decoding method according to one of the embodiments of Fig. 14A and Fig. 14B will be described. The bit stream value coded according to the partition information in the video encoding device is "101" for the characters of Fig. 14A and Fig. 14B.
[0217] First, 1 bit is extracted and reproduced from the bitstream to reproduce the layer number for level 0. Since the bit extracted from the bitstream is 1, the difference value for the layer number to be played back for level 0 is 0. For level 0, because there is no higher node, the layer value is reproduced by adding a value 0 set previously between the video encoding apparatus and the video decoding device to the reproduced difference value. In this case the difference value is 0 and the same value of the layer is 0.
[0218] Since both the reconstructed layer value and the level value is 0, the number decoding process is terminated and information indicating the partition type is decoded.
[0219] Because of the method directly expressing the value of partition type information by a bit stream when the partition type information is encoded in Figs. 14A and Fig. 14B, the video decoding apparatus also extracts 2 bits from the bitstream and restores the value in the same way. Because the sequence of bits "01" is expressed by the integer "1", it is reproduced
EP2991353 information indicating the division type becomes 1.
[0220] When the shapes of the macroblock subblocks are determined using a reproduced layer value and information indicating the partition type, all subblocks within the macroblock are included in the layer 0, such that the subblock has one of the 64 × 64, 64 × 32, 32 × 64 subblock types. and 32 x 32. In addition, it can be concluded that the macroblock is split into 2 64 x 32 subblocks because the information indicating the partition type is 0.
[0221] The following describes a decoding method according to one of the embodiments of Fig. 15 and Fig. 16. In the embodiment of Fig. 16, the bit string value coded according to the partition information in the video encoding apparatus is "01111100111001".
[0222] First, 1 bit is extracted and reproduced from the bitstream to reproduce the layer number for level 0. Because the bit extracted from the bitstream is 0, the next 1 bit is extracted and reproduced 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. Since the bit stream extracted for the reproduction of the difference value is "01", the value of the difference becomes 1, which corresponds to the number 0 and the value 1 created by adding the reconstructed value of the difference 0 to 0 is assigned as the layer number.
[0223] Because the reconstructed layer number for level 0 is greater than the level 0 value, 4 child nodes located at level 1 are created for the current node.
[0224] 1 bit is extracted from the bitstream to reproduce the layer number for the first node from level 1. Since the third bit extracted is 1, the difference value becomes 0. Layer number 1 for the first node is reproduced by adding the reproduced difference value to the layer number for level 0, which is the higher node for the first node from level 1. Because the reconstructed layer number 1 for level 1 and level 1 are equal, decoding of the difference value for the second node from level 1 is started.
[0225] 1 bit is extracted from the bit stream to reproduce the layer number for the second node from level 1. Since the fourth bit extracted is 1, the difference value becomes 0. Layer number 1 for the second node is reproduced by adding the reconstructed difference value to the layer number for level 0, which is the higher node for the second node from level 1. Because the reconstructed layer number 1 for level 1 and the level 1 value are equal, decoding of the difference value for the third node from level 1 is started.
[0226] 1 bit is extracted from the bitstream to reproduce the layer number for the third node from level 1. Since the fifth bit extracted is 1, the difference value becomes 0. Layer number 1 for the third node is reproduced by adding the reconstructed difference value to the layer number for level 0, which is the higher node for the third node from level 1. Because the reconstructed layer number 1 for level 1 and level 1 are equal, decoding of the difference value for the fourth node from level 1 is started.
[0227] 1 bit is extracted from the bitstream to reproduce the layer number for the fourth node from level 1. Because the sixth bit extracted is 1, the difference value becomes 0. The layer number 1 for the fourth node is reproduced by adding the reproduced difference value to layer number for level 0, which is the higher node for the fourth node from level 1.
[0228] Since the layer numbers for all nodes located at level 1 have been reconstructed and there is no node at level 2, the decoding of the layer numbers is terminated and decoding of partition type indicating information is performed for each layer.
EP2991353 nodes.
[0229] For the embodiment of Fig. 15 and Fig. 16, since the partition type indicating information is coded by the bit sequence assignment "11", "00", "10" and "01" for the partition type indicating information, the decoding device the video also reproduces in the same way information indicating the type of division by extracting 2 bits for individual nodes from the bit stream.
[0230] Since there are 4 nodes located at level 1 being the nodes located at the lowest level in the embodiment of Fig. 15 and Fig. 16, information indicating partition type is reproduced by extracting 2 bits from the bit stream for individual nodes.
[0231] Since the seventh and eighth bit extracted from the bit stream correspond to the string "00", the information indicating the division type for the first node is 1. Because the ninth and tenth bit extracted from the bit stream correspond to the sequence "11", this information indicating the division type for the second node is 0. Since the eleventh and twelfth bits extracted from the bit stream correspond to the string "10", the information indicating the division type for the third node is 2. Because the thirteenth and fourteenth bit extracted from the bit stream correspond to the string "01", the information indicating the type the division for the fourth node is 3.
[0232] When the shapes of the macroblock subblocks are determined using a reproduced layer value and information indicating the partition type, all subblocks within the macroblock are included in layer 1, such that the 64 x 64 macroblock is divided into 4 32 × 32 subblocks and individual subblocks 32 x 32 have a type of 32 x 32, 32 x 16, 16 x 32 and 16 x 16 subblocks, which are included in layer 1.
[0233] Since the reproduced information indicating the division type for the first subblock is 1, the first 32 × 32 subblock is split into 2 32 × 16 subblocks. Since the reproduced information indicating the partition type for the second subblock is 0, the second 32 × 32 subblock it is separated into 1 32 x 32 subblock. In the same way, since the reproduced information indicating the partition type for the third subblock is 2, the third 32 x 32 subblock is split into 2 16 × 32 subblocks. Because the reproduced information indicating the type the division for the fourth sub-block is 3, then the fourth 32 × 32 subblock is split into 4 16 × 16 subblocks. The subblocks created by the separation are illustrated in Fig. 15.
[0234] The following describes a decoding method according to one of Figs. 17 and 18. For the embodiment of Fig. 18, the bit string value encoded according to the partition information in the video encoding apparatus is "0111101011111111111010011111011111".
[0235] First, 1 bit is extracted and reproduced from the bitstream to reproduce the layer number for level 0. Because the bit extracted from the bit stream is 0, then the next 1 bit is extracted and reproduced 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. Since the bit stream extracted for the reproduction of the difference value is "01", the value of the difference becomes 1, which corresponds to the number 0 and the value 1 created by adding the reconstructed value of the difference 0 to 0 is assigned as the layer number.
[0236] Because the reconstructed layer number 0 for level 0 is greater than the level value 0, 4 child nodes located at level 1 are created for the current node.
[0237] 1 bit is extracted from the bitstream to reproduce the layer number for the first node from level 1. Since the third bit extracted is 1, the difference value becomes 0. Layer number 1 for the first node is reproduced by adding the reproduced difference value to the layer number for level 0, which is the higher node for the first node from level 1. Because the number is played back
EP2991353 of layer 1 for level 1 and the value of level 1 are equal to each other, decoding of the difference value for the second node from level 1 is started.
[0238] 1 bit is extracted from the bitstream to reproduce the layer number for the second node from level 1. Since the fourth bit extracted is 1, the difference value becomes 0. The layer number 1 for the second node is reproduced by adding the reproduced difference value to the layer number for level 0, which is the higher node for the second node from level 1. Because the reconstructed layer number 1 for level 1 and the level 1 value are equal, decoding of the difference value for the third node from level 1 is started.
[0239] 1 bit is extracted from the bitstream to reproduce the layer number for the third node from level 1. Since the fifth bit extracted is 1, the difference value becomes 0. The layer number 1 for the third node is reproduced by adding the reproduced difference value to the layer number for level 0, which is the higher node for the third node from level 1. Because the reconstructed layer number 1 for level 1 and level 1 are equal, decoding of the difference value for the fourth node from level 1 is started.
[0240] 1 bit is extracted from the bitstream to reproduce the layer number for the fourth node from level 1. Because the sixth bit extracted is 0, then the next 1 bit is extracted and reproduced 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 completed. Since the bit stream extracted to reproduce the difference value is "01", the value of the difference becomes 1, which is the number 0, and the layer number 2 is reproduced by adding the reconstructed value of the difference to the layer number 1 for the higher node. Because the reconstructed layer number 2 is greater than the level 1 value on which the current node is located, the 4 child nodes are created for the fourth node from level 1. The created child nodes are located at level 2.
[0241] Since the layer numbers for all nodes located at level 1 are reconstructed, the layer numbers for nodes located at level 2 are decoded in the same manner.
[0242] The nodes located at level 2 are the child nodes of the fourth node from level 1 and the bits extracted to reproduce the first node from level 2 are "01", which is the eighth bit and the ninth bit. Since the value of the difference between the first node from level 2 and the layer number 2 for the higher node is 1, the layer number of the current node is 3. In this case, because the reconstructed layer number 3 is greater than the level 2 value, the 4 child nodes are created. However, since, as described above, the reproduced value of layer 3 has a maximum value that can be assigned to partition layer numbers, the layer numbers are not decoded for the 4 newly created nodes from level 3.
[0243] The bits extracted to reconstruct the second to fourth nodes from level 2 are "111", which correspond to the tenth to twelfth bits. Since the difference value for all 3 nodes is 0, the layer number of the second, third and fourth nodes from level 2 is 2.
[0244] Since layer numbers of all nodes located at level 2 have been reconstructed and layer numbers in nodes located at level 3 are not reproduced, decoding of layer numbers is terminated and decoding information indicating the partition type for each node from the lowest level is performed.
[0245] For the embodiment of Fig. 17 and Fig. 18, since the partition type indicating information is coded by the bit sequence assignment "11", "00", "10" and "01" for the partition type indicating information, the device for
EP2991353 video decoding also reproduces in the same manner information indicating the division type by extracting 2 bits for individual nodes from the bit stream.
[0246] Because there are 3 nodes in level 1, 3 are in nodes and in level 2 there are 3 nodes being nodes located at the lowest level for the figure in Fig. 17 and Fig. 18, information indicating partition type it is reproduced by extracting from the bitstream 2 bits for individual nodes.
[0247] 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 located at level 1 are "00", "11" and "10" , so that the information indicating the division type for the first node from level 1 is 1, the information indicating the division type for the second node from level 1 is 0 and the information indicating the division type for the third node from level 1 is 2.
[0248] Since the bits extracted to decode partition types for 4 nodes located at level 3 are "10", "01", "11" and "11" successively, the information indicating the partition type for the first node from level 3 is 2 , the information indicating the division type for the second node from level 3 is 3 and accordingly the information indicating the division type for the third and fourth node from level 3 is 0.
[0249] Since the bits extracted to decode the partition types for the second to fourth nodes are "01", "11" and "11" respectively, the information indicating the partition type for the second node from level 2 is 3 and accordingly information indicating the partition type for the third and fourth nodes from level 2 is 0. [0250] When the shapes of the macroblock subblocks are determined by the reconstructed layer value and information indicating the partition type, the numbers of the subblock layers within the macroblock are equal to or greater than 1, such that the macroblock 64 x 64 is split into 4 32 x 32 subblocks. Since the first to third node layers from 1 are 1, 32 x 32 from first to third inside the macroblock are respectively 32 x 32, 32 x 16 , 16 x 32 and 16 x 16,which are at level 1. Because the reproduced information indicating the division type for the first 32 x 32 subblock is 1, the first 32 x 32 subblock is split into 2 32 × 16 subblocks. As the reconstructed information indicating the partition type for the second 32 x 32 subblock 32 is 0, then the second 32 x 32 subblock is split into 1 32 x 32 subblock. In the same way, since the reproduced information indicating the partition type for the third 32 x 32 subblock is 2, the third 32 x 32 subblock is split into 2 16 x 32 size sub-blocks.Since the reproduced information indicating the division type for the second 32 x 32 subblock is 0, the second 32 × 32 subblock is split into 1 32 × 32 subblock. In the same way, since the reproduced information indicating the partition type for the third 32 × 32 subblock is 2, the third 32 x 32 subblock is split into 2 16 x 32 subblocks.Since the reproduced information indicating the division type for the second 32 x 32 subblock is 0, the second 32 × 32 subblock is split into 1 32 × 32 subblock. In the same way, since the reproduced information indicating the partition type for the third 32 × 32 subblock is 2, the third 32 x 32 subblock is split into 2 16 x 32 subblocks.
[0251] Since the reconstructed layer number for the fourth node from level 1 corresponding to the fourth 32 × 32 subblock is 2, the fourth 32 × 32 subblock is split into 4 16 × 16 sized subblocks and 16 × 16 subblocks from 16 × 16 subblocks created by separation corresponding to 4 nodes from level 2 having a layer number greater than 2 are separated once more to have a higher layer. Here, because the reconstructed layer number for the first node from level 2 is 3, then the first 16 x 16 subblock is again separated into 4 subblocks of size 8 x 8.
[0252] Subsequently, the types of subblocks for individual subblocks are determined according to information indicating the partition type for individual subblocks, as illustrated in Fig. 17.
B-2-2-3) Method No. 3 decoding partition information [0253] The following describes a decoding method according to a third method of encoding partition information. [0254] According to a third method, block partition information may be decoded by decoding the partition layer values and partition flags.
[0255] The values of the partition layers are first extracted and reproduced from the bit stream, then
EP2991353 is divided into a macroblock according to the value of the partition layer. For example, when the size of the macroblock
N <sub>2</sub>x is N x N and the reconstructed value of the partition layer is x, then the macroblock is split into subblocks <sup>2</sup>
N
2<sup>x</sup> [0256] Then, when the reproduced division flag is reproduced by extracting and reproducing the division flag from the stream
NN xx bits have a value (e.g., 0) indicating that all subblocks <sup>2</sup> x <sup>2</sup> inside the macroblock are not separated into smaller subblocks, then the decoding of the macroblock partition information is terminated.
NN <sub>2</sub><sup>x</sup><sub>2</sub><sup>x</sup> [0257] 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 divided into smaller subblocks, then the value of the partition layer and partition flags for individual subblocks are extracted and restored in the same way from the bit stream in the order of raster scanning.
[0258] The following describes a decoding method for the embodiment of Fig. 20. For the embodiment of Fig. 20, the partition layer value and the partition flag encoded according to the partition information in the video encoding apparatus are {1, 1, 0, 2, 0, 1 , 1, 0, 0, 0, 2, 3}.
[0259] The value of the partition layer is first extracted from the bit stream and the value of the partition layer and the partition flag 1 are decoded. Because the division layer value is 1, the 64 x 64 macroblock is split into 4 32 x 32 subblocks.
[0260] Because the decoded division flag is 1, the partition layer value and the partition flag are continuously decoded for each 32 x 32 subblock.
[0261] As the partition layer value for the first 32 x 32 subblock is 0, it can be deduced that the first 32 x 32 subblock is not split into smaller subblocks. In this case, the split flag is not decoded from the bit stream.
[0262] The partition layer value for the second 32 x 32 subblock is extracted and decoded from the bit stream. Since the reconstructed 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 reconstructed division flag is 0, it can be deduced that the 16 subblocks inside the second 32 x 32 subblock are not separated into smaller subblocks and the partition layer value for the third 32 x 32 subblock is extracted and decoded from the bit stream.
[0263] As the reconstructed partition layer value is 1, the 32 x 32 subblock is split into 4 16 × 16 subblocks and the partition flag is decoded from the bit stream. Since the decoded division flag is 1, it can be deduced that one or more 16 x 16 subblocks are separated into smaller subblocks and the partition layer value and partition flag are decoded for each 16 x 16 subblock.
[0264] In the same manner, the partition layer value is extracted and reproduced from the bit stream for each 16 × 16 subblock. Then, when the partition layer value is not 0, the split flag is extracted and reproduced from the bit stream.
[0265] It can be deduced from the above-described embodiment that the partition layer value for 16x16 subblocks from first to third is 0 and the partition layer value for the fourth 16 x 16 sublayer is 2.
EP2991353 [0266] Since the partition layer value for the fourth 16 x 16 subblock is 2, the 16 x 16 subblock is split into 16 4 x 4 subblocks. However, in this case the split flag is not decoded, since none of the 4 x 4 subblocks can be decoded. be divided into smaller subblocks, although the value of the layer being reconstructed is not 0.
[0267] Then, the partition 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 × 32 subblock is split into 64 4 × 4 subblocks and the partition information decoding is terminated because the size of the subblocks created by the separation is the minimum block size. [0268] Said partition layer value and partition flag are extracted and decoded from the bit stream and the partition layer value is decoded using a method predetermined between the video encoding apparatus and the video decoding apparatus among different binary coding methods such as unary code, truncated code unary, Golomba code, etc.
[0269] Alternatively, the partition layer value may be decoded using methods such as binary arithmetic coding, Huffman coding, etc.
[0270] Alternatively, the index value of a table predetermined between the video encoding apparatus and the video decoding apparatus may be decoded using the aforementioned different binary coding / decoding methods.
[0271] The split flag is used to determine whether 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 decoding partition information. [0272] The following describes a decoding method according to the fourth mode of coding partition information.
[0273] The fourth method of decoding partition information is similar to the first method of decoding partition information. However, the information indicating the partition type is continuously extracted and decoded from the bit stream until the partition type indicating information for all subblocks has a value (e.g., 0) indicating that the subblock is not split into smaller subblocks or that the size of the subblock created by the separation from the current block according to the information indicating the division type, the minimum size of the sub-block is.
[0274] Described below is a decoding method according to one of Figs. 21 and 22. According to one of Figs. 22, the information indicating the partition type coded according to the partition information in the video encoding apparatus is {1.1, 0, 0, 2, 0, 0}.
[0275] 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 a bit stream.
[0276] Since the second reproduced information indicating the partition type is 1, the 64 x 32 subblock is split into 2 64x16 subblocks (L2-P0 and L2-P1) and information indicating the partition type for the first 64 x 16 subblock is extracted and played from a bit stream.
[0277] 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 partition type information for the L2-P1 subblock, which is another L2-P0 subblock sub-block, is mined and reproduced from the bit stream.
[0278] Since the fourth reproduced information indicating the partition type is 0, the 64 x 16 subblock is not
EP2991353 is separated into smaller subblocks. Because the partition information for sub-blocks contained in L2 has been restored, information indicating the partition type for the L1-P1 sub-block is extracted and reproduced from the bit stream.
[0279] As the fifth reproduced information indicating the partition type is 2, the 64 x 32 subblock corresponding to the L1-P1 subblock is split into 2 32 x 32 subblocks (L2-P0 and L2-P1) and information indicating the partition type for the first subblock 32 x 32 (L2-P0) is extracted and played from the bit stream.
[0280] As the sixth reproduced information indicating the partition type is 0, the 32 × 32 subblock corresponding to the L2-P0 subblock is not split into smaller subblocks and the partition type indicating information for the L2-P1 subblock, which is another L2-P0 subblock sub-block, is mined and reproduced from the bit stream.
[0281] Since the seventh reconstructed information indicating the partition type is 0, the 32 × 32 subblock corresponding to the L2-P1 subblock is not split into smaller subblocks. Because the block types for all subblocks within the macroblock have been designated, the decoding of the partition information is terminated.
[0282] In this case, the partition type indicating information is entropy decoded by a method predetermined between the video encoding apparatus and the video decoding apparatus among the lossless compression / decompression methods such as binary arithmetic coding, Huffman coding, etc.
[0283] Furthermore, the actual value of the partition type indication information may be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0284] Also, the video decoding apparatus performs entropy decoding using Tables 1 and 2 according to the layer numbers from the partition type indicating information when the video encoding apparatus 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 larger than log2 (N / 16), just like the method for coding information indicating the partition type.
[0285] For example, when the information indicating the partition type included in the layer 1 is entropy decoded for the mac 64.64 64 block, the 2 bits are entropy decoded, and then the information indicating the partition type is obtained by means of Table 1.
[0286] When the information indicating the partition type contained in layer 3 is entropy decoded for a 64 x 64 macroblock, Table 2 is used. First, 1 bit is decoded entropy. Then, when the decoded bit sequence is 1, the information indicating the partition type is set to 0 and the entropy decoding of the partition type indicating information for the current subblock is terminated. When the decoded bit sequence is not 1, the next 1 bit is entropy decoded from the bit stream. When the second decoded bit is 0, the information indicating the partition type for the current subblock is set to 1 and the entropy decoding of the partition type indicating information for the current subblock is terminated. When the second decoded bit is 1,
[0287] Furthermore, when it is predetermined between the video encoding apparatus and the video decoding apparatus that split types according to another aspect of the present invention are used
EP2991353 shown in Fig. 34, it can be determined if the current subblock is split into 4 subblocks by entropy decoding 1 bit to decode partition type information.
B-2-3) Block diagram for decoding [0288] Fig. 25 is a block diagram illustrating a video decoding method according to another aspect of the present invention.
[0289] According to a video decoding method according to another aspect of the present invention, the video decoding apparatus 2400 in step S2510 restates the partition information for the current block by decoding the partition information from the bit stream using decoding methods according to said embodiments and in step S2520 reproduces a current block split into multiple subblocks by performing predictive coding on the encoded image data extracted from the bit stream according to the partition information for the currently reproduced block.
[0290] As described above, according to another aspect of the present invention, even when a macroblock having a block size equal to or larger than the 16x16 size is split into different size subblocks, the compression performance can be improved by encoding the macroblock partition information with a small amount. the number of bits using the division type for each layer or split layer value.
C) Coding and decoding of the maximum partition layer information [0291] In the following, another apparatus and method for determining the maximum partition layer indicating the number of layers to which the macroblock having an arbitrary size can be maximally separated to efficiently divide the information, the macroblock separation to multiple sub-blocks for prediction or transformation using the designated maximum partition layer, and then effective encode and decode partition information using the maximum partition layer. Here, the available minimum size of the subblock inside the macroblock can be determined by the maximum partition layer and the image is encoded using only sub-blocks having a size equal to or larger than the corresponding size at the time of encoding the macroblock.
[0292] 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 macro block header. In addition, information about the maximum partition layer for the prediction and information about the maximum partition layer for the transformation may be encoded accordingly.
[0293] Furthermore, the partition information may be information indicating the sizes and shapes of the subblocks created by the separation for prediction or transformation. The split information and the encoded image data are included in the bit stream and encoded, and then transmitted to the video decoding apparatus. In addition, division information for predictions and division information for transformation, respectively, may be coded.
[0294] During decoding, the sizes and shapes of the subblocks are reproduced by extracting and decoding the data with the maximum partition layer from the bitstream, and then extracting and decoding partition information of the subblocks for prediction or transformation using the reconstructed maximum partition layer. The image is then restored as a result of prediction or inverse transformation by extracting and reproducing from the bitstream the coded data for individual subblocks.
EP2991353
C-1) Device for video coding
C-1-1) Encoding device [0295] Fig. 26 is a block diagram illustrating a video encoding apparatus in accordance with yet another aspect of the present invention.
[0296] The video encoding device 2600 according to yet another aspect of the present invention may comprise a video encoder 2610, a unit determining the maximum partition layer 2620 and the coder of the maximum partition layer 2630.
[0297] The video encoder 2610 may be implemented as a video encoder 800 according to an embodiment of the present invention described in Fig. 8. That is, the video encoder 2610 produces encoded partition information and image data by performing predictive coding using subblocks in accordance with FIG. predetermined types of macroblock partition. In this case, the video encoder 2610 can determine partition types using a minimum subblock size according to the maximum partition layer value determined by the unit determining the maximum partition layer 2620 at determining the macroblock partition types. In addition, the video encoder 2610 encodes the partition information using the maximum partition layer at the time of encoding the partition information.
[0298] The unit determining the maximum partition layer 2620 determines the partition type for the current block using the minimum subblock size according to the candidate values of the maximum partition layers and determines the maximum partition layer value of the current block using the coding cost generated at the coding time. In this case, the division 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 coding can be calculated by the unit itself determining the maximum partition layer 2620. However, if the unit determining the maximum partition layer 2620 determine the candidate values of the maximum partition layers, the video encoder 2610 determines the division type for the current block using the minimum subblock size according to the corresponding partition layer value, calculates the coding costs generated during coding to pass the encoding costs to the unit determining the maximum partition layer 2620. Next, the unit determining the maximum partition layer 2620 may calculate the maximum partition layer for the current block by using the coding costs provided. After determining the maximum partition layer value for the current block, the video encoder 2610 places a picture previously encoded in the bit stream with the corresponding maximum partition layer value. Below, we will discuss in detail the way
[0299] The maximum partition layer coder 2630 generates the coded data with the maximum partition layer by encoding the maximum partition layer value and places the generated data in the bit stream.
C-1-2) Relationship between the partition layer and the minimum size of the sub-block [0300] The macroblock size, the minimum subblock size and the maximum partition layer (MaxLayer) corresponding to the layer value that can be used maximally can be set to each other based on their values.
[0301] 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
EP2991353 macroblock size and maximum partition layer.
[0302] When the minimum size of the subblock is N x N, the maximum block size is (Nx2MaxLayer) x (Nx2MaxLayer). In the case of macroblock Nx N pixels, the minimum block size is (N / (2MaxLayer)) x (N / (2MaxLayer)).
[0303] Fig. 27 is an exemplary diagram illustrating the relationship between the partition layer and the minimum subblock size according to yet another aspect of the present invention.
[0304] Referring to Fig. 27, when the macroblock size is M × N and the partition layer value is x, then
N
2<sup>x</sup> the available minimum size of the sub-block is <sup>2</sup> x <sup>2</sup> . For example, when the value of the macroblock partition layer having a block size of 64 x 64, the available minimum subblock size is 4 x 4. Here, the partition layer value is differently used for width and height, i.e., M and N for a macroblock having an M × block size N.
[0305] Accordingly, the unit determining the maximum partition layer 2620 can determine the minimum size of the subblock by determining the maximum partition layer for the macroblock. For this purpose, the unit determining the maximum partition layer 2620 calculates the coding costs for the candidate partition layer values and can determine the maximum layer value using coding costs for the candidate partition layer values. The method for determining the maximum partition layer for a macroblock is described below based on the assumption that the macroblock size is M × N (M is an integer equal to or greater than 16)
C-1-3) Method for determining the maximum partition layer [0306] Fig. 28 is a block diagram illustrating an example of a method for determining a maximum partition layer value according to yet another aspect of the present invention.
[0307] The unit determining the maximum partition layer 2620 in step S2810 determines the initial value x, which is the candidate value of the maximum partition layer, log2 (M / 16), in step 2820 determines the partition type for the macroblock using the minimum subblock size (M /<sup>2</sup> ) x (M /<sup>2</sup> ) when the candidate maximum partition layer value xi calculates the coding costs (hereinafter "cost x") when one frame (any frame) of the image is coded according to the designated partition type, in step S2830 determines the partition type for the macroblock using the minimum subblock size <sub>9</sub>X + 1 ~ X + I (M / <sup>2</sup> ) x (M / <sup>2</sup> ) when the candidate maximum partition layer value is x + 1 and calculates the coding costs (hereinafter "cost x + 1") when any frame is coded and in step S2840 compares the cost x with the cost x + 1 to determine if the cost x is less than cost x + 1.
[0308] When the determination from step S2840 shows 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 maximum partition layer value. If as a result of the determination from step S2840 it is found that the cost x is equal to or greater than the cost x + 1, then 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 determines x equal to x + 1 and proceeds to step S2820. When x + 1 is equal to log2 (M / 4), the unit determining the maximum partition layer 2620 in step 2880 determines x + 1 as the maximum partition layer value.
[0309] Fig. 29 is a block diagram illustrating another example of a method for determining a maximum partition layer value according to another aspect of the present invention.
EP2991353 [0310] The unit determining the maximum partition layer 2620 in step S2910 determines the initial value x, which is the candidate maximum partition layer value, log2 (M / 16), in step 2920 ~ X ~ X determines the partition type for the macroblock using the minimum size podbloku (M /<sup>2</sup> ) x (M /<sup>2</sup> ) when the candidate maximum partition layer value xi computes coding costs (hereinafter "cost x") when one frame (any frame) of the image is coded according to the designated partition type, in step S2930 determines the partition type for the macroblock using the minimum subblock size <sub>9</sub>X + 1 ~ X + 1 (M / <sup>2</sup> ) x (M / <sup>2</sup> ) when the candidate maximum partition layer value is x + 1 and calculates the coding costs (hereinafter "cost x + 1") when any frame is coded and in step S2940 compares the cost x with the cost x + 1 to determine if the cost x is smaller from cost x + 1.
[0311] If as a result of the determination from step S2940 it is found that the cost x is equal to or greater than the cost x-1, the unit determining the maximum partition layer 2620 in step S2950 establishes x equal to x-1 and proceeds 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. [0312] The unit determining the maximum partition layer 2620 may determine the value of the maximum partition layer not only by using the methods described in Figs. 28 and 29, but also by other methods. This is, as yet another example of determining the value of the maximum partition layer,
C-1-4). The method of encoding partition information. [0313] Described below is a method of encoding partition information using a maximum partition layer value according to yet another aspect of the present invention.
[0314] As described above, after determining the maximum partition layer value, which indicates the total number of layers, the available partition layers in the macroblock are determined. However, there may be layers in the designated available split layers that are not used. In this case, it may be unnecessary to encode information indicating the partition type for layers that are not used. [0315] 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 maximum partition layer value can be included in the bitstream and the partition information for the current block can be encoded using only selected layers. division, when the information about whether individual layers are available is transmitted in the bit stream.
[0316] When the macroblock size is 64 x 64 and the maximum partition layer value is 2, layers 0 and 1 are available layers and layers 2 and 3 are not available layers. Accordingly, the macroblock can be separated into 64 x 64, 64 x 32, 32 x 64 and 32 x 32 subblocks, which correspond to the types of subblocks contained in the 0 layer and the 32 x 32, 32 x 16, 16 x 32 subblocks and 16x16, which correspond to the types of subblocks contained in layer 1. However, the macroblock can not be separated into 16x8x8x16.8x8.8x4x4x4x4x4x4x4x4x4 sub-blocks. types of subblocks in layers 2 and 3. That is, individual 16 x 16 subblocks can not be separated into smaller subblocks. [0317] In this case, the number of bits required to encode the partition information may be
EP2991353 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 reconstructs the maximum partition layer value from the data stream, determines as available layers all layers higher than the reconstructed maximum partition layer, and establishes as inaccessible layer layers lower than the reconstructed maximum partition layer. Next, the video decoding apparatus decodes the partition information using the determined information.
[0318] Alternatively, when the types of subblocks contained in a particular layer are not used, a macroblock of size 64 x 64, for example, is divided into 4 subblocks of 32 x 32. When all individual 32 × 32 subblocks are separated into subblocks having a size equal to or smaller than the size 16 x 16, it can be concluded that the types of subblocks contained in layer 1 are not used and layer 1 can be marked as an inaccessible layer.
[0319] In this case, it is possible to reduce the number of bits required to encode the partition information by coding information about whether individual layers are available in the bit stream. The video decoding apparatus extracts and reproduces information about whether individual layers are available in the bit stream, and then decodes the partition information using the reconstructed information about whether individual layers are available.
[0320] As described above, according to yet another aspect of the present invention, the partition information can be coded by encoding the maximum partition layer value in the bit stream and using only the available partition layers determined by the maximum partition layer value. [0321] Alternatively, the partition information may be coded by placing and encoding in the bit stream information on whether individual layers are available from among the available partition layers determined by the maximum partition layer value and using only available partition layers.
[0322] 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.
[0323] 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, Golomba's exponential code, etc.
[0324] In a method of encoding information indicating if individual layers are available, a flag having a 1-bit length indicating whether each layer is available can be encoded using methods such as binary arithmetic coding, Huffman coding, etc.
[0325] Alternatively, a table index may be encoded in which information is provided indicating whether individual layers are available. In this case, the table index can be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0326] Alternatively, the layer flag for the layer used is set to 1, the layer flag for the unused layer is set to 0 and the integer enabling the least significant bit (LSB) indication if the topmost layer is available. The resulting total value can then be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
EP2991353 [0327] Furthermore, an integer value can be created by setting the layer flag for the layer used to 0, the layer flag for the unused layer at 1 and enabling the least significant bit (LSB) to indicate whether the top layer is available.
[0328] FIG. 30 is an exemplary diagram illustrating the process of encoding partition information for the current block using only selected partition layers according to yet another aspect of the present invention. Fig. 30 illustrates an example of block division information encoding by encoding the maximum partition layer and / or information indicating whether individual layers are available, encoding maximum partition layer values and data (layer flags) indicating whether individual layers are available using information by various means encoding partition information, and then encoding information indicating the division type using the information.
[0330] After the maximum partition layer 4 has been coded using said method of encoding the maximum partition layer value, the layer flag for the layer used is set to 1, and the layer flag for the unused layer is set to 0 and a one-bit flag is coded indicating whether each layer is the layer is available. According to one of the figures in Fig. 30, the flags of the available layers are coded from the highest layer to the lowest layer as "1001".
[0331] Next, the macroblock partition information is encoded using the aforementioned different coding methods of partitioning information. The embodiment of Fig. 30 shows a method using a method for coding partition type information, which is the first method among the partition information encoding methods based on the types of subblocks depicted in Fig. 10.
[0332] 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 varies depending on whether individual layers are available. If the K + 1 layer is available, the K + 1 layer number is allocated to the subblocks. If the K + 1 layer is not available, the K layer number is allocated to the subblocks.
[0333] For example, when the macroblock size is 64 x 64, the 32 x 32 subblock can be determined as a subblock type included in the layer 0 or designated as a subblock type included in the layer 1. In this case, when layer 1 is an available layer, this 32 x 32 subblock is assigned the layer number 1. When layer 1 is not available, the 32 x 32 sub-block is assigned the layer number 0.
[0334] As the macroblock is split into 4 subblocks, the information indicating the partition type 3 is first coded and the information indicating the partition type for the 4 32 × 32 subblocks is coded.
[0335] As the first 32 × 32 sub-block (L0-P0) is not separated, the information indicating the partition type 0 is coded and the information indicating the partition type for the second 32 x 32 sub-block (L0-P1) is coded.
[0336] As the second 32 x 32 subblock (L0-P1) is split into 16 8 x 8 subblocks (from L2P0 to L2-P14), the information indicating the partition type 3 is coded. Here, an 8 x 8 subblock can be
EP2991353 a block 8 x 8 contained in layer 2 or may be a subblock contained in layer 3 and a layer number 3 is assigned because layer 2 is not available.
[0337] Next, information indicating the partition type for all 16 8x subblocks within the L0-P0 subblock is coded and the partition type indicating information for the third 32 x 32 subplan (L0-P0) is coded.
[0338] Because the third 32x32 subblock (L0-P0) is split into 16 8 x 8 subblocks (from L2P0 to L2-P15), the partition type indicating information 3 is coded, partition type indicating information for all 16 subblocks with size 8 x 8 inside the L0-P2 subblock is coded and information indicating partition type 0 for the fourth 32 x 32 subblock (L0-P0) is coded.
[0339] Accordingly, the video encoding device 2600 according to yet another aspect of the present invention may code the partition information corresponding to the macroblock by coding the flag of the layers and information indicating the partition type for the partition numbers of the individual layers.
C-1-5) Block diagram for coding [0340] Fig. 31 is a block diagram illustrating a video coding method according to yet another aspect of the present invention.
[0341] According to a video coding method according to yet another aspect of the present invention, the video encoding device 2600 produces a maximum partition layer and / or data indicating whether individual partition layers are available by determining and coding in the step S3110 the maximum partition layer and / or information. indicating whether individual partition layers are available, performing in step S3120 predictive coding on the current block using the minimum subblock size determined according to the maximum partition layer value and subblocks determined according to whether individual layers are available and creating in step S3130 the coded maximum partition layer and and / or a bit stream containing data indicating whether individual layers are available and coded image data. Bit stream,
[0342] The video encoding device 2600 may in step S3110 determine the maximum partition layer value using the coding costs for the candidate maximum partition layer values. The video encoding device 2600 can determine the value of the maximum partition layer by increasing or decreasing the values of the candidate maximum values of the partition layers. Furthermore, the video encoding device 2600 may determine a candidate maximum partition layer value having the smallest coding cost as the maximum partition layer value by comparing the coding costs for the individual candidate values of the maximum partition layer.
C-2) Decoder
C-2-1) Block diagram and description of the video decoding apparatus [0343] Fig. 32 is a block diagram illustrating a video decoding apparatus according to yet another aspect of the present invention.
[0344] The video decoding device 3200 according to yet another aspect of the present invention may comprise a maximum partition layer decoder 3210 and a video decoder 3220.
[0345] The maximum partition layer decoder 3210 decodes the encoded data with the maximum split layer extracted from the bitstream to reproduce the maximum partition layer value.
[0346] The video decoder 2420 may be the same or similarly constructed as the decoding apparatus
EP2991353 a video according to one embodiment of the present invention described with reference to 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 bitstream using a minimum subblock size based on the maximum partition layer reproduced by the maximum splitting layer decoder 3210 to play the current block.
C-2-2) Method for decoding partition information. [0347] Described below is a method of decoding partition information using a maximum partition layer value according to yet another aspect of the present invention.
[0348] The video decoding apparatus extracts a maximum partition layer representing the total number of layers and / or data indicating whether each layer is accessible from a predetermined location between the video decoding apparatus and the video encoding apparatus from the sequence header, the header of each frame or slice header in the the bit stream, and then decodes partition information of each block using the extracted information by means of said various methods for decoding partition information.
[0349] In the method of decoding the maximum partition layer and / or information on available layers, first the maximum partition layer data is extracted and decoded from the data stream and data indicating if each layer is available, available subblock types and minimum subblock size according to data indicating if each layer is available are extracted using the decoded value of the maximum partition layer. For example, when the macroblock size is 64 x 64 and the maximum partition layer value extracted and reproduced from the bit stream is 3, the layers 0, 1 and 2 are set as available layers and layer 3 is set as an unavailable layer. The macroblock can be separated into 64 x 64, 64 x 32, 32 x 64 and 32 x 32 sub-blocks, which correspond to the types of subblocks contained in the 0 layer, 32 x 32, 32 x 16, 16 x 32 and 16 x 16 sub-blocks, which correspond to the types of sub-blocks contained in layer 1 and 16 × 16, 16 × 8, 8 x 16 and 8 × 8 subblocks, which correspond to the types of subblocks contained in layer 2. However, the macroblock can not be separated into 8 x 4, 4 x 8 and 4 x 4 subblocks, which correspond to the types of subblocks contained in layer 3. That is, individual 8 x 8 blocks can not be separated into smaller subblocks. In this case, the available minimum subblock size is fixed as 8 x 8. which correspond to the types of subblocks contained in layer 3. That is, individual 8 x 8 blocks can not be separated into smaller subblocks. In this case, the available minimum subblock size is fixed as 8 x 8. which correspond to the types of subblocks contained in layer 3. That is, individual 8 x 8 blocks can not be separated into smaller subblocks. In this case, the available minimum subblock size is fixed as 8 x 8.
[0350] Alternatively, after extracting and reproducing data from the data stream with the maximum partition layer, data indicating whether each layer is available, which correspond to the number of layers determined by the reproduced maximum partition layer value, are extracted and decoded from the bit stream. Then the available types of subblocks and the minimum size of the subblock are extracted according to the reproduced value of the maximum partition layer and the availability of each layer.
[0351] For example, when the macroblock size is 64 x 64 and the maximum partition layer value extracted and reproduced from the bit stream is 3, then data indicating whether 3 layers are available are extracted and decoded from the bit stream. When reproduced 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 64 x 64, 64 x 32, 32 x 64 and 32 x 32 subblocks, which correspond to the types of subblocks contained in layer 0 and subblocks 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 can not be separated into 32x32 subblocks , 32 x 16, 16 x 32 and 16 x 16, which correspond to the types of subblocks contained in layer 1 and subblocks with dimensions of 8 x 4, 4 x 8 and 4 x 4,
EP2991353 [0352] Alternatively, the video decoding apparatus determines the maximum partition layer value by using the minimum subblock size and macroblock size predetermined between the video decoding apparatus and the video encoding apparatus and extracts and decodes from the bitstream data indicating whether individual layers are available, which correspond to the number of layers determined by the maximum partition layer value to determine the available types of subblocks in accordance with the reproduced data indicating whether individual layers are available. For example, when the macroblock size predetermined between the video encoding apparatus and the video decoding apparatus is 32 x 32 and the minimum size of the subblock is 8 x 8, the number of the maximum partition layers is 2. Accordingly, data indicating whether 2 layers are available are extracted and decoded from the bit stream. When reproduced data indicating whether individual layers are available means that layer 0 is not available and layer 1 is available, the macroblock can only have block types 16 x 16, 16 x 8, 8 x 16 and 8 x 8, which correspond to the types of subblocks contained in layer 1. Therefore, at the time of decoding the macroblock partition information, the macroblock is split into 4 16x16 subblocks, and only the partition information for each 16x16 subblock is extracted and decoded from the bit stream.
[0353] In this case, the value of the maximum partition layer may be decoded using a method predetermined between the video encoding apparatus and the video decoding apparatus from methods such as binary arithmetic coding, Huffman coding, etc.
[0354] Alternatively, the value of the maximum partition layer may be decoded using methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0355] In the method of decoding information indicating whether each layer is available, data indicating whether each layer is available can be decoded using a method predetermined between the video encoding apparatus and the video decoding apparatus from methods such as binary arithmetic coding, Huffman coding, etc.
[0356] Alternatively, a table index showing whether individual layers are used is decoded using methods such as a unary code, a truncated unary code, an exponential Golomba code, etc. and the fact indicating whether individual layers are used can be extracted using a table predetermined between the video encoding apparatus and the video decoding apparatus.
[0357] Alternatively, the integer value is decoded using methods such as a unary code, a truncated unary code, an exponential Golomba code, etc. and the decoded integer value may be decoded by presenting the integer value in the form of a binary string having a maximum partition layer value equal to the number of bits.
[0358] The following describes a decoding method according to one of the embodiments of Fig. 30.
[0359] According to said embodiment of Fig. 30, in data encoded according to the partition information of the video encoder, the maximum partition information is 4, the layer flag indicating whether the individual layers are used is "1001" and the information indicating the partition type is {3, 0, 3, 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}.
[0360] The video decoding apparatus extracts and decodes data with the maximum partition layer from the bit stream and reconstructs the maximum partition layer 4. As the maximum partition layer is 4, the flag (layer flag) indicating whether 4 layers are available is played back. 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, layer flags for layers 1, 2 and 3 are extracted
EP2991353 and decoded from the bit stream in the same manner. Since 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 layer flag for layer 3 is recreated, layers 0 and 3 are set as available layers and layers 1 and 2 are determined as inaccessible layers. The information is then used to decode the macroblock partition information.
[0361] Since the first reproduced information indicating the partition type is 3, the macroblock is split into 4 32 × 32 subblocks and the partition type indicating information for each 32 × 32 subblock is extracted and decoded from the bit stream.
[0362] 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 varies depending on whether individual layers are available. If the K + 1 layer is available, the K + 1 layer number is allocated to the subblocks. If the K + 1 layer is not available, the K layer number is allocated to the subblocks.
[0363] According to one embodiment of Fig. 30, 32x32 subblocks separated from a macroblock correspond to a subblock type that may be included in both layer 0 and layer 1, but the 32x32 subblock layer number is 0 because layer 1 is not available.
[0364] Since the second reproduced information indicating the partition type is 0, the subblock type for the first 32 x 32 sub-block (L0-P0) inside the macroblock is 32x32. Because the information indicating the partition type for the first 32 x 32 subblock is not 3, then information indicating the partition type for the second 32 x 32 subblock (L0-P1) is decoded.
[0365] Since the third reproduced information indicating the partition type is 3 and layers 1 and 2 are not available, the L0-P1 subblock is split into 16 subblocks (from L3-P0 to L3-P15) size 8 x 8 and information indicating the type the division for each 8x8 subblock is extracted and decoded from the bitstream, because the 8x8 subblock can be split into smaller subblocks.
[0366] Since all the reproduced information indicating the partition type from fourteenth to nineteenth is equal to 0, it can be concluded that the type of all subblocks L3-P0 to L3-P15 resulting from the separation of the L0-P1 subblock is 8 x 8.
[0367] Since the twentieth reproduced information indicating the partition type is 3 and layers 1 and 2 are not available, the L0-P2 subblock is split into 16 subblocks (from L3-P0 to L3-P15) size 8 x 8 and information indicating the type the division for each 8x8 subblock is extracted and decoded from the bitstream, because the 8x8 subblock can be split into smaller subblocks.
[0368] As 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 the types of all subblocks 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 place are equal to 0.
[0369] Since the last reproduced information indicating the partition type is 0, the type of the L0-P3 subblock is 32x32 and the partition information decoding process is completed because the partition types for all subblocks within the macroblock have been determined.
C-2-1) Block diagram for decoding [0370] Fig. 33 is a block diagram illustrating a video coding method according to yet another aspect of the present invention.
[0371] Based on a video decoding method according to yet another aspect of the present invention, the video decoding apparatus 3200 in step S3310 decodes the encoded data at a maximum of
EP2991353 a split layer extracted from the bitstream to reproduce the maximum partition layer value and in step S3320 performs predictive decoding on the encoded image data extracted from the bit stream using the minimum subblock size according to the reproduced maximum partition layer value to reproduce the current block.
[0372] As described above according to yet another aspect of the present invention, even when the macroblock having a size equal to or larger than the size 16x16 is separated into sub-sizes of different sizes, the minimum sub-block size can be determined using the maximum partition layer value. For this reason, it is not required to decode partition information for layers that are not used. As a result, the macroblock partition information can be encoded with fewer bits and thus the compression efficiency can be improved.
[0373] Further, the video coding apparatus according to yet another aspect of the present invention determines the available partition layers for the current block, selects a split layer that causes the least coding cost of the current block, out of the available partition layers, produces image data encoded by the prediction encoding on the current block using only the selected partition layer and can produce a bit stream including coded data with a partition layer formed by encoding information regarding the selected partition layer, coded partition information generated by encoding partition information for the current block based on the selected partition layer and coded data image. Here, one or more partition layers can be selected as a partition layer resulting in the smallest cost of encoding the current block. Accordingly, the video coding apparatus can produce the encoded image data by determining the available partition layers for the current block, selecting one or more partition layers that cause the least coding cost for the current block, among the available partition layers and separation and prediction encoding of the current block using only one or more selected partition layers. Therefore, the video encoding apparatus can encode the macroblock partition information using a smaller number of bits and thus improve the compression performance. Accordingly, the video coding apparatus can produce the encoded image data by determining the available partition layers for the current block, selecting one or more partition layers that cause the least coding cost for the current block, among the available partition layers and separation and prediction encoding of the current block using only one or more selected partition layers. Therefore, the video encoding apparatus can encode the macroblock partition information using a smaller number of bits and thus improve the compression performance. Accordingly, the video coding apparatus can produce the encoded image data by determining the available partition layers for the current block, selecting one or more partition layers that cause the least coding cost for the current block, among the available partition layers and separation and prediction encoding of the current block using only one or more selected partition layers. Therefore, the video encoding apparatus can encode the macroblock partition information using a smaller number of bits and thus improve the compression performance.
[0374] Additionally, the video decoding apparatus according to yet another aspect of the present invention can reproduce information about partition layers and partition information by decoding the encoded data with partition information and encoded data with the partition layer extracted from the bit stream and recover the current block by performing prediction decoding. on encoded image data extracted from the bitstream using reconstructed information about the partition layers and reconstructed partition information.
D) Encoding and decoding of the macroblock size [0375] According to said embodiments, it has been assumed that the macroblock has a size predetermined between the video encoding apparatus and the video decoding apparatus. In addition, on the basis of this assumption, the macroblock separation method and the coding and decoding of the partition information were then described.
[0376] In the following, a method for determining a macroblock size having a variable size and encoding as well as decoding to signal a designated macroblock size to a decoding apparatus will be described.
[0377] In general, a high resolution image can be effectively encoded in a large block unit. However, the coding efficiency is not always improved when all areas of the image are coded using the largest blocks. For example, in the case of a monotonous image,
EP2991353 may be efficiently encoding an image in a macro block unit such as a large 128 x 128 macroblock. However, when a complicated image is encoded in a 128 x 128 macroblock unit, most of the macroblocks are split into smaller subblocks and most subblocks can be predicted or be transformed in a block unit having a size equal to or smaller than 16 x 16. In this case, because partition information indicating that each macroblock has been split into subblocks having a size equal to or smaller than 16 x 16, it should be encoded, i.e. effective image coding by selecting the macroblock size that corresponds to 16 x 16.
[0378] According to another aspect of the present invention, the maximum block size that can be used for prediction or transformation to further improve the performance of said partition information encoding method is determined, the image is coded in the unit of the selected block size and the image is played back by decoding the image using the maximum block size identified by the information contained in the bit stream.
[0379] In the following, although it is not described for the convenience of the description that the maximum block size (e.g., macroblock) that can be used for prediction and the maximum block size that can be used for the transformation can be separately set, then separate setting the maximum block size for the prediction and the maximum block size for the transformation may apply.
[0380] Furthermore, each information may be coded in the sequence header, frame header, slice header or macro macroblock header.
[0381] After determining the macroblock size according to an embodiment of the present invention that will be discussed below, the macroblock may be split into subblocks based on a macroblock separation method in accordance with said embodiments of the present invention. In addition, the prediction or transformation can be performed in a sub-block unit. In this case, the video encoding apparatus according to one embodiment of the present invention encodes the macroblock size information and / or partition information regarding the macroblock partition, and then can transmit the encoded information to the video decoding apparatus according to an embodiment of the present invention. The video decoding apparatus according to one of the embodiments of the present invention may capture the size of the macroblock, which is to be currently decoded and / or information about subblocks within the macroblock by decoding macroblock size information and / or macroblock partition information. As described above, the information on the division may be implemented in various ways. The macroblock partition information according to one embodiment of the present invention, which includes whether the macroblock is split into subblocks and / or information on the subblock types generated by the macroblock separation, is signaled to a video decoding apparatus according to an embodiment of the present invention.
D-1) Video coding device
D-1-1) Description of the coding device [0382] Fig. 35 is a block diagram illustrating a video encoding apparatus 3500 according to yet another aspect of the present invention.
[0383] According to an embodiment of the video encoding apparatus according to another aspect of the present invention, the video coding apparatus may comprise a candidate unit for determining the macroblock size 3510, a video encoder 3520 and a macroblock size determining unit 3530.
[0384] The candidate macroblock size configuration unit 3510 configures the candidate macroblock size that can be used by the video encoder 3500 according to yet another embodiment of the present invention. The candidate macroblock sizes are provided by
EP2991353 user or determined according to image characteristics. Alternatively, the candidate macroblock sizes can be set as candidate groups (e.g., 64 x 64 size, 32 x 32 size and 16 x 16 size) provided by another device.
In this case each macroblock is internally separated into subblocks (here a subblock having a minimum subblock size can be a block in a 4 x 4 pixel unit) that are smaller blocks than a macro block and intra-coded coding or inter-picture coding is performed on sub-blocks created by separation. The partition information indicating the sizes and shapes of the subblocks within the macroblock may be located in the bit stream using the partition information encoding method according to said embodiments of the present invention.
[0387] As another mode of operation of the video encoder 3520, the encoding is performed using 16x16 macroblocks and size 32x32. As a result of coding, when the coding cost when using 32 x 32 macroblocks is higher than the coding cost in If 16x16 macroblocks are used, the 16x16 size is determined as the macroblock size. When the coding cost for using 32 x 32 macroblocks is lower than the coding cost when 16 x 16 macroblocks are used, the encoding is performed again with 64 x 64 macroblocks, followed by coding costs for the use of the macroblock size 32 x 32 and size 64 x 64 are compared in the same way. Accordingly, the macroblock size can be designated.
[0388] Further, as another mode of operation of the video encoder 3520, the encoding is performed using 16x16 macroblocks, 32x16 size, 16x32 size, and 32x32 size. As a result of the encoding, the macroblock size having the best performance is selected. coding. Then, coding is performed that uses pixel blocks formed by doubling the width, height and both widths and height of the selected macroblock, respectively. If the coding efficiency is not improved by using the increased macroblock size, the encoding is terminated and the size of the macroblock is determined.
[0389] The macroblock size determining unit 3530 calculates the coding costs (i.e., the cost of encoding the image data for each macroblock size) produced when the video encoder 3520 encodes the image using each macroblock size and compares the encoding costs for individual macroblock sizes to determine the optimal macroblock size out of the candidate size of the macroblock. Here, the optimal macroblock size can be any macroblock size if this macroblock size causes the lowest coding cost when the image is encoded using the corresponding macroblock size. However, when using the coding cost, different optimal macroblock sizes can be determined by the coding cost.
[0390] Furthermore, when the size of the macroblock is determined, the unit determines the size of the macroblock
EP2991353
3530 produces coded image data using the corresponding macroblock size as a bit stream. In this case, the information about the determined macroblock size can be encoded and placed in the bit stream. The macroblock size information can be placed in the bit stream for the entire image only once or it can be placed in the bit stream in each frame of the entire image. Furthermore, according to another aspect of the present invention, the macroblock size that corresponds to the coding / decoding unit may be differently selected for each frame, patch or macroblock layer.
D-1-2). The method of encoding the macroblock size. [0391] The following describes various methods for encoding a macroblock size according to an embodiment of the present invention.
[0392] As described above, since the macroblock size can be calculated using a minimum subblock size and a maximum partition layer (MaxLayer), the macroblock size can be obtained by encoding the determined macroblock size value or encoding the minimum subblock size and maximum partition layer.
[0393] That is, in a method of encoding information about a block size indicative of a macroblock size or a minimum subblock size and a subblock size encoding, the maximum partition layer information (MaxLayer) is coded together and transmitted to the video decoding apparatus.
[0394] The maximum partition layer information can be encoded into a binary sequence using lossless compression such as binary arithmetic coding, Huffman coding, etc. Alternatively, information about the maximum partition layer may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
D-1-2-1) Method of encoding the macroblock size 1 [0395] First, the first method for encoding the macroblock size will be described.
[0396] A flag (Set_Mbsize_flag) indicating whether to transmit the macroblock size information may be included in the sequence header, in the header of each frame or in the slice header. The macroblock size can be transmitted or not transmitted according to the flag value. In the case of not transmitting the macroblock size, as macroblocks, macroblocks having a predetermined size are used, e.g. 16 x 16 blocks.
[0397] If the macroblock size is specified, the macroblock size information is transmitted. In this case, macroblocks having an arbitrary size, for which horizontal dimensions and vertical dimensions are separately set, can be used. Alternatively, if square macroblocks are used, only the information about one side of the square macroblock is coded and then can be transmitted to the decoding device.
[0398] The value of the macroblock size to be encoded may be defined as the actual macroblock size or a value may be transmitted indicating the number of times the macroblock is to be increased or decreased relative to a fixed size. In addition, the macroblock size value may be represented by a smaller bit of bits by applying a log function to the macroblock size instead of directly encoding the macroblock size value. For example, the log2 value (selected size in MB / X) (X is any positive integer, which is a multiple of 2) is coded. In this case, the value of X can be chosen as the available minimum size of the macroblock. For example, if the available minimum size of the macroblock is 8x8, then it is preferable to select "8" as the value of X.
EP2991353 is an 8 x 8 block and the value "1" is coded when the current macroblock is a 16 x 16 block. If the available minimum macroblock size is 16 x 16, then it is preferable to select "16" instead of "8" as the value X. In this case, the value "0" is coded when the current macroblock is a block of 16 x 16 and the value "1" is coded when the current macroblock is a 32 x 32 block. Accordingly, the size of the current macroblock can be represented using a number of bits smaller than the number of bits used to encode large numbers such as 8, 16 or 32.
[0398] In addition, the enlargements of the horizontal dimension and the vertical dimension can be properly encoded.
[0400] Alternatively, the value of the macroblock size may be the index value of a table predetermined between the video encoding apparatus and the video decoding apparatus.
[0401] In this case, the size of the macroblock to be transmitted may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0402] In the following, for the convenience of the description, it is not described to separately set the horizontal dimension and the vertical dimension, but the separate setting of the horizontal dimension and the vertical dimension may be applicable. In addition, although it is exemplified 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.
[0403] An example of a syntax according to the first method for encoding a 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> [0404] Further, block size information such as MB_size, which indicates the macroblock size, can be encoded using a minimum subblock size and a maximum partition layer.
[0405] Here, the value of the minimum subblock size to be encoded may be specified as the actual minimum subblock size or a value may be transmitted indicating how many times the subblock is to be increased or decreased relative to the determined size. In addition, the value of the minimum subblock size can be represented by a smaller number of bits by applying a logarithmic function to the value of the minimum subblock size instead of directly encoding the values of the minimum subblock size. For example, the value of log2 (minblockSize / X) (X is any positive integer, which 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 available minimum size of the subblock is 4 x 4, then it is preferable to select "4"
EP2991353 with size 4 x 4 and the value "1" is coded when the minimum subblock is an 8 x 8 block. If the available minimum size of the macroblock is 8 x 8, then it is preferable to choose "8" instead of "4" as X value In this case, the value "0" is coded when the available minimum size of the subblock according to the size of the current macroblock is 8 x 8 and the value "1" is coded when the minimum size of the subblock is 16 x 16.
[0406] In addition, the enlargements of the horizontal dimension and the vertical dimension can be properly coded.
[0407] Alternatively, the value of the minimum subblock size may be a table index value defining a block size predetermined between the video encoding apparatus and the video decoding apparatus.
[0408] In this case, the minimum subblock size may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0409] The maximum partition layer information can be encoded into a binary sequence using lossless compression such as binary arithmetic coding, Huffman coding, etc. Alternatively, information about the maximum partition layer may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0410] When the size of the macroblock is encoded using the minimum subblock size and the 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> [0411] Alternatively, the macroblock size may be transmitted to a video decoding apparatus in the header of each of the sections, frames, slices or macroblocks without coding a flag (Set_Mbsize_flag) indicating whether to transmit the macroblock size information.
D-1-2-2) Method for encoding the macroblock size 2 [0412] The following describes a second method of encoding a macroblock size.
[0413] According to the second method, the size M x N is set as the reference macroblock size and a 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 coded. Alternatively, after encoding in the header of the flag sequence indicating whether to set the reference
EP2991353 macroblock size, predetermined size, e.g. 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 included in the sequence header if the reference macroblock size is set.
[0414] Here in the code method of the default_Mbsize value, which is information indicating the macroblock size reference or MB_size, which is the information indicating the current macroblock size, the actual macroblock size can be determined or a value indicating how many times the macroblock should be increased or decreased relative to fixed size. Alternatively, as described in said first method, the macroblock size value may be represented by a smaller number of bits by applying a log function to a macroblock size value instead of directly encoding a macroblock size value.
[0415] In addition, the enlargements of the horizontal dimension and the vertical dimension can be properly encoded.
[0416] Alternatively, the macroblock size value may be a table index value predetermined between the video encoding apparatus and the video decoding apparatus.
[0417] In this case, the size of the macroblock to be transmitted can be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0418] An example of a syntax according to said second method of encoding the macroblock size is represented as follows.
[0419] Sequence header, frame or slice Set_defaultMBsize_Flag if (Set_MBsize_Flag == 1) <sup>{</sup> defait_MBsize <sup>}</sup> [420] Header of a frame, patch or macroblock use_defalt_MBsize_flag if (use_defalt_MBsize_flag == 0) <sup>{</sup>
MB_size <sup>}</sup> [0421] Additionally, block size information such as default_MBsize indicating the default or reference macroblock size and MB_size indicating the macroblock size can be encoded using the minimum subblock size and the maximum partition layer.
[0422] In the coding method of a reference minimum size of the default_minBlockSize subblock indicating a reference macroblock size or a minimum size of the minBlockSize subblock indicating the size of the current macroblock, the minimum subblock size to be actually encoded may be specified and a value may be transmitted indicating how many times the subblock has be increased or decreased in relation to the previously determined size. Alternatively, as described in said first method, the value of the minimum subblock size can be represented by a smaller number of bits by applying a log function to a value
EP2991353 the minimum size of the sub-block instead of directly coding the value of the minimum sub-block size.
[0423] In addition, the enlargements of the horizontal dimension and the vertical dimension can be properly encoded.
[0424] Alternatively, the value of the minimum subblock size may be the index value of a table predetermined between the video encoding apparatus and the video decoding apparatus.
[0425] In this case, the minimum size of the subblock to be transmitted may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0426] The maximum partition layer information can be encoded into a binary sequence using lossless compression such as binary arithmetic coding, Huffman coding, etc. Alternatively, information about the maximum partition layer may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0427] When the size of the macroblock is encoded using a minimum subblock size and a maximum partition layer, an example of said second syntax can 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> [0428] The header of a frame, patch or macroblock use_default_MBsize_flag if (use_defalut_MBsize_flag == 0) <sup>{</sup> minBlockSize
MaxLayer <sup>}</sup>
D-1-2-3) Method of encoding the macroblock size 3 [0429] The following describes a third method for encoding a macroblock size.
[0430] According to a third method, the size M x N is determined as a reference macroblock size and a flag indicating whether to use a reference macroblock size is encoded in each header of each frame, sub-header or header of the minimum subblock and transmitted to the video decoding apparatus. 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, the block having the size increased or decreased by a predetermined coefficient relative to the reference macroblock size is selected as the current macroblock in the encoding or decoding process. E.g,
EP2991353 of the reference macroblock may be selected as the current macroblock.
[0431] When different increase or decrease ratios are possible, these different coefficients can be represented by using a flag length greater than 2 bits. Alternatively, information indicating an increase factor or reduction factor may be additionally coded in addition to a flag indicating whether to use a reference macroblock size.
[0432] 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, the reference macroblock size corresponds to the minimum macroblock size available for coding or decoding the current bit stream. Conversely, 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, the reference macroblock size corresponds to the minimum macroblock size available for encoding or decoding the current bit stream.
[0433] The video decoding apparatus may select the size of the current macroblock using a flag indicating whether to use a reference macroblock size and / or additional information indicating an increase or decrease by a predetermined coefficient relative to the reference macroblock size.
[0434] According to an aspect of the present invention, a flag indicating whether to set the reference macroblock size may be included in a sequence header. If the reference macroblock size is not set, it can be previously determined that a predetermined size has been used, for example, size 16 x 16 as the reference macroblock size.
[0435] When the reference macroblock size is set and signaled to the video decoding apparatus, the reference macroblock size information is coded and may be included in the sequence header. According to one aspect of the present invention, the video coding apparatus may signal information indicating the maximum macroblock size available for encoding or decoding the current bit stream to 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 to the video decoding apparatus as information about the reference macroblock size.
[0436] In the code method of the default_MBSize value, which is the reference macroblock size information, the actual macroblock size can be determined and a value can be transmitted indicating the number of times the macroblock is to be increased or decreased relative to the determined size. Alternatively, as described in said first method, the macroblock size value may be represented by a smaller number of bits by applying a log function to a macroblock size value instead of directly encoding a macroblock size value.
[0437] Specifically, for example, when the default_MBSize value indicates the maximum macroblock size available for coding or decoding the current bit stream, the log2 (X / default_MBSize) value (X is any positive integer, which is a multiple of 2) is
EP2991353 coded. In this case, the available maximum macroblock size can be selected as an X value. Alternatively, when default_MBSize indicates the available minimum macroblock size for encoding or decoding the current bit stream, the log2 value (default_MBSize / X) (X is any positive integer that is multiple of 2) is coded. In this case, the available minimum size of the macroblock can be selected as an X value.
[0438] In addition, the enlargements of the horizontal dimension and the vertical dimension can be properly encoded.
[0439] Alternatively, the macroblock size value may be a table index value predetermined between the video encoding apparatus and the video decoding apparatus.
[0440] In this case, the size of the macroblock to be transmitted may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0441] Also, block size information such as default_MBsize indicating the reference macroblock size and MB_size indicating the macroblock size may be encoded using the minimum subblock size and the maximum partition layer.
[0442] In the coding method of the default_minBlockSize value, which is the information about the reference minimum size of the subblock, the minimum subblock size to be actually encoded can be determined and a value can be transmitted indicating how many times the subblock is to 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 log function to a value of the minimum subblock size instead of directly encoding the values of the minimum subblock size.
[0443] Specifically, 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 log2 (X / default_minBlockSize) value (X is any positive integer that is a multiple of 2 ) is coded. In this case, the available maximum subblock size can be selected as an 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 log2 value (default_minBlockSize / X) (X is any a positive integer, which is a multiple of 2) is coded. In this case, the available minimum subblock size can be selected as the X value.
[0444] In addition, the enlargements of the horizontal dimension and the vertical dimension can be properly encoded.
[0445] Alternatively, the reference minimum subblock size may be a table index value predetermined between the video encoding apparatus and the video decoding apparatus.
[0446] In this case, the reference minimum subblock size may be encoded using a variety of binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0447] The maximum partition layer information may be encoded into a binary sequence using lossless compression such as binary arithmetic coding, Huffman coding, etc. Alternatively, information about the maximum partition layer may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
EP2991353
D-1-2-4) Method of encoding the macroblock size 4 [0448] The following describes a fourth method for encoding a macroblock size.
[0449] According to the fourth method, after coding in the first frame a flag indicating whether to use the reference macroblock size and the macroblock size selected when the reference macroblock size is not used, a flag indicating whether to use the macroblock size from the previous frame and the macroblock size for the current frame in If the size of the macroblock from the previous frame is not used, they can be encoded in subsequent frames starting from the second frame.
[0450] In the code method of the default_MBsize value, which is information indicating the macroblock size reference or MB_size, which is information indicating the size of the current macroblock, the actual macroblock size can be determined and a value can be transmitted indicating how many times the macroblock is to be increased or decreased relative to previously 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 size values of the macroblocks instead of directly encoding the values of the macroblock sizes.
[0451] In addition, the enlargements of the horizontal dimension and the vertical dimension can be properly encoded. Alternatively, the size values of the macroblocks to be encoded may be the index value of the table predetermined between the coding device and the video decoding apparatus.
[0452] In this case, the size of the macroblock to be transmitted may be encoded using a variety of binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0453] An example of a syntax according to said fourth method of encoding the macroblock size is represented as follows.
First frame [0454] use_default_MBsize_flag if (use_default_MBsize_flag == 0) <sup>{</sup>
MB_size <sup>}</sup>
From the second frame [0455] use_prevPic_MBsize_flag if (use_prevPic_MBsize_flag == 0) <sup>{</sup>
MB_size <sup>}</sup> [0456] Further, block size information, such as MBsize, indicating the size of the macroblock may be encoded using a minimum subblock size and a maximum partition layer.
[0457] The minimum size of the subblock to be actually encoded may be determined and a value may be transmitted indicating how many times the subblock is to be increased or decreased relative to a predetermined size. Alternatively, as described in said first method, a function
The logarithmic EP2991353 can be applied to the value of the minimum subblock size instead of directly coding the value of the minimum subblock size.
[0458] In addition, the enlargements of the horizontal dimension and the vertical dimension can be properly encoded. Alternatively, the minimum subblock size may be the index value of a table predetermined between the coding apparatus and the video decoding apparatus.
[0459] In this case, the reference minimum subblock size may be encoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0460] The maximum partition layer information may be encoded into a binary sequence 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 a unary code, a truncated unary code, an exponential Golomba code, etc.
[0461] When the reference macroblock size or macroblock size is encoded using a minimum subblock size and a maximum partition layer, an example of said fourth syntax may be represented as follows.
First frame [0462] use_defalt_MBsize_flag if (use_defalt_MBsize_flag == 0) <sup>{</sup> minBlockSize
MaxLayer <sup>}</sup>
From the second frame [0463] use_prevPic_MBsize_flag if (use_prevPic_MBsize_flag == 0) <sup>{</sup> minBlockSize
MaxLayer <sup>}</sup>
D-1-2-5) Method of encoding the macroblock size [0464] In the following, a fifth method of encoding the macroblock size will be described.
[0465] According to a fifth method, different macroblock sizes are used for an intra frame and an inter frame. That is, the macroblock size for the intra frame and the macroblock size for the inter frame are encoded in the sequence header. Alternatively, each macroblock size according to the type of frame can only be encoded in the headers of the first intra frame and the first inter frame. A way of coding information about the size of the macroblock
EP2991353 for the intra frame and the macroblock size for the inter frame can be used in conjunction with the aforementioned methods.
Sequence header [0466]
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> [0467] Furthermore, the information about the intra macroblock size or the mac interlock size can be encoded with a minimum block size and a maximum partition layer.
[0468] When the intra macroblock size or the 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 [0469]
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 coding methods [0470] Fig. 36 is a block diagram illustrating an embodiment of a video coding method according to another aspect of the present invention.
[0471] The video encoding apparatus in step S3610 configures the candidate macroblock size, in step S3620 encodes the input image using each candidate macroblock size, in step S3630 determines the macroblock size under coding costs for each candidate macroblock size and in step S3640 generates a stream bits comprising image data encoded using the designated macroblock size and information about the determined macroblock size. Because FIG. 35 describes that the video encoding device configures the candidate macroblock size, it encodes the image
EP2991353 for each candidate macroblock size and determines the macroblock size based on the coding costs of the encoded image data for each candidate macroblock size, its detailed description is omitted.
D-2) Video decoding device
D-2-1) Description of the decoding apparatus [0472] Fig. 37 is a block diagram illustrating the implementation of a video decoding apparatus according to another aspect of the present invention.
[0473] According to an embodiment of the video decoding apparatus according to another aspect of the present invention, the video decoding apparatus 3700 may comprise a macroblock size configuration unit 3710 and a video decoder 3720.
[0474] The macroblock size configuration unit 3710 extracts from the bit stream macroblock size information before performing decoding in the macroblock unit and configures the macroblock size using the information extracted.
[0475] When a video encoding device is predetermined between the video encoding apparatus and the video decoding device that the macroblock size information is included in the bit stream only once, the image may be reproduced by decoding the bit stream information for the whole image only once and at using the extracted macroblock size while decoding the entire image. Once it is determined that the macroblock size is encoded / decoded in each frame, the image can be reproduced by extracting the macroblock size from the bitstream for each frame and using different macroblock sizes for each frame. Furthermore, according to another aspect of the present invention, the image can be reproduced by extracting a macroblock size for each frame, patch or macroblock layer and using the selected macroblock size.
[0476] The video decoder 3720 may be implemented as a video decoding device according to one embodiment of the present invention described with reference to Fig. 32 and sizes and shapes of the subblocks resulting from separation for predictions or transformations within the macroblock are reproduced by decoding the partition information according to FIG. reconstructed macroblock size by means of methods according to said forms. The individual sub-blocks are reproduced by extracting and decoding the encoded image data for individual sub-blocks from the bit stream.
D-2-2) Method for decoding macroblock size information [0477] The following describes various methods for encoding a macroblock size according to an embodiment of the present disclosure.
D-2-2-1) Method No. 1 for decoding macroblock size information [0478] First, a decoding method according to the first method for encoding a macroblock size is described.
[0479] A flag (Set_MBsize_flag) indicating whether to transmit the macroblock size information may be included, a flag (Set_Mbsize_flag) indicating whether to transmit information about the macroblock size 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 apparatus and the video decoding apparatus, e.g., the 16 x 16 block is used as a macroblock.
[0480] When a decoded macroblock size specifying a flag (Set_Mbsize_flag) indicates that the size
The block size is determined, the macroblock size is entropy decoded and extracted using a method predetermined between the video encoding apparatus and the video decoding apparatus among different entropy decoding methods such as unary code, truncated unary code, exponential Golomb code, etc.
[0481] When the horizontal dimension and the vertical dimension of the macroblock are separately determined and then transmitted, then the horizontal dimension and the vertical dimension can be obtained by entropy decoding of each dimension. Alternatively, if the square macroblock is used, only information indicating one side of the square macroblock can be entropy coded.
[0482] The decoded value may be defined as the actual size of the macroblock and a value may be transmitted indicating how many times the macroblock is to be increased or decreased relative to the predetermined size. Furthermore, when the video coding apparatus codes a value formed by applying a log function to the macroblock size value, the macroblock size can be determined by applying an exponential function to an entropyally decoded value. For example, when the video coding device encodes an value of y, which is a value equal to log2 (MBsize selected at the encoder / X) (X is any positive integer, which is a multiple of 2), then the decoding apparatus decodes entropyly y and can get the size a macroblock chosen in the encoder by multiplying 2<sup>s</sup>by X. Here, X corresponds to a value predetermined between the video encoding apparatus and the video decoding apparatus or value extracted from the bitstream prior to decoding the macroblock size. When the minimum macroblock size available for X is selected and used, and the available minimum macroblock size is 8x8, the macroblock size is set to 8x8 if the decoded y value is "0" and the macroblock size is set to 16x16, if the decoded value of y is "1". When the available minimum size of the macroblock 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 value of y is "0".
[0483] Furthermore, when the video encoding apparatus decodes the magnifications of the horizontal dimension and the vertical size, respectively, the macroblock size can be obtained by entropy decoding of the magnifications of the horizontal dimension and the vertical dimension, respectively.
[0484] Additionally, when the index value of the table predetermined between the video encoding apparatus and the video decoding apparatus is encoded, the macroblock size can be obtained by using the decoded value as the table index value.
[0485] In this case, the macroblock size can be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc. For the sake of convenience, this description is not described to separately decode and extract the horizontal dimension and the vertical dimension, but separate extraction of the horizontal dimension and the vertical dimension may be applicable. Furthermore, although it is exemplified that the data is decoded in the sequence header and in the frame header, the macroblock size may be decoded in the patch header or in the macroblock header when the video encoding device encodes the macroblock size in the slice header or the macroblock header.
[0486] Once established between the video encoding apparatus and the video decoding apparatus that the minimum subblock size and the maximum partition layer are used as the macroblock size information, the minimum subblock size information and the maximum partition layer are extracted and decoded from the stream. bits, then the macroblock size can be restored.
EP2991353 [0487] When the decoded macroblock size flag (Set_MBsize_flag) indicates that the block size is determined, the minimum subblock size is entropy decoded and extracted using a method predetermined between the video encoding apparatus and the video decoding apparatus from a variety of entropy decoding methods such as unary code, truncated unary code, Golomba's exponential code, etc.
[0488] When the horizontal dimension and the vertical dimension of the minimum subblock size are separately determined and then transmitted, then the horizontal dimension and the vertical dimension can be obtained by entropy decoding of each dimension. Alternatively, if the square macroblock is used, only information indicating one side of the square macroblock can be entropy coded.
[0489] The decoded value may be defined as the actual minimum size of the subblock and a value may be transmitted indicating how many times the subblock is to be increased or decreased relative to the predetermined size. Furthermore, when the video coding device encodes a value formed by applying a log function to a value of the minimum subblock size, the minimum subblock size can be determined by applying an exponential function to the entropyally decoded value. For example, when the video encoding apparatus encodes an y value which is a value equal to log2 (minBlockSize selected in the video encoding apparatus according to the selected macroblock size / X) (X is any positive integer, which is a multiple of 2),<sup>s</sup>by X. Here, X corresponds to a value predetermined between the video encoding apparatus and the video decoding apparatus or 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, then 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 value of y is "1". When the available minimum size of the subblock is 8 x 8, the value "8" instead of "4" is used as X and the minimum size of the subblock is set to 8 x 8 if the decoded value of y is "0".
[0490] Furthermore, when the video encoding apparatus decodes the magnifications of the horizontal dimension and the vertical size, respectively, the minimum size of the subblock can be obtained by entropy decoding of the magnifications of the horizontal dimension and the vertical dimension, respectively.
[0491] Additionally, when the index value of the table predetermined between the video encoding apparatus and the video decoding apparatus is encoded, the minimum subblock size can be obtained by using the decoded value as the table index value.
[0492] In this case, the minimum size of the subblock can be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0493] The maximum partition layer information is decoded using lossless compression such as binary arithmetic coding, Huffman coding, etc. and can be decoded using various methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0494] When the reproduced minimum size of the subblock is N x N and the maximum partitioning layer is x, then the macroblock size is (Nx2<sup>x</sup>) X (Nx2<sup>x</sup>).
E-2-2-2) Method No. 2 for decoding macroblock size information
EP2991353 [0495] Described below is a decoding method according to a second method of encoding a macroblock size. [0496] According to the second method, the size M x N predetermined between the video encoding apparatus and the video decoding apparatus is set as the reference macroblock size and a flag indicating whether to use the macroblock size reference is entropy decoding 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, then informThe macroblock is extracted by entropy decoding macroblock size information and the size of the macroblock 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 predetermined reference macroblock size is set as the macroblock size and a number of decoding processes are performed.
[0497] 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 a sequence header, etc. inside the bit stream. Here, the reference macroblock size or the size of the current macroblock 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 codes a value formed by applying a log function to a macroblock size value, this value of the macroblock size can be obtained using the exponential function. [0498] Furthermore, when the video encoding apparatus decodes the magnifications of the horizontal dimension and the vertical size, respectively, the macroblock size can be obtained by entropy decoding of the magnifications of the horizontal dimension and the vertical dimension, respectively.
[0499] Additionally, when the index value of the table predetermined between the video encoding apparatus and the video decoding apparatus is encoded, the macroblock size can be obtained by using the decoded value as the table index value.
[0500] In this case, the size of the macroblock that may be transmitted may be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0501] Further, when the macroblock size reference size or macroblock size information corresponds to the minimum subblock size information and the maximum partition layer, the minimum reference size information of the subblock matches the reference macroblock size or the minimum subblock size according to the macroblock size and information about the subblock size. the maximum partition layer is extracted and decoded from the bitstream, and then the macroblock size is decoded.
[0502] Here, the reference minimum subblock size and the minimum subblock size can 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 may have an entropy decoded value allocated and the minimum subblock 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 codes a value formed by applying a log function to a value of the minimum subblock size,
EP2991353 the value of the minimum subblock size can be obtained using the exponential function.
[0503] Furthermore, when the video encoding apparatus decodes the magnifications of the horizontal dimension and the vertical size, respectively, the minimum size of the subblock can be obtained by entropy decoding of the magnifications of the horizontal dimension and the vertical dimension, respectively.
[0504] Additionally, when the index value of the table predetermined between the video encoding apparatus and the video decoding apparatus is encoded, the minimum subblock size can be obtained by using the decoded value as the table index value.
[0505] In this case, the minimum size of the subblock can be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0506] The maximum partition layer information may be decoded using lossless compression such as binary arithmetic coding, Huffman coding, etc. and various binary coding methods such as unary code, truncated unary code, Golomba's exponential code, etc.
[0507] When the reproduced minimum size of the subblock is N x N and the maximum partition layer is x, then the macroblock size is (Nx2<sup>x</sup>) X (Nx2<sup>x</sup>).
D-2-2-3) Method No. 3 for decoding macroblock size information [0508] The following describes a decoding method according to a third method of encoding a macroblock size. [0509] According to a third method, the video decoding apparatus extracts from the bitstream a flag indicating whether to use the reference macroblock size and / or additional information indicating an increase or decrease of the predetermined factor relative to the reference macroblock size and then the macroblock size can be extracted using the above information .
[0510] First, the size N x N is set as the reference macroblock size and a 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 equally set to the reference macroblock size and the 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, this value increased or decreased relative to the reference macroblock size by a factor predetermined between the video encoding apparatus and the video decoding apparatus is set as the size of the current macroblock and the decoding is performed in the macroblock unit. For example, the size increased or decreased twice in relation to the horizontal dimension and the vertical size of the reference macroblock may be set as the size of the current macroblock.
[0511] When the video encoding implement uses different increase or decrease factors, it places the selected ratio in the bit stream and encodes the bit stream, and the video decoding apparatus can obtain different factors by decoding the number of bits in the bit stream predetermined between the coding apparatus video and a video decoding device while decoding an entropy flag.
[0512] Alternatively, when information indicating an increase factor or reduction factor is included in the bitstream and encoded in addition to a flag indicating whether to use the reference macroblock size, the increase factor or reduction factor may be decoded or not decoded according to the flag value indicating whether to use the reference size macroblock after the flag is decoded. If the increase factor or reduction factor is not
EP2991353 decoded, the reference macroblock size is set as the size of the current block, and then the decoding processes are performed.
[0513] When the decoded flag indicates that the reference macroblock size is different from the size of the current macroblock and the decoded coefficient is an increasing coefficient, the reference macroblock size is set as the minimum macroblock size available for encoding or decoding the current bit stream, then size increased relative to the reference the macroblock size by an entropy decoded coefficient is set as the size of the current macroblock. Conversely, when the entropy decoded coefficient is a decreasing factor, the reference macroblock size is set as the maximum macroblock size available for coding or decoding the current bit stream,
[0514] According to an embodiment of the present invention, when a flag indicating whether to set the reference macroblock size is included in a bit stream header and then transmitted, the decoder decodes entropyly the flag in the sequence header. And then, when the flag indicates that the reference macroblock size is set, the decoder extracts the reference macroblock size information from a predetermined location, such as a bitstream stream header, and sets the reference macroblock size using the information extracted. When the flag indicates that the reference macroblock size is not set, the size predetermined between the video encoding apparatus and the video decoding apparatus, e.g. 16 x 16, can be used as the reference macroblock size.
[0515] According to an embodiment of the present invention, the video decoding apparatus extracts from the bit stream information indicating the maximum macroblock size available for coding or decoding the current bit stream and can use the information extracted to set the reference macroblock size. According to another embodiment of the present invention, the video decoding apparatus extracts from the bitstream information indicative of the minimum macroblock size available for encoding or decoding the current bitstream and may use the extracted information to set the reference macroblock size. According to yet another embodiment of the present invention,
[0516] In the decoding method of the default_Mbsize value, which is the information indicating the reference macroblock size, the entropy decoded value itself can be set as the value of the reference macroblock size and the reference macroblock size can be obtained by increasing or reducing a predetermined size using an entropy decoded value as increasing coefficient or decreasing factor. Alternatively, as described in said first decoding method, when the video encoding apparatus encodes a value formed by applying a log function to a macroblock size value, the macroblock size value may be obtained using an exponential function.
[0517] Specifically, for example, when the default_MBsize value indicates the maximum macroblock size available for coding or decoding the current bit stream and the device for
EP2991353 of the video coding encodes an value of y, which is a value equal to log2 (X / default_MBsize) (X is any positive integer, which is a multiple of 2), the video decoding apparatus can obtain the default_Mbsize value by entropy decoding y and multiplying the X by 2<sup>s</sup>. In this case, X may be a value predetermined between the video encoding apparatus and the video decoding apparatus, such as the available maximum macroblock size, or the value extracted from the bitstream prior to decoding the default_MBsize value.
[0518] Alternatively, when the default_MBsize value indicates the minimum macroblock size available for encoding or decoding the current bit stream, the video coding apparatus codes the value of y, which is a value equal to log2 (X / default_MBsize) (X is any positive integer that is a multiple 2), the video decoding apparatus extracts the value of y from the bit stream by entropy decoding. And then the video decoding device sets the default_MBsize value to the value created by multiplying X by 2<sup>s</sup>. In this case, X may be a value predetermined between the video encoding apparatus and the video decoding apparatus, such as the available minimum macroblock size, or the value extracted from the bitstream prior to decoding the default_MBsize value.
[0519] Furthermore, when the video encoding apparatus decodes the magnifications of the horizontal dimension and the vertical dimension, respectively, the reference macroblock size can be obtained by entropy decoding of the magnifications of the horizontal dimension and the vertical dimension, respectively.
[0520] In addition, when the index value of the table predetermined between the video encoding apparatus and the video decoding apparatus is encoded, the reference macroblock size can be obtained by using the decoded value as the table index value.
[0521] In this case, the reference macroblock size may be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0522] Further, when the reference macroblock size or macroblock size information corresponds to the minimum subblock size information and the maximum partition layer, the minimum reference size information of the subblock matches the reference macroblock size or the minimum subblock size according to the macroblock size and information about the subblock size. the maximum partition layer is extracted and decoded from the bitstream, and then the macroblock size is decoded.
[0523] In the decoding method of the default_minBlockSize value, which is the information indicating the subblock reference reference size, the entropy decoded value itself can be set as the value of the reference subblock minimum value and the reference subblock size can be obtained by increasing or decreasing the predetermined size by using a value entropy decoded as an increasing factor or decreasing factor. Alternatively, as described in said first decoding method, when the video encoding apparatus encodes a value formed by applying a log function to a value of the minimum subblock size, the value of the minimum subblock size can be obtained using an exponential function.
[0524] 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 coding device codes the value of y, which is a value equal to log2 (X / default_minBlockSize) (X is any positive number total, which is a multiple of 2), the video decoding device can obtain
EP2991353 the value of default_minBlockSize by entropy decoding the value of y and multiplying X by 2<sup>s</sup> . In this case, X may be a value predetermined between the video encoding apparatus and the video decoding apparatus such as the available maximum minimum subblock size or value extracted from the bitstream prior to decoding the default_minBlockSize value.
[0525] Alternatively, when the default_minBlockSize value indicates the minimum minimum subblock size available for encoding or decoding the current bit stream, the video coding apparatus codes the value of y, which is a value equal to log2 (X / default_minBlockSize) (X is any positive integer that is multiply of 2), the decoding apparatus decodes entropyly and extracts the value of y from the bitstream by means of entropy decoding. And then the video decoding device sets the default_minBlockSize value to the value created by multiplying X by 2<sup>s</sup>. In this case, X may be a value predetermined between the video encoding apparatus and the video decoding apparatus such as the smallest available minimum subblock size or value extracted from the bitstream prior to decoding the default_minBlockSize value.
[0526] Furthermore, when the video encoding apparatus decodes the magnifications of the horizontal dimension and the vertical size, respectively, the reference minimum subblock size can be obtained by entropy decoding of the magnifications of the horizontal dimension and the vertical dimension, respectively.
[0527] Additionally, when the index value of the table predetermined between the video encoding apparatus and the video decoding apparatus is encoded, the reference minimum subblock size can be obtained by using the decoded value as the table index value.
[0528] In this case, the reference minimum subblock size may be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0529] The maximum partition layer information may be decoded using lossless compression such as binary arithmetic coding, Huffman coding, etc. and various methods such as unary code, truncated unary code, Golomba's exponential code, etc.
[0530] When the reproduced minimum size of the subblock is N x N and the maximum partitioning layer is x, then the macroblock size is (Nx2<sup>x</sup>) X (Nx2<sup>x</sup>).
D-2-2-4) Method No. 4 for decoding macroblock size information [0531] The following describes a decoding method according to the fourth method of encoding a macroblock size.
[0532] According to the fourth method, after coding in the first frame a flag indicating whether to use the macroblock reference size and the macroblock size selected when the reference macroblock size is not used, a flag indicating whether to use the macroblock size from the previous frame and the macroblock size for the current frame in the case when the size of the macroblock from the previous frame is not used, they can be encoded in subsequent frames starting from the second frame.
[0533] When a flag indicating whether to use the reference macroblock size indicates that the reference macroblock size is used, the macroblock size is equally set to the reference macroblock size, and then decoding the first frame is started.
[0534] 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, it's the size
EP2991353 macroblock is set to a value equal to the macroblock size from the previous frame and the second frame is decoded.
[0535] In the decoding method of the default_MBsize value, which is the information indicating the macroblock size reference or the MB_size value, which is the information indicating the macroblock size for the current frame, the entropy decoded value can be used as the macroblock size and the macroblock size can be obtained by increasing or decreasing from top of a fixed size using an entropy-decoded value as an increasing factor or a decreasing factor. Alternatively, as described in said first decoding method, when the video encoding apparatus encodes a value formed by applying a log function to a macroblock size value, the macroblock size value may be obtained using an exponential function.
[0536] Furthermore, when the video encoding apparatus decodes the magnifications of the horizontal dimension and the vertical size, respectively, the reference macroblock size can be obtained by entropy decoding of the magnifications of the horizontal dimension and the vertical dimension, respectively.
[0537] In addition, when the index value of the table predetermined between the video encoding apparatus and the video decoding device is encoded, the reference macroblock size can be obtained by using the decoded value as the table index value.
[0538] In this case, the reference macroblock size may be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0539] Furthermore, when the macroblock size information corresponds to the minimum subblock size information and the maximum partition layer, information about the minimum subblock size and maximum partition layer information are entropy decoded from the bit stream, and then the macroblock size is decoded.
[0540] In the decoding method of the default_minBlockSize value, which is information indicating the reference subblock minimum size or minblockSize value, which is the 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 by means of an entropy-decoded value as an increasing factor or a decreasing factor. Alternatively, as described in said first decoding method, when the video encoding apparatus encodes a value formed by applying a log function to a value of the minimum subblock size, the value of the minimum subblock size can be obtained using an exponential function.
[0541] Furthermore, when the video encoding apparatus decodes the magnifications of the horizontal dimension and the vertical size, respectively, the reference minimum subblock size can be obtained by entropy decoding of the magnifications of the horizontal dimension and the vertical dimension, respectively.
[0542] Additionally, when the index value of the table predetermined between the video encoding apparatus and the video decoding apparatus is encoded, the reference minimum subblock size can be obtained by using the decoded value as the table index value.
[0543] In this case, the reference minimum subblock size may be decoded using various binary coding methods such as a unary code, a truncated unary code, an exponential Golomba code, etc.
[0544] The maximum partition layer information may be decoded by means of compression
EP2991353 lossless such as binary arithmetic coding, Huffman coding, etc. and various methods such as unary code, truncated unary code, Golomba's exponential code, etc.
[0545] When the reproduced minimum size of the subblock is N x N and the maximum partitioning layer is x, then the macroblock size is (Nx2<sup>x</sup>) X (Nx2<sup>x</sup>).
D-2-2-5) Method No. 5 decoding the macroblock size information [0546] The following describes a decoding method according to a fifth method of encoding a macroblock size.
[0547] According to a fifth method, the macroblock sizes for an intra frame and inter frames are extracted from predetermined locations within a bit stream between the video encoding apparatus and the video decoding apparatus and the macroblock size according to the frame type is set.
[0548] Flags indicating whether to decode a macroblock size for an intra frame and indicate whether to decode the macroblock size for the inter frame are reproduced respectively in the sequence header or frame headers, and then the macroblock size for the intra frame or inter frame is decoded according to the flag value in the stream bits or the image is reproduced using a predetermined macroblock size.
[0549] A method of decoding macroblock size information for intra frame and macroblock size for inter frame can be used in conjunction with said decoding methods in accordance with said coding methods.
[0550] Furthermore, when the information about the intra macroblock size or mac interlock size corresponds to the minimum subblock size and maximum partition layer information, the minimum subblock size information and the maximum partition layer information are entropy decoded from the bit stream, and then the macroblock size is decoded.
[0551] A method for decoding information regarding a minimum subblock size for an intra frame or a minimum subblock size for a inter frame may be used in conjunction with said decoding methods in accordance with said coding methods.
[0552] The maximum partition layer information may be decoded using lossless compression such as binary arithmetic coding, Huffman coding, etc. and various methods such as unary code, truncated unary code, Golomba's exponential code, etc.
[0553] When the reproduced minimum size of the subblock is N x N and the maximum partition layer is x, the macroblock size is (Nx2<sup>x</sup>) X (Nx2<sup>x</sup>)
D-2-3) Block diagram illustrating the decoding operation [0554] Meanwhile, the video decoding method according to one embodiment of the present invention may comprise extracting from the bit stream macroblock size information and configuring the macroblock size using the extracted information in step S3810, extracting from the stream bits of coded image data and creating a reproduced image by decoding the encoded image data according to the block size identified by the block size information in step S3820.
[0555] It should be obvious to those skilled in the art that particular forms of determining the macroblock size and encoding and decoding size information may be implemented in various ways by combining them with individual macroblock separation forms and encoding and decoding macroblock partition information according to said embodiments of the present invention. invention.
[0556] The main features of the present invention can be summarized as follows. [0557] The use of blocks having a variable size (e.g., a macroblock, which is a coding / decoding unit)
EP2991353 [0558] Determination of block size having variable size and size encoding [0559] Separating a block having a fixed size into subblocks and encoding partition information [0560] Meanwhile, as an example of macroblock separation according to one embodiment of the present invention, separation for prediction or transformation has been described in the mentioned forms. However, the prediction or transformation is only an example to which the separation can be applied, and the macroblock can be separated for different purposes in addition to prediction or transformation. Furthermore, the object to be separated may not only be a macro block, but also any image area. For example, even when a block having a predetermined size that corresponds to a prediction unit is split into subblocks for an efficient transformation,
[0561] In other words, within the scope of the present invention, various separation methods are provided as well as a method and apparatus for efficiently coding and decoding partition information when it is required to split a block of an image into sub-blocks for any purpose.
[0562] Meanwhile, a video encoding / decoding apparatus according to one embodiment of the present invention may be implemented by combining an input terminal of a video decoding apparatus according to an embodiment of the present invention with an output terminal of a video decoding apparatus according to an embodiment of the present invention.
[0563] The video encoding / decoding apparatus according to one embodiment of the present invention comprises a video encoder for encoding an image by generating coded image data by encoding the current block divided into multiple subblocks and generating coded partition information by encoding the partition information for the current partition. block; and a video decoder for decoding the image as a result of reproducing the partition information for the current block by decoding the encoded data with the partition information extracted from the bitstream and playing the current block divided into plots by decoding the encoded image data extracted from the bitstream according to the reproduced partition information. for the current block.
[0564] The video coding / decoding method of one of the embodiments of the present invention encodes an image by generating coded image data by encoding the current block divided into multiple subblocks and generating the encoded partition information by encoding the partition information for the current block; and decoding the image as a result of reproducing the partition information for the current block by decoding the encoded data with the partition 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 reproduced partition information for the current block .
[0565] In the foregoing description, although all components of the embodiments of the present invention could be explained as assembled or functionally combined as a unit, the present invention 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 may also be implemented independently in the form of hardware, while the respective components may be selectively connected in part or in whole and implemented in the form of a computer program having program modules for performing hardware equivalent functions. The codes or segments of code making up such a program can be easily deduced by those skilled in the art.
EP2991353 a computer-readable medium that can implement embodiments of the present invention in operation. Computer-readable media candidates include magnetic carriers, optical media, and carriers using a carrier wave.
[0566] In addition, terms such as & quot; contain & quot; and & quot; compound & quot; and & quot; have & quot; should be interpreted by default as being inclusive or open, and not as exclusion or termination unless clearly defined otherwise. All terms that are technical, scientific or otherwise agree with meanings within the meaning of those skilled in the art unless otherwise defined. Common terms found in dictionaries should be interpreted in the context of related technical provisions in a way that is not ideal or practical, unless the present invention clearly defines them in this way.
[0567] Although exemplary embodiments of the present invention have been described for purposes of illustration, those skilled in the art will appreciate that various modifications, additions and substitutions are possible without departing from the essential features of the disclosure. Therefore, exemplary embodiments of the present invention are not 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 Applicability] [0568] As described above, the present invention is very useful for use in image compression processing areas for encoding and decoding high resolution video by efficiently encoding and decoding block split information at the time of high resolution encoding using macroblocks variable size, which results in improved compression performance.
Contents17
113 members in 10 offices
Priority claims7
| Document | Office | Kind | Date |
|---|---|---|---|
| 20090093982 | Republic of Korea | A | |
| 20090093987 | Republic of Korea | A | |
| 151831286 | – | – | – |
| 20090093982 | – | – | – |
| 20090093987 | – | – | – |
| KR20090093982 | – | – | – |
| KR20090093987 | – | – | – |
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 | |
| PL2485490T3 | 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 | |
| PL2991353T3This record | 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
- 2991353
- Publication, DOCDB
- 2991353
- Publication, EPODOC
- PL2991353T
- Application
- 15183128
- Application, DOCDB
- 15183128
- Application, EPODOC
- PL20150183128T
Titles2
- English
- APPARATUS FOR ENCODING IMAGE USING SPLIT LAYER
- Polish
- Sposób i urządzenie do kodowania/dekodowania obrazu za pomocą warstwy rozdziału
Classification
- CPC, 10
- H04N19/105
- H04N19/119
- H04N19/122
- H04N19/159
- H04N19/176
- H04N19/179
- H04N19/44
- H04N19/463
- H04N19/59
- H04N19/96
- IPC, 5
- H04N19 176
- H04N19 119
- H04N19 44
- H04N19 463
- H04N19 96