ES2898887T3 - Manejo de imágenes de referencia - Google Patents

Manejo de imágenes de referencia Download PDF

Info

Publication number
ES2898887T3
ES2898887T3 ES19171620T ES19171620T ES2898887T3 ES 2898887 T3 ES2898887 T3 ES 2898887T3 ES 19171620 T ES19171620 T ES 19171620T ES 19171620 T ES19171620 T ES 19171620T ES 2898887 T3 ES2898887 T3 ES 2898887T3
Authority
ES
Spain
Prior art keywords
list
image
images
poc
reference image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19171620T
Other languages
English (en)
Inventor
Miska Hannuksela
Srikanth Manchenahally Gopalakrishna
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.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
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=48223703&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2898887(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nokia Technologies Oy filed Critical Nokia Technologies Oy
Application granted granted Critical
Publication of ES2898887T3 publication Critical patent/ES2898887T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

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

Abstract

Un procedimiento para codificar un vídeo, que comprende: codificar las imágenes recibidas (300) en imágenes codificadas, las imágenes codificadas se dividen en porciones que comprenden un número entero de unidades de codificación, codificar una estructura de sintaxis para proporcionar al menos una de una lista 0 de imágenes de referencia para los segmentos P y B y una lista 1 de imágenes de referencia para los segmentos B, en el que al menos una de la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia contiene unas imágenes de referencia inactivas marcadas como "usada como referencia" pero que se indican que no se usen como referencia para un segmento actual, marcar las imágenes que no están en ninguna de la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia como "no usada como referencia", caracterizado porque el procedimiento comprende además codificar un segmento actual de una imagen actual mediante el uso de una o más imágenes de referencia de la lista 0 de imágenes de referencia o de la lista 1 de imágenes de referencia, pero no de las imágenes de referencia inactivas que se indican como "no usada como referencia para el segmento actual" de la imagen actual, e indicar que las imágenes de referencia inactivas de la lista 0 de imágenes de referencia o de lista 1 sean "no usada como referencia para el segmento actual" codificando un primer índice de referencia máximo de la lista 0 de imágenes de referencia para codificar el segmento actual, en el que las imágenes de referencia inactivas en la lista 0 de imágenes de referencia tiene un índice de referencia más allá del primer índice de referencia máximo.

Description

DESCRIPCIÓN
Manejo de imágenes de referencia
Antecedentes
En muchos sistemas de codificación de vídeo, las imágenes que se han decodificado anteriormente se pueden usar para la predicción de los datos de imagen de las imágenes posteriores de modo que sólo se necesita codificar la diferencia. Como se conoce en la técnica, esta predicción reduce considerablemente el tamaño de los datos codificados. Para poder realizar la predicción, las imágenes decodificadas anteriormente se deben almacenar, a menudo temporalmente, en la memoria de modo que se puedan recuperar rápidamente para la predicción. Cuando se decodifican más y más imágenes, las imágenes de referencia más antiguas se deben eliminar de la memoria para, por ejemplo, hacer espacio para las nuevas. Es decir, algunas imágenes nuevas que se han decodificado se marcan para indicar que se usarán como referencia y se mantienen en la memoria de imágenes de referencia. Algunas imágenes decodificadas se marcan como no usada como referencia y se pueden eliminar de la memoria. Para llevar a cabo este procedimiento de manera eficaz, las imágenes a usar como referencia se pueden señalizar en la transmisión de vídeo. Sin embargo, la señalización adicional en la transmisión de vídeo aumenta la cantidad de datos que se debe enviar.
El documento Sjoberg: "Absolute signalling of reference pictures" divulga una propuesta con respecto a los procedimientos de imágenes de referencia en el HEVC. Se propone que las imágenes que deberían estar disponibles como referencia se describan de manera absoluta en el encabezado de segmento de una imagen en lugar de describirlas de manera relativa (a través de MMCO y el procedimiento de ventana deslizante). Se propone además que las operaciones de almacenamiento temporal (marcado de imagen) se realicen directamente después de analizar el encabezado del primer segmento de una imagen en lugar de después de que la imagen se haya decodificada. El documento reivindica que los cambios propuestos mejoran la resistencia a errores, simplifican la escalabilidad temporal y permiten la decodificación en un número mínimo de intervalos de almacenamiento temporal de imágenes decodificadas.
El documento Sjoberg: "Attachment to JCTVC-F493 (Absolute signalling of reference pictures)" contiene cambios propuestos al Borrador de trabajo de Codificación de Vídeo de Alta Eficiencia. Estos cambios propuestos se relacionan con la sintaxis RBSP del conjunto de parámetros de la imagen, la sintaxis del encabezado de segmento y la sintaxis de modificación de la lista de imágenes de referencia. El documento también contiene cambios propuestos al procedimiento de decodificación para la construcción de las listas de imágenes de referencia. Los cambios propuestos proporcionan el efecto de que la list0 de imágenes de referencia y la list1 de imágenes de referencia se conviertan temporalmente en un elemento más largo que la longitud necesaria para la lista final.
El documento HANNUKSELA MM Y OTROS: "AHG21: On reference picture list construction and reference picture marking", JCTVC-G643, 08-11-2011, divulga una contribución al estándar HEVC, proponiendo una lista inactiva de imágenes de referencia además de las listas de imágenes de referencia 0 y 1. La lista inactiva de imágenes contiene las imágenes de referencia que no se usan como referencia para una imagen actual, pero se mantendrán en un búfer de imágenes decodificadas a usar como fotograma de referencia para una imagen futura a decodificar.
Por lo tanto, existe una necesidad de soluciones que mejoren el procedimiento de manejo de las imágenes de referencia sin socavar la eficacia de la codificación.
Sumario
Ahora se ha inventado un procedimiento y un equipo técnico mejorado que implementa el procedimiento, mediante el cual se alivian los problemas anteriores. Diversos aspectos de la invención incluyen un procedimiento, un aparato, un servidor, un cliente y un medio legible por ordenador que comprende un programa informático almacenado en el mismo, los cuales se caracterizan por lo que se expone en las reivindicaciones independientes. Las diversas realizaciones de la invención se divulgan en las reivindicaciones dependientes.
En las realizaciones de ejemplo, un procedimiento de marcado de imágenes de referencia y un procedimiento de gestión de listas de imágenes de referencia se pueden manejar en un procedimiento unificado de gestión de listas de imágenes de referencia y de marcado de imágenes de referencia. La estructura de sintaxis de gestión de imágenes de referencia se puede enviar en el conjunto de parámetros de la imagen para mejorar la eficiencia de codificación, por ejemplo, en las disposiciones regulares del GOP (grupo de imágenes).
De acuerdo con la invención, se proporciona un procedimiento para la codificación de vídeo como se establece en la reivindicación 1, se proporciona un procedimiento para decodificar los datos de vídeo como se establece en la reivindicación 7, se proporciona un aparato para la codificación de datos de vídeo como se establece en la reivindicación 12, se proporciona un aparato para la decodificación de datos de vídeo como se establece en la reivindicación 13, así como también medios legibles por ordenador que tienen instrucciones legibles por ordenador, como se establece en las reivindicaciones 14-15.
En los dibujos y en la descripción de las realizaciones de ejemplo, aquellos ejemplos los cuales no son acordes a la invención están presentes sólo para propósitos ilustrativos.
Figuras
A continuación, diversas realizaciones de la invención se describirán con más detalle con referencia a las figuras adjuntas, en los cuales
La Figura 1 muestra un diagrama de bloques de un sistema de codificación de vídeo de acuerdo con una realización de ejemplo;
La Figura 2 muestra un aparato para la codificación de vídeo de acuerdo con una realización de ejemplo;
La Figura 3 muestra una disposición para la codificación de vídeo que comprende una pluralidad de aparatos, redes y elementos de red de acuerdo con una realización de ejemplo;
Las Figuras 4a y 4b muestran diagramas de bloques para la codificación y decodificación de vídeo de acuerdo con una realización de ejemplo;
La Figura 5 ilustra el manejo de imágenes de referencia de acuerdo con una realización de ejemplo;
Las Figuras 6a y 6b muestran diagramas de flujo de procedimientos para manejar imágenes de referencia de acuerdo con realizaciones de ejemplo; y
La Figura 7 muestra un diagrama de flujo de procedimientos para manejar imágenes de referencia de acuerdo con realizaciones de ejemplo.
Descripción de las realizaciones de ejemplo
A continuación, se describirán varias realizaciones de la invención en el contexto de una disposición de codificación de vídeo. Sin embargo, se debe señalar que la invención no se limita a esta disposición particular. De hecho, las diferentes realizaciones tienen aplicaciones ampliamente en cualquier entorno donde se requiera mejorar el manejo de las imágenes de referencia. Por ejemplo, la invención puede ser aplicable a sistemas de codificación de vídeo como sistemas de transmisión en directo, reproductores de DVD y DB, sistemas y programas informáticos en ordenadores personales, ordenadores de portátiles y dispositivos de comunicación, así como también elementos de red tales como transcodificadores y disposiciones de computación en la nube donde se manejan los datos de vídeo. El estándar H.264/AVC fue desarrollado por el Equipo Conjunto de Vídeo (JVT) del Grupo de Expertos en Codificación de Vídeo (VCEG) del Sector de Normalización de Telecomunicaciones de la Unión Internacional de Telecomunicaciones (UIT-T) y el Grupo de Expertos en Imágenes en Movimiento (MPEG) de la Organización Internacional de Normalización (ISO)/Comisión Electrotécnica Internacional (IEC). El estándar H.264/AVC se publica por ambas organizaciones principales de normalización, y se le denomina como la Recomendación de la UIT-T H.264 y el Estándar Internacional ISO/IEC 14496-10, también conocido como Codificación Avanzada de Vídeo (AVC) Parte 10 MPEG-4. Ha habido diversas versiones del estándar H.264/AVC, cada una integrando nuevas extensiones o características a la especificación. Estas extensiones incluyen la Codificación de Vídeo Escalable (SVC) y la Codificación de Vídeo Multivista (MVC).
Actualmente existe un proyecto de estandarización en curso de Codificación de Vídeo de Alta Eficiencia (HEVC) por parte del Equipo Colaborativo Conjunto - Codificación de Vídeo (JCT-VC) de VCEG y MPEG.
Algunas definiciones clave, flujo de bits y estructuras de codificación, y conceptos de1H.264/AVC y e1HEVC se describen en esta sección como un ejemplo de un codificador de vídeo, un decodificador, un procedimiento de codificación, un procedimiento de decodificación y una estructura de flujo de bits, en el que se pueden implementar las realizaciones. Algunas de las definiciones clave, el flujo de bits y las estructuras de codificación y los conceptos del H.264/AVC son los mismos que en el borrador de trabajo actual de HEVC; por lo tanto, se describen a continuación de manera conjunta. Los aspectos de la invención no se limitan a1H.264/AVC o a1HEVC, sino que la descripción se da para una posible base sobre la cual la invención se puede realizar de manera total o de manera parcial.
De manera similar a muchos estándares de codificación de vídeo anteriores, la sintaxis y la semántica del flujo de bits, así como también el procedimiento de decodificación para flujos de bits sin errores, se especifican en el H.264/AVC y el HEVC. No se especifica el procedimiento de codificación, pero los codificadores deben generar flujos de bits conformes. La conformidad del flujo de bits y del decodificador se puede verificar con el Decodificador de Referencia Hipotético (HRD). Los estándares contienen herramientas de codificación que ayudan a hacer frente a los errores y pérdidas de transmisión, pero el uso de las herramientas en la codificación es opcional y no se ha especificado ningún procedimiento de decodificación para flujos de bits erróneos.
La unidad elemental para la entrada a un codificador del H.264/AVC o el HEVC y la salida de un decodificador del H.264/AVC o el HEVC, respectivamente, es una imagen. En el H.264/AVC, una imagen puede ser un fotograma o un campo. En el borrador de trabajo actual de HEVC, una imagen es un fotograma. Un fotograma comprende una matriz de muestras de luminancia y las correspondientes muestras de crominancia. Un campo es un conjunto de filas de muestra alternativas de un fotograma y se puede usar como entrada del codificador, cuando se entrelaza la señal fuente. Las imágenes de crominancia se pueden submuestrear en comparación con las imágenes de luminancia. Por ejemplo, en el patrón de muestreo 4:2:0, la resolución espacial de las imágenes de crominancia es la mitad que la de la imagen de luminancia a lo largo de ambos ejes de coordenadas.
En el H.264/AVC, un macrobloque es un bloque de 16x16 de muestras de luminancia y los correspondientes bloques de muestras de crominancia. Por ejemplo, en el patrón de muestreo 4:2:0, un macrobloque contiene un bloque de 8x8 de muestras de crominancia por cada componente de crominancia. En e1H.264/AVC, una imagen se divide en uno o más grupos de segmentos, y un grupo de segmentos contiene uno o más segmentos. En el H.264/AVC, un segmento consta de un número entero de macrobloques ordenados consecutivamente en la exploración de ráster dentro de un grupo de segmentos particular.
En el borrador del HEVC, las imágenes de vídeo se dividen en unidades de codificación (CU) que cubren el área de la imagen. Una CU consta de una o más unidades de predicción (PU) que definen el procedimiento de predicción para las muestras dentro de la CU y una o más unidades de transformación (TU) que definen el procedimiento de codificación del error de predicción para las muestras en dicha CU. Usualmente, una CU consta de un bloque cuadrado de muestras con un tamaño seleccionable de un conjunto predefinido de posibles tamaños de la CU. Una CU con el tamaño máximo permitido se denomina usualmente LCU (unidad de codificación más grande) y la imagen de vídeo se divide en LCU no superpuestas. Una LCU se puede dividir además en una combinación de CU más pequeñas, por ejemplo, dividiendo recursivamente la LCU y las CU resultantes. Cada CU resultante tiene usualmente al menos una PU y al menos una TU asociada con esta. Cada PU y TU se pueden dividir además en PU y TU más pequeñas con el fin de aumentar la granularidad de los procedimientos de predicción y de codificación de errores de predicción, respectivamente. La división de PU se puede realizar dividiendo la CU en cuatro PU cuadradas de igual tamaño o dividiendo la CU en dos PU rectangulares verticalmente u horizontalmente de manera simétrica o asimétrica. La división de la imagen en CU y la división de las CU en PU y TU usualmente se señalizan en el flujo de bits, permitiendo que el decodificador reproduzca la estructura deseada de estas unidades.
En el borrador del HEVC, una imagen se puede dividir en mosaicos, los cuales son rectangulares y contienen un número entero de LCU. En el borrador de trabajo actual del HEVC, la división en mosaicos forma una cuadrícula regular, donde las alturas y los anchos de los mosaicos difieren entre sí por una LCU como máximo. En el borrador del HEVC, un segmento consta de un número entero de CU. Las CU se escanean en el orden de exploración de ráster de las LCU dentro de los mosaicos o dentro de una imagen, si los mosaicos no están en uso. Dentro de una LCU, las CU tienen un orden de exploración específico.
En el H.264/AVC y el HEVC, la predicción en la imagen se puede deshabilitar a través de los límites de los segmentos. Por tanto, los segmentos se pueden considerar como una manera de dividir una imagen codificada en piezas decodificables de manera independiente y, por lo tanto, los segmentos se consideran a menudo como unidades elementales para la transmisión. En muchos casos, los codificadores pueden indicar en el flujo de bits qué tipos de predicción en la imagen se desactivan a través de los límites de los segmentos, y la operación del decodificador tiene en cuenta esta información, por ejemplo, al concluir qué fuentes de predicción están disponibles. Por ejemplo, las muestras de un macrobloque o CU vecina se pueden considerar no disponibles para intra predicción, si el macrobloque o CU vecina reside en un segmento diferente.
La unidad elemental para la salida de un codificador del H.264/AVC o HEVC y la entrada de un decodificador del H.264/AVC o HEVC, respectivamente, es una unidad de Capa de Abstracción de Red (NAL). Para el transporte a través de redes orientadas a paquetes o para el almacenamiento en archivos estructurados, las unidades de NAL usualmente se encapsulan en paquetes o estructuras similares. Se ha especificado un formato de flujo de bytes en el H.264/AVC y el HEVC para entornos de transmisión o almacenamiento que no proporcionan estructuras de fotogramas. El formato de flujo de bytes separa las unidades de NAL entre sí al adjuntar un código de inicio delante de cada unidad de NAL. Para evitar una detección falsa de los límites de la unidad de NAL, los codificadores ejecutan un algoritmo de prevención de la emulación del código de inicio orientado a bytes, el cual agrega un byte de prevención de la emulación a la carga útil de la unidad de NAL si un código de inicio se hubiera producido de otra manera. Con el fin de permitir un funcionamiento inequívoco de la puerta de enlace entre los sistemas orientados a paquetes y orientados a flujos, la prevención de la emulación del código de inicio se realiza siempre independientemente de si el formato de flujo de bytes está en uso o no.
Las unidades de NAL constan de un encabezado y de una carga útil. En el H.264/AVC y e1HEVC, el encabezado de la unidad de NAL indica el tipo de unidad de NAL y si un segmento codificado contenido en la unidad de NAL es una parte de una imagen de referencia o de una imagen que no es de referencia. E1H.264/AVC incluye un elemento de sintaxis nal_ref_idc de 2 bits, el cual cuando es igual a 0 indica que un segmento codificado contenido en la unidad de NAL es parte de una imagen que no es de referencia y cuando es mayor que 0 indica que un segmento codificado contenido en la unidad de NAL es parte de una imagen de referencia. El borrador de1HEVC incluye un elemento de sintaxis nal_ref_idc de 1 bit, que cuando es igual a 0 indica que un segmento codificado contenido en la unidad de NAL es parte de una imagen que no es de referencia y cuando es igual a 1 indica que un segmento codificado contenido en la unidad de NAL es parte de una imagen de referencia. El encabezado de las unidades de NAL SVC y MVC contiene adicionalmente diversas indicaciones relacionadas con la escalabilidad y la jerarquía multivista. En el HEVC, el encabezado de la unidad de NAL incluye el elemento de sintaxis temporal_id, que especifica un identificador temporal para la unidad de NAL. El flujo de bits creado excluyendo todas las unidades de NAL de VCL que tienen un temporaljd mayor o igual a un valor seleccionado e incluyendo todas las demás unidades de nAl de VCL sigue siendo conforme. En consecuencia, una imagen que tiene un temporaljd igual al TID no utiliza ninguna imagen que tenga un temporaljd mayor que el TID como referencia en las inter predicciones. En el borrador del HEVC, la inicialización de la lista de imágenes de referencia se limita sólo a la imagen de referencia marcada como "usada como referencia" y que tiene un temporaljd menor o igual que el temporaljd de la imagen actual.
Las unidades de NAL se pueden clasificar en unidades de NAL de Capa de Codificación de Vídeo (VCL) y unidades de NAL que no son de VCL. Las unidades de NAL de VCL son usualmente unidades de NAL de segmento codificadas. En el H.264/AVC, las unidades de NAL de segmento codificadas contienen elementos de sintaxis que representan uno o más macrobloques codificados, cada uno de los cuales corresponde a un bloque de muestras en la imagen sin comprimir. En el HEVC, las unidades de NAL de segmento codificadas contienen elementos de sintaxis que representan una o más CU. En el H.264/AVC y el HEVC, una unidad de NAL de segmento codificada se puede indicar para ser un segmento codificado en una imagen de Actualización de Decodificación Instantánea (IDR) o un segmento codificado en una imagen que no es de IDR. En HEVC, una unidad de NAL de segmento codificado se puede indicar como un segmento codificado en una imagen de actualización de decodificación limpia (CDR) (que también se puede denominar imagen de acceso aleatorio limpio).
Una unidad de NAL que no es de VCL puede ser, por ejemplo, uno de los siguientes tipos: un conjunto de parámetros de secuencia, un conjunto de parámetros de la imagen, una unidad de NAL de información de mejora suplementaria (SEI), un delimitador de unidad de acceso, una unidad de NAL de fin de secuencia, una unidad de nAl de fin de flujo o una unidad de NAL de datos de relleno. Los conjuntos de parámetros son esenciales para la reconstrucción de imágenes decodificadas, mientras que muchas de las otras unidades de NAL que no son de VCL no son necesarias para la reconstrucción de los valores de muestra decodificados.
Los parámetros que permanecen sin cambios a través de una secuencia de vídeo codificada se incluyen en un conjunto de parámetros de secuencia. Además de los parámetros que son esenciales para el procedimiento de decodificación, el conjunto de parámetros de secuencia puede contener opcionalmente información de la usabilidad del vídeo (VUI), que incluye parámetros que son importantes para el almacenamiento temporal, la temporización de la salida de la imagen, la reproducción y la reserva de recursos. Un conjunto de parámetros de la imagen contiene tales parámetros que probablemente no cambien en varias imágenes codificadas. En el borrador de1HEVC, también existe un tercer tipo de conjunto de parámetros, denominado aquí como Conjunto de Parámetros de Adaptación (APS), el cual incluye los parámetros que probablemente no cambien en varios segmentos codificados.
La sintaxis del H.264/AVC y el HEVC permite muchas instancias de conjuntos de parámetros, y cada instancia se identifica con un identificador único. En el H.264/AVC, cada encabezado de segmento incluye el identificador del conjunto de parámetros de la imagen que está activo para la decodificación de la imagen que contiene el segmento, y cada conjunto de parámetros de la imagen contiene el identificador del conjunto de parámetros de secuencia activo. En consecuencia, la transmisión de conjuntos de parámetros de la imagen y de secuencia no se tiene que sincronizar con precisión con la transmisión de los segmentos. En su lugar, es suficiente que los conjuntos de parámetros de la imagen y de secuencia se reciban en cualquier momento antes de que se referencien, lo cual permite la transmisión de los conjuntos de parámetros mediante el uso de un mecanismo de transmisión más fiable en comparación con los protocolos usados para los datos de los segmentos. Por ejemplo, los conjuntos de parámetros se pueden incluir como un parámetro en la descripción de la sesión para las sesiones del Protocolo de Transporte en Tiempo real (RTP). Si los conjuntos de parámetros se transmiten en bandas, se pueden repetir para mejorar la resistencia a los errores.
Una unidad de NAL de SEI contiene uno o más mensajes de SEI, que no son necesarios para la decodificación de las imágenes de salida, pero ayudan en los procedimientos relacionados, tales como temporización de la salida de imágenes, reproducción, detección de errores, ocultación de errores y reserva de recursos. Varios mensajes de SEI se especifican en el H.264/AVC y el HEVC, y los mensajes de SEI de datos de usuario permiten a las organizaciones y compañías especificar los mensajes de SEI para su propio uso. E1H.264/AVC y e1HEVC contienen la sintaxis y la semántica para los mensajes de SEI especificados, pero no se define ningún procedimiento para manejar los mensajes en el destinatario. En consecuencia, los codificadores deben seguir el estándar H.264/AVC o el estándar HEVC cuando crean mensajes de SEI, y los decodificadores que cumplen con el estándar H.264/AVC o el estándar HEVC, respectivamente, no están obligados a procesar mensajes de SEI para la conformidad del orden de salida. Una de las razones para incluir la sintaxis y la semántica de los mensajes de SEI en e1H.264/AVC y el HEVC es permitir que diferentes especificaciones del sistema interpreten la información complementaria de manera idéntica y, por lo tanto, interoperen. Se pretende que las especificaciones del sistema puedan requerir el uso de mensajes de SEI particulares tanto en el extremo de codificación como en el extremo de decodificación, y adicionalmente se puede especificar el procedimiento para manejar los mensajes de SEI particulares en el destinatario.
Una imagen codificada es una representación codificada de una imagen. Una imagen codificada en e1H.264/AVC consta de las unidades de NAL de VCL que se requieren para la decodificación de la imagen. En e1H.264/AVC, una imagen codificada puede ser una imagen codificada primaria o una imagen codificada redundante. Una imagen codificada primaria se utiliza en el procedimiento de decodificación de flujos de bits válidos, mientras que una imagen codificada redundante es una representación redundante que sólo se debe decodificar cuando la imagen codificada primaria no se puede decodificar exitosamente. En el borrador de1HEVC, no se ha especificado ninguna imagen codificada redundante.
En el H.264/AVC y el HEVC, una unidad de acceso consta de una imagen codificada primaria y de aquellas unidades de NAL que se asocian a ella. En el H.264/AVC, el orden de aparición de las unidades de NAL dentro de una unidad de acceso se restringe de la siguiente manera. Una unidad de NAL delimitadora de la unidad de acceso opcional puede indicar el inicio de una unidad de acceso. Se sigue por cero o por más unidades de NAL de SEI. Los segmentos codificados de la imagen codificada primaria aparecen a continuación, seguidos de los segmentos codificados para cero o para más imágenes codificadas redundantes.
Una secuencia de vídeo codificada se define como una secuencia de unidades de acceso consecutivas en el orden de decodificación desde una unidad de acceso de IDR, incluida, a la siguiente unidad de acceso de IDR, no incluida, o al final del flujo de bits, lo que aparezca antes.
Un grupo de imágenes (GOP) es, y sus características se pueden definir de la siguiente manera. Un GOP se puede decodificar independientemente de si se decodificaron imágenes anteriores. Un GOP abierto es un grupo de imágenes tal en el cual las imágenes que preceden a la intra imagen inicial en el orden de salida podrían no ser correctamente decodificables cuando la decodificación comienza desde la intra imagen inicial del GOP abierto. En otras palabras, las imágenes de un GOP abierto se pueden referir (en inter predicción) a imágenes pertenecientes a un GOP anterior. Un decodificador del H.264/AVC puede reconocer una intra imagen que inicia un GOP abierto desde el mensaje de SEI del punto de recuperación en un flujo de bits del H.264/AVC. Un decodificador de1HEVC puede reconocer una intra imagen que comienza un GOP abierto, porque se utiliza un tipo de unidad de NAL específico, el tipo de unidad de NAL de CDR, para sus segmentos codificados. Un GOP cerrado es un grupo de imágenes en el que todas las imágenes se pueden decodificar correctamente cuando la decodificación comienza desde la imagen intra inicial del GOP cerrado. En otras palabras, ninguna imagen en un GOP cerrado se refiere a alguna imagen en los GOP anteriores. En el H.264/AVC y el HEVC, un GOP cerrado comienza desde una unidad de acceso de IDR. Como resultado, la estructura del GOP cerrado tiene más potencial de resistencia a errores en comparación con la estructura del GOP abierto, sin embargo, a costa de una posible reducción en la eficacia de la compresión. La estructura de codificación del GOP abierto es potencialmente más eficaz en la compresión, debido a una mayor flexibilidad en la selección de imágenes de referencia.
La sintaxis del flujo de bits del H.264/AVC y el HEVC indica si una imagen en particular es una imagen de referencia para la inter predicción de cualquier otra imagen. Las imágenes de cualquier tipo de codificación (I, P, B) pueden ser imágenes de referencia o imágenes que no son de referencia en el H.264/AVC y e1HEVC. El encabezado de la unidad de NAL indica el tipo de unidad de NAL y si un segmento codificado contenido en la unidad de NAL es parte de una imagen de referencia o de una imagen que no es de referencia.
Muchos códecs de vídeo híbridos, incluidos el H.264/AVC y el HEVC, codifican la información de vídeo en dos fases. En la primera fase, se predicen los valores de los píxeles o muestras en una determinada área o "bloque" de la imagen. Estos valores de píxeles o muestras se pueden predecir, por ejemplo, mediante mecanismos de compensación de movimiento, los cuales implican encontrar e indicar un área en uno de los fotogramas de vídeo codificados previamente que se corresponda estrechamente con el bloque que se codifica. Adicionalmente, los valores de los píxeles o muestras se pueden predecir mediante mecanismos espaciales, los cuales implican encontrar e indicar una relación de región espacial.
Los enfoques de predicción que usan la información de imagen de una imagen codificada previamente también se pueden denominar procedimientos de inter predicción, que también se pueden denominar predicción temporal y compensación de movimiento. Los enfoques de predicción que usan la información de imagen dentro de la misma imagen también se pueden denominar procedimientos de intra predicción.
La segunda fase es una de codificar el error entre el bloque de píxeles o muestras predicho y el bloque de píxeles o muestras original. Esto se puede lograr transformando la diferencia en los valores de los píxeles o muestras mediante el uso de una transformada específica. Esta transformada puede ser, por ejemplo, una Transformada Discreta de Coseno (DCT) o una variante de la misma. Después de transformar la diferencia, la diferencia transformada se puede cuantificar y codificar por entropía.
Al variar la fidelidad del procedimiento de cuantificación, el codificador puede controlar el equilibrio entre la precisión de la representación de los píxeles o muestras (es decir, la calidad visual de la imagen) y el tamaño de la representación de vídeo codificada resultante (es decir, el tamaño de archivo o la velocidad de transmisión de bits). El decodificador reconstruye el vídeo de salida aplicando un mecanismo de predicción similar al que se usa por el codificador con el fin de formar una representación predicha de los bloques de píxeles o muestras (mediante el uso del movimiento o la información espacial creada por el codificador y almacenada en la representación comprimida de la imagen) y la decodificación del error de predicción (la operación inversa de la codificación del error de predicción para recuperar la señal de error de predicción cuantificada en el dominio espacial).
Después de aplicar los procedimientos de predicción de píxeles o muestras y de decodificación de errores, el decodificador combina la predicción y las señales de error de predicción (los valores de píxeles) para formar el fotograma de vídeo de salida.
El decodificador (y codificador) también puede aplicar procedimientos de filtrado adicionales con el fin de mejorar la calidad del vídeo de salida antes de pasarlo para su visualización y/o almacenamiento como una referencia de predicción para las próximas imágenes en la secuencia de vídeo.
En muchos códecs de vídeo, incluidos el H.264/AVC y el HEVC, la información de movimiento se indica mediante vectores de movimiento asociados con cada bloque de imágenes con compensación de movimiento. Cada uno de estos vectores de movimiento representa el desplazamiento del bloque de imágenes en la imagen a codificar (en el codificador) o a decodificar (en el decodificador) y el bloque fuente de predicción en una de las imágenes (o fotos) previamente codificadas o decodificadas. El H.264/AVC y el HEVC, como muchos otros estándares de compresión de vídeo, dividen una imagen en una malla de rectángulos, para cada uno de los cuales se indica un bloque similar en una de las imágenes de referencia para la inter predicción. La ubicación del bloque de predicción se codifica como un vector de movimiento que indica la posición del bloque de predicción en comparación con el bloque que se codifica.
El procedimiento de inter predicción se puede caracterizar mediante el uso de uno o más de los siguientes factores. La precisión de la representación del vector de movimiento. Por ejemplo, los vectores de movimiento pueden ser de una precisión de un cuarto de píxel y los valores de muestra en las posiciones de píxeles fraccionarios se pueden obtener mediante el uso de un filtro de respuesta de impulso finito (FIR).
Partición de bloques para la inter predicción. Muchos estándares de codificación, incluidos e1H.264/AVC y e1HEVC, permiten seleccionar el tamaño y la forma del bloque para el que se aplica un vector de movimiento para compensar el movimiento en el codificador, e indicar el tamaño y la forma seleccionados en el flujo de bits para que los decodificadores pueden reproducir la predicción con compensación de movimiento realizada en el codificador.
Número de imágenes de referencia para la inter predicción. Las fuentes de inter predicción son imágenes decodificadas previamente. Muchos estándares de codificación, incluidos e1H.264/AVC y e1HEVC, permiten el almacenamiento de múltiples imágenes de referencia para la inter predicción y la selección de la imagen de referencia usada en bloques. Por ejemplo, las imágenes de referencia se pueden seleccionar sobre la base de macrobloque o partición de macrobloque en el H.264/AVC y sobre la base de PU o CU en e1HEVC. Muchos estándares de codificación, tales como el H.264/AVC y el HEVc , incluyen estructuras de sintaxis en el flujo de bits que permiten a los decodificadores crear una o más listas de imágenes de referencia. Se puede usar un índice de imágenes de referencia para una lista de imágenes de referencia para indicar cuál de las múltiples imágenes de referencia se usa para la inter predicción para un bloque particular. Un índice de imagen de referencia se puede codificar por un codificador en el flujo de bits en algunos modos de inter codificación o se puede derivar (por un codificador y un decodificador), por ejemplo, mediante el uso de bloques vecinos en algunos otros modos de inter codificación.
Predicción de vectores de movimiento. Con el fin de representar los vectores de movimiento de manera eficaz en los flujos de bits, los vectores de movimiento se pueden codificar de manera diferencial con respecto al vector de movimiento predicho específico del bloque. En muchos códecs de vídeo, los vectores de movimiento predichos se crean de una manera predefinida, por ejemplo, calculando la mediana de los vectores de movimiento codificados o decodificados de los bloques adyacentes. Otra forma de crear las predicciones de los vectores de movimiento es generar una lista de predicciones candidatas a partir de bloques adyacentes y/o bloques co-ubicados en las imágenes de referencia temporal y señalizar la candidata elegida como la predictora de vectores de movimiento. Además de predecir los valores de los vectores de movimiento, se puede predecir el índice de referencia de la imagen codificada/decodificada previamente. El índice de referencia usualmente se predice a partir de bloques adyacentes y/o bloques co-ubicados en las imágenes de referencia temporal. La codificación diferencial de los vectores de movimiento se inhabilita usualmente a través de los límites de los segmentos.
Predicción multihipótesis con compensación de movimiento. El H.264/AVC y e1HEVC permiten el uso de un único bloque de predicción en los segmentos P (en la presente memoria denominados como segmentos unipredictivos) o una combinación lineal de dos bloques de predicción con compensación de movimiento para los segmentos bipredictivos, los cuales se denominan también como segmentos B. Los bloques individuales en los segmentos B se pueden bipredecir, unipredecir o intra predecir, y los bloques individuales en los segmentos P se pueden unipredecir o intra predecir. Las imágenes de referencia para una imagen bipredictiva no se limitan a ser la imagen posterior y la imagen anterior en el orden de salida, sino que se puede usar cualquier imagen de referencia. En muchos estándares de codificación, tales como el H.264/AVC y el HEVC, se construye una lista de imágenes de referencia, denominada como lista 0 de imágenes de referencia, para los segmentos P, y dos listas de imágenes de referencia, lista 0 y lista 1, para los segmentos B. Para los segmentos B, cuando la predicción en la dirección hacia adelante se puede referir a la predicción a partir de una imagen de referencia en la lista 0 de imágenes de referencia, y la predicción en la dirección hacia atrás se puede referir a la predicción de una imagen de referencia en la lista 1 de imágenes de referencia, aunque las imágenes de referencia para la predicción pueden tener alguna relación de decodificación o de orden de salida entre sí o con la imagen actual.
Predicción ponderada. Muchos estándares de codificación usan una ponderación de predicción de 1 para los bloques de predicción de inter imágenes (P) y de 0,5 para cada bloque de predicción de una imagen B (que resulta en un promedio). El H.264/AVC permite la predicción ponderada para los segmentos P y los B. En la predicción ponderada implícita, las ponderaciones son proporcionales a los recuentos del orden de las imágenes, mientras que, en la predicción ponderada explícita, las ponderaciones de la predicción se indican de manera explícita.
En muchos códecs de vídeo, el residuo de predicción después de la compensación de movimiento se transforma primero con un núcleo de transformación (como DCT) y luego se codifica. La razón de esto es que a menudo todavía existe alguna correlación entre el residuo y la transformación que en muchos casos puede ayudar a reducir esta correlación y proporcionar una codificación más eficiente.
En el borrador del HEVC, cada PU tiene asociada información de predicción con la que define qué tipo de predicción se aplicará para los píxeles dentro de esa PU (por ejemplo, información del vector de movimiento para las PU inter predichas e información de la direccionalidad de la intra predicción para las PU intra predichas). De manera similar, cada TU se asocia con la información que describe el procedimiento de decodificación del error de predicción para las muestras dentro de dicha TU (incluida, por ejemplo, la información del coeficiente de la DCT). Usualmente se señaliza a nivel de CU si se aplica o no la codificación del error de predicción para cada CU. En el caso de que no exista un residuo de error de predicción asociado con la CU, se puede considerar que no existen TU para dichas CU.
En algunos códecs y formatos de codificación, se hace una distinción entre las llamadas imágenes de referencia a corto plazo y a largo plazo. Esta distinción puede afectar a algunos procedimientos de decodificación tales como el escalado del vector de movimiento en el modo temporal directo o la predicción ponderada implícita. Si ambas imágenes de referencia usadas para el modo temporal directo son imágenes de referencia a corto plazo, el vector de movimiento usado en la predicción se puede escalar de acuerdo con la diferencia de POC entre la imagen actual y cada una de las imágenes de referencia. Sin embargo, si al menos una imagen de referencia para el modo temporal directo es una imagen de referencia a largo plazo, se usa el escalado por defecto del vector de movimiento, por ejemplo, se puede usar el escalado del movimiento a la mitad. De manera similar, si se usa una imagen de referencia a corto plazo para la predicción ponderada implícita, la ponderación de la predicción se puede escalar de acuerdo con la diferencia de POC entre el POC de la imagen actual y el POC de la imagen de referencia. Sin embargo, si se utiliza una imagen de referencia a largo plazo para la predicción ponderada implícita, se puede usar una ponderación de predicción por defecto, tal como el 0,5 en la predicción ponderada implícita para los bloques de bipredicción.
Algunos formatos de codificación de vídeo, tales como el H.264/AVC, incluyen el elemento de sintaxis frame_num, el cual se usa para diversos procedimientos de decodificación relacionados con múltiples imágenes de referencia. En el H.264/AVC, el valor de frame_num para las imágenes de IDR es 0. El valor de frame_num para las imágenes que no son de IDR es igual al frame_num de la imagen de referencia anterior en el orden de decodificación incrementado en 1 (en módulo aritmético, es decir, el valor de frame_num pasa a 0 después de un valor máximo de frame_num).
El H.264/AVC y el HEVC incluyen un concepto de recuento de orden de las imágenes (POC). Se deriva un valor de POC para cada imagen y no disminuye con el aumento de la posición de la imagen en el orden de salida. Por lo tanto, el POC indica el orden de salida de las imágenes. El POC se puede usar en el procedimiento de decodificación, por ejemplo, para el escalado implícito de vectores de movimiento en el modo temporal directo de segmentos bipredictivos, para ponderaciones derivadas de manera implícita en la predicción ponderada y para la inicialización de la lista de imágenes de referencia. Además, el POC se puede usar en la verificación de la conformidad del orden de salida. En el H.264/AVC, el POC se especifica en relación con la imagen de IDR anterior o una imagen que contiene una operación de control de gestión de memoria que marca todas las imágenes como "no usada como referencia".
El H.264/AVC y el borrador del HEVC especifican el procedimiento para el marcado de imágenes de referencia decodificada con el fin de controlar el consumo de memoria en el decodificador. El número máximo de imágenes de referencia usadas para la inter predicción, denominado como M, se determina en el conjunto de parámetros de secuencia. Cuando se decodifica una imagen de referencia, se marca como "usada como referencia". Si la decodificación de la imagen de referencia provocó más de M imágenes marcadas como "usada como referencia", al menos una imagen se marcará como "no usada como referencia". Existen dos tipos de operación para el marcado de imágenes de referencia decodificadas: control de memoria adaptativa y ventana deslizante. El modo de operación para el marcado de imagen de referencia decodificada se selecciona en base a la imagen. El control de memoria adaptativa permite señalizar de manera explícita qué imágenes están marcadas como "no usada como referencia" y puede además asignar índices a largo plazo a imágenes de referencia a corto plazo. El control de memoria adaptativa requiere la presencia de parámetros de la operación de control de gestión de memoria (MMCO) en el flujo de bits. Si el modo de operación de ventana deslizante está en uso y hay M imágenes marcadas como "usada como referencia", la imagen de referencia a corto plazo que fue la primera imagen decodificada entre las imágenes de referencia a corto plazo que están marcadas como "usada como referencia" se marca como "no usada como referencia". En otras palabras, el modo de operación de ventana deslizante resulta en una operación de almacenamiento temporal de primero en entrar primero en salir entre las imágenes de referencia a corto plazo.
Una de las operaciones de control de gestión de la memoria en el H.264/AVC y e1HEVC hace que todas las imágenes de referencia, excepto la imagen actual, se marquen como "no usada como referencia". Una imagen de actualización de decodificación instantánea (IDR) contiene sólo segmentos intra-codificados y provoca un "reinicio" similar de imágenes de referencia.
Se puede usar un Búfer de Imagen Decodificada (DPB) en el codificador y/o en el decodificador. Existen dos razones para almacenar temporalmente imágenes decodificadas, como referencias en la inter predicción y para reordenar las imágenes decodificadas en el orden de salida. Como el H.264/AVC y e1HEVC proporcionan una gran flexibilidad tanto para el marcado de imágenes de referencia como para el reordenamiento de la salida, los búferes separados para el almacenamiento temporal de las imágenes de referencia y para el almacenamiento temporal de las imágenes de salida pueden desperdiciar recursos de memoria. Por lo tanto, el DPB puede incluir un procedimiento unificado de almacenamiento temporal de imágenes decodificadas para las imágenes de referencia y el reordenamiento de salida. Una imagen decodificada se puede eliminar del DPB cuando ya no se usa como referencia y se necesita para la salida.
En muchos modos de codificación del H.264/AVC y del HEVC, la imagen de referencia para la inter predicción se indica con un índice a una lista de imágenes de referencia. El índice se codifica con codificación de longitud variable, es decir, cuanto más pequeño es el índice, más corto se vuelve el elemento de sintaxis correspondiente. Se generan dos listas de imágenes de referencia (lista 0 de imágenes de referencia y lista 1 de imágenes de referencia) para cada segmento bipredictivo (B), y se forma una lista de imágenes de referencia (lista 0 de imágenes de referencia) para cada segmento inter-codificado (P).
Los códecs de vídeo de alta eficiencia típicos tales como el códec del borrador de1HEVC emplean un mecanismo de codificación/decodificación de información de movimiento adicional, a menudo llamado modo/procedimiento/mecanismo fusionado/de fusión, donde toda la información de movimiento de un bloque/PU se predice y usa sin ninguna modificación/corrección. La información de movimiento antes mencionada para una PU comprende 1) La información de si 'la PU se unipredice mediante el uso de sólo la list0 de imágenes de referencia' o 'la PU se unipredice mediante el uso de sólo la list1 de imágenes de referencia' o 'la PU se bipredice mediante el uso de tanto la list0 como list1 de imágenes de referencia' 2) El valor del vector de movimiento correspondiente a la list0 de imágenes de referencia 3) El Índice de imagen de referencia en la list0 de imágenes de referencia 4) El valor del vector de movimiento correspondiente a la list1 de imágenes de referencia 5) El índice de imágenes de referencia en la list1 de imágenes de referencia. De manera similar, la predicción de la información de movimiento se lleva a cabo mediante el uso de la información de movimiento de bloques adyacentes y/o bloques co-ubicados en imágenes de referencia temporal. Usualmente, una lista, a menudo denominada lista de fusión, se construye incluyendo los candidatos de predicción de movimiento asociados con los bloques adyacentes/co-ubicados disponibles y señalizando el índice del candidato de predicción de movimiento seleccionado en la lista. Luego, la información de movimiento del candidato seleccionado se copia a la información de movimiento de la PU actual. Cuando se emplea el mecanismo de fusión para una CU completa y la señal de predicción para la CU se usa como señal de reconstrucción, es decir, el residuo de predicción no se procesa, este tipo de codificación/decodificación de la CU se denomina usualmente modo de omisión o modo de omisión basado en fusión. Además del modo de omisión, el mecanismo de fusión también se emplea para las PU individuales (no necesariamente la CU completa como en el modo de omisión) y, en este caso, el residuo de predicción se puede utilizar para mejorar la calidad de la predicción. Este tipo de modo de predicción se denomina usualmente modo de inter-fusión.
Una lista de imágenes de referencia, tal como la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia, se construye usualmente en dos pasos: Primero, se genera una lista de imágenes de referencia inicial. La lista de imágenes de referencia inicial se puede generar, por ejemplo, sobre la base del frame_num, el POC, el temporaljd o la información sobre la jerarquía de predicción tal como la estructura del GOP o cualquier combinación de los mismos. Segundo, la lista de imágenes de referencia inicial se puede reordenar mediante instrucciones de reordenamiento de la lista de imágenes de referencia (RPLR) contenidas en los encabezados de los segmentos. Las instrucciones de RPLR indican las imágenes que están ordenadas al principio de la respectiva lista de imágenes de referencia. Este segundo paso también se puede denominar como procedimiento de modificación de la lista de imágenes de referencia y las instrucciones de RPLR se pueden incluir en una estructura de sintaxis de modificación de la lista de imágenes de referencia.
La lista de fusión se puede generar sobre la base de la lista 0 de imágenes de referencia y/o la lista 1 de imágenes de referencia, por ejemplo, mediante el uso de la estructura de sintaxis de combinación de listas de imágenes de referencia incluida en la sintaxis de encabezado de los segmentos. Puede haber una estructura de sintaxis de combinación de listas de imágenes de referencia, creada en el flujo de bits por un codificador y decodificada a partir del flujo de bits por un decodificador, la cual indica el contenido de la lista de fusión. La estructura de sintaxis puede indicar que la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia se combinan para ser una combinación adicional de listas de imágenes de referencia usada para las unidades de predicción que se predicen unidireccionalmente. La estructura de sintaxis puede incluir un indicador, el cual, cuando es igual a un cierto valor, indica que la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia son idénticas, por tanto, la lista 0 de imágenes de referencia se utiliza como combinación de listas de imágenes de referencia. La estructura de sintaxis puede incluir una lista de entradas, cada una especificando una lista de imágenes de referencia (lista 0 o lista 1) y un índice de referencia a la lista especificada, donde una entrada especifica una imagen de referencia a incluir en la lista de fusión.
Puede existir una estructura de sintaxis para el marcado de imágenes de referencia en un sistema de codificación de vídeo. Por ejemplo, cuando se ha completado la decodificación de la imagen, la estructura de sintaxis del marcado de la imagen de referencia decodificada, si está presente, se puede usar para marcar de manera adaptativa imágenes como "no usada como referencia" o "usada como referencia a largo plazo". Si la estructura de sintaxis del marcado de imágenes de referencia decodificada no está presente y el número de imágenes marcadas como "usada como referencia" ya no puede aumentar, se puede usar una marca de imagen de referencia de ventana deslizante, que básicamente marca la imagen de referencia decodificada más temprano (en orden de decodificación) como no usada como referencia.
Se ha notado aquí que, de manera sorprendente, la disposición del marcado de imágenes de referencia se puede modificar de cierta manera de modo que, en el mismo procedimiento, se puede construir y/o gestionar al menos una lista de imágenes de referencia. Para un experto, la mera adición de un sistema de gestión de listas a la disposición de marcado conduciría a un sistema con ineficiencias en términos de codificación. Sin embargo, en las presentes realizaciones de ejemplo, de manera sorprendente se han logrado eficiencias mediante el empleo de una sinergia entre el procedimiento de marcado de imágenes de referencia y un procedimiento de gestión de listas y/o mediante el empleo de otras diversas mejoras de codificación.
Una estructura de sintaxis de listas de imágenes de referencia puede incluir tres partes, una descripción de la lista 0 de imágenes de referencia para los segmentos P y B, una descripción de la lista 1 de imágenes de referencia para los segmentos B y una descripción de la lista inactiva de imágenes de referencia para cualquier segmento, incluyendo aquellas imágenes de referencia que no están incluidas en ninguna de las listas 0 o 1 de imágenes de referencia, pero que aún se deben mantener marcadas como "usada como referencia". En otras palabras, puede haber, por ejemplo, una estructura de sintaxis (en lugar de más de una) que proporcione la información tanto para el marcado de imágenes de referencia como para la construcción de la lista de imágenes de referencia.
Cuando comienza la decodificación de un segmento, se puede analizar la estructura de sintaxis de las listas de imágenes de referencia. Para los segmentos P y B, la estructura de sintaxis incluye una descripción de la lista de imágenes de referencia para la lista 0, la cual se codifica. La estructura de sintaxis de descripción de la lista de imágenes de referencia puede enumerar las imágenes identificadas por su valor de recuento de orden de las imágenes (POC) en el orden en que aparecen en la lista de imágenes de referencia. Para los segmentos B, la estructura de sintaxis de las listas de imágenes de referencia puede incluir una descripción de la lista de imágenes de referencia para la lista 1, la cual se decodifica.
Un procedimiento de inicialización de la lista de imágenes de referencia y/o un procedimiento de modificación de la lista de imágenes de referencia se pueden omitir, y las listas de imágenes de referencia se pueden describir directamente en las estructuras de sintaxis.
Adicionalmente, o en su lugar, la estructura de sintaxis de las listas de imágenes de referencia puede incluir una descripción de la lista de imágenes de referencia para una lista inactiva de imágenes de referencia, la cual, si está presente, se decodifica.
Las imágenes que están en cualquiera de las listas de imágenes de referencia se pueden marcar como "usada como referencia". Las imágenes que no están en la lista de imágenes de referencia se pueden marcar como "no usada como referencia".
En otras palabras, los procedimientos de construcción de la lista de imágenes de referencia y de marcado de imágenes de referencia y las estructuras de sintaxis se pueden manejar en un único procedimiento unificado y una estructura de sintaxis.
La Figura 1 muestra un diagrama de bloques de un sistema de codificación de vídeo de acuerdo con un ejemplo como un diagrama de bloques esquemático de un aparato o dispositivo electrónico 50 ilustrativo, el cual puede incorporar un códec de acuerdo con una realización de la invención. La Figura 2 muestra un diseño de un aparato de acuerdo con un ejemplo. Los elementos de las Figuras 1 y 2 se explicarán a continuación.
El dispositivo electrónico 50 puede ser, por ejemplo, un terminal móvil o un equipo de usuario de un sistema de comunicación inalámbrica. Sin embargo, se apreciará que las realizaciones de la invención se pueden implementar dentro de cualquier dispositivo o aparato electrónico que pueda requerir codificación y decodificación o codificación o decodificación de imágenes de vídeo.
El aparato 50 puede comprender una carcasa 30 para incorporar y proteger el dispositivo. El aparato 50 puede comprender además un visualizador 32 en forma de pantalla de cristal líquido. En otras realizaciones de la invención, la pantalla puede ser cualquier tecnología de visualización adecuada para visualizar una imagen o un vídeo. El aparato 50 puede comprender además un teclado 34. En otras realizaciones de la invención se puede emplear cualquier mecanismo de interfaz del usuario o datos adecuado. Por ejemplo, la interfaz de usuario se puede implementar como un teclado virtual o un sistema de entrada de datos como parte de una pantalla sensible al tacto. El aparato puede comprender un micrófono 36 o cualquier entrada de audio adecuada la cual puede ser una entrada de señal digital o analógica. El aparato 50 puede comprender además un dispositivo de salida de audio, el cual, en las realizaciones de la invención, puede ser cualquiera de: un auricular 38, un altavoz o una conexión de salida de audio analógica o digital. El aparato 50 puede comprender además una batería 40 (o en otras realizaciones de la invención, el dispositivo se puede alimentar por cualquier dispositivo de energía móvil adecuado tal como una célula solar, una célula de combustible o un generador de relojería). El aparato puede comprender además un puerto de infrarrojos 42 para la comunicación de línea de visión de corto alcance con otros dispositivos. En otras realizaciones, el aparato 50 puede comprender además cualquier solución de comunicación de corto alcance adecuada tal como, por ejemplo, una conexión inalámbrica Bluetooth o una conexión por cable USB/Firewire.
El aparato 50 puede comprender un controlador 56 o un procesador para controlar el aparato 50. El controlador 56 se puede conectar a la memoria 58 la cual, en las realizaciones de la invención, puede almacenar tanto datos en forma de imagen como datos de audio y/o también puede almacenar instrucciones para la implementación en el controlador 56. El controlador 56 se puede conectar además a un circuito del códec 54 adecuado para llevar a cabo la codificación y decodificación de datos de audio y/o vídeo o ayudar en la codificación y decodificación llevada a cabo por el controlador 56.
El aparato 50 puede comprender además un lector de tarjetas 48 y una tarjeta inteligente 46, por ejemplo, un lector de UICC y UICC para proporcionar información de usuario y ser adecuado para proporcionar información de autenticación para la autenticación y autorización del usuario en una red.
El aparato 50 puede comprender un circuito de interfaz de radio 52 conectado al controlador y adecuado para generar señales de comunicación inalámbrica, por ejemplo, para la comunicación con una red celular de comunicaciones, un sistema de comunicaciones inalámbricas o una red de área local inalámbrica. El aparato 50 puede comprender además una antena 44 conectada al circuito de interfaz de radio 52 para transmitir las señales de radiofrecuencia generadas en el circuito de interfaz de radio 52 a otro(s) aparato(s) y para recibir las señales de radiofrecuencia de otro(s) aparato(s).
En algunos ejemplos, el aparato 50 comprende una cámara capaz de grabar o detectar fotogramas individuales los cuales luego se pasan al códec 54 o controlador para su procesamiento. En algunas realizaciones de la invención, el aparato puede recibir los datos de la imagen de vídeo para su procesamiento desde otro dispositivo antes de la transmisión y/o almacenamiento. En algunas realizaciones de la invención, el aparato 50 puede recibir, ya sea de manera inalámbrica o mediante una conexión por cable, la imagen para la codificación/decodificación.
La Figura 3 muestra una disposición para codificación de vídeo que comprende una pluralidad de aparatos, redes y elementos de red de acuerdo con un ejemplo. Con respecto a la Figura 3, se muestra un ejemplo de un sistema dentro del cual se pueden utilizar realizaciones de la presente invención. El sistema 10 comprende múltiples dispositivos de comunicación, los cuales se pueden comunicar a través de una o más redes. El sistema 10 puede comprender cualquier combinación de redes por cable o inalámbricas que incluyen, pero sin limitarse a, una red de telefonía celular inalámbrica (tal como una red GSM, UMTS, CDMA, etc.), una red de área local inalámbrica (WLAN) tal como la definida por cualquiera de los estándares IEEE 802.x, una red de área personal Bluetooth, una red de área local Ethernet, una red de área local en configuración de anillo con paso de testigo, una red de área amplia e Internet.
El sistema 10 puede incluir tanto dispositivos o aparatos 50 de comunicación por cable como inalámbrica adecuados para implementar las realizaciones de la invención. Por ejemplo, el sistema mostrado en la Figura 3 muestra una red de telefonía móvil 11 y una representación de Internet 28. La conectividad a Internet 28 puede incluir, pero no se limita a, conexiones inalámbricas de largo alcance, conexiones inalámbricas de corto alcance y diversas conexiones por cable, que incluyen, pero sin limitarse a, líneas telefónicas, líneas de cable, líneas de energía y vías de comunicación similares.
Los dispositivos de comunicación de ejemplo mostrados en el sistema 10 pueden incluir, pero no se limitan a, un dispositivo o aparato electrónico 50, una combinación de un asistente digital personal (PDA) y un teléfono móvil 14, un PDA 16, un dispositivo de mensajería integrado (IMD) 18, un ordenador de escritorio 20, un ordenador portátil 22. El aparato 50 puede ser fijo o móvil cuando lo lleva un individuo que se está moviendo. El aparato 50 también se puede ubicar en un modo de transporte que incluyen, pero sin limitarse a, un automóvil, un camión, un taxi, un autobús, un tren, un bote, un avión, una bicicleta, una motocicleta o cualquier modo de transporte adecuado similar.
Algunos o más aparatos pueden enviar y recibir llamadas y mensajes y comunicarse con proveedores de servicios a través de una conexión inalámbrica 25 a una estación base 24. La estación base 24 se puede conectar a un servidor de red 26 que permite la comunicación entre la red de telefonía móvil 11 e Internet 28. El sistema puede incluir dispositivos de comunicación adicionales y dispositivos de comunicación de diversos tipos.
Los dispositivos de comunicación se pueden comunicar mediante el uso de diversas tecnologías de transmisión que incluyen, pero sin limitarse a, acceso múltiple por división de código (CDMA), sistemas globales para comunicaciones móviles (GSM), sistema universal de telecomunicaciones móviles (UMTS), acceso múltiple por división de tiempo (TDMA), acceso múltiple por división de frecuencia (FDMA), protocolo de control de transmisiónprotocolo de Internet (TCP-IP), servicio de mensajería corta (SMS), servicio de mensajería multimedia (MMS), correo electrónico, servicio de mensajería instantánea (IMS), Bluetooth, IEEE 802.11 y cualquier tecnología de comunicación inalámbrica similar. Un dispositivo de comunicaciones involucrado en la implementación de diversas realizaciones de la presente invención se puede comunicar mediante el uso de diversos medios que incluyen, pero sin limitarse a, radio, infrarrojos, láser, conexiones de cable y cualquier conexión adecuada.
Las Figuras 4a y 4b muestran diagramas de bloques para la codificación y decodificación de vídeo de acuerdo con una realización de ejemplo.
La Figura 4a muestra que el codificador comprende un predictor de píxeles 302, un codificador de errores de predicción 303 y un decodificador de errores de predicción 304. La Figura 4a también muestra una realización del predictor de píxeles 302 que comprende un inter-predictor 306, un intra-predictor 308, un selector de modo 310, un filtro 316 y una memoria de fotogramas de referencia 318. En esta realización, el selector de modo 310 comprende un procesador de bloques 381 y un evaluador de costos 382. El codificador puede comprender además un codificador por entropía 330 para codificar la entropía del flujo de bits.
La Figura 4b representa una realización del inter predictor 306. El inter predictor 306 comprende un selector de fotogramas de referencia 360 para seleccionar el fotograma o los fotogramas de referencia, un definidor de vectores de movimiento 361, un modificador de lista de predicción 363 y un selector de vector de movimiento 364. Estos elementos o algunos de ellos pueden ser parte de un procesador de predicción 362 o se pueden implementar mediante el uso de otros medios.
El predictor de píxeles 302 recibe la imagen 300 a codificar tanto en el inter-predictor 306 (el cual determina la diferencia entre la imagen y un fotograma de referencia compensado por movimiento 318) como en el intra-predictor 308 (el cual determina una predicción para un bloque de imágenes basado sólo en las partes ya procesadas del fotograma o imagen actual). La salida tanto del inter-predictor como del intra-predictor se pasan al selector de modo 310. Tanto el inter-predictor 306 como el intra-predictor 308 pueden tener más de un modo de intra-predicción. Por lo tanto, la inter-predicción y la intra-predicción se pueden realizar para cada modo y la señal predicha se puede proporcionar al selector de modo 310. El selector de modo 310 también recibe una copia de la imagen 300.
El selector de modo 310 determina qué modo de codificación usar para codificar el bloque actual. Si el selector de modo 310 decide usar un modo de inter-predicción, pasará la salida del predictor 306 a la salida del selector de modo 310. Si el selector de modo 310 decide usar un modo de intra-predicción, pasará la salida de uno de los modos del intra-predictor a la salida del selector de modo 310.
El selector de modo 310 puede usar, en el bloque evaluador de costos 382, por ejemplo, funciones lagrangianas de costo para elegir entre los modos de codificación y sus valores de parámetros, tales como vectores de movimiento, índices de referencia y dirección de intra predicción, usualmente en base a los bloques. Este tipo de función de costo usa un factor de ponderación A para unir la distorsión de la imagen (exacta o estimada) debido a los procedimientos de codificación con pérdida y la cantidad (exacta o estimada) de información que se requiere para representar los valores de píxeles en un área de imagen: C = D AR, donde C es el costo lagrangiano a minimizar, D es la distorsión de la imagen (por ejemplo, el Error Cuadrático Medio) con el modo y sus parámetros, y R el número de bits necesarios para representar los datos requeridos para reconstruir el bloque de imágenes en el decodificador (por ejemplo, incluyendo la cantidad de datos para representar los vectores de movimiento candidatos).
La salida del selector de modo se pasa a un primer dispositivo sumador 321. El primer dispositivo sumador puede restar la salida del predictor de píxeles 302 de la imagen 300 para producir una primera señal de error de predicción 320, la cual se introduce en el codificador de errores de predicción 303.
El predictor de píxeles 302 recibe además de un reconstructor preliminar 339 la combinación de la representación de predicción del bloque de imágenes 312 y la salida 338 del decodificador de errores de predicción 304. La imagen reconstruida preliminarmente 314 se puede pasar al intra-predictor 308 y a un filtro 316. El filtro 316 que recibe la representación preliminar puede filtrar la representación preliminar y generar una imagen reconstruida final 340, la cual se puede guardar en una memoria de fotogramas de referencia 318. La memoria de fotogramas de referencia 318 se puede conectar al inter predictor 306 para usarse como la imagen de referencia con la que se compara la imagen futura 300 en las operaciones de inter-predicción. En muchas realizaciones, la memoria de fotogramas de referencia 318 puede ser capaz de almacenar más de una imagen decodificada, y el inter-predictor 306 puede usar una o más de ellas como imágenes de referencia contra las cuales se compara la imagen futura 300 en las operaciones de inter predicción. En algunos casos, la memoria de fotogramas de referencia 318 también se puede denominar como Búfer de Imágenes Decodificadas
El funcionamiento del predictor de píxeles 302 se puede configurar para llevar a cabo cualquier algoritmo de predicción de píxeles conocido en la técnica.
El predictor de píxeles 302 puede comprender además un filtro 385 para filtrar los valores predichos antes de emitirlos desde el predictor de píxeles 302.
El funcionamiento del codificador de errores de predicción 302 y el decodificador de errores de predicción 304 se describirá en lo adelante con más detalle. En los siguientes ejemplos, el codificador genera imágenes en términos de macrobloques de 16x16 píxeles, los cuales van a formar la foto o imagen completa. Sin embargo, se nota que la Figura 4a no se limita al tamaño de bloque 16x16, sino que se puede usar cualquier tamaño y forma de bloque en general, y del mismo modo, la Figura 4a no se limita a la división de una imagen en macrobloques, sino que se puede usar cualquier otra división de imágenes en bloques, tales como unidades de codificación. Por tanto, para los siguientes ejemplos, el predictor de píxeles 302 emite una serie de macrobloques predichos de tamaño 16x16 píxeles y el primer dispositivo sumador 321 emite una serie de macrobloques de datos residuales de 16x16 píxeles que pueden representar la diferencia entre un primer macrobloque en la imagen 300 contra un macrobloque predicho (salida del predictor de píxeles 302).
El codificador de errores de predicción 303 comprende un bloque de transformación 342 y un cuantificador 344. El bloque de transformación 342 transforma la primera señal de error de predicción 320 en un dominio de transformación. La transformación es, por ejemplo, la transformada DCT o su variante. El cuantificador 344 cuantifica la señal del dominio de transformación, por ejemplo, los coeficientes de la DCT, para formar los coeficientes cuantificados.
El decodificador de errores de predicción 304 recibe la salida del codificador de errores de predicción 303 y produce una señal de error de predicción 338 la cual, cuando se combina con la representación de predicción del bloque de imágenes 312 en el segundo dispositivo sumador 339 produce la imagen reconstruida preliminarmente 314. Se puede considerar que el decodificador de errores de predicción comprende un decuantificador 346, el cual decuantifica los valores de los coeficientes cuantificados, por ejemplo, los coeficientes de la DCT, para reconstruir la señal de transformación aproximadamente y un bloque de transformación inversa 348, el cual realiza la transformación inversa a la señal de transformación reconstruida en el que la salida del bloque de transformación inversa 348 contiene el (los) bloque(s) reconstruido(s). El decodificador de errores de predicción puede comprender además un filtro de macrobloque (no mostrado) que puede filtrar el macrobloque reconstruido de acuerdo con la información adicional decodificada y los parámetros del filtro.
A continuación, se describirá con más detalle el funcionamiento de una realización ilustrativa del inter predictor 306. El inter predictor 306 recibe el bloque actual para la inter predicción. Se supone que para el bloque actual ya existen uno o más bloques vecinos que se han codificado y se han definido vectores de movimiento para ellos. Por ejemplo, el bloque del lado izquierdo y/o el bloque encima del bloque actual pueden ser tales bloques. Las predicciones de los vectores de movimiento espacial para el bloque actual se pueden formar, por ejemplo, mediante el uso de los vectores de movimiento de bloques vecinos codificados y/o de bloques no vecinos en el mismo segmento o fotograma, mediante el uso de funciones lineales o no lineales de predicciones de vectores de movimiento espacial, mediante el uso de una combinación de diversos predictores de vectores de movimiento espacial con operaciones lineales o no lineales o mediante cualquier otro medio apropiado que no haga uso de información de referencia temporal. También puede ser posible obtener predictores de los vectores de movimiento combinando tanto información de predicción espacial como temporal de uno o más bloques codificados. Estos tipos de predictores de vectores de movimiento también se pueden denominar como predictores de vectores de movimiento espaciotemporales.
Los fotogramas de referencia usados en la codificación se pueden almacenar en la memoria de fotogramas de referencia. Cada fotograma de referencia se puede incluir en una o más de las listas de imágenes de referencia, dentro de una lista de imágenes de referencia, cada entrada tiene un índice de referencia que identifica el fotograma de referencia. Cuando un fotograma de referencia ya no se usa como fotograma de referencia, se puede eliminar de la memoria de fotogramas de referencia o marcar como "no usado como referencia" o un fotograma que no es de referencia en el que la ubicación de almacenamiento de ese fotograma de referencia se puede ocupar para un nuevo fotograma de referencia.
El marcado de imágenes de referencia puede ser en base a la presencia de una imagen en cualquiera de las listas de imágenes de referencia, por ejemplo, la lista 0 de imágenes de referencia, la lista 1 de imágenes de referencia y una lista inactiva de imágenes de referencia. Una imagen no presente en cualquiera de estas listas se puede marcar como "no usada como referencia". Puede no ser necesaria una sintaxis de marcado de imagen de referencia decodificada en la codificación, transmisión y decodificación, lo cual puede simplificar el procedimiento de codificación y también reducir la necesidad de señalización, aumentando posiblemente de esta manera la eficacia de la codificación.
La Figura 5 ilustra el manejo de imágenes de referencia en un decodificador de acuerdo con una realización de ejemplo.
Como resultado de la decodificación de imágenes anteriores, existen cinco imágenes de referencia decodificadas 510 marcadas como "usada como referencia", cuando el procedimiento de decodificación 530 de una imagen codificada que tiene un POC igual a X6 está a punto de comenzar. Las cinco imágenes de referencia decodificadas 510 tienen valores de POC iguales a X1 , X2 , X3 , X4y X5 , respectivamente.
La imagen codificada que tiene el POC igual a X6 contiene estructuras de sintaxis de descripción de la lista de imágenes de referencia 520 para la lista 0 de imágenes de referencia, la lista 1 de imágenes de referencia y la lista inactiva de imágenes de referencia. Estas estructuras de sintaxis 520 indican valores de POC que se deben incluir en las respectivas listas de imágenes de referencia. Para ser más exactos, las estructuras sintácticas indican que las imágenes de referencia decodificadas que tienen valores de POC iguales a X1 y X3 , en el orden indicado, se incluyen en la lista 0 de imágenes de referencia, la imagen de referencia decodificada que tiene un valor de POC igual a X2 se incluye en la lista 1 de imágenes de referencia, y la imagen de referencia decodificada que tiene un valor de POC igual a X5 se incluye en la lista inactiva de imágenes de referencia.
El procedimiento de decodificación 530 para la imagen codificada que tiene un POC igual a X6 incluye un procedimiento unificado de construcción de listas de imágenes de referencia y de marcado de imágenes de referencia. Las listas de imágenes de referencia se construyen a partir de las estructuras de sintaxis de descripción de la lista de imágenes de referencia (ilustradas por las flechas discontinuas hacia adentro). Las imágenes de referencia que están en cualquiera de las tres listas (lista 0 de imágenes de referencia, lista 1 de imágenes de referencia o la lista inactiva de imágenes de referencia) se marcan como "usada como referencia" (ilustradas por las flechas discontinuas hacia afuera) y, por lo tanto, están disponibles también como imágenes de referencia para la decodificación de la imagen codificada posterior. Las imágenes de referencia que no están en ninguna de las tres listas, es decir, las imágenes de referencia con un POC igual a X4 en este caso, se marcan como "no usada como referencia" y, por lo tanto, no se usan como imágenes de referencia para la decodificación de cualquier imagen codificada posterior. Si una imagen está marcada como "no usada como referencia" y ya se ha emitido desde el decodificador, se puede eliminar o el espacio de memoria usado para ella puede reutilizarse para otra imagen decodificada.
El procedimiento de decodificación de la imagen codificada con un POC igual a X6 usa la lista 0 de imágenes de referencia y la lista 1 y puede usar cualquier imagen de referencia decodificada en estas dos listas. El procedimiento de decodificación de la imagen codificada que tiene un POC igual a X6 no usa las imágenes de referencia decodificadas que están en la lista inactiva de imágenes de referencia o que están marcadas como "no usada como referencia", ambas ilustradas con el sombreado gris en la Figura 5.
En este ejemplo, la imagen codificada que tiene un POC igual a X6 es una imagen de referencia (es decir, nal_ref_idc es mayor que 0). Por tanto, la imagen de referencia decodificada que tiene un POC igual a X6 está marcada como "usada como referencia" y está disponible para decodificar las imágenes codificadas posteriores. El procedimiento de decodificación 560 luego continúa para la imagen posterior, es decir, la imagen codificada 550 que tiene un POC igual a X7 de manera similar al procedimiento de decodificación 530 para la imagen codificada que tiene un POC igual a X6.
Las listas de imágenes de referencia se pueden especificar a través de una estructura de sintaxis de descripción de la lista de imágenes de referencia. Puede existir una estructura de descripción de la lista de imágenes de referencia para cada lista de imágenes de referencia en la estructura de sintaxis de listas de imágenes de referencia ref_pic_lists(). La estructura de sintaxis ref_pic_lists() puede residir en un conjunto de parámetros de la imagen (PPS) o en un encabezado de segmento, por ejemplo. Se puede omitir un procedimiento de inicialización de la lista de imágenes de referencia, proporcionando de esta manera simplicidad y eficacia en la codificación. La estructura de sintaxis de modificación de la lista de imágenes de referencia y el procedimiento de decodificación para la misma también se pueden eliminar con el fin de proporcionar simplicidad a través de la gestión unificada de la lista y el procedimiento de marcado de imágenes de referencia.
En lugar de una lista desordenada de imágenes de referencia, se pueden proporcionar listas de imágenes de referencia ordenadas (0, 1 e Inactiva). Con esta disposición, la inicialización y modificación de la lista de imágenes de referencia se pueden volver innecesarias y se pueden evitar los procedimientos de codificación y decodificación y los elementos de sintaxis correspondientes.
Se nota que, aunque las imágenes de referencia en la lista inactiva de imágenes de referencia tienen un orden específico determinado por la estructura de sintaxis de descripción de la lista de imágenes de referencia, normalmente no existen requisitos específicos en el orden en el cual el codificador debe enumerar las imágenes de referencia inactivas. En cierto sentido, la lista inactiva de imágenes de referencia a menudo se puede considerar una lista desordenada o un conjunto.
En general, los decodificadores pueden no recibir una imagen codificada que haya sido una parte del flujo de bits codificado por dos razones: o la imagen codificada se perdió accidentalmente durante la transmisión o en un medio de almacenamiento, o la imagen codificada se eliminó intencionalmente, por ejemplo, para ajustar la tasa de bits o la complejidad de la decodificación o para proporcionar una funcionalidad especial, tal como la reproducción de avance rápido. La respuesta del decodificador a una imagen codificada que falta a menudo debe diferir en base a si la pérdida de imagen fue accidental o intencional. Por ejemplo, si la pérdida de imagen fue accidental, el decodificador puede ocultar la imagen perdida, solicitar una retransmisión de la imagen perdida o informar al codificador del extremo lejano que no use la imagen perdida como imagen de referencia para las imágenes codificadas posteriores. Por el contrario, si la pérdida de imagen fue intencionada, el decodificador usualmente debería simplemente continuar decodificando. Con el fin de diferenciar entre las imágenes codificadas que faltan accidentalmente e intencionalmente, una lista desordenada de imágenes de referencia también debe contener información adicional por cada imagen de referencia, tal como el temporaljd de la imagen de referencia o información sobre si la imagen de referencia se usa como referencia para la imagen actual a decodificar. Entonces, si la lista desordenada de imágenes de referencia incluye una imagen de referencia, la cual se indica como una imagen de referencia potencial para la imagen actual a decodificar, por ejemplo, al tener un valor de temporal_id menor que el de la imagen actual, y esa imagen de referencia no se ha decodificado, se puede concluir que la imagen de referencia se ha perdido accidentalmente. A diferencia de la lista desordenada de imágenes de referencia y la posterior inicialización de la lista de imágenes de referencia, puede no ser necesario dar la identificación temporal temporaljd o si la imagen de referencia se usa como referencia para la imagen actual a decodificar para las imágenes de referencia porque las listas de imágenes de referencia se especifican de manera explícita, por ejemplo, a través de los valores de POC. Por lo tanto, si una lista de imágenes de referencia especificada de manera explícita contiene una imagen de referencia que no ha sido decodificada, se puede concluir que la imagen de referencia se ha perdido accidentalmente.
Incluir listas de imágenes de referencia de la estructura de sintaxis ref_pic_lists() en un conjunto de parámetros de la imagen (PPS) puede ser beneficioso para un grupo regular de imágenes (GOP) y/o estructuras de predicción, por ejemplo. En otras palabras, el marcado de imágenes de referencia descrito y/o la estructura de manejo de la lista de imágenes de referencia se pueden formar y transmitir en un conjunto de parámetros de imagen o en otra estructura que se pueda usar para más de un segmento de imagen y/o para más de una imagen. En el caso de que la estructura de un grupo de imágenes (GOP) permanezca igual o esencialmente igual, la descripción de la lista de imágenes de referencia (marcado y gestión de listas) puede permanecer esencialmente igual para una pluralidad de segmentos, una pluralidad de imágenes e incluso para una pluralidad de grupos de imágenes (GOP). Alternativamente o en adición al PPS, la estructura de sintaxis de las listas de imágenes de referencia ref_pic_lists() se puede incluir en otros tipos de conjuntos de parámetros, tales como el conjunto de parámetros de secuencia (SPS) o el conjunto de parámetros de adaptación (APS).
Si la estructura de sintaxis ref_pic_lists() está presente en estructuras de sintaxis de múltiples niveles, tal como tanto en PPS como en el encabezado de segmento, que están activos o en vigor, puede haber reglas específicas, una o varias de las estructuras de sintaxis están en vigor y se usan en el decodificador. Por ejemplo, se puede especificar que ref_pic_lists() en el encabezado del segmento (si está presente) anula la del APS (si está presente) que anula la del PPS (si está presente) que anula la del SPS (si está presente). En algunas realizaciones, el elemento de sintaxis ref_pic_lists() o similar en un nivel de la jerarquía de la estructura de codificación puede incluir sólo algunas de las listas de imágenes de referencia, en cuyo caso puede haber reglas específicas de cuya estructura de sintaxis se heredan las otras listas de imágenes de referencia. Por ejemplo, se puede especificar que si cualquier lista de imágenes de referencia falta en las ref_pic_lists() del encabezado del segmento se hereda de las respectivas listas de imágenes de referencia en las ref_pic_lists() del PPS activo.
Se puede añadir una lista inactiva de imágenes de referencia a una sintaxis de modo que se pueda usar una lista inactiva de imágenes de referencia en el codificador para transmitir la información de las imágenes de referencia inactivas al decodificador. La lista inactiva de imágenes de referencia puede contener imágenes de referencia que no se usan como referencia en la imagen actual, pero se pueden usar como referencia en imágenes posteriores en el orden de decodificación. En otras palabras, la lista inactiva de imágenes de referencia puede servir como una estructura donde las imágenes de referencia se colocan para un uso posterior, ya que es posible que todavía no estén marcadas como "no usada como referencia". En comparación con incluir todas las imágenes marcadas como "usada como referencia" en al menos una de las listas de imágenes de referencia 0 y 1, colocar algunas de las imágenes de referencia en otra lista, tal como la lista inactiva de imágenes de referencia, puede, por ejemplo, mejorar la eficacia de la codificación para el imagen actual porque sólo las imágenes usadas como referencia para la imagen actual están en la(s) lista(s) de imágenes de referencia activas, por ejemplo, la lista 0 y la lista 1. El concepto de lista inactiva de imágenes de referencia se puede usar con un procedimiento tradicional de gestión y marcado de listas de imágenes de referencia y/o con el procedimiento unificado de gestión y marcado de listas de imágenes de referencia descrito en la presente memoria.
En algunas realizaciones, la lista 0 y la lista 1 de imágenes de referencia pueden contener imágenes de referencia que están indicadas como no usada como referencia para el segmento actual. Por ejemplo, un índice de referencia más allá de num_ref_idx_10_active_minus1 se puede no usar como referencia para el segmento actual. Se puede especificar que tales imágenes de referencia no referenciadas en la lista 0 y la lista 1 de imágenes de referencia se marcan como "usada como referencia". Alternativamente, se puede especificar que, si una imagen de referencia sólo se incluye como imagen de referencia no referenciada en la lista 0 o la lista 1 y no en la lista inactiva de imágenes de referencia o como imagen de referencia referenciada en la lista 0 o la lista 1, se marca como "no usada como referencia". Alternativamente, la regla de marcado deseada entre las dos mencionadas anteriormente o cualquier otra regla de marcado determinista se puede controlar por el codificador e indicar en el flujo de bits, por ejemplo, en la sintaxis del conjunto de parámetros de secuencia (SPS). Incluir una imagen de referencia como una imagen de referencia no referenciada en la lista 0 o la lista 1 puede ser preferente en lugar de incluirla en la lista inactiva de imágenes de referencia, por ejemplo, si se consumen menos bits en la codificación.
En algunas realizaciones, el codificador puede omitir la inclusión de la descripción de la lista de imágenes de referencia para la lista inactiva de imágenes de referencia en el flujo de bits, si las listas de imágenes de referencia 0 y 1 ya contienen un número máximo de imágenes de referencia únicas. En otras palabras, la presencia de la descripción de la lista inactiva de imágenes de referencia se podría condicionar a si la lista 0 y la lista 1 de imágenes de referencia contienen menos de la cantidad máxima de imágenes de referencia únicas.
En algunas realizaciones, formar una estructura y transmitir la lista inactiva de imágenes de referencia se puede evitar o se puede enviar opcionalmente. En este caso, el decodificador hereda el marcado de la imagen de referencia como "usada como referencia" o "no usada como referencia" de la imagen decodificada anterior. Si el número de imágenes de referencia es igual (o mayor que) el número máximo de imágenes de referencia determinado en el conjunto de parámetros de secuencia (SPS) activo y/o por el perfil y nivel de codificación en uso y la imagen actual es una imagen de referencia, una imagen de referencia la cual está marcada como "usada como referencia" se selecciona para marcarla como "no usada como referencia". Para este propósito (es decir, si se necesitan uno o más intervalos nuevos en la lista inactiva de imágenes de referencia), puede haber una regla de acuerdo con la cual una imagen de referencia se marque como "no usada como referencia". Tal regla o algoritmo puede estar presente de manera inherente en el decodificador, o se puede comunicar desde el codificador al decodificador con un identificador de regla. Por ejemplo, primero las imágenes de referencia que están en cualquiera de las listas de imágenes de referencia (por ejemplo, la lista 0 de imágenes de referencia, la lista 1 de imágenes de referencia y la lista inactiva de imágenes de referencia) se omiten de consideración, y luego la imagen de referencia que es la primera en el orden de decodificación entre las imágenes de referencia restantes se selecciona para marcarlo como "no usada como referencia". En consecuencia, se requiere incluir una imagen en la estructura de sintaxis de la lista de imágenes de referencia incluidas en inactivas sólo si no se incluye en las otras listas de imágenes de referencia, si se marcó como "no usada como referencia" sin incluirla en la lista de imágenes referencia inactivas, y si el codificador desea mantenerla marcada como "usada como referencia". En consecuencia, puede que no se requiera enviar la lista inactiva de imágenes de referencia al decodificador, o se puede enviar con menos frecuencia o puede contener menos imágenes. Además, la detección de una pérdida de imagen se puede retrasar hasta que la siguiente imagen tenga una identificación temporal igual o superior (por ejemplo, temporal_id) que la imagen perdida, porque sólo aquellas imágenes se pueden referir a la imagen perdida en el procedimiento de inter predicción y, por lo tanto, tener la imagen perdida en la lista 0 o lista 1 de imágenes de referencia.
En algunas realizaciones, el algoritmo para seleccionar la(s) imagen (imágenes) a marcar como "no usada como referencia" de la lista inactiva de imágenes de referencia se puede indicar por el codificador en el flujo de bits, por ejemplo, en la sintaxis del conjunto de parámetros de secuencia (SPS). Por ejemplo, una indicación o valor de elemento de sintaxis puede indicar que cualquier imagen que no esté en la lista 0 de imágenes de referencia, la lista 1 de imágenes de referencia o la lista inactiva de imágenes de referencia se marca como "no usada como referencia". Otra indicación o valor de elemento de sintaxis puede indicar que la transmisión de la lista inactiva de imágenes de referencia es opcional y que la imagen de referencia a marcar como "no usada como referencia" se selecciona como la más antigua (en orden de decodificación) de las imágenes de referencia que no están incluidas en ninguna lista de imágenes de referencia.
En algunas realizaciones, una imagen de referencia decodificada recientemente (por ejemplo, una imagen que tiene nal_ref_idx mayor que 0 en el HEVC) se agrega por defecto en la lista inactiva de imágenes de referencia para imágenes posteriores. En algunas realizaciones, el algoritmo para seleccionar la(s) imagen (imágenes) a incluir en la lista inactiva de imágenes de referencia se puede indicar por el codificador en el flujo de bits, por ejemplo, en la sintaxis del SPS. Por ejemplo, se puede indicar en el SPS que está en uso la escalabilidad temporal anidada y, por lo tanto, una imagen en el temporal_id igual a TID no usa ninguna imagen que tenga el mismo temporal_id o superior como referencia. En consecuencia, se puede indicar en el SPS que una imagen se incluye en la lista inactiva de imágenes de referencia sólo si tiene un temporal_id que es menor que el temporal_id máximo del flujo de bits.
Las imágenes de referencia se pueden identificar con un recuento de orden de las imágenes (POC) en la descripción de la lista de imágenes de referencia. El POC de la imagen actual se puede indicar con elementos de sintaxis en el encabezado del segmento. En algunas realizaciones, se puede usar un modo de codificación para el POC, por ejemplo, para reducir las opciones de implementación, mientras que en otras realizaciones se puede permitir más de un procedimiento para codificar el POC, por ejemplo, se pueden usar tres opciones como se especifica en el H.264/AVC para mejorar la eficacia de la codificación. Los elementos de sintaxis relacionados con los otros tipos de POC se pueden, por tanto, eliminar de la sintaxis y simplificar la codificación. El procedimiento de decodificación del POC, las ecuaciones relacionadas con un POC (por ejemplo, diferencias del pOc ) y la salida de imágenes en el decodificador de referencia hipotético (HRD) se pueden adaptar de procedimientos existentes, por ejemplo, del códec H.264/AVC.
En algunas realizaciones, las imágenes de referencia se pueden identificar con un identificador de imagen diferente o adicional que el recuento de orden de las imágenes (POC) en la descripción de la lista de imágenes de referencia. Por ejemplo, algunas realizaciones pueden usar el frame_num. Algunas realizaciones pueden usar una combinación del POC y un identificador de vista para la codificación de vídeo multivista.
Algunos elementos relacionados con la numeración de fotogramas en la sintaxis, tales como los elementos de sintaxis del número de fotogramas frame_num y de los espacios permitidos en el número de fotogramas gaps_in_frame_num_allowed se pueden eliminar y evitar en el procesamiento y la transmisión, ya que puede que no sean ya necesarios para la decodificación del recuento de orden de las imágenes (POC) o para el marcado de imágenes de referencia.
Una estructura de sintaxis de descripción de la lista de imágenes de referencia se puede optimizar en términos de sobrecarga, por ejemplo, cuando la imagen actual tiene un valor de los bits más significativos del recuento de imágenes (POC MSB) diferente al de muchas o la mayoría de las imágenes de referencia. Esto se puede lograr, por ejemplo, mediante el uso de la señalización diferencial o delta en la descripción de la lista de imágenes de referencia, de modo que las imágenes de referencia se identifiquen con respecto a un valor de recuento de orden de las imágenes (POC) base y sólo sea necesario transmitir la diferencia. Esta disposición puede permitir colocar la descripción de la lista de imágenes de referencia de manera flexible, por ejemplo, también en un conjunto de parámetros de la imagen (PPS).
La estructura de sintaxis de descripción de la lista de imágenes de referencia puede usar la codificación diferencial de los valores de los recuentos del orden de las imágenes (POC) para la eficiencia de la compresión, así como para permitir la inclusión de la estructura en un conjunto de parámetros de la imagen (PPS). Además, las diferencias del POC se pueden codificar con una granularidad especificada, y la granularidad en cada identificación temporal temporaljd se puede proporcionar en un conjunto de parámetros de secuencia (SPS). Especificar la granularidad o el intervalo constante de los valores del POC para las imágenes consiguientes en un determinado valor de temporaljd puede ser posible cuando se usa una estructura de GOP constante y puede mejorar la eficiencia de la compresión. Además, se puede controlar con un indicador o similar si todas las diferencias del POC en una única estructura de sintaxis de descripción de la lista de imágenes de referencia tienen el mismo signo. Por ejemplo, se puede especificar que las diferencias de POC para la lista 0 de imágenes de referencia son negativas en comparación con el POC actual, es decir, que los valores de POC de las imágenes de referencia en la lista 0 de imágenes de referencia son menores que el valor de POC de la imagen actual. Finalmente, el POC diferencial se puede codificar en dos partes, donde la primera parte se codifica de longitud fija y la segunda parte se codifica de longitud variable, con el fin de lograr una mejora en la compresión. La parte codificada con longitud fija se puede codificar como un entero sin signo y la longitud o el número de bits de la parte codificada con longitud fija se puede controlar mediante un parámetro en un conjunto de parámetros de secuencia (SPS). Por ejemplo, la longitud de la parte con longitud fija se puede controlar mediante el elemento de sintaxis poc_granularity_minus1 en el conjunto de parámetros de secuencia (SPS). La longitud o el número de bits de la parte codificada con longitud fija también determina la diferencia de POC para un ciclo de POC. La parte codificada con longitud variable puede indicar el número de ciclos de POC entre el POC de la imagen actual y el POC de una imagen en la lista de imágenes de referencia descrita. En otras palabras, las imágenes de "largo plazo" se pueden tratar sumando/restando un ciclo de POC codificado con longitud variable del valor de POC obtenido por la diferencia de POC de longitud fija de "corto plazo" diferencial. La parte de longitud variable puede estar presente opcionalmente, y si la parte de longitud variable no está presente para una imagen, entonces el ciclo de POC de esa imagen es el mismo que el ciclo de POC para la imagen actual.
En algunas realizaciones, el codificador puede controlar la asignación de imágenes como imágenes de referencia a largo plazo (o imágenes marcadas como "usada como referencia a largo plazo") mediante la selección de valores de POC para imágenes y la selección del tamaño del ciclo de POC. Las imágenes de referencia que están incluidas en la lista 0 o la lista 1 de imágenes de referencia y están en el mismo ciclo de POC que la imagen actual se pueden determinar como imágenes de referencia a corto plazo (o imágenes marcadas como "usada como referencia a corto plazo"), mientras que las imágenes restantes en la lista 0 y la lista 1 (que están en un ciclo de POC diferente al de la imagen actual) se determinan como imágenes de referencia a largo plazo (o imágenes marcadas como "usada como referencia a largo plazo). El mismo marcado se realiza en el codificador y, en base a las descripciones de la lista de imágenes de referencia incluidas en el flujo de bits, también en el decodificador. El marcado como "usado como referencia a largo plazo" se puede usar para controlar, por ejemplo, la escala del vector de movimiento en la predicción del vector de movimiento temporal, por ejemplo, en un modo temporal directo o la ponderación de predicción en un modo de predicción ponderada implícita de manera similar a lo que se hace en e1H.264/AVC. En algunas realizaciones, una indicación específica, tal como un indicador, para marcar imágenes como imágenes de referencia a largo plazo se puede incluir en el elemento de sintaxis de descripción de la lista de imágenes de referencia, por ejemplo.
Las Figuras 6a muestra un diagrama de flujo de procedimientos para el manejo de imágenes de referencia de acuerdo con realizaciones de ejemplo.
En el codificador, y para la señal de codificación de vídeo a generar, en la fase 600 se proporciona una indicación de una imagen a usar como referencia. Esta indicación puede comprender la inserción de la imagen de referencia en una de las listas de imágenes de referencia (lista 0 y lista 1 para la imagen actual o lista inactiva para las otras imágenes). Un elemento o sintaxis de marcado independiente en la señal puede no ser necesario, ya que la existencia de una imagen en la lista puede ser suficiente para que no se descarte demasiado pronto.
En la fase 610, la cual puede tener lugar antes o después de la fase 600 o simultáneamente, se puede proporcionar una instrucción para formar una lista de imágenes de referencia. La instrucción puede comprender datos que especifiquen, por ejemplo, una o más listas de imágenes de referencia ordenadas o desordenadas. En otras palabras, las imágenes a colocar en las listas se identifican, por ejemplo, con un identificador del recuento de orden de las imágenes (POC).
En la fase 620, la cual puede tener lugar antes o después de las fases descritas anteriormente o simultáneamente, la indicación y la instrucción se proporcionan en una única sintaxis. Esto puede suceder, por ejemplo, proporcionando una lista ordenada de imágenes de referencia a colocar en una o más listas, por lo que se puede determinar que otras imágenes no se usarán como referencia en la decodificación de imágenes actuales o posteriores.
En el decodificador, y para que se decodifique la señal de codificación de vídeo, una indicación de una imagen a usar como referencia se decodifica a partir de un flujo de bits en la fase 600. Esta indicación puede comprender la inserción de la imagen de referencia en una de las listas de imágenes de referencia (lista 0 y lista 1 para la imagen actual o lista inactiva para las otras imágenes). Un elemento o sintaxis de marcado independiente en la señal puede no ser necesario, ya que la existencia de una imagen en la lista puede ser suficiente para que no se descarte demasiado pronto. El decodificador puede usar esta indicación para mantener la memoria de imagen de referencia, como se describió anteriormente.
En la fase 610, la cual puede tener lugar antes o después de la fase 600 o simultáneamente, se puede decodificar una instrucción para formar una lista de imágenes de referencia a partir de un flujo de bits (usualmente el mismo flujo de bits que el anterior). La instrucción puede comprender datos que especifiquen, por ejemplo, una o más listas de imágenes de referencia ordenadas o desordenadas. En otras palabras, las imágenes a colocar en las listas se identifican, por ejemplo, con un identificador del recuento de orden de las imágenes (POC).
En la fase 620, la cual puede tener lugar antes o después de las fases descritas anteriormente o simultáneamente, la indicación y la instrucción se decodifican a partir de una única sintaxis. Esto puede suceder, por ejemplo, decodificando una lista ordenada de identificadores de imágenes de referencia a colocar en una o más listas, por lo que se puede determinar que otras imágenes no se usarán como referencia en la decodificación de imágenes actuales o posteriores.
Las Figuras 6b muestra un diagrama de flujo de procedimientos para el manejo de imágenes de referencia de acuerdo con realizaciones de ejemplo.
Junto o independientemente de lo anterior, en el codificador o para la señal de datos de vídeo a generar, las imágenes de referencia a usar para la decodificación de otras imágenes distintas de la imagen actual se pueden manejar de la siguiente manera.
En la fase 650, se puede identificar al menos una imagen de referencia a usar para la decodificación de otras imágenes distintas de la imagen actual. En la fase 660, se puede formar una denominada lista inactiva de imágenes de referencia o lista inactiva. En la fase 670, la(s) imagen (imágenes) identificada(s) se puede(n) insertar en la lista y se puede generar una señal que describe la estructura y el contenido de la lista inactiva. Mediante este procedimiento, el marcado por separado de las imágenes a usar como referencia puede no ser necesario, ya que la existencia de una imagen en la lista inactiva puede comunicar al decodificador que la imagen no se puede descartar porque se usará más adelante como imagen de referencia para la decodificación de otras imágenes distintas de la imagen actual.
Junto o independientemente de lo anterior, en el decodificador o para la señal de datos de vídeo a decodificar, las imágenes de referencia a usar para decodificar otras imágenes distintas de la imagen actual se pueden manejar de la siguiente manera.
En la fase 650, al menos un identificador de imagen de referencia a usar para la decodificación de otras imágenes distintas de la imagen actual se puede decodificar a partir de una señal de datos de vídeo. En la fase 660, una denominada lista inactiva de imágenes de referencia o lista inactiva se puede decodificar a partir de la señal de datos de vídeo. En la fase 670, el (los) identificador(es) de las imágenes decodificadas se puede(n) insertar en la lista. El orden de decodificación puede variar, es decir, las fases 650, 660 y 670 se pueden realizar en un orden diferente. A través de este procedimiento, el marcado y el rastreo por separado de las imágenes a usar como referencia, ya que la existencia de una imagen en la lista inactiva puede comunicar al decodificador que la imagen no se puede descartar porque se usará más adelante como una imagen de referencia para la decodificación de otras imágenes distintas de la imagen actual.
La Figura 7 muestra un diagrama de flujo de un procedimiento para manejar imágenes de referencia de acuerdo con una realización de ejemplo.
En el codificador, y para la señal de codificación de vídeo, una indicación de si una imagen se usará como referencia se proporciona en la fase 700. Esta indicación, si indicar una imagen de referencia, puede implicar la inserción de la imagen de referencia en una de las listas de imágenes de referencia (lista 0 y lista 1 para la imagen actual o lista inactiva para las otras imágenes). Un elemento o sintaxis de marcado independiente en la señal puede no ser necesario, ya que la existencia de una imagen en la lista puede ser suficiente para que no se descarte demasiado pronto. En otras palabras, la fase 700 genera el nal_ref_idc para la imagen actual que indica si la imagen actual es una imagen de referencia (nal_ref_idc == 1) o una imagen que no es de referencia (nal_ref_idc == 0).
El bloque 700 se puede realizar para cada imagen, mientras que las fases 710-750 se pueden realizar para las imágenes/segmentos P y B. Las propias listas de imágenes de referencia se pueden formar para cada imagen P y B por separado, aunque la estructura de sintaxis ref_pic_lists() sólo necesita crearse si cambia (por ejemplo, cambian los valores de POC codificados de manera diferencial).
El bloque 700 puede tener lugar antes o después de cualquiera de las fases 710-760 o simultáneamente. El marcado de imagen de referencia de la imagen actual puede ocurrir después de su codificación o decodificación. En la fase 710, se puede proporcionar una instrucción para formar una lista de imágenes de referencia en el flujo de bits. La instrucción puede comprender datos que especifiquen, por ejemplo, una o más listas de imágenes de referencia ordenadas o desordenadas. En otras palabras, las imágenes a colocar en las listas se identifican, por ejemplo, con un identificador del recuento de orden de las imágenes (POC). Por ejemplo, la instrucción puede proporcionar información sobre tres listas de imágenes de referencia, dos para decodificar la imagen actual (lista 0 y lista 1) y una lista inactiva de imágenes de referencia. Las listas pueden ser listas ordenadas.
En la fase 720, los identificadores de POC se pueden codificar con codificación diferencial para mejorar la eficacia de la compresión. Una granularidad de la codificación y un valor de POC de línea base se pueden proporcionar, y se puede codificar la diferencia con respecto al valor de base del POC, es decir, se puede llevar a cabo una codificación diferencial del recuento de orden de las imágenes (POC).
En la fase 730, la cual puede tener lugar antes o después de las fases descritas anteriormente o simultáneamente, la indicación y la instrucción se codifican en una única sintaxis. Esto puede suceder, por ejemplo, codificando una lista ordenada de identificadores de imágenes de referencia a colocar en una o más listas de imágenes de referencia, por lo que otras imágenes se pueden determinar como que no se usarán como referencia en la decodificación de imágenes actuales o posteriores.
Junto o independientemente de lo anterior, en el codificador o para la señal de datos de vídeo a generar, las imágenes de referencia a usar para la decodificación de otras imágenes distintas de la imagen actual se pueden manejar de la siguiente manera.
En la fase 740, se puede identificar al menos una imagen de referencia a usar para la decodificación de otras imágenes distintas de la imagen actual. Se puede formar una denominada lista inactiva de imágenes de referencia o lista inactiva. La(s) imagen (imágenes) identificada(s) se puede(n) insertar en la lista y se puede generar una señal que describe la estructura y el contenido de la lista inactiva. Mediante este procedimiento, el marcado por separado de las imágenes a usar como referencia puede no ser necesario, ya que la existencia de una imagen en la lista inactiva puede comunicar al decodificador que la imagen no se puede descartar porque se usará más adelante como imagen de referencia para la decodificación de otras imágenes distintas de la imagen actual.
En la fase 750, las listas de imágenes de referencia se pueden proporcionar en un conjunto de parámetros de la imagen (PPS) o en un encabezado de segmento. Incluir la estructura de sintaxis de las listas de imágenes de referencia ref_pic_lists() en un conjunto de parámetros de la imagen (PPS) puede ser beneficioso para un grupo de imágenes (GOP) regular y/o estructuras de predicción, por ejemplo. En otras palabras, el marcado de imágenes de referencia descrito y/o la estructura de manejo de la lista de imágenes de referencia se pueden formar y transmitir en un conjunto de parámetros de imagen o en otra estructura que se pueda usar para más de un segmento de imagen y/o para más de una imagen. En el caso de que la estructura de un grupo de imágenes (GOP) permanezca igual o esencialmente igual, la descripción de la lista de imágenes de referencia (marcado y gestión de listas) puede permanecer esencialmente igual para una pluralidad de segmentos, una pluralidad de imágenes e incluso para una pluralidad de grupos de imágenes (GOP).
En la fase 760, los datos de vídeo se codifican mediante el uso del codificador descrito anteriormente o de otro codificador. Una ventaja de las realizaciones de ejemplo descritas en la presente memoria es que, si la estructura de codificación permanece igual, puede no ser necesario retransmitir la información sobre las imágenes de referencia al decodificador, por ejemplo, debido a la codificación diferencial de los identificadores de imagen (valores del POC). En el decodificador, y para decodificar la señal de codificación de vídeo, se decodifica una indicación de si se va a usar una imagen como referencia en la fase 700. Esta indicación puede comprender la inserción de la imagen de referencia en una de las listas de imágenes de referencia (lista 0 y lista 1 para la imagen actual o lista inactiva para las otras imágenes). Un elemento o sintaxis de marcado independiente en la señal puede no ser necesario, ya que la existencia de una imagen en la lista puede ser suficiente para que no se descarte demasiado pronto.
El bloque 700 puede tener lugar antes o después de cualquiera de las fases 710-760 o simultáneamente.
En la fase 710, la cual puede tener lugar antes o después de la fase 700 o simultáneamente, se puede decodificar una instrucción para formar una lista de imágenes de referencia a partir del flujo de bits. La instrucción puede comprender datos que especifiquen, por ejemplo, una o más listas de imágenes de referencia ordenadas o desordenadas. En otras palabras, las imágenes a colocar en las listas se identifican, por ejemplo, con un identificador del recuento de orden de las imágenes (POC). Por ejemplo, la instrucción puede proporcionar información sobre tres listas de imágenes de referencia, dos para decodificar la imagen actual (lista 0 y lista 1) y una lista inactiva de imágenes de referencia. Las listas pueden ser listas ordenadas.
En la fase 720, se pueden decodificar los identificadores de POC codificados de manera diferencial. Se puede proporcionar una granularidad de la codificación y un valor de POC de línea de base, y se puede decodificar la diferencia del valor de base de POC, es decir, se puede llevar a cabo la decodificación diferencial del recuento de orden de imagen (POC).
En la fase 730, la cual puede tener lugar antes o después de las fases descritas anteriormente o simultáneamente, la indicación y la instrucción se decodifican a partir de una única sintaxis. Esto puede suceder, por ejemplo, decodificando una lista ordenada de identificadores de imágenes de referencia a colocar en una o más listas de imágenes de referencia, por lo que se puede determinar que otras imágenes no se usarán como referencia en la decodificación de imágenes actuales o posteriores.
Junto o independientemente de lo anterior, en el decodificador o para la señal de datos de vídeo a decodificar, las imágenes de referencia a usar para decodificar otras imágenes distintas de la imagen actual se pueden manejar de la siguiente manera.
En la fase 740, se puede identificar al menos una imagen de referencia a usar para la decodificación de otras imágenes distintas de la imagen actual mediante la decodificación del flujo de bits. Se puede formar una denominada lista inactiva de imágenes de referencia o lista inactiva. El (Los) identificador(es) de imagen identificado(s) se puede(n) insertar en la lista al tiempo que una señal se puede decodificar describiendo la estructura y el contenido de la lista inactiva. Mediante este procedimiento, el marcado por separado de las imágenes a usar como referencia puede no ser necesario, ya que la existencia de una imagen en la lista inactiva puede comunicar al decodificador que la imagen no se puede descartar porque se usará más adelante como imagen de referencia para la decodificación de otras imágenes distintas de la imagen actual.
En la fase 750 (en cualquier orden con referencia a los pasos 700-740), las listas de imágenes de referencia se pueden decodificar a partir de un conjunto de parámetros de la imagen (PPS) o de un encabezado de segmento. En la fase 760, los datos de vídeo se decodifican mediante el uso del decodificador descrito anteriormente o de otro decodificador. Se puede recibir nueva información de listas de imágenes de referencia desde el flujo de bits. Una ventaja de las realizaciones de ejemplo descritas en la presente memoria es que, si la estructura de codificación permanece igual, puede no ser necesario retransmitir y volver a decodificar la información de las imágenes de referencia en el decodificador, por ejemplo, debido a la codificación diferencial de los identificadores de imagen (valores de POC).
Algunos ejemplos de las características de implementación de las realizaciones de ejemplo anteriores se describen a continuación. En las tablas, ue(v) indica un elemento entero sin signo codificado de longitud variable y, por ejemplo, u(1) indica un elemento entero sin signo codificado de longitud fija de 1 bit y u(v) indica un elemento entero sin signo codificado de longitud fija donde el número de bits está determinado por otros valores del elemento de sintaxis. Los elementos subrayados se han añadido a la sintaxis de acuerdo con realizaciones de ejemplo y los elementos tachados se han omitido.
La sintaxis, la codificación y la decodificación de un conjunto de parámetros de secuencia se pueden modificar como se muestra en la Tabla 1. Los elementos de sintaxis relacionados con los números de fotogramas como el número máximo de fotogramas (log2_max_framenum_minus4) y el indicador que indica que se permiten los espacios en la numeración de fotogramas (gaps_in_frame_num_value_allowed_flag) se pueden eliminar. La granularidad y la diferencia máxima para el recuento del orden de las imágenes en las imágenes de referencia para la imagen actual (poc_granularity_minus1 y max_shortterm_poc_diff_minus1) así como también para las imágenes de referencia a largo plazo, es decir, las imágenes de referencia inactivas (poc_granularity_idle_idx y max_poc_diff_idle_minus1) se dan para cada capa temporal.
Tabla 1. Sintaxis RBSP del conjunto de parámetros de secuencia.
Figure imgf000021_0001
La sintaxis, la codificación y la decodificación de un conjunto de parámetros de imagen se pueden modificar como se muestra en la Tabla 2. El conjunto de parámetros de la imagen se puede modificar para incluir un indicador que indique que el recuento del orden de las imágenes se codifica en el modo diferencial (poc_diff_mode_flag). Si un indicador (pps_ref_pic_lists_flag) indica que las listas de imágenes de referencia están presentes en el conjunto de parámetros de imágenes, se inserta la sintaxis de listas de imágenes de referencia ref_pic_lists(). Esta sintaxis se describe más adelante.
Tabla 2. Sintaxis RBSP del conjunto de parámetros de secuencia
Figure imgf000021_0002
La sintaxis, la codificación y la decodificación del encabezado de un segmento se pueden modificar como se muestra en la Tabla 3. El encabezado del segmento se puede modificar para omitir los elementos del número de fotogramas (frame_num). Si sólo se usa un tipo de recuento de orden de imagen (POC), no es necesario identificar el tipo o usarlo en el procesamiento (pic_order_cnt_type), y los bits menos significativos del recuento de orden de imagen se pueden dar directamente (pic_order_cnt_lsb). Si el conjunto de parámetros de la imagen contiene la estructura de lista de imágenes de referencia, no se necesita una en el encabezado del segmento, de otra manera (pps_ref_pic_lists_flag == 0), la estructura de lista de imágenes de referencia ref_pic_lists() está presente. El elemento de modificación de la lista de imágenes de referencia ref_pic_lists_modification() y el elemento de marcado de la imagen de referencia decodificada dec_ref_pic_marking() se pueden omitir del encabezado del segmento. Además, su implementación exacta no es necesaria en la sintaxis y se puede eliminar la definición de la sintaxis correspondiente.
Tabla 3. Sintaxis de encabezado de segmento
Figure imgf000022_0001
Una semántica RBSP de un conjunto de parámetros de secuencia se puede modificar de la siguiente manera.
Se puede eliminar un log2_max_frame_num_minus4 que especifica el valor de la variable MaxFrameNum que se usa en las derivaciones relacionadas con el frame_num.
Los siguientes elementos pueden estar presentes para describir la codificación del recuento del orden de las imágenes con granularidad y longitud específicas de la palabra de código en la codificación de longitud fija. poc_granularity_minus1[i] 1 especifica que el intervalo de valor de POC de dos imágenes consecutivas cualesquiera en el orden de salida que tengan temporaljd igual o menor que i será j * (poc_granularity_minus1[i] 1), donde j es un número entero positivo. (poc_granularity_minus1[i] 1) será igual a k * (poc_granularity_minus1[i 1] 1), donde k es un número entero positivo e i es mayor que 0.
max_shortterm_poc_diff_minus1[i] 1 especifica la siguiente restricción en las imágenes en la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia. Sea pica una imagen con temporal_id igual a i y sea absPocDiff la diferencia absoluta del valor de POC de pica y el valor de POC de cualquier imagen en la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia de pica en unidades de poc_granularity_minus1[i] 1. max_shortterm_poc_diff_minus1[i] 1 será mayor o igual que el valor de absPocDiff para cualquier pica que tenga temporal_id igual a i.
poc_granularity_idle_idx[i] especifica la granularidad de la diferencia de POC para la descripción de la lista de imágenes de referencia de la lista inactiva de imágenes de referencia y para un temporal_id igual a i. max_poc_diff_idle_minus1[i] especifica la máxima diferencia absoluta de POC que usa la codificación de longitud fija en la descripción de la lista de imágenes de referencia de la lista inactiva de imágenes de referencia y para un temporal_id igual a i.
delta_pic_order_always_zero_flag se puede eliminar.
max_num_ref_frames especifica el número máximo de fotogramas de referencia a corto plazo y a largo plazo, pares de campos de referencia complementarios y campos de referencia no emparejados que se pueden usar por el procedimiento de decodificación para la inter predicción de cualquier imagen en la secuencia. El valor de max_num_ref_frames estará en el intervalo de 0 a MaxDpbFrames, inclusive. gaps_in_frame_num_value_allowed_flag se puede eliminar.
La semántica RBSP de un conjunto de parámetros de la imagen se puede modificar de la siguiente manera. poc_diff_mode_flag igual a 0 especifica que todas las diferencias de POC en la descripción de la lista de imágenes de referencia para la lista 0 de imágenes de referencia y la lista 1 tienen el mismo signo. poc_diff_mode_flag igual a 1 especifica que el signo se indica para cada diferencia de POC en la descripción de la lista de imágenes de referencia para la lista 0 y lista 1 de imágenes de referencia.
pps_ref_pic_lists_flag igual a 0 indica que la estructura de sintaxis ref_pic_lists() se incluye en el encabezado del segmento. pps_ref_pic_lists_flag igual a 1 indica que la estructura de sintaxis ref_pic_lists() se incluye en el conjunto de parámetros de la imagen y no se incluye en el encabezado del segmento.
La semántica del encabezado del segmento se puede modificar de la siguiente manera.
lightweight_slice_flag igual a 1 especifica que el valor de los elementos de sintaxis del encabezado del segmento que no están presentes se infiere que es igual al valor de los elementos de sintaxis del encabezado del segmento en un segmento en curso, donde un segmento en curso se define como el segmento que contiene el bloque de árbol con ubicación (LCUAddress - 1). lightweight_slice_flag será igual a 0 cuando LCUAddress sea igual a 0. slice_type especifica el tipo de codificación del segmento de acuerdo con la Tabla 4.
Tabla 4 - Asociación del nombre al slice_type
Figure imgf000023_0001
Cuando nal_unit_type es igual a 5 (imagen de IDR), slice_type será igual a 2.
Cuando max_num_ref_frames es igual a 0, slice_type será igual a 2.
pic_parameter_set_id especifica el conjunto de parámetros de la imagen en uso. El valor de pic_parameter_set_id estará en el intervalo de 0 a 255, inclusive.
Los elementos relacionados con los identificadores del número de fotogramas tales como frame_num y los procedimientos y variables correspondientes tales como PrevRefFrameNum se pueden eliminar.
idr_pic_id identifica una imagen de IDR. Los valores de idr_pic_id en todos los segmentos de una imagen de IDR permanecerán sin cambios. Cuando dos unidades de acceso consecutivas en orden de decodificación son ambas unidades de acceso de IDR, el valor de idr_pic_id en los segmentos de la primera de tales unidades de acceso de IDR será diferente del idr_pic_id en la segunda de tales unidades de acceso de IDR. El valor de idr_pic_id estará en el intervalo de 0 a 65535, inclusive.
pic_order_cnt_lsb especifica el módulo MaxPicOrderCntLsb de recuento del orden de las imágenes para un fotograma codificado. La longitud del elemento de sintaxis pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de pic_order_cnt_lsb estará en el intervalo de 0 a MaxPicOrderCntLsb - 1, inclusive.
num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num_ref_idx_10_active_minus1 está presente para los segmentos P y B y que el elemento de sintaxis num_ref_idx_l1_active_minus1 está presente para los segmentos B. num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_10_active_minus1 y num_ref_idx_l1_active_minus1 no están presentes.
Cuando el segmento actual es un segmento P o B y field_pic_flag es igual a 0 y el valor de num_ref_idx_10_default_active_minus1 en el conjunto de parámetros de la imagen excede 15, num_ref_idx_active_override_flag será igual a 1.
Cuando el segmento actual es un segmento B y field_pic_flag es igual a 0 y el valor de num_ref_idxJ1_default_active_minus1 en el conjunto de parámetros de la imagen excede 15, num_refjdx_active_override_flag será igual a 1.
num_ref_idx_l0_active_minus1 especifica el índice de referencia máximo para la lista 0 de imágenes de referencia que se usará para decodificar el segmento.
Cuando el segmento actual es un segmento P o B y num_ref_idx_l0_active_minus1 no está presente, num_ref_idx_l0_active_minus1 se inferirá que es igual a num_ref_idx_l0_default_active_minus1. num_ref_idx_l1_active_minus1 especifica el índice de referencia máximo para la lista 1 de imágenes de referencia que se usará para decodificar el segmento.
Cuando el segmento actual es un segmento B y num_ref_idx_l1_active_minus1 no está presente, num_ref_idx_l1_active_minus1 se inferirá que es igual a num_ref_idx_l1default_active_minus1.
La semántica de modificación de la lista de imágenes de referencia se puede eliminar, ya que la modificación de la lista de imágenes de referencia no es necesaria si la semántica de la lista de imágenes de referencia se usa de acuerdo con las realizaciones de ejemplo.
De manera similar, la semántica del marcado de imágenes de referencia decodificadas se puede eliminar, ya que el marcado de imágenes de referencia no es necesario si la semántica de lista de imágenes de referencia se usa de acuerdo con las realizaciones de ejemplo.
La sintaxis de descripción de la lista de imágenes de referencia se puede añadir de la siguiente manera.
Figure imgf000024_0001
La semántica de descripción de la lista de imágenes de referencia se puede añadir de la siguiente manera. poc_diff_sign[i] especifica el signo de la diferencia de POC usada en el procedimiento de descripción de la lista de imágenes de referencia.
poc_diff_param[i] especifica una diferencia absoluta de POC usada en el procedimiento de descripción de la lista de imágenes de referencia. poc_diff_param[i] se representa mediante bits Ceil(Log2(maxPocDiff)).
La función Ceil(x) se define para devolver el entero más pequeño mayor o igual que x. La función Log2(x) se define para devolver el logaritmo en base 2 de x.
num_longterm_pics especifica el número de imágenes de referencia en la lista de imágenes de referencia que están marcadas como "usada como referencia a largo plazo".
abs_diff_ref_pic_idx especifica una diferencia absoluta en comparación con un valor de predicción de índice de referencia.
abs_diff_poc_cycle_minus1 especifica una diferencia absoluta de POC usada en el procedimiento de descripción de la lista de imágenes de referencia.
La sintaxis de las listas de imágenes de referencia se puede añadir de la siguiente manera.
Figure imgf000025_0001
continuación
Figure imgf000026_0001
La semántica de las listas de imágenes de referencia se puede añadir de la siguiente manera.
La estructura de sintaxis puede contener hasta tres estructuras de sintaxis de descripción de la lista de imágenes de referencia, donde la primera es para la lista 0 de imágenes de referencia inicial y está presente para los segmentos P y B, la segunda es para la lista 1 de imágenes de referencia inicial y está presente para los segmentos B, y la tercera es para la lista inactiva de imágenes de referencia y está presente si num_ref_pics_idle es mayor que 0. num_ref_pics_10_minus1 1 especifica el número de imágenes de referencia en la lista 0 de imágenes de referencia para el procedimiento de descripción de la lista de imágenes de referencia.
num_ref_pics-l1_minus1 1 especifica el número de imágenes de referencia en la lista 1 de imágenes de referencia para el procedimiento de descripción de la lista de imágenes de referencia.
ref_pic_list_copy_flag igual a 1 especifica que la lista 0 de imágenes de referencia inicial está anexada por las imágenes de referencia en la descripción de la lista de imágenes de referencia para la lista 1 de imágenes de referencia inicial y que la lista 1 de imágenes de referencia inicial está anexada por las imágenes de referencia en la descripción de la lista de imágenes de referencia para la lista 0 de imágenes de referencia inicial. num_ref_pics_idle especifica el número de imágenes de referencia en la lista inactiva de imágenes de referencia. poc_diff_mode_idle especifica si se proporcionan diferencias con o sin signo para la lista inactiva de imágenes de referencia en el procedimiento de descripción de la lista de imágenes de referencia.
Una semántica de una combinación de listas de imágenes de referencia puede ser de la siguiente manera. ref_pic_list_combination_flag igual a 1 indica que la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia se combinan para ser una combinación adicional de listas de imágenes de referencia usada para las unidades de predicción que se predicen unidireccionalmente. Este indicador igual a 0 indica que la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia son idénticas, por lo que la lista 0 de imágenes de referencia se usa como combinación de listas de imágenes de referencia. La combinación de listas de imágenes de referencia se establece para que esté vacía al comienzo del bucle definido en esta tabla. num_ref_idx_lc_active_minus1 1 especifica el número de imágenes de referencia seleccionadas de la lista 0 de imágenes de referencia o de la lista 1 de imágenes de referencia en la combinación de listas de imágenes de referencia.
ref_pic_list_modification_flag_lc igual a 1 especifica que el elemento de sintaxis pic_from_list_0_flag y ref_idx_list_curr están presentes para especificar el mapeo para las entradas de la combinación de listas de imágenes de referencia a las entradas de la lista 0 de imágenes de referencia y de la lista 1 de imágenes de referencia.
ref_pic_list_modification_flag_lc igual a 0 especifica que estos elementos de sintaxis no están presentes. Se inicializa la combinación de listas de imágenes de referencia.
pic-from-list-0-flag indica que la imagen de referencia actual añadida a la combinación de listas de imágenes de referencia es de la lista 0 de imágenes de referencia o de la lista 1 de imágenes de referencia. Cuando este indicador es igual a 1, la imagen es de la lista 0 de imágenes de referencia, y la CurrRefPicList es la lista 0 de imágenes de referencia; cuando este indicador es igual a 0, la imagen es de la lista 1 de imágenes de referencia y CurrRefPicList es la lista 1 de imágenes de referencia;
ref_idx_list_curr indica el índice de referencia de la imagen en CurrRefPicList que se anexará al final de la combinación de listas de imágenes de referencia.
El procedimiento de decodificación para el recuento del orden de las imágenes (POC) se puede simplificar de la siguiente manera.
Por ejemplo, TopFieldOrderCnt y BottomFieldOrderCnt para la identificación del campo se pueden eliminar y el procedimiento se puede simplificar correspondientemente para comprender sólo un recuento del orden de las imágenes. Por ejemplo, sólo se puede usar un tipo de recuento de orden de las imágenes.
La salida de este procedimiento es PicOrderCnt.
Los recuentos del orden de las imágenes se usan para determinar el orden de las imágenes inicial para las imágenes de referencia en la decodificación de segmentos B, para determinar imágenes co-ubicadas para la derivación de los parámetros de movimiento en el modo directo temporal o espacial, para la predicción ponderada en el modo implícito en los segmentos B y para la comprobación de la conformidad del decodificador.
La información de recuento del orden de las imágenes PicOrderCnt se deriva para cada fotograma.
PicOrderCnt indica el orden de las imágenes del fotograma correspondiente en relación con la imagen de IDR anterior.
El flujo de bits no contendrá datos que resulten en valores de PicOrderCnt o PicOrderCntMsb usados en el procedimiento de decodificación, como se especifica a continuación, que excedan el intervalo de valores de -231 a 231 - 1, inclusive.
La función PicOrderCnt(picX) se especifica de la siguiente manera:
PicOrderCnt( picX) = P icO rderC ntdel fotograma picX
Luego, DiffPicOrderCnt(picA, picB) se especifica de la siguiente manera:
DiffPicOrderCnt( picA, picB ) = PicOrderCnt( picA ) - PicOrderCnt( picB )
El flujo de bits no contendrá datos que resulten en valores de DiffPicOrderCnt(picA, picB) usados en el procedimiento de decodificación que excedan el intervalo de -215 a 215 - 1, inclusive.
Las variables prevPicOrderCntMsb y prevPicOrderCntLsb se derivan de la siguiente manera.
- Si la imagen actual es una imagen de IDR, prevPicOrderCntMsb se establece igual a 0 y prevPicOrderCntLsb se establece igual a 0.
- De otra manera (la imagen actual no es una imagen de IDR), prevPicOrderCntMsb se establece igual a PicOrderCntMsb de la imagen de referencia anterior en el orden de decodificación y prevPicOrderCntLsb se establece igual al valor de pic_order_cnt_lsb de la imagen de referencia anterior en el orden de decodificación.
PicOrderCntMsb de la imagen actual se deriva como lo especificado por el siguiente pseudocódigo:
si((pic_order_cnt_lsb < prevPicOrderCntLsb) &&
((prevPicOrderCntLsb - pic_order_cnt_lsb) >= (MaxPicOrderCntLsb / 2)))
PicOrderCntMsb = prevPicOrderCntMsb MaxPicOrderCntLsb
sino si(( pic_order_cnt_lsb > prevPicOrderCntLsb) &&
((pic_order_cnt_lsb - prevPicOrderCntLsb) > (MaxPicOrderCntLsb / 2)))
PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
sino
PicOrderCntMsb = prevPicOrderCntMsb.
PicOrderCnt se deriva de la siguiente manera
PicOrderCnt = PicOrderCntMsb pic_order_cnt_lsb.
En algunas realizaciones, el POC se puede codificar en el encabezado del segmento por otros medios además de usar pic_order_cnt_lsb como se presentó anteriormente. Por ejemplo, se puede usar cualquier otro tipo de POC especificado en el H.264/AVC y pueden estar presentes los elementos de sintaxis respectivos.
En algunas realizaciones, el POC se puede codificar en el encabezado del segmento de la siguiente manera en lugar de usar pic_order_cnt_lsb o cualquier otro tipo de POC en el H.264/AVC. El encabezado del segmento puede incluir un elemento de sintaxis poc_lsb_for_temporal_id, el cual es de tipo u(v). El número de bits en poc_lsb_for_temporal_id se determina mediante el uso del ciclo de POC en el temporaljd igual a 0, aquí denotado pocCycleTid0, el cual puede ser igual o proporcional a (max_shortterm_poc_diff_minus1[0] 1) * (poc_granularity_minus1[0] 1) o se puede indicar por otro(s) elemento(s) de sintaxis. El número de pasos de cuantificación de POC por ciclo de POC se determina luego para cada temporaljd mediante pocStepsPerCycle[i] = pocCycleTid0 /(poc_granularity_minus1[i] 1). El número de bits en poc_lsb_for_temporal_id se determina luego mediante Ceil(Log2(pocStepsPerCycle[temporal_id])).
El procedimiento de decodificación para la construcción de listas de imágenes de referencia unificadas y el marcado de imágenes de referencia puede ser de la siguiente manera.
Por ejemplo, se puede omitir el procedimiento para marcar imágenes como referencia a corto plazo y referencia a largo plazo. Por ejemplo, se pueden omitir los procedimientos de modificación de la lista de imágenes de referencia. Este procedimiento se invoca al comienzo del procedimiento de decodificación para cada segmento P, B o I.
Las imágenes de referencia se abordan mediante índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Cuando se decodifica un segmento P, hay una única lista de imágenes de referencia RefPicList0. Cuando se decodifica un segmento B, hay una segunda lista de imágenes de referencia RefPicList1 independiente además de la RefPicList0. Además, hay una lista inactiva de imágenes de referencia RefPicListIdle, que puede contener cero o más imágenes de referencia que no se usan como referencia para la imagen actual, pero que se pueden usar como referencia en imágenes posteriores en el orden de decodificación. Cada imagen de referencia en las listas de imágenes de referencia RefPicList0, RefPicList1 y RefPicListIdle se asocia con la variable RefPicPoc[lX, refIdx], donde lX es uno de 10, 11 o Idle y refIdx es el índice de referencia dentro de la lista de imágenes de referencia. La derivación de RefPicPoc[lX, refIdx] se especifica a continuación. Al comienzo del procedimiento de decodificación para cada segmento, las listas de imágenes de referencia se derivan como se especifica, por ejemplo, mediante los siguientes pasos:
1. RefPicList0, RefPicList1 y RefPicListIdle están inicialmente vacías.
2. Para los segmentos P y B, la lista de imágenes de referencia RefPicList0 se inicializa a través del procedimiento de descripción de la lista de imágenes de referencia con RefPicList0 y pocGranularity igual a (poc_granularity_minus1[temporal_id] 1) como entrada.
3. Para los segmentos B, la lista de imágenes de referencia RefPicList1 se inicializa mediante el procedimiento de descripción de la lista de imágenes de referencia con RefPicList1 y pocGranularity igual a (poc_granularity_minus1[temporal_id] 1) como entrada.
4. Si el segmento actual es un segmento B y ref_pic_list_copy_flag es igual a 1, RefPicList0 se copia en tempRefPicList0 y RefPicList1 se copia en tempRefPicList1. Luego, RefPicList0 se restablece para contener una concatenación de tempRefPicList0 y tempRefPicList1, y RefPicList1 se restablece para contener una concatenación de tempRefPicList1 y tempRefPicList0.
5. La pocGranularity para la lista inactiva de imágenes de referencia se establece igual a poc_granularity_minus1[temporal_id - poc_granularity_idle_idx[temporal_id]] 1. Luego, RefPicListIdle se especifica a través del procedimiento de descripción de la lista de imágenes de referencia con RefPicListIdle y la pocGranularity derivada como entradas.
6. Cualquier imagen que no esté en ninguna de la lista inactiva de imágenes de referencia, la lista RefPicList0 de imágenes de referencia y la RefPicList1 para los segmentos B, se marca como "no usada como referencia".
7. El número de entradas en la lista de imágenes de referencia RefPicList0 se establece en num_ref_idx_l0_active_minus1 1, y para los segmentos B, el número de entradas en la lista RefPicList1 de imágenes de referencia se establece en num_ref_idx_l1_active_minus1 1.
Una imagen de referencia puede aparecer en más de un índice en las listas RefPicList0 o RefPicList1 de imágenes de referencia.
El procedimiento de descripción de la lista de imágenes de referencia puede ser de la siguiente manera.
Por ejemplo, se puede omitir el procedimiento de decodificación para el número de imágenes basado en el número de fotogramas.
La entrada del procedimiento de descripción de la lista de imágenes de referencia es una estructura ref_pic_list_descriptionO, las variables numRefPics, pocDiffModeFlag, maxPocDiff y pocGranularity, y la lista refPicListX de imágenes de referencia (RefPicList0, RefPicList1 o RefPicListIdle) que se describe.
La salida de este procedimiento es la lista RefPicList0, RefPicList1 o RefPicListIdle de imágenes de referencia. Es decir, dos listas de imágenes de referencia, RefPicList0 y RefPicList1, para decodificar la imagen actual y una lista inactiva de imágenes de referencia, RefPicListIdle, para decodificar las imágenes posteriores.
Si el número de imágenes de referencia, numRefPics, es mayor que 0, se realizan los siguientes pasos para las entradas i de bucle:
- La variable pocDiffSign[i] se especifica de la siguiente manera:
- Si poc_diff_sign[i] está presente, la variable pocDiffSign[i] se establece igual a poc_diff_sign[i].
- De otra manera, si la entrada a este procedimiento es RefPicList0 o RefPicListIdle, pocDiffSign[i] se establece igual a 0.
- De otra manera (la entrada a este procedimiento es RefPicList1), pocDiffSign[i] se establece igual a 1. - Si poc_diff_param[i] está presente, la variable absPocDiff se establece igual a poc_diff_param[i] 1. De otra manera, la variable absPocDiff se establece igual a 1.
- La variable refPicPoc[refPicListX, i] se especifica mediante el siguiente pseudocódigo:
si(pocDiffSign[i] == 0)
refPicPoc[refPicListX, i] =
PicOrderCnt - absPocDiff * pocGranularity
sino
refPicPoc[refPicListX, i] =
PicOrderCnt absPocDiff * pocGranularity
La variable currRefIdx se establece igual a 0.
Para cada entrada j de bucle, se realizan los siguientes pasos ordenados:
- currRefIdx = abs_diff_ref_pic_idx[j]
- La variable refPicPoc[refPicListX, currRefIdx] se actualiza mediante el siguiente pseudocódigo: si(pocDiffSign[currRefIdx] == 0)
refPicPoc[refPicListX, currRefIdx] -= (abs_diff_poc_cycle_minus1 1) * maxPocDiff *
pocGranularity
sino
refPicPoc[refPicListX, currRefIdx] = (abs_diff_poc_cycle_minus1 1) * maxPocDiff *
pocGranularity
- La imagen con la entrada de bucle currRefIdx se marca como "usada como referencia a largo plazo".
Todas las imágenes en RefPicListX que no se marcan como "usada como referencia a largo plazo" se marcan como "usada como referencia a corto plazo".
Un procedimiento de mapeo para la combinación de listas de imágenes de referencia en los segmentos B puede ser de la siguiente manera.
Por ejemplo, se puede omitir un procedimiento de inicialización para listas de imágenes de referencia para los segmentos P.
Este procedimiento de mapeo se invoca al decodificar un encabezado de segmento B.
La entrada a este procedimiento son la lista RefPicListX de imágenes de referencia y num_ref_idx_lX_active_minus1 con X siendo 0 o 1. Es decir, se pueden usar dos listas de imágenes de referencia para decodificar el segmento B. Los resultados de este procedimiento son las matrices PredLCToPredLx y RefIdxLCToRefIdxLx.
Cuando el segmento actual es un segmento B y ref_pic_list_modification_flag_lc es igual a 0, se aplican los siguientes pasos:
1. Dejar que refldxLO y refldxLI sean índices en las listas RefPicListLO y RefPicListLI de imágenes de referencia. Estos inicialmente se establecen igual a 0.
2. Dejar que refIdxLC sea un índice en PredLCToPredLx y RefIdxLCToRefIdxLx. Este inicialmente se establece igual a 0.
3. El siguiente procedimiento se repite hasta que ambas refIdxL0 y refIdxL1 son mayores que num_ref_idx_l0_active_minus1 y num_ref_idx_l1_active_minus1, respectivamente:
- Si refIdxL0 es menor o igual que num_ref_idx_l0_active_minus1,
- Si la entrada RefPicListL0[refIdxL0] es la primera aparición de la imagen de referencia,
PredLCToPredLx [ refldxLC ] = Pred_L0,
RefIdxLCToRefIdxLx [ refldxLC++ ] = refldxLO.
- refIdxL0++.
- Si refIdxL1 es menor o igual que num_ref_idx_l1_active_minus1 y ref_pic_list_combination_flag igual a 1,
- Si la entrada RefPicListL1[refIdxL1] es la primera aparición de la imagen de referencia,
PredLCToPredLx [ refldxLC ] = Pred_Ll,
RefIdxLCToRefIdxLx [ refldxLC++ ] = refldxLI.
- refIdxL1++.
Cuando el segmento actual es un segmento B y ref_pic_list_modification_flag_lc es igual a 1, se aplican los siguientes pasos:
1. Dejar que refIdxLC sea un índice en la lista de imágenes de referencia PredLCToPredLx y RefIdxLCToRefIdxLx. Este inicialmente se establece igual a 0.
2. Los elementos de sintaxis correspondientes pic_from_list_0_flag y ref_idx_list_curr se procesan en el orden en que aparecen en el flujo de bits. Para cada uno de estos pares de elementos de sintaxis, aplica lo siguiente.
- Si pic_from_list_0_flag es igual a 1,
PredLCToPredLx[ refldxLC ] = Pred_L0,
- De otra manera,
PredLCToPredLx[ refldxLC ] = Pred_Ll
- RefIdxLCToRefIdxLx[ refIdxLC++] = ref_idx_list_curr
Cuando refIdxLC es mayor que num_com_ref_list_active_minus1 1, las entradas extra después de la posición num_com_ref_list_active_minus1 se descartan de PredLCToPredLx y RefIdxLCToRefIdxLx.
Cuando refIdxLC es menor que num_com_ref_list_active_minus1 1, las entradas restantes en PredLCToPredLx y RefIdxLCToRefIdxLx se establecen en Pred_L0 y 0, respectivamente.
Se puede omitir un procedimiento de marcado de imágenes de referencia decodificadas, porque el procedimiento de listas de imágenes de referencia ya indica qué imágenes se usarán como referencia al tener la imagen de referencia en las listas.
En algunas realizaciones, más de una lista de imágenes de referencia del mismo tipo (por ejemplo, de tipo lista 0 de imágenes de referencia, lista 1 de imágenes de referencia, lista inactiva de imágenes de referencia) se puede incluir en la estructura de sintaxis ref_pic_lists() y cada lista de imágenes de referencia se puede identificar con un identificador o un índice de lista de referencia. El índice de la lista de referencia se puede proporcionar de manera explícita en la sintaxis o se puede usar una regla de numeración en base al orden de aparición en la estructura de sintaxis contenedora, tal como dar la primera lista de imágenes de referencia de un índice de lista de referencia de tipo particular 0 e incrementar la lista de referencia índice por 1 para cada lista de imágenes de referencia del mismo tipo en el orden de aparición o del flujo de bits. El índice de la lista de referencia puede ser particularmente útil si la estructura ref_picjists() reside en un conjunto de parámetros de la imagen (PPS) y se realiza una selección de la descripción de la lista de imágenes de referencia incluyendo un índice de lista de referencia en el encabezado del segmento, por ejemplo. En algunas realizaciones, la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia se consideran del mismo tipo y, por lo tanto, usan el mismo espacio de numeración para los índices de la lista de referencias.
Por ejemplo, en diversas realizaciones se puede añadir la siguiente sintaxis de descripción de la lista de imágenes de referencia.
Figure imgf000031_0001
En diversas realizaciones, se puede añadir la siguiente sintaxis para las listas de imágenes de referencia en un conjunto de parámetros de imágenes.
Figure imgf000031_0002
(continuación)
Figure imgf000032_0001
En diversas realizaciones, se puede añadir la siguiente sintaxis para las listas de imágenes de referencia en el encabezado del segmento.
Figure imgf000032_0002
(continuación)
Figure imgf000033_0001
En diversas realizaciones, se puede añadir la siguiente semántica para las listas de imágenes de referencia en el conjunto de parámetros de imágenes.
La estructura de sintaxis puede contener estructuras de sintaxis de descripción de la lista de imágenes de referencia para la lista 0 de imágenes de referencia, la lista 1 de imágenes de referencia y la lista inactiva de imágenes de referencia.
poc_diff_mode_flag igual a 0 especifica que el signo predeterminado se usa para las diferencias de POC indicadas en la sintaxis de descripción de la lista de imágenes de referencia para las listas 0 y 1 de imágenes de referencia. poc_diff_mode_flag igual a 1 especifica que el signo para cada diferencia de POC indicada en la sintaxis de descripción de la lista de imágenes de referencia para las listas 0 y 1 de imágenes de referencia se incluye en la estructura de sintaxis de descripción de la lista de imágenes de referencia.
same_ref_pic_list_idx_flag igual a 1 indica que un único índice de lista de imágenes de referencia, si lo hay, se incluye en un encabezado de segmento para identificar qué estructura de descripción de la lista de imágenes de referencia proporcionada en esta estructura de sintaxis se usa para construir la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia, si está presente. same_ref_pic_list_idx_flag igual a 0 indica índices de lista de imágenes de referencia separados, si los hay, para la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia se incluyen en un encabezado de segmento para identificar qué estructura de descripción de la lista de imágenes de referencia proporcionada en esta estructura de sintaxis se utiliza para construir la lista 0 de imágenes de referencia y lista 1 de imágenes de referencia, si está presente.
num_l0_lists indica el número de estructuras de descripción de la lista de imágenes de referencia para la lista 0 de imágenes de referencia.
num_ref_pics_10_minus1 1 especifica el número de imágenes de referencia en la lista 0 de imágenes de referencia para el procedimiento de descripción de la lista de imágenes de referencia.
num_l1_lists indica el número de estructuras de descripción de la lista de imágenes de referencia para la lista 1 de imágenes de referencia.
num_ref_pics-l1_minus1 1 especifica el número de imágenes de referencia en la lista 1 de imágenes de referencia para el procedimiento de descripción de la lista de imágenes de referencia.
ref_pic_list_copy_flag igual a 1 especifica que la lista 0 de imágenes de referencia inicial está anexada por las imágenes de referencia en la descripción de la lista de imágenes de referencia para la lista 1 de imágenes de referencia inicial y que la lista 1 de imágenes de referencia inicial está anexada por las imágenes de referencia en la descripción de la lista de imágenes de referencia para la lista 0 de imágenes de referencia inicial. num_idle_lists indica el número de estructuras de descripción de la lista de imágenes de referencia para las listas inactivas de imágenes de referencia.
num_ref_pics_idle especifica el número de imágenes de referencia en la lista inactiva de imágenes de referencia. poc_diff_mode_idle especifica si se proporcionan diferencias con o sin signo para la lista inactiva de imágenes de referencia en el procedimiento de descripción de la lista de imágenes de referencia.
En diversas realizaciones, se puede añadir la siguiente semántica para las listas de imágenes de referencia en el encabezado del segmento.
La estructura de sintaxis puede contener hasta tres estructuras de sintaxis de descripción de la lista de imágenes de referencia, donde la primera es para la lista 0 de imágenes de referencia inicial y está presente para los segmentos P y B, la segunda es para la lista 1 de imágenes de referencia inicial y está presente para los segmentos B, y la tercera es para la lista inactiva de imágenes de referencia y está presente si num_ref_pics_idle es mayor que 0. Cualquiera de las tres estructuras de sintaxis de descripción de la lista de imágenes de referencia también se puede indicar mediante un índice de lista de imágenes de referencia a una estructura de sintaxis de descripción de la lista de imágenes de referencia incluida en el conjunto de parámetros de la imagen activa.
ref_pic_l0l1_in_pps_flag igual a 0 indica que la estructura de sintaxis de descripción de la lista de imágenes de referencia está presente para la lista 0 de imágenes de referencia y, para los segmentos B, la lista 1 de imágenes de referencia. ref_pic_1011_in_pps_flag igual a 1 indica que el índice de la lista de imágenes de referencia se proporciona para la lista 0 de imágenes de referencia y, para los segmentos B, la lista 1 de imágenes de referencia. num_ref_pics_10_minus1 1 especifica el número de imágenes de referencia en la lista 0 de imágenes de referencia para el procedimiento de descripción de la lista de imágenes de referencia.
ref_pic_l0_idx indica el índice de la lista de imágenes de referencia para las estructuras de sintaxis de descripción de la lista de imágenes de referencia especificadas para la lista 0 de imágenes de referencia en el conjunto de parámetros de la imagen activa.
num_ref_pics-l1_minus1 1 especifica el número de imágenes de referencia en la lista 1 de imágenes de referencia para el procedimiento de descripción de la lista de imágenes de referencia.
ref_pic_list_copy_flag igual a 1 especifica que la lista 0 de imágenes de referencia inicial está anexada por las imágenes de referencia en la descripción de la lista de imágenes de referencia para la lista 1 de imágenes de referencia inicial y que la lista 1 de imágenes de referencia inicial está anexada por las imágenes de referencia en la descripción de la lista de imágenes de referencia para la lista 0 de imágenes de referencia inicial. ref_pic_l1_idx indica el índice de la lista de imágenes de referencia para las estructuras de sintaxis de descripción de la lista de imágenes de referencia especificadas para la lista 1 de imágenes de referencia en el conjunto de parámetros de la imagen activa. Si same_ref_pic_list_idx_flag es igual a 1, se infiere que ref_pic_l1_idx es igual a ref_pic_l0_idx.
idle_ref_pic_list_in_pps_flag igual a 0 indica que la estructura de sintaxis de descripción de la lista de imágenes de referencia está presente para la lista inactiva de imágenes de referencia. idle_ref_pic_list_in_pps_flag igual a 1 indica que el índice de la lista de imágenes de referencia se proporciona para la lista inactiva de imágenes de referencia.
num_ref_pics_idle especifica el número de imágenes de referencia en la lista inactiva de imágenes de referencia. poc_diff_mode_idle especifica si se proporcionan diferencias con o sin signo para la lista inactiva de imágenes de referencia en el procedimiento de descripción de la lista de imágenes de referencia.
idle_ref_pic_list_idx indica el índice de la lista de imágenes de referencia para las estructuras de sintaxis de descripción de la lista de imágenes de referencia especificadas para las listas inactivas de imágenes de referencia en el conjunto de parámetros de las imágenes activas.
En diversas realizaciones, un procedimiento de decodificación para la descripción de la lista de imágenes de referencia se especifica de la siguiente manera.
La entrada a este procedimiento son una estructura ref_picJist_descriptionQ, las variables idx, numRefPics, pocDiffModeFlag, maxPocDiff y pocGranularity, y la lista refPicListX de imágenes de referencia (RefPicListO, RefPicListl o RefPicListIdle) que se describe.
La salida de este procedimiento es la lista RefPicList0, la RefPicList1 o la RefPicListIdle de imágenes de referencia, que tiene el índice idx de lista de imágenes de referencia especificado.
Si idx es -1, la descripción de la lista de imágenes de referencia se proporciona en un encabezado de segmento y es válida para la decodificación del segmento respectivo. Si idx es mayor o igual que 0, la descripción de la lista de imágenes de referencia se proporciona en un conjunto de parámetros de la imagen y se decodifica cuando un encabezado de segmento contiene un índice que se refiere a él.
Si numRefPics es mayor que 0, se realizan los siguientes pasos ordenados para cada entrada i de bucle:
- La variable pocDiffSign[i] se especifica de la siguiente manera:
- Si poc_diff_sign[i] está presente, la variable pocDiffSign[i] se establece igual a poc_diff_sign[i].
- De otra manera, si la entrada a este procedimiento es RefPicList0 o RefPicListIdle, pocDiffSign[i] se establece igual a 0.
- De otra manera (la entrada a este procedimiento es RefPicList1), pocDiffSign[i] se establece igual a 1. - Si poc_diff_param[i] está presente, la variable absPocDiff se establece igual a poc_diff_param[i] 1.
De otra manera, la variable absPocDiff se establece igual a 1.
- La variable refPicPoc[refPicListX, i] se especifica mediante el siguiente pseudocódigo: si(pocDiffSign[i] == 0)
refPicPoc[refPicListX, i] =
PicOrderCnt - absPocDiff * pocGranularity
sino
refPicPoc[refPicListX, i] =
PicOrderCnt absPocDiff * pocGranularity
La variable currRefIdx se establece igual a 0.
Para cada entrada j de bucle, se realizan los siguientes pasos ordenados:
- currRefIdx = abs_diff_ref_pic_idx[j]
- La variable refPicPoc[refPicListX, currRefIdx] se actualiza mediante el siguiente pseudocódigo:
si(pocDiffSign[currRefIdx] == 0)
refPicPoc[refPicListX, currRefIdx] -=
(abs_diff_poc_cycle_minus1 1) * maxPocDiff * pocGranularity
sino
refPicPoc[refPicListX, currRefIdx] =
(abs_diff_poc_cycle_minus1 1) * maxPocDiff * pocGranularity
- La imagen con la entrada de bucle currRefIdx se marca como "usada como referencia a largo plazo".
Todas las imágenes en RefPicListX que no se marcan como "usada como referencia a largo plazo" se marcan como "usada como referencia a corto plazo".
En algunas realizaciones, se puede usar una codificación diferente para indicar los valores de POC del recuento del orden de las imágenes en la descripción de la lista de imágenes de referencia. Por ejemplo, en algunas realizaciones, un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de la imagen (PPS) pueden incluir un patrón o una lista de diferencias de POC. En la descripción de la lista de imágenes de referencia, se puede dar entonces un índice de esta lista para indicar la diferencia de POC para que una imagen de referencia se incluya en la lista de imágenes de referencia descrita. En otro ejemplo, el cual puede ser alternativo o complementario al ejemplo anterior, la codificación diferencial de los valores de POC en la descripción de la lista de imágenes de referencia se realiza en relación con un valor de predicción de POC en lugar del POC de la imagen actual. El valor de predicción de POC se puede inicializar primero en el POC de la imagen actual al comienzo del procedimiento de decodificación para la descripción de la lista de imágenes de referencia. El valor de predicción de POC se puede actualizar después de la decodificación de cada diferencia de POC al valor de POC decodificado resultante de la suma de la diferencia de POC y el valor de predicción de POC. En otro ejemplo, una descripción particular de la lista de imágenes de referencia en un conjunto de parámetros de la imagen (PPS) se puede usar como un predictor para los valores de POC de la descripción de la lista de imágenes de referencia en el encabezado del segmento. En primer lugar, se obtiene un predictor de valor de POC para cada índice de referencia en una lista de imágenes de referencia a partir de una descripción de la lista de imágenes de referencia de un PPS activo. Una diferencia de valor de POC indirecta, incluida en el encabezado del segmento, se suma luego al predictor del valor de POC y el resultado de la suma es el valor de POC de la imagen de referencia incluida en la lista de imágenes de referencia. Pueden ser posibles diversas formas de derivar el predictor del valor de POC. Por ejemplo, al derivar el valor de POC para una imagen de referencia en el índice i de referencia en la lista de imágenes de referencia, el predictor del valor de POC se puede obtener aplicando el procedimiento de decodificación para la descripción de la lista de imágenes de referencia al índice i de referencia en la descripción de la lista de imágenes de referencia incluida en un PPS activo. Pueden ser posibles diversas formas de derivar la diferencia del valor de POC indirecto. Por ejemplo, se puede dar una diferencia de valor de POC indirecto constante para una lista de imágenes de referencia. En otro ejemplo, se codifica una diferencia de valor de POC indirecto para cada índice de referencia mediante el uso de la sintaxis de descripción de la lista de imágenes de referencia.
En algunas realizaciones, los valores de recuento del orden de las imágenes (POC) en la descripción de la lista de imágenes de referencia se pueden añadir con la siguiente sintaxis:
Figure imgf000036_0001
La semántica de descripción de la lista de imágenes de referencia se puede añadir de la siguiente manera. num_ref_pics_param junto con una entrada minRefPics al procedimiento de descripción de la lista de imágenes de referencia especifican el número de imágenes de referencia en la lista de imágenes de referencia. poc_lsb_param[i] junto con temporal_id y poc_granularity_minus1 especifican el valor de LSB de POC. poc_lsb_param[i] se representa mediante Ceil(Log2 (MaxPicOrderCntLsb (poc_granularity_minus1[i] 1))) bits para la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia y mediante Ceil(Log2 (MaxPicOrderCntLsb)) bits para la lista inactiva de imágenes de referencia.
num_differing_msb_values especifica el número de imágenes de referencia en la lista de imágenes de referencia que tienen un valor de MSB diferente para el POC que el de la imagen actual.
abs_diff_ref_pic_idx especifica una diferencia absoluta en comparación con un valor de predicción de índice de referencia.
abs_diff_poc_msb_minus1 especifica una diferencia absoluta del valor de MSB de POC en comparación con el de la imagen actual.
En las diversas realizaciones, la sintaxis de ref_pic_lists() max se añadirá de la siguiente manera:
Figure imgf000037_0001
La semántica de ref_pic_lists() se puede añadir de la siguiente manera.
La estructura de sintaxis puede contener hasta tres estructuras de sintaxis de descripción de la lista de imágenes de referencia, donde la primera es para la lista 0 de imágenes de referencia inicial y está presente para los segmentos P y B, la segunda es para la lista 1 de imágenes de referencia inicial y está presente para los segmentos B, y la tercera es para la lista inactiva de imágenes de referencia y siempre está presente.
ref_pic_list_copy_flag igual a 1 especifica que la lista 0 de imágenes de referencia inicial está anexada por las imágenes de referencia en la descripción de la lista de imágenes de referencia para la lista 1 de imágenes de referencia inicial y que la lista 1 de imágenes de referencia inicial está anexada por las imágenes de referencia en la descripción de la lista de imágenes de referencia para la lista 0 de imágenes de referencia inicial.
Un procedimiento de decodificación para la construcción de listas de imágenes de referencia y el marcado de imágenes de referencia en diversas realizaciones puede ser de la siguiente manera.
Cada imagen de referencia en las listas RefPicList0, RefPicList1 y RefPicListIdle de imágenes de referencia se asocia con la variable RefPicPoc[IX, refIdx], donde IX es uno de 10, 11 o Idle y refIdx es el índice de referencia dentro de la lista de imágenes de referencia. La derivación de RefPicPoc[IX, refIdx] se especifica a continuación. Al comienzo del procedimiento de decodificación de cada segmento, las listas de imágenes de referencia se derivan de acuerdo con lo especificado por los siguientes pasos ordenados:
1. RefPictList0, RefPictList1 y RefPicListIdle están inicialmente vacías.
2. Para los segmentos P y B, la lista de imágenes de referencia RefPicList0 se inicializa a través del procedimiento de descripción de la lista de imágenes de referencia con RefPicList0 como entrada.
3. Para los segmentos B, la lista RefPicList1 de imágenes de referencia se inicializa mediante el procedimiento de descripción de la lista de imágenes de referencia con RefPicList1 como entrada.
4. Si el segmento actual es un segmento B y ref_pic_list_copy_flag es igual a 1, RefPicList0 se copia en tempRefPicList0 y RefPicList1 se copia en tempRefPicList1. Luego, RefPicList0 se restablece para contener una concatenación de tempRefPicList0 y tempRefPicList1, y RefPicList1 se restablece para contener una concatenación de tempRefPicList1 y tempRefPicList0.
5. RefPicListIdle se especifica mediante el procedimiento de descripción de la lista de imágenes de referencia con RefPicListIdle como entrada.
El número de entradas en la lista RefPicList0 de imágenes de referencia modificada es num_ref_idx_l0_active_minus1 1, y para los segmentos B, el número de entradas en la lista RefPicList1 de imágenes de referencia modificada es num_ref_idx_l1_active_minus1 1. Una imagen de referencia puede aparecer en más de un índice en las listas RefPicList0 o RefPicList1 de imágenes de referencia modificadas.
Una imagen que se incluye en al menos una de la lista inactiva de imágenes de referencia, la lista RefPicList0 de imágenes de referencia y la RefPicList1 para los segmentos B, se marca como "usada como referencia". Cualquier imagen que no esté en ninguna de la lista inactiva de imágenes de referencia, la lista RefPicList0 de imágenes de referencia y la RefPicList1 para los segmentos B, se marca como "no usada como referencia".
El procedimiento de descripción de la lista de imágenes de referencia puede ser de la siguiente manera.
Las entradas a este procedimiento son una estructura ref_pic_list_description() y la lista refPicListX (RefPicList0, RefPicList1 o RefPicListIdle) de imágenes de referencia que se describe.
La variable pocOffset se establece en apic_order_cnt_lsb % (poc_granularity_minus1[temporal_id] 2). Si la entrada es RefPicList0 o RefPicList1, la variable pocGranularity se establece en poc_granularity_minus1[temporal_id] 1). Si la entrada es RefPicListIdle, la variable pocGranularity se establece en 1.
Para cada entrada i de bucle, se realizan los siguientes pasos ordenados:
- La variable pocLsb[i] se establece en pocOffset poc_lsb_param[i] * pocGranularity
- La variable pocMsb[i] se establece en PicOrderCntMsb
La variable currRefIdx se establece igual a 0.
Para cada entrada j de bucle, se realizan los siguientes pasos ordenados:
- currRefIdx = abs_diff_ref_pic_idx[j]
- La variable pocMsb[currRefIdx] se establece en PicOrderCntMsb - (abs_diff_poc_msb_minus1 1) * MaxPicOrderCntLsb
Para cada entrada k de bucle desde 0, inclusive, hasta el número de entradas en la lista de imágenes de referencia, exclusivo, refPicPoc[refPicListX, k] se establece en pocMsb[k] pocLsb[k].
En algunas realizaciones, los elementos de sintaxis num_ref_idx_10_default_active_minus1 y num_ref_idx_l1_default_active_minus1 no se incluyen en la sintaxis del conjunto de parámetros de la imagen y los elementos de sintaxis num_ref_idx_active_override_flag, num_ref_idx_l0_active_minus_x_x_activo y num1 se incluyen en la sintaxis del encabezado del segmento. En estas realizaciones, el número de entradas de la lista decodificada en la estructura de sintaxis de la lista de imágenes de referencia se puede usar para determinar el número de índices de referencia activos.
En algunas realizaciones, la lista 0 de imágenes de referencia descrita puede incluir también imágenes de referencia que no están referenciadas en el procedimiento de inter predicción para los segmentos P o para la dirección hacia adelante de los segmentos B. Tales imágenes de referencia no referenciadas se pueden excluir de la lista 0 final de imágenes de referencia, por ejemplo, mediante el uso del elemento de sintaxis num_ref_idx_l0_default_active_minus1 para limitar el número de imágenes de referencia en la lista 0. Sin embargo, estas imágenes de referencia se incluyen en la lista 0 para poder describir la lista 1 de imágenes de referencia enumerando los índices de referencia únicamente en la lista 0. En otras palabras, en lugar de enumerar los valores de POC o las diferencias de POC para las imágenes de referencia en la lista 1, la lista 1 de imágenes de referencia se describe enumerando los índices de referencia o las diferencias de índice de referencia en comparación con un valor de predicción, donde los índices de referencia o las diferencias de índice de referencia se refieren a la lista 0. El valor de predicción se puede inicializar, por ejemplo, en 0 o en num_ref_idx_l0_default_active_minus1 1 (es decir, el primer índice excluido de la lista 0). El valor de predicción se puede actualizar al índice de referencia resuelto después de la decodificación de cada diferencia de índice de referencia. En algunas realizaciones, la lista de fusión se describe indicando los valores de POC de las imágenes de referencia incluidas en ella, y la lista 0 de imágenes de referencia y la lista 1 se describen mediante índices de referencia a la lista de fusión.
En algunas realizaciones, la descripción de la lista de imágenes de referencia para la lista 0 de imágenes de referencia puede incluir un indicador para cada entrada de bucle que indique si la imagen de referencia identificada se incluye en la lista 0 o no. De manera similar, la descripción de la lista de imágenes de referencia para la lista 1 de imágenes de referencia puede incluir un indicador para cada entrada de bucle que indique si la imagen de referencia identificada se incluye en la lista 1 o no. Se puede inferir que las imágenes de referencia que están identificadas en una de las estructuras de descripción de la lista de imágenes de referencia para la lista 0 o 1 de imágenes de referencia pero que no están incluidas en la lista 0 o 1 pertenecen a la lista inactiva de imágenes de referencia. En algunas realizaciones, se utilizan más de dos bloques de inter predicción para la predicción de un bloque actual en la predicción multihipótesis. En consecuencia, puede haber más de dos listas de imágenes de referencia (por ejemplo, 0, 1, 2, ...) usadas para indicar referencias de inter predicción, y la estructura de sintaxis ref_pic_lists puede incluir cada una de estas listas de imágenes de referencia. Además, una imagen se puede marcar como "no usada como referencia" si no se incluye en ninguna de las listas de imágenes de referencia en la estructura de sintaxis ref_pic_lists() y se puede marcar como "usada como referencia" si se incluye en al menos una lista de imágenes de referencia en la estructura de sintaxis ref_pic_lists().
En algunas realizaciones, la predicción del vector de movimiento se puede realizar al menos en algunos modos de inter codificación de tal manera que no se incluya de manera explícita ningún índice de referencia en el flujo de bits. En su lugar, el codificador y el decodificador pueden usar el mismo procedimiento para seleccionar uno o más pares de imágenes de referencia (marcadas como "usada como referencia") y los respectivos vectores de movimiento en una lista de candidatos, por ejemplo, en base a las imágenes de referencia y los respectivos vectores de movimiento seleccionados en los bloques adyacentes. A continuación, el codificador puede seleccionar qué par de la lista de candidatos se usa y codificar el (los) elemento(s) de sintaxis en el flujo de bits que indica(n) el par elegido. En estas realizaciones, no es necesario ordenar la lista 0 y la lista 1 de imágenes de referencia, pero las imágenes de referencia disponibles para los segmentos P y la denominada dirección de predicción hacia adelante de los segmentos B se pueden indicar de manera similar a la lista 0 de imágenes de referencia en un conjunto 0 de imágenes de referencia desordenado. De manera similar, el codificador puede incluir una descripción del conjunto 1 de imágenes de referencia en el flujo de bits. La lista de candidatos para los segmentos P y la dirección hacia adelante de los segmentos B puede incluir pares en los que la imagen de referencia se encuentra entre las del conjunto 0 de imágenes de referencia. De manera similar, la lista de candidatos para la dirección hacia atrás de los segmentos B puede incluir pares en los que la imagen de referencia se encuentra entre las del conjunto 1 de imágenes de referencia. El marcado de imágenes de referencia se puede realizar de manera similar a otras realizaciones, es decir, las imágenes de referencia que no están en ningún conjunto de imágenes de referencia se marcan como "no usada como referencia" y las imágenes de referencia que están en al menos un conjunto de imágenes de referencia se marcan como "usada como referencia".
En lo anterior, las realizaciones de ejemplo se han descrito con la ayuda de la sintaxis del flujo de bits. Sin embargo, se debe entender que la estructura correspondiente y/o el programa informático pueden residir en el codificador para generar el flujo de bits y/o en el decodificador para decodificar el flujo de bits. Del mismo modo, cuando las realizaciones de ejemplo se han descrito con referencia a un codificador, se debe entender que el flujo de bits resultante y el decodificador tienen elementos correspondientes en ellos. Del mismo modo, cuando las realizaciones de ejemplo se han descrito con referencia a un decodificador, se debe entender que el codificador tiene una estructura y/o un programa informático para generar el flujo de bits a decodificar mediante el decodificador.
Las diversas realizaciones de la invención se pueden implementar con la ayuda de un código de programa informático que reside en una memoria y hace que los aparatos relevantes lleven a cabo la invención. Por ejemplo, un dispositivo terminal puede comprender circuitos y un sistema electrónico para manejar, recibir y transmitir datos, un código de programa informático en una memoria y un procesador que, cuando ejecuta el código de programa informático, hace que el dispositivo terminal lleve a cabo las características de una realización. Pero además, un dispositivo de red puede comprender circuitos y un sistema electrónico para manejar, recibir y transmitir datos, un código de programa informático en una memoria y un procesador que, cuando ejecuta el código de programa informático, hace que el dispositivo de red lleve a cabo las características de una realización.
La invención se expone en las reivindicaciones adjuntas.

