ES2625010T3 - Aparato para codificación de imagen usando una capa dividida - Google Patents

Aparato para codificación de imagen usando una capa dividida Download PDF

Info

Publication number
ES2625010T3
ES2625010T3 ES15183128.6T ES15183128T ES2625010T3 ES 2625010 T3 ES2625010 T3 ES 2625010T3 ES 15183128 T ES15183128 T ES 15183128T ES 2625010 T3 ES2625010 T3 ES 2625010T3
Authority
ES
Spain
Prior art keywords
size
partition
macroblock
layer
subblock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES15183128.6T
Other languages
English (en)
Inventor
Sunyeon Kim
Byeungwoo Jeon
Hyoungmee Park
Mincheol Park
Dongwon Kim
Kibaek Kim
Juock Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Telecom Co Ltd
Original Assignee
SK Telecom Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Telecom Co Ltd filed Critical SK Telecom Co Ltd
Application granted granted Critical
Publication of ES2625010T3 publication Critical patent/ES2625010T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/179Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scene or a shot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation

Landscapes

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

Abstract

Un aparato de codificación de vídeo (2600), que comprende: un determinador de capa de partición máxima (2620) para determinar un valor de capa de partición máxima y un tamaño de subbloque mínimo para codificar un bloque actual, en el que el valor de capa de partición máxima indica el número de capas por las cuales el bloque actual puede ser dividido al máximo en subbloques usando una estructura en árbol, teniendo los subbloques un tamaño igual o mayor que el tamaño de subbloque mínimo; un codificador de capa de partición máxima (2630) para codificar el valor de capa de partición máxima y un valor de una función logarítmica del tamaño de subbloque mínimo dentro de un tren de bits para indicar el tamaño del bloque actual en el tren de bits; y un codificador de vídeo (2610) para generar datos de imagen codificados codificando los subbloques respectivos dentro del bloque actual que tienen un tamaño igual o mayor que el tamaño de subbloque mínimo, y para codificar la información de partición que indica la partición del bloque actual en los subbloques respectivos por la estructura en árbol.

Description

