ES2747977T3 - Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable - Google Patents

Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable Download PDF

Info

Publication number
ES2747977T3
ES2747977T3 ES15182719T ES15182719T ES2747977T3 ES 2747977 T3 ES2747977 T3 ES 2747977T3 ES 15182719 T ES15182719 T ES 15182719T ES 15182719 T ES15182719 T ES 15182719T ES 2747977 T3 ES2747977 T3 ES 2747977T3
Authority
ES
Spain
Prior art keywords
size
macroblock
block
minimum
image
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
ES15182719T
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 ES2747977T3 publication Critical patent/ES2747977T3/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/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/136Incoming video signal characteristics or properties
    • 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/146Data rate or code amount at the encoder output
    • 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
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/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/177Methods 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 group of pictures [GOP]
    • 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/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

Un procedimiento de codificación de un vídeo que incluye una secuencia de imágenes que tienen una sola resolución dividiendo cada una de las imágenes en la unidad de bloques, comprendiendo el procedimiento: determinar un tamaño de macrobloque en la unidad de toda la secuencia de imágenes para codificar datos de imagen de la secuencia; codificar una primera información que indica un tamaño de macrobloque de referencia y una segunda información que indica una relación del tamaño de macrobloque al tamaño de macrobloque de referencia, para indicar el tamaño de macrobloque, en el que: el tamaño de macrobloque de referencia es un tamaño de macrobloque mínimo, la segunda información se codifica como un valor de log2 (MBsize/X) donde MBsize es el tamaño de macrobloque, X es el tamaño de macrobloque de referencia, y tanto MBsize como X son un número de píxeles en una dimensión, y la primera y la segunda información se codifican en un encabezamiento de la secuencia en un tren de bits; y codificar en el tren de bits los datos de imagen de la secuencia dividiendo todas y cada una de las imágenes en la unidad de macrobloques que tienen el tamaño de macrobloque.

Description

