MX2015002889A - Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes. - Google Patents

Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.

Info

Publication number
MX2015002889A
MX2015002889A MX2015002889A MX2015002889A MX2015002889A MX 2015002889 A MX2015002889 A MX 2015002889A MX 2015002889 A MX2015002889 A MX 2015002889A MX 2015002889 A MX2015002889 A MX 2015002889A MX 2015002889 A MX2015002889 A MX 2015002889A
Authority
MX
Mexico
Prior art keywords
cut
dependent
cuts
decoding
header
Prior art date
Application number
MX2015002889A
Other languages
English (en)
Other versions
MX339463B (es
Inventor
Matthias Narroschke
Thomas Wedi
Semih Esenlik
Original Assignee
Panasonic Ip Corp America
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=50385285&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=MX2015002889(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Panasonic Ip Corp America filed Critical Panasonic Ip Corp America
Publication of MX2015002889A publication Critical patent/MX2015002889A/es
Publication of MX339463B publication Critical patent/MX339463B/es

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/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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/423Methods 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 characterised by memory arrangements
    • 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
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Una indicación de dependencia se señala dentro del comienzo de un paquete, es decir, en la cercanía de un encabezado de corte que es analizado o un conjunto de parámetros. Esto se logra, por ejemplo, al incluir la indicación de dependencia al comienzo del encabezado de corte, preferiblemente después de un elemento de sintaxis que identifica el conjunto de parámetros y antes de la dirección de corte, al incluir la indicación de dependencia antes de la dirección de corte, al proporcionar la indicación de dependencia a un encabezado de NALU utilizando un mensaje separado o mediante el uso de un tipo de NALU especial para NALUs que llevan cortes dependientes.

Description

MÉTODO DE CODIFICACIÓN DE IMÁGENES, MÉTODO DE DECODIFICACIÓN DE IMÁGENES, APARATO DE CODIFICACIÓN DE IMÁGENES, APARATO DE DECODIFICACIÓN DE IMÁGENES Y APARATO DE CODIFICACIÓN Y DECODIFICACIÓN DE IMÁGENES Campo de la Invención La presente invención se refiere a un método de codificación de imágenes para codificar una imagen y un método de decodificación de imágenes para decodificar una imagen.
Antecedentes de la Invención La mayoría de los actuales algoritmos de codificación de video estandarizados se basan en la codificación híbrida de video. En los métodos de codificación híbrida de video, se utilizan varios esquemas diferentes de compresión sin pérdida y con pérdida con el propósito de lograr la ganancia de compresión deseada. La codificación híbrida de video también es la base para los estándares ITU-T (estándares H.26x tales como H.261, H.263), así como también los estándares ISO/IEC (estándares MPEG-X tales como MPEG-1, MPEG-2 y MPEG-4).
El estándar de codificación de video más reciente y avanzado es actualmente el estándar representado como codificación avanzada de video H.264/MPEG-4 (AVC, por sus siglas en inglés). Este es el resultado de esfuerzos de Ref. 252685 estandarización por parte del equipo conjunto de video (JVT, por sus siglas en inglés), un equipo conjunto de ITU-T y grupos de ISO/IEC MPEG.
Por otra parte, un estándar de codificación de video llamado Codificación de Video de Alta Eficiencia (HEVC, por sus siglas en inglés) está siendo considerado por el Equipo Colaborativo Conjunto Sobre la Codificación de Video (JCT-VC, por sus siglas en inglés), con el objetivo particular de mejorar la eficiencia con respecto a la codificación de video de alta resolución.
Lista de Referencias Bibliografía que no es Patente Bibliografía que no es Patente 1: C. Gordon y colaboradores, "Wavefront Parallel Processing for HEVC Encoding and Decoding", JCTVC-F274-v2, de the Meeting in Torino, Julio de 2011, Internet <URL: http://phenix. int-evry. fr.> Bibliografía que no es Patente 2: A. Fuldseth y colaboradores, "Tiles", JCTVC-F355-vl, de the Meeting in Torino, Julio de 2011, Internet <URL: http://phenix. int-evry . fr.> Bibliografía que no es Patente 3: JCTVC-J1003_d7, "High efficiency video coding (HEVC) text specification draft 8", Julio de 2012, página 73, "dependent_slice_flag", Internet <URL: http://phenix. IT-sudparis. eu/jct/> Breve Descripción de la Invención Problema Téenico Sin embargo, existe un problema respecto a que un método de codificación de imágenes, un método de decodificación de imágenes y similares no tienen suficiente eficiencia de procesamiento.
Por lo tanto, la presente invención proporciona un método de codificación de imágenes y un método de decodificación de imágenes que son capaces de incrementar la eficiencia de procesamiento.
Solución al Problema Un método de codificación de imágenes de acuerdo con un aspecto de la presente invención es un método de codificación de imágenes para realizar el procesamiento de codificación al dividir una representación visual en una pluralidad de cortes, el método de codificación de imágenes comprende transmitir una corriente de bits la cual incluye: un indicador de habilitación de cortes dependientes que señala si la representación visual incluye o no un corte dependiente sobre el cual se realiza el procesamiento de codificación dependiendo de un resultado del procesamiento de codificación sobre un corte diferente de un corte actual; una dirección de corte que señala una posición de inicio del corte actual; y una indicación de dependencia que señala si el corte actual es o no el corte dependiente, en donde el indicador de habilitación de cortes dependientes se dispone en un conjunto de parámetros común para los cortes, la dirección de corte se dispone en el encabezado de corte del corte actual y la indicación de dependencia se dispone en el encabezado de corte, y se dispone antes de la dirección de corte y después de un elemento de sintaxis que identifica el conjunto de parámetros.
Un método de decodificación de imágenes de acuerdo con un aspecto de la presente invención es un método de decodificación de imágenes para realizar el procesamiento de decodificación al dividir una representación visual en una pluralidad de cortes, el método de decodificación de imágenes comprende extraer, de una corriente de bits codificada, un indicador de habilitación de cortes dependientes que señala si la representación visual incluye o no un corte dependiente sobre el cual se realiza el procesamiento de decodificación dependiendo de un resultado del procesamiento de decodificación sobre un corte diferente de un corte actual, una dirección de corte que señala una posición de inicio del corte actual y una indicación de dependencia que señala si el corte actual es o no el corte dependiente, en donde el indicador de habilitación de cortes dependientes se dispone en un conjunto de parámetros común para los cortes, la dirección de corte se dispone en un encabezado de corte del corte actual y la indicación de dependencia se dispone en el encabezado de corte y se dispone antes de la dirección de corte y después de un elemento de sintaxis que identifica el conjunto de parámetros.
Los aspectos generales y específicos dados a conocer anteriormente se pueden implementar utilizando un sistema, método, circuito integrado, programa de computadora o medio de grabación legible por computadora tal como un CD-ROM, o cualquier combinación de sistemas, métodos, circuitos integrados, programas de computadora o medios de grabación legibles por computadora.
Efectos Ventajosos de la Invención Un método de codificación de imágenes y un método de decodificación de imágenes de acuerdo con la presente invención son capaces de incrementar la eficiencia de codificación.
Breve Descripción de las figuras Estos y otros objetivos, ventajas y cualidades de la descripción llegarán a ser aparentes a partir de la siguiente descripción de la misma tomada en conjunción con las figuras asociadas que ilustran una modalidad específica de la presente invención.
La FIGURA 1 es un diagrama de bloques que muestra un ejemplo de un codificador que cumple con la HEVC.
La FIGURA 2 es un diagrama de bloques que muestra un ejemplo de un decodificador que cumple con la HEVC.
La FIGURA 3 es un diagrama que muestra un ejemplo de una configuración de una imagen en el procesamiento paralelo del frente de onda (WPP, por sus siglas en inglés).
La FIGURA 4 es un diagrama que muestra un ejemplo de una relación entre un corte normal y un corte dependiente en el procesamiento paralelo del frente de onda.
La FIGURA 5 es un diagrama que muestra un ejemplo de un encabezado de paquete.
La FIGURA 6 es un diagrama que muestra un ejemplo de un encabezado de corte de un corte entrópico o un corte dependiente.
La FIGURA 7 es un diagrama que muestra dependencias y transmisión de señales cuando se utiliza un corte normal.
La FIGURA 8 es una vista esquemática que muestra dependencias y transmisiones de señales cuando se utiliza un corte dependiente y un corte entrópico.
La FIGURA 9A es un diagrama que muestra un ejemplo para mostrar una iplementación de sintaxis de las dependencias inter-capas, dependencias temporales y dependencias inter-cortes en HM8.0.
La FIGURA 9B es un diagrama para explicar los pasos de análisis que son realizados para analizar las dependencias inter-capas en HM8.0.
La FIGURA 9C es un diagrama para explicar los pasos de análisis que son realizados para analizar las dependencias inter-capas en HM8.O.
La FIGURA 10 es un diagrama que muestra un ejemplo de la posición del dependent_slice_flag.
La FIGURA 11 es un diagrama que muestra un ejemplo de la sintaxis cuando se retira la condición de análisis con respecto a dependent_slice_enabled_flag en la FIGURA 10.
La FIGURA 12 es un diagrama que muestra un ejemplo de la sintaxis cuando el dependent_slice_flag se mueve antes del first_slice_in_pic_flag.
La FIGURA 13 es un diagrama que muestra un ejemplo de la sintaxis cuando el dependent_slice_flag se mueve antes del elemento de sintaxis slice_address.
La FIGURA 14 es un diagrama que muestra un ejemplo de la sintaxis cuando el dependent_slice_flag se mueve dentro del encabezado de NAL.
La FIGURA 15 es un diagrama que muestra un ejemplo de la sintaxis de un encabezado de corte de un corte dependiente cuando un nuevo tipo se agrega a los tipos de unidades de NAL utilizados para cortes dependientes.
La FIGURA 16 es un diagrama que muestra un ejemplo de la sintaxis de un encabezado de corte y de un encabezado de unidad de NAL cuando se asume que el dependent_slice_flag se establece a 1 para ciertos tipos de NALU.
La FIGURA 17 muestra una configuración completa de un sistema de provisión de contenido para implementar servicios de distribución de contenido.
La FIGURA 18 muestra una configuración completa de un sistema de difusión digital.
La FIGURA 19 muestra un diagrama de bloques que ilustra un ejemplo de una configuración de una televisión.
La FIGURA 20 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 21 muestra un ejemplo de una configuración de un medio de grabación que es un disco óptico.
La FIGURA 22A muestra un ejemplo de un teléfono celular.
La FIGURA 22B es un diagrama de bloques que muestra un ejemplo de una configuración de un teléfono celular.
La FIGURA 23 ilustra una estructura de datos multiplexados.
La FIGURA 24 muestra esquemáticamente como cada corriente es multiplexada en datos multiplexados.
La FIGURA 25 muestra con mayor detalle como una corriente de video se almacena en una corriente de paquetes PES.
La FIGURA 26 muestra una estructura de paquetes TS y paquetes fuente en los datos multiplexados.
La FIGURA 27 muestra una estructura de datos de una PMT.
La FIGURA 28 muestra una estructura interna de información de datos multiplexados.
La FIGURA 29 muestra una estructura interna de información de atributos de corriente.
La FIGURA 30 muestra pasos para identificar datos de video.
La FIGURA 31 muestra un ejemplo de una configuración de un circuito integrado para implementar el método de codificación de representaciones visuales en movimiento y el método de decodificación de representaciones visuales en movimiento de acuerdo con cada una de las modalidades.
La FIGURA 32 muestra una configuración para la conmutación entre frecuencias impulsoras.
La FIGURA 33 muestra pasos para identificar datos de video y para la conmutación entre frecuencias impulsoras.
La FIGURA 34 muestra un ejemplo de una tabla de consulta en la cual los estándares de datos de video se asocian con frecuencias impulsoras.
La FIGURA 35A 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 35B 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 Detallada de la Invención Conocimiento Fundamental que Forma la Base de la Presente Descripción Con respecto al método de codificación de imágenes y el método de decodificación de imágenes descritas en la sección de Antecedentes de la Invención, los inventores han descubierto el siguiente problema.
En primer lugar, se describirá un aparato de codificación de imágenes y un aparato de decodificación de imágenes en HEVC.
Una señal de video introducida a un aparato de codificación de imágenes es una secuencia de imágenes llamadas tramas (representaciones visuales). Cada trama incluye una matriz bidimensional de pixeles. Todos los estándares mencionados anteriormente basados en la codificación híbrida de video incluyen dividir cada trama de video individual en bloques más pequeños que incluyen una pluralidad de pixeles. El tamaño de los bloques puede variar, por ejemplo, de acuerdo con el contenido de la imagen. El método de codificación se puede variar típicamente en una base por bloques. El tamaño más grande posible para este bloque, por ejemplo en la HEVC, es 64 x 64 pixeles. Es llamado la unidad de codificación más grande (LCU, por sus siglas en inglés). La LCU puede ser dividida repetitivamente en 4 CUs.
En H.264/MPEG-4 AVC, un macrobloque (que indica usualmente un bloque de 16 x 16 pixeles) fue el elemento de imagen básico, para el cual se realiza la codificación. El macrobloque puede ser dividido adicionalmente en sub-bloques más pequeños. Los pasos de codificación incluidos en el método de codificación y/o los pasos de decodificación incluidos en el método de decodificación se realizan en una base por sub-bloques. 1-1. Codificación híbrida de video Lo siguiente describe simplemente una codificación híbrida de video.
Típicamente, los pasos de codificación de una codificación híbrida de video incluyen una predicción espacial y/o temporal (predicción de espacio y/o predicción de tiempo). Por consiguiente, cada bloque que es codificado se predice primero utilizando ya sea los bloques en sus inmediaciones espaciales o los bloques en sus inmediaciones temporales, es decir, de tramas de video codificadas previamente. Un bloque residual el cual es una diferencia entre el bloque que es codificado y su resultado de predicción entonces se calcula. Después, el bloque residual se transforma del dominio espacial (pixel) en un dominio de frecuencia. La transformación se dirige a reducir la correlación del bloque de entrada.
Adicionalmente, los coeficientes de transformación obtenidos de la transformación se cuantifican. Esta cuantificación es la compresión con pérdida (irreversible). Usualmente, los valores de coeficientes de transformación comprimidos son comprimidos adicionalmente sin pérdida por medio de una codificación entrópica. Además, la información auxiliar necesaria para la reconstrucción de la señal de video codificada se codifica y se proporciona junto con la señal de video codificada. Esto es por ejemplo información acerca de la predicción espacial, la predicción temporal y/o cuantificación. 1-2. Configuración del aparato de codificación de imágenes La FIGURA 1 es un ejemplo de un aparato de codificación de imágenes de H.264/MPEG-4 AVC y/o HEVC típico (codificador 100).
Como se muestra en la FIGURA 1, el codificador 100 incluye un sustractor 105, unidad de transformación 110, unidad de cuantificación 120, unidad de transformación inversa 130, adicionador 140, filtro de desbloqueo 150, filtro de bucle adaptable 160, memoria de tramas 170, unidad de predicción 180 y codificador entrópico 190.
La unidad de predicción 180 impulsa una señal de predicción s2 por medio de la predicción temporal o predicción espacial. El tipo de predicción utilizada en la unidad de predicción 180 se puede variar en una base por tramas o en una base por bloques. La predicción temporal es llamada inter-predicción y la predicción espacial es llamada intra-predicción. La codificación utilizando una señal de predicción s2 por medio de la predicción temporal es llamada ínter-codificación y la codificación utilizando una señal de predicción s2 por medio de la predicción espacial es llamada intra-codificación. En la derivación de una señal de predicción utilizando la predicción temporal, se utilizan imágenes codificadas que están almacenadas en una memoria. En la derivación de una señal de predicción utilizando la predicción espacial, se utiliza un valor de pixel de límite del bloque adyacente codificado o decodificado que está almacenado en una memoria. El número de direcciones de predicción en la intra-predicción depende del tamaño de la unidad de codificación (CU, por sus siglas en inglés). Se debe observar que los detalles de la predicción serán descritos posteriormente.
El sustractor 105 determina primero una diferencia (señal de error de predicción e) entre un bloque actual que es codificado de una imagen de entrada (= señal de entrada si) y un bloque de predicción correspondiente (= señal de predicción s2). La diferencia se utiliza para la predicción del bloque actual que es codificado. Se debe observar que la señal de error de predicción e también es llamada una señal residual de predicción.
La unidad de transformación 110 transforma una señal de error de predicción e en coeficientes. Generalmente, la unidad de transformación 110 utiliza una transformación ortogonal tal como una transformación de coseno discreta bidimensional (DCT, por sus siglas en inglés) o una versión de números enteros de la misma. La transformación ortogonal puede reducir la correlación de la señal de entrada si (la señal de video antes de la codificación) eficientemente. Después de la transformación, los componentes de frecuencia más baja son usualmente más importantes para la calidad de la imagen que los componentes de frecuencia alta de modo que se pueden consumir más bits para la codificación de los componentes de frecuencia baja que los componentes de frecuencia alta.
La unidad de cuantificación 120 cuantifica los coeficientes y obtiene coeficientes cuantificados.
El codificador entrópico 190 realiza la codificación entrópica en los coeficientes cuantificados. Los coeficientes cuantificados son comprimidos sin pérdida por medio de la codificación entrópica. Adicionalmente, por medio de la codificación entrópica, el volumen de datos almacenado en la memoria y el volumen de datos (corriente de bits) que es transmitido pueden ser reducidos adicionalmente. La codificación entrópica se realiza al aplicar principalmente la codificación utilizando una contraseña de longitud variable. La longitud de una contraseña se selecciona con base en la probabilidad de su aparición.
El codificador entrópico 190 transforma la matriz bidimensional de coeficientes cuantificados en una matriz unidimensional. Típicamente, el codificador entrópico 190 realiza esta conversión a través de una comúnmente llamada exploración en zigzag. La exploración en zigzag inicia con el coeficiente de DC en la esquina superior izquierda de la matriz bidimensional y explora la matriz bidimensional en una secuencia predeterminada que termina con un coeficiente de AC en la esquina inferior derecha. La energía se concentra típicamente en la parte superior izquierda de la matriz bidimensional de coeficientes. Generalmente, cuando los coeficientes se localizan en la esquina superior izquierda, son coeficientes de componentes de frecuencia baja. Cuando los coeficientes se localizan en la esquina inferior derecha, son coeficientes de componentes de frecuencia alta. Por lo tanto, la exploración en zigzag da por resultado una matriz donde usualmente los últimos valores son consecutivamente una pluralidad de unos o ceros. Esto permite la codificación eficiente utilizando códigos de longitud de recorrido como parte de/antes de la codificación entrópica real.
La H.264/MPEG-4 AVC y HEVC utilizan diferentes tipos de codificación entrópica. Aunque algunos elementos de sintaxis se codifican con una longitud fija, la mayoría de los elementos de sintaxis se codifican con códigos de longitud variable. En particular, entre las sintaxis, los códigos de longitud variable adaptables al contexto (CABAC, por sus siglas en inglés) se utilizan para codificar las señales de error de predicción (señales residuales de predicción). Generalmente, otros diversos códigos de números enteros diferentes de los códigos de longitud variable adaptables al contexto se utilizan para la codificación de otros elementos de sintaxis. Sin embargo, se puede utilizar la codificación aritmética binaria adaptable al contexto.
Los códigos de longitud variable permiten la compresión sin pérdida de la corriente de bits codificada. Sin embargo, puesto que las contraseñas tienen longitud variable, la decodificación se debe realizar secuencialmente en las contraseñas. En otras palabras, no es posible codificar o decodificar contraseñas antes de codificar o decodificar las contraseñas previas sin reiniciar (inicializar) la codificación entrópica o sin indicar por separado una posición de la contraseña (punto de inicio) para iniciar con la decodificación.
La codificación aritmética codifica una secuencia de bits en una contraseña individual basada en un modelo de probabilidad predeterminado. El modelo de probabilidad predeterminado se determina de acuerdo con el contenido de la secuencia de video en el caso de CABAC. La codificación aritmética, y de esta manera también CABAC, son más eficientes cuando la longitud de la corriente de bits que es codificada es más grande. En otras palabras, el CABAC aplicado a las secuencias de bits es eficiente para bloques más grandes. Al comienzo de cada secuencia, el CABAC se reinicia. En otras palabras, al comienzo de cada secuencia de video, su modelo de probabilidad se inicia con algunos valores predefinidos o predeterminados.
El codificador entrópico 109 transmite, a un lado del decodificador, una corriente de bits que incluye coeficientes cuantificados codificados (señales de video codificadas) e información auxiliar codificada.
El H.264/MPEG-4 y la H.264/MPEG-4 AVC así como también la HEVC incluyen dos capas funcionales, una Capa de Codificación de Video (VCL, por sus siglas en inglés) y una Capa de Abstracción de Red (NAL, por sus siglas en inglés). La VCL proporciona la funcionalidad de codificación como se describiera anteriormente. La NAL encapsula elementos de información en unidades estandarizadas llamadas unidades de NAL de acuerdo con su aplicación adicional tal como la transmisión sobre un canal o el almacenamiento en un dispositivo de almacenamiento. Los elementos de información encapsulados por la NAL son, por ejemplo, (1) la señal de error de predicción codificada (datos de video comprimidos) o (2) otra información necesaria para la decodificación de la señal de video tal como el tipo de predicción, parámetro de cuantificación, vectores de movimiento, etcétera. Existen unidades de VCL NAL que contienen los datos de video comprimidos y la información relacionada, así como también unidades que no son de VCL que encapsulan datos adicionales tal como un conjunto de parámetros que se relaciona con una secuencia de video completa, o una Información de Mejoramiento Suplementaria (SEI, por sus siglas en inglés) que proporciona información adicional que puede utilizarse para mejorar el desempeño de decodificación.
Algunas unidades de NAL que no son de VCL incluyen, por ejemplo, conjuntos de parámetros. Un conjunto de parámetros es un conjunto de parámetros que se relacionan con la codificación y decodificación de una cierta porción de la secuencia de video. Por ejemplo, existe un conjunto de parámetros de secuencia (SPS, por sus siglas en inglés) el cual incluye un parámetro relevante para la codificación y decodificación de la secuencia completa de representaciones visuales. En particular, el conjunto de parámetros de secuencia es una estructura de sintaxis que incluye elementos de sintaxis. En particular, los elementos de sintaxis se aplican a cero o más secuencias de video codificadas completas como se determina por el contenido de una seq parameter set id. La seq parameter set id es un elemento de sintaxis incluido en el conjunto de parámetros de representación visual (descrito posteriormente) referido por la pic_parameter_set_id . La pic_parameter_set_id es un elemento de sintaxis incluido en cada encabezado de corte.
El conjunto de parámetros de representación visual (PPS, por sus siglas en inglés) es un conjunto de parámetros el cual define parámetros aplicados a la codificación y decodificación de una representación visual de una secuencia de representaciones visuales (secuencia de video). En particular, el PPS es una estructura de sintaxis que incluye elementos de sintaxis. Los elementos de sintaxis se aplican a cero o más representaciones visuales codificadas completas como se determina por la pic_parameter_set_id la cual es un elemento de sintaxis encontrado en cada encabezado de corte.
Por consiguiente, es más simple mantener la pista de un SPS que del PPS. Esto es debido a que el PPS cambia para cada representación visual, mientras que el SPS es constante para la secuencia de video completa la cual puede ser incluso de minutos u horas de longitud.
El codificador 100 incluye una unidad de reconstrucción (comúnmente llamada unidad de decodificación) la cual obtiene una señal reconstruida (comúnmente llamada una señal decodificada) s3. Por medio de la unidad de reconstrucción, una imagen reconstruida que se obtiene por medio de la reconstrucción (decodificación) de la imagen codificada se genera y se almacena en la memoria de tramas 170.
La unidad de reconstrucción incluye la unidad de transformación inversa 130, el adicionador 140, el filtro de desbloqueo 150 y el filtro de bucle adaptable 160.
La unidad de transformación inversa 130, de acuerdo con los pasos de codificación descritos anteriormente realiza la cuantificación inversa y la transformación inversa. Se debe observar que la señal de error de predicción e' obtenida de la unidad de transformación inversa 130 es diferente de la señal de error de predicción e debido al error de cuantificación, también llamado ruido de cuantificación.
El adicionador 140 obtiene una señal reconstruida s' al agregar una señal de error de predicción reconstruida e' reconstruida por la unidad de transformación inversa 130 a una señal de predicción s2.
El filtro de desbloqueo 150 realiza el procesamiento de filtro de desbloqueo para reducir el ruido de cuantificación el cual se superpone a la señal reconstruida s' debido a la cuantificación. En este documento, puesto que los pasos de codificación descritos anteriormente se realizan en una base por bloques, hay un caso donde un límite de bloque es visible cuando el ruido se sobrepone (características de bloqueo del ruido). El ruido sobrepuesto es llamado un ruido de bloqueo. En particular, cuando una cuantificación fuerte es realizada por la unidad de cuantificación 120, existen más límites de bloque visibles en la imagen reconstruida (imagen decodificada). Este ruido de bloqueo tiene un efecto negativo sobre la percepción visual humana, lo cual significa que una persona siente que la calidad de imagen está deteriorada. Con el propósito de reducir el ruido de bloqueo, el filtro de desbloqueo 150 realiza el procesamiento de filtro de desbloqueo en cada señal reconstruida s' (bloque reconstruido).
Por ejemplo, en el procesamiento de filtro de desbloqueo de H.264/MPEG-4 AVC, para cada área, se selecciona un procesamiento de filtro adecuado para el área. En el caso de un grado alto de ruido de bloqueo, se aplica un filtro de paso bajo fuerte (banda estrecha), mientras que para un grado bajo de ruido de desbloqueo, se aplica un filtro de paso bajo más débil (banda amplia). La resistencia del filtro de paso bajo es determinada por la señal de predicción e2 y por la señal de error de predicción e'. El procesamiento de filtro de desbloqueo alisa generalmente los bordes de bloque. Esto conduce a una calidad de imagen subjetiva mejorada de las señales decodificadas. La imagen filtrada se utiliza para la predicción de movimiento compensado de la siguiente imagen. Puesto que el procesamiento de filtro también reduce los errores de predicción, la eficiencia de codificación se puede mejorar.
El filtro de bucle adaptable 160 aplica un procesamiento de compensación adaptable de muestra (SAO, por sus siglas en inglés) y/o un procesamiento de filtro de bucle adaptable (ALF, por sus siglas en inglés) a la imagen reconstruida s" después del procesamiento de filtro de desbloqueo en el filtro de desbloqueo 150, para obtener una señal reconstruida (señal decodificada) s3.
El procesamiento de filtro de desbloqueo en el filtro de desbloqueo 150 está dirigido a mejorar la calidad subjetiva. Mientras tanto, el procesamiento de ALF y el procesamiento de SAO en el filtro de bucle adaptable 160 están dirigidos a mejorar la fidelidad por pixeles (calidad "objetiva"). El procesamiento de SAO se utiliza para agregar un valor de compensación a un valor de pixel para cada pixel utilizando un valor de pixel del pixel inmediatamente adyacente. El procesamiento de ALF se utiliza para compensar la distorsión de imagen causada por la compresión. Típicamente, el filtro utilizado en el procesamiento de ALF es un filtro de Wiener con coeficientes de filtro determinados de tal manera que el error cuadrado promedio (MSE, por sus siglas en inglés) entre la señal reconstruida s' y la señal de entrada si se minimiza. Los coeficientes de filtro del procesamiento de ALF se calculan y se transmiten en una base de trama por trama, por ejemplo. El procesamiento de ALF se puede aplicar a la trama completa (imagen) o a áreas locales (bloques). La información auxiliar que indica que áreas deben ser filtradas puede ser transmitida en una base de bloque por bloque, una base de trama por trama o una base de árbol cuaternario por árbol cuaternario.
La memoria de tramas (memoria intermedia de tramas) 170 almacena parte de la imagen codificada y reconstruida (decodificada) (señal reconstruida s3). La imagen reconstruida almacenada se utiliza para decodificar un bloque inter-codificado.
La unidad de predicción 180 obtiene una señal de predicción s2 utilizando la (misma) señal que puede ser utilizada en tanto el lado del codificador como el lado del decodificador, con el propósito de mantener la compatibilidad entre el lado del codificador y el lado del decodificador. La señal que puede ser utilizada tanto en el lado del codificador como el lado del decodificador es una señal reconstruida s3 (señal de video después del procesamiento de filtro por el filtro de bucle adaptable 160) en el lado del codificador que es codificada y luego reconstruida (decodificada), y una señal reconstruida s4 (señal de video después del procesamiento de filtro por el filtro de bucle adaptable en la FIGURA 2) en el lado del decodificador que es decodificada de una corriente de bits.
La unidad de predicción 180, cuando genera una señal de predicción s2 mediante la inter-codificación, predice utilizando la predicción de compensación de movimiento. Un estimador de movimiento de la unidad de predicción 180 (el cual no se ilustra) encuentra un mejor bloque coincidente para el bloque actual de los bloques dentro de las tramas de video previamente codificadas y reconstruidas. El mejor bloque coincidente entonces se vuelve una señal de predicción. El desplazamiento relativo (movimiento) entre el bloque actual y su mejor bloque coincidente entonces se señala como datos de movimiento incluido en la información auxiliar en la forma de vectores de movimiento tridimensionales. La señal se transmite junto con los datos de video codificados. El vector de movimiento tridimensional incluye dos vectores de movimiento de dimensión espacial y un vector de movimiento de dimensión temporal. Con el propósito de optimizar la exactitud de predicción, los vectores de movimiento pueden ser determinados con una resolución de sub-pixel espacial, por ejemplo, resolución de medio pixel o cuarto de pixel. Un vector de movimiento con resolución de sub-pixel espacial puede señalar una posición espacial dentro de una trama ya reconstruida donde no está disponible un valor de pixel real, es decir, una posición de sub-pixel. Por lo tanto, la interpolación espacial de estos valores de pixel es necesaria con el propósito de realizar la predicción de movimiento compensado. Esto se puede lograr por medio de un filtro de interpolación (integrado dentro de la unidad de predicción 180 en la FIGURA 1). 1-3. Configuración del aparato de decodificación de imágenes Una configuración de un decodificador (aparato de decodificación de imágenes) se describirá con referencia a la FIGURA 2.
La FIGURA 2 es un diagrama de bloques que muestra un ejemplo de un decodificador 200 de acuerdo con el estándar de codificación de video H.264/MPEG-4 AVC o HEVC.
Como se muestra en la FIGURA 2, el decodificador 200 incluye un decodificador entrópico 290, unidad de transformación inversa 230, adicionador 240, filtro de desbloqueo 250, filtro de bucle adaptable 260, memoria de tramas 270 y una unidad de predicción 280.
Una corriente de bits introducida al decodificador 200 (señal de video codificada) se transmite primero al decodificador entrópico 290.
El decodificador entrópico 290 extrae los coeficientes cuantificados que son codificados de la corriente de bits y la información auxiliar codificada y decodifica los coeficientes cuantificados codificados y la información auxiliar codificada. La información auxiliar, como se describiera anteriormente, información necesaria para la decodificación tal como datos de movimiento (vector de movimiento) y modo de predicción (tipo de predicción).
El decodificador entrópico 290 transforma los coeficientes cuantificados decodificados en una matriz unidimensional en aquellos en una matriz bidimensional por medio de la exploración inversa. El decodificador entrópico 290 introduce, a la unidad de transformación inversa 230, los coeficientes cuantificados después de ser transformados en aquellos en una matriz bidimensional.
La unidad de transformación inversa 230 realiza la cuantificación inversa y la transformación inversa en los coeficientes cuantificados transformados en aquellos en una matriz bidimensional, para obtener una señal de error de predicción e'. La señal de error de predicción e' corresponde a las diferencias obtenidas al substraer la señal de predicción de la señal introducida al codificador en caso de que no se introduzca ruido de cuantificación y no ocurra un error.
La unidad de predicción 280 impulsa una señal de predicción s2 por medio de la predicción temporal o la predicción espacial. La información tal como el tipo de predicción incluida en la información auxiliar se utiliza en el caso de la intra-predicción (predicción espacial). Por otra parte, la información tal como datos de movimiento incluida en la información auxiliar se utiliza en el caso de la predicción de movimiento compensado (ínter-predicción, predicción temporal).
El adicionador 240 agrega una señal de error de predicción e' obtenida de la unidad de transformación inversa 230 y una señal de predicción e2 obtenida de la unidad de predicción 280, para obtener una señal reconstruida s'.
El filtro de desbloqueo 250 realiza el procesamiento de filtro de desbloqueo en una señal reconstruida s'. El filtro de bucle adaptable 260 aplica el procesamiento de SAO y el procesamiento de ALF a la señal reconstruida s" a la cual se aplica el procesamiento de filtro de desbloqueo por parte del filtro de desbloqueo 250. Una señal decodificada S4 obtenida de la aplicación del procesamiento de SAO y el procesamiento de ALF en el filtro de bucle adaptable 260 se almacena en la memoria de tramas 270. La señal decodificada S4 almacenada en la memoria de tramas 270 se utiliza, en la unidad de predicción 280, para predecir el siguiente bloque actual que es decodificado o la imagen actual que es decodificada. 1-4. Eficiencia de procesamiento Generalmente, la paralelización del procesamiento se considera con el propósito de mejorar la eficiencia de procesamiento del procesamiento de codificación y el procesamiento de decodificación.
En comparación con H.264/MPEG-4 AVC, la HEVC tiene una función para soportar un procesamiento paralelo de alto nivel (procesamiento de paralelización) de la codificación y la decodificación. En la HEVC, es posible dividir una trama en cortes, de manera similar la H.264/MPEG-4 AVC. En este documento, los cortes son grupos de LCUs en el orden de exploración. En la H.264/MPEG-4 AVC, los cortes son decodificables independientemente y no se aplica la predicción espacial entre los cortes. Por lo tanto, el procesamiento paralelo se puede realizar en una base de corte por corte.
Sin embargo, puesto que los cortes poseen encabezados significativamente grandes y existe la falta de dependencias entre los cortes, la eficiencia de la compresión se reduce. Por otra parte, la codificación de CABAC pierde eficiencia cuando se aplica a bloques de datos pequeños.
Con el propósito de hacer posible un procesamiento paralelo más eficiente, se propone el procesamiento paralelo de frente de onda (WPP, por sus siglas en inglés). El WPP mantiene una dependencia constante la cual es diferente del procesamiento paralelo en el cual cada uno de los cortes es independiente.
La siguiente descripción se hará al hacer referencia al caso donde una representación visual comprende las LCUs cada una en representaciones visuales las cuales se disponen en una matriz y cada hilera de LCU comprende un corte (hacer referencia a la FIGURA 3). En WPP, entre las LCUs que comprenden la hilera de LCU actual 32, como el modelo de probabilidad de CABAC para restablecer el estado de CABAC de la primera LCU (LCU principal), se utiliza el modelo de probabilidad de CABAC justo después de que se completa el procesamiento en la segunda LCU de la hilera de LCU previa 31. Todas las dependencias inter-bloques se mantienen. Esto permite la paralelización de la decodificación de las hileras de LCU. La temporización para iniciar cada procesamiento de hileras de LCU se retrasa por dos LCUs con respecto a aquella previa. La información acerca de los puntos de inicio para iniciar la decodificación de hileras de LCU se incluye en el encabezado de corte. El WPP se describe en detalle en la Bibliografía que no es Patente 1.
Otro planteamiento para mejorar la paralelización es llamado mosaicos. Por consiguiente, una trama (representación visual) se divide en mosaicos. Los mosaicos son grupos rectangulares de LCUs. Los límites entre los mosaicos se establecen de tal manera que la representación visual completa sea dividida en una matriz. Los mosaicos se procesan en el orden de exploración cuadriculada.
Todas las dependencias se rompen en los límites de mosaicos. La codificación entrópica tal como CABAC también se restablece al comienzo de cada mosaico. Solo el procesamiento de filtro de desbloqueo y el procesamiento de compensación adaptable de muestras se pueden aplicar sobre los límites de mosaicos. De esta manera, los mosaicos pueden ser codificados y decodificados en paralelo. Los mosaicos se describen en detalle en la Bibliografía que no es Patente 2 y la Bibliografía que no es Patente 3.
Por otra parte, con el propósito de mejorar el concepto de cortes y hacerlo adecuado para la paralelización preferiblemente que para la resiliencia de errores la cual fue el propósito original de los cortes en H.264/MPEG-4 AVC, se ha propuesto el concepto de cortes dependientes y cortes entrópicos.
En otras palabras, en la HEVC, hay tres tipos de cortes soportados: (1) cortes normales; (2) cortes entrópicos; y (3) cortes dependientes.
Los cortes normales indican cortes ya conocidos a partir de H.264/MPEG-4 AVC. No se permite la predicción espacial entre cortes normales. En otras palabras, la predicción sobre los límites de cortes no se permite. Esto significa que un corte normal se codifica sin hacer referencia a ningún otro corte. Con el propósito de hacer posible la decodificación independiente de estos cortes, el CABAC se reinicia al comienzo de cada corte.
Cuando el corte que es procesado es un corte normal, el reinicio del CABAC incluye el procesamiento final (procesamiento de terminación) procesamiento de codificación aritmética o procesamiento de decodificación aritmética en el final del corte precedente, y procesamiento de la inicialización de la tabla de contexto (tabla de probabilidad) a un valor por defecto al comienzo del corte normal.
Los cortes normales se utilizan al comienzo de cada trama. En otras palabras, cada trama tiene que iniciar con un corte normal. Un corte normal tiene un encabezado que incluye parámetros necesarios para la decodificación de los datos de corte.
El término "cortes entrópicos" indica cortes en los cuales se permite la predicción espacial entre el corte padre y el corte entrópico. El análisis del corte padre y el corte entrópico se realiza independientemente.
Sin embargo, el corte padre es, por ejemplo, un corte normal justo antes del corte entrópico. El corte padre se requiere para la reconstrucción de los valores de pixeles del corte entrópico. Con el propósito de hacer posible el análisis independiente de los cortes entrópicos, el CABAC también se reinicia al comienzo del corte. Como el encabezado de corte de cortes entrópicos, es posible utilizar un encabezado de corte el cual es más corto que el encabezado de corte del corte normal. El encabezado de corte de los cortes entrópicos iinncclluuyyee uunn subconjunto de parámetros de codificación con respecto a la información transmitida dentro del encabezado de un corte normal. Los elementos faltantes en el encabezado del corte entrópico se copian del encabezado del corte padre.
Cuando el corte que es procesado es un corte entrópico, el reinicio del CABAC, similarmente al corte normal, incluye el procesamiento final (procesamiento de terminación) en el final de corte precedente y el procesamiento de inicialización de la tabla de contexto (tabla de probabilidad) a un valor por defecto al comienzo del corte actual. (3) El corte dependiente es similar a un corte entrópico, pero es parcialmente diferente en el procesamiento en el cual el CABAC es reiniciado.
Cuando el corte que es procesado es un corte dependiente y el WPP no es efectivo, el reinicio del CABAC incluye el procesamiento final en el corte precedente (procesamiento de terminación) y el procesamiento de inicialización de la tabla de contexto a un valor de estado del final del corte precedente. Cuando el corte que es procesado es un corte dependiente y el WPP no es efectivo, el reinicio del CABAC incluye el procesamiento final en el corte precedente (procesamiento de terminación) y el procesamiento de inicialización de la tabla de contexto a un valor de estado después del procesamiento de LCU el cual pertenece al corte precedente y es el segundo del extremo izquierdo en el comienzo del corte actual.
Como se describiera anteriormente, el reinício del CABAC siempre incluye el procesamiento de terminación. Por el contrario, en el reinicio del CABAC, el estado del CABAC se traslada frecuentemente.
Los cortes dependientes no pueden ser analizados sin un corte padre. Por lo tanto, los cortes dependientes no pueden ser codificados cuando no se recibe el corte padre. El corte padre es usualmente un corte precedente de los cortes dependientes en un orden de codificación y un corte el cual incluye un encabezado de corte completo. Esto es lo mismo para el corte padre de un corte entrópico.
Como se describiera anteriormente, los cortes entrópicos dependientes utilizan el encabezado de corte (en particular, la información del encabezado de corte el cual falta en el encabezado del corte dependiente) del corte inmediatamente anterior de acuerdo con el orden de codificación de los cortes. Esta regla se aplica recursivamente. El corte padre del corte dependiente actual depende de que se reconozca como disponible para referencia. Referencia incluye el uso de la predicción espacial entre los cortes, estados de CABAC compartidos y similares. Un corte dependiente utiliza tablas de contexto de CABAC que se generan al final del corte inmediatamente anterior. De esta manera, un corte dependiente no inicializa las tablas de CABAC a los valores por defecto, sino que en cambio mantiene el uso de tablas de contexto ya desarrolladas. Los detalles adicionales con respecto a los cortes entrópicos y dependientes se pueden encontrar en la Bibliografía que no es Patente 3.
La HEVC proporciona varios perfiles. Un perfil incluye algunos ajustes del aparato de codificación de imágenes y el aparato de decodificación de imágenes adecuados para una aplicación particular. Por ejemplo, el "perfil principal" solo incluye cortes normales y dependientes, pero no cortes entrópicos.
Como se describiera anteriormente, los cortes codificados son encapsulados adicionalmente en unidades de NAL, las cuales son encapsuladas adicionalmente, por ejemplo, en un Protocolo de Tiempo Real (RTP, por sus siglas en inglés) y finalmente en paquetes de Protocolo de Internet (IP, por sus siglas en inglés). Ya sea esto u otras pilas de protocolos, hace posible la transmisión del video codificado en redes orientadas a paquetes, tales como internet o algunas redes de propiedad exclusiva.
Las redes incluyen típicamente por lo menos uno o más ruteadores, los cuales emplean hardware especial que opera muy rápido. La función del ruteador es recibir paquetes de IP, analizar sus encabezados de los paquetes de IP y, por consiguiente, enviar los paquetes de IP a sus destinos respectivos. Puesto que los ruteadores necesitan gestionar el tráfico de muchas fuentes, la lógica de manejo de paquetes necesita ser tan simple como sea posible. El requerimiento mínimo para el ruteador es verificar el campo de dirección de destino en el encabezado de IP con el propósito de determinar que ruta tomar para enviarlos. Con el propósito de proporcionar adicionalmente soporte para la calidad del servicio (QoS, por sus siglas en inglés), los ruteadores inteligentes (conscientes de medios) verifican adicionalmente los campos especializados en los encabezados de protocolo de red, tal como un encabezado de IP, un encabezado de RTP e incluso el encabezado de una NALU.
Como se puede observar a partir de la descripción anterior de la codificación de video, los diferentes tipos de cortes definidos con el propósito de procesamiento paralelo tales como los cortes dependientes y los cortes entrópicos, son de diferente importancia con respecto a la distorsión de calidad con su daño. En particular, los cortes dependientes no pueden analizarse y decodificarse sin un corte padre. Esto es debido a que en su comienzo del corte dependiente, el codificador o el decodificador entrópico no puede reiniciarse. Adicionalmente, el corte padre es más importante para la reconstrucción de la imagen o video.
En la HEVC, los cortes dependientes y entrópicos introducen una dimensión adicional de dependencia, específicamente, la dependencia ínter-cortes (una dependencia dentro de la trama). Esta clase de dependencia no es considerada por los ruteadores.
Las dependencias descritas anteriormente y, en particular, la dependencia inter-cortes no se considera al nivel de red. Sin embargo, sería deseable tomar en cuenta la dependencia descrita anteriormente al nivel de la red con el propósito de proporcionar un mejor soporte para la calidad del servicio. Por consiguiente, es necesario mejorar la flexibilidad del manejo de paquetes al nivel de la red al considerar las dependencias de los cortes.
Detalles del problema 1-5. WPP y corte dependiente Los cortes dependientes pueden utilizarse junto con herramientas de procesamientos paralelas tales como el procesamiento paralelo de frente de onda (WPP) y mosaicos. En particular los cortes dependientes hacen que el frente de onda (subcorriente) sea capaz de disminuir el retraso de transmisión sin causar una pérdida de codificación.
Por otra parte, los cortes dependientes sirven como puntos de inicio para subcorrientes de CABAC puesto que los CABAC no son reiniciados en los cortes dependientes. Por otra parte, la información que indica que los puntos de inicio pueden ser transmitidos en la corriente de bits con el propósito de proporcionar los puntos de inicio para el análisis posiblemente independiente. En particular, si más de dos subcorrientes de CABAC son encapsuladas en un corte normal o dependiente, los puntos de inicio se señalan explícitamente en la forma del número de bytes por subcorriente. En este documento, la subcorriente indica una porción de la corriente la cual es analizable independientemente gracias a los puntos de inicio. Adicionalmente, los cortes dependientes pueden utilizarse como "marcadores" de punto de inicio, puesto que cada corte dependiente necesita tener un encabezado de unidad de NAL. Esto significa que los puntos de inicio pueden ser señalados con respecto a estos marcadores.
Los dos planteamientos, en particular la señalización de puntos de inicio explícita y el marcado de los puntos de inicio por vía de cortes dependientes se utilizan conjuntamente.
Como una regla, el punto de inicio de cada unidad de NAL (comienzo de cada encabezado de NAL) tiene que ser identificable . No hay un requerimiento acerca de la operación de identificación exacta. Por ejemplo, los siguientes dos métodos se pueden aplicar.
El primer método es un método para colocar un código de inicio (por ejemplo, 3 bytes de largo) al comienzo de cada encabezado de NAL. El segundo método es un método para colocar cada unidad de NAL en un paquete separado. Debido a la dependencia de los cortes, el tamaño del encabezado de corte se puede reducir.
Con respecto a los cortes entrópicos, el método hace posible el análisis paralelo de CABAC. Esto es debido a que el CABAC se reinicia verdaderamente al comienzo de los cortes entrópicos. En el caso del procesamiento paralelo de CABAC, el CABAC representa un cuello de botella el cual puede ser superado por medio del análisis paralelo de CABAC seguido por operaciones de reconstrucción secuencial de pixeles. En particular, la herramienta de paralelización de WPP hace posible la decodificación de cada hilera de LCU por medio de un núcleo de procesamiento (código de propiedad intelectual (núcleo de IP), un bloque de función). Se debe observar que la asignación de las hileras de LCU a los núcleos puede ser diferente. Por ejemplo, dos hileras pueden ser asignadas a un núcleo y una hilera puede ser asignada a dos núcleos.
La FIGURA 3 es un diagrama que muestra un ejemplo de una configuración de una representación visual 300. En la FIGURA 3, una representación visual 300 es subdividida en 31 a 3 m (m es el número ordinario de LCU) hileras de unidades de codificación más grandes (LCU). Cada una de las hileras de LCU 3i (1 = 1 para m) comprende LCUs 3il a 3in (n es el número ordinario de una columna de LUC) que se disponen en una hilera. La hilera de LCU 3i corresponde al "Frente de onda i". El procesamiento paralelo se puede realizar para frentes de onda. La flecha del estado de CABAC en la FIGURA 3 indica una relación entre LCU que se refiere al estado de CABAC y el destino de referencia.
Específicamente, en la FIGURA 3, en primer lugar, entre las LCUs incluidas en la hilera LCU 31, el procesamiento (codificación o decodificación) inicia para la LCU principal 311. El procesamiento en las LCUs se realiza en un orden de la LCU 311 a 31n. Después de que se realiza el procesamiento en las primeras dos LCUs 311 y 312 en la hilera de LCU 31, se inicia el procesamiento en la hilera de LCU 32. En el procesamiento de la primera hilera de LCU 321 de la columna de LCU 32, como se muestra en la flecha del estado de CABAC en la FIGURA 3, el estado de CABAC justo después del procesamiento en la LCU 312 en la hilera de LCU 31 en la primera hilera se utiliza como el estado inicial del estado de CABAC. En otras palabras, existe un retraso de dos LCUs entre los dos procesamientos paralelos.
La FIGURA 4 es un diagrama que muestra un ejemplo del caso donde se utiliza un corte dependiente utilizando el WPP. Las hileras de LCU 41 a 43 corresponden al "Frente de Onda 1", "Frente de Onda 2" y "Frente de Onda 3", respectivamente. Las hileras de LCU 41 a 43 son procesadas por sus núcleos independientes respectivos. En la FIGURA 4, la hilera de LCU 41 es un corte normal y las hileras de LCU 42 a 4 m son cortes dependientes.
Los cortes dependientes hacen que el WPP sea capaz de reducir el retraso. Los cortes dependientes no tienen un encabezado de corte completo. Por otra parte, los cortes dependientes pueden decodificarse independientemente de otros cortes siempre y cuando los puntos de inicio (o el punto de inicio de cortes dependientes, el cual se conoce como una regla como se describiera anteriormente) sean conocidos. En particular, los cortes dependientes pueden hacer que el WPP sea adecuado también para las aplicaciones de retraso bajo sin incurrir en una pérdida de codificación.
En el caso usual del encapsulamiento de las subcorrientes (hileras de LCU) en cortes, es obligatorio insertar los puntos de inicio explícitos en el encabezado de corte para asegurar la codificación entrópica y decodificación entrópica paralelas. Como resultado, un corte está listo para la transmisión solo después de que la última subcorriente del corte es codificada completamente. El encabezado de corte se completa solo después de que se completa la codificación de la totalidad de las subcorrientes en el corte. Esto significa que la transmisión del comienzo de un corte no puede ser iniciada por vía de la fragmentación de paquetes en la capa de RTP/IP hasta que se termina el corte completo.
Sin embargo puesto que los cortes dependientes se pueden utilizar como marcadores de punto de inicio, no se requiere la señalización de puntos de inicio explícitos. Por lo tanto, es posible dividir un corte normal en muchos cortes dependientes sin pérdida de codificación. Los cortes dependientes pueden ser transmitidos tan pronto como se complete la codificación de la subcorriente encapsulada (o incluso antes en el caso de la fragmentación de paquetes).
Los cortes dependientes no rompen la dependencia de predicción espacial. Los cortes dependientes no rompen incluso la dependencia de análisis. Esto es debido a que ordinariamente el análisis del corte dependiente actual requiere los estados de CABAC del corte previo.
Cuando los cortes dependientes no se permitieron, entonces cada hilera de LCU puede ser configurada para ser un corte. Esta configuración disminuye el retraso de transmisión, pero al mismo tiempo, conduce a una pérdida de codificación bastante alta como se plantea en la sección de Antecedentes de Invención Anterior.
Alternativamente, la trama completa (representación visual) se encapsula en un corte individual. En este caso, los puntos de inicio para las subcorrientes (hileras de LCU) necesitan ser señalados en el encabezado de corte con el propósito de hacer posible su análisis paralelo. Como resultado, existe un retraso de transmisión al nivel de tramas. En otras palabras, el encabezado necesita ser modificado después que se codifica la trama completa. Tener una representación visual completa encapsulada en un corte individual por sí mismo no incrementa el retraso de transmisión. Por ejemplo, la transmisión de algunas partes del corte puede iniciar previamente antes de que se termine la codificación completa. Sin embargo, si se utiliza el PP, entonces el encabezado de corte necesita ser modificado posteriormente con el propósito de escribir los puntos de inicio. Por lo tanto, el corte completo necesita ser retrasado para la transmisión.
El uso de cortes dependientes hace posible de esta manera una reducción del retraso. Como se muestra en la FIGURA 4, una representación visual 400 se divide en una hilera de LCU 41 que es un corte normal y las hileras de LCU 42 a 4 m que son cortes dependientes. Cuando cada hilera de LCU es un corte dependiente, un retraso de transmisión de una hilera de LCU se puede lograr sin ninguna pérdida de codificación. Esto es causado por el hecho de que los cortes dependientes no rompen ninguna dependencia espacial y no reinician el motor de CABAC. 1-6. Configuración de un paquete Como se describiera anteriormente, los ruteadores de red tienen que analizar encabezados de paquetes con el propósito de hacer posible la provisión de calidad de servicio. La calidad de servicio es diferente de acuerdo con el tipo de aplicación y/o prioridad del servicio y/o de la relevancia del paquete para la distorsión causada por su pérdida de paquetes.
La FIGURA 5 es un diagrama que muestra un ejemplo de un encapsulamiento (empacamiento) de una corriente de bits.
Generalmente, el protocolo de tiempo real (RTP) se utiliza para el empacamiento. El RTP se utiliza usualmente para la transmisión de medios en tiempo real. Las longitudes de encabezados de los protocolos involucrados respectivos son fijas básicamente. Los encabezados de protocolo tienen campos de extensión. Los campos de extensión pueden extender la longitud de los encabezados por 4 bytes. Por ejemplo, el encabezado de IP se puede extender por hasta 20 bytes. Los elementos de sintaxis en los encabezados de IP, Protocolo de Datagra a de Usuario (UDP, por sus siglas en inglés) y RTP también son fijos en su longitud.
La FIGURA 5 muestra un encabezado de paquete 500 incluido en un paquete de IP. El encabezado de paquete mostrado en la FIGURA 5 incluye un encabezado de IP 510, encabezado de UDP 530, encabezado de RTP 540, encabezado de carga útil de RTP H264 560 y encabezado de NAL 570. El encabezado de IP 510 es un encabezado con una longitud de 20 bytes con un campo de extensión 520 de 4 bytes. La carga útil del paquete de IP es un paquete de UDP. El paquete de UDP incluye un encabezado de UDP 530 con una longitud de 8 bytes y la carga útil de UDP. La carga útil de UDP está formada por el paquete de RTP. El paquete de RTP incluye un encabezado de RTP 540 con una longitud de cabeza de 12 bytes y un campo de extensión 550 de 4 bytes. El paquete de RTP puede ser extendido selectivamente por el campo de extensión. La carga útil del paquete de RTP incluye un encabezado de carga útil de RTP H264 especial 560 con una longitud de 0 a 3 bytes seguido por un encabezado de NAL 570 de la HEVC el cual es de 2 bytes de longitud. La carga útil de la NALU que incluye el paquete de video codificado sigue los encabezados de paquetes 500 (los cuales no se muestran en la FIGURA 5).
Los ruteadores los cuales son capaces de proporcionar una calidad de servicio mejorada son llamados Elementos de Red Conscientes de Medios (MANE, por sus siglas en inglés). Los Elementos de Red Conscientes de Medios verifican algunos de los campos de los encabezados de paquetes mostrados en la FIGURA 5. Por ejemplo, un MANE es llamado "temporal_id" y está incluido en el encabezado de NAL 570 o el número de orden de decodificación incluido en el encabezado de RTP 540 puede ser verificado con el propósito de detectar pérdidas y el orden de presentación de los contenidos de paquetes recibidos. Los ruteadores (elementos de red) gestionan los paquetes tan rápido como sea posible con el propósito de habilitar un alto rendimiento en la red.
La lógica se requiere para tener acceso a los campos en los encabezados de paquete de manera rápida y simple, con el propósito de mantener baja la complejidad del procesamiento de elementos de red.
La NALU es encapsulada por el encabezado 500. La NALU puede incluir datos de corte cuando un encabezado de corte está presente.
La FIGURA 6 es un diagrama que muestra un ejemplo de una sintaxis de encabezado de corte 600. El elemento de sintaxis dependent_slice_flag 601 es un elemento de sintaxis que indica si un corte es o no un corte dependiente. El elemento de sintaxis se puede utilizar para identificar la dependencia inter-cortes. Sin embargo, el encabezado de corte es el contenido de una NALU. El análisis de los elementos de sintaxis antes del dependent_slice_flag 601 requiere una lógica bastante complicada. Este es un nivel el cual no puede ser considerado eficientemente por los ruteadores ordinarios como se mostrará posteriormente.
Como se describiera anteriormente, una NALU incluye información común para una pluralidad de cortes tal como conjuntos de parámetros, o incluye cortes directamente codificados con información necesaria para la decodificación incluida en el encabezado de corte. La sintaxis de un encabezado de corte utilizado para un corte entrópico o dependiente se ejemplifica en la FIGURA 6. La FIGURA 6 muestra una tabla con una estructura de encabezado de corte.
Cuando el elemento de sintaxis "dependent_slice_flag" se establece a 1, todos los cortes hasta el primer corte normal (un corte el cual no es un corte entrópico y no es un corte dependiente) que precede al corte actual en el orden de decodificación se requieren. Cuando los cortes no son decodificados, en general, el corte dependiente actual no puede ser decodificado. En algunos casos especiales, por ejemplo, el corte dependiente puede ser decodificable cuando está disponible alguna otra información secundaria señalada u obtenida. El elemento de sintaxis dependent_slice_flag 601 se incluye aproximadamente a la mitad del encabezado de corte. Por otra parte, el encabezado de corte incluye el número de subcorrientes de CABAC dentro del corte actual señalado por el elemento de información num_entry_point_offsets 602 y el número de bytes en una subcorriente señalada por el elemento de sintaxis entry_point_offset [i] 603. En este documento, el elemento de información num_entry_point_offsets 602 corresponde al número de puntos de entrada. Adicionalmente, i es un número entero y un índice que indica los puntos de entrada particulares (compensaciones de los puntos de entrada) . El número de bytes en una subcorriente indicada por entry_point_offset [i] 603 hace posible una navegación fácil dentro de la corriente de bits. 1-7. Dependencia de la representación visual Como se describiera anteriormente, existen varios tipos de dependencias que resultan del planteamiento de codificación HEVC.
La FIGURA 7 es un diagrama que muestra las dependencias y su señalización en el caso en el cual se utilizan solo cortes normales, es decir, no se utilizan cortes dependientes y cortes entrópicos. La FIGURA 7 muestra tres representaciones visuales 710, 720 y 730.
La representación visual 710 es una representación visual de capa base llevada en dos VCL NALUs, específicamente la Unidad 1 de VCL NAL y la Unidad 2 de VCL NAL. POC indica el orden en el cual se deben convertir las representaciones visuales. VCL NALU incluye un elemento de sintaxis que indica si una representación visual pertenece a una capa base o a una capa de mejoramiento y un elemento de sintaxis temporal_id. El elemento de sintaxis que indica si una representación visual pertenece a una capa base o una capa de mejoramiento se transmite bajo una condición de estar dentro del encabezado NAL 570 del encabezado de paquete 500 mostrado en la FIGURA 5. El elemento de sintaxis "temporal_id" también se transmite bajo una condición de estar dentro del encabezado de NAL 570. El elemento de sintaxis "temporal_id" indica el grado de dependencia de las otras representaciones visuales. Por ejemplo, las representaciones visuales o cortes codificados con temporal_id = 0 son decodificables independientemente de otras representaciones visuales/cortes los cuales tienen un temporal_id más alto. Se debe observar que en la HEVC, el temporal_id se señala en el encabezado de NAL como nuh_temporal_id_plusl (hacer referencia a la FIGURA 9A). En particular, la siguiente Expresión 1 se puede aplicar a la relación entre el temporal_id utilizado en esos ejemplos y el elemento de sintaxis nuh_temporal_id_plusl.
Ecuación Matemática 1 temporaMd = nuh_temporal_id_plusl - 1 (Expresión 1) Los cortes con temporal_id = 1 dependen de cortes del temporal_id con un valor más bajo. En otras palabras, el valor de temporal_id en este caso es 0. En particular, el elemento de sintaxis temporal_id se refiere a la estructura de predicción de la representación visual. En general, los cortes con un valor particular de temporal_id dependen solo de cortes con un valor más bajo o igual de temporal_id.
Por consiguiente, una representación visual 710 en la FIGURA 7 puede ser decodificada primero.
Una representación visual 720 es una capa de mejoramiento para la capa base de la representación visual 710. De esta manera, existe una dependencia la cual requiere que la representación visual 720 sea decodificada después de decodificar la representación visual 710. La representación visual 720 incluye dos NALUs, específicamente la Unidad 3 de VCL NAL y la Unidad 4 de VCL NAL. Ambas representaciones visuales 710 y 720 tienen su valor de POC de 0. Esto significa que las representaciones visuales 710 y 720 pertenecen a la misma imagen que es exhibida de inmediato. Las imágenes comprenden la capa base y la capa de mejoramiento.
La representación visual 730 es una capa base la cual incluye dos NALUs, específicamente la Unidad 5 de VCL NAL y la Unidad 6 de VCL NAL. La representación visual 730 tiene el valor de POC de 1. Esto significa que la representación visual (porción) 730 debe ser exhibida después de las representaciones visuales 720 y 710. Por otra parte, la representación visual 730 tiene el valor de temporal_id = 1. Esto significa que la representación visual 730 depende temporalmente de una representación visual con temporal__id = 0. Por consiguiente, con base en la dependencia señalada en el encabezado de NAL, la representación visual 730 depende de la representación visual 710.
La FIGURA 8 es un diagrama que muestra las dependencias (grado de dependencia) y su señalización en el caso en el cual se utilizan cortes dependientes y cortes no entrópicos. La FIGURA 8 muestra tres representaciones visuales 810, 820 y 830. La FIGURA 8 difiere de la FIGURA 7 descrita anteriormente en que las dependencias de los cortes dependientes y entrópicos señalados dentro del encabezado de corte se agregan.
En la FIGURA 7, la dependencia ínter-capas se muestra con el ejemplo de las representaciones visuales 710 y 720. Por otra parte, la dependencia temporal se muestra en el ejemplo de las representaciones visuales 710 y 730. Estas dependencias son señaladas ambas en el encabezado de NAL.
La dependencia inter-cortes como se muestra en la FIGURA 8 es inherente a los cortes dependientes y entrópicos. En particular, la trama de capa base 810 y la trama de capa de mejoramiento 820 tienen ambas dos cortes. De los dos cortes, uno es un corte padre (corte normal) y el otro es un corte hijo (corte dependiente). En la trama 810, el corte de la Unidad 1 de VCL NAL es el corte padre de la Unidad 2 de VCL NAL. En la trama 820, el corte de la Unidad 3 de VCL NAL es el corte padre de la Unidad 4 de VCL NAL. Como se describiera anteriormente, el término "corte padre" de un corte dependiente se refiere a un corte del cual depende el corte dependiente, es decir, el corte del cual la información de encabezado de corte es utilizada por el corte dependiente. Esto es como regla general que el primer corte precedente es un corte que tiene un encabezado completo. El corte que tiene un encabezado completo es un corte normal, no otro corte dependiente, por ejemplo.
La sintaxis correspondiente del encabezado de la unidad de NAL y el encabezado de corte como se utiliza actualmente en la HEVC y en particular en el HM8.0 se describirán con referencia a la FIGURA 9A.
La FIGURA 9A es un diagrama que muestra la sintaxis de un encabezado de unidad NAL 910 y la sintaxis del encabezado de corte 920. En particular, las dependencias inter-capas se planean (en la estandarización actual) para que sean señaladas dentro del encabezado de unidad de NAL utilizando el elemento de sintaxis nuh_reserved_zero_6bits. Las dependencias temporales se señalan utilizando el elemento de sintaxis nuh_temporal_id_plusl. El encabezado de corte 920 incluye una señal que muestra el indicador de dependencia inter-cortes. El indicador de dependencia inter-cortes es señalado por el elemento de sintaxis dependent_slice_flag. En otras palabras, la dependencia inter-cortes (por ejemplo, dependencia temporal) se señala dentro del encabezado de corte, en algún lugar en el encabezado de corte.
Con el propósito de analizar este elemento de sintaxis, todos los elementos de sintaxis que preceden a dependent_slice_flag deben ser analizados así como también los elementos de sintaxis de conjuntos de parámetros necesarios para analizar los elementos de sintaxis de encabezado de corte que preceden al dependent_slice_flag. 1-8. Procesamiento en el ruteador Como se describiera anteriormente, en la determinación de la configuración de tráfico, es deseable tomar en cuenta las dependencias inducidas por los cortes dependientes y entrópicos, además de las dependencias señaladas en el encabezado de NAL. Por ejemplo, un ruteador puede ser implementado como una estación base móvil consciente de medios. La anchura de banda en el enlace descendente es muy limitada y necesita ser manejada muy cuidadosamente. Se asume el siguiente caso ejemplar. Se asume que un paquete es abandonado aleatoriamente en la corriente ascendente por un ruteador normal. En este caso, un elemento de red consciente de medios (MAME) descubre la pérdida del paquete al verificar el número de paquete. Después de verificar la pérdida de paquete, el MANE abandona todos los paquetes los cuales son dependientes del paquete abandonado y los cuales siguen. Esta es una cualidad deseable para los elementos de red conscientes de medios. De esta manera, los paquetes pueden ser abandonados más inteligentemente. Cuando se determina que un ruteador abandona una unidad de NAL, deduciría inmediatamente que los siguientes cortes dependientes necesitan ser abandonados también. En la sintaxis actual introducida en la FIGURA 9A, el acceso del dependent_slice_flag requiere el análisis de una cantidad considerable de información. Esto no es esencial para las operaciones de enrutamiento de paquetes o configuración del tráfico en los ruteadores . Toda la información que es necesaria para descubrir las relaciones ínter-capas e inter temporales está presente en el conjunto de parámetros de video. El conjunto de parámetros de video es el conjunto más alto en la jerarquía de conjuntos de parámetros.
Por consiguiente, la información descrita anteriormente es señalada dentro del encabezado de NAL 570. Sin embargo, en el caso del encabezado de NAL y el encabezado de corte mostrado en la FIGURA 9A, el acceso a la información de dependencia de cortes requiere mantener la pista de conjuntos de parámetros adicionales tales como PPS y SPS. Esto, por otra parte, reutiliza la capacidad de puertas o ruteadores conscientes de medios. Como se observa a partir de la FIGURA 9A, el encabezado de corte 920 tiene que ser analizado hasta el dependent_slice_flag y los parámetros analizados son inútiles para la operación de red.
Con el propósito de hacer posible el análisis de la dirección de corte la cual precede al dependent_slice_flag, se requieren los siguientes elementos de sintaxis de los elementos de sintaxis incluidos en el SPS930 como se muestra en la FIGURA 9B. La FIGURA 9B es un diagrama que muestra un ejemplo de la sintaxis incluida en el SPS. • pic_width_in_luma_samples (signo de referencia 931 en la FIGURA 9B) • pic_height_in_luma_samples (signo de referencia 932 en la FIGURA 9B) • log2_min_coding_block_size_minus 3 (signo de referencia 933 en la FIGURA 9B) • log2_diff_max_min_coding_block_size (signo de referencia 934 en la FIGURA 9B).
Esos parámetros se muestran en la tabla derecha de la FIGURA 9B y son necesarios para obtener el parámetro slice_address. El elemento de sintaxis slice_adress es codificado con longitud variable (como se puede observar cuando se mira en la longitud "v" en el descriptor, segunda columna, de slice_address y el encabezado de corte 920 en la FIGURA 9A). Con el propósito de conocer la longitud de este parámetro codificado de longitud variable, son necesarios aquellos elementos de sintaxis de SPS. De hecho, con el propósito de hacer posible el análisis del dependent_slice_flag, el valor real del elemento de sintaxis slice_address no es necesario. Solo la longitud del elemento de sintaxis el cual es variable debe ser conocida de modo que el proceso de análisis pueda continuar.
Por lo tanto, el SPS necesita ser analizado hasta el punto 935 de los elementos de sintaxis dentro del SPS 930 mostrados en la FIGURA 9B. Se requiere que los cuatro elementos de sintaxis sean almacenados. Estos se utilizan posteriormente en una fórmula para calcular la longitud del elemento de sintaxis slice_address.
Por otra parte, con el propósito de acceder al dependent_slice_enabled_flag que también precede al dependent_slice_flag, el PPS necesita ser analizado hasta el punto 945 de los elementos de sintaxis dentro del PPS mostrado en la FIGURA 9C. La FIGURA 9C es un diagrama que muestra un ejemplo de sintaxis incluido en el PPS. Se debe observar que los elementos de sintaxis cuyos métodos de análisis se describen con referencia a las FIGURAS 9A a 9C y los cuales están localizados dentro del encabezado de corte y el SPS y el PPS no se requieren para operaciones comunes del ruteador. Por otra parte, algunos elementos de sintaxis no pueden ser omitidos simplemente puesto que algunos de los elementos de sintaxis son codificados con códigos de longitud variable. Por consiguiente, incluso si se realiza un salto en la corriente de bits por una cantidad predefinida de bits, el salto hasta el dependent_slice_enabled_flag no es posible.
En otras palabras, con el propósito de leer el dependent_slice_flag (indicación de dependencia), el MANE necesita ir más allá en el encabezado de corte (hacer referencia al encabezado de corte 920) cuyo análisis es bastante complicado.
Específicamente, el indicador first_slice_in_pic_flag tiene que ser analizado. El indicador first_slice_in_pic_flag es un indicador que señala si un corte es o no el primer corte dentro de la representación visual .
Luego, no_output_of_prior_pics_flag cuya presencia es condicional en el tipo de NALU tiene que ser analizado.
Por otra parte, el pic_parameter_set_id codificado por longitud variable tiene que ser decodificado. El elemento de sintaxis pic_parameter_set_id es un elemento de sintaxis que indica cual de los conjuntos de parámetros se utiliza (un elemento de sintaxis el cual identifica el conjunto de parámetros). Al analizar el pic_parameter_set_id, se puede identificar el conjunto de parámetros que se utiliza.
Finalmente, se requiere el elemento de sintaxis slice_address. El elemento de sintaxis slice_address es un elemento de sintaxis que indica la posición de inicio del corte. El elemento de sintaxis requiere además el análisis del PPS y el SPS así como también el cálculo adicional.
Como el último paso, el valor de dependent_slice_enabled_flag (indicador habilitado de corte dependiente) tiene que obtenerse del PPS, con el propósito de saber si el dependent_slice_flag está presente o no en la corriente de bits. Cuando dependent_slice_enabled_flag = 0, significa que el corte actual es un corte normal puesto que los cortes dependientes no están habilitados. Con el propósito de obtener el valor del dependent_slice_enabled_flag, se requiere que el PPS sea analizado hasta aproximadamente la mitad.
Desafortunadamente, los elementos de sintaxis antes de dependentes1ice_flag no pueden ser omitidos y necesitan ser analizados a diferencia del caso de los datos del encabezado de RTP y NAL, en .los cuales la posición de los datos está predefinida. Esto es causado por el hecho de que los elementos de sintaxis en el encabezado de corte son codificados por longitud variable. Por lo tanto, la presencia y longitud del elemento necesita ser calculada para cada unidad de VCL NAL. Además, los datos de sesión adicionales necesitan ser almacenados debido a que son necesarios posteriormente (hacer referencia a PPS y SPS). Por otra parte, la presencia de algunos elementos de sintaxis depende de la presencia o el valor de otros elementos de sintaxis incluidos posiblemente en otras estructuras de parámetros (los elementos de sintaxis son codificados condicionalmente).
En la estandarización actual, existe una propuesta para señalar la estructura de dependencia de la secuencia de video en el Conjunto de Parámetros de Video (VPS, por sus siglas en inglés) que describe cuantas capas están contenidas en la corriente de bits y los indicadores de dependencia para indicar las diversas dependencias inter-capas. El VPS es señalado muy al comienzo del video, antes del primer SPS. Múltiples SPSs pueden referirse a un VPS individual. Esto significa que un VPS lleva información que es válida para múltiples secuencias de video. El objetivo principal del VPS es informar a un ruteador o decodificador acerca del contenido del video que incluye información. Cuantas secuencias de video están incluidas y como están interrelacionadas. El SPS es válido solo dentro de una secuencia de video mientras que el VPS lleva información relacionada con múltiples secuencias de video.
Por otra parte, la característica de la información llevada en el VPS es informativa especialmente para los ruteadores. Por ejemplo, el VPS podría llevar información que se requiere para el establecimiento de una sesión de transmisión ininterrumpida puesto que el diseño no está finalizado. El ruteador analiza la información en el VPS. El ruteador, sin necesidad de otros conjuntos de parámetros (solo al mirar en los encabezados de NAL), puede determinar que paquetes de datos enviar al decodificador y que paquetes abandonar.
Sin embargo, con el propósito de descubrir el VPS actualmente activo, es necesario que los siguientes pasos ordenados se realicen: análisis del PPS_id en el encabezado de corte; análisis del SPS_id en el PPS activo determinado por el PPS_id; y análisis del VPS_id en el SPS activo determinado por el SPS_id.
Con el propósito de resolver el problema descrito anteriormente, un método de codificación de imágenes de acuerdo con un aspecto de la presente invención es un método de codificación de imágenes para realizar el procesamiento de codificación al dividir una representación visual en una pluralidad de cortes, el método de codificación de imágenes comprende transmitir una corriente de bits la cual incluye: un indicador de habilitación de cortes dependientes que señala si la representación visual incluye o no un corte dependiente en el cual se realiza el procesamiento de codificación dependiendo de un resultado del procesamiento de codificación en un corte diferente de un corte actual; una dirección de corte que indica una posición de inicio del corte actual; y una indicación de dependencia (dependent_slice_flag) que señala si el corte actual es o no el corte dependiente, en donde el indicador de habilitación de cortes dependientes está dispuesto en un conjunto de parámetros común para los cortes, la dirección de corte está dispuesta en un encabezado de corte del corte actual y la indicación de dependencia está dispuesta en el encabezado de corte y está dispuesta antes de la dirección de corte y después de un elemento de sintaxis (pic_parameter_set_id) que identifica el conjunto de parámetros.
En el método de codificación de imágenes descrito anteriormente, una indicación de dependencia de la dependencia ínter-cortes está localizada en una posición adecuada para el análisis por parte del ruteador. Con esto, es posible codificar independientemente la indicación de dependencia de la sintaxis, en otras palabras, incondicionalmente, de otros elementos de sintaxis.
Por ejemplo, la indicación de dependencia puede estar incluida en la corriente de bits cuando el indicador de habilitación de cortes dependientes señala la inclusión del corte dependiente.
Por ejemplo, el indicador de habilitación de cortes dependientes puede ser dispuesto en el comienzo del conjunto de parámetros.
Por ejemplo, cada uno de los cortes puede incluir una pluralidad de acrobloques y el procesamiento de codificación en el corte actual puede iniciar después de que se realiza el procesamiento de codificación en dos de los macrobloques incluidos en un corte actual inmediatamente precedente.
Por ejemplo, la indicación de dependencia puede no ser incluida en un encabezado de corte de un corte el cual es procesado primero para la representación visual, entre los cortes.
Con el propósito de resolver el problema descrito anteriormente, un método de decodificación de imágenes de acuerdo con un aspecto de la presente invención es un método de decodificación de imágenes para realizar el procesamiento de decodificación al dividir una representación visual en una pluralidad de cortes, el método de decodificación de imágenes comprende extraer, de una corriente de bits codificada, un indicador de habilitación de cortes dependientes que señala si la representación visual incluye o no un corte dependiente en el cual se realiza el procesamiento de decodificación dependiendo de un resultado del procesamiento de decodificación en un corte diferente de un corte actual, una dirección de corte que indica una posición de inicio del corte actual y una indicación de dependencia que señala si el corte actual es o no el corte dependiente, en donde el indicador de habilitación de cortes dependientes está dispuesto en un conjunto de parámetros común para los cortes, la dirección de corte está dispuesta en el encabezado de corte del corte actual y la indicación de dependencia está dispuesta en el encabezado de corte y se dispone antes de la dirección de corte y después de un elemento de sintaxis que identifica el conjunto de parámetros.
Por ejemplo, la indicación de dependencia puede ser extraída de la corriente de bits cuando el indicador de habilitación de cortes dependientes señala la inclusión del corte dependiente.
Por ejemplo, el indicador de habilitación de cortes dependientes puede ser dispuesto al comienzo del conjunto de parámetros.
Por ejemplo, cada uno de los cortes puede incluir una pluralidad de macrobloques y el procesamiento de decodificación en el corte actual se puede iniciar después de que el procesamiento de decodificación se realiza en dos de los macrobloques incluidos en un corte actual inmediatamente precedente.
Por ejemplo, la indicación de dependencia puede no ser incluida en un encabezado de corte de un corte el cual es procesado primero para la representación visual, entre los cortes.
Con el propósito de resolver el problema, un aparato de codificación de imágenes de acuerdo con un aspecto de la presente invención es un aparato de codificación de imágenes el cual realiza el procesamiento de codificación al dividir una representación visual en una pluralidad de cortes, el aparato de codificación de imágenes comprende un codificador el cual transmite una corriente de bits la cual incluye: un indicador de habilitación de cortes dependientes que señala si la representación visual incluye o no un corte dependiente en el cual se realiza el procesamiento de codificación dependiendo del resultado del procesamiento de codificación en un corte diferente de un corte actual; y una dirección de corte que indica una posición de inicio del corte actual; y una indicación de dependencia que señala si el corte actual es o no el corte dependiente, en donde el indicador de habilitación de cortes dependientes se dispone en un conjunto de parámetros común para los cortes, la dirección de corte se dispone en un encabezado de corte del corte actual y la indicación de dependencia se dispone en el encabezado de corte y se dispone antes de la dirección de corte y después de un elemento de sintaxis que identifica el conjunto de parámetros.
Con el propósito de resolver el problema, un aparato de decodificación de imágenes de acuerdo con un aspecto de la presente invención es un aparato de decodificación de imágenes el cual realiza el procesamiento de decodificación al dividir una representación visual en una pluralidad de cortes, el aparato de decodificación de imágenes comprende un decodificador el cual extrae, de una corriente de bits codificada, un indicador de habilitación de cortes dependientes que señala si la representación visual incluye o no un corte dependiente en el cual se realiza el procesamiento de decodificación dependiendo de un resultado del procesamiento de decodificación en un corte diferente de un corte actual, una dirección de corte que indica una posición de inicio del corte actual y una indicación de dependencia que señala si el corte actual es o no el corte dependiente, en donde el indicador de habilitación de cortes dependientes se dispone en un conjunto de parámetros común para los cortes, la dirección de corte se dispone en un encabezado de corte del corte actual y la indicación de dependencia se dispone en el encabezado de corte y se dispone antes de la dirección de corte y después de un elemento de sintaxis que identifica el conjunto de parámetros.
Con el propósito de resolver el problema descrito anteriormente, un aparato de codificación y decodificación de imágenes de acuerdo con un aspecto de la presente invención incluye el aparato de codificación de imágenes descrito anteriormente y el aparato de decodificación de imágenes descrito anteriormente.
De acuerdo con el método de codificación de imágenes, el método de decodificación de imágenes y similares que se configuran anteriormente, una indicación de dependencia ínter-cortes se localiza dentro de la sintaxis de la corriente de bits relacionada con un corte independientemente de otros elementos. La indicación de dependencia se localiza, sin analizar innecesariamente otros elementos, por separado de los otros elementos. En los ejemplos de HEVC anteriores, el indicador de la dependencia inter-cortes dependent_slice_flag se señala en una ubicación en la cual no es necesario analizar elementos de sintaxis irrelevantes para la operación de red.
Específicamente, la presente invención proporciona un aparato para analizar una corriente de bits de una secuencia de video de imágenes codificadas por lo menos parcialmente con un código de longitud variable y que incluyen unidades de datos que llevan cortes codificados de secuencia de video. El aparato comprende un analizador para extraer de la corriente de bits una indicación de dependencia la cual es un elemento de sintaxis que indica para un corte si la decodificación de longitud variable o el análisis del corte depende o no de otros cortes, en donde la indicación de dependencia se extrae de la corriente de bits de y sin necesidad de extraer de antemano otros elementos de sintaxis.
Este aparato se puede incluir, por ejemplo, dentro del decodificador entrópico 290 mostrado en la FIGURA 2. Cuando se hace referencia a la extracción de la corriente de bits, la extracción y, donde sea necesario para la extracción, una decodificación entrópica se da a entender. La codificación entrópica es una codificación de longitud variable, por ejemplo, la codificación aritmética tal como CABAC. En la HEVC, esto se aplica a la codificación de datos de imagen. Las unidades de datos se refieren en este documento, por ejemplo, a unidades de NAL o unidades de acceso. La expresión "sin necesidad de extraer otros elementos de sintaxis" se refiere a una situación en la cual la indicación de dependencia es precedida solo por elementos, de los cuales la longitud es conocida y de los cuales la presencia es conocida o condicionada en elementos ya analizados o no codificados condicionalmente del todo.
La presente invención proporciona además un aparato para generar una corriente de bits de una secuencia de video codificada por lo menos parcialmente con un código de longitud variable y que incluye unidades de datos que llevan cortes codificados de imágenes de video. El aparato comprende un generador de corriente de bits para incorporar en la corriente de bits un indicador de dependencia el cual es un elemento de sintaxis que indica para un corte si la decodificación de longitud variable del corte depende o no de otros cortes, en donde el indicador de dependencia se incorpora en la corriente de bits independientemente de y sin necesidad de incorporar de antemano otros elementos de sintaxis.
Este aparato se puede incluir, por ejemplo, dentro del codificador entrópico 190 mostrado en la FIGURA 1.
De acuerdo con el método de codificación de imágenes, el método de decodificación de imágenes y similares que se configuran anteriormente, la corriente de bits incluye datos de corte codificados y datos de encabezado con respecto al corte y el indicador de dependencia se localiza dentro de la corriente de bits al comienzo del encabezado de corte. Esto significa que el encabezado de corte comienza con los elementos de sintaxis que indican la dependencia del corte.
Se debe observar que la indicación de dependencia no tiene que estar localizada muy al comienzo del encabezado de corte. Sin embargo, es ventajoso cuando ningún otro elemento de sintaxis codificado condicionalmente y/o codificado por longitud variable precede al indicador de dependencia dentro del encabezado de corte.
Por ejemplo, la posición actual del dependent_slice_flag se cambia con respecto a la téenica anterior descrita antes con el propósito de que esté localizado al comienzo del encabezado de corte. Con este cambio, se logra la reducción de la cantidad de elementos de sintaxis que necesitan ser analizados. Las operaciones complicadas de análisis de los ruteadores se evitan, tal como la decodificación de longitud variable y el análisis de información que requiere cálculos adicionales y/o almacenamiento de parámetros adicionales para el uso futuro y/o el análisis de otros conjuntos de parámetros. Por otra parte, el número de conjuntos de parámetros que se requiere que sean rastreados se reduce.
En lo sucesivo, las modalidades se describen específicamente con referencia a las figuras. Cada una de las modalidades descritas a continuación muestra un ejemplo general o específico. Los valores numéricos, configuraciones, materiales, elementos estructurales, la ordenación y conexión de los elementos estructurales, pasos, el orden de procesamiento de los pasos, etcétera mostrados en las siguientes modalidades son solo ejemplos y por lo tanto no limitan el alcance de la presente invención. Por lo tanto, entre los elementos estructurales en las siguientes modalidades, los elementos estructurales no expuestos en ninguna de las reivindicaciones independientes se describen como elementos estructurales arbitrarios.
Modalidad 1 La FIGURA 10 muestra un ejemplo de la sintaxis de corriente de bits de acuerdo con la presente modalidad. Un encabezado de NAL 1010 mostrado en la FIGURA 10 es el mismo que el encabezado de NAL 910 mostrado en la FIGURA 9A. En otras palabras, no hay cambio.
Sin embargo, la estructura de sintaxis del encabezado de corte 1020 es diferente de la estructura de sintaxis del encabezado de corte 920 de la FIGURA 9A. En particular, en el encabezado de corte 1020, el dependent_slice_flag es movido ascendentemente dentro del encabezado de corte de tal manera que no hay un elemento de sintaxis que preceda al dependent_slice_flag. El dependent_slice_flag se codifica condicionalmente, se codifica utilizando un código de longitud variable o recibe el análisis que requiere cálculo adicional.
Los elementos de sintaxis first_slice_in_pic_flag y dependent_slice_flag determinan ambos realmente las dependencias espaciales. Los elementos de sintaxis se codifican inmediatamente después del encabezado de NAL de tal manera que ningún otro elemento de sintaxis necesita ser analizado. Puesto que el first_slice_in_pic_flag también lleva información la cual está relacionada con dependencias ínter-cortes, puede preceder a dependent_slice_flag. El elemento de sintaxis first_slice_in_pic_flag es un indicador el cual se establece de acuerdo con la regla que cada trama tiene que iniciar con un corte normal. Por consiguiente, cuando el indicador first_slice_in_pic_flag se establece, significa que el corte es un corte normal y de esta manera independiente. De esta manera, el dependent_slice_flag y el first_slice_in_pic_flag pueden verse ambos conjuntamente como un indicador de dependencias inter-cortes.
En otras palabras, se puede definir que el indicador de dependencia incluye una primera indicación de corte que señala si el corte es o no un primer corte en una representación visual y un indicador de corte dependiente que señala si la decodificación de longitud variable del corte depende o no de otros cortes. El primer corte en una representación visual siempre es un corte para el cual la decodificación de longitud variable no depende de otros cortes.
Ventajosamente, la corriente de bits incluye un indicador de habilitación de cortes dependientes que señala si los cortes dependientes pueden ser incluidos o no dentro de la corriente de bits. La indicación de dependencia se incluye en la corriente de bits solo cuando el indicador de habilitación de cortes dependientes señala que los cortes dependientes pueden ser incluidos en la corriente de bits. El indicador de habilitación de cortes dependientes se localiza dentro de la corriente de bits en un conjunto de parámetros común para una pluralidad de cortes y localizado al comienzo del conjunto de parámetros. El conjunto de parámetros puede ser, por ejemplo, el conjunto de parámetros de representación visual el cual lleva parámetros para una representación visual individual. Alternativamente, el indicador de habilitación de cortes dependientes se localiza dentro de un conjunto de parámetros de secuencia el cual lleva parámetros para la secuencia de imágenes (video) completa.
Sin embargo, en la presente invención, el dependent_slice_flag (indicación de dependencia) se codifica no condicionado en el elemento de sintaxis dependent_slice_enabled_flag (indicador de habilitación de cortes dependientes). En la presente modalidad, puesto que la identificación del conjunto de parámetros de representación visual se localiza después de la indicación de dependencia, es ventajoso evitar un posible error de análisis en el caso donde la identificación del conjunto de parámetros de representación visual se señala dentro del encabezado de corte.
Este cambio también se puede observar como y/o puede ser interpolado por el cambio de la posición de los otros elementos de sintaxis requeridos en el conjunto de parámetros o encabezados para reducir la cantidad de elementos de sintaxis que se requiere que sean analizados para determinar las dependencias entre cortes.
Por ejemplo, el elemento de sintaxis dependent_slice_flag en el encabezado de corte de la presente sintaxis de HM8.0 solo está presente cuando el valor del elemento de sintaxis "dependent_slice_enabled_flag" indica que el uso de cortes dependientes dentro de la corriente de bits está habilitado. La habilitación de los cortes dependientes y de esta manera, también el elemento de sintaxis "dependent_slice_enabled_flag" se incluye en el PPS como se muestra en la FIGURA 9C. Por consiguiente, el elemento de sintaxis "dependent_slice_enabled_flag" en el PPS se mueve ascendentemente dentro de la sintaxis del PPS con el propósito de simplificar su análisis necesario para analizar el dependent_slice_flag (por ejemplo, el comienzo del conjunto de parámetros). Esto también puede ser útil cuando el dependent_slice_flag se codifica después del pic_parameter_set_id (el elemento de sintaxis que identifica el conjunto de parámetros) . Esto es debido a que al realizarlo de esta manera, el error de análisis se evita incluso cuando el indicador de habilitación de cortes dependientes está condicionando la presencia de la indicación de dependencia.
En lugar de mover el "dependent_slice_enabled_flag" ascendentemente dentro del PPS, el "dependent_slice_enabled_flag" puede ser movido del PPS al SPS y/o VPS de modo que no se requiera que los conjuntos de parámetros los cuales son más bajos en la jerarquía sean rastreados.
En otras palabras, de acuerdo con la presente modalidad, la posición de los elementos de sintaxis requeridos se cambia con el propósito de reducir la cantidad de conjuntos de parámetros de los cuales se necesita mantener una pista. Esto también reduce la complejidad de análisis. Los "parámetros requeridos" en este contexto significan los parámetros implicados los cuales contribuyen a la determinación si un corte es o no un corte inter-dependiente. Una primera posibilidad aplicable directamente a la HEVC es proporcionar la indicación de dependencia al comienzo del encabezado de corte dependiente y no condicionada en el indicador de habilitación de corte dependiente el cual se incluye en un conjunto de parámetros diferente del encabezado de corte. Una segunda posibilidad aplicable directamente a la HEVC es proporcionar la indicación de dependencia en el encabezado de corte dependiente después de la indicación de conjunto de parámetros que identifica el conjunto de parámetros en el cual se incluye el indicador de habilitación de cortes dependientes. La indicación de dependencia puede ser condicionada en el indicador de habilitación de cortes dependientes. El movimiento ascendente del indicador de habilitación de cortes dependientes dentro del PPS o el movimiento del indicador de habilitación de cortes dependientes en el SPS puede ser benéfico para cualquiera de esas posibilidades. En particular, esto es benéfico para la segunda posibilidad, en la cual es necesario que el indicador de habilitación de cortes dependientes analice la indicación de dependencia.
Como se puede observar en la FIGURA 10, el encabezado de unidad de NAL, junto con la porción relevante del encabezado de corte, tiene 18 bits (14 bits del encabezado de NALU y 2 bits del encabezado de corte). De acuerdo con este ejemplo, un elemento de red consciente de medios puede operar para un paquete de cortes actual de la siguiente manera. Si un corte previo es abandonado, el cual es un corte normal, entrópico o dependiente, el elemento de red verifica los primeros dos bits del encabezado de corte actual, los cuales son el first_slice_in_pic_flag y (en el caso donde los cortes dependientes están permitidos para la corriente de bits) el dependent_slice_flag.
Cuando el tipo de unidad de NAL es un tipo de unidad de VCL NAL y los dos últimos bits de los 18 bits verificados son "01", la unidad de NAL es abandonada. En particular, cuando el primer bit del encabezado de corte es "1", entonces es el primer corte en la representación visual que no es (de acuerdo con las reglas) un corte dependiente. Cuando el primer bit del encabezado de corte es "0" y el siguiente bit del encabezado de corte también es "0", el corte no es dependiente. Por consiguiente, solo cuando los dos primeros bits del encabezado de corte son "01", el corte es dependiente. Adicionalmente, el corte debe ser abandonado puesto que no puede ser decodificado cuando el corte padre ya fue abandonado. Por consiguiente, los indicadores first_slice_in_pic_flag y dependent_slice_flag se pueden observar como una extensión del encabezado de NAL, incluso si pertenecen a la sintaxis de encabezado de corte.
Por consiguiente, la presente modalidad también proporciona como uno de sus aspectos un ruteador de red para recibir, analizar y enviar paquetes de red a sus destinos. El ruteador incluye una unidad de recepción para recibir un paquete de red que incluye una dirección de destino de paquete y una porción de corriente de bits con datos de video codificados; un analizador que incluye el aparato para analizar una corriente de bits de una secuencia de video codificada de acuerdo con cualquiera de las modalidades citadas anterior y posteriormente con el propósito de determinar la dependencia de los datos de video codificados de otros paquetes; y un analizador de paquetes para analizar la dirección de destino de paquetes recibidos y la dependencia determinada y para evaluar como manejar el paquete de red.
Modalidad 2 De acuerdo con la Modalidad 2, el dependent_slice_enabled_flag es abandonado del PPS. Se debe observar que el dependent_slice_enabled_flag puede ser movido al SPS, en lugar de ser abandonado.
La FIGURA 11 muestra un ejemplo en el cual el dependent_slice_enabled_flag no necesita ser analizado antes de acceder al first_slice_in_pic_flag y dependent_slice_flag.
En este ejemplo, el dependent_slice_enabled_flag no se utiliza debido a que no está condicionado en presencia de la indicación de dependencia. Este ejemplo proporciona la posibilidad de tener la indicación de dependencia al comienzo del encabezado de corte sin causar problemas de análisis debido a la identificación desconocida del conjunto de PPS actual.
Efecto de la Modalidad 2, etcétera En la Modalidad 1, con el propósito de analizar el dependent_slice_flag, el dependent_slice_enabled_flag tiene que ser analizado. El dependent_slice_enabled_flag es señalado en un PPS. Esto puede causar alguna información adjunta de análisis como se planteara anteriormente, cuando el dependent_slice_enabled_flag se localiza lejos del inicio del PPS y los elementos de sintaxis precedentes se codifican condicionalmente.
Por otra parte, la señalización del elemento de sintaxis dependent_slice_flag antes de que se analice el elemento de sintaxis pic_parameter_set_id en el PPS puede crear errores de análisis de la siguiente manera. La presencia del dependent_slice_flag depende del dependent_slice_enabled_flag el cual es señalado en el PPS. Sin embargo, la identificación del PPS actualmente activo se señala después del dependent_slice_flag. Por lo tanto, no es posible analizar el dependent_slice_flag antes de acceder a los elementos previos.
Por consiguiente, es ventajoso retirar la condición de análisis en el dependent_slice_enabled_flag. Puede ser más benéfico cuando se aplica la siguiente restricción. Específicamente, si el dependent_slice_enabled_flag en el PPS es cero, entonces el dependent_slice_flag deberá ser igual a cero .
Sin embargo, estas implementaciones ventajosas no limitan el alcance de la presente invención.
Modificación 1 de las Modalidades 1 y 2 Como una alternativa o adicionalmente a la remoción del condicionamiento en el dependent_slice_enabled_flag, el dependent_slice_enabled_flag puede ser movido del PPS a ya sea el SPS y/o VPS.
Por otra parte, en lugar de solo mover el dependent_slice_enabled_flag, el dependent_slice_enabled_flag puede ser duplicado en el SPS. En este caso, el indicador en el SPS y el PPS podría ser forzado a tener el mismo valor. O, se podría permitir que el PPS sobreescriba el indicador en el SPS.
Por ejemplo, cuando el sps_dependent_slice_enabled_flag es igual a 1, entonces el pps_dependent_slice_enabled_flag puede ser 0 o 1. Luego, el sps_dependent_slice_enabled_flag es una indicación de habilitación de los cortes dependientes para una secuencia de representaciones visuales señaladas en el SPS y el pps_dependent_slice_enabled_flag es una indicación de habilitación de los cortes dependientes para una representación visual señalada en el PPS. Sin embargo, cuando el valor del dependent_slice_enabled_flag puede cambiar en el PPS, esto significa que el análisis del PPS aún es necesario y se previene la ventaja de un rastreo menos frecuente y análisis de PPS.
Estas modificaciones proporcionan la ventaja respecto a que el VPS y el SPS llevan estructuras de dependencia. El llevar estructuras de dependencia por parte del VPS y el SPS hace posible que los elementos de red compartan las corrientes de bits, es decir, determinen descartar los paquetes dependientes los cuales no pueden ser decodificados de cualquier forma o descartar los cortes dependientes preferiblemente que los cortes independientes. Por lo tanto, el dependent_slice_enabled_flag en el VPS provocaría que el ruteador verifique o no adicionalmente el encabezado de corte.
Se observa que estas modificaciones no reducen adicionalmente la complejidad de análisis si se aplica el ejemplo de las FIGURAS 10 y 11. Sin embargo, proporciona una estructura más benéfica de la sintaxis para llevar las estructuras de dependencia. En resumen, de acuerdo con este ejemplo, un indicador para señalar si los cortes dependientes son o no habilitados para la corriente de bits se señala en un conjunto de parámetros de video. El conjunto de parámetros de video es un conjunto de parámetros que se aplica a más de un corte en más de una representación visual.
Existen dos ventajas diferentes de la señalización del dependent_slice_enabled_flag son VPS y/o SPS. Cuando el indicador solo es movido o duplicado, no se requiere que el PPS sea analizado, reduciendo la información adjunta de análisis. El otro beneficio es permitir que los ruteadores sepan acerca de la estructura de predicción de la secuencia de video. Esta ventaja está presente todo el tiempo. Usualmente, un ruteador puede verificar el contenido de un VPS/SPS con el propósito de saber que recibirá.
El VPS es el parámetro más alto en la jerarquía. El VPS puede incluir información acerca de múltiples secuencias de video, mientras que el SPS y el PPS son específicos para una secuencia de video individual y una representación visual, respectivamente. La información en el VPS incluye velocidad de bits, estructura temporal_layering de las secuencias de video y similares. También incluye información acerca de dependencias ínter-capas (dependencias entre diferentes secuencias de video). Por consiguiente, el VPS puede observarse como un contenedor para múltiples secuencias de video y proporciona una visión general acerca de cada secuencia.
En la versión de HEVC actual, la dependencia entre cortes en una trama es establecida tanto por dependent_slice_flag como por first_slice_in_pic_flag. De acuerdo con las especificaciones actuales, las entidades de red no pueden utilizar dependencias inter-cortes sin aplicar un análisis sumamente complejo. Una solución directa sería, si existe una pérdida de paquetes descubierta por vía de un número de paquetes faltantes, abandonar todos los paquetes hasta que el first_slice_in_pic_flag el cual es igual al valor 1 se encuentre. Esto es debido a que el primer corte en una representación visual siempre es un corte normal.
Sin embargo, esta solución conduce a la reducción en la eficiencia de codificación. Por lo tanto, como se describiera anteriormente se puede utilizar una señalización de dependencia inter-cortes que hace posible un análisis eficiente. Esto se logra al señalar el dependent_slice_flag y el first_slice_in_pic_flag dentro del encabezado de corte inmediatamente después del encabezado de NAL.
Alternativamente, o además, los elementos de sintaxis que se relacionan con las dependencias inter-cortes se codifican incondicionalmente, es decir, independientemente de los otros elementos de sintaxis los cuales pueden estar en el encabezado de corte o en el PPS.
Modificación 2 de las Modalidades 1 y 2 La FIGURA 12 ilustra la Modificación 2 alternativa a la Modificación 1 planteada anteriormente. En particular, el encabezado de unidad de NAL 1210 es el mismo que el encabezado de unidad de NAL mostrado en la FIGURA 10 (encabezado de unidad de NAL 910 mostrado en la FIGURA 9A). Sin embargo, el encabezado de corte 1220 y el encabezado de corte 1020 mostrados en la FIGURA 10 son diferentes debido a que los elementos de sintaxis de encabezado de corte dependent_slice_flag y first_slice_in_pic_flag son invertidos respecto a su orden. En particular, el encabezado de corte 1220 incluye el dependent_slice_flag como un primer elemento de sintaxis y el elemento de sintaxis first_slice_in_pic_flag como un segundo elemento de sintaxis, condicionado en presencia de dependent_slice_flag.
Como se puede observar a partir de este ejemplo, una primera indicación de corte que señala si el corte es o no un primer corte en una representación visual se incluye en la sintaxis. Un primer corte en una representación visual siempre es un corte para el cual la decodificación de longitud variable no depende de otros cortes. Por otra parte, el indicador de corte dependiente se incluye en la corriente de bits al frente de la primera indicación de corte. La primera indicación de corte se incluye en la corriente de bits solo cuando el indicador de corte dependiente no señala un corte dependiente. Esta ordenación proporciona las mismas ventajas que el condicionamiento. En otras palabras, el indicador de dependencia se condiciona en la primera indicación de corte. Como se puede observar en la FIGURA 12, ambos elementos pueden ser entendidos como la indicación de dependencia y se incluyen al comienzo del encabezado de corte.
Modalidad 3 En la Modalidad 3, en comparación con las Modalidades 1 y 2, el método de ordenación de los elementos de sintaxis se cambia respecto al orden para reducir el análisis de elementos de sintaxis innecesarios.
En las modalidades descritas anteriormente, el dependent_slice_flag se describe en el caso donde el first slice_in_pic_flag se incluye como condición para la presencia del dependent_slice_flag . Sin embargo, el first slice_in_pic_flag y el dependent_slice_flag pueden ser incluidos ambos en la corriente de bits sin ser condicionados uno en la presencia del otro. Por ejemplo el método de codificación del dependent_slice_flag se cambia respecto al orden para ser independiente del elemento de sintaxis dependent_slice_enabled_flag de acuerdo con una de las modificaciones descritas anteriormente.
La FIGURA 13 es un diagrama que muestra un ejemplo de un encabezado de corte de acuerdo con la presente modalidad. La FIGURA 13 ilustra el caso de incluir aún el condicionamiento de la indicación de dependencia en el indicador de habilitación de cortes dependientes.
Específicamente, en el encabezado de corte de acuerdo con la presente modalidad, el dependent_slice_flag se dispone antes del slice_address en comparación con el encabezado de corte existente que se muestra en la FIGURA 6. Adicionalmente, en el encabezado de corte de acuerdo con la presente modalidad, en comparación con los ejemplos mostrados en las FIGURAS 10 a 12, el dependent_slice_flag se dispone después del pic_parameter_set_id.
En la presente modalidad, puesto que el dependent_slice_flag se dispone antes del slice_address, por lo menos el SPS no necesita ser analizado para el análisis del dependent_slice_flag. Como se describiera anteriormente, el slice_address es un elemento de sintaxis que indica el inicio de un corte. Adicionalmente, el slice_address solo puede ser analizado con la ayuda de los elementos de sintaxis señalados dentro del SPS (pic_parameter_set_id).
Alternativamente o además, el dependent_slice_enabled_flag es ya sea movido ascendentemente dentro del PPS o es movido al SPS y/o VPS. Si el indicador habilitado está en el VPS y/o en el SPS, puede ser que no se requiera analizar y mantener la pista del PPS y el SPS.
Modificación de la Modalidad 3, efecto y similares (1) El ejemplo de la FIGURA 13 puede conducir a la provisión de un aparato para analizar una corriente de bits de una secuencia de video codificada por lo menos parcialmente con un código de longitud variable e incluir unidades de datos que llevan cortes codificados de imágenes de video. En este caso, el aparato se configura para incluir un analizador el cual extrae de la corriente de bits los siguientes elementos de sintaxis: una indicación de dependencia la cual es un elemento de sintaxis que indica un corte en el encabezado de corte si la decodificación de longitud variable del corte depende o no de otros cortes; un indicador de habilitación de cortes dependientes incluido dentro de un conjunto de parámetros para una pluralidad de cortes y que señala si los cortes dependientes pueden ser incluidos o no dentro de la corriente de bits; y una dirección de corte que indica la posición dentro de la corriente de bits en la cual inicia el corte. (2) Por otra parte, en la presente modalidad, la indicación de dependencia se señala dentro del encabezado de corte antes de la dirección de corte y después de un elemento de sintaxis que identifica el conjunto de parámetros.
Con esta modalidad, es posible sin causar errores de análisis configurar que la indicación de dependencia sea incluida en la corriente de bits solo cuando el indicador de habilitación de cortes dependientes señala que los cortes dependientes pueden ser incluidos en la corriente de bits. (3) En la presente modalidad, el indicador de habilitación de cortes dependientes se localiza dentro de la corriente de bits en un conjunto de parámetros (PPS) común para una pluralidad de cortes que forman la misma trama de representación visual y localizados al comienzo del conjunto de parámetros. Sin embargo, no está limitado a esto.
Alternativamente (o además), el indicador de habilitación de cortes dependientes se localiza dentro de la corriente de bits en un conjunto de parámetros (SPS) común para una pluralidad de cortes que forman la misma secuencia de representaciones visuales. Aún alternativamente (o además), el indicador de habilitación de cortes dependientes se localiza dentro de la corriente de bits en un conjunto de parámetros (VPS) común para una pluralidad de cortes que forman una pluralidad de secuencias de tramas de representación visual. (4) Por otra parte, en la presente modalidad, el VPS_id y el SPS_id pueden ser señalados explícitamente en el mensaje de SEI. Cuando el dependent_slice_enabled_flag es señalado en el SPS, el dependent_slice_flag debe aún seguir al pic_parameter_set_id.
De otra manera, la dependencia de análisis se introduce debido a que el SPS_id es señalado en el PPS. Con la señalización de la identificación del SPS o VPS actual el cual lleva el dependent_slice_enabled_flag, la indicación de dependencia también puede ser incluida antes del pic_parameter_set_id puesto que luego el análisis de conjuntos de parámetros de representación visual no es necesario. Por otra parte, este mensaje de SEI, que lleva el VPS-id o el SPS-id no es necesario para la operación de decodificación puesto que estas identificaciones también se determinan al analizar el PPS. De esta manera, el mensaje de SEI puede ser descartado sin afectar la operación de decodificación después de ser utilizado por los elementos de red.
Modalidad 4 En la Modalidad 4, la información de dependencia inter-cortes se duplica (complementaria para la información señalada en el encabezado de corte y/o en un conjunto de parámetros) en otra unidad de NAL tal como un mensaje de SEI.
Por ejemplo, se puede definir un mensaje de SEI el cual lleva la información de dependencia inter-cortes en cada unidad de acceso o antes de cada corte dependiente. El término "unidad de acceso" se refiere a una unidad de datos la cual está constituida de un conjunto de unidades de NAL. Una unidad de acceso incluye cortes de representación visual codificados, es decir, VCL NALUs. En particular, las unidades de acceso pueden definir puntos para el acceso aleatorio y pueden incluir NALUs de una representación visual individual. Sin embargo, la unidad de acceso no es necesariamente un punto de acceso aleatorio.
En las especificaciones de HEVC actuales, la unidad de acceso se define como un conjunto de unidades de NAL que son consecutivas en el orden de decodificación y contienen exactamente una representación visual codificada. Además de las unidades de NAL de corte codificadas de la representación visual codificada, la unidad de acceso también puede contener otras unidades de NAL que no contienen cortes de la representación visual codificada. La decodificación de una unidad de acceso siempre da por resultado una representación visual decodificada. Sin embargo en una extensión futura de la HEVC (como la Codificación de Múltiples Vistas (MVC, por sus siglas en inglés) o Codificación de Video Escalable (SVC, por sus siglas en inglés)), la definición de la unidad de acceso puede ser relajada o modificada. De acuerdo con las especificaciones actuales, la unidad de acceso está formada por un delimitador de unidades de acceso, mensajes de SEI y VCL NALUs.
De acuerdo con la presente modalidad, la indicación de dependencia se localiza dentro de la corriente de bits fuera del encabezado de un corte al cual se refiere la indicación de dependencia. Por otra parte, puede ser benéfico cuando la indicación de dependencia se localiza dentro de la corriente de bits en un mensaje de información de mejoramiento suplementario incluido en la corriente de bits antes del corte dependiente o una vez por unidad de acceso.
Modalidad 5 De acuerdo con la Modalidad 5, la información de dependencia inter-cortes se señala en el encabezado de NAL como un indicador o implícitamente como un tipo de unidad de NAL con el cual está asociado.
Como regla general, el análisis de elementos de sintaxis en el encabezado de NAL no depende de ningún otro elemento de sintaxis. Cada encabezado de unidad de NAL puede ser analizado independientemente. El encabezado de NAL es el lugar usual para señalar la información de dependencia. Por consiguiente, de acuerdo con la presente modalidad, también la dependencia inter-cortes se señala dentro del mismo.
En otras palabras, el aparato de análisis puede ser adoptado en un ruteador o en un decodificador. El aparato de análisis incluye además una unidad de capa de adaptación de red para agregar a un corte de datos de video codificados y al encabezado del corte una capa de adaptación de red y un encabezado de NAL. Ventajosamente, la indicación de dependencia se localiza dentro de la corriente de bits en el encabezado de NAL y se codifica independientemente de los otros elementos de sintaxis.
El indicador de dependencia puede colocarse dentro del encabezado de NAL puesto que el encabezado de NAL en las especificaciones de HEVC actuales contempla algunos bits reservados los cuales se pueden utilizar para el mismo. Un bit individual sería suficiente para señalar la indicación de dependencia.
Alternativamente, la indicación de dependencia es señalada por un tipo de unidad de NAL y un tipo de unidad de NAL predefinido se reserva para llevar información de dependencia.
Modalidad 6 Se observa que las cinco modalidades anteriores pueden ser combinadas arbitrariamente con el propósito de hacer posible un análisis eficiente de la información de dependencia en los elementos de red. Incluso cuando su uso es redundante, las modalidades son combinables. Por consiguiente, la duplicación de la indicación de dependencia se puede aplicar incluso cuando la indicación de dependencia también se señala al comienzo del encabezado de corte.
La FIGURA 14 muestra un ejemplo del encabezado de unidad de NAL 1410 en el cual el encabezado de unidad de NAL 910 mostrado en la FIGURA 9A se modifica. El encabezado de unidad de NAL 1410 incluye el dependent_slice_flag.
Por otra parte, con el propósito de mover el dependent_slice_flag dentro del encabezado de NAL y mantener fijo el tamaño del encabezado de NAL debido a la compatibilidad con versiones anteriores, el bit necesario para el dependent_slice_flag se toma del elemento de sintaxis nuh_reserved_zero_6bits del encabezado de unidad de NAL. Por consiguiente, el elemento de sintaxis nuh_reserved_zero_6bits ahora solo tiene 5 bits. El elemento de sintaxis nuh_reserved_zero_6bits incluye bits reservados para el uso futuro de modo que la reducción no causa ningún problema y no requiere ninguna modificación adicional.
En general, una unidad de VCL NAL actual depende de la unidad de VCL NAL previa la cual tiene el mismo temporal_layer_id. Cuando el dependent_slice_flag es señalado en el encabezado de NAL, se consumirá un bit tanto para las unidades de VCL como NAL que no son VCL puesto que cada unidad de datos tal como un corte de representación visual o un conjunto de parámetros tiene el mismo encabezado de NAL. Por consiguiente, aunque parece que el dependent_slice_flag también sería señalado para conjuntos de parámetros o para mensajes de SEI, esto es innecesario. Por otra parte, el dependent_slice_flag siempre necesita ser señalado incluso si los cortes dependientes se deshabilitan en el conjunto de parámetros de secuencia. Esto conduce a una información adjunta innecesaria.
En todas las modalidades anteriores, la indicación de dependencia puede ser un indicador de un bit.
Modalidad 7 De acuerdo con la Modalidad 7, la indicación de dependencia es señalada por un tipo de unidad de NAL y un tipo de unidad de NAL predefinido se reserva para llevar información de dependencia.
Por consiguiente, un nuevo tipo de VCL NAL (separado) se define con una semiótica similar como las unidades de VCL NAL existentes. Por ejemplo, cuando el NAL_unit_type es igual a 15 (o a otro tipo predefinido o NALU la cual no se reserva para otro tipo particular de NALU), entonces la unidad de VCL NAL actual depende de la unidad de VCL NAL previa que tiene el mismo temporal_layer_id. La dependencia se refiere a la dependencia del corte actual en el encabezado de corte de un corte precedente, como se describiera anteriormente, es decir la dependencia en el análisis .
Puede ser ventajoso en esos casos incluir el bit en el encabezado de NAL para los tipos de unidad de NAL adicionales. Esto se puede utilizar para indicar si el corte actual es o no un corte dependiente.
Cuando la información de dependencia es señalada en el encabezado de corte además del encabezado de NAL, la señalización en el encabezado de NAL se vuelve opcional. Específicamente, cuando el campo NAL_unit_type en el encabezado de NAL se configura para señalar que el corte actual es un corte dependiente, entonces no es posible señalar ninguna otra información de "tipo". Por ejemplo, en algunos casos podría ser más benéfico llevar la información respecto a que un corte actual es una "primera representación visual en la secuencia" (NAL_unit_type igual a 10 u 11). Cuando la información de dependencia inter-cortes en el encabezado de NAL es opcional (puesto que se duplica en el encabezado de corte), se puede seleccionar para señalar la información más valiosa.
Por otra parte, puede ser ventajoso agregar dos o más tipos de unidad de VCL NAL, tal como "representación visual RAP de corte dependiente" (requerida para el análisis) o "representación visual que no es RAP de corte dependiente". "RAP" indica la representación visual de acceso aleatorio. La representación visual de acceso aleatorio es una representación visual codificada independientemente (en términos de predicción) de otras representaciones visuales de modo que esta representación visual se puede utilizar como un punto de inicio para la codificación y la decodificación. Con esto, es adecuada de esta manera como un punto de acceso aleatorio.
En el encabezado de corte dependiente, el elemento de sintaxis RapPicFlag se utiliza en el proceso de análisis. Específicamente, el elemento de sintaxis RapPicFlag es una indicación que señala si la representación visual actual es o no una representación visual de acceso aleatorio.
El valor del RAPPicFlag depende del tipo de unidad de NAL como la siguiente Expresión 2.
Ecuación Matemática 2 RapPicFlag — ( nal _ unit _ type > 7 & & nal _ unit _ íype < 12) (Expresión 2) En otras palabras, en el ejemplo mostrado en la FIGURA 15, las representaciones visuales de acceso aleatorio son llevadas por NALUs con un tipo de NALU entre 7 y 12. Con el propósito de hacer posible el análisis correcto y de proporcionar una posibilidad de dependencia de corte para las representaciones visuales de acceso aleatorio, por lo tanto, en la presente invención, dos tipos diferentes de unidad de NAL se definen con el propósito de garantizar el análisis correcto del encabezado de corte.
Como regla general, incluso cuando se define un nuevo tipo de unidad de VCL NAL, el análisis del encabezado de corte aún debe ser posible sin ningún problema. Cualquiera de múltiples tipos de NAL se definen como antes o el encabezado de corte dependiente se cambia de tal manera que no existe un problema de análisis.
Cuando se define que un nuevo tipo de unidad de VCL NAL indica el corte dependiente, la estructura de sintaxis de encabezado de corte se puede cambiar de la siguiente manera.
En el ejemplo anterior el tipo de unidad de NAL "DS_NUT" se utiliza para indicar que la unidad de VCL nal actual es un corte dependiente. En comparación con la estructura de sintaxis de encabezado de corte del estado de la téenica que se describe en la Bibliografía que no es Patente 3, los siguientes dos cambios se introducen en la presente modalidad. (1) el no_output_of_prior_pics_flag no es señalado en el encabezado de corte dependiente. En otras palabras, la presencia del no_output_of_prior_pics_flag se basa en la condición respecto a que el corte actual no es un corte dependiente. (no_output_of_prior__pics_flag puede estar presente en el encabezado de corte cuando el corte actual no es un corte dependiente). (2) el first_slice_in_pic_flag se señala condicionalmente en el valor del nal_unit_type. Cuando el valor del nal_unit_type indica que el corte actual es un corte dependiente, el elemento de sintaxis first_slice_in_pic_flag no es señalado explícitamente y se deduce que es 0. Esto ahorra velocidad de bits a la misma calidad.
De acuerdo con el ejemplo, el no_output_of_prior_pics_flag no es señalado cuando el corte actual es un corte dependiente. Por consiguiente, el valor del RapPicFlag no se requiere que sea evaluado cuando el corte actual es un corte dependiente. Por lo tanto, el encabezado de corte de un corte dependiente puede ser analizado sin problema. Más específicamente, el encabezado de corte del corte dependiente puede ser analizado sin hacer referencia al encabezado de unidad de NAL de un encabezado de unidad de NAL precedente. Un problema ocurre cuando el encabezado de unidad de NAL precedente no está presente al momento de la decodificación.
En segundo lugar, el first_slice_in_pic_flag se señala con base en el valor del NAL_unit_type. Este cambio es el mismo que aquel del ejemplo descrito en la FIGURA 12. En la FIGURA 12, el first_slice_in_pic_flag es señalado en el encabezado de corte solo cuando el corte actual no es un corte dependiente (lo cual es indicado por el dependent_slice_flag). Similarmente en el ejemplo anterior el first_slice_in_pic_flag es señalado solo cuando el nal_unit_type no es igual a "DS_NUT", lo cual significa que el corte actual no es un corte dependiente.
No se requiere que los dos cambios que se presentan anteriormente se realicen juntos. También es posible realizar solo uno de los cambios en el encabezado de corte. El beneficio de cada cambio está asociado con el costo de la verificación si un corte es o no un corte dependiente. Sin embargo, cuando los dos cambios se realizan juntos, los beneficios de ambos cambios pueden venir tanto por los mismos costos como el beneficio de cada uno de los cambios individuales en el caso donde los dos elementos de sintaxis first_slice_in_pic_flag y no_output_of_prior_pics_flag se codifican consecutivamente. De esta manera, la aplicación de ambos cambios en combinación con una codificación consecutiva de los dos elementos de sintaxis mencionados proporciona una ventaja sobre la aplicación directa de cada uno de los cambios individualmente.
En toda explicación en las modalidades, también es posible retirar el dependent_slice_enabled_flag de la corriente de bits cuando la indicación de corte dependiente no es codificada condicionalmente en éste. En otras palabras, cuando se utiliza por ejemplo un nuevo tipo de unidad de NAL para indicar que el corte actual es un corte dependiente, entonces el dependent_slice_enabled_flag puede ser retirado de la corriente de bits.
La FIGURA 15 muestra un encabezado de unidad de NAL 1510 que es el mismo que el encabezado de unidad de NAL 910 mostrado en la FIGURA 9A y un encabezado de corte 1520 el cual se cambia del encabezado de corte 920 mostrado en la FIGURA 9A. El encabezado de corte 1520 incluye la terminación del valor de dependent_slice_flag de acuerdo con el tipo de la NALU. En particular, el elemento de sintaxis NAL_unit_type con valores 15 y 16 define cortes dependientes. Cuando el NAL_unit_type es igual a 15, el tipo del corte es un corte dependiente de una representación visual de acceso aleatorio. Si, por otra parte, el NAL_unit_type es igual a 16, el corte es un corte dependiente de una representación visual de acceso no aleatorio. Por lo tanto, se establece una relación de la siguiente Expresión 3.
Ecuación Matemática 3 RapPicFlag = (nal _ urdí _ lype ³ 1&& nal _ unit _ type < 12 || nal __ imil _ íype— 15) (Expresión 3) Se observa que los valores 15 y 16 se seleccionaron solo como un ejemplo. Como es claro para aquellas personas expertas en el campo, se puede adoptar cualquier número predefinido el cual no se utiliza de otra manera.
Específicamente, un primer tipo de NALU se debe definir para identificar un contenido de corte dependiente de una representación visual de acceso aleatorio y un segundo tipo de NALU se debe definir para identificar un contenido de corte dependiente de una representación visual de acceso no aleatorio.
Por otra parte, se puede aplicar una restricción respecto a que los cortes dependientes no solo se utilicen para RAPs o solo se utilicen para no-RAPs. En estos casos, solo es necesario un nuevo tipo de NALU.
Modalidad 8 La FIGURA 16 es un diagrama que muestra una solución alternativa. Un encabezado de unidad de NAL 1610 es el mismo que el encabezado de unidad de NAL 910. El encabezado de corte 1620 asume la definición de NAL_unit_type con los valores 15 y 16 que señalan cortes dependientes como se describiera anteriormente.
Sin embargo, el tipo de unidad de NAL no se utiliza en el análisis del indicador de corte dependiente. Esto hace posible el uso del NAL_unit_type que es opcional para el codificador. Por consiguiente, la ventaja de la presente modalidad solo se logra cuando se determina que el codificador adopta los nuevos tipos de NALU.
Luego, el ruteador solo necesita examinar el tipo de NALU. Sin embargo, cuando el codificador no utiliza los nuevos tipos de NALU, el ruteador trataría los cortes dependientes como en el estado de la téenica.
En resumen, la indicación de dependencia puede ser señalada por un tipo de unidad de NAL. Un tipo de unidad de NAL predefinido puede ser reservado para llevar cortes codificados del encabezado de corte de los cuales depende del encabezado de corte de un corte precedente. Ventajosamente, un tipo de unidad de NAL separado que indica la dependencia se proporciona para las representaciones visuales de acceso aleatorio y para las representaciones visuales de acceso no aleatorio.
En resumen, las modalidades descritas anteriormente se refieren a la sintaxis de una corriente de bits que lleva secuencias de video codificadas. En particular, las modalidades descritas anteriormente se refieren a la sintaxis relacionada con cortes dependientes y entrópicos, de los cuales el encabezado de corte depende del encabezado de corte de un corte precedente. Con el propósito de permitir que un elemento de red consciente de medios considere esta clase de dependencia sin incrementar esencialmente su complejidad y retraso debido al análisis, la indicación de dependencia se señala al comienzo de los paquetes o en otras palabras en la cercanía de los encabezados o parámetros los cuales se deben analizar. Esto se logra por ejemplo, al incluir la indicación de dependencia al comienzo del encabezado de corte (FIGURAS 10 a 12), posiblemente después del identificador de conjuntos de parámetros y antes de la dirección de corte, o al incluir la indicación de dependencia antes de la dirección de corte (FIGURAS 10 y 11) o al proporcionar la indicación de dependencia en un encabezado de NALU (FIGURA 14), en un mensaje separado o por un tipo de NALU especial para NALUs que llevan cortes dependientes (FIGURAS 15 y 16).
Modificaciones de las Modalidades 1 a 8, efecto y similares.
Son posibles varios cambios sin que sean limitados por las Modalidades 1 a 8 y están incluidos obviamente en el alcance de la presente invención.
Cada uno de los elementos estructurales en cada una de las modalidades descritas anteriormente se pueden configurar en la forma de un producto de hardware exclusivo (circuito de procesamiento) o se pueden realizar al ejecutar un programa de software que es adecuado para el elemento estructural. Cada uno de los elementos estructuras se pueden hacer realidad por medio de una unidad de ejecución de programas, tal como una CPU y un procesador, que lee y ejecuta el programa de software grabado en un medio de grabación tal como un disco duro o una memoria semiconductora.
Aunque en las Modalidades 1 a 8, la descripción asume un frente de onda, no está limitado a éste.
Sin embargo, en el caso del frente de onda, no todas las subcorrientes pueden iniciar al mismo tiempo. Como se describiera anteriormente, con respecto a cada una de las subcorrientes excepto la subcorriente al comienzo, el inicio del procesamiento (codificación o decodificación) es retrasado por dos LCUs de la subcorriente precedente. Por lo tanto, en el frente de onda, se requiere una reducción adicional del procesamiento. En la presente modalidad, al localizar la indicación de dependencia (dependent_slice_flag) después de la sintaxis la cual identifica el PPS y antes de la dirección de corte, el número de elementos de sintaxis que son analizados se puede reducir y de esta manera el procesamiento se reduce.
Por otra parte, en las Modalidades 1 a 8 descritas anteriormente, al disponer la indicación de dependencia ascendentemente dentro del encabezado de corte (notablemente al comienzo) es posible, por ejemplo, verificar si cada uno de los cortes es o no un corte dependiente en una etapa temprana del procesamiento de representaciones visuales.
En otras palabras, al momento del inicio del procesamiento en una representación visual (codificación o decodificación), cuando un paso que consiste en verificar si cada uno de los cortes es o no un corte dependiente, es posible extraer un punto de inicio del procesamiento paralelo al momento del inicio del procesamiento en la representación visual. En otras palabras, cuando la representación visual incluye una pluralidad de cortes normales, es posible extraer un punto de inicio del procesamiento paralelo al momento del procesamiento en una representación visual o en una etapa temprana del procesamiento.
En este documento, convencionalmente, cuando la indicación de dependencia se dispone después de la dirección de corte, no es posible verificar si el corte es un corte dependiente o un corte normal hasta que se completa el análisis de la dirección de corte. En este caso, el inicio del procesamiento en el corte normal a la mitad de la representación visual se retrasa significativamente del inicio del procesamiento en el corte normal al comienzo de la representación visual.
Por el contrario, en las Modalidades 1 a 8 descritas anteriormente, puesto que es posible verificar si cada uno de los cortes es o no un corte dependiente en una etapa temprana del procesamiento en una representación visual, es posible acelerar el inicio del procesamiento en un corte normal a la mitad de la representación visual. En otras palabras, es posible iniciar el procesamiento en el corte normal a la mitad de una representación visual al mismo tiempo que el corte normal al comienzo de la representación visual.
Modalidad 9 El procesamiento descrito en cada una de las modalidades puede ser implementado simplemente en un sistema de computadora independiente, al grabar, en un medio de grabación, un programa para implementar las configuraciones del método de codificación de representaciones visuales en movimiento (método de codificación de imágenes) y el método de decodíficación de representaciones visuales en movimiento (método de decodificación de imágenes) descritos en cada una de las modalidades. Los medios de grabación pueden ser cualquier medio de grabación siempre y cuando el programa pueda ser grabado, tal como un disco magnético, un disco óptico, un disco óptico magnético, una tarjeta IC y una memoria semiconductora.
En lo sucesivo, se describirán las aplicaciones para el método de codificación de representaciones visuales en movimiento (método de codificación de imágenes) y el método de decodificación de representaciones visuales en movimiento (método de decodificación de imágenes) descritos en cada una de las modalidades y sistemas utilizando los mismos. El sistema tiene una cualidad que consiste en 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 método de codificación de imágenes y un aparato de decodificación de imágenes que utiliza el método de decodificación de imágenes. Otras configuraciones en el sistema se pueden cambiar apropiadamente dependiendo de las situaciones.
La FIGURA 17 ilustra una configuración completa de un sistema de provisión de contenido exlOO para imple entar los servicios de distribución de contenido. El área para proporcionar servicios de comunicación se divide en celdas del tamaño deseado y las estaciones base exl06, exl07, exl08, exl09 y exllO las cuales son estaciones inalámbricas fijas se colocan en cada una de las celdas.
El sistema de provisión de contenido exlOO se conecta a dispositivos, tal como una computadora exlll, un asistente digital personal (PDA, por sus siglas en inglés) exll2, una cámara exll3, un teléfono celular exll4 y una consola de videojuegos exll5, por vía de la Internet exlOl, un proveedor de servicios de Internet exl02, una red telefónica exl04, así como también las estaciones base exl06 a exllO, respectivamente.
Sin embargo, la configuración del sistema de provisión de contenido exlOO no está limitada a la configuración mostrada en la FIGURA 17 y es aceptable una combinación en la cual cualquiera de los elementos se conecta. Además, cada dispositivo se puede conectar directamente a la red telefónica exl04, preferiblemente que por vía de las estaciones base exl06 a exllO las cuales son las estaciones inalámbricas fijas. Adicionalmente, los dispositivos se pueden interconectar entre sí por vía de una comunicación inalámbrica a corta distancia y otras.
La cámara exll3, tal como una cámara de video digital, es capaz de capturar video. Una cámara exll6, tal como una cámara digital, es capaz de capturar tanto imágenes fijas como video. Adicionalmente, el teléfono celular exll4 puede ser aquel que cumpla con cualquiera de los estándares tales como el Sistema Global para Comunicaciones Móviles (GSM, por sus siglas en inglés) (marca registrada), Acceso Múltiple por División de Código (CDMA, por sus siglas en inglés), Acceso Múltiple por División de Código de Banda Ancha (W-CDMA, por sus siglas en inglés), Evolución a Largo Plazo (LTE, por sus siglas en inglés) y Acceso de Paquetes a Alta Velocidad (HSPA, por sus siglas en inglés). Alternativamente, el teléfono celular exll4 puede ser un Sistema de Teléfonos Personales (PHS, por sus siglas en inglés).
En el sistema de provisión de contenido exlOO, un servidor de transmisión ininterrumpida exl03 se conecta a la cámara exll3 y otros por vía de la red telefónica exl04 y la estación base exl09, lo cual hace posible la distribución de imágenes de un espectáculo en vivo y otros. En esta distribución, un contenido (por ejemplo, video de un espectáculo musical en vivo) capturado por el usuario utilizando la cámara exll3 se codifica como se describiera anteriormente en cada una de las modalidades (es decir, la cámara funciona como el aparato de codificación de imágenes de acuerdo con un aspecto de la presente invención), y el contenido codificado se transmite al servidor de transmisión ininterrumpida exl03. Por otra parte, el servidor de transmisión ininterrumpida exl03 lleva a cabo la distribución ininterrumpida de los datos de contenido transmitidos a los clientes cuando lo soliciten. Los clientes incluyen la computadora exlll·, el PDA exll2, la cámara exll3, el teléfono celular exll4 y la consola de videojuegos exll5 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 de acuerdo con un aspecto de la presente invención).
Los datos capturados pueden ser codificados por la cámara exll3 o el servidor de transmisión ininterrumpida exl03 que transmite los datos, o los procesos de codificación pueden ser compartidos entre la cámara exll3 y el servidor de transmisión ininterrumpida exl03. Similarmente, los datos distribuidos pueden ser decodificados por los clientes o el servidor de transmisión ininterrumpida exl03, o los procesos de decodificación pueden ser compartidos entre los clientes y el servidor de transmisión ininterrumpida exl03. Adicionalmente, los datos de las imágenes fijas y video capturados no solo por la cámara exll3 sino también la cámara exll6 pueden ser transmitidos al servidor de transmisión ininterrumpida exl03 a través de la computadora exlll. Los procesos de codificación pueden ser realizados por la cámara exll6, la computadora exlll o el servidor de transmisión ininterrumpida exl03, o pueden ser compartidos entre los mismos.
Adicionalmente, los procesos de codificación y decodificación pueden ser realizados por un LSI ex500 incluido generalmente en cada uno de la computadora exlll y los dispositivos. El LSI ex500 se puede configurar de un chip individual o una pluralidad de chips. El software para codificar y decodificar video puede ser integrado en algún tipo de medio de grabación (tal como un CD-ROM, disco flexible y disco duro) que es legible por la computadora exlll y otros, y los procesos de codificación y decodificación se pueden realizar utilizando el software. Adicionalmente, cuando el teléfono celular exll4 se equipa con una cámara, los datos de video obtenidos por la cámara se pueden transmitir. Los datos de video son datos codificados por el LSI ex500 incluido en el teléfono celular exll4.
Adicionalmente, el servidor de transmisión ininterrumpida exl03 puede estar compuesto de servidores y computadoras y puede descentralizar datos y procesar los datos descentralizados, grabar o distribuir datos.
Como se describiera anteriormente, los clientes pueden recibir y reproducir los datos codificados en el sistema de provisión de contenido exlOO. En otras palabras, los clientes pueden recibir y decodificar información transmitida por el usuario y pueden reproducir los datos decodificados en tiempo real en el sistema de provisión de contenido exlOO, de modo que el usuario que no tiene ningún derecho y equipo particular puede implementar una difusión personal.
Además del ejemplo del sistema de provisión de contenido exlOO, por lo menos uno del aparato de codificación de representaciones visuales en movimiento (aparato de codificación de imágenes) y el aparato de decodificación de representaciones visuales en movimiento (aparato de decodificación de imágenes) descritos en cada una de las modalidades se puede implementar en un sistema de difusión digital ex200 ilustrado en la FIGURA 18. Más específicamente, una estación de difusión ex201 comunica o transmite, por vía de ondas de radio a un satélite de difusión ex202, datos multiplexados que se obtienen al multiplexar datos de audio y otros en datos de video. Los datos de video son datos codificados por medio del método de codificación de representaciones visuales en movimiento descrito en cada una de las modalidades (es decir, los datos codificados por el aparato de codificación de imágenes de acuerdo con un aspecto de la presente invención). Con la recepción de los datos multiplexados, el satélite de difusión ex202 transmite ondas de radio para la difusión. Luego, una antena de uso casero ex204 con una función de recepción de difusión satelital recibe las ondas de radio. Después, un dispositivo tal como una televisión (receptor) ex300 y un sintonizador externo (STB, por sus siglas en inglés) ex217 decodifica los datos multiplexados recibidos y reproduce los datos decodificados (es decir, funciona como el aparato de decodificación de imágenes de acuerdo con un aspecto de la presente invención).
Adicionalmente, un lector/grabador ex2l8 (i) lee y decodifica los datos multiplexados que están 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 al multiplexar una señal de audio en los datos codificados. El lector/grabador ex218 puede incluir el aparato de decodificación de representaciones visuales en movimiento o el aparato de codificación de representaciones visuales en movimiento como se muestra en cada una de las modalidades. En este caso, las señales de video reproducidas son exhibidas en el monitor ex219 y pueden ser reproducidas por otro dispositivo o sistema utilizando el medio de grabación ex215 en el cual se graban los datos multiplexados. También es posible imple entar el aparato de decodificación de representaciones visuales en movimiento en el sintonizador externo ex217 conectado al cable ex203 para una televisión de cable o a la antena ex204 para la difusión satelital y/o terrestre, con el fin de exhibir las señales de video en el monitor ex219 de la televisión ex300. El aparato de decodificación de representaciones visuales en movimiento puede no ser implementado en el sintonizador externo sino en la televisión ex300.
La FIGURA 19 ilustra la televisión (receptor) ex300 que utiliza el método de codificación de representaciones visuales en movimiento y el método de decodificación de representaciones visuales en movimiento descritos en cada una de las modalidades. La televisión ex300 incluye: un dispositivo de sintonización ex301 que obtiene o proporciona datos multiplexados obtenidos al multiplexar datos de audio en datos de video, a través de la antena ex204 o el cable ex203, etcétera que recibe una difusión; una unidad de modulación/desmodulación ex302 que desmodula los datos multiplexados recibidos o modula datos en datos multiplexados para ser suministrados al exterior; y una unidad de multiplexión/desmultiplexión ex303 que desmultiplexa 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.
La televisión 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 datos de video y codifican datos de audio y datos de video, respectivamente (las cuales 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 exhibición ex308 que exhibe la señal de video decodificada, tal como una pantalla. Adicionalmente, la televisión ex300 incluye una unidad de interconexión ex317 que incluye una unidad de entrada de operación ex312 que recibe una entrada de una operación del usuario. Adicionalmente, la televisión ex300 incluye una unidad de control ex310 que controla en conjunto cada elemento constituyente de la televisión ex300 y una unidad de circuitos de suministro de energía ex311 que suministra energía a cada uno de los elementos. A diferencia de la unidad de entrada de operación ex312, la unidad de interconexión ex317 puede incluir: un puente ex313 que se conecta a un dispositivo externo, tal como el lector/grabador ex218; una unidad de ranura ex314 para hacer posible la unión del medio de grabación ex216, tal como una tarjeta SD; un controlador ex315 que es conectado a un medio de grabación externo, tal como un disco duro; y un módem ex316 que es conectado a una red telefónica. En este documento, el medio de grabación ex216 puede grabar eléctricamente información utilizando un elemento de memoria semiconductora no volátil/volátil para el almacenamiento. Los elementos constituyentes de la televisión ex300 se conectan entre sí a través de una barra colectora sincrónica.
En primer lugar, se describirá la configuración en la cual la televisión ex300 decodifica los datos multiplexados obtenidos del exterior a través de la antena ex204 y otros y reproduce los datos decodificados. En la televisión ex300, con la operación de un usuario a través de un controlador distante ex220 y otros, la unidad de multiplexión/desmultiplexión ex303 desmultiplexa los datos multiplexados que son desmodulados por la unidad de modulación/desmodulación ex302, bajo control de la unidad de control ex310 que incluye una CPU. Adicionalmente, la unidad de procesamiento de señales de audio ex304 decodifica los datos de audio desmultiplexados y la unidad de procesamiento de señales de video ex305 decodifica los datos de video desmultiplexados, utilizando el método de decodificación descrito en cada una de las modalidades, en la televisión 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 las memorias intermedias ex318 y ex319 y otras de modo que las señales sean reproducidas en sincronización entre sí. Adicionalmente, la televisión ex300 puede leer datos multiplexados no a través de una difusión y otros sino de los medios de grabación ex215 y ex216, tal como un disco magnético, un disco óptico y una tarjeta SD. Después, se describirá una configuración en la cual la televisión 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 la televisión ex300, con la operación de un usuario a través del controlador distante 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 control de la unidad de control ex310 utilizando el método de codificación descrito en cada una de las modalidades. La unidad de multiplexión/desmultiplexió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 multiplexión/desmultiplexión ex303 multiplexa la señal de video y la señal de audio, las señales pueden ser almacenadas temporalmente en las memorias intermedias ex320 y ex321 y otras de modo que las señales sean reproducidas en sincronización entre sí. En este documento, las memorias intermedias ex318, ex319, ex320 y ex321 pueden ser plurales como se ilustra o por lo menos una memoria intermedia puede ser compartida en la televisión ex300. Adicionalmente, se pueden almacenar datos en una memoria intermedia de modo que se puede evitar el desbordamiento y subdesbordamiento del sistema entre la unidad de modulación/desmodulación ex302 y la unidad de multiplexión/desmultiplexión ex303, por ejemplo.
Adicionalmente, la televisión ex300 puede incluir una configuración para recibir una entrada de AV de un micrófono o una cámara diferente de la configuración para obtener datos de audio y video de una difusión o un medio de grabación y puede codificar los datos obtenidos. Aunque la televisión ex300 puede codificar, multiplexar y proporcionar datos al exterior en la descripción, puede ser capaz de únicamente recibir, decodificar y proporcionar datos al exterior pero no de codificar, multiplexar y proporcionar datos al exterior.
Adicionalmente, cuando el lector/grabador ex218 lee o escribe datos multiplexados de o en un medio de grabación, uno de la televisión ex300 y el lector/grabador ex218 puede decodificar o codificar los datos multiplexados y la televisión ex300 y el lector/grabador ex218 pueden compartir la decodificación o codificación.
Como un ejemplo, la FIGURA 20 ilustra una configuración de una unidad de reproducción/grabación de información ex400 cuando los datos son leídos o escritos de o en un disco óptico. La unidad de reproducción/grabación de información ex400 incluye los elementos constituyentes ex401, ex402, ex403, ex404, ex405, ex406 y ex407 que se describen posteriormente en este documento. La cabeza óptica ex401 irradia un foco de 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 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 impulsa eléctricamente un láser semiconductor incluido en la cabeza óptica ex401 y modula la luz láser de acuerdo con datos grabados. La unidad de desmodulación de reproducción ex403 amplifica una señal de reproducción obtenida al detectar eléctricamente la luz reflejada de la superficie de grabación utilizando un fotodetector incluido en la cabeza óptica ex401 y desmodula la señal de reproducción al separar un componente de señal grabado en el medio de grabación ex215 para reproducir la información necesaria. La memoria intermedia ex404 mantiene temporalmente la información a ser grabada en el medio de grabación ex215 y la información reproducida del medio de grabación ex215. El motor del disco ex405 hace girar el medio de grabación ex215. La unidad de servomando ex406 mueve la cabeza óptica ex401 a una pista de información predeterminada mientras que controla el impulso de rotación del motor del disco ex405 con el fin de seguir el foco de láser. La unidad de control del sistema ex407 controla en conjunto 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 utilizando diversa información almacenada en la memoria intermedia ex404 y generando y agregando nueva información como sea necesario y por medio de la unidad de grabación de modulación ex402, la unidad de desmodulación de reproducción ex403 y la unidad de servomando ex406 que graban y reproducen información a través de la cabeza óptica ex401 mientras que son operados de manera coordinada. La unidad de control del sistema ex407 incluye, por ejemplo, un microprocesador y ejecuta el procesamiento al causar que una computadora ejecute un programa para leer y escribir.
Aunque la cabeza óptica ex401 irradia un foco de láser en la descripción, puede realizar la grabación de alta densidad utilizando luz de campo próximo.
La FIGURA 21 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 acanaladuras guía se forman en espiral y una pista de información ex230 graba, anticipadamente, información de dirección que indica una posición absoluta en el disco de acuerdo con un cambio en una forma de las acanaladuras guía. La información de dirección incluye información para determinar posiciones de 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 conducir a la determinación de las posiciones de los bloques de grabación. Adicionalmente, el medio de grabación ex215 incluye un área de grabación de datos ex233, un área de circunferencia interior ex232 y un área de circunferencia exterior ex234. El área de grabación de datos ex233 es un área para el uso en la grabación de los datos del usuario. El área de circunferencia interior ex232 y el área de circunferencia exterior ex234 que son el interior y el exterior del área de grabación de datos ex233, respectivamente, son para uso específico excepto para la grabación de los datos del usuario. La unidad de reproducción/grabación de información 400 lee y escribe datos de audio codificados, datos de video codificados o datos multiplexados que se obtienen al multiplexar los datos de audio y video codificados, de y sobre el área de grabación de datos ex233 del medio de grabación ex215.
Aunque un disco óptico que tiene una capa, tal como un DVD y un BD se proporciona como un ejemplo en la descripción, el disco óptico no está limitado a ese tipo y puede ser un disco óptico que tenga una estructura de múltiples capas y que pueda ser grabado en una parte diferente de la superficie. Adicionalmente, el disco óptico puede tener una estructura para la grabación/reproducción multidimensional, tal como la grabación de información utilizando luz de colores con diferentes longitudes de onda en la misma porción del disco óptico y para grabar información que tiene diferentes capas desde varios ángulos.
Adicionalmente, un automóvil ex210 que tiene una antena ex205 puede recibir datos del satélite ex202 y otros, y puede reproducir video en un dispositivo de exhibición tal como un sistema de navegación de automóvil ex211 establecido en el automóvil ex210, en el sistema de difusión digital ex200. En este documento, una configuración del sistema de navegación de automóvil ex211 será una configuración, por ejemplo, que incluye una unidad de recepción de GPS de la configuración ilustrada en la FIGURA 19. Lo mismo será cierto para la configuración de la computadora exlll, el teléfono celular exll4 y otros.
La FIGURA 22A ilustra el teléfono celular exll4 que utiliza el método de codificación de representaciones visuales en movimiento y el método de decodificación de representaciones visuales en movimiento descritos en las modalidades. El teléfono celular exll4 incluye: una antena ex350 para transmitir y recibir ondas de radio a través de la estación base exllO; una unidad de cámara ex365 capaz de capturar imágenes en movimiento y fijas; y una unidad de exhibición ex358 tal como una pantalla de cristal líquido para exhibir los datos tales como video decodificado que es capturado por la unidad de cámara ex365 o es recibido por la antena ex350. El teléfono celular ex!14 incluye además: una unidad de cuerpo principal que incluye una unidad de teclas 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 interconexión para un medio de grabación que almacena datos de la misma manera que la unidad de memoria ex367.
Después, un ejemplo de una configuración del teléfono celular exll4 se describirá con referencia a la FIGURA 22B. En el teléfono celular exll4, una unidad de control principal ex360 diseñada para controlar en conjunto cada unidad del cuerpo principal que incluye la unidad de exhibición ex358, así como también la unidad de teclas de operación ex366 se conecta mutuamente, por vía de una barra colectora sincrónica ex370, a una unidad de circuitos de suministro de energía ex361, una unidad de control de entrada de operación ex362, una unidad de procesamiento de señales de video ex355, una unidad de interconexión de cámara ex363, una unidad de control de la pantalla de cristal líquido (LCD, por sus siglas en inglés) ex359, una unidad de modulación/desmodulación ex352, una unidad de multiplexión/desmultiplexión ex353, una unidad de procesamiento de señales de audio ex354, la unidad de ranura ex364 y la unidad de memoria ex367.
Cuando una tecla de final de llamada o una tecla de energía es ENCENDIDA por la operación de un usuario, la unidad de circuitos de suministro de energía ex361 provee a las unidades respectivas con energía de un empaque de baterías con el fin de activar el teléfono celular exll4.
En el teléfono celular exll4, la unidad de procesamiento de señales de audio ex354 convierte las señales de audio recolectadas 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/desmodulación ex352 realiza un procesamiento de espectro expandido en las señales de audio digital y la unidad de transmisión y recepción ex351 realiza la conversión de digital a análogo y la conversión de frecuencia en los datos, con el fin de transmitir los datos resultantes por vía de la antena ex350. También, en el teléfono celular exll4, la unidad de transmisión y recepción ex351 amplifica los datos recibidos por la antena ex350 en modo de conversación de voz y realiza la conversión de frecuencia y la conversión de análogo a digital en los datos. Luego, la unidad de modulación/desmodulación ex352 realiza el procesamiento de espectro expandido inverso en los datos y la unidad de procesamiento de señales de audio ex354 los convierte en señales de audio análogo, con el fin de enviarlos por vía de la unidad de salida de audio ex357.
Adicionalmente, cuando un correo electrónico en modo de comunicación de datos se transmite, los datos de texto del correo electrónico introducidos por medio de la operación de la unidad de teclas de operación ex366 y otros del cuerpo principal se envían a la unidad de control principal ex360 por vía de la unidad de control de entrada de operación ex362. La unidad de control principal ex360 causa que la unidad de modulación/desmodulación ex352 realice un procesamiento de espectro expandido en los datos de texto y la unidad de transmisión y recepción ex351 realiza la conversión de digital a análogo y la conversión de frecuencia en los datos resultantes para transmitir los datos a la estación base exllO por vía de la antena ex350. Cuando se recibe un correo electrónico, el procesamiento que es aproximadamente inverso al procesamiento para transmitir un correo electrónico se realiza en los datos recibidos y los datos resultantes se proporcionan a la unidad de exhibició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 de la unidad de cámara ex365 utilizando el método de codificación de representaciones visuales en movimiento mostrado en cada una de las modalidades (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 ultiplexión/desmultiplexión ex353. En contraste, 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 recolectadas por la unidad de entrada de audio ex356 y transmite los datos de audio codificados a la unidad de multiplexión/desmultiplexión ex353.
La unidad de multiplexión/desmultiplexión ex353 multiplexa los datos de video codificados que son suministrados de la unidad de procesamiento de señales de video ex355 y los datos de audio codificados que son suministrados de la unidad de procesamiento de señales de audio ex354, utilizando un método predeterminado. Luego, la unidad de modulación/desmodulación (unidad de circuito de modulación/desmodulación) ex352 realiza el procesamiento de espectro expandido en los datos multiplexados y la unidad de transmisión y recepción ex351 realiza la conversión de digital a análogo y la conversión de frecuencia en los datos con el fin de transmitir los datos resultantes por vía de la antena ex350.
Cuando se reciben datos de un archivo de video el cual está vinculado con 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 anexo, con el propósito de decodificar los datos multiplexados que son recibidos por vía de la antena ex350, la unidad de multiplexión/desmultiplexión ex353 desmultiplexa los datos multiplexados en una corriente de bits de datos de video y una corriente de bits de datos de audio y provee a la unidad de procesamiento de señales de video ex355 con los datos de video codificados y la unidad de procesamiento de señales de audio ex354 con los datos de audio codificados, a través de la barra colectora sincrónica ex370. La unidad de procesamiento de señales de video ex355 decodifica la señal de video utilizando un método de decodificación de representaciones visuales en movimiento que corresponde al método de codificación de representaciones visuales en movimiento mostrado en cada una de las modalidades (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 exhibición ex358 exhibe, por ejemplo, el video y las imágenes fijas que están incluidos en el archivo de video vinculado con la página Web por vía de la unidad de control de LCD ex359. Adicionalmente, 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.
Adicionalmente, de manera similar a la televisión ex300, es posible que una terminal tal como el teléfono celular exll4 tenga 3 tipos de configuraciones de implementación que incluyen no únicamente (i) una 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) una terminal de transmisión que incluye únicamente un aparato de codificación y (iii) una terminal de recepción que incluye únicamente un aparato de decodificación. Aunque el sistema de difusión digital ex200 recibe y transmite los datos multiplexados que se obtienen al multiplexar datos de audio en datos de video en la descripción, los datos multiplexados pueden ser datos obtenidos al multiplexar no datos de audio sino datos de carácter relacionados con video en datos de video y pueden no ser datos multiplexados sino datos de video mismos.
Como tal, el método de codificación de representaciones visuales en movimiento y el método de decodificación de representaciones visuales en movimiento en cada una de las modalidades se pueden utilizar en cualquiera de los dispositivos y sistemas descritos. De esta manera, se pueden obtener las ventajas descritas en cada una de las modalidades .
Adicionalmente, la presente invención no está limitada a las modalidades, y son posibles varias modificaciones y revisiones sin apartarse del alcance de la presente invención.
Modalidad 10 Los datos de video se pueden generar al conmutar, como sea necesario, entre (i) el método de codificación de representaciones visuales en movimiento o el aparato de codificación de representaciones visuales en movimiento mostrados en cada una de las modalidades y (ii) un método de codificación de representaciones visuales en movimiento o un aparato de codificación de representaciones visuales en movimiento de conformidad con un estándar diferente, tal como MPEG-2, MPEG-4 AVC y VC-1.
En este documento, cuando una pluralidad de datos de video que cumplen con los diferentes estándares se generan y luego se decodifican, es necesario que los métodos de decodificación se seleccionen para cumplir con los diferentes estándares. Sin embargo, puesto que no se puede detectar que estándar cumple cada uno de la pluralidad de datos de video que son decodificados, existe el problema respecto a que no se puede seleccionar un método de decodificación apropiado.
Con el propósito de resolver el problema, los datos multiplexados que se obtienen al multiplexar datos de audio y otros en datos de video tienen una estructura que incluye información de identificación que indica que estándar cumplen los datos de video. La estructura específica de los datos multiplexados que incluyen los datos de video generados en el método de codificación de representaciones visuales en movimiento y por el aparato de codificación de representaciones visuales en movimiento mostrados en cada una de las modalidades se describirá en lo sucesivo. Los datos multiplexados son una corriente digital en el formato de Corriente de Transporte de MPEG-2.
La FIGURA 23 ilustra una estructura de los datos multiplexados. Como se ilustra en la FIGURA 23, los datos multiplexados se pueden obtener al multiplexar por lo menos una de una corriente de video, una corriente de audio, una corriente de gráficos de presentación (PG, por sus siglas en inglés) y una corriente de gráficos interactivos. La corriente de video representa video primario y video secundario de una película, la corriente de audio (IG) representa una parte de audio primario y una parte de audio secundario que se mezcla con la parte de audio primario y la corriente de gráficos de presentación representa subtítulos de la película. En este documento, el video primario es video normal que es exhibido en una pantalla y el video secundario es video que es exhibido en una ventana más pequeña en el video primario. Adicionalmente, la corriente de gráficos interactivos representa una pantalla interactiva que es generada al ordenar los componentes de GUI en una pantalla. La corriente de video se codifica en el método de codificación de representaciones visuales en movimiento o por el aparato de codificación de representaciones visuales en movimiento mostrados en cada una de las modalidades, o en un método de codificación de representaciones visuales en movimiento o por un aparato de codificación de representaciones visuales en movimiento de conformidad con un estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1. La corriente de audio se codifica de acuerdo con un estándar, tal como Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD y PCM lineal.
Cada corriente incluida en los datos multíplexados es identificada por un PID. Por ejemplo, 0x1011 se asigna a la corriente de video que se utiliza para el video de una película, de 0x1100 a OxlllF se asignan a las corrientes de audio, de 0x1200 a 0xl21F se asignan a las corrientes de gráficos de presentación, de 0x1400 a 0xl41F se asignan a las corrientes de gráficos interactivos, de OxlBOO a OxlBlF se asignan a las corrientes de video que se utilizan para el video secundario de la película y de OxlAOO a OxlAlF se asignan a las corrientes de audio que se utilizan para el audio secundario que se mezcla con el audio primario.
La FIGURA 24 ilustra esquemáticamente como se multiplexan los datos. En primer lugar, una corriente de video ex235 compuesta de tramas de video y una corriente de audio ex238 compuesta de tramas de audio se transforman en una corriente de paquetes PES ex236 y una corriente de paquetes PES ex239 y además en paquetes TS ex237 y paquetes TS ex240, respectivamente. Similarmente, los datos de una corriente de gráficos de presentación ex24l y los datos de una corriente de gráficos interactivos ex244 se transforman en una corriente de paquetes PES ex242 y una corriente de paquetes PES ex245 y además en paquetes TS ex243 y paquetes TS ex246, respectivamente. Estos paquetes TS son multiplexados en una corriente para obtener datos multiplexados ex247.
La FIGURA 25 ilustra con mayor detalle como se almacena una corriente de video en una corriente de paquetes PES. L primera barra en la FIGURA 25 muestra una corriente de tramas de video en una corriente de video. La segunda barra muestra la corriente de paquetes PES. Como es indicado por las flechas designadas como yyl, yy2, yy3 e yy4 en la FIGURA 25, la corriente de video se divide en representaciones visuales como representaciones visuales I, representaciones visuales B y representaciones visuales P cada una de las cuales es una unidad de presentación de video y las representaciones visuales se almacenan en una carga útil de cada uno de los paquetes PES. Cada uno de los paquetes PES tiene un encabezado de PES y el encabezado de PES almacena un Registro de Tiempos de Presentación (PTS, por sus siglas en inglés) que indica un tiempo de exhibición de la representación visual y un Registro de Tiempos de Decodificación (DTS, por sus siglas en inglés) que indica un tiempo de decodificación de la representación visual.
La FIGURA 26 ilustra un formato de paquetes TS que se escriben finalmente en los datos multiplexados. Cada uno de los paquetes TS es un paquete de longitud fija de 188 bytes, que incluye un encabezado de TS de 4 bytes que tiene información, tal como un PID para identificar una corriente y una carga útil de TS de 184 bytes para almacenar datos. Los paquetes PES se dividen y se almacenan en las cargas útiles de TS, respectivamente. Cuando se utiliza un BD ROM, a cada uno de los paquetes TS se proporciona un TP_Extra_Header (Encabezado Adicional TP) de 4 bytes, dando por resultado de esta manera paquetes fuente de 192 bytes. Los paquetes fuente se escriben en los datos multiplexados. El TP_Extra_Header almacena información tal como un Arrival_Time_Stamp (Registro de Tiempos de Llegada) (ATS, por sus siglas en inglés). El ATS muestra un tiempo de inicio de transferencia en el cual cada uno de los paquetes TS deben ser transferidos a un filtro de PID. Los paquetes fuente se ordenan en los datos multiplexados como se muestra en el fondo de la FIGURA 26. Los números que incrementan desde la cabeza de los datos multiplexados son llamados números de paquete fuente (SPNs, por sus siglas en inglés).
Cada uno de los paquetes TS incluidos en los datos multiplexados incluye no únicamente corrientes de audio, video, subtítulos y otros, sino también una Tabla de Asociación de Programas (PAT, por sus siglas en inglés), una Tabla de Mapa de Programas (PMT, por sus siglas en inglés) y una Referencia de Reloj de Programa (PCR, por sus siglas en inglés). La PAT muestra lo que indica un PID en una PMT utilizada en los datos multiplexados y un PID de la PAT misma se registra como cero. La PMT almacena PIDs de las corrientes de video, audio, subtítulos y otros incluidas en los datos multiplexados y la información de atributos de las corrientes correspondientes a los PIDs. La PMT también tiene varios descriptores que se refieren a los datos multiplexados. Los descriptores tienen información tal como información de control de copias que muestra si se permite o no el copiado de los datos multiplexados. La PCR almacena la información de tiempo de STC que corresponde a un ATS que muestra cuando el paquete de PCR se transfiere a un decodificador, con el propósito de lograr una sincronización entre un Reloj de Tiempo de Llegada (ATC, por sus siglas en inglés) que es un eje de tiempo de ATSs y un Reloj de Tiempo de Sistema (STC, por sus siglas en inglés) que es un eje de tiempo de PTSs y DTSs .
La FIGURA 27 ilustra detalladamente la estructura de datos de la PMT. Un encabezado de PMT se coloca en la parte más alta de la PMT. El encabezado de PMT describe la longitud de datos incluidos en la PMT y otros. Una pluralidad de descriptores que se refieren a los datos multiplexados se coloca después del encabezado de PMT. Información tal como la información de control de copias se describe en los descriptores. Después de los descriptores, se coloca una pluralidad de piezas de información de corriente que se refiere a las corrientes incluidas en los datos multiplexados. Cada pieza de información de corriente incluye descriptores de corriente cada uno que describe información, tal como un tipo de corriente para identificar un códec de compresión de una corriente, un PID de corriente e información de atributos de corriente (tal como una velocidad de tramas o una relación dimensional). Los descriptores de corriente son iguales en número al número de corrientes 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 como se muestra en la FIGURA 28. Los archivos de información de datos multiplexados están en correspondencia de uno a uno con los datos multiplexados y cada uno de los archivos incluye información de datos multiplexados, información de atributos de corriente y un mapa de entrada.
Como se ilustra en la FIGURA 28, la información de datos multiplexados incluye una velocidad de sistema, un tiempo de inicio de reproducción y un tiempo de final de reproducción. La velocidad de sistema indica la velocidad de transferencia máxima a la cual un decodificador objetivo del sistema que se describe posteriormente transfiere los datos multiplexados a un filtro de PID. Los intervalos de los ATSs incluidos en los datos multiplexados se establecen a un nivel no más alto que una velocidad de sistema. El tiempo de inicio de reproducción indica un PTS en una trama de video en la cabeza de los datos multiplexados. Un intervalo de una trama se agrega a un PTS en una trama de video al final de los datos multiplexados y el PTS se establece al tiempo de final de reproducción.
Como se muestra en la FIGURA 29, una pieza de información de atributos se registra en la información de atributos de corriente, para cada PID de cada corriente incluida en los datos multiplexados . Cada pieza de información de atributos tiene diferente información dependiendo si la corriente correspondiente es una corriente de video, una corriente de audio, una corriente de gráficos de presentación o una corriente de gráficos interactivos.
Cada pieza de información de atributos de corriente de video lleva información que incluye que clase de codee de compresión se utiliza para la compresión de la corriente de video y la resolución, relación dimensional y velocidad de trama de las piezas de datos de representación visual que se incluyen en la corriente de video. Cada pieza de información de atributos de corriente de audio lleva información que incluye que clase de códec de compresión se utiliza para comprimir la corriente de audio, cuantos canales se incluyen en la corriente de audio, que lenguaje soporta la corriente de audio y que tan alta es la frecuencia de muestreo. La información de atributos de corriente de video y la información de atributos de corriente de audio se utilizan para la inicialización de un decodificador antes de que el reproductor repita la información.
En la presente modalidad, los datos multiplexados que se utilizan son de un tipo de corriente incluido en la PMT. Adicionalmente, cuando los datos multiplexados se graban en un medio de grabación, la información de atributos de corriente de video incluida en la información de datos multiplexados se utiliza. Más específicamente, el método de codificación de representaciones visuales en movimiento o el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades incluye un paso o una unidad para asignar información única que indica los datos de video generados por el método de codificación de representaciones visuales en movimiento o el aparato de codificación de representaciones visuales en movimiento en cada una de las modalidades, al tipo de corriente incluido en la PMT o la información de atributos de corriente de video. Con la configuración, los datos de video generados por el método de codificación de representaciones visuales en movimiento o el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades se pueden distinguir de los datos de video que cumplen con otro estándar.
Adicionalmente, la FIGURA 30 ilustra pasos del método de decodificación de representaciones visuales en movimiento de acuerdo con la presente modalidad. En el Paso exSlOO, el tipo de corriente incluido en la PMT o la información de atributos de corriente de video incluida en la información de datos multiplexados se obtiene de los datos multiplexados. Después, en el Paso exSlOl, se determina si el tipo de corriente o la información de atributos de corriente de video indica o no que los datos multiplexados son generados por el método de codificación de representaciones visuales en movimiento o el aparato de codificación de representaciones visuales en movimiento en cada una de las modalidades. Cuando se determina que el tipo de corriente o la información de atributos de corriente de video indica que los datos multiplexados son generados por el método de codificación de representaciones visuales en movimiento o el aparato de codificación de representaciones visuales en movimiento en cada una de las modalidades, en el Paso exS102, la decodificación es realizada por el método de decodificación de representaciones visuales en movimiento en cada una de las modalidades. Adicionalmente, cuando el tipo de corriente o la información de atributos de corriente de video indica el cumplimiento de los estándares convencionales, tales como MPEG-2, MPEG-4 AVC y VC-1, en el Paso exS103, la decodificación es realizada por un método de decodificación de representaciones visuales en movimiento de conformidad con los estándares convencionales.
Como tal, la asignación de un nuevo valor único al tipo de corriente o a la información de atributos de corriente de video hace posible la determinación si el método de decodificación de representaciones visuales en movimiento o el aparato de decodificación de representaciones visuales en movimiento que se describen en cada una de las modalidades pueden realizar o no la decodificación. Incluso cuando se introducen datos multiplexados que cumplen con un estándar diferente, se puede seleccionar un método o aparato de decodificación apropiado. De esta manera, se hace posible decodificar información sin ningún error. Adicionalmente, el método o aparato de codificación de representaciones visuales en movimiento, o el método o aparato de decodificación de representaciones visuales en movimiento en la presente modalidad se puede utilizar en los dispositivos y sistemas descritos anteriormente.
Modalidad 11 Cada uno del método de codificación de representaciones visuales en movimiento, el aparato de codificación de representaciones visuales en movimiento, el método de decodificación de representaciones visuales en movimiento y el aparato de decodificación de representaciones visuales en movimiento en cada una de las modalidades se logra típicamente en la forma de un circuito integrado o un circuito Integrado a Gran Escala (LSI, por sus siglas en inglés). Como un ejemplo del LSI, la FIGURA 31 ilustra una configuración del LSI ex500 que se hace en un chip. El LSI ex500 incluye los elementos ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 y ex509 que se describen posteriormente, y los elementos se conectan entre sí a través de una barra colectora ex510. La unidad de circuitos de suministro de energía ex505 es activada al proveer a cada uno de los elementos con energía cuando la unidad de circuitos de suministro de energía ex505 se enciende.
Por ejemplo, cuando se realiza la codificación, el LSI ex500 recibe una señal de AV de un micrófono exll7, una cámara exll3 y otros a través de una 10 de AV ex509 bajo control de una unidad de control ex501 que incluye una CPU ex502, un controlador de memoria ex503, un controlador de corriente ex504 y una unidad de control de frecuencia impulsora ex512. La señal de AV recibida se almacena temporalmente en la memoria externa ex511, tal como una SDRAM. Bajo control de la unidad de control ex501, los datos almacenados son segmentados en porciones de datos de acuerdo con la cantidad y velocidad de procesamiento que se transmite 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 documento, la codificación de la señal de video es la codificación descrita en cada una de las modalidades. Adicionalmente, la unidad de procesamiento de señales ex507 multiplexa algunas veces los datos de audio codificados y los datos de video codificados, y una 10 de corriente ex506 proporciona los datos multiplexados al exterior. Los datos multiplexados proporcionados son transmitidos a la estación base exl07, o se escriben en el medio de grabación ex215. Cuando se multiplexan los conjuntos de datos, los datos se deben almacenar temporalmente en la memoria intermedia ex508 de modo que los conjuntos de datos se sincronizan entre sí.
Aunque la memoria ex511 es un elemento fuera del LSI ex500, se puede incluir en el LSI ex500. La memoria intermedia ex508 no está limitada a una memoria intermedia, sino que puede estar compuesta de memorias intermedias. Adicionalmente, el LSI ex500 se puede hacer en un chip o una pluralidad de chips.
Adicionalmente, aunque la unidad de control ex501 incluye la CPU ex502, el controlador de memoria ex503, el controlador de corriente ex504, la unidad de control de frecuencia impulsora ex512, la configuración de la unidad de control ex501 no está limitada a éstos. 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. Adicionalmente, como otro ejemplo, la CPU ex502 puede servir como o puede ser una 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 este 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 se puede llamar IC, sistema LSI, super LSI o ultra-LSI dependiendo del grado de integración.
Por otra parte, las maneras para lograr la integración no están limitadas al LSI y un circuito especial o un procesador de uso general y así por el estilo también puede lograr la integración. La Matriz de Puerta Programable de Campo (FPGA, por sus siglas en inglés) que se puede programar después de la manufactura de LSIs o un procesador reconfigurable que permite la reconfiguración de la conexión o la configuración de un LSI se puede utilizar para el mismo propósito. Este dispositivo lógico programable puede ejecutar típicamente el método de codificación de representaciones visuales en movimiento y/o el método de decodificación de representaciones visuales en movimiento de acuerdo con cualquiera de las modalidades descritas con anterioridad al cargar o leer, desde una memoria o similares, uno o más programas que se incluyen en el software o firmware.
En el futuro, con el avance en la teenología de los semiconductores, una nueva tecnología puede reemplazar el LSI. Los bloques funcionales se pueden integrar utilizando esta tecnología. La posibilidad es que la presente invención se aplique a la biotecnología.
Modalidad 12 Cuando los datos de video generados en el método de codificación de representaciones visuales en movimiento o por el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades se decodifican, es posible que la cantidad de procesamiento se incremente en comparación a cuando los datos de video que cumplen con un estándar convencional, tales como MPEG-2, MPEG-4 AVC y VC-1 se decodifican. De esta manera, el LSI ex500 necesita ser establecido a una frecuencia impulsora más alta que aquella de la CPU ex502 que se utiliza cuando se decodifican datos de video de conformidad con el estándar convencional. Sin embargo, cuando la frecuencia impulsora se establece más alta, existe el problema respecto a que el consumo de energía incrementa.
Con el propósito de resolver el problema, el aparato de decodificación de representaciones visuales en movimiento, tal como la televisión ex300 y el LSI ex500 se configuran para determinar que estándar cumplen los datos de video y conmutar entre las frecuencias impulsoras de acuerdo con el estándar determinado. La FIGURA 32 ilustra una configuración ex800 en la presente modalidad. Una unidad de conmutación de frecuencias impulsoras ex803 establece una frecuencia impulsora a una frecuencia impulsora más alta cuando los datos de video son generados por el método de codificación de representaciones visuales en movimiento o el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades. Luego, la unidad de conmutación de frecuencias impulsoras ex803 da instrucciones a una unidad de procesamiento de decodificación ex801 que ejecuta el método de decodificación de representaciones visuales en movimiento descrito en cada una de las modalidades para decodificar los datos de video. Cuando los datos de video cumplen con el estándar convencional, la unidad de conmutación de frecuencias impulsoras ex803 establece una frecuencia impulsora a una frecuencia impulsora más baja que aquella de los datos de video generados por el método de codificación de representaciones visuales en movimiento o el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades. Luego, la unidad de conmutación de frecuencias impulsoras ex803 da instrucciones 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 frecuencias impulsoras ex803 incluye la CPU ex502 y la unidad de control de frecuencias impulsoras ex512 en la FIGURA 31. En este documento, cada unidad de procesamiento de decodificación ex801 que ejecuta el método de decodificación de representaciones visuales en movimiento descrito en cada una de las modalidades y la unidad de procesamiento de decodificación ex802 que cumple con el estándar convencional corresponde a la unidad de procesamiento de señales ex507 de la FIGURA 31. La CPU ex502 determina que estándar cumplen los datos de video. Luego, la unidad de control de frecuencias impulsoras ex512 determina una frecuencia impulsora con base en una señal de la CPU ex502. Adicionalmente, la unidad de procesamiento de señales ex507 decodifica los datos de video con base en la señal de la CPU ex502. Por ejemplo, es posible que la información de identificación descrita en la Modalidad 10 se utilice para identificar los datos de video. La información de identificación no está limitada a aquella descrita en la Modalidad 10 sino que puede ser cualquier información siempre y cuando la información indique que estándar cumplen los datos de video. Por ejemplo, cuando se puede determinar que estándar cumplen los datos de video con base en una señal externa para determinar que los datos de video se utilizan para una televisión o un disco, etcétera, la determinación se puede hacer con base en esta señal externa. Adicionalmente, la CPU ex502 selecciona una frecuencia impulsora con base en, por ejemplo, una tabla de consulta en la cual los estándares de los datos de video se asocian con las frecuencias impulsoras como se muestra en la FIGURA 32. La frecuencia impulsora se puede seleccionar al almacenar la tabla de consulta en la memoria intermedia ex508 y en una memoria interna de un LSI y con referencia a la tabla de consulta por la CPU ex502.
La FIGURA 33 ilustra pasos para ejecutar un método en la presente modalidad. En primer lugar, en el Paso exS200, la unidad de procesamiento de señales ex507 obtiene información de identificación de los datos multiplexados. Después, en el Paso exS201, la CPU ex502 determina si los datos de video se generan o no por medio del método de codificación y el aparato de codificación descritos en cada una de las modalidades, con base en la información de identificación. Cuando los datos de video son generados por medio del método de codificación de representaciones visuales en movimiento y el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades, en el Paso exS202, la CPU ex502 transmite una señal para establecer la frecuencia impulsora a una frecuencia impulsora más alta a la unidad de control de frecuencias impulsoras ex512. Luego, la unidad de control de frecuencias impulsoras ex512 establece la frecuencia impulsora a la frecuencia impulsora más alta. 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 el Paso exS203, la CPU ex502 transmite una señal para establecer la frecuencia impulsora a una frecuencia impulsora más baja a la unidad de control de frecuencias impulsoras ex512. Luego, la unidad de control de frecuencias impulsoras ex512 establece la frecuencia impulsora a la frecuencia impulsora más baja que aquella en el caso donde los datos de video son generados por medio del método de codificación de representaciones visuales en movimiento y el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades .
Adicionalmente, junto con la conmutación de las frecuencias impulsoras, el efecto de conservación de energía se puede mejorar al cambiar el voltaje que se aplica al LSI ex500 o un aparato que incluye el LSI ex500. Por ejemplo, cuando la frecuencia impulsora se establece más baja, es posible que el voltaje que se aplica al LSI ex500 o el aparato que incluye el LSI ex500 se establezca a un voltaje más bajo que aquel en el caso donde la frecuencia impulsora se establece más alta.
Adicionalmente, cuando la cantidad de procesamiento para la decodificación es más grande, la frecuencia impulsora se puede establecer más alta, y cuando la cantidad de procesamiento para la decodificación es más pequeña, la frecuencia impulsora se puede establecer más baja como el método para establecer la frecuencia impulsora. De esta manera, el método de establecimiento no está limitado a aquellos descritos anteriormente. Por ejemplo, cuando la cantidad de procesamiento para decodificar datos de video de conformidad con MPEG-4 AVC es más grande que la cantidad de procesamiento para la decodificación de datos de video generados por medio del método de codificación de representaciones visuales en movimiento y el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades, es posible que la frecuencia impulsora se establezca en orden inverso al establecimiento descrito anteriormente.
Adicionalmente, el método para establecer la frecuencia impulsora no está limitado al método para establecer la frecuencia impulsora más baja. Por ejemplo, cuando la información de identificación indica que los datos de video se generan por medio del método de codificación de representaciones visuales en movimiento y el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades, es posible que el voltaje que se aplica al LSI ex500 o el aparato que incluye el LSI ex500 se establezca más alto. 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, es posible que el voltaje que se aplica al LSI ex500 o el aparato que incluye el LSI ex500 se establezca más bajo. Como otro ejemplo, es posible que cuando la información de identificación indica que los datos de video se generan por medio del método de codificación de representaciones visuales en movimiento y el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades, la impulsión de la CPU ex502 no tenga que suspenderse y 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, es posible que la impulsión de la CPU ex502 se suspenda en un tiempo determinado debido a que la CPU ex502 tiene capacidad de procesamiento adicional. Incluso cuando la información de identificación indica que los datos de video se generan por medio del método de codificación de representaciones visuales en movimiento y el aparato de codificación de representaciones visuales en movimiento descritos en cada una de las modalidades, en el caso donde la CPU ex502 tiene capacidad de procesamiento adicional, es posible que la impulsión de la CPU ex502 se suspenda en un tiempo determinado. En este caso, es posible que el tiempo de suspensión se establezca más corto que aquel en el caso 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, el efecto de conservación de energía se puede mejorar al conmutar entre las frecuencias impulsoras de acuerdo con el estándar que cumplen los datos de video. Adicionalmente, cuando el LSI ex500 o el aparato que incluye el LSI ex500 se impulsa utilizando una batería, la vida útil de la batería se puede extender con el efecto de conservación de energía.
Modalidad 13 Existen casos donde una pluralidad de datos de video que cumplen con diferentes estándares, se proporciona a los dispositivos y sistemas, tal como una televisión y un teléfono celular. Con el propósito de hacer posible la decodificación de la pluralidad de datos de video que cumplen con los diferentes estándares, la unidad de procesamiento de señales ex507 del LSI ex500 necesita cumplir con los diferentes estándares. Sin embargo, los problemas de incremento en la escala del circuito del LSI ex500 y de incremento en el costo surgen con el uso individual de las unidades de procesamiento de señales ex507 que cumplen con los estándares respectivos.
Con el propósito de resolver el problema, lo que se idea es una configuración en la cual la unidad de procesamiento de decodificación para implementar el método de decodificación de representaciones visuales en movimiento descrito en cada una de las modalidades y la unidad de procesamiento de decodificación que cumple con el estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1 se comparten parcialmente. Ex900 en la FIGURA 35A muestra un ejemplo de la configuración. Por ejemplo, el método de decodificación de representaciones visuales en movimiento descrito en cada una de las modalidades y el método de decodificación de representaciones visuales en movimiento que cumple con MPEG-4 AVC tienen, parcialmente en común, los detalles del procesamiento, tal como la codificación entrópica, cuantificación inversa, filtración de desbloqueo y predicción con compensación de movimiento. Es posible que una unidad de procesamiento de decodificación ex902 que cumple con MPEG-4 AVC sea compartida por operaciones de procesamiento comunes y que una unidad de procesamiento de decodificación especializada ex901 se utilice para el procesamiento que es único para un aspecto de la presente invención y que no cumple con MPEG-4 AVC. Es posible que una unidad de procesamiento de decodificación ex902 que cumple con MPEG-4 AVC sea compartida por operaciones de procesamiento comunes y que una unidad de procesamiento de decodificación especializada ex901 se utilice para el procesamiento que es único para un aspecto de la presente invención y que no cumple con MPEG-4 AVC. La unidad de procesamiento de decodificación para implementar el método de decodificación de representaciones visuales en movimiento descrito en cada una de las modalidades puede ser compartida para que el procesamiento sea compartido y una unidad de procesamiento de decodificación especializada se puede utilizar para el procesamiento único para aquel de MPEG-4 AVC.
Adicionalmente, exlOOO en la FIGURA 35B muestra otro ejemplo en que se comparte parcialmente el procesamiento. Este ejemplo utiliza una configuración que incluye una unidad de procesamiento de decodificación especializada exlOOl que soporta el procesamiento único para un aspecto de la presente invención, una unidad de procesamiento de decodificación especializada exl002 que soporta el procesamiento único para otro estándar convencional y una unidad de procesamiento de decodificación exl003 que soporta el procesamiento que es compartido entre el método de decodificación de representaciones visuales en movimiento de acuerdo con el aspecto de la presente invención y el método de decodificación de representaciones visuales en movimiento convencional. En este documento, las unidades de procesamiento de decodificación especializadas exlOOl y exl002 no están especializadas necesariamente para el procesamiento de acuerdo con el aspecto de la presente invención y el procesamiento del estándar convencional, respectivamente, y pueden ser aquellas capaces de implementar el procesamiento general. Adicionalmente, la configuración de la presente modalidad puede ser implementada por el LSI ex500.
Como tal, la reducción de la escala del circuito de un LSI y la reducción del costo son posibles al compartir la unidad de procesamiento de decodificación para que el procesamiento sea compartido entre el método de decodificación de representaciones visuales en movimiento de acuerdo con el aspecto de la presente invención y el método de decodificación de representaciones visuales en movimiento de conformidad con el estándar convencional.
Aplicabilidad Industrial Un método de codificación de imágenes y un método de decodificación de imágenes de acuerdo con la presente invención se pueden aplicar a varios datos multimedia. El método de codificación de imágenes y el método de decodificación de imágenes de acuerdo con la presente invención son útiles como un método de codificación de imágenes y un método de decodificación de imágenes en el almacenamiento, transmisión, comunicación y similares utilizando un teléfono móvil, un dispositivo de DVD, una computadora personal y similares.
Lista de Signos de Referencia 101 codificador 105 sustractor 110 unidad de transformación 120 unidad de cuantificación 130, 230 unidad de transformación inversa 140, 240 adicionador 150, 250 filtro de desbloqueo 160, 260 filtro de bucle adaptable 170, 270 memoria de tramas 180, 280 unidad de predicción 190 codificador entrópico 200 decodificador 290 decodificador entrópico 300, 400, 710 representación visual 31, 32, 3i, 41, 42 hilera de LCU 311, 312, 3il, 321 LCU 500 encabezado de paquete 510 encabezado de IP 520, 550 campo de extensión 530 encabezado de UDP 540 encabezado de RTP 560 encabezado de carga útil 570 encabezado de NAL si señal de entrada s2 señal de predicción e, e' señal de error de predicción s', s", s3 señal reconstruida Se hace constar que con relación a esta fecha, el mejor método conocido por la solicitante para llevar a la práctica la citada invención, es el que resulta claro de la presente descripción de la invención.

Claims (13)

REIVINDICACIONES Habiéndose descrito la invención como antecede, se reclama como propiedad lo contenido en las siguientes reivindicaciones:
1. Un método de codificación de imágenes para realizar el procesamiento de codificación al dividir una representación visual en una pluralidad de cortes, caracterizado porque comprende transmitir una corriente de bits la cual incluye: un indicador de habilitación de cortes dependientes que señala si la representación visual incluye o no un corte de dependiente en el cual se realiza el procesamiento de codificación dependiendo de un resultado del procesamiento de codificación en un corte diferente de un corte actual; una dirección de corte que señala una posición de inicio del corte actual; y una indicación de dependencia que señala si el corte actual es o no el corte dependiente, en donde el indicador de habilitación de cortes dependientes se dispone en un conjunto de parámetros común para los cortes, la dirección de corte se dispone en un encabezado de corte del corte actual y la indicación de dependencia se dispone en el encabezado de corte y se dispone antes de la dirección de corte y después de un elemento de sintaxis que identifica el conjunto de parámetros.
2. El método de codificación de imágenes de conformidad con la reivindicación 1, caracterizado porque la indicación de dependencia se incluye en la corriente de bits cuando el indicador de habilitación de cortes dependientes señala la inclusión del corte dependiente.
3. El método de codificación de imágenes de conformidad con una de las reivindicaciones 1 y 2, caracterizado porque el indicador de habilitación de cortes dependientes se dispone al comienzo del conjunto de parámetros.
4. El método de codificación de imágenes de conformidad con una de las reivindicaciones 1 a 3, caracterizado porque cada uno de los corte incluye una pluralidad de macrobloques y el procesamiento de codificación en el corte actual se inicia después de que el procesamiento de codificación se realiza en dos de los macrobloques incluidos en un corte actual inmediatamente precedente.
5. El método de codificación de imágenes de conformidad con una de las reivindicaciones 1 a 4, caracterizado porque la indicación de dependencia no se incluye en un encabezado de corte de un corte el cual es procesado primero para la representación visual, entre los cortes.
6. Un método de decodificación de imágenes para realizar el procesamiento de decodificación al dividir una representación visual en una pluralidad de cortes, caracterizado porque comprende extraer, de una corriente de bits codificada, un indicador de habilitación de cortes dependientes que señala si la representación visual incluye o no un corte dependiente en el cual se realiza el procesamiento de decodificación dependiendo de un resultado del procesamiento de decodificación en un corte diferente de un corte actual, una dirección de corte que señala una posición de inicio del corte actual y una indicación de dependencia que señala si el corte actual es o no el corte dependiente, en donde el indicador de habilitación de cortes dependientes se dispone en un conjunto de parámetros común para los cortes, la dirección de corte se dispone en un encabezado de corte del corte actual y la indicación de dependencia se dispone en el encabezado de corte y se dispone antes de la dirección de corte y después de un elemento de sintaxis que identifica el conjunto de parámetros.
7. El método de decodificación de imágenes de conformidad con la reivindicación 6, caracterizado porque la indicación de dependencia se extrae de la corriente de bits cuando el indicador de habilitación de cortes dependientes señala la inclusión del corte dependiente.
8. El método de decodificación de imágenes de conformidad con una de las reivindicaciones 6 y 7, caracterizado porque el indicador de habilitación de cortes dependientes se dispone en el comienzo del conjunto de parámetros.
9. El método de decodificación de imágenes de conformidad con una de las reivindicaciones 6 a 8, caracterizado porque cada uno de los cortes incluye una pluralidad macrobloques y el procesamiento decodificación en el corte actual se inicia después de que el procesamiento de decodificación se realiza en dos de los macrobloques incluidos en un corte actual inmediatamente precedente.
10. El método de decodificación de imágenes de conformidad con una de las reivindicaciones 6 a 9, caracterizado porque la indicación de dependencia no es incluida en un encabezado de corte de un corte el cual es procesado primero para la representación visual, entre los cortes.
11. Un aparato de codificación de imágenes el cual realiza el procesamiento de codificación al dividir una representación visual en una pluralidad de cortes, caracterizado porque comprende un codificador el cual transmite una corriente de bits la cual incluye: un indicador de habilitación de cortes dependientes que señala si la representación visual incluye o no un corte dependiente en el cual se realiza el procesamiento de codificación dependiendo de un resultado del procesamiento de codificación en un corte diferente de un corte actual; una dirección de corte que indica una posición de inicio del corte actual; y una indicación de dependencia que señala si el corte actual es o no el corte dependiente, en donde el indicador de habilitación de cortes dependientes se dispone en un conjunto de parámetros común para los cortes, la dirección de corte se dispone en un encabezado de corte del corte actual y la indicación de dependencia se dispone en el encabezado de corte y se dispone antes de la dirección de corte y después de un elemento de sintaxis que identifica el conjunto de parámetros.
12. Un aparato de decodificación de imágenes el cual realiza el procesamiento de decodificación al dividir una representación visual en una pluralidad de cortes, caracterizado porque comprende un decodificador el cual extrae, de una corriente de bits codificada, un indicador de habilitación de cortes dependientes que señala si la representación visual incluye o no un corte dependiente en el cual se realiza el procesamiento de decodificación dependiendo de un resultado del procesamiento de decodificación en un corte diferente de un corte actual, una dirección de corte que indica una posición de inicio del corte actual y una indicación de dependencia que señala si el corte actual es o no el corte dependiente, en donde el indicador de habilitación de cortes dependientes se dispone en un conjunto de parámetros común para los cortes, la dirección de corte se dispone en un encabezado de corte del corte actual y la indicación de dependencia se dispone en el encabezado de corte y se dispone antes de la dirección de corte y después de un elemento de sintaxis que identifica el conjunto de parámetros.
13. Un aparato de codificación y decodificación de imágenes, caracterizado porque comprende: el aparato de codificación de imágenes de conformidad con la reivindicación 11; y el aparato de decodificación de imágenes de conformidad con la reivindicación 12.
MX2015002889A 2012-09-26 2013-09-19 Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes. MX339463B (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261705846P 2012-09-26 2012-09-26
US201261711892P 2012-10-10 2012-10-10
PCT/JP2013/005541 WO2014050038A1 (ja) 2012-09-26 2013-09-19 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、および、画像符号化復号装置

Publications (2)

Publication Number Publication Date
MX2015002889A true MX2015002889A (es) 2015-07-06
MX339463B MX339463B (es) 2016-05-27

Family

ID=50385285

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2015002889A MX339463B (es) 2012-09-26 2013-09-19 Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.

Country Status (21)

Country Link
US (8) US9014494B2 (es)
EP (7) EP3654649B1 (es)
JP (4) JP6172535B2 (es)
KR (2) KR102072832B1 (es)
CN (2) CN108282655B (es)
AU (1) AU2013322008B2 (es)
BR (1) BR112015004140A8 (es)
CA (1) CA2881221C (es)
DK (1) DK3122048T3 (es)
ES (4) ES2664361T3 (es)
HK (1) HK1253286A1 (es)
MX (1) MX339463B (es)
MY (1) MY176984A (es)
PH (3) PH12017501838A1 (es)
PL (3) PL3122048T3 (es)
PT (1) PT3122048T (es)
RU (2) RU2653236C2 (es)
SG (1) SG11201500846TA (es)
TR (1) TR201802584T4 (es)
TW (1) TWI593274B (es)
WO (1) WO2014050038A1 (es)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2784291A1 (en) * 2009-12-18 2011-06-23 Sharp Kabushiki Kaisha Image filter, encoding device, decoding device, and data structure
CN104429071B (zh) * 2012-07-09 2019-01-18 Vid拓展公司 用于多层视频编码的编解码器架构
MY176984A (en) * 2012-09-26 2020-08-31 Velos Media Int Ltd Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
CN104838654B (zh) * 2012-12-06 2018-11-06 索尼公司 解码装置、解码方法以及程序
MY189418A (en) * 2013-01-04 2022-02-10 Samsung Electronics Co Ltd Method for entropy-encoding slice segment and apparatus therefor, and method for entropy-decoding slice segment and apparatus therefor
US9578328B2 (en) * 2013-07-15 2017-02-21 Qualcomm Incorporated Cross-layer parallel processing and offset delay parameters for video coding
US10645404B2 (en) * 2014-03-24 2020-05-05 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
US10306239B2 (en) * 2014-05-13 2019-05-28 Telefonaktiebolaget Lm Ericsson (Publ) Methods, source device, target device and analyser for managing video coding
US10038915B2 (en) * 2014-05-22 2018-07-31 Qualcomm Incorporated Escape sample coding in palette-based video coding
KR102276854B1 (ko) 2014-07-31 2021-07-13 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9762937B2 (en) * 2014-08-07 2017-09-12 Sonic Ip, Inc. Systems and methods for protecting elementary bitstreams incorporating independently encoded tiles
JP6365102B2 (ja) * 2014-08-14 2018-08-01 富士ゼロックス株式会社 データ処理装置およびプログラム
WO2016041507A1 (en) * 2014-09-17 2016-03-24 Mediatek Inc. Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method
US10212445B2 (en) * 2014-10-09 2019-02-19 Qualcomm Incorporated Intra block copy prediction restrictions for parallel processing
US10574993B2 (en) * 2015-05-29 2020-02-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
US20170105010A1 (en) * 2015-10-09 2017-04-13 Microsoft Technology Licensing, Llc Receiver-side modifications for reduced video latency
CN114125503B (zh) * 2016-05-26 2024-06-28 弗劳恩霍夫应用研究促进协会 针对交互式客户端的全景视频的广播流
US10827186B2 (en) * 2016-08-25 2020-11-03 Intel Corporation Method and system of video coding with context decoding and reconstruction bypass
US10805611B2 (en) * 2016-10-18 2020-10-13 Mediatek Inc. Method and apparatus of constrained sequence header
CN106534137B (zh) * 2016-11-18 2020-01-14 浙江宇视科技有限公司 媒体流传输方法及装置
US10469876B2 (en) * 2016-12-22 2019-11-05 Mediatek Inc. Non-local adaptive loop filter combining multiple denoising technologies and grouping image patches in parallel
KR102553762B1 (ko) * 2017-03-20 2023-07-11 지이 비디오 컴프레션, 엘엘씨 고급 비디오 데이터 스트림 추출 및 다중 해상도 비디오 송신
JP7300985B2 (ja) * 2017-04-17 2023-06-30 ソニーグループ株式会社 情報処理装置および情報処理方法
US10291936B2 (en) * 2017-08-15 2019-05-14 Electronic Arts Inc. Overcoming lost or corrupted slices in video streaming
CN115115720A (zh) * 2018-04-25 2022-09-27 杭州海康威视数字技术股份有限公司 一种图像解码、编码方法、装置及其设备
US11216923B2 (en) 2018-05-23 2022-01-04 Samsung Electronics Co., Ltd. Apparatus and method for successive multi-frame image denoising
WO2020056357A1 (en) * 2018-09-14 2020-03-19 Futurewei Technologies, Inc. Slicing and tiling for sub-image signaling in video coding
US11140403B2 (en) 2018-12-20 2021-10-05 Tencent America LLC Identifying tile from network abstraction unit header
WO2020142483A1 (en) * 2018-12-31 2020-07-09 Futurewei Technologies, Inc. Explicit address signaling in video coding
EP4376414A3 (en) 2018-12-31 2024-07-31 Huawei Technologies Co., Ltd. Tile group signaling in video coding
CN113711600B (zh) * 2019-04-26 2024-06-21 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
US20220256194A1 (en) * 2019-06-20 2022-08-11 Sony Semiconductor Solutions Corporation Image processing apparatus and method
MX2020013702A (es) * 2019-06-24 2021-02-26 Ericsson Telefon Ab L M Informacion de valor de parametro de se?alizacion en un conjunto de parametros para reducir la cantidad de datos contenidos en un flujo de bits de video codificado.
EP3977745A4 (en) * 2019-06-28 2022-08-10 Huawei Technologies Co., Ltd. STILL IMAGE AND VIDEO CODING METHOD AND APPARATUS
WO2020263132A1 (en) * 2019-06-28 2020-12-30 Huawei Technologies Co., Ltd. Method and apparatus for lossless still picture and video coding
US20220259432A1 (en) 2019-07-17 2022-08-18 Shin-Etsu Chemical Co., Ltd. Ultraviolet curable organopolysiloxane composition
CN117714683A (zh) 2019-09-02 2024-03-15 北京字节跳动网络技术有限公司 基于色彩格式的视频区分割
WO2021045765A1 (en) * 2019-09-05 2021-03-11 Huawei Technologies Co., Ltd. Efficient adaptive loop filter parameter signaling in video coding
US11758193B2 (en) 2019-11-04 2023-09-12 Hfi Innovation Inc. Signaling high-level information in video and image coding
WO2021045656A2 (en) * 2020-01-03 2021-03-11 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods of flexible profile configuration
AU2021226551A1 (en) * 2020-02-28 2022-09-29 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods simplifying signalling slice header syntax elements
EP4128786A1 (en) * 2020-04-02 2023-02-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. File format schemes allowing efficient roi, stream access and parameter set handling
CN112822514B (zh) * 2020-12-30 2022-06-28 北京大学 基于依赖关系的视频流分组传输方法、***、终端及介质

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7903742B2 (en) * 2002-07-15 2011-03-08 Thomson Licensing Adaptive weighting of reference pictures in video decoding
EP1753242A2 (en) * 2005-07-18 2007-02-14 Matsushita Electric Industrial Co., Ltd. Switchable mode and prediction information coding
US8634462B2 (en) * 2007-03-13 2014-01-21 Matthias Narroschke Quantization for hybrid video coding
KR101091792B1 (ko) * 2007-04-17 2011-12-08 노키아 코포레이션 피드백 기반 스케일러블 비디오 코딩
US20080317124A1 (en) * 2007-06-25 2008-12-25 Sukhee Cho Multi-view video coding system, decoding system, bitstream extraction system for decoding base view and supporting view random access
CN101389021B (zh) * 2007-09-14 2010-12-22 华为技术有限公司 视频编解码方法及装置
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
EP2215844A2 (en) * 2007-10-15 2010-08-11 Nokia Corporation Motion skip and single-loop encoding for multi-view video content
US8126054B2 (en) * 2008-01-09 2012-02-28 Motorola Mobility, Inc. Method and apparatus for highly scalable intraframe video coding
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
JP5400876B2 (ja) * 2008-06-16 2014-01-29 ドルビー ラボラトリーズ ライセンシング コーポレイション ビデオ符号化のための、スライス依存性に基づくレート制御モデル適合化
CN101939994B (zh) * 2008-12-08 2013-07-17 松下电器产业株式会社 图像解码装置及图像解码方法
US8705879B2 (en) * 2009-04-01 2014-04-22 Microsoft Corporation Image compression acceleration using multiple processors
EP2237557A1 (en) * 2009-04-03 2010-10-06 Panasonic Corporation Coding for filter coefficients
JP4957831B2 (ja) * 2009-08-18 2012-06-20 ソニー株式会社 再生装置および再生方法、並びに記録装置および記録方法
CN102918840B (zh) * 2009-10-01 2016-05-25 Sk电信有限公司 使用分割层进行图像编码/解码的方法和装置
KR101504887B1 (ko) * 2009-10-23 2015-03-24 삼성전자 주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
US9258573B2 (en) * 2010-12-07 2016-02-09 Panasonic Intellectual Property Corporation Of America Pixel adaptive intra smoothing
GB2488159B (en) * 2011-02-18 2017-08-16 Advanced Risc Mach Ltd Parallel video decoding
US9338465B2 (en) * 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
ES2789024T3 (es) * 2012-04-12 2020-10-23 Velos Media Int Ltd Gestión de datos de extensión
HUE051172T2 (hu) * 2012-04-13 2021-03-01 Ge Video Compression Llc Kis késleltetésû képkódolás
US20130343465A1 (en) * 2012-06-26 2013-12-26 Qualcomm Incorporated Header parameter sets for video coding
US20140056356A1 (en) * 2012-08-21 2014-02-27 Motorola Mobility Llc Method and apparatus for efficient signaling of weighted prediction in advanced coding schemes
US20140086328A1 (en) * 2012-09-25 2014-03-27 Qualcomm Incorporated Scalable video coding in hevc
ES2962366T3 (es) * 2012-09-26 2024-03-18 Sun Patent Trust Aparato de codificación de imágenes, aparato de decodificación de imágenes y medio de almacenamiento
MY176984A (en) 2012-09-26 2020-08-31 Velos Media Int Ltd Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
US9491457B2 (en) * 2012-09-28 2016-11-08 Qualcomm Incorporated Signaling of regions of interest and gradual decoding refresh in video coding
US20140092978A1 (en) * 2012-10-01 2014-04-03 Nokia Corporation Method and apparatus for video coding
GB2521606A (en) * 2013-12-20 2015-07-01 Canon Kk Method and apparatus for transition encoding in video coding and decoding
GB2531005A (en) * 2014-10-06 2016-04-13 Canon Kk Improved encoding process using a palette mode
KR102349788B1 (ko) * 2015-01-13 2022-01-11 인텔렉추얼디스커버리 주식회사 영상의 부호화/복호화 방법 및 장치
KR20240042127A (ko) * 2018-09-03 2024-04-01 후아웨이 테크놀러지 컴퍼니 리미티드 인트라 예측을 위한 방법 및 장치
JP7355829B2 (ja) * 2018-09-18 2023-10-03 華為技術有限公司 ビデオエンコーダ、ビデオデコーダ、及び対応する方法

Also Published As

Publication number Publication date
EP3654649A1 (en) 2020-05-20
AU2013322008A2 (en) 2015-03-05
WO2014050038A1 (ja) 2014-04-03
JP6758456B2 (ja) 2020-09-23
RU2018111944A3 (es) 2021-03-31
JP6172535B2 (ja) 2017-08-02
US9503755B2 (en) 2016-11-22
BR112015004140A8 (pt) 2023-01-24
JPWO2014050038A1 (ja) 2016-08-22
PH12015500365A1 (en) 2015-04-20
CN104737541A (zh) 2015-06-24
ES2664361T3 (es) 2018-04-19
EP2903267A4 (en) 2015-09-09
EP3301923A1 (en) 2018-04-04
PL2903267T3 (pl) 2017-09-29
US20230209095A1 (en) 2023-06-29
CA2881221C (en) 2021-04-27
PH12019501972A1 (en) 2021-02-08
EP3654649B1 (en) 2021-05-26
JP2018125881A (ja) 2018-08-09
MX339463B (es) 2016-05-27
EP3122048A1 (en) 2017-01-25
US20180084282A1 (en) 2018-03-22
SG11201500846TA (en) 2015-05-28
JP2019205183A (ja) 2019-11-28
US11943484B2 (en) 2024-03-26
ES2953336T3 (es) 2023-11-10
BR112015004140A2 (pt) 2019-10-29
CN108282655A (zh) 2018-07-13
HK1253286A1 (zh) 2019-06-14
US9014494B2 (en) 2015-04-21
CN104737541B (zh) 2018-04-10
RU2653236C2 (ru) 2018-05-07
EP2903267B1 (en) 2017-04-05
RU2018111944A (ru) 2019-02-28
EP4351137A3 (en) 2024-05-15
EP4221217A1 (en) 2023-08-02
US11632572B2 (en) 2023-04-18
AU2013322008A1 (en) 2015-02-26
RU2756093C2 (ru) 2021-09-28
JP2017192144A (ja) 2017-10-19
MY176984A (en) 2020-08-31
EP3876536B1 (en) 2023-06-14
PL3122048T3 (pl) 2018-07-31
AU2013322008B2 (en) 2016-10-27
JP6317015B2 (ja) 2018-04-25
PT3122048T (pt) 2018-04-20
ES2780006T3 (es) 2020-08-21
US20200195975A1 (en) 2020-06-18
US20170034534A1 (en) 2017-02-02
US20240196020A1 (en) 2024-06-13
EP3876536A1 (en) 2021-09-08
EP2903267A1 (en) 2015-08-05
TW201429253A (zh) 2014-07-16
PL3876536T3 (pl) 2023-11-06
EP3122048B1 (en) 2018-01-17
ES2630359T3 (es) 2017-08-21
US9872043B2 (en) 2018-01-16
DK3122048T3 (en) 2018-03-12
PH12017501838B1 (en) 2018-07-02
US9357234B2 (en) 2016-05-31
RU2015103543A (ru) 2016-11-20
US10616605B2 (en) 2020-04-07
JP6558784B2 (ja) 2019-08-14
KR102169058B1 (ko) 2020-10-23
EP4351137A2 (en) 2024-04-10
KR20200013098A (ko) 2020-02-05
CN108282655B (zh) 2021-09-10
KR102072832B1 (ko) 2020-02-03
PH12017501838A1 (en) 2018-07-02
TWI593274B (zh) 2017-07-21
US20150131738A1 (en) 2015-05-14
CA2881221A1 (en) 2014-04-03
US20140093180A1 (en) 2014-04-03
KR20150063356A (ko) 2015-06-09
EP3301923B1 (en) 2020-01-08
PH12015500365B1 (en) 2015-04-20
US20160241879A1 (en) 2016-08-18
TR201802584T4 (tr) 2018-03-21

Similar Documents

Publication Publication Date Title
AU2013322008B2 (en) Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
AU2018201049C1 (en) Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
AU2013322000B2 (en) Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
AU2013322041B2 (en) Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
AU2012294053B2 (en) Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
AU2017201384B2 (en) Moving picture coding method, moving picture decoding method, moving picture coding apparatus, moving picture decoding apparatus, and moving picture coding and decoding apparatus
AU2012277160B2 (en) Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device
AU2013254214B2 (en) Encoding method, decoding method, encoding apparatus, decoding apparatus, and encoding and decoding apparatus
MX2013014752A (es) Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
MX2013015089A (es) Metodo de codificacion de imagenes en movimiento, metodo de decodificacion de imagenes en movimiento, aparato de codificacion de imagenes en movimiento, aparato de decodificacion de imágenes en movimiento y aparato de codificacion y decodificacion de imagenes en movimiento.
MX2013001774A (es) Metodo de decodificacion de imagen, metodo de codificacion de imagen, aparato de decodificacion de imagen, aparato codificacion de imagen, programa, y circuito integrado.
MX2013013777A (es) Metodo de codificacion de imagenes, aparato de codificacion de imagenes, metodo de decodificacion de imagenes y aparato de decodificacion de imagenes.
MX2013013508A (es) Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
MX2013015086A (es) Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
MX2015000630A (es) Metodo decodificador de imagen, metodo codificador de imagen, aparato decodificador de imagen, aparato codificador de imagen, y aparato codificador y decodificador de imagen.

Legal Events

Date Code Title Description
FG Grant or registration