DESCRIPCION
Aparato para codificacion de imagen usando una capa dividida 5 CAMPO TECNICO
[0001] La presente descripcion se refiere a un procedimiento y un aparato para codificar/decodificar una imagen usando una capa dividida o de particion. Mas especlficamente, la presente descripcion se refiere a un procedimiento y un aparato, que realizan una codificacion y una decodificacion por unidad de subbloques despues
10 de dividir un bloque en subbloques cuando una imagen de alta resolucion se codifica usando bloques de tamano variable y mejoran la eficiencia de compresion codificando/decodificando eficientemente la informacion de particion de bloque.
[0002] La descripcion describe tanto la tecnica de codificacion como una tecnica de decodificacion 15 correspondiente para proporcionar una mejor comprension de la invencion. Sin embargo, la invencion esta
restringida a la tecnica de codificacion, y mas especlficamente a un aparato de codificacion.
TECNICA ANTECEDENTE
20 [0003] Las exposiciones de esta seccion simplemente proporcionan informacion de antecedentes relacionada
con la presente descripcion y pueden no constituir la tecnica anterior.
[0004] Las tecnologlas para comprimir datos de video incluyen H.261, H.263, H.264, MPEG-2, MPEG-4,
etcetera. Segun tales estandares de compresion de video, cada imagen es dividida y codificada en macrobloques de 25 tamano fijo formados de areas rectangulares que tienen pixeles de tamano 16x16 de componente luma y pixeles de tamano 8x8 de componente croma. Todos los componentes luma y todos los componentes croma de cada macrobloque son predichos espacial o temporalmente, y luego un residuo predicho sufre una transformada, una cuantificacion, y una codificacion de entropia y finalmente una transmision.
30 [0005] El documento de Kim J y col., “Enlarging MB size for high fidelity video coding beyond HD”, 36. VCEG
MEETING, 2008, proporciona una extension de la arquitectura del codec H.264 con tamanos de macrobloque ampliados. El estandar H.264/AVC aprobado mas recientemente prescribe un aparato de codificacion para usar un bloque de 16x16 pixeles para el tamano de macrobloque fijo y subdividir cada macrobloque en bloques mas pequenos para los cuales se lleva a cabo una prediction intra o una prediction inter. Al llevar a cabo la codificacion 35 de prediccion intra, cada macrobloque puede ser dividido en tamanos de 16x16, 8x8, o 4x4, y el bloque de tamano 16x16 es sometido a prediccion intra en uno de cuatro modos de prediccion, los bloques de 8x8 y 4x4 son sometidos a prediccion intra en uno de nueve modos de prediccion. En el caso de la prediccion inter, el macrobloque puede ser subdividido en bloques de tamanos 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, o 4x4, y luego usarse para la prediccion inter a traves de una compensation de movimiento. La transformada se realiza por unidad de bloques de tamano 8x8 o 40 4x4, y la cuantificacion usada para los coeficientes de la transformada es una cuantificacion escalar.
[0006] Sin embargo, como la tecnologia de compresion de video tipica usa un macrobloque de tamano fijo al codificar una imagen (aun cuando H.264/AVC subdivide y codifica el macrobloque en unidades de bloque mas pequenas, el macrobloque es de un tamano fijo), codificar la imagen de alta resolucion apenas logra una eficiencia
45 de codificacion suficiente.
[0007] Ademas, como el tamano de macrobloque es fijo, los tamanos de subbloques dentro de macrobloque, que son las unidades de prediccion o de transformada, tambien estan limitados.
50 DESCRIPCION
PROBLEMA TECNICO
[0008] Por lo tanto, los aspectos de la presente descripcion para resolver el problema anteriormente 55 mencionado pretenden principalmente codificar una imagen usando bloques de tamano variable y diversos tamanos
de subbloques cuando se codifica una imagen de alta resolucion y mejorar la eficiencia de compresion codificando y decodificando eficientemente informacion de particion de bloque.
SOLUCION TECNICA
[0009] La invencion proporciona un aparato de codificacion de video con las caracterlsticas de la reivindicacion 1. Realizaciones ventajosas se exponen en las reivindicaciones dependientes.
5 EFECTOS VENTAJOSOS
[0010] Segun la presente descripcion tal como se describe anteriormente, puede lograrse una codificacion y decodificacion de video eficiente codificando una imagen mediante el uso de macrobloques de tamano variable y diversos tamanos de subbloques cuando se codifica una imagen de alta resolucion, y codificando y decodificando
10 information de partition de bloque.
DESCRIPCION DE LOS DIBUJOS
[0011]
15
Las FIGS. 1 a 3 son diagramas ejemplares para ilustrar macrobloques por unidad de M x N pixeles segun un aspecto de la presente descripcion,
las FIGS. 4 y 5 son diagramas ejemplares para ilustra diversos modos de subbloque segun un aspecto de la 20 presente descripcion,
la FIG. 6 es un diagrama de bloques esquematico para ilustrar un aparato de codificacion de video segun un aspecto de la presente descripcion,
25 la FIG. 7 es un diagrama de bloques esquematico para ilustrar un aparato de decodificacion de video segun un aspecto de la presente descripcion,
la FIG. 8 es un diagrama de bloques para ilustrar una primera implementation de un aparato de codificacion de video segun otro aspecto de la presente descripcion,
30
la FIG. 9 es un diagrama ejemplar para ilustrar subbloques divididos de un macrobloque para cada capa segun otro aspecto de la presente descripcion,
la FIG. 10 es un diagrama ejemplar para ilustrar tipos de particion segun otro aspecto de la presente descripcion,
35
la FIG. 11 es un diagrama ejemplar para ilustrar un macrobloque dividido en subbloques de diversos tamanos de bloque segun otro aspecto de la presente descripcion,
la FIG. 12 es un diagrama ejemplar para ilustrar secuencialmente procesos en los cuales un macrobloque es dividido 40 para cada capa de particion,
la FIG. 13 es un diagrama ejemplar para ilustrar procesos en los cuales la informacion de indication de tipo de particion del macrobloque para cada capa se codifica secuencialmente segun un orden de subbloque,
45 la FIG. 14 es un diagrama ejemplar para ilustrar un procedimiento de codificacion de informacion de particion de bloque usando una estructura en arbol segun otro aspecto de la presente descripcion,
las FIGS. 15 y 16 son diagramas ejemplares para ilustrar un ejemplo de un procedimiento de codificacion de informacion de particion de bloque usando una estructura en arbol segun otro aspecto de la presente descripcion,
50
las FIGS. 17 y 18 son diagramas ejemplares para ilustrar otro ejemplo de un procedimiento de codificacion de informacion de particion de bloque usando una estructura en arbol segun otro aspecto de la presente descripcion,
la FIG. 19 ilustra subbloques divididos basandose en un valor de capa de particion segun otro aspecto de la 55 presente descripcion,
la FIG. 20 es un diagrama ejemplar para ilustrar un proceso de codificacion de informacion de particion de bloque usando un valor de capa de particion y una bandera de particion segun otro aspecto de la presente descripcion,
la FIG. 21 es un diagrama ejemplar para ilustrar una division de macrobloque en subbloques de diversos tamanos de bloque segun otro aspecto de la presente descripcion,
la FIG. 22 es un diagrama ejemplar para ilustrar un proceso de codificacion secuencial de informacion de indicacion 5 de tipo de partition para cada capa del macrobloque segun un orden de subbloque,
la FIG. 23 es un diagrama de flujo para ilustrar un procedimiento de codificacion de video segun otro aspecto de la presente descripcion,
10 la FIG. 24 es un diagrama de bloques esquematico para ilustrar un aparato de decodificacion de video segun otro aspecto de la presente descripcion,
la FIG. 25 es un diagrama de flujo para ilustrar un procedimiento de codificacion de video segun otro aspecto de la presente descripcion,
15
la FIG. 26 es un diagrama de bloques esquematico para ilustrar un aparato de codificacion de video segun otro aspecto mas de la presente descripcion,
la FIG. 27 es un diagrama ejemplar para ilustrar la relation entre una capa de particion y un tamano de subbloque 20 minimo segun otro aspecto mas de la presente descripcion,
la FIG. 28 es un diagrama de flujo para ilustrar un ejemplo de un procedimiento de determination de un valor de capa de particion maxima segun otro aspecto mas de la presente descripcion,
25 la FIG. 29 es un diagrama de flujo para ilustrar otro ejemplo de un procedimiento de determinacion de un valor de capa de particion maxima segun otro aspecto mas de la presente descripcion,
la FIG. 30 es un diagrama ejemplar para ilustrar un proceso de codificacion de informacion de particion de un bloque actual usando solo capas de particion seleccionadas segun otro aspecto mas de la presente descripcion,
30
la FIG. 31 es un diagrama de flujo para ilustrar un procedimiento de codificacion de video segun otro aspecto mas de la presente descripcion,
la FIG. 32 es un diagrama de bloques esquematico para ilustrar un aparato de decodificacion de video segun otro 35 aspecto mas de la presente descripcion,
la FIG. 33 es un diagrama de flujo para ilustrar un procedimiento de decodificacion de video segun otro aspecto mas de la presente descripcion,
40 la FIG. 34 es un diagrama ejemplar para ilustrar tipos de particion segun otro aspecto de la presente invention,
la FIG. 35 es un diagrama de bloques esquematico para ilustrar un aparato de codificacion de video segun otro aspecto mas de la presente descripcion,
45 la FIG. 36 es un diagrama de flujo para ilustrar una implementation de un procedimiento de codificacion de video segun otro aspecto de la presente descripcion, y
la FIG. 37 es un diagrama de bloques para ilustrar una implementacion de un aparato de decodificacion de video segun otro aspecto de la presente descripcion.
50
MODO PARA LA INVENCION
[0012] En lo sucesivo, los aspectos de la presente descripcion se describiran en detalle con referencia a los dibujos adjuntos. En la siguiente descripcion, los mismos elementos estaran designados por los mismos numeros de
55 referencia aunque se muestren en diferentes dibujos. Ademas, en la siguiente descripcion de la presente descripcion, se omitira una descripcion detallada de funciones y configuraciones conocidas incorporadas en este documento cuando puedan hacer que el objeto de la presente descripcion resulte poco claro.
[0013] Ademas, al describir los componentes de la presente descripcion, puede haber terminos usados como
primero, segundo, A, B, (a), y (b). Estos son unicamente con el fin de diferenciar un componente del otro pero no implican o sugieren los fundamentos, el orden o la secuencia de los componentes. Si un componente fuera descrito como “conectado”, “acoplado”, o “enlazado” a otro componente, ello puede significar que los componentes estan no solo “conectados”, “acoplados”, o “enlazados” directamente sino que tambien estan “conectados”, “acoplados”, o 5 “enlazados” indirectamente a traves de un tercer componente.
[0014] Un aparato de codificacion de video y un aparato de decodificacion de video, que seran analizados en
la siguiente description, pueden ser un ordenador personal (PC), un ordenador portatil, un asistente digital personal (PDA), un reproductor multimedia portatil (PMP), una estacion de juego portatil (PSP), y un terminal de comunicacion 10 movil, y referirse a diversos aparatos incluyendo un aparato de comunicacion tal como un modem de comunicacion para llevar a cabo la comunicacion con diversos dispositivos o una red de comunicacion cableada/inalambrica, una memoria para almacenar diversos programas y datos para codificar o decodificar un video, y un microprocesador para ejecutar un programa para llevar a cabo una operation y un control.
15 [0015] Ademas, un video codificado en un tren de bits por un aparato de codificacion de video se transmite a
un aparato de decodificacion de video a traves de una red de comunicacion cableada/inalambrica tal como una internet, una red comunicacion de campo cercano, una LAN (red de area local) inalambrica, una red WiBro (de banda ancha inalambrica), y una red de comunicacion movil o a traves de una interfaz de comunicacion tal como un cable o un bus serie universal (USB) en tiempo real o en tiempo no real y decodificado en el aparato de 20 decodificacion de video, y de este modo el video decodificado puede reconstruirse y reproducirse como un video.
[0016] En general, un video incluye una serie de cuadros y cada cuadro esta dividido en areas predeterminadas tales como macrobloques, que son la unidad de referencia para codificar y decodificar una imagen. Los macrobloques se clasifican en un macrobloque intra y un macrobloque inter segun un procedimiento de
25 decodificacion de macrobloque. El macrobloque intra se refiere a un macrobloque codificado usando una codificacion de prediccion intra. La codificacion de prediccion intra corresponde a un esquema de generacion de un bloque predicho prediciendo un pixel de bloque actual usando pixeles de bloques reconstruidos previamente codificados y decodificados dentro de un cuadro actual, en el cual se lleva a cabo una codificacion actual, y codificacion de un valor diferencial entre el bloque predicho generado y el pixel de bloque actual. El macrobloque 30 inter se refiere a un macrobloque codificado usando una codificacion de prediction inter. La codificacion de prediction inter corresponde a un esquema de generation de un bloque predicho prediciendo un bloque actual dentro de un cuadro actual con referencia a uno o mas cuadros pasados o cuadros futuros y codificacion de un valor diferencial entre el bloque predicho generado y el bloque actual. Aqui, un cuadro al que se hace referencia al codificar o decodificar el cuadro actual se denomina un cuadro de referencia.
35
A) Codificacion y decodificacion usando un macrobloque o un bloque que tiene tamano arbitrario
[0017] En lo sucesivo, se describe a titulo de ejemplo un aparato para codificar y decodificar una imagen por unidad de bloques. Aqui, el bloque puede ser un macrobloque de tamano M x N (M y N pueden ser numeros enteros
40 iguales o mayores que 16) o un subbloque o bloque inferior de tamano O x P (O y P pueden ser numeros enteros iguales o menores que M o N). La codificacion y decodificacion de la imagen por unidad de bloques son solo ejemplos, y la imagen puede codificarse y decodificada por unidad de areas definidas como bloques o areas indefinidas. Sin embargo, un aparato de codificacion/decodificacion de video, que se describira despues, puede usar bloques que tienen un tamano arbitrario, y el tamano de bloque es un tamano preacordado entre el aparato de 45 codificacion de video y el aparato de decodificacion de video.
A-1) Macrobloque de tamano arbitrario
[0018] Las FIGS. 1 a 3 son diagramas ejemplares para ilustrar macrobloques por unidad de M x N pixeles 50 segun un aspecto de la presente descripcion.
[0019] La FIG. 1 muestra macrobloques por unidad de M x N pixeles (en lo sucesivo, denominados macrobloques de tamano M x N) expresados en una parte de una imagen de entrada que tiene un cierto tamano como ejemplo, la FIG. 2 muestra una imagen CIF que incluye 396 macrobloques de tamano 16 x 16 como ejemplo, y
55 la FIG. 3 muestra una imagen CIF que incluye 54 macrobloques de tamano 64 x 32 como ejemplo.
[0020] En la tecnologia de compresion de video convencional, una imagen es dividida en macrobloques de tamano fijo 16 x 16 y luego codificada y decodificada tal como se muestra en la FIG. 2. Sin embargo, en un aspecto de la presente descripcion, la imagen puede codificarse y decodificada usando macrobloques de tamano 64 x 32 (se
dispone no solo del tamano 64 x 32 sino tambien el tamano M x N (mayor que un tamano 16 x 16) tal como tamano 64 x 64 y tamano 32 x 64) tal como se muestra en la FIG. 3.
A-2) Ejemplo de modo de subbloque 5
[0021] Las FIGS. 4 y 5 son diagramas ejemplares para ilustrar diversos modos de subbloque segun un aspecto de la presente descripcion.
[0022] La FIG. 4 muestra modos de subbloque disponibles para un macrobloque de tamano 32 x 32, y la FIG. 10 5 muestra modos de subbloque disponibles para un macrobloque de tamano 32 x 16.
[0023] Segun un aspecto de la presente descripcion, el macrobloque de tamano M x N puede ser dividido en bloques mas pequenos, es decir, subbloques tal como se muestra en las FIGS. 4 y 5. Los macrobloques de la imagen pueden codificarse con prediccion intra o codificarse con prediccion inter por unidad de subbloques.
15
A-3) Descripcion del aparato de codificacion de video
[0024] La FIG. 6 es un diagrama de bloques esquematico para ilustrar un aparato de codificacion de video segun un aspecto de la presente descripcion.
20
[0025] El aparato de codificacion de video segun el aspecto de la presente descripcion corresponde a un aparato para codificar una imagen usando macrobloques que tienen un tamano igual o mayor que un tamano arbitrario, y puede incluir un predictor 610, un codificador 620, un reconstructor 630, un filtro 640, y una memoria de trama 650. Aqul, el reconstructor 630, el filtro 640, y la memoria de trama 650 pueden omitirse o incluirse en otro
25 elemento selectivamente segun una manera de implementacion.
[0026] El predictor 610 puede incluir un estimador de movimiento 612, un compensador de movimiento 614, y un predictor intra 616, y predice los macrobloques de una imagen de entrada. Aqul, los macrobloques se refieren a macrobloques de tamano igual o mayor que un tamano 16 x 16 (es decir, macrobloques de tamano M x N, donde M
30 y N son numeros enteros iguales o mayores que 16).
[0027] El estimador de movimiento 612 genera un vector de movimiento comparando un macrobloque, que se desea que sea predicho, con un cuadro de referencia almacenado en la memoria de trama 650 y estimando un movimiento del macrobloque correspondiente.
35
[0028] El compensador de movimiento 614 captura un bloque que corresponde a un tamano del macrobloque, el cual se desea que sea predicho, del cuadro de referencia almacenado en la memoria de trama 650 con referencia al vector de movimiento generado por el estimador de movimiento 612. El bloque que ha sido capturado por el compensador de movimiento 614 se convierte en un macrobloque predicho que tiene un valor
40 predicho del macrobloque, el cual se desea que sea predicho.
[0029] El predictor intra 616 predice el bloque mediante prediccion intra, el cual se desea que sea predicho. Para la prediccion intra, el predictor intra 616 genera un bloque de referencia usando la informacion de plxeles vecinos reconstruida ya codificada y decodificada, y compara el bloque de referencia con el macrobloque objetivo, el
45 cual ha de codificarse, para determinar un modo de prediccion intra. Y despues, el predictor intra 606 predice el macrobloque mediante prediccion intra segun el modo de prediccion intra determinado. El macrobloque que ha sido predicho por el predictor intra 616 se convierte en un macrobloque predicho que tiene un valor predicho del macrobloque objetivo.
50 [0030] El codificador 620 codifica una senal residual, la cual es una diferencia entre valores de pixel del
macrobloque objetivo y el macrobloque predicho. Especlficamente, el codificador 620 codifica la senal residual mediante una transformada, una cuantificacion, y una codificacion de entropla. Ademas, cuando el codificador 620 predice mediante prediccion inter el macrobloque objetivo que ha de codificarse, el codificador 620 puede codificar informacion de movimiento tal como el vector de movimiento generado por el estimador de movimiento 612 e 55 informacion de modo de macrobloque tal como un tamano de macrobloque. Cuando el codificador 620 predice mediante prediccion intra el macrobloque objetivo que ha de codificarse, el codificador 620 puede codificar informacion de modo de prediccion tal como un modo de prediccion intra e informacion de modo de macrobloque tal como el tamano de macrobloque.
[0031] El reconstructor 630 cuantifica inversamente y transforma inversamente una senal residual
transformada y cuantificada y suma la senal residual y el macrobloque predicho producido por el predictor 610 para reconstruir el macrobloque objetivo.
5 [0032] El filtro 640 filtra el macrobloque objetivo reconstruido usando un filtro tal como un filtro de desbloqueo.
El macrobloque reconstruido filtrado es almacenado en la memoria de trama 650 y usado para prediccion intra de un macrobloque siguiente o un macrobloque de un cuadro siguiente en el predictor 610.
A-4) Descripcion del aparato de decodificacion de video
10
[0033] La FIG. 7 es un diagrama de bloques esquematico para ilustrar un aparato de decodificacion de video segun un aspecto de la presente descripcion.
[0034] El aparato de decodificacion de video segun el aspecto de la presente descripcion puede incluir un 15 decodificador 710, un predictor 720, un reconstructor 730, un filtro 740, y una memoria de trama.
[0035] El decodificador 710 extrae tres tipos de informacion necesaria para una decodificacion de macrobloque a partir de un tren de bits de entrada.
20 [0036] En primer lugar, el decodificador 710 decodifica la entropia y extrae informacion de tipo de
macrobloque sobre si un macrobloque, el cual se desea que sea decodificado actualmente, es un macrobloque intra o un macrobloque inter e informacion de modo de subbloque que indica modos de subbloque del macrobloque.
[0037] En segundo lugar, el decodificador 710 extrae informacion necesaria para la prediccion mediante una 25 decodificacion de entropia. En este caso, un procedimiento de decodificacion de un tipo de datos de prediccion que
han de decodificarse y los datos de prediccion son diferentes dependiendo de si cada bloque es un bloque intra o un bloque inter. Cuando el bloque que ha de reconstruirse es el bloque inter, se extrae y decodifica del tren de bits informacion de cuadro de referencia necesaria para una compensacion de movimiento de cada subbloque e informacion sobre un movimiento tal como un vector de movimiento. Cuando el bloque que ha reconstruirse es el 30 bloque inter, se extrae y decodifica del tren de bits informacion sobre modos de prediccion intra de un componente luma y un componente croma.
[0038] Por ultimo, el decodificador 710 decodifica la informacion necesaria para una decodificacion de senal residual. En primer lugar se decodifica la informacion que indica si existe un coeficiente de transformada que no sea
35 0, en cada subbloque (por ejemplo CBP), y la informacion de transformada que indica un tipo de transformada y un coeficiente de transformada cuantificado se decodifican para los bloques que tienen el coeficiente de transformada que no sea 0.
[0039] El predictor 720 predice un bloque actual que ha de ser decodificado actualmente, y puede incluir un 40 compensador de movimiento 722 y un predictor intra 724. Cuando el bloque actual es el bloque inter, el
compensador de movimiento 722 genera un macrobloque predicho capturando pixeles que corresponden a un tamano del macrobloque actual del cuadro de referencia almacenado en la memoria de trama 750 usando un vector de movimiento reconstruido decodificado por el decodificador 710. Cuando el bloque actual es el bloque intra, el predictor intra 724 genera un macrobloque predicho prediciendo el macrobloque actual segun un modo de prediccion 45 intra reconstruido decodificado por el decodificador 710. Despues de generar una senal residual cuantificando inversamente un coeficiente de transformada cuantificado decodificado por el decodificador 710 y transformar inversamente el coeficiente de transformada cuantificado inversamente usando un tipo de transformada reconstruido extraido del decodificador 710, el reconstructor 730 genera un macrobloque reconstruido sumando la senal residual generada y el macrobloque predicho generado por el predictor 720. El macrobloque reconstruido generado es 50 filtrado en el filtro 740 y almacenado en la memoria de trama 750, y el macrobloque filtrado y almacenado es usado para reconstruir un bloque siguiente o un cuadro siguiente.
[0040] Tal como se describe anteriormente, el aparato de codificacion de video 600 y el aparato de decodificacion de video 700 segun un aspecto de la presente descripcion pueden codificar y decodificar la imagen
55 usando bloques que tienen un tamano arbitrario.
B) Partition de bloque, y codificacion y decodificacion de informacion de partition
[0041] En lo sucesivo, como otro aspecto de la presente descripcion, se describiran un aparato y un
procedimiento para dividir un macrobloque que tiene un tamano arbitrario en una pluralidad de subbloques mediante una capa de particion (o division) para la prediccion o la transformada y la codificacion y decodificacion eficiente de information de particion que indica formas y tamanos de los subbloques divididos. Sin embargo, aunque el aparato de codificacion/decodificacion de video, que sera analizado en la siguiente description, puede usar macrobloques 5 que tienen un tamano arbitrario, alternativamente, el aparato de codificacion de video y el aparato de decodificacion de video pueden llevar a cabo una codificacion/decodificacion usando un tamano de macrobloque preacordado y un tamano de subbloque minimo preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video.
10 [0042] La informacion de particion puede ser informacion que indica tamanos y formas de subbloques
divididos para la prediccion o la transformada. El aparato de codificacion de video incluye la informacion de particion y datos de imagen codificados en un tren de bits y transmite el tren de bits al aparato de decodificacion de video.
[0043] Ademas, el aparato de codificacion de video puede codificar informacion de particion para la 15 prediccion e informacion de particion para la transformada, respectivamente.
[0044] En una decodificacion, el aparato de decodificacion de video extrae y decodifica del tren de bits informacion de particion, y divide el macrobloque en una pluralidad de subbloques para la prediccion o la transformada. Despues, el aparato de decodificacion de video lleva a cabo la prediccion o la transformada en la
20 unidad de subbloques para reconstruir una imagen.
B-1) Aparato de codificacion de video
B-1-1) Aparato de codificacion 25
[0045] La FIG. 8 es un diagrama de bloques esquematico para ilustrar un aparato de codificacion de video segun otro aspecto de la presente descripcion.
[0046] El aparato de codificacion de video 800 segun otro aspecto de la presente descripcion puede incluir un 30 codificador de video 810 y un codificador de informacion de particion 820.
[0047] El aparato de codificacion de video 800 de la FIG. 8 codifica informacion de particion en el codificador de informacion de particion 820 y despues codifica datos predichos y/o datos de imagen que incluyen datos necesarios para una decodificacion de senal residual tal como un tipo de transformada, CBP, y un coeficiente de
35 transformada. Aqui, los datos predichos corresponden a datos que indican si cada subbloque es un bloque intra o un bloque inter, y corresponden a un modo de prediccion intra para el bloque intra e informacion de movimiento para el bloque inter. El codificador de video 810 puede implementarse como el aparato de codificacion de video 600 segun un aspecto de la presente descripcion descrito con referencia a la FIG. 6. Es decir, el codificador de video 810 divide un macrobloque que tiene un tamano arbitrario en diversos tamanos de subbloques para la prediccion o la 40 transformada, lleva a cabo una codificacion predictiva sobre los subbloques respectivos, y despues determina modos de prediccion de los subbloques respectivos y un tipo de particion de macrobloque que tiene un coste de codificacion mas pequeno. La informacion de particion que indica el tipo de particion de macrobloque predeterminado se codifica en el tren de bits a traves del codificador 820, y se generan unos datos de imagen codificados por codificacion predictiva de la pluralidad de subbloques divididos dentro del macrobloque.
45
[0048] El codificador de informacion de particion 820 codifica la informacion de particion introducida por el codificador de video 810 para generar datos de informacion de particion. Aqui, la informacion de particion puede ser informacion sobre tamanos y formas de bloque de una pluralidad de subbloques divididos del macrobloque para la prediccion o la transformada.
50
[0049] Segun la tecnologia de compresion de video tipica, como un tamano de macrobloque esta fijado a un tamano 16 x 16, puede usarse subbloques que tienen un tamano pequeno tales como subbloques de tamanos 8 x 8, 4 x 4, etc. Sin embargo, segun un aspecto de la presente descripcion, como un tamano de macrobloque puede determinarse de diversa manera para que tenga un tamano igual o mayor que un tamano 16 x 16, los tamanos y las
55 formas de los subbloques tambien pueden determinarse de diversa manera y, de este modo, el macrobloque puede ser dividido en diversas formas de subbloques. Por lo tanto, segun otro aspecto de la presente descripcion, una codificacion predictiva deberia llevarse a cabo transmitiendo informacion sobre tamanos y formas de subbloques divididos de un macrobloque a un aparato de decodificacion de video y dividiendo el macrobloque del mismo modo que como se llevo a cabo en un aparato de codificacion de video en el aparato de decodificacion de video. Se
describe con referenda a las FIGS. 9 a 22 que el codificador de information de partition 820 codifica information de bloque.
B-1-2) Modo de subbloque 5
[0050] Segun otro aspecto de la presente description, un macrobloque es dividido en diversos tamanos de
subbloques para cada capa, y puede llevarse a cabo una codification predictiva y una decodificacion predictiva para cada uno de los subbloques divididos.
10 [0051] La FIG. 9 es un diagrama ejemplar para ilustrar subbloques divididos de un macrobloque para cada
capa segun otro aspecto de la presente descripcion.
[0052] En la FIG. 9, un tamano de macrobloque es N x N y N es un numero entero igual o mayor que 16. La FIG. 9 muestra subbloques que pueden ser divididos basandose en una suposicion de que un tamano de subbloque
15 mlnimo de tamanos de subbloque es 4 x 4. Sin embargo, esta suposicion es solo para describir realizaciones de la presente descripcion. Un tamano horizontal y un tamano vertical del macrobloque pueden no ser iguales entre si y el tamano de subbloque mlnimo puede establecerse en otro tamano en lugar del tamano 4 x 4.
[0053] Tal como se muestra en la FIG. 9, segun otro aspecto de la presente descripcion, el macrobloque 20 puede ser dividido en diversos tamanos de subbloques para cada capa. El macrobloque puede ser dividido en cuatro
tipos de subbloque para cada una de las capas desde una capa 0 hasta una capa log2(N/4). En este caso, los subbloques de una capa K+1 pueden usarse solo cuando un subbloque de una capa K (0<K<log2(N/4)) es dividido en 4 subbloques.
25 [0054] Por ejemplo, en un caso de un macrobloque de tamano 64 x 64, el macrobloque puede ser dividido en
4 capas desde una capa 0 hasta una capa 3, y las capas respectivas pueden incluir subbloques que tienen 4 tamanos de bloque diferentes. Por consiguiente, la capa 0 incluye un subbloque que tiene un tamano de bloque de 64 x 64, subbloques que tienen un tamano de bloque de 64 x 32, subbloques que tienen un tamano de bloque de 32 x 64, y subbloques que tienen un tamano de bloque de 32 x 32. Una capa 1 incluye un subbloque que tiene un 30 tamano de bloque de 32 x 32, subloques que tienen un tamano de bloque de 32 x 16, subbloques que tienen un tamano de bloque de 16 x 32, y subbloques que tienen un tamano de bloque de 16 x 16. Una capa 2 incluye un subbloque que tiene un tamano de bloque de 16 x 16, subbloques que tienen un tamano de bloque de 16 x 8, subbloques que tienen un tamano de bloque de 8 x 16, y subbloques que tienen un tamano de bloque de 8 x 8. La capa 3 incluye un subbloque que tiene un tamano de bloque de 8 x 8, subbloques que tienen un tamano de bloque 35 de 8 x 4, subbloques que tienen un tamano de bloque de 4 x 8, y subbloques que tienen un tamano de bloque de 4 x 4. Aqul, los subbloques incluidos en la capa 1 pueden usarse solo cuando el macrobloque que tiene un tamano de bloque de 64 x 64 es dividido en subbloques que tienen un tamano de bloque de 32 x 32 en la capa 0, y los subbloques incluidos en la capa 2 puede usarse solo cuando el subbloque que tiene el tamano de bloque 32 x 32 en la capa 1 es dividido en subbloques que tienen un tamano de bloque de 16 x 16. Ademas, los subbloques incluidos 40 en la capa 3 pueden usarse solo cuando el subbloque que tiene el tamano de bloque de 16 x 16 de la capa 2 es dividido en subbloques que tienen un tamano de bloque de 8 x 8.
[0055] Aqul, cuando un bloque de N x N en una capa K es dividido en 4 subbloques que tienen un tamano de
N N N N
— x—, el subbloque dividido —x— puede incluirse tanto en la capa K como la capa K+1. Es decir, en el 2 2 2 2
45 macrobloque de tamano 64 x 64, un subbloque que tiene un tamano de 32 x 32 puede determinarse como un tipo de subbloque incluido en la capa 0 o un tipo de subbloque incluido en la capa 1.
[0056] En este caso, un procedimiento de asignacion de un numero de capa al subbloque dividido puede ser diferente dependiendo de la disponibilidad de cada capa. Si la capa K+1 esta disponible, se asigna un numero de
50 capa K+1 a un subbloque. Si la capa K+1 no esta disponible, se asigna un numero de capa K al subbloque.
[0057] Por ejemplo, en un caso en el que un tamano de macrobloque es 64 x 64 y el numero de capas de particion maximas es 4, cuando el macrobloque de 64 x 64 es dividido en 4 subbloques de tamano 32 x 32, el subbloque de 32 x 32 se incluye en la capa 1. Cuando un subbloque de 32 x 32 dentro del macrobloque es dividido
55 en 4 subbloques de tamano 16 x 16, cada subbloque de 16 x 16 se incluye en una capa 2. Cuando cada subbloque de 16 x 16 es dividido en 4 subbloques de tamano 8 x 8, el subbloque de 8 x 8 se incluye en una capa 3. Cuando cada subbloque de 8 x 8 es dividido en 4 subbloques de tamano 4 x 4, el subbloque de 4 x 4 se incluye en la capa 3
porque no esta disponible una capa 4.
N N
[0058] Ademas, cuando un bloque de N x N de la capa K es dividido en 4 subbloques de tamano —x—,
2 2
NN
puede asignarse un numero de capa K de los subbloques de —x— divididos. En este caso, cuando los
22
NN
5 subbloques de —x — son divididos en subbloques mas pequenos, se asigna el numero de capa K+1 del 22
NN
subbloque de —x— dividido.
22
[0059] Por ejemplo, en un caso en el que un tamano de macrobloque es 64 x 64 y el numero de capas de particion maximas es 4, cuando el macrobloque de 64 x 64 es dividido en 4 subbloques de tamano 32 x 32, el
10 subbloque de 32 x 32 se incluye en una capa 0. Cuando un subbloque de 32 x 32 dentro del macrobloque es dividido en 4 subbloques de tamano 16 x 16, cada subbloque de 16 x 16 se incluye en una capa 1. Cuando cada subbloque de 16 x 16 es dividido en 4 subbloques de tamano 8 x 8, el subbloque de 8 x 8 se incluye en una capa 2. Ademas cuando cada subbloque de 8 x 8 es dividido en 4 subbloques de tamano 4 x 4, el subbloque de 4 x 4 es incluido en una capa 3.
15
B-1-3) Tipo de particion
[0060] Ademas, el macrobloque puede ser divido usando diversos tipos de particion mostrados en las FIGS. 10 y 34.
20
[0061] Las FIGS. 10 y 34 son diagramas ejemplares para ilustrar tipos de particion segun otro aspecto de la presente descripcion.
[0062] La FIG. 10 es un diagrama ejemplar para ilustrar tipos de particion segun otro aspecto de la presente 25 descripcion.
[0063] La FIG. 10 muestra un ejemplo de informacion de indication de tipo de particion (numeros de tipos de particion) para identificar tamanos de bloque de subbloques divididos para cada capa.
NN
30 [0064] Tal como se muestra en la FIG. 10, cuando un subloque 'ncluido en una capa K de un
macrobloque no es dividido, se asigna “0” a la informacion de indicacion de tipo de particion. Cuando el subbloque
N N N N
~^x~kes dividido en dos subbloques de tamano ~^x K +1 , se asigna “1” a la informacion de indicacion de
2K 2
2K 2K
N N N N
tipo de particion. Cuando el subbloque —— x—— es dividido en dos subbloques de tamano —tttx——, se asigna
2K 2K 2K+1 2K
NN
“2” a la informacion de indicacion de tipo de particion. Cuando el subbloque -^-^x —K~es dividido en cuatro
35 subbloques de tamano
NN
-x-
2 K +1 2 K +1
2K 2
, se asigna “3” a la informacion de indicacion de tipo de particion. Un numero
de particion se refiere a un numero asignado para una identification de cada subbloque dividido basandose en un
NN
tipo de particion. Por ejemplo, cuando el subbloque de la capa K no es dividido, se asigna “0” a un
N N
N N
numero de partition del subbloque sin dividir —^x—k . Ademas, cuando el subbloque —^x—k de la capa K es
dividido en cuatro subbloques de tamano
2K 2
NN
■x-
2K 2
2 k+1 2 k +1 " 2 k +1 2 k
pueden asignar secuencialmente numeros de particion 0, 1, 2 y 3 a partir de un subbloque situado en una parte superior izquierda del macrobloque en una direction de barrido por filas.
,K +1
a los subbloques de
NN
K+1
K+1
respectivos se les
10
B-1-3-2) Ejemplo 2 de tipos de particion
[0065] La FIG. 34 es un diagrama ejemplar para ilustrar tipos de particion segun otro aspecto de la presente descripcion.
[0066] La FIG. 34 muestra un ejemplo de information de indication de tipo de particion (numero de tipo de particion) para identificar tamanos de bloque de subbloques divididos para cada capa.
NN
[0067] Tal como se muestra en la FIG. 34, cuando un subbloque 'ncluido en una capa K de un
15 macrobloque no es dividido, se asigna “0” a la informacion de indicacion de tipo de particion. Cuando el subbloque
N N N N
——x—— es dividido en cuatro subbloques de tamano —ttttX—r—r, se asigna “1” a la informacion de indicacion
2 k 2 k 1 2 K +1 2 K +1
de tipo de particion. Un numero de particion se refiere a un numero asignado para una identification de cada
NN
subbloque dividido basandose en un tipo de particion. Por ejemplo, cuando el subbloque —— X—— de la capa K no
2K 2K
NN
es dividido, se asigna “0” a un numero de particion del subbloque sin dividir —— X——. Ademas, cuando el
2K 2K
NN
20 subbloque ——X^kde la capa K es dividido en cuatro subbloques de tamano
2K 2
NN x-
2
K +1
2
K +1
, a los subbloques de
NN
-------x-------
2 K +1 2 K+1
respectivos se les pueden asignar secuencialmente numeros de particion 0, 1, 2 y 3 a partir de un
subbloque situado en una parte superior izquierda del macrobloque en una direccion de barrido por filas.
[0068] Ademas, pueden usarse y combinarse diversos tipos de particion para cada capa. Por ejemplo, la
25 capa 0 y la capa 1 pueden usar el tipo de particion mostrado en la FIG. 34 y las capas inferiores de la capa 1 tambien pueden usar el tipo de particion mostrado en la FIG. 10.
B-1-4) Procedimiento de codification de informacion de particion
30 [0069] En lo sucesivo, se describiran diversos procedimientos de codificacion de informacion de particion, la
cual es informacion que indica tamanos y formas de subbloques usados para la prediction o la transformada dentro del macrobloque, segun un aspecto de la presente description.
35
B-1-4-1) Procedimiento 1 de decodificacion de informacion de particion
[0070]
En primer lugar se describe un primer procedimiento de codificacion de informacion de particion.
[0071] Segun el primer procedimiento, la informacion de particion que indica un tipo de un macrobloque
dividido en diversos tamanos de subbloques puede representarse usando la informacion de indicacion de tipo de 40 particion (numeros de tipo de particion) para cada capa. Por consiguiente, una pluralidad de subbloques incluidos en un macrobloque pueden ser identificados por la informacion de indicacion de tipo de particion para cada capa. El codificador de informacion de particion 810 puede codificar informacion de particion de un bloque usando la informacion de indicacion de tipo de particion para cada capa mediante diversos procedimientos, que se describiran
x
5
mas adelante.
[0072] Por ejemplo, el codificador de informacion de particion 810 puede codificar information de partition de un bloque actual codificando secuencialmente informacion de indication de tipo de particion para cada capa de
5 particion de un macrobloque basandose en un orden de codification de informacion de indicacion de tipo de particion.
[0073] En lo sucesivo, se describira con referencia a las FIGS. 11 a 13 un procedimiento de codificacion de informacion de particion de un bloque actual mediante una codificacion secuencial de informacion de indicacion de
10 tipo de particion para cada capa de particion de un macrobloque basandose en un orden de codificacion de informacion de indicacion de tipo de particion.
[0074] La FIG. 11 es un diagrama ejemplar para ilustrar un macrobloque dividido en subbloques que tienen diversos tamanos de bloque segun otro aspecto de la presente description.
15
[0075] La FIG. 11 muestra el macrobloque dividido en subbloques que tienen diversos tamanos de bloque basandose en los tipos de subbloque mostrados en la FIG. 10, en la que el macrobloque tiene un tamano de bloque de 64 x 64 y el numero de capas de particion maximas es 4.
20 [0076] Segun otro aspecto de la presente invention, cuando el macrobloque es dividido tal como se muestra
en la FIG. 11, la informacion de particion del macrobloque puede codificarse codificando secuencialmente la informacion de indicacion de tipo de particion para cada capa de particion basandose en el orden de codificacion de informacion de indicacion de tipo de particion.
25 [0077] La FIG. 12 muestra procesos de division secuencial del macrobloque mostrado en la FIG. 11 para
cada capa de particion. Haciendo referencia a la FIG. 12, un subbloque que tiene un tamano de bloque de 64 x 64 es dividido en 4 subbloques que tienen un tamano de bloque de 32 x 32 en una capa 0 (L0), un subbloque L1-P0 (que tiene un numero de particion 0 de una capa 1) y un subbloque L1-P3 (que tiene un numero de particion 3 de la capa 1) son divididos en 4 subbloques que tienen un tamano de bloque de 16 x 16, respectivamente (L1), y un 30 subbloque L1-P1 (que tiene un numero de particion 1 de la capa 1) y un subbloque L1-P2 (que tiene un numero de particion 2 de la capa 1) son divididos en 2 subbloques que tiene un tamano de bloque de 16 x 32 y 2 subbloques que tienen un tamano de bloque de 32 x 16 en la capa 1, respectivamente. Despues de que los subbloques L1-P1 y L1-P2 son divididos en 2 subbloques, respectivamente, los subbloques ya no son divididos, de modo que los numeros de particion de los subbloques no se ilustran en la FIG. 15. Un subbloque L2-P0 (que tiene un numero de 35 particion 0 de una capa 2) es dividido en 4 subbloques que tienen un tamano de bloque de 8 x 8 y un subbloque L2- P (que tiene un numero de particion 3 de la capa 2) es dividido en 2 subbloques que tienen un tamano de bloque de 16 x 2 en la capa 2 (L2). Un subbloque L3-P0 (que tiene un numero de particion 0 de una capa 3) y un subbloque L3-P1 (que tiene un numero de particion 1 de la capa 3) son divididos en 4 subbloques que tienen un tamano de bloque de 4 x 4 en la capa 3 (L3), respectivamente.
40
[0078] Un orden de codificacion de informacion de indicacion de tipo de particion es como sigue.
[0079] En primer lugar se codifica la informacion de indicacion de tipo de particion sobre un tipo de particion de macrobloque. Despues, si el macrobloque es dividido en 4 subbloques, se codifica sucesivamente la informacion
45 de indicacion de tipo de particion sobre los subbloques divididos respectivos. Por ejemplo, cuando un bloque de N x N es dividido en 4 subbloques, se codifica la informacion de indicacion de tipo de particion sobre un primer subbloque de (N/2) x (N/2). Cuando el primer subbloque de (N/2) x (N/2) es dividido en 4 subbloques, se codifica la informacion de indicacion de tipo de particion sobre los subbloques de (N/4) x (N/4) divididos. Cuando un tamano del subbloque de (N/4) x (N/4) dividido corresponde a un tamano de subbloque mlnimo o cuando el subbloque de (N/4) 50 x (N/4) dividido ya no es dividido en 4 subbloques mas pequenos, la informacion de indicacion de tipo de particion sobre un siguiente subbloque de (N/4) x (N/4) se codifica en un orden de barrido por filas. Cuando el tamano del subbloque de (N/4) x (N/4) no corresponde al tamano de subbloque mlnimo y el subbloque de (N/4) x (N/4) es dividido en 4 subbloques que tienen un tamano de bloque de (N/8) x (N/8), se lleva a cabo una codificacion a partir de la informacion de indicacion de tipo de particion sobre un primer subbloque de (N/8) x (N/8). La codificacion sobre 55 la informacion de indicacion de tipo de particion se lleva a cabo continuamente hasta que se codifica la informacion de indicacion de tipo de particion sobre todos los subbloques dentro del macrobloque.
[0080] La FIG. 13 es un diagrama ejemplar para ilustrar un proceso de codificacion secuencial de informacion de indicacion de tipo de particion para cada capa de un macrobloque.
[0081] La tabla mostrada en la FIG. 13 se genera cuando se codifica la informacion de indication de tipo de partition sobre subbloques respectivos dentro del macrobloque mostrado en la FIG. 11. Los numeros escritos en “□” de la FIG. 11 se refieren a ordenes de codification de informacion de indicacion de tipo de particion de subbloques
5 respectivos. Si la informacion de indicacion de tipo de particion para cada capa del macrobloque se codifica secuencialmente segun un orden de codificacion de informacion de indicacion de tipo de particion, la informacion de indicacion de tipo de particion para cada capa puede codificarse segun el orden mostrado en la FIG. 11.
[0082] En primer lugar, como el subbloque (L0-P0) que tienen el tamano de bloque de 64 x 64 es dividido en 10 4 subbloques que tienen un tamano de bloque de 32 x 32, se codifica la informacion de indicacion de tipo de
particion 3. Como el primer subbloque (L1-P0) que tiene el tamano de bloque de 32 x 32 entre 4 subbloques que tienen el tamano de bloque 32 x 32 dentro del subbloque que tiene el tamano de bloque de 64 x 64 es dividido en 4 subbloques que tienen el tamano de bloque de 16 x 16, se codifica la informacion de indicacion de tipo de particion 3. El primer subbloque (L2-P0) que tiene el tamano de bloque de 16 x 16 entre 4 subbloques que tienen el tamano 15 de bloque de 16 x 16 dentro del primer subbloque (L1-P0) que tiene el tamano de bloque de 32 x 32 es dividido en 4 subbloques que tienen el tamano de bloque de 8 x 8, se codifica un tipo de particion 3. Como 4 subbloques (L3-P0, L3-P1, L3-P2, y L3-P3) que tienen el tamano de bloque de 8 x 8 dentro del subbloque (L2-P0) que tiene el tamano de bloque de 16 x 16 ya no son divididos en subbloques mas pequenos, se codifica respectivamente la informacion de indicacion de tipo de particion {3, 3, 0, 0}. Como los subbloques de la capa 3 no pueden ser divididos en 20 subbloques mas pequenos, la informacion de indicacion de tipo de particion sobre los subbloques incluidos en la capa 3 no se codifica.
[0083] Como la informacion de indicacion de tipo de particion sobre los subbloques incluidos en la capa 3 ha sido codificada totalmente, se codifica la informacion de indicacion de tipo de particion sobre un segundo subbloque
25 (L2-P1) que tiene el tamano de bloque de 16 x 16 y un tercer subbloque (L2-P2) que tiene el tamano de bloque de 16 x 16 en la capa 2. Sin embargo, en este caso, ya no se divide ninguno de ellos en subbloques mas pequenos, de modo que se codifica la informacion de indicacion de tipo de particion 0. Como la informacion de indicacion de tipo de particion no es 3 aunque un cuarto subbloque (L2-P3) que tiene el tamano de bloque de 16 x 16 es dividido en subbloques que tienen el tamano de bloque de 16 x 8, solo se codifica la informacion de indicacion de tipo de 30 particion 1. Como la informacion de indicacion de tipo de particion sobre 4 subbloques incluidos en la capa 2 ha sido codificada totalmente, se codifica la informacion de indicacion de tipo de particion sobre un segundo subbloque (L1- P1) que tiene el tamano de bloque de 32 x 32 en la capa 1. En este caso, como el segundo subbloque (L1-P1) que tiene el tamano de bloque de 32 x 32 en la capa 1 es dividido en subbloques que tienen el tamano de bloque de 16 x 32 y los subbloques divididos respectivos ya no son divididos en subbloques mas pequenos, se codifica la 35 informacion de indicacion de tipo de particion 2. De la misma manera, la informacion de indicacion de tipo de particion sobre un segundo subbloque (L1-P2) que tiene el tamano de bloque de 32 x 32 y un cuarto subbloque (L1- P3) que tiene el tamano de bloque de 32 x 32 en la capa 1, y 4 subbloques inferiores (L2-P0, L2-P1, L2-P2, y L3-P3) que tienen el tamano de bloque de 16 x 16 se codifican secuencialmente, y de este modo se codifica {1, 3, 0, 0, 0, 0}.
40
[0084] Si la informacion sobre tipos de particion del macrobloque mostrado en la FIG. 11 se codifica segun tal procedimiento de codificacion, la informacion de indicacion de tipo de particion {3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 0} se codifica tal como se muestra en la FIG. 13.
45 [0085] Ademas, es posible codificar la informacion de indicacion de tipo de particion segun el siguiente orden.
[0086] Se codifica la informacion de indicacion de tipo de particion {3} de la capa 0, se codifica la informacion de indicacion de tipo de particion {3, 2, 1, 3} sobre 4 subbloques (L1-P0, L1-P1, L1-P2, y L1-P3) de la capa 1, se codifica la informacion de indicacion de tipo de particion {3, 0, 0, 1, 0, 0, 0, 0} sobre 8 subbloques (4 subbloques incluidos en L1-P0 y 4 subbloques incluidos en L1-P3) de la capa 2, y se codifica la informacion de indicacion de tipo
50 de particion {3, 3, 0, 0} sobre 4 subbloques (4 subbloques incluidos en L2-P0 dentro de L1-P0) de la capa 3. En este caso, se codifica la informacion de indicacion de tipo de particion {3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0}.
[0087] En este caso, la informacion de indicacion de tipo de particion puede codificarse en una cadena de bits binarios usando una codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una
55 codificacion de Huffman, etc.
[0088] Por ejemplo, en un caso de uso de la codificacion aritmetica binaria, cada una de la informacion de indicacion de tipo de particion puede usar valores binarios diferentes dependiendo de los numeros de capa de la informacion de informacion de indicacion de tipo de particion que han de codificarse actualmente. La informacion de
indicacion de tipo de particion puede codificarse usando la Tabla 1 si el numero de capa es igual o menor que
1 ( N ^
l0g21 — I, y la informacion de indicacion de tipo de particion puede codificarse usando la Tabla 2 si el numero de
, ( N
capa es mayor que l0g21 — I. Por ejemplo, como la informacion de indicacion de tipo de particion 3 del subbloque V16J
(L1-P0) de la FIG. 11 puede expresarse por el numero binario “01” con referencia a la Tabla 1, la informacion de indicacion de tipo de particion 3 puede codificarse llevando a cabo una codificacion aritmetica sobre los numeros binarios “0” y “1”. Ademas, como la informacion de indicacion de tipo de particion 0 del subbloque (L3-P2) incluido en el subbloque (L2-P0) puede expresarse por el numero binario “1”, la informacion de indicacion de tipo de particion 3 puede codificarse llevando a cabo una codificacion aritmetica sobre el numero binario “1”.
5
10 _________________________[Tabla 11
Informacion de indicacion de tipo de particion
Cadena binaria
0
0
0
1
1
1
2
1 0
3
0 1
[Tabla 21
Informacion de indicacion de tipo de particion
Cadena binaria
0
1
1
0 0
2
0 1 1
3
0 1 0
[0089] Ademas, un valor de informacion de indicacion de tipo de particion real puede codificarse usando 15 diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, codigo de
Golomb exponencial, etc.
[0090] Ademas, cuando un macrobloque es dividido usando los tipos de informacion mostrados en la FIG. 34 segun otro aspecto de la presente description, la informacion de indicacion de tipo de particion puede ser una
20 bandera que tiene una longitud de 1 bit que indica si un bloque actual es dividido en 4 subbloques.
B-1-4-2) Procedimiento 2 de codificacion de informacion de particion
[0091] Como otro aspecto de la codificacion de informacion de particion de bloque usando un tipo de particion
25 para cada capa de macrobloque, el codificador de informacion de particion 810 puede codificar la informacion de particion de bloque usando una estructura en arbol. Es decir, el codificador de informacion de particion 810 en primer lugar codifica un numero de capa usando la estructura en arbol y despues codifica la informacion de particion de bloque codificando la informacion de indicacion de tipo de particion.
30 [0092] En lo sucesivo, se describira con referencia a las FIGS. 14 a 18 un segundo procedimiento de
codificacion de informacion de particion de bloque que usa una estructura en arbol.
[0093] Las FIGS. 14A y 14B son diagramas ejemplares para ilustrar un procedimiento de codificacion de informacion de particion de bloque usando una estructura en arbol segun otro aspecto de la presente descripcion.
35
[0094] La FIG. 14A muestra numeros de capa de subbloques respectivos del macrobloque para cada nivel, y la FIG. 14B muestra numeros de capa de subbloques respectivos para cada nivel en una estructura en arbol.
[0095] En la FIG. 14, un tamano de macrobloque es N x N y el macrobloque es dividido en subbloques por 40 tipos de particion mostrados en la FIG. 10. La FIG. 14A ilustra un caso en el que el macrobloque es dividido en
subbloques que tienen un tamano de bloque de N x (N/2) como ejemplo. El macrobloque que tiene el tamano de bloque de N x N es dividido en 2 subbloques que tienen el tamano de bloque de N x (N/2), y la informacion de indicacion de tipo de particion es 1. Aqul, como cada subbloque de N x (N/2) esta incluido en una capa 0, un valor mlnimo del numero de capa de los 2 subbloques en un nivel de arbol 1 es 0. Por consiguiente, un numero de capa
de un nivel de arbol 0 se convierte en 0. Mientras tanto, los numeros indicados en “ “ tales como “01”, “1”, y “001” representan bits binarios en las FIGS. 14 a 18.
[0096] La FIG. 14B ilustra numeros de capa de subbloques respectivos para cada nivel mostrado en la FIG. 5 14A en un tipo de estructura en arbol.
[0097] Despues de codificarse el numero de “0 (1 bit)” que corresponde a un valor de diferencia entre un numero de capa de un nodo superior y un numero de capa de un nodo actual, que se desea que sea codificado, por ultimo se codifica “1”. Por ejemplo, cuando el valor de diferencia entre el numero de capa del nodo superior y el
10 numero de capa del nodo actual es 3, se codifica un numero binario “0001”. Cuando el valor de diferencia es 0, se codifica un numero binario “1”. Como no hay un nodo superior de un nivel 0, se supone que un numero capa del nodo superior es 0. Por consiguiente, un valor de diferencia entre el numero de capa 0 del nivel 0 y el numero de capa supuesto 0 del nodo superior es 0, de modo que un bit binario del numero de capa 0 del nivel 0 se convierte en “1”.
15
[0098] Como el numero de capa del nivel 1 y el numero de capa del nivel 0 son iguales entre si, el numero de capa ya no puede codificarse y se codifica la informacion de indicacion de tipo de particion 1 del nivel 1.
[0099] La informacion de indicacion de tipo de particion puede codificarse dentro de la cadena de bits binarios 20 usando una codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de
Huffman, etc. tal como se describe anteriormente.
[0100] Ademas, la informacion de indicacion de tipo de particion puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb
25 exponencial, etc.
[0101] Ademas, pueden usarse diferentes valores binarios dependiendo de los numeros de capa.
[0102] Ademas, cuando el macrobloque es dividido usando tipos de particion segun otro aspecto de la 30 presente descripcion mostrado en la FIG. 34, la informacion de indicacion de tipo de particion puede ser una
bandera que tiene una longitud de 1 bit que indica si el bloque actual esta dividido en 4 subbloques.
[0103] La informacion de indicacion de tipo de particion 1 segun el aspecto anterior puede representar el valor de informacion de indicacion de tipo de particion con el bit binario tal como se describe anteriormente. Por
35 ejemplo, como los valores de indicacion de tipo de particion “0”, “1”, “2”, y “3” corresponden a 4 tipos, pueden representarse por “00”, “01”, “10”, y “11” asignando 2 bits. En este caso, la informacion de indicacion de tipo de particion 1 puede representarse por “01”.
[0104] Por consiguiente, cuando la informacion de particion de macrobloque mostrada en la FIG. 14A se 40 codifica finalmente usando la estructura en arbol, los datos que han de codificarse se convierten en “101”.
[0105] Las FIGS. 15 y 16 son diagramas ejemplares para ilustrar un ejemplo de un procedimiento de codificacion de informacion de particion de bloque usando la estructura en arbol segun otro aspecto de la presente descri pcion.
45
[0106] La FIG. 15 muestra un ejemplo de un proceso de determinacion de un numero de capa de cada subbloque para cada nivel con el fin de codificar la informacion de particion de bloque usando la estructura en arbol cuando un macrobloque que tiene un tamano de bloque de N x N es dividido en 2 subbloques que tienen una tamano de bloque de (N/2) x (N/4), 1 subbloque que tiene un tamano de bloque de (N/2) x (N/2), 2 subbloques que
50 tienen un tamano de bloque de (N/4) x (N/2), y 4 subbloques que tienen un tamano de bloque de (N/4) x (N/4).
[0107] En primer lugar, un nivel 2 es construido por el macrobloque que tiene el tamano de bloque de N x N, y un nivel 1 es construido conjuntamente por un valor mlnimo de un numero de capa de los 2 subbloques incluidos en un primer subbloque que tiene el tamano de bloque de (N/2) x (N/2) dentro de un macrobloque del nivel 2, un
55 valor mlnimo de un numero de capa del 1 subbloque incluido en un segundo subbloque que tiene el tamano de bloque de (N/2) x (N/2) dentro del macrobloque del nivel 2, un valor mlnimo de un numero de capa de los 2 subbloques incluidos en un tercer subbloque que tiene el tamano de bloque de (N/2) x (N/2) dentro de macrobloque del nivel 2, y un valor mlnimo de un numero de capa de los 4 subbloques incluidos en un cuarto subbloque que tiene el tamano de bloque de (N/2) x (N/2) dentro del macrobloque del nivel 2.
[0108] La FIG. 16 muestra un proceso de construccion de la estructura en arbol segun el numero de capa
para cada nivel construido en la FIG. 15 y codificacion del numero de capa y un tipo de particion.
5 [0109] Un numero de capa del nivel 0 que ha de codificarse es 1 y no hay un nodo superior del nivel 0. Como
un valor de diferencia entre un numero de capa de un nodo superior y el numero de capa del nivel 0 es 1 basado en una suposicion de que el numero de capa del nodo superior es “0”, un bit binario del numero de capa del nivel 0 se convierte en “01”. Como los numeros de capa del nivel 1 que han de codificarse son 1, 1, 1, 1, respectivamente y el numero de capa del nodo superior (nivel 0) es 1, un valor de diferencia entre los numeros de capa es 1 y de este 10 modo los bits binarios de los numeros de capa respectivos son “1”, “1”, “1”, y “1”. Como los numeros de capa del nivel 2 que han de codificarse estan todos incluidos en el nivel 1, los numeros de capa ya no tienen que codificarse. Por consiguiente, se codifica la informacion de indicacion de tipo de particion, 1, 0, 2 y 3. Como la informacion de indicacion de tipo de particion se codifica con codificacion aritmetica binaria o codificada con codificacion de Huffman usando diferentes tablas dependiendo del numero de capa tal como se describe anteriormente, los bits binarios de la 15 informacion de indicacion de tipo de particion 1, 0, 2, y 3 pueden convertirse, por ejemplo, en “00”, “11”, “10”, y “01”. Por lo tanto, un numero de capa y la informacion de indicacion de tipo de particion que han de codificarse finalmente se convierten en “01’W1’W1’W1’W1’W00’W11’W10’W01”. Como resultado, se codifica “01111100111001” y se convierte en datos de informacion de particion codificados.
20 [0110] Las FIGS. 17 y 18 son diagramas ejemplares para ilustrar otro ejemplo del procedimiento de
codificacion de la informacion de particion de bloque usando la estructura en arbol segun otro aspecto de la presente descripcion.
[0111] La FIG. 17 muestra un ejemplo de un caso en el que un macrobloque que tiene un tamano de bloque 25 de N x N es dividido en 2 subbloques que tienen un tamano de bloque de (N/2) x (N/4), 1 subbloque que tiene un
tamano de bloque de (N/2) x (N/2), 2 subbloques que tiene un tamano de bloque de (N/4) x (N/2), 2 subbloques que tienen un tamano de bloque de (N/32) x (N/16), 4 subbloques que tienen un tamano de bloque de (N/32) x (N/32), 6 subbloques que tienen un tamano de bloque de (N/16) x (N/16), y 2 subbloques que tienen un tamano de bloque de (N/4) x (N/4). Un cuarto subbloque que tiene el tamano de bloque de (N/2) x (N/2) del macrobloque es dividido en 4 30 subbloques que tienen el tamano de bloque de (N/4) x (N/4), y un primer subbloque y un segundo subbloque que tienen el tamano de bloque de (N/4) x (N/4) entre los 4 subbloques que tienen el tamano de bloque de (N/4) x (N/4) son divididos en 4 subbloques que tienen el tamano de bloque de (N/16) x (N/16), respectivamente. Aqul, como un primer subbloque y un segundo subbloque que tienen el tamano de bloque de (N/16) x (N/16) entre los subbloques que tienen el tamano de bloque de (N/16) x (N/16) divididos del primer subbloque que tiene el tamano de bloque de 35 (N/4) x (N/4) son divididos en bloques mas pequenos, los numeros de capa 2 y 3 son asignados tal como se muestra en la FIG. 17.
[0112] La FIG. 18 puede crearse si el macrobloque mostrado en la FIG. 17 se construye segun un numero de capa para cada nivel en un tipo de estructura en arbol de la misma manera descrita en la FIG. 15.
40
[0113] La FIG. 18 muestra un proceso de construccion de la estructura en arbol segun el numero de capa para cada nivel construido en la FIG. 17 y de codificacion de numeros de capa y tipos de particion.
[0114] Si los numeros de capa la informacion de indicacion de tipo de particion se codifican de la misma 45 manera descrita en la FIG. 16, los datos que han de codificarse finalmente se convierten en
“01111010111100111010011111011111”.
B-1-4-3) Procedimiento 3 de codificacion de informacion de particion
50 [0115] En lo sucesivo, se describira con referencia a las FIGS. 19 y 20 un tercer procedimiento de
codificacion de informacion de particion de bloque.
[0116] Segun el tercer procedimiento, el codificador de informacion de particion 810 puede codificar
informacion de particion de bloque usando un valor de capa de particion y una bandera de particion. Es decir, el 55 codificador de informacion de particion 810 divide el macrobloque usando solo subbloques que tienen una forma cuadrada tal como N x N, (N/2) x (N/2), y (N/4) x (N/4) cuando un tipo de bloque de un bloque, el cual codifica la informacion de particion, es un tipo de bloque intra, y puede codificar la informacion de particion de bloque codificando valores de capa de particion de subbloques respectivos y las banderas de particion. En lo sucesivo, se describira con referencia a las FIGS 19 y 20 un procedimiento de codificacion de informacion de particion de bloque
usando el valor de capa de particion y la bandera de particion.
[0117] La FIG. 19 es un diagrama ejemplar para ilustrar subbloques divididos basandose en valores de capa de particion segun otro aspecto de la presente descripcion.
5
[0118] Cuando un macrobloque que tiene un tamano de bloque de N x N (N es un numero entero igual o mayor que 16) es dividido segun los valores de capa de particion 0, 1 y 2, los tamanos y formas de los subbloques pueden determinarse tal como se muestra en la FIG. 19. Cuando el macrobloque que tiene el tamano de bloque de N x N es dividido segun el valor de capa de particion 0, el macrobloque es dividido en solo 1 subbloque que tiene el
10 tamano de bloque de N x N. Cuando el macrobloque es dividido segun el valor de capa de particion 1, el macrobloque es dividido en 4 subbloques que tienen un tamano de bloque de (N/2) x (N/2). Cuando el macrobloque es dividido segun el valor de capa de particion 2, el macrobloque es dividido en 8 subbloques que tienen un tamano de bloque de (N/4) x (N/4).
15 [0119] Por consiguiente, cuando se supone que un valor de capa de particion de cualquier bloque es x, un
N N
tamano de bloque de un subbloque del bloque correspondiente puede convertirse en —X—. Por ejemplo,
2 x 2 x
cuando un valor de capa de particion es 3, un macrobloque que tiene un tamano de bloque de 64 x 64 es dividido en subbloques que tienen un tamano de bloque de 8 x 8. Ademas, cuando un valor de capa de particion del subbloque que tiene el tamano de bloque de 8 x 8 es 1, el subbloque que tiene el tamano de bloque de 8 x 8 es dividido en 20 subbloques que tienen un tamano de bloque de 4 x 4.
[0120]
subbloques
Una bandera de particion es una bandera que indica que, cuando un bloque de N x N es dividido en

N N N N
de —X— , uno o mas subbloques de —X — son divididos en subbloques mas pequenos.

2x 2x 2x 2x
NN
25 [0121] Por ejemplo, cuando el bloque de N x N es dividido en subbloques de —X— y todos los

2x 2x
NN

subbloques de —X— dentro del bloque de N x N no son divididos en subbloques mas pequenos, la bandera de 2x 2x
NN
particion tiene un valor (por ejemplo 0) que indica que todos los subbloques de —X— con el bloque de N x N no
2x 2x
son divididos en subbloques mas pequenos.
NN
30 [0122] Cuando el bloque de N x N es dividido en subbloques de —X— y uno o mas subbloques de
2x 2x
NN
— X — dentro del bloque de N x N son divididos en subbloques mas pequenos, la bandera de particion tiene un 2x 2x
NN
valor (por ejemplo 1) que indica que todos los subbloques de —X — dentro del bloque de N x N son divididos en
2x 2x
subbloques mas pequenos.
35 [0123] Cuando la bandera de particion tiene el valor que indica que un subbloque es dividido en subbloques
mas pequenos, los valores de capa de particion y las banderas de particion para todos los subbloques de
N N N N
— X — dentro del bloque de N x N se codifican y los tipos de subbloque de los subbloques de —X — 2x 2x 2x 2x
respectivos se transmiten al aparato de decodificacion de video.
40 [0124] Sin embargo, cuando un tamano de subbloque dividido segun un valor de capa de particion
corresponde a un tamano de bloque mlnimo (es decir, el subbloque no puede ser dividido en subbloques mas
pequenos), la bandera de particion no se codifica.
[0125] El valor de capa de particion y la bandera de particion anteriormente mencionados se incluyen en el tren de bits, y se codifican y transmiten al aparato de decodificacion de video. En un procedimiento de codificacion
5 del valor de capa de particion, un tamano de macrobloque que ha de transmitirse puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0126] Alternativamente, el tamano de macrobloque puede codificarse usando una codificacion aritmetica 10 binaria, una codificacion de Huffman, etc.
[0127] Alternativamente, un valor de Indice de una tabla preacordada entre el aparato de codificacion de video y de decodificacion de video puede codificarse usando los diversos procedimientos de codificacion binaria anteriormente mencionados.
15
[0128] La bandera de particion puede ser incluida en el tren de bits usando 1 bit que indica si un bloque esta dividido o no.
[0129] La FIG. 20 es un diagrama ejemplar para ilustrar un proceso de codificacion de informacion de 20 particion de bloque usando un valor de capa de particion y una bandera de particion segun otro aspecto de la
presente descripcion.
[0130] La FIG. 20 muestra un ejemplo de codificacion de informacion de particion de bloque usando el valor de capa de particion y la bandera de particion cuando un tamano de bloque de un macrobloque es 64 x 64 y un valor
25 de capa de particion maxima es 4.
[0131] Cuando el macrobloque es dividido tal como se muestra en la FIG. 20, se generan valores de capa de particion y banderas de particion de subbloques respectivos en cada numero de particion para cada capa para identificar los subbloques respectivos tal como se muestra en una tabla de la FIG. 20, y los valores de capa de
30 particion y las banderas de particion se codifican secuencialmente desde un subbloque L0-P0 hasta un subbloque L1-P3. Como el subbloque L0-P0 que tiene un tamano de bloque de 64 x 64 es dividido en 4 subbloques que tienen un tamano de bloque de 32 x 32, un valor de capa de particion es 1. Un valor de bandera de particion de cada subbloque de 32 x 32 se establece en un valor que indica que el subbloque es dividido en subbloques mas pequenos, y se codifican un valor de capa de particion y una bandera de particion.
35
[0132] Como el subbloque L1-P0 que tiene el tamano de bloque de 32 x 32 no es dividido en subbloques mas pequenos, un valor de capa de particion es 0 y una bandera de particion no tiene que codificarse. Como un subbloque L1-P1 que tiene el tamano de bloque de 32 x 32 es dividido en subbloques que tienen un tamano de bloque de 8 x 8, un valor de capa de particion es 2. Como los subbloques que tienen el tamano de bloque de 8 x 8
40 ya no son divididos, una bandera de particion se codifica en 0 que indica que el subbloque no esta dividido. En este caso, los tamanos y las formas de los subbloques L2-P0 a L2-P15, que son subbloques inferiores del subbloque L1- P1, pueden ser identificados en el aparato de decodificacion de video codificando solo los valores de capa de particion y las banderas de particion de los subbloques L2-P0 a L2-P15 sin codificar por separado los tipos de particion de los subbloques L2-P0 a L2-P15. Como un subbloque L1-P2 que tiene el tamano de bloque de 32 x 32 es 45 dividido en 4 subbloques que tienen un tamano de bloque de 16 x 16, un valor de capa de particion es 1 y una bandera de particion se codifica en 1 que indica que el subbloque esta dividido en subbloques mas pequenos. Como se ha indicado que el subbloque L1-P2 es dividido en subbloques mas pequenos indicando la bandera de particion del subbloque L1-P2 como 1, los tipos de particion de los subbloques divididos respectivos de L2-P0 a L2-P3 se codifican. Por consiguiente, los valores de capa de particion de los subbloques L2-P0, L2-P1, y L2-P2 son 0, y de 50 este modo las banderas de particion no tienen que codificarse debido a los valores de capa de particion de 0. Como el subbloque L2-P3 es dividido en subbloques que tienen un tamano de bloque de 4 x 4 y los subbloques divididos no son divididos en subbloques mas pequenos, deberian codificarse una capa de particion 2 y una bandera de particion 0 que indican que el subbloque no esta dividido. Sin embargo, un valor de capa de particion maxima y una suma de valores de capa totales de los subbloques L1-P1 y L2-P3 son iguales entre si, en el que el valor de capa de 55 particion maxima es 4 y cada uno de los valores de capa de particion de los subbloques L1-P1 y L2-P3 es 2. Por consiguiente, puede deducirse que el subbloque ya no puede ser dividido, lo que significa que la bandera de particion no tiene que codificarse. Por ultimo, como un subbloque L1-P3 que tiene el tamano de bloque de 32 x 32 es dividido en 64 subbloques que tienen un tamano de bloque de 4 x 4, un valor de capa de particion es 3 y su valor de capa de particion es igual al valor de capa de particion maxima como el subbloque L2-P3. Por consiguiente, puede
deducirse que el subbloque ya no puede ser dividido, lo que significa que la bandera de particion no tiene que codificarse.
[0133] De la manera descrita anteriormente, la information de particion de bloque puede codificarse 5 codificando el valor de capa de particion y la bandera de particion para el numero de particion para cada capa para
identificar subbloques respectivos del macrobloque.
[0134] Mientras tanto, el procedimiento de codification de informacion de particion de bloque codificando secuencialmente la informacion de indication de tipo de particion para cada capa del macrobloque segun el orden
10 de subbloque y generation de datos de informacion de particion codificados se ha descrito mediante las FIGS. 11 a 13, pero no es necesario dividir el macrobloque en subbloques tal como se muestra en las FIGS. 11 a 13 y la informacion de particion de bloque puede codificarse codificando secuencialmente la informacion de indicacion de tipo de particion para cada capa del macrobloque segun el orden de subbloque incluso cuando el macrobloque es dividido tal como se muestra en la FIG. 21.
15
B-1-4-4) Procedimiento 4 de codificacion de informacion de particion
[0135] En lo sucesivo, se describe con referencia a las FIGS. 21 y 22 un cuarto procedimiento de codificacion de informacion de particion de bloque.
20
[0136] La FIG. 21 es un diagrama ejemplar para ilustrar otro ejemplo de un macrobloque dividido en subbloques que tienen diversos tamanos de bloque segun otro aspecto de la presente description.
[0137] Mientras tanto, se ha descrito que los subbloques de la capa K+1 estan disponibles solo cuando el 25 subbloque de la capa K (0<K<log2(N/4)) es dividido en 4 subbloques en la capa K en la FIG. 9, pero los subbloques
de la capa K+1 estan disponibles cuando el subbloque de la capa K es dividido en uno o mas subbloques en la capa K en la FIG. 21 (es decir, cuando la informacion de indicacion de tipo de particion es 1, 2, o 3).
[0138] La FIG. 21 muestra un ejemplo en el cual un macrobloque que tiene un tamano de bloque de 64 x 64 30 es dividido en 2 subbloques que tienen un tamano de bloque de 64 x 16 y 2 subbloques que tienen un tamano de
bloque de 32 x 32. Los numeros escritos en “□” representan un orden de codificacion de informacion de indicacion de tipo de particion de subbloques respectivos. Si la informacion de indicacion de tipo de particion de capas respectivas del macrobloque se codifica secuencialmente segun el orden de subbloque, la informacion de indicacion de tipo de particion para capas respectivas puede codificarse segun el orden mostrado en la FIG. 11.
35
[0139] La FIG. 22 es otro diagrama ejemplar para ilustrar un proceso de codificacion secuencial de informacion de indicacion de tipo de particion para capas respectivas del macrobloque segun el orden de subbloque.
[0140] Se genera una tabla mostrada en la FIG. 22 si se codifica la informacion de tipo de particion de 40 subbloques respectivos del macrobloque mostrado en la FIG. 21. Si la informacion de indicacion de tipo de particion
de capas respectivas del macrobloque se codifica secuencialmente segun el orden de subbloque, la informacion de indicacion de tipo de particion para capas respectivas puede codificarse segun el orden mostrado en la FIG. 11.
[0141] En este caso, la informacion de indicacion de tipo de particion puede codificarse dentro de la cadena 45 de bits binarios usando una codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una
codificacion de Huffman, etc.
[0142] Alternativamente, un valor de informacion de indicacion de tipo de particion real puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado,
50 codigo de Golomb exponencial, etc.
[0143] Ademas, cuando el macrobloque es dividido usando topos de particion segun otro aspecto de la presente descripcion mostrado en la FIG. 34, la informacion de indicacion de tipo de particion puede ser una bandera que tiene una longitud de 1 bit que indica que el bloque actual esta dividido en 4 subbloques o no.
55
B-1-5) Descripcion del diagrama de flujo de codificacion
[0144] La FIG. 23 es un diagrama de flujo para ilustrar un procedimiento de codificacion de video segun otro aspecto de la presente descripcion.
[0145] Segun el procedimiento de codificacion de video segun otro aspecto de la presente descripcion, el aparato de codificacion de video 800 genera datos de imagen codificados llevando a cabo una codificacion predictiva sobre un bloque actual dividido en una pluralidad de subbloques en la etapa S2310, genera datos de
5 informacion de particion codificados codificando la informacion de partition del bloque actual en la etapa S2320, y genera un tren de bits que incluye los datos de imagen codificados y los datos de informacion de particion codificados en la etapa S2330.
[0146] Aqui, el bloque actual puede ser un macrobloque que tiene un tamano mayor que un tamano de 10 bloque de 16 x 16, y la informacion de particion puede contener tamanos de bloque y disposiciones de una
pluralidad de subbloques dentro del bloque actual.
[0147] Una pluralidad de subbloques pueden ser identificados por la informacion de indication de tipo de particion para cada capa de particion. En este caso, el aparato de codificacion de video 800 puede codificar la
15 informacion de particion del bloque actual codificando secuencialmente la informacion de indicacion de tipo de particion para cada capa de particion segun un orden de codificacion de informacion de indicacion de tipo de particion o codificar la informacion de particion del cloque actual codificando los numeros de capa y la informacion de indicacion de tipo de particion usando una estructura en arbol en la etapa S2320.
20 [0148] Ademas, el aparato de codificacion de video 800 puede codificar la informacion de particion del bloque
actual usando valores de capa de particion y banderas de particion. Mas especificamente, el aparato de codificacion de video 800 puede codificar la informacion de particion del bloque actual usando valores de capa de particion y banderas de particion solo cuando un tipo de bloque del bloque actual es un tipo de bloque intra. Como el procedimiento de codificacion de la informacion de particion del bloque actual por el aparato de codificacion de video 25 800 se ha descrito mediante las FIGS. 8 a 22, aqui se omitira su descripcion detallada.
B-2) Aparato de decodificacion de video de la realization 2
B-2-1) Diagrama de bloques y descripcion del aparato de decodificacion 30
[0149] La FIG. 24 es un diagrama de bloques esquematico para ilustrar un aparato de decodificacion de video segun otro aspecto de la presente descripcion.
[0150] El aparato de decodificacion de video 2400 segun otro aspecto de la presente descripcion puede 35 incluir un decodificador de informacion de particion 2410 y un decodificador de video 2420.
[0151] El decodificador de informacion de particion 2410 extrae y decodifica del tren de bits datos de informacion de particion codificados, y reconstruye informacion de particion del bloque actual. Aqui, la informacion de particion del bloque actual puede ser informacion de indicacion de tipo de particion para cada capa de particion,
40 numeros de capa e informacion de indicacion de tipo de particion que usa una estructura en arbol, o valores de capa de particion y banderas de particion. Cuando la informacion de particion del bloque actual es la informacion de indicacion de tipo de particion segun un orden de codificacion de informacion de indicacion de tipo de particion, el decodificador de informacion de particion 2410 puede obtener informacion de indicacion de tipo de particion para cada capa mostrada en la FIG. 13 decodificando datos de informacion de particion codificados, y puede obtener un 45 bloque actual dividido en una pluralidad de subbloques mostrados en la FlG: 11 dividiendo el bloque actual en la pluralidad de subbloques segun la informacion de indicacion de tipo de particion para cada capa basandose en la informacion de indicacion de tipo de particion y el orden de codificacion mostrado en la tabla de la FIG. 3.
[0152] Cuando la informacion de particion del bloque actual corresponde a numeros de capa e informacion de 50 indicacion de tipo de particion que usa la estructura en arbol, el decodificador de informacion de particion 2410
puede obtener numeros de capa e informacion de indicacion de tipo de particion expresada en la estructura en arbol tal como se muestra en la FIG. 16 decodificando datos de informacion de particion codificados, y puede obtener un bloque actual dividido en una pluralidad de subbloques mostrados en la FIG. 15 llevando a cabo a la inversa el procedimiento descrito en las FIGS. 15 y 16 usando los numeros de capa y la informacion de indicacion de tipo de 55 particion expresada en la estructura en arbol tal como se muestra en la FIG. 16.
[0153] Cuando la informacion de particion del bloque actual corresponde a valores de capa de particion y banderas de particion, el decodificador de informacion de particion 2410 puede obtener valores de capa de particion y banderas de particion mostrados en la FIG. 20 decodificando datos de informacion de particion codificados, y
puede obtener un bloque actual dividido en una pluralidad de subbloques mostrados en la FIG. 20 llevando a cabo a la inversa el procedimiento descrito en la FIG. 20.
[0154] El decodificador de video 2420 puede estar construido igualmente o de manera similar al aparato de 5 decodificacion de video segun un aspecto de la presente descripcion descrito con referencia a la FIG. 7. Sin
embargo, el decodificador de video 2420 segun otro aspecto de la presente descripcion extrae y decodifica datos de imagen codificados de subbloques divididos segun la informacion de particion del bloque actual reconstruido por el decodificador de informacion de particion 2410, y despues reconstruye los subbloques respectivos mediante una codificacion predictiva. En este caso, los datos de imagen extraidos del tren de bits por el decodificador de video 10 2420 pueden ser datos predichos y/o datos necesarios para una decodificacion de senal residual tal como un tipo de transformada, CBP, y un coeficiente de transformada. Aqui, los datos predichos corresponden a datos que indican si cada subbloque es un bloque intra o un bloque inter, y corresponden a un modo de prediccion intra para el bloque intra e informacion de movimiento para el bloque inter.
15 B-2-2) Procedimiento de decodificacion de informacion de particion
[0155] En lo sucesivo, se describiran diversos procedimientos de decodificacion de informacion de particion, la cual es informacion que indica tamanos y formas de subbloques usados para la prediccion o la transformada dentro del macrobloque, segun aspectos de la presente invencion.
20
B-2-2-1) Procedimiento 1 de decodificacion de informacion de particion
[0156] En primer lugar se describe un procedimiento de decodificacion segun el primer procedimiento de codificacion de la informacion de particion.
25
[0157] La informacion de indicacion de tipo de particion se decodifica usando un tipo de subbloque preacordado disponible para cada capa entre el aparato de codificacion de video y el aparato de decodificacion de video segun un orden preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video. Por ejemplo, los tipos de subbloque disponibles para capas respectivas pueden ser los tipos de subbloque
30 mostrados en las FlGS. 10 y 34, y la informacion de indicacion de tipo de particion puede ser decodificada secuencialmente segun los ordenes mostrados en las FIGS. 11 y 13.
[0158] En lo sucesivo, se describe un procedimiento de decodificacion bajo las mismas condiciones que los ejemplos usados para describir el primer procedimiento de codificacion de la informacion de particion. La informacion
35 de particion se decodifica basandose en los tipos de subbloque mostrados en la FIG. 10 segun el orden mostrado en la FIG. 11.
[0159] El decodificador de informacion de particion 2410 extrae y decodifica del tren de bits informacion de
indicacion de tipo de particion, y reconstruye la informacion de indicacion de tipo de particion de una capa de 40 macrobloque 0. Cuando un valor de informacion de indicacion de tipo de particion reconstruida es 0, significa que el macrobloque no es dividido en subbloques, de modo que se termina la decodificacion de informacion de indicacion de tipo de particion del macrobloque actual. Despues de eso, la prediccion o la transformada se lleva a cabo por unidad de macrobloques de N x N.
45 [0160] Cuando el valor de informacion de indicacion de tipo de particion reconstruida de la capa 0 es 1, el
macrobloque es dividido en 2 subbloques de tamano N X— y se termina una decodificacion de indicacion de tipo
2
de particion del macrobloque actual. Despues de eso, la prediccion o la transformada se lleva a cabo por unidad de
N
macrobloques de N X— .
50 [0161] Cuando el valor de informacion de indicacion de tipo de particion reconstruida de la capa 0 es 2, el
N
macrobloque es dividido en 2 subbloques de tamano —X N y se termina una decodificacion de indicacion de tipo
2
de particion del macrobloque actual. Despues de eso, la prediccion o la transformada inversa se lleva a cabo por
N Ar
unidad de macrobloques de — X N .
[0162] Cuando el valor de informacion de indicacion de tipo de partition reconstruida de la capa 0 es 3, el
NN
macrobloque es dividido en 4 subbloques de tamano —X— y es descodificada la informacion de indicacion de
2 2
5 tipo de particion de un primer subbloque (que tiene un numero de particion 0 de una capa 1). Aqul, un numero de
NN
capa de los subbloques de —X— es 1, el cual es un valor incrementado a partir de un numero de capa superior.
22
[0163] Cuando la informacion de indicacion de tipo de particion del subbloque que tiene el numero de
particion 0 de la capa 1 extralda y decodificada del tren de bits no es 3, se codifica la informacion de indicacion de
NN
10 tipo de particion de un segundo subbloque de tamano —X— (que tiene una particion 1 de la capa 1).
22
[0164] Cuando la informacion de indicacion de tipo de particion del subbloque que tiene el numero de particion 0 de la capa 1 extralda y decodificada del tren de bits es 3, el subbloque actual es dividido en 4 subbloques y el numero de capa es 2. Despues de eso, se extrae y decodifica del tren de bits informacion de indicacion de tipo
15 de particion de un subbloque que corresponde a un numero de particion 0 de una capa 1.
[0165] En un caso en el que un numero de capa K del subbloque actual que tiene un numero de particion Y corresponde a un valor maximo que puede ser asignado a numeros de capa, si la informacion de indicacion de tipo de particion decodificada del subbloque actual (que tiene el numero de particion Y del numero de capa K) es 3, el
20 subbloque actual es dividido en 4 subbloques y despues la informacion de indicacion de tipo de particion de un subbloque subsiguiente (que tiene un numero de particion Y+1 del numero de capa K) se decodifica en un orden de barrido por filas.
[0166] Cuando el numero de particion del subbloque actual corresponde a un valor maximo de numeros de 25 particion incluidos en la capa actual, se decodifica la informacion de indicacion de tipo de particion de subbloques de
una capa superior, que no han sido decodificados todavla.
[0167] En lo sucesivo, se describe el procedimiento de decodificacion segun el aspecto de la FIG. 11 basandose en un caso en el que un tamano de macrobloque es 64 x 64 y el numero de capas de particion maximas
30 es 4. En el aspecto de la FIG. 11, un valor codificado con informacion de indicacion de tipo de particion en el aparato de codification de video es {3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 0}.
[0168] En primer lugar, es descodificada la informacion de indicacion de tipo de particion de una capa 0.
35 [0169] Como la informacion de indicacion de tipo de particion decodificada es 3, el macrobloque de 64 x 64
es dividido en 4 subbloques de tamano 32 x 32 (L1-P0, L1-P1, L1-P2, y L1-P3).
[0170] Como cada subbloque de 32 x 32 puede ser dividido en subbloques mas pequenos, se decodifica la informacion de indicacion de tipo de particion de un primer subbloque de 32 x 32 (L1-P0) dentro del macrobloque de
40 64 x 64.
[0171] Como la informacion de indicacion de tipo de particion decodificada en segundo lugar es 3, el subbloque L1-P0 es dividido en 4 subbloques de tamano 16 x 16 (L2-P0, L2-P1, L2-P2, y L2-P3) y se extrae y decodifica del tren de bits informacion de indicacion de tipo de particion del subbloque L2-P0.
45
[0172] Como la informacion de indicacion de tipo de particion decodificada en tercer lugar es 3, el subbloque L2-P0 de tamano 16 x 16 es dividido en 4 subbloques de tamano 8 x 8 (L3-P0, L3-P1, L3-P2, y L3-P3) y se extrae y decodifica del tren de bits informacion de indicacion de tipo de particion del subbloque L3-P0.
50 [0173] Como la informacion de indicacion de tipo de particion decodificada en cuarto lugar es 3, el subbloque
L3-P0 de tamano 8 x 8 es dividido en 4 subbloques de tamano 4 x 4. Aqul, como el numero de capas de particion
maximas es 4, el subbloque no puede ser dividido en subbloques mas pequenos y de este modo se extrae y decodifica del tren de bits informacion de indicacion de tipo de particion del subbloque L3-P1.
[0174] Como la informacion de indicacion de tipo de particion decodificada en quinto lugar es 3, el subbloque 5 L3-P1 de tamano 8 x 8 es dividido en 4 subbloques de tamano 4 x 4 y se extrae y decodifica del tren de bits
informacion de indicacion de tipo de particion del subbloque L3-P2.
[0175] Como la informacion de indicacion de tipo de particion decodificada en sexto lugar es 0, el subbloque L3-P0 de tamano 8 x 8 ya no es dividido y se extrae y decodifica del tren de bits informacion de indicacion de tipo de
10 particion del subbloque L3-P2, que es el subbloque subsiguiente.
[0176] Como la informacion de indicacion de tipo de particion decodificada en septimo lugar es 0, el subbloque L3-P3 de tamano 8 x 8 tampoco es dividido. Aqul, como un numero de particion del subbloque actual corresponde a un valor maximo de numeros de particion incluidos en la capa actual, se extrae y decodifica del tren
15 de bits informacion de indicacion de tipo de particion del subbloque L2-P1 de una capa superior.
[0177] Como la informacion de indicacion de tipo de particion decodificada en octavo lugar es 0, un tamano de bloque del subbloque L2-P1 es 16 x 16.
20 [0178] De la misma manera, se extrae y decodifica del tren de bits informacion de indicacion de tipo de
particion de los subbloques L2-P2 y L2-P3, y se determinan los tipos de subbloque respectivos.
[0179] Como la informacion de indicacion de tipo de particion decodificada en noveno lugar tambien es 0, un tamano de bloque del subbloque L2-P2 es 16 x 16. Como la informacion de indicacion de tipo de particion
25 decodificada en decimo lugar es 1, el subbloque L2-P3 es dividido en 2 subbloques de tamano 16 x 8.
[0180] Como toda la informacion de indicacion de tipo de particion de los subbloques incluidos en la capa 2 ha sido decodificada, se decodifica la informacion de indicacion de tipo de particion de un segundo subbloque L1-P1 de tamano 32 x 32 de la capa 1, que es una capa superior.
30
[0181] Como la informacion de indicacion de tipo de particion decodificada en decimoprimer lugar es 2, el
bloque de 32 x 32 que corresponde al subbloque L1-P1 es dividido en 2 subbloques de tamano 16 x 32 y se
decodifica la informacion de indicacion de tipo de particion del subbloque L1-P2.
35 [0182] Como la informacion de indicacion de tipo de particion decodificada en decimosegundo lugar es 1, el
bloque de 32 x 32 que corresponde al subbloque L1-P2 es dividido en 2 subbloques de tamano 32 x 16 y se
decodifica la informacion de indicacion de tipo de particion del subbloque L1-P3.
[0183] Como la informacion de indicacion de tipo de particion decodificada en decimotercer lugar es 3, el 40 bloque de 32 x 32 que corresponde al subbloque L1-P3 es dividido en 4 subbloques de tamano 16 x 16 (L2-P0, L2-
P1, L2-P3, y L2-P3) y la informacion de indicacion de tipo de particion de los subbloques respectivos se decodifica de la misma manera.
[0184] Como la informacion de indicacion de tipo de particion decodificada en decimocuarto lugar es 0, un 45 tipo de subbloque del subbloque L2-P0 es 16 x 16 y la informacion de indicacion de tipo de particion del subbloque
L2-P1, que es un subbloque subsiguiente, se decodifica porque el subbloque L2-P0 ya no es dividido.
[0185] Como la informacion de indicacion de tipo de particion decodificada en decimoquinto lugar es 0, un tipo de subbloque del subbloque L2-P1 es 16 x 16 y la informacion de indicacion de tipo de particion del subbloque
50 L2-P2, que es un subbloque subsiguiente, se decodifica porque el subbloque L2-P1 ya no es dividido.
[0186] Como la informacion de indicacion de tipo de particion decodificada en decimosexto lugar es 0, un tipo de subbloque del subbloque L2-P2 es 16 x 16 y la informacion de indicacion de tipo de particion del subbloque L2- P3, que es un subbloque subsiguiente, se decodifica porque el subbloque L2-P2 ya no es dividido.
55
[0187] Como la informacion de indicacion de tipo de particion decodificada en decimoseptimo lugar es 0, un tipo de subbloque del subbloque L2-P3 es 16 x 16 y una decodificacion de informacion de indicacion de tipo de particion se termina porque los tipos de subbloque de todos los subbloques dentro del macrobloque han sido determinados.
[0188] En lo sucesivo, se describira un procedimiento de decodificacion de information de indication de tipo de partition cuando se codifica toda la informacion de indicacion de tipo de partition de las capas superiores y despues la informacion de indicacion de tipo de particion de las capas inferiores se codifica segun el orden de
5 codification de informacion de indicacion de tipo de particion.
[0189] En el aspecto de la FIG. 11, un valor codificado con informacion de indicacion de tipo de particion en el aparato de codificacion de video es {3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0}.
10 [0190] En primer lugar, se decodifica la informacion de indicacion de tipo de particion de una capa 0.
[0191] Como la informacion de indicacion de tipo de particion decodificada es 3, el macrobloque de 64 x 64
es dividido en 4 subbloques de tamano 32 x 32 (L1-P0, L1-P1, L1-P2, y L1-P3).
15 [0192] Como el numero de subbloques incluidos en una capa 1 es 4, se decodifican 4 elementos de
informacion de indicacion de tipo de particion. Como la informacion de indicacion de tipo de particion de los subbloques (L1-P0, L1-P1, L1-p2, y L1-P3) reconstruidos del tren de bits es {3, 2, 1, 3}, los subbloques L1-P0 y L1- P3 son divididos en 4 subbloques de tamano 16 x 16, el subbloque L1-P1 es dividido en 2 subbloques de tamano 16 x 32, y el subbloque L1-P2 es dividido en 2 subbloques de tamano 32 x 16.
20
[0193] La informacion de indicacion de tipo de particion de 8 subbloques de tamano 8 x 8 de una capa 2 incluidos en los subbloques L1-P0 y L1-P3 se extrae y decodifica del tren de bits.
[0194] Como la informacion de indicacion de tipo de particion de 4 subbloques (L2-P0, L2-P1, L2-P2, y L2-
25 P3) incluidos en el L1-P0 reconstruido es {3, 0, 0, 1} y la informacion de indicacion de tipo de particion de 4
subbloques (L2-P0, L2-P1, L2-P2, y L2-P3) incluidos en el L1-P3 reconstruido es {0, 0, 0, 0}, el subbloque L2-P0 incluido en el subbloque L1-P0 es dividido en 4 subbloques de tamano 4 x 4 y el subbloque L2-P3 es dividido en 2 subbloques de tamano 8 x 4.
30 [0195] Como la informacion de indicacion de tipo de particion de los subbloques L2-P1 y L2-P2 incluidos en el
subbloque L1-P0 y 4 subbloques incluidos en el subbloque L1-P3 es toda 0, los subbloques no son divididos.
[0196] Como el subbloque L2-P0 incluido en el subbloque L1-P0 es dividido en 4 subbloques y ellos ya no pueden ser divididos en subbloques mas pequenos, se termina una decodificacion de informacion de indicacion de
35 tipo de particion para una decodificacion de macrobloque actual.
[0197] En este caso, la informacion de indicacion de tipo de particion se decodifica por entropla usando un procedimiento preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video entre procedimientos de codificacion/decodificacion de compresion sin perdidas tales como una codificacion aritmetica
40 binaria, una codificacion de Huffman, etc.
[0198] Ademas, un valor de informacion de indicacion de tipo de particion real puede ser decodificado usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
45
[0199] Ademas, el aparato de decodificacion de video lleva a cabo una decodificacion de entropia usando las Tablas 1 y 2 segun los numeros de capa de la informacion de indicacion de tipo de particion cuando el aparato de codificacion de video usa una codificacion aritmetica binaria, usa la Tabla 1 en un caso en el que un numero de capa
es igual o menor que log2
N_
16
y usa la Tabla 2 en un caso en el que el numero de capa es mayor que
log2l N
como el procedimiento de codificacion de informacion de indicacion de tipo de particion.
[0200] Por ejemplo, cuando la informacion de indicacion de tipo de particion incluida en una capa 1 se
decodifica por entropia para un macrobloque de 64 x 64, 2 bis se decodifican por entropia y despues se obtiene la informacion de indicacion de tipo de particion usando la Tabla 1.
[0201] Cuando la informacion de indicacion de tipo de particion incluida en una capa 3 se decodifica con decodificacion de entropla para el macrobloque de 64 x 64, se usa la Tabla 2. En primer lugar, 1 bit se decodifica por entropla. Despues, cuando un bit binario decodificado es 1, la informacion de indicacion de tipo de particion se
5 establece en 0 y se termina una decodificacion de entropla de informacion de indicacion de tipo de particion del subbloque actual. Cuando el bit binario decodificado no es 1, se decodifica nuevamente por entropla 1 bit del tren de bits. Cuando un bit decodificado por segunda vez es 0, la informacion de indicacion de tipo de particion del subbloque actual se establece en 1 y se termina una decodificacion de entropla para la informacion de indicacion de tipo de particion del subbloque actual. Cuando el bit decodificado por segunda vez es 1, se decodifica por entropla 10 nuevamente 1 bit del tren de bits y se determina si la informacion de indicacion de tipo de particion del subbloque actual es 2 o 3 usando la Tabla 2.
[0202] Ademas, cuando esta preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video que se usan tipos de particion segun otro aspecto de la presente descripcion mostrado en la
15 FIG. 34, puede determinarse si el subbloque actual es dividido en 4 subbloques decodificando por entropia 1 bit para la decodificacion de informacion de indicacion de tipo de particion.
B-2-2-2) Procedimiento 2 de decodificacion de informacion de particion
20 [0203] En lo sucesivo, se describe un procedimiento de decodificacion segun el segundo procedimiento de
codificacion de la informacion de particion.
[0204] Segun el segundo procedimiento, la informacion de particion de bloque puede ser decodificada decodificando en primer lugar los numeros de capa usando la estructura en arbol y despues decodificando la
25 informacion de indicacion de tipo de particion.
[0205] En un procedimiento de decodificacion de numeros de capa, un valor de diferencia entre un numero de capa de un nivel actual y un numero de capa de un nivel superior se reconstruye decodificando bits binarios 0 y 1. En este caso, se lee y decodifica 1 bit del tren de bits con el fin de reconstruir el valor de diferencia. Cuando un bit
30 binario decodificado es 0, se lee y decodifica nuevamente 1 bit del tren de bits. De la misma manera, el bit binario 0 se reconstruye continuamente hasta que se reconstruye el bit binario 1. Cuando el bit binario reconstruido es 1, no se lee ni decodifica ningun bit adicional, y el valor de diferencia se convierte en el numero de 0 reconstruidos.
[0206] Se inicia una decodificacion del numero de capa del nivel 0 y un valor de diferencia entre el numero de 35 capa del nivel 0 y un numero 0 se reconstruye del tren de bits usando el procedimiento anteriormente mencionado
para una reconstruccion de numero de capa. Cuando el numero de capa reconstruido del nivel 0 es mayor que un numero 0, se construye un arbol generando nodos hijos en el nodo actual. El numero de nodos hijos recien generados es diferente dependiendo de un procedimiento de division de subbloques preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video. Segun un procedimiento de division de subbloques 40 mostrado en la FIG: 9, como los subbloques incluidos en una capa inferior pueden usarse solo cuando el subbloque actual es dividido en 4 subbloques, se generan 4 nodos hijos. Los nodos recien generados tienen valores de nivel incrementados en 1 respecto a los valores de nivel de las capas superiores.
[0207] Es decir, cuando el numero de capa reconstruido del nivel 0 es mayor que un valor de nivel 0, la 45 estructura en arbol se construye generando 4 nodos hijos incluidos en un nivel 1.
[0208] A continuacion, se extraen y reconstruyen del tren de bits 4 valores de diferencia para reconstruir numeros de capa de los nodos recien generados, y los numeros de capa de nodos respectivos se reconstruyen sumando valores de diferencia y numeros de capa de nodos superiores.
50
[0209] De la misma manera, cuando el numero de capa reconstruido de cada nodo y un valor de nivel del nodo son iguales entre si, un nodo hijo incluido en un nivel inferior no se construye para un nodo correspondiente. Cuando el numero de capa reconstruido de cada nodo es mayor que el valor de nivel del nodo, se generan 4 nodos hijos para el nodo correspondiente, y se lleva a cabo una decodificacion de numeros de capa de los nodos recien
55 construidos.
[0210] Sin embargo, cuando el numero de capa reconstruido es un valor maximo, que puede ser asignado a numeros de capa (es decir, cuando un numero de capa empieza desde 0, un valor maximo, que puede ser asignado al numero de capa, corresponde a “un valor de capa de particion maxima -1”), se generan 4 nodos hijos para el nodo
actual, pero no se lleva a cabo la decodificacion de los numeros de capa de los nodos respectivos.
[0211] El arbol se construye hasta que un numero de capa de los nodos mas bajos es igual a un numero de nivel de cada nodo o el numero de capa tiene un valor maximo, que puede ser asignado al numero de capa, y la
5 reconstruction del numero de capa de cada nodo se lleva a cabo continuamente.
[0212] Despues de eso, se lleva a cabo la decodificacion de information de indication de tipo de partition para los nodos mas bajos. La informacion de indicacion de tipo de particion de los nodos respectivos se decodifica por entropla usando un procedimiento preacordado entre el aparato de codification de video y el aparato de
10 decodificacion de video entre procedimientos de codificacion/decodificacion de compresion sin perdidas tales como una codificacion aritmetica binaria, una codificacion de Huffman, etc.
[0213] Ademas, un valor de informacion de indicacion de tipo de particion actual puede ser decodificado
usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, 15 codigo de Golomb exponencial, etc.
[0214] Ademas, el aparato de decodificacion de video lleva a cabo una decodificacion de entropia usando las
Tablas 1 y 2 segun los numeros de capa de la informacion de indicacion de tipo de particion cuando el aparato de codificacion de video usa una codificacion aritmetica binaria, usa la Tabla 1 en un caso en el que un numero de capa
, f N ]
20 es igual o menor que log21 — I, y usa la Tabla 2 en un caso en el que el numero de capa es mayor que
V16 )
log2 J , como el procedimiento de codificacion de informacion de indicacion de tipo de particion. Por ejemplo,
cuando la informacion de indicacion de tipo de particion incluida en una capa 1 se codifica por entropia, 2 bits se decodifican por entropia y despues se obtiene la informacion de indicacion de tipo de particion usando la Tabla 1. Cuando la informacion de indicacion de tipo de particion incluida en una capa 3 se decodifica por entropia, se usa la 25 Tabla 2. Por ejemplo, en primer lugar se decodifica por entropia 1 bit. Despues, cuando un bit binario decodificado es 1, la informacion de indicacion de tipo de particion se establece en 0 y se termina una decodificacion de entropia de informacion de indicacion de tipo de particion del subbloque actual. Cuando el bit binario decodificado no es 1, se decodifica por entropia nuevamente 1 bit del tren de bits. Cuando un bit decodificado en segundo lugar es 0, la informacion de indicacion de tipo de particion del subbloque actual se establece en 1 y se termina una decodificacion 30 de entropia para la informacion de indicacion de tipo de particion del subbloque actual. Cuando el bit decodificado en segundo lugar es 1, se decodifica por entropia nuevamente 1 bit del tren de bits y se determina si la informacion de indicacion de tipo de particion del subbloque actual es 2 o 3 usando la Tabla 2.
[0215] Ademas, cuando se preacuerda entre el aparato de codificacion de video y el aparato de 35 decodificacion de video que se usan tipos de particion segun otro aspecto de la presente description mostrado en la
Fig. 34, puede determinarse si el subbloque actual es dividido en 4 subbloques decodificando por entropia 1 bit para la decodificacion de informacion de indicacion de tipo de particion.
[0216] En lo sucesivo, se describira el procedimiento de decodificacion segun el aspecto de las FIGS. 14A y 40 14B. Un valor de bit binario codificacion con informacion de particion en el aparato de codificacion de video es “101”
en el aspecto de las FIGS. 14A y 14B.
[0217] En primer lugar, se extrae y reconstruye del tren de bits 1 bit para reconstruir un numero de capa de
un nivel 0. En un caso del nivel 0, como no hay un nodo superior, un valor de capa se reconstruye sumando un valor 45 preacordado 0 entre el aparato de codificacion de video y el aparato de decodificacion de video y el valor de diferencia reconstruido. En este caso, el valor de diferencia es 0 y de este modo el valor de capa reconstruido se convierte en 0.
[0218] Como tanto el valor de capa reconstruido como el valor de nivel son 0, se termina un proceso de 50 decodificacion del numero de capa y se decodifica la informacion de indicacion de tipo de particion.
[0219] Como procedimiento para expresar directamente un valor de informacion de indicacion de tipo de particion con un bit binario cuando la informacion de indicacion de tipo de particion se codifica en el aspecto de las FIGS. 14A y 14B, el aparato de decodificacion de video tambien extrae 2 bits del tren de bits y reconstruye un valor
de la misma manera. Como un bit binario “01” se expresa mediante un numero entero “1”, la informacion de indicacion de tipo de particion reconstruida se convierte en 1.
[0220] Cuando las formas de los subbloques de un macrobloque se determinan usando el valor de capa
5 reconstruido e informacion de indicacion de tipo de particion, todos los subbloques dentro del macrobloque estan incluidos en una capa 0, de modo que el subbloque tiene uno de los tipos de subbloque 64 x 64, 64 x 32, 32 x 64, y 32 x 32. Ademas, puede deducirse que el macrobloque es dividido en 2 subbloques de tamano 64 x 32 porque la informacion de indicacion de tipo de particion es 0.
10 [0221] En lo sucesivo, se describe un procedimiento de decodificacion segun el aspecto de las FIGS. 15 y 16.
En el aspecto de la FIG. 16, un valor de bit binario codificado con informacion de particion en el aparato de codificacion de video es “01111100111001”.
[0222] En primer lugar, se extrae y reconstruye 1 bit del tren de bits para reconstruir un numero de capa de 15 un nivel 0. Como el bit extraldo del tren de bits es 0, se extrae y reconstruye nuevamente 1 bit del tren de bits. Como
el bit reconstruido en segundo lugar es 1, se termina una reconstruction del valor de diferencia para el numero de capa del nivel 0. Como el tren de bits extraldo para la reconstruccion del valor de diferencia es “01”, el valor de diferencia se convierte en 1, el cual corresponde al numero de 0, y un valor de 1 generado sumando el valor de diferencia 0 reconstruido y 0 se asigna como el numero de capa.
20
[0223] Como el numero de capa 0 reconstruido del nivel 0 es mayor que el valor de nivel 0, 4 nodos hijos incluidos en un nivel 1 se generan en el nodo actual.
[0224] Se extrae 1 bit del tren de bits para reconstruir un numero de capa de un primer nodo del nivel 1. 25 Como el bit extraldo en tercer lugar es 1, el valor de diferencia se convierte en 0. El numero de capa 1 del primer
nodo se reconstruye sumando el valor de diferencia reconstruido y el numero de capa del nivel 0, que es un nodo superior del primer nodo del nivel 1. Como el numero de capa 1 reconstruido del nivel 1 y el valor de nivel 1 son iguales entre si, se inicia una decodificacion de valor de diferencia para un segundo nodo del nivel 1.
30 [0225] Se extrae 1 bit del tren de bits para reconstruir un numero de capa del segundo nodo del nivel 1.
Como el bit extraido en cuarto lugar es 1, el valor de diferencia se convierte en 0. El numero de capa 1 del segundo nodo se reconstruye sumando el valor de diferencia reconstruido y el numero de capa del nivel 0, que es un nodo superior del segundo nodo del nivel 1. Como el numero de capa 1 reconstruido del nivel 1 y el valor de nivel 1 son iguales entre si, se inicia una decodificacion de valor de diferencia para un tercer nodo del nivel 1.
35
[0226] Se extrae 1 bit del tren de bits para reconstruir un numero de capa del tercer nodo del nivel 1. Como el bit extraldo en quinto lugar es 1, el valor de diferencia se convierte en 0. El numero de capa 1 del tercer nodo se reconstruye sumando el valor de diferencia reconstruido y el numero de capa del nivel 0, que es un nodo superior del tercer nodo del nivel 1. Como el numero de capa 1 reconstruido del nivel 1 y el valor de nivel 1 son iguales entre
40 si, se inicia una decodificacion de valor de diferencia para un cuarto nodo del nivel 1.
[0227] Se extrae 1 bit del tren de bits para reconstruir un numero de capa del cuarto nodo del nivel 1. Como el bit extraldo en sexto lugar es 1, el valor de diferencia se convierte en 0. El numero de capa 1 del cuarto nodo se reconstruye sumando el valor de diferencia reconstruido y el numero de capa del nivel 0, que es un nodo superior
45 del cuarto nodo del nivel 1.
[0228] Como los numeros de capa de todos los nodos incluidos en el nivel 1 se reconstruyen y no hay ningun nodo incluido en un nivel 2, se termina la decodificacion de numero de capa y se lleva a cabo la decodificacion de informacion de indicacion de tipo de particion para nodos respectivos del nivel mas bajo.
50
[0229] En el aspecto de las FIGS. 15 y 16, como la informacion de indicacion de tipo de particion se codifica asignando los bits binarios “11”, “00”, “10” y “01” a la informacion de indicacion de tipo de particion, el aparato de decodificacion de video tambien reconstruye la informacion de indicacion de tipo de particion extrayendo de la misma manera 2 bits del tren de bits para los nodos respectivos.
55
[0230] Como hay 4 nodos incluidos en el nivel 1 como nodos incluidos en el nivel mas bajo en el aspecto de las FIGS. 15 y 16, la informacion de indicacion de tipo de particion se reconstruye extrayendo 2 bits del tren de bits para los nodos respectivos.
[0231] Como los bits septimo y octavo extraldos del tren de bits corresponden a “00”, la informacion de indicacion de tipo de particion para un primer nodo es 1. Como los bits noveno y decimo extraldos del tren de bits corresponden a “11”, la informacion de indicacion de tipo de particion para un segundo nodo es 0. Como los bits decimoprimero y decimosegundo extraldos del tren de bits corresponden a “10”, la informacion de indicacion de tipo
5 de particion para un tercer nodo es 2. Como los bits decimotercero y decimocuarto extraldos del tren de bits corresponden a “01”, la informacion de indicacion de tipo de particion para un cuarto nodo es 3.
[0232] Cuando las formas de los subbloques de un macrobloque se determinan usando el valor de capa reconstruido y la informacion de indicacion de tipo de particion, todos los subbloques dentro del macrobloque estan
10 incluidos en una capa 1, de modo que un macrobloque de 64 x 64 es dividido en 4 subbloques de tamano 32 x 32 y los subbloques de 32 x 32 respectivos tienen uno de los tipos de subbloque 32 x 32, 32 x 16, 16 x 32, y 16 x 16, que estan incluidos en la capa 1.
[0233] Como la informacion de indicacion de tipo de particion reconstruida de un primer subbloque es 1, un 15 primer subbloque de 32 x 32 es dividido en 2 subbloques de tamano 32 x 16. Como la informacion de indicacion de
tipo de particion reconstruida de un segundo subbloque es 0, un segundo subbloque de 32 x 32 es dividido en 1 subbloque de tamano 32 x 32. De la misma manera, como la informacion de indicacion de tipo de particion reconstruida de un tercer subbloque es 2, un tercer subbloque de 32 x 32 es dividido en 2 subbloques de tamano 16 x 32. Como la informacion de indicacion de tipo de particion reconstruida de un cuarto subbloque es 3, un cuarto 20 subbloque de 32 x 32 es dividido en 4 subbloques de tamano 16 x 16. Los subbloques divididos se ilustran en la FIG. 15.
[0234] En lo sucesivo, se describe un procedimiento de decodificacion segun el aspecto de las FIGS. 17 y 18. En el aspecto de la FIG. 18, un valor de bit binario codificado con informacion de particion en el aparato de
25 codificacion de video es “01111010111100111010011111011111”.
[0235] En primer lugar, se extrae y reconstruye 1 bit del tren de bits para reconstruir un numero de capa de un nivel 0. Como el bit extraldo del tren de bits es 0, se extrae y reconstruye nuevamente 1 bit del tren de bits. Como el bit reconstruido en segundo lugar es 1, se termina una reconstruccion del valor de diferencia para el numero de
30 capa del nivel 0. Como el tren de bits extraldo para la reconstruccion del valor de diferencia es “01”, el valor de diferencia se convierte en 1, que corresponde al numero de 0, y un valor de 1 generado sumando el valor de diferencia 0 reconstruido y 0 es asignado como el numero de capa.
[0236] Como el numero de capa 0 reconstruido del nivel 0 es mayor que el valor de nivel 0, 4 nodos hijos 35 incluidos en un nivel 1 se generan en el nodo actual.
[0237] Se extrae 1 bit del tren de bits para reconstruir un numero de capa de un primer nodo del nivel 1. Como el bit extraldo en tercer lugar es 1, el valor de diferencia se convierte en 0. El numero de capa 1 del primer nodo se reconstruye sumando el valor de diferencia reconstruido y el numero de capa del nivel 0, que es un nodo
40 superior del primer nodo del nivel 1. Como el numero de capa 1 reconstruido del nivel 1 y el valor de nivel 1 son iguales entre si, se inicia una decodificacion de valor de diferencia para un segundo nodo del nivel 1.
[0238] Se extrae 1 bit del tren de bits para reconstruir un numero de capa del segundo nodo del nivel 1. Como el bit extraldo en cuarto lugar es 1, el valor de diferencia se convierte en 0. El numero de capa 1 del segundo
45 nodo se reconstruye sumando el valor de diferencia reconstruido y el numero de capa del nivel 0, que es un nodo superior del segundo nodo del nivel 1. Como el numero de capa 1 reconstruido del nivel 1 y el valor de nivel 1 son iguales entre si, se inicia una decodificacion de valor de diferencia para un tercer nodo del nivel 1.
[0239] Se extrae 1 bit del tren de bits para reconstruir un numero de capa del tercer nodo del nivel 1. Como el 50 bit extraldo en quinto lugar es 1, el valor de diferencia se convierte en 0. El numero de capa 1 del tercer nodo se
reconstruye sumando el valor de diferencia reconstruido y el numero de capa del nivel 0, que es un nodo superior del tercer nodo del nivel 1. Como el numero de capa 1 reconstruido del nivel 1 y el valor de nivel 1 son iguales entre si, se inicia una decodificacion de valor de diferencia para un cuarto nodo del nivel 1.
55 [0240] Se extrae 1 bit del tren de bits para reconstruir un numero de capa del cuarto nodo del nivel 1. Como
el bit extraldo en sexto lugar es 0, se extrae y reconstruye nuevamente 1 bit del tren de bits. Como el bit reconstruido en septimo lugar es 1, se termina la reconstruccion del valor de diferencia para el cuarto nodo del nivel 1. Como el tren de bits extraldo para la reconstruccion del valor de diferencia es “01”, el valor de diferencia se convierte en 1, que es el numero de 0, y un numero de capa 2 se reconstruye sumando el valor de diferencia reconstruido y un
numero de capa 1 de un nodo superior. Como el numero de capa 2 reconstruido tiene un valor mayor que un valor de nivel 1, en el cual esta incluido el nodo actual, se generan 4 nodos hijos para el cuarto nodo del nivel 1. Los nodos hijos generados estan incluidos en un nivel 2.
5 [0241] Como los numeros de capa de todos los nodos incluidos en el nivel 1 se reconstruyen, los numeros de
capa de todos los nodos incluidos en el nivel 2 se decodifican de la misma manera.
[0242] Los nodos incluidos en el nivel 2 son nodos hijos del cuarto nodo del nivel 1, y los bits extraldos para reconstruir un primer nodo del nivel 2 son “01”, que es un octavo bit y un noveno bit. Como un valor de diferencia
10 entre el primer nodo del nivel 2 y un numero de capa 2 de un nodo superior es 1, un numero de capa del nodo actual es 3. En este caso, como el numero de capa 3 reconstruido es mayor que un valor de nivel 2, se generan 4 nodos hijos. Sin embargo, como el valor de capa 3 reconstruido tiene un valor maximo, que puede ser asignado a numeros de capa de particion, tal como se describe anteriormente, los numeros de capa no se decodifican para los 4 nodos recien generados de un nivel 3.
15
[0243] Los bits extraldos para reconstruir de un segundo nodo a un cuarto nodo del nivel 2 son “111”, que corresponde a de un decimo bit a un decimosegundo bit. Como los valores de diferencia de los 3 nodos son todos 0, los numeros de capa del segundo, el tercer y el cuarto nodos del nivel 2 son 2.
20 [0244] Como los numeros de capa de todos los nodos incluidos en el nivel 2 han sido reconstruidos y los
numeros de capa de los nodos incluidos en el nivel 3 no se reconstruyen, se termina decodificacion de numero de capa y se lleva a cabo la decodificacion de informacion de indicacion de tipo de particion para los nodos respectivos del nivel mas bajo.
25 [0245] En el aspecto de las FIGS. 17 y 18, como la informacion de indicacion de tipo de particion se codifica
asignando los bits binarios “11”, “00”, “10”, y “01” a la informacion de indicacion de tipo de particion, el aparato de decodificacion de video tambien reconstruye la informacion de indicacion de tipo de particion extrayendo de la misma manera del tren de bits 2 bits para los nodos respectivos.
30 [0246] Como hay 3 nodos incluidos en el nivel 1, 4 nodos incluidos en el nivel 3, y 3 nodos incluidos en el
nivel 2 como nodos incluidos en el nivel mas bajo en el aspecto de las FIGS. 17 y 18, la informacion de indicacion de tipo de particion se reconstruye extrayendo del tren de bits 2 bits para los nodos respectivos.
[0247] Cuando la informacion de indicacion de tipo de particion se decodifica de la misma manera que la
35 descrita a traves de la FIG. 16, los bits extraldos para decodificar los tipos de particion de 3 nodos incluidos en el nivel 1 son secuencialmente “00”, “11”, y “10”, de modo que la informacion de indicacion de tipo de particion de un primer nodo del nivel 1 es 1, la informacion de indicacion de tipo de particion de un segundo nodo del nivel 1 es 0, y la informacion de indicacion de tipo de particion de un tercer nodo del nivel 1 es 2.
40 [0248] Como los bits extraldos para decodificar los tipos de particion de 4 nodos incluidos en el nivel 3 son
secuencialmente “10”, “01”, “11”, y “11, la informacion de indicacion de tipo de particion de un primer nodo del nivel 3 es 2, la informacion de indicacion de tipo de particion de un segundo nodo del nivel 3 es 3, y la informacion de indicacion de tipo de particion de un tercer nodo y un cuarto nodo del nivel 3 es 0, respectivamente.
45 [0249] Como los bits extraldos para decodificar los tipos de particion de los nodos segundo a cuarto son
secuencialmente “01”, “11”, y “11”, la informacion de indicacion de tipo de particion de un segundo nodo del nivel 2 es 3, y la informacion de indicacion de tipo de particion de un tercer nodo y un cuarto nodo del nivel 2 es 0, respectivamente.
50 [0250] Cuando las formas de los subbloques de un macrobloque se determinan usando el valor de capa
reconstruido e informacion de indicacion de tipo de particion, los numeros de capa de los subbloques dentro del macrobloque tienen valores iguales o mayores que 1, de modo que un macrobloque de 64 x 64 es dividido en 4 subbloques de tamano 32 x 32. Como los numeros de capa de los nodos primero a tercero del nivel 1 son 1, los subbloques de 32 x 32 primero a tercero dentro de macrobloque tienen uno de los tipos de subbloque 32 x 32, 32 x
55 16, 16 x 32, y 16 x 16, que estan incluidos en la capa 1, respectivamente. Como la informacion de indicacion de tipo de particion reconstruida del primer subbloque de 32 x 32 es 1, el primer subbloque de 32 x 32 es dividido en 2 subbloques de tamano 32 x 16. Como la informacion de indicacion de tipo de particion reconstruida del segundo subbloque de 32 x 32 es 0, el segundo subbloque de 32 x 32 es dividido en 1 subbloque de tamano 32 x 32. De la misma manera, como la informacion de indicacion de tipo de particion reconstruida del tercer subbloque de 32 x 32
es 2, el tercer subbloque de 32 x 32 es dividido en 2 subbloques de tamano 16 x 32.
[0251] Como un numero de capa reconstruido de un cuarto nodo del nivel 1 que corresponde a un cuarto
subbloque de 32 x 32 es 2, el cuarto subbloque de 32 x 32 es dividido en 4 subbloques de tamano 16 x 16, y los 5 subbloques de 16 x 16 que tienen un numero de capa mayor que 2 entre los subbloques de 16 x 16 divididos que corresponden a 4 nodos del nivel 2 son divididos una vez mas para que tengan una capa superior. Aqul, como un numero de capa reconstruido de un primer nodo del nivel 2 es 3, el primer subbloque de 16 x 16 es dividido de nuevo en 4 subbloques de tamano 8 x 8.
10 [0252] Despues de eso, los tipos de subbloque de los subbloques respectivos se determinan segun la
information de indication de tipo de partition de los subbloques respectivos, lo cual se ilustra en la FIG. 17.
B-2-2-3) Procedimiento 3 de decodificacion de informacion de particion
15
[0253] En lo sucesivo, se describe un procedimiento de decodificacion segun el tercer procedimiento de
codification de la informacion de particion.
20
[0254] Segun el tercer procedimiento, la informacion de particion de bloque puede ser decodificada
decodificando valores de capa de particion y banderas de particion.
[0255] En primer lugar se extraen y reconstruyen del tren de bits los valores de capa de particion y despues
un macrobloque es dividido segun el valor de capa de particion. Por ejemplo, cuando un tamano de macrobloque es
N N
N x N y el valor de capa de particion reconstruido es x, el macrobloque es dividido en subbloques de —X—.
2 x 2 x
25 [0256] Despues de eso, cuando una bandera de particion reconstruida extrayendo y reconstruyendo la
bandera de particion del tren de bits tiene un valor (por ejemplo 0) que indica que todos los subbloques de
NN
— X — dentro del macrobloque no son divididos en subbloques mas pequenos, se termina una decodificacion de
2 x 2 x
informacion de particion de macrobloque.
30 [0257] Cuando la bandera de particion tiene un valor (por ejemplo 1) que indica que uno o mas subbloques
NN
de —X — dentro del macrobloque son divididos en subbloques mas pequenos, el valor de capa de particion y las 2x 2x
banderas de particion de los subbloques respectivos se extraen y reconstruyen del tren de bits segun un orden de barrido por filas de la misma manera.
35 [0258] En lo sucesivo, se describe un procedimiento de decodificacion del aspecto de la FIG. 20. En el
aspecto de la FIG. 20, el valor de capa de particion y la bandera de particion codificados con informacion de particion en el aparato de codificacion de video son {1, 1, 0, 2, 0, 1, 1,0, 0, 0, 2, 3}.
[0259] En primer lugar se extrae del tren de bits un valor de capa de particion, y se decodifican un valor de
40 capa de particion 1 y una bandera de particion 1. Como el valor de capa de particion es 1, un macrobloque de 64 x 64 es dividido en 4 subbloques de tamano 32 x 32.
[0260] Como la bandera de particion decodificada es 1 se decodifican continuamente un valor de capa de particion y una bandera de particion para cada subbloque de 32 x 32.
45
[0261] Como un valor de capa de particion de un primer subbloque de 32 x 32 es 0, puede deducirse que el primer subbloque de 32 x 32 no es dividido en subbloques mas pequenos. En este caso, no se decodifica del tren de bits una bandera de particion.
50 [0262] Se extrae y decodifica del tren de bits un valor de capa de particion de un segundo subbloque de 32 x
32. Como el valor de capa de particion reconstruido es 2, el subbloque de 32 x 32 es dividido en 16 subbloques de tamano 8 x 8 y posteriormente se extrae y decodifica del tren de bits una bandera de particion. Como la bandera de particion reconstruida es 0, puede deducirse que los 16 subbloques dentro del segundo subbloque de 32 x 32 no son
divididos en subbloques mas pequenos y se extrae y decodifica del tren de bits un valor de capa de particion de un tercer subbloque de 32 x 32.
[0263] Como el valor de capa de particion reconstruido es 1, el subbloque de 32 x 32 es dividido en 4
5 subbloques de tamano 16 x 16 y se decodifica del tren de bits una bandera de particion. Como la bandera de particion decodificada es 1, puede deducirse que uno o mas subbloques de 16 x 16 son divididos en subbloques mas pequenos y para cada subbloque de 16 x 16 se decodifican un valor de capa de particion y una bandera de particion.
10 [0264] De la misma manera, se extrae y reconstruye del tren de bits el valor de capa de particion para cada
subbloque de 16 x 16. Despues, cuando el valor de capa de particion no es 0, se extrae y reconstruye del tren de bits una bandera de particion.
[0265] Puede deducirse del aspecto descrito anteriormente que los valores de capa de particion de los 15 subbloques de 16 x 16 primero a tercero son todos 0 y el valor de capa de particion del cuarto subbloque de 16 x 16
es 2.
[0266] Como el valor de capa de particion del cuarto subbloque de 16 x 16 es 2, el subbloque de 16 x 16 es dividido en 16 subbloques de tamano 4 x 4. Sin embargo, en este caso, una bandera de particion no se decodifica
20 porque cada subbloque de 4 x 4 no puede ser dividido en subbloques mas pequenos aunque el valor de capa reconstruido no es 0.
[0267] Despues de eso, se extrae y decodifica del tren de bits el valor de capa de particion del cuarto subbloque de 32 x 32. En este caso, como el valor de capa de particion reconstruido es 3, el subbloque de 32 x 32
25 es dividido en 64 subbloques de tamano 4 x 4, y se termina la decodificacion de informacion de particion porque un tamano de subbloque dividido es un tamano de bloque mlnimo.
[0268] El valor de capa de particion y la bandera de particion anteriormente mencionados se extraen y decodifican del tren de bits, y el valor de capa de particion se decodifica usando un procedimiento preacordado entre
30 el aparato de codificacion de video y el aparato de decodificacion de video entre diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0269] Alternativamente, el valor de capa de particion puede ser decodificado usando procedimientos tales como una codificacion aritmetica binaria, una codificacion de Huffman, etc.
35
[0270] Alternativamente, un valor de indice de una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video puede ser decodificado usando los diversos procedimientos de codificacion/decodificacion binaria anteriormente mencionados.
40 [0271] La bandera de particion se usa para determinar si el subbloque actual es dividido en subbloques mas
pequenos extrayendo y decodificando 1 bit del tren de bits.
B-2-2-4) Procedimiento 4 de decodificacion de informacion de particion.
45 [0272] En lo sucesivo, se describe un procedimiento de decodificacion segun el cuarto procedimiento de
codificacion de la informacion de particion.
[0273] El cuarto procedimiento de decodificacion de la informacion de particion es similar al primer
procedimiento de decodificacion de la informacion. Sin embargo, la informacion de indicacion de tipo de particion se 50 extrae y decodifica continuamente del tren de bits hasta que la informacion de indicacion de tipo de particion de todos los subbloques tiene un valor (por ejemplo 0) que indica que el subbloque no es dividido en subbloques mas pequenos o un tamano de un subbloque dividido del bloque actual segun la informacion de indicacion de tipo de particion es un tamano de bloque minimo.
55 [0274] En lo sucesivo, se describe un procedimiento de decodificacion segun el aspecto de las FIGS. 21 y 22.
Segun el aspecto de la FIG. 22, la informacion de indicacion de tipo de particion codificada con informacion de particion en el aparato de codificacion de video es {1, 1, 0, 0, 2, 0, 0}.
[0275] Como la informacion de indicacion de tipo de particion reconstruida en primer lugar es 1, un
macrobloque de 64 x 64 es dividido en 2 subbloques de tamano 64 x 32 (L1-P1 y L1-P1), y se extrae y reconstruye del tren de bits informacion de indicacion de tipo de particion de un primer subbloque de 64 x 32.
[0276] Como la informacion de indicacion de tipo de particion reconstruida es 1, el subbloque de 64 x 32 es 5 dividido en 2 subbloques de tamano 64 x 16 (L2-P0 y L2-P1), y se extrae y reconstruye del tren de bits informacion
de indicacion de tipo de particion de un primer subbloque de 64 x 16 (L2-P0).
[0277] Como la informacion de indicacion de tipo de particion reconstruida en tercer lugar es 0, el subbloque de 64 x 16 que corresponde al subbloque L2-P0 no es dividido en subbloques mas pequenos, y se extrae y
10 reconstruye del tren de bits informacion de indicacion de tipo de particion del subbloque L2-P1, que es un subbloque subsiguiente del subbloque L2-P0.
[0278] Como la informacion de indicacion de tipo de particion reconstruida en cuarto lugar es 0, el subbloque de 64 x 16 no es dividido en subbloques mas pequenos. Como toda la informacion de particion de los subbloques
15 incluidos en el L2 ha sido reconstruida, se extrae y reconstruye del tren de bits informacion de indicacion de tipo de particion del subbloque L1-P1.
[0279] Como la informacion de indicacion de tipo de particion reconstruida en quinto lugar es 2, el subbloque de 64 x 32 que corresponde al subbloque L1-P1 es dividido en 2 subbloques de tamano 32 x 32 (L2-P0 y L2-P1), y
20 se extrae y reconstruye del tren de bits informacion de indicacion de tipo de particion de un primer subbloque de 32 x 32 (L2-P0).
[0280] Como la informacion de indicacion de tipo de particion reconstruida en sexto lugar es 0, el subbloque de 32 x 32 que corresponde al subbloque L2-P0 no es dividido en subbloques mas pequenos, y P0 se extrae y
25 reconstruye del tren de bits informacion de indicacion de tipo de particion del subbloque L2-P1, que es un subbloque subsiguiente del subbloque L2-.
[0281] Como la informacion de indicacion de tipo de particion reconstruida en septimo lugar es 0, el subbloque de 32 x 32 que corresponde al subbloque L2-P1 no es dividido en subbloques mas pequenos. Como los
30 tipos de bloque de todos los subbloques dentro del macrobloque han sido determinados, se termina la decodificacion de informacion de particion.
[0282] En este caso, la informacion de indicacion de tipo de particion se decodifica por entropla por un procedimiento preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video entre
35 procedimientos de codificacion/decodificacion de compresion sin perdidas tales como una codificacion aritmetica binaria, una codificacion de Huffman, etc.
[0283] Ademas, un valor de informacion de indicacion de particion real puede ser decodificado usando
diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, codigo de 40 Golomb exponencial, etc.
[0284] Ademas, el aparato de decodificacion de video lleva a cabo una decodificacion de entropia usando las
Tablas 1 y 2 segun los numeros de capa de la informacion de indicacion de tipo de particion cuando el aparato de codificacion de video usa una codificacion aritmetica binaria, usa la Tabla 1 en un caso en el que un numero de capa
, ( N
45 es igual o menor que log21 — I, y usa la Tabla 2 en un caso en el que el numero de capa es mayor que
V16 J
, ( N ^
l0g21 — J como el procedimiento de codificacion de informacion de indicacion de tipo de particion.
[0285] Por ejemplo, cuando la informacion de indicacion de tipo de particion incluida en una capa 1 se decodifica por entropia para un macrobloque de 64 x 64, 2 bits se decodifican por entropia y despues se obtiene la
50 informacion de indicacion de tipo de particion usando la Tabla 1.
[0286] Cuando la informacion de indicacion de tipo de particion incluida en una capa 3 se decodifica por entropia para el macrobloque de 64 x 64, se usa la Tabla 2. En primer lugar, 1 bit se decodifica por entropia. Despues, cuando un bit binario decodificado es 1, la informacion de indicacion de tipo de particion se establece en 0
y se termina una decodificacion de entropla de informacion de indicacion de tipo de particion del subbloque actual. Cuando el bit binario decodificado no es 1, se decodifica por entropla nuevamente 1 bit del tren de bits. Cuando un bit decodificado en segundo lugar es 0, la informacion de indicacion de tipo de particion del subbloque actual se establece en 1 y se termina una decodificacion de entropla para la informacion de indicacion de tipo de particion del 5 subbloque actual. Cuando el bit decodificado en segundo lugar es 1, se decodifica por entropla nuevamente 1 bit del tren de bits y se determina si la informacion de indicacion de tipo de particion del subbloque actual es 2 o 3 usando la Tabla 2.
[0287] Ademas, cuando se preacuerda entre el aparato de codificacion de video y el aparato de 10 decodificacion de video que se usan tipos de particion segun otro aspecto de la presente descripcion mostrado en la
FIG. 34, puede determinarse si el subbloque actual es dividido en 4 subbloques decodificando por entropia 1 bit para la decodificacion de informacion de indicacion de tipo de particion.
B-2-3) Diagrama de flujo de decodificacion 15
[0288] La FIG. 25 es un diagrama de flujo para ilustrar un procedimiento de decodificacion de video segun otro aspecto de la presente descripcion.
[0289] Segun el procedimiento de decodificacion de video segun otro aspecto de la presente descripcion, el 20 aparato de decodificacion de video 2400 reconstruye la informacion de particion de un bloque actual decodificando
los datos de informacion de particion del tren de bits usando los procedimientos de decodificacion segun los aspectos anteriormente mencionados en la etapa S2510, y reconstruye el bloque actual dividido en una pluralidad de subbloques llevando a cabo una codificacion predictiva sobre datos de imagen codificados extraldos del tren de bits segun la informacion de particion del bloque actual reconstruido en la etapa S2520.
25
[0290] Tal como se describe anteriormente, segun otro aspecto de la presente descripcion, incluso cuando un macrobloque que tiene un tamano de bloque igual o mayor que un tamano 16 x 16 es dividido en diversos tamanos de subbloques, la eficiencia de compresion puede mejorarse codificando la informacion de particion de macrobloque con el pequeno numero de bits usando un tipo de particion para cada capa o un valor de capa de particion.
30
C) Codificacion y decodificacion de informacion de capa de particion maxima
[0291] En lo sucesivo, como otro aspecto de la presente descripcion, se describen un aparato y un procedimiento para determinar una capa de particion maxima que indica el numero de capas mediante lo cual un
35 macrobloque que tiene un tamano arbitrario puede ser dividido al maximo con el fin de distribuir eficientemente la informacion, dividiendo el macrobloque en una pluralidad de subbloques para la prediccion o la transformada usando la capa de particion maxima determinada, y despues codificar y decodificar eficientemente la informacion de particion usando la capa de particion maxima. Aqui, un tamano de subbloque mlnimo disponible dentro del macrobloque puede determinarse mediante la capa de particion maxima, y una imagen se codifica usando solo 40 subbloques que tienen un tamano igual o mayor que un tamano correspondiente al codificar el macrobloque.
[0292] La capa de particion maxima puede ser informacion que indica un tamano de subbloque mlnimo que puede usarse para la prediccion o la transformada y codificada en el encabezamiento de secuencia, el encabezamiento de cada cuadro, el encabezamiento de sector, o el encabezamiento de macrobloque. Ademas, la
45 informacion de capa de particion maxima para la prediccion y la informacion de capa de particion maxima para la transformada pueden codificarse, respectivamente.
[0293] Ademas, la informacion de particion puede ser informacion que indica tamanos y formas de subbloques divididos para la prediccion o la transformada. La informacion de particion y los datos de imagen
50 codificados se incluyen y se codifican en el tren de bits, y despues transmitidos al aparato de decodificacion de video. Ademas, la informacion de particion para la prediccion y la informacion de particion para la transformada pueden codificarse, respectivamente.
[0294] En la decodificacion, los tamanos y las formas de los subbloques se reconstruyen extrayendo y 55 decodificando del tren de bits datos de capa de particion maxima y despues extrayendo y decodificando informacion
de particion de los subbloques para la prediccion o la transformada usando la capa de particion maxima reconstruida. Despues de eso, se reconstruye una imagen mediante la prediccion o la transformada inversa extrayendo y reconstruyendo del tren de bits datos codificados de subbloques respectivos.
C-1) Aparato de codificacion de video C-1-1) Aparato de codificacion
5 [0295] La FIG. 26 es un diagrama de bloques esquematico para ilustrar un aparato de codificacion de video
segun otro aspecto mas de la presente descripcion.
[0296] El aparato de codificacion de video 2600 segun otro aspecto mas de la presente descripcion puede incluir un codificador de video 2610, un determinador de capa de particion maxima 2620, y un codificador de capa de
10 particion maxima 2630.
[0297] El codificador de video 2610 puede implementarse como el aparato de codificacion de video 800 segun un aspecto de la presente descripcion descrito a traves de la FIG. 8. Es decir, el codificador de video 2610 genera informacion de particion codificada y datos de imagen llevando a cabo una codificacion predictiva usando
15 subbloques segun tipos de particion predeterminados de un macrobloque. En este caso, el codificador de video 2610 puede determinar tipos de particion usando un tamano de subbloque minimo segun un valor de capa de particion maxima determinado por el determinador de capa de particion maxima 2620 al determinar los tipos de particion del macrobloque. Ademas, el codificador de video 2610 codifica la informacion de particion usando una capa de particion maxima al codificar la informacion de particion.
20
[0298] El determinador de capa de particion maxima 2620 determina un tipo de particion de un bloque actual usando un tamano de subbloque minimo segun los candidatos a valor de capa de particion maxima, y determina un valor de capa de particion maxima del bloque actual usando un coste de codificacion generado en una codificacion. En este caso, un tipo de particion del bloque actual se determina usando el tamano de subbloque minimo segun los
25 candidatos a valor de capa de particion maxima, y el coste de codificacion generado en la codificacion puede ser calculado por el propio determinador de capa de particion maxima 2620. Sin embargo, si el determinador de capa de particion maxima 2620 designa los candidatos a valor de capa de particion maxima, el codificador de video 2610 determina el tipo de particion del bloque actual usando el tamano de subbloque minimo segun un candidato a valor de capa de particion correspondiente, calcula los costes de codificacion generados en la codificacion para transmitir 30 los costes de codificacion al determinador de capa de particion maxima 2620. Despues, el determinador de capa de particion maxima 2620 puede determinar el valor de capa de particion maxima del bloque actual usando los costes de codificacion transmitidos. Una vez que se determina el valor de capa de particion maxima del bloque actual, el codificador de video 2610 incluye una imagen ya codificada dentro del valor de capa de particion maxima correspondiente en el tren de bits. En la siguiente descripcion se analizara en detalle un procedimiento en el cual el 35 determinador de capa de particion maxima 2620 determina el valor de capa de particion maxima y determina en consecuencia el tamano de subbloque minimo.
[0299] El codificador de capa de particion maxima 2630 genera datos de capa de particion maxima codificados codificando el valor de capa de particion maxima, e incluye los datos generados en el tren de bits.
40
C-1-2) Relacion entre capa de particion y tamano de subbloque minimo
[0300] El tamano de macrobloque, el tamano de subbloque minimo, y la capa de particion maxima (MaxLayer) que corresponden a un valor de capa, que puede usarse al maximo, pueden establecerse usando unos y
45 otros.
[0301] Es decir, el tamano de macrobloque puede obtenerse usando la capa de particion maxima (MaxLayer) y el tamano de bloque minimo, y el tamano de subbloque minimo puede obtenerse usando el tamano de macrobloque y la capa de particion maxima.
50
[0302] Cuando el tamano de subbloque minimo es N x N, el tamano de bloque maximo es (Nx2 MaxLayer)x(Nx2 MaxLayer). En un caso del macrobloque de un pixel de N x N, el tamano de bloque minimo es (N/2 MaxLayer)) x (N/(2 MaxLayer)).
55 [0303] La FIG. 27 es un diagrama ejemplar para ilustrar la relacion entre la capa de particion y el tamano de
subbloque minimo segun otro aspecto mas de la presente descripcion.
[0304] Haciendo referencia a la FIG. 27, cuando un tamano de macrobloque es M x N y un valor de capa de
5
10
N N
particion es x, un tamano de subbloque mlnimo disponible es —X —
2x 2x
Por ejemplo, cuando un valor de capa de
particion de un macrobloque que tiene un tamano de bloque de 64 x 64, un tamano de subbloque mlnimo disponible es 4 x 4. Aqul, el valor de capa de particion se aplica de manera diferente para una anchura y una altura es decir, M y N del macrobloque que tiene el tamano de bloque de M x N.
[0305] Por consiguiente, el determinador de capa de particion maxima 2620 puede determinar un tamano de
subbloque mlnimo determinando un valor de capa de particion maxima para el macrobloque. Con este proposito, el determinador de capa de particion maxima 2620 calcular los costes de codificacion para los valores de capa de particion candidatos y puede determinar un valor de capa maxima usando los costes de codificacion para los valores de capa de particion candidatos. En lo sucesivo, se describe un procedimiento de determinacion de un valor de capa de particion maxima para el macrobloque basandose en la suposicion de que un tamano de macrobloque es M x N (M es un numero entero igual o mayor que 16).
C-1-3) Procedimiento de determinacion de capa de particion maxima 15
[0306] La FIG. 28 es un diagrama de flujo para ilustrar un ejemplo de un procedimiento de determinacion de
un valor de capa de particion maxima segun otro aspecto mas de la presente descripcion.
[0307] El determinador de capa de particion maxima 2620 establece un valor inicial de x, que es un candidato 20 a valor de capa de particion maxima, en log2(M/16) en la etapa S2810, determina un tipo de particion del
macrobloque usando un tamano de subbloque mlnimo (M/2x) x (M/2x) cuando el candidato a valor de capa de particion maxima es x y calcula los costes de codificacion (en lo sucesivo, denominados “xcost”) cuando una trama (trama arbitraria) de una imagen se codifica segun el tipo de particion determinado en la etapa S2820, determina un tipo de particion del macrobloque usando un tamano de subbloque mlnimo (M/2x+1) x (M/2x+1) cuando el candidato a 25 valor de capa de particion maxima es x+1 y calcula los costes de codificacion (en lo sucesivo, denominados “x+1 cost”) cuando la trama arbitraria se codifica en la etapa S2830, y compara xcost y x+1 cost para determinar si xcost es menor que x+1 cost en la etapa S2840.
[0308] Como resultado de la determinacion de la etapa S2840, cuando xcost es menor que x+1 cost, el 30 determinador de capa de particion maxima 2620 determina x como el valor de capa de particion maxima en la etapa
S2850. Como resultado de la determinacion de la etapa S2840, cuando xcost es igual o mayor que x+1cost, el determinador de capa de particion maxima 2620 determina si x+1 es log2(M/4) en la etapa S2860. Cuando x+1 no es log2(M/4), el determinador de capa de particion maxima 2620 establece x en x+1 en la etapa S2870 y pasa a la etapa S2820. Cuando x+1 es log2(M/4), el determinador de capa de particion maxima 2620 determina x+1 como el 35 valor de capa de particion maxima en la etapa S2880.
[0309] La FIG. 29 es un diagrama de flujo para ilustrar otro ejemplo del procedimiento de determinacion del
valor de capa de particion maxima segun otro aspecto de la presente descripcion.
40 [0310] El determinador de capa de particion maxima 2620 establece un valor inicial de x, que es un candidato
a valor de capa de particion maxima, en log2(M/16) en la etapa S2910, determina un tipo de particion del macrobloque usando un tamano de subbloque mlnimo (M/2x)x(M/2x) cuando el candidato a valor de capa de particion maxima es x y calcula los costes de codificacion (en lo sucesivo, denominados “xcost”) cuando una trama (trama arbitraria) de una imagen se codifica segun el tipo de particion determinado en la etapa S2920, determina un
45 tipo de particion del macrobloque usando un tamano de subbloque mlnimo (M/2x+1) x (M/2x+1) cuando el candidato a valor de capa de particion maxima es x+1 y calcula los costes de codificacion (en lo sucesivo, denominados “x+1 cost”) cuando la trama arbitraria se codifica en la etapa S2930, y compara xcost y x+1 cost para determinar si xcost es menor que x+1 cost en la etapa S2940.
50 [0311] Como resultado de la determinacion de la etapa S2940, cuando xcost es igual o mayor que x-1 cost, el
determinador de capa de particion maxima 2620 establece x en x-1 y pasa a la etapa S2920. Cuando xcost es menor que x-1 cost, el determinador de capa de particion maxima 2620 determina x como el valor de capa de particion maxima en la etapa S2960.
55 [0312] El determinado de capa de particion maxima 2620 puede determinar el valor de capa de particion
maxima usando no solo los procedimientos descritos a traves de las FIGS. 28 y 29 sino tambien otros procedimientos. Es decir, como otro ejemplo mas de determinacion del valor de capa de particion maxima, el
determinador de capa de particion maxima 2620 calcula un coste de codificacion para cada candidato a valor de capa de particion maxima disponible para el macrobloque y puede determinar un candidato a valor de capa de particion maxima que tiene un coste de codificacion mas pequeno como el valor de capa de particion maxima comparando entre si los costes de codificacion calculados.
5
C-1-4) Procedimiento de codificacion de informacion de particion
[0313] En lo sucesivo, se describe un procedimiento de codificacion de informacion de particion usando el valor de capa de particion maxima segun otro aspecto mas de la presente description.
10
[0314] Tal como se describe anteriormente, una vez que se determina el valor de capa de particion maxima, que indica el numero total de capas, se determinan las capas de particion disponibles en el macrobloque. Sin embargo, pueden existir capas que no se usan en las capas de particion disponibles determinadas. En este caso, puede ser necesario codificar la informacion de indication de tipo de particion para las capas que no se usan.
15
[0315] Por lo tanto, segun otro aspecto mas de la presente descripcion, en el tren de bits puede incluirse informacion sobre las capas de particion seleccionadas que han de usarse entre las capas de particion disponibles determinadas por el valor de capa de particion maxima, y la informacion de particion del bloque actual puede codificarse usando solo las capas de particion seleccionadas cuando la informacion sobre si las capas respectivas
20 estan disponibles se transmite al tren de bits. En el procedimiento de codificacion de informacion de particion de bloque, pueden usarse los diversos procedimientos de codificacion de informacion de particion anteriormente mencionados.
[0316] Cuando un tamano de macrobloque es 64 x 64 y un valor de capa de particion maxima es 2, las capas 25 0 y 1 son capas disponibles y las capas 2 y 3 son capas no disponibles. Por consiguiente, el macrobloque puede ser
dividido en subbloques de tamanos 64 x 64, 64 x 32, 32 x 64, y 32 x 32, que corresponden a un tipo de subbloque incluido en la capa 0, y subbloques de tamanos 32 x 32, 32 x 16, 16 x 32, y 16 x 16, que corresponden a un tipo de subbloque incluido en la capa 1. Sin embargo, el macrobloque no puede ser dividido en subbloques de tamanos 16 x 8, 8 x 16, 8 x 8, 8 x 4, 4 x 8, y 4 x 4, que corresponden a tipos de subbloque incluidos en las capas 2 y 3. Es decir, 30 los subbloques de 16 x 16 respectivos no pueden ser divididos en subbloques mas pequenos.
[0317] En este caso, el numero de bits requeridos para una codificacion de informacion de particion puede reducirse transmitiendo el valor de capa de particion maxima al tren de bits y usando el valor de capa de particion maxima. El aparato de decodificacion de video extrae y reconstruye del tren de bits el valor de capa de particion
35 maxima, establece todas las capas superiores de la capa de particion maxima reconstruida como capas disponibles, y establece las capas inferiores de la capa de particion maxima reconstruida como capas no disponibles. Despues, el aparato de decodificacion de video decodifica la informacion de particion usando la informacion establecida.
[0318] Alternativamente, cuando los tipos de subbloques incluidos en una capa especlfica no se usan, un 40 macrobloque de, por ejemplo, tamano 64 x 64 es dividido en 4 subbloques de tamano 32 x 32. Cuando todos los
subbloques de 32 x 32 respectivos son divididos en subbloques que tienen un tamano igual o menor que un tamano de 16 x 16, puede deducirse que los tipos de subbloque de los subbloques incluidos en la capa 1 no se usan, y la capa 1 puede seleccionarse como la capa no disponible.
45 [0319] En este caso, es posible reducir el numero de bits requeridos para la codificacion de informacion de
particion codificando la informacion sobre si las capas respectivas estan disponibles dentro del tren de bits. El aparato de decodificacion de video extrae y reconstruye del tren de bits informacion sobre si las capas respectivas estan disponibles, y despues decodifica la informacion de particion usando la informacion reconstruida sobre si las capas respectivas estan disponibles.
50
[0320] Tal como se describe anteriormente, segun otro aspecto mas de la presente descripcion, la
informacion de particion puede codificarse codificando el valor de capa de particion maxima dentro del tren de bits y usando solo las capas de particion disponibles determinadas por el valor de capa de particion maxima.
55 [0321] Alternativamente, la informacion de particion puede codificarse incluyendo y codificando informacion
sobre si las capas respectivas estan disponibles entre las capas de particion disponibles determinadas por el valor de capa de particion maxima dentro del tren de bits y usando solo las capas de particion disponibles.
[0322] El valor de capa de particion maxima y/o la informacion de bandera sobre si las capas de particion
respectivas estan disponibles puede incluirse y codificarse en el encabezamiento de secuencia, el encabezamiento de cada cuadro, o el encabezamiento de sector.
[0323] En este caso, el valor de capa de particion maxima puede codificarse usando una codificacion de 5 compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de Huffman, etc., y diversos
procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0324] En el procedimiento de codificacion, la informacion que indica si las capas respectivas estan
10 disponibles, una bandera que tiene una longitud de 1 bit que indica si cada capa esta disponible, puede codificarse
usando procedimientos tales como una codificacion aritmetica binaria, una codificacion de Huffman, etc.
[0325] Alternativamente, puede codificarse un Indice de una tabla en la cual esta dispuesta informacion que indica si las capas respectivas estan disponibles. En este caso, el Indice de la tabla puede codificarse usando
15 diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0326] Alternativamente, una bandera de capa para una capa usada se establece en 1, una bandera de capa
para una capa no usada se establece en 0, y un valor entero que permite que un bit menos significativo (LSB)
20 indique si esta disponible una capa mas alta. Despues, el valor entero generado puede codificarse usando diversos
procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0327] Ademas, el valor entero puede generarse estableciendo una bandera de capa para una capa usada en 25 0, una bandera de capa para una capa no usada en 1, y permitiendo que el bit menos significativo (LSB) indique si la
capa mas alta esta disponible.
[0328] La FIG. 30 es un diagrama ejemplar para ilustrar un proceso de codificacion de informacion de particion del bloque actual usando solo capas de particion seleccionadas segun otro aspecto mas de la presente
30 descripcion. La FIG. 30 ilustra un ejemplo de codificacion de informacion de particion del bloque codificando la capa de particion maxima y/o informacion que indica si las capas respectivas estan disponibles, codificando el valor y datos de capa de particion maxima (bandera de capa) que indican si las capas respectivas estan disponibles usando la informacion a traves de diversos procedimientos de codificacion de informacion de particion, y despues codificando la informacion de indication de tipo de particion usando la informacion.
35
[0329] En la FIG. 30, cuando se supone que un tamano de macrobloque es 64 x 64, una capa de particion maxima es 4, la capas 0 y 3 estan disponibles, y las capas 1 y 2 no estan disponibles, el macrobloque puede ser dividido en subbloques de tamanos 64 x 64, 64 x 32, 32 x 64, y 32 x 32, que corresponden a un tipo de subbloque incluido en la capa 1. Cuando el macrobloque es dividido en subbloques de tamano 32 x 32, cada subbloque de 32 x
40 32 pueden ser dividido en subbloques de tamanos 8 x 8, 8 x 4, 4 x 8, y 4 x 4, que corresponden a un tipo de subbloque incluido en la capa 3. Es decir, cuando el subbloque de 32 x 32 es dividido segun la informacion de indicacion de tipo de particion mostrada en la FIG. 10, el subbloque de 32 x 32 es dividido en 16 subbloques de tamano 8 x 8.
45 [0330] Despues de que un valor de capa de particion maxima 4 se codifica en primer lugar usando el
procedimiento anteriormente mencionado de codificacion del valor de capa de particion maxima, una bandera de capa para una capa usada se establece en 1, una bandera de capa para una capa no usada se establece en 0, y se codifica una bandera de 1 bit que indica si cada capa esta disponible. Segun el aspecto de la FIG. 30, una bandera de capa disponible se codifica dentro de “1001” desde una capa superior hasta una capa inferior.
50
[0331] Despues de eso, la informacion de particion de macrobloque se codifica usando los diversos procedimientos de codificacion de informacion de particion anteriormente mencionados. El aspecto de la FIG. 30 muestra un procedimiento que usa el procedimiento de codificacion de informacion de indicacion de tipo de particion, que es el primer procedimiento entre los procedimientos de codificacion de informacion de particion, basado en los
55 tipos de subbloque mostrados en la FIG. 10.
[0332] Aqul, cuando un bloque de N x N de un numero de capa K es dividido en 4 subbloques, un procedimiento de asignacion de un numero de capa a los subbloques divididos es diferente dependiendo de si las capas respectivas estan disponibles. Si una capa K+1 esta disponible, se asigna un numero de capa K+1 a los
subbloques. Si la capa K+1 no esta disponible, se asigna el numero de capa K a los subbloques.
[0333] Por ejemplo, cuando un tamano de macrobloque es 64 x 64, puede determinarse un subbloque de 32 x 32 como un tipo de subbloque incluido en una capa 0 o determinarse como un tipo de subbloque incluido en una
5 capa 1. En este caso, cuando la capa 1 es una capa disponible, al subbloque de 32 x 32 se le asigna un numero de capa 1. Cuando la capa 1 no esta disponible, al subbloque de 32 x 32 se le asigna un numero de capa 0.
[0334] Como el macrobloque es dividido en 4 subbloques, en primer lugar se codifica la information de indication de tipo de partition 3 y se codifica la informacion de indication de tipo de partition de los 4 subbloques de
10 tamano 32 x 32.
[0335] Como un primer subbloque de 32 x 32 (L0-P0) no es dividido, se codifica la informacion de indicacion de tipo de particion 0, y se codifica la informacion de indicacion de tipo de particion de un segundo subbloque de 32 x 32 (L0-P1).
15
[0336] Como el segundo subbloque de 32 x 32 (L0-P1) es dividido en 16 subbloques de tamano 8 x 8 (L2-P0 a L2-P14), se codifica la informacion de indicacion de tipo de particion 3. Aqul, el subbloque de 8 x 8 puede ser un bloque de 8 x 8 incluido en una capa 2 y/o puede ser un subbloque incluido en la capa 3, y se asigna un numero de capa 3 porque la capa 2 no esta disponible.
20
[0337] Despues de eso, se codifica toda la informacion de indicacion de tipo de particion de los 16 subbloques de tamano 8 x 8 dentro del subbloque L0-P0, y se codifica la informacion de indicacion de tipo de particion de un tercer subbloque de 32 x 32 (L0-P2).
25 [0338] Como el tercer subbloque de 32 x 32 (L0-P2) es dividido en 16 subbloques de tamano 8 x 8 (L2-P0 a
L2-P15), se codifica la informacion de indicacion de tipo de particion 3, se codifica toda la informacion de indicacion de tipo de particion de los 16 subbloques de tamano 8 x 8 dentro del subbloque L0-P2, y se codifica la informacion de indicacion de tipo de particion 0 de un cuarto subbloque de 32 x 32 (L0-P2).
30 [0339] Por consiguiente, el aparato de codification de video 2600 segun otro aspecto mas de la presente
description puede codificar informacion de particion de un macrobloque correspondiente codificando banderas de capa e informacion de indicacion de tipo de particion para numeros de particion para capas respectivas.
C-1-5) Diagrama de flujo de codificacion 35
[0340] La FIG. 31 es un diagrama de flujo para ilustrar un procedimiento de codificacion de video segun otro aspecto mas de la presente descripcion.
[0341] Segun el procedimiento de codificacion de video segun otro aspecto mas de la presente descripcion, 40 el aparato de codificacion de video 2600 genera una capa de particion maxima y/o datos que indican si estan
disponibles capas de particion respectivas determinando y codificando un valor de capa de particion maxima y/o informacion que indica si las capas de particion respectivas estan disponibles en la etapa S3110, llevando a cabo una codificacion predictiva sobre un bloque actual usando un tamano de subbloque mlnimo determinado segun un valor de capa de particion maxima y subbloques determinados segun si las capas respectivas estan disponibles en 45 la etapa S3120, y genera una capa de particion maxima codificada y/o un tren de bits que incluye datos que indican si estan disponibles capas respectivas y datos de imagen codificados en la etapa S3130. El tren de bits generado tal como se describe anteriormente se transmite al aparato de decodificacion de video y se decodifica.
[0342] El aparato de codificacion de video 2600 puede determinar un valor de capa de particion maxima 50 usando los costes de codificacion para los candidatos a valor de capa de particion maxima en la etapa S3110. El
aparato de codificacion de video 2600 puede determinar el valor de capa de particion maxima aumentando o disminuyendo los valores de los candidatos a valor de capa de particion maxima. Ademas, el aparato de codificacion de video 2600 puede determinar un candidato a valor de capa de particion maxima que tiene el coste de codificacion mas pequeno como el valor de capa de particion maxima comparando los costes de codificacion de los candidatos a 55 valor de capa de particion maxima respectivos.
C-2) Decodificador
C-2-1) Diagrama de bloques y descripcion del aparato de decodificacion de video
[0343] La FIG. 32 es un diagrama de bloques esquematico para ilustrar un aparato de decodificacion de
video segun otro aspecto mas de la presente descripcion.
5 [0344] El aparato de decodificacion de video 3200 segun otro aspecto mas de la presente descripcion puede
incluir un decodificador de capa de particion maxima 3210 y un decodificador de video 3220.
[0345] El decodificador de capa de particion maxima 3210 decodifica los datos de capa de particion maxima codificados extraidos del tren de bits para reconstruir un valor de capa de particion maxima.
10
[0346] El decodificador de video 2420 puede estar construido igualmente o de manera similar al aparato de decodificacion de video segun un aspecto de la presente descripcion descrito con referencia a la FIG. 7. Sin embargo, el decodificador de video 3220 segun otro aspecto mas de la presente descripcion lleva a cabo una decodificacion predictiva sobre los datos de imagen codificados extraidos del tren de bits usando un tamano de
15 subbloque minimo basandose en el valor de capa de particion maxima reconstruido por el decodificador de capa de particion maxima 3210, para reconstruir un bloque actual.
C-2-2) Procedimiento de decodificacion de informacion de particion
20 [0347] En lo sucesivo, se describe un procedimiento de decodificacion de informacion de particion usando un
valor de capa de particion maxima segun otro aspecto mas de la presente descripcion.
[0348] El aparato de decodificacion de video extrae una capa de particion maxima que representa el numero
total de capas y/o datos que indican si cada capa esta disponible desde una posicion preacordada entre el aparato
25 de decodificacion de video y el aparato de codificacion de video entre un encabezamiento de secuencia, un encabezamiento de cada cuadro, o un encabezamiento de sector del tren de bits, y despues decodifica la informacion de particion de cada bloque usando la informacion extraida mediante los diversos procedimientos de decodificacion de informacion de particion.
30 [0349] En un procedimiento de decodificacion de la capa de particion maxima y/o la informacion sobre las
capas disponibles, en primer lugar se extraen y decodifican del tren de bits datos de capa de particion maxima, y datos que indican si cada capa esta disponible, tipos de subbloque disponibles, y un tamano de subbloque minimo segun los datos que indican si cada capa esta disponible se extraen usando el valor de capa de particion maxima decodificado. Por ejemplo, cuando un tamano de macrobloque es 64 x 64 y un valor de capa de particion maxima
35 extraido y reconstruido del tren de bits es 3, las capas 0, 1, y 2 se establecen como capas disponibles y una capa 3 se establece como una capa no disponible. El macrobloque puede ser dividido en subbloques de tamanos 64 x 64, 64 x 32, 32 x 64, y 32 x 32, que corresponden a un tipo de subbloque incluido en la capa 0, subbloques de tamanos 32 x 32, 32 x 16, 16 x 32, y 16 x 16, que corresponden a un tipo de subbloque incluido en la capa 1, y subbloques de tamanos 16 x 16, 16 x 8, 8 x 16, y 8 x 8, que corresponden a un tipo de subbloque incluido en la capa 2. Sin
40 embargo, el macrobloque no puede ser dividido en subbloques de tamanos 8 x 4, 4 x 8, y 4 x 4, que corresponden a un tipo de subbloque incluido en la capa 3. Es decir, los bloques de 8 x 8 respectivos no pueden ser divididos en subbloques mas pequenos. En este caso, un tamano de subbloque minimo disponible se determina como un tamano 8 x 8.
45 [0350] Alternativamente, despues de extraerse y reconstruirse del tren de bits los datos de capa de particion
maxima, se extraen y decodifican del tren de bits los datos que indican si cada capa esta disponible, que corresponden al numero de capas determinadas por el valor de capa de particion maxima reconstruido. Despues, los tipos de subbloque disponibles y un tamano de subbloque minimo se extraen segun el valor de capa de particion maxima reconstruido y la disponibilidad de cada capa.
50
[0351] Por ejemplo, cuando un tamano de macrobloque es 64 x 64 y un valor de capa de particion maxima
extraido y reconstruido del tren de bits es 3, se extraen y decodifican del tren de bits datos que indican si estan disponibles 3 capas. Cuando los datos reconstruidos que indican si cada capa esta disponible significan que las capas 0 y 2 estan disponibles y la capa 1 no esta disponible, el macrobloque puede ser dividido en subbloques de
55 tamanos 64 x 64, 64 x 32, 32 x 64, y 32 x 32, que corresponden a un tipo de subbloque incluido en la capa 0, y subbloques de tamanos 16 x 16, 16 x 8, 8 x 16, y 8 x 8, que corresponden a un tipo de subbloque incluido en la capa 2. Sin embargo, el macrobloque no puede ser dividido en subbloques de tamanos 32 x 32, 32 x 16, 16 x 32, y 16 x 16, que corresponden a un tipo de subbloque incluido en la capa 1, y subbloques de tamanos 8 x 4, 4 x 8, y 4 x 4, que corresponden a un tipo de subbloque incluido en la capa 3.
[0352] Alternativamente, el aparato de decodificacion de video determina un valor de capa de partition maxima usando un tamano de subbloque mlnimo y un tamano de macrobloque preacordado entre el aparato de decodificacion de video y el aparato de codification de video y extrae y decodifica del tren de bits datos que indican
5 si las capas respectivas estan disponibles, que corresponden al numero de capas determinado por el valor de capa de particion maxima, para determinar los tipos de subbloque disponibles segun los datos reconstruidos que indican si las capas respectivas estan disponibles. Por ejemplo, cuando el tamano de macrobloque preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video es 32 x 32 y el tamano de subbloque minimo es 8 x 8, el numero de capas de particion maximas es 2. Por consiguiente, se extraen y decodifican del tren 10 de bits los datos que indican si las 2 capas estan disponibles. Cuando los datos reconstruidos que indican si las capas respectivas estan disponibles significan que la capa 0 no esta disponible y la capa 1 esta disponible, el macrobloque puede tener solo tipos de bloque de 16 x 16, 16 x 8, 8 x 16, y 8 x 8, que corresponden a tipos de subbloque incluidos en la capa 1. Por lo tanto, al decodificar la information de particion del macrobloque, el macrobloque es dividido en 4 subbloques de tamano 16 x 16 y solo se extrae y decodifica del tren de bits cada 15 informacion de particion de 16 x 16.
[0353] En este caso, el valor de capa de particion maxima puede ser decodificado usando un procedimiento preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video entre procedimientos tales como una codificacion aritmetica binaria, una codificacion de Huffman, etc.
20
[0354] Alternativamente, el valor de capa de particion maxima puede ser decodificado usando procedimientos tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0355] En un procedimiento de decodificacion de informacion que indica si cada capa esta disponible, los 25 datos que indican si cada capa esta disponible pueden decodificarse usando un procedimiento preacordado entre el
aparato de codificacion de video y el aparato de decodificacion de video entre procedimientos tales como una codificacion aritmetica binaria, una codificacion de Huffman, etc.
[0356] Alternativamente, un indice de una tabla que muestra si se usan las capas respectivas se decodifica 30 usando procedimientos tales como un codigo unario, codigo unario truncado, un codigo de Golomb exponencial,
etc., y un hecho que indica si se usan las capas respectivas puede extraerse usando una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video.
[0357] Alternativamente, un valor entero se decodifica usando procedimientos tales como un codigo unario, 35 codigo unario truncado, un codigo de Golomb exponencial, etc., y el valor entero decodificado puede ser
decodificado representando el valor entero en un bit binario que tiene un valor de capa de particion maxima como el numero de bits.
[0358] En lo sucesivo, se describe un procedimiento de decodificacion segun un aspecto de la FIG. 30.
40
[0359] Segun el aspecto anteriormente mencionado de la FIG. 30, en los datos codificados con informacion de particion en el aparato de codificacion de video, la informacion de particion maxima es 4, una bandera de capa que indica si se usan las capas respectivas es “1001”, y la informacion de indication de tipo de particion es {3 0, 3, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0, 0, 0, 0}.
45
[0360] El aparato de decodificacion de video extrae y decodifica del tren de bits datos de capa de particion maxima, y reconstruye un valor de capa de particion maxima 4. Como la capa de particion maxima es 4, se reconstruye una bandera (bandera de capa) que indica si estan disponibles 4 capas. Layer_Flag de la capa 0 se decodifica extrayendo y decodificando 1 bit del tren de bits. Despues de reconstruirse una bandera que indica si la
50 capa 0 esta disponible, se extrae y decodifica del tren de bits la Layer_Flag de las capas 1, 2, y 3 de la misma manera. Como la Layer_Flag de la capa 0 es 1, la Layer_Flag reconstruida de la capa 1 es 0, la Layer_Flag reconstruida de la capa 1 es 0, la Layer_Flag reconstruida de la capa 2 es 0, y la Layer_Flag reconstruida de la capa 3 es 1, las capas 0 y 3 se establecen como capas disponibles y las capas 1 y 2 se establecen como capas no disponibles. Despues, la informacion se usa para decodificar la informacion de particion del macrobloque.
55
[0361] Como la informacion de indicacion de tipo de particion reconstruida en primer lugar es 3, el macrobloque es dividido en 4 subbloques de tamano 32 x 32, y se extrae y decodifica del tren de bits informacion de indicacion de tipo de particion de cada subbloque de 32 x 32.
[0362] Aqul, cuando un bloque de N x N de un numero de capa K es dividido en 4 subbloques, un procedimiento de asignacion de un numero de capa a los subbloques divididos es diferente dependiendo de si las capas respectivas estan disponibles. Si una capa K+1 esta disponible, se asigna un numero de capa K+1 a los subbloques. Si la capa K+1 no esta disponible, se asigna el numero de capa K a los subbloques.
5
[0363] Segun el aspecto de la FIG. 30, los subbloques de 32 x 32 divididos del macrobloque corresponden a un tipo de subbloque que puede incluirse tanto en la capa 0 como en la capa 1, pero un numero de capa del subbloque de 32 x 32 es 0 porque la capa 1 no esta disponible.
10 [0364] Como la informacion de indicacion de tipo de particion reconstruida en segundo lugar es 0, un tipo de
subbloque de un primer subbloque de 32 x 32 (L0-P0) dentro del macrobloque de es 32 x 32. Como la informacion de indicacion de tipo de particion del primer subbloque de 32 x 32 no es 3, se decodifica la informacion de indicacion de tipo de particion de un segundo subbloque de 32 x 32 (L0-P1).
15 [0365] Como la informacion de indicacion de tipo de particion reconstruida es 3 y las capas 1 y 2 no estan
disponibles, el subbloque L0-P1 es dividido en 16 subbloques (L3-P0 a L3-P15) de tamano 8 x 8, y se extrae y decodifica del tren de bits informacion de indicacion de tipo de particion de cada subbloque de 8 x 8 porque el subbloque de 8 x 8 puede ser dividido en subbloques mas pequenos.
20 [0366] Como toda la informacion de indicacion de tipo de particion reconstruida del cuarto al decimonoveno
lugar es 0, puede deducirse que todos los tipos de subbloque de los subbloques L3-P0 a L3-P15 divididos del subbloque L0-P1 son 8 x 8.
[0367] Como la informacion de indicacion de tipo de particion reconstruida en vigesimo lugar es 3 y las capas 25 1 y 2 no estan disponibles, el subbloque L0-P2 es dividido en 16 subbloques (L3-P0 a L3-P15) de tamano 8 x 8, y se
extrae y decodifica del tren de bits informacion de indicacion de tipo de particion de cada subbloque de 8 x 8 porque el subbloque de 8 x 8 puede ser dividido en subbloques mas pequenos.
[0368] Como la informacion de indicacion de tipo de particion reconstruida posteriormente es 2, el subbloque 30 L3-P0 incluido en el subbloque L0-P2 es dividido en 2 subbloques de tamano 4 x 8, y todos los tipos de subbloque
de los subbloques L3-P1 a L3-P15 se establecen en 8 x 8 porque 15 elementos de informacion de indicacion de tipo de particion reconstruidos desde entonces son todos 0.
[0369] Como la informacion de indicacion de tipo de particion reconstruida en ultimo lugar es 0, un tipo de 35 subbloque del subbloque L0-P3 es 32 x 32, y el proceso de decodificacion de informacion de particion se termina
porque los tipos de particion de todos los subbloques dentro del macrobloque han sido determinados.
C-2-1) Diagrama de flujo de decodificacion
40 [0370] La FIG. 33 es un diagrama de flujo para ilustrar un procedimiento de decodificacion de video segun
otro aspecto mas de la presente descripcion.
[0371] Basandose en el procedimiento de decodificacion de video segun otro aspecto mas de la presente
descripcion, el aparato de decodificacion de video 3200 decodifica los datos de capa de particion maxima 45 codificados extraidos del tren de bits para reconstruir un valor de capa de particion maxima en la etapa S3310, y lleva a cabo una decodificacion predictiva sobre los datos de imagen codificados extraidos del tren de bits usando un tamano de subbloque minimo segun el valor de capa de particion maxima reconstruido para reconstruir un bloque actual en la etapa S3320.
50 [0372] Segun otro aspecto mas de la presente descripcion tal como se describe anteriormente, incluso
cuando el macrobloque que tiene un tamano igual o mayor que un tamano 16 x 16 es dividido en varios tamanos de subbloques, puede establecerse un tamano de subbloque minimo usando un valor de capa de particion maxima. Por consiguiente, no es necesario decodificar la informacion de particion para las capas que no se usan. Como resultado, la informacion de particion del macrobloque puede codificarse con el menor numero de bits y de este 55 modo puede mejorarse la eficiencia de compresion.
[0373] Ademas, el aparato de codificacion de video segun otro aspecto mas de la presente descripcion
determina las capas de particion disponibles de un bloque actual, selecciona una capa de particion, que genera un coste de codificacion mas pequeno del bloque actual, entre las capas de particion disponibles, genera datos de
imagen codificados llevando a cabo una codificacion predictiva sobre el bloque actual usando solo la capa de particion seleccionada, y puede generar un tren de bits que incluye datos de capa de particion codificados creados codificando la informacion sobre la capa de particion seleccionada, datos de informacion de particion codificados creados codificando la informacion de particion del bloque actual basandose en la capa de particion seleccionada, y 5 datos de imagen codificados. Aqul, pueden seleccionarse una o mas capas de particion como la capa de particion que genera el coste de codificacion mas pequeno del bloque actual. Por consiguiente, el aparato de codificacion de video puede generar datos de imagen codificados determinando las capas de particion disponibles para el bloque actual, seleccionando una o mas capas de particion, que generan el coste de codificacion mas pequeno del bloque actual, entre las capas de particion disponibles, y dividiendo y codificando de manera predictiva el bloque actual 10 usando solo la una o mas capas de particion seleccionadas. Por lo tanto, el aparato de codificacion de video puede codificar informacion de particion de macrobloque con un menor numero de bits y de ese modo mejorar la eficiencia de compresion.
[0374] Ademas, el aparato de decodificacion de video segun otro aspecto mas de la presente descripcion 15 puede reconstruir informacion sobre capas de particion e informacion de particion decodificando datos de
informacion de particion codificados y datos de capa de particion codificados extraidos del tren de bits, y reconstruir el bloque actual llevando a cabo una decodificacion predictiva sobre los datos imagen codificados extraidos del tren de bits usando la informacion reconstruida sobre las capas de particion y la informacion de particion reconstruida.
20 D) Codificacion y decodificacion de tamano de macrobloque
[0375] Segun los aspectos anteriormente mencionados, se ha supuesto que el macrobloque tiene un tamano preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video. Ademas, sobre la base de esta suposicion, despues se han descrito el procedimiento de division de macrobloque y la codificacion y
25 decodificacion de informacion de particion.
[0376] En lo sucesivo, se describira un procedimiento de determinacion de un tamano de macrobloque que tiene un tamano variable, y una codificacion y una decodificacion para senalizar el tamano de macrobloque determinado al aparato de decodificacion.
30
[0377] En general, una imagen de alta resolution puede codificarse eficientemente por unidad de bloques grandes. Sin embargo, la eficiencia de codificacion no siempre se mejora siempre que todas las areas de la imagen se codifican usando los bloques mas grandes. Por ejemplo, en un caso de una imagen monotona, puede resultar eficiente codificar la imagen por unidad de macrobloques tales como un macrobloque grande de tamano 128 x 128.
35 Sin embargo, cuando una imagen compleja se codifica por unidad de macrobloques de tamano 128 x 128, la mayoria de los macrobloques son divididos en subbloques mas pequenos y la mayoria de los subbloques pueden ser predichos o transformados por unidad de bloques que tienen un tamano igual o menor que un tamano 16 x 16. En este caso, como la informacion de particion que indica que cada macrobloque ha sido dividido en subbloques que tienen un tamano igual o menor que el tamano 16 x 16 deberia codificarse, resulta eficiente codificar la imagen 40 mediante la selection de un tamano de macrobloque, que corresponde al tamano 16 x 16.
[0378] Segun otro aspecto de la presente descripcion, se determina un tamano de bloque maximo, que puede usarse para la prediction o la transformada para mejorar mas la eficiencia del procedimiento de codificacion de informacion de particion anteriormente mencionado, la imagen se codifica por unidad de tamanos de bloque
45 seleccionados, y la imagen se reconstruye decodificando la imagen en un tamano de bloque maximo identificado por la informacion incluida en el tren de bits.
[0379] En lo sucesivo, aunque no se describe que un tamano de bloque maximo (por ejemplo macrobloque), que puede usarse para la prediccion, y un tamano de bloque maximo, que puede usarse para la transformada, se
50 establecen por separado por comodidad de descripcion, es aplicable establecer por separado el tamano de bloque maximo para la prediccion y el tamano de bloque maximo para la transformada.
[0380] Ademas, cada informacion puede codificarse en el encabezamiento de secuencia, el encabezamiento de cuadro, el encabezamiento de sector, o el encabezamiento de macrobloque.
55
[0381] Despues de determinarse el tamano de macrobloque segun aspectos de la presente descripcion, que se analizaran en la siguiente descripcion, el macrobloque puede ser dividido en subbloques basandose en el procedimiento de division de macrobloque segun aspectos anteriormente mencionados de la presente descripcion. Ademas, la prediccion o la transformada pueden llevarse a cabo en la unidad de subbloques. En este caso, el
aparato de codificacion de video segun aspectos de la presente descripcion codifica informacion sobre el tamano de macrobloque y/o informacion de particion sobre el macrobloque dividido y despues puede transmitir la informacion codificada al aparato de decodificacion de video segun aspectos de la presente descripcion. El aparato de decodificacion de video segun aspectos de la presente descripcion puede captar el tamano de macrobloque que ha 5 de ser decodificado actualmente y/o la informacion sobre subbloques dentro del macrobloque decodificando la informacion sobre el tamano de macrobloque y/o la informacion de particion de macrobloque. Tal como se describe anteriormente, la informacion de particion puede implementarse de diversas formas. La informacion de particion del macrobloque segun aspectos de la presente descripcion, que contiene informacion sobre si el macrobloque es dividido en subbloques y/o informacion sobre tipos de subbloque divididos del macrobloque, se senaliza al aparato 10 de decodificacion de video segun aspectos de la presente descripcion.
D-1) Aparato de codificacion de video
D-1-1) Descripcion del aparato de codificacion 15
[0382] La FIG. 35 es un diagrama de bloques esquematico para ilustrar un aparato de codificacion de video 3500 segun otro aspecto mas de la presente descripcion.
[0383] Segun una implementacion del aparato de codificacion de video segun otro aspecto de la presente 20 descripcion, el aparato de codificacion de video puede incluir una unidad de configuracion de tamano de
macrobloque candidato 3510, un codificador de video 3520, y un determinador de tamano de macrobloque 3530.
[0384] La unidad de configuracion de tamano de macrobloque candidato 3510 configura candidatos a tamano de macrobloque, que pueden ser usados por el aparato de codificacion de video 3500 segun otra realizacion mas de
25 la presente descripcion. Los candidatos a tamano de macrobloque son introducidos por un usuario o determinados segun las caracteristicas de la imagen. Alternativamente, los candidatos a tamano de macrobloque pueden ser grupos de candidatos establecidos (por ejemplo, tamano 64 x 64, tamano 32 x 32, y tamano 16 x 16) introducidos por otro aparato.
30 [0385] En un caso en el que los candidatos a tamano de macrobloque se determinan segun las
caracteristicas de la imagen, si la resolucion de la imagen es 4K x 2K y una relacion de una anchura y una altura es 16:9, los candidatos a tamano de macrobloque pueden incluir el tamano 128 x 128, el tamano 128 x 64, el tamano 64 x 128, el tamano 64 x 64, el tamano 64 x 32, el tamano 32 x 64, el tamano 32 x 32, el tamano 32 x 16, el tamano 16 x 32, y el tamano 16 x 16.
35
[0386] El codificador de video 3520 puede implementarse como el aparato de codificacion de video segun un aspecto de la presente descripcion descrito con referencia a la FIG. 6, 8, o 26. Es decir, el codificador de video 3520 codifica una imagen por cada candidato a tamano de macrobloque configurado por la unidad de configuracion de tamano de macrobloque 3510 y genera datos de imagen para cada tamano de macrobloque. En este caso, cada
40 macrobloque es dividido internamente en subbloques (aqui, el subbloque que tiene un tamano de subbloque minimo puede ser un bloque por unidad de 4 x 4 pixeles), que son bloques mas pequenos que el macrobloque, y se lleva a cabo una codificacion intra o una codificacion inter sobre los subbloques divididos. La informacion de particion que indica los tamanos y formas de los subbloques dentro del macrobloque puede ser incluida en el tren de bits usando el procedimiento de codificacion de informacion de particion segun los aspectos anteriormente mencionados de la 45 presente descripcion.
[0387] Como otro procedimiento de operation del codificador de video 3520, se lleva a cabo una codificacion usando macrobloques de tamano 16 x 16 y tamano 32 x 32. Como resultado de la codificacion, cuando un coste de codificacion en un caso de uso de los macrobloques de tamano 32 x 32 es superior a un coste de codificacion en un
50 caso de uso de los macrobloques de tamano 16 x 16, se determina el tamano 16 x 16 como el tamano de macrobloque. Cuando el coste de codificacion en el caso de uso de los macrobloques de tamano 32 x 32 es inferior al coste de codificacion en el caso de uso de los macrobloques de tamano 16 x 16, se lleva a cabo de nuevo una codificacion usando macrobloques de tamano 64 x 64 y despues se comparan de la misma manera los costes de codificacion del uso del macrobloque de tamano 32 x 32 y tamano 64 x 64. Por consiguiente, puede determinarse el 55 tamano de macrobloque.
[0388] Ademas, como otro procedimiento de operacion del codificador de video 3520, se lleva a cabo una codificacion usando macrobloques de tamano 16 x 16, tamano 32 x 16, tamano 16 x 32, y tamano 32 x 32. Y despues, la codificacion se lleva a cabo usando bloques pixeles generados ampliando una anchura, una altura, y
tanto la anchura como la altura del macrobloque seleccionado dos veces, respectivamente, como los macrobloques. Si la eficiencia de codificacion no se mejora usando un tamano de macrobloque ampliado, la codificacion se detiene y se determina el tamano de macrobloque.
5 [0389] El determinador de tamano de macrobloque 3530 calcula los costes de codificacion (es decir, los
costes de codificacion de los datos de imagen para cada tamano de macrobloque) generados cuando el codificador de video 3520 codifica la imagen por cada tamano de macrobloque y compara los costes de codificacion de los tamanos de macrobloque respectivos para determina un tamano de macrobloque optimo entre los candidatos a tamano de macrobloque. Aqul, el tamano de macrobloque optimo puede ser cualquier tamano de macrobloque si el 10 tamano de macrobloque genera el coste de codificacion mas bajo cuando la imagen se codifica usando el tamano de macrobloque correspondiente. Sin embargo, en un caso de uso de coste de codificacion, pueden determinarse diversos tamanos de macrobloque optimos usando el coste de codificacion.
[0390] Ademas, cuando se determina el tamano de macrobloque, el determinador de tamano de macrobloque
15 3530 genera datos de imagen codificados en el tamano de macrobloque correspondiente como el tren de bits. En este caso, la informacion sobre el tamano de macrobloque determinado puede codificarse e incluirse en el tren de bits. La informacion sobre el tamano de macrobloque puede ser incluida en el tren de bits para una imagen entera solo una vez o puede ser incluida en el tren de bits en cada cuadro de la imagen entera. Ademas, segun otro aspecto de la presente description, el tamano de macrobloque, que corresponde a las unidades de 20 codificacion/decodificacion, puede seleccionarse de manera diferente para cada cuadro, sector o capa de macrobloque.
D-1-2) Procedimiento de codificacion de tamano de macrobloque
25 [0391] En lo sucesivo, se describen diversos procedimientos de codificacion del tamano de macrobloque
segun aspectos de la presente descripcion.
[0392] Tal como se describe anteriormente, como el tamano de macrobloque puede calcularse usando el tamano de subbloque mlnimo y la capa de partition maxima (MaxLayer), el tamano de macrobloque puede
30 obtenerse codificando un valor de tamano de macrobloque determinado o codificando el tamano de subbloque mlnimo y la capa de particion maxima.
[0393] Es decir, en un procedimiento de codificacion de informacion de tamano de bloque que indica el tamano de macrobloque o el tamano de subbloque mlnimo y codificacion del tamano de subbloque, la informacion
35 de capa de particion maxima (MaxLayer) se codifica conjuntamente y se transmite al aparato de decodificacion de video.
[0394] La informacion de capa de particion maxima puede codificarse dentro de una cadena de bits binarios usando una codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de
40 Huffman, etc. Alternativamente, la informacion de capa de particion maxima puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
D-1-2-1) Procedimiento 1 de codificacion de tamano de macrobloque 45
[0395] En primer lugar se describe un primer procedimiento de codificacion del tamano de macrobloque.
[0396] Una bandera (Set_MBsize_flag) que indica si transmitir informacion sobre el tamano de macrobloque puede incluirse en un encabezamiento de secuencia, un encabezamiento de cada cuadro, o un encabezamiento de
50 sector. El tamano de macrobloque puede transmitirse o no segun un valor de la bandera. En un caso de no transmision del tamano de macrobloque, se usan como macrobloques los macrobloques que tienen un tamano predeterminado, por ejemplo, bloques de tamano 16 x 16.
[0397] Si se designa el tamano de macrobloque, se transmite la informacion sobre el tamano de 55 macrobloque. En este caso, pueden usarse macrobloques que tienen un tamano arbitrario, de los cuales se
establecen por separado los tamanos horizontales y los tamanos verticales. Alternativamente, en un caso de uso de macrobloques cuadrados, solo se codifica la informacion sobre un lado del macrobloque cuadrado y despues puede transmitirse al aparato de decodificacion.
[0398] Un valor de tamano de macrobloque que ha de codificarse puede designarse como un tamano de macrobloque real o puede transmitirse un valor que indica el numero de veces que un macrobloque ha de ser ampliado o reducido con respecto a un tamano predeterminado. Ademas, el valor de tamano de macrobloque puede representarse usando bits mas pequenos mediante la aplicacion de una funcion logarltmica al valor de tamano de
5 macrobloque en lugar de codificando directamente el valor de tamano de macrobloque. Por ejemplo, se codifica un valor de log2(MBsize seleccionado/X) (X es cualquier numero entero positivo, que sea un multiplo de 2). En este caso, puede seleccionarse un valor de X como un tamano de macrobloque mlnimo disponible. Por ejemplo, si el tamano de macrobloque mlnimo disponible es 8 x 8, es preferible seleccionar “8” como el valor de X. En este caso, se codifica “0” cuando un macrobloque actual es un bloque de tamano 8 x 8, y se codifica “1” cuando el macrobloque 10 actual es un bloque de tamano 16 x 16. Si el tamano de macrobloque mlnimo disponible es 16 x 16, es preferible seleccionar “16” en lugar de “8” como valor de X. En este caso, se codifica “0” cuando el macrobloque actual es un bloque de tamano 16 x 16, y se codifica “1” cuando el macrobloque actual es un bloque de tamano 32 x 32. Por consiguiente, un tamano de macrobloque actual puede representarse usando bits mas pequenos que los bits usados para codificar un numero grande tal como 8, 16, o 32.
15
[0399] Ademas, pueden codificarse las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
[0400] Alternativamente, el valor de tamano de macrobloque puede ser un valor de Indice de una tabla 20 preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video.
[0401] En este caso, el tamano de macrobloque que ha de transmitirse puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
25
[0402] En lo sucesivo, no se describe el establecimiento por separado de un tamano horizontal y un tamano vertical por conveniencia de la descripcion, pero es aplicable establecer por separado el tamano horizontal y el tamano vertical. Ademas, aunque se ejemplifica la codificacion de datos en un encabezamiento de secuencia y un encabezamiento de cuadro, los datos pueden codificarse en un encabezamiento de sector o un encabezamiento de
30 macrobloque.
[0403] Un ejemplo de una sintaxis segun el primer procedimiento de codificacion del tamano de macrobloque es el siguiente:
35 Set_MBsize_Flag
if (Set_MBsize_Flag == 1)
{
MBsize
}
40 Or
Set_MBsize_Flag if (Set_MBsize_Flag == 1)
{
MBsize_width 45 MBsize_height }
[0404] Ademas, la informacion de tamano de bloque tal como MB_size, que indica el tamano de macrobloque, puede codificarse mediante el tamano de subbloque minimo y la capa de particion maxima.
50
[0405] Aqui, un valor de tamano de subbloque minimo que ha de codificarse puede designarse como un tamano de subbloque minimo real o puede transmitirse un valor que indica el numero de veces que un subbloque ha de ser ampliado o reducido con respecto a un tamano predeterminado. Ademas, el valor de tamano de subbloque mlnimo puede representarse usando bits mas pequenos mediante la aplicacion de una funcion logarltmica al valor
55 de tamano de subbloque minimo en lugar de codificando directamente el valor de tamano de subbloque minimo. Por ejemplo, se codifica un valor de log2(minblockSize/X) (X es cualquier numero entero positivo, que sea un multiplo de 2). En este caso, puede seleccionarse un valor de X como un tamano de subbloque mlnimo disponible. Por ejemplo, si el tamano de subbloque mlnimo disponible es 4 x 4, es preferible seleccionar “4” como el valor de X. En este caso, se codifica “0” cuando un subbloque minimo que ha de codificarse segun un tamano de macrobloque actual es un
bloque de tamano 4 x 4, y se codifica “1” cuando el subbloque mlnimo es un bloque de tamano 8 x 8. Si el tamano de macrobloque mlnimo disponible es 8 x 8, es preferible seleccionar “8” en lugar de “4” como valor de X. En este caso, se codifica “0” cuando el tamano de subbloque mlnimo disponible segun el tamano de macrobloque actual es 8 x 8, y se codifica “1” cuando el tamano de subbloque mlnimo es 16 x 16.
5
[0406] Ademas, pueden codificarse las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
[0407] Alternativamente, el valor de tamano de subbloque mlnimo puede ser un valor de Indice de una tabla 10 que define un tamano de bloque preacordado entre el aparato de codificacion de video y el aparato de
decodificacion de video.
[0408] En este caso, el tamano de subbloque minimo puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
15
[0409] La informacion de capa de particion maxima puede codificarse dentro de una cadena de bits binarios usando una codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de Huffman, etc. Alternativamente, la informacion de capa de particion maxima puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb
20 exponencial, etc.
[0410] Cuando el tamano de macrobloque se codifica usando el tamano de subbloque minimo y la capa de particion maxima, un ejemplo de la primera sintaxis anteriormente mencionada puede representarse como sigue.
25 Set_MBsize_Flag
if (Set_MBsize_Flag == 1)
{
minBlockSize MaxLayer 30 }
Or
Set_MBsize_Flag if (Set_MBsize_Flag == 1)
{
35 minBlockSize_width minBlockSize_height MaxLayer }
40 [0411] Alternativamente, el tamano de macrobloque puede transmitirse al aparato de decodificacion de video
en cualquier encabezamiento de secuencia, de cuadro, de sector, o de macrobloque sin codificar la bandera (Set_MBsize_flag) que indica si transmitir informacion sobre el tamano de macrobloque.
D-1-2-2) Procedimiento 2 de codificacion de tamano de macrobloque 45
[0412] En lo sucesivo, se describe un segundo procedimiento de codificacion del tamano de macrobloque.
[0413] Segun el segundo procedimiento, un tamano M x N se establece como tamano de macrobloque de referencia, y en cada encabezamiento de cuadro, de sector, o de macrobloque se codifica una bandera que indica si
50 usar el tamano de macrobloque de referencia. Cuando no se usa el tamano de macrobloque de referencia, se codifica un tamano de macrobloque seleccionado. Alternativamente, despues de que una bandera que indica si establecer el tamano de macrobloque de referencia se codifica en el encabezamiento de secuencia, se usa un tamano predeterminado, por ejemplo, un tamano 16 x 16 como el tamano de macrobloque de referencia si no se establece el tamano de macrobloque de referencia, y el tamano de macrobloque de referencia puede codificarse e 55 incluirse en el encabezamiento de secuencia si se establece el tamano de macrobloque de referencia.
[0414] Aqui, en un procedimiento de codificacion de un valor de default_MBsize, que es informacion que
indica el tamano de macrobloque de referencia, o un valor de MB_size, que es informacion que indica un tamano de macrobloque actual, puede designarse un tamano de macrobloque real o puede transmitirse un valor que indica el
numero de veces que un macrobloque ha de ser ampliado o reducido con respecto a un tamano predeterminado. Alternativamente, tal como se describe en el primer procedimiento anteriormente mencionado, el valor de tamano de macrobloque puede representarse usando bits mas pequenos mediante la aplicacion de una funcion logarltmica al valor de tamano de macrobloque en lugar de codificando directamente el valor de tamano de macrobloque.
5
[0415] Ademas, pueden codificarse las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
[0416] Alternativamente, el valor de tamano de macrobloque puede ser un valor de Indice de una tabla 10 preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video.
[0417] En este caso, el tamano de macrobloque que ha de transmitirse puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
15
[0418] Un ejemplo de una sintaxis segun el segundo procedimiento anteriormente mencionado de codificacion del tamano de macrobloque se representa como sigue.
[0419] Encabezamiento de secuencia, de cuadro, o de sector
20
Set_defaultMBsize_Flag if (Set_defaultMBsize_Flag == 1)
{
default_MBsize 25 }
[0420] Encabezamiento de cuadro, de sector, o de macrobloque
use_defalt_MBsize_flag 30 if (use_defalt_MBsize_flag == 0)
{
MB_size
}
35 [0421] Ademas, la informacion de tamano de bloque tal como default_MBsize para indicar un tamano de
macrobloque por defecto o de referencia y MB_size para indicar un tamano de macrobloque puede codificarse a traves del tamano de subbloque minimo y la capa de particion maxima.
[0422] En un procedimiento de codificacion del tamano de subbloque minimo de referencia
40 default_minBlockSize para indicar el tamano de macrobloque de referencia o el tamano de subbloque minimo
minBlockSize para indicar informacion sobre el tamano de macrobloque actual, puede designarse un tamano de subbloque minimo que ha de codificarse realmente y puede transmitirse un valor que indica el numero de veces que un subbloque ha de ser ampliado o reducido respecto a un tamano predeterminado. Alternativamente, tal como se describe en el primer procedimiento anteriormente mencionado, el valor de tamano de subbloque minimo puede 45 representarse usando bits mas pequenos mediante la aplicacion de una funcion logarltmica al valor de tamano de subbloque minimo en lugar de codificar directamente el valor de tamano de subbloque minimo.
[0423] Ademas, pueden codificarse las ampliaciones del tamano horizontal y el tamano vertical,
respectivamente.
50
[0424] Alternativamente, el valor de tamano de subbloque minimo puede ser un valor de indice de una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video.
[0425] En este caso, el tamano de subbloque minimo que ha de transmitirse puede codificarse usando 55 diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, codigo de
Golomb exponencial, etc.
[0426] La informacion de capa de particion maxima puede codificarse dentro de una cadena de bits binarios usando una codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de
Huffman, etc. Alternativamente, la informacion de capa de particion maxima puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
5 [0427] Cuando el tamano de macrobloque se codifica usando el tamano de subbloque mlnimo y la capa de
particion maxima, un ejemplo de la segunda sintaxis anteriormente mencionada puede representarse como sigue.
Encabezamiento de secuencia, cuadro, o sector
10 Set_defaultMBsize_Flag
if (Set_defaultMBsize_Flag == 1)
{
default_minBlockSize default_MaxLayer 15 }
[0428] Encabezamiento de cuadro, sector o macrobloque
use_default_MBsize_flag 20 if (use_default_MBsize_flag == 0)
{
minBlockSize
MaxLayer
}
25
D-1-2-3) Procedimiento 3 de codificacion de tamano de macrobloque
[0429] En lo sucesivo, se describe un tercer procedimiento de codificacion del tamano de macrobloque
30 [0430] Segun el tercer procedimiento, un tamano M x N se establece como tamano de macrobloque de
referencia, y una bandera que indica si usar el tamano de macrobloque de referencia se codifica en cada encabezamiento de cada cuadro, encabezamiento de sector, o encabezamiento de subbloque mlnimo y se transmite al aparato de decodificacion de video. Cuando la bandera indica que se usa el tamano de macrobloque de referencia, se selecciona como un macrobloque actual un bloque que tiene el mismo tamano que el tamano de 35 macrobloque de referencia. Sin embargo, cuando la bandera indica que no se usa el tamano de macrobloque de referencia, se selecciona como el macrobloque actual un bloque que tiene un tamano ampliado o reducido una relacion predeterminada con respecto al tamano de macrobloque de referencia en un proceso de codificacion o de decodificacion. Por ejemplo, un bloque que tiene un tamano horizontal y un tamano vertical el doble de grande o el doble de pequeno que el tamano horizontal y puede seleccionarse el tamano vertical del macrobloque de referencia 40 como el macrobloque actual.
[0431] Cuando existen diversas relaciones de ampliation o reduction, pueden representarse diversas relaciones haciendo una longitud de la bandera mayor que 2 bits. Alternativamente, la informacion que indica la relacion de ampliacion o la relacion de reduccion puede codificarse adicionalmente ademas de la bandera que indica
45 si usar el tamano de macrobloque de referencia.
[0432] Cuando la bandera indica que no se usa el tamano de macrobloque de referencia y se selecciona como el macrobloque actual un bloque que tiene un tamano ampliado respecto al tamano de macrobloque de referencia, el tamano de macrobloque de referencia corresponde a un tamano de macrobloque mlnimo disponible
50 para la codificacion o decodificacion del tren de bits actual. Por el contrario, cuando la bandera indica que no se usa el tamano de macrobloque de referencia y se selecciona como el macrobloque actual un bloque que tiene un tamano reducido con respecto al tamano de macrobloque de referencia, el tamano de macrobloque de referencia corresponde a un tamano de macrobloque minimo disponible para la codificacion o decodificacion del tren de bits actual.
55
[0433] El aparato de decodificacion de video puede seleccionar el tamano de macrobloque actual usando la bandera que indica si usar el tamano de macrobloque de referencia y/o informacion adicional que indica una ampliacion o una reduccion por una relacion predeterminada con respecto al tamano de macrobloque de referencia.
[0434] Segun un aspecto de la presente descripcion, la bandera que indica si establecer el tamano de macrobloque de referencia puede incluirse en el encabezamiento de secuencia. Si no se establece el tamano de macrobloque de referencia, puede preacordarse usar un tamano predeterminado, por ejemplo, un tamano 16 x 16 como el tamano de macrobloque de referencia.
5
[0435] Cuando se establece el tamano de macrobloque de referencia y se indica al aparato de decodificacion de video, la informacion sobre el tamano de macrobloque de referencia se codifica y puede ser incluida en el encabezamiento de secuencia. Segun un aspecto de la presente descripcion, el aparato de codificacion de video puede senalizar la informacion que indica el tamano de macrobloque maximo disponible para la codificacion o
10 decodificacion del tren de bits actual al aparato de decodificacion de video como la informacion sobre el tamano de macrobloque de referencia. Segun otro aspecto de la presente descripcion, el aparato de codificacion de video puede senalizar la informacion que indica el macrobloque minimo disponible para la codificacion o decodificacion del tren de bits actual al aparato de decodificacion de video como la informacion sobre el tamano de macrobloque de referencia. Segun otro aspecto mas de la presente descripcion, el aparato de codificacion de video puede senalizar 15 la informacion sobre el tamano tanto de macrobloque maximo como de macrobloque minimo disponible para la codificacion o decodificacion del tren de bits actual al aparato de decodificacion de video como la informacion sobre el tamano de macrobloque de referencia.
[0436] En un procedimiento de codificacion de default_MBSize, que es la informacion sobre el tamano de 20 macrobloque de referencia, puede designarse el tamano de macrobloque real y puede transmitirse un valor que
indica el numero de veces que un macrobloque ha de ser ampliado o reducido respecto a un tamano predeterminado. Alternativamente, tal como se describe en el primer procedimiento anteriormente mencionado, el valor de tamano de macrobloque puede representarse usando bits mas pequenos mediante la aplicacion de una funcion logaritmica al valor de tamano de macrobloque en lugar de codificando directamente el valor de tamano de 25 macrobloque.
[0437] Mas especificamente, por ejemplo, cuando default_MBSize indica el tamano de macrobloque maximo disponible para la codificacion o decodificacion del tren de bits actual, se codifica un valor de log2(X/ default_MBSize) (X es cualquier numero entero positivo, que sea un multiplo de 2). En este caso, puede seleccionarse un tamano de
30 macrobloque minimo disponible como el valor de X.
[0438] Ademas, pueden codificarse las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
35 [0439] Alternativamente, el valor de tamano de macrobloque puede ser un valor de indice de una tabla
preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video.
[0440] En este caso, el tamano de macrobloque que ha de transmitirse puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, codigo de Golomb
40 exponencial, etc.
[0441] Ademas, la informacion de tamano de bloque tal como default_MBsize que indica el tamano de macrobloque de referencia y MB_size que indica el tamano de macrobloque puede codificarse mediante el tamano de subbloque minimo y la capa de particion maxima.
45
[0442] En un procedimiento de codificacion de default_minBlockSize, que es informacion sobre el tamano de subbloque minimo de referencia, puede designarse un tamano de subbloque minimo que ha de codificarse realmente y puede transmitirse un valor que indica el numero de veces que un subbloque ha de ser ampliado o reducido respecto a un tamano predeterminado. Alternativamente, tal como se describe en el primer procedimiento
50 anteriormente mencionado, el valor de tamano de subbloque minimo puede representarse usando bits mas pequenos mediante la aplicacion de una funcion logaritmica al valor de tamano de subbloque minimo en lugar de codificando directamente el valor de tamano de subbloque minimo.
[0443] Mas especificamente, por ejemplo, cuando default_minBlockSize indica el tamano de macrobloque 55 maximo segun el tamano de macrobloque maximo disponible para la codificacion o decodificacion del tren de bits
actual, se codifica un valor de log2(X/ default_minBlockSize) (X es cualquier numero entero positivo, que sea un multiplo de 2). En este caso, puede seleccionarse un tamano de subbloque maximo disponible como un valor de X. Alternativamente, cuando default_minBlockSize indica el tamano de subbloque minimo segun el tamano de macrobloque minimo disponible para la codificacion o decodificacion del tren de bits actual, se codifica un valor de
log2(default_minBlockSize /X) (X es cualquier numero entero positivo, que sea un multiplo de 2). En este caso, puede seleccionarse un tamano de subbloque mlnimo disponible como el valor de X.
[0444] Ademas, pueden codificarse las ampliaciones del tamano horizontal y el tamano vertical, 5 respectivamente.
[0445] Alternativamente, el tamano de subbloque mlnimo de referencia puede ser un valor de Indice de una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video.
10 [0446] En este caso, el tamano de subbloque minimo de referencia puede codificarse usando diversos
procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, codigo de Golomb exponencial, etc.
[0447] La informacion de capa de particion maxima puede codificarse dentro de una cadena de bits binarios 15 usando una codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de
Huffman, etc. Alternativamente, la informacion de capa de particion maxima puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
20 DE-1-2-4) Procedimiento 4 de codificacion de tamano de macrobloque
[0448] En lo sucesivo, se describe un cuarto procedimiento de codificacion del tamano de macrobloque.