DESCRIPCIÓN
Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable [Campo técnico]
[0001] La presente invención se refiere a un aparato y un procedimiento para codificación / decodificación de una imagen utilizando macrobloques de tamaño variable. Más particularmente, la presente invención se refiere a un aparato y un procedimiento para codificar y decodificar eficientemente una imagen de alta resolución utilizando bloques de tamaño variable.
[Antecedentes de la técnica]
[0002] Las declaraciones de esta sección proporcionan simplemente información de antecedentes relacionada con la presente invención y pueden no constituir técnica anterior.
[0003] Las tecnologías para comprimir datos de vídeo incluyen H.261, H.263, H.264, MPEG-2, MPEG-4, etc. Según tales estándares de compresión de vídeo, cada imagen se divide y codifica en macrobloques de tamaño fijo formados por áreas rectangulares que tienen 16x16 píxeles de tamaño de componente de luminancia y 8x8 píxeles de tamaño de componente de crominancia. Todas las componentes de luminancia y todas las componentes de crominancia de cada macrobloque se predicen espacial o temporalmente, y después un residuo predicho sufre una transformada, una cuantificación, una codificación por entropía y finalmente una transmisión.
[0004] El documento US2006 / 133503A1 describe un procedimiento para codificar una señal de vídeo empleando un esquema de predicción entre capas. Del documento WO03 / 045069A2 se conoce un esquema de compresión que utiliza bloques de píxeles de tamaño adaptable basados en la relación de contraste local. El estándar H.264 / AVC promulgada más recientemente prescribe que un aparato de codificación utilice un bloque de 16x16 píxeles para el tamaño de macrobloque fijo y subdivida cada macrobloque en bloques más pequeños para los que se lleva a cabo una predicción intra o una predicción inter. Al llevar a cabo la codificación de predicción intra, cada macrobloque puede dividirse en tamaños de 16x16, 8x8 o 4x4, y el bloque de tamaño 16x16 se predicen por predicción intra en uno de cuatro modos de predicción, los bloques de 8x8 y 4x4 se predicen por predicción intra en uno de nueve modos de predicción. En el caso de la predicción inter, el macrobloque puede subdividirse en bloques de tamaños 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, o 4x4, y después utilizarse para la predicción inter a través de una compensación de movimiento. La transformada se realiza en la unidad de bloques de tamaño 8x8 o 4x4, y la cuantificación utilizada para los coeficientes de transformada es la cuantificación escalar.
[0005] Sin embargo, el macrobloque de 16x16 puede considerarse apropiado para imágenes pequeñas por la clase del QCIF (Quarter Common Intermediate Format, cuarto de formato intermedio común) y CIF (Common Intermediate Format, formato intermedio común) convencionales y no es el tamaño de macrobloque adecuado para comprimir una imagen de alta resolución como una imagen de 4Kx2K. Además, como la tecnología típica de compresión de vídeo utiliza un macrobloque de tamaño fijo al codificar una imagen (aunque H.264 / AVC subdivide y codifica el macrobloque en unidades de bloque más pequeñas, el macrobloque es de tamaño fijo), la codificación de la imagen de alta resolución difícilmente alcanza una eficiencia de codificación suficiente.
[Descripción]
[Problema técnico]
[0006] Por tanto, las realizaciones de la presente invención tratan de resolver eficientemente los problemas mencionados anteriormente proporcionando un procedimiento para determinar un tipo de bloque que coincida con las características de la imagen y un procedimiento y un aparato eficaces para codificación / decodificación cuando se utiliza un bloque de píxeles grande de más de 16x16 de tamaño para un macrobloque como una unidad de codificación y / o decodificación.
[Solución técnica]
[0007] La invención proporciona un procedimiento de codificación de un vídeo que tiene las características mencionadas en la reivindicación 1. La invención proporciona además un aparato de codificación de un vídeo como se menciona en la reivindicación 6. Las realizaciones ventajosas se exponen en las reivindicaciones dependientes. Los ejemplos adicionales llamados realizaciones en la descripción son ejemplos ilustrativos.
[0008] Un aparato de codificación / decodificación de vídeo ejemplar incluye: un codificador de vídeo para configurar candidatos de tipo de bloque para codificar una imagen utilizando macrobloques de tamaño variable, codificar una imagen de entrada por cada candidato de tipo de bloque, determinar un tipo de bloque basándose en los costes de codificación para cada candidato de tipo de bloque y generar un tren de bits que incluye datos de imagen codificados por un tipo de bloque determinado y una información para el tipo de bloque determinado; y un decodificador de vídeo para extraer del tren de bits una información para el tipo de bloque para codificar la imagen utilizando macrobloques de tamaño variable y datos de imagen codificados, y generar una imagen reconstruida decodificando los datos de imagen codificados dependiendo del tipo de bloque identificado por la información para el tipo de bloque.
[0009] Un aparato de codificación de vídeo ejemplar incluye: una unidad de configuración de tipo bloque candidato para configurar candidatos de tipo bloque para codificar una imagen utilizando macrobloques de tamaño variable; un codificador de vídeo para codificar una imagen de entrada por cada candidato de tipo de bloque; y un determinador de tipo de bloque para determinar un tipo de bloque basándose en los costes de codificación del candidato de tipo de bloque, y generar un tren de bits que incluya datos de imagen codificados por un tipo de bloque determinado y una información para el tipo de bloque determinado.
[0010] Un aparato de decodificación de vídeo ejemplar incluye: un decodificador de vídeo para extraer de un tren de bits una información para un tipo de bloque para codificar una imagen utilizando macrobloques de tamaño variable y datos de imagen codificados, y generar una imagen reconstruida decodificando los datos de imagen codificados dependiendo de un tipo de bloque identificado por la información para el tipo de bloque.
[0011] Un procedimiento de codificación / decodificación de vídeo ejemplar incluye: establecer candidatos de tipo de bloque para codificar una imagen utilizando macrobloques de tamaño variable, codificar una imagen de entrada para cada candidato de tipo de bloque, determinar un tipo de bloque basándose en los costes de codificación para cada candidato de tipo de bloque y generar un tren de bits que incluya datos de imagen codificados en un tipo de bloque determinado y una información para el tipo de bloque determinado; y extraer del tren de bits una información para un tipo de bloque para codificar la imagen utilizando macrobloques de tamaño variable y datos de imagen codificados, y generar una imagen reconstruida decodificando los datos de imagen codificados dependiendo del tipo de bloque identificado por la información para el tipo de bloque.
[0012] Un procedimiento de codificación de vídeo ejemplar incluye: configurar candidatos de tipo bloque para codificar una imagen utilizando macrobloques de tamaño variable; codificar una imagen de entrada para cada candidato de tipo de bloque; determinar un tipo de bloque basándose en los costes de codificación para cada candidato de tipo de bloque; y generar un tren de bits que incluya datos de imagen codificados en un tipo de bloque determinado y una información para el tipo de bloque determinado.
[0013] El tipo de bloque puede incluir uno o más de un tamaño de macrobloque que corresponde a una unidad de codificación y / o decodificación, un tamaño de subbloque mínimo y una combinación de modos de subbloque.
[0014] La etapa de configurar los candidatos de tipo de bloque puede configurar los candidatos de tipo de bloque de entrada o determinar y configurar un candidato de tipo de bloque según las características de la imagen de entrada.
[0015] Los candidatos de tipo de bloque pueden determinarse y configurarse según una relación de un tamaño horizontal y un tamaño vertical de la imagen de entrada, cuando el tipo de bloque se convierte en un tamaño de macrobloque o un tamaño de subbloque mínimo.
[0016] Los candidatos de tipo de bloque pueden configurarse de manera diferente según una predicción intra o una predicción inter, cuando el tipo de bloque es una combinación de modos de subbloque.
[0017] La etapa de generar el tren de bits puede incluir información para el tipo de bloque determinado en el tren de bits una vez o en cada imagen de la imagen de entrada.
[0018] El tamaño de macrobloque puede seleccionarse de manera variable basándose en la resolución de la imagen de entrada o las características de la imagen, un tamaño de subbloque mínimo puede seleccionarse de manera variable basándose en un tamaño de macrobloque y una combinación de modos de subbloque dentro de un macrobloque puede seleccionarse basándose en un tamaño de macrobloque y un tamaño de subbloque mínimo.
[0019] Un tamaño de macrobloque puede transmitirse a un aparato de decodificación de vídeo por unidad de secuencias, imágenes, sectores o macrobloques.
[0020] Puede establecerse un tamaño de macrobloque de referencia, y una bandera que indica si utilizar el tamaño de macrobloque de referencia se codifica en cada encabezamiento de imagen, encabezamiento de sector o encabezamiento de macrobloque de la imagen de entrada y se transmite a un aparato de decodificación de vídeo.
[0021] Un tamaño de macrobloque seleccionado puede codificarse cuando la bandera indica que no se utiliza el tamaño de macrobloque de referencia.
[0022] Un bloque que tiene un tamaño igual al tamaño de macrobloque de referencia puede seleccionarse como un macrobloque actual cuando la bandera indica que debe utilizarse el tamaño de macrobloque de referencia.
[0023] Un bloque que tiene un tamaño ampliado o reducido en una relación predeterminada con respecto al tamaño de macrobloque de referencia puede seleccionarse como un macrobloque actual cuando la bandera indica que no se utiliza el tamaño de macrobloque de referencia.
[0024] Después de codificar un tamaño de macrobloque seleccionado, puede llevarse a cabo la codificación con respecto a una bandera que indica si utilizar un tamaño de macrobloque de una imagen anterior a partir de una imagen siguiente y un tamaño de macrobloque de una imagen actual, en un caso en el que no se utilice el tamaño de macrobloque de la imagen anterior.
[0025] Un tamaño de macrobloque para una imagen intra y un tamaño de macrobloque para una imagen inter pueden codificarse con una diferencia de tamaño en un encabezamiento de secuencia.
[0026] Puede omitirse una codificación de una bandera que indica si transmitir información para un tamaño de subbloque mínimo, y el tamaño de subbloque mínimo puede transmitirse a un aparato de decodificación de vídeo en cada encabezamiento de secuencia, encabezamiento de imagen, encabezamiento de sector o encabezamiento de macrobloque.
[0027] Puede establecerse un tamaño de subbloque mínimo de referencia y puede codificarse una bandera que indica si utilizar el tamaño de subbloque mínimo de referencia en cada encabezamiento de imagen, encabezamiento de sector o encabezamiento de macrobloque.
[0028] Puede establecerse un tamaño de subbloque mínimo de referencia y puede codificarse una bandera que indica si utilizar el tamaño de subbloque mínimo de referencia en cada encabezamiento de imagen, encabezamiento de sector o encabezamiento de subbloque mínimo.
[0029] Un bloque que tenga un tamaño igual al tamaño de subbloque mínimo de referencia puede seleccionarse como un subbloque mínimo actual cuando la bandera indique que debe utilizarse el tamaño de subbloque mínimo de referencia.
[0030] Un bloque que tenga un tamaño ampliado o reducido en una relación predeterminada con respecto al tamaño de subbloque mínimo de referencia puede seleccionarse como un subbloque mínimo actual cuando la bandera indique que no debe utilizarse el tamaño de subbloque mínimo de referencia.
[0031] Después de codificar un tamaño de subbloque mínimo seleccionado, puede llevarse a cabo la codificación con respecto a una bandera que indica si usar un tamaño de subbloque mínimo de una imagen anterior a partir de una imagen siguiente y un tamaño de subbloque mínimo de una imagen actual en un caso en el que no se utilice el tamaño de subbloque mínimo de la imagen anterior.
[0032] Un tamaño de subbloque mínimo para una imagen intra y un tamaño de subbloque mínimo para una imagen inter pueden codificarse con una diferencia de tamaño.
[0033] Una bandera que indica si transmitir información de los modos de subbloque disponibles para una predicción o una transformada puede incluirse en un encabezamiento de secuencia o en un encabezamiento de cada imagen.
[0034] Un procedimiento de decodificación de vídeo ejemplar incluye: extraer de un tren de bits una información para un tipo de bloque para codificar una imagen utilizando macrobloques de tamaño variable y datos de imagen codificados; y generar una imagen reconstruida decodificando los datos de imagen codificados dependiendo de un tipo de bloque identificado por la información para el tipo de bloque.
[0035] El tipo de bloque puede incluir uno o más de un tamaño de macrobloque que corresponde a una unidad de codificación y / o decodificación, un tamaño de subbloque mínimo y una combinación de modos de subbloque.
[0036] La etapa de extracción puede extraer la información para el tipo de bloque determinado del tren de bits una vez o en cada imagen de una imagen de entrada.
[0037] Cuando en el tren de bits se incluye una bandera que indica si transmitir una información para un tamaño de macrobloque, la bandera que indica si transmitir la información para el tamaño de macrobloque puede decodificarse en una posición concertada de un encabezamiento de secuencia, un encabezamiento de cada imagen o un encabezamiento de sector.
[0038] Puede establecerse un tamaño de macrobloque de referencia acordado con un codificador, y una bandera que indica si utilizar el tamaño de macrobloque de referencia puede decodificarse a partir de un encabezamiento de cada imagen, un encabezamiento de sector o un encabezamiento de macrobloque.
[0039] Después de extraer del tren de bits una bandera que indica si utilizar un tamaño de macrobloque de referencia y / o información adicional que indica una ampliación o una reducción en una relación predeterminada con respecto al tamaño de macrobloque de referencia, puede determinarse un tamaño de macrobloque actual utilizando una bandera extraída y / o información adicional extraída.
[0040] Además, después de decodificar la información de tamaño de bloque de macrobloque, puede obtenerse un tamaño de macrobloque necesario para una decodificación de primera imagen utilizando la información de tamaño de macrobloque decodificada.
[0041] Puede establecerse un tamaño de macrobloque según un tipo de imagen extrayendo los tamaños de macrobloque de una imagen intra y de una imagen inter desde una posición dentro del tren de bits acordada con un codificador, respectivamente.
[0042] Cuando en el tren de bits se incluye una bandera que indica si transmitir información para un tamaño de subbloque mínimo, la bandera que indica si transmitir la información sobre el tamaño de subbloque mínimo puede decodificarse en una posición concertada de un encabezamiento de secuencia, un encabezamiento de cada imagen o un encabezamiento de sector.
[0043] Puede establecerse un tamaño acordado con un codificador como tamaño de subbloque mínimo de referencia, y puede decodificarse una bandera que indica si utilizar el tamaño de subbloque mínimo de referencia a partir de un encabezamiento de cada imagen, un encabezamiento de sector o un encabezamiento de subbloque mínimo.
[0044] Después de extraer del tren de bits una bandera que indica si utilizar un tamaño de subbloque mínimo de referencia y / o información adicional que indica una ampliación o una reducción en una relación predeterminada con respecto al tamaño de subbloque mínimo de referencia, puede extraerse un tamaño de subbloque mínimo actual utilizando la información.
[0045] Cuando no se utilizan una bandera que indica si utilizar un tamaño de subbloque mínimo de referencia y el tamaño de subbloque mínimo de referencia, puede decodificarse la información de tamaño de subbloque mínimo y después puede obtenerse un tamaño de subbloque mínimo necesario para una decodificación de primera imagen utilizando la información de tamaño de subbloque mínimo decodificada.
[0046] Además, puede establecerse un tamaño de subbloque mínimo según un tipo de imagen extrayendo tamaños de subbloque mínimo de una imagen intra y una imagen inter a partir de una posición dentro del tren de bits acordada con un codificador.
[0047] Además, una bandera que indica si seleccionar y utilizar una combinación de subbloques para una predicción o una transformada puede decodificarse en un encabezamiento de secuencia o un encabezamiento de cada imagen, y un modo de combinación de subbloques básico acordado con un codificador puede utilizarse en una predicción o una transformada cuando un valor de una bandera decodificado indica que la combinación de subbloques no está seleccionada y utilizada.
[Efectos ventajosos]
[0048] Según la presente invención como se mencionó anteriormente, determinar el tipo de bloque para que coincida con las características de la imagen permite combinaciones de diversos modos tales como un bloque grande y tamaños de macrobloque, un tamaño de subbloque mínimo, tipos de bloque divisional disponibles, tipos de modo de predicción dentro de un macrobloque, etcétera, para lograr codificación y decodificación más eficaz de imágenes de alta resolución.
[Descripción de los dibujos]
[0049]
Las figs. 1 a 3 son diagramas ejemplares para ilustrar macrobloques en la unidad de M x N píxeles según una realización preferida de la invención,
las figs. 4 y 5 son diagramas ejemplares para ilustrar diversos modos de subbloque según una realización preferida de la invención,
la fig. 6 es un diagrama de bloques esquemático para ilustrar un aparato de codificación de vídeo según una realización preferida de la invención,
la fig. 7 es un diagrama de bloques esquemático para ilustrar un aparato de decodificación de vídeo según una realización preferida de la invención,
la fig. 8 es un diagrama de bloques para ilustrar una primera implementación de un aparato de codificación de vídeo según una realización preferida de la presente invención,
la fig. 9 es un diagrama de flujo para ilustrar una primera implementación de un procedimiento de codificación de vídeo según una realización preferida de la presente invención,
la fig. 10 es un diagrama de bloques para ilustrar una segunda implementación del aparato de codificación de vídeo según una realización preferida de la presente invención,
las figs. 11 y 12 son diagramas de ejemplo para ilustrar modos de subbloque de un macrobloque dependiendo de los tamaños de subbloque mínimo,
la fig. 13 es un diagrama de flujo para ilustrar una segunda implementación del procedimiento de codificación de vídeo según una realización preferida de la presente invención,
la fig. 14 es un diagrama de bloques para ilustrar una tercera implementación del aparato de codificación de vídeo según una realización preferida de la presente invención,
las figs. 15 y 16 son diagramas de ejemplo para ilustrar combinaciones de los modos de subbloque,
la fig. 17 es un diagrama de flujo para ilustrar una tercera implementación del procedimiento de codificación de vídeo según una realización preferida de la presente invención,
la fig. 18 es un diagrama de flujo para ilustrar un ejemplo de un aparato de codificación de vídeo según otra realización más,
la fig. 19 es un diagrama de flujo para ilustrar un ejemplo de un procedimiento de codificación de vídeo según otra realización más,
las figs. 20 y 21 son un diagrama de flujo para ilustrar un procedimiento de codificación de una imagen intra según una realización preferida de la invención,
las figs. 22 y 23 son un diagrama de flujo para ilustrar un procedimiento de codificación de una imagen inter según una realización preferida de la invención,
la fig. 24 es un diagrama de bloques para ilustrar una primera implementación de un aparato de decodificación de vídeo según una realización preferida de la presente invención,
la fig. 25 es un diagrama de bloques para ilustrar una segunda implementación de un aparato de decodificación de vídeo según una realización preferida de la presente invención, y
la fig. 26 es un diagrama de bloques para ilustrar una tercera implementación de un aparato de decodificación de vídeo según una realización preferida de la presente invención.
[Modo de la invención]
[0050] En lo sucesivo, los aspectos de la presente invención se describirán en detalle con referencia a los dibujos adjuntos. En la siguiente descripción, los mismos elementos se designarán con los mismos números de referencia aunque se muestren en diferentes dibujos. Además, en la siguiente descripción de la presente invención, se omitirá una descripción detallada de las funciones y configuraciones conocidas incorporadas en el presente documento cuando pueda hacer que el tema de la presente invención sea bastante poco claro.
[0051] Además, al describir los componentes de la presente invención, pueden utilizarse términos como primero, segundo, A, B, (a) y (b). Estos son únicamente con el propósito de diferenciar un componente del otro, pero no para implicar o sugerir las sustancias, el orden o la secuencia de los componentes. Si un componente se describe como 'conectado', 'acoplado' o 'vinculado' a otro componente, puede significar que los componentes no sólo están directamente 'conectados', 'acoplados' o 'vinculados', sino que también están indirectamente 'conectados', 'acoplados' o 'vinculados' mediante un tercer componente.
[0052] Un aparato de codificación de vídeo y un aparato de decodificación de vídeo, que se tratarán en la siguiente descripción, pueden ser un ordenador personal (PC), un ordenador portátil, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), una Playstation Portable (PSP) y un terminal de comunicación móvil, y se refieren a diversos aparatos incluyendo un aparato de comunicación tal como un módem de comunicación para realizar la comunicación con diversos dispositivos o una red de comunicación cableada / inalámbrica, una memoria para almacenar diversos programas y datos para codificar o decodificar un vídeo, y un microprocesador para ejecutar un programa para realizar una operación y un control.
[0053] Además, un vídeo codificado en un tren de bits por un aparato de codificación de vídeo se transmite a un aparato de decodificación de vídeo a través de una red de comunicación cableada / inalámbrica tal como Internet, una red de comunicación de campo cercano, una red LAN (red de área local) inalámbrica, una red WiBro (de banda ancha inalámbrica) y una red de comunicación móvil, o a través de una interfaz de comunicación como un cable o un bus serie universal (USB) en tiempo real o no real y decodificado en el aparato de decodificación de vídeo, y, por tanto, el vídeo decodificado puede reconstruirse y reproducirse como un vídeo.
[0054] En general, un vídeo incluye una serie de imágenes y cada imagen se divide en áreas predeterminadas, como macrobloques, que son la unidad de referencia para codificar y decodificar una imagen. Los macrobloques se clasifican en macrobloque intra y macrobloque inter según un procedimiento de decodificación de macrobloque. El macrobloque intra se refiere a un macrobloque codificado utilizando una codificación de predicción intra. La codificación de predicción intra corresponde a un esquema de generación de un bloque predicho mediante la predicción de un píxel del bloque actual utilizando píxeles de bloques reconstruidos previamente codificados y decodificados dentro de una imagen actual, en la que se realiza una codificación actual, y la codificación de un valor diferencial entre el bloque predicho generado y el píxel del bloque actual. El macrobloque inter se refiere a un macrobloque codificado utilizando una codificación de predicción inter. La codificación de predicción inter corresponde a un esquema de generación de un bloque predicho mediante la predicción de un bloque actual dentro de una imagen actual con referencia a una o más imágenes pasadas o imágenes futuras y la codificación de un valor diferencial entre el bloque predicho generado y el bloque actual. Aquí, una imagen a la que se hace referencia al codificar o decodificar la imagen actual se denomina imagen de referencia.
[0055] En lo sucesivo, se describirá con una ilustración un aparato para codificar y decodificar un vídeo en la unidad de macrobloques utilizando macrobloques de tamaño fijo. Aquí, los macrobloques se refieren a bloques de píxeles de tamaño M * N (sin embargo, M y N son números enteros, donde M es un tamaño horizontal del macrobloque y N es un tamaño vertical del macrobloque y, por lo tanto, 0<M<M< un tamaño horizontal de una imagen de entrada y 0<N< un tamaño vertical de la imagen de entrada) y corresponden a las unidades de codificación y decodificación. Sin embargo, la codificación y decodificación de un vídeo en la unidad de macrobloques son sólo un ejemplo, y el vídeo puede codificarse y decodificarse en la unidad de áreas definidas o de áreas indefinidas en lugar de una forma de macrobloques. Sin embargo, un aparato de codificación / decodificación, que se discutirá en la siguiente descripción, puede utilizar macrobloques que tienen cierto tamaño, pero un codificador y un decodificador codifica / decodifica una imagen utilizando tamaños de macrobloque acordados entre el codificador y el decodificador, tipos y modos de subbloque disponibles y tamaños de subbloque mínimo.
[0056] las figs. 1 a 3 son diagramas ejemplares para ilustrar macrobloques en la unidad de M x N píxeles según una realización preferida de la presente invención.
[0057] La fig. 1 muestra macrobloques en la unidad de M x N píxeles (en lo sucesivo, macrobloques de tamaño M x N) expresados en una parte de una imagen de entrada que tiene un cierto tamaño como ejemplo, la fig. 2 muestra una imagen CIF que incluye 396 macrobloques de tamaño 16 x 16 como ejemplo, y la fig. 3 muestra una imagen CIF que incluye 54 macrobloques de tamaño 64 x 32 como ejemplo.
[0058] En la tecnología de compresión de vídeo convencional, una imagen se divide en macrobloques de tamaño fijo 16 x 16 y después se codifica y decodifica como se muestra en la fig. 2. Sin embargo, en una realización de la presente invención, la imagen puede codificarse y decodificarse utilizando macrobloques de tamaño 64 x 32 (no sólo el tamaño 64 x 32 sino que también están disponibles el tamaño M x N (mayor que un tamaño 16 x 16) como el tamaño 64 x 64 y el tamaño 32 x 64) como se muestra en la fig. 3.
[0059] las figs. 4 y 5 son diagramas ejemplares para ilustrar diversos subbloques según una realización preferida de la presente invención.
[0060] La fig. 4 muestra los modos de subbloque disponibles para un macrobloque de tamaño 32 x 32, y la fig.
5 muestra los modos de subbloque disponibles para un macrobloque de tamaño 32 x 16.
[0061] Según una realización preferida de la presente invención, el macrobloque de tamaño M x N puede dividirse en bloques más pequeños, es decir, subbloques como se muestra en la fig. 5. Los macrobloques de la imagen pueden codificados con predicción intra o codificados con predicción inter en la unidad de macrobloques, los subbloques o las predicciones designadas.
[0062] La fig. 6 es un diagrama de bloques esquemático para ilustrar un aparato de codificación de vídeo según una realización preferida de la presente invención. El aparato de codificación de vídeo según la realización de la presente invención corresponde a un aparato para codificar una imagen utilizando macrobloques de tamaño 16 x 16 o más, y puede incluir un predictor 610, un codificador 620, un reconstructor 630, un filtro 640, y una memoria de trama 650. Aquí, el reconstructor 630, el filtro 640 y la memoria de trama 650 pueden omitirse o incluirse en otro elemento selectivamente según una manera de implementación.
[0063] El predictor 610 puede incluir un estimador de movimiento 612, un compensador de movimiento 614, y un predictor intra 616, y predice macrobloques de la imagen de entrada dividiendo los macrobloques en macrobloques más pequeños y después prediciendo por predicción intra o prediciendo por predicción inter los macrobloques divididos. Según la técnica convencional, la predicción intra y la predicción inter no pueden utilizarse simultáneamente en subbloques de codificación intra dentro de un macrobloque. Sin embargo, según una realización preferida de la presente invención, la predicción intra y la predicción inter pueden utilizarse simultáneamente al codificar subbloques dentro de un macrobloque.
[0064] El estimador de movimiento 612 genera un vector de movimiento comparando un bloque, que se desea codificar, con una imagen de referencia almacenada en la memoria de trama 650 y estimando un movimiento del bloque correspondiente.
[0065] El compensador de movimiento 614 captura un bloque que corresponde a un tamaño de un bloque que se desea codificar a partir de la imagen de referencia almacenada 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 bloque predicho que tiene un valor predicho del bloque, que se desea codificar.
[0066] El predictor intra 616 predice por predicción intra el bloque que se desea codificar. Para la predicción intra, el predictor intra 616 genera un bloque de referencia utilizando información de píxeles vecinos reconstruidos ya codificados y decodificados, y compara el bloque de referencia con el bloque de destino, que debe codificarse, para determinar un modo de predicción inter. Y después, el predictor intra 606 predice por predicción intra el bloque según el modo de predicción intra determinado. El bloque que ha sido predicho por el predictor intra 616 se convierte en un bloque predicho que tiene un valor predicho del bloque de destino. Un tamaño de subbloque disponible en la predicción intra corresponde a (M / y) x (N / y), e y es un número entero mayor que 0 y menor que min{log2(M / 4), log2(N / 4)}. Por ejemplo, en un caso de un macrobloque de tamaño 64 x 32, los tamaños de subbloque disponibles para la predicción intra incluyen los tamaños 64 x 32, 32 x 16, 16 x 8 y 8 x 4. En un caso de un macrobloque de tamaño 32 x 32, los tamaños de subbloque disponibles para la predicción intra incluyen los tamaños 32 x 32, 16 x 16, 8 x 8 y 4 x 4. Para otro ejemplo, sólo pueden utilizarse bloques de forma cuadrada. En un caso de un macrobloque de tamaño 64 x 32, los tamaños de subbloque disponibles incluyen los tamaños 32 x 32, 16 x 16, 8 x 8 y 4 x 4.
[0067] Aquí, para bloques de tamaño 16 x 16 o más (aunque, sin embargo, los bloques pueden tener otros tamaños designados en lugar del tamaño 16 x 16), se selecciona un modo de predicción que tenga la mejor eficiencia de codificación de entre los modos de predicción iguales o similares a los cuatro modos de predicción intra de H.264 / AVC, y se codifica el modo de predicción intra seleccionado. Además, para bloques que tengan un tamaño inferior al tamaño 16 x 16, se selecciona un modo de predicción que tenga la mejor eficiencia de codificación de entre los modos de predicción iguales o similares a los nueve modos de predicción intra de H.264 / AVC, y se codifica el modo de predicción seleccionado.
[0068] En este caso, los tipos de transformada disponibles pueden ser diferentes según el tipo y tamaño de macrobloque. Cuando el macrobloque es un macrobloque intra, los bloques que utilizan una predicción intra de tamaño 16 x 16 o más pueden utilizar una transformada de un tamaño igual al del bloque predicho y una transformada, en la que se realiza una transformada de 4 x 4 para un bloque residual y la transformada de 4 x 4 se realiza de nuevo para las componentes de CC, y la información sobre los tipos de transformada seleccionados se transmite a través de un tren de bits. Además, se utiliza una transformada que tiene un tamaño igual al del bloque predicho para los bloques que utilizan una predicción intra que tienen un tamaño menor que el tamaño 16 x 16. Cuando el macrobloque es un macrobloque inter, los bloques de tamaño 16 x 16 o más utilizan una transformada de 4 x 4, una transformada de 8 x 8 o una transformada de 16 x 16 y un tipo de transformada seleccionado se transmite a través de una bandera de transformada utilizando 1 bit o 2 bits. En otros casos, se transmite una bandera de transformada en la unidad de bloques de tamaño 16 x 16 y todos los subbloques del bloque de tamaño 16 x 16 utilizan la misma transformada. Si el bloque de tamaño 16 x 16 se divide en dos bloques de tamaño 8 x 16, se selecciona una transformada que tenga el menor coste de codificación de entre una transformada de 4 x 4, una transformada de 8 x 8 y una transformada de 8 x 16. Si el bloque de tamaño 16 x 16 se divide en dos bloques de tamaño 16 x 8, se utilizan la transformada de 4 x 4, la transformada de 8 x 8 y la transformada de 8 x 16 y se selecciona una transformada que tenga el menor coste de codificación. Además, un tipo de transformada seleccionado se transmite a través de una bandera de transformada utilizando 1 bit o 2 bits. Sólo cuando el bloque de tamaño 16 x 16 se divide en 4 bloques de 8 x 8, puede utilizarse la transformada de 4 x 4 o la transformada de 8 x 8, y un tipo de transformada seleccionado se transmite a través de la bandera de transformada. En otros casos, la bandera de transformada no se transmite.
[0069] El codificador 620 codifica una señal residual, que es una diferencia entre los valores de píxel de un macrobloque de destino que se va a codificar y un macrobloque predicho. Específicamente, el codificador 620 codifica la señal residual a través de una transformada, una cuantificación y una codificación por entropía. Además, cuando el codificador 620 predice por predicción inter el macrobloque de destino que se va a codificar, el codificador 620 puede codificar información de movimiento tal como el vector de movimiento generado por el estimador de movimiento 612 e información de modo macrobloque tal como un tamaño de macrobloque. Cuando el codificador 620 predice por predicción intra el macrobloque de destino que se va a codificar, el codificador 620 puede codificar información de modo de predicción tal como un modo de predicción intra e información de modo de macrobloque tal como el tamaño de macrobloque. Un procedimiento de codificación del codificador 620 incluye diversos procedimientos de codificación de tamaño variable tales como CAVLC, CABAC, etc. Además, como información sobre el procedimiento de codificación realizado, una bandera o un valor de índice de la tabla acordado entre el codificador y el decodificador puede incluirse en un encabezamiento del tren de bits y transmitirse a través del mismo.
[0070] El reconstructor 630 cuantifica inversamente y transforma inversamente una señal residual transformada y cuantificada y añade la señal residual y la salida de macrobloque predicha procedente del predictor 610 para reconstruir el macrobloque de destino.
[0071] El filtro 640 filtra el macrobloque de destino reconstruido utilizando un filtro tal como un filtro de desbloqueo. El macrobloque reconstruido filtrado se almacena en la memoria de trama 650 y se utiliza para predecir por predicción inter un macrobloque siguiente o un macrobloque de una imagen siguiente en el predictor 610.
[0072] En lo sucesivo, se describen un procedimiento de codificación de una imagen intra y los datos que deben transmitirse a través de un tren de bits con referencia a las figs. 20 y 21. La imagen intra puede codificarse sólo utilizando la predicción intra, y los órdenes de codificación de un tipo de macrobloque y un modo de predicción intra son como se muestran en las figs. 20 y 21. Sin embargo, el título y el orden de codificación de la sintaxis de las figs.
20 y 21 son sólo ejemplos, y es posible utilizar un título y un orden de codificación diferente del título y el orden de codificación de las figs. 20 y 21.
[0073] En las figs. 20 y 21, M * N_Block_type se codifica utilizando la Tabla 1 para bloques de tamaño 16 * 16 o más. Pueden utilizarse cuatro modos de predicción intra para bloques de tamaño 16 * 16 o más, y un bloque residual se transforma utilizando una transformada indicada por use_large_transform_flag.
Figure imgf000009_0001
(continuación)
Figure imgf000010_0001
[0074] En un caso de bloques de tamaño 16 x 16 o más, cuando use_large_transform_flag indica que no se utiliza una transformada de gran tamaño (por ejemplo, use_large_transform_flag es "0"), se realiza una transformada de 4 x 4 y se realiza una transformada de Hardamard para las componentes de CC de los coeficientes de transformada obtenidos a través de la transformada de 4 x 4. Cuando use_large_transform_flag indica que se utiliza la transformada de gran tamaño (por ejemplo, use_large_transform_flag es "1"), se realiza una transformada del mismo tamaño que la del bloque actual.
[0075] En un caso de bloques que tienen un tamaño inferior al tamaño 16 x 16, use_large_transform_flag se codifica una vez en la unidad de bloques de 16 x 16. Cuando use_large_transform_flag indica que no se utiliza la transformada de gran tamaño (por ejemplo, use_large_transform_flag es "0"), el bloque de 16 x 16 se divide en dieciséis bloques de 4 x 4. Cada bloque de 4 x 4 realiza una predicción intra de 4 x 4 y un bloque residual realiza una transformada de 4 x 4. Además, cuando use_large_transform_flag indica que se utiliza la transformada de gran tamaño (por ejemplo, use_large_transform_flag es "1"), el bloque de 16 x 16 se divide en cuatro bloques de 8 x 8. Cada bloque de 8 x 8 realiza una predicción intra de 8 x 8 y un bloque residual realiza una transformada de 8 x 8. Además, a los bloques de un coeficiente de transformada cuantificado de una componente de luminancia se les asigna 1 bit por cada bloque de (M/2) x (N/2) y se muestra si hay un coeficiente, que no sea "0", dentro de los bloques de (M/2) x (N/2) a través del bit asignado.
[0076] En lo sucesivo, se describirá un procedimiento de codificación de una imagen inter y los datos que deben transmitirse a través de un tren de bits con referencia a las figs. 22 y 23. La imagen inter puede utilizar selectivamente la predicción intra o la predicción inter en la unidad de macrobloques, y un orden de codificación de datos de macrobloque que incluyen un tipo de macrobloque dentro de la imagen inter es como se muestra en las figs. 22 y 23. Sin embargo, el título y el orden de codificación de la sintaxis de las figs. 22 y 23 son sólo ejemplos, y es posible utilizar un título y un orden de codificación diferente del título y el orden de codificación de las figs. 22 y 23.
[0077] En un caso de un tipo de bloque de M x N de tamaño igual o superior a 16 x 16, una imagen P puede codificarse utilizando la Tabla 2 y una imagen B puede codificarse utilizando la Tabla 3.
Figure imgf000010_0002
(continuación)
Figure imgf000011_0001
Figure imgf000011_0002
Figure imgf000012_0001
Figure imgf000013_0001
[0078] La fig. 7 es un diagrama de bloques esquemático para ilustrar un aparato de decodificación de vídeo según una realización preferida de la presente invención.
[0079] El aparato de decodificación de vídeo 700 según una realización preferida de la presente invención puede incluir un decodificador 710, un predictor 720, un reconstructor 730, un filtro 740, y una memoria de trama 750. El decodificador 710 extrae de un tren de bits de entrada tres tipos de información necesaria para una decodificación de macrobloque.
[0080] En primer lugar, la entropía del decodificador 710 decodifica y extrae información de tipo macrobloque sobre si un macrobloque, que se desea decodificar actualmente, es un macrobloque intra o un macrobloque inter e información de modo de subbloque que indica los modos de subbloque del macrobloque.
[0081] En segundo lugar, la entropía del decodificador 710 decodifica y extrae información necesaria para la predicción. En este caso, los datos necesarios para la predicción son diferentes según un tipo de macrobloque. Cuando un macrobloque reconstruido es el macrobloque inter, el decodificador 710 extrae del tren de bits información de imagen de referencia necesaria para la compensación de movimiento de los respectivos subbloques e información sobre un movimiento tal como un vector de movimiento, y decodifica la información extraída. Cuando el macrobloque reconstruido es el macrobloque intra, el decodificador 710 extrae del tren de bits información de los modos de predicción intra de una componente de luminancia y una componente de crominancia y decodifica la información extraída.
[0082] Por último, el decodificador 710 decodifica la información necesaria para una decodificación de señal residual. En concreto, el decodificador 710 en primer lugar decodifica la información que indica si existe un coeficiente de transformada, que no es "0", en cada subbloque y después decodifica la información de transformada que indica un tipo de una transformada utilizada y un coeficiente de transformada cuantificado para los bloques que tienen el coeficiente de transformada, que no es "0".
[0083] Al decodificar la información de transformada, el número de bits necesario para decodificar la información de transformada es diferente según el tipo de transformada, y el tipo de transformada se determina según el tipo de macrobloque y el tamaño de subbloque. Se decodifican 1 bit o 2 bits cuando existen tres tipos de transformadas disponibles, y sólo se decodifica 1 bit cuando hay dos tipos de transformadas disponibles. Además, cuando los tipos de transformadas disponibles se fijan a un tipo, la información de transformada no se decodifica.
[0084] Si los macrobloques son los macrobloques intra y los tamaños de subbloque son iguales o mayores que el tamaño 16 * 16, se determina si se utiliza una transformada que tenga un tamaño igual al del bloque predicho o se utiliza una transformada por la que los bloques residuales se transforman a 4 * 4 y después las componentes de CC se transforman a 4 * 4. No se decodifica una bandera de transformada para los bloques que utilizan una predicción intra que tienen un tamaño inferior al tamaño 16 * 16. En este caso, se utiliza una transformada que tiene un tamaño igual al del bloque predicho.
[0085] Cuando los macrobloques son macrobloques inter, se extraen 1 bit o 2 bits, a través de una decodificación por entropía, de cada uno de los bloques que tienen un tamaño igual o superior a un tamaño 16 * 16, utilizando una transformada entre una transformada de 4 * 4, una transformada de 8 * 8 y una transformada de 16 * 16. En otros casos, la bandera de transformada se decodifica en la unidad de bloques de 16 * 16 y todos los subbloques dentro del bloque de 16 * 16 utilizan la misma transformada. Cuando el bloque de 16 * 16 se divide en dos subbloques de tamaño 8 * 16, una bandera de transformada reconstruida corresponde a una de la transformada de 4 * 4, la transformada de 8 * 8 y una transformada de 8 * 16. Cuando cada bloque de tamaño 16 * 16 se divide en dos subbloques de tamaño 16 * 8, la bandera de transformada reconstruida indica una de la transformada de 4 * 4, la transformada de 8 * 8 y una transformada de 16 * 8. Además, cuando el bloque de 16 * 16 se divide en cuatro bloques de 8 * 8, la información que indica si se utiliza la transformada de 4 * 4 o se utiliza la transformada de 8 * 8 se extrae decodificando la bandera de transformada. En otros casos, la bandera de transformada no se decodifica y un tipo de transformada se establece en la transformada de 4 * 4.
[0086] El predictor 720 predice un macrobloque actual, que se desea decodificar actualmente, y puede incluir un compensador de movimiento 722 y un predictor intra 724. Cuando el macrobloque actual es un macrobloque inter, el compensador de movimiento 722 genera un macrobloque predicho dividiendo el macrobloque en subbloques en un modo de subbloque reconstruido decodificado por el decodificador 710 y capturando los píxeles que corresponden a un tamaño de subbloques dentro del macrobloque actual a partir de la imagen de referencia almacenada en la memoria de trama 750 utilizando el vector de movimiento de cada subbloque reconstruido decodificado por el decodificador 710. Cuando el macrobloque actual es el macrobloque intra, el predictor intra 724 genera un macrobloque predicho prediciendo el macrobloque actual utilizando la información de píxeles vecinos reconstruidos ya decodificados según el modo de predicción intra reconstruido decodificado por el decodificador 710.
[0087] El reconstructor 730 cuantifica inversamente un coeficiente de transformada cuantificado decodificado por el decodificador 710 y transforma inversamente el coeficiente de transformada utilizando un tipo de transformada extraído del decodificador 710, para generar una señal residual. Y después, el reconstructor 730 genera un macrobloque reconstruido añadiendo la señal residual generada y el macrobloque predicho generado por el predictor 720. El macrobloque reconstruido generado se filtra en el filtro 740 y se almacena en la memoria de trama 750, y el macrobloque filtrado y almacenado se utiliza para reconstruir un macrobloque siguiente o una imagen siguiente. Como se describió anteriormente, el aparato de codificación de vídeo 600 y el aparato de decodificación de vídeo 700 según una realización preferida de la presente invención pueden codificar y decodificar una imagen utilizando macrobloques de tamaño 16x16 o más.
[0088] En lo sucesivo, los datos de una imagen intra transmitida a través de un tren de bits y un procedimiento de decodificación de la imagen intra se describirán con referencia a las figs. 20 y 21. En un caso de la imagen intra, un tipo y un orden de los datos transmitidos a través del tren de bits son como se muestra en las figs. 20 y 21. En primer lugar, se obtiene un valor de M * N_Block_type a través de una decodificación por entropía. Y después, se determina si cada macrobloque se divide en cuatro subbloques utilizando la Tabla 1.
[0089] Cuando un valor de M * N_Block_type del macrobloque reconstruido no es "0", se realiza la predicción intra en la unidad de macrobloques y puede captarse un modo de predicción e información de CBP a través del valor de M * N_Block_type. A continuación, se decodifican la información de modo de predicción y los tipos de transformada de las componentes de crominancia, QP_delta, y los datos necesarios para reconstruir un bloque residual tal como el coeficiente de transformada cuantificado. Sin embargo, los datos relacionados con la decodificación del bloque residual sólo se decodifican cuando el CBP obtenido a través de M * N_Block_type no es "0" (es decir, sólo cuando existe un coeficiente de transformada, que no es "0", en el macrobloque).
[0090] Un caso en el que el valor de M * N_Block_type del macrobloque reconstruido es "0" significa que el macrobloque se divide en cuatro subbloques. Cuando los subbloques divididos tienen tamaños iguales o mayores que el tamaño 16 * 16, los datos de la fig. 20 se decodifican secuencialmente para cada subbloque como se muestra en la fig. 20. Cuando los subbloques divididos tienen tamaños inferiores al tamaño 16 * 16, los datos de la fig. 21 se decodifican secuencialmente.
[0091] En un procedimiento de decodificación de información de transformada, un valor de use_large_transform_flag se establece mediante la decodificación por entropía de 1 bit para los bloques que tienen tamaños iguales o superiores al tamaño 16 * 16. Cuando el valor establecido de use_large_transform_flag indica que no existe uso de una transformada que tenga un gran tamaño (por ejemplo, el valor es "0"), se utiliza una transformada de 4 * 4 y se utiliza una transformada de Hardamard para las componentes de CC de los coeficientes de transformada obtenidos a través de la transformada de 4 * 4 en una transformada inversa. Cuando el valor establecido de use_large_transform_flag indica que existe el uso de una transformada que tiene un gran tamaño (por ejemplo, el valor es "1"), se utiliza una transformada que tiene un tamaño igual al del bloque actual.
[0092] En un caso de bloques que tienen un tamaño inferior al tamaño 16 * 16, use_large_transform_flag indica los tipos de transformada y los tamaños de subbloque utilizados en la predicción dentro de un bloque de 16 * 16. En este caso, use_large_transform_flag se codifica en la unidad de bloques de 16 * 16 sólo una vez. Cuando use_large_transform_flag indica que no existe uso de una transformada que tiene un gran tamaño (por ejemplo, el valor es "0"), cada bloque de 16 * 16 se divide en dieciséis bloques de tamaño 4 * 4. Cada bloque de 4 * 4 es predicho por predicción intra a 4 * 4 y un bloque residual es transformado inversamente a 4 * 4. Además, cuando use_large_transform_flag indica que existe el uso de una transformada que tiene un gran tamaño (por ejemplo, el valor es "1"), cada bloque de 16 * 16 se divide en cuatro bloques de tamaño 8 * 8. Cada bloque de 8 * 8 es predicho por predicción intra y un bloque residual es transformado inversamente a 8 * 8.
[0093] En lo sucesivo, los datos de una imagen intra transmitida a través de un tren de bits y un procedimiento de decodificación de la imagen intra se describirán con referencia a las figs. 22 y 21. En un caso de la imagen intra, un tipo y un orden de los datos transmitidos a través del tren de bits son como se muestra en las figs. 22 y 21. En un caso de decodificación de un valor de M * N_Block_Type igual o superior al tamaño 16 * 16, la imagen P puede decodificarse utilizando las Tablas 1 y 2, y la imagen B puede decodificarse utilizando las Tablas 1 y 3. Los macrobloques intra de la imagen P utilizan la Tabla 1, y a los valores de índice se les asignan valores generados añadiendo "5" a los valores de M * N_Block_Type. Por ejemplo, cuando un valor reconstruido de M * N_Block_Type dentro de la imagen P es "6", la predicción intra se realiza en la unidad de bloques de M * N y un valor de modo predicción intra es "0". Además, los coeficientes de transformada tanto de la componente de luminancia como de la componente de crominancia están en un modo 0. Del mismo modo, los macrobloques dentro de la imagen B utilizan las Tablas 1 y 3, y se asignan valores generados añadiendo "23" a los valores de M * N_Block_Type. En un caso de un tipo de bloque de M * N igual o inferior al tamaño 8 * 8, la imagen P puede decodificarse utilizando la Tabla 4, y la imagen B puede decodificarse utilizando la Tabla 5.
[0094] En un proceso de decodificación de macrobloques dentro de la imagen P, se decodifica una bandera (M * N_Skip_flag) que indica si los macrobloques están en modo SKIP y se determina si los macrobloques están en modo SKIP. Cuando los macrobloques están en el modo SKIP, se realiza una compensación de movimiento utilizando un vector de movimiento predicho y se completa una decodificación de macrobloque actual basada en la suposición de que el macrobloque predicho obtenido a través de la compensación de movimiento es un macrobloque reconstruido. A continuación, se decodifican por entropía los datos del siguiente macrobloque.
[0095] Cuando el macrobloque que debe decodificarse actualmente no está en el modo SKIP o no es el macrobloque intra, se decodifica por entropía un valor de M * N_Block_Type.
[0096] Se determina si el macrobloque se divide en cuatro subbloques utilizando el valor decodificado de M * N_Block_Type y la Tabla 2. Es decir, cuando el valor de M * N_Block_Type del macrobloque decodificado no es "0", los tamaños y modos de subbloque se establecen según la Tabla 2 basándose en el valor de M * N_Block_Type y la información de la imagen de referencia y una cantidad de información del vector de movimiento se decodifican iguales al número de subbloques. A continuación, se determina si existe un coeficiente de transformada, que no es "0", decodificando un c Bp . Cuando existe el coeficiente de transformada, que no es "0", se decodifican Use_Large_tranform_flag que indica los tipos de transformada, QP_delta y el coeficiente de transformada. Un caso en el que el valor de M * N_Block_Type del macrobloque decodificado es "0" significa que el macrobloque se divide en cuatro subbloques. Cuando los tamaños de los subbloques divididos son iguales o mayores que el tamaño 16 * 16, los datos de la fig. 22 se decodifican secuencialmente para cada subbloque. Cuando los tamaños de los subbloques divididos son menores que el tamaño 16 * 16, los datos de la fig. 23 se decodifican secuencialmente.
[0097] Un procedimiento de decodificación por entropía de los datos de transformada necesarios para una decodificación de bloque residual y extracción de un tipo de transformada utilizado en el codificador es diferente dependiendo de los tipos y tamaños de bloque como se describe a continuación.
[0098] En un caso de bloques de tamaño 16 * 16 o más, un tipo de transformada seleccionado por el codificador es uno de transformadas de 4 * 4, de 8 * 8 y de 16 * 16. En este caso, cuando un valor decodificado mediante decodificación por entropía de 1 bit indica que no se utiliza una transformada que tiene un gran tamaño (por ejemplo, el valor es "0"), la transformada de 4 * 4 se utiliza en una transformada inversa como procedimiento de decodificación de información de transformada. En el caso de que el valor del bit decodificado indique que se utiliza la transformada que tiene un gran tamaño (por ejemplo, el valor es "1"), si un segundo valor de bit decodificado mediante decodificación por entropía de 1 bit indica que no se utiliza la transformada que tiene un gran tamaño (por ejemplo, el valor es "0"), la transformada de 8 * 8 se utiliza en una transformada inversa. Por otra parte, la trasformación de 16 * 16 se utiliza en una transformada inversa.
[0099] En el caso de que un bloque de tamaño 16 * 16 se divida en dos subbloques de tamaño 16 * 8 o dos subbloques de tamaño 8 * 16, si un valor decodificado mediante decodificación por entropía de 1 bit indica que no se utiliza una transformada que tiene un gran tamaño, la transformada de 4 * 4 se utiliza como transformada inversa. En un caso en el que el valor decodificado indica que se utiliza la transformada que tiene un gran tamaño, si un valor decodificado mediante decodificación adicional por entropía de 1 bit indica que no se utiliza la transformada que tiene un gran tamaño, la transformada de 8 * 8 se utiliza como transformada inversa. En el caso de que el valor de bit decodificado en segundo lugar indique que se utiliza la transformada que tiene un gran tamaño, se utiliza una transformada inversa de tamaño 16 * 8 cuando los tamaños de subbloque son 16 * 8 y se utiliza una transformada inversa de tamaño 8 * 16 cuando los tamaños de subbloque son 8 * 16.
[0100] En lo sucesivo, como otra realización de la presente invención, se describirán un aparato y un procedimiento para determinar tamaños de macrobloques, y tipos y tamaños de subbloques disponibles y después codificar y decodificar un vídeo según la determinación con el fin de codificar y decodificar eficientemente el vídeo utilizando macrobloques de tamaño variable. Los macrobloques se refieren a bloques de píxeles de tamaño M * N (M y N son números enteros, donde M es un tamaño horizontal del macrobloque y N es un tamaño vertical del macrobloque, y por lo tanto satisfacen 0<M<M<un tamaño horizontal de una imagen de entrada y 0<N<un tamaño vertical de una imagen de entrada), y corresponden a las unidades de codificación y decodificación.
[0101] Un aparato de codificación de vídeo según una realización preferida de la presente invención puede incluir una unidad de configuración de tipo de bloque candidato, un codificador de vídeo, y un determinador de tipo de bloque.
[0102] La unidad de configuración de tipo de bloque candidato configura los candidatos de tipo de bloque para codificar una imagen utilizando macrobloques que tienen un cierto tamaño. El tipo de bloque puede incluir uno o más de un tamaño de macrobloque, un tamaño de subbloque mínimo y una combinación de modos de subbloque. Es decir, según la tecnología típica de compresión de vídeo, dado que los tamaños de macrobloque están fijados al tamaño 16 * 16, una imagen puede codificarse o decodificarse después de dividir la imagen en macrobloques que tienen un tamaño fijo. Sin embargo, según una realización preferida de la invención y otra realización de la presente invención, dado que puede utilizarse cualquier tamaño de macrobloque, puede codificarse una imagen después de dividir la imagen en la unidad de macrobloques que tienen un tamaño predeterminado. Además, según una realización preferida de la presente invención, los tamaños de macrobloques, que son las unidades de codificación / decodificación, pueden seleccionarse de manera diferente para cada capa de imagen, de sector o de macrobloque.
[0103] Una imagen de alta resolución puede codificarse eficientemente en la unidad de bloques grandes. Sin embargo, la eficiencia de codificación no siempre se mejora cuando todas las áreas de la imagen (bloque, sector, imagen, etc.) se codifican utilizando los bloques más grandes. Por ejemplo, en el caso de que las características de una imagen de la imagen sean monótonas, puede ser eficaz codificar la imagen en la unidad de macrobloques que tienen un gran tamaño. Sin embargo, en el caso de que las características de una imagen sean complejas, puede ser eficaz codificar la imagen en la unidad de macrobloques que tienen un pequeño tamaño. Por consiguiente, en otra realización de la presente invención, se determinan tamaños de macrobloques, mediante los cuales una imagen puede codificarse eficientemente, la imagen se codifica en la unidad de macrobloques que tienen el tamaño seleccionado, y la imagen se decodifica y reconstruye utilizando tamaños de macrobloque identificados por información incluida en el tren de bits.
[0104] Mientras tanto, un macrobloque puede dividirse en una pluralidad de subbloques para la predicción y la transformada. A medida que se amplían los tamaños de los macrobloques, puede cambiarse un tamaño de subbloque mínimo. Por ejemplo, según la tecnología típica de compresión de vídeo, un subbloque de tamaño 4 * 4 corresponde a un subbloque mínimo para la predicción y la transformada en un macrobloque de tamaño 16 * 16. Sin embargo, en un caso de codificación de una imagen utilizando macrobloques de tamaño 64 * 64, si la predicción o la transformada se realiza utilizando subbloques de tamaño 4 * 4, la eficiencia de codificación puede deteriorarse dependiendo de las características de la imagen porque se utilizan subbloques excesivamente pequeños para la codificación. Por lo tanto, puede ser eficaz determinar los subbloques de tamaño 8 * 8 o de tamaño 16 * 16 como tamaño de subbloque mínimo. Por consiguiente, en otra realización de la presente invención, se determina un tamaño de subbloque mínimo, mediante el cual una imagen puede codificarse eficientemente codificando la imagen de antemano, la imagen se codifica utilizando solo subbloques de tamaños iguales o mayores que el tamaño determinado correspondiente, y la imagen se decodifica y reconstruye utilizando subbloques de tamaños iguales o mayores que el tamaño de subbloque mínimo identificado por la información incluida en el tren de bits.
[0105] Además, a medida que se amplían los tamaños de macrobloque, los modos de bloque de los subbloques en los que se dividen los macrobloques se diversifican mucho y, por lo tanto, puede deteriorarse la eficiencia de codificación. Por ejemplo, según la tecnología típica de compresión de vídeo, los modos de subbloque para un macrobloque de tamaño 16 * 16 pueden incluir 16 * 16, 16 * 8, 8 * 16, 8 * 8, 8 * 4, 4 * 8 y 4 * 4. Sin embargo, en un caso de codificación de una imagen utilizando macrobloques de tamaño 64 * 64, pueden utilizarse muchos más modos de subbloque, incluyendo 64 * 64, 64 * 32, 32 * 32, 32 * 16, 16 * 32, 16 * 16, etc., de modo que se amplía la cantidad de bits para expresar o codificar la información sobre los subbloques divididos a partir de cada macrobloque y, por lo tanto, puede deteriorarse la eficiencia de codificación. Por consiguiente, puede ser eficaz predeterminar una combinación de modos de subbloque disponibles según la unidad de imágenes completas, la unidad de imágenes, el modo intra o el modo inter y, después, eliminar los modos de subbloque que no se utilizan.
[0106] Por consiguiente, en otra realización de la presente invención, se determina una combinación de modos de subbloque que puede codificar eficientemente una imagen, la imagen se codifica utilizando solo un modo de subbloque dentro de la combinación de modos de subbloque determinada, y la imagen se decodifica y reconstruye utilizando solo un modo de subbloque dentro de una combinación de modos de subbloque identificada por la información incluida en un tren de bits. Por ejemplo, cuando una combinación de modo subbloque para una imagen completa se determina como 32 * 16, 16 * 16 y 16 * 8, otros modos de subbloque (por ejemplo, 64 * 64, 32 * 64, 64 * 32, 32 * 32, 8 * 8, 4 * 4, etc.), excepto para los modos de subbloque 32 * 16, 16 * 16 y 16 * 8, no pueden incluirse en el universo para expresar información sobre los tamaños de subbloque para un área o macrobloque correspondiente, de modo que es posible reducir una cantidad de bits para expresar o codificar información sobre los modos de subbloque. Por ejemplo, en las Tablas 1 a 5, los valores o los bits asignados se cambian aunque se codifique un modo del mismo significado porque no se utilizan sintaxis innecesarias basadas en tamaños de macrobloque, tamaños de subbloque mínimo y modos de subbloque disponibles, y se eliminan los valores de código asignados a tales sintaxis.
[0107] Los tipos de bloque como un tamaño de macrobloque, un tamaño de subbloque mínimo, una combinación de modos de subbloque, etc. se determinan en la unidad de macrobloques, sectores o imágenes de una imagen, o en la unidad de Grupo de imagen (GOP) o secuencias de imágenes completas, y la información sobre tales tipos de bloque puede incluirse en un encabezamiento de tren de bits. Por ejemplo, cuando se determinan los tamaños de macrobloque en la unidad de imágenes, la información sobre los tamaños de macrobloque puede incluirse en un encabezamiento de imagen del tren de bits.
[0108] Un procedimiento de codificación / decodificación de tipos de subbloques dentro de un macrobloque puede ser diferente según un tamaño de macrobloque, un tamaño de subbloque mínimo y una combinación de modos de subbloque.
[0109] Un procedimiento de codificación de tipos de subbloques dentro de un macrobloque puede ser diferente según un tamaño de macrobloque o un tamaño de subbloque mínimo.
[0110] En lo sucesivo, se describirán diversos procedimientos de codificación de tamaños de macrobloque según la presente invención. A continuación se describe un primer procedimiento de codificación de tamaños de macrobloque.
[0111] Puede incluirse una bandera (Set_MBsize_flag) que indica si transmitir información sobre tamaños de macrobloque en un encabezamiento de secuencia, un encabezamiento de cada imagen o un encabezamiento de sector. Los tamaños de macrobloque pueden transmitirse o no según un valor de la bandera. En un caso de no transmitir los tamaños de macrobloque, se utilizan como macrobloques los macrobloques que tienen un tamaño predeterminado, por ejemplo, bloques de tamaño 16 * 16.
[0112] Si se designan tamaños de macrobloques, se transmite información sobre los tamaños de macrobloque. En este caso, pueden utilizarse macrobloques que tengan un cierto tamaño, de los cuales los tamaños horizontales y los tamaños verticales se establecen por separado. Alternativamente, en el caso de utilizar macrobloques cuadrados, solo se codifica la información sobre un lado del macrobloque cuadrado y después puede transmitirse al aparato de decodificación.
[0113] Los valores de tamaño de los macrobloques que deben codificarse pueden designarse como tamaños reales de macrobloque o puede transmitirse un valor que indique el número de veces que debe ampliarse o reducirse un macrobloque con respecto a un tamaño predeterminado. Además, los valores de tamaño de macrobloque pueden representarse utilizando bits más pequeños mediante la aplicación de una función logarítmica a los valores de tamaño de macrobloque en lugar de codificar directamente los valores de tamaño de macrobloque. Por ejemplo, se codifica un valor de log 2 (MBsize/X seleccionado) (X es un cierto número entero positivo, que es un múltiplo de 2). En este caso, puede seleccionarse un valor de X como tamaño de macrobloque mínimo disponible. Por ejemplo, si el tamaño de macrobloque mínimo disponible es 8 * 8, es preferible seleccionar "8" como valor de X. En este caso, se codifica "0" cuando un macrobloque actual es un bloque de tamaño 8 * 8, y se codifica "1" cuando el macrobloque actual es un bloque de tamaño 16 * 16. Si el tamaño de macrobloque mínimo disponible es 16 * 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 tamaño 16 * 16, y se codifica "1" cuando el macrobloque actual es un bloque de tamaño 32 * 32. En consecuencia, un tamaño de macrobloque actual puede representarse utilizando bits más pequeños que los bits utilizados para codificar un gran número, como 8, 16 o 32.
[0114] Además, pueden codificarse los aumentos del tamaño horizontal y el tamaño vertical, respectivamente.
[0115] Alternativamente, los valores de tamaño de los macrobloques que deben codificarse pueden ser valores de índice de una tabla concertada previamente entre el codificador y el decodificador.
[0116] En este caso, los tamaños de macrobloque que deben transmitirse pueden codificarse utilizando diversos procedimientos de codificación binaria, como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0117] En lo sucesivo, no se describe el establecimiento por separado de un tamaño horizontal y un tamaño vertical por conveniencia de las descripciones, pero es aplicable al establecimiento por separado del tamaño horizontal y el tamaño vertical. Además, aunque se ejemplifica la codificación de datos en un encabezamiento de secuencia y un encabezamiento de imagen, los datos pueden codificarse en un encabezamiento de sector o un encabezamiento de macrobloque.
[0118] Un ejemplo de sintaxis según el primer procedimiento de codificación de los tamaños de macrobloque es el siguiente.
Set_MBsize_Flag
if(Set_MBsize_Flag == 1)
{
MBsize
}
or
Set_MBsize_Flag
if(Set_MBsize_Flag == 1)
{
MBsize_width
MBsize_height
}
[0119] Alternativamente, los tamaños de macrobloque pueden transmitirse al aparato de decodificación de vídeo en cada encabezamiento de secuencia, de imagen, de sector o de macrobloque sin codificar la bandera (Set_MBsize_flag) que indica la transmisión de información sobre los tamaños de macrobloque.
[0120] En lo sucesivo, se describirá un segundo procedimiento de codificación de tamaños de macrobloque.
[0121] Según el segundo procedimiento, el tamaño M * N se establece como tamaño de macrobloque de referencia, y en cada encabezamiento de imagen, de sector o de macrobloque se codifica una bandera que indica si utilizar el tamaño de macrobloque de referencia. Cuando no se utiliza el tamaño de macrobloque de referencia, se codifica un tamaño de macrobloque seleccionado. Alternativamente, después de que en el encabezamiento de secuencia se codifique una bandera que indica si establecer el tamaño de macrobloque de referencia, se utiliza un tamaño predeterminado, por ejemplo, el tamaño 16 * 16 como tamaño de macrobloque de referencia si no se establece el tamaño de macrobloque de referencia, y el tamaño de macrobloque de referencia puede codificarse e incluirse en el encabezamiento de secuencia si se establece el tamaño de macrobloque de referencia.
[0122] En un procedimiento de codificación de un valor de default_MBsize, que es información que indica el tamaño de macrobloque de referencia, o un valor de MB_size, que es información que indica un tamaño de macrobloque actual, puede designarse un tamaño de macrobloque real o puede transmitirse un valor que indica el número de veces que debe ampliarse o reducirse un macrobloque con respecto a un tamaño predeterminado. Alternativamente, como se describe en el primer procedimiento mencionado anteriormente, los valores de tamaño de macrobloque pueden representarse utilizando bits más pequeños mediante la aplicación de una función logarítmica a los valores de tamaño de macrobloque en lugar de codificar directamente los valores de tamaño de macrobloque.
[0123] Pueden codificarse las ampliaciones del tamaño horizontal y del tamaño vertical, respectivamente.
[0124] Alternativamente, los valores de tamaño de los macrobloques que deben codificarse pueden ser valores de índice de una tabla concertada previamente entre el codificador y el decodificador.
[0125] En este caso, los tamaños de macrobloque que deben transmitirse pueden codificarse utilizando diversos procedimientos de codificación binaria, como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0126] Un ejemplo de sintaxis según el segundo procedimiento mencionado anteriormente de codificación de los tamaños de macrobloque es el siguiente.
Sequence, picture, or slice header Set defaultMBsize_Flag
if(Set_MBsize_Flag == 1)
{
default_MBsize
}
Picture, slice, or macroblock header
use_default_MBsize_flag
if(use_default_MBsize_flag == 0)
{
MB_size
}
[0127] En lo sucesivo, se describirá un segundo procedimiento de codificación de tamaños de macrobloque.
[0128] Según el tercer procedimiento, el tamaño M * N se establece como un tamaño de macrobloque de referencia, y en cada encabezamiento de macrobloque se codifica una bandera que indica si utilizar el tamaño de macrobloque de referencia y se transmite al aparato de decodificación de vídeo. Cuando la bandera indica que se utiliza el tamaño de macrobloque de referencia, se selecciona como macrobloque actual un bloque que tiene el mismo tamaño que el tamaño de macrobloque de referencia. Sin embargo, cuando la bandera indica que no se utiliza el tamaño de macrobloque de referencia, en un proceso de codificación o de decodificación se selecciona como el macrobloque actual un bloque que tiene un tamaño ampliado o reducido en una relación predeterminada con respecto al tamaño de macrobloque de referencia. Por ejemplo, un bloque que tiene un tamaño horizontal y un tamaño vertical ampliado o reducido dos veces a partir de un tamaño horizontal y un tamaño vertical del macrobloque de referencia puede seleccionarse como el macrobloque actual.
[0129] En el caso de que existan diversas relaciones de ampliación o de reducción, pueden representarse diversas relaciones estableciendo una longitud de la bandera de 2 bits o más. Alternativamente, la información que indica una relación de ampliación o una relación de reducción puede codificarse adicionalmente, además de la bandera que indica si utilizar el tamaño de macrobloque de referencia.
[0130] Cuando la bandera indica que no se utiliza el tamaño de macrobloque de referencia y se selecciona como macrobloque actual un bloque que tiene un tamaño ampliado con respecto al tamaño de macrobloque de referencia, el tamaño de macrobloque de referencia corresponde a un tamaño de macrobloque mínimo disponible para una codificación o decodificación de tren de bits actual. Por el contrario, cuando la bandera indica que no se utiliza el tamaño de macrobloque de referencia y se selecciona como macrobloque actual un bloque que tiene un tamaño reducido con respecto al tamaño de macrobloque de referencia, el tamaño de macrobloque de referencia corresponde a un tamaño de macrobloque máximo disponible para la codificación o decodificación de tren de bits actual.
[0131] El aparato de decodificación de vídeo puede seleccionar el tamaño de macrobloque actual utilizando la bandera que indica si utilizar el tamaño de macrobloque de referencia y / o información adicional que indica una ampliación o una reducción en una relación predeterminada con respecto al tamaño de macrobloque de referencia.
[0132] Según una realización preferida de la presente invención, la bandera que indica si establecer el tamaño de macrobloque de referencia puede incluirse en el encabezamiento de secuencia del tren de bits. Si no se establece el tamaño de macrobloque de referencia, puede concertarse de antemano que se utilice un tamaño predeterminado, por ejemplo, el tamaño 16 * 16 como tamaño de macrobloque de referencia.
[0133] Cuando se establece el tamaño de macrobloque de referencia y después se señaliza el tamaño de macrobloque de referencia establecido al aparato de decodificación de vídeo, la información que indica el tamaño de macrobloque de referencia se codifica y puede incluirse en el encabezamiento de la secuencia, etc. Según una realización preferida de la presente invención, el aparato de codificación de vídeo puede señalizar información que indica un tamaño de macrobloque máximo disponible para una codificación o decodificación de tren de bits actual al aparato de decodificación de vídeo como la información que indica el tamaño de macrobloque de referencia. Según una realización preferida de la presente invención, el aparato de codificación de vídeo puede señalar información que indica un tamaño de macrobloque mínimo disponible para la codificación o decodificación de tren de bits actual al aparato de decodificación de vídeo como la información que indica el tamaño de macrobloque de referencia. Según otra realización más de la presente invención, el aparato de codificación de vídeo puede señalar información que indica tanto el tamaño de macrobloque máximo como el tamaño de macrobloque mínimo disponibles para la codificación o decodificación de tren de bits actual al aparato de decodificación de vídeo como la información que indica el tamaño de macrobloque de referencia.
[0134] En un procedimiento de codificación default_MBsize, que es la información que indica el tamaño de macrobloque de referencia, puede designarse un tamaño de macrobloque real o puede transmitirse un valor que indica el número de veces que debe ampliarse o reducirse un macrobloque a partir de un tamaño predeterminado. Alternativamente, como se describe en el primer procedimiento mencionado anteriormente, los valores de tamaño de macrobloque pueden representarse utilizando bits más pequeños mediante la aplicación de una función logarítmica a los valores de tamaño de macrobloque en lugar de codificar directamente los valores de tamaño de macrobloque.
[0135] Más específicamente, por ejemplo, cuando default_MBsize indica el tamaño de macrobloque máximo disponible para la codificación o decodificación de tren de bits actual, se codifica un valor de log2 (X/default_MBsize) (X es un cierto número entero positivo, que es un múltiplo de 2). En este caso, el tamaño de macrobloque máximo disponible puede seleccionarse como un valor de X. Alternativamente, cuando default-MBsize indica el tamaño de macrobloque mínimo disponible para la codificación o decodificación de tren de bits actual, se codifica un valor de log2 (default_MBsize /X) (X es un cierto número entero positivo, que es un múltiplo de 2). En este caso, el tamaño de macrobloque mínimo disponible puede seleccionarse como un valor de X.
[0136] Pueden codificarse las ampliaciones del tamaño horizontal y del tamaño vertical, respectivamente.
[0137] Alternativamente, los valores de tamaño de los macrobloques que deben codificarse pueden ser valores de índice de una tabla concertada previamente entre el codificador y el decodificador.
[0138] En este caso, los tamaños de macrobloque que deben transmitirse pueden codificarse utilizando diversos procedimientos de codificación binaria, como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0139] A continuación, se describirá un cuarto procedimiento de codificación de tamaños de macrobloque.
[0140] Según el cuarto procedimiento, después de que en una primera imagen se codifiquen una bandera que indica si utilizar el tamaño de macrobloque de referencia y un tamaño de macrobloque seleccionado en un caso en el que no se utilice el tamaño de macrobloque de referencia, a partir de una segunda imagen puede codificarse una bandera que indica si utilizar un tamaño de macrobloque de una imagen anterior y un tamaño de macrobloque de una imagen actual en un caso en el que no se utilice el tamaño de macrobloque de la imagen anterior.
[0141] En un procedimiento de codificación de default_MB size, que es la información que indica el tamaño de macrobloque de referencia y MB_size, que es la información que indica el tamaño de macrobloque actual, puede designarse un tamaño de macrobloque real y puede transmitirse un valor que indica el número de veces que debe ampliarse o reducirse un macrobloque a partir de un tamaño predeterminado. Alternativamente, como se describe en el primer procedimiento mencionado anteriormente, los valores de tamaño de macrobloque pueden representarse utilizando bits más pequeños mediante la aplicación de una función logarítmica a los valores de tamaño de macrobloque en lugar de codificar directamente los valores de tamaño de macrobloque.
[0142] Además, pueden codificarse los aumentos del tamaño horizontal y el tamaño vertical, respectivamente. Alternativamente, los valores de tamaño de los macrobloques que deben codificarse pueden ser valores de índice de una tabla concertada previamente entre el codificador y el decodificador.
[0143] En este caso, los tamaños de macrobloque que deben transmitirse pueden codificarse utilizando diversos procedimientos de codificación binaria, como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0144] Un ejemplo de sintaxis según el cuarto procedimiento mencionado anteriormente de codificación de los tamaños de macrobloque es el siguiente.
First picture
Use_default_MBsize_flag
if(use_default_MBsize_flag == 0)
{
MB_size
}
From second picture
Use_prevPic_MBsize flag
if(use_prevPic_MBsize flag == 0)
{
MB_size
}
[0145] En lo sucesivo, se describirá un quinto procedimiento de codificación de tamaños de macrobloque.
[0146] Según el quinto procedimiento, se utilizan diferentes tamaños de macrobloque para una imagen intra y una imagen inter. Es decir, un tamaño de macrobloque para la imagen intra y un tamaño de macrobloque para la imagen inter se codifican en el encabezamiento de secuencia. Alternativamente, cada tamaño de macrobloque según un tipo de imagen puede codificarse sólo en encabezamientos de una primera imagen intra y una primera imagen inter.
[0147] Un procedimiento de codificación de información para el tamaño de macrobloque de la imagen intra y el tamaño de macrobloque de la imagen inter puede utilizarse en combinación con los procedimientos mencionados anteriormente.
Sequence header
Set_intraMBsize_Flag
Set_interMBsize_Flag
if(Set_interMBsize_Flag == 1)
{
intraMBsize
}
if(Set_interMBsize_Flag == 1)
{
interMBsize
}
[0148] En lo sucesivo, se describirán diversos procedimientos de decodificación de tamaños de macrobloque según la presente invención.
[0149] En primer lugar, se describirá un procedimiento de decodificación según el primer procedimiento de codificación de tamaños de macrobloque.
[0150] Cuando se incluye una bandera (Set_MBsize_flag) que indica si transmitir información para el tamaño de macrobloque, la bandera (Set_MBsize_flag) que indica si transmitir la información para el tamaño de macrobloque se deocidifica por entropía en una posición concertada tal como un encabezamiento de secuencia, un encabezamiento de cada imagen, un encabezamiento de sector, etc. Cuando la bandera codificada tiene un valor que indica que el tamaño de macrobloque no se transmite, se utiliza como macrobloque un macrobloque que tiene un tamaño predeterminado acordado con el codificador, por ejemplo, un bloque de 16 * 16.
[0151] Cuando la bandera de designación de tamaño de macrobloque decodificada (Set_MBsize_flag) indica que el tamaño de macrobloque está designado, el tamaño de macrobloque se decodifica y extrae a través de un procedimiento acordado con el codificador entre diversos procedimientos de decodificación por entropía tales como un código unario, un código unario truncado, un código Golomb exponencial (Exp), etc.
[0152] Cuando un tamaño horizontal y un tamaño vertical del macrobloque se establecen por separado y después se transmiten, el tamaño horizontal y el tamaño vertical pueden obtenerse mediante decodificación por entropía de cada uno de los tamaños. Alternativamente, si se utiliza un macrobloque cuadrado, sólo puede decodificarse por entropía la información que indica un lado del macrobloque cuadrado.
[0153] Puede designarse un valor decodificado como el tamaño de macrobloque real, y puede transmitirse un valor que indica el número de veces que debe ampliarse o reducirse un macrobloque a partir de un tamaño predeterminado. Además, cuando el codificador codifica un valor generado aplicando una función logarítmica al valor de tamaño de macrobloque, el tamaño de macrobloque puede establecerse aplicando una función exponencial al valor decodificado por entropía. Por ejemplo, cuando el codificador codifica y, que es un valor de log2 (MBsize seleccionado en el codificador/X) (X es un cierto número entero positivo, que es un múltiplo de 2), la entropía del decodificador decodifica la y puede obtener el tamaño de macrobloque seleccionado en el codificador multiplicando 2y y X. Aquí, X corresponde a un valor acordado entre el codificador y el decodificador o a un valor extraído del tren de bits antes de una decodificación de tamaño de macrobloque. Cuando se selecciona y utiliza un tamaño de macrobloque mínimo disponible para X y el tamaño de macrobloque mínimo disponible es 8 * 8, el tamaño de macrobloque se establece en 8 * 8 si un valor de y decodificado es "0", y el tamaño de macrobloque se establece en 16 * 16 si el valor de la y decodificada es '1". Cuando el tamaño de macrobloque mínimo disponible es 16 * 16, se utiliza "16" en lugar de "8" como X, y el tamaño de macrobloque se establece en 16 * 16 si el valor de la y decodificada es "0".
[0154] Cuando las relaciones del tamaño horizontal y el tamaño vertical se decodifican por separado en el codificador, el tamaño de macrobloque puede obtenerse decodificando por entropía por separado una relación del tamaño horizontal y una relación del tamaño vertical,
[0155] Además, cuando se codifica un valor de índice de una tabla concertada previamente entre el codificador y el decodificador, el tamaño de macrobloque puede obtenerse utilizando un valor decodificado como valor de índice de la tabla.
[0156] En este caso, los tamaños de los macrobloques que deben transmitirse pueden decodificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp). En lo sucesivo, no se describe la decodificación y extracción por separado de un tamaño horizontal y un tamaño vertical por conveniencia de las descripciones, pero es aplicable a la extracción por separado del tamaño horizontal y el tamaño vertical. Además, aunque se ejemplifica la decodificación de datos en un encabezamiento de secuencia y un encabezamiento de imagen, el tamaño de macrobloque puede decodificarse en un encabezamiento de sector o en un encabezamiento de macrobloque cuando el codificador codifica el tamaño de macrobloque en el encabezamiento de sector o en el encabezamiento de macrobloque.
[0157] En lo sucesivo, se describirá un procedimiento de decodificación según el segundo procedimiento de codificación de tamaños de macrobloque.
[0158] Según el segundo procedimiento, un tamaño M * N acordado con el codificador se establece como tamaño de macrobloque de referencia, y una bandera que indica si utilizar el tamaño de macrobloque de referencia se decodifica por entropía en un encabezamiento de cada imagen, un encabezamiento de sector y un encabezamiento de macrobloque. Cuando un valor de la bandera decodificada indica que no se utiliza el tamaño de macrobloque de referencia, la información relacionada con el macrobloque se extrae decodificando por entropía la información de tamaño de macrobloque, y se establece el tamaño de macrobloque. Un caso en el que el valor de la bandera decodificada indica que se utiliza el tamaño de macrobloque de referencia significa que la información de tamaño de macrobloque no se incluye en el tren de bits, de modo que se establece un tamaño de macrobloque de referencia preestablecido como el tamaño de macrobloque y se realiza una serie de procesos de decodificación.
[0159] Cuando el tamaño de macrobloque de referencia se incluye en el encabezamiento de secuencia y se transmite desde el codificador al decodificador, el tamaño de macrobloque de referencia puede extraerse desde una posición concertada tal como el encabezamiento de secuencia, etc., dentro del tren de bits. Aquí, al tamaño de macrobloque de referencia o al tamaño de macrobloque actual se le asigna un valor decodificado por entropía, y el tamaño de macrobloque puede obtenerse escalando (ampliando o reduciendo) un tamaño predeterminado con el valor decodificado por entropía. Alternativamente, como se describe en el primer procedimiento de decodificación mencionado anteriormente, cuando el codificador codifica un valor generado aplicando una función logarítmica al valor de tamaño de macrobloque, el valor de tamaño de macrobloque puede obtenerse utilizando una función exponencial.
[0160] Cuando el codificador decodifica por separado las relaciones de un tamaño horizontal y un tamaño vertical, el tamaño de macrobloque puede obtenerse decodificando por entropía por separado las relaciones del tamaño horizontal y el tamaño vertical.
[0161] Además, cuando se codifica un valor de índice de una tabla concertada previamente entre el codificador y el decodificador, el tamaño de macrobloque puede obtenerse utilizando un valor decodificado como valor de índice de la tabla.
[0162] En este caso, los tamaños de los macrobloques que deben transmitirse pueden decodificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0163] En lo sucesivo, se describirá un procedimiento de decodificación según el tercer procedimiento de codificación de tamaños de macrobloque.
[0164] Según el tercer procedimiento, el aparato de decodificación de vídeo extrae del tren de bits una bandera que indica si utilizar el tamaño de macrobloque de referencia y / o información adicional que indica una ampliación o una reducción en una relación predeterminada con respecto al tamaño de macrobloque de referencia y después puede extraerse el tamaño de macrobloque utilizando la información anterior.
[0165] En primer lugar, se establece un tamaño N * N como tamaño de macrobloque de referencia y se decodifica la bandera que indica utilizar el tamaño de macrobloque de referencia en cada encabezamiento de cada imagen, encabezamiento de sector y encabezamiento de macrobloque. Cuando la bandera indica que se utiliza el tamaño de macrobloque de referencia, el tamaño de macrobloque actual se establece igualmente en el tamaño de macrobloque de referencia y se realiza una decodificación utilizando el tamaño de macrobloque establecido en la unidad de macrobloques. Sin embargo, cuando la bandera indica que no se utiliza el tamaño de macrobloque de referencia, se establece un valor ampliado o reducido con respecto al tamaño de macrobloque de referencia mediante una relación predeterminada acordada con el codificador como el tamaño de macrobloque actual y se realiza una decodificación en la unidad de macrobloques. Por ejemplo, un tamaño ampliado o reducido dos veces desde el tamaño horizontal y el tamaño vertical del macrobloque de referencia puede establecerse como el tamaño de macrobloque actual.
[0166] Cuando el codificador utiliza diversas relaciones de ampliación o reducción, incluye una relación seleccionada en el tren de bits y codifica el tren de bits, el decodificador puede obtener del tren de bits diversas relaciones decodificando el número de bits acordado con el codificador en una decodificación por entropía de bandera.
[0167] Alternativamente, cuando la información que indica una relación de ampliación o una relación de reducción se incluye en el tren de bits y se codifica además de la bandera que indica si utilizar el tamaño de macrobloque de referencia, la relación de ampliación o la relación de reducción puede decodificarse o no según un valor de la bandera que indica si utilizar el tamaño de macrobloque de referencia después de que se haya decodificado la bandera. Si no se decodifica la relación de ampliación o la relación de reducción, el tamaño de macrobloque de referencia se establece como el tamaño de macrobloque actual y después se realizan los procesos de decodificación.
[0168] Cuando la bandera decodificada indica que el tamaño de macrobloque de referencia es diferente del tamaño de macrobloque actual y que la relación decodificada es la relación de ampliación, el tamaño de macrobloque de referencia se establece como el tamaño de macrobloque mínimo disponible para la codificación o decodificación de tren de bits actual, y después se establece como el tamaño de macrobloque actual un tamaño ampliado a partir del tamaño de macrobloque de referencia con la relación decodificada por entropía. Por el contrario, cuando la relación decodificada por entropía es la relación de reducción, el tamaño de macrobloque de referencia se establece como el tamaño de macrobloque máximo disponible para la codificación o decodificación de tren de bits actual, y después se establece como el tamaño de macrobloque actual un tamaño reducido con respecto al tamaño de macrobloque de referencia con la relación decodificada por entropía.
[0169] Según una realización preferida de la presente invención, cuándo una bandera que indica si establecer el tamaño de macrobloque de referencia se incluye en el encabezamiento de secuencia del tren de bits y después se transmite, el decodificador por entropía decodifica la bandera del encabezamiento de secuencia. Y después, cuando la bandera indica que se establece el tamaño de macrobloque de referencia, el decodificador extrae información de tamaño de macrobloque de referencia desde una posición concertada tal como el encabezamiento de secuencia del tren de bits y establece el tamaño de macrobloque de referencia utilizando la información extraída. Cuando la bandera indica que el tamaño de macrobloque de referencia no está establecido, puede utilizarse como tamaño de macrobloque de referencia un tamaño predeterminado concertado de antemano entre el codificador y el decodificador, por ejemplo, un tamaño 16 * 16.
[0170] Según una realización preferida de la presente invención, el aparato de decodificación de vídeo extrae del tren de bits información que indica el tamaño de macrobloque máximo disponible para la codificación o decodificación de tren de bits actual y puede utilizar la información extraída al establecer el tamaño de macrobloque de referencia. Según una realización preferida de la presente invención, el aparato de decodificación de vídeo extrae del tren de bits información que indica el tamaño de macrobloque mínimo disponible para la codificación o decodificación de tren de bits actual y puede utilizar la información extraída al establecer el tamaño de macrobloque de referencia. Según otra realización más de la presente invención, el aparato de decodificación de vídeo extrae del tren de bits información que indica tanto el tamaño de macrobloque máximo como el tamaño de macrobloque mínimo disponibles para la codificación o decodificación de tren de bits actual y puede utilizar la información extraída al establecer el tamaño de macrobloque de referencia.
[0171] En un procedimiento de decodificación de default_MBsize, que es la información que indica el tamaño de macrobloque de referencia, puede establecerse un valor decodificado por entropía en sí como valor de tamaño de macrobloque de referencia, y el tamaño de macrobloque de referencia puede obtenerse a través de una ampliación o una reducción a partir de un tamaño predeterminado utilizando el valor decodificado por entropía como relación de ampliación o relación de reducción. Alternativamente, como se describe en el primer procedimiento de decodificación mencionado anteriormente, cuando el codificador codifica un valor generado aplicando una función logarítmica al valor de tamaño de macrobloque, el valor de tamaño de macrobloque puede obtenerse utilizando una función exponencial.
[0172] Más específicamente, por ejemplo, cuando default_MBsize indica el tamaño de macrobloque máximo disponible para la codificación o decodificación de tren de bits actual y el codificador codifica y, que es un valor de log2 (X/default_MBsize) (X es un cierto número entero positivo, que es un múltiplo de 2), el decodificador puede obtener default_MBsize decodificando por entropía y multiplicando X y 2y. En este caso, X puede ser un valor acordado entre el codificador y el decodificador como el tamaño de macrobloque máximo disponible o un valor extraído del tren de bits antes de decodificar default_MBsize.
[0173] Alternativamente, cuando default_MBsize indica el tamaño de macrobloque mínimo disponible para la codificación o decodificación de tren de bits actual y el codificador codifica y, que es un valor de log2 (X/default_MBsize) (X es un cierto número entero positivo, que es un múltiplo de 2), el decodificador extrae y del tren de bits a través de una decodificación por entropía. Y después, el decodificador establece un valor generado multiplicando X y 2y como default_MBsize. En este caso, X puede ser un valor acordado entre el codificador y el decodificador como el tamaño de macrobloque mínimo disponible o un valor extraído del tren de bits antes de decodificar default_MBsize.
[0174] Además, cuando las relaciones del tamaño horizontal y el tamaño vertical se decodifican por separado en el codificador, el tamaño de macrobloque de referencia puede obtenerse decodificando por entropía por separado las relaciones del tamaño horizontal y el tamaño vertical.
[0175] Además, cuando se codifica un valor de índice de una tabla concertada previamente entre el codificador y el decodificador, el tamaño de macrobloque puede obtenerse utilizando un valor decodificado como valor de índice de la tabla.
[0176] En este caso, el tamaño de macrobloque de referencia puede decodificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0177] En lo sucesivo, se describirá un procedimiento de decodificación según el cuarto procedimiento de codificación de tamaños de macrobloque.
[0178] Según el cuarto procedimiento, después de que en una primera imagen se decodifican por entropía una bandera que indica si utilizar el tamaño de macrobloque de referencia e información de tamaño de macrobloque en un caso en el que no se utiliza el tamaño de macrobloque de referencia, se obtiene un tamaño de macrobloque necesario para una decodificación de primera imagen utilizando la información de tamaño de macrobloque decodificada.
[0179] Cuando la bandera que indica si utilizar el tamaño de macrobloque de referencia significa que se utiliza el tamaño de macrobloque de referencia, el tamaño de macrobloque se establece en el mismo tamaño que el tamaño de macrobloque de referencia y después se decodifica la primera imagen.
[0180] A partir de una segunda imagen, después de decodificar una bandera que indica si utilizar un tamaño de macrobloque de una imagen anterior como el tamaño de macrobloque actual, la información de tamaño de macrobloque para decodificar la imagen actual se decodifica cuando no se utiliza el tamaño de macrobloque de la imagen anterior. Cuando se utiliza el tamaño de macrobloque de la imagen anterior para decodificar la imagen actual, un tamaño de macrobloque se establece en el mismo tamaño que el tamaño de macrobloque de la imagen anterior y se decodifica la segunda imagen.
[0181] En un procedimiento de decodificación de default_MBsize, que es la información que indica el tamaño de macrobloque de referencia, o MB_size, que es información que indica el tamaño de macrobloque de la imagen actual, puede utilizarse un valor decodificado por entropía como tamaño de macrobloque y el tamaño de macrobloque puede obtenerse a través de una ampliación o una reducción de un tamaño predeterminado utilizando el valor decodificado por entropía como relación de ampliación o relación de reducción. Alternativamente, como se describe en el primer procedimiento de decodificación mencionado anteriormente, cuando el codificador codifica un valor generado aplicando una función logarítmica al valor de tamaño de macrobloque, el valor de tamaño de macrobloque puede obtenerse utilizando una función exponencial.
[0182] Además, cuando las relaciones del tamaño horizontal y el tamaño vertical se decodifican por separado en el codificador, el tamaño de macrobloque de referencia puede obtenerse decodificando por entropía por separado las relaciones del tamaño horizontal y el tamaño vertical.
[0183] Cuando se codifica un valor índice de una tabla concertada previamente entre el codificador y el decodificador, el tamaño de macrobloque puede obtenerse utilizando un valor decodificado como valor de índice de la tabla.
[0184] En este caso, el tamaño de macrobloque de referencia puede decodificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0185] En lo sucesivo, se describirá un procedimiento de decodificación según el quinto procedimiento de codificación de tamaños de macrobloque.
[0186] Según el quinto procedimiento, los tamaños de macrobloque de la imagen intra y de la imagen inter se extraen de posiciones, que son acordadas entre el codificador y el decodificador, dentro del tren de bits, respectivamente, y se establece un tamaño de macrobloque según el tipo de imagen.
[0187] Las banderas que indican si decodificar un tamaño de macrobloque para la imagen intra y que indican si decodificar un tamaño de macrobloque para la imagen inter se reconstruyen en la secuencia o en el encabezamiento de imagen, respectivamente, y después se decodifica el tamaño de macrobloque para la imagen intra o la imagen inter según un valor de la bandera a través del tren de bits o se reconstruye la imagen utilizando un tamaño de macrobloque concertado.
[0188] Un procedimiento de decodificación de información sobre tamaños de macrobloque de la imagen intra y la imagen inter puede utilizarse en combinación con los procedimientos de decodificación mencionados anteriormente según los procedimientos de codificación mencionados anteriormente.
[0189] En lo sucesivo, se describirán diversos procedimientos de codificación de un tamaño de subbloque mínimo seleccionado según la presente invención. Un macrobloque puede dividirse en una pluralidad de subbloques para la predicción o la transformada. Los macrobloques según la presente invención puede tener tamaños variables y la información sobre los tamaños de macrobloque puede codificarse utilizando los diversos procedimientos descritos anteriormente.
[0190] En primer lugar se describe un primer procedimiento de codificación de un tamaño de subbloque mínimo. En el encabezamiento de secuencia o en el encabezamiento de cada imagen puede incluirse una bandera (Set_minBlockSize_flag) que indica si transmitir un tamaño de subbloque mínimo. El tamaño de subbloque mínimo puede transmitirse o no dependiendo de un valor de la bandera. Si no se transmite el tamaño de subbloque mínimo, se utiliza como tamaño de subbloque mínimo un subbloque mínimo que tiene un tamaño predeterminado, por ejemplo, un bloque de 4 * 4.
[0191] Cuando se designa el tamaño de subbloque mínimo, se transmite información sobre el tamaño de subbloque mínimo. En este caso, es posible utilizar un subbloque mínimo que tiene un cierto tamaño si se establecen por separado un tamaño horizontal y un tamaño vertical del tamaño de subbloque mínimo. Alternativamente, cuando se utiliza un cuadrado para el subbloque mínimo, sólo se codifica información sobre un lado del cuadrado y después se transmite al aparato de decodificación.
[0192] Un valor de tamaño de subbloque mínimo que debe codificarse puede designarse como un tamaño de subbloque mínimo real, y puede transmitirse un valor que indica el número de veces que un macrobloque debe ser ampliado o reducido a partir de un tamaño predeterminado. Además, el valor de tamaño de subbloque mínimo puede representarse utilizando bits más pequeños mediante la aplicación de una función logarítmica al valor de tamaño de subbloque mínimo en lugar de codificar directamente el valor de tamaño de subbloque mínimo. Por ejemplo, se codifica un valor de log2 (tamaño de subbloque mínimo seleccionado/X) (X es un cierto número entero positivo, que es un múltiplo de 2). En este caso, puede seleccionarse como valor de X un tamaño de subbloque mínimo disponible. Por ejemplo, si el tamaño de subbloque mínimo disponible es 4 * 4, es preferible seleccionar el valor de X como "4". En este caso, se codifica "00" cuando el tamaño de subbloque mínimo actual es 4 * 4, y se codifica "1" cuando el tamaño de subbloque mínimo actual es 8 * 8. Cuando el tamaño de subbloque mínimo disponible es 8 * 8, es preferible seleccionar el valor de X como "8" en lugar de "4". En este caso, se codifica "0" cuando el tamaño de subbloque mínimo actual es 8 * 8, y se codifica "1" cuando el tamaño de subbloque mínimo actual es 4 * 4. Por consiguiente, el tamaño de macrobloque actual puede representarse utilizando bits más pequeños que los bits utilizados para codificar un número tal como 4, 8 o 16.
[0193] Las relaciones entre el tamaño horizontal y la vertical pueden codificarse por separado.
[0194] En lo sucesivo, no se describe el establecimiento por separado del tamaño horizontal y el tamaño vertical por conveniencia de las descripciones, pero es aplicable el establecimiento por separado del tamaño horizontal y el tamaño vertical. Además, aunque se ejemplifica la codificación de datos en el encabezamiento de secuencia y en el encabezamiento de imagen, los datos pueden codificarse en el encabezamiento de sector o en el encabezamiento de macrobloque.
[0195] Un ejemplo de sintaxis según el primer procedimiento mencionado anteriormente de codificación del tamaño de subbloque mínimo es el siguiente.
Set_minBlockSize_flag
If(Set_minBlockSize_flag == 1)
{
minBlockSize
}
or
Set_minBlockSize_flag
If(Set_minBlockSize_flag == 1)
{
minBlockSize_Width
minBlockSize_height
}
[0196] Alternativamente, el tamaño de subbloque mínimo puede transmitirse al aparato de decodificación de vídeo en cada encabezamiento de secuencia, encabezamiento de imagen, encabezamiento de sector o encabezamiento de macrobloque sin codificar una bandera (Set_minBlockSize_flag) que indica si transmitir información sobre el tamaño de subbloque mínimo.
[0197] A continuación, se describirá un segundo procedimiento de codificación del tamaño de subbloque mínimo.
[0198] Según el segundo procedimiento, se codifica un tamaño de subbloque mínimo seleccionado cuando se establece un tamaño de M * N como tamaño de subbloque mínimo de referencia, se codifica una bandera que indica si debe utilizarse el tamaño de subbloque mínimo de referencia en cada encabezamiento de sector, encabezamiento de macrobloque o encabezamiento de cada imagen, y no se utiliza el tamaño de subbloque mínimo de referencia. Alternativamente, después de codificarse en el encabezamiento de secuencia una bandera que indica si establecer el tamaño de subbloque mínimo de referencia, se utiliza un tamaño predeterminado, por ejemplo, un tamaño 4 * 4 como tamaño de subbloque mínimo de referencia si no se establece el tamaño de subbloque mínimo de referencia, y el tamaño de subbloque mínimo de referencia se codifica y puede incluirse en el encabezamiento de secuencia si se establece el tamaño de subbloque mínimo de referencia.
[0199] En un procedimiento de codificación de default_minBlockSize, que es la información que indica el tamaño de subbloque mínimo de referencia, o minBlockSize, que es la información que indica el tamaño de subbloque mínimo actual, puede designarse un tamaño de subbloque mínimo real y puede transmitirse un valor que indica el número de veces que debe ampliarse o reducirse un macrobloque a partir de un tamaño predeterminado. Alternativamente, como se describe en el primer procedimiento mencionado anteriormente, el valor de tamaño de subbloque mínimo puede representarse utilizando bits más pequeños mediante la aplicación de una función logarítmica al valor mínimo de tamaño de subbloque mínimo en lugar de codificar directamente el valor de tamaño de subbloque mínimo.
[0200] Pueden codificarse las ampliaciones del tamaño horizontal y del tamaño vertical, respectivamente.
[0201] Alternativamente, el valor mínimo de tamaño de subbloque mínimo puede ser un valor índice de una tabla concertada previamente entre el codificador y el decodificador.
[0202] En este caso, el tamaño de subbloque mínimo que debe transmitirse puede codificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0203] Un ejemplo de sintaxis según el segundo procedimiento mencionado anteriormente de codificación del tamaño de subbloque mínimo es el siguiente.
Sequence header, picture header, or slice header
Set_defalut minBlockSize_Flag
if(Set_default minBlockSize_Flag == 1)
{
Default_minBlockSize }
Picture header, slice header, or macroblock header
use_default_minBlockSize_flag
if(use_default_minBlockSize_flag == 0)
{
minBlockSize
}
[0204] En lo sucesivo, se describirá un tercer procedimiento de codificación del tamaño de subbloque mínimo.
[0205] Según el tercer procedimiento, se establece un tamaño M * N como tamaño de subbloque mínimo de referencia, y se codifica una bandera que indica si debe utilizarse el tamaño de subbloque mínimo de referencia en cada encabezamiento de cada imagen, encabezamiento de sector o encabezamiento de subbloque mínimo y se transmite al aparato de decodificación de vídeo. Cuando la bandera indica que se utiliza el tamaño de subbloque mínimo de referencia, se selecciona como un subbloque mínimo actual un bloque que tiene el mismo tamaño que el tamaño de subbloque mínimo de referencia. Sin embargo, cuando la bandera indica que no se utiliza el tamaño de subbloque mínimo de referencia, en un proceso de codificación o decodificación se selecciona como subbloque mínimo actual un bloque que tiene un tamaño ampliado o reducido en una relación predeterminada con respecto al tamaño de subbloque mínimo de referencia. Por ejemplo, puede seleccionarse como subbloque mínimo actual un bloque que tiene un tamaño horizontal y un tamaño vertical dos veces más grande o dos veces más pequeño que el tamaño horizontal y el tamaño vertical del subbloque mínimo de referencia.
[0206] Cuando existen diversas relaciones de ampliación o reducción, pueden representarse diversas relaciones haciendo que una longitud de la bandera sea mayor de 2 bits. Alternativamente, la información que indica la relación de ampliación o la relación de reducción puede codificarse adicionalmente, además de la bandera que indica utilizar el tamaño de subbloque mínimo de referencia.
[0207] Cuando la bandera indica que no se utiliza el tamaño de subbloque mínimo de referencia y se selecciona como subbloque mínimo actual un bloque que tiene un tamaño ampliado desde el tamaño de subbloque mínimo de referencia, el tamaño de subbloque mínimo de referencia corresponde a un mínimo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual. Por el contrario, cuando la bandera indica que no se utiliza el tamaño de subbloque mínimo de referencia y se selecciona como subbloque mínimo actual un bloque que tiene un tamaño reducido con respecto al tamaño de subbloque mínimo de referencia, el tamaño de subbloque mínimo de referencia corresponde a un máximo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual.
[0208] El aparato de decodificación de vídeo puede seleccionar el tamaño de subbloque mínimo actual utilizando la bandera que indica si utilizar el tamaño de subbloque mínimo de referencia y / o información adicional que indica una ampliación o una reducción en una relación predeterminada con respecto al tamaño de subbloque mínimo de referencia.
[0209] Según una realización preferida de la presente invención, la bandera que indica si establecer el tamaño de subbloque mínimo de referencia puede incluirse en el encabezamiento de secuencia. Si no se establece el tamaño de subbloque mínimo de referencia, puede preconcertarse utilizar un tamaño predeterminado, por ejemplo, un tamaño 16 x 16 como tamaño de subbloque mínimo de referencia.
[0210] Cuando se establece el tamaño de subbloque mínimo de referencia y se señala al aparato de decodificación de vídeo, la información sobre el tamaño de subbloque mínimo de referencia se codifica y puede incluirse en el encabezamiento de la secuencia. Según una realización preferida de la presente invención, el aparato de codificación de vídeo puede señalar información que indica el máximo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual al aparato de decodificación de vídeo como la información sobre el tamaño de subbloque mínimo de referencia. Según una realización preferida de la presente invención, el aparato de codificación de vídeo puede señalar información que indica el mínimo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual al aparato de decodificación de vídeo como la información sobre el tamaño de subbloque mínimo de referencia. Según otra realización más de la presente invención, el aparato de codificación de vídeo puede señalar información tanto sobre el máximo tamaño de subbloque mínimo como sobre el mínimo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual al aparato de decodificación de vídeo como la información sobre el tamaño de subbloque mínimo de referencia.
[0211] En un procedimiento de codificación de default_minBlockSize, que es la información sobre el tamaño de subbloque mínimo de referencia, puede designarse el tamaño de subbloque mínimo real y transmitirse un valor que indica el número de veces que debe ampliarse o reducirse un subbloque a partir de un tamaño predeterminado. Alternativamente, como se describe en el primer procedimiento mencionado anteriormente, el valor de tamaño de subbloque mínimo puede representarse utilizando bits más pequeños mediante la aplicación de una función logarítmica al valor de tamaño de subbloque mínimo en lugar de codificar directamente el valor de tamaño de subbloque mínimo.
[0212] Más específicamente, por ejemplo, cuando default_minBlockSize indica el máximo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual, se codifica un valor de log2 (X/default_mimBlockSize) (X es un cierto número entero positivo, que es un múltiplo de 2). En este caso, puede seleccionarse como valor de X un máximo tamaño de subbloque mínimo disponible. Alternativamente, cuando default_minBlockSize indica el mínimo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual, se codifica un valor de log2 (default_mimBlockSize/X) (X es un cierto número entero positivo, que es un múltiplo de 2). En este caso, puede seleccionarse como valor de X un mínimo tamaño de subbloque mínimo disponible.
[0213] Pueden codificarse las ampliaciones del tamaño horizontal y del tamaño vertical, respectivamente.
[0214] Alternativamente, el valor mínimo de tamaño de subbloque mínimo puede ser un valor índice de una tabla concertada previamente entre el codificador y el decodificador.
[0215] En este caso, el tamaño de subbloque mínimo que debe transmitirse puede codificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0216] A continuación, se describirá un cuarto procedimiento de codificación del tamaño de subbloque mínimo.
[0217] Según el cuarto procedimiento, después de codificarse en una primera imagen la bandera que indica si utilizar el tamaño de subbloque mínimo de referencia y un tamaño de subbloque mínimo seleccionado en un caso en el que no se utiliza el tamaño de subbloque mínimo de referencia, a partir de una segunda imagen puede codificarse una bandera que indica si utilizar un tamaño de subbloque mínimo de una imagen anterior y un tamaño de subbloque mínimo de una imagen actual en un caso en el que no se utiliza el tamaño de subbloque mínimo de la imagen anterior.
[0218] En un procedimiento de codificación de default_minBlockSize, que es la información sobre el tamaño de subbloque mínimo de referencia, o minBlockSize, que es la información sobre el tamaño de subbloque mínimo actual, puede designarse el tamaño de subbloque mínimo real y puede transmitirse un valor que indica el número de veces que debe ampliarse o reducirse un subbloque a partir de un tamaño predeterminado. Alternativamente, como se describe en el primer procedimiento mencionado anteriormente, el valor de tamaño de subbloque mínimo puede representarse utilizando bits más pequeños mediante la aplicación de una función logarítmica al valor de tamaño de subbloque mínimo en lugar de codificar directamente el valor de tamaño de subbloque mínimo.
[0219] Las relaciones del tamaño horizontal y el tamaño vertical pueden codificarse por separado. Alternativamente, el valor mínimo de tamaño de subbloque mínimo puede ser un valor índice de una tabla concertada previamente entre el codificador y el decodificador.
[0220] En este caso, el tamaño de subbloque mínimo que debe transmitirse puede codificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0221] Un ejemplo de sintaxis según el cuarto procedimiento mencionado anteriormente de codificación del tamaño de subbloque mínimo es el siguiente.
First picture
Use_default_minBlockSize_flag
if(use_default_minBlockSize_flag == 0)
{
minBlockSize
}
From second picture
Use_prevPic_minBlockSize_flag
if(use_prevPic_minBlockSize e_flag == 0)
{
minBlockSize
}
[0222] En lo sucesivo, se describirá un quinto procedimiento de codificación del tamaño de subbloque mínimo.
[0223] Según el quinto procedimiento, se utilizan diferentes tamaños de subbloque mínimo para la imagen intra y la imagen inter. Es decir, en el encabezamiento de secuencia se codifica un tamaño de subbloque mínimo para la imagen intra y un tamaño de subbloque mínimo para la imagen inter. Alternativamente, los tamaños mínimos de subbloque según los tipos de imagen pueden codificarse sólo en un primer encabezamiento de imagen intra y en un primer encabezamiento de imagen inter, respectivamente.
[0224] Un procedimiento de codificación de información sobre el tamaño de subbloque mínimo de la imagen intra y el tamaño de subbloque mínimo de la imagen inter puede utilizarse en combinación con los procedimientos mencionados anteriormente.
Sequence header
Set_intra minBlockSize_Flag
Set_inter minBlockSize_Flag
if(Set_intra minBlockSize_Flag == 1)
{
intra minBlockSize
}
if(Set_inter minBlockSize_Flag == 1)
{
inter minBlockSize
}
[0225] En lo sucesivo, se describirán diversos procedimientos de decodificación del tamaño de subbloque mínimo según la presente invención.
[0226] En primer lugar se describe un procedimiento de decodificación según el primer procedimiento de codificación del tamaño de subbloque mínimo.
[0227] Cuando se incluye una bandera (Set_minBlockSize_flag) que indica si transmitir información sobre el tamaño de subbloque mínimo, la bandera (Set_minBlockSize_flag) que indica si transmitir la información sobre el tamaño de subbloque mínimo se decodifica por entropía en una posición concertada tal como el encabezamiento de secuencia, el encabezamiento de cada imagen o el encabezamiento de sector. Cuando la bandera decodificada tiene un valor que indica que no se transmite el tamaño de subbloque mínimo, se utiliza como subbloque mínimo un subbloque mínimo que tiene un tamaño predeterminado acordado con el codificador, por ejemplo, un bloque de 4 * 4.
[0228] Cuando la bandera de designación de tamaño de subbloque mínimo decodificada (Set_minBlockSize_flag) indica que se designa el tamaño de subbloque mínimo, el tamaño de subbloque mínimo se decodifica por entropía y se extrae a través de un procedimiento acordado con el codificador entre diversos procedimientos de decodificación por entropía tales como un código unario, un código unario truncado, un código Golomb exponencial (Exp), etc.
[0229] Cuando un tamaño horizontal y un tamaño vertical del subbloque mínimo se establecen y transmiten por separado, el tamaño horizontal y el tamaño vertical pueden obtenerse decodificando por entropía por separado el tamaño horizontal y el tamaño vertical. Alternativamente, cuando se utiliza un subbloque mínimo cuadrado, sólo puede decodificarse por entropía la información sobre un lado del subbloque mínimo cuadrado.
[0230] Un valor decodificado puede designarse como el tamaño de subbloque mínimo real y un valor generado ampliando o reduciendo el valor decodificado a partir de un tamaño predeterminado acordado con el codificador puede designarse como el tamaño de subbloque mínimo. Además, cuando en el codificador se codifica un valor generado aplicando una función logarítmica al valor de tamaño de subbloque mínimo, puede establecerse como el tamaño de subbloque mínimo un valor generado aplicando una función exponencial al valor decodificado por entropía. Por ejemplo, cuando el codificador codifica y, que es un valor de log 2 (tamaño de subbloque mínimo seleccionado en el codificador/X) (X es un cierto número entero positivo, que es un múltiplo de 2), el decodificador puede obtener el tamaño de subbloque mínimo seleccionado en el codificador decodificando por entropía y multiplicando X y 2y. Aquí, X es un valor acordado entre el codificador y el decodificador o un valor extraído del tren de bits antes de decodificar el tamaño de subbloque mínimo. Cuando se selecciona y utiliza un mínimo tamaño de subbloque mínimo, que puede utilizarse como la X, y un mínimo tamaño de subbloque mínimo disponible es un tamaño 4 * 4, el tamaño de subbloque mínimo se establece como el tamaño 4 * 4 si un valor de la y decodificada es "0", y el tamaño de subbloque mínimo se establece como un tamaño 8 * 8 si el valor de la y decodificada es "1". Cuando el tamaño de subbloque mínimo disponible es el tamaño 8 * 8, se utiliza "8" en lugar de "4" como valor de X, y el tamaño de subbloque mínimo se establece como el tamaño 8 * 8 si el valor de la y decodificada es "0".
[0231] Cuando el codificador decodifica por separado las relaciones del tamaño horizontal y el tamaño vertical, el tamaño de subbloque mínimo puede obtenerse decodificando por entropía por separado las relaciones del tamaño horizontal y el tamaño vertical.
[0232] Se codifica un valor de índice de una tabla concertada previamente entre el codificador y el decodificador, el tamaño de subbloque mínimo puede obtenerse utilizando un valor decodificado como valor de índice de la tabla.
[0233] En este caso, el tamaño de subbloque mínimo que debe transmitirse puede decodificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado, y un código Golomb exponencial (Exp). En lo sucesivo, no se describe la decodificación y extracción por separado del tamaño horizontal y el tamaño vertical por conveniencia de las descripciones, pero es aplicable a la extracción por separado del tamaño horizontal y el tamaño vertical. Aunque se ejemplifica la decodificación de datos en el encabezamiento de secuencia y en el encabezamiento de imagen, el tamaño de subbloque mínimo puede decodificarse en el encabezamiento de sector o en el encabezamiento de subbloque mínimo cuando el codificador codifica el tamaño de subbloque mínimo en el encabezamiento de sector o en el encabezamiento de subbloque mínimo.
[0234] En lo sucesivo, se describirá un procedimiento de decodificación según el segundo procedimiento de codificación del tamaño de subbloque mínimo.
[0235] Según el segundo procedimiento, se establece un tamaño M * N acordado con el codificador como tamaño de subbloque mínimo de referencia, y la bandera que indica si utilizar el tamaño de subbloque mínimo de referencia se decodifica por entropía a partir del encabezamiento de subbloque mínimo. Cuando un valor de la bandera decodificada indica que no se utiliza el tamaño de subbloque mínimo de referencia, la información relacionada con el subbloque mínimo se extrae decodificando por entropía la información de tamaño de subbloque mínimo y se establece el tamaño de subbloque mínimo. Puesto que un caso en el que el valor de la bandera decodificada indica que se utiliza el tamaño de subbloque mínimo de referencia significa que la información de tamaño de subbloque mínimo no se incluye en el tren de bits, se establece como tamaño de subbloque mínimo un tamaño de subbloque mínimo de referencia preestablecido y se lleva a cabo una serie de procesos de decodificación.
[0236] Cuando el tamaño de subbloque mínimo de referencia se incluye en el encabezamiento de secuencia y se transmite desde el codificador al decodificador, el tamaño de subbloque mínimo de referencia puede extraerse de una posición concertada tal como el encabezamiento de secuencia dentro del tren de bits. Aquí puede asignarse un valor decodificado por entropía al tamaño de subbloque mínimo de referencia o al tamaño de subbloque mínimo actual, y el tamaño de subbloque mínimo puede obtenerse escalando (ampliando o reduciendo) un tamaño predeterminado con el valor decodificado por entropía. Alternativamente, como se describe en el primer procedimiento de decodificación mencionado anteriormente, cuando el codificador codifica un valor generado aplicando una función logarítmica al valor de tamaño de subbloque mínimo, el valor de tamaño de subbloque mínimo puede obtenerse utilizando una función exponencial.
[0237] Cuando las relaciones entre el tamaño horizontal y el tamaño vertical se decodifican por separado en el codificador, el tamaño de subbloque mínimo puede obtenerse decodificando por entropía por separado las relaciones del tamaño horizontal y el tamaño vertical.
[0238] Además, cuando se codifica un valor de índice de una tabla concertada previamente entre el codificador y el decodificador, el tamaño de subbloque mínimo puede obtenerse utilizando el valor decodificado como valor de índice de la tabla.
[0239] En este caso, el tamaño de subbloque mínimo que debe transmitirse puede decodificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado, y un código Golomb exponencial (Exp).
[0240] En lo sucesivo, se describirá un procedimiento de decodificación según el tercer procedimiento de codificación del tamaño de subbloque mínimo.
[0241] Según el tercer procedimiento, el aparato de decodificación de vídeo extrae del tren de bits una bandera que indica si utilizar el tamaño de subbloque mínimo de referencia y / o información adicional que indica una ampliación o una reducción en una relación predeterminada con respecto al tamaño de subbloque mínimo de referencia, y después puede extraer un tamaño de subbloque mínimo actual utilizando la información anterior.
[0242] En primer lugar, se establece un tamaño N * N como tamaño de subbloque mínimo de referencia y en cada encabezamiento de cada imagen, encabezamiento de sector y encabezamiento de subbloque se decodifica una bandera que indica si utilizar el tamaño de subbloque mínimo de referencia. Cuando la bandera indica que se utiliza el tamaño de subbloque mínimo de referencia, el tamaño de subbloque mínimo actual se establece en el mismo tamaño que el tamaño de macrobloque de referencia y se realiza una decodificación utilizando el tamaño de subbloque mínimo establecido en la unidad de subbloques mínimos. Sin embargo, cuando la bandera indica que no se utiliza el tamaño de subbloque mínimo de referencia, se establece como el tamaño de subbloque mínimo actual un valor ampliado o reducido con respecto al tamaño de subbloque mínimo de referencia mediante una relación predeterminada acordada con el codificador y se realiza una decodificación en la unidad de subbloques mínimos. Por ejemplo, un tamaño ampliado o reducido dos veces respecto al tamaño horizontal y al tamaño vertical del subbloque mínimo de referencia puede establecerse como tamaño de subbloque mínimo actual.
[0243] Cuando el codificador utiliza diversas relaciones de ampliación o reducción, incluye una relación seleccionada en el tren de bits y codifica el tren de bits, el decodificador puede obtener del tren de bits diversas relaciones decodificando la bandera que corresponde al número de bits acordado con el codificador en una decodificación por entropía de bandera.
[0244] Alternativamente, cuando la información que indica una relación de ampliación o una relación de reducción se incluye en el tren de bits y se codifica además de la bandera que indica si utilizar el tamaño de subbloque mínimo de referencia, la relación de ampliación o la relación de reducción puede decodificarse o no según un valor de la bandera que indica si utilizar el tamaño de subbloque mínimo de referencia después de decodificarse la bandera. Si no se decodifica la relación de ampliación o la relación de reducción, el tamaño de subbloque mínimo de referencia se establece como el tamaño de subbloque mínimo actual y después se realizan procesos de decodificación.
[0245] Cuando la bandera decodificada indica que el tamaño de subbloque mínimo de referencia es diferente del tamaño de subbloque mínimo actual y la relación decodificada es la relación de ampliación, el tamaño de subbloque mínimo de referencia se establece como un mínimo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual, y después se establece como tamaño de subbloque mínimo actual un tamaño ampliado a partir del tamaño de subbloque mínimo de referencia con la relación decodificada por entropía. Por el contrario, cuando la relación decodificada por entropía es la relación de reducción, el tamaño de subbloque mínimo de referencia se establece como un máximo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual, y después se establece como tamaño de subbloque mínimo actual un tamaño reducido con respecto al tamaño de subbloque mínimo de referencia con la relación decodificada por entropía.
[0246] Según una realización preferida de la presente invención, cuándo una bandera que indica si establecer el tamaño de subbloque mínimo de referencia se incluye en el encabezamiento de secuencia del tren de bits y se transmite, el decodificador decodifica por entropía la bandera a partir del encabezamiento de secuencia. Y después, cuando la bandera indica que se establece el tamaño de subbloque mínimo de referencia, el decodificador extrae información de tamaño de subbloque mínimo de referencia desde una posición concertada, tal como el encabezamiento de secuencia del tren de bits y establece el tamaño de subbloque mínimo de referencia utilizando la información extraída. Cuando la bandera indica que no se establece el tamaño de subbloque mínimo de referencia, puede utilizarse como tamaño de subbloque mínimo de referencia un tamaño predeterminado concertado de antemano entre el codificador y el decodificador, por ejemplo, un tamaño 4 * 4.
[0247] Según una realización preferida de la presente invención, el aparato de decodificación de vídeo extrae del tren de bits información que indica el máximo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual y puede utilizar la información extraída al establecer el tamaño de subbloque mínimo de referencia. Según una realización preferida de la presente invención, el aparato de decodificación de vídeo extrae del tren de bits información que indica el mínimo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual y puede utilizar la información extraída al establecer el tamaño de subbloque mínimo de referencia. Según otra realización más de la presente invención, el aparato de decodificación de vídeo extrae del tren de bits información que indica información tanto sobre el máximo tamaño de subbloque mínimo como del mínimo tamaño de subbloque mínimo disponibles para la codificación o decodificación de tren de bits actual y puede utilizar la información extraída al establecer el tamaño de subbloque mínimo de referencia.
[0248] En un procedimiento de decodificación de default_minBlockSize, que es la información que indica el tamaño de subbloque mínimo de referencia, un valor decodificado por entropía en sí puede establecerse como un valor de tamaño de subbloque mínimo de referencia y el tamaño de subbloque mínimo de referencia puede obtenerse a través de una ampliación o una reducción a partir de un tamaño predeterminado utilizando el valor decodificado por entropía como una relación de ampliación o una relación de reducción. Alternativamente, como se describe en el primer procedimiento de decodificación mencionado anteriormente, cuando el codificador codifica un valor generado aplicando una función logarítmica al valor de tamaño de subbloque mínimo, el valor de tamaño de subbloque mínimo puede obtenerse utilizando una función exponencial.
[0249] Más específicamente, por ejemplo, cuando default_minBlockSize indica el máximo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual y el codificador codifica y, que es un valor de log2 (X/default_minBlockSize) (X es un cierto número entero positivo, que es un múltiplo de 2), el decodificador puede obtener default_minBlockSize decodificando por entropía y multiplicando X y 2y. En este caso, X puede ser un valor acordado entre el codificador y el decodificador como el máximo tamaño de subbloque mínimo disponible o un valor extraído del tren de bits antes de decodificar default_minBlockSize.
[0250] Alternativamente, cuando default_minBlockSize indica el mínimo tamaño de subbloque mínimo disponible para la codificación o decodificación de tren de bits actual y el codificador codifica y, que es un valor de log2 (X/default_minBlockSize) (X es un cierto número entero positivo, que es un múltiplo de 2), el decodificador extrae la y del tren de bits a través de una decodificación por entropía. Y después, el decodificador establece un valor generado multiplicando X y 2y como default_minBlockSize. En este caso, X puede ser un valor acordado entre el codificador y el decodificador como el mínimo tamaño de subbloque mínimo disponible o un valor extraído del tren de bits antes de decodificar default_minBlockSize.
[0251] Además, cuando las relaciones del tamaño horizontal y el tamaño vertical se decodifican por separado en el codificador, el tamaño de subbloque mínimo de referencia puede obtenerse decodificando por entropía por separado las relaciones del tamaño horizontal y el tamaño vertical.
[0252] Cuando se codifica un valor de índice de una tabla concertada previamente entre el codificador y el decodificador, el tamaño de subbloque mínimo puede obtenerse utilizando el valor decodificado como valor de índice de la tabla.
[0253] En este caso, el tamaño de subbloque mínimo de referencia puede decodificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0254] En lo sucesivo, se describirá un procedimiento de decodificación según el cuarto procedimiento de codificación del tamaño de subbloque mínimo.
[0255] Según el cuarto procedimiento, después de que en una primera imagen se decodifican por entropía una bandera que indica si utilizar el tamaño de subbloque mínimo de referencia e información de tamaño de subbloque mínimo en un caso en el que no se utiliza el tamaño de subbloque mínimo de referencia, se obtiene un tamaño de subbloque mínimo necesario para una decodificación de primera imagen utilizando la información de tamaño de subbloque mínimo decodificada.
[0256] Cuando la bandera que indica si utilizar el tamaño de subbloque mínimo de referencia significa que se utiliza el tamaño de subbloque mínimo de referencia, el tamaño de subbloque mínimo se establece en el mismo tamaño que el tamaño de subbloque mínimo de referencia y después se decodifica la primera imagen.
[0257] A partir de una segunda imagen, después de decodificarse una bandera que indica si utilizar un tamaño de subbloque mínimo de una imagen anterior como tamaño de subbloque mínimo actual, la información de tamaño de subbloque mínimo para decodificar la imagen actual se decodifica cuando no se utiliza el tamaño de subbloque mínimo de la imagen anterior. Cuando se utiliza el tamaño de subbloque mínimo de la imagen anterior para decodificar la imagen actual, un tamaño de subbloque mínimo se establece en el mismo tamaño que el tamaño de subbloque mínimo de la imagen anterior y se decodifica la segunda imagen.
[0258] En un procedimiento de decodificación de default_minBlockSize, que es la información que indica el tamaño de subbloque mínimo de referencia, o minBlockSize, que es la información que indica el tamaño de subbloque mínimo de la imagen actual, puede utilizarse como tamaño de subbloque mínimo un valor decodificado por entropía y el tamaño de subbloque mínimo puede obtenerse a través de una ampliación o una reducción a partir de un tamaño predeterminado utilizando el valor decodificado por entropía como una relación de ampliación o una relación de reducción. Alternativamente, como se describe en el primer procedimiento de decodificación mencionado anteriormente, cuando el codificador codifica un valor generado aplicando una función logarítmica al valor de tamaño de subbloque mínimo, el valor de tamaño de subbloque mínimo puede obtenerse utilizando una función exponencial.
[0259] Además, cuando las relaciones del tamaño horizontal y el tamaño vertical se decodifican por separado en el codificador, el tamaño de subbloque mínimo de referencia puede obtenerse decodificando por entropía por separado las relaciones del tamaño horizontal y el tamaño vertical.
[0260] Además, cuando se codifica un valor de índice de una tabla concertada previamente entre el codificador y el decodificador, el tamaño de subbloque mínimo puede obtenerse utilizando el valor decodificado como valor de índice de la tabla.
[0261] En este caso, el tamaño de subbloque mínimo de referencia puede decodificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0262] En lo sucesivo, se describirá un procedimiento de decodificación según el quinto procedimiento de codificación del tamaño de subbloque mínimo.
[0263] Según el quinto procedimiento, los tamaños de subbloque mínimo de la imagen intra y de la imagen inter se extraen de posiciones, que son acordadas entre el codificador y el decodificador, dentro del tren de bits, respectivamente, y se establece un tamaño de subbloque mínimo según el tipo de imagen.
[0264] Las banderas que indican si decodificar un tamaño de subbloque mínimo para la imagen intra y que indican si decodificar un tamaño de subbloque mínimo para la imagen inter se reconstruyen en el encabezamiento de secuencia o en el encabezamiento de imagen, respectivamente, y después el tamaño de subbloque mínimo para la imagen intra o la imagen inter se decodifica según un valor de la bandera a través del tren de bits o la imagen se reconstruye utilizando un tamaño de subbloque mínimo concertado.
[0265] Un procedimiento de decodificación de información sobre el tamaño de subbloque mínimo de la imagen intra y el tamaño de subbloque mínimo de la imagen inter puede utilizarse en combinación con los procedimientos de decodificación mencionados anteriormente según los procedimientos de codificación mencionados anteriormente.
[0266] En lo sucesivo, se describirán diversos procedimientos de selección de una combinación de modos de subbloque disponibles dentro del macrobloque y de codificación de un modo de subbloque seleccionado para codificar el macrobloque actual entre la combinación seleccionada de los modos de subbloque.
[0267] Un macrobloque se divide en una pluralidad de subbloques para la predicción o la transformada. El tamaño de macrobloque y el tamaño de subbloque mínimo dentro del macrobloque según la presente invención pueden corresponder a tamaños variables, y la información para el tamaño de macrobloque y el tamaño de subbloque mínimo puede codificarse utilizando los diversos procedimientos mencionados anteriormente.
[0268] En primer lugar se describe un primer procedimiento de codificación de una combinación de modos de subbloque disponibles y un modo de bloque actual utilizado en la predicción.
[0269] En el encabezamiento de secuencia o en el encabezamiento de cada imagen puede incluirse una bandera que indica si transmitir información sobre los modos de subbloque disponibles para la predicción o la transformada. Una combinación de modos de bloque disponibles puede transmitirse o no según un valor de la bandera. Si no se transmite la combinación de modos de bloque disponibles, en la predicción o en la transformada se utiliza una combinación de subbloques básica acordada entre el codificador y el decodificador, por ejemplo, todos los modos de subbloque mostrados en las Tablas 1 a 5.
[0270] Si se designa la combinación de modos de subbloque disponibles, se transmite información sobre la combinación de modos de bloque disponibles para una codificación de secuencia actual, una codificación de imagen actual, una codificación de sector actual o una codificación de macrobloque actual entre diversos modos de bloque. La información sobre la combinación de modos de subbloque disponibles que debe codificarse puede representarse a través de una bandera que tiene una longitud de 1 bit. Por ejemplo, se codifica "1" cuando un modo de subbloque seleccionado de entre subbloques de tamaños 64 * 64, 64 * 32, 32 * 64, 32 * 32, 32 * 16, 16 * 32, 16 * 16, 16 * 8, 8 * 16, 8 * 8, 8 * 4, 4 * 8, y 4 * 4 (este orden puede cambiarse) es un modo de subbloque disponible, y se codifica "0" cuando un modo de subbloque no es un modo de subbloque disponible. Por ejemplo, cuando se realiza una codificación utilizando un tamaño de macrobloque, que corresponde a un bloque de píxeles de tamaño 64 * 64, se codifica "0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1" en el encabezamiento de secuencia, el encabezamiento de imagen o el encabezamiento de sector como un valor de bandera basado en la suposición de que sólo puede utilizarse un modo de subbloque cuadrado que tenga un tamaño inferior a un tamaño 16 * 16 para la predicción en el modo de predicción intra.
[0271] Alternativamente, la información sobre la combinación de modos de subbloque disponibles que debe codificarse puede ser un valor índice de la tabla.
[0272] En este caso, la información sobre la combinación de modos de subbloque disponibles en la predicción o en la transformada puede codificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0273] Además, la combinación de modos de subbloque disponibles puede establecerse de manera diferente según el modo intra o el modo inter, y puede codificarse la información de combinación de modos de subbloque para el modo intra y la información de combinación de modos de subbloque para el modo inter.
[0274] Los modos de bloque, que no pueden utilizarse al codificar un modo de predicción seleccionado para una codificación de bloque actual o información de tipo de transformada, se eliminan de la tabla y los índices se reasignan sólo a modos de bloque disponibles. Y después se codifican los índices reasignados de la tabla. Por ejemplo, los tamaños de subbloque disponibles para un macrobloque P de tamaño 64 * 64 en el modo de predicción inter son 16 * 16, 16 * 8 y 4 * 4. En un caso en el que los modos de subbloque se codifican utilizando las Tablas 2 y 4, la Tabla 2 puede modificarse a la Tabla 6 a través de la combinación de la Tabla 2 y la Tabla 4. En este caso, el número de bits necesario para una codificación de M * N_Block_type es diferente según el número de bits necesario para una codificación de M * N_Block_type depende del número de tipos de la misma que puedan producirse.
T l '
Figure imgf000033_0001
[0275] En lo sucesivo, no se describe el establecimiento por separado de la combinación de modos de subbloque disponibles para la predicción o la transformada según el modo de predicción (predicción intra o predicción inter) por conveniencia de las descripciones, pero es aplicable el establecimiento por separado de la combinación de modos de subbloque disponibles según el modo de predicción. Además, aunque se ejemplifica que los datos se codifican en el encabezamiento de secuencia y en el encabezamiento de imagen, los datos pueden codificarse en el encabezamiento de sector o en el encabezamiento de macrobloque.
[0276] En lo sucesivo, se describe un segundo procedimiento de codificación de la combinación de los modos de subbloque disponibles y el modo de bloque actual utilizado para la predicción.
[0277] Según el segundo procedimiento, en el encabezamiento de secuencia o en el encabezamiento de cada imagen puede incluirse una bandera que indica si transmitir información sobre los modos de subbloque disponibles para la predicción o la transformada. La información sobre la combinación de modos de bloque disponibles puede transmitirse o no según un valor de la bandera. Si la información no se transmite, todos los modos de subbloque dentro de una combinación de subbloque básica acordada entre el codificador y el decodificador se utilizan para la predicción o la transformada.
[0278] Si se designa la combinación de modos de subbloque disponibles, se transmite una bandera que indica los tipos de formas de bloque disponibles al encabezamiento de secuencia o a encabezamiento de cada imagen. Por ejemplo, en un caso de un macrobloque de tamaño 64 * 64, use_M * Mblock_flag se refiere a una bandera que indica si utilizar bloques cuadrados de tamaños 64 * 64, 32 * 32, 16 * 16, 8 * 8 y 4 * 4 en la predicción o la transformada, use_M * (M/2) block_flag se refiere a una bandera que indica si utilizar bloques rectangulares verticalmente largos de tamaños 64 * 32, 32 * 16, 16 * 8 y 8 * 4 en la predicción o la transformada, y use_(M/2) * Mblock_flag se refiere a una bandera que indica si utilizar bloques rectangulares horizontalmente largos de tamaños 32 * 64, 16 * 32, 8 * 16 y 4 * 8 en la predicción o la transformada. Cuando las banderas indican que las formas de bloques utilizadas en un tipo correspondiente están disponibles para la predicción o la transformada, todos los bloques de diversos tamaños incluidos en la forma de bloque correspondiente están disponibles.
[0279] Alternativamente, cuando se selecciona y utiliza la combinación de modos de subbloque disponibles, dentro del tren de bits se codifica una bandera que indica que se seleccionan y utilizan los modos de subbloque, se codifica y transmite al decodificador una bandera que indica los tipos de formas de bloque que deben utilizarse, y una bandera que indica que los subbloques respectivos incluidos en los tipos correspondientes están disponibles para cada tamaño. Por ejemplo, cuando se selecciona y utiliza la combinación de modos de subbloque disponibles y los modos de subbloque disponibles para la predicción y la transformada son 64 * 64, 16 * 16 y 8 * 8, se codifica "1" como valor de use_M * Nblock_flag y se codifica "0" como valor de use_M * (M/2)block_flag y use_(M/2) * Mblock_flag, de modo que se informa al decodificador de que pueden utilizarse subbloques cuadrados para la predicción o la transformada. Además, se codifica una bandera que indica si para la predicción o la transformada pueden utilizarse subbloques de tamaños 64 * 64, 32 * 32, 16 * 16, 8 * 8 y 4 * 4 incluidos en la combinación de modos de subbloque cuadrado.
[0280] Alternativamente, la información sobre la combinación de modos de subbloque disponibles que deben codificarse puede ser un valor de índice de una tabla.
[0281] En este caso, la información sobre la combinación de modos de subbloque disponibles en la predicción o en la transformada puede codificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0282] Los modos de bloque, que no pueden utilizarse al codificar un modo de predicción seleccionado para una codificación de bloque actual o información de tipo de transformada, se eliminan de la tabla y los índices se reasignan sólo a modos de bloque disponibles. Y después se codifican los índices reasignados de la tabla.
[0283] En lo sucesivo, se describe un tercer procedimiento de codificación de la combinación de modos de subbloque disponibles y el modo de bloque actual utilizado en la predicción.
[0284] Según el tercer procedimiento, en el encabezamiento de secuencia o en el encabezamiento de cada imagen puede incluirse una bandera que indica si transmitir información sobre los modos de subbloque disponibles para la predicción o la transformada. La información sobre una combinación de modos de bloque disponibles puede transmitirse o no. Si no se transmite la combinación de los modos de bloque disponibles, se utilizan todos los modos de subbloque dentro de una combinación de subbloque básica acordada entre el codificador y el decodificador para la predicción o la transformada.
[0285] Si se designa la combinación de modos de subbloque disponibles, se transmite al encabezamiento de secuencia o al encabezamiento de cada imagen una bandera que indica si las formas de subbloque incluidas en un grupo correspondiente están disponibles, determinándose el grupo para cada tamaño de subbloque, y se codifica una bandera para cada forma de subbloque en los grupos de subbloque disponibles. Por ejemplo, en un caso de macrobloques de tamaño 32 * 32, use_larger_(M/2) * (N/2)blk_flag se refiere a una bandera que indica si utilizar formas de bloque de 32 * 32, 32 * 16, 16 * 32 y 16 * 16, use_larger_(M / 4) * (N / 4)blk_flag se refiere a una bandera que indica si utilizar bloques de 16 * 16, 16 * 8, 8 * 16 y 8 * 8, y use_larger_(M / 8) * (N / 8)blk_flag se refiere a una bandera que indica si utilizar modos de bloque de 8 * 8, 8 * 4, 4 * 8 y 4 * 4.
[0286] Un caso en el que la bandera indica que la combinación de modos de subbloque está disponible en la predicción o la transformada significa que todos los subbloques incluidos en un grupo están disponibles.
[0287] Alternativamente, cuando la bandera indica que la combinación de modos de subbloque está disponible en la predicción o la transformada, puede decodificarse además una bandera que indica si los diversos subbloques respectivos incluidos en un grupo están disponibles.
[0288] Alternativamente, la información sobre la combinación de modos de subbloque disponibles que debe codificarse puede ser un valor índice de la tabla.
[0289] En este caso, la información sobre la combinación de modos de subbloque disponibles en la predicción o en la transformada puede codificarse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0290] Los modos de bloque, que no pueden utilizarse al codificar un modo de predicción seleccionado para la codificación de bloque actual o la información de tipo de transformada, se eliminan de la tabla y los índices se reasignan sólo a los modos de bloque disponibles. Y después se codifican los índices reasignados de la tabla.
[0291] En lo sucesivo, se describirán diversos procedimientos de decodificación de una combinación de modos de subbloque disponibles y un modo de bloque actual utilizado en la predicción según la presente invención.
[0292] En primer lugar se describe un procedimiento de decodificación según el primer procedimiento de codificación de la combinación de modos de subbloque disponibles y el modo de bloque actual utilizado en la predicción.
[0293] En el encabezamiento de secuencia o en el encabezamiento de cada imagen se decodifica una bandera que indica si seleccionar y utilizar una combinación de subbloques para la predicción o la transformada. Cuando el valor de la bandera decodificada indica que no se selecciona ni utiliza la combinación de subbloques, en la predicción o en transformada se utiliza una combinación de subbloques básica acordada entre el codificador y el decodificador, por ejemplo, todos los modos de subbloque mostrados en las Tablas 1 a 5. Cuando el valor de la bandera decodificada indica que se selecciona y utiliza la combinación de subbloques, además se decodifica por entropía 1 bit para cada modo de subbloque y se determina si debe utilizarse.
[0294] Además, cuando se codifica un valor de índice de la tabla concertada previamente entre el codificador y el decodificador al codificar la información sobre la combinación de modos de subbloque disponibles, se decodifica el valor de índice de la tabla y después puede establecerse si los modos de subbloque respectivos están disponibles con la tabla concertada.
[0295] En este caso, la información sobre la combinación de modos de subbloque disponibles en la predicción o la transformada puede extraerse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0296] Además, cuando se concierta que la combinación de modos de subbloque disponibles se establece de manera diferente dependiendo del modo intra o el modo inter, se decodifican la información de combinación de modos de subbloque para el modo intra y la información de combinación de modos de subbloque para el modo inter.
[0297] Después de extraerse la información sobre modos de subbloque disponibles en la predicción o en transformada, se crea una tabla necesaria para decodificar la información de modo de predicción o de tipo de transformada utilizando la información extraída. En este caso, los modos de bloque que no pueden utilizarse se eliminan de una tabla básica y solo se reasignan índices a los modos de bloque que pueden utilizarse. El número de bits para decodificar por entropía la información de modo de predicción o de tipo de transformada se determina según el número de modos de subbloque disponibles, y se realiza la decodificación por entropía que corresponde al número de bits determinado. Como resultado, la información de modo de predicción o de transformada se extrae del tren de bits. En este caso, se utiliza una Tabla modificada.
[0298] En lo sucesivo, un procedimiento de extracción del tren de bits de información sobre la combinación de modos de subbloque disponibles para la predicción o la transformada según el modo de predicción (predicción intra o predicción inter) y la decodificación de la información extraída según la información establecida no se describe por conveniencia de las descripciones, pero puede aplicarse una configuración separada según el modo de predicción. Además, aunque se ejemplifica que los datos se decodifican en el encabezamiento de secuencia y el encabezamiento de imagen, los datos pueden decodificarse en el encabezamiento de sector o el encabezamiento de macrobloque.
[0299] En lo sucesivo, se describe un procedimiento de decodificación según el segundo procedimiento de codificación de la combinación de modos de subbloque disponibles y el modo de bloque actual utilizado en la predicción.
[0300] Según el segundo procedimiento, en el encabezamiento de secuencia o el encabezamiento de cada imagen se decodifica una bandera que indica si seleccionar y utilizar la combinación de subbloques para la predicción o la transformada. Cuando el valor de la bandera decodificada indica que no se selecciona ni utiliza la combinación de subbloques, todos los modos de subbloque incluidos en una combinación de subbloques básica acordada entre el codificador y el decodificador se utilizan en la predicción o la transformada.
[0301] Cuando el valor de la bandera decodificada indica que se selecciona y utiliza la combinación de subbloques, del encabezamiento de secuencia o del encabezamiento de cada imagen se extrae una bandera que indica los tipos disponibles de formas de bloque. Por ejemplo, use_M * Mblock_flag, use_M * (M/2)block_flag, y use_(M/2) * Mblock_flag se decodifican por entropía por 1 bit. Cuando el valor decodificado indica la disponibilidad para la predicción o la transformada, se establece de modo que puedan utilizarse todos los bloques de diversos tamaños incluidos en una forma de bloque correspondiente.
[0302] Alternativamente, del encabezamiento de secuencia o del encabezamiento de cada imagen se extraen banderas que indican los tipos disponibles de formas de bloque. Cuando el valor de la bandera extraída indica la disponibilidad para la predicción o la transformada, además se decodifica por entropía una bandera que indica que los subbloques respectivos incluidos en un tipo correspondiente pueden utilizarse para cada tamaño y puede determinarse una combinación de modos de bloque disponibles.
[0303] Además, cuando se codifica un valor de índice de la tabla concertada previamente entre el codificador y el decodificador al codificar la información sobre la combinación de modos de subbloque disponibles, se decodifica el valor de índice de la tabla y después puede establecerse si los modos de subbloque respectivos están disponibles con la tabla concertada.
[0304] En este caso, la información sobre la combinación de modos de subbloque disponibles en la predicción o la transformada puede extraerse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0305] Después de extraerse la información sobre los modos de subbloque disponibles en la predicción o la transformada, se crea una tabla necesaria para decodificar la información de modo de predicción o de tipo de transformada utilizando la información extraída. En este caso, los modos de bloque que no pueden utilizarse se eliminan de una tabla básica y solo se reasignan índices a los modos de bloque que pueden utilizarse. El número de bits para decodificar por entropía la información de modo de predicción o de tipo de transformada se determina según el número de modos de subbloque disponibles, y se realiza la decodificación por entropía que corresponde al número de bits determinado. Como resultado, la información de modo de predicción o de transformada se extrae del tren de bits. En este caso, se utiliza una Tabla modificada.
[0306] En lo sucesivo, se describe un procedimiento de decodificación según el tercer procedimiento de codificación de la combinación de modos de subbloque disponibles y el modo de bloque actual utilizado en la predicción.
[0307] Según el tercer procedimiento, en el encabezamiento de secuencia o en el encabezamiento de cada imagen se decodifica una bandera que indica si seleccionar y utilizar la combinación de subbloques para la predicción o la transformada se decodifica. Cuando el valor de la bandera decodificada indica que no se selecciona ni utiliza la combinación de subbloques, todos los modos de subbloque incluidos en una combinación de subbloques básica acordada entre el codificador y el decodificador se utilizan en la predicción o la transformada.
[0308] Cuando el valor de la bandera decodificada indica que se selecciona y utiliza la combinación de subbloques, del encabezamiento de secuencia o del encabezamiento de cada imagen se extraen banderas que indican si pueden utilizarse los subbloques para cada tamaño y cada grupo. Por ejemplo, en un caso de macrobloques de tamaño 32 * 32, use_larger_(M/2) * (N/2)blk_flag, use_larger_(M / 4) * (N / 4) blk_flag, y use_larger_(M / 8) * (N / 8) blk_flag se decodifican por entropía por 1 bit para la decodificación, respectivamente. Cuando el valor decodificado indica la disponibilidad para la predicción o la transformada, se establece de modo que puedan utilizarse todos los bloques de diversas formas incluidos en un grupo de tamaño correspondiente.
[0309] Alternativamente, las banderas que indican un grupo de tamaños en el que se incluyen los subbloques disponibles se extraen del encabezamiento de secuencia o del encabezamiento de cada imagen. Cuando el valor de la bandera extraída indica la disponibilidad para la predicción o la transformada, además se codifica por entropía una bandera que indica que pueden utilizarse diversas formas de subbloque incluidas en un grupo correspondiente y puede determinarse una combinación de modos de bloque disponibles.
[0310] Además, cuando se codifica un valor de índice de la tabla concertada previamente entre el codificador y el decodificador al codificar la información sobre la combinación de modos de subbloque disponibles, puede establecerse si pueden utilizarse los modos de subbloque respectivos utilizando la tabla concertada después de decodificarse el valor de índice de la tabla.
[0311] Además, cuando se codifica un valor de índice de la tabla perconcertada entre el codificador y el decodificador al codificar la información sobre la combinación de modos de subbloque disponibles, puede establecerse si pueden utilizarse los modos de subbloque respectivos basándose en la tabla concertada después de descodificarse el valor de índice de la tabla.
[0312] En este caso, la información sobre la combinación de modos de subbloque disponibles en la predicción o la transformada puede extraerse utilizando diversos procedimientos de codificación binaria tales como un código unario, un código unario truncado y un código Golomb exponencial (Exp).
[0313] Después de extraerse la información sobre los modos de subbloque disponibles en la predicción o la transformada, se crea una tabla necesaria para decodificar la información de modo de predicción o de tipo de transformada utilizando la información extraída. En este caso, los modos de bloque que no pueden utilizarse se eliminan de una tabla básica y solo se reasignan índices a los modos de bloque que pueden utilizarse. El número de bits para decodificar por entropía la información de modo de predicción o de tipo de transformada se determina según el número de modos de subbloque disponibles, y se realiza la decodificación por entropía que corresponde al número de bits determinado.
[0314] Una unidad de configuración de tipo de bloque candidato puede configurar candidatos de un tipo de bloque introducidos por un usuario o determinar y configurar los candidatos del tipo de bloque para sí misma. En este caso, cuando el tipo de bloque corresponde al tamaño de macrobloque o al tamaño de subbloque mínimo, los candidatos del tipo de bloque pueden determinarse y configurarse según una relación del tamaño horizontal y el tamaño vertical de la imagen de entrada. Cuando el tipo de bloque corresponde a la combinación de modos de subbloque, los candidatos del tipo de bloque pueden configurarse de manera diferente según el tamaño de macrobloque, la predicción intra o la predicción inter.
[0315] Un determinador de tipo de bloque puede incluir información para el tipo de bloque determinado en el tren de bits una vez o en cada imagen de la imagen de entrada. Por tanto, según el procedimiento de decodificación de vídeo según una realización preferida de la presente invención, un aparato de codificación de vídeo según una realización preferida de la presente invención configura los candidatos de tipo de bloque para codificar una imagen utilizando macrobloques de tamaño 16 * 16 o más, codifica la imagen de entrada para cada candidato de tipo de bloque, determina un tipo de bloque basándose en los costes de codificación para cada candidato de tipo de bloque y genera un tren de bits que incluye los datos de imagen codificados en el tipo de bloque determinado e información para el tipo de bloque determinado.
[0316] El tipo de bloque puede ser de un tamaño de macrobloque, un tamaño de subbloque mínimo y una combinación de modos de subbloque, y se codifica utilizando los procedimientos de codificación según las reivindicaciones mencionadas anteriormente. El aparato de codificación de vídeo según una realización preferida de la presente invención puede configurar candidatos de tipo de bloque de entrada o determinar y configurar candidatos de tipo de bloque según las características de la imagen de entrada al configurar los candidatos de tipo de bloque. Cuando el tipo de bloque corresponde al tamaño de macrobloque o al tamaño de subbloque mínimo, los candidatos de tipo de bloque se determinan y configuran según una relación de un tamaño horizontal y un tamaño vertical de la imagen de entrada. Cuando el tipo de bloque corresponde a la combinación de modos de subbloque, los candidatos de tipo de bloque están configurados de manera diferente según la predicción intra o la predicción inter. Además, el procedimiento de codificación de vídeo según una realización preferida de la presente invención puede incluir información para el tipo de bloque determinado en el tren de bits una vez o en cada imagen de la imagen de entrada al generar el tren de bits.
[0317] Un aparato de decodificación de vídeo según una realización preferida de la presente invención puede incluir un decodificador de vídeo para extraer del tren de bits información para un tipo de bloque para codificar una imagen por macrobloques de tamaño 16 * 16 o más y datos de imagen codificados, y generar una imagen reconstruida decodificando los datos de imagen codificados dependiendo de un tipo de bloque identificado por la información para el tipo de bloque.
[0318] El tipo de bloque puede ser uno de un tamaño de macrobloque, un tamaño de subbloque mínimo y una combinación de modos de subbloque. El aparato de decodificación de vídeo según una realización preferida de la presente invención puede extraer del tren de bits información para el tipo de bloque una vez o en cada imagen de la imagen de entrada o cada sector.
[0319] Por tanto, según el procedimiento de decodificación de vídeo según una realización preferida de la presente invención, un aparato de decodificación de vídeo según una realización preferida de la presente invención extrae del tren de bits información para un tipo de bloque para codificar una imagen utilizando macrobloques de tamaño 16 x 16 o más y datos de imagen codificados, y genera una imagen reconstruida decodificando los datos de imagen codificados dependiendo de un tipo de bloque identificado por la información para el tipo de bloque.
[0320] En lo sucesivo, ejemplos de implementación en los que se implementa un aparato de codificación de vídeo según una realización preferida de la presente invención según un tipo de bloque será descrito se describirán a través de las figs. 8 a 17.
[0321] La fig. 8 es un diagrama de bloques para ilustrar una primera implementación de un aparato de codificación de vídeo según una realización preferida de la presente invención.
[0322] Basándose en la primera implementación del aparato de codificación de vídeo según una realización preferida de la presente invención, el aparato de codificación de vídeo 800 puede incluir una unidad de establecimiento de tamaño de macrobloque candidato 810, un codificador de vídeo 820, y un determinador de tamaño de macrobloque 830.
[0323] La unidad de establecimiento de tamaño de macrobloque candidato 810 establece candidatos de tamaño de macrobloque, que puedes utilizarse por el aparato de codificación de vídeo 800 según una realización preferida de la presente invención. Los candidatos de tamaño de macrobloque son introducidos por un usuario o se determinan según las características de la imagen. Alternativamente, los candidatos de tamaño de macrobloque pueden ser grupos de candidatos establecidos (por ejemplo, tamaño 64 x 64, tamaño 32 x 32 y tamaño 16 x 16) introducidos por otro aparato.
[0324] En un caso en el que los candidatos de tamaño de macrobloque se determinan según las características de la imagen, si la resolución de la imagen es 4K x 2K y una relación de una anchura y una altura es 16:9, los candidatos de tamaño de macrobloque pueden incluir el tamaño 128 x 128, el tamaño 128 x 64, el tamaño 64 x 128, el tamaño 64 x 64, el tamaño 64 x 32, el tamaño 32 x 64, el tamaño 32 x 32, el tamaño 32 x 16, el tamaño 16 x 32, y el tamaño 16 x 16.
[0325] El codificador de vídeo 820 puede implementarse como el aparato de codificación de vídeo 600 según la realización de la presente invención. Es decir, el codificador de vídeo 820 codifica una imagen para cada candidato de tamaño de macrobloque establecido por la unidad de establecimiento de tamaño de macrobloque candidato 810 y genera datos de imagen para cada tamaño de macrobloque. En este caso, se realiza una codificación intra o una codificación inter después de que cada macrobloque sea dividido internamente en subbloques (en este caso, un tamaño de subbloque mínimo, que se determina como el subbloque, puede ser un bloque en la unidad de 4 x 4 píxeles), que son bloques más pequeños que el macrobloque.
[0326] Como otro procedimiento de operación del codificador de vídeo 820, se realiza una codificación utilizando macrobloques de tamaño 16 x 16 y tamaño 32 x 32. Como resultado de la codificación, cuando los costes de codificación son superiores en un caso de utilización de los macrobloques de tamaño 32 x 32, el tamaño 16 x 16 se determina como el tamaño de macrobloque. Cuando los costes de codificación son inferiores en el caso de utilizar los macrobloques de tamaño 32 x 32, se vuelve a realizar una codificación utilizando macrobloques de tamaño 64 x 64 y después se comparan de la misma manera los costes de codificación de utilizar el macrobloque de tamaño 32 x 32 y tamaño 64 x 64. Por consiguiente, puede determinarse el tamaño de macrobloque.
[0327] Como otro procedimiento de operación del codificador de vídeo 820, se realiza una codificación utilizando macrobloques de tamaño 16 x 16, tamaño 32 x 16, tamaño 16 x 32 y tamaño 32 x 32. Como resultado de la codificación, se selecciona un tamaño de macrobloque que tenga la mejor eficiencia de codificación. Y después, la codificación se realiza utilizando bloques de píxeles generados ampliando una anchura, una altura, y tanto la anchura como la altura del macrobloque seleccionado dos veces, respectivamente, como los macrobloques. Si no se mejora la eficiencia de codificación utilizando un tamaño de macrobloque ampliado, la codificación se detiene y se determina el tamaño de macrobloque.
[0328] El determinador de tamaño de macrobloque 830 calcula los costes de codificación (es decir, los costes de codificación de los datos de imagen para cada tamaño de macrobloque) generados cuando el codificador de vídeo 820 codifica la imagen para cada tamaño de macrobloque y compara los costes de codificación de los tamaños de macrobloque respectivos para determinar un tamaño de macrobloque óptimo entre los candidatos de tamaño de macrobloque. Aquí, el tamaño de macrobloque óptimo puede ser cualquier tamaño de macrobloque si el tamaño de macrobloque genera los costes de codificación más bajos cuando la imagen se codifica utilizando el tamaño de macrobloque correspondiente. Sin embargo, en un caso de utilización de los costes de codificación, pueden determinarse diversos tamaños de macrobloque óptimos utilizando los costes de codificación.
[0329] Cuando se determina el tamaño de macrobloque, el determinador de tamaño de macrobloque 830 genera datos de imagen codificados en el tamaño de macrobloque correspondiente como el tren de bits. En este caso, la información sobre el tamaño de macrobloque determinado puede codificarse utilizando los procedimientos de codificación del tamaño de macrobloque según las reivindicaciones mencionadas anteriormente e incluirse el tren de bits. La información para el tamaño de macrobloque puede incluirse en el tren de bits para una imagen completa sólo una vez o puede incluirse en el tren de bits en cada imagen de la imagen completa. Además, según una realización preferida de la presente invención, el tamaño de macrobloque en las unidades de codificación / decodificación puede seleccionarse de manera diferente para cada capa de imagen, de sector o de macrobloque.
[0330] La fig. 9 es un diagrama de flujo para ilustrar una primera implementación de un procedimiento de codificación de vídeo según una realización preferida de la presente invención.
[0331] El aparato de codificación de vídeo 800 establece los candidatos de tamaño de macrobloque en la etapa S910, codifica una imagen de entrada para cada candidato de tamaño de macrobloque en la etapa s 920, determina un tamaño de macrobloque según los costes de codificación de los datos de imagen para cada candidato de tamaño de macrobloque en la etapa S930, y genera un tren de bits que incluye datos de imagen codificados en el tamaño de macrobloque determinado e información sobre el tamaño de macrobloque determinado en la etapa S940. Puesto que se ha descrito a través de la fig. 8 que el aparato de codificación de vídeo 800 establece candidatos de tamaño macrobloque, codifica la imagen para cada candidato de tamaño macrobloque y determina un tamaño macrobloque según los costes de codificación de los datos de imagen codificados para cada candidato de tamaño macrobloque, se omitirá su descripción detallada.
[0332] Fig. 24 es un diagrama de bloques para ilustrar una primera implementación de un aparato de decodificación de vídeo según una realización preferida de la presente invención.
[0333] Basándose en la primera implementación del aparato de decodificación de vídeo según una realización preferida de la presente invención, el aparato de decodificación de vídeo puede incluir una unidad de establecimiento de tamaño de macrobloque y un decodificador de vídeo.
[0334] La unidad de establecimiento de tamaño de macrobloque extrae del tren de bits la información de tamaño de macrobloque utilizando los procedimientos de decodificación del tamaño de macrobloque según las realizaciones mencionadas anteriormente antes de realizar la decodificación en la unidad de macrobloques, y establece un tamaño de macrobloque utilizando la información extraída.
[0335] Cuando se concierta con el codificador que la información de tamaño de macrobloque se incluya en el tren de bits para la imagen completa sólo una vez, la información se decodifica sólo una vez en el tren de bits para la imagen completa y una imagen puede reconstruirse utilizando un tamaño de macrobloque extraído para una decodificación de imagen completa. Cuando se concierta que el tamaño de macrobloque se codifique / decodifique en cada imagen, se extrae del tren de bits un tamaño de macrobloque para cada imagen y la imagen puede reconstruirse utilizando diferentes tamaños de macrobloque para cada imagen. Según una realización preferida de la presente invención, se extrae un tamaño de macrobloque para cada capa de imagen, de sector o de macrobloque y una imagen puede reconstruirse utilizando el tamaño de macrobloque seleccionado.
[0336] El decodificador de vídeo puede implementarse como el decodificador de vídeo según la realización de la presente invención descrita a través de fig. 7. Los datos de macrobloque pueden decodificarse a través de procedimientos según realizaciones de la presente invención descritos con referencia a figs.20 a 23. Como se describe en las figs. 20 a 23, el procedimiento de decodificación de los datos del macrobloque es diferente según el tamaño de macrobloque.
[0337] La fig. 10 es un diagrama de bloques para ilustrar una segunda implementación del aparato de codificación de vídeo según una realización preferida de la presente invención.
[0338] Basándose en la segunda implementación del aparato de codificación de vídeo 1000 según una realización preferida de la presente invención puede incluir una unidad de establecimiento de subbloque mínimo candidato 1010, un codificador de vídeo 1020, y un determinador de tamaño de subbloque mínimo 1030.
[0339] La unidad de establecimiento de tamaño de subbloque mínimo candidato 1010 establece candidatos de tamaño de subbloque mínimo, que pueden utilizarse por el aparato de codificación de vídeo 800 según una realización preferida de la presente invención. Los candidatos de tamaño de subbloque mínimo pueden ser introducidos por el usuario o determinarse según las características de la imagen. Alternativamente, los candidatos de tamaño de subbloque mínimo pueden ser un grupo de candidatos establecido (por ejemplo, tamaño 4 * 4, tamaño 8 * 8 y tamaño 16 * 16) introducido por otro aparato.
[0340] Cuando los candidatos de tamaño de subbloque mínimo se determinan según las características de la imagen, los candidatos de tamaño de subbloque mínimo pueden determinarse considerando un tamaño de imagen y una relación de una anchura y una altura. Por ejemplo, los candidatos de tamaño de subbloque mínimo pueden incluir tamaño 4 * 4, tamaño 4 * 8, tamaño 8 * 4, tamaño 8 * 8, tamaño 16 * 8, tamaño 8 * 16 y tamaño 16 * 16.
[0341] Con referencia a las figs. 11 y 12 que ilustran modos de subbloque de un macrobloque según un tamaño de subbloque mínimo, el macrobloque se divide en bloques más pequeños como se muestra en las figs. 11 y 12 y después puede realizarse una codificación de predicción intra o una codificación de predicción inter utilizando los bloques divididos. La Fig. 11 muestra modos de subbloque de un macrobloque en un caso en el que un tamaño de macrobloque es 64 * 64 y un tamaño de subbloque mínimo es 4 * 8, y la Fig. 12 muestra modos de subbloque de un macrobloque en un caso en el que un tamaño de macrobloque es 64 * 64 y un tamaño de subbloque mínimo es 8 * 8.
[0342] El codificador de vídeo 1020 puede implementarse como el aparato de codificación de vídeo 600 según la realización de la presente invención descrita a través de fig. 6. Es decir, el codificador de vídeo 1020 genera datos de imagen codificados para cada tamaño de subbloque mínimo codificando una imagen utilizando únicamente subbloques de tamaños superiores a un tamaño de subbloque correspondiente para cada candidato de tamaño de subbloque mínimo establecido por la unidad de establecimiento de tamaño de subbloque mínimo candidato 1010.
[0343] El determinador de tamaño de subbloque mínimo 1030 calcula los costes de codificación (es decir, los costes de codificación de los datos de imagen codificados para cada tamaño de subbloque mínimo) generados cuando el codificador de vídeo 1020 codifica una imagen para cada tamaño de subbloque mínimo y compara los costes de codificación de los datos de imagen codificados para cada tamaño de subbloque mínimo para determinar un tamaño de subbloque mínimo óptimo entre los candidatos de tamaño de subbloque mínimo. Aquí, el tamaño de subbloque mínimo óptimo puede ser un tamaño de subbloque mínimo si el tamaño de subbloque mínimo genera los costes de codificación más bajos cuando la imagen se codifica utilizando el tamaño de subbloque mínimo correspondiente entre los candidatos de tamaño de subbloque mínimo. Sin embargo, en un caso de utilización de los costes de codificación, pueden determinarse diversos tamaños de subbloque mínimo óptimos utilizando los costes de codificación.
[0344] Además, cuando se determina el tamaño de subbloque mínimo, el determinador de tamaño de subbloque mínimo 1030 genera datos de imagen codificados en el tamaño de subbloque mínimo correspondiente como el tren de bits. En este caso, la información sobre el tamaño de subbloque mínimo determinado puede incluirse directamente en el tren de bits o codificarse y después incluirse en el tren de bits. La información sobre el tamaño de subbloque mínimo puede incluirse en el tren de bits sólo una vez o en cada imagen de la imagen completa.
[0345] La fig. 13 es un diagrama de flujo para ilustrar una segunda implementación del procedimiento de codificación de vídeo según una realización preferida de la presente invención.
[0346] El aparato de codificación de vídeo 1000 establece candidatos de tamaño de subbloque mínimo en la etapa S1310, codifica una imagen de entrada para cada candidato de tamaño de subbloque mínimo en la etapa S1320, determina un tamaño de subbloque mínimo según los costes de codificación de los datos de imagen para cada candidato de tamaño de subbloque mínimo en la etapa S1330 y genera un tren de bits que incluye datos de imagen codificados en el tamaño de subbloque mínimo determinado e información sobre el tamaño de subbloque mínimo determinado en la etapa S1340. Puesto que se ha descrito a través de la Fig. 10 que el aparato de codificación de vídeo 1000 establece candidatos de tamaño de subbloque mínimo, codifica la imagen para cada candidato de tamaño de subbloque mínimo y determina un tamaño de subbloque mínimo según los costes de codificación de los datos de imagen codificados para cada candidato de tamaño de subbloque mínimo, se omitirá su descripción detallada.
[0347] La fig. 25 es un diagrama de bloques para ilustrar una segunda implementación de un aparato de decodificación de vídeo según una realización preferida de la presente invención.
[0348] Basándose en la segunda implementación del aparato de decodificación de vídeo según una realización preferida de la presente invención, el aparato de decodificación de vídeo puede incluir una unidad de establecimiento de tamaño de subbloque mínimo y un decodificador de vídeo.
[0349] La unidad de establecimiento de tamaño de subbloque mínimo extrae del tren de bits información de tamaño de subbloque mínimo utilizando los procedimientos de decodificación del tamaño de subbloque mínimo según las realizaciones mencionadas anteriormente antes de realizar la decodificación en la unidad de macrobloques, y establece un tamaño de subbloque mínimo utilizando la información extraída.
[0350] Cuando se concierta con el codificador que la información de tamaño de subbloque mínimo se incluye en el tren de bits para la imagen completa sólo una vez, la información se decodifica sólo una vez en el tren de bits para la imagen completa y una imagen puede reconstruirse utilizando un tamaño de subbloque mínimo extraído para una decodificación de imagen completa. Cuando se concierta que el tamaño de subbloque mínimo se codifique / decodifique en cada imagen, se extrae del tren de bits un tamaño de subbloque mínimo para cada imagen y la imagen puede reconstruirse utilizando diferentes tamaños de subbloque mínimo para cada imagen. Según una realización preferida de la presente invención, se extrae un tamaño de subbloque mínimo para cada capa de imagen, de sector o de macrobloque y una imagen puede reconstruirse utilizando un tamaño de subbloque mínimo seleccionado.
[0351] El decodificador de vídeo puede implementarse como el decodificador de vídeo según la realización de la presente invención descrita a través de fig. 7. Los datos de macrobloque pueden decodificarse a través de procedimientos según realizaciones de la presente invención descritos con referencia a figs.20 a 23. Como se describe en las figs. 20 a 23, el procedimiento de decodificación de los datos de macrobloque también es diferente según el tamaño de subbloque mínimo como se describe a continuación.
[0352] Por ejemplo, se supone que un tamaño de macrobloque para una imagen P es 32 ^ 32, cada macrobloque se divide en cuatro subbloques de 16 * 16, y un tipo de macrobloque y un tipo de subbloque se codifican utilizando las Tablas 2 y 4.
[0353] En un primer caso en el que el tamaño de bloque mínimo es 4 * 4, se codifica un valor de índice de "3" en la Tabla 2 cuando se codifica el tipo de macrobloque, y después se codifica un valor de índice de "0" en la Tabla 2 cuando se codifican cuatro tipos de subbloque para los bloques respectivos de tamaño 16 * 16 dentro de un bloque de tamaño 32 * 32. Es decir, los datos totales codificados corresponden a 3, 0, 0, 0, 0.
[0354] En un segundo caso en el que un tamaño de bloque mínimo es 16 * 16, se codifica un valor de índice de "3" en la Tabla 2 cuando se codifica el tipo de macrobloque. Es decir, los datos totales codificados corresponden a 3.
[0355] De manera similar, con referencia a una operación en el decodificador, en un primer caso se decodifica un tipo de macrobloque. Mediante la aplicación de un valor del tipo de macrobloque decodificado a la Tabla 2, puede deducirse que un macrobloque de tamaño 32 * 32 se divide en cuatro bloques de tamaño 16 * 16, y debería decodificarse un tipo de subbloque de los bloques de tamaño 16 * 16 porque cada bloque de tamaño 16 * 16 puede dividirse en bloques que tienen un tamaño más pequeño (porque un subbloque mínimo es 4 * 4). A continuación, puesto que un valor del tipo de subbloque decodificado por entropía es "0", puede deducirse que se realiza una predicción de 16 * 16 en un primer bloque de tamaño 16 * 16. Posteriormente, puesto que el primer bloque de tamaño 16 * 16 no se divide en bloques que tienen un menor tamaño, los tipos de subbloque de los bloques restantes de tamaño 16 * 16 se decodifican por igual.
[0356] En un segundo caso, el tipo de macrobloque se decodifica por entropía. Mediante la aplicación de un valor del tipo de macrobloque decodificado a la Tabla 2, puede deducirse que un macrobloque de tamaño 32 * 32 se divide en cuatro bloques de tamaño 16 * 16, y una decodificación de tipo macrobloque del macrobloque actual y una decodificación de tipo de subbloque se terminan porque cada bloque de tamaño 16 * 16 no puede dividirse en bloques que tengan un tamaño más pequeño (porque un tamaño de subbloque mínimo es 16 * 16).
[0357] La fig. 14 es un diagrama de bloques para ilustrar una tercera implementación del aparato de codificación de vídeo según una realización preferida de la presente invención.
[0358] Basándose en la tercera implementación del aparato de codificación de vídeo según una realización preferida de la presente invención, el aparato de codificación de vídeo 1400 puede incluir una unidad de establecimiento de combinación de modos de subbloque candidata 1410, un codificador de vídeo 1420, y un determinador de combinación de modos del subbloque 1430.
[0359] La unidad de establecimiento de combinación de modos de subbloque candidata 1410 establece candidatas de combinación de modos de subbloque, que pueden utilizarse por el aparato de codificación de vídeo 1400 según una realización preferida de la presente invención. Los candidatos de modo de subbloque pueden ser introducidos por un usuario o determinarse según un esquema de predicción tal como una predicción intra o una predicción inter. Alternativamente, los candidatos de modo de subbloque pueden ser un grupo de candidatos establecido (por ejemplo, una combinación de tamaños 4 * 4 y 8 * 8, una combinación de tamaños 16 * 16, 32 * 32, y 64 * 64, etc.) introducido por otro aparato.
[0360] Con referencia a las figs. 15 y 16 que ilustran las combinaciones de modo de subbloque, las combinaciones de modo de subbloque para un macrobloque de tamaño 64 * 64 pueden establecerse o determinarse de diversas maneras, como se muestra en las figs. 15 y 16. La Fig. 15 muestra un caso en el que una combinación de tamaños 64 * 64, 32 * 32, 16 * 16 y 8 * 8 se establece como una combinación de modos de subbloque para un macrobloque de tamaño 64 * 64, y la fig. 16 muestra un caso en el que una combinación de tamaños 64 * 64, 64 * 32, 32 * 64, 32 * 32, 32 * 16, 16 * 32, 16 * 16, 16 * 8, 8 * 16, 8 * 8, 8 * 4, 4 * 8 y 4 * 4 se establece como una combinación de modos de subbloque para un macrobloque de tamaño 64 * 64.
[0361] El codificador de vídeo 1420 puede implementarse como el aparato de codificación de vídeo 600 según la realización de la presente invención descrita a través de fig. 6. Es decir, el codificador de vídeo 1420 genera datos de imagen codificados para cada combinación de modos de subbloque codificando una imagen utilizando sólo subbloques dentro de una combinación de modos de subbloque correspondiente para cada combinación de modos de subbloque candidata establecida por la unidad de establecimiento de combinación de modos de subbloque candidata 1410.
[0362] El determinador de combinación de modos de subbloque 1430 calcula los costes de codificación (es decir, los costes de codificación de los datos de imagen codificados para cada combinación de modos de subbloque) generados cuando el codificador de vídeo 1420 codifica una imagen para cada combinación de modos de subbloque y compara los costes de codificación de los datos de imagen codificados para cada combinación de modos de subbloque para determinar una combinación de modo de subbloque óptima entre las candidatas de combinación de modos de subbloque. Aquí, la combinación de modos de subbloque óptima puede ser una combinación de modos de subbloque si la combinación de modos de subbloque genera los costes de codificación más bajos cuando la imagen se codifica sólo utilizando un modo de subbloque dentro de la combinación de modos de subbloque correspondiente entre las candidatas de combinación de modos de subbloque. Sin embargo, en un caso de utilización de los costes de codificación, la combinación de modos de subbloque óptima puede determinarse de diversas maneras utilizando los costes de codificación.
[0363] Cuando se determina la combinación de modos de subbloque, el determinador de combinación de modos de subbloque 1430 genera datos de imagen codificados en la combinación de modos de subbloque correspondiente como el tren de bits. En este caso, la información sobre la combinación de modos de subbloque determinada puede incluirse directamente en el tren de bits o codificarse y después incluirse en el tren de bits. La información sobre la combinación de modos de subbloque puede incluirse en el tren de bits sólo una vez o puede incluirse en el tren de bits en cada imagen de la imagen completa.
[0364] La fig. 17 es un diagrama de flujo para ilustrar una tercera implementación del procedimiento de codificación de vídeo según una realización preferida de la presente invención.
[0365] El aparato de codificación de vídeo 1400 establece las candidatas de combinación de modos de subbloque en la etapa S1710, codifica una imagen de entrada para cada candidata de combinación de modos de subbloque en la etapa S1720, determina una combinación de modos de subbloque según los costes de codificación de los datos de imagen para cada combinación de modos de subbloque en la etapa S1730 y genera un tren de bits que incluye datos de imagen codificados en la combinación de modos de subbloque determinada e información sobre la combinación de modos de subbloque determinada en la etapa S1740. Puesto que se ha descrito a través de la Fig. 14 que el aparato de codificación de vídeo 1400 establece candidatas de combinación de modos de subbloque, codifica la imagen para cada candidata de combinación de modos de subbloque y determina la combinación de modos de subbloque según los costes de codificación de los datos de imagen codificados para cada candidata de combinación de modos de subbloque, se omitirá su descripción detallada.
[0366] La fig. 26 es un diagrama de bloques para ilustrar una tercera implementación del aparato de decodificación de vídeo según una realización preferida de la presente invención.
[0367] Basándose en la tercera implementación del aparato de decodificación de vídeo según una realización preferida de la presente invención, el aparato de decodificación de vídeo puede incluir una unidad de establecimiento de modo de subbloque, un generador de tablas y un decodificador de vídeo disponible en la predicción o la transformada.
[0368] La unidad de establecimiento de modo de subbloque extrae del tren de bits la información de combinación de modos de subbloque disponible utilizando los procedimientos de decodificación de información de modo de subbloque disponible en la predicción o la transformada según las realizaciones mencionadas anteriormente antes de realizar la decodificación en la unidad de macrobloques, y establece si los modos de subbloque respectivos están disponibles con la información extraída.
[0369] Cuando se concierta con el codificador que la información de combinación de modos de subbloque se incluye en el tren de bits para la imagen completa sólo una vez, la información se decodifica sólo una vez en el tren de bits para la imagen completa y una imagen puede reconstruirse utilizando una combinación de modos de subbloque extraída para una decodificación de imagen completa. Cuando se concierta que la combinación de modos de subbloque se codifica / decodifica en cada imagen, se extrae información de combinación de modos de subbloque para cada imagen del tren de bits y la imagen puede reconstruirse utilizando diferentes combinaciones de modos de subbloque para cada imagen. Según una realización preferida de la presente invención, se extrae la información para cada capa de imagen, de sector, o de macrobloque y la imagen puede reconstruirse utilizando sólo los modos de subbloque seleccionados.
[0370] El generador de tablas actualiza una tabla necesaria para decodificar datos de macrobloque utilizando la información de modo subbloque, que puede utilizarse en la predicción o la transformada, extraída de la unidad de establecimiento de modo de subbloque. Los modos de bloque que no pueden utilizarse se eliminan de una tabla básica concertada previamente con el codificador y solo se reasignan índices a los modos de bloque disponibles.
[0371] El decodificador de vídeo puede implementarse como el decodificador de vídeo según la realización de la presente invención descrita a través de fig. 7. Sin embargo, un aparato de decodificación de vídeo según una realización preferida de la presente invención genera una imagen reconstruida decodificando datos de imagen codificados utilizando sólo modos de subbloque, que pueden utilizarse en la predicción o la transformada, establecidos en la unidad de establecimiento de modo de subbloque. En particular, al extraer datos de macrobloque del reconstructor, la información de predicción se decodifica por entropía a través del número de bits para decodificar por entropía una información de modo de predicción o de transformada establecida de manera diferente según el número de modos de subbloque disponibles y la información de predicción se establece utilizando la tabla actualizada en el generador de tablas.
[0372] En lo sucesivo, un procedimiento de codificación y decodificación de subbloques dentro de un macrobloque utilizando selectivamente una predicción intra o una predicción inter se describirá como otra realización de la presente invención.
[0373] Según la tecnología típica de compresión de vídeo, una codificación predictiva y una decodificación predictiva se realizan en subbloques de un macrobloque que tienen un tamaño fijo de una imagen inter basándose en el mismo procedimiento de predicción. Es decir, se realiza codificación intrapredictiva o una codificación interpredictiva en todos los subbloques dentro de un macrobloque. Sin embargo, en otra realización de la presente invención, como una imagen se codifica utilizando macrobloques de tamaño 16 x 16 o más, los tamaños de los subbloques dentro del macrobloque también se amplían, de modo que los subbloques respectivos dentro del macrobloque pueden codificarse o decodificarse selectivamente utilizando la predicción inter o la predicción intra en un caso en el que el macrobloque es un macrobloque inter dentro de una imagen inter. Alternativamente, los tipos de macrobloques de la imagen inter se dividen en tres tipos tales como un macrobloque intra, un macrobloque inter y un macrobloque intra / inter, y la codificación o la decodificación puede aplicarse sólo al tipo de macrobloque intra / inter. Es decir, los subbloques respectivos dentro del macrobloque intra están todos codificados por predicción intra, y los subbloques respectivos dentro del macrobloque inter están todos codificados por predicción inter. En un caso del macrobloque intra / inter, los subbloques respectivos dentro del macrobloque pueden codificarse selectivamente utilizando la predicción inter o la predicción intra. Solo cuando los subbloques respectivos dentro del macrobloque se codifican selectivamente utilizando la predicción intra o la predicción inter, se codifica la información sobre si se utiliza un modo de predicción intra o un modo de predicción inter para cada bloque.
[0374] El aparato de codificación de vídeo según una realización preferida de la presente invención puede construirse de manera igual o similar al aparato de codificación de vídeo según la realización de la presente invención descrita a través de la fig. 6. Sin embargo, el aparato de codificación de vídeo según una realización preferida de la presente invención compara los costes de codificación generados cuando solo se utiliza la predicción intra, los costes de codificación generados cuando solo se utiliza la predicción inter y los costes de codificación generados cuando se utilizan la predicción inter y la predicción intra para determinar un tipo de macrobloque, y la predicción codifica los subbloques respectivos según un esquema de predicción seleccionado para generar un tren de bits. Por tanto, según una realización preferida de la presente invención, todos los subbloques dentro de un macrobloque pueden codificarse por predicción utilizando la predicción inter, todos los subbloques pueden codificarse por predicción utilizando la predicción intra, y algunos subbloques pueden codificarse por predicción inter y los subbloques restantes pueden codificarse por predicción intra.
[0375] Además, el aparato de codificación de vídeo según una realización preferida de la presente invención puede incluir directamente información sobre la predicción inter o la predicción intra, que indica si los subbloques respectivos se codifican utilizando la predicción inter o la predicción intra, en el tren de bits o codifican la información y después incluyen la información codificada en el tren de bits cuando los subbloques respectivos dentro del macrobloque corresponden al tipo de macrobloque, que puede utilizar selectivamente la predicción intra o la predicción inter. Basándose en el aparato de codificación de vídeo según una realización preferida de la presente invención, el aparato de codificación de vídeo compara los costes de codificación generados cuando solo se utiliza la predicción intra, los costes de codificación generados cuando solo se utiliza la predicción inter y los costes de codificación generados cuando se utilizan la predicción inter y la predicción intra para determinar un tipo de macrobloque, y la predicción codifica los subbloques respectivos según un esquema de predicción seleccionado para generar un tren de bits.
[0376] Un aparato de decodificación de vídeo según una realización preferida de la presente invención puede construirse de manera igual o similar al aparato de decodificación de vídeo según la realización de la presente invención. Sin embargo, el aparato de decodificación de vídeo según una realización preferida de la presente invención decodifica un tipo de macrobloque de un macrobloque de tamaño 16x16 o más a partir del tren de bits y reconstruye el tipo de macrobloque decodificado. Cuando el tipo de macrobloque reconstruido corresponde a bloques, que solo pueden utilizar la predicción intra, la información sobre un modo de predicción intra de cada bloque se extrae, decodifica y reconstruye. Cuando el tipo de macrobloque corresponde a bloques, que solo pueden utilizar la predicción inter, la información de movimiento sobre cada bloque se extrae, decodifica y reconstruye. Cuando el tipo de macrobloque corresponde a bloques, que pueden utilizar selectivamente el modo de predicción intra y el modo de predicción inter para cada subbloque, la información sobre una predicción inter o una predicción intra seleccionada para los subbloques respectivos dentro del macrobloque de tamaño 16 x 16 o más se extrae, decodifica y reconstruye. Además, el macrobloque se decodifica y reconstruye mediante predicción inter o predicción intra de los subbloques respectivos utilizando la información reconstruida sobre la predicción inter o la predicción intra. Mientras tanto, como se describió anteriormente, los subbloques respectivos dentro del macrobloque pueden predecirse selectivamente utilizando la predicción inter o la predicción intra, pero la codificación predictiva puede realizarse utilizando solo una de la predicción inter y la predicción intra o utilizando selectivamente la predicción inter o la predicción intra según un tamaño de macrobloque. Es decir, los tipos de macrobloque disponibles son diferentes según el tamaño de macrobloque. Por ejemplo, la codificación predictiva puede realizarse en subbloques respectivos dentro de un macrobloque de tamaño 32 * 32 utilizando selectivamente la predicción inter o la predicción intra, pero un macrobloque de tamaño 16 * 16 utiliza selectivamente la predicción intra o la predicción inter en la unidad de macrobloques.
[0377] Alternativamente, la codificación predictiva puede realizarse utilizando solo una de la predicción inter y la predicción intra o utilizando selectivamente la predicción inter o la predicción intra según un tamaño de bloque. Por ejemplo, la codificación predictiva se realiza en subbloques que tienen un tamaño mayor que el tamaño 8 * 8 dentro de un macrobloque inter de una imagen inter utilizando solo una de la predicción inter y la predicción intra, y la codificación predictiva puede realizarse en bloques de tamaño 8 * 8 o menos utilizando selectivamente la predicción inter o la predicción intra porque es preferible utilizar el modo inter en un área que no tiene textura como un fondo en un caso en el que tanto el modo intra como el modo inter están disponibles y, en este caso, un tamaño de bloque es sustancialmente grande. Además, es preferible seleccionar uno del modo intra y el modo inter en un área compleja porque un tamaño de subbloque es sustancialmente pequeño en el área compleja. En consecuencia, si la codificación predictiva se realiza selectivamente utilizando la predicción inter o la predicción intra en la unidad de macrobloques, la eficiencia de codificación puede verse deteriorada porque existen diversas áreas dentro de un macrobloque tales como un macrobloque de tamaño 16 * 16 o más.
[0378] La fig. 18 es un diagrama de flujo para ilustrar un ejemplo de un aparato de codificación de video según otra realización más de la presente invención.
[0379] El aparato de codificación de video 1800 según otra realización más de la presente invención puede incluir una unidad de establecimiento de unidad básica de predicción candidata 1810, un codificador de video 1820 y un determinador de unidad básica de predicción 1830.
[0380] La unidad de establecimiento de unidad básica candidata 1810 establece candidatos de unidad básica de predicción para macrobloques de tamaño 16x16 o más. Los candidatos de unidad básica de predicción pueden ser introducidas por un usuario o determinarse según las características de la imagen. Alternativamente, los candidatos de unidad básica de predicción pueden ser un grupo de candidatos establecido (por ejemplo, 16 * 16, 32 * 32, etc.) introducido por otro aparato. Cuando los candidatos de unidad básica de predicción se determinan según las características de la imagen, pueden determinarse diversos grupos de candidatos que tengan tamaño 16 x 16 o más en consideración de un tamaño de imagen, una relación de una anchura y una altura, etc.
[0381] Aquí, la unidad básica de predicción se refiere a un tamaño de bloque, que puede seleccionar la predicción inter o la predicción intra dentro del macrobloque. Es decir, el macrobloque es la unidad básica de un procesamiento de codificación / decodificación, y la unidad básica de predicción es la unidad, que puede seleccionar un esquema de predicción. Por ejemplo, cuando una unidad básica de predicción de un macrobloque de tamaño 32 * 32 es un bloque de tamaño 16 * 16, un bloque que tiene un tamaño mayor que el tamaño 16 * 16 puede utilizar solo la predicción inter y un bloque de 16 * 16 puede seleccionar la predicción intra o la predicción inter. En este caso, la información sobre un modo de predicción seleccionado (información que indica si el modo de predicción es la predicción intra o la predicción inter) se codifica en la unidad de bloques de tamaño 16 * 16 cuando el macrobloque se divide en bloques de tamaño 16 * 16 o menos. Es decir, los subbloques de tamaño 16 * 16 o menos pueden utilizar solo la predicción intra o solo la predicción inter según la información de modo de predicción.
[0382] El codificador de video 1820 puede implementarse como el aparato de codificación de video 600 según la realización de la presente invención descrita a través de la fig. 6. Es decir, el codificador de video 1820 realiza una codificación selectivamente utilizando la predicción inter o la predicción intra como la unidad básica de predicción correspondiente para cada candidata de unidad básica de predicción establecida por la unidad de establecimiento de unidad básica de predicción candidata 1810, para generar datos de imagen codificados para cada candidata de unidad básica de predicción.
[0383] El determinador de unidad básica de predicción 1830 calcula los costes de codificación (es decir, los costes de codificación de los datos de imagen codificados para cada candidata de unidad básica de predicción) generados cuando el codificador de video 1820 codifica una imagen para cada candidata de unidad básica de predicción y compara los costes de codificación de los datos de imagen codificados para cada candidata de unidad básica de predicción para determinar una unidad básica de predicción óptima entre las candidatas de unidad básica de predicción. Aquí, la unidad básica de predicción óptima puede ser cualquier unidad básica de predicción entre las candidatas de unidad básica de predicción si la unidad básica de predicción genera los costes de codificación más bajos cuando la imagen se codifica utilizando la unidad básica de predicción correspondiente. Sin embargo, en un caso de utilización de costes de codificación, la unidad básica de predicción óptima puede determinarse de manera diversa utilizando los costes de codificación.
[0384] Cuando se determina la unidad básica de predicción, el determinador de unidad básica de predicción 1830 genera datos de imagen codificados en la unidad básica de predicción correspondiente como el tren de bits. En este caso, la información sobre la unidad básica de predicción puede incluirse directamente en el tren de bits o codificarse y después incluirse en el tren de bits. La información sobre la unidad básica de predicción puede incluirse en el tren de bits para una imagen completa solo una vez o puede incluirse en el tren de bits en cada imagen de la imagen completa o cada sector.
[0385] En lo sucesivo, se describirá otro método de determinación de la unidad básica de predicción (aquí, no se utiliza el determinador de unidad básica de predicción).
[0386] Después de que el codificador de video 1820 compara los costes de codificación generados cuando el modo de predicción intra se utiliza para los bloques respectivos dentro del macrobloque con los costes de codificación generados cuando el modo de predicción inter se utiliza para los bloques respectivos dentro del macrobloque, para determinar un modo de predicción óptimo para cada bloque, el codificador de video 1820 establece un tipo de macrobloque en un valor que indica un macrobloque intra y codifica el tipo de macrobloque cuando todos los subbloques dentro del macrobloque utilizan el modo de predicción intra y el codificador de video 1820 establece un tipo de macrobloque en un valor que indica un macrobloque inter y codifica el tipo de macrobloque cuando todos los subbloques dentro del macrobloque utilizan solo el modo de predicción inter. Cuando existen bloques dentro del macrobloque que utilizan tanto el modo de predicción intra como el modo de predicción inter, el codificador de video 1820 establece un tipo de macrobloque en un valor que indica un macrobloque intra / inter y codifica el tipo de macrobloque. Y luego, el codificador de video 1820 establece un tamaño máximo de un subbloque seleccionando el modo de predicción intra como la unidad básica de predicción y codifica información sobre la unidad básica de predicción e información sobre si se selecciona el modo de predicción intra o se selecciona el modo de predicción inter como la unidad de modo de predicción.
[0387] En lo sucesivo, se describirá un procedimiento de codificación de la unidad básica de predicción seleccionada. La unidad básica de predicción puede transmitirse o no utilizando una bandera (Set_predBlockSize_flag) que indica si transmitir un tamaño de unidad básica de predicción al encabezamiento de secuencia o al encabezamiento de cada imagen. Cuando no se transmite la unidad básica de predicción, se utiliza el tamaño 16 * 16 como la unidad básica de predicción.
[0388] Cuando se designa la unidad básica de predicción, se transmite información sobre la unidad básica de predicción. En este caso, puede utilizarse una unidad básica de predicción que tiene un cierto tamaño del cual un tamaño horizontal y un tamaño vertical se establecen por separado. Además, puede designarse un valor particular como la unidad básica de predicción o puede transmitirse un valor que indica el número de veces que una unidad básica de predicción debe ampliarse partir de un tamaño predeterminado. Es decir, se codifica un valor de log2 (unidad básica de predicción seleccionada / 16). Por ejemplo, se codifica "0" cuando una unidad básica de predicción seleccionada es de tamaño 16 * 16, y se codifica "1" cuando la unidad básica de predicción seleccionada tiene es de tamaño 32 * 32. En lo sucesivo, no se describe que un tamaño horizontal y un tamaño vertical se establezcan por separado, pero es aplicable para establecer por separado el tamaño horizontal y el tamaño vertical. Además, aunque se ejemplifica que los datos se codifican en el encabezamiento de secuencia y el encabezamiento de imagen, los datos pueden codificarse en el encabezamiento de sector. Además, puede transmitirse un valor que indica el número de veces que una unidad básica de predicción debe reducirse a partir de un tamaño predeterminado.
Set_predBlockSize_flag
if(Set_predBlockSize_flag == 1)
{
predBlockSize
}
or
Set_predBlockSize_flag
if(Set_predBlockSize_flag == 1)
{
predBlockSize_Width
predBlockSize_height
}
[0389] En un segundo procedimiento, una unidad básica de predicción básica seleccionada se codifica cuando se selecciona el tamaño 16 * 16 como la unidad básica de predicción básica, en cada encabezamiento de imagen se codifica una bandera que indica si utilizar la unidad básica de predicción básica,
y no se utiliza la unidad básica de predicción básica. Alternativamente, cuando la unidad básica de predicción básica no se establece después de que una bandera que indica si establecer la unidad básica de predicción básica se codifica en el encabezamiento de secuencia, se utiliza el tamaño 16 * 16 como la unidad básica de predicción básica. Cuando se establece la unidad básica de predicción básica, puede codificarse la unidad básica de predicción básica.
Sequence header:
Set_default predBlockSize_Flag
if(Set_default predBlockSize_Flag == 1)
{
default predBlockSize
}
Picture header:
Use_default_predBlockSize_flag
if(use_default_predBlockSize e_flag == 0)
{
predBlockSize
}
[0390] En un tercer procedimiento, después de que en una primera imagen se codifican una bandera que indica si utilizar la unidad básica de predicción básica y una unidad básica de predicción seleccionada en un caso en el que no se utiliza la unidad básica de predicción básica, una bandera que indica si utilizar una unidad básica de predicción de una imagen anterior y una unidad básica de predicción de una imagen actual en un caso en el que no se utiliza la unidad básica de predicción de la imagen anterior pueden codificarse a partir de una segunda imagen.
Picture header of first picture
use_default_predBlockSize _flag
if(use_default_predBlockSize _flag == 0)
{
predBlockSize
}
From second picture
Use_prevPic_predBlockSize_flag
if(use_prevPic_predBlockSize e_flag == 0)
{
predBlockSize
}
[0391] La fig. 19 es un diagrama de flujo para ilustrar un ejemplo de un procedimiento de codificación de vídeo según otra realización más de la presente invención.
[0392] El aparato de codificación de vídeo 1800 establece candidatas de unidad básica de predicción en la etapa S1910, codifica una imagen de entrada para cada candidata de unidad básica de predicción en la etapa S1920, determina una unidad básica de predicción basándose en los costes de codificación de datos de imagen para cada candidata de unidad básica de predicción en la etapa S1930, y genera un tren de bits que incluye datos de imagen codificados selectivamente utilizando una predicción inter o una predicción intra para cada subbloque de un macrobloque e información sobre la unidad básica de predicción determinada en la etapa S1940. Puesto que se ha descrito a través de la fig. 10 que el aparato de codificación de vídeo 1900 establece las candidatas de unidad básica de predicción, codifica la imagen para cada candidata de unidad básica de predicción y determina la unidad básica de predicción basándose en los costes de codificación para cada candidata de unidad básica de predicción, se omitirá su descripción detallada.
[0393] Un aparato de decodificación de vídeo según otra realización más de la presente invención puede construirse de manera igual o similar al aparato de decodificación de vídeo 700 según la realización de la presente invención descrita a través de la fig. 7. Sin embargo, el aparato de decodificación de vídeo según otra realización más de la presente invención extrae del tren de bits no solo datos de imagen sino también información sobre la unidad básica de predicción para utilizar selectivamente la predicción inter o la predicción intra para macrobloques de tamaño 16 x 16 o más, y decodifica datos de imagen codificados selectivamente utilizando la predicción inter o la predicción intra para subbloques respectivos dentro del macrobloque de tamaño igual o menor que un tamaño de unidad básica de predicción identificado por información sobre la unidad básica de predicción extraída (o una unidad básica de predicción identificada decodificando información sobre la unidad básica de predicción extraída si es necesario), para generar una imagen reconstruida.
[0394] En la descripción anterior, aunque todos los componentes de las realizaciones de la presente invención pueden haberse explicado como ensamblados o conectados operativamente como una unidad, la presente invención no pretende limitarse a tales realizaciones. Más bien, dentro del alcance objetivo de la presente invención, los componentes respectivos pueden combinarse selectiva y operativamente en cualquier número. Cada uno de los componentes también puede implementarse por sí mismo en hardware, mientras que los respectivos pueden combinarse selectivamente en parte o en su totalidad e implementarse en un programa informático que tiene módulos de programa para ejecutar funciones de los equivalentes de hardware. Los códigos o segmentos de código para constituir tal programa pueden ser deducidos fácilmente por un experto en la materia. El programa informático puede almacenarse en medios legibles por ordenador, que en funcionamiento pueden realizar los aspectos de la presente invención. Como medios legibles por ordenador, los candidatos incluyen medios de grabación magnética, medios de grabación óptica y medios de onda portadora.
[0395] Además, los términos como "incluir", "comprender" y "tener" deberían interpretarse de manera predeterminada como inclusivos o abiertos en lugar de exclusivos o cerrados, a menos que se defina expresamente lo contrario. Todos los términos que son técnicos, científicos o de otra manera están según los significados tal como los entiende un experto en la materia a menos que se defina lo contrario. Los términos comunes que se encuentran en los diccionarios deberían interpretarse en el contexto de los escritos técnicos relacionados de manera no demasiado ideal o impráctica, a menos que la presente invención los defina así expresamente.
[0396] Aunque los aspectos ejemplares de la presente invención se han descrito con fines ilustrativos, los expertos en la materia apreciarán que son posibles diversas modificaciones, adiciones y sustituciones, sin apartarse de las características esenciales de la descripción. Por lo tanto, los aspectos ejemplares de la presente invención no se han descrito con fines limitativos. Por consiguiente, el alcance de la descripción no estará limitado por los aspectos anteriores, sino por las reivindicaciones y los equivalentes de las mismas.
[Aplicación Industrial]
[0397] Como se describió anteriormente, la presente invención es muy útil para aplicación en los campos de un procesamiento de compresión de vídeo mediante la utilización de bloques de gran tamaño a través de la determinación de un tipo de bloque basándose en las características de la imagen para generar un efecto de codificación y decodificación eficiente de una imagen de alta resolución.
REFERENCIA CRUZADA A SOLICITUDES RELACIONADAS
[0398] Si procede, esta solicitud reivindica las prioridades bajo 35 U.S.C §119(a) de la Solicitud de Patente No.
10-2009-0093982, depositada el 1 de octubre de 2009 y la Solicitud de Patente No. 10-2010-0095905, depositada el 1 de octubre de 2010 en Corea.
[0399] Además, esta solicitud no provisional reivindica prioridades en países distintos de los EE.UU., por la misma razón basada en las solicitudes de patente coreanas.

