ES2545394T3 - Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital - Google Patents

Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital Download PDF

Info

Publication number
ES2545394T3
ES2545394T3 ES10182654.3T ES10182654T ES2545394T3 ES 2545394 T3 ES2545394 T3 ES 2545394T3 ES 10182654 T ES10182654 T ES 10182654T ES 2545394 T3 ES2545394 T3 ES 2545394T3
Authority
ES
Spain
Prior art keywords
block
field
macroblock
macroblocks
pairs
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.)
Expired - Lifetime
Application number
ES10182654.3T
Other languages
English (en)
Inventor
Limin Wang
Rajeev Gandhi
Krit Panusopone
Ajay Luthra
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.)
Google Technology Holdings LLC
Original Assignee
Google Technology Holdings LLC
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27540869&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2545394(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US10/301,290 external-priority patent/US6980596B2/en
Application filed by Google Technology Holdings LLC filed Critical Google Technology Holdings LLC
Application granted granted Critical
Publication of ES2545394T3 publication Critical patent/ES2545394T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display 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/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
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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
    • H04N19/51Motion estimation or motion compensation
    • 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
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un método para codificar una instantánea en una secuencia de imágenes, que comprende: dividir dicha instantánea en una pluralidad de pares de macrobloques verticalmente adyacentes; codificar de manera selectiva al menos uno de dicha pluralidad de pares de macrobloques en un momento en modo de codificación de cuadro donde el al menos uno de dicha pluralidad de pares de macrobloques incluye macrobloques de cuadro incluyendo cada uno tanto píxeles de campo superior como inferior, y al menos uno de dicha pluralidad de pares de macrobloques en un momento en modo de codificación de campo donde el al menos uno de dicha pluralidad de pares de macrobloques se divide en macrobloques de campo incluyendo cada uno píxeles de campo superior o inferior; y obtener al menos dos vectores de movimiento y dos instantáneas de referencia asociadas para al menos un bloque de dicho al menos un par de macrobloques de dicha pluralidad de pares de macrobloques, donde dicho al menos un bloque tiene un tamaño más pequeño que dicho al menos uno de la pluralidad de pares de macrobloques.

Description

E10182654
14-08-2015
DESCRIPCIÓN
Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital
5 Campo técnico
La presente invención se refiere a codificación y decodificación de contenido de vídeo digital. Más específicamente, la presente invención se refiere a codificación de modo de cuadro y de modo de campo de contenido de vídeo digital a un nivel de macrobloques como se usa en la norma de codificación de vídeo de la norma MPEG-4 Parte 10 AVC/H.264.
Antecedentes
La compresión de vídeo se usa en muchos productos actuales y emergentes. Está en el corazón de los receptores
15 de salón de televisión digital (STB), sistemas de satélite digital (DSS), decodificadores de televisión de alta definición (HDTV), reproductores de disco versátil digital (DVD), videoconferencia, contenido de vídeo y multimedia de internet y otras aplicaciones de vídeo digital. Sin la compresión de vídeo, el contenido de vídeo digital puede ser extremadamente grande, haciendo difícil o incluso imposible que se almacene, transmita o visualice eficazmente el contenido de vídeo digital.
El contenido de vídeo digital comprende un flujo de instantáneas que pueden presentarse como una imagen en un receptor de televisión, monitor de ordenador o algún otro dispositivo electrónico que pueda presentar contenido de vídeo digital. Una instantánea que se presenta en el tiempo antes de una instantánea particular está en la “dirección hacia atrás” en relación con la instantánea particular. De manera similar, una instantánea que se presenta en el
25 tiempo después de una instantánea particular está en la “dirección hacia delante” en relación con la instantánea particular.
La compresión de vídeo se consigue en un proceso de codificación en el que cada instantánea se codifica como un cuadro o como dos campos. Cada cuadro comprende un número de líneas de información espacial. Por ejemplo, un cuadro típico contiene 480 líneas horizontales. Cada campo contiene la mitad del número de líneas en el cuadro. Por ejemplo, si el cuadro comprende 480 líneas horizontales, cada campo comprende 240 líneas horizontales. En una configuración típica, uno de los campos comprende las líneas con número impar en el cuadro y el otro campo comprende las líneas con número par en el cuadro. El campo que comprende las líneas con número impar se denominará como el campo “superior” en lo sucesivo y en las reivindicaciones adjuntas, a menos que se indique
35 específicamente de otra manera. De manera similar, el campo que comprende las líneas con número par se denominará como el campo “inferior” en lo sucesivo y en las reivindicaciones adjuntas, a menos que se indique específicamente de otra manera. Los dos campos pueden entrelazarse juntos para formar un cuadro entrelazado.
La idea general detrás de la codificación de vídeo es eliminar datos del contenido de vídeo digital que sean “no esenciales”. La cantidad reducida de datos a continuación requiere menos ancho de banda para difusión o transmisión. Después de que se hayan transmitido los datos de vídeo comprimido, deben decodificarse, o descomprimirse. En este proceso, los datos de vídeo transmitido se procesan para generar datos de aproximación que se sustituyen en los datos de vídeo para reemplazar los datos “no esenciales” que se eliminaron en el proceso de codificación.
45 La codificación de vídeo transforma el contenido de vídeo digital en una forma comprimida que puede almacenarse usando menos espacio y transmitirse usando menos ancho de banda que el contenido de vídeo digital no comprimido. Se hace aprovechando las redundancias temporales y espaciales en las instantáneas del contenido de vídeo. El contenido de vídeo digital puede almacenarse en un medio de almacenamiento tal como un disco duro, DVD o alguna otra unidad de almacenamiento no volátil.
Existen numerosos métodos de codificación de vídeo que comprimen el contenido de vídeo digital. En consecuencia, las normas de codificación de vídeo se han desarrollado para normalizar los diversos métodos de codificación de vídeo de modo que el contenido de vídeo digital comprimido se representa en formatos que puede reconocer una
55 mayoría de codificadores y decodificadores de vídeo. Por ejemplo, el Grupo de Expertos en Imagen en Movimiento (MPEG) y la Unión Internacional de Telecomunicaciones (ITU-T) han desarrollado normas de codificación de vídeo que se usan ampliamente. Ejemplos de estas normas incluyen las normas MPEG-1, MPEG-2, MPEG-4, ITU-T H261 e ITU-T H263.
La mayoría de las normas de codificación de vídeo modernas, tales como aquellas desarrolladas mediante el MPEG y la ITU-T, están basadas en parte en una predicción temporal con algoritmo de compensación de movimiento (MC). La predicción temporal con compensación de movimiento se usa para eliminar la redundancia temporal entre instantáneas sucesivas en una difusión de vídeo digital.
65 La predicción temporal con algoritmo de compensación de movimiento utiliza típicamente una o dos instantáneas de referencia para codificar una instantánea particular. Una instantánea de referencia es una instantánea que ya se ha
E10182654
14-08-2015
codificado. Comparando la instantánea particular que se ha de codificar con una de las instantáneas de referencia, la predicción temporal con algoritmo de compensación de movimiento puede aprovechar la redundancia temporal que existe entre la instantánea de referencia y la instantánea particular que se ha de codificar y codificar la instantánea con una cantidad superior de compresión que si la instantánea se codificara sin usar la predicción
5 temporal con algoritmo de compensación de movimiento. Una de las instantáneas de referencia puede estar en la dirección hacia atrás en relación con la instantánea particular que se ha de codificar. La otra instantánea de referencia está en la dirección hacia delante en relación con la instantánea particular que se ha de codificar.
Sin embargo, a medida que aumenta la demanda de resoluciones superiores, el contenido gráfico más complejo y el tiempo de transmisión más rápido, también lo hace la necesidad de mejores métodos de compresión de vídeo. Para este fin, se está desarrollando actualmente una nueva norma de codificación de vídeo conjuntamente mediante la ISO y la ITU-T. Esta nueva norma de codificación de vídeo se denomina la norma MPEG-4 Codificación de Vídeo Avanzada (AVC)/H. 264.
15 P.BORGWARDT: “Core Experiment on Interlaced Video coding VCEG-N85” ITU -TELECOMMUNICATIONS STANDARDIZATION SECTOR ITU-T Q.6/SG16 VIDEO CODING EXPERT GROUP (VCEG), 24 de septiembre de 2001, páginas 1-10, evalúa diferentes cambios de sintaxis a exploración de campos entrelazados. Analiza exploración de campos entrelazados junto con codificación de cuadro/campo adaptativa de macrobloques.
La Patente de Estados Unidos Nº US 6.226.327 describe un método y aparato de codificación de vídeo que selecciona entre los modos predictivos basados en cuadro y basados en campo. El documento describe predicción basada en cuadro de cada macrobloque. Para la predicción de movimiento basada en campo de los de los macrobloques, un macrobloque y el macrobloque inmediatamente inferior se consideran como un grupo de macrobloques y se produce la predicción de agrupación de macrobloques mediante agrupación de macrobloques.
25
Sumario de la invención
De acuerdo con los aspectos de la invención se proporciona un método para codificar, un método para decodificar, un aparato para codificar y un aparato para decodificar, como se indica en las reivindicaciones adjuntas. En una de muchas posibles realizaciones, la presente invención proporciona un método para codificar, decodificar y la generación de flujos de bits de contenido de vídeo digital. El contenido de vídeo digital comprende un flujo de instantáneas que puede ser cada una de intra instantáneas, instantáneas predichas o bi-predichas. Cada una de las instantáneas comprende macrobloques que pueden dividirse adicionalmente en bloques más pequeños. El método implica codificar y decodificar cada uno de los de los macrobloques en cada instantánea en dicho flujo de
35 instantáneas en modo de cuadro o en modo de campo.
Breve descripción de los dibujos
Los dibujos adjuntos ilustran diversas realizaciones de la presente invención y son una parte de la memoria descriptiva. Junto con la siguiente descripción, los dibujos demuestran y explican los principios de la presente invención. Las realizaciones ilustradas son ejemplos de la presente invención y no limitan el alcance de la invención.
La Figura 1 ilustra una secuencia ejemplar de tres tipos de instantáneas que pueden usarse para implementar la presente invención, como se define mediante una norma de codificación de vídeo ejemplar tal como la norma
45 MPEG-4 Parte 10 AVC/H. 264.
La Figura 2 muestra que cada instantánea se divide preferentemente en cortes que contienen macrobloques de acuerdo con una realización de la presente invención.
La Figura 3a muestra que un macrobloque puede dividirse adicionalmente en un tamaño de bloque de 16 por 8 píxeles de acuerdo con una realización de la presente invención.
La Figura 3b muestra que un macrobloque puede dividirse adicionalmente en un tamaño de bloque de 8 por 16 píxeles de acuerdo con una realización de la presente invención.
55 La Figura 3c muestra que un macrobloque puede dividirse adicionalmente en un tamaño de bloque de 8 por 8 píxeles de acuerdo con una realización de la presente invención.
La Figura 3d muestra que un macrobloque puede dividirse adicionalmente en un tamaño de bloque de 8 por 4 píxeles de acuerdo con una realización de la presente invención.
La Figura 3e muestra que un macrobloque puede dividirse adicionalmente en un tamaño de bloque de 4 por 8 píxeles de acuerdo con una realización de la presente invención.
65 La Figura 3f muestra que un macrobloque puede dividirse adicionalmente en un tamaño de bloque de 4 por 4 píxeles de acuerdo con una realización de la presente invención.
E10182654
14-08-2015
La Figura 4 muestra un ejemplo de construcción de instantánea usando predicción temporal con compensación de movimiento que ilustra una realización de la presente invención.
5 La Figura 5 muestra que un macrobloque se parte en un campo superior y un campo inferior si se ha de codificar en modo de campo.
La Figura 6a muestra que un macrobloque que se codifica en modo de campo puede dividirse en un bloque con un tamaño de 16 por 8 píxeles de acuerdo con una realización de la presente invención.
La Figura 6b muestra que un macrobloque que se codifica en modo de campo puede dividirse en un bloque con un tamaño de 8 por 8 píxeles de acuerdo con una realización de la presente invención.
La Figura 6c muestra que un macrobloque que se codifica en modo de campo puede dividirse en un bloque con un 15 tamaño de 4 por 8 píxeles de acuerdo con una realización de la presente invención.
La Figura 6d muestra que un macrobloque que se codifica en modo de campo puede dividirse en un bloque con un tamaño de 4 por 4 píxeles de acuerdo con una realización de la presente invención.
La Figura 7 ilustra un par ejemplar de macrobloques que pueden usarse en codificación AFF en un par de macrobloques de acuerdo con una realización de la presente invención.
La Figura 8 muestra que un par de macrobloques que se han de codificar en modo de campo se parten en primer lugar en un bloque de campo superior de 16 por 16 píxeles y un bloque campo inferior de 16 por 16 píxeles.
25 La Figura 9 muestra dos posibles trayectorias de exploración en codificación AFF de pares de macrobloques.
La Figura 10 ilustra otra realización de la presente invención que amplía el concepto de codificación AFF en un par de macrobloques a codificación AFF para un grupo de cuatro o más macrobloques vecinos.
La Figura 11 muestra alguna de la información incluida en el flujo de bits que contiene información pertinente a cada macrobloque en un flujo.
La Figura 12 muestra un bloque que se ha de codificar y sus bloques vecinos y se usará para explicar diversos 35 métodos preferentes para calcular el PMV de un bloque en un macrobloque.
La Figura 13 muestra una definición alternativa de bloques vecinos si la trayectoria de exploración es una trayectoria de exploración vertical.
La Figura 14 muestra que cada valor de píxel se predice desde valores de píxeles de bloques vecinos de acuerdo con una realización de la presente invención.
La Figura 15 muestra diferentes direcciones de predicción para codificación intra_4x4.
45 Las Figuras 16a-b ilustran que el modo de intra-predicción elegido (intra_pred_mode) de un bloque de 4 por 4 píxeles está altamente correlacionado con los modos de predicción de bloques adyacentes.
Las Figuras 17a-d muestran definiciones de bloques vecinos en relación con un par de macrobloques actual que se ha de codificar.
A lo largo de todos los dibujos, idénticos números de referencia designan elementos similares, pero no necesariamente idénticos.
Descripción detallada de las realizaciones de la invención
55 La presente invención proporciona un método para codificación de cuadro/campo adaptativa (AFF) de contenido de vídeo digital que comprende un flujo de instantáneas o cortes de una instantánea en un nivel de macrobloque. La presente invención amplía el concepto de AFF de nivel de instantánea a macrobloques. En codificación AFF a nivel de instantánea, cada instantánea en un flujo de instantáneas que se ha de codificar se codifica en modo de cuadro o en modo de campo, independientemente del modo de codificación de cuadro o de campo de otras instantáneas que se han de codificar. Si se codifica una instantánea en modo de cuadro, los dos campos que componen un cuadro entrelazado se codifican conjuntamente. A la inversa, si se codifica una instantánea en modo de campo, los dos campos que componen un cuadro entrelazado se codifican por separado. El codificador determina qué tipo de codificación, codificación de modo de cuadro o codificación de modo de campo, es más ventajosa para cada
65 instantánea y elige ese tipo de codificación para la instantánea. El método exacto para elegir entre modo de cuadro y modo de campo no es crítico para la presente invención y no se detallará en el presente documento.
E10182654
14-08-2015
Como se ha observado anteriormente, la norma MPEG-4 Parte 10 AVC/H.264 es una nueva norma para codificar y comprimir contenido de vídeo digital. Los documentos que establecen la norma MPEG-4 Parte 10 AVC/H.264 se incorporan en la presente por referencia, incluyendo “Joint Final Committee Draft (JFCD) of Joint Video
5 Specification” emitido por el Equipo Mixto de Vídeo (JVT) el 10 de agosto de 2002. (ITU-T Rec. H.264 & ISO/IEC 14496-10 AVC). El JVT consiste en expertos de la ISO o el MPEG y la ITU-T. Debido a la naturaleza pública de la norma MPEG-4 Parte 10 AVC/H.264, la presente memoria descriptiva no intentará documentar todos los aspectos existentes de la codificación de vídeo MPEG-4 Parte 10 AVC/H.264, basándose en su lugar en las especificaciones incorporadas de la norma.
Aunque este método de codificación AFF es compatible con y se explicará usando las directrices de la norma MPEG-4 Parte 10 AVC/H.264, puede modificarse y usarse como mejor sirva a una norma o aplicación particular.
Usando los dibujos, se explicarán ahora las realizaciones preferidas de la presente invención.
15 La Figura 1 ilustra una secuencia ejemplar de tres tipos de instantáneas que pueden usarse para implementar la presente invención, como se define mediante una norma de codificación de vídeo ejemplar tal como la norma MPEG-4 Parte 10 AVC/H.264. Como se ha mencionado anteriormente, el codificador codifica las instantáneas y el decodificador decodifica las instantáneas. El codificador o decodificador pueden ser un procesador, un circuito integrado específico de la aplicación (ASIC), campo de matriz de puertas programables (FPGA), codificador/decodificador (CODEC), procesador de señales digitales (DSP) o algún otro dispositivo electrónico que puede codificar el flujo de instantáneas. Sin embargo, como se usa en lo sucesivo y en las reivindicaciones adjuntas, a menos que se indique específicamente de otra manera, el término “codificador” se usará para hacer referencia ampliamente a todos los dispositivos electrónicos que codifican contenido de vídeo digital que comprende un flujo de
25 instantáneas. El término “decodificador” se usará para hacer referencia ampliamente a todos los dispositivos electrónicos que decodifican contenido de vídeo digital que comprende un flujo de instantáneas.
Como se muestra en la Figura 1, existen preferentemente tres tipos de instantáneas que pueden usarse en el método de codificación de vídeo. Se definen tres tipos de instantáneas para soportar acceso aleatorio a contenido de vídeo digital almacenado mientras se explora la máxima reducción de redundancia usando predicción temporal con compensación de movimiento. Los tres tipos de instantáneas son intra (I) instantáneas (100), instantáneas predichas (P) (102a,b), e instantáneas bi-predichas (B) (101a-d). Una instantánea I (100) proporciona un punto de acceso para acceso aleatorio a contenido de vídeo digital almacenado y puede codificarse únicamente con compresión ligera. Las intra instantáneas (100) se codifican sin hacer referencia a instantáneas de referencia.
35 Una instantánea predicha (102a,b) se codifica usando una instantánea I, P o B que ya se ha codificado como una instantánea de referencia. La instantánea de referencia puede estar en la dirección temporal hacia delante o hacia atrás en relación con la instantánea P que se está codificando. Las instantáneas predichas (102a,b) pueden codificarse con más compresión que las intra instantáneas (100).
Una instantánea bi-predicha (101a-d) se codifica usando dos instantáneas de referencia temporales: una instantánea de referencia hacia delante y una instantánea de referencia hacia atrás. La instantánea de referencia hacia delante se denomina en ocasiones una instantánea de referencia pasada y la instantánea de referencia hacia atrás se denomina en ocasiones una instantánea de referencia futura. Una realización de la presente invención es
45 que la instantánea de referencia hacia delante y la instantánea de referencia hacia atrás pueden estar en la misma dirección temporal en relación con la instantánea B que se está codificando. Las instantáneas bi-predichas (101a-d) pueden codificarse con la mayor compresión de los tres tipos de instantánea.
Se ilustran relaciones de referencia (103) entre los tres tipos de instantáneas en la Figura 1. Por ejemplo, la instantánea P (102a) puede codificarse usando la instantánea I (100) como su instantánea de referencia. Las instantáneas B (101a-d) pueden codificarse usando la instantánea I codificada (100) o la instantánea P codificada (102a) como sus instantáneas de referencia, como se muestra en la Figura 1. Bajo los principios de una realización de la presente invención, las instantáneas B codificadas (101a-d) pueden usarse también como instantáneas de referencia para otras instantáneas B que se han de codificar. Por ejemplo, la instantánea B (101c) de la Figura 1 se
55 muestra con otras dos instantáneas B (101b y 101d) como sus instantáneas de referencia.
El número y orden particular de las instantáneas I (100), B (101a-d) y P (102a,b) mostrado en la Figura 1 se proporciona como una configuración ejemplar de instantáneas, pero no son necesarios para implementar la presente invención. Cualquier número de instantáneas I, B y P puede usarse en cualquier orden para servir mejor a una aplicación particular. La norma MPEG-4 Parte 10 AVC/H.264 no impone ningún límite al número de instantáneas B entre dos instantáneas de referencia ni limita el número de instantáneas entre dos instantáneas I.
La Figura 2 muestra que cada instantánea (200) se divide preferentemente en cortes (202). Un corte (202) comprende un grupo de macrobloques (201). Un macrobloque (201) es un grupo rectangular de píxeles. Como se
65 muestra en la Figura 2, un tamaño de macrobloque (201) preferente es 16 por 16 píxeles.
E10182654
14-08-2015
Las Figuras 3a-f muestran que un macrobloque puede dividirse adicionalmente en bloques con tamaño más pequeño. Por ejemplo, como se muestra en las Figuras 3a-f, un macrobloque puede dividirse adicionalmente en tamaños de bloque de 16 por 8 píxeles (Figura 3a; 300), 8 por 16 píxeles (Figura 3b; 301), 8 por 8 píxeles (Figura 3c; 302), 8 por 4 píxeles (Figura 3d; 303), 4 por 8 píxeles (Figura 3e; 304) o 4 por 4 píxeles (Figura 3f; 305). Estos
5 tamaños de bloque más pequeños son preferentes en algunas aplicaciones que usan la predicción temporal con algoritmo de compensación de movimiento.
La Figura 4 muestra un ejemplo de construcción de instantánea que usa predicción temporal con compensación de movimiento que ilustra una realización de la presente invención. La predicción temporal con compensación de movimiento supone que una instantánea actual, la instantánea N (400), puede modelarse localmente como una traslación de otra instantánea, la instantánea N-1 (401). La instantánea N-1 (401) es la instantánea de referencia para la codificación de la instantánea N (400) y puede estar en la dirección temporal hacia delante o hacia atrás en relación con la instantánea N (400).
15 Como se muestra en la Figura 4, cada instantánea se divide preferentemente en cortes que contienen macrobloques (201a,b). La instantánea N-1 (401) contiene una imagen (403) que se ha de mostrar en la instantánea N (400). La imagen (403) estará en una posición temporal diferente en la instantánea N (402) que está en la instantánea N-1 (401), como se muestra en la Figura 4. El contenido de imagen de cada macrobloque (201b) de la instantánea N
(400) se predice a partir del contenido de imagen de cada macrobloque (201a) correspondiente de la instantánea N1 (401) estimando la cantidad requerida de movimiento temporal del contenido de imagen de cada macrobloque (201a) de la instantánea N-1 (401) para que la imagen (403) se mueva a su nueva posición temporal (402) en la instantánea N (400). En lugar de que se codifique la imagen original (402), se codifica y transmite realmente la diferencia (404) entre la imagen (402) y su predicción (403).
25 Para cada imagen (402) en la instantánea N (400), la predicción temporal puede a menudo describirse mediante vectores de movimiento que representan la cantidad de movimiento temporal requerido para que la imagen (403) se mueva a una nueva posición temporal en la instantánea N (402). Los vectores de movimiento (406) usados para la predicción temporal con compensación de movimiento necesitan codificarse y transmitirse.
La Figura 4 muestra que la imagen (402) en la instantánea N (400) puede representarse mediante la diferencia (404) entre la imagen y su predicción y los vectores de movimiento asociados (406). El método exacto de codificación usando los vectores de movimiento puede variar como mejor sirva a una aplicación particular y puede implementarse fácilmente por un experto en la materia.
35 Para entender la codificación AFF a nivel de macrobloque, se proporcionará ahora una breve vista general de codificación AFF de nivel de instantánea de un flujo de instantáneas. Un cuadro de una secuencia entrelazada contiene dos campos, el campo superior y el campo inferior, que se intercalan y separan en tiempo mediante un periodo de campo. El periodo de campo es la mitad del tiempo de un periodo de cuadro. En codificación AFF de nivel de instantánea, los dos campos de un cuadro entrelazado pueden codificarse conjuntamente o por separado. Si se codifican conjuntamente, se usa la codificación de modo de cuadro. A la inversa, si los dos campos se codifican por separado, se usa codificación de modo de campo.
La codificación de cuadro/campo fija, por otra parte, codifica todas las instantáneas en un flujo de instantáneas en un modo único. Ese modo puede ser el modo de cuadro o puede ser el modo de campo. La AFF de nivel de
45 instantánea es preferente para codificación de cuadro/campo fija en muchas aplicaciones puesto que permite al codificador elegir qué modo, modo de cuadro o modo de campo, para codificar cada instantánea en el flujo de instantáneas basándose en los contenidos del material de vídeo digital. La codificación AFF da como resultado mejor compresión que lo hace la codificación de cuadro/campo fija en muchas aplicaciones.
Una realización de la presente invención es que la codificación AFF puede realizarse en porciones más pequeñas de una instantánea. Esta porción pequeña puede ser un macrobloque, un par de macrobloques o un grupo de macrobloques. Cada macrobloque, par de macrobloques, o grupo de macrobloques o corte se codifican en modo de cuadro o en modo de campo, independientemente de cómo se codifiquen los otros macrobloques en la instantánea. La codificación AFF en cada uno de los tres casos se describirá en detalle a continuación.
55 En el primer caso, la codificación AFF se realiza en un único macrobloque. Si se ha de codificar el macrobloque en modo de cuadro, los dos campos en el macrobloque se codifican conjuntamente. Una vez codificado como un cuadro, el macrobloque puede dividirse adicionalmente en los bloques más pequeños de las Figuras 3a-f para uso en la predicción temporal con algoritmo de compensación de movimiento.
Sin embargo, si el macrobloque se ha de codificar en modo de campo, el macrobloque (500) se parte en un campo superior (501) y un campo inferior (502), como se muestra en la Figura 5. Los dos campos se codifican a continuación por separado. En la Figura 5, el macrobloque tiene M filas de píxeles y N columnas de píxeles. Un valor preferente de N y M es 16, haciendo el macrobloque (500) un macrobloque de 16 por 16 píxeles. Como se muestra 65 en la Figura 5, cada otra fila de píxeles está sombreada. Las áreas sombreadas representan las filas de píxeles en el campo superior del macrobloque (500) y las áreas no sombreadas representan las filas de píxeles en el campo
E10182654
14-08-2015
inferior del macrobloque (500).
Como se muestra en las Figuras 6a-d, un macrobloque que se codifica en modo de campo puede dividirse en cuatro bloques adicionales. Se requiere que un bloque tenga una única paridad. El requisito de única paridad es que un
5 bloque no pueda comprender ambos campos superior e inferior. En su lugar, debe contener una única paridad de campo. Por lo tanto, como se muestra en las Figuras 6a-d, un macrobloque de modo de campo puede dividirse en bloques de 16 por 8 píxeles (Figura 6a; 600), 8 por 8 píxeles (Figura 6b; 601), 4 por 8 píxeles (Figura 6c; 602) y 4 por 4 píxeles (Figura 6d; 603). Las Figuras 6a-d muestran que cada bloque contiene campos de una única paridad.
La codificación AFF en pares de macrobloques se explicará ahora. La codificación AFF en pares de macrobloques se denominará ocasionalmente como codificación AFF basada en pares. Una comparación de los tamaños de bloque en las Figuras 6a-d y en las Figuras 3a-f muestra que un macrobloque codificado en modo de campo puede dividirse en menos patrones de bloques que lo que puede codificarse un macrobloque en modo de cuadro. Los tamaños de bloque de 16 por 16 píxeles, 8 por 16 píxeles y 8 por 4 píxeles no están disponibles para un
15 macrobloque codificado en modo de campo debido al requisito de única paridad. Esto implica que el rendimiento de AFF basado en único macrobloque pueda no ser bueno para algunas secuencias o aplicaciones que favorecen fuertemente la codificación de modo de campo. Para garantizar el rendimiento de la codificación de macrobloques de modo de campo, es preferente en algunas aplicaciones para macrobloques que se codifiquen en modo de campo para tener los mismos tamaños de bloque como los macrobloques que se codifican en modo de cuadro. Esto puede conseguirse realizando codificación AFF en pares de macrobloques en lugar de macrobloques únicos.
La Figura 7 ilustra un par de macrobloques (700) ejemplar que puede usarse en codificación AFF en un par de macrobloques de acuerdo con una realización de la presente invención. Si el par de macrobloques (700) se ha de codificar en modo de cuadro, el par se codifica como dos macrobloques basados en cuadro. En cada macrobloque,
25 los dos campos en cada uno de los macrobloques se codifican conjuntamente. Una vez codificados como cuadros, los macrobloques pueden dividirse adicionalmente en los bloques más pequeños de las Figuras 3a-f para uso en la predicción temporal con algoritmo de compensación de movimiento.
Sin embargo, si el par de macrobloques (700) se ha de codificar en modo de campo, se parte en primer lugar en un bloque de campo superior de 16 por 16 píxeles (800) y un bloque de campo inferior de 16 por 16 píxeles (801), como se muestra en la Figura 8. Los dos campos se codifican a continuación por separado. En la Figura 8, cada macrobloque en el par de macrobloques (700) tiene N=16 columnas de píxeles y M=16 filas de píxeles. Por lo tanto, las dimensiones del par de macrobloques (700) son 16 por 32 píxeles. Como se muestra en la Figura 8, cada otra fila de píxeles está sombreada. Las áreas sombreadas representan las filas de píxeles en el campo superior de los
35 macrobloques y las áreas no sombreadas representan las filas de píxeles en el campo inferior de los macrobloques. El bloque de campo superior (800) y el bloque de campo inferior (801) pueden dividirse ahora en uno de los posibles tamaños de bloque de las Figuras 3a-f.
De acuerdo con una realización de la presente invención, en la codificación AFF de pares de macrobloques (700), existen dos posibles trayectorias de exploración. Una trayectoria de exploración determina el orden en el que se codifican los pares de macrobloques de una instantánea. La Figura 9 muestra las dos posibles trayectorias de exploración en codificación AFF de pares de macrobloques (700). Una de las trayectorias de exploración es una trayectoria de exploración horizontal (900). En la trayectoria de exploración horizontal (900), los pares de macrobloques (700) de una instantánea (200) se codifican de izquierda a derecha y de arriba a abajo, como se
45 muestra en la Figura 9. La otra trayectoria de exploración es una trayectoria de exploración vertical (901). En la trayectoria de exploración vertical (901), los pares de macrobloques (700) de una instantánea (200) se codifican de arriba abajo y de izquierda a derecha, como se muestra en la Figura 9. Para la codificación de modo de cuadro, la parte superior del macrobloque de un par de macrobloques (700) se codifica en primer lugar, seguido por el macrobloque inferior. Para la codificación de modo de campo, el macrobloque del campo superior de un par de macrobloques se codifica en primer lugar seguido por el macrobloque de campo inferior.
Otra realización de la presente invención amplía el concepto de codificación AFF en un par de macrobloques a codificación AFF en un grupo de cuatro o más macrobloques vecinos (902), como se muestra en la Figura 10. La codificación AFF en un grupo de macrobloques se denominará ocasionalmente como codificación AFF basada en
55 grupos. Las mismas trayectorias de exploración, horizontal (900) y vertical (901), como se usan en la exploración de pares de macrobloques se usan en la exploración de grupos de macrobloques vecinos (902). Aunque el ejemplo mostrado en la Figura 10 muestra un grupo de cuatro macrobloques, el grupo puede ser más de cuatro macrobloques.
Si el grupo de macrobloques (902) se ha de codificar en modo de cuadro, el grupo se codifica como cuatro macrobloques basado en cuadro. En cada macrobloque, los dos campos en cada uno de los macrobloques se codifican conjuntamente. Una vez codificados como cuadros, los macrobloques pueden dividirse adicionalmente en los bloques más pequeños de las Figuras 3a-f para uso en la predicción temporal con algoritmo de compensación de movimiento.
65 Sin embargo, si un grupo de cuatro macrobloques (902), por ejemplo, se ha de codificar en modo de campo, se
E10182654
14-08-2015
parte en primer lugar en un bloque de campo superior 32 por 16 píxeles y un bloque de campo inferior 32 por 16 píxeles. Los dos campos se codifican a continuación por separado. El bloque de campo superior y el bloque de campo inferior pueden ahora dividirse en macrobloques. Cada macrobloque se divide adicionalmente en uno de los posibles tamaños de bloque de las Figuras 3a-f. Debido a que este proceso es similar al de la Figura 8, no se
5 proporciona una figura separada para ilustrar esta realización.
En codificación AFF en el nivel de macrobloque, se incluye preferentemente un bit de bandera de cuadro/campo en un flujo de bits de la instantánea para indicar qué modo, modo de cuadro o modo de campo, se usa en la codificación de cada macrobloque. El flujo de bits incluye información pertinente a cada macrobloque en un flujo, como se muestra en la Figura 11. Por ejemplo, el flujo de bits puede incluir un encabezamiento de instantánea (110), información de ejecución (111) e información de tipo de macrobloque (113). La bandera de cuadro/campo (112) se incluye preferentemente antes de cada macrobloque en el flujo de bits si se realiza AFF en cada macrobloque individual. Si se realiza AFF en pares de macrobloques, la bandera de cuadro/campo (112) se incluye preferentemente antes de cada par de macrobloques en el flujo de bits. Finalmente, si se realiza AFF en un grupo de
15 macrobloques, la bandera de cuadro/campo (112) se incluye preferentemente antes de cada grupo de macrobloques en el flujo de bits. Una realización es que el bit de bandera de cuadro/campo (112) es un 0 si se ha de usar el modo de cuadro y un 1 si se ha de usar la codificación de campo. Otra realización es que el bit de la bandera de cuadro/campo (112) es un 1 si se ha de usar el modo de cuadro y un 0 si se ha de usar la codificación de campo.
Otra realización de la presente invención implica un método para determinar el tamaño de bloques en el que el decodificador divide un macrobloque en AFF de nivel de macrobloque. Un método preferente, pero no exclusivo, para determinar el tamaño de bloque ideal es la suma de diferencias absolutas (SAD) con o sin desviación o base de tasa de distorsión (RD). Por ejemplo, SAD comprueba el rendimiento de los posibles tamaños de bloque y elige el tamaño de bloque ideal basándose en sus resultados. El método exacto para usar SAD con o sin desviación o base
25 RD puede realizarse fácilmente por algún experto en la materia.
De acuerdo con una realización de la presente invención, cada macrobloque basado en cuadro y campo en AFF de nivel de macrobloque puede intra codificarse o inter codificarse. En intra codificación, el macrobloque se codifica sin hacer referencia temporalmente a otros macrobloques. Por otra parte, en inter codificación, se usa predicción temporal con compensación de movimiento para codificar los macrobloques.
Si se usa inter codificación, un bloque con un tamaño de 16 por 16 píxeles, 16 por 8 píxeles, 8 por 16 píxeles o 8 por 8 píxeles puede tener sus propias instantáneas de referencia. El bloque puede ser un macrobloque basado en cuadro o campo. La norma MPEG-4 Parte 10 AVC/H.264 permite múltiples instantáneas de referencia en lugar de 35 solamente dos instantáneas de referencia. El uso de múltiples instantáneas de referencia mejora el rendimiento de la predicción temporal con algoritmo de compensación de movimiento permitiendo al codificador encontrar un bloque en la instantánea de referencia que coincida más estrechamente con el bloque que se ha de codificar. Usando el bloque en la instantánea de referencia en el proceso de codificación que coincide más estrechamente con el bloque que se ha de codificar, es posible la mayor cantidad de compresión en la codificación de la instantánea. Las instantáneas de referencia se almacenan en memorias intermedias de cuadro y campo y se asignan números de cuadro de referencia y números de campo de referencia basándose en la distancia temporal que están lejos de la instantánea actual que se está codificado. Cuanto más cerca está la instantánea de referencia a la instantánea actual que se está almacenando, con mayor probabilidad se seleccionará la instantánea de referencia. Para codificación de modo de campo, las instantáneas de referencia para un bloque pueden ser cualquier campo superior
45 o inferior de cualquiera de las instantáneas de referencia en las memorias intermedias de cuadro o de campo de referencia.
Cada bloque en un macrobloque basado en cuadro o campo puede tener sus propios vectores de movimiento. Los vectores de movimiento están codificados con predicción de manera espacial. De acuerdo con una realización de la presente invención, en inter codificación, se calculan también vectores de predicción de movimiento (PMV) para cada bloque. La diferencia algebraica entre unos PMV de los bloques y sus vectores de movimiento asociados se calcula a continuación y se codifica. Esto genera los bits comprimidos para los vectores de movimiento.
La Figura 12 se usará para explicar diversos métodos preferentes para calcular el PMV de un bloque en un
55 macrobloque. Un bloque actual, E, en la Figura 12 se ha de inter codificar así como sus bloques vecinos A, B, C y D. E se denominará en lo sucesivo a un bloque actual y A, B, C y D se denominarán en lo sucesivo a bloques vecinos de E, a menos que se indique de otra manera. El PMV del bloque E se obtiene a partir de los vectores de movimiento de sus bloques vecinos. Estos bloques vecinos en el ejemplo de la Figura 12 son A, B, C y D. Un método preferente para calcular el PMV para el bloque E es calcular la mediana de los vectores de movimiento de los bloques A, B, C y D, la media de estos vectores de movimiento, o la media ponderada de estos vectores de movimiento. Cada uno de los bloques A a E puede estar en un modo de campo o de cuadro.
Otro método preferente para calcular el PMV para el bloque E es usar un método de sí/no. Bajo los principios del método sí/no, un bloque tiene que estar en el mismo modo de codificación de cuadro o de campo que el bloque E 65 para tener su vector de movimiento incluido en el cálculo del PMV para E. Por ejemplo, si el bloque E en la Figura 12 está en modo de cuadro, el bloque A debe estar también en modo de cuadro para tener su vector de movimiento
E10182654
14-08-2015
incluido en el cálculo del PMV para el bloque E. Si uno de los bloques vecinos de E no tiene el mismo modo de codificación que el que tiene el bloque E, sus vectores de movimiento no se usan en el cálculo del PMV del bloque
E.
5 El “método de siempre” puede usarse también para calcular el PMV para el bloque E. En el método de siempre, los bloques A, B, C y D se usan siempre al calcular el PMV para el bloque E, independientemente de su modo de codificación de cuadro o de campo. Si E está en modo de cuadro y un bloque vecino está en modo de campo, el componente vertical del bloque vecino se multiplica por 2 antes de incluirse en el cálculo del PMV para el bloque E. Si E está en modo de campo y un bloque vecino está en modo de cuadro, el componente vertical del bloque vecino se divide por 2 antes de incluirse en el cálculo del PMV para el bloque E.
El “método selectivo” puede usarse también para calcular el PMV para el bloque E si el macrobloque se ha codificado usando codificación AFF basada en pares o codificación AFF basada en grupos. En el método selectivo, un bloque basado en cuadro tiene un vector de movimiento basado en cuadro que apunta a un cuadro de referencia.
15 Al bloque se asigna también un vector de movimiento basado en campo que apunta a un campo de referencia. El vector de movimiento basado en campo es el vector de movimiento basado en cuadro del bloque con el componente de vector de movimiento vertical dividido por dos. El número de campo de referencia es el número de cuadro de referencia multiplicado por dos. Un bloque basado en campo tiene un vector de movimiento basado en campo que apunta a un campo de referencia. Al bloque se asigna también un vector de movimiento basado en cuadro que apunta a un cuadro de referencia. El vector de movimiento basado en cuadro es el vector de movimiento basado en campo del bloque con el componente de vector de movimiento vertical multiplicado por dos. El número de cuadro de referencia es el número de campo de referencia dividido por dos.
La derivación de un PMV del bloque usando el método selectivo se explicará ahora usando la Figura 12 como una
25 referencia. En AFF basada en pares de macrobloques, cada bloque en un macrobloque se asocia con un bloque compañero que reside en la misma localización geométrica en el segundo macrobloque del par de macrobloques. En la Figura 12, cada uno de los bloques vecinos del bloque E (A, B, C y D) pueden o pueden no estar en el mismo modo de codificación de cuadro o de campo que el bloque E. Por lo tanto, se aplican las siguientes reglas:
Si E está en modo de cuadro y un bloque vecino está en modo de cuadro, se usa el vector de movimiento basado en cuadro verdadero del bloque vecino para el PMV de E.
Si B está en modo de cuadro y un bloque vecino está en modo de campo, se aplican las siguientes reglas al calcular el PMV de E. Si el bloque vecino (por ejemplo; el bloque A) y su bloque basado en campo compañero tienen el
35 mismo campo de referencia, se usa la media de los vectores de movimiento basados en campo asignados de los dos bloques para el cálculo del PMV de E. El número de cuadro de referencia usado para el cálculo de PMV es el número de campo de referencia del bloque vecino dividido por dos. Sin embargo, si el bloque vecino y su bloque de campo compañero tienen campos de referencia diferentes, entonces el bloque vecino no puede usarse en el cálculo del PMV de E.
Si E está en modo de campo y un bloque vecino está en modo de cuadro, se aplican las siguientes reglas al calcular el PMV de E. Si el bloque vecino (por ejemplo; el bloque A) y su bloque basado en cuadro compañero tienen el mismo cuadro de referencia, se usa la media de los vectores de movimiento basados en campo asignados de los dos bloques para el cálculo del PMV de E. El número de campo de referencia usado para el cálculo de PMV es el
45 número de cuadro de referencia del bloque vecino multiplicado por dos. Sin embargo, si el bloque vecino y su bloque de campo compañero tienen diferentes cuadros de referencia, entonces el bloque vecino no puede usarse en el cálculo del PMV de E.
Si E está en modo de campo y un bloque vecino está en modo de campo, se usa el vector de movimiento basado en campo verdadero del bloque vecino en el cálculo del PMV de E.
Una opción preferente alternativa puede usarse en el método selectivo para calcular un PMV del bloque. En la Figura 12, cada uno de los bloques vecinos del bloque E (A, B, C y D) pueden o pueden no estar en el mismo modo de codificación de cuadro o de campo que el bloque E. Por lo tanto, se aplican las siguientes reglas para esta opción
55 preferente alternativa del método selectivo:
Si E está en modo de cuadro y un bloque vecino está en modo de cuadro, se usa el vector de movimiento basado en cuadro verdadero del bloque vecino para el PMV de E.
Si E está en modo de cuadro y un bloque vecino está en modo de campo, se usa la media ponderada de los vectores de movimiento basados en campo asignados del bloque vecino y su bloque basado en campo compañero para el cálculo del PMV de E. Los factores de ponderación están basados en los números de campo de referencia del bloque vecino y su bloque compañero.
65 Si E está en modo de campo, y un bloque vecino está en modo de cuadro, se usa la media ponderada de los vectores de movimiento basados en campo asignados del bloque vecino y su bloque basado en cuadro compañero
E10182654
14-08-2015
para el cálculo del PMV de E. Los factores de ponderación están basados en los números de cuadro de referencia del bloque vecino y su bloque compañero.
Si E está en modo de campo y un bloque vecino está en modo de campo, se usa el vector de movimiento basado en 5 campo verdadero del bloque vecino en el cálculo del PMV de E.
Otro método preferente para calcular un PMV del bloque es el “método selectivo alternativo”. Este método puede usarse en codificación AFF de macrobloques únicos, codificación AFF de macrobloques basada en pares o codificación AFF basada en grupos. En este método, a cada bloque se asigna un número de índice horizontal y uno vertical, que representan las coordenadas horizontales y verticales del bloque. A cada bloque se asigna también una coordenada de campo horizontal y vertical. Una coordenada de campo horizontal del bloque es la misma que su coordenada horizontal. Para un bloque en un macrobloque de campo superior, la coordenada de campo vertical es la mitad de la coordenada vertical del bloque y se asigna una polaridad de campo superior. Para un bloque en el macrobloque de campo inferior, la coordenada de campo vertical del bloque se obtiene restando 4 de la coordenada
15 vertical del bloque y dividiendo el resultado por 2. Al bloque se asigna también una polaridad de campo inferior. El resultado de asignar diferentes polaridades de campo a dos bloques es que existen ahora dos bloques con las mismas coordenadas de campo horizontal y vertical pero con diferentes polaridades de campo. Por lo tanto, dadas las coordenadas de un bloque, pueden calcularse las coordenadas de campo y su polaridad de campo y viceversa.
El método selectivo alternativo se explicará ahora en detalle usando la Figura 12 como una referencia. El PMV del bloque E se ha de calcular. Representando bx el tamaño horizontal del bloque E dividido por 4, que es el tamaño de un bloque en este ejemplo. Los PMV para E se obtienen como sigue dependiendo de si E está en modo de cuadro/campo.
25 Estando el bloque E en modo de cuadro y representando (x,y) las coordenadas horizontal y vertical respectivamente de E. Los bloques vecinos de E se definen de la siguiente manera. A es el bloque cuyas coordenadas son (x-1,y). B es el bloque cuyas coordenadas son (x,y-1). D es el bloque cuyas coordenadas son (x-1,y-1). C es el bloque cuyas coordenadas son (x+bx+1,y-1). Si cualquiera de A, B, C o D están en modo de campo entonces su vector de movimiento vertical se divide por 2 antes de usarse para la predicción y su número de cuadro de referencia se calcula dividiendo su campo de referencia por 2.
Ahora, estando el bloque E en modo de campo superior o inferior y representando (xf,yf) las coordenadas de campo horizontal y vertical respectivamente de E. En este caso, los vecinos de E se definen como sigue. A es el bloque cuyas coordenadas de campo son (xf-1,yf) y tiene la misma polaridad que E. B es el bloque cuyas coordenadas de
35 campo son (xf,yf-1) y tiene la misma polaridad que E. D es el bloque cuyas coordenadas de campo son (xf-1,yf-1) y tiene la misma polaridad que E. C es el bloque cuyas coordenadas de campo son (xf+bx+1,yf) y tiene la misma polaridad que E. Si cualquiera de A, B, C o D están en modo de cuadro entonces su vector de movimiento vertical se multiplica por 2 antes de usarse para la predicción y su campo de referencia se calcula multiplicando su cuadro de referencia por 2.
En todos los métodos anteriores para determinar el PMV de un bloque, se supone una trayectoria de exploración horizontal. Sin embargo, la trayectoria de exploración puede ser también una trayectoria de exploración vertical. En este caso, los bloques vecinos del bloque actual, E, se definen como se muestra en la Figura 13. Una trayectoria de exploración vertical es preferente en algunas aplicaciones puesto que la información en todos los bloques vecinos
45 está disponible para el cálculo del PMV para el bloque actual E.
Otra realización de la presente invención es la predicción de segmentación direccional. En predicción de segmentación direccional, los bloques de 16 por 8 píxeles y los bloques de 8 por 16 píxeles tienen reglas que se aplican a sus cálculos de PMV únicamente. Estas reglas se aplican en todos los métodos de cálculo de PMV para estos tamaños de bloque. Las reglas se explicarán ahora en detalle en relación con la Figura 12. En cada una de estas reglas, un bloque actual E ha de tener su PMV calculado.
En primer lugar, un bloque de 16 por 8 píxeles consiste en un bloque superior y un bloque inferior. El bloque superior contiene las 8 filas de píxeles superiores. El bloque inferior contiene las 8 filas de píxeles inferiores. En la siguiente
55 descripción, los bloques A-E de la Figura 12 son bloques de 16 por 8 píxeles. Para el bloque superior en un bloque de 16 por 8 píxeles, se usa el bloque B para predecir el PMV del bloque E si tiene la misma instantánea de referencia que el bloque E. De otra manera, se usa la predicción de la mediana para predecir el PMV del bloque E. Para el bloque inferior en un bloque de 16 por 8 píxeles, se usa el bloque A para predecir el PMV del bloque E si tiene la misma instantánea de referencia que el bloque E. De otra manera, se usa la predicción de la mediana para predecir el PMV del bloque E.
Un bloque de 8 por 16 píxeles se divide en un bloque izquierdo y derecho. Ambos bloques izquierdo y derecho son de 8 por 16 píxeles. En la siguiente descripción, los bloques A-E de la Figura 12 son bloques de 8 por 16 píxeles. Para el bloque izquierdo, se usa el bloque A para predecir el PMV del bloque E si tiene la misma instantánea de 65 referencia que el bloque E. De otra manera, se usa la predicción de la mediana para predecir el PMV del bloque E. Para el bloque derecho, se usa el bloque C para predecir el PMV del bloque E si tiene la misma instantánea
E10182654
14-08-2015
referenciada que el bloque E. De otra manera se usa la predicción de la mediana para predecir el PMV del bloque E.
Para tanto los bloques de 16 por 8 píxeles como los bloques de 8 por 16, A, B o C pueden estar en diferentes modos de codificación (de cuadro o de campo) que el bloque actual E. Se aplican las siguientes reglas para ambos tamaños
5 de bloque. Si E está en modo de cuadro, y A, B o C están en modo de campo, el número de cuadro de referencia de A, B o C se calcula dividiendo su campo de referencia por 2. Si E está en modo de campo, y A, B o C están en modo de cuadro, el número de campo de referencia de A, B o C se calcula multiplicando su cuadro de referencia por 2.
De acuerdo con otra realización de la presente invención, un macrobloque en una instantánea P puede saltarse en codificación AFF. Si se salta un macrobloque, sus datos no se transmiten en la codificación de la instantánea. Un macrobloque saltado en una instantánea P se reconstruye copiando el macrobloque co-localizado en la instantánea de referencia codificada más recientemente. El macrobloque co-localizado se define como el de con compensación de movimiento que usa PMV como se ha definido anteriormente o sin vectores de movimiento. Se aplican las siguientes reglas para macrobloques saltados en una instantánea P. Si se realiza codificación AFF por macrobloque,
15 un macrobloque saltado está en modo de cuadro. Si se realiza codificación AFF en pares de macrobloques y si se saltan ambos macrobloques, entonces están en modo de cuadro. Sin embargo, si únicamente se salta uno de los macrobloques en un par de macrobloques, su modo de codificación de cuadro o de campo es el mismo que el del macrobloque no saltado en el mismo par de macrobloques. Si se realiza AFF en un grupo de macrobloques y si se salta todo el grupo de macrobloques, entonces todos los macrobloques están en modo de cuadro. Si existe al menos un macrobloque que no se salta, entonces los macrobloques saltados en el mismo grupo están en el mismo modo de codificación de cuadro o de campo que el del macrobloque no saltado.
Un método alternativo para macrobloques saltados es como sigue. Si se salta un par de macrobloques, su modo de codificación de cuadro y de campo sigue su par de macrobloques vecinos a la izquierda. Si el par de macrobloques
25 vecino izquierdo no está disponible, su modo de codificación sigue su par de macrobloques vecinos de la parte superior. Si ni el par de macrobloques vecino izquierdo ni superior están disponibles, el macrobloque saltado se establece a modo de cuadro.
Otra realización de la presente invención es codificación de macrobloque de modo directo para instantáneas B. En codificación de modo directo, una instantánea B tiene dos vectores de movimiento, vectores de movimiento hacia delante y hacia atrás. Cada vector de movimiento apunta a una instantánea de referencia. Ambos vectores de movimiento hacia delante y hacia atrás pueden apuntar en la misma dirección temporal. Para codificación de macrobloque de modo directo en instantáneas B, los vectores de movimiento hacia delante y hacia atrás de un bloque se calculan a partir del bloque co-localizado en la instantánea de referencia hacia atrás. El bloque co
35 localizado en la instantánea de referencia hacia atrás puede codificarse en modo de cuadro o en modo de campo. Se aplican las siguientes reglas en codificación de macrobloques de modo directo para la instantánea B.
Si el bloque co-localizado está en modo de cuadro y si el macrobloque de modo directo actual está también en modo de cuadro, los dos vectores de movimiento asociados de un bloque en el macrobloque de modo directo se calculan a partir del bloque co-localizado. El cuadro de referencia hacia delante es el usado mediante el bloque co-localizado. El cuadro de referencia hacia atrás es el mismo cuadro donde reside el bloque co-localizado.
Si el bloque co-localizado está en modo de cuadro y si el macrobloque de modo directo actual está en modo de campo, los dos vectores de movimiento asociados de un bloque en el macrobloque de modo directo se calculan a
45 partir del vector de movimiento del bloque co-localizado con el componente vertical divido por dos. El campo de referencia hacia delante es el mismo campo de paridad del cuadro de referencia usado mediante el bloque colocalizado. El campo de referencia hacia atrás es el mismo campo de paridad del cuadro de referencia hacia atrás donde reside el bloque co-localizado.
Si el bloque co-localizado está en modo de campo y si el macrobloque de modo directo actual está también en modo de campo, los dos vectores de movimiento asociados de un bloque en el macrobloque de modo directo se calculan a partir del bloque co-localizado de la misma paridad de campo. El campo de referencia hacia delante es el campo usado mediante el bloque co-localizado. El campo de referencia hacia atrás es el mismo campo donde reside el bloque co-localizado.
55 Si el bloque co-localizado está en modo de campo y si el macrobloque de modo directo actual está en modo de cuadro, los dos vectores de movimiento asociados del bloque en el macrobloque de modo directo se calculan a partir del vector de movimiento del bloque co-localizado con el componente vertical multiplicado por dos. El cuadro de referencia hacia delante es el cuadro de uno de cuyos campos se usa mediante el bloque co-localizado. El campo de referencia hacia atrás es el cuadro en uno de cuyos campos reside el bloque co-localizado.
Una opción alternativa es forzar el bloque de modo directo para que esté en el mismo modo de codificación de cuadro o de campo que el bloque co-localizado. En este caso, si el bloque co-localizado para un bloque de modo directo está en modo de cuadro, el bloque de modo directo está en modo de cuadro también. Los dos vectores de 65 movimiento basados en cuadro del bloque de modo directo se obtienen a partir del vector de movimiento hacia delante basado en cuadro del bloque co-localizado. El cuadro de referencia hacia delante se usa mediante el bloque
E10182654
14-08-2015
co-localizado. El cuadro de referencia hacia atrás es donde reside el bloque co-localizado.
Sin embargo, si el bloque co-localizado para un bloque en modo directo está en modo de campo, el bloque de modo directo también está en modo de campo. Los dos vectores de movimiento basados en campo del bloque de modo
5 directo se obtienen a partir del vector de movimiento hacia delante basado en campo del bloque co-localizado. El campo de referencia hacia delante se usa mediante el bloque co-localizado. El campo de referencia hacia atrás es donde reside el bloque co-localizado.
Un macrobloque en una instantánea B puede saltarse también en codificación AFF de acuerdo con otra realización de la presente invención. Un macrobloque saltado en una instantánea B se reconstruye como un macrobloque de modo directo normal sin ninguna información de coeficiente de transformación codificada. Para los macrobloques saltados en una instantánea B, se aplican las siguientes reglas. Si se realiza codificación AFF por macrobloque, un macrobloque saltado está en modo de cuadro o en el modo de codificación de cuadro o de campo del bloque colocalizado en su instantánea de referencia hacia atrás. Si se realiza codificación AFF en pares de macrobloques y si
15 se saltan ambos macrobloques, entonces están en modo de cuadro o en el modo de codificación de cuadro o de campo del par de macrobloques co-localizados en su instantánea de referencia hacia atrás. Sin embargo, si únicamente se salta uno de los macrobloques en un par de macrobloques, su modo de codificación de cuadro o de campo es el mismo que el macrobloque no saltado del mismo par de macrobloques. Si se realiza codificación AFF en un grupo de macrobloques y si se salta todo el grupo de macrobloques, entonces todos los macrobloques están en modo de cuadro o en el modo de codificación de cuadro o de campo del grupo co-localizado de macrobloques en la instantánea de referencia hacia atrás. Si existe al menos un macrobloque que no se salta, entonces el macrobloque saltado en el mismo grupo está en el mismo modo de codificación de cuadro o de campo que el macrobloque no saltado.
25 Como se ha mencionado anteriormente, un bloque puede intra codificarse. Los intra bloques están codificados con predicción de manera espacial. Existen dos posibles modos de intra codificación para un macrobloque en codificación AFF de nivel de macrobloque. El primero es modo intra_4x4 y el segundo es modo intra_16x16. En ambos, cada valor de píxel se predice usando los valores de píxeles reconstruidos reales a partir de bloques vecinos. Prediciendo valores de píxeles, puede conseguirse más compresión. El modo intra_4x4 y los modos intra_16x16 se explicarán cada uno en más detalle a continuación.
Para el modo intra_4x4, las predicciones de los píxeles en un bloque de 4 por 4 píxeles, como se muestra en la Figura 14, se obtienen desde sus píxeles izquierdos y superiores. En la Figura 14, los 16 píxeles en el bloque de 4 por 4 píxeles se etiquetan a a p. Se muestra también en la Figura 14 los píxeles vecinos A a P. Los píxeles vecinos
35 están en letras mayúsculas. Como se muestra en la Figura 15, hay nueve direcciones de predicción diferentes para codificación intra_4x4. Son vertical (0), horizontal (I), predicción DC (modo 2), diagonal abajo/izquierda (3), diagonal abajo/derecha (4), vertical-izquierda (5), horizontal-abajo (6), vertical-derecha (7) y horizontal-arriba (8). Las medias de predicción DC de todos los píxeles vecinos juntos para predecir un valor de píxel particular.
Sin embargo, para modo intra_16x16, hay cuatro direcciones de predicción diferentes. Las direcciones de predicción se denominan también como modos de predicción. Estas direcciones de predicción son predicción vertical (0), predicción horizontal (1), predicción DC y predicción plana. La predicción plana no se explicará.
Un intra bloque y sus bloques vecinos pueden codificarse en modo de cuadro o de campo. La intra predicción se
45 realiza en los bloques reconstruidos. Un bloque reconstruido puede representarse en tanto modo de cuadro como de campo, independientemente del modo de codificación de cuadro o de campo real del bloque. Puesto que únicamente se usan los píxeles de los bloques reconstruidos para intra predicción, se aplican las siguientes reglas.
Si un bloque de 4 por 4 píxeles o de 16 por 16 píxeles está en modo de cuadro, los píxeles vecinos usados al calcular las predicciones de valor de píxeles del bloque están en la estructura del cuadro. Si un bloque de 4 por 4 píxeles o de 16 por 16 píxeles está en modo de campo, los píxeles vecinos usados al calcular la predicción de valor de píxeles del bloque están en modo de campo de la misma paridad de campo.
El modo de intra-predicción elegido (intra_pred_mode) de un bloque de 4 por 4 píxeles está altamente
55 correlacionado con los modos de predicción de bloques adyacentes. Esto se ilustra en la Figura 16a. La Figura 16a muestra que A y B son bloques adyacentes a C. El modo de predicción del bloque C se ha de establecer. La Figura 16b muestra el orden de la información de intra predicción en el flujo de bits. Cuando los modos de predicción de A y B se conocen (incluyendo el caso que A o B o ambos estén fuera del corte) se proporciona el modo de predicción más probable (most_probable_mode) de C. Si uno de los bloques A o B está “fuera” el modo de predicción más probable es igual a predicción DC (modo 2). De otra manera es igual al mínimo de los modos de predicción usados para los bloques A y B. Cuando un bloque adyacente se codifica para modo intra 16x16, el modo de predicción es el modo de predicción DC. Cuando un bloque adyacente se codifica a un macrobloque no intra, el modo de predicción es “modo 2: predicción DC” en el caso normal y “fuera” en el caso de actualización intra restringida.
65 Para señalizar un número de modo de predicción para un bloque de 4 por 4 se transmite el primer parámetro use_most_probable_mode. Este parámetro se representa mediante la palabra de código de 1 bit y puede tomar los
E10182654
14-08-2015
valores de 0 o 1. Si use_most_probable_mode es igual a 1 se usa el modo más probable. De otra manera se envía un parámetro adicional remaining_mode_selector, que puede tomar el valor de 0 a 7 como palabra de código de 3 bits. La palabra de código es una representación binaria del valor de remaining_mode_selector. El número de modo de predicción se calcula como:
5 si (remaining_mode_selector < most_probable_mode)
intra_pred-mode = remaining_mode_selector;
si no
intra_pred_mode = remaining_mode_selector+1;
La ordenación de los modos de predicción asignados a los bloques C es por lo tanto el modo más probable seguido 15 por los modos restantes en orden ascendente.
Una realización de la presente invención incluye las siguientes reglas que se aplican a predicción de modo intra para un modo de intra-predicción de un bloque de 4 por 4 píxeles o un modo de intra-predicción de un bloque de 16 por 16 píxeles. El bloque C y sus bloques vecinos A y B pueden estar en modo de cuadro o de campo. Una de las siguientes reglas debe aplicarse. Las Figuras 16a-b se usarán en las siguientes explicaciones de las reglas.
Regla 1: A o B se usa como el bloque vecino de C únicamente si A o B están en el mismo modo de cuadro/campo que C. De otra manera, A o B se consideran como fuera.
25 Regla 2: A y B se usan como los bloques vecinos de C, independientemente de su modo de codificación de cuadro/campo.
Regla 3: si C se codifica en modo de cuadro y tiene coordenadas (x,y), entonces A es el bloque con coordenadas (x,y-1) y B es el bloque con coordenadas (x-1,y). De otra manera, si C se codifica como campo y tiene coordenadas de campo (xf,yf) entonces A es el bloque cuyas coordenadas de campo son (xf,yf-1) y tiene la misma polaridad de campo que C y B es el bloque cuyas coordenadas de campo son (xf-1,yf) y tiene la misma polaridad de campo que
C.
Regla 4: esta regla se aplica a pares de macrobloques únicamente. En el caso de decodificar los modos de
35 predicción los bloques con número 3, 6, 7, 9, 12, 13, 11, 14 y 15 de la Figura 16b, los bloques vecinos superiores y los izquierdos están en el mismo macrobloque que el bloque actual. Sin embargo, en el caso de decodificar los modos de predicción de los bloques con número 1, 4 y 5, el bloque superior (bloque A) está en un par de macrobloques diferente que el par de macrobloques actual. En el caso de decodificar el modo de predicción de los bloques con número 2, 8 y 10, el bloque izquierdo (bloque B) está en un par de macrobloques diferente. En el caso de decodificar el modo de predicción del bloque con número 0, tanto los bloques izquierdo como superior están en pares de macrobloques diferentes. Para un macrobloque en modo de decodificación de campo los bloques vecinos de los bloques con número 0, 1, 4, 5, 2, 8 y 10 deben definirse como sigue:
Si el par de macrobloques superior (170) se decodifica en modo de campo, entonces para los números de bloque 0,
45 1, 4 y 5 en el macrobloque de campo superior (173), los bloques con número 10, 11, 14 y 15 respectivamente en el macrobloque de campo superior (173) del par de macrobloques superior (170) deberán considerarse como los bloques vecinos superiores al par de macrobloques actual (171) como se muestra en la Figura 17a. Para los números de bloque 0, 1, 4 y 5 en el macrobloque de campo inferior (174), los bloques con número 10, 11, 14 y 15 respectivamente en el campo inferior MB del par de macrobloques superior (170) deberán considerarse como los bloques vecinos superiores al par de macrobloques actual (171), como se muestra en la Figura 17a.
Sin embargo, si el par de macrobloques superior (170) se decodifica en modo de cuadro entonces para los números de bloque 0, 1, 4 y 5 en el macrobloque de campo superior (173), los bloques con número 10, 11, 14 y 15 respectivamente en el macrobloque de cuadro inferior (176) del par de macrobloques superior (170) deberán
55 considerarse como los bloques vecinos superiores al par de macrobloques actual (171), como se muestra en la Figura 17b. Para los números de bloque 0, 1, 4 y 5 en el macrobloque de campo inferior (174), los bloques con número 10, 11, 14 y 15 respectivamente en el macrobloque de cuadro inferior (176) del par de macrobloques superior (170) deberán considerarse como los bloques vecinos superiores al par de macrobloques actual (171), como se muestra en la Figura 17b.
Si el par de macrobloques izquierdo (172) se decodifica en modo de campo, entonces para los números de bloque 0, 2, 8 y 10 en el macrobloque de campo superior (173), los bloques con número 5, 7, 13 y 15 respectivamente en el macrobloque de campo superior (173) del par de macrobloques izquierdo (172) deberán considerarse como los bloques vecinos izquierdos al par de macrobloques actual (171) como se muestra en la Figura 17c. Para los 65 números de bloque 0, 2, 8 y 10 en el macrobloque de campo inferior (174), los bloques con número 5, 7, 13 y 15 respectivamente en el macrobloque de campo inferior (174) del par de macrobloques izquierdo (172) deberán
E10182654
14-08-2015
considerarse como los bloques vecinos izquierdos al par de macrobloques actual (171), como se muestra en la Figura 17c.
Si el par de macrobloques izquierdo (172) se decodifica en modo de cuadro, entonces para los números de bloque
5 0, 2, 8 y 10 en el macrobloque de campo superior (173), los bloques con número 5, 7, 13 y 15 respectivamente en el macrobloque de cuadro superior (175) del par de macrobloques izquierdo (172) deberán considerarse como los bloques vecinos izquierdos al par de macrobloques actual (171), como se muestra en la Figura 17d. Para los números de bloque 0, 2, 8 y 10 en el macrobloque de campo inferior (174), los bloques con número 5, 7, 13 y 15 respectivamente en el macrobloque de cuadro inferior (176) del par de macrobloques izquierdo (172) deberán considerarse como los bloques vecinos izquierdos al par de macrobloques actual (171), como se muestra en la Figura 17d.
Para pares de macrobloques en el límite superior de un corte, si el par de macrobloques izquierdo (172) está en modo de decodificación de cuadro, entonces el valor de predicción de modo intra usado para predecir un
15 macrobloque de campo deberá establecerse a predicción de DC.
Las descripciones anteriores de predicción de intra codificación y predicción de modo intra pueden ampliarse a transformaciones de bloque adaptativas.
Otra realización de la presente invención es que se realiza filtrado en bucle en los bloques reconstruidos. Un bloque reconstruido puede representarse en estructura de cuadro o de campo, independientemente del modo de codificación de cuadro/campo del bloque. El filtrado de bucle (deshacer los bloques) es un proceso de media ponderada de los píxeles de los bloques vecinos. La Figura 12 se usará para explicar el filtrado en bucle. Suponiendo que E de la Figura 12 es un bloque reconstruido, y A, B, C y D son sus bloques reconstruidos vecinos,
25 como se muestra en la Figura 12, y todos se representan en estructura de cuadro. Puesto que A, B, C, D y E pueden codificarse en cuadro o en campo, se aplican las siguientes reglas:
Regla 1: si E está codificado en cuadro, se realiza filtrado en bucle sobre los píxeles de E y sus bloques vecinos A B, C y D.
Regla 2: si E está codificado en campo, se realiza filtrado en bucle sobre los píxeles del campo superior y del campo inferior de E y sus bloques vecinos A B, C y D, por separado.
Otra realización de la presente invención es que se realiza relleno en el cuadro reconstruido repitiendo los píxeles de
35 límite. Puesto que los bloques de límite pueden codificarse en modo de cuadro o de campo, se aplican las siguientes reglas:
Regla 1: los píxeles en la línea vertical izquierda o derecha de un bloque de límite se repiten, si fuera necesario.
Regla 2: si un bloque de límite está en codificación de cuadro, los píxeles en la línea superior o inferior del bloque de límite se repiten.
Regla 3: si un bloque de límite está en codificación de campo, los píxeles en las dos líneas horizontales superiores o inferiores (dos campos) del bloque de límite se repiten alternativamente.
45 Otra realización de la presente invención es que dos coeficientes de transformación bidimensional se convierten en una serie unidimensional de coeficientes antes de codificación por entropía. La trayectoria de exploración puede ser en zigzag o no en zigzag. El explorador en zigzag es preferente para secuencias progresivas, pero puede usarse también para secuencias entrelazadas con movimientos lentos. Los exploradores no en zigzag son preferentes para secuencias entrelazadas. Para codificación AFF de macrobloques, pueden usarse las siguientes opciones:
Opción 1: se usa el explorador en zigzag para macrobloques en modo de cuadro mientras que se usan exploradores no en zigzag para macrobloques en codificación de campo.
55 Opción 2: el explorador en zigzag se usa para macrobloques en tanto modo de cuadro como de campo.
Opción 3: el explorador no en zigzag se usa para macrobloques en tanto modo de cuadro como de campo.
La descripción anterior se ha presentado únicamente para ilustrar y describir realizaciones de la invención. No pretende ser exhaustiva o limitar la invención a ninguna forma precisa desvelada. Son posibles muchas modificaciones y variaciones a la luz de las anteriores enseñanzas.
Un método para codificar o decodificar contenido de vídeo digital, comprendiendo dicho contenido de vídeo digital un flujo de instantáneas que puede ser cada una de intra instantáneas, instantáneas predichas o bi-predichas, 65 comprendiendo cada una de dichas instantáneas macrobloques que pueden dividirse en bloques más pequeños, comprendiendo dicho método codificar cada uno de dichos bloques en cada una de dichas instantáneas en dicho
E10182654
14-08-2015
flujo de instantáneas en modo de cuadro o en modo de campo.
Preferentemente cada uno de dicho bloque comprende 16 por 8 píxeles, 8 por 16 píxeles, 8 por 8 píxeles, 8 por 4 píxeles, 4 por 8 píxeles o 4 por 4 píxeles.
5 El método comprende adicionalmente calcular vectores de predicción de movimiento para cada uno de dichos bloques.
El método comprende adicionalmente saltar un macrobloque en una instantánea predicha y no transmitir datos para 10 dicho macrobloque que se ha saltado.
El método comprende adicionalmente saltar un macrobloque en una instantánea bipredicha y no transmitir datos para dicho macrobloque que se ha saltado.
15 El método comprende adicionalmente codificar dichas instantáneas bi-predichas en modo directo.
El método comprende adicionalmente predecir valores de píxeles en intra codificación.
Las realizaciones anteriores se eligieron y describieron para ilustrar principios de la invención y algunas aplicaciones
20 prácticas. La descripción anterior posibilita a otros expertos en la materia utilizar la invención en diversas realizaciones y con diversas modificaciones que son adecuadas al uso particular contemplado. Se pretende que el alcance de la invención se defina mediante las siguientes reivindicaciones.

Claims (11)

  1. REIVINDICACIONES
    1. Un método para codificar una instantánea en una secuencia de imágenes, que comprende:
    5 dividir dicha instantánea en una pluralidad de pares de macrobloques verticalmente adyacentes; codificar de manera selectiva al menos uno de dicha pluralidad de pares de macrobloques en un momento en modo de codificación de cuadro donde el al menos uno de dicha pluralidad de pares de macrobloques incluye macrobloques de cuadro incluyendo cada uno tanto píxeles de campo superior como inferior, y al menos uno de dicha pluralidad de pares de macrobloques en un momento en modo de codificación de campo donde el al menos uno de dicha pluralidad de pares de macrobloques se divide en macrobloques de campo incluyendo cada uno píxeles de campo superior o inferior; y obtener al menos dos vectores de movimiento y dos instantáneas de referencia asociadas para al menos un bloque de dicho al menos un par de macrobloques de dicha pluralidad de pares de macrobloques,
    15 donde dicho al menos un bloque tiene un tamaño más pequeño que dicho al menos uno de la pluralidad de pares de macrobloques.
  2. 2.
    El método de la reivindicación 1, donde dichos al menos dos vectores de movimiento se calculan a partir de un bloque co-localizado en una de dichas dos instantáneas de referencia asociadas.
  3. 3.
    Un aparato para codificar una instantánea en una secuencia de imágenes, que comprende:
    medios para dividir dicha instantánea en una pluralidad de pares de macrobloques verticalmente adyacentes; medios para codificar de manera selectiva al menos uno de dicha pluralidad de pares de macrobloques en un
    25 momento en modo de codificación de cuadro donde el al menos uno de dicha pluralidad de pares de macrobloques incluye macrobloques de cuadro incluyendo cada uno tanto píxeles de campo superior como inferior, y al menos uno de dicha pluralidad de pares de macrobloques en un momento en modo de codificación de campo donde el al menos uno de dicha pluralidad de pares de macrobloques se divide en macrobloques de campo incluyendo cada uno píxeles de campo superior o inferior; y medios para obtener al menos dos vectores de movimiento y dos instantáneas de referencia asociadas para al menos un bloque de dicho al menos un par de macrobloques de dicha pluralidad de pares de macrobloques, donde dicho al menos un bloque tiene un tamaño más pequeño que dicho al menos uno de la pluralidad de pares de macrobloques.
    35 4. El aparato de la reivindicación 3, donde dichos al menos dos vectores de movimiento se calculan a partir de un bloque co-localizado en una de dichas dos instantáneas de referencia asociadas.
  4. 5. Un método para decodificar una instantánea codificada que tiene una pluralidad de pares de macrobloques a partir de un flujo de bits, que comprende:
    decodificar al menos uno de una pluralidad de pares de macrobloques verticalmente adyacentes en un momento en modo de codificación de cuadro donde el al menos uno de dicha pluralidad de pares de macrobloques incluye macrobloques de cuadro incluyendo cada uno tanto píxeles de campo superior como inferior, y al menos uno de dicha pluralidad de pares de macrobloques en un momento en modo de codificación de campo donde el al
    45 menos uno de dicha pluralidad de pares de macrobloques se divide en macrobloques de campo incluyendo cada uno píxeles de campo superior o inferior; obtener al menos dos vectores de movimiento y dos instantáneas de referencia asociadas para al menos un bloque de un par de macrobloques de dicha pluralidad de pares de macrobloques; y usar dicha pluralidad de pares de macrobloques decodificados y dichos al menos dos vectores de movimiento para al menos un bloque de dicho par de macrobloques, de dicha pluralidad de pares de macrobloques para construir una instantánea decodificada, donde dicho al menos un bloque tiene un tamaño más pequeño que dicho al menos uno de la pluralidad de pares de macrobloques.
    55 6. El método de la reivindicación 5, donde dichos al menos dos vectores de movimiento se calculan a partir de un bloque co-localizado en una de dichas dos instantáneas o campos de referencia asociados.
  5. 7.
    El método de la reivindicación 5, donde dichas al menos dos instantáneas o campos de referencia se obtienen a partir de un bloque co-localizado.
  6. 8.
    El método de la reivindicación 6, donde dicho bloque co-localizado en una de dichas dos instantáneas de referencia asociadas se codifica en dicho modo de codificación de cuadro o dicho modo de codificación de campo.
  7. 9. Un aparato para decodificar una instantánea codificada que tiene una pluralidad de pares de macrobloques a 65 partir de un flujo de bits, que comprende:
    16
    medios para decodificar al menos uno de una pluralidad de pares de macrobloques verticalmente adyacentes en un momento en modo de codificación de cuadro donde el al menos uno de dicha pluralidad de pares de macrobloques incluye macrobloques de cuadro incluyendo cada uno tanto píxeles de campo superior como inferior, y al menos uno de dicha pluralidad de pares de macrobloques en un momento en modo de codificación
    5 de campo donde el al menos uno de dicha pluralidad de pares de macrobloques se divide en macrobloques de campo incluyendo cada uno píxeles de campo superior o inferior; medios para obtener al menos dos vectores de movimiento y dos instantáneas de referencia asociadas para al menos un bloque de un par de macrobloques de dicha pluralidad de pares de macrobloques; y medios para usar dicha pluralidad de pares de macrobloques decodificados y dichos al menos dos vectores de
    10 movimiento para al menos un bloque de dicho par de macrobloques de dicha pluralidad de pares de macrobloques para construir una instantánea decodificada, donde dicho al menos un bloque tiene un tamaño más pequeño que dicho al menos uno de la pluralidad de pares de macrobloques.
    15 10. El aparato de la reivindicación 9, donde el al menos un bloque se divide en bloques con tamaño más pequeño que incluyen los mismos posibles tamaños de bloque cuando está en el modo de codificación de cuadro o en el modo de codificación de campo, los bloques con tamaño más pequeño son para uso en predicción temporal con compensación de movimiento.
    20 11. El aparato de una cualquiera de las reivindicaciones 9 a 10, donde el al menos un bloque es para uso en predicción temporal con compensación de movimiento con un tamaño de bloque que incluye 16 por 16 píxeles, 16 por 8 píxeles, 8 por 16 píxeles, 8 por 8 píxeles, 8 por 4 píxeles, 4 por 8 píxeles o 4 por 4 píxeles.
  8. 12. El aparato de una cualquiera de las reivindicaciones 9 a 11, donde cada uno de la pluralidad de pares de
    25 macrobloques está asociado con una bandera de cuadro/campo, indicando la bandera de cuadro/campo el modo de codificación de cuadro o modo de codificación de campo.
  9. 13. El aparato de una cualquiera de las reivindicaciones 9 a 12, donde el al menos uno de dicha pluralidad de pares de macrobloques decodificado en modo de codificación de campo que incluye un bloque de campo superior y un
    30 bloque de campo inferior, donde los medios para usar están configurados para:
    tomar una porción superior de dicho bloque de campo superior para formar un campo superior de un primer macrobloque;
    35 tomar una porción inferior de dicho bloque de campo superior para formar un campo superior de un segundo macrobloque; tomar una porción superior de dicho bloque de campo inferior para formar un campo inferior del primer macrobloque; y tomar una porción inferior de dicho bloque de campo inferior para formar un campo inferior del segundo
    40 macrobloque.
  10. 14. El aparato de una cualquiera de las reivindicaciones 9 a 13, donde dichos al menos dos vectores de movimiento se calculan a partir de un bloque co-localizado en una de dichas dos instantáneas de referencia asociadas.
    45 15. El aparato de una cualquiera de las reivindicaciones 9 a 14, donde dichas al menos dos instantáneas de referencia se obtienen a partir de un bloque co-localizado.
  11. 16. El aparato de una cualquiera de las reivindicaciones 9 a 15, donde dicho bloque co-localizado en una de dichas
    dos instantáneas de referencia asociadas se codifica en dicho modo de codificación de cuadro o dicho modo de 50 codificación de campo.
    17
ES10182654.3T 2001-11-21 2002-11-21 Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital Expired - Lifetime ES2545394T3 (es)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US33300401P 2001-11-21 2001-11-21
US333004P 2001-11-21
US33392101P 2001-11-27 2001-11-27
US333921P 2001-11-27
US39573402P 2002-07-12 2002-07-12
US395734P 2002-07-12
US39816102P 2002-07-23 2002-07-23
US398161P 2002-07-23
US301290 2002-11-20
US10/301,290 US6980596B2 (en) 2001-11-27 2002-11-20 Macroblock level adaptive frame/field coding for digital video content

Publications (1)

Publication Number Publication Date
ES2545394T3 true ES2545394T3 (es) 2015-09-10

Family

ID=27540869

Family Applications (5)

Application Number Title Priority Date Filing Date
ES10182629.5T Expired - Lifetime ES2548385T3 (es) 2001-11-21 2002-11-21 Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital
ES10182624.6T Expired - Lifetime ES2548384T3 (es) 2001-11-21 2002-11-21 Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital
ES10182654.3T Expired - Lifetime ES2545394T3 (es) 2001-11-21 2002-11-21 Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital
ES02804054.1T Expired - Lifetime ES2545177T3 (es) 2001-11-21 2002-11-21 Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital
ES10182726.9T Expired - Lifetime ES2545213T3 (es) 2001-11-21 2002-11-21 Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES10182629.5T Expired - Lifetime ES2548385T3 (es) 2001-11-21 2002-11-21 Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital
ES10182624.6T Expired - Lifetime ES2548384T3 (es) 2001-11-21 2002-11-21 Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital

Family Applications After (2)

Application Number Title Priority Date Filing Date
ES02804054.1T Expired - Lifetime ES2545177T3 (es) 2001-11-21 2002-11-21 Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital
ES10182726.9T Expired - Lifetime ES2545213T3 (es) 2001-11-21 2002-11-21 Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital

Country Status (10)

Country Link
EP (1) EP1449385B1 (es)
JP (9) JP2005510985A (es)
KR (1) KR101033398B1 (es)
AU (1) AU2002365338A1 (es)
CA (1) CA2468087C (es)
DK (1) DK1449385T3 (es)
ES (5) ES2548385T3 (es)
MX (1) MXPA04004724A (es)
PT (5) PT1449385E (es)
WO (1) WO2003047272A2 (es)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5914671A (en) 1997-02-27 1999-06-22 Micron Communications, Inc. System and method for locating individuals and equipment, airline reservation system, communication system
EP2271110B1 (en) 2001-11-06 2016-09-21 Panasonic Intellectual Property Corporation of America Moving picture coding method and moving picture decoding method
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
JP2004088722A (ja) 2002-03-04 2004-03-18 Matsushita Electric Ind Co Ltd 動画像符号化方法および動画像復号化方法
EP3525467B1 (en) * 2002-04-19 2021-02-24 Panasonic Intellectual Property Corporation of America Bitstream decoding method and apparatus
PT3525465T (pt) 2002-04-19 2021-05-10 Panasonic Ip Corp America Método e aparelho de descodificação de imagens
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
KR100693669B1 (ko) * 2003-03-03 2007-03-09 엘지전자 주식회사 피일드 매크로 블록의 레퍼런스 픽쳐 결정 방법
CN100594730C (zh) * 2003-06-25 2010-03-17 汤姆森许可贸易公司 帧间的快速模式确定编码方法及其装置
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
WO2005011286A1 (ja) * 2003-07-24 2005-02-03 Matsushita Electric Industrial Co., Ltd. 符号化モード決定装置、画像符号化装置、符号化モード決定方法、および符号化モード決定プログラム
MXPA06002210A (es) 2003-08-26 2006-05-19 Thomson Licensing Metodo y aparato para la decodificacion de bloques intra-inter codificados hibridos.
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US8085846B2 (en) 2004-08-24 2011-12-27 Thomson Licensing Method and apparatus for decoding hybrid intra-inter coded blocks
KR100679031B1 (ko) * 2004-12-03 2007-02-05 삼성전자주식회사 다 계층 기반의 비디오 인코딩 방법, 디코딩 방법 및 상기방법을 이용한 장치
KR100667806B1 (ko) * 2005-07-07 2007-01-12 삼성전자주식회사 영상 부호화 및 복호화 방법 및 장치
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
KR100727972B1 (ko) * 2005-09-06 2007-06-14 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
KR100750128B1 (ko) 2005-09-06 2007-08-21 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
FR2894423A1 (fr) 2005-12-05 2007-06-08 Thomson Licensing Sas Procede de prediction de donnees mouvement et de texture
FR2897213A1 (fr) * 2006-02-08 2007-08-10 Thomson Licensing Sas Procede de codage par blocs d'images d'une sequence d'images video
JP4789719B2 (ja) * 2006-07-06 2011-10-12 キヤノン株式会社 動きベクトル検出装置、動きベクトル検出方法、コンピュータプログラム及び記憶媒体
JP4763549B2 (ja) * 2006-08-18 2011-08-31 富士通セミコンダクター株式会社 フレーム間予測処理装置、画像符号化装置、及び画像復号化装置
KR101365574B1 (ko) * 2007-01-29 2014-02-20 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
JP4786612B2 (ja) * 2007-08-14 2011-10-05 Kddi株式会社 動画像符号化装置の予測動きベクトル生成装置
KR101452859B1 (ko) 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
KR101522850B1 (ko) * 2010-01-14 2015-05-26 삼성전자주식회사 움직임 벡터를 부호화, 복호화하는 방법 및 장치
JP5341786B2 (ja) * 2010-01-20 2013-11-13 株式会社メガチップス 画像符号化装置及び画像変換装置
KR20110113561A (ko) 2010-04-09 2011-10-17 한국전자통신연구원 적응적인 필터를 이용한 인트라 예측 부호화/복호화 방법 및 그 장치
US8923395B2 (en) 2010-10-01 2014-12-30 Qualcomm Incorporated Video coding using intra-prediction
JP7145822B2 (ja) * 2019-07-18 2022-10-03 ヤフー株式会社 情報提供装置、情報提供方法、および情報提供プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3125145B2 (ja) * 1990-08-29 2001-01-15 日立電子株式会社 画像データの高能率符号化方法及びその装置
DE4113505A1 (de) 1991-04-25 1992-10-29 Thomson Brandt Gmbh Verfahren zur bildsignalcodierung
US6226327B1 (en) * 1992-06-29 2001-05-01 Sony Corporation Video coding method and apparatus which select between frame-based and field-based predictive modes
WO1994022269A1 (en) * 1993-03-24 1994-09-29 Sony Corporation Method and apparatus for coding/decoding motion vector, and method and apparatus for coding/decoding image signal
US5974184A (en) * 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
JP3559419B2 (ja) * 1997-03-18 2004-09-02 松下電器産業株式会社 画像圧縮データの伸張方法及び装置
JP2001251627A (ja) * 2000-03-03 2001-09-14 Matsushita Electric Ind Co Ltd 符号化装置、符号化方法及びプログラムを記録した記録媒体
FR2806570B1 (fr) * 2000-03-15 2002-05-17 Thomson Multimedia Sa Procede et dispositif de codage d'images video

Also Published As

Publication number Publication date
JP2012105348A (ja) 2012-05-31
ES2545177T3 (es) 2015-09-09
JP2016106504A (ja) 2016-06-16
WO2003047272A2 (en) 2003-06-05
ES2545213T3 (es) 2015-09-09
JP2016136765A (ja) 2016-07-28
JP2008295111A (ja) 2008-12-04
PT2268040E (pt) 2015-10-15
ES2548384T3 (es) 2015-10-16
JP2018139452A (ja) 2018-09-06
MXPA04004724A (es) 2004-07-30
JP5320254B2 (ja) 2013-10-23
EP1449385B1 (en) 2015-07-22
CA2468087A1 (en) 2003-06-05
JP2015062314A (ja) 2015-04-02
JP6507114B2 (ja) 2019-04-24
JP6681758B2 (ja) 2020-04-15
EP1449385A2 (en) 2004-08-25
WO2003047272A3 (en) 2004-01-08
JP5697614B2 (ja) 2015-04-08
CA2468087C (en) 2013-06-25
PT2268039E (pt) 2015-10-26
JP2016123131A (ja) 2016-07-07
KR101033398B1 (ko) 2011-05-09
DK1449385T3 (en) 2015-10-19
AU2002365338A1 (en) 2003-06-10
PT2285121E (pt) 2015-10-27
JP2010022058A (ja) 2010-01-28
KR20040070176A (ko) 2004-08-06
PT1449385E (pt) 2015-10-15
JP2005510985A (ja) 2005-04-21
PT2271115E (pt) 2015-10-15
ES2548385T3 (es) 2015-10-16

Similar Documents

Publication Publication Date Title
ES2545394T3 (es) Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital
US7421025B2 (en) Macroblock level adaptive frame/field coding for digital video content
JP2005510985A5 (es)
NO20181242A1 (no) Makroblokknivå adaptiv ramme-/feltkoding på makroblokknivå for digitalt videoinnhold
NO343010B1 (no) Adaptiv ramme-/feltkoding på makroblokknivå for digitalt videoinnhold