[0449] Segun el cuarto procedimiento, despues de que una bandera que indica si usar el tamano de

25 macrobloque de referencia y un tamano de macrobloque seleccionado en un caso en el que no se usa el tamano de

macrobloque de referencia se codifican en un primer cuadro, una bandera que indica si usar un tamano de
macrobloque de un cuadro previo y un tamano de macrobloque de un cuadro actual en un caso en el que no se usa el tamano de macrobloque del cuadro previo pueden codificarse a partir de un segundo cuadro.
30 [0450] En un procedimiento de codificacion de un valor de default_MBsize, que es la informacion que indica
el tamano de macrobloque de referencia, o MB_size, que es la informacion que indica el tamano de macrobloque actual, puede designarse un tamano de macrobloque real y puede transmitirse un valor que indica el numero de veces que un macrobloque ha de ser ampliado o reducido con respecto a un tamano predeterminado. Alternativamente, tal como se describe en el primer procedimiento anteriormente mencionado, los valores de tamano 35 de macrobloque pueden representarse usando bits mas pequenos mediante la aplicacion de una funcion logaritmica a los valores de tamano de macrobloque en lugar de codificando directamente los valores de tamano de macrobloque.
[0451] Ademas, pueden codificarse las ampliaciones del tamano horizontal y el tamano vertical, 40 respectivamente. Alternativamente, los valores de tamano de macrobloques que han de codificarse pueden ser
valores de indice de una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video.
[0452] En este caso, el tamano de macrobloque que ha de transmitirse puede codificarse usando diversos 45 procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb
exponencial, etc.
[0453] Un ejemplo de una sintaxis segun el cuarto procedimiento anteriormente mencionado de codificacion del tamano de macrobloque se representa como sigue.
50
Primer cuadro
[0454]
55 use_default_MBsize_flag
if (use_default_MBsize_flag == 0)
{
MB_size
}
Del segundo cuadro
[0455]
5
use_prevPic_MBsize_flag if (use_prevPic_MBsize_flag == 0)
{
MB_size 10 }
[0456] Ademas, la informacion de tamano de bloque tal como MBsize que indica el tamano de macrobloque puede codificarse mediante el tamano de subbloque mlnimo y la capa de particion maxima.
15 [0457] Puede designarse un tamano de subbloque mlnimo que ha de codificarse realmente y puede
transmitirse un valor que indica el numero de veces que un subbloque ha de ser ampliado o reducido con respecto a un tamano predeterminado. Alternativamente, tal como se describe en el primer procedimiento anteriormente mencionado, puede aplicarse una funcion logarltmica al valor de tamano de subbloque mlnimo en lugar de codificar directamente el valor de tamano de subbloque mlnimo.
20
[0458] Ademas, pueden codificarse las ampliaciones del tamano horizontal y el tamano vertical,
respectivamente. Alternativamente, el tamano de subbloque mlnimo puede ser un valor de Indice de una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video.
25 [0459] En este caso, el tamano de subbloque minimo de referencia puede codificarse usando diversos
procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, codigo de Golomb exponencial, etc.
[0460] La informacion de capa de particion maxima puede codificarse dentro de una cadena de bits binarios
30 usando una codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de Huffman, etc. Alternativamente, la informacion de capa de particion maxima puede codificarse usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
35 [0461] Cuando el tamano de macrobloque de referencia o el tamano de macrobloque se codifica usando el
tamano de subbloque minimo y la capa de particion maxima, un ejemplo de la cuarta sintaxis anteriormente mencionada puede representarse como sigue.
Primer cuadro 40
[0462]
use_defalt_MBsize_flag if (use_defalt_MBsize_flag == 0)
45 {
minBlockSize
MaxLayer
}
50 Del segundo cuadro
[0463]
use_prevPic_MBsize_flag 55 if (use_prevPic_MBsize_flag == 0)
{
minBlockSize
MaxLayer
}
D-1-2-5) Procedimiento 5 de codificacion de tamano de macrobloque
[0464] En lo sucesivo, se describe un quinto procedimiento de codificacion de tamanos de macrobloque.
5
[0465] Segun el quinto procedimiento, se usan diferentes tamanos de macrobloque para un cuadro intra y un cuadro inter. Es decir, un tamano de macrobloque para el cuadro intra y un tamano de macrobloque para el cuadro inter se codifican en el encabezamiento de secuencia. Alternativamente, cada tamano de macrobloque segun un tipo de cuadro puede codificarse solo en los encabezamientos de un primer cuadro intra y un primer cuadro inter. Puede
10 usarse un procedimiento de codificacion de informacion sobre el tamano de macrobloque del cuadro intra y el tamano de macrobloque del cuadro inter en combinacion con los procedimientos anteriormente mencionados.
Encabezamiento de secuencia
15 [0466]
Set_intraMBsize_Flag Set_interMBsize_Flag if (Set_interMBsize_Flag == 1)
20 {
intraMBsize
}
if (Set_interMBsize_Flag == 1)
{
25 interMBsize }
[0467] Ademas, la informacion sobre el tamano de macrobloque intra o el tamano de macrobloque inter puede codificarse mediante el tamano de subbloque mlnimo y la capa de particion maxima.
30
[0468] Cuando el tamano de macrobloque intra o el tamano de macrobloque inter se codifica usando el tamano de subbloque mlnimo y la capa de particion maxima, un ejemplo de la quinta sintaxis anteriormente mencionada puede representarse como sigue.
35 Encabezamiento de secuencia
[0469]
Set_intraMBsize_Flag 40 Set_interMBsize_Flag
if (Set_intraMBsize_Flag == 1)
{
Intra_minBlockSize Intra_MaxLayer 45 }
if (Set_interMBsize_Flag == 1)
{
Inter_minBlockSize Inter_MaxLayer 50 }
D-1-3) Descripcion de orden del procedimiento de codificacion
[0470] La FIG. 36 es un diagrama de flujo para ilustrar una implementation de un procedimiento de 55 codificacion de video segun otro aspecto de la presente descripcion.
[0471] El aparato de codificacion de video configura los candidatos a tamano de macrobloque en la etapa S3610, codifica una imagen de entrada por cada candidato a tamano de macrobloque en la etapa S3620, determina un tamano de macrobloque basandose en los costes de codificacion para cada candidato a tamano de macrobloque
en la etapa S3630, y genera un tren de bits que incluye datos de imagen codificados en el tamano de macrobloque determinado e informacion sobre el tamano de macrobloque determinado en la etapa S3640. Como se ha descrito mediante la FIG. 35 que el aparato de codificacion de video configura los candidatos a tamano de macrobloque, codifica una imagen para cada candidato a tamano de macrobloque, y determina un tamano de macrobloque 5 basandose en los costes de codificacion de los datos de imagen codificados para cada candidato a tamano de macrobloque, se omite su descripcion detallada.
D-2) Aparato de decodificacion de video
10 D-2-1) Descripcion del aparato de decodificacion
[0472] La FIG. 37 es un diagrama de bloques para ilustrar una implementacion de un aparato de
decodificacion de video segun otro aspecto de la presente descripcion.
15 [0473] Segun la implementacion del aparato de decodificacion de video segun otro aspecto de la presente
descripcion, el aparato de decodificacion de video 3700 puede incluir una unidad de configuration de tamano de macrobloque 3710 y un decodificador de video 3720.
[0474] La unidad de configuracion de tamano de macrobloque 3710 extrae del tren de bits informacion sobre 20 un tamano de macrobloque antes de llevar a cabo una decodificacion por unidad de macrobloques y configura un
tamano de macrobloque usando la informacion extraida.
[0475] Cuando esta preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video que la informacion sobre el tamano de macrobloque este incluida en el tren de bits solo una vez, una imagen
25 puede reconstruirse decodificando la informacion dentro del tren de bits para una imagen entera solo una vez y usando el tamano de macrobloque extraido en la decodificacion de la imagen entera. Cuando esta preacordado que el tamano de macrobloque sea codificado/decodificado en cada imagen, la imagen puede reconstruirse extrayendo el tamano de macrobloque del tren de bits en cada cuadro y usando diferentes tamanos de macrobloque en cada cuadro. Ademas, segun otro aspecto de la presente descripcion, la imagen puede reconstruirse extrayendo el 30 tamano de macrobloque en cada cuadro, sector, o capa de macrobloque y usando el tamano de macrobloque seleccionado.
[0476] El decodificador de video 3720 puede implementarse como el aparato de decodificacion de video segun un aspecto de la presente descripcion descrito con referencia a la FIG. 32, y los tamanos y las formas de los
35 subbloques divididos para la prediction o la transformada dentro del macrobloque se reconstruyen decodificando la informacion de partition segun el tamano de macrobloque reconstruido mediante procedimientos segun los aspectos anteriormente mencionados. Los subbloques respectivos se reconstruyen extrayendo y decodificando del tren de bits los datos de imagen codificados de los subbloques respectivos.
40 D-2-2) Procedimiento de decodificacion de informacion de tamano de macrobloque
[0477] En lo sucesivo, se describen diversos procedimientos de codificacion del tamano de macrobloque segun aspectos de la presente descripcion.
45 D-2-2-1) Procedimiento 1 de decodificacion de informacion de tamano de macrobloque
[0478] En primer lugar se describe un procedimiento de decodificacion segun el primer procedimiento de codificacion del tamano de macrobloque.
50 [0479] Puede incluirse una bandera (Set_MBsize_flag) que indica si transmitir informacion sobre el tamano
de macrobloque, la bandera (Set_MBsize_flag) que indica si transmitir informacion sobre el tamano de macrobloque se decodifica por entropia en una position preacordada tal como el encabezamiento de secuencia, el encabezamiento de cada cuadro, o el encabezamiento de sector. Cuando la bandera decodificada tiene un valor que indica que no se transmite el tamano de macrobloque, se usa como el macrobloque un macrobloque que tiene un 55 tamano predeterminado preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video, por ejemplo, un bloque de 16 x 16.
[0480] Cuando la bandera de designation de tamano de macrobloque decodificada (Set_MBsize_flag) indica
que el tamano de macrobloque esta designado, el tamano de macrobloque se decodifica por entropia y extraido
mediante un procedimiento preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video entre diversos procedimientos de decodificacion de entropia tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
5 [0481] Cuando un tamano horizontal y un tamano vertical del macrobloque se establecen por separado y
despues se transmiten, el tamano horizontal y el tamano vertical pueden obtenerse decodificando por entropia cada uno de los tamanos. Alternativamente, si se usa un macrobloque cuadrado, solo puede ser decodificada por entropia la information que indica un lado del macrobloque cuadrado.
10 [0482] Un valor decodificado puede ser designado como el tamano de macrobloque real, y puede transmitirse
un valor que indica el numero de veces que un macrobloque ha de ser ampliado o reducido con respecto a un
tamano predeterminado. Ademas, cuando el aparato de codificacion de video codifica un valor generado aplicando una funcion logaritmica al valor de tamano de macrobloque, el tamano de macrobloque puede establecerse aplicando una funcion exponencial al valor decodificado por entropia. Por ejemplo, cuando el aparato de codificacion 15 de video codifica y, que es un valor de log2(MBsize seleccionado en el codificador/X) (X es cualquier numero entero positivo, que sea un multiplo de 2), el aparato de decodificacion de video decodifica por entropia y puede obtener el tamano de macrobloque seleccionado en el codificador multiplicando 2y y X. Aqui, X corresponde a un valor preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video o un valor extraido del tren de bits antes de la decodificacion de un tamano de macrobloque. Cuando se selecciona y usa un tamano de
20 macrobloque minimo disponible para X y el tamano de macrobloque minimo disponible es 8 x 8, el tamano de
macrobloque se establece en 8 x 8 si y es “0”, y el tamano de macrobloque se establece en 16 x 16 si el valor decodificado de y es “1”. Cuando el tamano de macrobloque minimo disponible es 16 x 16, se usa “16” en lugar de “8” como X, y el tamano de macrobloque se establece en 16 x 16 si el valor decodificado de y es “0”.
25 [0483] Ademas, cuando el aparato de codificacion de video decodifica ampliaciones del tamano horizontal y
el tamano vertical, respectivamente, el tamano de macrobloque puede obtenerse decodificando por entropia las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
[0484] Ademas, cuando se codifica un valor de indice de una tabla preacordada entre el aparato de 30 codificacion de video y el aparato de decodificacion de video, el tamano de macrobloque puede obtenerse usando
un valor decodificado como el valor de indice de la tabla.
[0485] En este caso, el tamano de macrobloque que ha de transmitirse puede ser decodificado usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo
35 de Golomb exponencial, etc. En lo sucesivo, no se describe la decodificacion y extraction por separado del tamano horizontal y el tamano vertical por conveniencia de las descripciones, pero es aplicable a la extraccion por separado del tamano horizontal y el tamano vertical. Ademas, aunque se ejemplifica la decodificacion de datos en el encabezamiento de secuencia y el encabezamiento de cuadro, el tamano de macrobloque puede ser decodificado en un encabezamiento de sector o un encabezamiento de macrobloque cuando el aparato de codificacion de video 40 codifica el tamano de macrobloque en el encabezamiento de sector o el encabezamiento de macrobloque.
[0486] Cuando esta preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video que el tamano de subbloque minimo y la capa de partition maxima se usan como informacion sobre el tamano de macrobloque, se extrae y decodifica del tren de bits informacion sobre el tamano de subbloque minimo y la capa
45 de particion maxima, y despues puede reconstruirse el tamano de macrobloque.
[0487] Cuando la bandera de designation de tamano de macrobloque decodificada (Set_MBsize_flag) indica que el tamano de macrobloque esta designado, el tamano de subbloque minimo se decodifica por entropia y extraido mediante un procedimiento preacordado entre el aparato de codificacion de video y el aparato de
50 decodificacion de video entre diversos procedimientos de decodificacion de entropia tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0488] Cuando el tamano horizontal y el tamano vertical del tamano de subbloque minimo se establecen por separado y despues se transmiten, el tamano horizontal y el tamano vertical pueden obtenerse decodificando por
55 entropia cada uno de los tamanos. Alternativamente, si se usa un macrobloque cuadrado, solo puede ser decodificada por entropia la informacion que indica un lado del macrobloque cuadrado.
[0489] Un valor decodificado puede ser designado como el tamano de subbloque minimo, y puede transmitirse un valor que indica el numero de veces que un subbloque ha de ser ampliado o reducido con respecto a
un tamano predeterminado. Ademas, cuando el aparato de codificacion de video codifica un valor generado aplicando una funcion logarltmica al valor de tamano de subbloque mlnimo, el tamano de subbloque mlnimo puede establecerse aplicando una funcion exponencial al valor decodificado por entropla. Por ejemplo, cuando el aparato de codificacion de video codifica y, que es un valor de log2(minBlockSize seleccionado en el aparato de codificacion 5 de video segun el tamano de macrobloque seleccionado/X) (X es cualquier numero entero positivo, que sea un multiplo de 2), el aparato de decodificacion de video decodifica por entropia y puede obtener el tamano de subbloque minimo segun el tamano de macrobloque seleccionado en el aparato de codificacion de video multiplicando 2y y X. Aqui, X corresponde a un valor preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video o un valor extraido del tren de bits antes de la decodificacion de un tamano de 10 subbloque minimo. Cuando se selecciona y usa un tamano de subbloque minimo disponible para X y el tamano de subbloque minimo disponible es 4 x 4, el tamano de subbloque minimo se establece en 4 x 4 si un valor decodificado de y es “0”, y el tamano de subbloque minimo se establece en 8 x 8 si el valor decodificado de y es “1”. Cuando el tamano de subbloque minimo disponible es 8 x 8, se usa “8” en lugar de “4” como X, y el tamano de subbloque minimo se establece en 8 x 8 si el valor decodificado de y es “0”.
15
[0490] Ademas, cuando el aparato de codificacion de video decodifica ampliaciones del tamano horizontal y
el tamano vertical, respectivamente, el tamano de subbloque minimo puede obtenerse decodificando por entropia las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
20 [0491] Ademas, cuando se codifica un valor de indice de una tabla preacordada entre el aparato de
codificacion de video y el aparato de decodificacion de video, el tamano de subbloque minimo puede obtenerse usando un valor decodificado como el valor de indice de la tabla.
[0492] En este caso, el tamano de subbloque minimo puede ser decodificado usando diversos 25 procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb
exponencial, etc.
[0493] La informacion de capa de partition maxima se decodifica usando codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de Huffman, etc., y puede ser decodificada
30 usando diversos procedimientos tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0494] Cuando el tamano de subbloque minimo reconstruido es N x N y la capa de particion maxima es x, el tamano de macrobloque es (Nx2x)x(Nx2x).
35
E-2-2-2) Procedimiento 2 de decodificacion de informacion de tamano de macrobloque
[0495] En lo sucesivo, se describe un procedimiento de decodificacion segun el segundo procedimiento de codificacion del tamano de macrobloque.
40
[0496] Segun el segundo procedimiento, un tamano M x N preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video se establece como el tamano de macrobloque de referencia, y una bandera que indica si usar el tamano de macrobloque de referencia se decodifica por entropia a partir de un encabezamiento de cada cuadro, un encabezamiento de sector, y un encabezamiento de macrobloque. Cuando un
45 valor de la bandera decodificada indica que no se usa el tamano de macrobloque de referencia, la informacion relacionada con el macrobloque se extrae decodificando por entropia la informacion de tamano de macrobloque, y se establece el tamano de macrobloque . Cuando el valor de la bandera decodificada indica que se usa el tamano de macrobloque de referencia, ello significa que la informacion de tamano de macrobloque no esta incluida en el tren de bits, de modo que un tamano de macrobloque de referencia preestablecido se establece como el tamano de 50 macrobloque y se lleva a cabo una serie de procesos de decodificacion.
[0497] Cuando el tamano de macrobloque de referencia esta incluido en el encabezamiento de secuencia y se transmite al aparato de decodificacion de video desde el aparato de codificacion de video, el tamano de macrobloque de referencia puede extraerse de una position preacordada tal como el encabezamiento de secuencia,
55 etc. dentro del tren de bits. Aqui, al tamano de macrobloque de referencia o el tamano de macrobloque actual se le asigna un valor decodificado por entropia, y el tamano de macrobloque puede obtenerse cambiando la escala (ampliando o reduciendo) un tamano predeterminado por el valor decodificado por entropia. Alternativamente, tal como se describe en el primer procedimiento anteriormente mencionado, cuando el aparato de codificacion de video codifica un valor generado aplicando una funcion logaritmica al valor de tamano de macrobloque, el valor de tamano
de macrobloque puede obtenerse usando una funcion exponencial.
[0498] Ademas, cuando el aparato de codificacion de video decodifica las ampliaciones del tamano horizontal y el tamano vertical, respectivamente, el tamano de macrobloque puede obtenerse decodificando por entropla las
5 ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
[0499] Ademas, cuando se codifica un valor de Indice de una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video, el tamano de macrobloque puede obtenerse usando un valor decodificado como el valor de indice de la tabla.
10
[0500] En este caso, el tamano de macrobloque que ha de transmitirse puede ser decodificado usando diversos procedimientos de codificacion tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
15 [0501] Ademas, cuando la informacion sobre el tamano de macrobloque de referencia o el tamano de
macrobloque corresponde a la informacion sobre el tamano de subbloque minimo y la capa de particion maxima, la informacion sobre un tamano de subbloque minimo de referencia segun el tamano de macrobloque de referencia o el tamano de subbloque minimo segun el tamano de macrobloque y la informacion sobre la capa de particion maxima se extraen y decodifican del tren de bits, y despues se decodifica el tamano de macrobloque.
20
[0502] Aqui, el tamano de subbloque minimo de referencia y el tamano de subbloque minimo pueden extraerse de una posicion preacordada tal como una secuencia dentro del tren de bits. Al tamano de subbloque minimo de referencia y el tamano de subbloque minimo actual se le puede asignar un valor decodificado por entropla. Alternativamente, tal como se describe en el primer procedimiento de decodificacion anteriormente
25 mencionado, cuando el aparato de codificacion de video codifica un valor generado aplicando una funcion logaritmica al valor de tamano de subbloque minimo, el valor de tamano de subbloque minimo puede obtenerse usando una funcion exponencial.
[0503] Ademas, cuando el aparato de codificacion de video decodifica las ampliaciones del tamano horizontal 30 y el tamano vertical, respectivamente, el tamano de subbloque minimo puede obtenerse decodificando por entropla
las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
[0504] Ademas, cuando se codifica un valor de indice de una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video, el tamano de subbloque minimo puede obtenerse
35 usando un valor decodificado como el valor de indice de la tabla.
[0505] En este caso, el tamano de subbloque minimo puede ser decodificado usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
40
[0506] La informacion de capa de particion maxima puede ser decodificada usando una codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de Huffman, etc., y diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
45
[0507] Cuando el tamano de subbloque minimo reconstruido es N x N y la capa de particion maxima es x, el tamano de macrobloque es (Nx2x)x(Nx2x).
D-2-2-3) Procedimiento 3 de decodificacion de informacion de tamano de macrobloque 50
[0508] En lo sucesivo, se describe un procedimiento de decodificacion segun el tercer procedimiento de codificacion del tamano de macrobloque.
[0509] Segun el tercer procedimiento, el aparato de decodificacion de video extrae del tren de bits una 55 bandera que indica si usar el tamano de macrobloque de referencia y/o informacion adicional que indica una
ampliacion o una reduccion por una relacion predeterminada con respecto al tamano de macrobloque de referencia, y despues puede extraerse el tamano de macrobloque usando la informacion anterior.
[0510] En primer lugar, un tamano N x N se establece como el tamano de macrobloque de referencia y la
bandera que indica si usar el tamano de macrobloque de referenda se decodifica en cada encabezamiento de cada cuadro, encabezamiento de sector, y encabezamiento de macrobloque. Cuando la bandera indica que se usa el tamano de macrobloque de referencia, el tamano de macrobloque actual se establece igual que el tamano de macrobloque de referencia y se lleva a cabo una decodificacion usando el tamano de macrobloque establecido en la 5 unidad de macrobloques. Sin embargo, cuando la bandera indica que no se usa el tamano de macrobloque de referencia, un valor ampliado o reducido con respecto al tamano de macrobloque de referencia por una relacion predeterminada preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video se establece como el tamano de macrobloque actual y se lleva a cabo una decodificacion en la unidad de macrobloques. Por ejemplo, un tamano ampliado o reducido dos veces respecto al tamano horizontal y el tamano
10 vertical del macrobloque de referencia puede establecerse como el tamano de macrobloque actual.
[0511] Cuando el aparato de codificacion de video usa diversas relaciones de ampliation o reduction, incluye una relacion seleccionada en el tren de bits, y codifica el tren de bits, el aparato de decodificacion de video puede obtener diversas relaciones decodificando del tren de bits el numero de bits preacordados entre el aparato de
15 codificacion de video y el aparato de decodificacion de video en una decodificacion de entropla de bandera.
[0512] Alternativamente, cuando la information que indica una relacion de ampliacion o una relacion de reduccion se incluye en el tren de bits y codificada ademas de la bandera que indica si usar el tamano de macrobloque de referencia, la relacion de ampliacion o la reduccion de reduccion puede ser decodificada o no segun
20 un valor de la bandera que indica si usar el tamano de macrobloque de referencia despues de que la bandera se decodifica. Si la relacion de ampliacion o la relacion de reduccion no se decodifica, el tamano de macrobloque de referencia se establece como el tamano de macrobloque actual y despues se llevan a cabo los procesos de decodificacion.
25 [0513] Cuando la bandera decodificada indica que el tamano de macrobloque de referencia es diferente del
tamano de macrobloque actual y la relacion decodificada es la relacion de ampliacion, el tamano de macrobloque de referencia se establece como el tamano de macrobloque mlnimo disponible para la codificacion o decodificacion del tren de bits actual, y despues se establece como el tamano de macrobloque actual un tamano ampliado respecto al tamano de macrobloque de referencia por la relacion decodificada por entropla. Por el contrario, cuando la relacion
30 decodificada por entropla es la relacion de reduccion, el tamano de macrobloque de referencia se establece como el tamano de macrobloque maximo disponible para la codificacion o decodificacion del tren de bits actual, y despues se establece como el tamano de macrobloque actual un tamano reducido con respecto al tamano de macrobloque de referencia por la relacion decodificada por entropla.
35 [0514] Segun una realization de la presente description, cuando una bandera que indica si establecer el
tamano de macrobloque de referencia se incluye en el encabezamiento de secuencia del tren de bits y despues transmitida, el decodificador decodifica por entropla la bandera del encabezamiento de secuencia. Y despues, cuando la bandera indica que el tamano de macrobloque de referencia esta establecido, el decodificado extrae la informacion de tamano de macrobloque de referencia de una position preacordada tal como el encabezamiento de
40 secuencia del tren de bits y establece el tamano de macrobloque de referencia usando la informacion extralda. Cuando la bandera indica que el tamano de macrobloque de referencia no esta establecido, puede usarse como el tamano de macrobloque de referencia un tamano predeterminado preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video, por ejemplo, un tamano 16 x 16.
45 [0515] Segun una realizacion de la presente descripcion, el aparato de decodificacion de video extrae del tren
de bits informacion que indica el tamano de macrobloque maximo disponible para la codificacion o decodificacion del tren de bits actual y puede usar la informacion extralda al establecer el tamano de macrobloque de referencia. Segun otra realizacion de la presente descripcion, el aparato de decodificacion de video extrae del tren de bits informacion que indica el tamano de macrobloque mlnimo disponible para la codificacion o decodificacion del tren de
50 bits actual y puede usar la informacion extralda al establecer el tamano de macrobloque de referencia. Segun otra realizacion mas de la presente descripcion, el aparato de decodificacion de video extrae del tren de bits informacion que indica tanto el tamano de macrobloque maximo como el tamano de macrobloque mlnimo disponibles para la codificacion o decodificacion del tren de bits actual y puede usar la informacion extralda al establecer el tamano de macrobloque de referencia.
55
[0516] En un procedimiento de decodificacion de default_MBsize, que es la informacion que indica el tamano
de macrobloque de referencia, un valor decodificado por entropla en si puede establecerse como un valor de tamano de macrobloque de referencia, y el tamano de macrobloque de referencia puede obtenerse mediante una ampliacion o una reduccion respecto a un tamano predeterminado usando el valor decodificado por entropla como
relacion de ampliacion o relacion de reduction. Alternativamente, tal como se describe en el primer procedimiento de decodificacion anteriormente mencionado, cuando el aparato de codification de video codifica un valor generado aplicando una funcion logarltmica al valor de tamano de macrobloque, el valor de tamano de macrobloque puede obtenerse usando una funcion exponencial.
5
[0517] Mas especlficamente, por ejemplo, cuando default_MBsize indica el tamano de macrobloque maximo disponible para la codificacion o decodificacion del tren de bits actual y el aparato de codificacion de video codifica y, que es un valor de log2(X/ default_MBsize) (X es cualquier numero entero positivo, que sea un multiplo de 2), el aparato de decodificacion de video puede obtener el default_MBsize decodificando por entropla y multiplicando X y
10 2y. En este caso, X puede ser un valor preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video como el tamano de macrobloque maximo disponible o un valor extraldo del tren de bits antes de decodificar default_MBsize.
[0518] Alternativamente, cuando default_MBsize indica el tamano de macrobloque mlnimo disponible para la 15 codificacion o decodificacion del tren de bits actual y el aparato de codificacion de video codifica y, que es un valor
de log2(X/default_MBsize) (X es cualquier numero entero positivo, que sea un multiplo de 2), el aparato de decodificacion de video extrae y del tren de bits mediante una decodificacion de entropla. Y despues, el aparato de decodificacion de video establece un valor generado multiplicando X y 2y como default_MBsize. En este caso, X puede ser un valor preacordado entre el aparato de codificacion de video y el aparato de decodificacion de video 20 como el tamano de macrobloque mlnimo disponible o un valor extraldo del tren de bits antes de decodificar default_MBsize.
[0519] Ademas, cuando el aparato de codificacion de video decodifica las ampliaciones del tamano horizontal y el tamano vertical, respectivamente, el tamano de macrobloque de referencia puede obtenerse decodificando por
25 entropla las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
[0520] Ademas, cuando se codifica un valor de Indice de una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video, el tamano de macrobloque de referencia puede obtenerse usando un valor decodificado como el valor de Indice de la tabla.
30
[0521] En este caso, el tamano de macrobloque de referencia puede ser decodificado usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
35 [0522] Ademas, cuando la information sobre el tamano de macrobloque de referencia o el tamano de
macrobloque corresponde a la informacion sobre el tamano de subbloque mlnimo y la capa de partition maxima, la informacion sobre un tamano de subbloque mlnimo de referencia segun el tamano de macrobloque de referencia o el tamano de subbloque mlnimo segun el tamano de macrobloque y la informacion sobre la capa de particion maxima se extraen y decodifican del tren de bits, y despues se decodifica el tamano de macrobloque.
40
[0523] En un procedimiento de decodificacion de default_minBlockSize, que es la informacion que indica el
tamano de subbloque mlnimo de referencia, un valor decodificado por entropla en si puede establecerse como un valor de tamano de subbloque mlnimo de referencia y el tamano de subbloque mlnimo de referencia puede obtenerse mediante una ampliacion o una reduccion respecto a un tamano predeterminado usando el valor 45 decodificado por entropla como relacion de ampliacion o relacion de reduccion. Alternativamente, tal como se describe en el primer procedimiento de decodificacion anteriormente mencionado, cuando el aparato de codificacion de video codifica un valor generado aplicando una funcion logarltmica al valor de tamano de subbloque mlnimo, el valor de tamano de subbloque mlnimo puede obtenerse usando una funcion exponencial.
50 [0524] Mas especlficamente, por ejemplo, cuando default_minBlockSize indica el tamano de subbloque
mlnimo maximo disponible para la codificacion o decodificacion del tren de bits actual y el aparato de codificacion de video codifica y, que es un valor de log2(X/ default_minBlockSize) (X es cualquier numero entero positivo, que sea un multiplo de 2), el aparato de decodificacion de video puede obtener el default_minBlockSize decodificando por entropla y multiplicando X y 2y. En este caso, X puede ser un valor preacordado entre el aparato de codificacion de 55 video y el aparato de decodificacion de video como el tamano de subbloque mlnimo maximo disponible o un valor extraldo del tren de bits antes de decodificar default_minBlockSize.
[0525] Alternativamente, cuando default_minBlockSize indica el tamano de subbloque mlnimo disponible para
la codificacion o decodificacion del tren de bits actual y el aparato de codificacion de video codifica y, que es un valor
de log2(X/ default_minBlockSize) (X es cualquier numero entero positivo, que sea un multiplo de 2), el aparato de decodificacion de video decodifica por entropla y extrae y del tren de bits mediante una decodificacion de entropla. Y despues, el aparato de decodificacion de video establece un valor generado multiplicando X y 2y como default_minBlockSize. En este caso, X puede ser un valor preacordado entre el aparato de codificacion de video y el 5 aparato de decodificacion de video como el tamano de subbloque minimo disponible o un valor extraido del tren de bits antes de decodificar default_minBlockSize.
[0526] Ademas, cuando el aparato de codificacion de video decodifica las ampliaciones del tamano horizontal y el tamano vertical, respectivamente, el tamano de subbloque minimo de referencia puede obtenerse decodificando
10 por entropia las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
[0527] Ademas, cuando se codifica un valor de indice de una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video, el tamano de subbloque minimo de referencia puede obtenerse usando un valor decodificado como el valor de indice de la tabla.
15
[0528] En este caso, el tamano de subbloque minimo de referencia puede ser decodificado usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
20 [0529] La informacion de capa de particion maxima puede ser decodificada usando una codificacion de
compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de Huffman, etc., y diversos procedimientos tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0530] Cuando el tamano de subbloque minimo reconstruido es N x N y la capa de particion maxima es x, el 25 tamano de macrobloque es (Nx2x)x(Nx2x).
D-2-2-4) Procedimiento 4 de decodificacion de informacion de tamano de macrobloque
[0531] En lo sucesivo, se describe un procedimiento de decodificacion segun el cuarto procedimiento de 30 codificacion del tamano de macrobloque.
[0532] Segun el cuarto procedimiento, despues de que una bandera que indica si usar el tamano de macrobloque de referencia y un tamano de macrobloque seleccionado en un caso en el que no se usa el tamano de macrobloque de referencia se codifican en un primer cuadro, una bandera que indica si usar un tamano de
35 macrobloque de un cuadro previo y un tamano de macrobloque de un cuadro actual en un caso en el que no se usa el tamano de macrobloque del cuadro previo pueden codificarse a partir de un segundo cuadro.
[0533] Cuando la bandera que indica si usar el tamano de macrobloque de referencia indica que se usa el tamano de macrobloque de referencia, el tamano de macrobloque se establece igualmente en el tamano de
40 macrobloque de referencia y despues se inicia la decodificacion de un primer cuadro.
[0534] A partir de un segundo cuadro, se decodifica una bandera que indica si usar un tamano de macrobloque de un cuadro previo como un tamano de macrobloque de un cuadro actual y despues se decodifica la informacion de tamano de macrobloque para una decodificacion del cuadro actual cuando no se usa el tamano de
45 macrobloque del cuadro previo. Cuando se usa el tamano de macrobloque del cuadro previo para la decodificacion del cuadro actual, un tamano de macrobloque se establece en un valor igual al tamano de macrobloque del cuadro previo y se decodifica un segundo cuadro.
[0535] En un procedimiento de decodificacion de default_MBsize, que es la informacion que indica el tamano 50 de macrobloque de referencia, o MB_size, que es la informacion que indica el tamano de macrobloque del cuadro
actual, un valor decodificado por entropia puede usarse como el valor de tamano de macrobloque y el tamano de macrobloque puede obtenerse mediante una ampliacion o una reduccion respecto a un tamano predeterminado usando el valor decodificado por entropia como relacion de ampliacion o relacion de reduccion. Alternativamente, tal como se describe en el primer procedimiento de decodificacion anteriormente mencionado, cuando el aparato de 55 codificacion de video codifica un valor generado aplicando una funcion logaritmica al valor de tamano de macrobloque, el valor de tamano de macrobloque puede obtenerse usando una funcion exponencial.
[0536] Ademas, cuando el aparato de codificacion de video decodifica las ampliaciones del tamano horizontal y el tamano vertical, respectivamente, el tamano de macrobloque de referencia puede obtenerse decodificando por
entropla las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
[0537] Ademas, cuando se codifica un valor de Indice de una tabla preacordada entre el aparato de codificacion de video y el aparato de decodificacion de video, el tamano de macrobloque de referencia puede
5 obtenerse usando un valor decodificado como el valor de indice de la tabla.
[0538] En este caso, el tamano de macrobloque de referencia puede ser decodificado usando diversos procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
10
[0539] Ademas, cuando la informacion de tamano de macrobloque corresponde a la information sobre el tamano de subbloque minimo y la capa de partition maxima, la informacion de tamano de subbloque minimo y la informacion de capa de particion maxima se decodifican por entropla del tren de bits y despues se decodifica el tamano de macrobloque.
15
[0540] En un procedimiento de decodificacion de default_minBlockSize, que es la informacion que indica el tamano de subbloque minimo de referencia, o de minblockSize, que es la informacion que indica el tamano de subbloque minimo del cuadro actual, un valor decodificado por entropla puede usarse como el tamano de subbloque minimo y el tamano de subbloque minimo puede obtenerse mediante una ampliation o una reduction respecto a un
20 tamano predeterminado usando el valor decodificado por entropla como relation de ampliacion o relation de reduccion. Alternativamente, tal como se describe en el primer procedimiento de decodificacion anteriormente mencionado, cuando el aparato de codificacion de video codifica un valor generado aplicando una funcion logaritmica al valor de tamano de subbloque minimo, el valor de tamano de subbloque minimo puede obtenerse usando una funcion exponencial.
25
[0541] Ademas, cuando el aparato de codificacion de video decodifica las ampliaciones del tamano horizontal y el tamano vertical, respectivamente, el tamano de subbloque minimo de referencia puede obtenerse decodificando por entropla las ampliaciones del tamano horizontal y el tamano vertical, respectivamente.
30 [0542] Ademas, cuando se codifica un valor de indice de una tabla preacordada entre el aparato de
codificacion de video y el aparato de decodificacion de video, el tamano de subbloque minimo de referencia puede obtenerse usando un valor decodificado como el valor de indice de la tabla.
[0543] En este caso, el tamano de subbloque minimo de referencia puede ser decodificado usando diversos 35 procedimientos de codificacion binaria tales como un codigo unario, un codigo unario truncado, un codigo de Golomb
exponencial, etc.
[0544] La informacion de capa de particion maxima puede ser decodificada usando una codificacion de compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de Huffman, etc., y diversos
40 procedimientos tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0545] Cuando el tamano de subbloque minimo reconstruido es N x N y la capa de particion maxima es x, el tamano de macrobloque es (Nx2x)x(Nx2x).
45 D-2-2-5) Procedimiento 5 de decodificacion de informacion de tamano de macrobloque
[0546] En lo sucesivo, se describe un procedimiento de decodificacion segun el quinto procedimiento de codificacion del tamano de macrobloque.
50 [0547] Segun el quinto procedimiento, los tamanos de macrobloque del cuadro intra y el cuadro inter se
extraen de posiciones preacordadas dentro del tren de bits entre el aparato de codificacion de video y el aparato de decodificacion de video, respectivamente, y se establece un tamano de macrobloque segun el tipo de cuadro.
[0548] Las banderas que indican si decodificar un tamano de macrobloque para el cuadro intra y que indican
55 si decodificar un tamano de macrobloque para el cuadro inter se reconstruyen en el encabezamiento de secuencia o el encabezamiento de cuadro, respectivamente, y despues el tamano de macrobloque para el cuadro intra y el cuadro inter se decodifica segun un valor de la bandera a traves del tren de bits o la imagen se reconstruye usando un tamano de macrobloque preacordado.
[0549] Puede usarse un procedimiento de decodificacion de informacion sobre el tamano de macrobloque del
cuadro intra y el tamano de macrobloque del cuadro inter en combinacion con los procedimientos de decodificacion anteriormente mencionados segun los procedimientos de codificacion anteriormente mencionados.
5 [0550] Ademas, cuando la informacion sobre el tamano de macrobloque intra o el tamano de macrobloque
inter corresponde a la informacion sobre el tamano de subbloque mlnimo y la capa de particion maxima, la informacion de tamano de subbloque mlnimo y la informacion de capa de particion maxima se decodifican por entropla del tren de bits y despues se decodifica el tamano de macrobloque.
10 [0551] Puede usarse un procedimiento de decodificacion de informacion sobre el tamano de subbloque
mlnimo del cuadro intra o el tamano de subbloque mlnimo del cuadro inter en combinacion con los procedimientos de decodificacion anteriormente mencionados segun los procedimientos de codificacion anteriormente mencionados.
[0552] La informacion de capa de particion maxima puede ser decodificada usando una codificacion de 15 compresion sin perdidas tal como una codificacion aritmetica binaria, una codificacion de Huffman, etc., y diversos
procedimientos tales como un codigo unario, un codigo unario truncado, un codigo de Golomb exponencial, etc.
[0553] Cuando el tamano de subbloque mlnimo reconstruido es N x N y la capa de particion maxima es x, el tamano de macrobloque es (Nx2x)x(Nx2x).
20
D-2-3) Diagrama de flujo para ilustrar la operacion de decodificacion
[0554] Mientras tanto, un procedimiento de decodificacion de video segun un aspecto de la presente descripcion puede incluir extraer del tren de bits informacion sobre un tamano de macrobloque y configurar un
25 tamano de macrobloque usando la informacion extraida en la etapa S3810, extraer del tren de bits datos de imagen codificados y generar una imagen reconstruida decodificando los datos de imagen codificados segun un tamano de bloque identificado por la informacion sobre el tamano de bloque en la etapa S3820.
[0555] Resultara evidente para los expertos en la materia que los aspectos respectivos de determinacion del 30 tamano de macrobloque y codificacion y decodificacion de informacion sobre el tamano de macrobloque pueden
implementarse de diversas maneras combinandolos con los aspectos respectivos de division del macrobloque y codificacion y decodificacion de la informacion de particion de macrobloque segun los aspectos anteriormente mencionados de la presente descripcion.
35 [0556] Las caracteristicas principales de la presente descripcion se resumen como sigue.
[0557] Emplear bloques que tienen un tamano variable (por ejemplo macrobloque, que es la unidad de
codificacion/decodificacion).
40 [0558] Determinar un tamano de bloque que tiene un tamano variable y codificar la informacion de tamano.
[0559] Dividir un bloque que tiene un tamano determinado en subbloques y codificar la informacion de
particion.
45 [0560] Mientras tanto, como ejemplo del macrobloque dividido segun aspectos de la presente descripcion, la
division para la prediccion o la transformada se ha descrito en los aspectos anteriormente mencionados. Sin embargo, la prediccion o la transformada solo es un ejemplo al cual puede aplicarse la division, pero el macrobloque puede ser dividido para diversos fines ademas de la prediccion o la transformada. Ademas, un objeto que ha de ser dividido no solo es el macrobloque sino tambien cualquier area de imagen. Por ejemplo, incluso cuando un bloque 50 que tiene un tamano predeterminado, que corresponde a la unidad de prediccion, es dividido en subbloques para una transformada eficiente, puede usarse la division segun los aspectos de la presente descripcion.
[0561] En otras palabras, la presente descripcion proporciona diversos procedimientos de division y un procedimiento y un aparato para codificar y decodificar eficientemente la informacion sobre la division cuando es
55 necesario dividir un bloque de imagen en subbloques para cualquier fin.
[0562] Mientras tanto, un aparato de codificacion/decodificacion de video segun un aspecto de la presente descripcion puede implementarse conectando un terminal de entrada de un aparato de decodificacion de video segun un aspecto de la presente descripcion con un terminal de salida de un aparato de decodificacion de video
segun un aspecto de la presente descripcion.
[0563] Un aparato de codificacion/decodificacion de video segun un aspecto de la presente descripcion incluye un codificador de video para codificar una imagen mediante la generacion de unos datos de imagen
5 codificados codificando un bloque actual dividido en una pluralidad de subbloques y la generacion de unos datos de information de partition codificados codificando una information de partition del bloque actual; y un decodificador de video para decodificar la imagen mediante la reconstruction de la informacion de particion del bloque actual decodificando los datos de informacion de particion codificados extraidos de un tren de bits y la reconstruccion del bloque actual dividido en la pluralidad de subbloques decodificando los datos de imagen codificados extraidos del
10 tren de bits, segun una informacion de particion reconstruida del bloque actual.
[0564] Un procedimiento de codificacion/decodificacion de video segun un aspecto de la presente descripcion incluye la codification de una imagen mediante la generacion de unos datos de imagen codificados codificando un bloque actual dividido en una pluralidad de subbloques y la generacion de unos datos de informacion de particion
15 codificados codificando una informacion de particion del bloque actual; y la decodificacion de la imagen mediante la reconstruccion de la informacion de particion del bloque actual decodificando los datos de informacion de particion codificados extraidos de un tren de bits y la reconstruccion del bloque actual dividido en la pluralidad de subbloques decodificando los datos de imagen codificados extraidos del tren de bits, segun una informacion de particion reconstruida del bloque actual.
20
[0565] En la descripcion anterior, aunque todos los componentes de las realizaciones de la presente descripcion pueden haber sido explicados como montados o conectados operativamente como una unidad, la presente descripcion no pretende limitarse a tales realizaciones. En cambio, dentro del alcance objetivo de la presente descripcion, los componentes respectivos pueden combinarse selectiva y operativamente en cualquier
25 numero. Cada uno de los componentes tambien puede implementarse en si mismo en hardware mientras que los componentes respectivos pueden combinarse en parte o como un todo selectivamente e implementarse en un programa informatico que tiene modulos de programa para ejecutar funciones de los equivalentes de hardware. Los codigos o segmentos de codigo para constituir tal programa pueden ser deducidos facilmente por un experto en la materia. El programa informatico puede ser almacenado en medios legibles por ordenador, que en funcionamiento
30 pueden hacer realidad los aspectos de la presente descripcion. Como medios legibles por ordenador, los candidatos incluyen medios de grabacion magnetica, medios de grabacion optica, y medios de onda portadora.
[0566] Ademas, los terminos como “incluir”, “comprender”, y “tener” deberian interpretarse por defecto como inclusivos o abiertos mas que exclusivos o cerrados a menos que se defina expresamente lo contrario. Todos los
35 terminos que son tecnicos, cientificos o de otro tipo estan de acuerdo con los significados tal como son entendidos por un experto en la materia a menos que se defina lo contrario. Los terminos comunes tal como se encuentran en los diccionarios deberian interpretarse en el contexto de los escritos tecnicos relacionados de manera no demasiado ideal o poco practica a menos que la presente descripcion los defina expresamente asi.
40 [0567] Aunque los aspectos ejemplares de la presente descripcion se han descrito con fines ilustrativos, los
expertos en la materia apreciaran que son posibles diversas modificaciones, anadidos y sustituciones, sin apartarse de las caracteristicas esenciales de la descripcion. Por lo tanto, los aspectos ejemplares de la presente descripcion no se han descrito con fines limitativos. Por consiguiente, el alcance de la descripcion no ha de estar limitado por los aspectos anteriores sino por las reivindicaciones y los equivalentes de las mismas.
45
[Aplicacion industrial]
[0568] Tal como se describe anteriormente, la presente descripcion es sumamente util para aplicacion en los
campos de un procesamiento de compresion de imagen para codificar y decodificar un video de alta resolution
50 codificando y decodificando informacion de particion de bloque al codificar una imagen de alta resolucion usando macrobloques de tamano variable, lo cual genera un efecto de mejora de la eficiencia de compresion.