Claims (10)

REIVINDICACIONES
1. Un procedimiento de codificación de un vídeo que incluye una secuencia de imágenes que tienen una sola resolución dividiendo cada una de las imágenes en la unidad de bloques, comprendiendo el procedimiento: determinar un tamaño de macrobloque en la unidad de toda la secuencia de imágenes para codificar datos de imagen de la secuencia;
codificar una primera información que indica un tamaño de macrobloque de referencia y una segunda información que indica una relación del tamaño de macrobloque al tamaño de macrobloque de referencia, para indicar el tamaño de macrobloque, en el que:
el tamaño de macrobloque de referencia es un tamaño de macrobloque mínimo,
la segunda información se codifica como un valor de log2 (MBsize/X) donde MBsize es el tamaño de macrobloque, X es el tamaño de macrobloque de referencia, y tanto MBsize como X son un número de píxeles en una dimensión, y la primera y la segunda información se codifican en un encabezamiento de la secuencia en un tren de bits; y
codificar en el tren de bits los datos de imagen de la secuencia dividiendo todas y cada una de las imágenes en la unidad de macrobloques que tienen el tamaño de macrobloque.
2. El procedimiento según la reivindicación 1, que comprende además:
determinar un tamaño de subbloque mínimo para la transformada que se utilizará en toda la secuencia de las imágenes y codificar un valor de escala logarítmica del tamaño de subbloque mínimo en el encabezamiento de la secuencia, siendo el valor de escala logarítmica log2 (tamaño de subbloque mínimo/Y) donde Y es un número entero positivo que es un múltiplo de 2,
en el que la transformada de los datos de imagen se realiza utilizando subbloques iguales o mayores que el tamaño de subbloque mínimo.
3. El procedimiento según la reivindicación 1, en el que la primera y la segunda información se codifican mediante un código de Golomb exponencial.
4. El procedimiento según la reivindicación 1, en el que el tamaño de macrobloque se determina de entre 16x16, 32x32 y 64*64.
5. El procedimiento según la reivindicación 1, en el que la codificación de la imagen comprende: dividir un macrobloque que tenga el tamaño de macrobloque en uno o más subbloques; y
codificar el macrobloque mediante predicción inter o mediante predicción intra de cada uno de los subbloques divididos del macrobloque.
6. Un aparato (800; 1000) de codificación de un vídeo que incluye una secuencia de imágenes que tienen una sola resolución dividiendo cada una de las imágenes en la unidad de bloques, comprendiendo el aparato (800; 1000):
un determinador de tamaño (830; 1030) configurado para determinar un tamaño de macrobloque en la unidad de toda la secuencia de las imágenes para codificar datos de imagen de la secuencia;
un codificador de vídeo (820; 1020) configurado para
codificar una primera información que indica un tamaño de macrobloque de referencia y una segunda información que indica una relación del tamaño de macrobloque al tamaño de macrobloque de referencia, para indicar el tamaño de macrobloque, en el que,
el tamaño de macrobloque de referencia es un tamaño de macrobloque mínimo,
la segunda información se codifica como un valor de log2 (MBsize/X) donde MBsize es el tamaño de macrobloque, X es el tamaño de macrobloque de referencia, y tanto MBsize como X son un número de píxeles en una dimensión, y
la primera y la segunda información se codifican en un encabezamiento de la secuencia en un tren de bits, y
codificar en el tren de bits los datos de imagen de la secuencia dividiendo todas y cada una de las imágenes en la unidad de macrobloques que tienen el tamaño de macrobloque.
7. El aparato (800; 1000) según la reivindicación 6, en el que,
el determinador de tamaño (830; 1030) está configurado además para determinar un tamaño de subbloque mínimo para la transformada que se utilizará en toda la secuencia de las imágenes, y
el codificador de vídeo (820; 1020) está configurado además para codificar un valor de escala logarítmica del tamaño de subbloque mínimo en el encabezamiento de la secuencia, siendo el valor de escala logarítmica log2 (tamaño de subbloque mínimo/Y) donde Y es un número entero positivo que es un múltiplo de 2,
en el que el codificador de vídeo (820; 1020) realiza la transformada para los datos de imagen utilizando subbloques iguales o mayores que el tamaño de subbloque mínimo.
8. El aparato (800; 1000) según la reivindicación 6, en la que la primera y la segunda información se codifican mediante un código de Golomb exponencial.
9. El aparato (800; 1000) según la reivindicación 6, en el que el tamaño de macrobloque se determina de entre 16x16, 32x32 y 64*64.
10. El aparato (800; 1000) según la reivindicación 6, en el que el codificador de vídeo (820; 1020) está configurado para dividir un macrobloque que tiene el tamaño de macrobloque en uno o más subbloques; y codificar el macrobloque mediante predicción inter o mediante predicción intra de cada uno de los subbloques divididos del macrobloque.
ES15182719T 2009-10-01 2010-10-01 Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable Active ES2747977T3 (es)

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
ES2747977T3 true ES2747977T3 (es) 2020-03-12