Claims (15)

  1. REIVINDICACIONES
    i . Un procedimiento para codificar un vídeo, que comprende:
    codificar las imágenes recibidas (300) en imágenes codificadas, las imágenes codificadas se dividen en porciones que comprenden un número entero de unidades de codificación,
    codificar una estructura de sintaxis para proporcionar al menos una de una lista 0 de imágenes de referencia para los segmentos P y B y una lista 1 de imágenes de referencia para los segmentos B, en el que al menos una de la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia contiene unas imágenes de referencia inactivas marcadas como "usada como referencia" pero que se indican que no se usen como referencia para un segmento actual,
    marcar las imágenes que no están en ninguna de la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia como "no usada como referencia",
    caracterizado porque el procedimiento comprende además
    codificar un segmento actual de una imagen actual mediante el uso de una o más imágenes de referencia de la lista 0 de imágenes de referencia o de la lista 1 de imágenes de referencia, pero no de las imágenes de referencia inactivas que se indican como "no usada como referencia para el segmento actual" de la imagen actual, e
    indicar que las imágenes de referencia inactivas de la lista 0 de imágenes de referencia o de lista 1 sean "no usada como referencia para el segmento actual" codificando un primer índice de referencia máximo de la lista 0 de imágenes de referencia para codificar el segmento actual, en el que las imágenes de referencia inactivas en la lista 0 de imágenes de referencia tiene un índice de referencia más allá del primer índice de referencia máximo.
  2. 2. Un procedimiento de acuerdo con la reivindicación 1, que comprende además:
    indicar que las imágenes de referencia inactivas de la lista 1 de imágenes de referencia sean "no usada como referencia para el segmento actual" mediante la codificación de un segundo índice de referencia máximo de la lista 1 de imágenes de referencia para codificar el segmento actual, en el que las imágenes de referencia inactivas en la lista 1 de imágenes de referencia tengan un índice de referencia más allá del segundo índice de referencia máximo.
  3. 3. Un procedimiento de acuerdo con la reivindicación 1 o 2, que comprende además:
    marcar imágenes en cualquiera de la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia como "usada como referencia", en el que esas imágenes están, por lo tanto, disponibles como imágenes de referencia para la codificación de una imagen posterior.
  4. 4. Un procedimiento de acuerdo con la reivindicación 1, 2 o 3, que comprende además:
    proporcionar una lista ordenada de imágenes a incluir en cualquiera de la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia.
  5. 5. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 4, que comprende además: reconstruir las imágenes codificadas en una memoria (404) para almacenar las imágenes reconstruidas en la lista 0 de imágenes de referencia o en la lista 1 de imágenes de referencia.
  6. 6. Un procedimiento de acuerdo con la reivindicación 5, que comprende además:
    si una imagen está marcada como "no usada como referencia" y ya se ha codificado, eliminar la imagen de la memoria (404) o reutilizar el espacio de memoria usado para la imagen para otra imagen reconstruida.
  7. 7. Un procedimiento para decodificar un vídeo que comprende:
    decodificar imágenes codificadas a partir de un flujo de bits, dividiéndose las imágenes codificadas en porciones que comprenden un número entero de unidades de codificación,
    decodificar a partir del flujo de bits una estructura de sintaxis que proporciona al menos una de una lista 0 de imágenes de referencia para los segmentos P y B y una lista 1 de imágenes de referencia para los segmentos B, en el que al menos una de la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia contiene imágenes de referencia inactivas marcadas como "usada como referencia" pero que se indica que no se usen como referencia para un segmento actual,
    marcar las imágenes que no se encuentran en ninguna de la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia como "no usada como referencia", y
    caracterizado porque el procedimiento comprende además:
    decodificar un segmento actual de una imagen actual mediante el uso de una o más imágenes de referencia de la lista 0 de imágenes de referencia o la lista 1 de imágenes de referencia, pero no de las imágenes de referencia inactivas que se indica que sean "no usada como referencia para el segmento actual" de la imagen actual, y
    concluir que las imágenes de referencia inactivas de la lista 0 de imágenes de referencia no sean "usada como referencia para el segmento actual" decodificando un primer índice de referencia máximo de la lista 0 de imágenes de referencia para decodificar el segmento actual, en el que las imágenes de referencia inactivas en la lista 0 de imágenes de referencia tienen un índice de referencia más allá del primer índice de referencia máximo.
  8. 8. Un procedimiento de acuerdo con la reivindicación 7, que comprende además:
    concluir que las imágenes de referencia inactivas de la lista 1 de imágenes de referencia no sean "usada como referencia para el segmento actual" decodificando un segundo índice de referencia máximo de la lista 1 de imágenes de referencia para decodificar el segmento actual, en el que las imágenes de referencia inactivas en la lista 1 de imágenes de referencia tienen un índice de referencia más allá del segundo índice de referencia máximo.
  9. 9. Un procedimiento de acuerdo con la reivindicación 7 u 8, que comprende además:
    marcar imágenes en cualquiera de la list 0 de imágenes de referencia y la lista 1 de imágenes de referencia como "usada como referencia", en el que esas imágenes están, por lo tanto, disponibles como imágenes de referencia para decodificar una imagen posterior.
  10. 10. Un procedimiento de acuerdo con la reivindicación 7, 8 o 9, que comprende además:
    decodificar a partir de la estructura de sintaxis una lista ordenada de imágenes a incluir en cualquiera de la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia.
  11. 11. Un procedimiento de acuerdo con la reivindicación 7, 8 o 9, que comprende además:
    si una imagen está marcada como "no usada como referencia" y ya se ha decodificado y emitido, eliminar la imagen de una memoria o reutilizar el espacio de memoria usado para la imagen para otra imagen decodificada.
  12. 12. Un aparato para codificar datos de vídeo que comprende los medios (302) para realizar un procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 6.
  13. 13. Un aparato para decodificar datos de vídeo que comprende los medios para realizar un procedimiento de acuerdo con una cualquiera de las reivindicaciones 7 a 11.
  14. 14. Un medio legible por ordenador que tiene instrucciones legibles por ordenador en el mismo, las cuales, cuando se ejecutan por uno o más procesadores (56), hacen que uno o más procesadores (56) realicen un procedimiento de una cualquiera de las reivindicaciones 1 a 6.
  15. 15. Un medio legible por ordenador que tiene instrucciones legibles por ordenador en el mismo, las cuales, cuando se ejecutan por uno o más procesadores (56), hacen que uno o más procesadores (56) realicen un procedimiento de una cualquiera de las reivindicaciones 7 a 11.