Claims (4)

  1. REIVINDICACIONES
    1. Un aparato de codificacion de video (2600), que comprende:
    5 un determinador de capa de particion maxima (2620) para determinar un valor de capa de particion maxima y un tamano de subbloque mlnimo para codificar un bloque actual, en el que el valor de capa de particion maxima indica el numero de capas por las cuales el bloque actual puede ser dividido al maximo en subbloques usando una estructura en arbol, teniendo los subbloques un tamano igual o mayor que el tamano de subbloque mlnimo; un codificador de capa de particion maxima (2630) para codificar el valor de capa de particion maxima y un valor de 10 una funcion logarltmica del tamano de subbloque mlnimo dentro de un tren de bits para indicar el tamano del bloque actual en el tren de bits; y
    un codificador de video (2610) para generar datos de imagen codificados codificando los subbloques respectivos dentro del bloque actual que tienen un tamano igual o mayor que el tamano de subbloque minimo, y para codificar la informacion de particion que indica la particion del bloque actual en los subbloques respectivos por la estructura en 15 arbol.
  2. 2. El aparato (2600) de la reivindicacion 1, en el que el valor de la funcion logaritmica del tamano de subbloque minimo que ha de codificarse es log2(minblockSize / X) donde minblockSize indica el tamano de subbloque mlnimo y X es un numero entero positivo predeterminado que es un multiplo de 2.
    20
  3. 3. El aparato (2600) de la reivindicacion 1, en el que el valor de capa de particion maxima y el valor de la funcion logarltmica del tamano de subbloque minimo se codifican usando un codigo de Golomb exponencial.
  4. 4. El aparato (2600) de la reivindicacion 1, en el que el bloque actual tiene un tamano de 16x16, 32x 32, 25 o 64x64.