Family

ID=44044434

Family Applications (3)

Application Number Title Priority Date Filing Date
ES19193515T Active ES2823231T3 (es) 2009-10-01 2010-10-01 Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable
ES15182719T Active ES2747977T3 (es) 2009-10-01 2010-10-01 Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable
ES19193514T Active ES2829810T3 (es) 2009-10-01 2010-10-01 Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES19193515T Active ES2823231T3 (es) 2009-10-01 2010-10-01 Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES19193514T Active ES2829810T3 (es) 2009-10-01 2010-10-01 Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable

Country Status (9)

Country Link
US (4) US20130039415A1 (es)
EP (4) EP2485489A4 (es)
KR (3) KR101543314B1 (es)
CN (4) CN105049865B (es)
DK (1) DK2991356T3 (es)
ES (3) ES2823231T3 (es)
HU (3) HUE047479T2 (es)
PL (3) PL2991356T3 (es)
WO (1) WO2011040794A2 (es)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8675730B2 (en) * 2009-07-13 2014-03-18 Nvidia Corporation Macroblock grouping in a destination video frame to improve video reconstruction performance
US8971656B2 (en) * 2009-12-10 2015-03-03 Sk Telecom Co., Ltd. Encoding/decoding method and apparatus using a tree structure
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
HUE052897T2 (hu) * 2011-06-27 2021-05-28 Samsung Electronics Co Ltd Mozgásinformáció kódolása és dekódolása
US20130301713A1 (en) * 2012-05-14 2013-11-14 Qualcomm Incorporated Systems and methods for intra prediction video coding
JP6337380B2 (ja) * 2013-07-31 2018-06-06 サン パテント トラスト 画像符号化方法および画像符号化装置
CN105519114A (zh) 2013-09-10 2016-04-20 株式会社Kt 用于对可扩展视频信号进行编码/解码的方法及装置
TWI536811B (zh) 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
CN104284188B (zh) * 2014-10-11 2018-03-13 华为技术有限公司 预测块的划分方法、编码设备和解码设备
WO2016204373A1 (ko) * 2015-06-18 2016-12-22 엘지전자 주식회사 영상 코딩 시스템에서 영상 특성에 기반한 적응적 필터링 방법 및 장치
KR101718969B1 (ko) * 2015-10-02 2017-03-23 인하대학교 산학협력단 Hevc 인트라 예측의 속도 향상을 위한 블록 사이즈 후보 조기 결정 방법
CN108370441B (zh) * 2015-11-12 2022-07-12 Lg 电子株式会社 在图像编译系统中用于系数引起的帧内预测的方法和装置
WO2017195945A1 (ko) * 2016-05-10 2017-11-16 삼성전자 주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
KR102426131B1 (ko) * 2016-06-17 2022-07-27 세종대학교산학협력단 비디오 신호의 부호화 또는 복호화 방법 및 장치
KR102534604B1 (ko) * 2016-06-17 2023-05-26 세종대학교 산학협력단 비디오 신호의 부호화 또는 복호화 방법 및 장치
FR3053555A1 (fr) * 2016-06-29 2018-01-05 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal et programmes d'ordinateurs associes
CN114513657B (zh) * 2016-07-05 2024-06-04 株式会社Kt 对视频进行解码的方法和设备以及对视频进行编码的方法
KR20180021942A (ko) * 2016-08-22 2018-03-06 광운대학교 산학협력단 보안 카메라용 영상 코덱에서 블록 분할 정보 전송 방법 및 장치
EP4236321A3 (en) * 2016-08-31 2023-09-13 KT Corporation Method and device for processing video signal
WO2018054269A1 (en) * 2016-09-22 2018-03-29 Mediatek Inc. Method and apparatus for video coding using decoder side intra prediction derivation
WO2018093184A1 (ko) * 2016-11-18 2018-05-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR102559062B1 (ko) 2016-11-25 2023-07-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
EP3535972B1 (en) * 2016-12-23 2020-11-18 Huawei Technologies Co., Ltd. An intra-prediction apparatus for extending a set of predetermined directional intra-prediction modes
CN117201818A (zh) * 2017-05-26 2023-12-08 Sk电信有限公司 对视频数据进行编码或解码的方法和发送比特流的方法
KR102435881B1 (ko) 2017-05-26 2022-08-24 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
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
CN118283258A (zh) 2018-05-10 2024-07-02 三星电子株式会社 用于图像编码的方法和装置及用于图像解码的方法和装置
KR102627814B1 (ko) 2018-06-29 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
KR20240007298A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
CN114466197A (zh) 2018-06-29 2022-05-10 北京字节跳动网络技术有限公司 用于查找表更新的编码的运动信息的选择
EP3794824A1 (en) 2018-06-29 2021-03-24 Beijing Bytedance Network Technology Co. Ltd. Conditions for updating luts
TWI752331B (zh) 2018-06-29 2022-01-11 大陸商北京字節跳動網絡技術有限公司 當向Merge/AMVP添加HMVP候選時的部分/完全修剪
CN114125450B (zh) 2018-06-29 2023-11-17 北京字节跳动网络技术有限公司 一种用于处理视频数据的方法、装置和计算机可读介质
GB2588531B (en) 2018-06-29 2023-02-01 Beijing Bytedance Network Tech Co Ltd Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
TWI719526B (zh) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 查找表的更新
TWI820211B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
WO2020061008A1 (en) * 2018-09-18 2020-03-26 Google Llc Receptive-field-conforming convolution models for video coding
CN111050172A (zh) * 2018-10-15 2020-04-21 华为技术有限公司 图像块的变换、反变换方法和装置
JP7275286B2 (ja) 2019-01-10 2023-05-17 北京字節跳動網絡技術有限公司 Lut更新の起動
WO2020145636A1 (ko) * 2019-01-10 2020-07-16 세종대학교 산학협력단 영상 부호화/복호화 방법 및 장치
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147772A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Motion candidates derivation
CN113615193B (zh) 2019-03-22 2024-06-25 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
US10887589B2 (en) 2019-04-12 2021-01-05 Realnetworks, Inc. Block size determination for video coding systems and methods

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002346413A1 (en) * 2001-11-16 2003-06-10 Qualcomm Incorporated Block size assignment using local contrast ratio
KR100987765B1 (ko) * 2003-09-30 2010-10-13 삼성전자주식회사 동영상 부호화기에서의 예측 수행 방법 및 장치
KR100679031B1 (ko) * 2004-12-03 2007-02-05 삼성전자주식회사 다 계층 기반의 비디오 인코딩 방법, 디코딩 방법 및 상기방법을 이용한 장치
KR100888963B1 (ko) * 2004-12-06 2009-03-17 엘지전자 주식회사 영상 신호의 스케일러블 인코딩 및 디코딩 방법
US20060193386A1 (en) * 2005-02-25 2006-08-31 Chia-Wen Lin Method for fast mode decision of variable block size coding
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
US9071844B2 (en) * 2005-12-16 2015-06-30 Texas Instruments Incorporated Motion estimation with motion vector penalty
KR100728031B1 (ko) * 2006-01-23 2007-06-14 삼성전자주식회사 가변 블록 크기 움직임 예측을 위한 부호화 모드 결정 방법및 장치
KR100896978B1 (ko) * 2006-11-27 2009-05-14 한양대학교 산학협력단 Mpeg-2에서 h.264/avc로의 고속 트랜스코딩에서 움직임 벡터 예측 방법과 모드 예측 방법 및 기록매체
CN101222641B (zh) * 2007-01-11 2011-08-24 华为技术有限公司 帧内预测编解码方法及其装置
US7991237B2 (en) * 2007-06-28 2011-08-02 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
US8432970B1 (en) * 2007-12-14 2013-04-30 Marvell International Ltd. Block type selection
CN101304529A (zh) * 2008-06-06 2008-11-12 浙江大学 宏块模式的选择方法和装置
CN101350928A (zh) * 2008-07-29 2009-01-21 北京中星微电子有限公司 一种运动估计方法及装置
US8503527B2 (en) * 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
CN101527854A (zh) * 2009-01-20 2009-09-09 源见科技(苏州)有限公司 帧间模式选择方法
KR101543430B1 (ko) 2009-02-23 2015-08-11 삼성전자주식회사 반도체 장치의 제조 방법
US20110002391A1 (en) * 2009-06-11 2011-01-06 Motorola, Inc. Digital image compression by resolution-adaptive macroblock coding
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks

Also Published As

Publication number Publication date
CN105007492A (zh) 2015-10-28
KR20110036519A (ko) 2011-04-07
PL2991356T3 (pl) 2020-03-31
US20130315299A1 (en) 2013-11-28
US9462278B2 (en) 2016-10-04
ES2823231T3 (es) 2021-05-06
EP2991356A1 (en) 2016-03-02
PL3595301T3 (pl) 2021-01-25
EP2991356B1 (en) 2019-09-04
CN105007491B (zh) 2018-02-06
WO2011040794A2 (ko) 2011-04-07
CN105007492B (zh) 2018-02-06
CN105049865A (zh) 2015-11-11
PL3595311T3 (pl) 2021-01-25
US20130039415A1 (en) 2013-02-14
KR101635830B1 (ko) 2016-07-05
CN105007491A (zh) 2015-10-28
US20150288960A1 (en) 2015-10-08
KR20150014414A (ko) 2015-02-06
EP3595301B1 (en) 2020-08-12
KR101543319B1 (ko) 2015-08-12
HUE052466T2 (hu) 2021-04-28
CN102907098B (zh) 2016-04-20
EP2485489A2 (en) 2012-08-08
US9215461B2 (en) 2015-12-15
ES2829810T3 (es) 2021-06-02
US20150288961A1 (en) 2015-10-08
KR101543314B1 (ko) 2015-08-12
DK2991356T3 (da) 2019-12-02
KR20130088110A (ko) 2013-08-07
US9462277B2 (en) 2016-10-04
CN102907098A (zh) 2013-01-30
HUE047479T2 (hu) 2020-04-28
EP3595301A1 (en) 2020-01-15
CN105049865B (zh) 2018-01-05
EP3595311B1 (en) 2020-08-12
EP3595311A1 (en) 2020-01-15
WO2011040794A3 (ko) 2011-09-01
EP2485489A4 (en) 2014-01-15
HUE051313T2 (hu) 2021-03-01

