ES2919660T3 - Aparato de codificación/decodificación por entropía CABAC de baja complejidad - Google Patents

Aparato de codificación/decodificación por entropía CABAC de baja complejidad Download PDF

Info

Publication number
ES2919660T3
ES2919660T3 ES21168185T ES21168185T ES2919660T3 ES 2919660 T3 ES2919660 T3 ES 2919660T3 ES 21168185 T ES21168185 T ES 21168185T ES 21168185 T ES21168185 T ES 21168185T ES 2919660 T3 ES2919660 T3 ES 2919660T3
Authority
ES
Spain
Prior art keywords
unit
context
entropy
encoding
block
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
ES21168185T
Other languages
English (en)
Inventor
Woong-Il Choi
Woo-Jin Han
Tammy 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
Priority claimed from KR1020100102506A external-priority patent/KR101754353B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Application granted granted Critical
Publication of ES2919660T3 publication Critical patent/ES2919660T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/124Quantisation
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

La codificación de entropía y la decodificación de entropía de los datos de la imagen se realizan respectivamente mediante el cual el modelado de contexto se realiza en una unidad de contexto de bloques de datos de imagen basados en un modelo de contexto de un bloque codificado previamente o decodificado. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Aparato de codificación/decodificación por entropía CABAC de baja complejidad
Campo técnico
Las realizaciones ejemplares se refieren a un aparato de codificación y decodificación por entropía y, más particularmente, a aparato para codificar y decodificar por entropía un elemento de sintaxis predeterminado generado por medio de la codificación de una imagen.
Técnica anterior
Un códec, tal como Moving Pictures Experts Group (MPEG) -4 H.264/MPEG-4 Advanced Video Coding (AVC), codifica/decodifica por entropía un elemento de sintaxis mediante el uso de codificación de longitud variable adaptativa (CAVLC) basada en el contexto codificación aritmética binaria adaptativa basada en (CABAC). Sin embargo, en el procedimiento de codificación/decodificación por entropía adaptativa basado en el contexto descrito anteriormente, el acceso a la memoria debe realizarse con frecuencia.
Un estándar de compresión de vídeo mediante el uso de CABAC se presenta en D. Marpe et al: "Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard", IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, n. 7, Julio 2003, páginas 620 a 636, ISSN:
Divulgación
Solución técnica
Las realizaciones ejemplares incluyen un aparato para llevar a cabo eficientemente la codificación/decodificación de entropía.
Efectos ventajosos
Como se describió anteriormente, los datos de imagen se pueden codificar o descodificar por entropía a alta velocidad mediante el uso de hardware de menor complejidad, mientras que la tasa de compresión de una imagen durante la codificación no se reduce en gran medida.
Breve Descripción de los Dibujos
Los aspectos anteriores y otros se harán más evidentes al describir en detalle ejemplos de realizaciones de los mismos con referencia a los dibujos adjuntos en los que:
La FIG. 1 es un diagrama de bloques de un aparato que codifica una imagen, de acuerdo con una realización ejemplar.
La FIG. 2 es un diagrama de bloques de un aparato que decodifica una imagen, de acuerdo con una realización ejemplar.
La FIG. 3 es una ilustración ejemplar de las unidades de codificación jerárquica;
La FIG. 4 es un diagrama de bloques de un codificador de imágenes basado en una unidad de codificación, de acuerdo con una realización ejemplar.
La FIG. 5 es un diagrama de bloques de un descodificador de imágenes basado en una unidad de codificación, de acuerdo con una realización ejemplar.
La FIG. 6 ilustra una unidad de codificación máxima, una subunidad de codificación y una unidad de predicción. La FIG. 7 ilustra una unidad de codificación y una unidad de transformación;
Las FIGS. 8A a 8D ilustran formas de división de una unidad de codificación, una unidad de predicción y una unidad de transformación;
La FIG. 9 es un diagrama de bloques de un aparato de codificación por entropía, de acuerdo con una realización ejemplar.
La FIG. 10 ilustra un procedimiento ejemplar para compartir un modelo de contexto;
La FIG. 11 ilustra un procedimiento ejemplar para compartir un modelo de contexto;
La FIG. 12 es un diagrama de bloques de un aparato de codificación por entropía, de acuerdo con una realización ejemplar.
La FIG. 13 es un diagrama de flujo ejemplar que ilustra un procedimiento de codificación de entropía; y
La FIG. 14 es un diagrama de bloques de un aparato de decodificación por entropía;
Mejor modo
De acuerdo con la presente invención se proporciona un aparato como se establece en las reivindicaciones adjuntas. Otras características de la invención se harán evidentes a partir de la descripción que sigue.
Modo de la invención
En adelante en la presente memoria, se describirán más detalladamente una o más realizaciones ejemplares con referencia a los dibujos adjuntos. Expresiones tales como "al menos uno de", cuando preceden a una lista de elementos, modifican la lista completa de elementos y no modifican los elementos individuales de la lista. En la presente memoria descriptiva, una "imagen" puede indicar una imagen fija para un video o una imagen en movimiento, es decir, el video en sí.
La FIG. 1 es un diagrama de bloques de un aparato 100 que codifica una imagen, de acuerdo con una realización ejemplar.
Con referencia a la FIG. 1, el aparato 100 que codifica una imagen incluye un divisor 110 de unidad de codificación máxima, un determinante 120 de profundidad de codificación, un codificador 130 de datos de imagen y un codificador 140 de información de codificación.
El divisor 110 de unidad de codificación máxima puede dividir una trama o segmento actual basándose en una unidad de codificación máxima, que es una unidad de codificación que tiene un tamaño más grande entre las unidades de codificación de la trama o segmento actual. Es decir, el divisor 110 de unidad de codificación máxima puede dividir la trama o segmento actual en al menos una unidad de codificación máxima.
De acuerdo con un ejemplo de realización, se puede representar una unidad de codificación mediante el uso de una unidad de codificación máxima y una profundidad. Como se describió anteriormente, la unidad de codificación máxima indica una unidad de codificación que tiene el tamaño más grande de entre las unidades de codificación de la trama actual, y la profundidad indica un grado de disminución jerárquica de la unidad de codificación. A medida que aumenta la profundidad, una unidad de codificación puede disminuir desde una unidad de codificación máxima a una unidad de codificación mínima, en el que una profundidad de la unidad de codificación máxima es una profundidad mínima y una profundidad de la unidad de codificación mínima es una profundidad máxima. Dado que el tamaño de una unidad de codificación disminuye, desde el tamaño de una unidad de codificación máxima, a medida que aumenta la profundidad de la unidad de codificación, una subunidad de codificación de una k-ésima profundidad puede incluir una pluralidad de subunidades de codificación de una (k+n) ésima profundidad (k y n son números enteros iguales o mayores que 1). De acuerdo con un aumento del tamaño de una trama a codificar, la codificación de una imagen en una unidad de codificación más grande puede producir una relación de compresión de imagen más alta. Sin embargo, si se usa una unidad de codificación grande para codificar exclusivamente una imagen, es posible que la imagen no se codifique de manera eficiente debido a las características de la imagen que cambian continuamente.
Por ejemplo, cuando se codifica un área suave tal como el mar o el cielo, cuanto mayor sea el tamaño de una unidad de codificación, más puede aumentar la relación de compresión de la imagen. Sin embargo, cuando se codifica un área compleja, como personas o edificios, cuanto menor sea el tamaño de una unidad de codificación, más puede aumentar la relación de compresión de la imagen.
Por consiguiente, de acuerdo con una realización ejemplar, se establecen una unidad de codificación de imagen máxima y una profundidad máxima para cada trama o segmento. Por consiguiente, la unidad de codificación máxima y la profundidad máxima para una primera trama o segmento pueden ser diferentes de la unidad de codificación máxima y la profundidad máxima para una segunda trama o segmento. Dado que una profundidad máxima indica el número máximo de veces que puede disminuir una unidad de codificación, el tamaño de cada unidad de codificación mínima incluida en una unidad de codificación de imagen máxima puede establecerse de forma variable según una profundidad máxima. La profundidad máxima puede determinarse individualmente para cada trama o segmento o para cada unidad de codificación máxima.
El determinante de profundidad de codificación 120 determina una forma de división de la unidad de codificación máxima. La forma de la división se puede determinar basándose en el cálculo de los costes de distorsión de la tasa (RD). La forma de división determinada de la unidad de codificación máxima se proporciona al codificador 140 de información de codificación, y los datos de imagen según las unidades de codificación máxima se proporcionan al codificador 130 de datos de imagen.
Una unidad de codificación máxima se puede dividir en subunidades de codificación, en las que las subunidades de codificación tienen diferentes tamaños de acuerdo con diferentes profundidades, y las subunidades de codificación que tienen los diferentes tamaños, que están incluidas en la unidad de codificación máxima, se pueden predecir o transformar en frecuencia basado en unidades de procesamiento que tienen diferentes tamaños. En otras palabras, el aparato 100 puede realizar una pluralidad de operaciones de procesamiento para la codificación de imágenes basadas en unidades de procesamiento que tienen varios tamaños y formas. Para codificar datos de imagen, se realizan operaciones de procesamiento, tales como al menos una de predicción, transformación y codificación por entropía, en las que se pueden usar unidades de procesamiento que tienen el mismo tamaño o tamaños diferentes para cada operación.
Por ejemplo, el aparato 100 para codificar una imagen puede seleccionar una unidad de procesamiento que sea diferente de una unidad de codificación para predecir la unidad de codificación.
Cuando el tamaño de una unidad de codificación es 2N*2N (en la que N es un número entero positivo), las unidades de procesamiento para la predicción pueden ser 2N*2N, 2N*N, N*2N y N*N. En otras palabras, la predicción de movimiento se puede llevar a cabo basándose en una unidad de procesamiento que tenga una forma en la que al menos una de las alturas y anchuras de una unidad de codificación esté igualmente dividida por dos. En adelante, una unidad de procesamiento, que es la base de la predicción, se denomina unidad de predicción.
Un modo de predicción puede ser al menos uno de entre un modo intra, un modo inter y un modo de salto, y se puede llevar a cabo un modo de predicción específico solo para una unidad de predicción que tiene un tamaño o forma específicos. Por ejemplo, el modo intra se puede llevar a cabo solo para unidades de predicción que tienen los tamaños de 2Nx2N y NxN, cuya forma es un cuadrado. Además, el modo de salto se puede llevar a cabo solo para una unidad de predicción que tenga el tamaño de 2Nx2N. Si existe una pluralidad de unidades de predicción en una unidad de codificación, el modo de predicción con el menor número de errores de codificación puede seleccionarse después de realizar la predicción para cada unidad de predicción.
Alternativamente, el aparato 100 para codificar una imagen puede llevar a cabo una transformación en datos de imagen basándose en una unidad de procesamiento que tiene un tamaño diferente al tamaño de una unidad de codificación. Para la transformación en la unidad de codificación, la transformación se puede realizar basándose en una unidad de procesamiento que tiene un tamaño igual o menor que el de la unidad de codificación. En lo sucesivo, una unidad de procesamiento, que es la base de la transformación, se denomina unidad de transformación. La transformada puede ser transformada de coseno discreta (DCT) o transformada de Karhunen Loeve (KLT) o cualquier otra transformada espacial de punto fijo. El determinante de profundidad de codificación 120 puede determinar subunidades de codificación incluidas en una unidad de codificación máxima mediante el uso de la optimización RD basada en un multiplicador de Lagrange. En otras palabras, el determinante 120 de profundidad de codificación puede determinar formas de una pluralidad de subunidades de codificación divididas de la unidad de codificación máxima, en el que la pluralidad de subunidades de codificación tiene tamaños de acuerdo con sus profundidades. El codificador 130 de datos de imagen genera una corriente de bits codificando la unidad de codificación máxima en base a las formas de división determinadas por el determinante 120 de profundidad de codificación.
El codificador de información de codificación 140 codifica información sobre un modo de codificación de la unidad de codificación máxima determinada por el determinante de profundidad de codificación 120. En otras palabras, el codificador 140 de información de codificación genera una corriente de bits codificando información sobre una forma de división de la unidad de codificación máxima, información sobre la profundidad máxima e información sobre un modo de codificación de una unidad de subcodificación para cada profundidad. La información sobre el modo de codificación de la subunidad de codificación puede incluir información sobre una unidad de predicción de la subunidad de codificación, información sobre un modo de predicción para cada unidad de predicción e información sobre una unidad de transformación de la subunidad de codificación.
La información sobre la forma de división de la unidad de codificación máxima puede ser información, por ejemplo, información de bandera, que indica si cada unidad de codificación está dividida. Por ejemplo, cuando la unidad de codificación máxima se divide y codifica, se codifica la información que indica si se divide la unidad de codificación máxima. Además, cuando se divide y codifica una subunidad de codificación dividida de la unidad de codificación máxima, se codifica la información que indica si la subunidad de codificación está dividida.
Dado que existen subunidades de codificación que tienen diferentes tamaños para cada unidad de codificación máxima, y se debe determinar información sobre un modo de codificación para cada subunidad de codificación, la información que indica al menos un modo de codificación se puede determinar para una unidad de codificación máxima.
El aparato 100 puede generar subunidades de codificación al dividir por igual la altura y el ancho de una unidad de codificación máxima por dos, es decir, por medio de la división en cuartos de la unidad de codificación máxima, de acuerdo con un aumento de profundidad. Es decir, cuando el tamaño de una unidad de codificación de una k-ésima profundidad es 2Nx2N, el tamaño de una unidad de codificación de una (k+1)-ésima profundidad es NxN.
Por consiguiente, el aparato 100 para codificar una imagen puede determinar una forma de división óptima para cada unidad de codificación máxima en base a los tamaños de las unidades de codificación máximas y una profundidad máxima, en consideración de las características de la imagen. Ajustando dinámicamente el tamaño de una unidad de codificación máxima, teniendo en cuenta las características de la imagen, y codificando una imagen mediante la división de una unidad de codificación máxima en subunidades de codificación de diferentes profundidades, las imágenes que tienen varias resoluciones pueden codificarse más eficazmente.
La FIG. 2 es un diagrama de bloques de un aparato 200 que decodifica una imagen, de acuerdo con una realización ejemplar.
Con referencia a la FIG. 2, el aparato 200 que decodifica una imagen incluye una unidad de adquisición de datos de imagen 210, un extractor de información de codificación 220 y un decodificador de datos de imagen 230.
La unidad de adquisición de datos de imagen 210 adquiere una corriente de bits recibido por el aparato 200, analiza la corriente de bits recibido para adquirir datos de imagen de acuerdo con las unidades de codificación máximas y envía los datos de imagen al descodificador de datos de imagen 230. La unidad 210 de adquisición de datos de imagen puede extraer información sobre una unidad de codificación máxima de una trama o segmento actual de un encabezado de la trama o segmento actual. En otras palabras, la unidad 210 de adquisición de datos de imagen divide la corriente de bits en la unidad de codificación máxima de modo que el decodificador 230 de datos de imagen pueda decodificar los datos de imagen según las unidades de codificación máximas.
El extractor de información de codificación 220 extrae información que indica una unidad de codificación máxima, información que indica una profundidad máxima, información que indica una forma de división de la unidad de codificación máxima e información que indica un modo de codificación de unidades de codificación secundaria del encabezado de la actual trama al analizar la corriente de bits recibida. La información que indica una forma de división y la información que indica un modo de codificación se proporcionan al decodificador 230 de datos de imagen.
La información que indica una forma de división de la unidad de codificación máxima puede incluir información que indica que las unidades de subcodificación que tienen diferentes tamaños de acuerdo con las profundidades están incluidas en la unidad de codificación máxima, y puede ser información (por ejemplo, información de bandera) que indica si cada unidad de codificación está dividida.
La información que indica un modo de codificación puede incluir información sobre una unidad de predicción de acuerdo con subunidades de codificación, información sobre un modo de predicción e información sobre una unidad de transformación.
El decodificador de datos de imagen 230 restaura la trama actual decodificando los datos de imagen de cada unidad de codificación máxima en base a la información extraída por el extractor de información de codificación 220.
El decodificador de datos de imagen 230 puede decodificar subunidades de codificación incluidas en una unidad de codificación máxima basándose en la información sobre una forma de división de la unidad de codificación máxima. Un proceso de decodificación puede incluir un proceso de predicción que incluye predicción interna, compensación de movimiento y un proceso de transformación inversa.
El decodificador de datos de imagen 230 puede llevar a cabo predicciones internas o predicciones internas basadas en información sobre una unidad de predicción e información sobre un modo de predicción para predecir una unidad de predicción. El descodificador 230 de datos de imagen también puede realizar una transformación inversa para cada subunidad de codificación basándose en información sobre una unidad de transformación de una subunidad de codificación.
La Figura 3 es una ilustración ejemplar de las unidades de codificación jerárquica.
Con referencia a la Figura 3, las unidades de codificación jerárquica pueden incluir unidades de codificación cuya anchuraxaltura es de 64x64, 32x32, 16x16, 8x8 y 4x4. Además de estas unidades de codificación con formas cuadradas perfectas, también pueden existir unidades de codificación cuya anchuraxaltura sea de 64x32, 32x64, 32x16, 16x32, 16x8, 8x16, 8x4 y 4x8.
Con referencia a la FIG. 3, para los datos de imagen 310 cuya resolución es 1920x1080, el tamaño de una unidad de codificación máxima se establece en 64x64 y la profundidad máxima se establece en 2.
Para los datos 320 de imagen cuya resolución es 1920x1080, el tamaño de una unidad de codificación máxima se establece en 64x64 y la profundidad máxima se establece en 3. Para los datos 330 de imagen cuya resolución es 352x288, el tamaño de una unidad de codificación máxima se establece en 16x16 y la profundidad máxima se establece en 2.
Cuando la resolución es alta o la cantidad de datos es grande, el tamaño máximo de una unidad de codificación puede ser relativamente grande para aumentar la relación de compresión y reflejar exactamente las características de la imagen. Por consiguiente, para los datos de imagen 310 y 320 que tienen una resolución más alta que los datos de imagen 330, se puede seleccionar 64x64 como el tamaño de una unidad de codificación máxima.
Una profundidad máxima indica el número total de capas en las unidades de codificación jerárquica. Dado que la profundidad máxima de los datos 310 de imagen es 2, una unidad de codificación 315 de los datos 310 de imagen puede incluir una unidad de codificación máxima cuyo tamaño de eje más largo es 64 y subunidades de codificación cuyos tamaños de eje más largos son 32 y 16, según un aumento de una profundidad.
Por otro lado, dado que la profundidad máxima de los datos 330 de imagen es 1, una unidad 335 de codificación de los datos 330 de imagen puede incluir una unidad de codificación máxima cuyo tamaño de eje más largo es 16 y unidades de codificación cuyos tamaños de eje más largos son 8 y 4, de acuerdo con un aumento de profundidad. Sin embargo, dado que la profundidad máxima de los datos 320 de imagen es 3, una unidad 325 de codificación de los datos 320 de imagen puede incluir una unidad de codificación máxima cuyo tamaño de eje más largo es 64 y subunidades de codificación cuyos tamaños de eje más largos son 32, 16, 8 y 4 de acuerdo con un aumento de profundidad. Dado que una imagen se codifica en base a una subunidad de codificación más pequeña a medida que aumenta la profundidad, una realización ejemplar es adecuada para codificar una imagen que incluye escenas más minuciosas.
La FIG. 4 es un diagrama de bloques de un codificador de imágenes 400 basado en una unidad de codificación, de acuerdo con una realización ejemplar.
Una unidad 410 de predicción interna lleva a cabo una predicción interna en unidades de predicción del modo intra en una trama 405 actual. Un estimador 420 de movimiento y un compensador 425 de movimiento realizan la interpredicción y la compensación de movimiento en unidades de predicción del intermodo usando la trama 405 actual y una trama 495 de referencia.
Los valores residuales se generan en base a las unidades de predicción emitidas por la unidad 410 de predicción interna, el estimador 420 de movimiento y el compensador 425 de movimiento, y los valores residuales generados se emiten como coeficientes de transformación cuantificados pasando a través de un transformador 430 y un cuantificador 440.
Los coeficientes de transformación cuantificados se restauran a valores residuales por medio del paso por un cuantificador 460 inverso y un transformador 470 inverso, y los valores residuales restaurados se procesan posteriormente por medio del paso a través de una unidad 480 de desbloqueo y una unidad 490 de filtrado de bucle y se emiten como trama 495 de referencia. Los coeficientes de transformación cuantificados pueden emitirse como una corriente 455 de bits pasando a través de un codificador 450 de entropía.
A fin de llevar a cabo la codificación basada en un procedimiento de codificación de acuerdo con una realización ejemplar, los componentes del codificador 400 de imagen, es decir, la unidad 410 de predicción interna, el estimador 420 de movimiento, el compensador 425 de movimiento, el transformador 430, el cuantificador 440, el codificador 450 de entropía, el cuantificador 460 inverso, el transformador 470 inverso, la unidad 480 de desbloqueo y la unidad 490 de filtrado de bucle, llevan a cabo procedimientos de codificación de imágenes basados en una unidad de codificación máxima, una unidad de subcodificación de acuerdo con profundidades, una unidad de predicción y una unidad de transformación.
La FIG. 5 es un diagrama de bloques de un descodificador 500 de imágenes basado en una unidad de codificación, de acuerdo con realización ejemplar.
Con referencia a la FIG. 5, una corriente 505 de bits pasa a través de un analizador 510, que analiza la corriente de bits para extraer los datos de imagen codificados que se van a decodificar y la información de codificación necesaria para la decodificación. Los datos de imagen codificados se emiten como datos cuantificados inversos pasando a través de un decodificador 520 de entropía y un cuantificador 530 inverso, y se restauran a valores residuales pasando a través de un transformador 540 inverso. Los valores residuales se restauran de acuerdo con las unidades de codificación al añadirlos a un resultado de predicción interna de una unidad 550 de predicción interna o un resultado de compensación de movimiento de un compensador 560 de movimiento. Las unidades de codificación restauradas se utilizan para la predicción de las siguientes unidades de codificación o una siguiente trama 585, 595 pasando a través de una unidad 570 de desbloqueo y una unidad 580 de filtrado de bucle.
A fin de llevar a cabo la decodificación basada en un procedimiento de decodificación de acuerdo con una realización ejemplar, los componentes del decodificador 500 de imágenes, es decir, el analizador 510 sintáctico, el decodificador 520 de entropía, el cuantificador 530 inverso, el transformador 540 inverso, la unidad 550 de predicción interna, el compensador 560 de movimiento, la unidad 570 de desbloqueo y la unidad 580 de filtrado de bucle, llevan a cabo procedimientos de decodificación de imágenes basados en una unidad de codificación máxima, una subunidad de codificación de acuerdo con las profundidades, una unidad de predicción y una unidad de transformación.
En particular, la unidad 550 de predicción interna y el compensador 560 de movimiento determinan una unidad de predicción y un modo de predicción en una subunidad de codificación al considerar una unidad de codificación máxima y una profundidad, y el transformador 540 inverso lleva a cabo una transformación inversa al considerar el tamaño de un unidad de transformación.
La FIG. 6 es una ilustración ejemplar de una unidad de codificación máxima, una subunidad de codificación y una unidad de predicción;
El aparato 100 para codificar una imagen ilustrado en la FIG. 1 y el aparato 200 para decodificar una imagen ilustrado en la f Ig .2 utilizan unidades de codificación jerárquica para llevar a cabo la codificación y decodificación teniendo en cuenta las características de la imagen. Una unidad de codificación máxima y una profundidad máxima pueden establecerse de forma adaptativa según las características de la imagen o ajustarse según la entrada de un usuario.
En la FIG. 6, una estructura 600 de unidad de codificación jerárquica tiene una unidad 610 de codificación máxima cuya altura y anchura son 64 y la profundidad máxima es 4. Una profundidad aumenta a lo largo de un eje vertical de la estructura 600 de unidad de codificación jerárquica y, a medida que aumenta la profundidad, las alturas y anchuras de las subunidades 620 a 650 de codificación disminuyen. Las unidades de predicción de la unidad 610 de codificación máxima y las subunidades 620 a 650 de codificación se muestran a lo largo de un eje horizontal de la estructura 600 de unidad de codificación jerárquica.
La unidad 610 de codificación máxima tiene una profundidad de 0 y el tamaño de una unidad de codificación, es decir, altura y ancho, de 64x64. Una profundidad aumenta a lo largo del eje vertical, y existe una subunidad 620 de codificación cuyo tamaño es 32x32 y la profundidad es 1, una subunidad 630 de codificación cuyo tamaño es 16*16 y la profundidad es 2, una subunidad 640 de codificación cuyo tamaño es 8x8 y la profundidad es 3, y una subunidad 650 de codificación cuyo tamaño es 4x4 y la profundidad es 4. La subunidad 650 de codificación cuyo tamaño es 4x4 y la profundidad es 4 es una unidad de codificación mínima, y la unidad de codificación mínima se puede dividir en unidades de predicción, cada una de las cuales es menor que la unidad de codificación mínima.
Con referencia a la FIG. 6, se muestran ejemplos de una unidad de predicción a lo largo del eje horizontal de acuerdo con cada profundidad. Es decir, una unidad de predicción de la unidad 610 de codificación máxima cuya profundidad es 0 puede ser una unidad de predicción cuyo tamaño es igual a la unidad 610 de codificación, es decir, 64x64, o una unidad 612 de predicción cuyo tamaño es 64x32, una unidad 614 de predicción cuya el tamaño es 32x64, o una unidad 616 de predicción cuyo tamaño es 32x32, que tiene un tamaño menor que la unidad 610 de codificación cuyo tamaño es 64x64.
Una unidad de predicción de la unidad 620 de codificación cuya profundidad es 1 y el tamaño es 32x32 puede ser una unidad de predicción cuyo tamaño es igual a la unidad 620 de codificación, es decir, 32x32, o una unidad 622 de predicción cuyo tamaño es 32x16, una unidad 624 de predicción cuyo tamaño es 16*32, o una unidad 626 de predicción cuyo tamaño es 16*16, que tiene un tamaño menor que la unidad 620 de codificación cuyo tamaño es 32x32.
Una unidad de predicción de la unidad 630 de codificación cuya profundidad es 2 y el tamaño es 16x16 puede ser una unidad de predicción cuyo tamaño es igual a la unidad 630 de codificación, es decir, 16x16, o una unidad 632 de predicción cuyo tamaño es 16x8, una unidad 634 de predicción cuya el tamaño es 8*16, o una unidad 636 de predicción cuyo tamaño es 8x8, que tiene un tamaño menor que la unidad 630 de codificación cuyo tamaño es 16*16.
Una unidad de predicción de la unidad 640 de codificación cuya profundidad es 3 y el tamaño es 8x8 puede ser una unidad de predicción cuyo tamaño es igual a la unidad 640 de codificación, es decir, 8x8, o una unidad 642 de predicción cuyo tamaño es 8x4, una unidad 644 de predicción cuyo tamaño es 4*8, o una unidad 646 de predicción cuyo tamaño es 4*4, que tiene un tamaño menor que la unidad 640 de codificación cuyo tamaño es 8x8.
Finalmente, la unidad 650 de codificación cuya profundidad es 4 y el tamaño es 4x4 es una unidad de codificación mínima y una unidad de codificación de profundidad máxima, y una unidad de predicción de la unidad 650 de codificación puede ser una unidad 650 de predicción cuyo tamaño es 4x4, una unidad 652 de predicción que tiene un tamaño de 4x2, una unidad 654 de predicción que tiene un tamaño de 2x4, o una unidad 656 de predicción que tiene un tamaño de 2x2.
La FIG. 7 es una ilustración ejemplar de una unidad de codificación y una unidad de transformación;
El aparato 100 para codificar una imagen ilustrado en la FIG. 1 y el aparato 200 para decodificar una imagen ilustrado en la FIG. 2 lleva a cabo la codificación y decodificación con una unidad de codificación máxima o con subunidades de codificación, que son iguales o menores que la unidad de codificación máxima, divididas a partir de la unidad de codificación máxima. En el proceso de codificación y decodificación, el tamaño de una unidad de transformación para la transformación se selecciona para que no sea mayor que el de una unidad de codificación correspondiente. Por ejemplo, en referencia a la FIG. 7, cuando una unidad 710 de codificación actual tiene el tamaño de 64x64, la transformación se puede llevar a cabo mediante el uso de una unidad 720 de transformación que tiene el tamaño de 32x32.
Las Figuras 8A a 8D son ilustraciones ejemplares de formas de división de una unidad de codificación, una unidad de predicción y una unidad de transformación;
Las Figuras 8A y 8B son ilustraciones ejemplares de una unidad de codificación y una unidad de predicción, respectivamente.
La FIG. 8A muestra una forma de división seleccionada por el aparato 100 para codificar una imagen ilustrada en la FIG. 1, a fin de codificar una unidad de codificación máxima 810. El aparato 100 divide la unidad 810 de codificación máxima en varias formas, lleva a cabo la codificación y selecciona una forma de división óptima al comparar los resultados de codificación de varias formas de división entre sí en base a los costes de RD. Cuando es óptimo que la unidad 810 de codificación máxima esté codificada, la unidad 810 de codificación máxima se puede codificar sin dividir la unidad 810 de codificación máxima, como se ilustra en las FIGS. 8A a 8D.
Con referencia a la FIG. 8A, la unidad 810 de codificación máxima cuya profundidad es 0 se codifica por medio de la división de la unidad 810 de codificación máxima en subunidades de codificación cuyas profundidades son iguales o superiores a 1. Es decir, la unidad 810 de codificación máxima se divide en 4 subunidades de codificación cuyas profundidades son 1, y todas o algunas de las subunidades de codificación cuyas profundidades son 1 se dividen en subunidades de codificación cuyas profundidades son 2.
Una subunidad de codificación ubicada en un lado superior derecho y una subunidad de codificación ubicada en un lado inferior izquierdo entre las subunidades de codificación cuyas profundidades son 1 se dividen en subunidades de codificación cuyas profundidades son iguales o superiores a 2. Algunas de las subunidades de codificación cuyas profundidades son iguales o superiores a 2 pueden dividirse en subunidades de codificación cuyas profundidades son iguales o superiores a 3.
La FIG. 8B muestra una forma de división de una unidad de predicción para la unidad 810 de codificación máxima. Con referencia a la FIG. 8B, una unidad 860 de predicción para la unidad 810 de codificación máxima se puede dividir en una configuración que sea diferente de la división de la unidad 810 de codificación máxima. En otras palabras, una unidad de predicción para cada una de las subunidades de codificación puede ser más pequeña que la correspondiente subunidad de codificación.
Por ejemplo, una unidad de predicción para una subunidad 854 de codificación ubicada en un lado inferior derecho entre las subunidades de codificación cuyas profundidades son 1 puede ser menor que la subunidad 854 de codificación. Además, las unidades de predicción para algunas subunidades 814, 816, 850 y 852 de codificación de entre las subunidades 814, 816, 818, 828, 850 y 852 de codificación cuyas profundidades son 2 pueden ser menores que las subunidades 814, 816,850 y 852 de codificación, respectivamente.
Además, las unidades de predicción para las subunidades 822, 832 y 848 de codificación cuyas profundidades son 3 pueden ser más pequeñas que las subunidades 822, 832 y 848 de codificación, respectivamente. Las unidades de predicción pueden tener una forma en la que las respectivas subunidades de codificación se dividan igualmente por dos en una dirección de altura o anchura o tener una forma en la que las respectivas subunidades de codificación se dividan igualmente por cuatro en las direcciones de altura y anchura.
Las Figuras 8C y 8D son ilustraciones ejemplares de una unidad de predicción y una unidad de transformación, respectivamente.
La Figura 8C muestra una forma de división de una unidad de predicción para la unidad 810 de codificación máxima. La FIG. 8B, y la FIG. 8D muestra una forma de división de una unidad de predicción para la unidad 810 de codificación máxima.
Con referencia a la FIG. 8D, una forma de división de una unidad 870 de transformación se puede establecer de manera diferente a la unidad 860 de predicción.
Por ejemplo, aunque una unidad de predicción para la unidad 854 de codificación cuya profundidad es 1 se selecciona con una forma en la que la altura de la unidad 854 de codificación se divide igualmente por dos en la FIG.
8C, se puede seleccionar una unidad de transformación con el mismo tamaño que la unidad de codificación 854 de la FIG. 8D. Es decir, el tamaño y la forma de la unidad de codificación 854 en la FIG. 8A es el mismo que el tamaño y la forma de la unidad de transformación 854 de la FIG. 8D, pero el tamaño y la forma de la unidad de predicción 854 en las FIGS. 8B y 8C es diferente al tamaño y la forma de la unidad de codificación 854 en la FIG. 8A y la unidad de transformación de la FIG. 8D. Asimismo, aunque las unidades de predicción para las unidades 814 y 850 de codificación cuyas profundidades son 2 se seleccionan con una forma en la que la altura de cada una de las unidades 814 y 850 de codificación se divide igualmente por dos, se puede seleccionar una unidad de transformación con el mismo tamaño que el tamaño original de cada una de las unidades 814 y 850 de codificación. Se puede seleccionar una unidad de transformación con un tamaño más pequeño que una unidad de predicción. Por ejemplo, cuando se selecciona una unidad de predicción para la unidad 852 de codificación cuya profundidad es 2 con una forma en la que el ancho de la unidad 852 de codificación se divide igualmente por dos, se puede seleccionar una unidad de transformación con una forma en la que la unidad 852 de codificación es igualmente dividido por cuatro en las direcciones de alto y ancho, que tiene un tamaño más pequeño que la forma de la unidad de predicción.
La FIG. 9 es un diagrama de bloques de un aparato 900 de codificación por entropía, de acuerdo con una realización ejemplar.
Con referencia a la FIG. 9, el aparato 900 de codificación por entropía incluye una unidad 910 de modelado de contexto y un codificador 920 de entropía. El aparato 900 de codificación por entropía puede corresponder al codificador 450 de entropía ilustrado en la FIG. 4.
La unidad 910 de modelado de contexto establece un modelo de contexto para datos de codificación por entropía sobre un bloque actual. Los datos sobre el bloque actual incluyen varios elementos de sintaxis con respecto a la información que indica un procedimiento de codificación del bloque actual y los datos residuales. La información que indica el procedimiento de codificación del bloque actual puede ser información de encabezado para describir el procedimiento de codificación del bloque actual, como información que indica un tipo de bloque, información que indica un modo de predicción, o similar, y los datos residuales pueden ser información que indica los coeficientes de transformación generados al realizar la transformación en valores residuales, como un patrón de bloque codificado (CBP), un mapa de significancia, información de nivel o similares.
La codificación por entropía y la decodificación por entropía se llevan a cabo por separado en un elemento de sintaxis. En detalle, se calcula un índice de contexto mediante el uso de una función de contexto diferente para cada elemento de sintaxis, y la codificación y decodificación por entropía se lleva a cabo mediante el uso de la codificación aritmética binaria adaptativa basada en el contexto (CABAC). Por tanto, en lo sucesivo, la codificación por entropía o decodificación por entropía del bloque actual se refiere a la codificación por entropía o decodificación por entropía con respecto a un elemento de sintaxis predeterminado del bloque actual, y el elemento de sintaxis predeterminado se refiere a uno de entre varios elementos de sintaxis.
Un códec de la técnica relacionada, tal como Moving Pictures Experts Group (MPEG) -4 H.264/MPEG-4 Advanced Video Coding (AVC), lleva a cabo el modelado de contexto al hacer referencia a un elemento de sintaxis de un bloque previamente codificado que es adyacente al bloque actual, para codificar por entropía el elemento de sintaxis predeterminado del bloque actual. El modelado de contexto se refiere al establecimiento de un modelo de contexto utilizado para codificar por entropía el bloque actual, y una operación de establecimiento del modelo de contexto incluye una operación de cálculo del índice de contexto.
Sin embargo, cuando el bloque actual está codificado por entropía al hacer la referencia al elemento de sintaxis del bloque codificado previamente, se produce un acceso frecuente a una memoria. Además, dado que, para hacer referencia al elemento de sintaxis del bloque codificado previamente, el elemento de sintaxis debe almacenarse continuamente en la memoria y, por lo tanto, se necesita una memoria de gran capacidad para la codificación por entropía. La unidad 910 de modelado de contexto no realiza repetidamente el modelado de contexto cuando todos los bloques están codificados por entropía, sino que establece una unidad de contexto que es una unidad para realizar el modelado de contexto, agrupando un número predeterminado de bloques, y realiza el modelado de contexto en la unidad de contexto solo una vez. Esto se describirá en detalle con referencia a las FIGS. 10 y 11. La FIG. 10 ilustra un procedimiento ejemplar para compartir un modelo de contexto.
Un códec de la técnica relacionada, tal como MPEG-4 H.264/MPEG-4 AVC, se refiere a un bloque previamente codificado que está adyacente al lado izquierdo de un bloque actual y/o un bloque previamente codificado que está adyacente al lado superior del bloque actual, para codificar por entropía el bloque actual. En otras palabras, para codificar por entropía un elemento de sintaxis A de un bloque X1 1010, un elemento de sintaxis A de un bloque A 1020 previamente codificado que es adyacente al lado izquierdo del bloque X1 1010 y/o un elemento de sintaxis A de un bloque B 1030 previamente codificado que es adyacente al lado superior del bloque X1 1010 se sustituye por una función de contexto predeterminada, y se calcula un índice de contexto para codificar por entropía el elemento de sintaxis A del bloque X1 1010 en base a la sustitución. La función de contexto es una función para determinar el índice de contexto y puede determinarse para cada elemento de sintaxis.
Además, en el códec de la técnica relacionada, cuando se completa la codificación por entropía del bloque X1 1010 y un elemento de sintaxis de un bloque X2 1012 está codificado por entropía, el elemento de sintaxis A del bloque previamente codificado X1 1010 adyacente al bloque X2 1012 y un elemento de sintaxis A de un bloque C 1040 se sustituyen por la función de contexto de modo que el índice de contexto se puede calcular en base a la sustitución. Sin embargo, la unidad 910 de modelado de contexto agrupa el bloque X1 1010, el bloque X2 1012, un bloque X3 1014 y un bloque X4 1016 en una unidad 1000 de contexto, y lleva a cabo el modelado de contexto en la única unidad 1000 de contexto. Por ejemplo, cuando se calcula un índice de contexto predeterminado al llevar a cabo el modelado de contexto en el bloque X1 1010 que está inicialmente codificado en la unidad 1000 de contexto, la unidad 910 de modelado de contexto no calcula por separado los índices de contexto de los otros bloques 1012 a 1016 de la unidad 1000 de contexto para llevar a cabo el modelado de contexto. Los índices de contexto de otros bloques 1012 a 1016 en la unidad 1000 de contexto se establecen para que sean iguales, es decir, iguales al índice de contexto del bloque X1 1010.
No es necesario llevar a cabo repetidamente el modelado de contexto para codificar por entropía el bloque X2 1012, y el bloque X2 1012 puede codificarse por entropía por medio del uso del índice de contexto que se utiliza para codificar por entropía el bloque X1 1010. No hay limitación en el establecimiento de la unidad 1000 de contexto, y todos los procedimientos de agrupación de bloques codificados continuamente en un grupo pueden usarse para establecer la unidad 1000 de contexto. La información que indica un procedimiento para establecer la unidad 1000 de contexto puede codificarse junto con el resultado de la codificación por entropía y puede insertarse en datos de imagen. Sin embargo, cuando la unidad 1000 de contexto se establece mediante un codificador y un decodificador utilizando un mismo procedimiento, puede ser innecesario codificar información que indique el procedimiento de establecer la unidad 1000 de contexto.
Dado que el modelado de contexto se lleva a cabo en cuatro bloques en la unidad de contexto 1000, como se ilustra en la FIG. 10, se evita que se produzca un retraso cuando se lleva a cabo el modelado de contexto, y la codificación de entropía se puede llevar a cabo a mayor velocidad. Además, dado que existe una alta probabilidad de que los bloques adyacentes puedan tener características similares, aunque los bloques adyacentes compartan un índice de contexto y estén codificados por entropía, la relación de compresión de la codificación no se reduce.
La FIG. 11 ilustra un procedimiento ejemplar para compartir un modelo de contexto.
Con referencia a la FIG. 11, una unidad 1100 de contexto, que es una unidad para llevar a cabo el modelado de contexto, se puede configurar para que sea la misma que la unidad de codificación máxima descrita anteriormente con referencia a las FIGS. 1 a 8. En otras palabras, para codificar con entropía los bloques 1110 a 1130 ilustrados en la FIG. 11, la unidad de modelado de contexto 910 lleva a cabo el modelado de contexto sólo una vez.
Para codificar por entropía un elemento de sintaxis A de un bloque X1 1110 que se codifica inicialmente en la unidad de codificación máxima, un elemento de sintaxis A de un bloque A 1140 y un elemento de sintaxis A de un bloque B 1150 se sustituyen por un contexto predeterminado función, y se calcula un índice de contexto del bloque X1 1110 en base a la sustitución. Entonces, los índices de contexto para los elementos de sintaxis A de codificación por entropía de los otros bloques 1112 a 1130 se establecen para que sean los mismos que el índice de contexto del bloque X1 1110. El modelado de contexto se realiza en una pluralidad de bloques 1110 a 1130 incluidos en la unidad de codificación máxima solo una vez para evitar la ineficacia debido al modelado de contexto frecuente. Con referencia de vuelta a la FIG. 9, el codificador 920 de entropía codifica por entropía datos sobre el bloque actual en base al modelo de contexto establecido por la unidad 910 de modelado de contexto, para de este modo generar una corriente de bits. El codificador 920 de entropía codifica por entropía el elemento de sintaxis predeterminado del bloque actual.
Cuando el bloque actual es un bloque inicial de una unidad 1000 o 1100 de contexto, la unidad 910 de modelado de contexto establece un modelo de contexto para codificar por entropía el bloque actual en base a al menos un bloque previamente codificado que es adyacente al bloque actual, y el codificador 920 de entropía codifica por entropía el bloque actual de acuerdo con el modelo de contexto establecido.
Cuando el bloque actual no es un bloque 1010 o 1110 inicial de la unidad 1000 o 1100 de contexto, la unidad 910 de modelado de contexto establece un modelo de contexto para codificar por entropía el bloque actual para que sea el mismo que el modelo de contexto utilizado para codificar por entropía el bloque 1010 o 1110 inicial, y el codificador 920 de entropía codifica por entropía el bloque actual de acuerdo con el modelo de contexto establecido. La codificación por entropía es una codificación por entropía adaptativa basada en el contexto, y la codificación por entropía adaptativa basada en el contexto incluye CABAC.
Con respecto a CABAC, el codificador 920 de entropía realiza una codificación aritmética basada en información sobre un símbolo más probable correspondiente al índice de contexto calculado por la unidad 910 de modelado de contexto y en información sobre una probabilidad de ocurrencia del símbolo más probable. Cuando el índice de contexto se establece en la unidad 1000 o 1100 de contexto, se determinan el símbolo más probable correspondiente al índice de contexto y la probabilidad de ocurrencia del símbolo más probable. El codificador 920 de entropía realiza una codificación aritmética en todos los bloques de la unidad 1000 o 1100 de contexto basándose en el símbolo más probable determinado y la probabilidad de ocurrencia determinada del símbolo más probable.
Cuando se completa la codificación por entropía del bloque actual, el codificador 920 de entropía puede actualizar al menos uno del símbolo más probable y la probabilidad de aparición del símbolo más probable. Si el símbolo más probable se ha cambiado de acuerdo con el resultado de la codificación por entropía del bloque actual, el codificador 920 de entropía cambia información sobre el símbolo más probable correspondiente al índice de contexto establecido por la unidad 910 de modelado de contexto. Además, el codificador 920 de entropía actualiza la probabilidad de aparición del símbolo más probable correspondiente al índice de contexto establecido por la unidad 910 de modelado de contexto de acuerdo con el resultado de la codificación por entropía del bloque actual.
La actualización se puede llevar a cabo siempre que un bloque esté codificado por entropía o en cada período de actualización predeterminado. Cuando se realiza la actualización en cada período de actualización predeterminado, el codificador 920 de entropía puede realizar la actualización basándose en el resultado de la codificación por entropía de un bloque predeterminado de la unidad 1000 o 1100 de contexto. En el caso de la unidad de contexto 1000 de la FIG. 10, el codificador 920 de entropía puede codificar por entropía el bloque 1010 inicial de la unidad 1000 de contexto y luego puede llevar a cabo una actualización basada en el resultado de la codificación por entropía, o el codificador 920 de entropía puede codificar por entropía el último bloque 1016 de la unidad 1000 de contexto y luego puede llevar a cabo una actualización basada en el resultado de la codificación por entropía.
La FIG. 12 es un diagrama de bloques de un aparato 1200 de decodificación por entropía, de acuerdo con una realización de la presente invención.
Con referencia a la FIG. 12, el aparato 1200 de decodificación por entropía de acuerdo con una realización ejemplar incluye una unidad 1210 de modelado de contexto y un decodificador 1220 de entropía. El aparato 1200 de decodificación por entropía puede corresponder al decodificador 520 de entropía ilustrado en la FIG. 5. El aparato de decodificación de entropía 1200 de la FIG. 12 es un aparato para invertir la codificación por entropía del aparato 900 de codificación por entropía descrito anteriormente con referencia a las FIGS. 9 a 11.
La unidad 1210 de modelado de contexto establece un modelo de contexto para decodificar por entropía una corriente de bits con respecto a un bloque actual. El corriente de bits con respecto al bloque actual es una corriente de bits generada mediante la codificación por entropía de varios elementos de sintaxis que incluyen información que indica un procedimiento de codificación del bloque actual y los datos residuales.
El modelado de contexto para la decodificación por entropía es una operación correspondiente al modelado de contexto para la codificación por entropía. Así, cuando el bloque actual es un bloque 1010 o 1110 inicialmente decodificado por entropía en la unidad 1000 o 1100 de contexto, la unidad 1210 de modelado de contexto establece un modelo de contexto para decodificar por entropía el bloque actual basado en al menos un bloque previamente decodificado que es adyacente al bloque actual. Además, cuando el bloque actual no es un bloque 1010 o 1110 inicialmente codificado por entropía en la unidad 1000 o 1100 de contexto, la unidad 1210 de modelado de contexto establece un modelo de contexto para que sea el mismo que el modelo de contexto del bloque 1010 o 1110 inicialmente decodificado por entropía de la unidad 1000 o 1100 de contexto. El modelo de contexto puede ser un índice de contexto, como se describió anteriormente. No hay limitación para el procedimiento de establecer una unidad de contexto. Sin embargo, la unidad 1100 de contexto se puede configurar para que sea la misma que la unidad de codificación máxima, como se describió anteriormente con referencia a la FIG. 11.
El decodificador 1220 de entropía decodifica por entropía el bloque actual de acuerdo con el modelo de contexto establecido por la unidad 1210 de modelado de contexto. El decodificador 1220 de entropía realiza una decodificación por entropía adaptativa basada en el contexto en el bloque actual de acuerdo con el índice de contexto calculado por la unidad 1210 de modelado de contexto. La decodificación por entropía adaptativa basada en el contexto incluye la decodificación aritmética binaria adaptativa basada en el contexto.
Cuando el bloque actual es un bloque inicial de la unidad 1000 o 1100 de contexto, la unidad 1210 de modelado de contexto establece un modelo de contexto para decodificar por entropía el bloque actual basado en al menos un bloque previamente decodificado que es adyacente al bloque actual, y el decodificador 1220 de entropía decodifica por entropía el bloque actual de acuerdo con el modelo de contexto establecido.
Cuando el bloque actual no es un bloque 1010 o 1110 inicial de la unidad 1000 o 1100 de contexto, la unidad 1210 de modelado de contexto establece un modelo de contexto para decodificar por entropía el bloque actual para que sea el mismo que el modelo de contexto utilizado para decodificar por entropía el bloque 1010 o 1110 inicial, y el decodificador 1220 de entropía decodifica por entropía el bloque actual de acuerdo con el modelo de contexto establecido.
En decodificación aritmética binaria adaptativa basada en contexto, el decodificador 1220 de entropía lleva a cabo una decodificación aritmética basada en información que indica un símbolo más probable correspondiente al índice de contexto calculado por la unidad 1210 de modelado de contexto e información que indica una probabilidad de ocurrencia del símbolo más probable. Cuando el índice de contexto se establece como la unidad 1000 o 1100 de contexto, se determinan el símbolo más probable correspondiente al índice de contexto y la probabilidad de ocurrencia del símbolo más probable.
El decodificador 1220 de entropía lleva a cabo la decodificación por entropía en todos los bloques de la unidad 1000 o 1100 de contexto en base al símbolo más probable determinado y la probabilidad de aparición determinada del símbolo más probable.
Cuando se completa la decodificación por entropía del bloque actual, el decodificador 1220 de entropía puede actualizar al menos uno del símbolo más probable y la probabilidad de aparición del símbolo más probable. Si el símbolo más probable se ha cambiado de acuerdo con el resultado de la decodificación por entropía del bloque actual, el decodificador 1220 de entropía cambia la información que indica el símbolo más probable correspondiente al índice de contexto establecido por la unidad 1210 de modelado de contexto. Además, el decodificador 1220 de entropía actualiza la probabilidad de aparición del símbolo más probable correspondiente al índice de contexto establecido por la unidad 1210 de modelado de contexto de acuerdo con el resultado de la decodificación por entropía del bloque actual. La actualización se realiza de la misma manera que el codificador 920 de entropía. En otras palabras, la actualización puede realizarse siempre que se realice la decodificación por entropía o en cada período de actualización predeterminado.
La FIG. 13 es un diagrama de flujo que ilustra un procedimiento ejemplar de codificación de entropía.
Con referencia a la FIG. 13, en la operación 1310, el aparato de codificación de entropía 900 de la FIG. 9 determina si se lleva a cabo el modelado de contexto para entropizar el bloque actual. Cuando el bloque actual es un bloque inicialmente codificado por entropía en la unidad 1000 o 1100 de contexto, el modelado de contexto debe realizarse para codificar por entropía un elemento de sintaxis predeterminado del bloque actual, y cuando el bloque actual no es un bloque inicialmente codificado por entropía en la unidad 1000 o 1100 de contexto, no es necesario realizar el modelado de contexto.
Como resultado de la determinación en la operación 1310, si se determina que es necesario llevar a cabo un modelado de contexto para la codificación por entropía del bloque actual, en la operación 1320, el aparato 900 de codificación por entropía establece un modelo de contexto para la codificación por entropía del bloque actual. El aparato 900 de codificación por entropía sustituye un elemento de sintaxis de al menos un bloque previamente codificado que es adyacente al bloque actual por una función de contexto predeterminada, calculando así un índice de contexto.
Como resultado de la determinación en la operación 1310, si se determina que no es necesario llevar a cabo el modelado de contexto para la codificación por entropía del bloque actual, en la operación 1330, el aparato 900 de codificación por entropía establece un modelo de contexto del bloque actual para ser el mismo que un modelo de contexto de un bloque previamente codificado que es adyacente al bloque actual. El índice de contexto para la codificación por entropía del bloque actual puede establecerse para que sea el mismo que el índice de contexto del bloque 1010 o 1110 inicialmente codificado por entropía en la unidad 1000 o 1100 de contexto que incluye el bloque actual.
En la operación 1340, el aparato 900 de codificación por entropía codifica por entropía el bloque actual de acuerdo con el modelo de contexto establecido en la operación 1320 o 1330. La codificación por entropía puede ser CABAC. La FIG. 14 es un diagrama de flujo que ilustra un procedimiento de decodificación por entropía.
Con referencia a la Figura 14, en la operación 1410, el aparato de decodificación de entropía 1200 de la FIG. 12 determina si se lleva a cabo el modelado de contexto para la decodificación entrópica del bloque actual. Cuando el bloque actual es un bloque inicialmente decodificado por entropía en la unidad 1000 o 1100 de contexto, el modelado de contexto debe realizarse para decodificar por entropía un elemento de sintaxis predeterminado del bloque actual, y cuando el bloque actual no es un bloque inicialmente decodificado por entropía en la unidad 1000 o 1100 de contexto, no es necesario realizar el modelado de contexto.
Como resultado de la determinación en la operación 1410, si se determina que es necesario llevar a cabo un modelado de contexto para la decodificación por entropía del bloque actual, en la operación 1420, el aparato de decodificación por entropía 1200 establece un modelo de contexto para la decodificación por entropía del bloque actual. El aparato 900 de decodificación por entropía sustituye un elemento de sintaxis de al menos un bloque previamente decodificado que es adyacente al bloque actual por una función de contexto predeterminada, calculando así un índice de contexto.
Como resultado de la determinación en la operación 1410, si se determina que no es necesario llevar a cabo el modelado de contexto para la decodificación por entropía del bloque actual, en la operación 1430, el aparato 900 de decodificación por entropía establece un modelo de contexto del bloque actual para ser el mismo que un modelo de contexto de un bloque previamente decodificado que es adyacente al bloque actual. El índice de contexto para la decodificación por entropía del bloque actual se puede establecer para que sea el mismo que el índice de contexto del bloque 1010 o 1110 inicialmente decodificado por entropía en la unidad 1000 o 1100 de contexto que incluye el bloque actual.
En la operación 1440, el aparato 1200 de decodificación por entropía decodifica por entropía el bloque actual de acuerdo con el modelo de contexto establecido en la operación 1420 o 1430. La decodificación por entropía puede ser una decodificación aritmética binaria adaptativa basada en el contexto.
Como se describió anteriormente, los datos de imagen se pueden codificar o descodificar por entropía a alta velocidad mediante el uso de un hardware de menor complejidad, mientras que la tasa de compresión de una imagen durante la codificación no se reduce en gran medida.
El aparato para codificar una imagen, el aparato para decodificar una imagen, el aparato de codificación de entropía y el aparato de decodificación de entropía ilustrados en las FIGS. 1, 2, 4, 5, 9 y 12 pueden incluir un bus acoplado a cada unidad del aparato o codificador, al menos un procesador que está conectado al bus, el procesador para ejecutar comandos y una memoria conectada al bus para almacenar los comandos, los mensajes recibidos y los mensajes generados.