ES15183128.6T 2009-10-01 2010-10-01 Aparato para codificación de imagen usando una capa dividida Active ES2625010T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20090093987 2009-10-01
KR20090093987 2009-10-01
KR20090093982 2009-10-01
KR20090093982 2009-10-01

Publications (1)

Publication Number Publication Date
ES2625010T3 true ES2625010T3 (es) 2017-07-18

Family

ID=44044435

Family Applications (3)

Application Number Title Priority Date Filing Date
ES15183128.6T Active ES2625010T3 (es) 2009-10-01 2010-10-01 Aparato para codificación de imagen usando una capa dividida
ES15183122.9T Active ES2628515T3 (es) 2009-10-01 2010-10-01 Aparato para decodificación de imagen usando una capa dividida
ES10820868.7T Active ES2554237T3 (es) 2009-10-01 2010-10-01 Método y aparato para codificar/decodificar imagen usando una capa dividida

Family Applications After (2)

Application Number Title Priority Date Filing Date
ES15183122.9T Active ES2628515T3 (es) 2009-10-01 2010-10-01 Aparato para decodificación de imagen usando una capa dividida
ES10820868.7T Active ES2554237T3 (es) 2009-10-01 2010-10-01 Método y aparato para codificar/decodificar imagen usando una capa dividida