Similar Documents

Publication Publication Date Title
ES2747977T3 (es) Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable
KR101479129B1 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR101698509B1 (ko) 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치
KR101673028B1 (ko) 영상 부호화/복호화 장치 및 방법
KR101927386B1 (ko) 영상 부호화 방법 및 장치, 그리고 복호화 방법 및 장치
ES2900727T3 (es) Método y aparato para decodificar modo de intra-predicción
KR101947657B1 (ko) 인트라 예측 정보 부호화 방법 및 장치
KR101540528B1 (ko) 비디오 데이터의 블록의 계수들의 모드 의존 스캐닝
KR101947658B1 (ko) 영상 복호화 방법 및 장치
KR101379188B1 (ko) 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
JP2022179762A (ja) 画像復号化方法、画像符号化方法及びコンピュータ可読記録媒体
US9124901B2 (en) Method and apparatus for encoding/decoding images considering low frequency components
KR20110125153A (ko) 영상의 필터링 방법 및 장치와 그를 이용한 부호화/복호화를 위한 방법 및 장치
KR20110000438A (ko) 다차원 정수 변환을 이용한 영상 부호화/복호화 장치 및 방법
KR20050116344A (ko) 동영상의 무손실 인코딩 및 디코딩 방법, 그 장치
KR20130054981A (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치