ES19171620T 2011-11-08 2012-11-07 Manejo de imágenes de referencia Active ES2898887T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201161557386P 2011-11-08 2011-11-08

Publications (1)

Publication Number Publication Date
ES2898887T3 true ES2898887T3 (es) 2022-03-09

Family

ID=48223703

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19171620T Active ES2898887T3 (es) 2011-11-08 2012-11-07 Manejo de imágenes de referencia

Country Status (7)

Country Link
US (4) US9918080B2 (es)
EP (3) EP2777276B1 (es)
CN (1) CN104025599B (es)
ES (1) ES2898887T3 (es)
PL (1) PL3576412T3 (es)
PT (1) PT3576412T (es)
WO (1) WO2013068647A1 (es)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2750387B1 (en) 2011-09-22 2019-06-19 LG Electronics Inc. Video decoding method and video decoding apparatus
EP2777276B1 (en) 2011-11-08 2019-05-01 Nokia Technologies Oy Reference picture handling
US20130114710A1 (en) * 2011-11-08 2013-05-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by prediction using reference picture list, and method and apparatus for decoding video by performing compensation using reference picture list
US20130188709A1 (en) 2012-01-25 2013-07-25 Sachin G. Deshpande Video decoder for tiles with absolute signaling
EP2838263A4 (en) * 2012-04-15 2015-12-23 Samsung Electronics Co Ltd INTERPRETING METHOD BY WHICH LISTS OF REFERENCE PICTURES CAN BE MODIFIED, AND APPARATUS THEREFOR
US9609341B1 (en) * 2012-04-23 2017-03-28 Google Inc. Video data encoding and decoding using reference picture lists
WO2013162454A1 (en) * 2012-04-24 2013-10-31 Telefonaktiebolaget L M Ericsson (Publ) Identifying a parameter set for decoding a multi-layer video representation
US9813705B2 (en) 2012-04-26 2017-11-07 Qualcomm Incorporated Parameter set coding
WO2013168407A1 (en) 2012-05-09 2013-11-14 Panasonic Corporation Method of performing motion vector prediction, encoding and decoding methods, and apparatuses thereof
US9762903B2 (en) * 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
US9420286B2 (en) 2012-06-15 2016-08-16 Qualcomm Incorporated Temporal motion vector prediction in HEVC and its extensions
US9167248B2 (en) 2012-07-13 2015-10-20 Qualcomm Incorporated Reference picture list modification for video coding
US9392268B2 (en) 2012-09-28 2016-07-12 Qualcomm Incorporated Using base layer motion information
US9674542B2 (en) * 2013-01-02 2017-06-06 Qualcomm Incorporated Motion vector prediction for video coding
US11438609B2 (en) 2013-04-08 2022-09-06 Qualcomm Incorporated Inter-layer picture signaling and related processes
US10158876B2 (en) * 2013-04-10 2018-12-18 Qualcomm Incorporated Backward view synthesis prediction
WO2015006281A2 (en) * 2013-07-09 2015-01-15 Sony Corporation High level syntax improvement on inter-layer prediction for shvc/mv-hevc
JP6397421B2 (ja) * 2013-10-08 2018-09-26 シャープ株式会社 画像復号装置及び画像符号化装置
JP6393317B2 (ja) * 2013-10-10 2018-09-19 シャープ株式会社 復号方法及び符号化方法
US20160249056A1 (en) * 2013-10-10 2016-08-25 Sharp Kabushiki Kaisha Image decoding device, image coding device, and coded data
CN105850126B (zh) * 2013-12-24 2019-03-26 株式会社Kt 用于对多层视频信号进行编码/解码的方法和装置
KR20150110295A (ko) 2014-03-24 2015-10-02 주식회사 케이티 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
CN105516729B (zh) * 2014-09-23 2019-12-31 浙江大学 视频编解码方法、装置及生成的视频码流
GB2531271A (en) * 2014-10-14 2016-04-20 Nokia Technologies Oy An apparatus, a method and a computer program for image sequence coding and decoding
US10638140B2 (en) * 2015-05-29 2020-04-28 Qualcomm Incorporated Slice level intra block copy and other video coding improvements
FR3046321B1 (fr) * 2015-12-29 2018-01-26 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes
CN107770542A (zh) * 2016-08-21 2018-03-06 上海天荷电子信息有限公司 采用编码参数基值的数据压缩方法和装置
US20180109810A1 (en) * 2016-10-17 2018-04-19 Mediatek Inc. Method and Apparatus for Reference Picture Generation and Management in 3D Video Compression
US10798145B1 (en) * 2017-04-25 2020-10-06 Benjamin J. Garney Analyzing data streams
CN107368566A (zh) * 2017-07-10 2017-11-21 Tcl移动通信科技(宁波)有限公司 一种图片查看方法、终端设备及存储介质
EP3780608A4 (en) 2018-04-02 2021-12-01 SZ DJI Technology Co., Ltd. IMAGE PROCESSING PROCESS AND IMAGE PROCESSING DEVICE
KR20210024164A (ko) * 2018-07-01 2021-03-04 샤프 가부시키가이샤 코딩된 비디오에 포함된 픽처에 대한 픽처 순서 카운트 값을 시그널링하기 위한 시스템 및 방법
KR102609949B1 (ko) 2018-08-17 2023-12-04 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 참조 영상 관리
EP3847804B1 (en) * 2018-09-12 2022-12-07 Huawei Technologies Co., Ltd. Index signaling for reference picture list structures
WO2020059687A1 (en) * 2018-09-21 2020-03-26 Sharp Kabushiki Kaisha Systems and methods for signaling reference pictures in video coding
US11196988B2 (en) * 2018-12-17 2021-12-07 Apple Inc. Reference picture management and list construction
WO2021033749A1 (en) * 2019-08-22 2021-02-25 Sharp Kabushiki Kaisha Systems and methods for signaling picture information in video coding
CA3152445A1 (en) * 2019-09-24 2021-04-01 Huawei Technologies Co., Ltd. Signaling of picture header in video coding
AR121125A1 (es) 2020-02-29 2022-04-20 Beijing Bytedance Network Tech Co Ltd Interacción entre cabecera de imagen y cabecera de segmento de un flujo de bits de video
EP4128791A4 (en) * 2020-04-02 2023-07-19 Telefonaktiebolaget LM ERICSSON (PUBL) DECODING BASED ON A BIDIRECTIONAL IMAGE STATE
CN115606183A (zh) 2020-04-07 2023-01-13 抖音视界有限公司(Cn) 参考图片环绕的剪裁操作
JP2023521588A (ja) 2020-04-09 2023-05-25 北京字節跳動網絡技術有限公司 映像コーディングにおけるデブロッキング信号通知
CN115486064A (zh) 2020-04-10 2022-12-16 抖音视界有限公司 标头语法元素和自适应参数集的使用
WO2021209061A1 (en) 2020-04-17 2021-10-21 Beijing Bytedance Network Technology Co., Ltd. Presence of adaptation parameter set units
KR20230002447A (ko) * 2020-04-26 2023-01-05 바이트댄스 아이엔씨 비디오 코딩 신택스 요소의 조건적 시그널링
WO2021222038A1 (en) 2020-04-27 2021-11-04 Bytedance Inc. Sublayers information in video coding
US11743503B2 (en) * 2020-05-14 2023-08-29 Qualcomm Incorporated Reference picture list constraints and signaling in video coding
WO2021235895A1 (ko) * 2020-05-22 2021-11-25 엘지전자 주식회사 영상 코딩 방법 및 그 장치
WO2023237119A1 (en) * 2022-06-10 2023-12-14 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998005159A1 (en) * 1996-07-31 1998-02-05 Matsushita Electric Industrial Co., Ltd. Picture encoder, picture decoder, picture encoding method, picture decoding method, and medium
US8255956B2 (en) * 1999-06-28 2012-08-28 Cox Communications, Inc. System and method for delivery of short-time duration video segments
US20050207490A1 (en) * 2004-03-18 2005-09-22 Wang Jason N Stored picture index for AVC coding
US20060083298A1 (en) 2004-10-14 2006-04-20 Nokia Corporation Reference picture management in video coding
WO2007044556A2 (en) * 2005-10-07 2007-04-19 Innovation Management Sciences, L.L.C. Method and apparatus for scalable video decoder using an enhancement stream
EP1806930A1 (en) 2006-01-10 2007-07-11 Thomson Licensing Method and apparatus for constructing reference picture lists for scalable video
US20100091845A1 (en) 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
BRPI0716957A2 (pt) 2006-10-13 2013-10-29 Thomson Licensing Sintaxe de gerenciamento de lista de imagens de referência para codificação de vídeo de múltiplas vistas
ES2702704T3 (es) 2006-10-16 2019-03-05 Nokia Technologies Oy Sistema y procedimiento para implementar una administración eficiente de memoria intermedia decodificada en codificación de video de vistas múltiples
JP2010507975A (ja) 2006-10-24 2010-03-11 トムソン ライセンシング 多視点映像符号化のための画像の管理
CN101999228A (zh) 2007-10-15 2011-03-30 诺基亚公司 针对多视角视频内容的运动跳跃和单环路编码
US8902996B2 (en) * 2008-02-26 2014-12-02 Richwave Technology Corp. Adaptive wireless video transmission systems and methods
WO2009130561A1 (en) 2008-04-21 2009-10-29 Nokia Corporation Method and device for video coding and decoding
US8385404B2 (en) * 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
JPWO2010035730A1 (ja) 2008-09-24 2012-02-23 ソニー株式会社 画像処理装置および方法
RU2011110246A (ru) 2008-09-24 2012-09-27 Сони Корпорейшн (JP) Устройство и способ обработки изображений
US8861586B2 (en) 2008-10-14 2014-10-14 Nvidia Corporation Adaptive deblocking in a decoding pipeline
WO2010086500A1 (en) 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
EP2392138A4 (en) * 2009-01-28 2012-08-29 Nokia Corp METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
US20110026593A1 (en) * 2009-02-10 2011-02-03 New Wei Lee Image processing apparatus, image processing method, program and integrated circuit
US8693539B2 (en) * 2009-03-26 2014-04-08 Panasonic Corporation Coding method, error detecting method, decoding method, coding apparatus, error detecting apparatus, and decoding apparatus
US9066102B2 (en) 2010-11-17 2015-06-23 Qualcomm Incorporated Reference picture list construction for generalized P/B frames in video coding
US8842723B2 (en) * 2011-01-03 2014-09-23 Apple Inc. Video coding system using implied reference frames
JP5988252B2 (ja) * 2011-01-12 2016-09-07 サン パテント トラスト 複数の参照ピクチャを用いた、動画像符号化方法、動画像復号方法、動画像符号化装置、及び、動画像復号装置
US9532066B2 (en) * 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
TW201246943A (en) * 2011-01-26 2012-11-16 Panasonic Corp Video image encoding method, video image encoding device, video image decoding method, video image decoding device, and video image encoding and decoding device
MX2013008691A (es) * 2011-02-10 2013-08-21 Panasonic Corp Metodo de codificacion de imagenes en movimiento, aparato de codificacion de imagenes en movimiento, metodo de decodificacion de imagenes en movimiento, aparato de decodificacion de imagenes en movimiento y aparato de codificacion y decodificacion de imagenes en movimiento.
US9131239B2 (en) * 2011-06-20 2015-09-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
KR101578308B1 (ko) 2011-06-30 2015-12-16 텔레폰악티에볼라겟엘엠에릭슨(펍) 레퍼러스 픽처 시그널링
US9420307B2 (en) 2011-09-23 2016-08-16 Qualcomm Incorporated Coding reference pictures for a reference picture set
US8787688B2 (en) 2011-10-13 2014-07-22 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
WO2013061549A1 (ja) * 2011-10-28 2013-05-02 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
EP2777276B1 (en) 2011-11-08 2019-05-01 Nokia Technologies Oy Reference picture handling