Claims (2)

REIVINDICACIONES
1. Un aparato de codificación por entropía de datos de imagen (900) basado en codificación aritmética binaria adaptativa basada en contexto, CABAC, el aparato comprende:
una unidad de modelado de contexto para codificar por entropía un elemento de sintaxis de un primer bloque de datos de imagen y un elemento de sintaxis de un segundo bloque de datos de imagen basado en la información del modelo de contexto anterior que se utiliza para codificar por entropía el elemento de sintaxis de un bloque previamente codificado que es adyacente al primer bloque; y
un codificador de entropía (920) configurado para llevar a cabo la codificación de entropía del elemento sintáctico del primer bloque y del elemento sintáctico del segundo bloque en base a la información del modelo de contexto actual, caracterizada porque la información del modelo de contexto anterior indica un símbolo más probable, correspondiente a un índice de contexto, y una probabilidad de ocurrencia del símbolo más probable aplicada a la codificación aritmética binaria adaptativa basada en el contexto, CABAC, del bloque previamente codificado, y la información del modelo de contexto actual se obtiene por medio de la actualización de la información que indica el símbolo más probable y la probabilidad de ocurrencia del símbolo más probable en la información del modelo de contexto anterior en base a un resultado de la codificación aritmética binaria adaptativa basada en el contexto del bloque previamente codificado.
2. Un aparato de decodificación por entropía de datos de imagen (1200) basado en la codificación aritmética binaria adaptativa basada en el contexto, CABAC, el aparato comprende:
una unidad de modelado de contexto actual para decodificar por entropía un elemento de sintaxis de un primer bloque de datos de imagen y un elemento de sintaxis de un segundo bloque de datos de imagen en base a la información del modelo de contexto anterior que se utiliza para decodificar por entropía el elemento de sintaxis de un bloque previamente decodificado que es adyacente al primer bloque; y
un decodificador de entropía (1220) configurado para llevar a cabo la decodificación de entropía del elemento sintáctico del primer bloque y del elemento sintáctico del segundo bloque en base a la información del modelo de contexto actual, caracterizado porque la información del modelo de contexto anterior indica un símbolo más probable, correspondiente a un índice de contexto, y una probabilidad de ocurrencia del símbolo más probable aplicada a la codificación aritmética binaria adaptativa basada en el contexto, CABAC, del bloque previamente decodificado, y la información del modelo de contexto actual se obtiene por medio de la actualización de la información que indica el símbolo más probable y la probabilidad de ocurrencia del símbolo más probable en la información del modelo de contexto anterior en base a un resultado de la codificación aritmética binaria adaptativa basada en el contexto del bloque previamente decodificado.
ES21168185T 2010-04-05 2011-04-05 Aparato de codificación/decodificación por entropía CABAC de baja complejidad Active ES2919660T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US32082610P 2010-04-05 2010-04-05
KR1020100102506A KR101754353B1 (ko) 2010-04-05 2010-10-20 저복잡도 엔트로피 부호화/복호화 방법 및 장치