Country Status (8)

Country Link
US (3) US9264716B2 (es)
EP (3) EP2485490B1 (es)
KR (2) KR101698499B1 (es)
CN (4) CN104602013B (es)
ES (3) ES2625010T3 (es)
HU (3) HUE026080T2 (es)
PL (3) PL2485490T3 (es)
WO (1) WO2011040795A2 (es)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9549190B2 (en) * 2009-10-01 2017-01-17 Sk Telecom Co., Ltd. Method and apparatus for encoding/decoding image using variable-size macroblocks
US8971656B2 (en) * 2009-12-10 2015-03-03 Sk Telecom Co., Ltd. Encoding/decoding method and apparatus using a tree structure
KR101487687B1 (ko) 2010-01-14 2015-01-29 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
AU2015202094B2 (en) * 2010-04-13 2016-11-17 Samsung Electronics Co., Ltd. Video-encoding method and video-encoding apparatus based on encoding units determined in accordance with a tree structure, and video-decoding method and video-decoding apparatus based on encoding units determined in accordance with a tree structure
DK3301648T3 (da) 2010-04-13 2020-04-06 Ge Video Compression Llc Nedarvning i samplearraymultitræsunderinddeling
KR102145722B1 (ko) 2010-04-13 2020-08-20 지이 비디오 컴프레션, 엘엘씨 샘플 영역 병합
BR112012025407B1 (pt) 2010-04-13 2022-03-22 Samsung Electronics Co, Ltd Método de decodificação de vídeo baseado em unidades de codificação determinadas de acordo com uma estrutura de árvore
KR102282803B1 (ko) 2010-04-13 2021-07-28 지이 비디오 컴프레션, 엘엘씨 평면 간 예측
CN106231336B (zh) 2010-04-13 2020-06-12 Ge视频压缩有限责任公司 解码器、解码方法、编码器以及编码方法
KR101824241B1 (ko) * 2011-01-11 2018-03-14 에스케이 텔레콤주식회사 인트라 부가정보 부호화/복호화 장치 및 방법
HUE052897T2 (hu) 2011-06-27 2021-05-28 Samsung Electronics Co Ltd Mozgásinformáció kódolása és dekódolása
US9392301B2 (en) * 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
US9456212B2 (en) * 2011-09-30 2016-09-27 Broadcom Corporation Video coding sub-block sizing based on infrastructure capabilities and current conditions
KR101268588B1 (ko) * 2012-02-28 2013-05-28 전자부품연구원 무손실 영상 압축 장치 및 방법
CA2868255C (en) * 2012-04-13 2018-04-17 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, and image decoding method
KR102028123B1 (ko) 2012-04-23 2019-10-04 삼성전자주식회사 다시점 비디오 부호화 방법 및 장치, 다시점 비디오 복호화 방법 및 장치
WO2013162272A1 (ko) * 2012-04-24 2013-10-31 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
ES2912082T3 (es) 2012-06-26 2022-05-24 Lg Electronics Inc Método de decodificación de vídeo, método de codificación de vídeo y medio de almacenamiento legible por decodificador que almacena información de video codificada
FR2993084A1 (fr) * 2012-07-09 2014-01-10 France Telecom Procede de codage video par prediction du partitionnement d'un bloc courant, procede de decodage, dispositifs de codage et de decodage et programmes d'ordinateur correspondants
CN108282655B (zh) * 2012-09-26 2021-09-10 威勒斯媒体国际有限公司 图像编码和/或解码装置及方法
KR101420718B1 (ko) * 2012-12-21 2014-07-23 성균관대학교산학협력단 스케일러블 비디오 부호화 및 복호화 방법, 그리고 이를 이용한 장치
KR102116985B1 (ko) 2013-08-16 2020-05-29 삼성전자 주식회사 비디오 인코딩을 위한 인트라 리프레쉬 방법
CN105519114A (zh) 2013-09-10 2016-04-20 株式会社Kt 用于对可扩展视频信号进行编码/解码的方法及装置
EP3058739B1 (en) 2013-10-14 2019-08-07 Microsoft Technology Licensing, LLC Features of intra block copy prediction mode for video and image coding and decoding
WO2015054813A1 (en) 2013-10-14 2015-04-23 Microsoft Technology Licensing, Llc Encoder-side options for intra block copy prediction mode for video and image coding
KR102353787B1 (ko) 2014-01-03 2022-01-19 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩/디코딩에서의 블록 벡터 예측
CN104811731A (zh) * 2014-01-03 2015-07-29 上海天荷电子信息有限公司 多层次子块匹配图像压缩方法
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
KR102311815B1 (ko) 2014-06-19 2021-10-13 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 통합된 인트라 블록 카피 및 인터 예측 모드
US10812817B2 (en) 2014-09-30 2020-10-20 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
EP3270593A4 (en) * 2015-03-13 2018-11-07 LG Electronics Inc. Method of processing video signal and device for same
US10440407B2 (en) 2017-05-09 2019-10-08 Google Llc Adaptive control for immersive experience delivery
US10546424B2 (en) 2015-04-15 2020-01-28 Google Llc Layered content delivery for virtual and augmented reality experiences
US10469873B2 (en) * 2015-04-15 2019-11-05 Google Llc Encoding and decoding virtual reality video
US10444931B2 (en) 2017-05-09 2019-10-15 Google Llc Vantage generation and interactive playback
US10419737B2 (en) 2015-04-15 2019-09-17 Google Llc Data structures and delivery methods for expediting virtual reality playback
US10567464B2 (en) 2015-04-15 2020-02-18 Google Llc Video compression with adaptive view-dependent lighting removal
US10412373B2 (en) 2015-04-15 2019-09-10 Google Llc Image capture for virtual reality displays
US10540818B2 (en) 2015-04-15 2020-01-21 Google Llc Stereo image generation and interactive playback
CN105721866B (zh) * 2016-02-01 2019-02-12 北京奇艺世纪科技有限公司 一种编码单元划分方法及装置
CN109155857B (zh) * 2016-03-11 2023-05-30 数字洞察力有限公司 视频编码方法以及装置
US10880548B2 (en) 2016-06-01 2020-12-29 Samsung Electronics Co., Ltd. Methods and apparatuses for encoding and decoding video according to coding order
EP4236321A3 (en) 2016-08-31 2023-09-13 KT Corporation Method and device for processing video signal
KR102531386B1 (ko) * 2016-10-04 2023-05-12 주식회사 비원영상기술연구소 영상 데이터 부호화/복호화 방법 및 장치
KR20230026551A (ko) * 2016-10-04 2023-02-24 주식회사 비원영상기술연구소 영상 데이터 부호화/복호화 방법 및 장치
KR102559062B1 (ko) * 2016-11-25 2023-07-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
EP3383044A1 (en) * 2017-03-27 2018-10-03 Thomson Licensing Reducing redundancy between tree types
US10474227B2 (en) 2017-05-09 2019-11-12 Google Llc Generation of virtual reality with 6 degrees of freedom from limited viewer data
CA3153608A1 (en) * 2017-07-06 2019-01-10 Samsung Electronics Co., Ltd. Image encoding method and apparatus, and image decoding method and apparatus
US11044475B2 (en) 2017-07-17 2021-06-22 Industry-University Cooperation Foundation Hanyang University Method and apparatus for encoding/decoding image
KR102380233B1 (ko) 2017-07-19 2022-03-29 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
CN108282265B (zh) * 2018-01-19 2020-11-03 广东工业大学 纠错编码方法、装置、设备及计算机可读存储介质
KR102202553B1 (ko) 2018-03-05 2021-01-13 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
CN110662075B (zh) * 2018-06-29 2023-04-25 北京字节跳动网络技术有限公司 改进的时域运动矢量预测推导
CN116962690A (zh) * 2018-09-21 2023-10-27 Lg电子株式会社 视频解码和编码方法、存储介质及数据的发送方法
US11483567B2 (en) 2018-09-22 2022-10-25 Lg Electronics Inc. Method and apparatus for processing video signals on basis of inter prediction
US10931954B2 (en) * 2018-11-20 2021-02-23 Sony Corporation Image coding modes selection for an embedded codec circuitry
EP3900333A4 (en) * 2019-02-15 2022-05-25 Huawei Technologies Co., Ltd. ENCODERS, DECODERS AND RELATIVE METHODS FOR LIMITING THE SIZE OF SUBDIVISIONS FROM A TOOL WITH INTRADIVISION CODING MODE
MY189399A (en) * 2019-03-21 2022-02-09 Samsung Electronics Co Ltd Method and device for encoding video having block size set for each block shape, and method and device for decoding video
US11533214B2 (en) * 2019-06-14 2022-12-20 Qatar Foundation For Education, Science And Community Development Spectral efficient uplink multiple access techniques using index modulation
JP7450078B1 (ja) 2023-02-15 2024-03-14 Nttイノベーティブデバイス株式会社 映像符号化装置、および、映像符号化方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506624A (en) * 1994-07-28 1996-04-09 Silicon Graphics, Inc. Rotating sample of video images
JPH08205140A (ja) 1995-01-31 1996-08-09 Canon Inc 画像圧縮装置
US6911987B1 (en) * 1995-07-05 2005-06-28 Microsoft Corporation Method and system for transmitting data for a shared application
KR100186267B1 (ko) 1995-09-07 1999-05-01 김주용 적응적인 블록분할에 의한 움직임 추정 및 보상방법
EP0905651A3 (en) * 1997-09-29 2000-02-23 Canon Kabushiki Kaisha Image processing apparatus and method
AU2003208500A1 (en) * 2002-03-05 2003-09-16 Koninklijke Philips Electronics N.V. Method and system for layered video encoding
US7362909B2 (en) * 2003-04-10 2008-04-22 Sharp Kabushiki Kaisha Coding device and method and decoding device and method
HUP0301368A3 (en) * 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
TWI232675B (en) * 2003-12-02 2005-05-11 Univ Nat Chiao Tung Video compression device and method
US8116374B2 (en) 2004-05-07 2012-02-14 Broadcom Corporation Method and system for generating a transform size syntax element for video decoding
CN100401780C (zh) * 2004-05-07 2008-07-09 美国博通公司 在视频解码器中动态选择变换尺寸的方法和系统
DE102004038110B3 (de) * 2004-08-05 2005-12-29 Siemens Ag Verfahren zum Codieren und Decodieren, sowie Codier- und Decodiervorrichtung zur Videocodierung
CN101053258A (zh) * 2004-11-04 2007-10-10 皇家飞利浦电子股份有限公司 用于处理编码的视频数据的方法和设备
KR100679031B1 (ko) * 2004-12-03 2007-02-05 삼성전자주식회사 다 계층 기반의 비디오 인코딩 방법, 디코딩 방법 및 상기방법을 이용한 장치
CN101268698A (zh) * 2005-05-19 2008-09-17 Lg电子株式会社 用于视频数据编码/解码的方法
KR100705971B1 (ko) * 2005-07-20 2007-04-12 주식회사 휴맥스 비트스트림 인코딩/디코딩 방법 및 장치
US7642396B2 (en) 2005-08-31 2010-01-05 Kimberly-Clark Worldwide, Inc. Method and device for detecting the presence of multiple insults in an absorbent article
EP2720467B1 (en) * 2005-09-26 2017-03-29 Mitsubishi Electric Corporation Moving image decoding apparatus
EP1809041A1 (en) * 2006-01-11 2007-07-18 Mitsubishi Electric Information Technology Centre Europe B.V. Error concealement for scalable video coding
CN101507280B (zh) * 2006-08-25 2012-12-26 汤姆逊许可公司 用于降低分辨率划分的方法和装置
JP4825644B2 (ja) * 2006-11-14 2011-11-30 ルネサスエレクトロニクス株式会社 画像復号装置、画像符号化装置、およびシステムlsi
EP2106666B1 (en) * 2007-01-08 2019-06-12 Nokia Technologies Oy Improved inter-layer prediction for extended spatial scalability in video coding
JP5162924B2 (ja) 2007-02-28 2013-03-13 Jfeスチール株式会社 缶用鋼板およびその製造方法
US7983496B2 (en) * 2007-06-26 2011-07-19 Mitsubishi Electric Research Laboratories, Inc. Inverse tone mapping for bit-depth scalable image coding adapted to variable block sizes
US7991237B2 (en) * 2007-06-28 2011-08-02 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
US7639915B2 (en) 2007-06-28 2009-12-29 Draka Comteq B.V. Optical fiber cable having a deformable coupling element
KR101408698B1 (ko) * 2007-07-31 2014-06-18 삼성전자주식회사 가중치 예측을 이용한 영상 부호화, 복호화 방법 및 장치
JP5056348B2 (ja) * 2007-10-29 2012-10-24 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP2009272702A (ja) * 2008-04-30 2009-11-19 Canon Inc 動きベクトル探索装置及びその制御方法
KR101517768B1 (ko) * 2008-07-02 2015-05-06 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US20100086031A1 (en) * 2008-10-03 2010-04-08 Qualcomm Incorporated Video coding with large macroblocks
US8503527B2 (en) * 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US8945735B2 (en) 2009-02-23 2015-02-03 Samsung Sdi Co., Ltd. Built-in charge circuit for secondary battery and secondary battery with the built-in charge circuit
KR101474756B1 (ko) * 2009-08-13 2014-12-19 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR20110017719A (ko) * 2009-08-14 2011-02-22 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US8971656B2 (en) * 2009-12-10 2015-03-03 Sk Telecom Co., Ltd. Encoding/decoding method and apparatus using a tree structure
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
US9380314B2 (en) * 2010-12-20 2016-06-28 Texas Instruments Incorporated Pixel retrieval for frame reconstruction

