ES2716579T3 - Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes - Google Patents

Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes Download PDF

Info

Publication number
ES2716579T3
ES2716579T3 ES13842739T ES13842739T ES2716579T3 ES 2716579 T3 ES2716579 T3 ES 2716579T3 ES 13842739 T ES13842739 T ES 13842739T ES 13842739 T ES13842739 T ES 13842739T ES 2716579 T3 ES2716579 T3 ES 2716579T3
Authority
ES
Spain
Prior art keywords
section
row
decoding
lcu
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES13842739T
Other languages
English (en)
Inventor
Semih Esenlik
Matthias Narroschke
Thomas Wedi
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.)
Velos Media International Ltd
Original Assignee
Velos Media International 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=50338837&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2716579(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Velos Media International Ltd filed Critical Velos Media International Ltd
Application granted granted Critical
Publication of ES2716579T3 publication Critical patent/ES2716579T3/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/189Recording image signals; Reproducing recorded image signals
    • 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/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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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/184Methods 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 bits, e.g. of the compressed video stream

Landscapes

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

Description

DESCRIPCIÓN
Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes
[Campo técnico]
La presente invención se refiere a un procedimiento de codificación de imágenes y a un procedimiento de decodificación de imágenes.
[Técnica anterior]
En la actualidad, la mayoría de los algoritmos de codificación de vídeo estandarizados se basan en la codificación de vídeo híbrida. Los procedimientos de codificación de video híbrida generalmente combinan varios esquemas diferentes de compresión sin pérdida y con pérdida con el fin de conseguir la ganancia de compresión deseada. La codificación de video híbrida es también la base para los estándares de ITU-T (estándares H.26x tales como H.261 y H.263) así como los estándares ISO/IEC (estándares MPEG-X tales como Mp Eg -1, MPEG-2, y MPEG-4).
El estándar de codificación de video más reciente y avanzado es actualmente el estándar conocido como codificación de video avanzada (AVC) H.264/MPEG-4, que es el resultado de los esfuerzos de estandarización realizados por Joint Video Team (JVT), un equipo conjunto de los grupos UIT-T e ISO/IEC MPEG.
Un equipo de colaboración conjunta en codificación de video (JCT-VC) también está examinando actualmente un estándar de codificación de video conocido como codificación de video de alta eficiencia (HEVC) con el propósito de mejorar la eficiencia con respecto a la codificación de video de alta resolución.
El documento "Dependent Slices" by T. Schierl et al., no. JCTVC-10229 from the Meeting in Geneva, April/May 2012 es un documento de contribución a la estandarización (documento de entrada al Equipo Colaborativo Conjunto sobre Codificación de Video (JCT-VC) relacionado con ciertos aspectos de la codificación de video de alta eficiencia, en particular el concepto de secciones (slices) dependientes en el fotograma(frame) del procesamiento en paralelo de frente de onda (WpP, Wavefront parallel processing).
[Lista de citas]
[Literatura de no-patente]
[Literatura de no-patente 1] “Wavefront Parallel Processing for HEVC Encoding and Decoding" by C. Gordon et al., no. JCTVC-F274-v2, from the Meeting in Torino, July 2011
[Literatura de no-patente 2] “Tiles" by A. Fuldseth et al., no. JCTVC-F355-v1, from the Meeting in Torino, July 2011 [Literatura de no-patente 3] JCTVC-J1003_d7, "High efficiency video coding (HEVC) text specification draft 8" of July 2012
[Resumen de la invención]
[Problema técnico]
En dichos procedimientos de codificación de imágenes y procedimientos de decodificación de imágenes, ha habido una demanda de eficiencia mejorada en una situación en la que se utilizan tanto un procesamiento en paralelo como unas secciones (slices) dependientes.
Un objeto de la presente invención es proporcionar un procedimiento de codificación de imágenes y un procedimiento de decodificación de imágenes que permita mejorar la eficiencia de cuando se utilizan tanto procesamiento en paralelo como secciones (slices) dependientes.
[Solución al problema]
Esto se consigue a través de las características de las reivindicaciones independientes.
Estos aspectos generales y específicos pueden implementarse utilizando un sistema, un procedimiento, un circuito integrado, un programa informático, o un medio de grabación legible informáticamente tal como un CD-ROM, o cualquier combinación de sistemas, procedimientos, circuitos integrados, programas informáticos o medios de grabación legibles informáticamente.
[Efectos ventajosos de la invención]
La presente invención puede proporcionar un procedimiento de decodificación de imágenes y un aparato de decodificación de imágenes que hacen posible mejorar la eficiencia de cuando se utilizan tanto procesamiento en paralelo como secciones (slices) dependientes.
[Breve descripción de los dibujos]
La figura 1 es un diagrama de bloques que muestra un aparato de codificación de imágenes según formas de realización.
La figura 2 es un diagrama de bloques que muestra un aparato de decodificación de imágenes según formas de realización.
La figura 3A es un diagrama esquemático para ilustrar WPP de acuerdo con las formas de realización.
La figura 3B es un diagrama esquemático para ilustrar secciones dependientes en WPP de acuerdo con las formas de realización.
La figura 4A es un diagrama esquemático para ilustrar secciones dependientes cuando no se aplica WPP de acuerdo con las formas de realización.
La figura 4B es un diagrama esquemático para ilustrar secciones dependientes cuando se aplica WPP de acuerdo con las formas de realización.
La figura 5 es un diagrama que muestra una cabecera de sección de una sección de entropía o una sección dependiente de acuerdo con las formas de realización.
La figura 6 es un diagrama que muestra una estructura de sección no permitida de ejemplo cuando se aplica WPP de acuerdo con las formas de realización.
La figura 7 es un diagrama que muestra una estructura de sección permitida de ejemplo cuando se aplica WPP de acuerdo con las formas de realización.
La figura 8 es un diagrama esquemático que muestra un proceso de inicialización de CABAC de acuerdo con las formas de realización.
La figura 9 es un diagrama de flujo para un proceso de determinación en un procedimiento de inicialización de CABAC para una sección dependiente que depende de características de una sección anterior según las formas de realización.
La figura 10 es un diagrama que muestra una estructura de sección de ejemplo de acuerdo con las formas de realización.
La figura 11 es un diagrama que muestra una estructura de sección de ejemplo de acuerdo con las formas de realización.
La figura 12 es un diagrama que muestra una sintaxis de ejemplo de una cabecera de sección de acuerdo con una forma de realización 1.
La figura 13 es un diagrama de flujo para un proceso de determinación en un procedimiento de inicialización de CABAC para una sección dependiente de acuerdo con la forma de realización 1.
La figura 14 es un diagrama que muestra una imagen de ejemplo dividida en secciones de acuerdo con una forma de realización 2.
La figura 15 es un diagrama de flujo para un proceso de determinación en un procedimiento de inicialización de CABAC de acuerdo con la forma de realización 2.
La figura 16 es un diagrama que muestra una imagen de ejemplo dividida en secciones de acuerdo con la forma de realización 2.
La figura 17A es un diagrama que muestra una estructura de sección no permitida de ejemplo de acuerdo con la forma de realización 2.
La figura 17B es un diagrama que muestra una estructura de sección permitida de ejemplo de acuerdo con la forma de realización 2.
La figura 17C es un diagrama que muestra una estructura de sección permitida de ejemplo de acuerdo con la forma de realización 2.
La figura 17D es un diagrama que muestra una estructura de sección permitida de ejemplo de acuerdo con la forma de realización 2.
La figura 18 es un diagrama que muestra una imagen de ejemplo dividida en secciones de acuerdo con la forma de realización 2.
La figura 19 es un diagrama que muestra una imagen de ejemplo dividida en secciones de acuerdo con una forma de realización 3.
La figura 20 muestra una configuración general de un sistema proveedor de contenidos para implementar servicios de distribución de contenidos.
La figura 21 muestra una configuración general de un sistema de difusión digital.
La figura 22 muestra un diagrama de bloques que ilustra un ejemplo de una configuración de un televisor.
La figura 23 muestra un diagrama de bloques que ilustra un ejemplo de una configuración de una unidad de reproducción/grabación de información que lee y escribe información de y en un medio de grabación que es un disco óptico.
La figura 24 muestra un ejemplo de una configuración de un medio de grabación que es un disco óptico.
La figura 25A muestra un ejemplo de un teléfono celular.
La figura 25B muestra un diagrama de bloques que ilustra un ejemplo de una configuración de un teléfono celular. La figura 26 ilustra una estructura de datos multiplexados.
La figura 27 muestra esquemáticamente cómo se multiplexa cada secuencia en datos multiplexados.
La figura 28 muestra cómo se almacena una secuencia de video en una secuencia de paquetes PES con más detalle.
La figura 29 muestra una estructura de paquetes TS y paquetes de origen en los datos multiplexados.
La figura 30 ilustra una estructura de datos de una PMT.
La figura 31 muestra una estructura interna de información de datos multiplexados.
La figura 32 muestra una estructura interna de información de atributos de secuencia.
La figura 33 muestra unas etapas para identificar datos de video.
La figura 34 muestra un diagrama de bloques que ilustra un ejemplo de una configuración de un circuito integrado para implementar el procedimiento de codificación de imágenes en movimiento y el procedimiento de decodificación de imágenes en movimiento según cada una de las formas de realización.
La figura 35 muestra una configuración para conmutar entre frecuencias de operación.
La figura 36 muestra unas etapas para identificar datos de video y conmutar entre frecuencias de operación.
La figura 37 muestra un ejemplo de una tabla de consulta en la que los estándares de datos de video están asociados con frecuencias de operación.
La figura 38A es un diagrama que muestra un ejemplo de una configuración para compartir un módulo de una unidad de procesamiento de señales.
La figura 38B es un diagrama que muestra otro ejemplo de una configuración para compartir un módulo de la unidad de procesamiento de señales.
[Descripción de formas de realización]
(Conocimiento subyacente que forma la base de la presente invención)
En relación con el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes descrito en la sección del Estado de la técnica, los inventores han encontrado los siguientes problemas.
En primer lugar, se describen un aparato de codificación de imágenes y un aparato de decodificación de imágenes en HEVC.
Una entrada de señal de vídeo a un aparato de codificación de imágenes incluye imágenes en las que cada una es referenciada como un fotograma (imagen). Cada fotograma incluye píxeles dispuestos en una matriz bidimensional. En todos los estándares mencionados anteriormente, basados en la codificación de video híbrida, cada fotograma individual se divide en bloques, incluyendo píxeles cada uno de ellos. El tamaño de los bloques puede variar, por ejemplo, de acuerdo con el contenido de una imagen. Se puede utilizar un procedimiento de codificación diferente por cada bloque. Por ejemplo, el tamaño más grande de los bloques es de 64x64 píxeles en HEVC. Este tamaño más grande se conoce como una unidad de codificación más grande (Largest Coding Unit, LCU). La LCU se puede dividir recursivamente en cuatro unidades de codificación (CU).
En H.264/MPEG-4 AVC, la codificación se realiza por cada macro-bloque (generalmente un bloque de 16x16 píxeles). Hay un caso en el que el macro-bloque se divide en sub-bloques.
Generalmente, una etapa de codificación en la codificación de vídeo híbrido incluye una predicción espacial y/o temporal. En resumen, se predice cada uno de los bloques actuales a codificar utilizando bloques espacialmente o temporalmente adyacentes al bloque actual, es decir, fotogramas de video codificados. A continuación, se calcula un bloque residual que es una diferencia entre el bloque actual y el resultado de la predicción. A continuación, se transforma el bloque residual de un dominio espacial (píxel) en un dominio de frecuencia. La transformación tiene como objetivo reducir la correlación de un bloque de entrada.
A continuación, se cuantifica un coeficiente de transformación resultante de la transformación. Esta cuantificación es una compresión con pérdida. La compresión sin pérdida se realiza en el coeficiente de cuantificación obtenido de esta manera, utilizando codificación de entropía. Además, se codifica la información secundaria necesaria para reconstruir la señal de video codificada y es suministrada con la señal de video codificada. Esta información es, por ejemplo, información sobre predicción espacial, predicción temporal y/o cuantificación.
La figura 1 es un diagrama de bloques que muestra un aparato de codificación de imágenes 100 de ejemplo que es compatible con H.264/MPEG-4 AVC y/o HEVC.
Un sustractor 105 calcula una señal residual 106 (bloque residual) que es una diferencia entre un bloque actual a codificar de una señal de imagen de entrada 101 y una señal de predicción 181 (bloque de predicción) correspondiente. La señal de predicción 181 es generada por predicción temporal o predicción espacial por una unidad de predicción 180. Un tipo de predicción puede ser cambiado por cada fotograma o por cada bloque. Un bloque y/o un fotograma pronosticados utilizando predicción temporal se denominan inter codificados, y un bloque y/o un fotograma pronosticados utilizando predicción espacial se denominan intra codificados.
Se deriva una señal de predicción utilizada para la predicción temporal utilizando una imagen codificada y decodificada almacenada en una memoria. Se deriva una señal de predicción utilizada para la predicción espacial utilizando valores de píxeles límite de bloques codificados y decodificados adyacentes almacenados en la memoria. Además, el número de direcciones de intra predicción se determina de acuerdo con un tamaño de las unidades de codificación.
La señal residual 106 también se denomina un error de predicción o una predicción residual. Una unidad de transformación 110 transforma la señal residual 106 para generar un coeficiente de transformación 111. Una unidad de cuantificación 120 cuantifica el coeficiente de transformación 111 para generar un coeficiente de cuantificación 121. Una unidad de codificación de entropía 190 realiza codificación de entropía en el coeficiente de cuantificación 121, con el propósito de una reducción adicional en una cantidad de datos a almacenar y transmisión sin pérdidas. Por ejemplo, la codificación de entropía es una codificación de longitud variable. Además, se determina una longitud de una palabra de código en función de la probabilidad de ocurrencia de un código.
Se genera una señal codificada 191 (secuencia de bits codificada) a través del proceso anterior.
El aparato de codificación de imágenes 100 incluye una unidad de decodificación para obtener una señal de imagen decodificada (señal de imagen reconstruida). Específicamente, una unidad de transformación inversa 130 realiza una cuantificación inversa y transformación inversa en el coeficiente de cuantificación 121 para generar una señal residual 131. Esta señal residual 131 es, estrictamente hablando, diferente de la señal residual original 106 debido a un error de cuantificación también denominado ruido de cuantificación.
A continuación, un agregador 140 agrega la señal residual 131 y la señal de predicción 181 para generar una señal de imagen decodificada 141. Según se ha indicado anteriormente, para mantener la compatibilidad entre el aparato de codificación de imágenes y el aparato de decodificación de imágenes, cada uno de los aparatos de codificación de imágenes y de decodificación de imágenes genera la señal de predicción 181 utilizando la señal de imagen codificada y decodificada.
Con la cuantificación, se superpone el ruido de cuantificación sobre la señal de imagen decodificada 141. El ruido superpuesto a menudo difiere para cada uno de los bloques porque la codificación se realiza por cada bloque. Con esto, cuando se realiza una cuantificación especialmente fuerte, los límites de bloque de la señal de imagen decodificada se hacen salientes. Dicho ruido de bloqueo hace que la calidad de la imagen parezca degradada en el reconocimiento visual humano. Para reducir el ruido de bloqueo, un filtro de desbloqueo 150 realiza un procesamiento de filtro de desbloqueo en la señal de imagen decodificada 141.
Por ejemplo, en el procesamiento de filtro de desbloqueo en H.264/MPEG-4 AVC, se selecciona para cada región un procesamiento de filtro adecuado para cada una de las regiones. Por ejemplo, cuando el ruido de bloqueo es grande, se utiliza un filtro de paso bajo (banda estrecha) potente, y cuando el ruido de bloqueo es pequeño, se usa un filtro de paso bajo (banda ancha) suave. La intensidad del filtro de paso bajo se determina de acuerdo con la señal de predicción 181 y la señal residual 131. El procesamiento de filtro de desbloqueo suaviza los bordes de los bloques. Con esto, se mejora la calidad de imagen subjetiva de la señal de imagen decodificada. Se utiliza una imagen en la que se ha realizado el procesamiento de filtro, para una predicción de compensación de movimiento de la siguiente imagen. En consecuencia, este procesamiento de filtro reduce un error de predicción, lo que hace posible mejorar la codificación de manera eficiente.
Un filtro de bucle adaptativo 160 realiza un procesamiento de desplazamiento adaptativo de muestras y/o un procesamiento de filtro de bucle adaptativo en una señal de imagen decodificada 151 después del procesamiento de filtro de desbloqueo, para generar una señal de imagen decodificada 161. Según se ha indicado anteriormente, el procesamiento de filtro de desbloqueo mejora la calidad de imagen subjetiva. Por el contrario, el procesamiento de desplazamiento adaptativo de muestras (Sample Adaptative Offset, SAO) y el procesamiento de filtro de bucle adaptativo (ALF) tienen como objetivo aumentar la fiabilidad por cada píxel (calidad objetiva).
El SAO es un procesamiento para agregar un valor de desplazamiento a un píxel de acuerdo con píxeles adyacentes. El ALF se utiliza para compensar la distorsión de la imagen causada por la compresión. Por ejemplo, el ALF es un filtro de Wiener que tiene un coeficiente de filtro determinado de manera que se minimiza un error cuadrático medio (MSE) entre la señal de imagen decodificada 151 y la señal de imagen de entrada 101. Por ejemplo, se calcula y se transmite un coeficiente de ALF por cada fotograma. Además, el ALF se puede aplicar a un fotograma completo (imagen) o a una región local (bloque). Además, se puede transmitir información secundaria que indica una región en la que se debe realizar el procesamiento de filtro por cada bloque, fotograma o por quadtree.
Para decodificar un bloque inter-codificado, es necesario que una parte de una imagen codificada y luego decodificada sea almacenada en un búfer de fotogramas de referencia 170. El búfer de fotogramas de referencia 170 mantiene la señal de imagen decodificada 161 como una señal de imagen decodificada 171. La unidad de predicción 180 realiza una inter predicción utilizando una predicción de compensación de movimiento. Específicamente, un estimador de movimiento primero busca bloques incluidos en un fotograma de video codificado y decodificado para un bloque más similar a un bloque actual. Este bloque similar se usa como la señal de predicción 181. Un desplazamiento relativo (movimiento) entre el bloque actual y el bloque similar es transmitido como datos de movimiento al aparato de decodificación de imágenes. Estos datos de movimiento son, por ejemplo, vectores de movimiento tridimensionales incluidos en la información secundaria provista con datos de video codificados. En este caso, la expresión "tridimensional" incluye dos dimensiones espaciales y una dimensión temporal.
Obsérvese que para optimizar la precisión de la predicción, se puede usar un vector de movimiento que tenga una resolución de sub-píxeles espacial, tal como una resolución de medio píxel y una resolución de un cuarto de píxel. El vector de movimiento que tiene la resolución de sub-píxel espacial indica una ubicación espacial en un fotograma decodificado en el que no existe un valor de píxel, es decir, una ubicación de un sub-píxel. Por lo tanto, es necesario interpolar espacialmente un valor de píxel para realizar la predicción de compensación de movimiento. Esta interpolación se realiza mediante un filtro de interpolación (incluido en la unidad de predicción 180 que se muestra en la figura 1), por ejemplo.
Tanto en el modo de intra codificación como en el modo de inter codificación, el coeficiente de cuantificación 121 se genera transformando y cuantificando la señal residual 106, que es la diferencia entre la señal de la imagen de entrada 101 y la señal de predicción 181. En general, la unidad de transformación 110 utiliza, para esta transformación, una transformación ortogonal tal como una transformación discreta de coseno (DCT) bidimensional o una versión entera de la misma. Esto reduce eficientemente la correlación de un video natural. Además, un componente de baja frecuencia es generalmente más importante para la calidad de imagen que un componente de alta frecuencia y, por lo tanto, se utilizan más bits para el componente de baja frecuencia que para el componente de alta frecuencia.
La unidad de codificación de entropía 190 transforma una matriz bidimensional del coeficiente de cuantificación 121 en una matriz unidimensional. Generalmente, se usa la denominada exploración en zigzag para esta transformación. En la exploración en zigzag, se explora una matriz bidimensional en un orden predeterminado desde un coeficiente DC en la esquina superior izquierda de la matriz bidimensional hasta un coeficiente AC en la esquina inferior derecha de la misma. La energía normalmente se concentra en coeficientes de la parte superior izquierda de la matriz bidimensional que corresponden a una frecuencia baja y, por lo tanto, cuando se realiza la exploración en zigzag, los últimos valores tienden a ser cero. Con esto, es posible conseguir una codificación eficiente utilizando una codificación Run-length como parte o pre-procesamiento de la codificación de entropía.
En H.264/MPEG-4 AVC y HEVC, se utilizan varios tipos de codificación de entropía. Aunque se realiza codificación de longitud fija en algunos elementos de sintaxis, se realiza codificación de longitud variable en la mayoría de los elementos de sintaxis. En particular, se realiza una codificación de longitud variable adaptativa al contexto en un residual de predicción, y se realizan varios otros tipos de codificación de enteros en otros elementos de sintaxis. Además, también existe un caso en el que se utiliza la codificación aritmética binaria adaptativa al contexto (CABAC).
La codificación de longitud variable permite la compresión sin pérdidas de una secuencia de bits codificada. Sin embargo, las palabras de código son de longitud variable, y por lo tanto es necesario decodificar continuamente las palabras de código. En otras palabras, antes de codificar o decodificar una palabra de código anterior, no se puede codificar ni decodificar una palabra de código siguiente sin reiniciar (inicializar) la codificación de entropía o sin indicar por separado una ubicación de la primera palabra de código (punto de entrada) cuando se realiza la decodificación.
Se codifica una secuencia de bits en una palabra de código por medio de codificación aritmética basada en un modelo de probabilidad predeterminado. El modelo de probabilidad predeterminado se determina en función del contenido de una secuencia de video en el caso de CABAC. Por lo tanto, la codificación aritmética y la CABAC se realizan de manera más eficiente, ya que la longitud de una secuencia de bits a codificar es mayor. Dicho de otro modo, la CABAC aplicada a la secuencia de bits es más eficiente en un bloque más grande. La CABAC es reiniciada al inicio de cada secuencia. Dicho de otra manera, se inicializa el modelo de probabilidad al inicio de cada secuencia de video con un valor determinado o un valor predeterminado.
H.264/MPEG-4, H.264/MPEG-4 AVC, y HEVC incluyen dos capas funcionales, la capa de codificación de video (VCL) y la capa de abstracción de red (Network Abstraction Layer, NAL). La capa de codificación de video proporciona una función de codificación. La NAL encapsula elementos de información en unidades estándar denominadas unidades NAL, dependiendo de un uso como la transmisión a través de un canal o el almacenamiento en un dispositivo de almacenamiento. Los elementos de información son, por ejemplo, señales de error de predicción codificadas e información necesaria para decodificar una señal de video. La información necesaria para decodificar una señal de video es un tipo de predicción, un parámetro de cuantificación, un vector de movimiento, etc.
Cada una de las unidades NAL puede clasificarse en: una unidad NAL VCL que incluye datos de video comprimidos e información relacionada; una unidad no-VCL que encapsula datos adicionales, tal como un conjunto de parámetros relacionados con una secuencia de video completa; e información de mejora complementaria (Supplemental Enhancement Information, SEI) para proporcionar información adicional utilizable para aumentar la precisión de decodificación.
Por ejemplo, la unidad no-VCL incluye un conjunto de parámetros. El conjunto de parámetros se refiere a un conjunto de parámetros relacionados con la codificación y decodificación de una determinada secuencia de video. Ejemplos del conjunto de parámetros incluyen un conjunto de parámetros de secuencia (SPS) que incluye parámetros relacionados con la codificación y decodificación de una secuencia de video completa (secuencia de imágenes).
El conjunto de parámetros de secuencia tiene una estructura de sintaxis que incluye elementos de sintaxis. El conjunto de parámetros de imagen (PPS) a referenciar se especifica mediante pic_parameter_set_id, un elemento de sintaxis incluido en cada cabecera de sección. Además, se especifica un SPS a referenciar mediante seq_parameter_set_id, un elemento de sintaxis incluido en el PPS. Como se ha indicado anteriormente, los elementos de sintaxis incluidos en el SPS son aplicados a toda la secuencia de video codificada.
El PPS es un conjunto de parámetros que define parámetros aplicados a la codificación y decodificación de una imagen incluida en una secuencia de video. El PPS tiene una estructura de sintaxis que incluye elementos de sintaxis. El conjunto de parámetros de imagen (PPS) a referenciar se especifica mediante pic_parameter_set_id, un elemento de sintaxis incluido en cada cabecera de sección. Como se ha indicado anteriormente, los elementos de sintaxis incluidos en el SPS son aplicados a una imagen codificada completa.
Por lo tanto, es más fácil realizar un seguimiento del SPS que del PPS. Esto se debe a que el PPS cambia para cada imagen, mientras que el SPS permanece constante durante toda la secuencia de video que puede durar varios minutos o varias horas.
Un VPS son parámetros en la capa más alta e incluye información relacionada con secuencias de video. La información incluida en el VPS es una tasa de bits, una estructura temporal_layering de las secuencias de video, etc. Además, el VPS incluye información sobre una dependencia entre capas (dependencia entre diferentes secuencias de video). Como resultado, el VPS se puede considerar como información sobre las secuencias de video, y se puede obtener en base al VPS un resumen de cada una de las secuencias de video.
La figura 2 es un diagrama de bloques que muestra un aparato de decodificación de imágenes 200 de ejemplo compatible con H.264/MPEG-4 AVC o el estándar de codificación de video HEVC.
Una señal codificada 201 (secuencia de bits) de entrada al aparato de decodificación de imágenes 200 es transmitida a una unidad de decodificación de entropía 290. La unidad de decodificación de entropía 290 decodifica la señal codificada 201 para obtener un coeficiente de cuantificación y unos elementos de información necesarios para decodificar datos de movimiento y un modo de predicción. Además, la unidad de decodificación de entropía 290 explora inversamente el coeficiente de cuantificación obtenido con el propósito de obtener una matriz bidimensional, para generar un coeficiente de cuantificación 291, y suministra el coeficiente de cuantificación 291 a una unidad de transformación inversa 230.
La unidad de transformación inversa 230 cuantifica y transforma inversamente el coeficiente de cuantificación 291 para generar una señal residual 231. La señal residual 231 corresponde a una diferencia obtenida sustrayendo una señal de predicción a una señal de imagen de entrada que no tiene ruido de cuantificación y error y es suministrada a un aparato de codificación de imágenes.
Una unidad de predicción 280 genera una señal de predicción 281 utilizando predicción temporal o predicción espacial. Normalmente, los elementos de información decodificados incluyen además información tal como un tipo de predicción en el caso de la intra predicción, o información necesaria para la predicción tal como datos de movimiento en el caso de la predicción de compensación de movimiento.
Un agregador 240 agrega la señal residual 231 en un dominio espacial y la señal de predicción 281 generada por la unidad de predicción 280, para generar una señal de imagen decodificada 241. Un filtro de desbloqueo 250 realiza un procesamiento de filtro de desbloqueo en la señal de imagen decodificada 241 para generar una señal de imagen decodificada 251. Un filtro de bucle adaptativo 260 realiza un procesamiento de desplazamiento adaptativo de muestras y un procesamiento de filtro de bucle adaptativo en la señal de imagen decodificada 251, para generar una señal de imagen decodificada 261. La señal de imagen decodificada 261 se suministra como imagen de visualización y se almacena como una señal de imagen decodificada 271 en un búfer de fotogramas de referencia 270. La señal de imagen decodificada 271 se usa para un bloque subsiguiente o una predicción temporal o espacial de una imagen.
En comparación con H.264/MPEG-4 AVC, la HEVC tiene una función de soporte a un procesamiento en paralelo de avance de codificación y decodificación. Al igual que con H.264/MPEG-4 AVC, la HEVC permite la división de un fotograma en secciones. En este caso, cada una de las secciones incluye LCU consecutivas en un orden de exploración. En H.264/MPEG-4 AVC, cada sección es decodificable y no se realiza predicción espacial entre las secciones. Por lo tanto, es posible realizar el procesamiento en paralelo por cada sección.
Sin embargo, la sección (slice) tiene una cabecera considerablemente grande, y no hay dependencia entre las secciones, disminuyendo así la eficiencia de la compresión. Además, cuando se realiza CABAC en un pequeño bloque de datos, disminuye la eficiencia de la codificación CABAC.
En respuesta a esto, se ha propuesto el procesamiento en paralelo de frente de onda (WPP) para permitir un procesamiento en paralelo más eficiente. En el WPP, se utiliza un modelo de probabilidad CABAC para uso en el reinicio de la LCU que se encuentra en primer lugar (LCU principal) en cada una de las filas de LCU (en lo sucesivo, también denominadas simplemente "filas") de una imagen es un modelo de probabilidad posterior al procesamiento de la LCU que se encuentra en segundo lugar en una fila anterior. Esto mantiene una dependencia entre bloques. Por lo tanto, es posible decodificar las filas de LCU en paralelo. Además, el procesamiento de cada fila se retrasa en dos LCU en relación con la fila anterior.
Se señaliza, en una cabecera de sección, información que indica un punto de entrada, una posición en la que se inicia la decodificación de una fila de LCU. Obsérvese que la literatura de no-patente (NPL) 1 describe los detalles del WPP.
Un procedimiento para usar una pieza de mosaico (tile) está disponible como otro enfoque para mejorar el procesamiento en paralelo. Un fotograma (imagen) se divide en piezas de mosaico. Cada una de las piezas de mosaico es rectangular e incluye LCU. Se establecen límites entre las piezas de mosaico para dividir la imagen en matrices. Además, las piezas de mosaico son procesadas en un orden de exploración ráster.
Todas las dependencias se pierden en el límite de cada pieza de mosaico. La codificación de entropía, tal como CABAC, es reiniciada al inicio de la pieza de mosaico. Se debe tener en cuenta que se aplican solo el procesamiento de filtro de desbloqueo y el procesamiento de desplazamiento adaptativo de muestras sobre los límites entre las piezas de mosaico. Por lo tanto, es posible codificar o decodificar las piezas de mosaico en paralelo. Obsérvese que NPL 2 y NPL 3 describen los detalles de las piezas de mosaico.
Además, se ha propuesto el concepto de secciones dependientes y secciones de entropía para hacer que el concepto de secciones sea adecuado para el procesamiento en paralelo en lugar de para la resiliencia a errores, que era el propósito original de las secciones en H.264/MPEG-4 AVC. En otras palabras, en HEVC se utilizan los siguientes tres tipos de secciones: una sección normal, una sección dependiente y una sección de entropía.
La sección normal es una sección ya conocida de H.264/MPEG-4 AVC. La predicción espacial no se puede realizar entre secciones normales. En resumen, la predicción no se puede realizar sobre los límites entre secciones. Para decirlo de otra manera, la sección normal es codificada sin referenciar a otra sección. La CABAC es reiniciada al inicio de cada sección para permitir la decodificación separada de la sección.
La sección normal se utiliza para el inicio de un fotograma. Dicho de otra manera, cada fotograma debe empezar a partir de la sección normal. La sección normal tiene una cabecera que incluye parámetros necesarios para decodificar datos de sección.
La sección de entropía es una sección que permite la predicción espacial entre una sección padre y la sección de entropía, por ejemplo. En este caso, la sección padre es una sección normal que precede inmediatamente a la sección de entropía. La sección padre y la sección de entropía se analizan sintácticamente de forma independiente. Los datos de sección se analizan sintácticamente independientemente de la sección padre y de la sección de entropía excepto los elementos de sintaxis de una cabecera de sección. En otras palabras, la decodificación CABAC de la sección de entropía requiere elementos de sintaxis incluidos en una cabecera de sección de la sección padre. Por ejemplo, los elementos de sintaxis incluyen información de conmutación que indica si los datos de sección incluyen parámetros de filtrado. Cuando los datos de sección incluyen los parámetros de filtrado, una unidad de decodificación CABAC extrae la información de conmutación. De lo contrario, la unidad de decodificación CABAC no asume datos de filtrado. Para decirlo de otra manera, después de analizar sintácticamente una cabecera de sección de la sección normal, la unidad de decodificación CABAC es capaz de procesar la sección padre y la sección de entropía en paralelo.
Sin embargo, la sección padre puede ser, por ejemplo, la sección normal, y es necesaria para reconstruir los valores de píxeles de la sección de entropía. Además, se reinicia la CABAC al inicio de la sección para permitir el análisis independiente de la sección de entropía.
Se puede utilizar una cabecera de sección más corta que la cabecera de sección de la sección normal para la sección de entropía. La cabecera de sección incluye un subconjunto de parámetros de codificación con respecto a la información transmitida dentro de la cabecera de sección de la sección normal. La información no incluida en la cabecera de sección de la sección de entropía es copiada de la cabecera de sección de la sección padre.
La sección dependiente es similar a una sección de entropía para el que no se reinicia la CABAC. El reinicio de la CABAC incluye un proceso de inicialización en el que una tabla de contexto (tabla de probabilidad) es inicializada con un valor predeterminado o por defecto, y un proceso de terminación (proceso de terminación) en la codificación aritmética o decodificación aritmética.
La cabecera de sección de la sección padre es utilizada para analizar sintácticamente y/o decodificar la sección dependiente. Dado que la sección dependiente no se puede analizar sintácticamente sin la sección padre, la sección dependiente no puede ser decodificada cuando no se obtiene la sección padre. La sección padre suele ser una sección que precede a la sección dependiente en el orden de codificación e incluye una cabecera de sección completa. Lo mismo se aplica a una sección padre de la sección de entropía.
En general, se puede considerar que la sección de entropía depende de los parámetros de cabecera de otra sección, y por lo tanto la presente invención se puede aplicar tanto a la sección dependiente como a la sección de entropía.
Según se ha descrito anteriormente, la sección dependiente y la sección de entropía usan la cabecera de sección (la información no incluida en la cabecera de sección de la sección dependiente) de la sección inmediatamente precedente en el orden de codificación de las secciones. Esta regla se aplica recursivamente. Se reconoce que una sección padre de la que depende una sección dependiente objetivo es referenciable. La referencia incluye el uso de la predicción espacial entre secciones, un estado CABAC común, etc. La sección dependiente utiliza una tabla de contexto CABAC generada al final de la sección inmediatamente precedente. De esta manera, la sección dependiente utiliza continuamente la tabla generada sin inicializar una tabla CABAC con un valor predeterminado o por defecto. La NPL 3 describe la sección de entropía y la sección dependiente (ver "dependent_slice_flag" en la página 73, por ejemplo).
En el caso de utilizar el WPP, cuando una sección dependiente empieza al inicio de una fila de LCU y una sección que incluye una LCU que se ubica en la parte superior derecha del principio de la fila de LCU es indicada como referenciable, la sección dependiente utiliza una tabla de contexto CABAC de la LCU.
HEVC presenta varios perfiles. Un perfil incluye la configuración de un aparato de codificación de imágenes y un aparato de decodificación de imágenes adecuado para una aplicación particular. Por ejemplo, un "perfil principal" incluye solo secciones normales y secciones dependientes, pero no secciones de entropía.
Según se ha indicado anteriormente, una sección codificada es encapsulado en una unidad NAL, encapsulada además en, por ejemplo, un protocolo en tiempo real (RTP), y finalmente encapsulada en un paquete de protocolo de Internet (IP). Esta pila de protocolos u otra pila de protocolos permite la transmisión de video codificado en Internet o en una red orientada a paquetes, tal como una red propietaria.
Generalmente, una red incluye al menos un enrutador, y el enrutador incluye hardware dedicado que funciona a velocidad ultra alta. El enrutador recibe paquetes IP, analiza sintácticamente sus cabeceras y reenvía de manera adecuada los paquetes IP a sus respectivos destinos. Se requiere que el enrutador procese la comunicación desde muchas fuentes y, por lo tanto, los paquetes que controlan la lógica deben ser lo más simples posible. El enrutador al menos necesita verificar los campos de dirección de destino incluidos en las cabeceras de IP, para determinar las rutas a través de las cuales se reenvían los paquetes IP. Un enrutador inteligente (compatible con medios) comprueba además los campos dedicados en cabeceras de protocolo de red, tales como las cabeceras IP, cabeceras RTP y cabeceras NALU, para proporcionar un soporte adicional para la calidad de servicio (QoS).
Según se desprende de la descripción anterior de la codificación de vídeo, los diferentes tipos de secciones definidos para el procesamiento en paralelo, tales como la sección dependiente y la sección de entropía difieren en importancia respecto a la degradación de la imagen cuando se pierden datos. La sección dependiente no puede ser analizada sintácticamente ni decodificada sin la sección padre. Esto se debe a que una unidad de codificación de entropía o una unidad de decodificación de entropía no puede ser reiniciada al inicio de la sección dependiente. Por lo tanto, se puede decir que la sección padre es más importante en la reconstrucción de una imagen o video que la sección padre.
En HEVC, la sección dependiente y la sección de entropía tienen una dependencia entre secciones (dependencia dentro de un fotograma) como un aspecto adicional de la dependencia. Esta dependencia no es la única dependencia dentro del fotograma.
Dado que el procesamiento en paralelo de secciones se realiza para cada pieza de mosaico, se determinan unos contextos de una unidad de codificación aritmética y una unidad de decodificación aritmética por medio de la configuración por defecto o secciones codificadas o decodificadas. Sin embargo, una dependencia de una cabecera y una dependencia de la inicialización de la codificación aritmética son diferentes entre sí, y por lo tanto existe la posibilidad de un retardo o una complejidad adicional en contradicción con los propósitos del procesamiento en paralelo y un mecanismo de sección dependiente.
La sección dependiente puede ser usada en conjunción con una herramienta de procesamiento en paralelo, tal como el WPP y piezas de mosaico. Además, se puede generar un frente de onda (sub secuencia) que permite reducir el retardo de transmisión sin causar pérdida de codificación, utilizando la sección dependiente.
La CABAC no es reiniciada para la sección dependiente y, por lo tanto, la sección dependiente se puede usar como un punto de entrada de una sub secuencia CABAC. Además, para indicar un punto de entrada para el análisis independiente, se puede señalizar en una secuencia de bits la información que indica el punto de entrada. En particular, cuando se encapsulan dos o más sub secuencias CABAC en una sección normal o una sección dependiente, se señaliza un punto de entrada utilizando explícitamente el número de bytes para cada sub secuencia. En este caso, la sub secuencia indica una parte de una secuencia que se puede analizar sintácticamente por separado según el punto de entrada. Además, cada sección dependiente requiere una cabecera de una unidad NAL y, por lo tanto, se puede usar la sección dependiente como un "marcador" de un punto de entrada. En resumen, se puede señalizar el punto de entrada correspondiente a dicho marcador.
Es posible usar simultáneamente un procedimiento para señalizar explícitamente un punto de entrada y un procedimiento para marcar un punto de entrada a través de una sección dependiente. En este caso, es necesario identificar un punto de entrada de cada unidad NAL (al inicio de cada cabecera NAL). Obsérvese que se puede utilizar cualquier procedimiento para el procedimiento de identificación. Por ejemplo, se pueden utilizar los dos procedimientos siguientes.
El primer procedimiento es la inserción de un código de inicio de 3 bytes en el inicio de cada cabecera NAL, por ejemplo. El segundo procedimiento es empaquetar cada unidad NAL en un paquete diferente. Además, se puede reducir un tamaño de una cabecera de sección debido a la dependencia de la sección.
Estos procedimientos permiten el análisis CABAC en paralelo de una sección de entropía. Esto se debe a que la CABAC siempre se reinicia al inicio de la sección de entropía. En el procesamiento en paralelo de la CABAC, se puede superar un cuello de botella mediante el análisis de CABAC en paralelo después de un procesamiento de reconstrucción de píxeles consecutivos. Específicamente, con una herramienta de procesamiento en paralelo WPP, se puede conseguir la decodificación de cada fila de LCU por medio de un núcleo de procesamiento. Obsérvese que se pueden asignar diferentes filas de LCU a los respectivos núcleos de procesamiento. Por ejemplo, pueden asignarse dos filas a un núcleo de procesamiento, o puede asignarse una fila a dos núcleos de procesamiento. La figura 3A es un diagrama que muestra una imagen 300 dividida en filas. Cada una de las filas incluye unidades de codificación más grandes (LCU). Una fila 301 (Frente de onda 1) y una fila 302 (Frente de onda 2) son procesadas en paralelo. Según se muestra a través de una flecha de estados de CABAC en la figura 3A, después de la decodificación de las dos primeras LCU en la fila 301, se inicia el procesamiento de la fila 302. Además, se usan los estados de CABAC después de codificar o decodificar las dos primeras LCU de la fila 301 para la inicialización de CABAC de la fila 302. Por lo tanto, se puede iniciar el procesamiento de la fila 302 después de la finalización del procesamiento de las dos primeras LCU de la fila 301. En resumen, existe un retardo de dos LCU entre los dos núcleos de procesamiento.
La figura 3B es un diagrama que muestra un ejemplo de uso de secciones dependientes para el WPP. Una imagen 310 mostrada en la figura 3B incluye las filas 311 a 314. En este caso, la fila 311 (Frente de onda 1), la fila 312 (Frente de onda 2) y la fila 313 (Frente de onda 3) son procesadas utilizando núcleos de procesamiento independientes.
Las secciones dependientes permiten que el WPP sea capaz de reducir el retardo. Las secciones dependientes no tienen una cabecera de sección completa. Además, cuando se conocen los puntos de entrada (los puntos de entrada de las secciones dependientes que son conocidos para la regla anterior), pueden decodificarse las secciones dependientes independientemente de otras secciones. Además, las secciones dependientes permiten el WPP adecuado para aplicaciones de poco retardo sin causar pérdida de codificación.
En un caso normal en el que una sub secuencia (fila de LCU) es encapsulada en una sección, es necesario insertar un punto de entrada claro en una cabecera de sección para realizar la codificación de entropía y la decodificación de entropía en paralelo. Por este motivo, la transmisión de la sección solo puede ser preparada después de que la última sub secuencia de la sección esté completamente codificada. Además, la cabecera de sección es completada solo después de finalizar la codificación de todas las sub secuencias en la sección. En otras palabras, la transmisión del inicio de la sección no puede iniciarse a través de la fragmentación de paquetes en la capa RTP/IP hasta que finalice el procesamiento completo de la sección.
Sin embargo, cuando se usa una sección dependiente, la sección dependiente se puede usar como un marcador de punto de entrada, y por lo tanto no es necesario realizar una notificación usando una señal explícita de un punto de entrada. En consecuencia, es posible dividir una sección normal en muchas secciones dependientes sin pérdida de codificación. Además, pueden transmitirse las secciones dependientes inmediatamente después de que haya finalizado la codificación de la sub secuencia encapsulada (o antes de la codificación en el caso de fragmentación del paquete).
Las secciones dependientes no disminuyen una dependencia de predicción espacial. Además, las secciones dependientes no disminuyen una dependencia de análisis. Esto se debe a que el análisis de una sección dependiente objetivo normalmente requiere los estados de CABAC de una sección anterior.
Cuando la sección dependiente no es permitida, se puede usar cada fila de LCU como una sección. Aunque una configuración de este tipo reduce el retardo de transmisión, se produce simultáneamente una pérdida de codificación significativa según se ha indicado anteriormente.
A continuación se supone un caso en el que un fotograma (imagen) entero es encapsulado en una sección. En este caso, para hacer posible el análisis en paralelo, es necesario señalizar, en una cabecera de sección, un punto de entrada de una sub secuencia (fila de LCU). Esto provoca un retardo de transmisión a nivel de fotograma. Para decirlo de otra manera, es necesario modificar la cabecera después de codificar todo el fotograma. La encapsulación de la imagen completa en una solo sección no empeora el retardo de transmisión. Por ejemplo, puede iniciarse la transmisión de parte de la sección antes de que se complete la codificación por completo. Sin embargo, cuando se utiliza el WPP, es necesario modificar la cabecera de sección más adelante para indicar el punto de entrada. Por lo tanto, es necesario retrasar la transmisión de toda la sección.
Como se ha indicado anteriormente, el uso de la sección dependiente hace que sea posible reducir el retardo. Según se muestra en la figura 3B, la imagen 310 es dividida en la fila 311, una sección normal, y las filas 312, 313 y 314, secciones dependientes. Cuando cada fila es una sección dependiente, es posible retrasar la transmisión de la una fila sin pérdida de codificación. Esto se debe a que la sección dependiente no disminuye la dependencia espacial y no reinicia un motor de CABAC.
La figura 4A y la figura 4B es cada una un diagrama que muestra otro ejemplo de inicialización de CABAC. La figura 4A muestra la inicialización de CABAC cuando no se usa el WPP. El WPP y las piezas de mosaico no se usan. Se permite el uso de las secciones normales y las secciones dependientes conjuntamente.
Una sección dependiente (3) copia la cabecera de una sección normal (2). En resumen, la sección normal (2) es una sección padre de la sección dependiente (3). La sección dependiente (3) utiliza una tabla de contexto generada al final de la sección normal (2). La sección dependiente (3) no depende de una sección normal (1) sino de la sección normal (2). En una palabra, no existe predicción espacial entre la sección normal (1) y la sección dependiente (3). La figura 4B es un diagrama que muestra la inicialización de CABAC cuando se usa el WPP. Se permite el uso de las secciones normales, las secciones dependientes y el WPP conjuntamente.
Una sección dependiente (3) copia la cabecera de una sección normal (2). Se espera que la sección dependiente (3) use una tabla de contexto generada al final de la LCU ubicada en segundo lugar en la sección normal (1). Sin embargo, dado que la sección (2) es una sección normal, se indica que no se puede referenciar a la LCU ubicada en segundo lugar en la sección (1). En resumen, no se referencia a la sección (1), porque la sección (1) no es una sección inmediatamente precedente de una sección dependiente en orden de codificación.
Sin embargo, se utiliza la sección (2) como una sección de referencia para la sección (3) y una sección (4). En otras palabras, cuando se inicia la decodificación de la sección (3), es necesario inicializar los estados de CABAC a un valor predeterminado (indicado por una flecha discontinua en la figura 4B). La sección dependiente (4) usa estados de CABAC (flecha continua) después de la segunda LCU superior derecha que cumple con las condiciones WPP mencionadas anteriormente.
La figura 5 es un diagrama que muestra una sintaxis de ejemplo de una cabecera de sección compatible con un modelo de referencia HEVC actual (HM8.0). Una cabecera de sección 320 incluye un elemento de sintaxis dependent_slice_flag que indica si una sección objetivo es una sección dependiente o una sección normal.
Según se desprende de una fila 321 en la figura 5, cuando dependent_slice_flag es igual a 0, la cabecera tiene información de cabecera de sección. En resumen, la sección tiene una cabecera completa. De lo contrario, la cabecera no tiene información de cabecera de sección. Para decirlo de otra manera, según se ha indicado anteriormente, la sección dependiente y la sección de entropía no tienen una cabecera de sección completa, y se refieren a la cabecera de una sección normal anterior.
Posteriormente se señalizan los puntos de entrada para admitir el procesamiento en paralelo. Incluso cuando no se reinicia la unidad de codificación de entropía o la unidad de decodificación de entropía, es posible realizar de forma independiente la decodificación en paralelo de parte de una secuencia de video (sub secuencia) entre los puntos de entrada, utilizando los puntos de entrada. Según se ha indicado anteriormente, los puntos de entrada son marcados para la sección dependiente, la sección normal y la sección de entropía.
En HEVC, hay disponibles varias herramientas de procesamiento en paralelo. Según se ha mencionado anteriormente, las herramientas incluyen el WPP, la sección dependiente, la sección de entropía y la pieza de mosaico. Sin embargo, dado que estas herramientas no son compatibles entre sí, hay un límite para el uso combinado de las herramientas. El uso de la pieza de mosaico y la sección conjuntamente está permitido generalmente.
Sin embargo, hay una restricción de que en un perfil principal, una sección debe subdividirse en un número entero de piezas de mosaico mayor que o igual a 1, y una pieza de mosaico debe subdividirse en un número entero de secciones mayor que o igual a 1. Esta restricción se aplica normalmente a un perfil específico (o a un nivel específico de un perfil). El propósito de la restricción es reducir la complejidad de la implementación hardware. Cuando entropy_coding_sync_enabled_flag de un PPS es igual a 1 (es decir, se usa el WPP), y el bloque de codificación ubicado en primer lugar en una sección no es el bloque de codificación ubicado en primer lugar en el bloque de árbol de codificación ubicado en primer lugar en una fila de bloques de árbol de codificación en una pieza de mosaico, una condición bajo la cual una secuencia de bits cumple con los estándares es que el último bloque de codificación de la sección pertenezca a la misma fila de los bloques de árbol de codificación que el bloque de codificación ubicado en primer lugar en la sección. Un árbol de codificación indica una estructura de una LCU y una subdivisión recursiva adicional de cada una de las LCU en cuatro bloques. Dicho de otra manera, cuando se puede usar el WPP, y la sección no empieza al inicio de una fila de LCU objetivo, la sección debe terminar en o antes del final de la fila de LCU objetivo. n Pl 3 describe detalles con respecto no solo a medios de procesamiento en paralelo sino también a la sintaxis de HEVC.
A continuación se describe esta restricción con referencia a la figura 6. Una imagen 330 mostrada en la figura 6 incluye las secciones 331, 332 y 333, secciones normales. Las secciones 331 y 332 están incluidas en una fila de LCU. La sección 333 es una sección no permitida, porque la sección 333 se extiende sobre las filas de LCU (tres filas en este ejemplo). La sección 333 tiene que terminar al final de la primera fila de LCU de acuerdo con la restricción anterior.
La figura 7 es un diagrama que muestra una imagen 340 que tiene una estructura de sección permitida cuando se usa el WPP. La imagen 340 incluye las secciones 341, 342 y 343, secciones normales, y una sección 344, una sección dependiente. Las secciones 341, 342 y 343 están incluidas en la primera fila de LCU. La sección 344 incluye dos filas subsiguientes.
La inicialización de CABAC de la sección 344 depende de las otras secciones 341, 342 y/o 343, porque la sección 344 es la sección dependiente. Cuando cualquiera de las secciones 342 y 343 es una sección normal según se muestra en la figura 7, la sección 344 es inicializada con los estados de CABAC por defecto. De lo contrario, se utiliza una tabla WPP. En otras palabras, se utilizan los estados de CABAC para la inicialización después de que se haya procesado la LCU ubicada en segundo lugar en una fila de LCU sobre una fila objetivo.
En este ejemplo, según se describe en la figura 4B y se indica en la descripción relacionada de la inicialización de CABAC, la inicialización de CABAC de la sección dependiente 344 se realiza utilizando estados predeterminados de CABAC por defecto.
Por lo tanto, la inicialización de CABAC se basa en secciones anteriores. Por lo tanto, el procesamiento, especialmente el análisis, de una sección objetivo depende de otras secciones. Específicamente, se determina si se inicializa un contexto CABAC con un valor por defecto o un valor WPP dependiendo de un tipo de las secciones anteriores de la sección objetivo. De esta manera, se verifica si se pueden usar o no las secciones anteriores, y se determina un procedimiento de inicialización a aplicar a la sección objetivo. En resumen, se requiere un procesamiento que tiene un orden bastante complicado. A continuación se describe dicho procesamiento.
Una primera sección 341 tiene al menos dos LCU y, por lo tanto, puede referenciarse a los estados de CABAC después de codificar o decodificar los dos primeros lCu .
Cuando se pierde una sección 342 o una sección 343, la sección 344 no se puede decodificar con precisión. Esto se debe a que no se puede realizar la inicialización de CABAC debido a un tipo desconocido de la sección 342 o de la sección 343. En otras palabras, debido a que no se puede realizar la inicialización de CABAC en la sección 344 incluso cuando está ausente solo la información sobre las dos secciones anteriores y la sección 344 ha sido obtenida correctamente, se descartan datos de la sección 344 obtenida correctamente. Por lo tanto, es necesario realizar la ocultación de errores en la sección 344. Por esta razón, existe la posibilidad de que la degradación de la imagen se deba a la distorsión provocada por una ocultación de errores incompleta.
En este caso, en una cabecera de sección, la mayoría de los elementos de sintaxis (principalmente son conmutación de control, tal como una operación de filtrado específica) deben determinarse para todas las secciones incluidas en un fotograma. Además, aunque algunos de los elementos de sintaxis pueden ser cambiados en base a sección, se mantienen todos los parámetros de control determinados para un fotograma completo en la mayoría de los procesos realizados por un aparato de codificación de imágenes. Por lo tanto, se puede utilizar el siguiente procedimiento como un procedimiento de ocultación de errores. Este procedimiento solo requiere información que indique si una sección perdida es una sección dependiente o una sección normal.
Cuando los paquetes no llegan en orden, aumenta el retardo de decodificación. En otras palabras, cuando se espera la reordenación de paquetes, existe la posibilidad de aumentar el retardo de decodificación. Esto contradice el hecho de proporcionar un retardo ultra bajo utilizando una sección dependiente, el objetivo fundamental del WPP.
La figura 8 es un diagrama que muestra otro ejemplo del proceso de inicialización de CABAC. En la figura 8, se asume la estructura de las secciones mostrada en la figura 7. Una imagen 350 mostrada en la figura 8 incluye una sección 351 y una sección 354. La sección 351 es una sección normal y se ubica en primer lugar en un fotograma, e incluye cuatro LCU. La CABAC se inicializa a un valor de estado predeterminado (estado cero) al inicio del fotograma, es decir, al inicio de la sección 351. Obsérvese que pueden estar presentes los estados predeterminados, y en este caso, se selecciona uno de los estados predeterminados. En este caso, el estado predeterminado se refiere a un valor predeterminado en un modelo de probabilidad de la codificación aritmética. Cuando los datos de la sección 342 y de la sección 343 (ver figura 7) están ausentes debido a la ausencia o a un error, aunque se obtengan datos que pertenecen a una sección dependiente 354, la sección dependiente 354 no puede ser decodificada. Esto se debe a que, según se ha indicado anteriormente, el motor de CABAC no puede ser inicializado sin los datos de las secciones 342 y 343.
La figura 9 es un diagrama de flujo para un proceso de determinación en un procedimiento de inicialización que se realiza cuando se obtiene la sección dependiente 354. Para decirlo de otra manera, este diagrama de flujo muestra un procedimiento de depender de dos o más secciones en la inicialización de CABAC.
Se supone que se establecen las siguientes condiciones para una sección (4) (sección dependiente 354). Se puede utilizar el WPP. Se establece igual a 1 un dependent_slice_enabled_flag de un SPS. La posición de la sección (4) satisface la expresión 1.
slice_address % numLCUinRow = 0 (Expresión 1)
En este caso, "%" representa una operación de módulo (resto de división entera). El parámetro numLCUinRow representa el número de LCU por cada fila de la imagen 350. Por lo tanto, la condición de la Expresión 1 se satisface al inicio de la fila. El parámetro numLCUinRow se puede derivar de la configuración del SPS.
En primer lugar, se determina si la sección (4) es o no es una sección dependiente (S101). Cuando la sección (4) no es una sección dependiente (No en S101), se realiza la inicialización predeterminada.
Según se muestra en la figura 8, cuando la sección (4) es una sección dependiente (Sí en S101), i se establece igual a 3 (S102). En resumen, la sección (3) que precede inmediatamente a la sección (4) se establece como una sección i.
A continuación, se determina si la sección i empieza o no a partir de una fila por encima de una fila de la sección (4) (S103). En este caso, dado que i se establece igual a 3, la sección i es la sección (3) que precede inmediatamente a una sección dependiente a procesar (sección (4)).
Cuando la sección i no empieza a partir de la fila que se encuentra por encima de la fila de la sección (4) (No en S103), se realiza la inicialización de WPP (inicialización utilizando una tabla WPP) (S107).
Por el contrario, cuando la sección i empieza a partir de la fila que está por encima de la fila de la sección (4) (Sí en S103), es decir, en el caso que se muestra en la figura 8, se determina si la sección i es o no es una sección dependiente (S104).
Cuando la sección i no es una sección dependiente (No en S104), se analiza una posición de inicio de la sección i. Específicamente, se determina si slice_address % numLCUinRow es o no es menor que 2 (S106). En resumen, se determina si la posición de inicio de la sección i es o no es la primera LCU o la segunda LCU en la fila.
Cuando slice_address % numLCUinRow es menor que 2 (Sí en S106), se realiza la inicialización de WPP (S107). Por el contrario, cuando slice_address % numLCUinRow es mayor que o igual a 2 (No en S106), se realiza la inicialización predeterminada (S108).
Además, cuando la sección i es una sección dependiente (Sí en S104), se analiza una posición de inicio de la sección i. Específicamente, se determina si slice_address % numLCUinRow es o no es menor que 3 (S105). En resumen, se determina si la posición de inicio de la sección i es la LCU ubicada en primer, segundo o tercer lugar en la fila.
Cuando slice_address % numLCUinRow es menor que 3 (Sí en S105), se realiza la inicialización de WPP (S107). Por el contrario, cuando slice_address % numLCUinRow es mayor que o igual a 3 (No en S105), no se realiza la inicialización y se reduce el índice i en 1 (S109). En resumen, en este ejemplo, la sección (2) que precede a la sección objetivo (sección (4)) en dos secciones es establecido como la sección i. Luego, se realizan los procesos subsiguientes a la etapa S103 en la sección (2). Además, cuando se realiza la misma determinación para la sección (2), se establece la sección (1) como la sección i.
La figura 10 es un diagrama que muestra una imagen 360. La imagen 360 incluye cinco secciones 361 a 365. La sección 361 es una sección normal e incluye la primera fila completa. La sección 362 es una sección dependiente e incluye la segunda fila completa. La tercera fila incluye la sección dependiente 363 y la sección 364. La sección 365 es una sección dependiente e incluye la cuarta fila completa.
A continuación se comentan casos en los que la sección 364 es una sección dependiente y en el que la sección 364 es una sección normal cuando la sección 364 se pierde o se retrasa. Además, en este caso, la sección 363 tiene al menos dos LCU.
Cuando se pierde la sección 364, un aparato de decodificación de imágenes no puede determinar un tipo de sección 364. Cuando la sección perdida 364 es una sección dependiente, es posible continuar la decodificación de la sección 365 y secciones subsiguientes con un pequeño margen de error en el proceso de reconstrucción. Esto se debe a que, según se describe con referencia a las figuras 8 y 9, la sección 365 usa los estados de CABAC de la LCU ubicada en segundo lugar en la sección 363. Por lo tanto, el proceso de inicialización de CABAC no causa errores. Sin embargo, dado que la sección 365 usa la predicción espacial de la sección 364, existe la posibilidad de que el proceso de reconstrucción de píxeles cause un error.
Por el contrario, cuando la sección perdida 364 es una sección normal, la sección 365 no puede ser decodificada. Esto se debe a que algunos de los elementos de sintaxis pueden usar la información de una cabecera de sección de la sección perdida 364. Dicho de otra manera, se debe a que la sección normal 364 es una sección padre de la sección dependiente 365, y se requiere la información de la sección padre para el análisis y la decodificación de la sección dependiente 365.
Cuando se desconoce el tipo de sección perdida 364, el aparato de decodificación de imágenes descarta la sección decodificable 365 para evitar la decodificación errónea que es probable que se produzca cuando la sección perdida 364 es una sección normal. Esto es ineficiente porque la sección 365 se descarta incluso cuando se obtienen correctamente los datos de la sección 365. Además, es necesario descartar todas las secciones dependientes posteriores a la sección 365.
Cuando la sección 364 es una sección normal, se inicializa un motor de CABAC a un valor de CABAC predeterminado (véase el caso de No en S101 en la figura 9) para decodificar la sección 365. Por lo tanto, la sección 365 no depende de la sección 363. Además, no se realiza la predicción espacial entre la sección 363 y la sección 365. Según se ha mencionado anteriormente, se inicializa la CABAC con el valor predeterminado en la posición de inicio de la sección 365 y, por lo tanto, la sección dependiente 365 se vuelve similar a la sección normal.
Sin embargo, la sección normal tiene una cabecera de sección completa. Por el contrario, la sección 365 tiene solo una cabecera de sección corta y depende de parámetros establecidos por una cabecera de sección de una sección normal anterior. En otras palabras, cuando la sección 365 es una sección dependiente, aunque existe la ventaja de que se puede reducir el tamaño de la cabecera, la ventaja no es tan grande. Por el contrario, cuando la sección 365 es una sección normal, la sección 365 puede ser decodificada. Según se acaba de describir, en los casos anteriores, la ventaja se considera mayor cuando la sección 365 se establece como la sección normal respecto a cuando la sección 365 se establece como la sección dependiente.
Sin embargo, en el WPP, la sección dependiente es diseñada para no garantizar robustez contra la pérdida, sino para permitir una operación WPP con un retardo ultra bajo. Por otro lado, en el caso de una aplicación de retardo ultra bajo en una red tal como una aplicación en tiempo real, se espera que haya pérdida de paquetes y reordenación de paquetes. En dicho caso, cuando puede obtenerse finalmente la sección 364, se puede decodificar la sección 365. Sin embargo, se produce al menos un retardo mayor y una pérdida de paquetes. Por lo tanto, el WPP no se realiza en un estado óptimo en un entorno con pérdidas.
La figura 11 es un diagrama que muestra otro problema asociado con la inicialización de CABAC cuando se usa el WPP, y que muestra una imagen 370. La imagen 370 incluye cuatro secciones 371 a 374.
La sección 371 es una sección normal, y la sección 372 es una sección dependiente. En este caso, la sección 371 tiene al menos dos LCU. La primera fila de la imagen 370 incluye las secciones 371 y 372. La segunda fila de la imagen 370 incluye las secciones 373 y 374, secciones dependientes.
En este caso, se supone que un aparato de codificación de imágenes utiliza al menos dos núcleos de procesador. En otras palabras, cuando se usa el WPP, el aparato de codificación de imágenes codifica y analiza sintácticamente dos filas de LCU en paralelo. Por lo tanto, la sección 373 estará disponible mucho antes de que esté disponible la sección 372.
Sin embargo, dado que la inicialización de CABAC para la sección 373 depende de la sección 372, no se puede iniciar la decodificación de la sección 373. Por lo tanto, no es posible retrasar el inicio de la codificación o la decodificación entre filas más pequeñas que una fila de LCU completa. Esto contradice el propósito del WPP de reducir el retardo hasta dos LCU.
A continuación se describe un procesamiento en paralelo de codificación y transmisión de una sección, según se muestra en la figura 11. Dos unidades de procesamiento, tales como núcleos de procesa procesador y procesadores, codifican simultáneamente las secciones (sección 371 y sección 373) ubicadas en primer lugar en las respectivas filas. Cuando termina la codificación, las secciones codificadas 371 y 373 son encapsulados en paquetes que tienen números de paquete (packet_id) de 0 y 4, respectivamente. En este caso, se selecciona el número de paquete 4 para reservar un número pequeño para la sección 372 y posiblemente para otra NALU.
Cuando se completa la codificación de la sección 372, se encapsula la sección 372 en un paquete que tiene un número de paquete 1 y es transmitido. Además, se generan dos unidades NAL con los correspondientes números de paquete 2 y 3 y datos ficticios (de relleno) para evitar la determinación de los números de paquete perdidos 2 y 3 como pérdida de paquetes.
En HEVC, esto se consigue mediante el uso de un mensaje SEI filler_data o un tipo de unidad NAL predeterminado reservado para datos de relleno. Según se ha indicado anteriormente, cuando un ID de paquete debe aumentarse en 1 para cada unidad NAL, se utiliza un tipo de relleno NALU para llenar el espacio.
La inicialización de una fila objetivo depende de la LCU que se encuentra en segundo lugar en una fila por encima de la fila objetivo. Además, una inserción de sección después de que la LCU ubicada en segundo lugar es problemática en términos de influir en la determinación de la inicialización de CABAC. La presente invención proporciona un procedimiento para derivar una relación más eficiente entre el WPP y el uso de una sección dependiente, en base a este análisis y problema. Se debe evitar una situación en la que la inicialización de CABAC para una fila dependa de otra fila para mantener la eficiencia del WPP.
Un procedimiento de decodificación de imágenes según un aspecto de la presente invención es un procedimiento de decodificación de imágenes para decodificar una secuencia de bits que incluye una señal codificada que es el resultado de codificar una pluralidad de secciones en las que se divide una imagen y cada uno de las cuales incluye una pluralidad de unidades de codificaciones, comprendiendo el procedimiento decodificar la señal codificada, en el que cada una de las secciones es o bien una sección normal que tiene, en una cabecera de sección, información que se utiliza para otra sección o bien una sección dependiente que se decodifica usando información incluida en una cabecera de sección de otra sección, la imagen incluye una pluralidad de filas, cada una de las cuales incluye dos o más unidades de codificación, y cuando la sección normal empieza en una posición distinta al inicio de una primera fila, una segunda fila inmediatamente después de la primera fila no empieza con la sección dependiente. Con esto, es posible evitar que se produzca un caso en el que una sección al inicio de la segunda fila referencie a una sección en una posición diferente a la del inicio de la primera fila, lo que permite una mayor eficiencia de cuando se utilizan conjuntamente el procesamiento en paralelo y secciones dependientes.
Por ejemplo, en la decodificación, puede ser que se decodifiquen la primera fila y la segunda fila en paralelo, y cuando se inicia la decodificación de la segunda fila, se decodifica la segunda fila sin referenciar a la información de división que indica una estructura de sección de la primera fila.
Por ejemplo, en la decodificación, puede inicializarse la decodificación aritmética de la segunda fila usando un contexto obtenido después de la decodificación aritmética de una de las unidades de codificación que se ubica en segundo lugar en la primera fila.
Por ejemplo, el procedimiento de decodificación de imágenes puede comprender, además, obtener, de una cabecera de sección de una sección, información que indique si la sección es o bien la sección normal o bien la sección dependiente.
Por ejemplo, puede ser que una sección al inicio de la imagen sea la sección normal, y cada una de las demás secciones sea la sección dependiente.
Por ejemplo, cada una de las secciones puede incluir una totalidad de una o más de las filas.
Por ejemplo, se puede inicializar la decodificación aritmética de la sección dependiente utilizando un contexto de una sección padre cuya cabecera de sección se usa para la sección dependiente.
Por ejemplo, el procedimiento de decodificación de imágenes puede comprender además obtener de la secuencia de bits un indicador de restricción cuando la sección dependiente es habilitada, indicando el indicador de restricción que la división de una imagen está restringida.
Además, un procedimiento de codificación de imágenes de acuerdo con un aspecto de la presente invención es un procedimiento de codificación de imágenes para codificar una pluralidad de secciones en los que se divide una imagen y cada uno de los cuales incluye una pluralidad de unidades de codificación, para generar una secuencia de bits, comprendiendo el procedimiento: dividir la imagen en las secciones; y codificar las secciones resultantes de la división, en el que cada una de las secciones es o bien una sección normal que tiene, en una cabecera de sección, información que se utiliza para otra sección o bien una sección dependiente que se decodifica utilizando información incluida en una cabecera de sección de otra sección, la imagen incluye una pluralidad de filas, cada una de las cuales incluye dos o más de las unidades de codificación, y en la división, cuando la sección normal empieza en una posición diferente a la de inicio de una primera fila, se divide la imagen en las secciones para hacer que una segunda fila inmediatamente después de la primera fila no empiece con la sección dependiente.
Con esto, es posible evitar que se produzca un caso en el que una sección al inicio de la segunda fila referencie a una sección en una posición diferente a la de inicio de la primera fila, lo que permite una mayor eficiencia de cuando se utilizan conjuntamente el procesamiento en paralelo y secciones dependientes.
Por ejemplo, en la división, puede ser que, en el caso de que un aparato de decodificación de imágenes decodifique la primera fila y la segunda fila en paralelo, se divida la imagen en las secciones para permitir la decodificación de la segunda fila sin referenciar a la información de división cuando el aparato de decodificación de imágenes empieza a decodificar la segunda fila, indicando la información de división una estructura de secciones de la primera fila.
Por ejemplo, en la codificación, se puede inicializar la codificación aritmética de la segunda fila usando un contexto obtenido después de la codificación aritmética de una de las unidades de codificación que se encuentra en segundo lugar en la primera fila.
Por ejemplo, el procedimiento de codificación de imágenes puede comprender, además, incluir, en una cabecera de sección de una sección, información que indique si la sección es o bien la sección normal o bien la sección dependiente.
Por ejemplo, puede ser que una sección al inicio de la imagen sea la sección normal, y cada una de las demás secciones sea la sección dependiente.
Por ejemplo, cada una de las secciones puede incluir una totalidad de una o más de las filas.
Por ejemplo, se puede inicializar la codificación aritmética de la sección dependiente utilizando un contexto de una sección padre cuya cabecera de sección se usa para la sección dependiente.
Por ejemplo, el procedimiento de codificación de imágenes puede comprender además incluir un indicador de restricción en la secuencia de bits cuando la sección dependiente es habilitada, indicando el indicador de restricción que la división de una imagen está restringida.
Además, un aparato de decodificación de imágenes según un aspecto de la presente invención es un aparato de decodificación de imágenes que decodifica una secuencia de bits que incluye una señal codificada que es el resultado de codificar una pluralidad de secciones en los que se divide una imagen y cada uno de los cuales incluye una pluralidad de unidades de codificación, comprendiendo el aparato una unidad de decodificación configurada para decodificar la señal codificada, en el que cada una de las secciones es o bien una sección normal que tiene, en una cabecera de sección, información que se utiliza para otra sección o bien una sección dependiente que se decodifica usando la información incluida en una cabecera de sección de otra sección, la imagen incluye una pluralidad de filas, cada una de las cuales incluye dos o más de las unidades de codificación, y cuando la sección normal empieza en una posición distinta de la del inicio de una primera fila, una segunda fila inmediatamente después de la primera fila no empieza con la sección dependiente.
Con esto, es posible evitar la aparición de un caso en el que una sección al inicio de la segunda fila referencie a una sección en una posición diferente a la del inicio de la primera fila, lo que permite una mayor eficiencia de cuando se utilizan conjuntamente el procesamiento en paralelo y secciones dependientes.
Además, un aparato de codificación de imágenes según un aspecto de la presente invención es un aparato de codificación de imágenes que codifica una pluralidad de secciones en los que se divide una imagen y cada una de las cuales incluye una pluralidad de unidades de codificación, para generar una secuencia de bits, comprendiendo el aparato: una unidad de división configurada para dividir la imagen en las secciones; y una unidad de codificación configurada para codificar las secciones resultantes de la división, en el que cada una de las secciones es o bien una sección normal que tiene, en una cabecera de sección, información que se utiliza para otra sección o bien una sección dependiente que es decodificada utilizando información incluida en una cabecera de sección de otra sección, incluyendo la imagen una pluralidad de filas, cada una de las cuales incluye dos o más de las unidades de codificación, y la unidad de división está configurada para, cuando la sección normal empieza en una posición diferente de la del inicio de una primera fila, dividir la imagen en las secciones para hacer que una segunda fila inmediatamente después de la primera fila no empiece con la sección dependiente.
Con esto, es posible evitar que se produzca un caso en el que una sección al inicio de la segunda fila referencie a una sección en una posición diferente a la del inicio de la primera fila, lo que permite una mayor eficiencia de cuando se utilizan conjuntamente el procesamiento en paralelo y secciones dependientes.
Además, un aparato de codificación y decodificación de imágenes según un aspecto de la presente invención incluye el aparato de codificación de imágenes y el aparato de decodificación de imágenes.
Cada una de las formas de realización descritas a continuación muestra un ejemplo específico. Los valores numéricos, las formas, los materiales, los elementos estructurales, la disposición y la conexión de los elementos estructurales, las etapas, el orden de las etapas, etc. que se muestran en las siguientes formas de realización son meros ejemplos, y por lo tanto no limitan la presente invención. Por lo tanto, entre los elementos estructurales en las siguientes formas de realización, los elementos estructurales no mencionados en ninguna de las reivindicaciones independientes que muestran los conceptos más genéricos se describen como elementos estructurales arbitrarios. A continuación, la invención según se define en la reivindicaciones adjuntas se refiere a la tercera restricción de la segunda forma de realización. Las otras formas de realización descritas son ejemplos que se proporcionan para una mejor comprensión de antecedentes y la implementación de la invención.
(Forma de realización 1) En un procedimiento de codificación de imágenes y un procedimiento de decodificación de imágenes de acuerdo con la forma de realización 1, se agrega un indicador que especifica claramente la inicialización de CABAC.
La figura 12 es un diagrama que muestra una sintaxis de una cabecera de sección de acuerdo con la forma de realización 1. Una cabecera de sección 380 incluye una nueva fila 381 que tiene un nuevo elemento de sintaxis "entropy_default_initialization_flag".
Este entropy_deafult_initialization_flag es un indicador que indica, cuando se establece igual a un valor predeterminado, que se inicializa la CABAC de una sección con un valor por defecto (predeterminado) de CABAC. El indicador es un indicador de un bit que tiene el primer valor tal como "1" que indica que una sección es inicializada con un valor de CABAC y el segundo valor tal como "0" que indica que la inicialización se realiza mediante un procedimiento diferente. Obsérvese que las asignaciones de los valores "1" y "0" pueden ser conmutadas.
El "procedimiento diferente" para determinar la inicialización puede ser un procedimiento predeterminado, tal como la inicialización en base a un valor de una sección anterior. Sin embargo, el "procedimiento diferente" puede incluir otro flujo de determinación similar al flujo mostrado en la figura 9, lo que posiblemente deriva en un procedimiento de inicialización que utiliza un valor de CABAC por defecto o predeterminado.
Un aparato de decodificación de imágenes según esta forma de realización decodifica una secuencia de bits de una secuencia de vídeo codificada que incluye secciones de imagen codificadas al menos parcialmente por codificación aritmética. El aparato de decodificación de imágenes incluye: una unidad de análisis que extrae, de unos datos de secuencia de bits de una sección, un indicador de inicialización que indica si un modelo de probabilidad de decodificación aritmética de la sección es o no es inicializado con un valor predeterminado; una unidad de control que controla si el modelo de probabilidad de decodificación aritmética es o no es inicializado con el valor predeterminado, de acuerdo con el indicador de inicialización; y una unidad de decodificación aritmética que decodifica la sección aplicando la decodificación aritmética.
Por ejemplo, la codificación aritmética puede ser una codificación aritmética adaptativa al contexto según se define en HEVC. Sin embargo, la presente invención no se limita a esto.
El valor predeterminado es un valor por defecto conocido por un aparato de codificación de imágenes y el aparato de decodificación de imágenes, y no cambia con contenido codificado.
El indicador de inicialización se refiere preferiblemente a un indicador de 1 bit con "1" indicando que un modelo de probabilidad de decodificación aritmética es inicializado con el valor predeterminado y "0" indicando que un modelo de probabilidad de decodificación aritmética es inicializado mediante un procedimiento diferente.
Solo cuando una sección objetivo es una sección dependiente, debe estar presente el indicador. Esto se debe a que cuando la sección objetivo es una sección normal, se usa el valor predeterminado de CABAC para la inicialización (véase el caso de No en S101 en la figura 9). Por lo tanto, primero se analiza si la sección objetivo es o no es una sección dependiente comprobando una condición de dependent_slice_flag == 1.
Además, cuando se realiza el procesamiento en paralelo de una sección y otra sección, el indicador (flag) de inicialización es ventajoso. Por ejemplo, el procesamiento en paralelo puede ser el WPP. Por lo tanto, solo cuando una condición de entropy_coding_sync_enabled_flag == 1 es verdadera, la sintaxis de la cabecera de sección que se muestra en la figura 12 incluye un indicador de inicialización entropy_default_initialization_flag.
Además, el indicador de inicialización es apropiado solo cuando la sección empieza al inicio de una fila de LCU. Esto se debe a que la inicialización inmediata de CABAC solo es necesaria para permitir el procesamiento en paralelo. Esto se indica mediante una condición de slice_address % PicWidthInCtbsY == 0 en la sintaxis que se muestra en la figura 12.
Según se ha indicado anteriormente, un elemento de sintaxis "slice_address" indica un inicio de la sección con un desplazamiento incluido en la secuencia de bits. "PicWidthInCtbsY" indica un ancho de un fotograma con el número de unidades de bloques de árbol de codificación (LCU).
Según se muestra en la fila 381, se utiliza un producto lógico de las tres condiciones para la determinación. En otras palabras, el entropy_default_initialization_flag es transmitido para señalizar claramente el procedimiento de inicialización solo cuando la siguiente Expresión 2 es verdadera.
dependent_slice_flag == 1 && entropy_coding_sync_enabled_flag == 1 & slice_address % PicWidthInCtibsY == 0 (Expresión 2)
Cuando la Expresión 2 no es verdadera, se realiza la inicialización en base a un procedimiento normal, es decir, las reglas de WPP.
Para decirlo de otra manera, el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes de acuerdo con esta forma de realización incluyen: subdividir una sección de una imagen en unidades de codificación correspondientes a bloques de píxeles de la imagen; y extraer, por la unidad de análisis, un indicador de inicialización de datos de la cabecera, solo cuando la sección es una sección dependiente. Una unidad de decodificación aritmética de secciones dependientes es inicializada en base a un contexto de una unidad de decodificación aritmética de secciones padre correspondientes a los respectivos secciones dependientes.
Además, solo cuando se permite la decodificación en paralelo de una fila compuesta por las unidades de codificación, la unidad de análisis puede extraer el indicador de inicialización de los datos de cabecera.
Dicho de manera diferente, de acuerdo con esta forma de realización, se subdivide la sección de la imagen en las unidades de codificación correspondientes a los bloques de píxeles de la imagen, y el indicador de inicialización de los datos de la cabecera es extraído por la unidad de análisis solo cuando empieza la sección a partir del inicio de la fila compuesta por los bloques de unidades de codificación de la imagen.
La figura 13 es un diagrama de flujo para un procedimiento de determinación de inicialización de CABAC para una sección de acuerdo con esta forma de realización. La figura 13 asume un caso de la imagen 350 que se muestra en la figura 8. Suponiendo que la sección (4) (sección 354) y la sección (1) (sección 351) son analizadas sintácticamente en paralelo, se realiza la siguiente determinación.
En primer lugar, se determina si la sección (4) es o no es una sección dependiente (S111). Cuando la sección (4) es una sección dependiente y se satisfacen otras condiciones (se realiza el procesamiento en paralelo de filas y empieza una sección al inicio de una fila de LCU) (Sí en S111), se comprueba un indicador de inicialización "entropy_defaultjnitialization_flag" para determinar un procedimiento de ejecución de inicialización (S112).
Cuando entropy_default_initialization_flag indica la aplicación de la inicialización por defecto (No en S112), se aplica la inicialización por defecto (S114). Por el contrario, cuando el entropy_default_initialization_flag no indica la aplicación de la inicialización por defecto (Sí en S112), se aplica la inicialización de WPP en la que se referencia a una sección anterior (S113).
Obsérvese que esta forma de realización no se limita a señalizar el indicador de inicialización en la cabecera de sección. El mismo indicador puede estar incluido en otra estructura de datos, por ejemplo un mensaje de información de mejora complementario.
(Forma de realización 2)
La forma de realización 1 hace posible conseguir un procesamiento eficiente de filas de LCU en paralelo, tal como el WPP y la sección dependiente. Por otro lado, se incluye un nuevo elemento de sintaxis en una cabecera de sección. En respuesta, se puede conseguir la independencia de la inicialización de CABAC para secciones durante el procesamiento en paralelo modificando las reglas de inicialización, para evitar la agregación del nuevo elemento de sintaxis.
En la forma de realización 2, se modifican la definición de la sección dependiente y las operaciones para la sección dependiente por un aparato de codificación de imágenes y un aparato de decodificación de imágenes. Esto se puede conseguir agregando restricciones a los estándares de secuencias de bits.
En otras palabras, el aparato de decodificación de imágenes de acuerdo con esta forma de realización decodifica una secuencia de bits de una secuencia de video codificada que incluye secciones de imágenes subdivididas en unidades de codificación y codificadas al menos parcialmente por una codificación aritmética. El aparato de decodificación de imágenes incluye una unidad de análisis que extrae, de una secuencia de bits, una primera fila de unidades de codificación y una segunda fila de unidades de codificación, en el que las unidades de codificación de la primera fila y la segunda fila se asignan a secciones para evitar referenciar a la información de división de una primera sección en la primera fila cuando se inicializa una unidad de decodificación aritmética para una segunda sección en la segunda fila. Una posición inicial de la primera sección en la primera fila está detrás de la segunda sección en la segunda fila en una cantidad predeterminada de unidades de codificación. El aparato de decodificación de imágenes incluye además la unidad de decodificación aritmética que realiza la decodificación aritmética la primera sección y la segunda sección al menos parcialmente en paralelo, para decodificar cada una de las secciones.
La figura 14 es un diagrama para describir la función de esta forma de realización, y muestra una imagen 390 dividida en secciones. La imagen 390 incluye cuatro secciones que son una sección normal 391, una sección normal 392, una sección dependiente 393 y una sección normal 394.
Las tres secciones 391, 392, y 393 están incluidos en la primera fila de unidades de codificación (LCU). La sección 394 incluye la segunda y la tercera fila completas.
La primera restricción de ejemplo aplicada a la segmentación y procesamiento en paralelo en base a una fila es que "cuando entropy_code_sync_enabled_flag y dependent_slice_enabled_flag son iguales a 1, una sección normal puede empezar solo al inicio de una fila de bloques de árbol de codificación". Además, los dos indicadores, el entropy_code_sync_enabled_flag y el dependent_slice_enabled_flag, son incluidos en un conjunto de parámetros de imagen. Obsérvese que un bloque de árbol de codificación (Coding Tree Block, CTB) y una unidad de codificación más grande (LCU) se refieren a la misma unidad. El CTB se utiliza en un texto estándar (véase la NPL 3). Además, aunque la LCU se usa en un texto estándar de la versión anterior, la CTB se usa en un texto estándar de la versión actual.
Cuando la sección normal empieza solo al inicio de una fila de unidades de codificación (fila de LCU), una sección dependiente en otra fila que es posterior a la sección normal siempre puede referenciar a los estados de CABAC de la sección normal. En este caso, los estados de CABAC son estados de CABAC después de que sean procesadas por el WPP la primera LCU o las dos primeras LCU. Además, dado que una cabecera de la sección dependiente depende de una cabecera de la sección normal anterior a la sección dependiente, cuando se pierde la sección normal 394, es necesario descartar la sección dependiente.
Por lo tanto, en el primer ejemplo de restricción, una sección normal siempre empieza al inicio de una fila de LCU. Para decirlo de otra manera, en una fila de LCU, la primera sección es una sección normal, y las otras secciones son secciones dependientes. Esto significa que la sección normal solo se permite como primera sección en una LCU. Además, en una fila de LCU, las secciones distintas de la primera sección son siempre secciones dependientes. La primera restricción de ejemplo no necesita ser estricta. Solo es necesario hacer que al menos una o dos LCU de la sección normal de una fila anterior estén disponibles para la sección dependiente, para permitir la aplicación de la inicialización de WPP.
Alternativamente, la segunda restricción de ejemplo puede aplicarse como otra restricción (regla). En la segunda restricción de ejemplo, una sección normal no empieza después del bloque de árbol de codificación ubicado en segundo lugar en una fila de bloques de árbol de codificación. La sección normal debe empezar al inicio de una fila de LCU, y por lo tanto, por ejemplo, no es aceptable establecer, como sección normal, la sección 392 ubicada en segundo lugar, según se muestra en la figura 14.
Es suficiente que la posición inicial de la primera sección esté antes que la unidad de codificación ubicada en segundo lugar en la primera fila. Además, la primera sección puede ser una sección normal, y la segunda sección puede ser una sección dependiente que utiliza una cabecera de sección de la sección normal. Además, la posición inicial de la primera sección puede ser el inicio de la primera fila.
La figura 15 es un diagrama de flujo para un proceso de determinación en un procedimiento de inicialización de CABAC cuando se establecen las reglas anteriores. A continuación se describe el proceso de determinación utilizando el ejemplo que se muestra en la figura 8.
En primer lugar, se determina si la sección (4) es o no es una sección dependiente (S111). Cuando la sección (4) es una sección dependiente (Sí en S111), se realiza la inicialización de WWP (S113). Por el contrario, cuando la sección (4) no es una sección dependiente (No en S111), se realiza la inicialización por defecto (S114).
Según se ha descrito anteriormente, se utiliza una unidad de codificación de entropía adaptativa al contexto en un procedimiento de codificación de imágenes según esta forma de realización. El procedimiento de codificación de imágenes se aplica a un fotograma de imagen dividido en al menos dos porciones. Las al menos dos porciones son una primera porción y una segunda porción que pueden codificarse y decodificarse al menos parcialmente en paralelo.
De acuerdo con esta forma de realización, se determina la inicialización de una tabla de contexto de la segunda parte de una secuencia, cuando la primera parte de una sub secuencia es subdividida en secciones, por un procedimiento que no depende de la subdivisión de la primera porción. Por ejemplo, el WPP se realiza para cada fila (cada fila de LCU) y, por lo tanto, una porción de la secuencia puede corresponder a la fila de LCU.
Se debe tener en cuenta que la presente invención no está limitada a las restricciones de ejemplo anteriores. Las restricciones de ejemplo pueden formularse de una manera diferente. A continuación se describen otras restricciones de ejemplo.
Cuando una sección normal satisface una condición de la siguiente Expresión 3, una sección que empieza al inicio de una fila de LCU posterior no es una sección dependiente.
slice_address % PicWidthInCtbsY> 1 (Expresión 3)
Por motivos de simplicidad, la condición se puede representar mediante la siguiente Expresión 4. slice_address % PicWidthInCtbsY! = 0 (Expresión 4)
En este caso, "!=" Indica desigualdad. Cuando entropy_coding_sync_enabled_flag es igual a 1, es decir, se permite el procesamiento en paralelo de filas de LCU, estas restricciones son aplicables. Además, "slice_address" indica una posición de una sección que empieza en una secuencia de bits, y el parámetro "PicWidthInCtbsY" indica el ancho de una imagen (fotograma) en una LCU (bloque de árbol de codificación).
Para decirlo de otra manera, cuando la sección normal no empieza al inicio de la fila, una sección que empieza en una fila inmediatamente posterior no es una sección dependiente (tercera restricción de ejemplo). Esta condición elimina la necesidad de decodificar una sección en la segunda fila para esperar hasta que se analice sintácticamente (decodifique) una sección normal en una posición de la primera fila.
Esto significa que cuando una sección normal empieza en una posición diferente a la del inicio de la primera fila, la segunda fila inmediatamente siguiente a la primera fila no empieza con una sección dependiente. Dicho de otra manera, cuando al menos una de entre la sección ubicada en segundo lugar y una sección posterior en la primera fila es una sección normal, la sección al inicio de la segunda fila es una sección normal.
A continuación se describe la influencia de la tercera restricción de ejemplo con referencia a la figura 16. Una imagen 400 mostrada en la figura 16 incluye tres secciones 401 a 403 incluidos en la primera fila. Entre los tres secciones, los primeros dos secciones 401 y 402 ubicadas en primer y segundo lugar son secciones normales, y la sección 403 ubicada en tercer lugar es una sección dependiente.
Esta condición no permite que la sección 404 ubicada en cuarto lugar sea establecida como la sección dependiente.
Esto se indica en la figura 16 marcando una cruz a la sección 404.
Por lo tanto, la secuencia de bits puede incluir secciones normales y secciones dependientes, y la decodificación de las secciones normales y las secciones dependientes se basa en parámetros señalizados en cabeceras de sección de las secciones normales. Cuando una sección normal empieza en una posición después del inicio de una fila de LCU, la siguiente fila de LCU no empieza con una sección dependiente.
Además, se describen ejemplos específicos con referencia a las figuras de la 17A a la 17D. Por ejemplo, según se muestra en la figura 17A, cuando la primera fila incluye una sección normal (3), la sección dependiente no puede establecerse como una sección (4) al inicio de la segunda fila. Además, cuando al menos una de entre una sección (2) y la sección (3) es una sección normal, la sección (4) no puede establecerse como la sección dependiente. Como resultado, según se muestra en la figura 17B, la sección (4) debe establecerse como la sección normal. Además, en el tercer ejemplo de restricción, imágenes según se muestran en la figura 17C y la figura 17D también son permitidas.
Obsérvese que aunque las imágenes mostradas en la figura 17A, figura 17B, y figura 17D no son permitidas en la primera restricción de ejemplo mencionada anteriormente, la imagen que se muestra en la figura 17c es permitida.
Además, aunque las imágenes mostradas en la figura 17A y la figura 17B no son permitidas en el segundo ejemplo de restricción, las imágenes que se muestran en la figura 17C y la figura 17D son permitidas.
A continuación se describe la cuarta restricción de ejemplo con referencia a la figura 18. Cuando entropy_coding_sync_enabled_flag y dependent_slice_enabled_flag son iguales a 1, no se permite ninguna sección normal excepto la primera sección en un fotograma (cuarta restricción de ejemplo).
Dicho de otra manera, cuando se permite el procesamiento en paralelo y se habilitan secciones dependientes, se permite una sección normal solo como la primera sección en el fotograma. En resumen, todas las secciones del fotograma son secciones dependientes, excepto la primera sección. En otras palabras, la sección al inicio de una imagen es una sección normal, y todos los demás secciones de la imagen son secciones dependientes.
Una imagen 410 mostrada en la figura 18 incluye cinco secciones 411 a 415. Las secciones 411, 412 y 415 son secciones normales, y las secciones 413 y 414 son secciones dependientes. Las secciones normales 412 y 415 no son permitidas, excepto la sección normal 411 ubicada en primer lugar, de acuerdo con la cuarta restricción de ejemplo. En resumen, las secciones 412 y 415 tienen que ser secciones dependientes. Además, entre las imágenes mostradas en las figuras de la 17A a la 17D, solo se permite la imagen mostrada en la figura 17D en la cuarta restricción de ejemplo.
Obsérvese que el uso de la cuarta restricción de ejemplo provoca un demérito con respecto a la robustez frente a la pérdida de paquetes. Las secciones normales normalmente se utilizan para reducir una dependencia o propagación de errores en un entorno con pérdidas. Un fotograma en el que solo la sección ubicada en primer lugar es una sección normal asume un riesgo de que no se puedan decodificar todas las secciones cuando no se puede decodificar la sección ubicada en primer lugar.
Además, se puede usar la siguiente restricción como otra restricción. Cuando una sección (sección normal o dependiente) empieza en la mitad de una fila de LCU (es decir, una posición diferente a la del inicio de la fila), la siguiente fila de unidades de codificación no empieza con una sección dependiente (quinta restricción de ejemplo).
Obsérvese que, como queda claro para un experto en la materia, es posible combinar arbitrariamente las restricciones descritas anteriormente. En otras palabras, las restricciones de ejemplo de la primera a la quinto se pueden aplicar en combinación.
A continuación se describe además otra restricción de ejemplo. Cuando entropy_coding_sync_enabled_flag es igual a 1, una fila de LCU puede ser subdividida en secciones (sexta restricción de ejemplo). Cuando se aplica esta restricción, las secciones 412 y 413 no son permitidos en la estructura de secciones mostrada en la figura 18. Para decirlo de otra manera, cuando se habilita el procesamiento en paralelo de filas de unidades de codificación, solo se permite que una sección incluya una fila completa de unidades de codificación o filas completas de unidades de codificación.
Según se ha indicado anteriormente, la secuencia de bits incluye las secciones normales y las secciones dependientes. La decodificación de las secciones normales y las secciones dependientes se basa en los parámetros señalizados en las cabeceras de sección de las secciones normales. Una vez que se determina que solo la sección ubicada en primer lugar en una imagen sería una sección normal y las secciones restantes serían secciones dependientes, la imagen se divide en secciones.
Cada una de las secciones incluye la totalidad de un número m de filas de unidades de codificación. En este caso, m es un número entero mayor que o igual a 1. Específicamente, cada una de las secciones incluye la totalidad de una o más filas.
Cuando las secciones dependientes son habilitados y uno de entre el WPP y pieza de mosaico son habilitados además de o en lugar de la aplicación de la restricción, se puede incluir un indicador que indica la restricción en la secuencia de bits. Por ejemplo, este indicador es incluido en un SPS o un PPS. Se debe tener en cuenta que el indicador puede ser incluido en otro mensaje tal como un mensaje SEI o en cualquier mensaje de información de usabilidad del video (VUI).
El aparato de decodificación de imágenes identifica una restricción que debe aplicarse, en base al indicador. Por ejemplo, esta restricción es que solo se permite una sección normal al inicio de una fila de LCU (WPP) o una pieza de mosaico. Obsérvese que esto es meramente una restricción de ejemplo, y se puede aplicar cualquiera de las restricciones mencionadas anteriormente, una combinación de las restricciones o una restricción adicional no descrita explícitamente.
Por ejemplo, el indicador puede ser un indicador de 1 bit que indica, para una restricción predeterminada, si la restricción debe o no debe aplicarse. Puede haber restricciones seleccionables disponibles, y se señaliza en la secuencia de bits información que indica una restricción seleccionada para el aparato de decodificación de imágenes. Dicho de otra manera, en lugar de limitar explícitamente el uso según se describe en los ejemplos anteriores, el aparato de codificación de imágenes puede notificar al aparato de decodificación de imágenes que se utilizan dichas restricciones. Por lo tanto, se puede aplicar cualquiera de los ejemplos con respecto a las restricciones.
Por lo tanto, un procedimiento de decodificación de imágenes de acuerdo con una implementación de la presente invención incluye obtener, de una secuencia de bits, un indicador de restricción que indica que la división de una imagen es restringida, cuando la sección dependiente es habilitada. Un procedimiento de codificación de imágenes de acuerdo con una implementación de la presente invención incluye incluir, en una secuencia de bits, un indicador de restricción que indica que la división de una imagen es restringida, cuando la sección dependiente es habilitada. Se debe tener en cuenta que no es necesario determinar si agregar o no el indicador, dependiendo de si se habilita o no el WPP, la pieza de mosaico o sección dependiente.
Además, un procedimiento de decodificación de imágenes según una implementación de la presente invención es un procedimiento de decodificación de imágenes para decodificar una secuencia de bits que incluye una señal codificada que resulta de codificar una pluralidad de secciones en los que se divide una imagen y cada uno de los cuales incluye una pluralidad de unidades de codificación (LCU), y el procedimiento de decodificación de imágenes incluye la decodificación de la señal codificada. Un procedimiento de codificación de imágenes de acuerdo con una implementación de la presente invención es un procedimiento de codificación de imágenes para codificar una pluralidad de secciones en los que se divide una imagen y cada uno de los cuales incluye una pluralidad de unidades de codificación (LCU), para generar una secuencia de bits, y el procedimiento de codificación de imágenes incluye: dividir la imagen en las secciones; y codificar las secciones resultantes de la división.
Cada una de las secciones es o bien una sección normal o bien una sección dependiente. La sección normal es una sección que tiene, en una cabecera de sección, información que probablemente se usará para otra sección. La sección dependiente es una sección que se decodifica utilizando información incluida en una cabecera de sección de otra sección. En este caso, la otra sección es, por ejemplo, una sección normal que precede y es la más cercana a la sección dependiente.
En la decodificación, se inicializa la decodificación aritmética de una sección dependiente utilizando un contexto de una sección padre cuya cabecera de sección se utiliza para la sección dependiente. En la codificación, se inicializa la codificación aritmética de una sección dependiente utilizando un contexto de una sección padre cuya cabecera de sección se utiliza para la sección dependiente.
La imagen incluye una pluralidad de filas cada una de las cuales incluye una pluralidad de unidades de codificación. En la división, la imagen se divide en las piezas de mosaico y las secciones para satisfacer una o más de las restricciones mencionadas anteriormente.
Puede ser que en la decodificación, la primera fila y la segunda fila se decodifiquen en paralelo, y cuando se inicia la decodificación de la segunda fila, la segunda fila es decodificada sin referenciar a la información de división que indica una estructura de sección de la primera fila. Puede ser que en la división, en el caso en que un aparato de decodificación de imágenes decodifique la primera fila y la segunda fila en paralelo, la imagen se divida en las secciones para permitir la decodificación de la segunda fila sin referenciar a la información de división que indica un estructura de sección de la primera fila, cuando el aparato de decodificación de imágenes empieza a decodificar la segunda fila.
En este caso, la información de división es, por ejemplo, información que indica una posición de sección (posición de inicio) o una posición de una cabecera de sección. El aparato de decodificación de imágenes realiza el procesamiento para determinar el procedimiento de inicialización de CABAC mencionado anteriormente referenciando a esta información de división.
Además, el procesamiento en paralelo es el WPP mencionado anteriormente, por ejemplo. Específicamente, en la decodificación, se inicializa la decodificación aritmética de la segunda fila utilizando un contexto obtenido después de la decodificación aritmética de la unidad de codificación situada en segundo lugar en la primera fila. En la codificación, se inicializa la codificación aritmética de la segunda fila utilizando un contexto obtenido después de la codificación aritmética de la unidad de codificación ubicada en segundo lugar en la primera fila.
Según se ha indicado anteriormente, la cabecera de sección tiene la información (dependent_slice_flag) que indica si la sección es una sección normal o una sección dependiente. En otras palabras, el procedimiento de decodificación de imágenes incluye obtener, de una cabecera de sección, información que indica si una sección es una sección normal o una sección dependiente. Además, el procedimiento de codificación de imágenes comprende incluir, en una cabecera de sección, información que indica si una sección es una sección normal o una sección dependiente.
Según se ha descrito anteriormente, esta forma de realización hace posible evitar que el procesamiento de sección dependiente se retrase al menos dos o al menos tres unidades de codificación, mediante la inicialización de CABAC en vista de las secciones precedentes en el procesamiento en paralelo. Con esto, el procesamiento en paralelo de la codificación, decodificación y análisis sintáctico de las filas se puede realizar de manera eficiente.
Se debe observar que la presente invención no está limitada a la forma de realización en la que se restringe el procedimiento de segmentación. Además, la restricción puede estar relacionada con una sección de la cual se puede obtener un contexto CABAC.
(Forma de realización 3)
En esta forma de realización, se cambia un procedimiento de inicialización de CABAC para una sección dependiente en un momento de WPP. Específicamente, se modifica la regla de asignación de sección padre para la sección dependiente.
Por ejemplo, se determina una regla en la que una sección dependiente siempre obtiene una cabecera de sección y un contexto CABAC a partir de la misma sección independientemente de la subdivisión de una fila de LCU en secciones (y/o un tipo de una sección subsiguiente).
Una imagen 420 mostrada en la figura 19 incluye secciones 421 a 424. En el HEVC actual, la sección 422 es una sección padre de la sección dependiente 424. En otras palabras, se obtiene de la sección 422, la sección normal anterior más cercana, una cabecera de sección de la sección dependiente 424.
Según se describe con referencia a la figura 9, hay un caso en el que se realiza la inicialización de CABAC en la sección dependiente usando una sección normal, que se encuentra al inicio de una fila de LCU anterior. Sin embargo, cuando se pierde la sección 422, aunque se puede realizar la inicialización de CABAC en la sección 424, no se puede decodificar la sección 424 debido a la ausencia de información de cabecera de sección.
En vista de esto, en esta forma de realización, la sección dependiente tiene como sección padre la sección normal más cercana que empieza en la misma fila que la sección dependiente o una fila que precede a la fila de la sección dependiente. En esta forma de realización, según se muestra en la figura 19, se establece la sección padre de la sección 424 como la sección 421 de acuerdo con esta regla. La inicialización de CABAC se realiza en la sección dependiente 424 utilizando una cabecera de sección de la sección 421 así como los estados de CABAC de la sección 421.
Además, una unidad de decodificación aritmética de cada sección dependiente establece una dependencia de secciones para realizar la inicialización en base a un contexto de una unidad de decodificación aritmética de la sección padre.
Obsérvese que la información que indica una tabla de contexto CABAC utilizada para la inicialización de secciones puede señalizarse explícitamente en un mensaje SEI. En resumen, todos los valores de inicialización que se consideren para su utilización en la inicialización del motor de CABAC pueden señalizarse explícitamente en el mensaje SEI.
Debe notarse que el término "sección (sección normal o sección dependiente)" utilizado en la descripción anterior a veces se denomina "segmento de sección (segmento de sección normal o segmento de sección dependiente)". En este caso, una unidad que incluye uno o más segmentos de sección consecutivos se denomina "sección". Específicamente, una sección incluye un segmento de sección normal y uno o más segmentos de sección dependientes consecutivos que siguen al segmento de sección normal. Dicho de otra manera, cuando un segmento de sección normal sigue inmediatamente a otro segmento de sección normal, una sección incluye solo el segmento de sección normal. Además, cuando uno o más segmentos de sección dependientes siguen inmediatamente a un segmento de sección normal, una sección incluye el segmento de sección normal y el uno o más segmentos de sección dependientes. En una palabra, una sección va desde un segmento de sección normal hasta una o más secciones dependientes que preceden inmediatamente al siguiente segmento de sección normal.
Cuando se utiliza dicha definición, se puede decir que las terceras restricciones de ejemplo descritas anteriormente para las filas de LCU y secciones corresponden a las siguientes definiciones.
Cuando entropy_coding_sync_enabled_flag es igual a 1 y el primer bloque de árbol de codificación (LCU) en una sección no es el primer bloque de árbol de codificación de una fila de bloques de árbol de codificación, es un requisito de conformidad de la secuencia de bits que el último bloque de árbol de codificación en la sección pertenecerá a la misma fila de bloques de árbol de codificación que el primer bloque de árbol de codificación en la sección.
En este punto, el caso en el que el primer bloque de árbol de codificación incluido en una sección no es el primer bloque de árbol de codificación en una fila de bloques de árbol de codificación es un caso en el que un segmento de sección normal empieza en una posición distinta a la del inicio de la fila de bloques de árbol de codificación. La situación en la que el último bloque de árbol de codificación incluido en la sección pertenece a la misma fila de bloques de árbol de codificación que el primer bloque de árbol de codificación incluido en la sección corresponde a la situación en la que la siguiente fila no empieza con una sección dependiente.
Por ejemplo, en el ejemplo mostrado en la figura 17B, los segmentos de sección (1) y (2) (indicados por slice (1) y slice (2) en la figura 17B; dichas denotaciones también se aplicarán a los siguientes segmentos de sección) forman una sección, un segmento de sección (3) forma una sección, y los segmentos de sección (4) y (5) forman una sección. Entre estas secciones, una sección cuyo primer bloque de árbol de codificación es diferente del primer bloque de árbol de codificación en una fila de bloques de árbol de codificación es solo la sección formada por el segmento de sección (3). El último bloque de árbol de codificación en esta sección pertenece a la misma fila de bloques de árbol de codificación (la primera fila) que el primer bloque de árbol de codificación en la sección. Por lo tanto, la estructura mostrada en la figura 17B es permitida.
Por otra parte, en el ejemplo mostrado en la figura 17A, los segmentos de sección (3) a (5) forman una sección. El primer bloque de árbol de codificación en esta sección (el primer bloque de árbol de codificación en el segmento de sección (3)) y el último bloque de árbol de codificación en esta sección (el último bloque de árbol de codificación en el segmento de sección (5)) pertenecen a filas de bloques de árbol de codificación diferentes. Por lo tanto, la estructura mostrada en la figura 17A no es permitida.
En la figura 17C, los segmentos de sección (1) a (3) forman una sección, y los segmentos de sección (4) y (5) forman una sección. En la figura 17D, los segmentos de sección (1) a (5) forman una sección. Esto significa que la sección cuyo primer bloque de árbol de codificación es diferente del primer bloque de árbol de codificación en una fila de bloques de árbol de codificación, es decir, la sección que empieza en la mitad de una fila, no está presente en la figura 17c y la figura 17D. Por lo tanto, las estructuras mostradas en la figura 17C y la figura 17D son permitidas. Cuando el indicador entropy_coding_sync_enabled es igual a 1 y el primer bloque de árbol de codificación (LCU) en un segmento de sección no es el primer bloque de árbol de codificación de una fila de bloques de árbol de codificación, es un requisito de la conformidad de la secuencia de bits que el último bloque de árbol de codificación en el segmento de sección pertenecerá a la misma fila de bloques de árbol de codificación que el primer bloque de árbol de codificación en el segmento de sección.
Aunque se han descrito hasta ahora el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes de acuerdo con las formas de realización, la presente invención no se limita a las formas de realización.
El procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes son realizados por el aparato de codificación de imágenes y el aparato de decodificación de imágenes, respectivamente. El aparato de codificación de imágenes y el aparato de decodificación de imágenes tienen las mismas estructuras que, por ejemplo, las mostradas en la figura 1 y la figura 2, respectivamente, y las etapas de características incluidas en el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes son ejecutadas por cualquiera de las unidades de procesamiento respectivas mostradas en la figura 1 y la figura 2 o unidades de procesamiento no mostradas.
Además, las unidades de procesamiento respectivas incluidas en el aparato de codificación de imágenes y el aparato de decodificación de imágenes de acuerdo con las formas de realización se implementan normalmente como un LSI que es un circuito integrado. Estas unidades de procesamiento pueden configurarse individualmente como chips individuales o pueden configurarse de manera que una parte o todas las unidades de procesamiento son incluidas en un solo chip.
Además, el procedimiento de integración de circuitos no se limita a los LSI, y también es posible la implementación a través de un circuito dedicado o un procesador de propósito general. También se puede usar una matriz de puerta programable de campo (FPGA) que permite la programación después de la fabricación del LSI o un procesador reconfigurable que permite la reconfiguración de las conexiones y configuraciones de las celdas del circuito dentro del LSI.
Cada uno de los elementos estructurales en cada una de las formas de realización descritas anteriormente puede estar configurado en forma de hardware dedicado, o pueden ser implementados ejecutando un programa de software adecuado para el elemento estructural. Cada uno de los elementos estructurales puede implementarse por medio de una unidad de ejecución de programas, como una CPU o un procesador, leyendo y ejecutando el programa de software grabado en un medio de grabación, tal como un disco duro o una memoria de semiconductores.
En otras palabras, cada uno de entre el aparato de codificación de imágenes y el aparato de decodificación de imágenes incluye circuitos de control y almacenamiento conectados eléctricamente a los circuitos de control (accesible por los circuitos de control). El circuito de control incluye al menos uno de entre el hardware dedicado y la unidad de ejecución de programas. Además, cuando el circuito de control incluye la unidad de ejecución de programas, el almacenamiento almacena un programa de software ejecutado por la unidad de ejecución de programas.
Además, la presente invención puede ser el programa de software o un medio de grabación legible informáticamente no transitorio en el que se graba el programa. Además, no hace falta decir que el programa se puede distribuir a través de un medio de transmisión tal como Internet.
Además, todas las cifras numéricas utilizadas en la descripción anterior son simplemente de ejemplo para describir la presente invención en términos específicos, y por lo tanto la presente invención no se limita a las cifras numéricas de ejemplo.
Además, la separación de los bloques funcionales en los diagramas de bloques es simplemente un ejemplo, y pueden implementarse varios bloques funcionales como un único bloque funcional, puede separarse un solo bloque funcional en varios bloques funcionales, o parte de las funciones de un bloque funcional puede ser transferida a otro bloque funcional. Además, las funciones de los bloques funcionales que tienen funciones similares pueden ser procesadas, en paralelo o tiempo compartido, por un solo hardware o software.
Además, la secuencia en la que se ejecutan las etapas incluidas en el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes se proporciona como un ejemplo para describir la presente invención en términos específicos, y por lo tanto son posibles otras secuencias. Además, parte de las etapas se pueden ejecutar simultáneamente (en paralelo) con otra etapa.
Aunque el aparato de codificación de imágenes y el aparato de decodificación de imágenes de acuerdo con una o más implementaciones de la presente invención se han descrito anteriormente en base a las formas de realización de ejemplo, la presente invención no se limita a estas formas de realización. Otras formas de realización resultantes de la aplicación de modificaciones concebibles por los expertos en la técnica a las formas de realización y cualquier combinación de los elementos estructurales en las formas de realización también se incluyen en el alcance de uno o más aspectos de la presente invención sin apartarse de la esencia de la presente invención.
(Forma de realización 4)
El procesamiento descrito en cada una de las formas de realización puede implementarse simplemente en un sistema informático independiente, mediante la grabación, en un medio de grabación, de un programa para implementar las configuraciones del procedimiento de codificación de imágenes en movimiento (procedimiento de codificación de imágenes) y el procedimiento de decodificación de imágenes en movimiento (procedimiento de decodificación de imágenes) descrito en cada una de las formas de realización. Los medios de grabación pueden ser cualquier medio de grabación siempre que se pueda grabar el programa, tal como un disco magnético, un disco óptico, un disco óptico magnético, una tarjeta IC y una memoria de semiconductores.
En lo sucesivo, se describirán las aplicaciones al procedimiento de codificación de imágenes en movimiento (procedimiento de codificación de imágenes) y al procedimiento de decodificación de imágenes en movimiento (procedimiento de decodificación de imágenes) descritas en cada una de las formas de realización y sistemas que las utilizan. El sistema tiene una característica de tener un aparato de codificación y decodificación de imágenes que incluye un aparato de codificación de imágenes que utiliza el procedimiento de codificación de imágenes y un aparato de decodificación de imágenes que utiliza el procedimiento de decodificación de imágenes. Se pueden cambiar otras configuraciones en el sistema según corresponda dependiendo de los casos.
La figura 20 ilustra una configuración general de un sistema proveedor de contenidos ex100 para implementar servicios de distribución de contenidos. El área para proporcionar servicios de comunicación se divide en celdas de un tamaño deseado, y unas estaciones base ex106, ex107, ex108, ex109 y ex110 que son estaciones inalámbricas fijas ubicadas en cada una de las celdas.
El sistema proveedor de contenidos ex100 está conectado a dispositivos, tales como un sistema informático ex111, un asistente digital personal (PDA) ex112, una cámara ex113, un teléfono celular ex114 y una máquina de juegos ex115, a través de Internet ex101, un proveedor de servicios de Internet ex102, una red telefónica ex104, así como las estaciones base ex106 - ex110, respectivamente.
Sin embargo, la configuración del sistema proveedor de contenidos ex100 no se limita a la configuración mostrada en la figura 20, y es aceptable una combinación en la que cualquiera de los elementos están conectados. Además, cada dispositivo puede conectarse directamente a la red telefónica ex104, en lugar de hacerlo a través de las estaciones base ex106 - ex110, que son las estaciones inalámbricas fijas. Además, los dispositivos pueden estar interconectados entre sí a través de una comunicación inalámbrica de corta distancia y otros.
La cámara ex113, tal como una cámara de vídeo digital, es capaz de capturar vídeo. Una cámara ex116, tal como una cámara digital, es capaz de capturar imágenes fijas y video. Además, el teléfono celular ex114 puede ser el que cumpla con cualquiera de los estándares, tales como Sistema Global para Comunicaciones Móviles (GSM) (marca registrada), Acceso Múltiple por División de Código (CDMA), Acceso Múltiple por División de Código de Banda Ancha (W-CDMA), Evolución a largo plazo (LTE) y Acceso a paquetes de alta velocidad (HSPA). Alternativamente, el teléfono celular ex114 puede ser un Sistema de Teléfono Personal (PHS).
En el sistema proveedor de contenidos ex100, un servidor de transmisión por secuencias ex103 está conectado a la cámara ex113 y otros a través de la red telefónica ex104 y la estación base ex109, que permite la distribución de imágenes de un programa en vivo y otros. En dicha distribución, un contenido (por ejemplo, un video de un espectáculo musical en vivo) capturado por el usuario que utiliza la cámara ex113 es codificado según se ha descrito anteriormente en cada una de las formas de realización (es decir, la cámara funciona como el aparato de codificación de imágenes según un aspecto de la presente invención), y el contenido codificado es transmitido al servidor de transmisión por secuencias ex103. Por otro lado, el servidor de transmisión por secuencias ex103 realiza la distribución por secuencias de los datos transmitidos del contenido a los clientes cuando lo solicitan. Los clientes incluyen el sistema informático ex111, la PDA ex112, la cámara ex113, el teléfono celular ex114, y la máquina de juegos ex115 que son capaces de decodificar los datos codificados mencionados anteriormente. Cada uno de los dispositivos que han recibido los datos distribuidos decodifica y reproduce los datos codificados (es decir, funciona como el aparato de decodificación de imágenes según un aspecto de la presente invención).
Los datos capturados pueden ser codificados por la cámara ex113 o el servidor de transmisión por secuencias ex103 que transmite los datos, o los procesos de codificación pueden ser compartidos entre la cámara ex113 y el servidor de transmisión por secuencias ex103. De manera similar, los datos distribuidos pueden ser decodificados por los clientes o el servidor de transmisión por secuencias ex103, o los procesos de decodificación pueden ser compartidos entre los clientes y el servidor de transmisión por secuencias ex103. Además, los datos de las imágenes fijas y video capturados no solo por la cámara ex113, sino también por la cámara ex116 pueden ser transmitidos al servidor de transmisión por secuencias ex103 a través del sistema informático ex111. Los procesos de codificación pueden ser realizados por la cámara ex116, el sistema informático ex111 o el servidor de transmisión por secuencias ex103, o pueden ser compartidos entre ellos.
Además, los procesos de codificación y decodificación pueden realizarse mediante un LSI ex500 generalmente incluido en cada una de los sistemas informáticos ex111 y los dispositivos. El LSI ex500 puede configurarse de un solo chip o una pluralidad de chips. El software para codificar y decodificar video puede integrarse en algún tipo de medio de grabación (tal como un CD-ROM, un disco flexible y un disco duro) que sea legible por el sistema informático ex111 y otros, y los procesos de codificación y decodificación se pueden realizar utilizando el software. Además, cuando el teléfono celular ex114 está equipado con una cámara, los datos de video obtenidos por la cámara pueden ser transmitidos. Los datos de video son datos codificados por el LSI ex500 incluido en el teléfono celular ex114.
Además, el servidor de transmisión por secuencias ex103 puede estar compuesto por servidores y sistemas informáticos, y puede descentralizar los datos y procesar los datos descentralizados, registrar o distribuir datos.
Según se ha descrito anteriormente, los clientes pueden recibir y reproducir los datos codificados en el sistema proveedor de contenidos ex100. En otras palabras, los clientes pueden recibir y decodificar la información transmitida por el usuario y reproducir los datos decodificados en tiempo real en el sistema proveedor de contenidos ex100, de modo que el usuario que no tiene ningún derecho ni equipo en particular puede implementar una difusión personal.
Aparte del ejemplo del sistema proveedor de contenidos ex100, al menos uno de entre el aparato de codificación de imágenes en movimiento (aparato de codificación de imágenes) y el aparato de decodificación de imágenes en movimiento (aparato de decodificación de imágenes) descritos en cada una de las formas de realización pueden implementarse en una sistema de difusión digital ex200 ilustrado en la figura 21. Más específicamente, una estación de difusión ex201 se comunica o transmite, a través de ondas de radio a un satélite de difusión ex202, datos multiplexados obtenidos por multiplexación de datos de audio y otros en datos de video. Los datos de video son datos codificados por el procedimiento de codificación de imágenes en movimiento descrito en cada una de las formas de realización (es decir, datos codificados por el aparato de codificación de imágenes según un aspecto de la presente invención). Al recibir los datos multiplexados, el satélite de difusión ex202 transmite ondas de radio para su difusión. Entonces, una antena de uso doméstico ex204 con una función de recepción de difusión por satélite recibe las ondas de radio. A continuación, un dispositivo tal como un televisor (receptor) ex300 y un decodificador (STB) ex217 decodifica los datos multiplexados recibidos, y reproduce los datos decodificados (es decir, funciona como el aparato de decodificación de imágenes según un aspecto de la presente invención).
Además, un lector/grabador ex218 (i) lee y decodifica los datos multiplexados grabados en un medio de grabación ex215, tal como un DVD y un BD, o (i) codifica señales de video en el medio de grabación ex215, y en algunos casos, escribe datos obtenidos por multiplexación de una señal de audio en los datos codificados. El lector/grabador ex218 puede incluir el aparato de decodificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento según se muestra en cada una de las formas de realización. En este caso, se muestran las señales de video reproducidas en el monitor ex219, y pueden ser reproducidas por otro dispositivo o sistema que utiliza el medio de grabación ex215 en el que son grabados los datos multiplexados. También es posible implementar el aparato de decodificación de imágenes en movimiento en el decodificador ex217 conectado al cable ex203 para una televisión por cable o a la antena ex204 para una difusión por satélite y/o terrestre, a fin de visualizar las señales de video en el monitor ex219 del televisor ex300. El aparato de decodificación de imágenes en movimiento puede no implementarse en el decodificador sino en el televisor ex300.
La figura 22 ilustra el televisor (receptor) ex300 que utiliza el procedimiento de codificación de imágenes en movimiento y el procedimiento de decodificación de imágenes en movimiento descrito en cada una de las formas de realización. El televisor ex300 incluye: un sintonizador ex301 que obtiene o proporciona datos multiplexados obtenidos por multiplexación de datos de audio en datos de video, a través de la antena ex204 o el cable ex203, etc. que recibe una transmisión; una unidad de modulación/demodulación ex302 que demodula los datos multiplexados recibidos o modula los datos en datos multiplexados para ser suministrados al exterior; y una unidad de multiplexación/demultiplexación ex303 que demultiplexa los datos multiplexados modulados en datos de video y datos de audio, o multiplexa datos de video y datos de audio codificados por una unidad de procesamiento de señales ex306 en datos.
El televisor ex300 incluye además: una unidad de procesamiento de señales ex306 que incluye una unidad de procesamiento de señales de audio ex304 y una unidad de procesamiento de señales de video ex305 que decodifican datos de audio y video y codifican datos de audio y video, respectivamente (que funcionan como el aparato de codificación de imágenes y el aparato de decodificación de imágenes de acuerdo con los aspectos de la presente invención); y una unidad de salida ex309 que incluye un altavoz ex307 que proporciona la señal de audio decodificada, y una unidad de visualización ex308 que muestra la señal de video decodificada, tal como una pantalla. Además, el televisor ex300 incluye una unidad de interfaz ex317 que incluye una unidad de entrada de operación ex312 que recibe una entrada de una operación de usuario. Además, el televisor ex300 incluye una unidad de control ex310 que controla en general cada elemento que conforma el televisor ex300, y una unidad de circuito de fuente de alimentación ex311 que suministra energía a cada uno de los elementos. Aparte de la unidad de entrada de operación ex312, la unidad de interfaz ex317 puede incluir: un puente ex313 que está conectado a un dispositivo externo, tal como el lector/grabador ex218; una unidad de ranura ex314 para permitir la conexión del medio de grabación ex216, tal como una tarjeta SD; un controlador ex315 para conexión a un medio de grabación externo, tal como un disco duro; y un módem ex316 para conexión a una red telefónica. En este caso, el medio de grabación ex216 puede grabar eléctricamente información utilizando un elemento de memoria de semiconductores no volátil/volátil para almacenamiento. Los elementos constitutivos del televisor ex300 están conectados entre sí a través de un bus síncrono.
En primer lugar, se describirá la configuración en la que el televisor ex300 decodifica datos multiplexados obtenidos del exterior a través de la antena ex204 y otros y reproduce los datos decodificados. En el televisor ex300, tras una operación de usuario a través de un controlador remoto ex220 y otros, la unidad de multiplexación/demultiplexación ex303 demultiplexa los datos multiplexados demodulados por la unidad de modulación/demodulación ex302, bajo el control de la unidad de control ex310 que incluye una CPU. Además, la unidad de procesamiento de señales de audio ex304 decodifica los datos de audio demultiplexados, y la unidad de procesamiento de señales de video ex305 decodifica los datos de video demultiplexados, utilizando el procedimiento de decodificación descrito en cada una de las formas de realización, en el televisor ex300. La unidad de salida ex309 proporciona la señal de video y la señal de audio decodificadas al exterior, respectivamente. Cuando la unidad de salida ex309 proporciona la señal de video y la señal de audio, las señales pueden ser almacenadas temporalmente en unos búferes ex318 y ex319, y otros para que las señales se reproduzcan en sincronización entre sí. Además, el televisor ex300 puede leer datos multiplexados no a través de una difusión y otros, sino a través de los medios de grabación ex215 y ex216, tales como un disco magnético, un disco óptico y una tarjeta SD. A continuación, se describirá una configuración en la que el televisor ex300 codifica una señal de audio y una señal de video, y transmite los datos al exterior o escribe los datos en un medio de grabación. En el televisor ex300, tras una operación de usuario a través del controlador remoto ex220 y otros, la unidad de procesamiento de señales de audio ex304 codifica una señal de audio, y la unidad de procesamiento de señales de video ex305 codifica una señal de video, bajo el control de la unidad de control ex310 utilizando el procedimiento de codificación descrito en cada una de las formas de realización. La unidad de multiplexación/demultiplexación ex303 multiplexa la señal de video y la señal de audio codificadas, y proporciona la señal resultante al exterior. Cuando la unidad de multiplexación/demultiplexación ex303 multiplexa la señal de video y la señal de audio, se pueden almacenar las señales temporalmente en los búferes ex320 y ex321, y otros para que las señales se reproduzcan en sincronización entre sí. En este caso, los búferes ex318, ex319, ex320 y ex321 pueden ser diversos según se ilustra, o al menos un búfer puede ser compartido en el televisor ex300. Además, los datos pueden almacenarse en un búfer para evitar el desbordamiento y subdesbordamiento del sistema entre la unidad de modulación/demodulación ex302 y la unidad de multiplexación/demultiplexación ex303, por ejemplo.
Además, el televisor ex300 puede incluir una configuración para recibir una entrada AV desde un micrófono o una cámara distinta de la configuración para obtener datos de audio y video desde un medio de grabación o difusión, y puede codificar los datos obtenidos. Aunque el televisor ex300 puede codificar, multiplexar y proporcionar datos externos en la descripción, puede ser capaz de solo recibir, decodificar y proporcionar datos externos, pero no la codificación, multiplexación y datos externos.
Además, cuando el lector/grabador ex218 lee o escribe datos multiplexados de o en un medio de grabación, uno de entre el televisor ex300 y el lector/grabador ex218 puede decodificar o codificar los datos multiplexados, y el televisor ex300 y el lector/grabador ex218 pueden compartir la decodificación o codificación.
Como ejemplo, la figura 23 ilustra una configuración de una unidad de reproducción/grabación de información ex400 cuando los datos se leen o escriben de o en un disco óptico. La unidad de reproducción/grabación de información ex400 incluye unos elementos constituyentes ex401, ex402, ex403, ex404, ex405, ex406 y ex407 que se describirán a continuación. El cabezal óptico ex401 irradia un punto láser en una superficie de grabación del medio de grabación ex215 que es un disco óptico para escribir información, y detecta la luz reflejada procedente de la superficie de grabación del medio de grabación ex215 para leer la información. La unidad de grabación de modulación ex402 controla eléctricamente un láser semiconductor incluido en el cabezal óptico ex401, y modula la luz láser de acuerdo con los datos grabados. La unidad de demodulación de reproducción ex403 amplifica una señal de reproducción obtenida detectando eléctricamente la luz reflejada procedente de la superficie de grabación utilizando un detector fotográfico incluido en el cabezal óptico ex401, y demodula la señal de reproducción separando un componente de señal grabado en el medio de grabación ex215 para reproducir la información necesaria. El búfer ex404 retiene temporalmente la información a grabar en el medio de grabación ex215 y la información reproducida del medio de grabación ex215. El motor de disco ex405 hace girar el medio de grabación ex215. La unidad de servo control ex406 mueve el cabezal óptico ex401 a una pista de información predeterminada mientras controla la unidad de rotación del motor de disco ex405 para seguir el punto del láser. La unidad de control del sistema ex407 controla en general la unidad de reproducción/grabación de información ex400. Los procesos de lectura y escritura pueden ser implementados por la unidad de control del sistema ex407 usando información diversa almacenada en el búfer ex404 y generando y agregando nueva información según sea necesario, y por la unidad de grabación de modulación ex402, la unidad de demodulación de reproducción ex403 y la unidad de servo control ex406 que graban y reproducen información a través del cabezal óptico ex401 mientras son operadas de manera coordinada. La unidad de control del sistema ex407 incluye, por ejemplo, un microprocesador, y ejecuta el procesamiento haciendo que un sistema informático ejecute un programa para leer y escribir.
Aunque el cabezal óptico ex401 irradia un punto láser en la descripción, puede realizar grabaciones de alta densidad utilizando luz de campo cercano.
La figura 24 ilustra el medio de grabación ex215 que es el disco óptico. En la superficie de grabación del medio de grabación ex215, las ranuras de guiado están formadas en espiral, y una pista de información ex230 graba, por adelantado, información de dirección que indica una posición absoluta en el disco según el cambio en la forma de las ranuras de guiado. La información de dirección incluye información para determinar las posiciones de los bloques de grabación ex231 que son una unidad para grabar datos. La reproducción de la pista de información ex230 y la lectura de la información de dirección en un aparato que graba y reproduce datos puede llevar a la determinación de las posiciones de los bloques de grabación. Además, el medio de grabación ex215 incluye un área de grabación de datos ex233, un área de circunferencia interna ex232 y un área de circunferencia externa ex234. El área de grabación de datos ex233 es un área que se utiliza para grabar los datos del usuario. El área de circunferencia interna ex232 y el área de circunferencia externa ex234 que están dentro y fuera del área de grabación de datos ex233, respectivamente, son para uso específico excepto para registrar los datos del usuario. La unidad de reproducción/grabación de información 400 lee y escribe audio codificado, datos de video codificados o datos multiplexados obtenidos por multiplexación de los datos codificados de audio y video, de y en el área de grabación de datos ex233 del medio de grabación ex215.
Aunque se describe un disco óptico que tiene una capa, tal como un DVD y un BD, como un ejemplo en la descripción, el disco óptico no se limita a esto, y puede ser un disco óptico que tiene una estructura multicapa y es capaz de ser grabado en una parte distinta de la superficie. Además, el disco óptico puede tener una estructura para la grabación/reproducción multidimensional, tal como la grabación de información usando luz de colores con diferentes longitudes de onda en la misma porción del disco óptico y para grabar información que tenga diferentes capas desde varios ángulos.
Además, un automóvil ex210 que tiene una antena ex205 puede recibir datos del satélite ex202 y otros, y reproducir video en un dispositivo de visualización tal como un sistema de navegación de automóviles ex211 instalado en el automóvil ex210, en el sistema de difusión digital ex200. En este caso, una configuración del sistema de navegación para automóviles ex211 será una configuración que, por ejemplo, incluirá una unidad de recepción de GPS de la configuración ilustrada en la figura 22. Lo mismo ocurrirá con la configuración del sistema informático ex111, el teléfono celular ex114 y otros.
La figura 25A ilustra el teléfono celular ex114 que utiliza el procedimiento de codificación de imágenes en movimiento y el procedimiento de decodificación de imágenes en movimiento descritos en las formas de realización. El teléfono celular ex114 incluye: una antena ex350 para transmitir y recibir ondas de radio a través de la estación base ex110; una unidad de cámara ex365 capaz de capturar imágenes fijas y en movimiento; y una unidad de visualización ex358 tal como una pantalla de cristal líquido para mostrar los datos tales como video decodificado capturado por la unidad de cámara ex365 o recibido por la antena ex350. El teléfono celular ex114 incluye además: una unidad de cuerpo principal que incluye una unidad de teclado de operación ex366; una unidad de salida de audio ex357, tal como un altavoz para la salida de audio; una unidad de entrada de audio ex356, tal como un micrófono para la entrada de audio; una unidad de memoria ex367 para almacenar video o imágenes fijas capturados, audio grabado, datos codificados o decodificados del video recibido, las imágenes fijas, correos electrónicos u otros; y una unidad de ranura ex364 que es una unidad de interfaz para un medio de grabación que almacena datos de la misma manera que la unidad de memoria ex367.
A continuación, se describirá un ejemplo de una configuración del teléfono celular ex114 con referencia a la figura 25B. En el teléfono celular ex114, una unidad de control principal ex360 diseñada para controlar en conjunto cada unidad del cuerpo principal, incluida la unidad de visualización ex358, así como la unidad de teclado de operación ex366, están conectadas entre sí, a través de un bus síncrono ex370, a una unidad de circuito de alimentación ex361, una unidad de control de entrada de operación ex362, una unidad de procesamiento de señales de video ex355, una unidad de interfaz de cámara ex363, una unidad de control de pantalla de cristal líquido (LCD) ex359, una unidad de modulación/demodulación ex352, una unidad de multiplexación/demultiplexación ex353, una unidad de procesamiento de señales de audio ex354, la unidad de ranura ex364 y la unidad de memoria ex367.
Cuando se activa una tecla de fin de llamada o una tecla de encendido mediante la operación de un usuario, la unidad de circuito de fuente de alimentación ex361 suministra energía de una batería a las respectivas unidades para activar el teléfono celular ex114.
En el teléfono celular ex114, la unidad de procesamiento de señales de audio ex354 convierte las señales de audio recogidas por la unidad de entrada de audio ex356 en modo de conversación de voz en señales de audio digital bajo el control de la unidad de control principal ex360 que incluye una CPU, ROM y RAM. Luego, la unidad de modulación/demodulación ex352 realiza un procesamiento de espectro extendido en las señales de audio digital, y la unidad de transmisión y recepción ex351 realiza una conversión de digital a analógico y una conversión de frecuencia en los datos, para transmitir los datos resultantes a través de la antena ex350. Además, en el teléfono celular ex114, la unidad de transmisión y recepción ex351 amplifica los datos recibidos por la antena ex350 en el modo de conversación de voz y realiza la conversión de frecuencia y la conversión de analógico a digital en los datos. Entonces, la unidad de modulación/demodulación ex352 realiza un procesamiento de espectro extendido inverso en los datos, y la unidad de procesamiento de señales de audio ex354 los convierte en señales de audio analógicas, para emitirlas a través de la unidad de salida de audio ex357.
Además, cuando se transmite un correo electrónico en el modo de comunicación de datos, los datos de texto del correo electrónico entrados operando la unidad de teclado de operación ex366 y otros del cuerpo principal son enviados a la unidad de control principal ex360 a través de la unidad de control de entrada de operación ex362. La unidad de control principal ex360 hace que la unidad de modulación/demodulación ex352 realice el procesamiento de espectro extendido en los datos de texto, y la unidad de transmisión y recepción ex351 realice la conversión de digital a analógico y la conversión de frecuencia en los datos resultantes para transmitir los datos a la estación base ex110 a través de la antena ex350. Cuando se recibe un correo electrónico, se realiza en los datos recibidos el procesamiento que es aproximadamente inverso al procesamiento para transmitir un correo electrónico, y se proporcionan los datos resultantes a la unidad de visualización ex358.
Cuando se transmite video, imágenes fijas o video y audio en el modo de comunicación de datos, la unidad de procesamiento de señales de video ex355 comprime y codifica señales de video suministradas por la cámara ex365 usando el procedimiento de codificación de imágenes en movimiento que se muestra en cada una de las formas de realización (es decir, funciona como el aparato de codificación de imágenes de acuerdo con el aspecto de la presente invención), y transmite los datos de video codificados a la unidad de multiplexación/demultiplexación ex353. Por el contrario, cuando la unidad de cámara ex365 captura video, imágenes fijas y otros, la unidad de procesamiento de señales de audio ex354 codifica señales de audio recogidas por la unidad de entrada de audio ex356, y transmite los datos de audio codificados a la unidad de multiplexación/demultiplexación ex353.
La unidad de multiplexación/demultiplexación ex353 multiplexa los datos de vídeo codificados suministrados por la unidad de procesamiento de señales de vídeo ex355 y los datos de audio codificados suministrados por la unidad de procesamiento de señales de audio ex354, usando un procedimiento predeterminado. Luego, la unidad de modulación/demodulación (unidad de circuito de modulación/demodulación) ex352 realiza el procesamiento de espectro extendido en los datos multiplexados, y la unidad de transmisión y recepción ex351 realiza la conversión de digital a analógico y la conversión de frecuencia en los datos para transmitir los datos resultantes a través de la antena ex350.
Cuando se reciben datos de un archivo de video que está vinculado a una página web y otros en el modo de comunicación de datos o cuando se recibe un correo electrónico con video y/o audio adjunto, con el fin de decodificar los datos multiplexados recibidos a través de la antena ex350, la unidad de multiplexación/demultiplexación ex353 demultiplexa los datos multiplexados en una secuencia de bits de datos de video y una secuencia de bits de datos de audio, y suministra los datos de video codificados a la unidad de procesamiento de señales de video ex355 y los datos de audio codificados a la unidad de procesamiento de señales de audio ex354, a través del bus síncrono ex370. La unidad de procesamiento de señales de video ex355 decodifica la señal de video usando un procedimiento de decodificación de imágenes en movimiento correspondiente al procedimiento de codificación de imágenes en movimiento que se muestra en cada una de las formas de realización (es decir, funciona como el aparato de decodificación de imágenes de acuerdo con el aspecto de la presente invención),y luego la unidad de visualización ex358 muestra, por ejemplo, el video y las imágenes fijas incluidas en el archivo de video vinculado a la página web a través de la unidad de control LCD ex359. Además, la unidad de procesamiento de señales de audio ex354 decodifica la señal de audio, y la unidad de salida de audio ex357 proporciona el audio.
Además, de manera similar al televisor ex300, un terminal tal como el teléfono celular ex114 probablemente tiene 3 tipos de configuraciones de implementación que incluyen no solo (i) un terminal de transmisión y recepción que incluye tanto un aparato de codificación como un aparato de decodificación, sino también (ii) un terminal de transmisión que incluye solo un aparato de codificación y (iii) un terminal de recepción que incluye solo un aparato de decodificación. Aunque el sistema de difusión digital ex200 recibe y transmite los datos multiplexados obtenidos por multiplexación de datos de audio en datos de video en la descripción, los datos multiplexados pueden ser datos obtenidos por multiplexación no de datos de audio sino de datos de caracteres relacionados con video sobre datos de video, y pueden no ser datos multiplexados sino datos de video en sí.
Como tal, el procedimiento de codificación de imágenes en movimiento y el procedimiento de decodificación de imágenes en movimiento en cada una de las formas de realización pueden usarse en cualquiera de los dispositivos y sistemas descritos. Por lo tanto, se pueden obtener las ventajas descritas en cada una de las formas de realización.
Además, la presente invención no está limitada a las formas de realización anteriores y pueden realizarse diversas modificaciones y revisiones dentro del alcance de la presente invención.
(Forma de realización 5)
Los datos de video pueden generarse conmutando, según sea necesario, entre (i) el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento que se muestra en cada una de las formas de realización y (ii) un procedimiento de codificación de imágenes en movimiento o un aparato de codificación de imágenes en movimiento en conformidad con un estándar diferente, tal como MPEG-2, MPEG-4 AVC y VC-1.
En este caso, cuando se genera una pluralidad de datos de vídeo que satisfacen los diferentes estándares y luego se decodifican, se requiere una selección de los procedimientos de decodificación para ajustarse a los diferentes estándares. Sin embargo, ya que no se puede detectar a qué estándar se ajusta cada uno de entre la pluralidad de los datos de vídeo a decodificar, no puede seleccionarse un procedimiento de decodificación apropiado.
En vista de esto, los datos multiplexados obtenidos por multiplexación de datos de audio y otros en datos de video tienen una estructura que incluye información de identificación que indica a qué estándar se ajustan los datos de video. A continuación se describirá la estructura específica de los datos multiplexados que incluyen los datos de video generados en el procedimiento de codificación de imágenes en movimiento y mediante el aparato de codificación de imágenes en movimiento que se muestra en cada una de las formas de realización. Los datos multiplexados son una secuencia digital en el formato de secuencia de transporte MPEG-2.
La figura 26 ilustra una estructura de los datos multiplexados. Según se ilustra en la figura 26, los datos multiplexados se pueden obtener multiplexando al menos uno de entre una secuencia de video, una secuencia de audio, una secuencia de gráficos de presentación (PG) y una secuencia de gráficos interactivos. La secuencia de video representa el video principal y el video secundario de una película, la secuencia de audio (IG) representa una parte de audio principal y una parte de audio secundaria que se mezcla con la parte de audio principal, y la secuencia de gráficos de presentación representa los subtítulos de la película. En este caso, el video principal es el video normal a mostrar en una pantalla, y el video secundario es el video a mostrar en una ventana más pequeña en el video principal. Además, la secuencia de gráficos interactivos representa una pantalla interactiva a generar organizando los componentes de la GUI en una pantalla. La secuencia de video es codificada en el procedimiento de codificación de imágenes en movimiento o mediante el aparato de codificación de imágenes en movimiento que se muestra en cada una de las formas de realización, o en un procedimiento de codificación de imágenes en movimiento o mediante un aparato de codificación de imágenes en movimiento que cumplen con un estándar convencional, tal como MPEG-2, MPEG-4 AVC, y VC-1. La secuencia de audio es codificada de acuerdo con un estándar, tal como Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD y PCM lineal.
Cada secuencia incluida en los datos multiplexados se identifica por medio de un PID. Por ejemplo, se asigna 0x1011 a la secuencia de video a utilizar para el video de una película, se asignan 0x1100 - 0x111F a las secuencias de audio, se asignan 0x1200 - 0x121F a las secuencias de presentación de gráficos, se asignan 0x1400 - 0x141F a las secuencias de gráficos interactivos, se asignan 0x1B00 - 0x1B1F a las secuencias de video a utilizar para el video secundario de la película, y se asignan 0x1A00 - 0x1A1F a las secuencias de audio a utilizar para el audio secundario a mezclar con el audio principal.
La figura 27 ilustra esquemáticamente cómo se multiplexan los datos. En primer lugar, una secuencia de video ex235 compuesta de fotogramas de video y una secuencia de audio ex238 compuesta de tramas de audio son transformadas en una secuencia de paquetes PES ex236 y una secuencia de paquetes PES ex239, y además en paquetes TS ex237 y paquetes TS ex240, respectivamente. De manera similar, los datos de una secuencia de gráficos de presentación ex241 y los datos de una secuencia de gráficos interactivos ex244 son transformadas en una secuencia de paquetes PES ex242 y una secuencia de paquetes PES ex245, y además en paquetes TS ex243 y paquetes TS ex246, respectivamente. Estos paquetes TS son multiplexados en una secuencia para obtener los datos multiplexados ex247.
La figura 28 ilustra cómo se almacena una secuencia de video en una secuencia de paquetes PES con más detalle. La primera barra en la figura 28 muestra una secuencia de fotogramas de video en una secuencia de video. La segunda barra muestra la secuencia de paquetes PES. Según indican las flechas designadas como yy1, yy2, yy3, e yy4 en la figura 28, la secuencia de video se divide en imágenes como imágenes I, imágenes B e imágenes P, siendo cada una de las cuales una unidad de presentación de video, y siendo las imágenes almacenadas en una carga útil de cada uno de los paquetes PES. Cada uno de los paquetes PES tiene una cabecera PES, y la cabecera PES almacena un sello de tiempo de presentación (PTS) que indica un tiempo de visualización de la imagen, y un sello de tiempo de decodificación (DTS) que indica un tiempo de decodificación de la imagen.
La figura 29 ilustra un formato de paquetes TS a escribir finalmente en los datos multiplexados. Cada uno de los paquetes TS es un paquete de longitud fija de 188 bytes que incluye una cabecera TS de 4 bytes que tiene información, tal como un PID para identificar una secuencia y una carga útil de TS de 184 bytes para almacenar datos. Los paquetes PES se dividen y almacenan en las cargas útiles de TS, respectivamente. Cuando se utiliza una BD ROM, a cada uno de los paquetes TS se le asigna una TP_Extra_Header de 4 bytes, lo que da como resultado unos paquetes de origen de 192 bytes. Los paquetes de origen son escritos en los datos multiplexados. La TP_Extra_Header almacena información tal como un Arrival_Time_Stamp (ATS). El ATS muestra un momento de inicio de transferencia en el que cada uno de los paquetes TS será transferido a un filtro PID. Los paquetes de origen son dispuestos en los datos multiplexados según se muestra en la parte inferior de la figura 29. Los números que se incrementan desde la cabecera de los datos multiplexados se denominan números de paquete de origen (SPN).
Cada uno de los paquetes TS incluidos en los datos multiplexados incluye no solo secuencias de audio, video, subtítulos y otros, sino también una Tabla de Asociación de Programas (pAt ), una Tabla de Mapas de Programas (PMT) y una Referencia de Reloj de Programa (PCR). La PAT muestra lo que indica un PID en un PMT utilizado en los datos multiplexados, y un PID de la PAT misma es registrado como cero. La PMT almacena los PID de las secuencias de video, audio, subtítulos y otros incluidos en los datos multiplexados, e información de atributos de las secuencias correspondientes a los PID. La PMT también tiene varios descriptores relacionados con los datos multiplexados. Los descriptores tienen información tal como información de control de copia que muestra si se permite o no la copia de los datos multiplexados. La PCR almacena información de tiempo STC correspondiente a un ATS que muestra cuando se transfiere el paquete de PCR a un decodificador, con el fin de conseguir la sincronización entre un reloj de hora de llegada (ATC) que es un eje de tiempo de ATS y un reloj de hora del sistema (STC) que es un eje de tiempo de PTS y DTS.
La figura 30 ilustra en detalle la estructura de datos de la PMT. Se dispone una cabecera PMT en la parte superior de la PMT. La cabecera de PMT describe la longitud de los datos incluidos en la PMT y otros. Se dispone una pluralidad de descriptores relacionados con los datos multiplexados después de la cabecera de PMT. Se describe información tal como la información de control de copia en los descriptores. Después de los descriptores, se dispone una pluralidad de piezas de información de secuencia relacionada con las secuencias incluidas en los datos multiplexados. Cada pieza de información de secuencia incluye descriptores de secuencia, cada uno de los cuales describe información, tal como un tipo de secuencia para identificar un códec de compresión de una secuencia, un PID de secuencia e información de atributos de secuencia (tal como una velocidad de fotogramas o una relación de aspecto). Los descriptores de secuencia son iguales en número al número de secuencias en los datos multiplexados.
Cuando los datos multiplexados se graban en un medio de grabación y otros, se graban junto con archivos de información de datos multiplexados.
Cada uno de los archivos de información de datos multiplexados es información de gestión de los datos multiplexados según se muestra en la figura 31. Los archivos de información de datos multiplexados están en una correspondencia uno a uno con los datos multiplexados, y cada uno de los archivos incluye información de datos multiplexados, información de atributos de secuencia y un mapa de entrada.
Según se ilustra en la figura 31, la información de datos multiplexados incluye una velocidad del sistema, una hora de inicio de reproducción y una hora de finalización de reproducción. La velocidad del sistema indica la velocidad de transferencia máxima a la que un decodificador objetivo del sistema que se describirá más adelante transfiere los datos multiplexados a un filtro PID. Los intervalos de los ATS incluidos en los datos multiplexados se establecen no por encima de una velocidad del sistema. La hora de inicio de la reproducción indica un PTS en un fotograma de video al principio de los datos multiplexados. Se agrega un intervalo de un fotograma a un PTS en un fotograma de video al final de los datos multiplexados, y se establece el PTS igual a la hora de finalización de la reproducción.
Según se muestra en la figura 32, se registra una pieza de información de atributos en la información de atributos de la secuencia, para cada PID de cada secuencia incluida en los datos multiplexados. Cada pieza de información de atributos tiene información diferente dependiendo de si la secuencia correspondiente es una secuencia de video, una secuencia de audio, una secuencia de gráficos de presentación o una secuencia de gráficos interactivos. Cada pieza de información de atributos de secuencia de video contiene información que incluye qué tipo de códec de compresión se usa para comprimir la secuencia de video, y la resolución, la relación de aspecto y la velocidad de fotogramas de las piezas de datos de imagen que se incluye en la secuencia de video. Cada pieza de información de atributos de secuencia de audio contiene información que incluye qué tipo de códec de compresión se utiliza para comprimir la secuencia de audio, cuántos canales se incluyen en la secuencia de audio, qué idioma admite la secuencia de audio y lo alta que es la frecuencia de muestreo. La información de atributos de secuencia de video y la información de atributos de secuencia de audio se utilizan para inicializar un decodificador antes de que el reproductor reproduzca la información.
En la presente forma de realización, los datos multiplexados a utilizar son de un tipo de secuencia incluido en la PMT. Además, cuando los datos multiplexados se graban en un medio de grabación, se utiliza la información de atributos de secuencia de video incluida en la información de datos multiplexados. Más específicamente, el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización incluye una etapa o una unidad para asignar información única que indica datos de video generados por el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento en cada una de las formas de realización, al tipo de secuencia incluido en la PMT o la información de atributos de secuencia de video. Con la configuración, los datos de video generados por el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización pueden distinguirse de los datos de video que satisfacen otro estándar.
Además, la figura 33 ilustra etapas del procedimiento de decodificación de imágenes en movimiento de acuerdo con la presente forma de realización. En la etapa exS100, se obtiene de los datos multiplexados el tipo de secuencia incluido en la PMT o la información de atributos de secuencia de video incluida en la información de datos multiplexados. A continuación, en la etapa exS101, se determina si el tipo de secuencia o la información de atributos de secuencia de video indican o no indican que los datos multiplexados están generados mediante el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento en cada una de las formas de realización. Cuando se determina que el tipo de secuencia o la información de atributos de secuencia de video indica que los datos multiplexados están generados mediante el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento en cada una de las formas de realización, en la etapa exS102, se realiza la decodificación mediante el procedimiento de decodificación de imágenes en movimiento en cada una de las formas de realización. Además, cuando el tipo de secuencia o la información de atributos de secuencia de video indican conformidad con los estándares convencionales, tales como MPEG-2, MPEG-4 AVC y VC-1, en la etapa exS103, se realiza la decodificación mediante un procedimiento de decodificación de imágenes en movimiento que cumplen con los estándares convencionales.
Como tal, la asignación de un nuevo valor único al tipo de secuencia o la información de atributos de secuencia de video permite determinar si el procedimiento de decodificación de imágenes en movimiento o el aparato de decodificación de imágenes en movimiento que se describe en cada una de las formas de realización puede realizar la decodificación. Incluso cuando se reciben datos multiplexados que satisfacen un estándar diferente, se puede seleccionar un procedimiento o aparato de decodificación apropiado. Por lo tanto, resulta posible decodificar información sin ningún error. Además, el procedimiento o aparato de codificación de imágenes en movimiento, o el procedimiento o aparato de decodificación de imágenes en movimiento en la presente forma de realización se puede usar en los dispositivos y sistemas descritos anteriormente.
(Forma de realización 6)
Cada uno de entre los procedimientos de codificación de imágenes en movimiento, el aparato de codificación de imágenes en movimiento, el procedimiento de decodificación de imágenes en movimiento y el aparato de decodificación de imágenes en movimiento en cada una de las formas de realización es realizan generalmente en forma de un circuito integrado o un circuito integrado a gran escala (Large Scale Integrated, LSI). Como ejemplo de LSI, la figura 34 ilustra una configuración de un LSI ex500 que está realizado en un chip. El LSI ex500 incluye los elementos ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 y ex509 que se describen a continuación, y los elementos están conectados entre sí a través de un bus ex510. La unidad de circuito de fuente de alimentación ex505 se activa suministrando energía a cada uno de los elementos cuando la unidad de circuito de fuente de alimentación ex505 es encendida.
Por ejemplo, cuando se realiza la codificación, el LSI ex500 recibe una señal AV de un micrófono ex117, una cámara ex113 y otros a través de un E/S AV ex509 bajo el control de una unidad de control ex501 que incluye una CPU ex502, un controlador de memoria ex503, un controlador de secuencias ex504 y una unidad de control de frecuencia de operación ex512. La señal AV recibida se almacena temporalmente en una memoria externa ex511, tal como una SDRAM. Bajo el control de la unidad de control ex501, se segmentan los datos almacenados en porciones de datos de acuerdo con la cantidad y velocidad de procesamiento a transmitir a una unidad de procesamiento de señales ex507. Luego, la unidad de procesamiento de señales ex507 codifica una señal de audio y/o una señal de video. En este caso, la codificación de la señal de video es la codificación descrita en cada una de las formas de realización. Además, la unidad de procesamiento de señales ex507 a veces multiplexa los datos de audio codificados y los datos de video codificados, y una secuencia de E/S ex506 proporciona los datos multiplexados al exterior. Los datos multiplexados proporcionados son transmitidos a la estación base ex107 o escritos en el medio de grabación ex215. Cuando se multiplexan los conjuntos de datos, dichos datos deben almacenarse temporalmente en el búfer ex508 para que los conjuntos de datos se sincronicen entre sí.
Aunque la memoria ex511 es un elemento externo al LSI ex500, puede ser incluido en el LSI ex500. El búfer ex508 no está limitado a un búfer, sino que puede estar compuesto de búferes. Además, el LSI ex500 se puede convertir en un chip o una pluralidad de chips.
Además, aunque la unidad de control ex501 incluye la CPU ex502, el controlador de memoria ex503, el controlador de secuencias ex504, la unidad de control de frecuencia de operación ex512, la configuración de la unidad de control ex501 no se limita a esto. Por ejemplo, la unidad de procesamiento de señales ex507 puede incluir además una CPU. La inclusión de otra CPU en la unidad de procesamiento de señales ex507 puede mejorar la velocidad de procesamiento. Además, como otro ejemplo, la CPU ex502 puede servir o ser parte de la unidad de procesamiento de señales ex507 y, por ejemplo, puede incluir una unidad de procesamiento de señales de audio. En dicho caso, la unidad de control ex501 incluye la unidad de procesamiento de señales ex507 o la CPU ex502 que incluye una parte de la unidad de procesamiento de señales ex507.
El nombre utilizado en este documento es LSI, pero también puede llamarse IC, sistema LSI, súper LSI o ultra LSI según el grado de integración.
Además, las formas de conseguir la integración no se limitan a LSI, y un circuito especial o un procesador de propósito general, etc., también puede conseguir la integración. Se puede usar para el mismo propósito una matriz de puerta programable de campo (FPGA) que se puede programar después de la fabricación del LSI o un procesador reconfigurable que permite la reconfiguración de la conexión o la configuración de un LSI. Dicho dispositivo lógico programable puede ejecutar normalmente el procedimiento de codificación de imágenes en movimiento y el procedimiento de decodificación de imágenes en movimiento descritos en cada una de las formas de realización, cargando o leyendo de una memoria un programa incluido en software o firmware.
En el futuro, con el avance en la tecnología de semiconductores, una tecnología completamente nueva puede reemplazar a los LSI. Los bloques funcionales pueden integrarse utilizando dicha tecnología. La posibilidad es que la presente invención sea aplicada a la biotecnología.
(Forma de realización 7)
Cuando se decodifican los datos de video generados en el procedimiento de codificación de imágenes en movimiento o mediante el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización, en comparación con cuando se decodifican los datos de video que satisfacen un estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, probablemente aumenta la cantidad de procesamiento. Por lo tanto, el LSI ex500 debe ser configurado a una frecuencia de operación superior a la de la CPU ex502 a usar cuando se decodifican datos de video que cumplen con el estándar convencional. Sin embargo, cuando la frecuencia de operación se establece mayor, aumenta el consumo de energía.
En vista de esto, el aparato de decodificación de imágenes en movimiento, tal como el televisor ex300 y el LSI ex500, está configurado para determinar a qué estándar se ajustan los datos de video, y conmutar entre las frecuencias de operación según el estándar determinado. La figura 35 ilustra una configuración ex800 en la presente forma de realización. Una unidad de conmutación de frecuencia de operación ex803 establece una frecuencia de operación a una frecuencia de operación mayor cuando los datos de video son generados mediante el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización. Luego, la unidad de conmutación de frecuencia de operación ex803 envía una instrucción a una unidad de procesamiento de decodificación ex801 que ejecuta el procedimiento de decodificación de imágenes en movimiento descrito en cada una de las formas de realización para decodificar los datos de video. Cuando los datos de video se ajustan al estándar convencional, la unidad de conmutación de frecuencia de operación ex803 establece una frecuencia de operación a una frecuencia de operación menor que la de los datos de video generados por el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización. Entonces, la unidad de conmutación de frecuencia de operación ex803 envía una instrucción a la unidad de procesamiento de decodificación ex802 que cumple con el estándar convencional para decodificar los datos de video.
Más específicamente, la unidad de conmutación de frecuencia de operación ex803 incluye la CPU ex502 y la unidad de control de frecuencia de operación ex512 de la figura 34. En este caso, cada una de entre la unidad de procesamiento de decodificación ex801 que ejecuta el procedimiento de decodificación de imágenes en movimiento descrito en cada una de las formas de realización y la unidad de procesamiento de decodificación ex802 que satisface el estándar convencional corresponde a la unidad de procesamiento de señales ex507 de la figura 34. La CPU ex502 determina a qué estándar se ajustan los datos de video. Luego, la unidad de control de frecuencia de operación ex512 determina una frecuencia de operación en base a una señal procedente de la CPU ex502. Además, la unidad de procesamiento de señales ex507 decodifica los datos de video en base a la señal procedente de la CPU ex502. Por ejemplo, la información de identificación descrita en la forma de realización 5 se usa probablemente para identificar los datos de video. La información de identificación no se limita a la descrita en la forma de realización 5, sino que puede ser cualquier información siempre que la información indique a qué estándar se ajustan los datos de video. Por ejemplo, cuando se puede determinar a qué estándar se ajustan los datos de video en función de una señal externa para determinar que los datos de video se utilizan para un televisor o un disco, etc., la determinación se puede hacer en base a dicha señal externa. Además, la CPU ex502 selecciona una frecuencia de operación en función de, por ejemplo, una tabla de consulta en la que los estándares de los datos de video están asociados con las frecuencias de operación según se muestra en la figura 37. La frecuencia de operación se puede seleccionar almacenando la tabla de consulta en el búfer ex508 y en una memoria interna de un LSI, y con referencia a la tabla de consulta por parte de la CPU ex502.
La figura 36 ilustra unas etapas para ejecutar un procedimiento en la presente forma de realización. En primer lugar, en la etapa exS200, la unidad de procesamiento de señales ex507 obtiene de los datos multiplexados información de identificación. A continuación, en la etapa exS201, la CPU ex502 determina si los datos de video son generados o no mediante el procedimiento de codificación y el aparato de codificación descritos en cada una de las formas de realización, en base a la información de identificación. Cuando los datos de video son generados mediante el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización, en la etapa exS202, la CPU ex502 transmite una señal a la unidad de control de frecuencia de operación ex512 para establecer la frecuencia de operación a una frecuencia de operación mayor. Luego, la unidad de control de frecuencia de operación ex512 establece la frecuencia de operación a la frecuencia de operación mayor. Por otra parte, cuando la información de identificación indica que los datos de video cumplen con el estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, en la etapa exS203, la CPU ex502 transmite una señal a la unidad de control de frecuencia de operación ex512 para establecer la frecuencia de operación a una frecuencia de operación menor. Luego, la unidad de control de frecuencia de operación ex512 establece la frecuencia de operación a la frecuencia de operación menor que la del caso en el que los datos de video son generados mediante el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización.
Además, junto con la conmutación de las frecuencias de operación, se puede mejorar el efecto de ahorro de energía cambiando el voltaje a aplicar al LSI ex500 o a un aparato que incluye el LSI ex500. Por ejemplo, cuando la frecuencia de operación se establece menor, el voltaje a aplicar al LSI ex500 o al aparato que incluye el LSI ex500 probablemente esté definido a un voltaje menor al del caso en el que la frecuencia de operación se establece mayor.
Además, cuando la cantidad de procesamiento para la decodificación es mayor, la frecuencia de operación puede establecerse mayor, y cuando la cantidad de procesamiento para la decodificación es menor, la frecuencia de operación puede establecerse menor como el procedimiento para establecer la frecuencia de operación. Por lo tanto, el procedimiento de configuración no se limita a los descritos anteriormente. Por ejemplo, cuando la cantidad de procesamiento para decodificar datos de video que cumplen con MPEG-4 AVC es mayor que la cantidad de procesamiento para decodificar datos de video generados por el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización, la frecuencia de operación es probable que sea establecida en orden inverso al establecimiento o configuración descrito anteriormente.
Además, el procedimiento para establecer la frecuencia de operación no se limita al procedimiento para establecer la frecuencia de operación menor. Por ejemplo, cuando la información de identificación indica que los datos de video son generados por el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización, probablemente se establece mayor el voltaje a aplicar al LSI ex500 o al aparato que incluye el LSI ex500. Cuando la información de identificación indica que los datos de video cumplen con el estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, probablemente se establece menor el voltaje a aplicar al LSI ex500 o al aparato que incluye el LSI ex500. Como otro ejemplo, cuando la información de identificación indica que los datos de video son generados por el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización, probablemente no tiene que suspenderse la operación de la CPU ex502. Cuando la información de identificación indica que los datos de video cumplen con el estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, probablemente se suspenda la operación de la CPU ex502 en un momento dado porque la CPU ex502 tiene capacidad de procesamiento adicional. Incluso cuando la información de identificación indica que los datos de video son generados por el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las formas de realización, en el caso de que la CPU ex502 tenga capacidad de procesamiento adicional, probablemente se suspenda la operación de la CPU ex502 en un momento dado. En dicho caso, el tiempo de suspensión probablemente se establezca menor que en el caso en que cuando la información de identificación indica que los datos de video cumplen con el estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1.
Por consiguiente, puede mejorarse el efecto de ahorro de energía conmutando entre las frecuencias de operación de acuerdo con el estándar al que se ajustan los datos de video. Además, cuando el LSI ex500 o el aparato que incluye el LSI ex500 son operados por medio de una batería, puede alargarse la vida de la batería con el efecto de ahorro de energía.
(Forma de realización 8)
Hay casos en los que se proporciona a los dispositivos y sistemas, tal como un televisor y un teléfono celular, una pluralidad de datos de video que satisfacen diferentes estándares. Con el fin de poder decodificar la pluralidad de datos de video que satisfacen los diferentes estándares, la unidad de procesamiento de señales ex507 del LSI ex500 debe cumplir con los diferentes estándares. Sin embargo, con el uso individual de las unidades de procesamiento de señales ex507 que cumplen con los respectivos estándares, se produce un aumento en la escala del circuito del LSI ex500 y un aumento en el coste.
En vista de esto, lo que se concibe es una configuración en la que se comparten parcialmente la unidad de procesamiento de decodificación para implementar el procedimiento de decodificación de imágenes en movimiento descrito en cada una de las formas de realización y la unidad de procesamiento de decodificación que satisface el estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1. Ex900 muestra en la figura 38A un ejemplo de la configuración. Por ejemplo, el procedimiento de decodificación de imágenes en movimiento descrito en cada una de las formas de realización y el procedimiento de decodificación de imágenes en movimiento que satisface el MPEG-4 AVC tienen, parcialmente en común, los detalles de procesamiento, tales como la codificación de entropía, la cuantificación inversa, el filtrado de desbloqueo y la predicción compensada de movimiento. Los detalles de procesamiento a compartir probablemente incluyen el uso de una unidad de procesamiento de decodificación ex902 que satisface el MPEG-4 AVC. Por el contrario, se usa probablemente una unidad dedicada de procesamiento de decodificación ex901 para otro procesamiento que es exclusivo de un aspecto de la presente invención y no satisface el MPEG-4 AVC. Dado que el aspecto de la presente invención se caracteriza por la división de una imagen en particular, por ejemplo, se utiliza la unidad dedicada de procesamiento de decodificación ex901 para la división de una imagen. De no ser así, probablemente se comparte la unidad de procesamiento de decodificación para una de entre la cuantificación inversa, decodificación de entropía, filtrado de desbloqueo y compensación de movimiento, o todo el procesamiento. Se puede compartir la unidad de procesamiento de decodificación para implementar el procedimiento de decodificación de imágenes en movimiento que se describe en cada una de las formas de realización para el procesamiento a compartir, y se puede usar una unidad dedicada de procesamiento de decodificación para el procesamiento exclusivo del MPEG-4 AVC.
Además, ex1000 en la figura 38B muestra otro ejemplo en el que el procesamiento es parcialmente compartido. Este ejemplo utiliza una configuración que incluye una unidad dedicada de procesamiento de decodificación ex1001 que admite el procesamiento exclusivo de un aspecto de la presente invención, una unidad dedicada de procesamiento de decodificación ex1002 que admite el procesamiento exclusivo de otro estándar convencional y una unidad de procesamiento de decodificación ex1003 que admite el procesamiento a compartir entre el procedimiento de decodificación de imágenes en movimiento según el aspecto de la presente invención y el procedimiento convencional de decodificación de imágenes en movimiento. En este caso, las unidades dedicadas de procesamiento de decodificación ex1001 y ex1002 no están necesariamente especializadas para el procesamiento de acuerdo con el aspecto de la presente invención y el procesamiento del estándar convencional, respectivamente, y pueden ser las que son capaces de implementar un procesamiento general. Además, la configuración de la presente forma de realización puede implementarse mediante el LSI ex500.
Como tal, es posible reducir la escala del circuito de un LSI y reducir el coste compartiendo la unidad de procesamiento de decodificación para que el procesamiento sea compartido entre el procedimiento de decodificación de imágenes en movimiento de acuerdo con el aspecto de la presente invención y el procedimiento de decodificación de imágenes en movimiento conforme al estándar convencional.
[Aplicabilidad industrial]
La presente invención se puede aplicar a un procedimiento de codificación de imágenes, a un procedimiento de decodificación de imágenes, a un aparato de codificación de imágenes y a un aparato de decodificación de imágenes. Además, la presente invención se puede utilizar para dispositivos de visualización de información de alta resolución o dispositivos de captura de imágenes que incluyen aparatos de codificación de imágenes, tales como un televisor, una grabadora de video digital, un sistema de navegación para automóviles, un teléfono celular, una cámara fotográfica digital, y una videocámara digital.
[Lista de signos de referencia]
100: Aparato de codificación de imágenes
101: Señal de imagen de entrada
105: Sustractor
106: Señal residual
110: Unidad de transformación
111: Coeficiente de transformación
120: Unidad de cuantificación
121, 291: Coeficiente de cuantificación
130, 230: Unidad de transformación inversa
131, 231: Señal residual
140, 240: Agregador
141, 151, 161, 171, 241, 251, 261, 271: Señal de imagen decodificada
150, 250: Filtro de desbloqueo
160, 260: Filtro de bucle adaptativo
170, 270: Búfer de fotogramas de referencia
180, 280: Unidad de predicción
181, 281: Señal de predicción
190: Unidad de codificación de entropía
191, 201: Señal codificada
200: Aparato de decodificación de imágenes
290: Unidad de decodificación de entropía
300, 310, 330, 340, 350, 360, 370, 390, 400, 410, 420: Imagen
301, 302, 311, 312, 313, 314, 321, 381: Fila
320, 380: Cabecera de sección
331, 332, 333, 341, 342, 343, 344, 351, 354, 361, 362, 364, 365, 371, 372, 373, 374, 391, 392, 393, 394, 401, 402, 403, 404, 411, 412, 413, 414, 415, 421,422, 423, 424: Sección

Claims (6)

REIVINDICACIONES
1. Un procedimiento de decodificación de imágenes para decodificar una secuencia de bits (201) que incluye una señal codificada resultante de codificar una pluralidad de secciones en las que se divide una imagen (400) y cada una de las cuales incluye una pluralidad de unidades de codificación más grandes - LCU,
comprendiendo el procedimiento la etapa de decodificar la señal codificada,
en el que cada una de las secciones es o bien una sección normal (401, 402) que tiene, en una cabecera de sección, información que se puede utilizar para otra sección, o bien una sección dependiente (403, 404) que puede ser decodificada usando información incluida en una cabecera de sección de una sección normal,
en el que
la imagen (400) incluye una pluralidad de filas, filas de LCU (301, 302, 311, 312, 313, 314), cada una de las cuales incluye dos o más de las unidades de codificación más grandes, y
en la etapa de decodificación
en un caso de cuando se decodifica una sección dependiente que empieza al inicio de la segunda fila de LCU (302, 312), inicializar una decodificación aritmética de la segunda fila de LCU usando un contexto obtenido después de la decodificación aritmética de la unidad de codificación más grande que está ubicada en segundo lugar en la primera fila de LCU, independientemente de los tipos de secciones en la primera fila de LCU,
caracterizado porque
en la etapa de decodificación,
en un caso de cuando se decodifica una primera sección normal (402) en una primera fila de LCU (301, 311) que empieza en una posición distinta del inicio de la primera fila de LCU (301, 311), en el que dicha primera fila de lCu incluye dos o más secciones, decodificar una segunda sección normal al inicio de una segunda fila de LCU (302, 312) que sigue inmediatamente a la primera fila de LCU (301, 311).
2. El procedimiento de decodificación de imágenes según la reivindicación 1, en el que en la decodificación, la primera fila de LCU (301, 311) y la segunda fila de LCU (302, 312) son decodificadas en paralelo, y cuando se inicia la decodificación de la segunda fila de LCU (302, 312), la segunda fila de LCU (302, 312) es decodificada sin referenciar a información de división que indica una estructura de sección de la primera fila de LCU (301, 311).
3. El procedimiento de decodificación de imágenes según la reivindicación 1 o 2, que comprende además obtener, de una cabecera de sección (320) de una sección, información que indica si la sección es o bien la sección normal (401, 402) o bien la sección dependiente (403, 404).
4. El procedimiento de decodificación de imágenes según una cualquiera de las reivindicaciones 1 a 3, en el que la decodificación aritmética de la sección dependiente (403) es inicializada utilizando un contexto de una sección padre (402) cuya cabecera de sección es usada para la sección dependiente (403).
5. El procedimiento de decodificación de imágenes según una cualquiera de las reivindicaciones 1 a 4, que comprende además obtener, de la secuencia de bits cuando la sección dependiente (403, 404) está habilitada, un indicador de restricción que indica que la división de una imagen (400) está restringida.
6. Un aparato de decodificación de imágenes que decodifica una secuencia de bits (201) que incluye una señal codificada resultante de codificar una pluralidad de secciones en las que se divide una imagen (400) y cada una de las cuales incluye una pluralidad de unidades de codificación más grandes - LCU,
comprendiendo el aparato una unidad de decodificación (290) configurada para decodificar la señal codificada, en el que cada una de las secciones es o bien una sección normal (401, 402) que tiene, en una cabecera de sección, información que se puede utilizar para otra sección, o bien una sección dependiente (403, 404) que puede ser decodificada usando información incluida en una cabecera de sección de una sección normal,
en el que
la imagen (400) incluye una pluralidad de filas, filas de LCU (301, 302, 311, 312, 313, 314), cada una de las cuales incluye dos o más de las unidades de codificación más grandes, y
dicha unidad de decodificación (290) está adaptada para,
en un caso de cuando se decodifica una sección dependiente que empieza al inicio de la segunda fila de LCU (302, 312), inicializar una decodificación aritmética de la segunda fila de LCU usando un contexto obtenido después de la decodificación aritmética de la unidad de codificación más grande que está ubicada en segundo lugar en la primera fila de LCU, independientemente de los tipos de secciones en la primera fila de LCU,
caracterizado porque
dicha unidad de decodificación (290) está adaptada además para,
en un caso de cuando se decodifica una primera sección normal (402) en una primera fila de LCU (301, 311) que empieza en una posición distinta del inicio de la primera fila de LCU (301, 311), en el que dicha primera fila de LCU incluye dos o más secciones, decodificar una segunda sección normal al inicio de una segunda fila de LCU (302, 312) que sigue inmediatamente a la primera fila de LCU (301, 311).
ES13842739T 2012-09-26 2013-09-18 Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes Active ES2716579T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261705864P 2012-09-26 2012-09-26
PCT/JP2013/005514 WO2014050030A1 (ja) 2012-09-26 2013-09-18 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置

Publications (1)

Publication Number Publication Date
ES2716579T3 true ES2716579T3 (es) 2019-06-13

Family

ID=50338837

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13842739T Active ES2716579T3 (es) 2012-09-26 2013-09-18 Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes

Country Status (14)

Country Link
US (9) US9100634B2 (es)
EP (3) EP3876538A1 (es)
JP (1) JP6124221B2 (es)
KR (2) KR102160372B1 (es)
CN (2) CN104584554B (es)
AU (1) AU2013322000B2 (es)
BR (1) BR112015004246B1 (es)
CA (1) CA2882792C (es)
ES (1) ES2716579T3 (es)
MX (1) MX341067B (es)
MY (1) MY181830A (es)
TW (1) TWI581618B (es)
WO (1) WO2014050030A1 (es)
ZA (1) ZA201501520B (es)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9621905B2 (en) * 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
EP3876538A1 (en) 2012-09-26 2021-09-08 Velos Media International Limited Image coding method and image coding device
SI2986004T1 (sl) * 2013-01-04 2019-08-30 Samsung Electronics Co., Ltd. Postopek entropijskega dekodiranja segmentov režnja
GB2513303B (en) * 2013-04-16 2017-06-07 Canon Kk Method and device for partitioning an image
US20150049098A1 (en) * 2013-08-13 2015-02-19 Mediatek Inc. Data processing apparatus for transmitting/receiving compressed pixel data groups via multiple display ports of display interface and related data processing method
US11109036B2 (en) 2013-10-14 2021-08-31 Microsoft Technology Licensing, Llc Encoder-side options for intra block copy prediction mode for video and image coding
US10506254B2 (en) 2013-10-14 2019-12-10 Microsoft Technology Licensing, Llc Features of base color index map mode for video and image coding and decoding
JP6359101B2 (ja) 2013-10-14 2018-07-18 マイクロソフト テクノロジー ライセンシング,エルエルシー ビデオ及び画像の符号化及び復号のためのイントラブロックコピー予測モードの特徴
US9736488B2 (en) * 2013-11-27 2017-08-15 Nxp Usa, Inc. Decoding for high efficiency video transcoding
KR102258427B1 (ko) 2014-01-03 2021-06-01 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩/디코딩에서의 블록 벡터 예측
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
EP4354856A2 (en) 2014-06-19 2024-04-17 Microsoft Technology Licensing, LLC Unified intra block copy and inter prediction modes
CA3171803A1 (en) 2014-09-30 2016-04-07 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US10659783B2 (en) 2015-06-09 2020-05-19 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
US10382793B2 (en) * 2015-06-23 2019-08-13 Integrated Device Technology, Inc. Apparatuses and methods for performing information extraction and insertion on bitstreams
US20170105010A1 (en) * 2015-10-09 2017-04-13 Microsoft Technology Licensing, Llc Receiver-side modifications for reduced video latency
WO2017171438A1 (ko) * 2016-03-30 2017-10-05 한국전자통신연구원 픽쳐 분할 정보를 사용하는 비디오의 부호화 및 복호화를 위한 방법 및 장치
US10593015B2 (en) * 2016-05-04 2020-03-17 Texas Instruments Incorporated Apparatus and method for efficient motion estimation
CN108063948B (zh) * 2016-11-08 2020-08-04 联发科技股份有限公司 配合多个处理器的影像处理装置及影像处理方法
CN107147916B (zh) * 2017-06-09 2021-01-29 苏州蜗牛数字科技股份有限公司 一种在传输层上传输h.265编码视频数据的方法
CN107197296B (zh) * 2017-06-22 2019-08-13 华中科技大学 一种基于COStream的HEVC并行编码方法和系统
JP7245244B2 (ja) 2018-06-14 2023-03-23 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN112997502B (zh) * 2018-12-07 2024-04-26 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
MX2021012404A (es) * 2019-04-10 2021-11-12 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes.
WO2021029646A1 (ko) * 2019-08-12 2021-02-18 한국항공대학교산학협력단 하이 레벨 영상 분할과 영상 부호화/복호화 방법 및 장치
CN110933436A (zh) * 2019-12-17 2020-03-27 展讯通信(上海)有限公司 图像编码方法、装置、计算机设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101101965B1 (ko) * 2006-10-16 2012-01-02 노키아 코포레이션 멀티뷰 비디오 코딩에 대한 병렬 디코딩가능 슬라이스들을 이용하기 위한 시스템 및 방법
CN101267564B (zh) * 2008-04-16 2011-06-15 中国科学院计算技术研究所 一种多处理器视频编码芯片装置和方法
CN101836454B (zh) * 2008-12-03 2012-08-22 联发科技股份有限公司 对有序熵切片执行平行cabac码处理的方法及装置
WO2010100875A1 (ja) 2009-03-02 2010-09-10 パナソニック株式会社 記録媒体、再生装置、及び集積回路
CN101656885B (zh) * 2009-09-17 2011-12-07 中兴通讯股份有限公司 多核处理器中并行解码的方法和装置
US20120014431A1 (en) * 2010-07-14 2012-01-19 Jie Zhao Methods and Systems for Parallel Video Encoding and Parallel Video Decoding
US9313514B2 (en) * 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US20120230399A1 (en) * 2011-03-10 2012-09-13 Christopher Andrew Segall Video decoder parallelization including a bitstream signal
US20130003823A1 (en) * 2011-07-01 2013-01-03 Kiran Misra System for initializing an arithmetic coder
US9247258B2 (en) * 2011-10-26 2016-01-26 Qualcomm Incorporated Unified design for picture partitioning schemes
US9077998B2 (en) * 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units
DK3174295T3 (en) 2012-04-13 2019-04-01 Ge Video Compression Llc Low delay image encoding
CN115442624A (zh) * 2012-06-29 2022-12-06 Ge视频压缩有限责任公司 视频数据流、编码器、编码视频内容的方法以及解码器
EP3876538A1 (en) 2012-09-26 2021-09-08 Velos Media International Limited Image coding method and image coding device
US20180020222A1 (en) * 2016-07-12 2018-01-18 Mediatek Inc. Apparatus and Method for Low Latency Video Encoding

Also Published As

Publication number Publication date
AU2013322000A1 (en) 2015-03-12
KR102063239B1 (ko) 2020-01-07
EP2903269B1 (en) 2019-01-02
US9100634B2 (en) 2015-08-04
EP3503552B1 (en) 2021-05-12
US11212544B2 (en) 2021-12-28
US20180255311A1 (en) 2018-09-06
CA2882792C (en) 2021-08-03
CA2882792A1 (en) 2014-04-03
CN104584554B (zh) 2018-07-31
JPWO2014050030A1 (ja) 2016-08-22
WO2014050030A1 (ja) 2014-04-03
EP3876538A1 (en) 2021-09-08
KR20150063364A (ko) 2015-06-09
BR112015004246B1 (pt) 2023-02-07
US20160150233A1 (en) 2016-05-26
US20150245040A1 (en) 2015-08-27
MY181830A (en) 2021-01-08
CN108769698A (zh) 2018-11-06
US9282334B2 (en) 2016-03-08
EP2903269A4 (en) 2015-09-30
EP3503552A1 (en) 2019-06-26
KR102160372B1 (ko) 2020-09-28
US9992505B2 (en) 2018-06-05
CN108769698B (zh) 2021-07-02
US20160323586A1 (en) 2016-11-03
US9420297B2 (en) 2016-08-16
JP6124221B2 (ja) 2017-05-10
US20140086306A1 (en) 2014-03-27
TW201417583A (zh) 2014-05-01
KR20200003286A (ko) 2020-01-08
US9693067B2 (en) 2017-06-27
MX2015002890A (es) 2015-07-06
US20240089478A1 (en) 2024-03-14
US11863772B2 (en) 2024-01-02
AU2013322000B2 (en) 2017-02-09
US20220086471A1 (en) 2022-03-17
US20200336752A1 (en) 2020-10-22
BR112015004246A8 (pt) 2023-01-24
MX341067B (es) 2016-08-05
CN104584554A (zh) 2015-04-29
EP2903269A1 (en) 2015-08-05
US20170244977A1 (en) 2017-08-24
BR112015004246A2 (pt) 2017-07-04
TWI581618B (zh) 2017-05-01
ZA201501520B (en) 2016-01-27
US10743010B2 (en) 2020-08-11

Similar Documents

Publication Publication Date Title
ES2716579T3 (es) Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes
JP6558784B2 (ja) 方法、装置、および媒体
ES2962366T3 (es) Aparato de codificación de imágenes, aparato de decodificación de imágenes y medio de almacenamiento
TW201347550A (zh) 圖像編碼方法、圖像解碼方法、圖像編碼裝置、圖像解碼裝置及圖像編碼解碼裝置