ES3009551T3 - Video decoding method using high-precision motion vector encoding - Google Patents

Video decoding method using high-precision motion vector encoding Download PDF

Info

Publication number
ES3009551T3
ES3009551T3 ES15855245T ES15855245T ES3009551T3 ES 3009551 T3 ES3009551 T3 ES 3009551T3 ES 15855245 T ES15855245 T ES 15855245T ES 15855245 T ES15855245 T ES 15855245T ES 3009551 T3 ES3009551 T3 ES 3009551T3
Authority
ES
Spain
Prior art keywords
prediction
motion vector
coding
information
video
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
ES15855245T
Other languages
English (en)
Inventor
Seung-Soo Jeong
Min-Woo Park
Jin-Young Lee
Sun-Il Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=55857887&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES3009551(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Application granted granted Critical
Publication of ES3009551T3 publication Critical patent/ES3009551T3/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

Un método para decodificar un vídeo mediante un dispositivo de decodificación de vídeo puede comprender los pasos de: determinar, a partir de un flujo de bits, información del modo de predicción de un bloque actual y un índice que indica un candidato de predicción; determinar una lista de candidatos de predictor de acuerdo con la información del modo de predicción; cuando la información del modo de predicción del bloque actual indica un modo de predicción predeterminado, determinar un vector de movimiento, que se indica mediante el índice, de entre la lista de candidatos de predictor, y determinar un vector de movimiento predicho del bloque actual sobre la base de al menos una pieza de información de predicción de movimiento relacionada con el vector de movimiento; y determinar el vector de movimiento del bloque actual sobre la base del vector de movimiento predicho, donde el modo de predicción predeterminado es un modo de predicción diferente de un modo de salto o un modo de fusión. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método de decodificación de vídeo que usa codificación de vector de movimiento de alta precisión
Campo técnico
La presente divulgación se refiere a un método de decodificación de vídeo.
Antecedentes de la técnica
A medida que se desarrollan y suministran equipos para reproducir y almacenar contenido de vídeo de alta resolución o alta calidad, aumenta la necesidad de un códec de vídeo para codificar o decodificar eficazmente el contenido de vídeo de alta resolución o alta calidad. Según un códec de vídeo convencional, un vídeo se codifica según un método de codificación limitado basado en un macrobloque que tiene un tamaño predeterminado.
Los datos de imagen de una región espacial se transforman en coeficientes de una región de frecuencia mediante una transformación de frecuencia. Según un códec de vídeo, una imagen se parte en bloques que tienen un tamaño predeterminado, se realiza una transformación de coseno discreta (DCT) en cada bloque y los coeficientes de frecuencia se codifican en unidades de bloque, para un cálculo rápido de la transformación de frecuencia. En comparación con los datos de imagen de una región espacial, los coeficientes de una región de frecuencia se comprimen fácilmente. En particular, dado que un valor de píxel de imagen de una región espacial se expresa según un error de predicción mediante interpredicción o intrapredicción de un códec de vídeo, cuando se realiza una transformación de frecuencia en el error de predicción, una gran cantidad de datos se puede transformar a 0. Según un códec de vídeo, una cantidad de datos se puede reducir reemplazando datos que se generan de forma consecutiva y repetida con datos de tamaño pequeño.
El documento EP 2 725 800 A2 describe un método y un aparato para codificar y decodificar información de movimiento, específicamente para codificar y decodificar de manera efectiva información de movimiento de una unidad de predicción actual.
El documento WO 2013/053309 A1 describe un método y un aparato para derivar predictores de vectores de movimiento para un bloque para codificación de vídeo tridimensional o codificación de vídeo multivista.
Descripción detallada de la invención
Problema técnico
Se proporciona un método de decodificación de vídeo que busca diversos candidatos de vector de movimiento de predicción mediante el uso de un vector de movimiento y mejora la compresibilidad al reducir la representación de bits.
Solución técnica
Las realizaciones descritas en relación con las figuras 5a y 7 permiten la divulgación de la invención protegida. Las demás figuras, aspectos y realizaciones se proporcionan con fines ilustrativos y no representan realizaciones de la invención a menos que se combinen con todas las características definidas respectivamente en las reivindicaciones independientes.
Efectos ventajosos de la invención
Se proporciona un método de decodificación de vídeo que busca diversos candidatos de vector de movimiento de predicción mediante el uso de un vector de movimiento y mejora la compresibilidad al reducir la representación de bits.
Descripción de los dibujos
La presente divulgación se entenderá con respecto a una combinación de las descripciones detalladas a continuación y los dibujos adjuntos, en los que los números de referencia indican elementos estructurales.
La FIG. 1 es un diagrama de bloques de un aparato de codificación de vídeo.
La FIG. 2 es un diagrama de flujo de un método de codificación de vídeo.
La FIG. 3 es un diagrama de bloques de un aparato de decodificación de vídeo.
La FIG. 4 es un diagrama de flujo de un método de decodificación de vídeo según una realización.
Las FIGS. 5A a 5D son diagramas para describir procesos de determinación de candidatos a vectores de movimiento de predicción.
Las FIGS. 6A a 6C son diagramas para describir un método de representación de bits, cuando se inserta información de modo de predicción preestablecido en una lista de candidatos de predictor existente.
La FIG. 7 es un diagrama para describir un método de representación de bits de vectores de movimiento de predicción. La FIG. 8 es un diagrama de bloques de un aparato de codificación de vídeo basado en unidades de codificado según una estructura de árbol.
La FIG. 9 es un diagrama de bloques de un aparato de decodificación de vídeo basado en unidades de codificado según una estructura de árbol.
La FIG.10 ilustra un concepto de unidades de codificado.
La FIG. 11 es un diagrama bloques de un codificador de vídeo basado en unidades de codificado.
La FIG. 12 es un diagrama bloques de un decodificador de vídeo basado en unidades de codificado. La FIG. 13 es un diagrama que ilustra unidades de codificado y particiones.
La FIG. 14 es un diagrama para describir una relación entre una unidad de codificado y unidades de transformación. La FIG. 15 ilustra una pluralidad de elementos de información de codificación.
La FIG. 16 ilustra unidades de codificado.
Las FIGS. 17, 18 y 19 son diagramas para describir una relación entre unidades de codificado, unidades de predicción y unidades de transformación.
La FIG. 20 es un diagrama para describir una relación entre una unidad de codificado, una unidad de predicción y una unidad de transformación, según la información de modo de codificación de la Tabla 1.
La FIG. 21 es un diagrama de una estructura física de un disco en el que se almacena un programa.
La FIG. 22 es un diagrama de una unidad de disco para grabar y leer un programa mediante el uso del disco. La FIG. 23 es un diagrama de una estructura general de un sistema de suministro de contenido para proporcionar un servicio de distribución de contenido.
Las FIGS. 24 y 25 ilustran estructuras externas e internas de un teléfono móvil al que se aplica el método de codificación de vídeo y el método de decodificación de vídeo de la presente divulgación.
La FIG. 26 ilustra un sistema de transmisión digital que emplea un sistema de comunicación.
La FIG. 27 es un diagrama que ilustra una estructura de red de un sistema informático en la nube que utiliza el aparato de codificación de vídeo y el aparato de decodificación de vídeo.
Mejor modo
Según la presente invención se proporciona un método como se expone en las reivindicaciones adjuntas. Otras características de la invención resultarán evidentes a partir de las reivindicaciones dependientes y de la descripción que sigue.
Modo de la invención
Todos los términos, incluidos los términos descriptivos o técnicos, que se utilizan en esta memoria deben interpretarse como que tienen significados que son obvios para un experto en la técnica. Sin embargo, los términos pueden tener diferentes significados según la intención de un experto en la técnica, casos precedentes o la aparición de nuevas tecnologías. Además, algunos términos pueden ser seleccionados arbitrariamente por el solicitante y, en este caso, el significado de los términos seleccionados se describirá en detalle en la descripción detallada de la divulgación. Por lo tanto, los términos utilizados en esta memoria deben definirse en función del significado de los términos junto con la descripción a lo largo de la memoria descriptiva.
Además, a lo largo de la memoria descriptiva, cuando una parte "incluye" o "comprende" un elemento, a menos que exista una descripción particular en contra de ello, la parte puede incluir además otros elementos, sin excluir los otros elementos. El término "unidad", como se utiliza en esta memoria, significa un componente de software o hardware, como una matriz de puertas programables en campo (FPGA) o un circuito integrado específico de la aplicación (ASIC), que realiza ciertas tareas. Sin embargo, el término "unidad" no se limita al software o al hardware. Una "unidad" puede configurarse ventajosamente para residir en el soporte de almacenamiento accesible por dirección y configurarse para ejecutarse en uno o más procesadores. Por lo tanto, una unidad puede incluir, a modo de ejemplo, componentes, como componentes de software, componentes de software orientados a objetos, componentes de clase y componentes de tarea, procesos, funciones, atributos, procedimientos, subrutinas, segmentos de código de programa, controladores, firmware, microcódigo, circuitos, datos, bases de datos, estructuras de datos, tablas, distribuciones y variables. La funcionalidad prevista en los componentes y "unidades" puede combinarse en menos componentes y "unidades" o puede separarse aún más en componentes y "unidades" adicionales.
Aunque los términos "primero" y "segundo" se utilizan para describir diversos componentes, es obvio que los componentes no se limitan a los términos "primero" y "segundo". Los términos "primero" y "segundo" se utilizan únicamente para distinguir entre cada componente. Por ejemplo, un primer componente puede indicar un segundo componente o un segundo componente puede indicar un primer componente sin entrar en conflicto con la presente divulgación. El término "y/o" incluye todas y cada una de las combinaciones de uno o más de los elementos enumerados asociados.
La presente divulgación se describirá ahora con más detalle con referencia a los dibujos adjuntos, en los que se muestran realizaciones de la presente divulgación. Sin embargo, la presente divulgación puede incorporarse en muchas formas diferentes y no debe interpretarse como limitada a las realizaciones establecidas en esta memoria.
A continuación, se sugerirán un método de codificación de vídeo ejemplar y un método de decodificación de vídeo según realizaciones, con referencia a las FIGS. 1 a 7.
Además, se describirán con referencia a las FIGS. 8 a 20 un método de codificación de vídeo y un método de decodificación de vídeo basados en unidades de codificado de una estructura de árbol, que son aplicables al método de codificación de vídeo y al método de decodificación de vídeo sugeridos.
Además, con referencia a las FIGS. 21 a 27, se describirán ejemplos a los que es aplicable el método de codificación de vídeo y el método de decodificación de vídeo.
De ahora en adelante, una "imagen" podrá referirse a una imagen fija o a una imagen en movimiento de un vídeo, o al vídeo en sí.
De aquí en adelante, un "bloque actual" puede referirse a un bloque de una imagen que se va a codificar o decodificar.
En lo sucesivo, un "bloque vecino" se refiere a al menos un bloque codificado o decodificado adyacente al bloque actual. Por ejemplo, un bloque vecino puede ubicarse en la parte superior, superior derecha, izquierda o superior izquierda de un bloque actual. Además, un bloque vecino puede ser un bloque espacialmente vecino o un bloque temporalmente vecino. Por ejemplo, un bloque temporalmente vecino puede incluir un bloque de una imagen de referencia que se encuentra adyacente al bloque actual. Además, un bloque vecino puede incluir un bloque ubicado en el mismo lugar que un bloque actual de una imagen de referencia, o un bloque ubicado en el mismo lugar que el bloque ubicado en el mismo lugar.
La FIG. 1 es un diagrama de bloques de un aparato de codificación de vídeo.
Con referencia a la FIG. 1, un aparato de codificación de vídeo 10 puede incluir un codificador 12 y un generador de flujo de bits 14. Sin embargo, no todos los componentes mostrados en la FIG. 1 son esenciales. El aparato de codificación de vídeo 10 puede incluir más o menos componentes que los mostrados en la FIG. 1. A continuación se describirán los componentes.
El aparato de codificación de vídeo 10 (por ejemplo, un codificador) puede buscar imágenes de referencia para un bloque de predicción más similar a un bloque actual durante la interpredicción, y luego transmitir información sobre el bloque de predicción a un aparato de decodificación de vídeo 20 (por ejemplo, un decodificador).
El aparato de codificación de vídeo 10 puede buscar las imágenes de referencia para encontrar un bloque de predicción óptimo a través de un proceso de estimación de movimiento y generar un bloque de predicción a través de un proceso de compensación de movimiento.
En adelante, "estimación de movimiento" puede indicar la búsqueda de imágenes de referencia para un bloque de predicción óptimo. Además, para una estimación de movimiento más precisa, el aparato de codificación de vídeo 10 puede interpolar una imagen reconstruida según un tipo de códec de vídeo y, a continuación, realizar una estimación de movimiento en la imagen interpolada en unidades de subpíxeles.
En lo sucesivo, "compensación de movimiento" puede indicar la generación de un bloque de predicción en función de la información de movimiento sobre un bloque de predicción óptimo encontrado durante un proceso de estimación de movimiento. En este caso, la información de movimiento puede ser un vector de movimiento o un índice de imagen de referencia, pero no se limita a ello.
En la interpredicción, el aparato de codificación de vídeo 10 transmite información de dirección de resultado de la estimación de movimiento, un índice de referencia que distingue una imagen de referencia en una lista de referencia, información del vector de movimiento, etc., al aparato de decodificación de vídeo 20. En este caso, la información de dirección de resultado de la estimación de movimiento puede ser información de dirección que distingue una lista de imágenes de referencia 0 y una lista de imágenes de referencia 1. El aparato de codificación de vídeo 10 puede utilizar un modo de predicción que utiliza una correlación de información de movimiento entre un bloque vecino y un bloque actual, de modo de reducir una cantidad de información de movimiento transferida en unidades de predicción. El modo de predicción puede ser un modo de omisión, un modo de fusión, un modo de predicción avanzada del vector de movimiento (AMVP), pero no se limita a ellos, y puede ser otro modo de predicción.
El codificador 12 puede formar una lista de bloques candidatos para inducir información de movimiento y seleccionar un bloque candidato en la lista. Por ejemplo, la información de movimiento puede ser un vector de movimiento de un bloque actual. En otras palabras, el codificador 12 puede determinar una lista de candidatos de predicción para inducir la información de movimiento.
En la memoria descriptiva, un "candidato de predicción" puede indicar un bloque candidato. Una "lista de candidatos de predicción" puede indicar una lista de vectores de movimiento de bloques candidatos. La "lista de candidatos de predicción" puede indicar alternativamente una lista de índices que indican vectores de movimiento de bloques candidatos. Un "vector de movimiento básico" puede indicar un vector de movimiento en el que un bloque candidato indica un bloque de referencia. Un "vector de movimiento de predicción" puede ser un vector derivado del "vector de movimiento básico", y puede indicar un vector de movimiento seleccionado para predecir un vector de movimiento de un bloque actual entre los candidatos de vector de movimiento determinados mediante el uso de información de predicción de movimiento relacionada con el vector de movimiento básico.
El codificador 12 puede determinar una lista de candidatos de predicción según la información de modo de predicción preestablecido. En este caso, un modo de predicción preestablecido puede ser un modo de predicción diferente de un modo de omisión y un modo de fusión. El modo de predicción preestablecido puede ser un modo en el que los candidatos de vector de movimiento de predicción se generan utilizando no solo información utilizada durante un modo de omisión o un modo de fusión sino también información que puede utilizarse para codificar y decodificar una imagen, y uno de los candidatos de vector de movimiento de predicción se determina como un vector de movimiento de predicción.
Por ejemplo, el codificador 12 puede generar candidatos de vector de movimiento de predicción utilizando al menos una información de dirección de referencia que distingue una lista de imágenes de referencia, un índice de imágenes de referencia, un valor de vector de movimiento y una diferencia de vector de movimiento, según un modo de predicción preestablecido, y determinar uno de los candidatos de vector de movimiento de predicción como un vector de movimiento de predicción. Esto se describirá más adelante con referencia a las FIGS. 5A a 5D.
Como otro ejemplo, el codificador 12 puede cambiar al menos una de las informaciones de dirección de referencia que distinguen una lista de imágenes de referencia, un índice de imágenes de referencia, un valor de vector de movimiento y una diferencia de vector de movimiento, según un modo de predicción preestablecido, generar candidatos de vector de movimiento de predicción utilizando únicamente información modificada o utilizando la información modificada y la información anterior a ser modificada, y determinar uno de los candidatos de vector de movimiento de predicción como un vector de movimiento de predicción.
Una lista de candidatos de predicción según un modo de predicción preestablecido puede incluir, como candidatos de vector de movimiento de predicción, candidatos a distancias uniformes de un vector de movimiento básico. Los detalles sobre la determinación de candidatos de vector de movimiento de predicción se describirán más adelante con referencia a las FIGS. 5A a 5D.
Una lista de candidatos de predicción puede incluir un candidato espacial o un candidato temporal. El candidato espacial puede ser bloques vecinos adyacentes determinados según una forma partida de una unidad de predicción basada en una suposición de que los movimientos de un bloque actual y bloques adyacentes son similares. Por ejemplo, una unidad de predicción 2Nx2N puede utilizar cinco bloques adyacentes a un bloque actual como candidatos espaciales. Las unidades de predicción 2NxN, Nx2N, 2NxnU, 2NxnD, nLx2N y nRx2N también pueden utilizar cinco bloques adyacentes a un bloque actual como candidatos espaciales. Además, cuando se completa la determinación de los candidatos espaciales, el codificador 12 puede determinar un candidato temporal. Además, después de que se completa la determinación de los candidatos espaciales o temporales, se puede determinar un candidato adicional en función de una combinación de candidatos completados.
Cuando la información de modo de predicción del bloque actual indica el modo de predicción preestablecido, el codificador 12 puede determinar un vector de movimiento indicado por el índice de candidato de predicción de la lista de candidatos de predicción. El codificador 12 puede determinar un vector de movimiento de predicción del bloque actual en función de al menos uno de los elementos de información de predicción de movimiento relacionados con el vector de movimiento. El codificador 12 puede obtener los candidatos de vector de movimiento de predicción combinando los elementos de información de predicción de movimiento relacionados con el vector de movimiento, y determinar el vector de movimiento de predicción según un bloque de predicción más similar al bloque actual entre los candidatos de vector de movimiento de predicción.
La información de predicción de movimiento relacionada con el vector de movimiento puede incluir al menos una de una dirección de referencia obtenida de bloques vecinos de un bloque actual, un índice de una imagen de referencia, un valor de vector de movimiento e información de diferencia de vector de movimiento, pero no se limita a esto.
El codificador 12 puede obtener nuevos candidatos de vector de movimiento de predicción combinando o cambiando la dirección de referencia, el índice de la imagen de referencia, el valor del vector de movimiento y la información de diferencia del vector de movimiento, y determinar el vector de movimiento de predicción del bloque actual entre los nuevos candidatos de vector de movimiento de predicción.
Además, el codificador 12 puede determinar de forma diferente el número de candidatos de vector de movimiento de predicción con respecto a cada grupo de candidatos. El codificador 12 puede determinar candidatos de vector de movimiento de predicción a una primera distancia de píxel desde el vector de movimiento básico como un primer grupo de candidatos, candidatos de vector de movimiento de predicción a una segunda distancia de píxel desde el vector de movimiento básico como un segundo grupo de candidatos, y candidatos de vector de movimiento de predicción a una n-ésima distancia de píxel desde el vector de movimiento básico como un n-ésimo grupo de candidatos. En este caso, los candidatos de vector de movimiento de predicción a una distancia de píxel uniforme también pueden incluir candidatos de vector de movimiento de predicción a una distancia de píxel dentro de un intervalo de error preestablecido desde la distancia de píxel uniforme. Además, el codificador 12 puede formar candidatos de vector de movimiento de predicción de forma que una distancia de píxel aumente a medida que aumenta el número de grupos, en donde la distancia de píxel puede aumentar lineal o no linealmente.
El codificador 12 puede determinar un índice de candidato que indica un grupo al que pertenece un vector de movimiento de predicción, entre el primer grupo de candidatos y el segundo grupo de candidatos.
Mientras tanto, los índices que indican candidatos a vectores de movimiento de predicción incluidos en una lista de candidatos a predicción pueden incluir índices que indican candidatos a vectores de movimiento de predicción según un modo de omisión o un modo de fusión e índices que indican candidatos a vectores de movimiento de predicción según un modo de predicción preestablecido. Los índices que indican los candidatos a vectores de movimiento de predicción según el modo de predicción preestablecido pueden generarse entre índices existentes.
La información de modo de predicción del modo de predicción preestablecido se puede mostrar utilizando un indicador o índice de un modo de predicción existente. El modo de predicción existente puede incluir un modo de omisión, un modo de fusión o un modo AMVP, pero no se limita a ellos. El aparato de codificación de vídeo 10 puede determinar un vector de movimiento de predicción induciendo una dirección de referencia, un índice de imagen de referencia, un valor de vector de movimiento, etc. a partir de un bloque vecino, según un modo de omisión y un modo de fusión. El aparato de codificación de vídeo 10 puede transmitir una dirección de referencia, un índice de imagen de referencia y una diferencia de vectores de movimiento al aparato de decodificación de vídeo 20 según un modo AMVP, a diferencia de un modo de omisión y un modo de fusión.
Por ejemplo, se puede insertar un indicador sobre si se debe utilizar el modo de predicción preestablecido entre un indicador de omisión existente y un indicador de modo de fusión existente. Cuando un indicador de modo de predicción preestablecido está en un estado activado, el aparato de codificación de vídeo 10 puede no transmitir información de sintaxis relacionada con la predicción de movimiento excluyendo un índice de un candidato de vector de movimiento de predicción, o puede transmitir información sobre un componente residual. En este caso, si se transmite la información sobre un componente residual se puede transmitir explícitamente a través de un indicador. El aparato de codificación de vídeo 10 puede mostrar la información de modo de predicción del modo de predicción preestablecido utilizando el indicador o el índice del modo existente para reducir la representación de bits, mejorando así la compresibilidad.
Como otro ejemplo, el indicador sobre si se debe utilizar el modo de predicción preestablecido puede insertarse después del indicador de modo de fusión. Como se ha descrito anteriormente, cuando el indicador de modo de predicción preestablecido está en un estado activado, el aparato de codificación de vídeo 10 puede no transmitir la información de sintaxis relacionada con la predicción de movimiento excluyendo el índice del candidato de vector de movimiento de predicción, o puede transmitir la información sobre el componente residual. En este caso, si se transmite la información sobre el componente residual puede transmitirse explícitamente a través de un indicador.
Cuando la información de modo de predicción del modo de predicción preestablecido se inserta en la lista de índices existente, se modifica la representación de bits del índice después de insertar la información de modo de predicción. Los detalles de esto se describirán más adelante con referencia a las FIGS. 6A a 6C.
Además, el codificador 12 puede determinar un vector de movimiento del bloque actual utilizando el vector de movimiento de predicción y realizar una predicción de movimiento en el bloque actual en función del vector de movimiento del bloque actual.
El generador de flujo de bits 14 puede generar un flujo de bits que incluye la información de modo de predicción que indica el modo de predicción preestablecido. El aparato de codificación de vídeo 10 puede generar el flujo de bits generado para el aparato de decodificación de vídeo 20. El aparato de codificación de vídeo 10 puede reducir de forma eficaz una cantidad de datos relacionados con el movimiento mediante la transmisión de la información del vector de movimiento de predicción seleccionada de la lista de candidatos de predicción al aparato de decodificación de vídeo 20.
Además, el aparato de codificación de vídeo 10 puede realizar transformación, cuantización y codificación entrópica en una señal residual que es una diferencia entre un bloque original y un bloque de predicción obtenido a través de interpredicción.
El aparato de codificación de vídeo 10 puede incluir un procesador central (no mostrado) que controla en general el codificador 12 y el generador de flujo de bits 14. El procesador central puede realizarse como una distribución de una pluralidad de puertas lógicas, o puede realizarse como una combinación de un microprocesador de propósito general y una memoria en la que se almacena un programa ejecutable por el microprocesador. Además, sería obvio para un experto en la técnica que el procesador central puede realizarse en otra forma de hardware. Alternativamente, el codificador 12 y el generador de flujo de bits 14 pueden ser operados cada uno por un autoprocesador (no mostrado), y el aparato de codificación de vídeo 10 puede ser operado mientras los autoprocesadores operan mutuamente. Alternativamente, el codificador 12 y el generador de flujo de bits 14 pueden ser controlados según el control de un procesador externo (no mostrado) del aparato de codificación de vídeo 10.
El aparato de codificación de vídeo 10 puede incluir una o más memorias (no mostradas) que almacenan datos de entrada y salida del codificador 12 y del generador de flujo de bits 14. El aparato de codificación de vídeo 10 puede incluir un controlador de memoria (no mostrado) que controla la entrada y salida de datos de la memoria.
A continuación, se describirán diversas operaciones y aplicaciones del aparato de codificación de vídeo 10, en donde las descripciones que pueden ser claramente comprensibles y esperables por un experto en la técnica sin especificar uno del codificador 12 y el generador de flujo de bits 14 pueden entenderse como realizaciones generales, y el alcance de la presente divulgación no está limitado por un nombre de un elemento específico o una estructura física/lógica. A continuación, se describirán las operaciones del aparato de codificación de vídeo 10 con referencia a la FIG. 2.
La FIG. 2 es un diagrama de flujo de un método de codificación de vídeo.
En la operación S11 de la FIG. 2, el aparato de codificación de vídeo 10 puede determinar una lista de candidatos de predicción según un modo de predicción preestablecido. En este caso, el modo de predicción preestablecido puede ser un modo de predicción diferente de un modo de omisión y un modo de fusión. El modo de predicción preestablecido puede generar candidatos de vector de movimiento de predicción utilizando no solo información utilizada en un modo de omisión o un modo de fusión, sino también información que puede utilizarse para codificar y decodificar una imagen, y determinar uno de los candidatos de vector de movimiento de predicción como un vector de movimiento de predicción.
Por ejemplo, el aparato de codificación de vídeo 10 puede generar los candidatos de vector de movimiento de predicción utilizando al menos una de una información de dirección de referencia que distingue una lista de imágenes de referencia, un índice de imágenes de referencia, un valor de vector de movimiento y una diferencia de vector de movimiento, según el modo de predicción preestablecido, y determinar uno de los candidatos de vector de movimiento de predicción como el vector de movimiento de predicción.
La lista de candidatos de predicción según el modo de predicción preestablecido puede incluir vectores de movimiento de candidatos a distancias uniformes de un vector de movimiento básico. Además, el vector de movimiento básico puede ser uno de los candidatos de vector de movimiento de predicción utilizados en el modo de omisión o en el modo de fusión de un bloque actual.
En la operación S13, cuando la información de modo de predicción del bloque actual indica el modo de predicción preestablecido, el aparato de codificación de vídeo 10 puede determinar un vector de movimiento indicado por un índice de candidato de predicción de la lista de candidatos de predicción. El aparato de codificación de vídeo 10 puede determinar un vector de movimiento de predicción del bloque actual en función de al menos uno de los elementos de información de predicción de movimiento relacionados con el vector de movimiento.
El aparato de codificación de vídeo 10 puede determinar los candidatos de vector de movimiento de predicción en función de al menos una de los elementos de información de predicción de movimiento, y determinar el vector de movimiento de predicción según un bloque de predicción más similar al bloque actual entre los candidatos de vector de movimiento de predicción determinados.
La información de predicción de movimiento relacionada con el vector de movimiento puede incluir al menos una de las siguientes: una dirección de referencia obtenida de un bloque vecino del bloque actual, un índice de una imagen de referencia, un valor del vector de movimiento y un valor de diferencia del vector de movimiento, pero no se limita a ello. El aparato de codificación de vídeo 10 puede determinar el vector de movimiento de predicción del bloque actual combinando o cambiando la dirección de referencia, el índice de la imagen de referencia, el valor del vector de movimiento y la información de diferencia del vector de movimiento.
El aparato de codificación de vídeo 10 puede generar los candidatos de vector de movimiento de predicción utilizando al menos una información de dirección de referencia que distingue una lista de imágenes de referencia, un índice de imágenes de referencia, un valor de vector de movimiento y una diferencia de vector de movimiento, según el modo de predicción preestablecido, y determinar uno de los candidatos de vector de movimiento de predicción como el vector de movimiento de predicción.
Mientras tanto, los índices que indican los candidatos de vector de movimiento de predicción incluidos en la lista de candidatos de predicción pueden incluir índices que indican candidatos de vector de movimiento de predicción según el modo de omisión o el modo de fusión, e índices que indican candidatos de vector de movimiento de predicción según el modo de predicción preestablecido.
En este caso, los índices que indican los candidatos de vector de movimiento de predicción según el modo de predicción preestablecido pueden generarse entre los índices existentes. Además, la información de modo de predicción del modo de predicción preestablecido puede insertarse entre un indicador de omisión y un indicador de modo de fusión, o puede insertarse después del indicador de omisión o del indicador de modo de fusión.
Además, el aparato de codificación de vídeo 10 puede formar un grupo de candidatos utilizando m candidatos de vector de movimiento de predicción y generar n grupos de candidatos (aquí, m y n son cada uno un número entero positivo). Por ejemplo, el aparato de codificación de vídeo 10 puede determinar 4 candidatos de vector de movimiento de predicción a una distancia de 1/4 de píxel como un primer grupo de candidatos. El aparato de codificación de vídeo 10 puede determinar 4 candidatos de vector de movimiento de predicción a una distancia de 1/2 píxel como un segundo grupo de candidatos.
En la operación S15, el aparato de codificación de vídeo 10 puede determinar un vector de movimiento del bloque actual en función del vector de movimiento de predicción.
En la operación S17, el aparato de codificación de vídeo 10 puede codificar la información de modo de predicción que indica el modo de predicción preestablecido. El aparato de codificación de vídeo 10 puede generar un flujo de bits que incluye la información de modo de predicción que indica el modo de predicción preestablecido. El aparato de codificación de vídeo 10 puede transmitir el flujo de bits generado al aparato de decodificación de vídeo 20. Además, para generar un resultado de codificación de la información de modo de predicción, el aparato de codificación de vídeo 10 puede funcionar en conexión con un procesador de codificación de vídeo interno incluido en el mismo o con un procesador de codificación de vídeo externo. El procesador de codificación de vídeo interno del aparato de codificación de vídeo 10 puede realizar operaciones de codificación de vídeo básicas como un procesador individual, pero, como alternativa, el aparato de codificación de vídeo 10, un aparato operativo central o un aparato operativo gráfico pueden incluir un módulo de procesamiento de codificación de vídeo para realizar las operaciones de codificación de vídeo básicas.
La FIG. 3 es un diagrama de bloques de un aparato de decodificación de vídeo.
Con referencia a la FIG. 3, el aparato de decodificación de vídeo 20 puede incluir un determinador 22 y un decodificador 24. Sin embargo, no todos los componentes mostrados en la FIG. 3 son esenciales. El aparato de decodificación de vídeo 20 puede incluir más o menos componentes que los mostrados en la FIG. 3. A continuación se describirán los componentes.
Cuando un modo de predicción de un bloque actual es un modo de interpredicción, el aparato de decodificación de vídeo 20 realiza una compensación de movimiento utilizando información de imagen de referencia e información de bloque de referencia transmitida desde el aparato de codificación de vídeo 10. El aparato de decodificación de vídeo 20 puede generar un bloque de predicción a través de la compensación de movimiento. El aparato de decodificación de vídeo 20 puede reconstruir una imagen combinando el bloque de predicción generado y una señal residual generada a través de procesos de codificación entrópica, cuantización inversa y transformación inversa.
El determinador 22 puede recibir un flujo de bits y determinar la información de modo de predicción del bloque actual y un índice que indica un candidato de predicción, en función del flujo de bits recibido. Un modo de predicción puede incluir un modo de omisión, un modo de fusión y un modo AMVP, pero no se limita a ellos, y sería obvio para un experto en la técnica que el modo de predicción puede incluir otro modo de predicción. El modo de omisión y el modo de fusión son modos en los que se determina un vector de movimiento de predicción indicando una dirección de referencia, un índice de imagen de referencia, un valor de vector de movimiento, etc., a partir de un bloque vecino. A diferencia del modo de omisión y el modo de fusión, en el modo AMVP, la dirección de referencia, el índice de imagen de referencia y los vectores de movimiento pueden recibirse desde el aparato de codificación de vídeo 10. El modo de predicción puede preestablecerse en función de información que puede utilizarse para codificar y decodificar una imagen.
El determinador 22 puede formar una lista de bloques candidatos para inducir información de movimiento y seleccionar un bloque candidato en la lista. Por ejemplo, la información de movimiento puede ser un vector de movimiento de predicción del bloque actual. En otras palabras, el determinador 22 puede determinar una lista de candidatos de predicción para inducir la información de movimiento.
Un "candidato de predicción" puede indicar un bloque candidato. Una "lista de candidatos de predicción" puede indicar una lista de vectores de movimiento de bloques candidatos. La "lista de candidatos de predicción" puede indicar alternativamente una lista de índices que indican los vectores de movimiento de los bloques candidatos. Un "vector de movimiento básico" puede indicar un vector de movimiento en el que un bloque candidato indica un bloque de referencia. Un "vector de movimiento de predicción" es un vector derivado del "vector de movimiento básico", y puede indicar un vector de movimiento seleccionado entre los candidatos de vector de movimiento determinados mediante el uso de información de predicción de movimiento relacionada con el vector de movimiento básico, de modo de predecir un vector de movimiento de un bloque actual. El determinador 22 puede determinar una lista de candidatos de predicción según la información de modo de predicción.
Cuando la información de modo de predicción del bloque actual indica el modo de predicción preestablecido, el decodificador 24 puede determinar un vector de movimiento indicado por un índice de candidato de predicción de la lista de candidatos de predicción, y determinar un vector de movimiento de predicción del bloque actual en función de al menos uno de los elementos de información de predicción de movimiento relacionados con el vector de movimiento. El decodificador 24 puede realizar una compensación de movimiento en el bloque actual en función de un vector de movimiento del bloque actual, que se obtiene a partir del vector de movimiento de predicción. El decodificador 24 puede obtener información sobre una diferencia entre el vector de movimiento de predicción y un vector de movimiento original, y reconstruir el vector de movimiento del bloque actual sumando la diferencia y el vector de movimiento de predicción. El modo de predicción preestablecido puede ser un modo de predicción diferente del modo de omisión y del modo de fusión. El modo de predicción preestablecido puede ser un modo en el que los candidatos de vector de movimiento de predicción se generan utilizando no solo información que se utilizó en el modo de omisión o el modo de fusión, sino también información que se puede utilizar para codificar y decodificar una imagen, y uno de los candidatos de vector de movimiento de predicción se determina como el vector de movimiento de predicción.
Por ejemplo, el decodificador 24 puede generar los candidatos de vector de movimiento de predicción utilizando al menos una información de dirección de referencia que distingue una lista de imágenes de referencia, un índice de imagen de referencia, un valor de vector de movimiento y una diferencia de vector de movimiento, según el modo de predicción preestablecido, y determinar un vector de movimiento de un bloque de referencia entre los candidatos de vector de movimiento de predicción, como el vector de movimiento de predicción.
Como otro ejemplo, el decodificador 24 puede cambiar al menos una de la información de dirección de referencia que distingue la lista de imágenes de referencia, el índice de imágenes de referencia, el valor del vector de movimiento y la diferencia del vector de movimiento, según el modo de predicción preestablecido, generar los candidatos de vector de movimiento de predicción utilizando solo la información modificada o utilizando la información modificada y la información antes de ser modificada, y determinar uno de los candidatos de vector de movimiento de predicción como el vector de movimiento de predicción.
En otras palabras, el decodificador 24 puede generar los candidatos de vector de movimiento de predicción según el modo de predicción preestablecido y determinar uno de los candidatos de vector de movimiento de predicción como el vector de movimiento de predicción.
La lista de candidatos de predicción según el modo de predicción preestablecido puede incluir, como candidatos de vector de movimiento de predicción, candidatos a distancias uniformes de un vector de movimiento existente. Los detalles sobre la determinación de candidatos de vector de movimiento de predicción se describirán más adelante con referencia a las FIGS. 5A a 5D. Aquí, un "vector de movimiento básico" puede ser uno de los candidatos de vector de movimiento de predicción utilizados en un modo de omisión o modo de fusión de un bloque actual.
El decodificador 24 puede determinar candidatos de vector de movimiento de predicción a una primera distancia de píxel con respecto al vector de movimiento básico como un primer grupo de candidatos, y determinar candidatos de vector de movimiento de predicción a una segunda distancia de píxel con respecto al vector de movimiento básico como un segundo grupo de candidatos. En este caso, los candidatos de vector de movimiento de predicción a la primera distancia de píxel también pueden incluir candidatos de vector de movimiento de predicción a una distancia de píxel dentro de un intervalo de error preestablecido con respecto a la primera distancia de píxel.
La lista de candidatos de predicción puede incluir un candidato espacial o un candidato temporal. El candidato espacial puede ser bloques vecinos adyacentes determinados según una forma partida de una unidad de predicción basada en una suposición de que los movimientos del bloque actual y los bloques adyacentes son similares. Por ejemplo, una unidad de predicción 2Nx2N puede utilizar cinco bloques adyacentes a un bloque actual como candidatos espaciales. Las unidades de predicción 2NxN, Nx2N, 2NxnU, 2NxnD, nLx2N y nRx2N también pueden utilizar cinco bloques adyacentes a un bloque actual como candidatos espaciales. Además, cuando se completa la determinación de los candidatos espaciales, el determinador 22 puede determinar un candidato temporal. Además, después de que se completa la determinación de los candidatos espaciales o temporales, se puede determinar un candidato adicional en función de una combinación de candidatos completados.
Cuando la información de modo de predicción del bloque actual indica el modo de predicción preestablecido, el decodificador 24 puede determinar el vector de movimiento indicado por el índice de candidato de predicción a partir de la lista de candidatos de predicción. El decodificador 24 puede determinar el vector de movimiento de predicción del bloque actual en función de al menos uno de los elementos de información de predicción de movimiento relacionados con el vector de movimiento. El decodificador 24 puede obtener los candidatos de vector de movimiento de predicción combinando los elementos de información de predicción de movimiento relacionados con el vector de movimiento, y determinar el vector de movimiento indicado por el índice de candidato de predicción a partir de los candidatos de vector de movimiento de predicción.
La información de predicción de movimiento relacionada con el vector de movimiento puede incluir al menos uno de una dirección de referencia obtenida a partir del bloque vecino del bloque actual, un índice de una imagen de referencia, un valor de vector de movimiento e información de diferencia de vector de movimiento, pero no se limita a ello.
El decodificador 24 puede obtener nuevos candidatos de vector de movimiento de predicción combinando o cambiando la dirección de referencia, el índice de la imagen de referencia, el valor del vector de movimiento y la información de diferencia del vector de movimiento, y determinar el vector de movimiento de predicción del bloque actual entre los nuevos candidatos de vector de movimiento de predicción.
El decodificador 24 puede determinar un índice de candidato que indica un grupo al que pertenece el vector de movimiento de predicción, entre grupos candidatos primero y segundo.
Los índices que indican los candidatos de vector de movimiento de predicción incluidos en la lista de candidatos de predicción pueden incluir índices que indican los candidatos de vector de movimiento de predicción según el modo de omisión o el modo de fusión, e índices que indican candidatos de vector de movimiento de predicción según el modo de predicción preestablecido. Los índices que indican los candidatos de vector de movimiento de predicción según el modo de predicción preestablecido pueden cambiarse en función de los índices existentes. Los índices existentes pueden ser los índices que indican los candidatos de vector de movimiento de predicción según el modo de omisión o el modo de fusión. Los detalles de los mismos se describirán con referencia a las FIGS. 6A a 6C.
Además, la información de modo de predicción del modo de predicción preestablecido se puede obtener después de un indicador de omisión y un indicador de modo de fusión. Además, la información de modo de predicción del modo de predicción preestablecido se puede obtener a partir de un elemento de sintaxis de modo AMVP.
El indicador de omisión se encuentra en una región de inicio de una llamada de unidad de codificado y muestra información sobre si el bloque actual está en modo de omisión. Cuando el bloque actual está en modo de omisión, no se transmite ninguna sintaxis relacionada con la predicción de movimiento, excepto un índice de omisión. El índice de omisión indica una ubicación de un candidato seleccionado de una lista que incluye candidatos de un bloque vecino. La información utilizada como información de candidato en el bloque vecino incluye una dirección de referencia, un índice de imagen de referencia y un valor de predicción de vector de movimiento.
El indicador de fusión se encuentra en una región de inicio de una llamada de unidad de predicción y muestra información acerca de si un bloque de unidad de predicción del bloque actual está en el modo de fusión. Cuando el bloque de unidad de predicción está en el modo de fusión, el aparato de codificación de vídeo 10 transmite un índice de fusión y no transmite una sintaxis relacionada con una diferencia de vector de movimiento, una dirección de predicción y un índice de imagen de referencia. El índice de fusión indica un candidato seleccionado de la lista que incluye los candidatos del bloque vecino. La información utilizada como información de candidato en un bloque candidato incluye una dirección de referencia, un índice de imagen de referencia y un valor de predicción de vector de movimiento.
En el modo AMVP, el aparato de codificación de vídeo 10 transmite una diferencia de vector de movimiento (MVD), que es una diferencia entre el vector de movimiento y el vector de movimiento de predicción, al aparato de decodificación de vídeo 20. Cuando un modo es el modo AMVP, el aparato de decodificación de vídeo 20 también puede recibir, junto con un indicador AMVP, sintaxis relacionadas con la diferencia de vector de movimiento, la dirección de predicción y el índice de imagen de referencia. El indicador AMVP determina uno de dos candidatos, incluidos los candidatos del bloque vecino.
El decodificador 24 puede decodificar una imagen utilizando símbolos de la imagen analizados a partir de un flujo de bits. Cuando el aparato de decodificación de vídeo 20 recibe flujos codificados en unidades de codificado que tienen una estructura de árbol, el decodificador 24 puede realizar la decodificación en función de las unidades de codificado que tienen la estructura de árbol, por cada unidad de codificado más grande del flujo. Los detalles sobre la unidad de codificado más grande se describirán con referencia a la FIG. 8.
El decodificador 24 puede obtener información de codificación y datos codificados realizando una codificación entrópica según las unidades de codificado más grandes. El decodificador 24 puede reconstruir un componente residual realizando una cuantización inversa y una transformación inversa sobre los datos codificados obtenidos del flujo. Además, el decodificador 24 puede recibir directamente un flujo de bits de coeficientes de transformación cuantizados. Los componentes residuales de las imágenes se pueden reconstruir realizando una cuantización inversa y una transformación inversa sobre los coeficientes de transformación cuantizados.
El decodificador 24 puede generar un bloque de predicción en función de información de movimiento de un bloque de predicción más similar al bloque actual. En este caso, la información de movimiento puede incluir un vector de movimiento del bloque de predicción y el índice de imagen de referencia. El decodificador 24 puede reconstruir la imagen combinando el componente residual, es decir, la diferencia entre el bloque de predicción y el bloque original, y el bloque de predicción.
El aparato de decodificación de vídeo 20 puede incluir un procesador central (no mostrado) que controla en general el determinador 22 y el decodificador 24. El procesador central puede realizarse como una distribución de una pluralidad de puertas lógicas, o puede realizarse como una combinación de un microprocesador de propósito general y una memoria en la que se almacena un programa ejecutable por el microprocesador. Además, sería obvio para un experto en la técnica que el procesador central puede realizarse en otra forma de hardware. Como alternativa, el determinador 22 y el decodificador 24 pueden ser operados cada uno por un autoprocesador (no mostrado), y el aparato de decodificación de vídeo 20 puede ser operado mientras los autoprocesadores operan mutuamente. Como alternativa, el determinador 22 y el decodificador 24 pueden ser controlados según el control de un procesador externo (no mostrado) del aparato de decodificación de vídeo 20.
El aparato de decodificación de vídeo 20 puede incluir una o más memorias (no mostradas) que almacenan datos de entrada y salida del determinador 22 y del decodificador 24. El aparato de decodificación de vídeo 20 puede incluir un controlador de memoria (no mostrado) que controla la entrada y salida de datos de la memoria.
A continuación, se describirán diversas operaciones y aplicaciones del aparato de decodificación de vídeo 20, en donde las descripciones que pueden ser claramente comprensibles y esperables por un experto en la técnica sin especificar uno de los determinantes 22 y el decodificador 24 pueden entenderse como realizaciones generales, y el alcance del derecho de la presente divulgación no está limitado por un nombre de un elemento específico o una estructura física/lógica. A continuación, se describirán las operaciones del aparato de decodificación de vídeo 20 con referencia a la FIG. 4.
La FIG. 4 es un diagrama de flujo de un método de decodificación de vídeo según una realización.
En la operación S21 de la FIG. 4, el aparato de decodificación de vídeo 20 determina la información de modo de predicción de un bloque actual y un índice que indica un candidato de predicción, a partir de un flujo de bits. Un modo de predicción puede incluir un modo de omisión, un modo de fusión y un modo AMVP, pero no se limita a ellos.
En la operación S23, el aparato de decodificación de vídeo 20 puede determinar una lista de candidatos de predicción según la información de modo de predicción.
En la operación S25, cuando la información de modo de predicción del bloque actual indica un modo de predicción preestablecido, el aparato de decodificación de vídeo 20 determina un vector de movimiento indicado por el índice de la lista de candidatos de predicción, y determina un vector de movimiento de predicción en función de al menos una de los elementos de información de predicción de movimiento relacionada con el vector de movimiento.
La información de predicción de movimiento relacionada con el vector de movimiento puede incluir al menos una de las siguientes: una dirección de referencia obtenida de un bloque vecino del bloque actual, un índice de una imagen de referencia, un valor de un vector de movimiento e información de diferencia de vector de movimiento, pero no se limita a ello. El aparato de decodificación de vídeo 20 puede determinar el vector de movimiento de predicción del bloque actual combinando o modificando la dirección de referencia, el índice de la imagen de referencia, el valor del vector de movimiento y la información de diferencia de vector de movimiento.
El modo de predicción preestablecido puede ser un modo de predicción diferente de un modo de omisión y un modo de fusión. La lista de candidatos de predicción según el modo de predicción preestablecido puede incluir, como candidatos de vector de movimiento de predicción, candidatos a distancias uniformes de un vector de movimiento básico. El vector de movimiento básico puede ser uno de los candidatos de vector de movimiento de predicción utilizados en el modo de omisión o en el modo de fusión del bloque actual.
Mientras tanto, el aparato de decodificación de vídeo 20 puede agrupar candidatos de vector de movimiento de predicción derivados del vector de movimiento básico en función de las distancias uniformes. Por ejemplo, el aparato de decodificación de vídeo 20 puede determinar, como un primer grupo de candidatos, candidatos de vector de movimiento de predicción a una primera distancia de píxeles desde el vector de movimiento básico, y determinar, como un segundo grupo de candidatos, candidatos de vector de movimiento de predicción a una segunda distancia de píxeles desde el vector de movimiento básico.
El aparato de decodificación de vídeo 20 puede determinar un grupo al que pertenece el vector de movimiento de predicción entre grupos de candidatos primero y segundo, como un índice de candidato obtenido del flujo de bits.
En la operación S27, el aparato de decodificación de vídeo 20 puede determinar un vector de movimiento del bloque actual en función del vector de movimiento de predicción. El aparato de decodificación de vídeo 20 puede realizar una compensación de movimiento en el bloque actual en función del vector de movimiento del bloque actual.
El aparato de decodificación de vídeo 20 puede reconstruir el vector de movimiento del bloque actual extrayendo información sobre una diferencia entre el vector de movimiento de predicción y el vector de movimiento original y luego sumando la diferencia y el vector de movimiento de predicción.
Para reconstruir un vídeo mediante decodificación de vídeo, el aparato de decodificación de vídeo 20 puede realizar la operación de decodificación de vídeo mediante su funcionamiento en conexión con un procesador de decodificación de vídeo interno incluido en el mismo o con un procesador de decodificación de vídeo externo. El procesador de decodificación de vídeo interno del aparato de decodificación de vídeo 20 puede realizar operaciones de decodificación de vídeo básicas como un procesador individual, pero, como alternativa, el aparato de decodificación de vídeo 20, un aparato operativo central o un aparato operativo gráfico pueden incluir un módulo de procesamiento de decodificación de vídeo para realizar las operaciones de decodificación de vídeo básicas.
Las FIGS. 5A a 5D son diagramas para describir procesos de determinación de candidatos a vectores de movimiento de predicción.
Cuando un modo de predicción de un bloque actual es un modo de predicción preestablecido distinto de un modo de omisión, un modo de fusión y un modo AMVP, el aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción utilizando un vector de movimiento básico. En este caso, el vector de movimiento básico puede ser uno de los candidatos de vector de movimiento de predicción utilizados en el modo de omisión o en el modo de fusión del bloque actual. El vector de movimiento básico puede ser uno de los candidatos de vector utilizados en un modo de predicción predeterminado distinto del modo de omisión o del modo de fusión.
Además, el vector de movimiento básico puede determinarse a partir de un vector de movimiento de un bloque codificado de una imagen que se encuentra codificada actualmente, o a partir de un vector de movimiento de un bloque codificado de una imagen al que puede hacer referencia temporalmente una imagen actual. Por ejemplo, el vector de movimiento básico puede ser uno de los candidatos de vector de movimiento de predicción utilizados en el modo de omisión o en el modo de fusión del bloque actual.
Además, el vector de movimiento básico puede determinarse mediante operaciones entre vectores de movimiento básicos.
Además, cuando un candidato de predicción incluye información de vector de movimiento en un primer modo de predicción, el aparato de decodificación de vídeo 20 puede determinar la información del vector de movimiento como el vector de movimiento básico.
Con referencia a las FIGS.5A a 5D, el aparato de decodificación de vídeo 20 puede determinar vectores de movimiento que tienen una distribución en espiral mientras forma los candidatos de vector de movimiento de predicción. Una forma de la distribución en espiral puede ser similar a un polígono, como un rombo o un rectángulo, o similar a un círculo.
El aparato de decodificación de vídeo 20 puede determinar candidatos a distancias uniformes del vector de movimiento básico como candidatos de vector de movimiento de predicción. El aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción a una primera distancia de píxeles del vector de movimiento básico como un primer grupo de candidatos, candidatos de vector de movimiento de predicción a una segunda distancia de píxeles como un segundo grupo de candidatos y candidatos de vector de movimiento de predicción a una n-ésima distancia de píxeles como un n-ésimo grupo de candidatos. Aquí, el aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción más cercanos al vector de movimiento básico como el primer grupo de candidatos y candidatos de vector de movimiento de predicción segundos más cercanos al vector de movimiento básico como el segundo grupo de candidatos, en donde un número de grupo de candidatos aumenta secuencialmente a medida que aumenta la distancia de píxeles.
Cuando una unidad de 1/4 de píxel es 1, se puede determinar que un intervalo de distancia de píxel es un intervalo de escala logarítmica o un intervalo no lineal a medida que aumenta el número de grupo de candidatos. Alternativamente, un intervalo de la distancia de píxel puede ser determinado por un usuario.
El número de candidatos a vectores de movimiento de predicción en cada grupo de candidatos puede estar entre 1 y M.
En las FIGS. 5A y 5B, el número de candidatos de vector de movimiento de predicción en cada grupo de candidatos es 4 (M=4). Aquí, el número de grupos de candidatos puede ser 3, pero no está limitado a ello.
Con referencia a la FIG. 5A, el aparato de decodificación de vídeo 20 determina los candidatos de vector de movimiento de predicción que tienen una distribución en forma de rombo en función del vector de movimiento básico. Cada intervalo entre píxeles es una distancia de 1/4 de píxel, pero por conveniencia, los valores de los componentes de los candidatos de vector se escalan 4 veces.
El aparato de decodificación de vídeo 20 determina candidatos de vector de movimiento de predicción (base_x+1, base_y) 502, (base_x-1, base_y) 503, (base_x, base_y+1) 504 y (base_x, base_y-1) 505 a una distancia de 1/4 de píxel de un vector de movimiento básico (base_x, base_y) 501 como un primer grupo de candidatos.
El aparato de decodificación de vídeo 20 determina candidatos de vector de movimiento de predicción (base_x+2, base_y) 506, (base_x-2, base_y) 507, (base_x, base_y+2) 508 y (base_x, base_y-2) 509 a una distancia de 1/2 píxel del vector de movimiento básico (base_x, base_y) 501 como un segundo grupo de candidatos.
El aparato de decodificación de vídeo 20 determina candidatos de vector de movimiento de predicción (base_x+4, base_y) 510, (base_x-4, base_y) 511, (base_x, base_y+4) 512 y (base_x, base_y-4) 513 a una distancia de 1 píxel del vector de movimiento básico (base_x, base_y) 501 como un tercer grupo de candidatos.
Con referencia a la FIG. 5B, el aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción que tienen una distribución de forma rectangular en función de un vector de movimiento básico. Cada intervalo entre píxeles es una distancia de 1/4 de píxel, pero por conveniencia, los valores de los componentes de los candidatos de vector se escalan 4 veces.
De manera similar, el aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción (base_x+1, base_y+1) 521, (base_x+1, base_y-1) 522, (base_x-1, base_y+1) 523 y (base_x-1, base_y-1) 524 a aproximadamente 1/4 de píxel de distancia de un vector de movimiento básico (base_x, base_y) 501 como un primer grupo de candidatos.
El aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción (base_x+2, base_y+2) 525, (base_x+2, base_y-2) 526, (base_x-2, base_y+2) 527 y (base_x-2, base_y-2) 528 a aproximadamente 1/2 píxel de distancia del vector de movimiento básico (base_x, base_y) 501 como un segundo grupo de candidatos.
El aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción (base_x+4, base_y+4) 529, (base_x+4, base_y-4) 530, (base_x-4, base_y+4) 531 y (base_x-4, base_y-4) 532 a aproximadamente 1 píxel de distancia del vector de movimiento básico (base_x, base_y) 501 como un tercer grupo de candidatos.
Con referencia a la FIG. 5C, el aparato de decodificación de vídeo 20 puede determinar diferentes números de candidatos de vector de movimiento de predicción como grupos. Cada intervalo entre píxeles es una distancia de 1/4 de píxel, pero por conveniencia, los valores de los componentes de los candidatos de vector se escalan 4 veces.
Por ejemplo, el aparato de decodificación de vídeo 20 puede determinar 8 candidatos de vector de movimiento de predicción (base_x+1, base_y) 502, (base_x-1, base_y) 503, (base_x, base_y+1) 504, (base_x, base_y-1) 505, (base_x+1, base_y+1) 521, (base_x+1, base_y-1) 522, (base_x-1, base_y+1) 523 y (base_x-1, base_y-1) 524 a aproximadamente 1/4 de píxel de distancia de un vector de movimiento básico como un primer grupo de candidatos.
Además, el aparato de decodificación de vídeo 20 puede determinar 8 candidatos de vector de movimiento de predicción (base_x+2, base_y) 506, (base_x-2, base_y) 507, (base_x, base_y+2) 508, (base_x, base_y-2) 509, (base_x+2, base_y+2) 525, (base_x+2, base_y-2) 526, (base_x-2, base_y+2) 527 y (base_x-2, base_y-2) 528 a aproximadamente 1/2 píxel de distancia del vector de movimiento básico como un segundo grupo de candidatos.
El aparato de decodificación de vídeo 20 puede determinar 4 candidatos de vector de movimiento de predicción (base_x+4, base_y) 510, (base_x-4, base_y) 511, (base_x, base_y+4) 512 y (base_x, base_y-4) 513 a aproximadamente 1 píxel de distancia del vector de movimiento básico como un tercer grupo de candidatos.
Con referencia a la FIG. 5D, el aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción según grupos de candidatos, y determinar de diversas formas una forma de distribución de cada grupo de candidatos. Por ejemplo, el aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción 502, 503, 504 y 505 que tienen una distribución de forma de rombo en función de un vector de movimiento básico 501 como un primer grupo de candidatos. Además, el aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción 525, 526, 527 y 528 que tienen una distribución de forma rectangular en función del vector de movimiento básico 501 como un segundo grupo de candidatos. Además, el aparato de decodificación de vídeo 20 puede determinar candidatos de vector de movimiento de predicción 510, 511,512 y 513 que tienen una distribución de forma de rombo en función del vector de movimiento básico 501 como un tercer grupo de candidatos. Como se muestra en la FIG. 5D, se puede determinar una distribución de candidatos de vectores de movimiento de predicción de cada grupo de candidatos para diversas formas de distribución además de las que se muestran en la FIG. 5D.
El aparato de decodificación básica 20 puede determinar uno o más vectores de movimiento básicos. Cuando hay dos vectores de movimiento básicos, se pueden generar candidatos de vector de movimiento de predicción utilizando cada uno de los vectores de movimiento básicos.
El aparato de decodificación de vídeo 20 puede realizar una predicción de movimiento bidireccional. Cuando se realiza una predicción bidireccional sobre un vector de movimiento básico utilizando imágenes de referencia de la Lista 0 y la Lista 1, los vectores de movimiento de cada dirección de referencia pueden modificarse a un tamaño de signo opuesto.
Por ejemplo, cuando existe un POC de una imagen decodificada actualmente entre dos POC de imagen de referencia de predicción (un POC de una imagen de referencia en la Lista 0 < un POC de una imagen decodificada actualmente < un POC de una imagen de referencia en la Lista 1), y se determina que un candidato de vector de movimiento de predicción que indica la imagen de referencia en la Lista 0 a partir del vector de movimiento básico en la imagen decodificada actualmente es (x+1, y), el aparato de decodificación de vídeo 20 puede determinar que un candidato de vector de movimiento de predicción que indica la imagen de referencia en la Lista 1 a partir del vector de movimiento básico es (x-1, y). Aquí, un vector de movimiento de la Lista 0 y un vector de movimiento de la Lista 1 pueden ser un vector en el que un valor de componente x o y del vector de movimiento básico se mueve en una cantidad cambiada de un signo opuesto. Por ejemplo, se puede determinar que el vector de movimiento L0 es (x+1) y se puede determinar que el vector de movimiento L0 es (x-1, y) a medida que un componente x se cambia en 1 y -1 a partir del vector de movimiento básico (x, y).
Cuando el POC de la imagen actualmente decodificada no existe entre los POC de la imagen de referencia en la Lista 0 y la imagen de referencia de la Lista 1, los candidatos de vector de movimiento de predicción que indican las imágenes de referencia en la Lista 0 y la Lista 1 se pueden cambiar a un tamaño de signos iguales o diferentes.
Las FIGS. 6A a 6C son diagramas para describir un método de representación de bits, cuando se inserta información de modo de predicción preestablecido en una lista de candidatos de predictor existente, según una realización. En otras palabras, las FIGS. 6A a 6C son diagramas para describir un ejemplo de visualización del uso de un modo de predicción preestablecido mediante el uso de uno de 5 índices en un modo de omisión o un modo de fusión.
Cuando el modo de omisión o el modo de fusión utilizan 5 candidatos y se utiliza adicionalmente 1 índice para mostrar el modo de predicción preestablecido, el modo de omisión o el modo de fusión pueden utilizar un total de 6 candidatos. Cuando la información de índice prometida mediante el uso del modo de predicción preestablecido se obtiene mientras se analiza un índice del modo de omisión o el modo de fusión, el aparato de decodificación de vídeo 20 puede determinar que se utiliza el modo de predicción preestablecido y analizar adicionalmente los índices de los candidatos de vector de movimiento de predicción. En este caso, qué índice del modo de omisión o el modo de fusión notifica el uso del modo de predicción preestablecido según secuencias, imágenes y sectores se puede interpretar utilizando información analizada en un nivel superior. Un ejemplo del nivel superior incluye información de encabezado. El aparato de codificación de vídeo 10 puede determinar qué índice del modo de omisión o el modo de fusión se puede mostrar como información de uso del modo de predicción preestablecido, según secuencias, imágenes y sectores.
El aparato de codificación de vídeo 10 puede determinar de forma adaptativa un orden en unidades de secuencia, imagen o sector mediante la acumulación estadística de información de proporción de aciertos entre un índice que indica el uso del modo de predicción preestablecido y los índices de candidatos existentes del modo de omisión o del modo de fusión. El índice que indica el uso del modo de predicción preestablecido puede señalarse explícitamente en un encabezado de imagen o sector siguiente. En consecuencia, el aparato de decodificación de vídeo 20 puede analizar qué índice indica el uso del modo de predicción preestablecido mediante el uso de información obtenida del encabezado de imagen o sector.
La FIG. 6A muestra un método de indexación de 5 candidatos de vectores de movimiento de predicción de un modo de omisión o un modo de fusión en un método unario truncado.
La FIG. 6B es un diagrama para describir una ubicación de una lista de índices existente, en la que se puede insertar información de modo de predicción de un modo de predicción preestablecido. La lista de índices existente puede ser una lista antes de que la información de modo de predicción del modo de predicción se inserte en una lista de índices. Por ejemplo, la lista de índices existente puede ser una lista de índices que indica un candidato de un modo de omisión o un modo de fusión. La información de modo de predicción del modo de predicción preestablecido se puede insertar en la lista de índices en forma de un candidato. Como se muestra en la FIG. 6B, hay 6 ubicaciones 601 a 606 de la lista de índices existente, en las que se puede insertar la información de modo de predicción del modo de predicción preestablecido.
La FIG. 6C es un diagrama para describir un cambio de un bit de representación cuando la información de modo de predicción de un modo de predicción preestablecido se inserta en IDX3 de una lista de índices existente. Como se muestra en la FIG. 6C, cuando la información de modo de predicción del modo de predicción preestablecido se inserta después de IDX2, un índice 610 de la información de modo de predicción puede representarse como 1110 según un método unario truncado, y IDX3 e IDX4 pueden representarse en un bit incrementado en 1 bit cada uno.
La FIG. 7 es un diagrama para describir un método de representación de bits de vectores de movimiento de predicción.
El aparato de codificación de vídeo 10 no señala las ubicaciones absolutas de los candidatos a vectores de movimiento de predicción, sino que indexa y transmite los candidatos a vectores de movimiento de predicción generados según un determinado estándar. Por ejemplo, la señalización de las ubicaciones absolutas de los candidatos a vectores de movimiento de predicción denota la transmisión de una diferencia entre un vector de movimiento básico y un candidato a vector de movimiento de predicción, y un determinado estándar puede ser la selección de un candidato a vector de movimiento de predicción en una distribución en espiral. Como se muestra en la FIG. 7, un bit puede representar qué candidato a vector de movimiento de predicción se ha utilizado.
Con referencia a la FIG. 7, NIDX indica información sobre qué vector de movimiento básico se ha utilizado. Por ejemplo, la información de un primer vector de movimiento básico puede asignarse a IDX0, y la información de un segundo vector de movimiento básico puede asignarse a IDX1. El NIDX al que se asigna información de cada vector de movimiento básico puede determinarse según una frecuencia de selección como un vector de movimiento básico relacionado con un vector de movimiento de predicción. La información de índice de cada vector de movimiento básico puede representarse en un bit 701 de la FIG. 7.
Además, los candidatos de vector de movimiento de predicción derivados del mismo vector de movimiento básico se agrupan en un grupo de candidatos según un estándar determinado. En este caso, el estándar determinado es un estándar para determinar candidatos a las mismas distancias de píxeles del vector de movimiento básico que los candidatos de vector de movimiento de predicción. La información de índice sobre cada grupo puede representarse en un bit 702 de la FIG. 7.
Cuando un índice de un modo de predicción preestablecido se define como IDX3, los candidatos de vector de movimiento de predicción derivados de un vector de movimiento básico en IDX3 pueden representarse en NIDX. Además, cada NIDX puede incluir candidatos de vector de movimiento de predicción basados en el vector de movimiento básico según grupos. La representación de NIDX puede utilizar un método de codificación de longitud fija (FLC) o un método unario truncado.
La FIG. 7 ilustra un ejemplo de un método unario truncado. La información de NIDX se expresa utilizando el método unario truncado y puede indicar un grupo en el que se incluye un vector de movimiento de predicción. La representación de cada grupo de candidatos con respecto a un vector de movimiento básico también puede utilizar un método FLC o un método unario truncado.
Cuando cada grupo de candidatos de vectores de movimiento de predicción se expresa mediante un unario truncado, cada grupo de candidatos puede expresarse de manera adaptativa en otra representación de bits en unidades de sectores de imagen. Por ejemplo, cuando un candidato en un tercer grupo de candidatos se selecciona principalmente como un vector de movimiento de predicción en función de un resultado de la obtención de la tasa de aciertos de grupo acumulada por el aparato de codificación de vídeo 10, dicha información puede enviarse a una siguiente imagen o encabezado de sector de modo que el tercer grupo de candidatos se represente en una representación de bits más corta "0".
En este caso, un método de señalización hacia una siguiente imagen o encabezado de sector puede reemplazarse por un método de transmisión de un índice de un grupo de candidatos que se selecciona principalmente. Por ejemplo, supongamos que el orden de los grupos seleccionados principalmente es el siguiente.
Tercer grupo de candidatos > Segundo grupo de candidatos > Cuarto grupo de candidatos > Primer grupo de candidatos > Quinto grupo de candidatos > Grupo de candidatos número cero> Sexto grupo de candidatos > Séptimo grupo de candidatos
Por ejemplo, para transmitir las 3 elementos de información superior, se requiere información de representación de un total de 9 bits en unidades de imagen o de sector, es decir, 3 partes por 3 bits (8 candidatos en total). Cuando se transmiten los tres elementos superiores de información del grupo de candidatos que se espera que tengan frecuencias altas, se señalizan cada uno de ellos "011", es decir, los bits de representación del tercer grupo de candidatos, "010", es decir, los bits de representación del segundo grupo de candidatos, y "100", es decir, los bits de representación del cuarto grupo de candidatos.
Mientras tanto, se requiere una representación de bits para señalar la información del grupo de candidatos y para indicar uno de los cuatro candidatos en un grupo de candidatos. Con referencia a un número de referencia 703 de la FIG. 7, los candidatos existentes en un acimut de cuatro pueden dividirse en dos o más grupos para aplicar un modelo de contexto CABAC. El modelo de contexto puede aplicarse a un indicador obtenido dividiendo los candidatos de componente horizontal y los candidatos de componente vertical en 2 de 2 grupos. Con referencia a un número de referencia 704 de la FIG. 7, el modelo de contacto también puede aplicarse a un indicador para determinar cuál de los dos candidatos se va a utilizar después del análisis del indicador.
En el aparato de codificación de vídeo 10 y el aparato de decodificación de vídeo 20, los bloques obtenidos al partir datos de vídeo pueden partirse en unidades de codificado más grandes y decodificarse en función de unidades de codificado que tienen una estructura de árbol, según las unidades de codificado más grandes.
A continuación, con referencia a las FIGS. 8 a 20, se describirá un método de codificación de vídeo, un aparato de codificación de vídeo, un método de decodificación de vídeo y un aparato de decodificación de vídeo basado en unidades de codificado que tienen una estructura de árbol y unidades de transformación.
La FIG. 8 es un diagrama de bloques del aparato de codificación de vídeo basado en unidades de codificado según una estructura de árbol 800.
El aparato de codificación de vídeo que implica predicción de vídeo basada en unidades de codificado según una estructura de árbol 800 incluye un determinador de unidad de codificado 820 y una unidad de salida 830. De aquí en adelante, para facilitar la descripción, el aparato de codificación de vídeo que implica predicción de vídeo basada en unidades de codificado según una estructura de árbol 800 se abreviará como 'aparato de codificación de vídeo 800'.
El determinador de unidad de codificado 820 puede partir una imagen actual en función de una unidad de codificado más grande, que es una unidad de codificado que tiene un tamaño máximo para una imagen actual de una imagen. Si la imagen actual es más grande que la unidad de codificado más grande, los datos de imagen de la imagen actual se pueden partir en al menos una unidad de codificado más grande. La unidad de codificado más grande puede ser una unidad de datos que tiene un tamaño de 32x32, 64x64, 128x128, 256x256, etc., en donde una forma de la unidad de datos es un cuadrado que tiene una anchura y una longitud en cuadrados de 2.
Una unidad de codificado puede caracterizarse por un tamaño máximo y una profundidad. La profundidad indica el número de veces que la unidad de codificado se parte espacialmente de la unidad de codificado más grande y, a medida que la profundidad se profundiza, las unidades de codificado más profundas según las profundidades pueden partirse de la unidad de codificado más grande a una unidad de codificado más pequeña. Una profundidad de la unidad de codificado más grande puede definirse como una profundidad superior y una profundidad de la unidad de codificado más pequeña puede definirse como una profundidad inferior. Dado que un tamaño de una unidad de codificado correspondiente a cada profundidad disminuye a medida que la profundidad de la unidad de codificado más grande se profundiza, una unidad de codificado correspondiente a una profundidad superior puede incluir una pluralidad de unidades de codificado correspondientes a profundidades inferiores.
Como se ha descrito anteriormente, los datos de imagen de la imagen actual se parten en las unidades de codificado más grandes según un tamaño máximo de la unidad de codificado, y cada una de las unidades de codificado más grandes puede incluir unidades de codificado más profundas que se parten según las profundidades. Dado que la unidad de codificado más grande se parte según las profundidades, los datos de imagen de un dominio espacial incluidos en la unidad de codificado más grande pueden clasificarse jerárquicamente según las profundidades.
Se puede predeterminar una profundidad máxima y un tamaño máximo de una unidad de codificado, que limitan el número total de veces que se parten jerárquicamente una altura y una anchura de la unidad de codificado más grande.
El determinador de unidad de codificado 820 codifica al menos una región partida obtenida al partir una región de la unidad de codificado más grande según las profundidades, y determina una profundidad para generar datos de imagen codificados finalmente según la al menos una región partida. Es decir, el determinador de unidad de codificado 820 determina una profundidad final codificando los datos de imagen en las unidades de codificado más profundas según las profundidades, según la unidad de codificado más grande de la imagen actual, y seleccionando una profundidad que tenga el error de codificación mínimo. La profundidad final determinada y los datos de imagen según cada unidad de codificado más grande se generan en la unidad de salida 830.
Los datos de imagen en la unidad de codificado más grande se codifican en función de las unidades de codificado más profundas correspondientes a al menos una profundidad igual o inferior a la profundidad máxima, y se comparan los resultados de la codificación de los datos de imagen en función de cada una de las unidades de codificado más profundas. Se puede seleccionar una profundidad que tenga el error de codificación mínimo después de comparar los errores de codificación de las unidades de codificado más profundas. Se puede seleccionar al menos una profundidad final para cada unidad de codificado más grande.
El tamaño de la unidad de codificado más grande se parte a medida que una unidad de codificado se parte jerárquicamente según las profundidades, y a medida que aumenta el número de unidades de codificado. Además, incluso si las unidades de codificado corresponden a la misma profundidad en una unidad de codificado más grande, se determina si partir cada una de las unidades de codificado correspondientes a la misma profundidad a una profundidad inferior midiendo un error de codificación de los datos de imagen de cada unidad de codificado, por separado. En consecuencia, incluso cuando los datos de imagen se incluyen en una unidad de codificado más grande, los errores de codificación pueden diferir según las regiones en la unidad de codificado más grande, y por lo tanto las profundidades finales pueden diferir según las regiones en los datos de imagen. Por lo tanto, se puede determinar una o más profundidades finales en una unidad de codificado más grande, y los datos de imagen de la unidad de codificado más grande se pueden dividir según unidades de codificado de al menos una profundidad final.
En consecuencia, el determinador de unidad de codificado 820 puede determinar unidades de codificado que tienen una estructura de árbol incluida en la unidad de codificado más grande. Las 'unidades de codificado que tienen una estructura de árbol' incluyen unidades de codificado que corresponden a una profundidad determinada como la profundidad final, entre todas las unidades de codificado más profundas incluidas en la unidad de codificado más grande. Una unidad de codificado de una profundidad final puede determinarse jerárquicamente según las profundidades en la misma región de la unidad de codificado más grande, y puede determinarse independientemente en diferentes regiones. De igual modo, una profundidad final en una región actual puede determinarse independientemente a partir de una profundidad final en otra región.
Una profundidad máxima es un índice relacionado con el número de veces que se parte una unidad de codificado más grande en una unidad de codificado más pequeña. Una primera profundidad máxima puede indicar el número total de veces que se parte la unidad de codificado más grande en la unidad de codificado más pequeña. Una segunda profundidad máxima puede indicar el número total de niveles de profundidad desde la unidad de codificado más grande en la unidad de codificado más pequeña. Por ejemplo, cuando una profundidad de la unidad de codificado más grande es 0, una profundidad de una unidad de codificado, en la que la unidad de codificado más grande se parte una vez, puede establecerse en 1, y una profundidad de una unidad de codificado, en la que la unidad de codificado más grande se parte dos veces, puede establecerse en 2. En este sentido, si la unidad de codificado mínima es una unidad de codificado en la que la unidad de codificado más grande se parte cuatro veces, existen niveles de profundidad de las profundidades 0, 1, 2, 3 y 4, y por lo tanto la primera profundidad máxima puede establecerse en 4, y la segunda profundidad máxima puede establecerse en 5.
La codificación y transformación de predicción se pueden realizar según la unidad de codificado más grande. La codificación y transformación de predicción también se realizan según las unidades de codificado más profundas según una profundidad igual o menor que la profundidad máxima, según la unidad de codificado más grande.
Dado que el número de unidades de codificado más profundas aumenta siempre que la unidad de codificado más grande se parte según las profundidades, la codificación, incluida la codificación de predicción y la transformación, se realiza en todas las unidades de codificado más profundas generadas a medida que aumenta la profundidad. A continuación, para facilitar la descripción, la codificación de predicción y la transformación se describirán en función de una unidad de codificado de una profundidad actual en al menos una unidad de codificado más grande.
El aparato de codificación de vídeo 800 puede seleccionar de diversas formas un tamaño o una forma de una unidad de datos para codificar los datos de imagen. Para codificar los datos de imagen, se realizan operaciones, como codificación de predicción, transformación y codificación entrópica, y en este momento, se puede utilizar la misma unidad de datos para todas las operaciones o se pueden utilizar diferentes unidades de datos para cada operación.
Por ejemplo, el aparato de codificación de vídeo 800 puede seleccionar no sólo una unidad de codificado para codificar los datos de imagen, sino también una unidad de datos diferente de la unidad de codificado para realizar la codificación de predicción en los datos de imagen en la unidad de codificado.
Para realizar la codificación de predicción en la unidad de codificado más grande, la codificación de predicción puede realizarse en función de una unidad de codificado correspondiente a una profundidad final, es decir, en función de una unidad de codificado que ya no está partida en unidades de codificado correspondientes a una profundidad inferior. En adelante, la unidad de codificado que ya no está partida y se convierte en una unidad base para la codificación de predicción se denominará ahora "unidad de predicción". Una partición obtenida al partir la unidad de predicción puede incluir una unidad de predicción o una unidad de datos obtenida al partir al menos una de una altura y una anchura de la unidad de predicción. Una partición es una unidad de datos en la que se parte una unidad de predicción de una unidad de codificado, y una unidad de predicción puede ser una partición que tiene el mismo tamaño que una unidad de codificado.
Por ejemplo, cuando una unidad de codificado de 2Nx2N (donde N es un entero positivo) ya no se parte, se convierte en una unidad de predicción de 2Nx2N, y un tamaño de una partición puede ser 2Nx2N, 2NxN, Nx2N o NxN. Los ejemplos de un modo de partición pueden incluir particiones simétricas obtenidas al partir simétricamente una altura o una anchura de la unidad de predicción, y pueden incluir selectivamente particiones obtenidas al partir asimétricamente la altura o la anchura de la unidad de predicción, como 1:n o n:1, particiones obtenidas al partir geométricamente la unidad de predicción y particiones que tienen formas arbitrarias.
Un modo de predicción de la unidad de predicción puede ser al menos uno de un modo intra, un modo inter y un modo de omisión. Por ejemplo, el modo intra y el modo inter pueden realizarse en la partición de 2Nx2N, 2NxN, Nx2N o NxN. Además, el modo de omisión puede realizarse solo en la partición de 2Nx2N. La codificación puede realizarse de forma independiente en una unidad de predicción en una unidad de codificado, de modo que se puede seleccionar un modo de predicción que tenga un error de codificación mínimo.
El aparato de codificación de vídeo 800 también puede realizar la transformación de los datos de imagen en una unidad de codificado basándose no sólo en la unidad de codificado para codificar los datos de imagen, sino también en una unidad de datos que es diferente de la unidad de codificado. Para realizar la transformación en la unidad de codificado, la transformación puede realizarse en función de una unidad de datos que tiene un tamaño menor o igual que la unidad de codificado. Por ejemplo, la unidad de transformación puede incluir una unidad de datos para un modo intra y una unidad de transformación para un modo inter.
La unidad de transformación en la unidad de codificado se puede partir recursivamente en regiones de tamaño más pequeño de manera similar a la unidad de codificado según la estructura de árbol, por lo tanto, los datos residuales de la unidad de codificado se pueden dividir según la unidad de transformación que tiene la estructura de árbol según una profundidad de transformación.
También se puede establecer en la unidad de transformación una profundidad de transformación que indica el número de veces que se debe partir la altura y la anchura de la unidad de codificado para alcanzar la unidad de transformación. Por ejemplo, en una unidad de codificado actual de 2Nx2N, una profundidad de transformación puede ser 0 cuando el tamaño de una unidad de transformación es 2Nx2N, puede ser 1 cuando el tamaño de la unidad de transformación es NxN y puede ser 2 cuando el tamaño de la unidad de transformación es N/2xN/2. Es decir, con respecto a la unidad de transformación, la unidad de transformación que tiene la estructura de árbol se puede establecer según las profundidades de transformación.
La información de partimiento según las profundidades requiere no solo información sobre una profundidad, sino también información relacionada con la predicción y la transformación. En consecuencia, el determinador de unidad de codificado 820 no solo determina una profundidad que tiene un error de codificación mínimo, sino que también determina un modo de partición en el que una unidad de predicción se parte en particiones, un modo de predicción según las unidades de predicción y un tamaño de una unidad de transformación para la transformación.
Las unidades de codificado según una estructura de árbol en una unidad de codificado más grande y los métodos para determinar una unidad de predicción/partición y una unidad de transformación se describirán en detalle más adelante con referencia a las FIGS. 9 a 19.
El determinador de unidad de codificado 820 puede medir un error de codificación de unidades de codificado más profundas según las profundidades utilizando la optimización de tasa-distorsión basada en multiplicadores lagrangianos.
La unidad de salida 830 tiene como salida, en flujos de bits, los datos de imagen de la unidad de codificado más grande, que se codifica en función de al menos una profundidad determinada por el determinador de unidad de codificado 820, e información según las profundidades.
Los datos de imagen codificados pueden corresponder a un resultado obtenido al codificar datos residuales de una imagen.
La información de partimiento según las profundidades puede incluir información de profundidad, información de modo de partición de la unidad de predicción, información de modo de predicción y la información de partimiento de unidad de transformación.
La información de profundidad final puede definirse utilizando información de partimiento según las profundidades, que especifica si la codificación se realiza en unidades de codificado de una profundidad inferior en lugar de una profundidad actual. Si la profundidad actual de la unidad de codificado actual es una profundidad, la unidad de codificado actual se codifica utilizando la unidad de codificado de la profundidad actual y, por lo tanto, la información de partimiento de la profundidad actual puede definirse para no partir la unidad de codificado actual en una profundidad inferior. Por el contrario, si la profundidad actual de la unidad de codificado actual no es la profundidad, la codificación se debe realizar en la unidad de codificado de la profundidad inferior y, por lo tanto, la información de partimiento de la profundidad actual puede definirse para partir la unidad de codificado actual en las unidades de codificado de la profundidad inferior.
Si la profundidad actual no es la profundidad, la codificación se realiza en la unidad de codificado que se parte en la unidad de codificado de la profundidad inferior. Dado que al menos una unidad de codificado de la profundidad inferior existe en una unidad de codificado de la profundidad actual, la codificación se realiza repetidamente en cada unidad de codificado de la profundidad inferior y, por lo tanto, la codificación se puede realizar de forma recursiva para las unidades de codificado que tienen la misma profundidad.
Dado que las unidades de codificado que tienen una estructura de árbol se determinan para una unidad de codificado más grande, y al menos un elemento de información de partimiento tiene que determinarse para una unidad de codificado de una profundidad, al menos un elemento de información de partimiento puede determinarse para una unidad de codificado más grande. Además, una profundidad de datos de la unidad de codificado más grande puede variar según las ubicaciones, ya que los datos se parten jerárquicamente según las profundidades, y por lo tanto se puede establecer una profundidad e información de partimiento para los datos.
En consecuencia, la unidad de salida 830 puede asignar información de codificación acerca de una profundidad correspondiente y un modo de codificación a al menos una de la unidad de codificado, la unidad de predicción y una unidad mínima incluida en la unidad de codificado más grande.
La unidad mínima es una unidad de datos cuadrada que se obtiene al partir la unidad de codificado más pequeña que constituye la profundidad más baja por 4. Alternativamente, la unidad mínima puede ser una unidad de datos cuadrada máxima que puede incluirse en todas las unidades de codificado, unidades de predicción, unidades de partición y unidades de transformación incluidas en la unidad de codificado más grande.
Por ejemplo, la información de codificación de salida de la unidad de salida 830 puede clasificarse en información de codificación según unidades de codificado más profundas e información de codificación según unidades de predicción. La información de codificación según las unidades de codificado más profundas puede incluir información sobre el modo de predicción y sobre el tamaño de las particiones. La información de codificación según las unidades de predicción puede incluir información sobre una dirección estimada durante un modo inter, sobre un índice de imagen de referencia del modo inter, sobre un vector de movimiento, sobre un componente de croma de un modo intra y sobre un método de interpolación durante el modo intra.
La información sobre un tamaño máximo de la unidad de codificado definida según imágenes, sectores o GOP, y la información sobre una profundidad máxima se pueden insertar en un encabezado de un flujo de bits, un conjunto de parámetros de secuencia o un conjunto de parámetros de imagen.
La información sobre un tamaño máximo de la unidad de transformación permitido con respecto a un vídeo actual, y la información sobre un tamaño mínimo de la unidad de transformación también se pueden tener como salida a través de un encabezado de un flujo de bits, un conjunto de parámetros de secuencia o un conjunto de parámetros de imagen. La unidad de salida 830 puede codificar y tener como salida información de referencia, información de predicción e información de tipo de sector que están relacionadas con la predicción.
Según el ejemplo más simple para el aparato de codificación de vídeo 800, la unidad de codificado más profunda puede ser una unidad de codificado obtenida al dividir una altura o anchura de una unidad de codificado de una profundidad superior, que está una capa por encima, por dos. Es decir, cuando el tamaño de la unidad de codificado de la profundidad actual es 2Nx2N, el tamaño de la unidad de codificado de la profundidad inferior es NxN. Además, una unidad de codificado actual que tiene un tamaño de 2Nx2N puede incluir como máximo cuatro unidades de codificado de profundidad inferior que tienen un tamaño de NxN.
En consecuencia, el aparato de codificación de vídeo 800 puede formar las unidades de codificado que tienen la estructura de árbol determinando las unidades de codificado que tienen una forma óptima y un tamaño óptimo para cada unidad de codificado más grande, en función del tamaño de la unidad de codificado más grande y la profundidad máxima determinada considerando las características de la imagen actual. Además, dado que la codificación se puede realizar en cada unidad de codificado más grande utilizando cualquiera de diversos modos de predicción y transformaciones, se puede determinar un modo de codificación óptimo teniendo en cuenta las características de la unidad de codificado de diversos tamaños de imagen.
Por lo tanto, si una imagen que tiene una alta resolución o una gran cantidad de datos se codifica en un macrobloque convencional, el número de macrobloques por imagen aumenta excesivamente. En consecuencia, el número de elementos de información comprimida generadas para cada macrobloque aumenta y, por lo tanto, es difícil transmitir la información comprimida y la eficiencia de compresión de datos disminuye. Sin embargo, al utilizar el aparato de codificación de vídeo 800 según una realización, la eficiencia de compresión de imágenes puede aumentarse ya que una unidad de codificado se ajusta teniendo en cuenta las características de una imagen mientras se aumenta un tamaño máximo de una unidad de codificado teniendo en cuenta un tamaño de la imagen.
La FIG. 9 es un diagrama de bloques del aparato de decodificación de vídeo basado en unidades de codificado según una estructura de árbol 900.
El aparato de decodificación de vídeo que implica predicción de vídeo basada en unidades de codificado de la estructura de árbol 200 incluye un receptor 910, un extractor de datos de imagen e información de codificación 920 y un decodificador de datos de imagen 930. En adelante, para facilitar la descripción, el aparato de decodificación de vídeo que implica predicción de vídeo basada en unidades de codificado de la estructura de árbol 900 se denominará "aparato de decodificación de vídeo 900".
Las definiciones de diversos términos, tales como una unidad de codificado, una profundidad, una unidad de predicción, una unidad de transformación y diversos tipos de información de partimiento para operaciones de decodificación del aparato de decodificación de vídeo 900 son idénticas a las descritas con referencia a la FIG.8 y al aparato de codificación de vídeo 800.
El receptor 910 recibe y analiza un flujo de bits de un vídeo codificado. El extractor de datos de imagen e información de codificación 920 extrae datos de imagen codificados para cada unidad de codificado del flujo de bits analizado, en donde las unidades de codificado tienen una estructura de árbol según cada unidad de codificado más grande, y tiene como salida los datos de imagen extraídos al decodificador de datos de imagen 930. El extractor de datos de imagen e información de codificación 920 puede extraer información sobre un tamaño máximo de una unidad de codificado de una imagen actual, de un encabezado sobre la imagen actual, un conjunto de parámetros de secuencia o un conjunto de parámetros de imagen.
Además, el extractor de datos de imagen e información de codificación 920 extrae una profundidad final e información de partimiento acerca de las unidades de codificado que tienen una estructura de árbol según cada unidad de codificado más grande, a partir del flujo de bits analizado. La profundidad final extraída y la información de partimiento extraída se tienen como salida para el decodificador de datos de imagen 930. Es decir, los datos de imagen en un flujo de bits se parten en la unidad de codificado más grande de modo que el decodificador de datos de imagen 930 decodifique los datos de imagen para cada unidad de codificado más grande.
Se puede establecer una información de profundidad y partición según cada una de las unidades de codificado más grandes para uno o más elementos de información de profundidad, y la información de partimiento según las profundidades puede incluir información de modo de partición de una unidad de codificado correspondiente, información de modo de predicción e información de partimiento de una unidad de transformación. Además, como información de profundidad, se puede extraer la información de partimiento según las profundidades.
La profundidad y la información de partimiento según cada una de las unidades de codificado más grandes extraídas por el extractor de datos de imagen e información de codificación 920 son una profundidad y una información de partimiento determinadas para generar un error de codificación mínimo cuando un codificador, como el aparato de codificación de vídeo 800, realiza repetidamente la codificación para cada unidad de codificado más profunda según las profundidades según cada unidad de codificado más grande. En consecuencia, el aparato de decodificación de vídeo 900 puede reconstruir una imagen decodificando datos según un método de codificación que genera el error de codificación mínimo.
Dado que la información de codificación sobre la profundidad y el modo de codificación se puede asignar a una unidad de datos predeterminada entre una unidad de codificado correspondiente, una unidad de predicción y una unidad mínima, el extractor de datos de imagen e información de codificación 920 puede extraer la profundidad y la información de partimiento según las unidades de datos predeterminadas. Si se registra una información de profundidad y de partición de una unidad de codificado más grande correspondiente según cada una de las unidades de datos predeterminadas, se puede inferir que las unidades de datos predeterminadas que tienen la misma profundidad y la información de partimiento son las unidades de datos incluidas en la misma unidad de codificado más grande.
El decodificador de datos de imagen 930 reconstruye la imagen actual decodificando los datos de imagen en cada unidad de codificado más grande en función de la profundidad y la información de partimiento según cada una de las unidades de codificado más grandes. Es decir, el decodificador de datos de imagen 930 puede decodificar los datos de imagen codificados en función de la información de lectura acerca del modo de partición, el modo de predicción y la unidad de transformación para cada unidad de codificado entre las unidades de codificado que tienen la estructura de árbol incluida en cada unidad de codificado más grande. Un proceso de decodificación puede incluir un proceso de predicción que incluye intrapredicción y compensación de movimiento, y un proceso de transformación inversa.
El decodificador de datos de imagen 930 puede realizar una intrapredicción o una compensación de movimiento según una partición y un modo de predicción de cada unidad de codificado, en función de la información sobre el tipo de partición y el modo de predicción de la unidad de predicción de la unidad de codificado según las profundidades.
Además, el decodificador de datos de imagen 930 puede leer información sobre una unidad de transformación según una estructura de árbol para cada unidad de codificado, de modo de realizar una transformación inversa basada en unidades de transformación para cada unidad de codificado, para una transformación inversa para cada unidad de codificado más grande. Debido a la transformación inversa, se puede reconstruir un valor de píxel de un dominio espacial de la unidad de codificado.
El decodificador de datos de imagen 930 puede determinar una profundidad de una unidad de codificado más grande actual utilizando información de partimiento según las profundidades. Si la información de partimiento indica que los datos de imagen ya no están partidos en la profundidad actual, la profundidad actual es una profundidad. En consecuencia, el decodificador de datos de imagen 930 puede decodificar los datos de imagen de la unidad de codificado más grande actual utilizando la información sobre el modo de partición de la unidad de predicción, el modo de predicción y el tamaño de la unidad de transformación para cada unidad de codificado correspondiente a la profundidad actual.
Es decir, las unidades de datos que contienen la información de codificación que incluye la misma información de partimiento pueden recopilarse observando el conjunto de información de codificación asignado para la unidad de datos predeterminada entre la unidad de codificado, la unidad de predicción y la unidad mínima, y las unidades de datos recopiladas pueden considerarse como una unidad de datos que se decodificará mediante el decodificador de datos de imagen 930 en el mismo modo de codificación. Como tal, la unidad de codificado actual puede decodificarse obteniendo la información sobre el modo de codificación para cada unidad de codificado.
De este modo, el aparato de decodificación de vídeo 900 puede obtener información sobre al menos una unidad de codificado que genera el error de codificación mínimo cuando la codificación se realiza de forma recursiva para cada unidad de codificado más grande, y puede utilizar la información para decodificar la imagen actual. Es decir, las unidades de codificado que tienen la estructura de árbol determinada como las unidades de codificado óptimas en cada unidad de codificado más grande pueden decodificarse.
En consecuencia, incluso si una imagen tiene una resolución alta o tiene una cantidad de datos excesivamente grande, la imagen puede decodificarse y reconstruirse de manera eficiente utilizando un tamaño de una unidad de codificado y un modo de codificación, que se determinan de manera adaptativa según las características de la imagen, utilizando información de partimiento óptima recibida desde un terminal de codificación.
La FIG. 10 es un diagrama para describir un concepto de unidades de codificado.
El tamaño de una unidad de codificado puede expresarse por anchura x altura, y puede ser 64x64, 32x32, 16x16 y 8x8. Una unidad de codificado de 64x64 puede partirse en particiones de 64x64, 64x32, 32x64 o 32x32, y una unidad de codificado de 32x32 puede partirse en particiones de 32x32, 32x16, 16x32 o 16x16, una unidad de codificado de 16x16 puede partirse en particiones de 16x16, 16x8, 8x16 o 8x8, y una unidad de codificado de 8x8 puede partirse en particiones de 8x8, 8x4, 4x8 o 4x4.
En los datos de vídeo 1010, una resolución es 1920x1080, un tamaño máximo de una unidad de codificado es 64 y una profundidad máxima es 2. En los datos de vídeo 1020, una resolución es 1920x1080, un tamaño máximo de una unidad de codificado es 64 y una profundidad máxima es 3. En los datos de vídeo 1030, una resolución es 352x288, un tamaño máximo de una unidad de codificado es 16 y una profundidad máxima es 1. La profundidad máxima que se muestra en la FIG. 10 indica el número total de divisiones desde una unidad de codificado más grande a una unidad de codificado más pequeña.
Si la resolución es alta o la cantidad de datos es grande, es preferible que el tamaño máximo de la unidad de codificado sea grande, no solo para aumentar la eficiencia de codificación, sino también para reflejar con precisión las características de una imagen. En consecuencia, el tamaño máximo de la unidad de codificado de los datos de vídeo 1010 y 1020 que tienen una resolución más alta que los datos de vídeo 1030 puede ser 64.
Dado que la profundidad máxima de los datos de vídeo 1010 es 2, las unidades de codificado 1015 de los datos de vídeo 1010 pueden incluir una unidad de codificado más grande que tenga un tamaño de eje largo de 64, y unidades de codificado que tengan tamaños de eje largo de 32 y 16, dado que las profundidades se profundizan a dos capas al partir la unidad de codificado más grande dos veces. Por otro lado, dado que la profundidad máxima de los datos de vídeo 1030 es 1, las unidades de codificado 1035 de los datos de vídeo 1030 pueden incluir una unidad de codificado más grande que tenga un tamaño de eje largo de 16, y unidades de codificado que tengan un tamaño de eje largo de 8, dado que las profundidades se profundizan a una capa al partir la unidad de codificado más grande una vez.
Dado que la profundidad máxima de los datos de vídeo 1020 es 3, las unidades de codificado 1025 de los datos de vídeo 1020 pueden incluir una unidad de codificado más grande que tenga un tamaño de eje largo de 64, y unidades de codificado que tengan tamaños de eje largo de 32, 16 y 8, ya que las profundidades se profundizan a 3 capas al partir la unidad de codificado más grande tres veces. A medida que se profundiza una profundidad, se puede mejorar una capacidad de expresión con respecto a la información detallada.
La FIG. 11 es un diagrama de bloques de un codificador de vídeo 1100 basado en unidades de codificado.
El codificador de vídeo 1100 realiza operaciones del determinador de unidad de codificado 820 del aparato de codificación de vídeo 800 para codificar datos de imagen. Es decir, un intrapredictor 1120 realiza una intrapredicción sobre unidades de codificado en un modo intra según unidades de predicción, a partir de una imagen actual 1105, y un interpredictor 1115 realiza una interpredicción sobre unidades de codificado en un modo inter utilizando la imagen actual 1105 y una imagen de referencia obtenida a partir de un búfer de imagen reconstruida 1110 según unidades de predicción. La imagen actual 1105 puede partirse en unidades de codificado más grandes y luego las unidades de codificado más grandes pueden codificarse secuencialmente. A este respecto, las unidades de codificado más grandes que se van a partir en unidades de codificado que tienen una estructura de árbol pueden codificarse.
Los datos residuales se generan eliminando los datos de predicción relativos a las unidades de codificado de cada modo que se tienen como salida desde el intrapredictor 1120 o el interpredictor 1115 de los datos relativos a las unidades de codificado codificadas de la imagen actual 1105, y los datos residuales se sacan como un coeficiente de transformación cuantizado según las unidades de transformación a través de un transformador 1125 y un cuantizador 1130. El coeficiente de transformación cuantizado se reconstruye como los datos residuales en un dominio espacial a través de un cuantizador inverso 1145 y un transformador inverso 1150. Los datos residuales reconstruidos en el dominio espacial se añaden a los datos de predicción para las unidades de codificado de cada modo que se sacan desde el intrapredictor 1120 o el interpredictor 1115 y, por tanto, se reconstruyen como datos en un dominio espacial para las unidades de codificado de la imagen actual 1105. Los datos reconstruidos en el dominio espacial se generan como imágenes reconstruidas a través de un desbloqueador 1155 y un ejecutante SAO 1160. Las imágenes reconstruidas se almacenan en el búfer de imágenes reconstruidas 1110. Las imágenes reconstruidas almacenadas en el búfer de imágenes reconstruidas 1110 pueden utilizarse como imágenes de referencia para la interpredicción de otra imagen. El coeficiente de transformación cuantizado por el transformador 1125 y el cuantizador 1130 puede salir como flujo de bits 1140 a través de un codificador entrópico 1135.
Para que el codificador de imágenes 1100 se aplique en el aparato de codificación de vídeo 800, todos los elementos del codificador de imágenes 1100, es decir, el interpredictor 1115, el intrapredictor 1120, el transformador 1125, el cuantizador 1130, el codificador entrópico 1135, el cuantizador inverso 1145, el transformador inverso 1150, el desbloqueador 1155 y el ejecutante SAO 1160, realizan operaciones basadas en cada unidad de codificado entre unidades de codificado que tienen una estructura de árbol según cada unidad de codificado más grande.
En particular, el intrapredictor 1120 y el interpredictor 1115 pueden determinar un modo de partición y un modo de predicción de cada unidad de codificado entre las unidades de codificado que tienen una estructura de árbol teniendo en cuenta un tamaño máximo y una profundidad máxima de una unidad de codificado más grande actual, y el transformador 1125 puede determinar si partir una unidad de transformación que tiene una estructura de árbol cuádruple en cada unidad de codificado entre las unidades de codificado que tienen una estructura de árbol.
La FIG. 12 es un diagrama de bloques de un decodificador de vídeo 1200 basado en unidades de codificado.
Un decodificador entrópico 1215 analiza los datos de imagen codificados del objetivo de decodificación y la información de codificación requerida para la decodificación desde un flujo de bits 1205. Los datos de imagen codificados son un coeficiente de transformación cuantizado, y un cuantizador inverso 1220 y un transformador inverso 1225 reconstruyen los datos residuales a partir del coeficiente de transformación cuantizado.
Un intrapredictor 1240 realiza una intrapredicción sobre unidades de codificado en un modo intra según cada unidad de predicción. Un interpredictor 1235 realiza una interpredicción sobre unidades de codificado en un modo inter a partir de una imagen actual para cada unidad de predicción utilizando una imagen de referencia obtenida a partir de un búfer de imágenes reconstruidas 1230.
Los datos de predicción y los datos residuales relativos a las unidades de codificado de cada modo que pasaron a través del intrapredictor 1240 o del interpredictor 1235 se suman y, por lo tanto, los datos en un dominio espacial relativos a las unidades de codificado de la imagen actual 1105 se pueden reconstruir y los datos reconstruidos en el dominio espacial se pueden sacar como una imagen reconstruida 1260 a través de un desbloqueador 1245 y un ejecutante SAO 1250. Las imágenes reconstruidas almacenadas en el búfer de imágenes reconstruidas 1230 se pueden generar como imágenes de referencia.
Para decodificar los datos de imagen en un decodificador de imágenes 930 del aparato de decodificación de vídeo 900, se pueden realizar operaciones después del decodificador entrópico 1215 del decodificador de imágenes 1200.
Para que el decodificador de imágenes 1200 se pueda aplicar en el aparato de decodificación de vídeo 900, todos los elementos del decodificador de imágenes 1200, es decir, el decodificador entrópico 1215, el cuantizador inverso 1220, el transformador inverso 1225, el interpredictor 1240, el interpredictor 1235, el desbloqueador 1245 y el ejecutante SAO 1250 pueden realizar operaciones basadas en unidades de codificado que tienen una estructura de árbol para cada unidad de codificado más grande.
En particular, el intrapredictor 1240 y el interpredictor 1235 pueden determinar un modo de partición y un modo de predicción para cada una de las unidades de codificado que tienen una estructura de árbol, y el transformador inverso 1225 puede determinar si partir una unidad de transformación según una estructura de árbol cuádruple para cada una de las unidades de codificado.
La FIG. 13 es un diagrama que ilustra unidades de codificado según profundidades y particiones.
El aparato de codificación de vídeo 800 y el aparato de decodificación de vídeo 900 utilizan unidades de codificado jerárquicas para tener en cuenta las características de una imagen. Una altura máxima, una anchura máxima y una profundidad máxima de las unidades de codificado se pueden determinar de forma adaptativa según las características de la imagen, o se pueden configurar de diversas formas según los requisitos del usuario. Los tamaños de las unidades de codificado más profundas según las profundidades se pueden determinar según el tamaño máximo predeterminado de la unidad de codificado.
En una estructura jerárquica de unidades de codificado 1300, la altura máxima y la anchura máxima de las unidades de codificado son 64 cada una, y la profundidad máxima es 3. En este caso, la profundidad máxima indica un número total de veces que la unidad de codificado se parte desde la unidad de codificado más grande hasta la unidad de codificado más pequeña. Dado que una profundidad se profundiza a lo largo de un eje vertical de la estructura jerárquica de unidades de codificado 1300, se parte una altura y una anchura de la unidad de codificado más profunda. Además, una unidad de predicción y particiones, que son bases para la codificación de predicción de cada unidad de codificado más profunda, se muestran a lo largo de un eje horizontal de la estructura jerárquica de unidades de codificado 1300.
Es decir, una unidad de codificado 1310 es una unidad de codificado más grande en la estructura jerárquica de unidades de codificado 1300, en donde una profundidad es 0 y un tamaño, es decir, una altura por anchura, es 64x64. La profundidad se profundiza a lo largo del eje vertical, y está presente una unidad de codificado 1320 que tiene un tamaño de 32x32 y una profundidad de 1, una unidad de codificado 1330 que tiene un tamaño de 16x16 y una profundidad de 2, y una unidad de codificado 1340 que tiene un tamaño de 8x8 y una profundidad de 3. La unidad de codificado 1340 que tiene el tamaño de 8x8 y la profundidad de 3 es una unidad de codificado más pequeña.
La unidad de predicción y las particiones de una unidad de codificado se disponen a lo largo del eje horizontal según cada profundidad. Es decir, si la unidad de codificado 1310 que tiene un tamaño de 64x64 y una profundidad de 0 es una unidad de predicción, la unidad de predicción puede partirse en particiones incluidas en la unidad de codificado 1310 que tienen el tamaño de 64x64, es decir, una partición 1310 que tiene un tamaño de 64x64, particiones 1312 que tienen el tamaño de 64x32, particiones 1314 que tienen el tamaño de 32x64 o particiones 1316 que tienen el tamaño de 32x32.
De igual modo, una unidad de predicción de la unidad de codificado 1320 que tiene el tamaño de 32x32 y la profundidad de 1 puede partirse en particiones incluidas en la unidad de codificado 1320 que tiene el tamaño de 32x32, es decir, una partición 1320 que tiene un tamaño de 32x32, particiones 1322 que tienen un tamaño de 32x16, particiones 1324 que tienen un tamaño de 16x32 y particiones 1326 que tienen un tamaño de 16x16.
De igual modo, una unidad de predicción de la unidad de codificado 1330 que tiene el tamaño de 16x16 y la profundidad de 2 puede partirse en particiones incluidas en la unidad de codificado 1330 que tiene el tamaño de 16x16, es decir, una partición 1330 que tiene un tamaño de 16x16 incluida en la unidad de codificado 1330, particiones 1332 que tienen un tamaño de 16x8, particiones 1334 que tienen un tamaño de 8x16 y particiones 1336 que tienen un tamaño de 8x8.
De igual modo, una unidad de predicción de la unidad de codificado 1340 que tiene el tamaño de 8x8 y la profundidad de 3 puede partirse en particiones incluidas en la unidad de codificado 1340 que tiene el tamaño de 8x8, es decir, una partición 1340 que tiene un tamaño de 8x8 incluida en la unidad de codificado 1340, particiones 1342 que tienen un tamaño de 8x4, particiones 1344 que tienen un tamaño de 4x8 y particiones 1346 que tienen un tamaño de 4x4.
Para determinar una profundidad de la unidad de codificado más grande 1310, el determinador de unidad de codificado 820 del aparato de codificación de vídeo 800 tiene que realizar la codificación en unidades de codificado que corresponden respectivamente a las profundidades incluidas en la unidad de codificado más grande 1310.
El número de unidades de codificado más profundas según las profundidades que incluyen datos en el mismo intervalo y el mismo tamaño aumenta a medida que aumenta la profundidad. Por ejemplo, se requieren cuatro unidades de codificado correspondientes a una profundidad de 2 para cubrir los datos que se incluyen en una unidad de codificado correspondiente a una profundidad de 1. En consecuencia, para comparar los resultados de la codificación de los mismos datos según las profundidades, los datos deben codificarse utilizando cada una de las unidades de codificado correspondientes a la profundidad de 1 y cuatro unidades de codificado correspondientes a la profundidad de 2.
Para realizar la codificación según cada una de las profundidades, se puede seleccionar un error de codificación mínimo que sea un error de codificación representativo de una profundidad correspondiente realizando la codificación en cada una de las unidades de predicción de las unidades de codificado según las profundidades, a lo largo del eje horizontal de la estructura jerárquica de las unidades de codificado 1300. Alternativamente, se puede buscar el error de codificación mínimo comparando errores de codificación representativos según las profundidades, realizando la codificación para cada profundidad a medida que la profundidad se profundiza a lo largo del eje vertical de la estructura jerárquica de las unidades de codificado 1300. Se puede seleccionar una profundidad y una partición que genere el error de codificación mínimo en la unidad de codificado más grande 1310 como una profundidad y un modo de partición de la unidad de codificado más grande 1310.
La FIG. 14 es un diagrama para describir una relación entre una unidad de codificado y unidades de transformación.
El aparato de codificación de vídeo 800 o el aparato de decodificación de vídeo 900 codifica o decodifica una imagen según unidades de codificado que tienen tamaños menores o iguales a una unidad de codificado más grande para cada unidad de codificado más grande. Los tamaños de las unidades de transformación para la transformación durante un proceso de codificación pueden seleccionarse en función de unidades de datos que no sean mayores que una unidad de codificado correspondiente.
Por ejemplo, en el aparato de codificación de vídeo 800 o el aparato de decodificación de vídeo 900, cuando el tamaño de la unidad de codificado 1410 es 64x64, la transformación se puede realizar utilizando las unidades de transformación 1420 que tienen un tamaño de 32x32.
Además, los datos de la unidad de codificado 1410 que tienen un tamaño de 64x64 se pueden codificar realizando la transformación en cada una de las unidades de transformación que tienen un tamaño de 32x32, 16x16, 8x8 y 4x4, que son más pequeñas que 64x64, y luego se puede seleccionar una unidad de transformación que tenga el menor error de codificación con respecto a una imagen original.
La FIG. 15 ilustra una pluralidad de elementos de información de codificación.
La unidad de salida 830 del aparato de codificación de vídeo 800 puede codificar y transmitir, como información de partimiento, información de modo de partición 1500, información de modo de predicción 1510 e información de tamaño de unidad de transformación 1520 para cada unidad de codificado correspondiente a una profundidad.
La información de modo de partición 1500 indica información sobre una forma de una partición obtenida al partir una unidad de predicción de una unidad de codificado actual, en donde la partición es una unidad de datos para la codificación de predicción de la unidad de codificado actual. Por ejemplo, una unidad de codificado actual CU_0 que tiene un tamaño de 2Nx2N puede partirse en cualquiera de las particiones 1502 que tienen un tamaño de 2Nx2N, una partición 1504 que tiene un tamaño de 2NxN, una partición 1506 que tiene un tamaño de Nx2N y una partición 1508 que tiene un tamaño de NxN. Aquí, la información de modo de partición 1500 sobre una unidad de codificado actual se establece para indicar una de las particiones 1504 que tienen un tamaño de 2NxN, la partición 1506 que tiene un tamaño de Nx2N y la partición 1508 que tiene un tamaño de NxN.
La información de modo de predicción 1510 indica un modo de predicción de cada partición. Por ejemplo, la información de modo de predicción 1510 puede indicar un modo de codificación de predicción realizado en una partición indicada por la información de modo de partición 1500, es decir, un modo intra 1512, un modo inter 1514 o un modo de omisión 1516.
La información de tamaño de la unidad de transformación 1520 indica una unidad de transformación en la que se basará cuando se realice una transformación en una unidad de codificado actual. Por ejemplo, la unidad de transformación puede ser una primera unidad de intratransformación 1522, una segunda unidad de intratransformación 1524, una primera unidad de intertransformación 1526 o una segunda unidad de intertransformación 1528.
El extractor de información de codificación y datos de imagen 920 del aparato de decodificación de vídeo 900 puede extraer y utilizar la información de modo de partición 1500, la información de modo de predicción 1510 y la información del tamaño de la unidad de transformación 1520 para la decodificación, según cada unidad de codificado más profunda.
La FIG. 16 es un diagrama de unidades de codificado más profundas según profundidades.
La información de partimiento se puede utilizar para representar un cambio en la profundidad. La información de partimiento especifica si una unidad de codificado de una profundidad actual se parte en unidades de codificado de una profundidad inferior.
Una unidad de predicción 1610 para la codificación de predicción de una unidad de codificado 1600 que tiene una profundidad de 0 y un tamaño de 2N_0x2N_0 puede incluir particiones de un modo de partición 1612 que tiene un tamaño de 2N_0x2N_0, un modo de partición 1614 que tiene un tamaño de 2N_0xN_0, un modo de partición 1616 que tiene un tamaño de N_0x2N_0 y un modo de partición 1618 que tiene un tamaño de N_0xN_0. Solo se ilustran los modos de partición 1612, 1614, 1616 y 1618 que se obtienen al partir simétricamente la unidad de predicción, pero como se ha descrito anteriormente, un modo de partición no se limita a los mismos y puede incluir particiones asimétricas, particiones que tienen una forma predeterminada y particiones que tienen una forma geométrica.
Según cada modo de partición, la codificación de predicción se debe realizar repetidamente en una partición que tiene un tamaño de 2N_0x2N_0, dos particiones que tienen un tamaño de 2N_0xN_0, dos particiones que tienen un tamaño de N_0x2N_0 y cuatro particiones que tienen un tamaño de N_0xN_0. La codificación de predicción en un modo intra y un modo inter se puede realizar en las particiones que tienen los tamaños de 2N_0x2N_0, N_0x2N_0, 2N_0xN_0 y N_0xN_0. La codificación de predicción en un modo de omisión se puede realizar solo en la partición que tiene el tamaño de 2N_0x2N_0.
Si un error de codificación es más pequeño en uno de los modos de partición 1612, 1614 y 1616 que tienen los tamaños de 2N_0x2N_0, 2N_0xN_0 y N_0x2N_0, la unidad de predicción 1610 no puede partirse en una profundidad menor.
Si el error de codificación es el más pequeño en el modo de partición 1618 que tiene un tamaño de N_0xN_0, se cambia una profundidad de 0 a 1 y se realiza una partición (operación 1620), y la codificación se puede realizar repetidamente en unidades de codificado 1630 de un modo de partición que tiene una profundidad de 2 y un tamaño de N_0xN_0 para buscar un error de codificación mínimo.
Una unidad de predicción 1640 para la codificación de predicción de la unidad de codificado 1630 que tiene una profundidad de 1 y un tamaño de 2N_1x2N_1 (=N_0xN_0) puede incluir un modo de partición 1642 que tiene un tamaño de 2N_1x2N_1, un modo de partición 1644 que tiene un tamaño de 2N_1xN_1, un modo de partición 1646 que tiene un tamaño de N_1x2N_1 y un modo de partición 1648 que tiene un tamaño de N_1xN_1.
Si un error de codificación es el más pequeño en el modo de partición 1648 que tiene un tamaño de N_1xN_1, se cambia una profundidad de 1 a 2 y se realiza una partición (en la operación 1650), y la codificación se puede realizar repetidamente en unidades de codificado 1660 que tienen una profundidad de 2 y un tamaño de N_2xN_2 para buscar un error de codificación mínimo.
Cuando una profundidad máxima es d, se pueden establecer unidades de codificado más profundas según las profundidades hasta que una profundidad corresponda a d-1, y se puede establecer información de partimiento hasta que una profundidad corresponda a d-2. En otras palabras, cuando se realiza la codificación hasta cuando la profundidad es d-1 después de que se parte una unidad de codificado correspondiente a una profundidad de d-2 (en la operación 1670), una unidad de predicción 1690 para la codificación de predicción de una unidad de codificado 1680 que tiene una profundidad de d-1 y un tamaño de 2N_(d-1)x2N_(d-1) puede incluir particiones de un modo de partición 1692 que tiene un tamaño de 2N_(d-1 )x2N_(d-1), un modo de partición 1694 que tiene un tamaño de 2N_(d-1)xN_(d-1), un modo de partición 1696 que tiene un tamaño de N_(d-1)x2N_(d-1), y un modo de partición 1698 que tiene un tamaño de N_(d-1 )xN_(d-1).
La codificación de predicción se puede realizar repetidamente en una partición que tiene un tamaño de 2N_(d-1)x2N_(d-1), dos particiones que tienen un tamaño de 2N_(d-1)xN_(d-1), dos particiones que tienen un tamaño de N_(d-1)x2N_(d-1), cuatro particiones que tienen un tamaño de N_(d-1)xN_(d-1) entre los modos de partición para buscar un modo de partición que genere un error de codificación mínimo.
Incluso cuando el tipo de partición 1698 que tiene el tamaño de N_(d-1 )xN_(d-1) tiene el error de codificación mínimo, dado que una profundidad máxima es d, una unidad de codificado CU_(d-1) que tiene una profundidad de d-1 ya no se parte en una profundidad inferior, y una profundidad para las unidades de codificado que constituyen una unidad de codificado más grande actual 1600 se determina como d-1 y un modo de partición de la unidad de codificado más grande actual 1600 se puede determinar como N_(d-1)xN_(d-1). Además, dado que la profundidad máxima es d, no se establece la información de partimiento para la unidad de codificado 1652 correspondiente a una profundidad de d-1.
Una unidad de datos 1699 puede ser una "unidad mínima" para la unidad de codificado más grande actual. Una unidad mínima puede ser una unidad de datos cuadrada obtenida al partir una unidad de codificado más pequeña que tiene una profundidad más baja por 4. Al realizar la codificación repetidamente, el aparato de codificación de vídeo 800 puede seleccionar una profundidad que tenga el error de codificación mínimo al comparar los errores de codificación según las profundidades de la unidad de codificado 1600 para determinar una profundidad y establecer un tipo de partición correspondiente y un modo de predicción como un modo de codificación de la profundidad.
Como tal, los errores de codificación mínimos según las profundidades se comparan en todas las profundidades de 0, 1..., d-1, d, y una profundidad que tiene el error de codificación mínimo se puede determinar como una profundidad. La profundidad, el modo de partición de la unidad de predicción y el modo de predicción se pueden codificar y transmitir como información de partimiento. Además, dado que una unidad de codificado tiene que partirse desde una profundidad de 0 a una profundidad, solo la información de partimiento de la profundidad se establece en '0', y la información de partimiento de las profundidades que excluyen la profundidad se establece en '1'.
El extractor de datos de imagen e información de codificación 920 del aparato de decodificación de vídeo 900 puede extraer y utilizar una información de profundidad y unidad de predicción acerca de la unidad de codificado 1600 para decodificar la unidad de codificado 1612. El aparato de decodificación de vídeo 900 puede determinar una profundidad, en la que la información de partimiento es '0', como una profundidad mediante el uso de información de partimiento según las profundidades, y puede utilizar, para decodificar, información de partimiento acerca de la profundidad correspondiente.
Las FIGS. 17, 18 y 19 son diagramas para describir una relación entre unidades de codificado, unidades de predicción y unidades de transformación.
Las unidades de codificado 1710 son unidades de codificado más profundas según las profundidades determinadas por el aparato de codificación de vídeo 800, en una unidad de codificado más grande. Las unidades de predicción 1760 son particiones de unidades de predicción de cada una de las unidades de codificado 1710 según las profundidades, y las unidades de transformación 1770 son unidades de transformación de cada una de las unidades de codificado según las profundidades.
Cuando una profundidad de una unidad de codificado más grande es 0 en las unidades de codificado más profundas 1710, las profundidades de las unidades de codificado 1712 y 1754 son 1, las profundidades de las unidades de codificado 1714, 1716, 1718, 1728, 1750 y 1752 son 2, las profundidades de las unidades de codificado 1720, 1722, 1724, 1726, 1730, 1732 y 1748 son 3, y las profundidades de las unidades de codificado 1740, 1742, 1744 y 1746 son 4.
Algunas particiones 1714, 1716, 1722, 1732, 1748, 1750, 1752 y 1754 entre las unidades de predicción 1760 se obtienen al partir la unidad de codificado. Es decir, las particiones 1714, 1722, 1750 y 1754 son un modo de partición que tiene un tamaño de 2NxN, las particiones 1716, 1748 y 1752 son un modo de partición que tiene un tamaño de Nx2N y una partición 1732 es un modo de partición que tiene un tamaño de NxN. Las unidades de predicción y las particiones de las unidades de codificado más profundas 1710 son más pequeñas o iguales que cada unidad de codificado.
La transformación o transformación inversa se realiza sobre los datos de imagen de la unidad de codificado 1752 en las unidades de transformación 1770 en una unidad de datos que es más pequeña que la unidad de codificado 1752. Además, las unidades de codificado 1714, 1716, 1722, 1732, 1748, 1750, 1752 y 1754 en las unidades de transformación 1760 son unidades de datos diferentes de las de las unidades de predicción 1760 en términos de tamaños y formas. Es decir, el aparato de codificación de vídeo 800 y el aparato de decodificación de vídeo 900 pueden realizar intrapredicción/estimación de movimiento/compensación de movimiento/y transformación/transformación inversa en una unidad de datos individual en la misma unidad de codificado.
En consecuencia, la codificación se realiza de forma recursiva en cada una de las unidades de codificado que tienen una estructura jerárquica en cada región de una unidad de codificado más grande, de modo de determinar una unidad de codificado óptima, y de este modo se pueden obtener unidades de codificado según una estructura de árbol recursiva. La información de codificación puede incluir información de partimiento sobre una unidad de codificado, información de modo de partición, información de modo de predicción e información de tamaño de unidad de transformación. La Tabla 1 a continuación muestra la información de codificación que puede ser establecida por el aparato de codificación de vídeo 800 y el aparato de decodificación de vídeo 900.
[Tabla 1]
La unidad de salida 830 del aparato de codificación de vídeo 800 puede tener como salida la información de codificación acerca de las unidades de codificado que tienen una estructura de árbol, y el extractor de datos de imagen e información de codificación 920 del aparato de decodificación de vídeo 900 puede extraer la información de codificación acerca de las unidades de codificado que tienen una estructura de árbol a partir de un flujo de bits recibido.
La información de partimiento especifica si una unidad de codificado actual se parte en unidades de codificado de una profundidad inferior. Si la información de partimiento de una profundidad actual d es 0, una profundidad en la que una unidad de codificado actual ya no se parte en una profundidad inferior es una profundidad y, por lo tanto, se puede definir información de modo de partición, información de modo de predicción e información de tamaño de unidad de transformación para la profundidad. Si la unidad de codificado actual se debe partir aún más según la información de partimiento, la codificación se debe realizar de forma independiente en cada una de las cuatro unidades de codificado partidas de una profundidad inferior.
Un modo de predicción puede ser un modo intra, un modo inter y un modo de omisión. El modo intra y el modo inter pueden definirse en todos los modos de partición, y el modo de omisión se define únicamente en un modo de partición que tenga un tamaño de 2Nx2N.
La información de modo de partición puede indicar modos de partición simétricos que tienen tamaños de 2Nx2N, 2NxN, Nx2N y NxN, que se obtienen al partir simétricamente una altura o una anchura de una unidad de predicción, y modos de partición asimétricos que tienen tamaños de 2NxnU, 2NxnD, nLx2N y nRx2N, que se obtienen al partir asimétricamente la altura o la anchura de la unidad de predicción. Los modos de partición asimétricos que tienen los tamaños de 2NxnU y 2NxnD pueden obtenerse respectivamente al partir la altura de la unidad de predicción en 1:3 y 3:1, y los modos de partición asimétricos que tienen los tamaños de nLx2N y nRx2N pueden obtenerse respectivamente al partir la anchura de la unidad de predicción en 1:3 y 3:1.
El tamaño de la unidad de transformación puede configurarse para que sea de dos tipos en el modo intra y de dos tipos en el modo inter. Es decir, si la información de partimiento de unidad de transformación es 0, el tamaño de la unidad de transformación puede ser 2Nx2N, que es el tamaño de la unidad de codificado actual. Si la información de partimiento de unidad de transformación es 1, las unidades de transformación pueden obtenerse al partir la unidad de codificado actual. Además, si un modo de partición de la unidad de codificado actual que tiene el tamaño de 2Nx2N es un modo de partición simétrico, un tamaño de una unidad de transformación puede ser NxN, y si el modo de partición de la unidad de codificado actual es un modo de partición asimétrico, el tamaño de la unidad de transformación puede ser N/2xN/2.
La información de codificación acerca de las unidades de codificado que tienen una estructura de árbol puede asignarse a al menos una de una unidad de codificado correspondiente a una profundidad, una unidad de predicción y una unidad mínima. La unidad de codificado correspondiente a la profundidad puede incluir al menos una de una unidad de predicción y una unidad mínima que contenga la misma información de codificación.
En consecuencia, se determina si las unidades de datos adyacentes se incluyen en la misma unidad de codificado correspondiente a la profundidad comparando la información de codificación de las unidades de datos adyacentes. Además, se determina una unidad de codificado correspondiente a una profundidad utilizando la información de codificación de una unidad de datos y, de este modo, se puede inferir una distribución de profundidades en una unidad de codificado más grande.
En consecuencia, si se predice una unidad de codificado actual en función de la información de codificación de unidades de datos adyacentes, se puede hacer referencia directamente a la información de codificación de unidades de datos en unidades de codificado más profundas adyacentes a la unidad de codificado actual y utilizarla.
Si se predice una unidad de codificado actual en función de la información de codificación de unidades de datos adyacentes, las unidades de datos adyacentes a la unidad de codificado actual se pueden buscar utilizando información codificada de las unidades de datos, y las unidades de codificado adyacentes buscadas se pueden referenciar para predecir la unidad de codificado actual.
La FIG.20 ilustra una relación entre una unidad de codificado, una unidad de predicción y una unidad de transformación, según la información de modo de codificación de la Tabla 1.
Una unidad de codificado más grande 2000 incluye las unidades de codificado 2002, 2004, 2006, 2012, 2014, 2016 y 2018 de profundidades. En este caso, dado que la unidad de codificado 2018 es una unidad de codificado de una profundidad, la información de partimiento puede establecerse en 0. La información de modo de partición de la unidad de codificado 2018 que tiene un tamaño de 2Nx2N puede establecerse para que sea uno de los modos de partición que incluyen 2Nx2N 2022, 2NxN 2024, Nx2N 2026, NxN 2028, 2NxnU 2032, 2NxnD 2034, nLx2N 2036 y nRx2N 2038.
La información de partimiento de unidad de transformación (indicador de tamaño de TU) es un tipo de índice de transformación, y el tamaño de una unidad de transformación correspondiente al índice de transformación se puede cambiar según un tipo de unidad de predicción o un modo de partición de la unidad de codificado.
Por ejemplo, cuando la información de modo de partición se establece para que sea uno de los modos de partición simétricos 2Nx2N 2022, 2NxN 2024, Nx2N 2026 y NxN 2028, si la información de partimiento de unidad de transformación es 0, se establece una unidad de transformación 2042 que tiene un tamaño de 2Nx2N, y si la información de partimiento de unidad de transformación es 1, se puede establecer una unidad de transformación 2044 que tiene un tamaño de NxN.
Cuando la información de modo de partición se establece para que sea uno de los modos de partición asimétricos 2NxnU 2032, 2NxnD 2034, nLx2N 2036 y nRx2N 2038, si la información de partimiento de unidad de transformación (indicador de tamaño de TU) es 0, se puede establecer una unidad de transformación 2052 que tenga un tamaño de 2Nx2N, y si la información de partimiento de unidad de transformación es 1, se puede establecer una unidad de transformación 2054 que tenga un tamaño de N/2xN/2.
La información de partimiento de unidad de transformación (indicador de tamaño de TU) descrita anteriormente con referencia a la FIG. 19 es un indicador que tiene un valor de 0 o 1, pero la información de partimiento de unidad de transformación no está limitada a un indicador que tiene 1 bit, y la unidad de transformación puede partirse jerárquicamente mientras que la información de partimiento de unidad de transformación aumenta de una manera de 0, 1,2, 3, etc., según la configuración. La información de partimiento de unidad de transformación puede ser un ejemplo del índice de transformación.
En este caso, el tamaño de una unidad de transformación que se ha utilizado realmente puede expresarse utilizando la información de partimiento de unidad de transformación, junto con un tamaño máximo de la unidad de transformación y un tamaño mínimo de la unidad de transformación. El aparato de codificación de vídeo 800 puede codificar información de tamaño máximo de la unidad de transformación, información de tamaño mínimo de la unidad de transformación e información de partimiento máxima de la unidad de transformación. El resultado de codificar la información de tamaño máximo de la unidad de transformación, la información de tamaño mínimo de la unidad de transformación y la información de partimiento máxima de la unidad de transformación puede insertarse en un SPS. El aparato de decodificación de vídeo 900 puede decodificar vídeo utilizando la información de tamaño máximo de la unidad de transformación, la información de tamaño mínimo de la unidad de transformación y la información de partimiento máxima de la unidad de transformación.
Por ejemplo, (a) si el tamaño de una unidad de codificado actual es 64x64 y un tamaño máximo de unidad de transformación es 32x32, (a-1) entonces el tamaño de una unidad de transformación puede ser 32x32 cuando un indicador de tamaño de TU es 0, (a-2) puede ser 16x16 cuando el indicador de tamaño de TU es 1, y (a- 3) puede ser 8x8 cuando el indicador de tamaño de TU es 2.
Como otro ejemplo, (b) si el tamaño de la unidad de codificado actual es 32x32 y un tamaño de unidad de transformación mínimo es 32x32, (b-1) entonces el tamaño de la unidad de transformación puede ser 32x32 cuando el indicador de tamaño de TU es 0. Aquí, el indicador de tamaño de TU no se puede establecer en un valor distinto de 0, ya que el tamaño de la unidad de transformación no puede ser menor que 32x32.
Como otro ejemplo, (c) si el tamaño de la unidad de codificado actual es 64x64 y un indicador de tamaño máximo de TU es 1, entonces el indicador de tamaño de TU puede ser 0 o 1. Aquí, el indicador de tamaño de TU no se puede establecer en un valor distinto de 0 o 1.
Por lo tanto, si se define que el indicador de tamaño máximo de TU es 'MaxTransformSizelndex', un tamaño mínimo de unidad de transformación es 'MinTransformSize' y un tamaño de unidad de transformación es 'RootTuSize' cuando el indicador de tamaño de TU es 0, entonces un tamaño mínimo actual de unidad de transformación 'CurrMinTuSize' que se puede determinar en una unidad de codificado actual se puede definir mediante la ecuación (1):
CurrMinTuSize = máx (MinTransformSize, RootTuSize/(2AMaxTransformSizelndex))... (1)
En comparación con el tamaño de unidad de transformación mínimo actual 'CurrMinTuSize' que se puede determinar en la unidad de codificado actual, un tamaño de unidad de transformación 'RootTuSize' cuando el indicador de tamaño de TU es 0 puede indicar un tamaño de unidad de transformación máximo que se puede seleccionar en el sistema. Es decir, en la ecuación (1), En la ecuación (1), 'RootTuSize/(2AMaxTransformSizelndex)' indica un tamaño de unidad de transformación cuando el tamaño de unidad de transformación 'RootTuSize', cuando el indicador de tamaño de TU es 0, se parte una cantidad de veces correspondiente al indicador de tamaño máximo de TU, y 'MinT ransformSize' indica un tamaño de transformación mínimo. Por lo tanto, un valor más pequeño entre 'RootTuSize/(2AMaxTransformSizelndex)' y 'MinTransformSize' puede ser el tamaño de unidad de transformación mínimo actual 'CurrMinTuSize' que se puede determinar en la unidad de codificado actual.
El tamaño máximo de la unidad de transformación RootTuSize puede variar según el tipo de modo de predicción.
Por ejemplo, si un modo de predicción actual es un modo inter, entonces "RootTuSize" se puede determinar utilizando la ecuación (2) a continuación. En la ecuación (2), "MaxTransformSize" denota un tamaño máximo de unidad de transformación y "PUSize" denota un tamaño de unidad de predicción actual.
RootTuSize = min(MaxTransformSize, PUSize) (2)
Es decir, si el modo de predicción actual es el modo inter, el tamaño de la unidad de transformación 'RootTuSize', cuando el indicador de tamaño de TU es 0, puede ser un valor más pequeño entre el tamaño máximo de la unidad de transformación y el tamaño de la unidad de predicción actual.
Si un modo de predicción de una unidad de partición actual es un modo intra, se puede determinar "RootTuSize" utilizando la ecuación (3) a continuación. En la ecuación (3), "PartitionSize" indica el tamaño de la unidad de partición actual.
RootTuSize = min(MaxTransformSize, PartitionSize) (3)
Es decir, si el modo de predicción actual es el modo intra, el tamaño de la unidad de transformación 'RootTuSize' cuando el indicador de tamaño de TU es 0 puede ser un valor más pequeño entre el tamaño máximo de la unidad de transformación y el tamaño de la unidad de partición actual.
Sin embargo, el tamaño máximo actual de la unidad de transformación 'RootTuSize' que varía según el tipo de modo de predicción en una unidad de partición es solo un ejemplo, y un factor para determinar el tamaño máximo actual de la unidad de transformación no está limitado a este.
Según el método de codificación de vídeo basado en unidades de codificado de una estructura de árbol descrito anteriormente con referencia a las FIGS. 8 a 20, los datos de imagen de un dominio espacial se codifican en cada una de las unidades de codificado de la estructura de árbol, y los datos de imagen del dominio espacial se reconstruyen de manera que la decodificación se realiza en cada unidad de codificado más grande según el método de decodificación de vídeo basado en las unidades de codificado de la estructura de árbol, de modo que se puede reconstruir un vídeo formado por imágenes y secuencias de imágenes. El vídeo reconstruido se puede reproducir mediante un aparato de reproducción, se puede almacenar en un soporte de almacenamiento o se puede transmitir a través de una red.
El uno o más ejemplos pueden escribirse como programas de ordenador y pueden implementarse en ordenadores digitales de uso general que ejecutan los programas utilizando un medio de grabación no transitorio legible por ordenador. Los ejemplos del medio de grabación no transitorio legible por ordenador incluyen soportes de almacenamiento magnético (por ejemplo, ROM, disquetes, discos duros, etc.), medios de grabación óptica (por ejemplo, CD-ROM o DVD), etc.
Para facilitar la descripción, el método de codificación de vídeo y/o el método de codificación de vídeo, que se describen con referencia a las FIGS. 1 a 20, se denominarán colectivamente como "el método de codificación de vídeo de la presente divulgación". Asimismo, el método de decodificación de vídeo y/o el método de decodificación de vídeo, que se describen con referencia a las FIGS. 1 a 20, se denominarán colectivamente como "el método de decodificación de vídeo de la presente divulgación".
Además, un aparato de codificación de vídeo que incluye el aparato de codificación de vídeo, el aparato de codificación de vídeo 800 o el codificador de imágenes 1100 que se describen con referencia a las FIGS. 1 a 20 se denominarán colectivamente "aparato de codificación de vídeo". Además, un aparato de decodificación de vídeo que incluye el aparato de decodificación de vídeo entre capas, el aparato de decodificación de vídeo 900 o el decodificador de imágenes 1200 que se describen con referencia a las FIGS. 1 a 20 se denominarán colectivamente "aparato de decodificación de vídeo".
A continuación se describirá en detalle un medio de grabación legible por ordenador, tal como un disco 26000, que almacena los programas.
La FIG. 21 es un diagrama de una estructura física del disco 26000 en el que se almacena un programa según diversos ejemplos. El disco 26000, como soporte de almacenamiento, puede ser un disco duro, un disco compacto de memoria de sólo lectura (CD-ROM), un disco Blu-ray o un disco versátil digital (DVD). El disco 26000 incluye una pluralidad de pistas concéntricas Tr que se dividen cada una en un número específico de sectores Se en una dirección circunferencial del disco 26000. En una región específica del disco 26000, se puede asignar y almacenar un programa que ejecuta el método de determinación de parámetros cuantizados, el método de codificación de vídeo y el método de decodificación de vídeo descritos anteriormente.
A continuación se describirá con referencia a la FIG. 22 un sistema informático incorporado que utiliza un soporte de almacenamiento que almacena un programa para ejecutar el método de codificación de vídeo y el método de decodificación de vídeo como se ha descrito anteriormente.
La FIG.22 ilustra un diagrama de una unidad de disco 26800 para grabar y leer un programa mediante el uso del disco 26000. Un sistema informático 26700 puede almacenar un programa que ejecuta al menos uno del método de codificación de vídeo y el método de decodificación de vídeo de la presente divulgación, en el disco 26000 a través de la unidad de disco 26800. Para ejecutar el programa almacenado en el disco 26000 en el sistema informático 26700, el programa puede leerse desde el disco 26000 y puede transmitirse al sistema informático 26700 mediante el uso de la unidad de disco 26100.
El programa que ejecuta al menos uno de un método de codificación de vídeo y un método de decodificación de vídeo puede almacenarse no sólo en el disco 26000 ilustrado en las FIGS.21 y 22 sino que también puede almacenarse en una tarjeta de memoria, un casete ROM o una unidad de estado sólido (SSD).
A continuación se describirá un sistema al que se aplica el método de codificación de vídeo y el método de decodificación de vídeo según los ejemplos descritos anteriormente.
La FIG.23 ilustra un diagrama de una estructura general de un sistema de suministro de contenido 11000 para proporcionar un servicio de distribución de contenido. Un área de servicio de un sistema de comunicación se divide en celdas de tamaño predeterminado, y las estaciones base inalámbricas 11700, 11800, 11900 y 12000 se instalan en estas celdas, respectivamente.
El sistema de suministro de contenido 11000 incluye una pluralidad de dispositivos independientes. Por ejemplo, la pluralidad de dispositivos independientes, como un ordenador 12100, un asistente digital personal (PDA) 12200, una cámara de vídeo 12300 y un teléfono móvil 12500, se conectan a internet 11100 a través de un proveedor de servicios de internet 11200, una red de comunicación 11400 y las estaciones base inalámbricas 11700, 11800, 11900 y 12000.
Sin embargo, el sistema de suministro de contenido 11000 no se limita a la estructura ilustrada en la FIG. 23, y los dispositivos pueden conectarse selectivamente a él. La pluralidad de dispositivos independientes puede conectarse directamente a la red de comunicación 11400, no a través de las estaciones base inalámbricas 11700, 11800, 11900 y 12000.
La cámara de vídeo 12300 es un dispositivo de formación de imágenes, por ejemplo, una cámara de vídeo digital, que es capaz de capturar imágenes de vídeo. El teléfono móvil 12500 puede emplear al menos un método de comunicación entre diversos protocolos, por ejemplo, Comunicaciones Digitales Personales (PDC), Acceso Múltiple por División de Código (CDMA), Acceso Múltiple por División de Código de Banda Ancha (W-CDMA), Sistema Global para Comunicaciones Móviles (GSM) y Sistema de Teléfono Móvil Personal (PHS).
La cámara de vídeo 12300 puede conectarse a un servidor de retransmisión 11300 a través de la estación base inalámbrica 11900 y la red de comunicación 11400. El servidor de retransmisión 11300 permite que el contenido recibido de un usuario a través de la cámara de vídeo 12300 se transmita mediante una transmisión en tiempo real. El contenido recibido de la cámara de vídeo 12300 puede estar codificado por la cámara de vídeo 12300 o por el servidor de retransmisión 11300. Los datos de vídeo capturados por la cámara de vídeo 12300 pueden transmitirse al servidor de retransmisión 11300 a través del ordenador 12100.
Los datos de vídeo capturados por una cámara 12600 también pueden transmitirse al servidor de retransmisión 11300 a través del ordenador 12100. La cámara 12600 es un dispositivo de formación de imágenes capaz de capturar imágenes fijas e imágenes de vídeo, de forma similar a una cámara digital. Los datos de vídeo capturados por la cámara 12600 pueden codificarse utilizando la cámara 12600 o el ordenador 12100. El software que realiza la codificación y decodificación de vídeo puede almacenarse en un medio de grabación no transitorio legible por ordenador, por ejemplo, un disco CD-ROM, un disquete, una unidad de disco duro, una SSD o una tarjeta de memoria, a los que puede acceder el ordenador 12100.
Si se capturan datos de vídeo utilizando una cámara incorporada en el teléfono móvil 12500, los datos de vídeo pueden recibirse desde el teléfono móvil 12500.
Los datos de vídeo pueden estar codificados por un sistema de circuito integrado a gran escala (LSI) instalado en la cámara de vídeo 12300, el teléfono móvil 12500 o la cámara 12600.
El sistema de suministro de contenido 11000 puede codificar datos de contenido grabados por un usuario utilizando la cámara de vídeo 12300, la cámara 12600, el teléfono móvil 12500 u otro dispositivo de formación de imágenes, por ejemplo, contenido grabado durante un concierto, y puede transmitir los datos de contenido codificados al servidor de retransmisión 11300. El servidor de retransmisión 11300 puede transmitir los datos de contenido codificados en un tipo de contenido de transmisión a otros clientes que solicitan los datos de contenido.
Los clientes son dispositivos capaces de decodificar los datos de contenido codificados, por ejemplo, el ordenador 12100, la PDA 12200, la cámara de vídeo 12300 o el teléfono móvil 12500. De este modo, el sistema de suministro de contenido 11000 permite a los clientes recibir y reproducir los datos de contenido codificados. Asimismo, el sistema de suministro de contenido 11000 permite a los clientes recibir los datos de contenido codificados y decodificarlos y reproducirlos en tiempo real, lo que permite la difusión personal.
El aparato de codificación de vídeo y el aparato de decodificación de vídeo de la presente divulgación pueden aplicarse a operaciones de codificación y decodificación de la pluralidad de dispositivos independientes incluidos en el sistema de suministro de contenido 11000.
A continuación se describirá con mayor detalle el teléfono móvil 12500 incluido en el sistema de suministro de contenido 11000 con referencia a las FIGS. 24 y 25.
La FIG. 24 ilustra una estructura externa del teléfono móvil 12500 al que se aplica el método de codificación de vídeo y el método de decodificación de vídeo de la presente divulgación. El teléfono móvil 12500 puede ser un teléfono inteligente, cuyas funciones no están limitadas y una gran cantidad de las cuales pueden modificarse o ampliarse.
El teléfono móvil 12500 incluye una antena interna 12510 a través de la que se puede intercambiar una señal de radiofrecuencia (RF) con la estación base inalámbrica 12000, e incluye una pantalla de visualización 12520 para mostrar imágenes capturadas por una cámara 12530 o imágenes que se reciben a través de la antena 12510 y se decodifican, por ejemplo, una pantalla de cristal líquido (LCD) o una pantalla de diodo orgánico emisor de luz (OLED). El teléfono móvil 12500 incluye un panel de operación 12540 que incluye un botón de control y un panel táctil. Si la pantalla de visualización 12520 es una pantalla táctil, el panel de operación 12540 incluye además un panel de detección táctil de la pantalla de visualización 12520. El teléfono móvil 12500 incluye un altavoz 12580 para tener como salida voz y sonido u otro tipo de unidad de salida de sonido, y un micrófono 12550 para introducir voz y sonido u otro tipo de unidad de entrada de sonido. El teléfono móvil 12500 incluye además la cámara 12530, tal como una cámara con dispositivo acoplado por carga (CCD), para capturar vídeo e imágenes fijas. El teléfono móvil 12500 puede incluir además un soporte de almacenamiento 12570 para almacenar datos codificados/decodificados, por ejemplo, vídeo o imágenes fijas capturados por la cámara 12530, recibidos por correo electrónico u obtenidos de diversas maneras; y una ranura 12560 a través de la que se carga el soporte de almacenamiento 12570 en el teléfono móvil 12500. El soporte de almacenamiento 12570 puede ser una memoria flash, por ejemplo, una tarjeta digital segura (SD) o una memoria de solo lectura programable y borrable eléctricamente (EEPROM) incluida en una carcasa de plástico.
La FIG.25 ilustra una estructura interna del teléfono móvil 12500. Para controlar sistemáticamente partes del teléfono móvil 12500, incluyendo la pantalla de visualización 12520 y el panel de operación 12540, un circuito de suministro de energía 12700, un controlador de entrada de operación 12640, un codificador de imágenes 12720, una interfaz de cámara 12630, un controlador LCD 12620, un decodificador de imágenes 12690, un multiplexor/demultiplexor 12680, una unidad de grabación/lectura 12670, una unidad de modulación/demodulación 12660 y un procesador de sonido 12650 se conectan a un controlador central 12710 a través de un bus de sincronización 12730.
Si un usuario opera un botón de encendido y pasa de un estado de "apagado" a un estado de "encendido", el circuito de suministro de energía 12700 suministra energía a todas las partes del teléfono móvil 12500 desde un paquete de baterías, configurando así el teléfono móvil 12500 en un modo de funcionamiento.
El controlador central 12710 incluye una CPU, una memoria de solo lectura (ROM) y una memoria de acceso aleatorio (RAM).
Mientras el teléfono móvil 12500 transmite datos de comunicación al exterior, el teléfono móvil 12500 genera una señal digital mediante el control del controlador central 12710. Por ejemplo, el procesador de sonido 12650 puede generar una señal de sonido digital, el codificador de vídeo 12720 puede generar una señal de imagen digital y los datos de texto de un mensaje pueden generarse mediante el panel de operación 12540 y el controlador de entrada de operación 12640. Cuando se transmite una señal digital a la unidad de modulación/demodulación 12660 mediante el control del controlador central 12710, la unidad de modulación/demodulación 12660 modula una banda de frecuencia de la señal digital y un circuito de comunicación 12610 realiza una conversión de digital a analógico (DAC) y una conversión de frecuencia en la señal de sonido digital modulada por banda de frecuencia. Una señal de transmisión de salida del circuito de comunicación 12610 puede transmitirse a una estación base de comunicación de voz o a la estación base inalámbrica 12000 a través de la antena 12510.
Por ejemplo, cuando el teléfono móvil 12500 está en un modo de conversación, una señal de sonido obtenida a través del micrófono 12550 se convierte en una señal de sonido digital por el procesador de sonido 12650 mediante el control del controlador central 12710. La señal de sonido digital generada puede convertirse en una señal de transmisión a través de la unidad de modulación/demodulación 12660 y el circuito de comunicación 12610, y puede transmitirse a través de la antena 12510.
Cuando se transmite un mensaje de texto, por ejemplo, un correo electrónico, durante un modo de comunicación de datos, los datos de texto del mensaje de texto se introducen a través del panel de operación 12540 y se transmiten al controlador central 12610 a través del controlador de entrada de operación 12640. Mediante el control del controlador central 12610, los datos de texto se transforman en una señal de transmisión a través de la unidad de modulación/demodulación 12660 y el circuito de comunicación 12610 y se transmiten a la estación base inalámbrica 12000 a través de la antena 12510.
Para transmitir datos de imagen durante el modo de comunicación de datos, los datos de imagen capturados mediante el uso de la cámara 12530 se proporcionan al codificador de imagen 12720 a través de la interfaz de la cámara 12630. Los datos de imagen capturados mediante el uso de la cámara 12530 se pueden mostrar directamente en la pantalla de visualización 12520 a través de la interfaz de la cámara 12630 y el controlador LCD 12620.
Una estructura del codificador de imágenes 12720 puede corresponder a la del aparato de codificación de vídeo 100 descrito anteriormente. El codificador de imágenes 12720 puede transformar los datos de imagen recibidos de la cámara 12530 en datos de imagen comprimidos y codificados según el método de codificación de vídeo mencionado anteriormente, y luego tener como salida los datos de imagen codificados al multiplexor/demultiplexor 12680. Durante una operación de grabación de la cámara 12530, una señal de sonido obtenida por el micrófono 12550 del teléfono móvil 12500 puede convertirse en datos de sonido digitales a través del procesador de sonido 12650, y los datos de sonido digitales pueden transmitirse al multiplexor/demultiplexor 12680.
El multiplexor/demultiplexor 12680 multiplexa los datos de imagen codificados recibidos desde el codificador de imagen 12720, junto con los datos de sonido recibidos desde el procesador de sonido 12650. Un resultado de la multiplexación de los datos puede transformarse en una señal de transmisión a través de la unidad de modulación/demodulación 12660 y el circuito de comunicación 12610, y luego puede transmitirse a través de la antena 12510.
Mientras el teléfono móvil 12500 recibe datos de comunicación desde el exterior, se realiza una recuperación de frecuencia y una conversión de analógico a digital (ADC) sobre una señal recibida a través de la antena 12510 para transformar la señal en una señal digital. La unidad de modulación/demodulación 12660 modula una banda de frecuencia de la señal digital. La señal digital modulada en banda de frecuencia se transmite al decodificador de vídeo 12690, al procesador de sonido 12650 o al controlador LCD 12620, según el tipo de señal digital.
Durante el modo de conversación, el teléfono móvil 12500 amplifica una señal recibida a través de la antena 12510 y obtiene una señal de sonido digital realizando una conversión de frecuencia y un convertidor A/D en la señal amplificada. Una señal de sonido digital recibida se convierte en una señal de sonido analógica a través de la unidad de modulación/demodulación 12660 y el procesador de sonido 12650, y la señal de sonido analógica se tiene como salida a través del altavoz 12580 mediante el control del controlador central 12710.
Cuando durante el modo de comunicación de datos, se reciben datos de un archivo de vídeo al que se accede en un sitio web de internet, una señal recibida desde la estación base inalámbrica 12000 a través de la antena 12510 se tiene como salida como datos multiplexados a través de la unidad de modulación/demodulación 12660, y los datos multiplexados se transmiten al multiplexor/demultiplexor 12680.
Para decodificar los datos multiplexados recibidos a través de la antena 12510, el multiplexor/demultiplexor 12680 demultiplexa los datos multiplexados en un flujo de datos de vídeo codificados y un flujo de datos de audio codificados. A través del bus de sincronización 12730, el flujo de datos de vídeo codificados y el flujo de datos de audio codificados se proporcionan al decodificador de vídeo 12690 y al procesador de sonido 12650, respectivamente.
Una estructura del decodificador de imágenes 12690 puede corresponder a la del aparato de decodificación de vídeo descrito anteriormente. El decodificador de imágenes 12690 puede decodificar los datos de vídeo codificados para obtener datos de vídeo reconstruidos y proporcionar los datos de vídeo reconstruidos a la pantalla de visualización 12520 a través del controlador LCD 12620, utilizando el método de decodificación de vídeo mencionado anteriormente según la realización.
De este modo, los datos del archivo de vídeo al que se accede en el sitio web de internet pueden visualizarse en la pantalla de visualización 12520. Al mismo tiempo, el procesador de sonido 12650 puede transformar los datos de audio en una señal de sonido analógica y proporcionar la señal de sonido analógica al altavoz 12580. De este modo, los datos de audio contenidos en el archivo de vídeo al que se accede en el sitio web de internet también pueden reproducirse a través del altavoz 12580.
El teléfono móvil 12500 u otro tipo de terminal de comunicación puede ser un terminal transceptor que incluye tanto un aparato de codificación de vídeo como un aparato de decodificación de vídeo, puede ser un terminal transmisor que incluye solo el aparato de codificación de vídeo, o puede ser un terminal receptor que incluye solo el aparato de decodificación de vídeo.
Un sistema de comunicación según una realización no se limita al sistema de comunicación descrito anteriormente con referencia a la FIG. 24. Por ejemplo, la FIG. 26 ilustra un sistema de transmisión digital que emplea un sistema de comunicación. El sistema de transmisión digital de la FIG. 26 puede recibir una transmisión digital transmitida a través de un satélite o una red terrestre utilizando el aparato de codificación de vídeo y el aparato de decodificación de vídeo de la presente divulgación.
En más detalle, una estación de transmisión 12890 transmite un flujo de datos de vídeo a un satélite de comunicaciones o a un satélite de transmisión 12200 mediante el uso de ondas de radio. El satélite de transmisión 12200 transmite una señal de transmisión, y la señal de transmisión se transmite a un receptor de transmisión por satélite a través de una antena doméstica 12860. En cada casa, un receptor de TV 12810, un descodificador 12870 u otro dispositivo pueden decodificar y reproducir un flujo de vídeo codificado.
Cuando el aparato de decodificación de vídeo se implementa en un aparato de reproducción 12830, el aparato de reproducción 12830 puede analizar y decodificar un flujo de vídeo codificado grabado en un soporte de almacenamiento 12820, como un disco o una tarjeta de memoria, para reconstruir señales digitales. De este modo, la señal de vídeo reconstruida puede reproducirse, por ejemplo, en un monitor 12840.
En el descodificador 12870 conectado a la antena 12860 para una transmisión satelital/terrestre o a una antena de cable 12850 para recibir una transmisión de televisión por cable (TV), se puede instalar el aparato de decodificación de vídeo. La salida de datos del descodificador 12870 también se puede reproducir en un monitor de TV 12880.
Como otro ejemplo, el aparato de decodificación de vídeo puede instalarse en el receptor de TV 12810 en lugar del descodificador 12870.
Un automóvil 12220 que tiene una antena apropiada 12210 puede recibir una señal transmitida desde el satélite 12200 o la estación base inalámbrica 11700. Un vídeo decodificado puede reproducirse en una pantalla de visualización de un sistema de navegación de automóvil 12930 instalado en el automóvil 12920.
Una señal de vídeo puede ser codificada por el aparato de codificación de vídeo y luego puede ser grabada y almacenada en un soporte de almacenamiento. En más detalle, una señal de imagen puede ser almacenada en un disco DVD 12960 por una grabadora de DVD o puede ser almacenada en un disco duro por una grabadora de disco duro 12950. Como otro ejemplo, la señal de vídeo puede ser almacenada en una tarjeta SD 12970. Si la grabadora de disco duro 12950 incluye el aparato de decodificación de vídeo, una señal de vídeo grabada en el disco DVD 12960, la tarjeta SD 12970 u otro soporte de almacenamiento puede ser reproducida en el monitor de TV 12880.
El sistema de navegación de automóvil 12930 puede no incluir la cámara 12530, la interfaz de cámara 12630 y el codificador de vídeo 12720 de la FIG. 26. Por ejemplo, el ordenador 12100 y el receptor de TV 12810 pueden no incluir la cámara 12530, la interfaz de cámara 12630 y el codificador de vídeo 12720 de la FIG. 26.
La FIG. 27 ilustra una estructura de red de un sistema informático en la nube que utiliza un aparato de codificación de vídeo y un aparato de decodificación de vídeo.
El sistema informático en la nube puede incluir un servidor informático en la nube 14100, una base de datos de usuarios (DB) 14100, una pluralidad de recursos informáticos 14200 y un terminal de usuario.
El sistema informático en la nube proporciona un servicio de externalización a demanda de la pluralidad de recursos informáticos 14200 a través de una red de comunicación de datos, por ejemplo, internet, en respuesta a una solicitud del terminal del usuario. En un entorno informático en la nube, un proveedor de servicios proporciona a los usuarios los servicios deseados combinando recursos informáticos en centros de datos ubicados en ubicaciones físicas diferentes mediante el uso de tecnología de virtualización. Un usuario de servicios no tiene que instalar recursos informáticos, por ejemplo, una aplicación, un almacenamiento, un sistema operativo (SO) y software de seguridad, en su propio terminal para usarlos, sino que puede seleccionar y utilizar los servicios deseados entre los servicios en un espacio virtual generado a través de la tecnología de virtualización, en un momento deseado.
Un terminal de usuario de un usuario de servicio especificado se conecta al servidor informático en la nube 14000 a través de una red de comunicación de datos que incluye internet y una red de telecomunicaciones móviles. Los terminales de usuario pueden recibir servicios informáticos en la nube, y en particular servicios de reproducción de vídeo, desde el servidor informático en la nube 14000. Los terminales de usuario pueden ser diversos tipos de dispositivos electrónicos capaces de conectarse a internet, por ejemplo, un PC de escritorio 14300, un televisor inteligente 14400, un teléfono inteligente 14500, un ordenador portátil 14600, un reproductor multimedia portátil (PMP) 14700, un tablet P<c>14100 y similares.
El servidor informático en la nube 14100 puede combinar la pluralidad de recursos informáticos 14200 distribuidos en una red en la nube y proporcionar a los terminales de usuario un resultado de la combinación. La pluralidad de recursos informáticos 14200 puede incluir diversos servicios de datos y puede incluir datos cargados desde terminales de usuario. Como se ha descrito anteriormente, el servidor informático en la nube 14100 puede proporcionar a los terminales de usuario los servicios deseados mediante la combinación de bases de datos de vídeo distribuidas en diferentes regiones según la tecnología de virtualización.
La información de usuario sobre los usuarios que se han suscrito a un servicio informático en la nube se almacena en la base de datos de usuarios 14100. La información de usuario puede incluir información de registro, direcciones, nombres e información de crédito personal de los usuarios. La información de usuario puede incluir además índices de vídeos. En este caso, los índices pueden incluir una lista de vídeos que ya se han reproducido, una lista de vídeos que se están reproduciendo, un punto de pausa de un vídeo que se estaba reproduciendo y similares.
La información sobre un vídeo almacenado en la base de datos de usuario 14100 puede compartirse entre dispositivos de usuario. Por ejemplo, cuando se proporciona un servicio de vídeo al ordenador portátil 14600 en respuesta a una solicitud del ordenador portátil 14600, se almacena un historial de reproducción del servicio de vídeo en la base de datos de usuario 14100. Cuando se recibe una solicitud para reproducir el servicio de vídeo desde el teléfono inteligente 14500, el servidor informático en la nube 14000 busca y reproduce el servicio de vídeo, en función de la base de datos de usuario 14100. Cuando el teléfono inteligente 14500 recibe un flujo de datos de vídeo desde el servidor informático en la nube 14000, un proceso de reproducción de vídeo mediante la decodificación del flujo de datos de vídeo es similar a una operación del teléfono móvil 12500 descrita anteriormente con referencia a la FIG.24.
El servidor informático en la nube 14000 puede hacer referencia a un historial de reproducción de un servicio de vídeo deseado, almacenado en la BD de usuario 14100. Por ejemplo, el servidor informático en la nube 14000 recibe una solicitud para reproducir un vídeo almacenado en la BD de usuario 14100, desde un terminal de usuario. Si este vídeo se estuviera reproduciendo, entonces un método de retransmisión de este vídeo, realizado por el servidor informático en la nube 14000, puede variar según la solicitud del terminal de usuario, es decir, según si el vídeo se reproducirá, comenzando desde un inicio del mismo o un punto de pausa del mismo. Por ejemplo, si el terminal de usuario solicita reproducir el vídeo, comenzando desde el inicio del mismo, el servidor informático en la nube 14000 transmite datos de retransmisión del vídeo comenzando desde un primer fotograma del mismo al terminal de usuario. Si el terminal de usuario solicita reproducir el vídeo, comenzando desde el punto de pausa del mismo, el servidor informático en la nube 14000 transmite datos de retransmisión del vídeo comenzando desde un fotograma correspondiente al punto de pausa, al terminal de usuario.
En este caso, el terminal de usuario puede incluir el aparato de decodificación de vídeo de la presente divulgación como se ha descrito anteriormente con referencia a las FIGS. 1 a 20. Como otro ejemplo, el terminal de usuario puede incluir el aparato de codificación de vídeo de la presente divulgación como se ha descrito anteriormente con referencia a las FIGS. 1 a 20. Alternativamente, el terminal de usuario puede incluir tanto el aparato de decodificación de vídeo como el aparato de codificación de vídeo de la presente divulgación como se ha descrito anteriormente con referencia a las FIGS. 1 a 20.
Diversas aplicaciones del método de codificación de vídeo, el método de decodificación de vídeo, el aparato de codificación de vídeo y el aparato de decodificación de vídeo según diversas realizaciones descritas anteriormente con referencia a las FIGS. 1 a 20 se han descrito anteriormente con referencia a las FIGS. 21 a 27. Sin embargo, los métodos de almacenamiento del método de codificación de vídeo y el método de decodificación de vídeo en un soporte de almacenamiento o los métodos de implementación del aparato de codificación de vídeo y el aparato de decodificación de vídeo en un dispositivo, no se limitan a los ejemplos descritos anteriormente con referencia a las FIGS. 21 a 27.
La divulgación también puede plasmarse en forma de códigos legibles por ordenador en un medio de grabación no transitorio legible por ordenador. El medio de grabación no transitorio legible por ordenador es cualquier dispositivo de almacenamiento de datos que pueda almacenar datos que puedan ser leídos posteriormente por un sistema informático. Entre los ejemplos del medio de grabación no transitorio legible por ordenador se incluyen ROM, RAM, CD-ROM, cintas magnéticas, disquetes, dispositivos de almacenamiento óptico de datos, etc. El medio de grabación no transitorio legible por ordenador también puede distribuirse por sistemas informáticos acoplados a la red de modo que el código legible por ordenador se almacene y ejecute de forma distribuida.
Si bien esta divulgación se ha mostrado y descrito particularmente con referencia a realizaciones de la misma, un experto en la técnica comprenderá que se pueden realizar diversos cambios en la forma y los detalles en la misma sin apartarse del alcance de la divulgación tal como se define en las reivindicaciones adjuntas. Por lo tanto, el alcance de la divulgación no se define por la descripción detallada de la divulgación sino por las reivindicaciones adjuntas, y todas las diferencias dentro del alcance se interpretarán como incluidas en la presente divulgación.

Claims (1)

REIVINDICACIONES
1. Un método de decodificación de vídeo realizado por un aparato de decodificación de vídeo, comprendiendo el método de decodificación de vídeo:
obtener información de modo de predicción del vector de movimiento de un bloque actual, a partir de un flujo de bits;
cuando la información de modo de predicción de vector de movimiento del bloque actual indica un modo de predicción preestablecido, obtener, a partir del flujo de bits, una representación de bits que indica una dirección con signo de una diferencia de vector de movimiento, una representación de bits que indica una distancia de píxel de la diferencia de vector de movimiento y un índice que indica un candidato de vector de movimiento de una lista de candidatos de predicción, determinar la lista de candidatos de predicción que incluye vectores de movimiento de bloques adyacentes al bloque actual, y determinar un candidato de vector de movimiento indicado por el índice de la lista de candidatos de predicción;
determinar la diferencia de vector de movimiento en función de la dirección son signo de la diferencia de vector de movimiento y la distancia de píxel de la diferencia de vector de movimiento;
determinar un vector de movimiento del bloque actual en función del candidato de vector de movimiento y la diferencia de vector de movimiento; y
determinar un bloque reconstruido del bloque actual utilizando un bloque de predicción indicado por el vector de movimiento,
en donde la dirección son signo es una de un componente horizontal de un signo positivo, un componente horizontal de un signo negativo, un componente vertical de un signo positivo y un componente vertical de un signo negativo, y la distancia de píxel es una de una distancia de sub-pel y una distancia de píxel entero, incluyendo la distancia de sub-pel una distancia de 1/4 de píxel y una distancia de 1/2 píxel y la distancia de píxel entero incluyendo una distancia de 1 píxel.
ES15855245T 2014-10-31 2015-11-02 Video decoding method using high-precision motion vector encoding Active ES3009551T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462073317P 2014-10-31 2014-10-31
PCT/KR2015/011665 WO2016068685A1 (ko) 2014-10-31 2015-11-02 고정밀 스킵 부호화를 이용한 비디오 부호화 장치 및 비디오 복호화 장치 및 그 방법

Publications (1)

Publication Number Publication Date
ES3009551T3 true ES3009551T3 (en) 2025-03-27

Family

ID=55857887

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15855245T Active ES3009551T3 (en) 2014-10-31 2015-11-02 Video decoding method using high-precision motion vector encoding

Country Status (10)

Country Link
US (7) US10602179B2 (es)
EP (2) EP3200461B1 (es)
JP (5) JP2017537529A (es)
KR (3) KR20170078672A (es)
CN (5) CN107113440B (es)
ES (1) ES3009551T3 (es)
HU (1) HUE070106T2 (es)
MX (2) MX375837B (es)
PL (1) PL3200461T3 (es)
WO (1) WO2016068685A1 (es)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL4322530T3 (pl) 2010-09-02 2025-06-02 Lg Electronics Inc. Urządzenie do predykcji międzyramkowej
US9282333B2 (en) * 2011-03-18 2016-03-08 Texas Instruments Incorporated Methods and systems for masking multimedia data
ES3009551T3 (en) * 2014-10-31 2025-03-27 Samsung Electronics Co Ltd Video decoding method using high-precision motion vector encoding
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
WO2018044088A1 (ko) 2016-08-31 2018-03-08 주식회사 케이티 비디오 신호 처리 방법 및 장치
US10448010B2 (en) 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
KR102777986B1 (ko) 2017-07-07 2025-03-10 삼성전자주식회사 적응적 움직임 벡터 해상도로 결정된 움직임 벡터의 부호화 장치 및 부호화 방법, 및 움직임 벡터의 복호화 장치 및 복호화 방법
KR20260038965A (ko) 2017-09-12 2026-03-19 삼성전자주식회사 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
US11212547B2 (en) * 2017-09-19 2021-12-28 Samsung Electronics Co., Ltd. Method for encoding and decoding motion information, and apparatus for encoding and decoding motion information
EP3691274A4 (en) 2017-09-28 2021-04-28 Samsung Electronics Co., Ltd. CODING METHOD AND DEVICE FOR IT AND DECODING METHOD AND DEVICE FOR IT
US11877001B2 (en) 2017-10-10 2024-01-16 Qualcomm Incorporated Affine prediction in video coding
EP3709650A4 (en) * 2017-11-09 2021-07-14 Samsung Electronics Co., Ltd. DEVICE AND METHOD FOR CODING MOVEMENT INFORMATION AND DECODING DEVICE AND METHOD
EP3761643A4 (en) * 2018-02-28 2022-02-23 Samsung Electronics Co., Ltd. VIDEO DECODING METHOD AND APPARATUS, AND VIDEO ENCODING METHOD AND APPARATUS
CN114205619B (zh) 2018-02-28 2024-03-19 三星电子株式会社 编码方法及其装置以及解码方法及其装置
WO2019182312A1 (ko) * 2018-03-19 2019-09-26 한국전자통신연구원 기하 변환 참조 픽처를 이용한 영상 부호화/복호화 방법 및 장치
CN111801944B (zh) * 2018-03-26 2021-10-22 华为技术有限公司 视频图像编码器、解码器以及对应的运动信息编码方法
JP7088606B2 (ja) * 2018-04-02 2022-06-21 エスゼット ディージェイアイ テクノロジー カンパニー リミテッド 動画処理方法、画像処理装置、プログラム、符号化デバイス、及び復号化デバイス
US11509925B2 (en) 2018-04-12 2022-11-22 Samsung Electronics Co.. Ltd. Method and device for video encoding and video decoding motion vector information
CN118413642A (zh) 2018-05-10 2024-07-30 三星电子株式会社 视频解码方法、视频编码设备以及存储比特流的方法
WO2019216714A1 (ko) * 2018-05-10 2019-11-14 엘지전자 주식회사 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
KR102877088B1 (ko) * 2018-05-10 2025-10-27 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
WO2019225933A1 (ko) * 2018-05-21 2019-11-28 엘지전자 주식회사 영상 코딩 시스템에서 lut를 기반으로 도출된 mvd 를 사용하는 영상 디코딩 방법 및 그 장치
SG11202013028PA (en) 2018-06-29 2021-01-28 Beijing Bytedance Network Technology Co Ltd Interaction between lut and amvp
KR102840294B1 (ko) 2018-06-29 2025-07-30 두인 비전 컴퍼니 리미티드 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념
CN110662052B (zh) 2018-06-29 2022-07-08 北京字节跳动网络技术有限公司 更新查找表(lut)的条件
KR102680903B1 (ko) 2018-06-29 2024-07-04 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝
WO2020003265A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Conditions of usage of luts
WO2020003282A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Managing motion vector predictors for video coding
EP4322533A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
KR102627814B1 (ko) 2018-06-29 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
CN110677669B (zh) 2018-07-02 2021-12-07 北京字节跳动网络技术有限公司 具有lic的lut
US10887594B2 (en) * 2018-07-05 2021-01-05 Mediatek Inc. Entropy coding of coding units in image and video data
WO2020016745A2 (en) * 2018-07-14 2020-01-23 Beijing Bytedance Network Technology Co., Ltd. Extension of look-up table based motion vector prediction with temporal information
EP3826305A4 (en) * 2018-07-18 2021-08-18 Panasonic Intellectual Property Corporation of America ENCODING DEVICE, DECODING DEVICE, ENCODING PROCESS, AND DECODING PROCESS
KR102286460B1 (ko) 2018-07-18 2021-08-04 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 히스토리-기반 모션 벡터 예측을 사용한 비디오 코딩 방법 및 장치
TWI840401B (zh) 2018-08-26 2024-05-01 大陸商北京字節跳動網絡技術有限公司 基於多運動模型的跳過和直接模式編碼的視頻塊中的修剪
CN116033150A (zh) * 2018-09-08 2023-04-28 北京字节跳动网络技术有限公司 不同视频块尺寸的仿射模式计算
WO2020053798A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
MX2021003135A (es) 2018-09-17 2021-05-14 Samsung Electronics Co Ltd Metodo de codificacion y decodificacion de informacion de movimiento, y aparatos para codificar y decodificar informacion de movimiento.
EP3854078A1 (en) * 2018-09-21 2021-07-28 InterDigital VC Holdings, Inc. Translational and affine candidates in a unified list
US11051034B2 (en) 2018-10-08 2021-06-29 Qualcomm Incorporated History-based motion vector predictor
KR20240049658A (ko) * 2018-10-09 2024-04-16 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
KR102332528B1 (ko) * 2018-10-10 2021-12-01 삼성전자주식회사 움직임 벡터 차분값을 이용한 비디오 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
CN111083484B (zh) 2018-10-22 2024-06-28 北京字节跳动网络技术有限公司 基于子块的预测
CN111083489B (zh) 2018-10-22 2024-05-14 北京字节跳动网络技术有限公司 多次迭代运动矢量细化
CN112997489B (zh) * 2018-11-06 2024-02-06 北京字节跳动网络技术有限公司 具有几何分割的帧间预测的边信息信令
CN111436227B (zh) 2018-11-12 2024-03-29 北京字节跳动网络技术有限公司 在视频处理中使用组合帧间-帧内预测
CN119182923A (zh) 2018-11-16 2024-12-24 三星电子株式会社 使用双向预测的图像编码和解码方法及发送比特流的方法
CN113039780B (zh) * 2018-11-17 2023-07-28 北京字节跳动网络技术有限公司 视频处理中用运动矢量差的Merge
US11703590B2 (en) * 2018-11-19 2023-07-18 Suteng Innovation Technology Co., Ltd. Lidar signal receiving circuits, lidar signal gain control methods, and lidars using the same
WO2020103877A1 (en) 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Coding and decoding of video coding modes
CN117528076A (zh) * 2018-11-22 2024-02-06 北京字节跳动网络技术有限公司 用于具有几何分割的帧间预测的构建方法
WO2020116242A1 (ja) 2018-12-07 2020-06-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
CN111343461B (zh) * 2018-12-18 2022-03-25 北京达佳互联信息技术有限公司 视频解码方法、视频编码方法及装置
BR112021011807A2 (pt) 2018-12-21 2021-09-28 Samsung Electronics Co., Ltd. Método de decodificação de imagem realizado por um aparelho de decodificação de imagem, meio legível por computador, aparelho de decodificação de imagem, e método de codificação de imagem realizado por um aparelho de codificação de imagem
CN113196773B (zh) 2018-12-21 2024-03-08 北京字节跳动网络技术有限公司 具有运动矢量差的Merge模式中的运动矢量精度
WO2020135465A1 (en) 2018-12-28 2020-07-02 Beijing Bytedance Network Technology Co., Ltd. Modified history based motion prediction
EP3905675A4 (en) 2018-12-28 2022-10-26 Samsung Electronics Co., Ltd. METHOD AND APPARATUS FOR ENCODING MOTION VECTOR DIFFERENCES AND METHOD AND APPARATUS FOR DECODING MOTION VECTOR DIFFERENCES
WO2020138997A1 (ko) * 2018-12-28 2020-07-02 엘지전자 주식회사 화면간 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
CN119676442A (zh) * 2018-12-29 2025-03-21 华为技术有限公司 帧间预测方法、装置以及相应的编码器和解码器
CN114245115B (zh) * 2018-12-30 2023-03-21 北京达佳互联信息技术有限公司 用于对视频进行编码的方法和装置
CN113170166B (zh) 2018-12-30 2023-06-09 北京字节跳动网络技术有限公司 具有几何分割的帧间预测在视频处理中有条件的应用
CN113273189B (zh) * 2018-12-31 2024-08-16 北京字节跳动网络技术有限公司 具有MVD的Merge和AMVR之间的交互
WO2020141910A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 화면간 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
KR102648159B1 (ko) 2019-01-10 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut 업데이트의 호출
CN113273187B (zh) 2019-01-10 2024-07-05 北京字节跳动网络技术有限公司 基于仿射的具有运动矢量差(MVD)的Merge
WO2020143837A1 (en) * 2019-01-12 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Mmvd improvement
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
CN113330739B (zh) 2019-01-16 2025-01-10 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
CN111669592B (zh) * 2019-03-05 2022-11-25 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
KR102635518B1 (ko) 2019-03-06 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 변환된 단예측 후보의 사용
EP3937489B1 (en) * 2019-03-08 2024-08-14 Jvckenwood Corporation Moving image encoding device, moving image encoding method, moving image encoding program, moving image decoding device, moving image decoding method, and moving image decoding program
US12010305B2 (en) 2019-03-11 2024-06-11 Apple Inc. Method for encoding/decoding image signal, and device therefor
CN113615193B (zh) 2019-03-22 2024-06-25 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
CN117221532B (zh) * 2019-04-09 2024-03-29 北京达佳互联信息技术有限公司 用于视频解码的方法、装置和存储介质
EP3977741A4 (en) * 2019-05-30 2023-05-24 Beijing Dajia Internet Information Technology Co., Ltd. METHOD AND DEVICE FOR SIGNALING A SYMMETRIC MOTION VECTOR DIFFERENTIAL MODE
CN115460424B (zh) * 2019-06-05 2024-09-20 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
KR102679217B1 (ko) 2019-06-14 2024-06-27 엘지전자 주식회사 움직임 벡터 차분들을 이용한 영상 코딩 방법 및 장치
CN112118450B (zh) * 2019-06-21 2022-03-29 杭州海康威视数字技术股份有限公司 预测模式的解码、编码方法及装置
AU2020297835B2 (en) 2019-06-21 2025-09-11 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding motion information by using neighboring motion information
WO2021002673A1 (ko) 2019-07-01 2021-01-07 삼성전자 주식회사 주변 움직임 정보를 이용하여 움직임 정보를 부호화 및 복호화하는 장치, 및 방법
CN112437312B (zh) * 2019-08-26 2022-05-27 腾讯科技(深圳)有限公司 视频解码方法、编码方法、装置、设备及存储介质
CN113766234B (zh) * 2020-06-05 2022-12-23 杭州海康威视数字技术股份有限公司 一种解码、编码方法、装置及其设备
CN116250247B (zh) * 2020-11-06 2026-01-13 Oppo广东移动通信有限公司 电子设备、生成图像数据的方法和非暂时性计算机可读介质
US12084204B2 (en) * 2021-06-29 2024-09-10 Air T, Inc. Remote deicing/anti-icing
WO2023085704A1 (ko) * 2021-11-09 2023-05-19 삼성전자 주식회사 비디오 복호화 방법, 비디오 복호화 장치, 비디오 부호화 방법, 및 비디오 부호화 장치
US12513300B2 (en) 2021-11-09 2025-12-30 Samsung Electronics Co., Ltd. Method and apparatus for video decoding and video encoding using a plurality of candidate prediction motion vectors
CN115086678B (zh) * 2022-08-22 2022-12-27 北京达佳互联信息技术有限公司 视频编码方法和装置、视频解码方法和装置
CN116233449B (zh) * 2023-03-06 2024-10-01 杭州海康威视数字技术股份有限公司 一种视频编码、解码方法、装置、设备及存储介质
CN117440168B (zh) * 2023-12-19 2024-03-08 福州时芯科技有限公司 一种实现并行螺旋搜索算法的硬件架构

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008536414A (ja) * 2005-04-13 2008-09-04 ゴットフリート・ヴィルヘルム・ライプニッツ・ウニヴェルジテート・ハノーヴァー ビデオの拡張された符号化方法及び装置
KR101364195B1 (ko) 2008-06-26 2014-02-21 에스케이텔레콤 주식회사 움직임벡터 부호화/복호화 방법 및 그 장치
EP2394437B1 (en) * 2009-02-06 2015-04-08 Thomson Licensing Methods and apparatus for implicit and semi-implicit intra mode signaling for video encoders and decoders
KR102158700B1 (ko) 2010-05-04 2020-09-22 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
EP2858366B1 (en) * 2010-07-09 2017-02-01 Samsung Electronics Co., Ltd Method for decoding video by using block merging
KR101484281B1 (ko) 2010-07-09 2015-01-21 삼성전자주식회사 블록 병합을 이용한 비디오 부호화 방법 및 그 장치, 블록 병합을 이용한 비디오 복호화 방법 및 그 장치
WO2012039136A1 (ja) 2010-09-24 2012-03-29 パナソニック株式会社 画像符号化方法、画像復号化方法、画像符号化装置、および画像復号化装置
CN107071460B (zh) 2010-12-14 2020-03-06 M&K控股株式会社 用于编码运动画面的设备
JP2014501091A (ja) * 2010-12-17 2014-01-16 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート インター予測方法及びその装置
WO2012081949A2 (ko) * 2010-12-17 2012-06-21 한국전자통신연구원 인터 예측 방법 및 그 장치
JP5781313B2 (ja) 2011-01-12 2015-09-16 株式会社Nttドコモ 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム
WO2012124961A2 (ko) * 2011-03-11 2012-09-20 삼성전자 주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
PL3879834T3 (pl) 2011-05-31 2024-07-29 Jvckenwood Corporation Urządzenie do kodowania ruchomego obrazu wizyjnego, sposób kodowania ruchomego obrazu wizyjnego i program do kodowania ruchomego obrazu wizyjnego, a także urządzenie do dekodowania ruchomego obrazu wizyjnego, sposób dekodowania ruchomego obrazu wizyjnego i program do dekodowania ruchomego obrazu wizyjnego
CN106686378B (zh) * 2011-06-14 2019-10-08 三星电子株式会社 对图像进行解码的方法和设备
US9131239B2 (en) 2011-06-20 2015-09-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
ES2754657T3 (es) 2011-06-27 2020-04-20 Samsung Electronics Co Ltd Codificación y decodificación de información de movimiento
PL3422714T3 (pl) 2011-06-30 2021-05-31 JVC Kenwood Corporation Urządzenie do kodowania obrazu, sposób kodowania obrazu, program do kodowania obrazu, urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu
TWI575945B (zh) * 2011-09-28 2017-03-21 Jvc Kenwood Corp A motion picture decoding apparatus, a motion picture decoding method, and a recording medium
US20140241434A1 (en) * 2011-10-11 2014-08-28 Mediatek Inc Method and apparatus of motion and disparity vector derivation for 3d video coding and hevc
PT3917147T (pt) 2011-10-24 2025-10-16 Gensquare Llc Aparelho de descodificação de imagem
GB2495990A (en) * 2011-10-28 2013-05-01 Canon Kk Motion compensated image coding with omission of coding mode cost calculation for a motion predictor in a set.
KR101830352B1 (ko) 2011-11-09 2018-02-21 에스케이 텔레콤주식회사 스킵모드를 이용한 동영상 부호화 및 복호화 방법 및 장치
KR101960761B1 (ko) 2011-11-24 2019-03-22 에스케이텔레콤 주식회사 모션 벡터의 예측 부호화/복호화 방법 및 장치
WO2013077659A1 (ko) * 2011-11-24 2013-05-30 에스케이텔레콤 주식회사 모션 벡터의 예측 부호화/복호화 방법 및 장치
HUE070741T2 (hu) * 2011-12-16 2025-07-28 Jvckenwood Corp Dinamikus képkódoló eszköz, dinamikus képkódoló eljárás, dinamikus képkódoló program, dinamikus képdekódoló eszköz, dinamikus képdekódoló eljárás és dinamikus képdekódoló program
US20130170553A1 (en) * 2012-01-04 2013-07-04 Qualcomm Incorporated Coding motion vector difference
US9729873B2 (en) * 2012-01-24 2017-08-08 Qualcomm Incorporated Video coding using parallel motion estimation
TWI578759B (zh) * 2012-04-12 2017-04-11 Jvc Kenwood Corp Dynamic image decoding device, dynamic image decoding method and dynamic image decoding program
MY172302A (en) * 2012-04-15 2019-11-21 Samsung Electronics Co Ltd Method and apparatus for determining reference images for inter-prediction
EP2842334B1 (en) 2012-07-05 2019-02-20 MediaTek Inc. Method and apparatus of unified disparity vector derivation for 3d video coding
KR101891192B1 (ko) * 2012-10-19 2018-08-23 연세대학교 산학협력단 영상 부호화 방법 및 장치
JP5942818B2 (ja) 2012-11-28 2016-06-29 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
US9357214B2 (en) 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
EP2988509A4 (en) 2013-04-17 2016-10-05 Samsung Electronics Co Ltd MULTI-VIEW VIDEO CODING METHOD WITH ANTICIPATED SYNTHESIS FORECAST AND DEVICE THEREFOR AND MULTIPLE VIDEO VIDEO CODING METHOD AND DEVICE THEREFOR
WO2015053597A1 (ko) * 2013-10-12 2015-04-16 삼성전자 주식회사 멀티 레이어 비디오 부호화 방법 및 장치, 멀티 레이어 비디오 복호화 방법 및 장치
KR101567964B1 (ko) 2014-01-03 2015-11-11 에스케이텔레콤 주식회사 움직임벡터 부호화/복호화 방법 및 그 장치
ES3009551T3 (en) * 2014-10-31 2025-03-27 Samsung Electronics Co Ltd Video decoding method using high-precision motion vector encoding
US11375223B2 (en) * 2019-09-20 2022-06-28 Tencent America LLC Method for signaling output layer set with sub-picture

Also Published As

Publication number Publication date
JP2025186349A (ja) 2025-12-23
US20170339425A1 (en) 2017-11-23
KR20240112972A (ko) 2024-07-19
JP2017537529A (ja) 2017-12-14
MX2020010193A (es) 2021-01-15
EP3200461B1 (en) 2025-01-01
EP4418654A2 (en) 2024-08-21
CN112188207A (zh) 2021-01-05
MX375837B (es) 2025-03-06
WO2016068685A1 (ko) 2016-05-06
US12495157B2 (en) 2025-12-09
KR20170078672A (ko) 2017-07-07
CN107113440B (zh) 2020-10-13
CN112188204B (zh) 2024-04-05
PL3200461T3 (pl) 2025-03-17
US20210218984A1 (en) 2021-07-15
JP7744462B2 (ja) 2025-09-25
HUE070106T2 (hu) 2025-05-28
JP2023052916A (ja) 2023-04-12
US11228782B2 (en) 2022-01-18
CN112188206B (zh) 2023-10-20
US10992951B2 (en) 2021-04-27
JP7475505B2 (ja) 2024-04-26
CN112188205A (zh) 2021-01-05
US20230043548A1 (en) 2023-02-09
US11523130B2 (en) 2022-12-06
US20200169747A1 (en) 2020-05-28
US20210243466A1 (en) 2021-08-05
EP3200461A4 (en) 2017-10-18
US11509926B2 (en) 2022-11-22
EP4418654A3 (en) 2024-11-06
JP7223733B2 (ja) 2023-02-16
US20240323430A1 (en) 2024-09-26
JP2024096895A (ja) 2024-07-17
US20200169746A1 (en) 2020-05-28
JP2021007246A (ja) 2021-01-21
CN112188204A (zh) 2021-01-05
EP3200461C0 (en) 2025-01-01
US10602179B2 (en) 2020-03-24
CN112188205B (zh) 2024-04-05
CN112188206A (zh) 2021-01-05
MX2017005651A (es) 2017-06-29
US12052435B2 (en) 2024-07-30
CN112188207B (zh) 2023-10-20
KR20220162877A (ko) 2022-12-08
EP3200461A1 (en) 2017-08-02
CN107113440A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
ES3009551T3 (en) Video decoding method using high-precision motion vector encoding
ES2728091T3 (es) Aparato de decodificación por entropía de segmentos de corte
KR102060663B1 (ko) 비디오 부호화 또는 비디오 복호화를 위한 움직임 벡터 예측 방법 및 장치
ES2746824T3 (es) Codificación y decodificación de video compartiendo parámetros SAO según un componente de color
CA2883363C (en) Method and apparatus for motion vector determination in video encoding or decoding
ES2748604T3 (es) Procedimiento de intra predicción de vídeo
BR122020014034B1 (pt) Método de intrapredição de um vídeo
BR122020014040B1 (pt) Aparelho para decodificar um vídeo
BR122020014050B1 (pt) Método de intrapredição de um vídeo
BR122020014045B1 (pt) Aparelho para decodificar um vídeo