Publications (1)

Publication Number Publication Date
ES2919660T3 true ES2919660T3 (es) 2022-07-27

Family

ID=79170391

Family Applications (1)

Application Number Title Priority Date Filing Date
ES21168185T Active ES2919660T3 (es) 2010-04-05 2011-04-05 Aparato de codificación/decodificación por entropía CABAC de baja complejidad

Country Status (6)

Country Link
EP (3) EP4047930A1 (es)
DK (1) DK3886434T3 (es)
ES (1) ES2919660T3 (es)
HU (1) HUE059227T2 (es)
MY (2) MY180189A (es)
PL (1) PL3886434T3 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113382265B (zh) * 2021-05-19 2023-03-24 北京大学深圳研究生院 视频数据熵编码硬件实现方法、设备、介质及程序产品

Also Published As

Publication number Publication date
EP3886434A1 (en) 2021-09-29
EP4047930A1 (en) 2022-08-24
MY173541A (en) 2020-02-03
EP4192011A1 (en) 2023-06-07
PL3886434T3 (pl) 2022-07-11
EP3886434B1 (en) 2022-06-01
DK3886434T3 (da) 2022-06-13
HUE059227T2 (hu) 2022-10-28
MY180189A (en) 2020-11-24

Similar Documents

Publication Publication Date Title
ES2879573T3 (es) Procedimiento de codificación/decodificación por entropía CABAC de baja complejidad
US10027991B2 (en) Low complexity entropy-encoding/decoding method and apparatus
ES2644002T3 (es) Procedimiento y aparato de codificación y decodificación de imágenes usando unidades de transformada grandes
ES2701979T3 (es) Procedimiento para decodificar y aparato para codificar imágenes usando unidad de transformación grande
ES2648061T3 (es) Procedimiento y aparato para codificar/decodificar por entropía un coeficiente de transformación
ES2699749B2 (es) Método y aparato para procesar una señal de vídeo
ES2797423T3 (es) Procedimiento de codificación y decodificación de vídeo usando codificación aritmética con una señalización bidimensional del último coeficiente significativo
ES2778655T3 (es) Procedimiento para decodificar vídeo considerando un orden de omisión y de división
ES2687522T3 (es) Procedimiento de actualización de parámetros para decodificar de entropía del nivel de coeficiente de conversión, y dispositivo de decodificación de entropía del nivel de coeficiente de conversión utilizando el mismo
ES2608157T3 (es) Procedimiento y aparato de determinación de un modelo de contexto para codificación y decodificación por entropía de nivel de coeficiente de transformación
ES2677193A2 (es) Procedimiento y dispositivo para procesar señales de vídeo
CN103918273A (zh) 确定用于变换系数的二进制码字的方法
ES2919660T3 (es) Aparato de codificación/decodificación por entropía CABAC de baja complejidad