Also Published As

Publication number Publication date
US20120269274A1 (en) 2012-10-25
US20150341637A1 (en) 2015-11-26
US10136129B2 (en) 2018-11-20
CN102918840A (zh) 2013-02-06
WO2011040795A2 (ko) 2011-04-07
PL2485490T3 (pl) 2016-03-31
EP2485490A4 (en) 2013-10-30
HUE026080T2 (en) 2016-05-30
EP2991353A1 (en) 2016-03-02
EP2485490A2 (en) 2012-08-08
US9264716B2 (en) 2016-02-16
US20150195543A1 (en) 2015-07-09
KR20160114559A (ko) 2016-10-05
CN104683809B (zh) 2018-04-10
CN104683808A (zh) 2015-06-03
PL2991353T3 (pl) 2017-09-29
CN104602013B (zh) 2017-10-31
EP2993904A1 (en) 2016-03-09
KR20110036520A (ko) 2011-04-07
ES2554237T3 (es) 2015-12-17
ES2628515T3 (es) 2017-08-03
WO2011040795A3 (ko) 2011-09-15
HUE034567T2 (en) 2018-02-28
HUE033566T2 (hu) 2017-12-28
CN102918840B (zh) 2016-05-25
CN104683808B (zh) 2018-02-02
EP2991353B1 (en) 2017-03-08
EP2993904B1 (en) 2017-03-22
KR101698509B1 (ko) 2017-01-23
CN104683809A (zh) 2015-06-03
PL2993904T3 (pl) 2017-09-29
KR101698499B1 (ko) 2017-01-23
EP2485490B1 (en) 2015-09-30
US9813710B2 (en) 2017-11-07
CN104602013A (zh) 2015-05-06

Similar Documents

Publication Publication Date Title
ES2625010T3 (es) Aparato para codificación de imagen usando una capa dividida
ES2823231T3 (es) Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable
KR101479129B1 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
ES2816567T3 (es) Método y aparato para decodificar modo de intra-predicción
JP5886308B2 (ja) ビデオコーディングにおける並列コンテキスト計算
ES2805055T3 (es) Aparato de decodificación de imágenes
KR101960825B1 (ko) 인코딩 및 디코딩 방법과 장치
ES2710214T3 (es) Aparato de decodificación de imágenes
KR20130054981A (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치