Also Published As

Publication number Publication date
US20180199051A1 (en) 2018-07-12
CN104025599A (zh) 2014-09-03
PL3576412T3 (pl) 2022-01-24
US11212546B2 (en) 2021-12-28
PT3576412T (pt) 2021-11-26
US10587887B2 (en) 2020-03-10
US20220124360A1 (en) 2022-04-21
US20200213607A1 (en) 2020-07-02
EP2777276A4 (en) 2015-07-22
EP4020989A1 (en) 2022-06-29
EP3576412B1 (en) 2021-09-01
EP3576412A1 (en) 2019-12-04
WO2013068647A1 (en) 2013-05-16
US9918080B2 (en) 2018-03-13
EP2777276B1 (en) 2019-05-01
EP2777276A1 (en) 2014-09-17
CN104025599B (zh) 2018-12-14
US20130114742A1 (en) 2013-05-09

Similar Documents

Publication Publication Date Title
ES2898887T3 (es) Manejo de imágenes de referencia
US10904543B2 (en) Method and apparatus for video coding and decoding
US10397610B2 (en) Method and apparatus for video coding
US10264288B2 (en) Method for video coding and an apparatus, a computer-program product, a system, and a module for the same
JP6057395B2 (ja) ビデオ符号化方法および装置
EP2904797B1 (en) Method and apparatus for scalable video coding
JP2019075823A (ja) ビデオ符号化・復号装置、方法、及びコンピュータプログラム
US20140254681A1 (en) Apparatus, a method and a computer program for video coding and decoding
US20130343459A1 (en) Method and apparatus for video coding
US20140085415A1 (en) Method and apparatus for video coding