ES3034887T3 - Image encoding computer program, image decoding computer program - Google Patents
Image encoding computer program, image decoding computer programInfo
- Publication number
- ES3034887T3 ES3034887T3 ES23172593T ES23172593T ES3034887T3 ES 3034887 T3 ES3034887 T3 ES 3034887T3 ES 23172593 T ES23172593 T ES 23172593T ES 23172593 T ES23172593 T ES 23172593T ES 3034887 T3 ES3034887 T3 ES 3034887T3
- Authority
- ES
- Spain
- Prior art keywords
- slice
- cut
- dependent
- image
- decoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/189—Recording image signals; Reproducing recorded image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/436—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
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)
Abstract
Un método de decodificación de imágenes para decodificar un flujo de bits que incluye una señal codificada resultante de la codificación de mosaicos y porciones en los que se divide una imagen, incluyendo el método la decodificación de la señal codificada, en donde cada una de las porciones es un mosaico normal que tiene, en un encabezado, información utilizada para otra porción o un mosaico dependiente que se decodifica utilizando información incluida en un encabezado de porción de otra porción, y cuando el mosaico normal comienza desde una posición distinta a un comienzo de un primer mosaico, un segundo mosaico codificado junto al primer mosaico no comienza desde el mosaico dependiente. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Programa informático de codificación de imágenes, programa informático de decodificación de imágenes
La presente invención se refiere a un procedimiento de codificación de imágenes y a un procedimiento de decodificación de imágenes.
En la actualidad, la mayoría de los algoritmos de codificación de vídeo normalizados se basan en codificación de vídeo híbrida. Los procedimientos de codificación de vídeo híbrida combinan habitualmente varios esquemas de compresión sin y con pérdida diferentes para conseguir la ganancia de compresión deseada. La codificación de vídeo híbrida es también la base para las normas de la ITU-T (normas H.26x, tales como H.261 y H.263), así como las normas de la ISO/IEC (normas MPEG-X, tales como Mp EG-1, MPEG-2 y MPEG-4).
La norma más reciente y avanzada de codificación de vídeo es en la actualidad la norma indicada como codificación de vídeo avanzada (AVC) de H.264/MPEG-4, que es un resultado de los esfuerzos de normalización por el Equipo Mixto de Vídeo (JVT), un equipo mixto de grupos de ITU-T e ISO/IEC MPEG.
Una norma de codificación de vídeo denominada como Codificación de Vídeo de Alta Eficiencia (HEVC) también se examina en la actualidad por el Equipo de Colaboración Mixto sobre Codificación de Vídeo (JCT-VC) con el fin de mejorar la eficiencia con respecto a la codificación de vídeo de alta resolución.
[Referencia no de patente 1]: "Wavefront Parallel Processing for HEVC Encoding and Decoding" por C. Gordony col.,n.° JCTVC-F274-v2, de la Reunión en Torino, julio 2011
[Referencia no de patente 2]: "Tiles" por A. Fuldsethy col.,n.° JCTVC-F355-v1, de la Reunión en Torino, julio 2011
[Referencia no de patente 3]: JCTVC-J1003_d7, "High efficiency video coding (HEVC) text specification draft 8" de julio 2012
LEE T ET AL: "On dependent slices", 10. JCT-VC MEETING; 101. MPEG MEETING; 11 -7-2012 -20-7-2012; STOCKHOLM; se refiere a un dependent_slice_flag, dependent_slice_enabled_flag y una slice_address.
SCHIERL T ET AL: "Dependent Slices",9.JCT-VC MEETING; 100. MPEG MEETING; 27-4-2012 - 7-5-2012; GENEVA; se refiere a una “dirección de corte” y una "bandera de corte dependiente" en la estructura de datos "slice_header{}" y una "dependent_slices_present_flag" en la estructura de datos pic_parameter_set_rbsp{}".
BROSS B ET AL: "High Efficiency Video Coding (HEVC) text specification draft 8", 10. JCT-VC MEETING; 101. MPEG MEETING; 11 -7-2012 - 20-7-2012; STOCKHOLM; se refiere a la semántica general del encabezado de corte y las definiciones de: slice_address dependent_slice_flag y dependent_slice_enabled_flag.
COBAN M ET AL: "AHG4: On tiles and wavefront parallel processing", 10. JCT- VC MEETING; 101. MPEG MEETING; 11-7-2012 - 20-7-2012; STOCKHOLM; se refiere al procesamiento paralelo de baldosas y frentes de onda.
SJOBERG ET AL: "Overview of HEVC high-level syntax and reference picture management", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, 1 de enero de 2012, ofrece una descripción general de la sintaxis de alto nivel HEVC.
GORDON C ET AL: "Wavefront Parallel Processing for HEVC Encoding and Decoding", 6. JCT-VC MEETING; 97.MPEG MEETING; 14-7-201 1 -22-7-2011; TORINO; se refiere al procesamiento paralelo del frente de onda.
Existe un deseo para mejorar, en procedimientos de codificación de imágenes y procedimientos de decodificación de imágenes, la eficiencia en una situación en la que se usan procesamiento de losa paralelo y cortes dependientes.
La presente invención se concibe para proporcionar un programa informático de codificación de imágenes y un programa informático de decodificación de imágenes que hacen posible mejorar la eficiencia cuando se usan tanto el procesamiento de losa paralelo como los cortes dependientes.
Esto se consigue mediante las características de las reivindicaciones independientes.
Estos aspectos generales y específicos pueden implementarse usando un sistema, un procedimiento, un circuito integrado, un programa informático o un medio de grabación legible por ordenador, tal como un CD-ROM, o cualquier combinación de sistemas, procedimientos, circuitos integrados, programas informáticos o medios de grabación legibles por ordenador.
La presente invención proporciona satisfactoriamente un procedimiento de codificación de imágenes y un procedimiento de decodificación de imágenes que hacen posible mejorar la eficiencia cuando se usan tanto el procesamiento de losa paralelo como los cortes dependientes.
La invención se define en las reivindicaciones adjuntas y se describe en la realización 4. La invención reivindicada se refiere a las realizaciones 1 a 4, mientras que las realizaciones 5-9 tienen carácter ilustrativo.rBreve descripción de los dibujos!
[FIG. 1] La Figura 1 es un diagrama de bloques que muestra un aparato de codificación de imágenes de acuerdo con realizaciones.
[FIG. 2] La Figura 2 es un diagrama de bloques que muestra un aparato de decodificación de imágenes de acuerdo con las realizaciones.
[FIG. 3A] La Figura 3A es un diagrama esquemático para ilustrar WPP de acuerdo con las realizaciones.
[FIG. 3B] La Figura 3B es un diagrama esquemático para ilustrar cortes dependientes en WPP de acuerdo con las realizaciones.
[FIG. 4A] La Figura 4A es un diagrama esquemático para ilustrar cortes dependientes cuando no se aplica WPP de acuerdo con las realizaciones.
[FIG. 4B] La Figura 4B es un diagrama esquemático para ilustrar cortes dependientes cuando se aplica WPP de acuerdo con las realizaciones.
[FIG. 5] La Figura 5 es un diagrama que muestra un encabezamiento de corte de un corte por entropía o un corte dependiente de acuerdo con las realizaciones.
[FIG. 6] La Figura 6 es un diagrama que muestra una estructura de corte no permitida ilustrativa cuando se aplica WPP de acuerdo con las realizaciones.
[FIG. 7] La Figura 7 es un diagrama que muestra una estructura de corte permitida ilustrativa cuando se aplica WPP de acuerdo con las realizaciones.
[FIG. 8] La Figura 8 es un diagrama esquemático que muestra un procedimiento de inicialización de CABAC de acuerdo con las realizaciones.
[FIG. 9] La Figura 9 es un diagrama de flujo para un procedimiento de determinación en un procedimiento de inicialización de CABAC para un corte dependiente dependiendo de características de un corte anterior de acuerdo con las realizaciones.
[FIG. 10] La Figura 10 es un diagrama que muestra una estructura de corte ilustrativa de acuerdo con las realizaciones.
[FIG. 11] La Figura 11 es un diagrama que muestra una estructura de corte ilustrativa de acuerdo con las realizaciones.
[FIG. 12] La Figura 12 es un diagrama que muestra una sintaxis ilustrativa de un encabezamiento de corte de acuerdo con la realización 1.
[FIG. 13] La Figura 13 es un diagrama de flujo para un procedimiento de determinación en un procedimiento de inicialización de CABAC para un corte dependiente de acuerdo con la realización 1.
[FIG. 14] La Figura 14 es un diagrama que muestra una instantánea ilustrativa particionada en cortes de acuerdo con la realización 2.
[FIG. 15] La Figura 15 es un diagrama de flujo para un procedimiento de determinación en un procedimiento de inicialización de CABAC de acuerdo con la realización 2.
[FIG. 16] La Figura 16 es un diagrama que muestra una instantánea ilustrativa particionada en cortes de acuerdo con la realización 2.
[FIG. 17] La Figura 17 es un diagrama que muestra una instantánea ilustrativa particionada en cortes de acuerdo con la realización 2.
[FIG. 18] La Figura 18 es un diagrama que muestra una instantánea ilustrativa particionada en cortes de acuerdo con la realización 3.
[FIG. 19] La Figura 19 es un diagrama que muestra un encabezamiento de corte de acuerdo con la realización 4.
[FIG. 20] La Figura 20 es un diagrama que muestra una instantánea ilustrativa particionada en losas de acuerdo con la realización 4.
[FIG. 21A] La Figura 21A es un diagrama que muestra un orden de exploración de acuerdo con la realización 4.
[FIG. 21B] La Figura 21B es un diagrama que muestra un orden de exploración de acuerdo con la realización 4.
[FIG. 22A] La Figura 22A es un diagrama que muestra una relación entre una losa y un corte de acuerdo con la realización 4.
[FIG. 22B] La Figura 22B es un diagrama que muestra una relación entre una losa y un corte de acuerdo con la realización 4.
[FIG. 22C] La Figura 22C es un diagrama que muestra una relación entre una losa y un corte de acuerdo con la realización 4.
[FIG. 23] La Figura 23 es un ejemplo de particionamiento de una instantánea en losas y cortes de acuerdo con la realización 4.
[FIG. 24] La Figura 24 es un diagrama que muestra un orden de decodificación para una instantánea particionada en losas de acuerdo con la realización 4.
[FIG. 25A] La Figura 25A es un diagrama que muestra una estructura de corte no permitida ilustrativa de acuerdo con la realización 4.
[FIG. 25B] La Figura 25B es un diagrama que muestra una estructura de corte permitida ilustrativa de acuerdo con la realización 4.
[FIG. 25C] La Figura 25C es un diagrama que muestra una estructura de corte permitida ilustrativa de acuerdo con la realización 4.
[FIG. 26A] La Figura 26A es un diagrama que muestra una estructura de corte no permitida ilustrativa de acuerdo con la realización 4.
[FIG. 26B] La Figura 26B es un diagrama que muestra una estructura de corte permitida ilustrativa de acuerdo con la realización 4.
[FIG. 27A] La Figura 27A es un diagrama que muestra una estructura de corte no permitida ilustrativa de acuerdo con la realización 4.
[FIG. 27B] La Figura 27B es un diagrama que muestra una estructura de corte permitida ilustrativa de acuerdo con la realización 4.
[FIG. 28] La Figura 28 muestra una configuración global de un sistema de suministro de contenido para implementar servicios de distribución de contenido.
[FIG. 29] La Figura 29 muestra una configuración global de un sistema de difusión digital.
[FIG. 30] La Figura 30 muestra un diagrama de bloques que ilustra un ejemplo de una configuración de una televisión.
[FIG. 31] La Figura 31 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.
[FIG. 32] La Figura 32 muestra un ejemplo de una configuración de un medio de grabación que es un disco óptico.
[FIG. 33A] La Figura 33A muestra un ejemplo de un teléfono celular.
[FIG. 33B] La Figura 33B muestra un diagrama de bloques que ilustra un ejemplo de una configuración de un teléfono celular.
[FIG. 34] La Figura 34 ilustra una estructura de datos multiplexados.
[FIG. 35] La Figura 35 muestra esquemáticamente cómo se multiplexa cada flujo en datos multiplexados.
[FIG. 36] La Figura 36 muestra cómo se almacena un flujo de vídeo en un flujo de paquetes de PES en más detalle.
[FIG. 37] La Figura 37 muestra una estructura de paquetes de TS y paquetes de origen en los datos multiplexados.
[FIG. 38] La Figura 38 ilustra una estructura de datos de una PMT.
[FIG. 39] La Figura 39 muestra una estructura interna de información de datos multiplexados.
[FIG. 40] La Figura 40 muestra una estructura interna de información de atributo de flujo.
[FIG. 41] La Figura 41 muestra etapas para identificar datos de vídeo.
[FIG. 42] La Figura 42 muestra un ejemplo de una configuración de un circuito integrado para implementar el procedimiento de codificación de instantáneas en movimiento y el procedimiento de decodificación de instantáneas en movimiento de acuerdo con cada una de las realizaciones.
[FIG. 43] La Figura 43 muestra una configuración para conmutar entre frecuencias de accionamiento. [FIG. 44] La Figura 44 muestra etapas para identificar datos de vídeo y conmutación entre frecuencias de accionamiento.
[FIG. 45] La Figura 45 muestra un ejemplo de una tabla de consulta en la que las normas de datos de vídeo están asociadas con frecuencias de accionamiento.
[FIG. 46A] La Figura 46A es un diagrama que ilustra un ejemplo de una configuración para compartir un módulo de una unidad de procesamiento de señales.
[FIG. 46B] La Figura 46B es un diagrama que muestra otro ejemplo de una configuración para compartir un módulo de la unidad de procesamiento de señales.
Descripción de las realizaciones!
(Conocimiento subyacente que forma la base de la presente invención)
En relación con el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes desvelado en la sección de antecedentes de la técnica, los inventores han encontrado los siguientes problemas. Primero, se describen un aparato de codificación de imágenes y un aparato de decodificación de imágenes en HEVC.
Una señal de vídeo introducida en un aparato de codificación de imágenes incluye imágenes, cada una de las cuales se denomina como un fotograma (instantánea). Cada fotograma incluye píxeles dispuestos en una matriz bidimensional. En todas las normas anteriormente mencionadas a base de la codificación de vídeo híbrida, cada fotograma individual se particiona en bloques, cada uno de los cuales incluye píxeles. El tamaño de los bloques puede variar, por ejemplo, de acuerdo con el contenido de una imagen. Puede usarse un procedimiento de codificación diferente sobre una base por bloque. Por ejemplo, el tamaño más grande de los bloques es 64 x 64 píxeles en HEVC. Este tamaño más grande se denomina como una unidad de codificación más grande (LCU). La LCU puede dividirse recursivamente en cuatro unidades de codificación (CU).
En H.264/MPEG-4 AVC, la codificación se realiza sobre una base de por macrobloque (normalmente bloque de 16 x 16 píxeles). Existe un caso en el que el macrobloque se divide en subbloques.
Habitualmente, una etapa de codificación en codificación de vídeo híbrida incluye predicción espacial y/o temporal. En breve, cada uno de los bloques actuales a codificar se predice usando bloques espacial o temporalmente adyacentes al bloque actual, es decir, fotogramas de vídeo codificados. A continuación, se calcula un bloque residual que es una diferencia entre el bloque actual y el resultado de predicción. A continuación, el bloque residual se transforma desde el dominio (de píxel) espacial al dominio de frecuencia. La transformación tiene por objetivo reducir la correlación de un bloque de entrada.
A continuación, se cuantifica un coeficiente de transformada que resulta de la transformación. Esta cuantificación es compresión con pérdida. Se realiza compresión sin pérdida en el coeficiente de cuantificación así obtenido, usando codificación por entropía. Además, información secundaria necesaria para reconstruir la señal de vídeo codificada se codifica y emite con la señal de vídeo codificada. Esta información es, por ejemplo, información acerca de predicción espacial, predicción temporal y/o cuantificación.
La Figura 1 es un diagrama de bloques que muestra un aparato 100 de codificación de imágenes ilustrativo que se ajusta a H.264/MPEG-4 AVC y/o HEVC.
Un restador 105 calcula una señal 106 residual (bloque residual) que es una diferencia entre un bloque actual a codificar de una señal 101 de imagen de entrada y una correspondiente señal 181 de predicción (bloque de predicción). La señal 181 de predicción se genera mediante predicción temporal o predicción espacial por una unidad 180 de predicción. Un tipo de la predicción puede cambiarse sobre una base por fotograma o por bloque. Un bloque y/o un fotograma predichos usando la predicción temporal se denomina como que está inter codificado y un bloque y/o un fotograma predichos usando la predicción espacial se denomina como que está intra codificado.
Se deriva una señal de predicción usada para la predicción temporal usando una imagen codificada y decodificada almacenada en una memoria. Se deriva una señal de predicción usada para la predicción espacial usando valores de píxel de límite de bloques codificados y decodificados adyacentes almacenados en la memoria. Además, el número de direcciones de intra predicción se determina de acuerdo con un tamaño de unidades de codificación.
La señal 106 residual también se denomina como un error de predicción o una predicción residual. Una unidad 110 de transformación transforma la señal 106 residual para generar un coeficiente 111 de transformación. Una unidad 120 de cuantificación cuantifica el coeficiente 111 de transformación para generar un coeficiente 121 de cuantificación. Una unidad 190 de codificación por entropía realiza codificación por entropía en el coeficiente 121 de cuantificación, con el fin de reducción adicional en una cantidad de datos a almacenar y transmisión sin pérdida. Por ejemplo, la codificación por entropía es codificación de longitud variable. Además, se determina una longitud de una palabra de código a base de una probabilidad de ocurrencia de un código.
Se genera una señal 191 codificada (flujo de bits codificado) a través del procesamiento anterior.
El aparato 100 de codificación de imágenes incluye una unidad de decodificación para obtener una señal de imagen decodificada (señal de imagen reconstruida). Específicamente, una unidad 130 de transformación inversa realiza cuantificación inversa y transformación inversa en el coeficiente 121 de cuantificación para generar una señal 131 residual. Esta señal 131 residual es estrictamente diferente de la señal 106 residual original debido a un error de cuantificación también se denomina como ruidos de cuantificación.
A continuación, un sumador 140 añade la señal 131 residual y la señal 181 de predicción para generar una señal 141 de imagen decodificada. Como se ha indicado anteriormente, para mantener la compatibilidad entre el aparato de codificación de imágenes y el aparato de decodificación de imágenes, cada uno del aparato de codificación de imágenes y del aparato de decodificación de imágenes genera la señal 181 de predicción usando la señal de imagen codificada y decodificada.
Con la cuantificación, el ruido de cuantificación se superpone en la señal 141 de imagen decodificada. El ruido superpuesto a menudo difiere para cada uno de los bloques debido a la codificación realizada sobre una base por bloque. Con esto, cuando se realiza una cuantificación especialmente fuerte, los límites de bloque de la señal de imagen decodificada se vuelven importantes. Tal ruido de bloqueo provoca que la calidad de imagen aparezca degradada en un reconocimiento visual humano. Para reducir el ruido de bloqueo, un filtro 150 de desbloqueo realiza un procesamiento de filtro de desbloqueo en la señal 141 de imagen decodificada.
Por ejemplo, en un procesamiento de filtro de desbloqueo en H.264/MPEG-4 AVC, se selecciona un procesamiento de filtro adecuado para cada una de las regiones para cada región. Por ejemplo, cuando el ruido de bloqueo es grande, se usa un filtro de paso bajo (de banda estrecha) fuerte y, cuando el ruido de bloqueo es pequeño, se usa un filtro de paso bajo (de banda ancha) débil. La intensidad del filtro de paso bajo se determina de acuerdo con la señal 181 de predicción y la señal 131 residual. El procesamiento de filtro de desbloqueo suaviza los bordes de los bloques. Con esto, se mejora la calidad de imagen subjetiva de la señal de imagen decodificada. Una imagen en la que se ha realizado un procesamiento de filtro se usa para predicción de compensación de movimiento de la siguiente imagen. En consecuencia, este procesamiento de filtro reduce un error de predicción, aumentando de este modo la codificación de forma eficiente.
Un filtro 160 de bucle adaptativo realiza procesamiento de compensación adaptativa de muestra y/o procesamiento de filtro de bucle adaptativo en una señal 151 de imagen decodificada después del procesamiento de filtro de desbloqueo, para generar una señal 161 de imagen decodificada. Como anteriormente, el procesamiento de filtro de desbloqueo mejora la calidad de imagen subjetiva. En contraposición, el procesamiento de compensación adaptativa de muestra (SAO) y el procesamiento de filtro de bucle adaptativo (ALF) tienen por objetivo aumentar la fiabilidad sobre una base por píxel (calidad objetiva).
La SAO es un procesamiento para añadir un valor de compensación a un píxel de acuerdo con píxeles adyacentes. El ALF se usa para compensar la distorsión de imagen provocada por la compresión. Por ejemplo, el ALF es un filtro Wiener que tiene un coeficiente de filtro determinado de una manera que se minimiza un error cuadrático medio (MSE) entre la señal 151 de imagen decodificada y la señal 101 de imagen de entrada. Por ejemplo, un coeficiente del ALF se calcula y transmite sobre una base por fotograma. Además, el ALF puede aplicarse a todo un fotograma (imagen) o una región local (bloque). Además, la información secundaria que indica una región en la que tiene que realizarse un procesamiento de filtro puede transmitirse sobre una base por bloque, base por fotograma o base por árbol cuádruple.
Para decodificar un bloque inter codificado, es necesario almacenar, en una memoria 170 intermedia de fotograma de referencia, parte de una imagen codificada y decodificada. La memoria 170 intermedia de fotograma de referencia mantiene la señal 161 de imagen decodificada como una señal 171 de imagen decodificada. La unidad 180 de predicción realiza inter predicción usando predicción de compensación de movimiento. Específicamente, un estimador de movimiento busca primero bloques incluidos en un fotograma de vídeo codificado y decodificado para un bloque más similar a un bloque actual. Este bloque similar se usa como la señal 181 de predicción. Un desplazamiento (movimiento) relativo entre el bloque actual y el bloque similar se transmite como datos de movimiento al aparato de decodificación de imágenes. Estos datos de movimiento son, por ejemplo, vectores de movimiento tridimensionales incluidos en información secundaria proporcionada con datos de vídeo codificados. En este punto, la expresión "tridimensional" incluye dos dimensiones espaciales y una dimensión temporal.
Se ha de observar que para optimizar la precisión de predicción, puede usarse un vector de movimiento que tiene una resolución de subpíxel espacial, tal como una resolución de medio píxel y una resolución de un cuarto de píxel. El vector de movimiento que tiene la resolución de subpíxel espacial indica una ubicación espacial en un fotograma decodificado en el que no existe ningún valor de píxel, es decir, una ubicación de un subpíxel. Por lo tanto, es necesario interpolar espacialmente un valor de píxel para realizar una predicción de compensación de movimiento. Esta interpolación se realiza por un filtro de interpolación (incluido en la unidad 180 de predicción mostrada en la Figura 1), por ejemplo.
Tanto en el modo de intra codificación como en el modo de inter codificación, el coeficiente 121 de cuantificación se genera transformando y cuantificando la señal 106 residual que es la diferencia entre la señal 101 de imagen de entrada y la señal 181 de predicción. En general, la unidad 110 de transformación usa, para esta transformación, transformada de coseno discreta bidimensional (DCT) o transformación ortogonal que es una versión de número entero de la DCT. Esto reduce de forma eficiente la correlación de vídeo natural. Además, un componente de baja frecuencia es generalmente más importante para la calidad de imagen que un componente de alta frecuencia y, por lo tanto, se usan más bits para el componente de baja frecuencia que para el componente de alta frecuencia.
La unidad 190 de codificación por entropía transforma una matriz bidimensional del coeficiente 121 de cuantificación en una matriz unidimensional. Habitualmente, se usa una así denominada exploración en zigzag para esta transformación. En la exploración en zigzag, se explora una matriz bidimensional en un orden predeterminado a partir de un coeficiente de CC en la esquina superior izquierda de la matriz bidimensional a un coeficiente de CA en la esquina inferior derecha de la misma. La energía normalmente se concentra en coeficientes en la parte superior izquierda de la matriz bidimensional que corresponden a una frecuencia baja y, por lo tanto, cuando se realiza la exploración en zigzag, estos últimos valores tienden a ser cero. Con esto, es posible conseguir una codificación eficiente usando codificación por longitud de serie como parte de o preprocesamiento de la codificación por entropía.
En H.264/MPEG-4 AVC y HEVC, se usan diversos tipos de la codificación por entropía. Aunque la codificación de longitud fija se realiza en algunos elementos de sintaxis, se realiza la codificación de longitud variable en la mayoría de los elementos de sintaxis. En particular, la codificación de longitud variable adaptable al contexto se realiza en una predicción residual, y se realizan diversos otros tipos de codificación de números enteros en otros elementos de sintaxis. Además, existe también un caso en el que se usa codificación aritmética binaria adaptativa según contexto (CABAC).
La codificación de longitud variable habilita compresión sin pérdida de un flujo de bits codificado. Sin embargo, las palabras de código son de longitud variable y, por lo tanto, es necesario decodificar de forma continua las palabras de código. En otras palabras, antes de que se codifique o decodifique una palabra de código anterior, una siguiente palabra de código no puede codificarse o decodificarse sin reiniciar (inicialización) la codificación por entropía o sin indicar de forma separada una ubicación de la primera palabra de código (punto de entrada) cuando se realiza la decodificación.
Una secuencia de bits se codifica en una palabra de código mediante codificación aritmética a base de un modelo de probabilidad predeterminado. El modelo de probabilidad predeterminado se determina a base de contenidos de una secuencia de vídeo en el caso de CABAC. Por lo tanto, la codificación aritmética y CABAC se realizan de forma más eficiente a medida que es mayor una longitud de un flujo de bits a codificar. Por decirlo de otra forma, la CABAC aplicada a la secuencia de bits es más eficiente en un bloque más grande. La CABAC se reinicia en el comienzo de cada secuencia. Dicho de forma diferente, el modelo de probabilidad se inicializa en el comienzo de cada secuencia de vídeo con un valor determinado o un valor predeterminado.
H.264/MPEG-4, H.264/MPEG-4 AVC y HEVC incluyen dos capas funcionales, la capa de codificación de vídeo (VCL) y la capa de abstracción de red (NAL). La capa de codificación de vídeo proporciona una función de codificación. La NAL encapsula elementos de información en unidades estándar denominadas como unidades de NAL, dependiendo de un uso, tal como transmisión a través de un canal o almacenamiento en un dispositivo de almacenamiento. Los elementos de información son, por ejemplo, señales de error de predicción codificadas o información necesaria para decodificar una señal de vídeo. La información necesaria para decodificar una señal de vídeo es un tipo de predicción, un parámetro de cuantificación, un vector de movimiento y así sucesivamente.
Cada una de las unidades de NAL puede clasificarse en: una unidad de NAL de VCL que incluye datos de vídeo comprimidos e información relacionada; una unidad no VCL que encapsula datos adicionales, tales como un conjunto de parámetros relacionado con toda una secuencia de vídeo; e información de perfeccionamiento complementaria (SEI) para proporcionar información adicional utilizable para incrementar la precisión de decodificación.
Por ejemplo, la unidad no VCL incluye un conjunto de parámetros. El conjunto de parámetros se refiere a un conjunto de parámetros relacionados con la codificación y decodificación de una cierta secuencia de vídeo. Ejemplos del conjunto de parámetros incluyen un conjunto de parámetros de secuencia (SPS) que incluyen parámetros relacionados con la codificación y decodificación de toda una secuencia de vídeo (secuencia de instantáneas).
El conjunto de parámetros de secuencia tiene una estructura de sintaxis que incluye elementos de sintaxis. Un conjunto de parámetros de instantánea (PPS) al que hacer referencia se especifica por pic_parameter_set_id, un elemento de sintaxis incluido en cada encabezamiento de corte. Además, un s Ps al que hacer referencia se especifica por seq_parameter_set_id, un elemento de sintaxis incluido en el PPS. Como anteriormente, los elementos de sintaxis incluidos en el SPS se aplican a toda la secuencia de vídeo codificada.
El PPS es un conjunto de parámetros que define parámetros aplicados a la codificación y decodificación de una instantánea incluida en una secuencia de vídeo. El PPS tiene una estructura de sintaxis que incluye elementos de sintaxis. El conjunto de parámetros de instantánea (PPS) al que hacer referencia se especifica por pic_parameter_set_id, un elemento de sintaxis incluido en cada encabezamiento de corte. Como anteriormente, los elementos de sintaxis incluidos en el SPS se aplican a toda una instantánea codificada.
Por lo tanto, es más fácil mantener el seguimiento del SPS que del PPS. Esto es porque el PPS cambia para cada instantánea, mientras que el SPS permanece constante para toda la secuencia de vídeo que puede durar durante varios minutos o varias horas.
Un VPS son parámetros en la capa más alta e incluye información relacionada con secuencias de vídeo. La información incluida en el VPS es una tasa de bits, una estructura de temporaljayering de las secuencias de vídeo y así sucesivamente. Además, el VPS incluye información acerca de una dependencia entre capas (dependencia entre diferentes secuencias de vídeo). Como resultado, el VPS puede considerarse como información acerca de las secuencias de vídeo, y puede obtenerse un esquema de cada una de las secuencias de vídeo a base del VPS.
La Figura 2 es un diagrama de bloques que muestra un aparato 200 de decodificación de imágenes ilustrativo que se ajusta a la norma de codificación de vídeo H.264/MPEG-4 AVC o HEVC.
Se transmite una señal 201 codificada (flujo de bits) introducida al aparato 200 de decodificación de imágenes a una unidad 290 de decodificación por entropía. La unidad 290 de decodificación por entropía decodifica la señal 201 codificada para obtener un coeficiente de cuantificación y elementos de información necesarios para decodificar, tal como datos de movimiento y un modo de predicción. Además, la unidad 290 de decodificación por entropía explora inversamente el coeficiente de cuantificación obtenido con el fin de obtener una matriz bidimensional, para generar un coeficiente 291 de cuantificación, y emite el coeficiente 291 de cuantificación a una unidad 230 de transformación inversa.
La unidad 230 de transformación inversa cuantifica inversamente y transforma el coeficiente 291 de cuantificación para generar una señal 231 residual. La señal 231 residual corresponde a una diferencia obtenida restando una señal de predicción de una señal de imagen de entrada que no tiene ruido de cuantificación y error y se introduce a un aparato de codificación de imágenes.
Una unidad 280 de predicción genera una señal 281 de predicción usando predicción temporal o predicción espacial. Normalmente, los elementos de información decodificados incluyen adicionalmente información, tal como un tipo de predicción en el caso de la intra predicción, o información necesaria para predicción, tal como datos de movimiento en el caso de la predicción de compensación de movimiento.
Un sumador 240 añade la señal 231 residual en un dominio espacial y la señal 281 de predicción generada por la unidad 280 de predicción, para generar una señal 241 de imagen decodificada. Un filtro 250 de desbloqueo realiza procesamiento de filtro de desbloqueo en la señal 241 de imagen decodificada para generar una señal 251 de imagen decodificada. Un filtro 260 de bucle adaptativo realiza procesamiento de compensación adaptativa de muestra y procesamiento de filtro de bucle adaptativo en la señal 251 de imagen decodificada, para generar una señal 261 de imagen decodificada. La señal 261 de imagen decodificada se emite como una imagen de visualización y se almacena como una señal 271 de imagen decodificada en una memoria 270 intermedia de fotograma de referencia. La señal 271 de imagen decodificada se usa para un bloque posterior o predicción temporal o espacial de una imagen.
En comparación con H.264/MPEG-4 AVC, HEVC tiene una función para ayudar al procesamiento paralelo avanzado de codificación y decodificación. Como con H.264/MPEG-4 AVC, HEVC habilita el particionamiento de un fotograma en cortes. En este punto, cada uno de los cortes incluye LCU consecutivas en un orden de exploración. En H.264/MPEG-4 AVC, cada corte es decodificable y no se realiza predicción espacial entre los cortes. Por lo tanto, es posible realizar el procesamiento paralelo sobre una base por corte.
Sin embargo, el corte tiene un encabezamiento considerablemente grande y no existe ninguna dependencia entre los cortes, disminuyendo de este modo la eficiencia de compresión. Además, cuando la CABAC se realiza en un bloque de datos pequeño, se disminuye la eficiencia de la CABAC.
En respuesta a esto, se ha propuesto el procesamiento paralelo de frente de onda (WPP) para permitir un procesamiento paralelo más eficiente. En el WPP, un modelo de probabilidad después de que se procesa la segunda LCU en una fila anterior se usa como un modelo de probabilidad de CABAC usado para restablecer la primera LCU (LCU líder) en cada una de las filas de LCU (a continuación en el presente documento, simplemente también denominadas "filas") de una instantánea. Esto mantiene una dependencia entre bloques. Por lo tanto, es posible decodificar la filas de LCU en paralelo. Además, el procesamiento de cada fila se retarda por dos LCU en relación con la fila anterior.
La información que indica un punto de entrada, una posición en la que se inicia la decodificación de una fila de LCU, se señaliza en un encabezamiento de corte. Se ha de observar que la Referencia no de Patente (NPL) 1 describe los detalles del WPP.
Un procedimiento de uso de una losa está disponible como otro enfoque para mejorar la paralelización. Un fotograma (instantánea) se particiona en losas. Cada una de las losas es rectangular e incluye LCU. Los límites entre las losas se establecen para particionar la instantánea en matrices. Además, las losas se procesan en un orden de exploración de rasterización.
Todas las dependencias se pierden en el límite de cada losa. La codificación por entropía, tal como la CABAC, se restablece en el comienzo de la losa. Se ha de observar que únicamente el procesamiento de filtro de desbloqueo y el procesamiento de compensación adaptativa de muestra se aplican sobre los límites entre las losas. Por lo tanto, es posible codificar o decodificar las losas en paralelo. Se ha de observar que la Referencia no de patente (NPL) 2 y la Referencia no de patente (NPL) 3 describen los detalles de las losas.
Además, los conceptos de corte dependiente y corte por entropía se han propuesto para hacer el concepto de corte adecuado más para paralelización que para resiliencia de error, el fin original de los cortes en H.264/MPEG-4 AVC. En otras palabras, en HEVC se usan los siguientes tres tipos de cortes: un corte normal, un corte dependiente y un corte por entropía.
El corte normal es un corte ya conocido a partir de H.264/MPEG-4 AVC. La predicción espacial no puede realizarse entre cortes normales. En breve, la predicción no puede realizarse sobre límites entre cortes. Por decirlo de otra forma, el corte normal se codifica sin hacer referencia a otro corte. La CABAC se reinicia en el comienzo de cada corte para permitir una decodificación separada del corte.
El corte normal se usa para el comienzo de un fotograma. Dicho de forma diferente, cada fotograma debe iniciarse desde el corte normal. El corte normal tiene un encabezamiento que incluye parámetros necesarios para decodificar datos de corte.
El corte por entropía es un corte que habilita la predicción espacial entre un corte padre y el corte por entropía, por ejemplo. En este punto, el corte padre es un corte normal que precede al corte por entropía. El corte padre y el corte por entropía se analizan independientemente.
Los datos de corte se analizan independientemente del corte padre y del corte por entropía excepto los elementos de sintaxis de un encabezamiento de corte. En otras palabras, la decodificación de CABAC del corte por entropía requiere elementos de sintaxis incluidos en un encabezamiento de corte del corte padre. Por ejemplo, los elementos de sintaxis incluyen información de conmutación que incluye si los datos de corte incluyen parámetros de filtrado. Cuando los datos de corte incluyen los parámetros de filtrado, una unidad de decodificación de CABAC extrae la información de conmutación. De otra manera, la unidad de decodificación de CABAC no supone el filtrado de datos. Por decirlo de otra forma, después de analizar un encabezamiento de corte del corte normal, la unidad de decodificación de CABAC es capaz de procesar el corte padre y el corte por entropía en paralelo.
Sin embargo, el corte padre puede ser, por ejemplo, el corte normal y se requiere para reconstruir valores de píxel del corte por entropía. Además, la CABAC se reinicia en el comienzo del corte para permitir el análisis independiente del corte por entropía.
Puede usarse un encabezamiento de corte más corto que el encabezamiento de corte del corte normal para el corte por entropía. El encabezamiento de corte incluye un subconjunto de parámetros de codificación con respecto a información transmitida dentro del encabezamiento de corte del corte normal. La información no incluida en el encabezamiento de corte del corte por entropía se copia del encabezamiento de corte del corte padre.
El corte dependiente es similar a un corte por entropía para el que no se reinicia la CABAC. El reinicio de la CABAC incluye un procedimiento de inicialización en el que se inicializa una tabla de contexto (tabla de probabilidad) a un valor por defecto y un procedimiento de terminación (procedimiento de terminar) en la codificación aritmética o decodificación aritmética.
El encabezamiento de corte del corte padre se usa para analizar y/o decodificar el corte dependiente. Dado que el corte dependiente no puede analizarse sin el corte padre, cuando no se obtiene el corte padre, el corte dependiente no puede decodificarse. El corte padre normalmente es un corte que precede al corte dependiente en orden de codificación y que incluye un encabezamiento de corte completo. Lo mismo es aplicable a un corte padre del corte por entropía.
En general, el corte por entropía puede considerarse como que depende de parámetros de encabezamiento de otro corte y, por lo tanto, la presente invención puede aplicarse tanto al corte dependiente como al corte por entropía.
Como se describe anteriormente, el corte dependiente y el corte por entropía usan el encabezamiento de corte (la información no incluida en el encabezamiento de corte del corte dependiente) del corte anterior en orden de codificación de los cortes. Esta regla se aplica de forma recursiva. Se reconoce que se puede hacer referencia a un corte padre del que depende un corte dependiente objetivo. La referencia incluye el uso de la predicción espacial entre cortes, un estado de CABAC común y así sucesivamente. El corte dependiente usa una tabla de contexto de CABAC generada al final del corte anterior. De esta manera, el corte dependiente usa continuamente la tabla generada sin inicializar una tabla de CABAC a un valor por defecto. La NPL 3 describe el corte por entropía y el corte dependiente (véase "dependent_slice_flag" en la página 73, por ejemplo).
En el caso de usar el WPP, cuando un corte dependiente se inicia en el comienzo de una fila de LCU y un corte que incluye una LCU ubicada en la parte superior derecha del comienzo de la fila de LCU se indica como que es referible, el corte dependiente usa una tabla de contexto de CABAC de la LCU.
HEVC presenta varios perfiles. Un perfil incluye ajustes de un aparato de codificación de imágenes y un aparato de decodificación de imágenes adecuados para una aplicación particular. Por ejemplo, un "perfil principal" incluye únicamente cortes normales y cortes dependientes, pero no cortes por entropía.
Como se ha indicado anteriormente, un corte codificado se encapsula en una unidad de NAL, se encapsula adicionalmente en, por ejemplo, un protocolo de tiempo real (RTP) y se encapsula finalmente en un paquete de protocolo de internet (IP). Esta pila de protocolos u otra pila de protocolos permite la transmisión de vídeo codificado en la Internet o una red orientada a paquetes, tal como una red propietaria.
Habitualmente, una red incluye al menos un encaminador, y el encaminador incluye hardware especializado que opera a velocidad ultra alta. El encaminador recibe paquetes de IP, analiza sus encabezamientos y reenvía apropiadamente los paquetes de IP a sus respectivos destinos. El encaminador se requiere para procesar comunicación de muchas fuentes y, por lo tanto, los paquetes que controlan lógica deben ser tan simples como sea posible. El encaminador necesita al menos comprobar los campos de dirección de destino incluidos en los encabezamientos de IP, para determinar trayectorias a través de las que se reenvían los paquetes de IP. Un encaminador (con reconocimiento de medios) inteligente comprueba adicionalmente campos especializados en encabezamientos de protocolo de red, tales como los encabezamientos de IP, encabezamientos de RTP y encabezamientos de NALU, para proporcionar adicionalmente soporte para la calidad de servicio (QoS).
Como se desprende de la anterior descripción de la codificación de vídeo, los diferentes tipos de cortes definidos para el procesamiento paralelo, tales como el corte dependiente y el corte por entropía, difieren en significancia para la degradación de imagen cuando se pierden datos. El corte dependiente no puede analizarse y decodificarse sin el corte padre. Esto es porque una unidad de codificación por entropía o una unidad de decodificación por entropía no puede reiniciarse al comienzo del corte dependiente. Por lo tanto, puede decirse que el corte padre es más importante en la reconstrucción de una imagen o vídeo que el corte padre.
En HEVC, el corte dependiente y el corte por entropía tienen una dependencia entre cortes (dependencia dentro de un fotograma) como un aspecto adicional de la dependencia. Esta dependencia no es la única dependencia dentro del fotograma.
Dado que el procesamiento paralelo de cortes se realiza para cada losa, contextos de una unidad de codificación aritmética y una unidad de decodificación aritmética se determinan mediante ajustes por defecto o cortes codificados o decodificados. Sin embargo, una dependencia de un encabezamiento y una dependencia de inicialización de codificación aritmética son diferentes entre sí y, por lo tanto, existe una posibilidad de retardo o complejidad adicional en contradicción a los fines del procesamiento paralelo y un mecanismo de corte dependiente.
El corte dependiente puede usarse en conjunto con una herramienta de procesamiento paralelo, tal como el WPP, y losas. Además, usando el corte dependiente puede generarse un frente de onda (subflujo) que hace posible reducir el retardo de transmisión sin provocar pérdida de codificación.
La CABAC no se reinicia para el corte dependiente y, por lo tanto, el corte dependiente puede usarse como un punto de entrada de un subflujo de CABAC. Además, para indicar un punto de entrada para un análisis independiente, la información que indica el punto de entrada puede señalizarse en un flujo de bits. En particular, cuando dos o más subflujos de CABAC se encapsulan en un corte normal o un corte dependiente, un punto de entrada se señaliza explícitamente usando el número de bytes para cada subflujo. En este punto, el subflujo indica una porción de un flujo que se puede analizar de forma separada a base del punto de entrada. Además, cada corte dependiente requiere un encabezamiento de una unidad de NAL y, por lo tanto, el corte dependiente puede usarse como un "marcador" de un punto de entrada. En breve, puede señalizarse el punto de entrada que corresponde a un marcador de este tipo.
Es posible usar simultáneamente un procedimiento para señalizar explícitamente un punto de entrada y un procedimiento para hacer un punto de entrada a través de un corte dependiente. En este punto, existe una necesidad de identificar un punto de entrada de cada unidad de NAL (comienzo de cada encabezamiento de NAL). Se ha de observar que puede usarse cualquier procedimiento para el procedimiento de identificación. Por ejemplo, pueden usarse los siguientes dos procedimientos.
El primer procedimiento es insertar un código de inicio de 3 bytes en el comienzo de cada encabezamiento de NAL, por ejemplo. El segundo procedimiento es empaquetar cada unidad de NAL en un paquete diferente. Además, un tamaño de un encabezamiento de corte puede reducirse debido a la dependencia del corte.
Estos procedimientos permiten el análisis de CABAC paralelo de un corte por entropía. Esto es porque la CABAC siempre se reinicia en el comienzo del corte por entropía. En el procesamiento paralelo de la CABAC, puede superarse un cuello de botella por el análisis de CABAC paralelo después del procesamiento de reconstrucción de píxeles. Específicamente, con una herramienta de paralelización de WPP, la decodificación de cada fila de lCu puede conseguirse por un núcleo de procesamiento. Se ha de observar que pueden asignarse diferentes filas de LCU a respectivos núcleos. Por ejemplo, pueden asignarse dos filas a un núcleo o puede asignarse una fila a dos núcleos.
La Figura 3A es un diagrama que muestra una instantánea 300 particionada en filas. Cada una de las filas incluye unidades de codificación más grandes (LCU). Una fila 301 (Frente de onda 1) y una fila 302 (Frente de onda 2) se procesan en paralelo. Como se muestra por una flecha de estados de CABAC en la Figura 3A, después de que se decodifican las dos primeras LCU en la fila 301, se inicia el procesamiento de la fila 302. Además, los estados de CABAC después de que se codifiquen o decodifiquen las dos primeras LCU de la fila 301 se usan para la inicialización de CABAC de la fila 302. Por lo tanto, el procesamiento de la fila 302 puede iniciarse después de que se finalice el procesamiento de las dos primeras LCU de la fila 301. En breve, el retardo de las dos LCU existe entre los dos núcleos de procesamiento.
La Figura 3B es un diagrama que muestra un ejemplo de uso de cortes dependientes para el WPP. Una instantánea 310 mostrada en la Figura 3B incluye las filas 311 a 314. En este punto, la fila 311 (Frente de onda 1), la fila 312 (Frente de onda 2) y la fila 313 (Frente de onda 3) se procesan usando núcleos separados.
Los cortes dependientes permiten el WPP que es capaz de reducir el retardo. Los cortes dependientes no tienen ningún encabezamiento de corte completo. Además, cuando se conocen los puntos de entrada (los puntos de entrada de los cortes dependientes que se conocen para la regla anterior), los cortes dependientes pueden decodificarse independientemente de otros cortes. Adicionalmente, los cortes dependientes permiten el WPP adecuado para aplicaciones de retardo bajo sin provocar una pérdida de codificación.
En un caso normal en el que un subflujo (fila de LCU) se encapsula en un corte, es necesario insertar un punto de entrada claro en un encabezamiento de corte para realizar seguramente codificación por entropía y decodificación por entropía en paralelo. Por esta razón, la transmisión del corte puede prepararse únicamente después de que el último subflujo se codifica completamente. Además, el encabezamiento de corte se completa únicamente después de que se finaliza la codificación de todos los subflujos en el corte. En otras palabras, la transmisión del comienzo del corte no puede iniciarse a través de fragmentación de paquetes en la capa de RTP/IP hasta que se finaliza el procesamiento de todo el corte.
Sin embargo, cuando se usa un corte dependiente, el corte dependiente puede usarse como un marcador de punto de entrada y, por lo tanto, no es necesario realizar una notificación usando una señal explícita de un punto de entrada. En consecuencia, es posible dividir un corte normal en muchos cortes dependientes sin pérdida de codificación. Además, los cortes dependientes pueden transmitirse inmediatamente después de que se finaliza la codificación del subflujo encapsulado (o antes de la codificación en el caso de la fragmentación de paquetes).
Los cortes dependientes no disminuyen una dependencia de predicción espacial. Además, los cortes dependientes no disminuyen una dependencia de análisis. Esto es porque el análisis de un corte dependiente objetivo normalmente requiere estados de CABAC de un corte anterior.
Cuando no se permite el corte dependiente, cada fila de LCU puede usarse como un corte. Aunque una configuración de este tipo reduce el retardo de transmisión, se provoca simultáneamente una pérdida de codificación significativa como se ha indicado anteriormente.
Lo siguiente supone un caso en el que todo un fotograma (instantánea) se encapsula en un corte. En este caso, para hacer posible el análisis paralelo, es necesario señalizar, en un encabezamiento de corte, un punto de entrada de un subflujo (fila de LCU). Esto provoca un retardo de transmisión a nivel de fotograma. Por decirlo de otra forma, es necesario modificar el encabezamiento después de que se codifica todo el fotograma. El encapsulamiento de toda la instantánea en el propio corte no empeora el retardo de transmisión. Por ejemplo, la transmisión de parte del corte puede iniciarse antes de que se finalice completamente la codificación. Sin embargo, cuando se usa el WPP, es necesario modificar el encabezamiento de corte posteriormente para indicar el punto de entrada. Por lo tanto, es necesario retardar la transmisión de todo el corte.
Como anteriormente, el uso del corte dependiente hace posible reducir el retardo. Como se muestra en la Figura 3B, la instantánea 310 se particiona en la fila 311, un corte normal, y las filas 312, 313 y 314, cortes dependientes. Cuando cada fila es un corte dependiente, es posible retardar la transmisión de la fila sin pérdida de codificación. Esto es porque el corte dependiente no disminuye la dependencia de predicción espacial ni reinicia un motor de CABAC.
Cada una de la Figura 4A y la Figura 4B es un diagrama que muestra otro ejemplo de inicialización de CABAC. La Figura 4A muestra la inicialización de CABAC cuando no se usa el WPP. No se usan ni el WPP ni losas. Se permite el uso de los cortes normales y los cortes dependientes juntos.
Un corte dependiente (3) copia el encabezamiento de un corte normal (2). En breve, el corte normal (2) es un corte padre del corte dependiente (3). El corte dependiente (3) usa una tabla de contexto generada al final del corte normal (2). El corte dependiente (3) no depende de un corte normal (1), sino del corte normal (2). En una palabra, la predicción espacial no existe entre el corte normal (1) y el corte dependiente (3).
La Figura 4B es un diagrama que muestra la inicialización de CABAC cuando se usa el WPP. Se permite el uso de los cortes normales, los cortes dependientes y el WPP juntos.
Un corte dependiente (3) copia el encabezamiento de un corte normal (2). Se espera que el corte dependiente (3) use una tabla de contexto generada al final de la segunda LCU del corte normal (1). Sin embargo, dado que el corte (2) es un corte normal, se indica que no puede hacerse referencia a la segunda LCU del corte (1). En breve, no se hace referencia al corte (1), porque el corte (1) no es un corte inmediatamente anterior de un corte dependiente en orden de codificación.
Sin embargo, el corte (2) se usa como un corte de referencia para el corte (3) y un corte (4). En otras palabras, cuando se inicia la decodificación del corte (3), es necesario inicializar los estados de CABAC a un valor por defecto (indicado por una flecha discontinua en la Figura 4B). El corte dependiente (4) usa estados de CABAC (flecha continua) después de la segunda LCU de la parte superior derecha que se ajusta a las condiciones de WPP anteriormente mencionadas.
La Figura 5 es un diagrama que muestra una sintaxis ilustrativa de un encabezamiento de corte que se ajusta a un modelo de referencia de HEVC actual (HM8.0). Un encabezamiento 320 de corte incluye un elemento de sintaxis dependent_slice_flag que indica si un corte objetivo es un corte dependiente o un corte normal.
Como se desprende de una fila 321 en la Figura 5, cuando la dependent_slice_flag es igual a 0, el encabezamiento incluye información de encabezamiento de corte. En breve, el corte tiene un encabezamiento completo. De otra manera, el encabezamiento no incluye el información de encabezamiento de corte. Por decirlo de otra forma, como anteriormente, el corte dependiente y un corte por entropía no tienen un encabezamiento de corte completo, y hacen referencia al encabezamiento de un corte anterior normal.
Los puntos de entrada se señalizan posteriormente para soportar procesamiento paralelo. Incluso cuando no se reinicia la unidad de codificación por entropía o la unidad de decodificación por entropía, es posible realizar independientemente una codificación paralela de parte de un flujo de vídeo (subflujo) entre los puntos de entrada, usando los puntos de entrada. Como se ha indicado anteriormente, los puntos de entrada se marcan para el corte dependiente, el corte normal y el corte por entropía.
En HEVC, hay disponibles varias herramientas de procesamiento paralelo. Como se ha mencionado anteriormente, las herramientas incluyen el WPP, el corte dependiente, el corte por entropía y la losa. Sin embargo, dado que estas herramientas no son compatibles entre sí, existe un límite al uso combinado de las herramientas. En general, se permite el uso de la losa y el corte juntos.
Sin embargo, existe una restricción de que en un perfil mayor, un corte necesita subdividirse en un número entero de losas mayor que o igual a 1, y una losa necesita subdividirse en un número entero de cortes mayor que o igual a 1. Esta restricción se aplica habitualmente a un perfil específico (o un nivel específico de un perfil). El fin de la restricción es reducir la complejidad de la implementación de hardware.
Cuando entropy_coding_sync_enabled_flag de una PPS es igual a 1 (es decir, se usa el WPP), y el primer bloque de codificación en un corte no es el primer bloque de codificación del primer bloque de árbol de codificación en una fila de bloques de árbol de codificación en una losa, una condición bajo la que un flujo de bits cumple las normas es que el último bloque de codificación en el corte pertenece a la misma fila de los bloques de árbol de codificación que el primer bloque de codificación en el corte. Un árbol de codificación indica una estructura de una LCU y subdivisión adicional recursiva de cada una de las LCU en cuatro bloques. Dicho de forma diferente, cuando puede usarse el WPP, y el corte no inicia en el comienzo de una fila de LCU objetivo, el corte tiene que finalizar en o antes del fin de la fila de LCU objetivo. NPL 3 describe detalles con respecto a no únicamente medios de procesamiento paralelos, sino también sintaxis de HEVC.
Lo siguiente describe esta restricción con referencia a la Figura 6. Una instantánea 330 mostrada en la Figura 6 incluye los cortes 331, 332 y 333, cortes normales. Los cortes 331 y 332 se incluyen en una fila de LCU. El corte 333 es un corte no permitido, porque el corte 333 se extiende sobre las filas de LCU (tres filas en este ejemplo). El corte 333 tiene que finalizar al final de la primera fila de LCU de acuerdo con la restricción anterior.
La Figura 7 es un diagrama que muestra una instantánea 340 que tiene una estructura de corte permitida cuando se usa el WPP. La instantánea 340 incluye los cortes 341, 342 y 343, cortes normales, y un corte 344, un corte dependiente. Los cortes 341, 342 y 343 se incluyen en la primera fila de LCU. El corte 344 incluye dos filas posteriores.
La inicialización de CABAC del corte 344 depende de los otros cortes 341, 342 y/o 343, porque el corte 344 es el corte dependiente. Cuando cualquiera de los cortes 342 y 343 es un corte normal como se muestra en la Figura 7, el corte 344 se inicializa a estados de CABAC por defecto. De otra manera, se usa una tabla de WPP. En otras palabras, los estados de CABAC después de la segunda LCU en una fila de LCU por encima de la que se procesa una fila objetivo se usan para la inicialización.
En este ejemplo, como se describe en la Figura 4B y se indica en la descripción relacionada de la inicialización de CABAC, el corte 344 dependiente se inicializa usando estados de CABAC por defecto predeterminados.
Por lo tanto, la inicialización de CABAC se basa en cortes anteriores. Por lo tanto, el procesamiento, especialmente el análisis, de un corte objetivo depende de otros cortes. Específicamente, se determina si un contexto de CABAC se inicializa con un valor por defecto o un valor de w Pp dependiendo de un tipo de los cortes anteriores del corte objetivo. De esta manera, se comprueba si pueden usarse o no los cortes anteriores, y se determina un procedimiento de inicialización que hay que aplicar al corte objetivo. En breve, se requiere un procesamiento que tiene un orden bastante complicado. Lo siguiente describe tal procesamiento.
Un primer corte 341 tiene al menos dos LCU y, por lo tanto, puede hacerse referencia a los estados de CABAC después de que las dos primeras LCU se codifican o decodifican.
Cuando se pierde un corte 342 o un corte 343, el corte 344 no puede decodificarse de forma precisa. Esto es porque la inicialización de CABAC no puede realizarse debido a un tipo desconocido del corte 342 o el corte 343. En otras palabras, porque la inicialización de CABAC no puede realizarse en el corte 344 incluso cuando únicamente está ausente la información acerca de los dos cortes anteriores y el corte 344 se ha obtenido de forma correcta, se descartan los datos del corte 344 obtenido de forma correcta. Por lo tanto, es necesario realizar ocultación de errores en el corte 344. Por este motivo, existe una posibilidad de que resulte una degradación de imagen a partir de la distorsión debido a una ocultación de errores incompleta.
En este punto, en un encabezamiento de corte, necesitan determinarse la mayoría de elementos de sintaxis (estos son principalmente la conmutación de control, tal como una operación de filtrado específica) para todos los cortes incluidos en un fotograma. Además, aunque algunos de los elementos de sintaxis pueden cambiarse sobre una base de corte, todos los parámetros de control determinados para todo un fotograma se mantienen en la mayoría de los procedimientos por un aparato de codificación de imágenes. Por lo tanto, el siguiente procedimiento puede usarse como un procedimiento de ocultación de errores. Este procedimiento requiere únicamente información que indica si un corte perdido es un corte dependiente o un corte normal.
Cuando los paquetes no llegan en orden, aumenta un retardo de codificación. En otras palabras, cuando se espera una reordenación de paquetes, existe una posibilidad de aumentar el retardo de decodificación. Esto contradice la provisión de un retardo ultra bajo usando un corte dependiente, el objetivo fundamental del WPP.
La Figura 8 es un diagrama que muestra un ejemplo adicional del procedimiento de inicialización de CABAC. En la Figura 8, se supone la estructura de los cortes mostrados en la Figura 7. Una instantánea 350 mostrada en la Figura 8 incluye un corte 351 y un corte 354. El corte 351 es un corte normal y el primer corte en un fotograma, e incluye cuatro LCU. La CABAC se inicializa a un valor de estado por defecto (estado cero) en el comienzo del fotograma, es decir, el comienzo del corte 351. Se ha de observar que pueden estar presentes los estados por defecto, y en este caso, se selecciona uno de los estados por defecto. En este punto, el estado por defecto se refiere a un valor predeterminado en un modelo de probabilidad de codificación aritmética.
Cuando los datos del corte 342 y el corte 343 están ausentes debido a una falta o un error, aunque se obtienen datos que pertenecen a un corte 354 dependiente, el corte 354 dependiente no puede decodificarse. Esto es porque, como se ha indicado anteriormente, el motor de CABAC no puede inicializarse sin los datos de los cortes 342 y 343.
La Figura 9 es un diagrama de flujo para un procedimiento de determinación en un procedimiento de inicialización que se realiza cuando se obtiene el corte 354 dependiente. Por decirlo de otra forma, este diagrama de flujo muestra un procedimiento de dependencia de dos o más cortes en la inicialización de CABAC.
Se supone que se establecen las siguientes condiciones para un corte (4) (corte 354 dependiente). El WPP puede usarse. dependent_slice_enabled_flag de un SPS se establece a 1. La posición del corte (4) satisface la Ecuación 1.
slice_address % numlCUinRow = 0 (Ecuación 1)
En este punto, "%" representa una operación de módulo (resto de división entera). El parámetro numlCUinRow representa el número de LCU por fila de la instantánea 350. Por lo tanto, la condición de la Ecuación 1 se satisface en el comienzo de la fila. El parámetro numlCUinRow puede derivarse a partir de los ajustes del SPS.
Primero, se determina si el corte (4) es o no un corte dependiente (S101). Cuando el corte (4) no es el corte dependiente (No en S101), se realiza una inicialización por defecto.
Como se muestra en la Figura 8, cuando el corte (4) es el corte dependiente (Sí en S101), i se establece a 3 (5102) . En breve, el corte (3) que precede al corte (4) se establece como un corte i.
A continuación, se determina si el corte i se inicia o no a partir de una fila por encima de una fila del corte (4) (5103) . En este punto, dado que i se establece a 3, el corte i es el corte (3) que precede a un corte dependiente que hay que procesar (corte (4)).
Cuando el corte i no se inicia a partir de la fila por encima de la fila del corte (4) (No en S103), se realiza inicialización de WPP (inicialización usando una tabla de WPP) (S107).
En contraposición, cuando el corte i se inicia a partir de la fila por encima de la fila del corte (4) (Sí en S103), es decir, el caso mostrado en la Figura 8, se determina si el corte i es o no un corte dependiente (S104).
Cuando el corte i no es el corte dependiente (No en S104), se analiza entonces una posición de inicio del corte i. Específicamente, se determina si slice_address % numlCUinRow es o no menor que 2 (S106). En breve, se determina si la posición de inicio del corte i es la primera LCU o la segunda LCU en la fila.
Cuando slice_address % numlCUinRow es menor que 2 (Sí en S106), se realiza la inicialización de WPP (S107). En contraposición, cuando slice_address % numlCUinRow es mayor que o igual a 2 (No en S106), se realiza la inicialización por defecto (S108).
Además, cuando el corte i es el corte dependiente (Sí en S104), se analiza una posición de inicio del corte i. Específicamente, se determina si slice_address % numlCUinRow es o no menor que 3 (S105). En breve, se determina si la posición de inicio del corte i es la primera LCU, la segunda LCU o la tercera LCU en la fila.
Cuando slice_address % numlCUinRow es menor que 3 (Sí en S105), se realiza la inicialización de WPP (S107). En contraposición, cuando slice_address % numlCUinRow es mayor que o igual a 3 (No en S105), no se realiza la inicialización, y el índice i se disminuye en 1 (S109). En breve, en este ejemplo, el corte (2) que precede al corte objetivo (corte (4)) por dos cortes se establece como el corte i. A continuación, los procedimientos posteriores a la etapa S103 se realizan en el corte (2). Además, cuando se hace la misma determinación para el corte (2), el corte (1) se establece entonces como el corte i.
La Figura 10 es un diagrama que muestra una instantánea 360. La instantánea 360 incluye cinco cortes 361 a 365. El corte 361 es un corte normal e incluye toda la primera fila. El corte 362 es un corte dependiente e incluye toda la segunda fila. La tercera fila incluye el corte dependiente 363 y el corte 364. El corte 365 es un corte dependiente e incluye toda la cuarta fila.
Lo siguiente describe casos en los que el corte 364 es el corte dependiente y en los que el corte 364 es el corte normal cuando se pierde o retarda el corte 364. Además, en este punto, el corte 363 tiene al menos dos LCU.
Cuando se pierde el corte 364, un aparato de decodificación de imágenes no puede determinar un tipo del corte 364. Cuando el corte 364 perdido es el corte dependiente, es posible continuar decodificando el corte 365 y cortes posteriores con un pequeño margen de error en el procesamiento de reconstrucción. Esto es porque, como se describe con referencia a las Figuras 8 y 9, el corte 365 usa estados de CABAC de la segunda LCU del corte 363. Por lo tanto, el procesamiento de inicialización de CABAC no provoca ningún error. Sin embargo, dado que el corte 365 usa predicción espacial desde el corte 364, existe una posibilidad de que el procesamiento de reconstrucción de píxeles provoque un error.
En contraposición, cuando el corte 364 perdido es el corte normal, el corte 365 no puede decodificarse. Esto es porque algunos de los elementos de sintaxis podrían usar información de un encabezamiento de corte del corte 364 perdido. Dicho de forma diferente, es porque el corte 364 normal es un corte padre del corte 365 dependiente, y se requiere la información del corte padre para el análisis y la decodificación del corte 365 dependiente.
Cuando el tipo del corte 364 perdido es desconocido, el aparato de decodificación de imágenes descarta el corte 365 decodificable para evitar una codificación errónea que es probable que se produzca cuando el corte 364 perdido es el corte normal. Esto es ineficiente porque se descarta el corte 365 incluso cuando los datos del corte 365 se obtienen correctamente. Además, es necesario descartar todos los cortes dependientes posteriores al corte 365.
Cuando el corte 364 es el corte normal, se inicializa un motor de CABAC a un valor de CABAC por defecto (consúltese el caso de No en S101 en la Figura 9) para decodificar el corte 365. Por lo tanto, el corte 365 no depende del corte 363. Además, no se realiza la predicción espacial entre el corte 363 y el corte 365. Como anteriormente, la CABAC se inicializa al valor por defecto en la posición de inicio del corte 365 y, por lo tanto, el corte 365 dependiente se vuelve similar al corte normal.
Sin embargo, el corte normal tiene un encabezamiento completo de corte. En contraposición, el corte 365 tiene únicamente un encabezamiento de corte corto y depende de parámetros establecidos por un encabezamiento de corte de un corte anterior normal. En otras palabras, cuando el corte 365 es el corte dependiente, aunque existe la ventaja de que el tamaño del encabezamiento puede reducirse, la ventaja no es tan grande. En contraposición, cuando el corte 365 es el corte normal, el corte 365 puede decodificarse. Como se acaba de describir, en los casos anteriores, la ventaja se considera que es mayor cuando el corte 365 se establece como el corte normal que cuando el corte 365 se establece como el corte dependiente.
Sin embargo, en el WPP, el corte dependiente se diseña para no garantizar la robustez contra la pérdida, sino para habilitar una operación de WPP en un retardo ultra bajo. Por otra parte, en el caso de una aplicación de retardo ultra bajo a través de una red tal como una aplicación en tiempo real, se esperan pérdida de paquetes y reordenación de paquetes. En un caso de este tipo, cuando el corte 364 puede obtenerse finalmente, el corte 365 puede decodificarse. Sin embargo, se provocan al menos un retardo creciente y la pérdida de paquetes. Por lo tanto, el WPP no se realiza en un estado óptimo en un entorno con pérdidas.
La Figura 11 es un diagrama que muestra otro problema asociado con la inicialización de CABAC cuando se usa el WPP, y que muestra una instantánea 370. La instantánea 370 incluye cuatro cortes 371 a 374.
El corte 371 es un corte normal y el corte 372 es un corte dependiente. En este punto, el corte 371 tiene al menos dos LCU. La primera fila de la instantánea 370 incluye los cortes 371 y 372. La segunda fila de la instantánea 370 incluye los cortes 373 y 374, cortes dependientes.
En este caso, se supone que un aparato de codificación de imágenes usa al menos dos núcleos de procesador. Por decirlo de otra forma, cuando se usa el WPP, el aparato de codificación de imágenes codifica y analiza dos filas de LCU en paralelo. Por lo tanto, el corte 373 se vuelve disponible mucho antes de que el corte 372 se vuelva disponible.
Sin embargo, dado que la inicialización de CABAC para el corte 373 depende del corte 372, la decodificación del corte 373 no puede iniciarse. Por lo tanto, no es posible hacer un retardo del inicio de codificación o decodificación entre filas más pequeñas que toda la fila de LCU. Esto contradice con el fin del WPP de disminuir el retardo hasta dos LCU.
Lo siguiente describe el procesamiento paralelo de codificación y transmisión de un corte, como se muestra en la Figura 11. Dos unidades de procesamiento, tales como núcleos de procesador y procesadores, codifican simultáneamente los primeros cortes (corte 371 y corte 373) de respectivas filas. Cuando finaliza la codificación, los cortes codificados 371 y 373 se encapsulan en paquetes que tienen números de paquetes (packet_id) de 0 y 4, respectivamente. En este punto, se selecciona el número de paquete de 4 para reservar un número pequeño para el corte 372 y posiblemente para otra NALU.
Cuando se completa la codificación del corte 372, el corte 372 se encapsula en un paquete que tiene un número de paquete de 1 y se transmite. Además, se generan dos unidades de NAL que tienen correspondientes números de paquetes de 2 y 3 y datos (de filtro) ficticios para evitar la determinación de números de paquetes perdidos de 2 y 3 como pérdida de paquetes.
En HEVC, esto se consigue usando un mensaje de SEI de filler_data o un tipo de unidad de NAL predeterminado reservado para datos de relleno. Como anteriormente, cuando un ID de paquete necesita aumentarse en 1 para cada unidad de NAL, se usa un NALU de tipo de relleno para rellenar el hueco.
La inicialización de una fila objetivo depende de la segunda LCU en una fila por encima de la fila objetivo. Además, cuando se inserta un corte después de la segunda LCU, la inserción es problemática en términos de influenciar la determinación de la inicialización de CABAC. La presente invención proporciona un procedimiento de derivación de una relación más eficiente entre WPP y uso de un corte dependiente, a base de este análisis y problema. Debería evitarse una situación en la que la inicialización de CABAC para una fila depende de otra fila para mantener la eficiencia del WPP.
Además, se produce el mismo problema que el anterior cuando se usa la losa en lugar del WPP.
De acuerdo con una realización ilustrativa desvelada en el presente documento, un procedimiento de decodificación de imágenes de decodificación de un flujo de bits que incluye una señal codificada que resulta de codificar losas y cortes en los que se particiona una imagen, comprendiendo el procedimiento decodificar la señal codificada, en el que cada uno de los cortes es o bien un corte normal que tiene, en un encabezamiento, información usada para otro corte o un corte dependiente que se decodifica usando información incluida en un encabezamiento de corte de otro corte, y cuando el corte normal se inicia a partir de una posición distinta de un comienzo de una primera losa, una segunda losa codificada a continuación de la primera losa no se inicia a partir del corte dependiente.
Con esto, es posible evitar una ocurrencia de un caso en el que un corte en el comienzo de la segunda losa se refiere a un corte en una posición distinta del comienzo de la primera losa, aumentando de este modo la eficiencia cuando se usan juntos el procesamiento de losa paralelo y los cortes dependientes.
Por ejemplo, en la decodificación, la primera losa y la segunda losa pueden decodificarse en paralelo y, cuando la decodificación de la segunda losa se inicia, la segunda losa puede decodificarse sin hacer referencia a una información de partición que indica una estructura de corte de la primera losa.
Por ejemplo, cuando un corte en un comienzo de una tercera losa es el corte dependiente, el corte dependiente puede incluir toda la tercera losa.
Por ejemplo, cuando la primera losa incluye un corte que se inicia desde una posición distinta del comienzo de la primera losa, la segunda losa puede no iniciarse desde el corte dependiente.
Por ejemplo, el procedimiento de decodificación de imágenes puede incluir adicionalmente obtener, a partir de un encabezamiento de corte de un corte, información que indica si el corte es o bien el corte normal o bien el corte dependiente.
Por ejemplo, un corte en un comienzo de la imagen puede ser el corte normal y cada uno de los otros cortes puede ser el corte dependiente.
Por ejemplo, el procedimiento de decodificación de imágenes puede incluir adicionalmente obtener, a partir del flujo de bits, un indicador de restricción que indica que el particionamiento de una instantánea está restringido.
Por ejemplo, el procedimiento de decodificación de imágenes puede incluir adicionalmente obtener, a partir del flujo de bits, un indicador que indica si un corte padre cuyo encabezamiento de corte se usa para el corte dependiente se inicia o no a partir de un comienzo de una losa.
De acuerdo con una realización ilustrativa desvelada en el presente documento, un procedimiento de codificación de imágenes de codificación de losas y cortes en los que se particiona una imagen, para generar un flujo de bits, comprendiendo el procedimiento: particionar la imagen en las losas y los cortes; y codificar las losas y cortes que resultan del particionamiento, en el que cada uno de los cortes es o bien un corte normal que tiene, en un encabezamiento, información usada para otro corte o bien un corte dependiente que se decodifica usando información incluida en un encabezamiento de corte de otro corte, y en el particionamiento, cuando el corte normal se inicia a partir de una posición distinta de un comienzo de una primera losa, la imagen se particiona en las losas y los cortes para evitar que una segunda losa codificada a continuación de la primera losa se inicie a partir del corte dependiente.
Con esto, es posible evitar una ocurrencia de un caso en el que un corte en el comienzo de la segunda losa se refiere a un corte en una posición distinta del comienzo de la primera losa, aumentando de este modo la eficiencia cuando se usan juntos el procesamiento de losa paralelo y los cortes dependientes.
Por ejemplo, en el particionamiento, en el caso en el que un aparato de decodificación de imágenes decodifica la primera losa y la segunda losa en paralelo, la imagen puede particionarse en las losas y los cortes para permitir la decodificación de la segunda losa sin hacer referencia a información de partición cuando el aparato de decodificación de imágenes inicia la decodificación de la segunda losa, indicando la información de partición una estructura de corte de la primera losa.
Por ejemplo, en el particionamiento, cuando un corte en un comienzo de una tercera losa es el corte dependiente, la imagen puede particionarse en las losas y los cortes para provocar que el corte dependiente incluya toda la tercera losa.
Por ejemplo, en el particionamiento, cuando la primera losa incluye un corte que se inicia desde una posición distinta del comienzo de la primera losa, la imagen puede particionarse en las losas y los cortes para evitar que la segunda losa se inicie desde el corte dependiente.
Por ejemplo, el procedimiento de codificación de imágenes puede incluir adicionalmente embeber, en un encabezamiento de corte de un corte, información que indica si el corte es o bien el corte normal o bien el corte dependiente.
Por ejemplo, un corte en un comienzo de la imagen puede ser el corte normal y cada uno de los otros cortes puede ser el corte dependiente.
Por ejemplo, el procedimiento de codificación de imágenes puede incluir adicionalmente embeber, en el flujo de bits, un indicador de restricción que indica que el particionamiento de una instantánea está restringido.
Por ejemplo, el procedimiento de codificación de imágenes puede incluir adicionalmente embeber, en el flujo de bits, un indicador que indica si un corte padre cuyo encabezamiento de corte se usa para el corte dependiente se inicia o no a partir de un comienzo de una losa.
De acuerdo con una realización ilustrativa desvelada en el presente documento, un aparato de decodificación de imágenes que decodifica un flujo de bits que incluye una señal codificada que resulta de codificar losas y cortes en los que se particiona una imagen, comprendiendo el aparato una unidad de decodificación configurada para decodificar la señal codificada, en el que cada uno de los cortes es o bien un corte normal que tiene, en un encabezamiento, información usada para otro corte o bien un corte dependiente que se decodifica usando información incluida en un encabezamiento de corte de otro corte y, cuando el corte normal se inicia a partir de una posición distinta de un comienzo de una primera losa, una segunda losa codificada a continuación de la primera losa no se inicia a partir del corte dependiente.
Con esto, es posible evitar una ocurrencia de un caso en el que un corte en el comienzo de la segunda losa se refiere a un corte en una posición distinta del comienzo de la primera losa, aumentando de este modo la eficiencia cuando se usan juntos el procesamiento de losa paralelo y los cortes dependientes.
De acuerdo con una realización ilustrativa desvelada en el presente documento, un aparato de codificación de imágenes que codifica losas y cortes en los que se particiona una imagen, para generar un flujo de bits, comprendiendo el aparato: una unidad de partición configurada para particionar la imagen en las losas y los cortes; y una unidad de codificación configurada para codificar las losas y cortes que resultan del particionamiento, en el que cada uno de los cortes es o bien un corte normal que tiene, en un encabezamiento, información usada para otro corte o un corte dependiente que se decodifica usando información incluida en un encabezamiento de corte de otro corte, y la unidad de partición configurada para, cuando el corte normal se inicia a partir de una posición distinta de un comienzo de una primera losa, particionar la imagen en las losas y los cortes para evitar que una segunda losa codificada a continuación de la primera losa se inicie a partir del corte dependiente.
Con esto, es posible evitar una ocurrencia de un caso en el que un corte en el comienzo de la segunda losa se refiere a un corte en una posición distinta del comienzo de la primera losa, aumentando de este modo la eficiencia cuando se usan juntos el procesamiento de losa paralelo y los cortes dependientes.
De acuerdo con una realización ilustrativa desvelada en el presente documento, un aparato de codificación y decodificación de imágenes puede incluir el aparato de codificación de imágenes y el aparato de decodificación de imágenes.
Cada una de las realizaciones ilustrativas descritas a continuación muestra un ejemplo general o específico. Los valores numéricos, formas, materiales, elementos estructurales, la disposición y conexión de los elementos estructurales, etapas, el orden de procesamiento de las etapas, etc., mostrados en las siguientes realizaciones de ejemplo son meros ejemplos y, por lo tanto, no limitan el ámbito de las reivindicaciones adjuntas y sus equivalentes. Por lo tanto, entre los elementos estructurales en las siguientes realizaciones ilustrativas, elementos estructurales no citados en ninguna de las reivindicaciones independientes que muestran conceptos más genéricos se describen como elementos estructurales arbitrarios.
Realización 1
En un procedimiento de codificación de imágenes y un procedimiento de decodificación de imágenes de acuerdo con la realización 1, se añade un indicador que especifica claramente la inicialización de CABAC.
La Figura 12 es un diagrama que muestra la sintaxis de un encabezamiento de corte de acuerdo con la realización 1. Un encabezamiento 380 de corte incluye una fila 381 que tiene un nuevo elemento de sintaxis "entropy_defaultjnitialization_flag".
Esta entropy_deafult_initialization_flag es un indicador que indica, cuando se establece a un valor predeterminado, que CABAC de un corte se inicializa con un valor (predeterminado) por defecto de CABAC. La bandera es un indicador que tiene el primer valor, tal como "1", que indica que un corte se inicializa con un valor de CABAC y el segundo valor, tal como "0", que indica que la inicialización se realiza mediante otro procedimiento. Se ha de observar que las asignaciones de los valores de "1" y "0" pueden conmutarse.
El "otro procedimiento" de determinación de inicialización puede ser un procedimiento predeterminado, tal como inicialización, a base de un valor de un corte anterior. Sin embargo, el "otro procedimiento" puede incluir otro flujo de determinación similar al flujo mostrado en la Figura 9, derivando, de este modo, posiblemente un procedimiento de inicialización usando un valor de CABAC por defecto.
Un aparato de decodificación de imágenes de acuerdo con esta realización decodifica un flujo de bits de una secuencia de vídeo codificada que incluye cortes de imágenes codificados al menos parcialmente mediante codificación aritmética. El aparato de decodificación de imágenes incluye: una unidad de análisis que extrae, de datos de flujo de bits de un corte, un indicador de inicialización que indica si un modelo de probabilidad de decodificación aritmética del corte se inicializa o no con un valor predeterminado; una unidad de control que controla si el modelo de probabilidad de decodificación aritmética se inicializa o no con el valor predeterminado, de acuerdo con el indicador de inicialización; una unidad de decodificación aritmética que decodifica el corte.
Por ejemplo, la codificación aritmética puede ser codificación aritmética adaptativa de contexto según se define en HEVC. Sin embargo, la presente invención no está limitada a esto.
El valor predeterminado es un valor por defecto notificado a un aparato de codificación de imágenes y el aparato de decodificación de imágenes, y no cambia con contenido codificado.
El indicador de inicialización hace referencia preferentemente a una bandera de 1 bit con "1" que indica que un modelo de probabilidad de decodificación aritmética se inicializa con el valor predeterminado y "0" que indica que un modelo de probabilidad de decodificación aritmética se inicializa mediante otro procedimiento.
Únicamente cuando un corte objetivo es un corte dependiente, el indicador necesita estar presente. Esto es porque cuando el corte objetivo es un corte normal, el valor por defecto de CABAC se usa para inicialización (consúltese el caso de No en S101 en la Figura 9). Por lo tanto, se analiza primero si el corte objetivo es o no el corte dependiente comprobando una condición dependent_slice_flag ==1.
Además, cuando se realiza procesamiento paralelo de un corte y otro corte, el indicador de inicialización (bandera) es ventajoso. Por ejemplo, el procesamiento paralelo puede ser el WPP. Por lo tanto, únicamente cuando una condición entropy_coding_sync_enabled_flag ==1 es verdadera, la sintaxis del encabezamiento de corte mostrado en la Figura 12 incluye un indicador de inicialización entropy_default_initialization_flag.
Adicionalmente, únicamente cuando el corte se inicia en el comienzo de una fila de LCU, el indicador de inicialización es apropiado. Esto es porque la inicialización inmediata de CABAC se requiere únicamente entonces para permitir el procesamiento paralelo. Esto se indica por una condición slice_address % PicWidthInCtbsY == 0 en la sintaxis mostrada en la Figura 12.
Como se ha indicado anteriormente, un elemento de sintaxis "slice_address" indica un inicio del corte con un desplazamiento incluido en el flujo de bits. "PicWidthInCtbsY" indica una anchura de un fotograma con el número de unidades de bloques de árbol de codificación (LCU).
Como se muestra en la fila 381, se usa un producto lógico de las tres condiciones para la determinación. En otras palabras, únicamente cuando la Ecuación 2 a continuación es verdadera, entropy_default_initialization_flag se transmite para señalizar claramente el procedimiento de inicialización.
dependent_slice_flag == 1 &&
entropy_coding_sync_enabled_flag == 1 & slice_address %
PicWidthInCtibsY == 0 (Ecuación 2)
Cuando la Ecuación 2 no es cierta, la inicialización se realiza a base de un procedimiento normal, es decir, reglas de WPP.
Por decirlo de otra forma, el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes de acuerdo con esta realización incluyen: subdividir un corte de una imagen en unidades de codificación que corresponden a bloques de píxeles de la imagen; y extraer, por la unidad de análisis, un indicador de inicialización de datos de encabezamiento, únicamente cuando el corte es un corte dependiente. Una unidad de decodificación aritmética de cortes dependientes se inicializa a base de un contexto de una unidad de decodificación aritmética de cortes padre que corresponden a respectivos cortes dependientes.
Además, únicamente cuando se permite la codificación paralela de una fila compuesta de las unidades de codificación, la unidad de análisis puede extraer el indicador de inicialización de los datos de encabezamiento.
Dicho de forma diferente, de acuerdo con esta realización, el corte de la imagen se subdivide en las unidades de codificación que corresponden a los bloques de píxeles de la imagen, y el indicador de inicialización de los datos de encabezamiento se extrae por la unidad de análisis únicamente cuando el corte se inicia a partir del comienzo de la fila compuesta de los bloques de unidad de codificación de la imagen.
La Figura 13 es un diagrama de flujo para un procedimiento de determinación de inicialización de CABAC para un corte de acuerdo con esta realización. La Figura 13 supone un caso de la instantánea 350 mostrado en la Figura 8. Suponiendo que el corte (4) (corte 354) y el corte (1) (corte 351) se analizan en paralelo, se hace la siguiente determinación.
Primero, se determina si el corte (4) es o no un corte dependiente (S111). Cuando el corte (4) es el corte dependiente y se satisfacen otras condiciones (se realiza procesamiento paralelo de filas y un corte se inicia en el comienzo de una fila de LCU) (Sí en S111), se comprueba un indicador de inicialización "entropy_defaultjnitialization_flag" para determinar un procedimiento de ejecución de inicialización (S112).
Cuando la entropy_default_initialization_flag indica aplicación de inicialización por defecto (No en S112), se aplica la inicialización por defecto (S114). En contraposición, cuando la entropy_default_initialization_flag no indica la aplicación de la inicialización por defecto (Sí en S112), la inicialización del WPP se aplica en el que se hace referencia a un corte anterior (S113).
Se ha de observar que esta realización no se limita a la señalización del indicador de inicialización en el encabezamiento de corte. El mismo indicador puede embeberse en otra estructura de datos, por ejemplo, un mensaje de información de perfeccionamiento complementaria.
Realización 2
La realización 1 hace posible conseguir un procesamiento de fila de LCU paralelo eficiente, tal como el WPP y el corte dependiente. Por otra parte, se embebe un nuevo elemento de sintaxis en un encabezamiento de corte. En respuesta, la independencia de inicialización de CABAC para cortes durante el procesamiento paralelo puede conseguirse modificando las reglas de inicialización, para evitar la adición del nuevo elemento de sintaxis.
En la realización 2, se modifican la definición del corte dependiente y las operaciones para corte dependiente por un aparato de codificación de imágenes y un aparato de decodificación de imágenes. Esto puede conseguirse añadiendo restricciones a las normas de flujo de bits.
En otras palabras, el aparato de decodificación de imágenes de acuerdo con esta realización decodifica un flujo de bits de una secuencia de vídeo codificada que incluye cortes de imagen subdivididos en unidades de codificación y al menos parcialmente codificados por codificación aritmética. El aparato de decodificación de imágenes incluye una unidad de análisis que extrae, de un flujo de bits, una primera fila de unidades de codificación y una segunda fila de unidades de codificación, en el que las unidades de codificación de la primera fila y la segunda fila se asignan a cortes para evitar hacer referencia a información de partición de un primer corte en la primera fila cuando se inicializa una unidad de decodificación aritmética para un segundo corte en la segunda fila. Una posición de inicio del primer corte en la primera fila está detrás del segundo corte en la segunda fila por un número predeterminado de unidades de codificación. El aparato de decodificación de imágenes incluye adicionalmente la unidad de decodificación aritmética que realiza decodificación aritmética del primer corte y el segundo corte al menos parcialmente en paralelo, para decodificar cada uno de los cortes.
La Figura 14 es un diagrama de descripción de la función de esta realización, y que muestra una instantánea 390 particionada en cortes. La instantánea 390 incluye cuatro cortes que son un corte 391 normal, un corte 392 normal, un corte 393 dependiente y un corte 394 normal.
Los tres cortes 391, 392 y 393 se incluyen en la primera fila de unidades de codificación (LCU). El corte 394 incluye toda la segunda y tercer filas.
La primera restricción ilustrativa aplicada al procesamiento de corte y paralelo sobre una base de fila es que "cuando entropy_code_sync_enabled_flag y dependent_slice_enabled_flag son iguales a 1, un corte normal puede iniciarse únicamente en el comienzo de una fila de bloques de árbol de codificación". Además, ambas banderas, la entropy_code_sync_enabled_flag y la dependent_slice_enabled_flag, se incluyen en un conjunto de parámetros de instantánea. Se ha de observar que un bloque de árbol de codificación (CTB) y una unidad de codificación más grande (LCU) se refieren a la misma unidad. El CTB se usa en un texto estándar (consúltese NPL 3). Además, aunque la LCU se usa en un texto estándar de la versión anterior, el CTB se usa en un texto estándar de la versión actual.
Cuando el corte normal se inicia únicamente en el comienzo de una fila de unidades de codificación, un corte dependiente en otra fila que es posterior al corte normal puede siempre hacer referencia a estados de CABAC del corte normal. En este punto, los estados de CABAC son estados de CABAC después de que el WPP procesa la primera LCU o las dos primeras LCU. Además, dado que un encabezamiento del corte dependiente depende de un encabezamiento del corte normal que precede al corte dependiente, cuando se pierde el corte 394 normal, es necesario descartar el corte dependiente.
La primera restricción ilustrativa no necesita ser estricta. Es necesario únicamente hacer al menos una o dos LCU del corte normal en una fila anterior disponible al corte dependiente, para permitir la aplicación de inicialización de WPP.
Como alternativa, la segunda restricción ilustrativa puede aplicarse como otra restricción (regla). En la segunda restricción ilustrativa, un corte normal no se inicia después del segundo bloque de árbol de codificación en una fila de bloques de árbol de codificación. El corte normal tiene que iniciarse en el comienzo de una fila de LCU y, por lo tanto, por ejemplo, no es aceptable establecer el segundo corte 392 como el corte normal como se muestra en la Figura 14.
Se ha de observar que el primer corte puede tener una posición de inicio no más atrás que la segunda unidad de codificación en la primera fila. Además, el primer corte puede ser un corte normal y el segundo corte puede ser un corte dependiente usando un encabezamiento de corte del corte normal. Adicionalmente, la posición de inicio del primer corte puede ser el comienzo de la primera fila.
La Figura 15 es un diagrama de flujo para un procedimiento de determinación en un procedimiento de inicialización de CABAC cuando se establecen las reglas anteriores. Lo siguiente describe el procedimiento de determinación usando el ejemplo mostrado en la Figura 8.
Primero, se determina si el corte (4) es o no un corte dependiente (S111). Cuando el corte (4) es el corte dependiente (Sí en S111), se realiza la inicialización de w Wp (S113). En contraposición, cuando el corte (4) no es el corte dependiente (No en S111), se realiza la inicialización por defecto (S114).
Como se describe anteriormente, una unidad de codificación por entropía de contexto adaptativa se usa en un procedimiento de codificación de imágenes de acuerdo con esta realización. El procedimiento de codificación de imágenes se aplica a un fotograma de instantánea particionado en al menos dos porciones. Las al menos dos porciones son una primera porción y una segunda porción que pueden codificarse o decodificarse al menos parcialmente en paralelo.
De acuerdo con esta realización, se determina la inicialización de una tabla de contexto de la segunda porción de un flujo, cuando la primera porción de un subflujo se subdivide en cortes, por un procedimiento que no depende de la subdivisión de la primera porción. Por ejemplo, el WPP se realiza para cada fila (cada fila de LCU) y, por lo tanto, una porción del flujo puede corresponder a la fila de LCU.
Se ha de observar que la presente invención no se limita a las restricciones ilustrativas anteriores. Las restricciones ilustrativas pueden formularse de una manera diferente. Lo siguiente describe otras restricciones ilustrativas.
Cuando un corte normal satisface una condición de la Ecuación 3, un corte que se inicia en el comienzo de una fila de LCU posterior no es un corte dependiente.
slice_address % PicWidthInCtbsY > 1 (Ecuación 3)
Por brevedad, la condición puede representarse mediante la Ecuación 4.
slice_address % PicWidthInCtbsY ! = 0 (Ecuación 4)
En este punto, "! =" indica desigualdad. Cuando entropy_coding_sync_enabled_flag es igual a 1, es decir, se permite el procesamiento paralelo de una fila de LCU, estas restricciones son aplicables. Además, "slice_address" indica una posición de un corte que se inicia en un flujo de bits y el parámetro "PicWidthInCtbsY" indica una anchura de una instantánea (fotograma) en una LCU (bloque de árbol de codificación).
Por decirlo de otra forma, cuando el corte normal no se inicia en el comienzo de la fila, un corte que se inicia en una fila inmediatamente posterior no es un corte dependiente (tercera restricción ilustrativa). Esta condición elimina la necesidad de esperar la decodificación de un corte en la segunda fila hasta que se analiza (decodifica) un corte normal en una posición en la primera fila.
Lo siguiente describe la influencia de la tercera restricción ilustrativa con referencia a la Figura 16. Una instantánea 400 mostrada en la Figura 16 incluye tres cortes 401 a 403 incluidos en la primera fila. Entre los tres cortes, los primeros dos cortes 401 y 402 son cortes normales y el tercer corte 403 es un corte dependiente.
Esta condición no permite establecer el cuarto corte 404 como el corte dependiente. Esto se indica en la Figura 16 marcando una cruz al corte 404.
Por lo tanto, el flujo de bits puede incluir cortes normales y cortes dependientes, y la decodificación de los cortes normales y los cortes dependientes se basa en parámetros señalizados en encabezamientos de corte de los cortes normales. Cuando un corte normal se inicia en una posición después del comienzo de una fila de LCU, la siguiente fila de LCU no se inicia con un corte dependiente.
Lo siguiente describe la cuarta restricción ilustrativa con referencia a la Figura 17. Cuando entropy_coding_sync_enabled_flag y dependent_slice_enabled_flag son iguales a 1, no se permite ningún corte normal distinto del primer corte en un fotograma (cuarta restricción ilustrativa).
Dicho de forma diferente, cuando se permite el procesamiento paralelo y se habilitan los cortes dependientes, se permite un corte normal únicamente como el primer corte en el fotograma. En breve, todos los cortes en el fotograma son los cortes dependientes excepto el primer corte.
Una instantánea 410 mostrada en la Figura 17 incluye cinco cortes 411 a 415. Los cortes 411, 412 y 415 son cortes normales y los cortes 413 y 414 son cortes dependientes. No se permiten los cortes normales 412 a 415 excepto el primer corte 411 normal de acuerdo con la cuarta restricción ilustrativa. En breve, los cortes 412 y 415 tienen que ser los cortes dependientes.
Se ha de observar que el uso de la cuarta restricción ilustrativa provoca un demérito con respecto a la robustez contra la pérdida de paquetes. Los cortes normales se usan normalmente para reducir una dependencia o propagación de errores en un entorno con pérdidas. Un fotograma en el que únicamente el primer corte es el corte normal supone un riesgo de que todos los cortes no puedan decodificarse cuando el primer corte no pueda decodificarse.
Además, la siguiente descripción puede usarse como otra restricción. Cuando un corte (corte normal o dependiente) se inicia en el centro de una fila de LCU (es decir, una posición diferente del comienzo de la fila), la siguiente fila de unidades de codificación no se inicia con un corte dependiente (quinta restricción ilustrativa).
Se ha de observar que, como es claro para un experto en la materia, es posible combinar arbitrariamente las restricciones descritas anteriormente. En otras palabras, la primera a quinta restricciones ilustrativas pueden aplicarse en combinación.
Lo siguiente describe adicionalmente otra restricción ilustrativa. Cuando entropy_coding_sync_enabled_flag es igual a 1, una fila de LCU no puede subdividirse en cortes (sexta restricción ilustrativa). Cuando esta restricción se aplica, no se permiten los cortes 412 y 413 en la estructura de corte mostrada en la Figura 17. Por decirlo de otra forma, cuando se permite el procesamiento paralelo de filas de unidades de codificación, se permite únicamente que un corte incluya una fila completa de unidades de codificación o filas completas de unidades de codificación.
Como se ha indicado anteriormente, el flujo de bits incluye los cortes normales y los cortes dependientes. La decodificación de los cortes normales y los cortes dependientes se basa en los parámetros señalizados en el encabezamiento de cortes de los cortes normales. Después de que se determina que únicamente el primer corte en una imagen sería un corte normal y los cortes restantes serían cortes dependientes, la imagen se particiona en cortes.
Cada uno de los cortes incluye todas de un m número de filas de unidades de codificación. En este punto, m es un número entero mayor que o igual a 1.
Cuando se habilitan los cortes dependientes y se habilita uno del WPP y la losa además de o en su lugar de la aplicación de la restricción, un indicador que indica la restricción puede embeberse en el flujo de bits. Por ejemplo, este indicador se embebe en un SPS o un PPS. Se ha de observar que el indicador puede embeberse en otro mensaje, tal como un mensaje de SEI o en cualquier mensaje de información de usabilidad de vídeo (VUI).
El aparato de decodificación de imágenes identifica una restricción que hay que aplicar, a base del indicador. Por ejemplo, esta restricción es que se permite un corte normal únicamente en el comienzo de una fila de LCU (WPP) o una losa. Se ha de observar que esta es solamente una restricción ilustrativa, y puede aplicarse cualquiera de las restricciones anteriormente mencionadas, una combinación de las restricciones o una restricción adicional no descrita explícitamente.
Por ejemplo, el indicador puede ser una bandera de 1 bit que indica, para una restricción predeterminada, si la restricción tiene que aplicarse o no. Pueden estar disponibles restricciones seleccionables y la información que indica una restricción seleccionada se señaliza en el flujo de bits al aparato de decodificación de imágenes. Dicho de forma diferente, en lugar de limitar explícitamente el uso como se describe en los ejemplos anteriores, el aparato de codificación de imágenes puede notificar al aparato de decodificación de imágenes que se usan tales restricciones. Por lo tanto, puede aplicarse cualquiera de los ejemplos con respecto a las restricciones.
Se ha de observar que no es necesario determinar si añadir o no el indicador dependiendo de si se habilita o no el WPP o la losa.
Como se describe anteriormente, esta realización hace posible evitar que el procesamiento de corte dependiente se retarde por al menos dos o al menos tres unidades de codificación, mediante la inicialización de CABAC en vista de los cortes anteriores en el procesamiento paralelo. Con esto, puede realizarse de forma eficiente el procesamiento paralelo de codificación, decodificación y análisis de las filas.
Se ha de observar que la presente invención no está limitada por esta realización en que el procedimiento de corte está limitado. Además, la restricción puede referirse a un corte desde el que puede obtenerse un contexto de CABAC.
Realización 3
En la realización 3, se cambia un procedimiento de inicialización de CABAC para un corte dependiente en un momento de WPP. Específicamente, se cambia la regla de asignación de corte padre para el corte dependiente.
Por ejemplo, se determina una regla en la que un corte dependiente siempre obtiene un encabezamiento de corte y un contexto de CABAC del mismo corte independientemente de subdivisión de una fila de LCU en cortes (y/o un tipo de un corte posterior).
Una instantánea 420 mostrada en la Figura 18 incluye los cortes 421 a 424. En la HEVC actual, el corte 422 es un corte padre del corte 424 dependiente. En otras palabras, se obtiene un encabezamiento de corte del corte 424 dependiente del corte 422, un corte normal anterior más cercano.
Como se describe con referencia a la Figura 9, existe un caso en el que la inicialización de CABAC se realiza en el corte dependiente usando un corte normal en el comienzo de una fila anterior de LCU. Sin embargo, cuando se pierde el corte 422, aunque la inicialización de CABAC puede realizarse en el corte 424, el corte 424 no puede decodificarse debido a la ausencia de información de encabezamiento de corte.
En vista de esto, en esta realización, el corte dependiente tiene, como el corte padre, un corte normal más cercano que se inicia desde la misma fila que el corte dependiente o una fila que precede a la fila del corte dependiente. En esta realización, como se muestra en la Figura 19, el corte padre del corte 424 se establece como el corte 421 de acuerdo con esta regla. La inicialización de CABAC se realiza en el corte 424 dependiente usando un encabezamiento de corte del corte 421 así como los estados de CABAC del corte 421.
Además, una unidad de codificación aritmética de cada corte dependiente establece una dependencia de corte para realizar inicialización a base de un contexto de una unidad de decodificación aritmética del corte padre.
Se ha de observar que la información que indica una tabla de contexto de CABAC usada para inicialización de corte puede señalizarse explícitamente en un mensaje de SEI. En breve, todos los valores de inicialización considerados para usarse para la inicialización de motor de CABAC pueden señalizarse explícitamente en el mensaje de s E i.
Realización 4
La realización 4 describe un caso en el que no se usa el WPP, sino losas.
El problema descrito anteriormente para el WPP también se produce en un caso de este tipo. Sin embargo, la inicialización de tabla de contexto de CABAC indica el establecimiento de una tabla de contexto de CABAC a o bien un valor inicial por defecto o bien un valor previamente almacenado. En el caso de una losa, (incluso cuando la losa se inicia con un corte dependiente) la tabla de contexto de CABAC se inicializa a un valor por defecto en el comienzo de la losa.
Sin embargo, cuando un corte normal está presente en el centro de la losa, necesitan modificarse algunos de los elementos de sintaxis incluidos en un encabezamiento de corte del corte normal. Uno de los elementos de sintaxis es una bandera que indica ACTIVADO/DESACTIVADO de un procesamiento de compensación adaptativa de muestra, por ejemplo. Cuando la bandera indica "ACTIVADO", un motor de CABAC filtra parámetros mientras analiza datos de corte. Como anteriormente, esto se refiere al control de estado del motor de CABAC. Lo siguiente describe el control de estado en detalle a continuación.
La Figura 19 es un diagrama que muestra sintaxis de un encabezamiento de corte de acuerdo con esta realización. Este encabezamiento de corte incluye dependent_slice_flag, un indicador relacionado con una dependencia.
La Figura 20 es un diagrama que muestra una instantánea 500 particionada en dos losas 501 y 502. Como se muestra en la Figura 20, las losas difieren de cortes en el particionamiento de una instantánea con una línea vertical. Una instantánea puede particionarse normalmente en losas. La información de partición de cada una de las losas se señaliza en un conjunto de parámetros de instantánea (PPS) relacionado con la instantánea.
Como se ha indicado anteriormente, la losa es una de las herramientas que habilitan el procesamiento paralelo. En breve, las losas pueden decodificarse en paralelo. Se ha de observar que el procesamiento de filtro de bucle se realiza normalmente finalmente en los límites de losa después de la reconstrucción de losa.
El conjunto de parámetros de instantánea incluye información acerca del número y posiciones de losas en una instantánea. Las losas son similares a los cortes en los que no se permite predicción espacial entre losas. En este punto, la "predicción espacial" indica intra predicción, predicción de vector de movimiento o referencia a un parámetro. En este punto, el parámetro se refiere a un parámetro de compensación adaptativa de muestra, otro parámetro relacionado con una instantánea o un parámetro relacionado con otra losa.
Una unidad de codificación por entropía y una unidad de decodificación por entropía se reinician en el comienzo de cada losa.
La Figura 21A es un diagrama que muestra un orden de procesamiento de unidades de codificación, tales como bloques de árbol de codificación y unidades de codificación más grandes. Este orden también se denomina como exploración en Z o exploración de rasterización. La Figura 21A muestra un caso en el que no se habilita ninguna losa. En otras palabras, la Figura 21A muestra un caso en el que se establece una losa por instantánea. Se ha de observar que puede habilitarse el WPP.
La Figura 21B es un diagrama que muestra un fotograma que incluye dos losas 511 y 512 que resultan de particionar el fotograma con un límite 513. Un orden de procesamiento, cuando dos o más losas están presentes en un fotograma, se determina como se indica a continuación.
Primero, se determina un orden de todas las losas por un orden de exploración de rasterización descrito anteriormente por las LCU. Este orden se inicia a partir de la losa 511 y finaliza en la losa 512 como se muestra en la Figura 21B.
A continuación, se determina un orden de las LCU en cada losa usando el orden de exploración de rasterización normal como se muestra por la flechas en la Figura 21B. Finalmente, la última LCU en cada losa se conecta a la primera LCU en una losa posterior. De esta manera, se determina el orden mostrado en la Figura 21B. Se ha de observar que, por ejemplo, la NPL 3 describe los detalles del orden de procesamiento.
Se usa un orden de exploración de LCU para los cortes. Por lo tanto, cuando un corte A precede a un corte B en orden de codificación, todas las LCU en el corte A preceden a todas las LCU en el corte B.
Por otra parte, cuando se usan las losas, las unidades de codificación se exploran en un orden diferente del orden aplicado cuando se usan únicamente los cortes (no se usa ninguna losa). Específicamente, cuando se usan únicamente los cortes, las unidades de codificación en una instantánea se exploran por la así denominada exploración en Z. La exploración en Z se inicia desde la unidad de codificación superior izquierda en la instantánea, continúa a lo largo de la primera fila a la derecha, y se inicia a partir de la unidad de codificación en el extremo izquierdo de la segunda fila hasta la unidad de codificación en el extremo derecho de la segunda fila después de que se explora el extremo derecho de la primera fila. La exploración continúa hasta la última unidad de codificación en la última fila en un orden de este tipo.
Cuando los cortes se usan como unidades de codificación consecutivas en el orden de exploración en Z, este uso es eficiente. Sin embargo, cuando las losas se usan como las mismas, el orden de codificación o decodificación de las unidades de codificación se cambia a partir del orden de exploración en Z. Específicamente, se realiza la exploración en cada losa en el orden de exploración en Z. En breve, la exploración en el orden de exploración en Z nunca se realiza sobre las losas. Por lo tanto, la codificación o decodificación de las unidades de codificación en la losa se inicia a partir de la unidad de codificación superior izquierda en la losa y finaliza en la unidad de codificación inferior izquierda en la misma. Además, las losas en la instantánea se ordenan en el orden de exploración en Z como anteriormente.
En la norma de HEVC actual, se sitúa una restricción con respecto al uso de losas y cortes en combinación. Específicamente, se permite que únicamente un corte incluya un número entero de losas completas. Además, se permite únicamente que una losa incluya un número entero de cortes completos.
Un elemento de sintaxis tiles_enabled_flag se incluye como parte de un conjunto de parámetros de secuencia (SPS) en sintaxis de un flujo de bits. Establecer este elemento de sintaxis a un valor lógico "1" habilita el uso de losas.
Cuando se usan las losas, no puede usarse el WPP. Por lo tanto, cuando se usan las losas, un elemento de sintaxis entropy_coding_sync_enabled_flag del SPS para controlar el uso del WPP se establece a un valor lógico "0".
Cada una de la Figura 22A a la Figura 22C es un diagrama para ilustrar una restricción cuando se usan simultáneamente losas y cortes. Como se muestra en la Figura 22A, se permite que un corte se subdivida en dos losas. En este ejemplo, un corte (1) incluye toda una instantánea y se subdivide en dos losas que tienen el mismo tamaño.
En un ejemplo mostrado en la Figura 22B, una instantánea se particiona en dos losas. Además, cada una de las losas se subdivide en dos cortes. Específicamente, la instantánea se particiona en una losa 1 y una losa 2. La losa 1 y la losa 2 incluyen la mitad izquierda y la mitad derecha de la instantánea, respectivamente. La losa 1 se subdivide en dos cortes, un corte 1 y un corte 2, y la losa 2 se subdivide en dos cortes, un corte 3 y un corte 4.
La Figura 22C es un diagrama que muestra un corte no permitido y estructura de losa. En este ejemplo, se incluye un corte 1 tanto en una losa 1 como una losa 2. En contraposición, un corte 2 está presente únicamente en la losa 2. Por lo tanto, ni la losa 1 ni la losa 2 incluye un número entero de losas completas. De manera similar, ni el corte 1 ni el corte 2 incluye un número entero de losas completas.
Estas reglas se aplican al uso simultáneo de cortes y losas. Sin embargo, en las reglas no se considera un caso de uso de cortes de diferentes tipos. Por decirlo de otra forma, no se considera si un corte es un corte normal o un corte dependiente.
La Figura 23 es un diagrama que muestra un ejemplo de particionamiento de una instantánea en losas y cortes. Este particionamiento se permite de acuerdo con las restricciones anteriores. El particionamiento corresponde al ejemplo mostrado en la Figura 22B. Los cortes 521 y 522 incluidos en una losa 1 son cortes normales. Los cortes 523 y 524 incluidos en una losa 2 son cortes dependientes.
La Figura 24 es un diagrama que muestra un orden de exploración cuando se usa un único núcleo para el procesamiento de unidades de codificación en una instantánea, especialmente para la decodificación o codificación de las unidades de codificación. Como se muestra en la Figura 24, cuando no se realiza subdivisión de losa, el único núcleo decodifica las unidades de codificación en el orden de exploración en Z.
Sin embargo, un motor de CABAC se reinicializa de acuerdo con la definición de losas, es decir, límites de losa. Dicho de forma diferente, los estados de CABAC en los límites de losa necesitan almacenarse para su inicialización posterior. Por lo tanto, un orden de decodificación de único núcleo requiere saltar en el flujo de bits. Esto es porque la subdivisión de losa cambia el orden de codificación de las unidades de codificación.
Además, cuando se habilitan cortes dependientes, la decodificación de único núcleo es más complicada. Lo siguiente ilustra la decodificación de la instantánea particionada como se muestra en la Figura 23.
En la primera etapa, se decodifica la primera fila de unidad de codificación del corte 521. En la segunda etapa, se decodifica una dirección de corte del corte 522. La dirección de corte se señaliza en un encabezamiento de corte del corte 522. La dirección de corte se expresa en el número de LCU e indica una posición en un flujo de bits en el que se inicia un corte. Además, la dirección de corte es diferente de la primera unidad de codificación en la losa 2.
En la tercera etapa, se decodifica el corte 523. Una dirección de corte de este corte es correcta, pero el corte es un corte dependiente. Por lo tanto, el corte 523 usa el encabezamiento de corte del corte 522 en la losa 1. Por esta razón, el procedimiento de decodificación salta hacia atrás al corte 522 y se decodifica el encabezamiento del corte 522. A continuación, el procedimiento de decodificación salta hacia delante para volver a la decodificación del corte 523. Posteriormente, se inicia la decodificación del corte 523.
Como se desprende de este breve ejemplo, un aparato de decodificación de imágenes necesita saltar hacia atrás y delante en el flujo de bits, y para realizar una comprobación adicional cuando se inicia la decodificación de la losa 2. Esto es porque el uso de los cortes dependientes provoca una dependencia entre las losas.
En respuesta, esta realización consigue un procedimiento para permitir una aplicación efectiva de cortes dependientes y losas. Específicamente, esta realización hace posible realizar seguramente una codificación y decodificación apropiada en un orden normal, poniendo una restricción con respecto al particionamiento de una instantánea en cortes y losas.
El aparato de decodificación de imágenes de acuerdo con esta realización decodifica un flujo de bits de una secuencia de vídeo codificada que incluye fotogramas, incluyendo cada uno cortes de imagen y losas de imagen. Cada uno de los cortes de imagen y de las losas de imagen incluye unidades de codificación. El aparato de decodificación de imágenes incluye una unidad de análisis que extrae (analiza), a partir de un flujo de bits, una losa 1 y una losa 2 codificadas a continuación de la losa 1. Cada uno de los fotogramas se particiona en cortes y losas para eliminar la necesidad de información de partición de la losa 1 en la decodificación de la losa 2 por una unidad de decodificación aritmética.
El aparato de decodificación de imágenes incluye adicionalmente la unidad de decodificación aritmética que decodifica un corte realizando decodificación aritmética en la losa 1 y la losa 2 al menos parcialmente en paralelo.
Además, un aparato de codificación de imágenes de acuerdo con esta realización codifica, en un flujo de bits, un vídeo que incluye cortes de imagen, cada uno subdividido en unidades de codificación, usando al menos parcialmente codificación aritmética.
El aparato de codificación de imágenes incluye: una unidad de generación de flujo de bits que embebe una primera losa y una segunda losa codificada a continuación de la primera losa en el flujo de bits; y una unidad de codificación aritmética que particiona cada uno de los fotogramas en cortes y losas para eliminar la necesidad de información de partición de la primera losa cuando una unidad de decodificación aritmética decodifica la segunda losa, y que codifica cada uno de los cortes realizando codificación aritmética en la primera losa y la segunda losa al menos parcialmente en paralelo.
En la primera restricción ilustrativa de esta realización, cuando se habilitan las losas y al mismo tiempo pueden usarse los cortes dependientes, el corte normal se inicia únicamente en el comienzo de la losa. En breve, cuando tiles_enabled_flag es igual a 1 y al mismo tiempo dependent_slices_enabled_flag es igual a 1, cada corte normal tiene que iniciarse en la posición de inicio de una losa.
En este punto, tanto la entropy_code_sync_enabled_flag como la dependent_slice_enabled_flag se incluyen en un conjunto de parámetros de instantánea.
Se ha de observar que cuando dependent_slices_enabled_flag es igual a 0, únicamente se usan los cortes normales. Con esto, se evita el problema anterior. Esto corresponde al caso en el que todos los cortes son los cortes normales en la instantánea mostrada en la Figura 22B.
Como se ha indicado anteriormente, en la primera restricción ilustrativa, el corte (corte normal) cuyo encabezamiento se usa para otro corte siempre se inicia en el comienzo de la losa. En otras palabras, el corte en el comienzo de una imagen es el corte normal y los otros cortes son los cortes dependientes. En breve, el corte normal se permite únicamente como el corte en el comienzo de la imagen. Además, los cortes distintos del corte en el comienzo de la imagen son siempre los cortes dependientes. Por ejemplo, se permite una instantánea mostrada en la Figura 25C, pero no se permite una instantánea mostrada en la Figura 25A.
En la segunda restricción ilustrativa de esta realización, cuando se habilitan las losas y el corte normal se inicia en la posición distinta de la posición de inicio de la losa, la losa a codificar a continuación no se inicia con el corte dependiente. Por decirlo de otra forma, cuando tiles_enabled_flag es igual a 1 y slice_address es igual a una dirección de inicio de una losa, la siguiente losa no se inicia con el corte dependiente.
Por lo tanto, como se describe con referencia a la Figura 23, el procedimiento de saltar hacia atrás al encabezamiento de corte del corte 522 normal no se produce cuando se decodifica el corte 523 dependiente. En breve, no se permite el corte 523 como el corte dependiente. Esto es porque el corte 522 normal se inicia no en la posición de inicio de la losa, sino en la losa.
En consecuencia, en esta realización, cuando el corte (corte normal) cuyo encabezamiento se usa para otro corte no se inicia en el comienzo de la losa, la losa codificada a continuación de la losa no se inicia a partir de un corte (corte dependiente) que se decodifica usando un encabezamiento de otro corte.
Por lo tanto, en la segunda restricción ilustrativa, cuando se inicia el corte normal en la posición distinta del comienzo de la primera losa, la segunda losa codificada a continuación de la primera losa no se inicia con el corte dependiente. Dicho de forma diferente, cuando al menos uno del segundo corte y un corte posterior de la primera losa es el corte normal, el corte en el comienzo de la segunda losa es el corte normal.
Por ejemplo, como se muestra en la Figura 25A, cuando un corte (3) en una losa 1 está presente, un corte (4) en el comienzo de una losa 2 no puede establecerse como un corte dependiente. Además, cuando al menos uno de un corte (2) y el corte (3) es un corte normal, el corte (4) no puede establecerse como el corte dependiente. Como resultado, como se muestra en la Figura 25B, el corte (4) necesita establecerse como el corte normal. Además, en la segunda restricción ilustrativa, también se permite la instantánea mostrada en la Figura 25C.
En la tercera restricción ilustrativa de esta realización, cuando la losa se inicia con el corte dependiente, se incluye una losa completa en el corte dependiente. En otras palabras, cuando la losa se inicia a partir del corte que se decodifica usando un encabezamiento de otro corte, toda la losa se incluye en el corte.
Por lo tanto, en la tercera restricción ilustrativa, cuando el corte en el comienzo de la tercera losa es el corte dependiente, el corte dependiente incluye toda la tercera losa. Por decirlo de otra forma, la tercera losa incluye únicamente un corte dependiente. Por ejemplo, como se muestra en la Figura 26A, cuando una losa 2 se inicia a partir de un corte dependiente (4), no se permite que la losa 2 incluya cortes. Por lo tanto, como se muestra en la Figura 26B, la losa 2 necesita incluir únicamente un corte dependiente (4).
En la cuarta restricción ilustrativa de esta realización, cuando tiles_enabled_flag es igual a 1 y el corte (corte normal o corte dependiente) se inicia en el centro de la losa, la losa a codificar a continuación no se inicia a partir del corte dependiente. Se ha de observar que la expresión "en el centro de la losa" indica no el centro real, sino que el primer CTB de un corte no es el primer c Tb de una losa. En breve, la expresión "en el centro de la losa" indica dentro de una losa.
Esto significa que cuando un corte no se inicia en el comienzo de una losa, una losa a codificar a continuación no se inicia a partir de un corte que usa un encabezamiento de otro corte. Por decirlo de otra forma, cuando la primera losa incluye un corte que se inicia en una posición distinta del comienzo de la primera losa (la primera losa incluye cortes), la segunda losa no se inicia a partir de un corte dependiente. Por ejemplo, como se muestra en la Figura 27A, cuando una losa 1 incluye losas, no se permite que un corte (4) en el comienzo de una losa 2 se establezca como el corte dependiente. Como resultado, como se muestra en la Figura 27B, el corte (4) en el comienzo de la losa 2 necesita establecerse como un corte normal.
Se ha de observar que pueden combinarse esta realización relacionada con las losas y las otras realizaciones y también pueden combinarse reglas y restricciones particulares.
En la otra restricción ilustrativa de esta realización, cuando tiles_enabled_flag es igual a 1, no se permite el corte dependiente. Dicho de forma diferente, se permite que los cortes dependientes se usen con el WPP, pero no con las losas. Con esto, puede evitarse un problema adicional cuando se usan las losas. En breve, cuando se usan las losas, el corte no usa un encabezamiento de otro corte para la decodificación.
Cuando se habilitan los cortes dependientes y se habilita uno del WPP y la losa además de o en su lugar de la aplicación de la restricción, un indicador que indica la restricción puede embeberse en el flujo de bits. Por ejemplo, este indicador se embebe en un SPS o un PPS. Se ha de observar que el indicador puede embeberse en otro mensaje, tal como un mensaje de SEI o en cualquier mensaje de información de usabilidad de vídeo (VUI).
El aparato de decodificación de imágenes identifica una restricción que hay que aplicar, a base del indicador. Por ejemplo, esta restricción es que un corte normal puede iniciarse únicamente en el comienzo de una losa (comienzo de una fila de LCU en el caso del WPP). Se ha de observar que esta es solamente una restricción ilustrativa, y puede aplicarse cualquiera de las restricciones anteriormente mencionadas, una combinación de las restricciones o una restricción adicional no descrita explícitamente.
Por ejemplo, el indicador puede ser una bandera de 1 bit que indica, para una restricción predeterminada, si la restricción tiene que aplicarse o no. Pueden estar disponibles restricciones seleccionables y la información que indica una restricción seleccionada se señaliza en el flujo de bits al aparato de decodificación de imágenes. Dicho de forma diferente, en lugar de limitar explícitamente el uso como se describe en los ejemplos anteriores, el aparato de codificación de imágenes puede notificar al aparato de decodificación de imágenes que se usan tales restricciones. Por lo tanto, puede aplicarse cualquiera de los ejemplos con respecto a las restricciones.
De acuerdo con una realización ilustrativa desvelada en el presente documento, un procedimiento de decodificación de imágenes incluye obtener, a partir de un flujo de bits, un indicador de restricción que indica que se restringe el particionamiento de una instantánea. De acuerdo con una realización ilustrativa desvelada en el presente documento, un procedimiento de codificación de imágenes incluye embeber, en un flujo de bits, un indicador de restricción que indica que se restringe el particionamiento de una instantánea.
Se ha de observar que no es necesario determinar si añadir o no el indicador dependiendo de si se habilita o no el WPP o la losa. Además, cuando se añade el indicador, no necesita habilitarse el corte dependiente. En breve, el indicador puede añadirse independientemente de si se habilita o no el uso del corte dependiente.
Además, un indicador que indica que un corte padre de un corte objetivo se inicia en el comienzo de una losa puede añadirse a un flujo de bits. En otras palabras, de acuerdo con una realización ilustrativa desvelada en el presente documento, un procedimiento de decodificación de imágenes incluye obtener, a partir de un flujo de bits, un indicador que indica si un corte padre cuyo encabezamiento de corte se usa para un corte dependiente se inicia o no en el comienzo de una losa. De acuerdo con una realización ilustrativa desvelada en el presente documento, un procedimiento de decodificación de imágenes incluye embeber, en un flujo de bits, un indicador que indica si un corte padre cuyo encabezamiento de corte se usa para un corte dependiente se inicia o no en el comienzo de una losa.
Además, un indicador que indica que todos los cortes en una instantánea usan el mismo encabezamiento de corte puede añadirse a un flujo de bits. En otras palabras, este indicador indica que todos los elementos de sintaxis que están presentes en un encabezamiento de un corte normal y ausentes de un encabezamiento de un corte dependiente son los mismos para todos los cortes en la instantánea.
Por lo tanto, un indicador de restricción que indica que se restringe el particionamiento de una instantánea por una regla predeterminada puede incluirse en un flujo de bits.
Además, un indicador que indica si un corte padre de un corte objetivo se inicia o no en el comienzo de una losa puede embeberse en un flujo de bits. En este punto, un encabezamiento del corte padre se usa para el corte objetivo.
De acuerdo con una realización ilustrativa desvelada en el presente documento, un procedimiento de decodificación de imágenes es un procedimiento de decodificación de imágenes de decodificación de un flujo de bits que incluye una señal codificada que resulta de codificar losas y cortes en los que se particiona una imagen, incluyendo el procedimiento decodificar la señal codificada. De acuerdo con una realización ilustrativa desvelada en el presente documento, un procedimiento de codificación de imágenes es un procedimiento de codificación de imágenes de generación de un flujo de bits codificando losas y cortes en los que se particiona una imagen, incluyendo el procedimiento: particionar una imagen en losas y cortes; y codificar las losas y los cortes que resultan a partir de la división.
Cada uno de los cortes es o bien un corte normal o bien un corte dependiente. El corte normal es un corte que tiene, en un encabezamiento de corte, información que se utilizará probablemente para otro corte. El corte dependiente es un corte que se decodifica usando información incluida en un encabezamiento de corte de otro corte. En este punto, el otro corte es, por ejemplo, un corte normal que precede a y que está más cerca del corte dependiente.
En el particionamiento, la imagen se particiona en las losas y los cortes para satisfacer una o más de las restricciones anteriormente mencionadas.
En la decodificación, una primera losa y una segunda losa pueden decodificarse en paralelo y, cuando se inicia la decodificación de la segunda losa, la segunda losa puede decodificarse sin hacer referencia a información de partición que indica una estructura de corte de la primera losa. Además, en el particionamiento, cuando un aparato de decodificación de imágenes decodifica una primera losa y una segunda losa en paralelo, y cuando el aparato de decodificación de imágenes inicia la decodificación de la segunda losa, la imagen puede particionarse en las losas y los cortes para permitir la decodificación de la segunda losa sin hacer referencia a información de partición que indica una estructura de corte de la primera losa.
En este punto, la información de partición es, por ejemplo, información que indica una posición de corte (posición de inicio) o una posición de un encabezamiento de corte. El aparato de decodificación de imágenes salta a la losa objetivo haciendo referencia a la información de partición.
Como se ha indicado anteriormente, el encabezamiento de corte incluye la información (dependent_slice_flag) que indica si el corte es el corte normal o el corte dependiente. En otras palabras, el procedimiento de decodificación de imágenes incluye obtener, a partir de un encabezamiento de corte, información que indica si un corte es un corte normal o un corte dependiente. Además, el procedimiento de codificación de imágenes incluye embeber, en un encabezamiento de corte, información que indica si un corte es un corte normal o un corte dependiente.
El mismo problema descrito para el WPP también se produce para las losas. Por lo tanto, la solución anterior puede aplicarse a las losas. Cuando las losas se habilitan en lugar del WPP, parte en la que se realiza procesamiento paralelo no es una fila de LCU, sino una losa compuesta de LCU. Por decirlo de otra forma, la solución puede aplicarse directamente a la losa sustituyendo la fila de LCU por la losa.
Como se ha indicado anteriormente, el flujo de bits puede incluir los cortes normales y los cortes dependientes, y la decodificación de los cortes normales y los cortes dependientes se basa en los parámetros señalizados en el encabezamiento de cortes de los cortes normales.
De acuerdo con una realización ilustrativa desvelada en el presente documento, cuando un corte normal no se inicia en una posición de inicio de una losa, se aplica una restricción de que un corte dependiente dependiente del corte normal no puede seguir al corte normal.
De acuerdo con una realización ilustrativa desvelada en el presente documento, se aplica una restricción de que una imagen se particiona en cortes para provocar que únicamente el primer corte en la imagen sea un corte normal y que los restantes cortes sean cortes dependientes.
La dependencia de corte se provoca por la unidad de decodificación aritmética de cada corte dependiente usando un encabezamiento de corte de un corte padre.
De acuerdo con una realización ilustrativa desvelada en el presente documento, cuando un corte dependiente es aplicable, un indicador de restricción se embebe en un flujo de bits. El corte dependiente es un corte que incluye datos de imagen codificados y usa parámetros de un encabezamiento de otro corte.
La restricción puede ser cualquiera de las restricciones anteriores, una combinación de tales restricciones, o una restricción distinta de las restricciones ilustrativas.
De acuerdo con una realización ilustrativa desvelada en el presente documento, un aparato es un aparato que decodifica un flujo de bits de una secuencia de vídeo codificada que incluye cortes de imagen y losas de imagen que se codifican al menos parcialmente mediante codificación aritmética, incluyendo el aparato: una unidad de análisis que extrae, a partir de datos para un corte del flujo de bits, un indicador de inicialización que indica si un modelo de probabilidad de decodificación aritmética del corte se inicializa o no con un valor predeterminado; una unidad de control que controla si el modelo de probabilidad de decodificación aritmética se inicializa o no con el valor predeterminado; y una unidad de decodificación aritmética que decodifica el corte mediante decodificación aritmética.
De acuerdo con una realización ilustrativa desvelada en el presente documento, un aparato es un aparato que codifica al menos parcialmente una secuencia de vídeo que incluye cortes de imagen mediante codificación aritmética, para generar un flujo de bits, incluyendo el aparato: una unidad de generación de flujo de bits que embebe, en datos para un corte del flujo de bits, un indicador de inicialización que indica si un modelo de probabilidad de codificación aritmética del corte se inicializa o no con un valor predeterminado; una unidad de control que controla si el modelo de probabilidad de codificación aritmética se inicializa o no con el valor predeterminado; y una unidad de codificación aritmética que codifica el corte.
Por ejemplo, el indicador de inicialización se embebe en datos de encabezamiento del corte.
Por ejemplo, el indicador de inicialización es una bandera de 1 bit. En la bandera de 1 bit, "1" indica que el modo de probabilidad de decodificación aritmética se inicializa con el valor predeterminado y "0" indica que el modo de probabilidad de decodificación aritmética se inicializa por otro procedimiento.
Por ejemplo, un corte de una imagen puede subdividirse en unidades de codificación que corresponden a bloques de píxel de la imagen, y únicamente cuando el corte es un corte dependiente que es un corte que usa parámetros de un encabezamiento de otro corte, la unidad de análisis puede extraer un indicador de inicialización de datos de encabezamiento.
Por ejemplo, únicamente cuando se permite la codificación paralela de losas, la unidad de análisis puede extraer el indicador de inicialización de los datos de encabezamiento. Como alternativa, únicamente cuando un corte se inicia en el comienzo de una losa, la unidad de análisis puede extraer el indicador de inicialización de los datos de encabezamiento.
Por ejemplo, el indicador de inicialización se embebe en un mensaje de SEI fuera de un encabezamiento de corte.
Se ha de observar que la expresión "corte (corte normal o corte dependiente)" usada en la anterior descripción se denomina en ocasiones un "segmento de corte (segmento de corte normal o segmento de corte dependiente)". En este caso, una unidad que incluye uno o más segmentos de corte consecutivos se denomina como un "corte". Específicamente, un corte incluye un segmento de corte normal y uno o más segmentos de corte dependiente consecutivos que siguen el segmento de corte normal. Dicho de forma diferente, cuando un segmento de corte normal sigue inmediatamente a otro segmento de corte normal, un corte incluye únicamente el segmento de corte normal. Además, cuando uno o más segmentos de corte dependiente siguen inmediatamente un segmento de corte normal, un corte incluye el segmento de corte normal y el uno o más segmentos de corte dependiente. En una palabra, un corte varía desde un segmento de corte normal a uno o más cortes dependientes que preceden inmediatamente al siguiente segmento de corte normal.
Cuando se usa una definición de este tipo, las restricciones anteriormente mencionadas para las losas y cortes corresponden a las siguientes definiciones.
Una o ambas de las siguientes condiciones deberán cumplirse para cada corte y losa. (1) Todas las unidades de árbol de codificación en un corte pertenecen a la misma losa. (2) Todas las unidades de árbol de codificación en una losa pertenecen al mismo corte.
En este punto, las unidades de árbol de codificación son las mismas en significado que las LCU y bloques de árbol de codificación anteriormente mencionados.
Además, una o ambas de las siguientes condiciones deberán cumplirse para cada segmento de corte y losa. (1) Todas las unidades de árbol de codificación en un segmento de corte pertenecen a la misma losa. (2) Todas las unidades de árbol de codificación en una losa pertenecen al mismo segmento de corte.
Aunque el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes de acuerdo con las realizaciones se han descrito hasta ahora, la presente invención no se limita a las realizaciones.
El procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes se realizan por el aparato de codificación de imágenes y el aparato de decodificación de imágenes, respectivamente. El aparato de codificación de imágenes y el aparato de decodificación de imágenes tienen la misma estructura que, por ejemplo, las mostradas en la Figura 1 y la Figura 2, respectivamente, y las etapas de características incluidas en el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes se ejecutan por cualquiera de las respectivas unidades de procesamiento mostradas en la Figura 1 y la Figura 2 o unidades de procesamiento no mostradas.
Además, las respectivas unidades de procesamiento incluidas en el aparato de codificación de imágenes y el aparato de decodificación de imágenes de acuerdo con las realizaciones se implementan habitualmente como un LSI que es un circuito integrado. Estas unidades de procesamiento pueden configurarse individualmente como chips individuales o pueden configurarse de modo que una parte o la totalidad de las unidades de procesamiento se incluyen en un único chip.
Adicionalmente, el procedimiento de integración de circuitos no se limita a LSI, y también es posible la implementación a través de un circuito especializado o un procesador de fin general. También puede usarse una Matriz de Puertas Programable en Campo (FPGA), que permite la programación después de la fabricación de LSI o un procesador reconfigurable que permite la reconfiguración de las conexiones y ajustes de las células de circuito dentro del LSI.
En las respectivas realizaciones, los respectivos elementos constituyentes están configurados usando hardware especializado, pero también pueden implementarse ejecutando programas de software adaptados a los respectivos elementos constituyentes. Los respectivos elementos constituyentes pueden implementarse a través de la lectura y ejecución de un programa de software grabado en un medio de grabación, tal como un disco duro o memoria de semiconductores por una unidad de ejecución de programa, tal como a CPU y un procesador.
En otras palabras, cada uno del aparato de codificación de imágenes y del aparato de decodificación de imágenes incluye circuitería de control y almacenamiento eléctricamente conectado a la circuitería de control (accesible desde la circuitería de control). La circuitería de control incluye al menos uno del hardware especializado y la unidad de ejecución de programa. Además, cuando la circuitería de control incluye la unidad de ejecución de programa, el almacenamiento almacena un programa de software ejecutado por la unidad de ejecución de programa.
Además, la presente invención puede ser el programa de software o un medio de grabación legible por ordenador no transitorio en el que se graba el programa. Adicionalmente, no hace falta decir que el programa puede distribuirse a través de un medio de transmisión tal como la Internet.
Además, todas las cifras numéricas usadas para la descripción anterior son solamente ilustrativas para describir la presente invención en términos específicos y, por lo tanto, la presente invención no se limita a las cifras numéricas ilustrativas.
Además, la separación de los bloques funcionales en los diagramas de bloques es meramente un ejemplo, y múltiples bloques funcionales pueden implementarse como un único bloque funcional, un único bloque funcional puede separarse en múltiples bloques funcionales o parte de las funciones de un bloque funcional pueden transferirse a otro bloque funcional. Además, las funciones de bloques de función que tienen funciones similares puede procesarse, en paralelo o por compartición de tiempo, por un único hardware o software.
Además, la secuencia en la que se ejecutan las etapas incluidas en el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes se proporciona como un ejemplo para describir la presente invención en términos específicos y, por lo tanto, son posibles otras secuencias. Adicionalmente, parte de las etapas pueden ejecutarse simultáneamente (en paralelo) con otra etapa.
La materia objeto desvelada en el presente documento se ha de considerar únicamente descriptiva e ilustrativa, y las reivindicaciones adjuntas son de un ámbito que tiene por objeto cubrir y abarcar no solo las realizaciones particulares desveladas, sino también estructuras, procedimientos y/o usos equivalentes. Las diversas modificaciones a las realizaciones que pueden concebirse por los expertos en la materia y formas configuradas combinando elementos constituyentes en diferentes realizaciones sin alejarse de los contenidos de la presente invención se incluyen en el ámbito de uno o más aspectos de la presente invención.
Realización 5
El procesamiento descrito en cada una de las realizaciones puede implementarse simplemente en un sistema informático independiente, grabando, en un medio de grabación, un programa de implementación de las configuraciones del procedimiento de codificación de instantáneas en movimiento (procedimiento de codificación de imágenes) y el procedimiento de decodificación de instantáneas en movimiento (procedimiento de decodificación de imágenes) descrito en cada una de las realizaciones. El medio de grabación puede ser cualquier medio de grabación siempre que el programa pueda grabarse, tal como un disco magnético, un disco óptico, un disco óptico magnético, una tarjeta de CI y una memoria de semiconductores.
A continuación en el presente documento, se describirán las aplicaciones al procedimiento de codificación de instantáneas en movimiento (procedimiento de codificación de imágenes) y al procedimiento de decodificación de instantáneas en movimiento (procedimiento de decodificación de imágenes) descritos en cada una de las realizaciones y sistemas que usan los mismos. El sistema tiene una característica de tener un aparato de codificación y de decodificación de imágenes que incluye un aparato de codificación de imágenes que usa el procedimiento de codificación de imágenes y un aparato de decodificación de imágenes que usa el procedimiento de decodificación de imágenes. Pueden cambiarse otras configuraciones en el sistema según sea apropiado, dependiendo de los casos.
La Figura 28 ilustra una configuración general de un sistema ex100 de suministro de contenido para la implementación de servicios de distribución de contenido. El área para la provisión de servicios de comunicación se divide en células de tamaño deseado, y las estaciones ex106, ex107, ex108, ex109 y ex110 base que son estaciones inalámbricas fijas se sitúan en cada una de las células.
El sistema ex100 de suministro de contenido se conecta a dispositivos, tales como un ordenador ex111, un asistente ex112 digital personal (PDA), una cámara ex113, un teléfono ex114 celular y una máquina ex115 de juegos, mediante Internet ex101, un proveedor ex102 de servicios de Internet, una red ex104 de telefonía, así como a las estaciones ex106 a ex110 base, respectivamente.
Sin embargo, la configuración del sistema ex100 de suministro de contenido no se limita a la configuración mostrada en la Figura 28, y es aceptable una combinación en la que se conecta cualquiera de los elementos. Además, cada dispositivo puede conectarse directamente a la red ex104 de telefonía, en lugar de mediante las estaciones ex106 a ex110 base que son las estaciones inalámbricas fijas. Adicionalmente, los dispositivos pueden interconectarse entre sí a través de una comunicación inalámbrica de corta distancia y otras.
La cámara ex113, tal como una cámara de vídeo digital, es capaz de capturar vídeo. Una cámara ex116, tal como una cámara digital, es capaz de capturar tanto imágenes fijas como vídeo. Adicionalmente, el teléfono ex114 celular puede ser el que cumpla con cualquiera de las normas, tales como el Sistema Global para Comunicaciones Móviles (GSM) (marca registrada), Acceso Múltiple por División de Código (CDMA), Acceso Múltiple por División de Código de Banda Ancha (W-CDMA), Evolución a Largo Plazo (LTE) y Acceso de Alta Velocidad por Paquetes (HSPA). Como alternativa, el teléfono ex114 celular puede ser un Sistema Móvil Personal (PHS).
En el sistema ex100 de suministro de contenido, un servidor ex103 de envío por difusión en continuo se conecta a la cámara ex113 y a otros a través de la red ex104 de telefonía y la estación ex109 base, que posibilita la distribución de imágenes de un espectáculo en directo y otros. En una distribución de este tipo, un contenido (por ejemplo, vídeo de un espectáculo de música en directo) capturado por el usuario que usa la cámara ex113 se codifica como se ha descrito anteriormente en cada una de las realizaciones (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 ex103 de difusión en continuo. Por otra parte, el servidor ex103 de difusión en continuo efectúa distribución de flujo de los datos de contenido transmitidos a los clientes tras sus solicitudes. Los clientes incluyen el ordenador ex111, el PDA ex112, la cámara ex113, el teléfono ex114 celular y la máquina ex115 de juegos que son capaces de decodificar los datos codificados anteriormente mencionados. 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 codificarse por la cámara ex113 o el servidor ex103 de difusión en continuo que transmite los datos, o los procedimientos de codificación pueden compartirse entre la cámara ex113 y el servidor ex103 de difusión en continuo. De manera similar, los datos distribuidos pueden decodificarse por los clientes o el servidor ex103 de difusión en continuo, o los procedimientos de decodificaciones pueden compartirse entre los clientes y el servidor ex103 de difusión en continuo. Adicionalmente, los datos de las imágenes fijas y el vídeo capturado no únicamente por la cámara ex113 sino también por la cámara ex116 pueden transmitirse al servidor ex103 de difusión en continuo a través del ordenador ex111. Los procedimientos de codificación pueden realizarse por la cámara ex116, el ordenador ex111 o el servidor ex103 de difusión en continuo, o compartirse entre ellos.
Adicionalmente, los procedimientos de codificación y decodificación pueden realizarse por un LSI ex500 incluido generalmente en cada uno del ordenador ex111 y los dispositivos. El LSI ex500 puede estar configurado de un único chip o una pluralidad de chips. Software de codificación y decodificación de vídeo puede integrarse en algún tipo de un medio de grabación (tal como un CD-ROM, un disco flexible y un disco duro) que es legible por el ordenador ex111 y otros, y los procedimientos de codificación y decodificación pueden realizarse usando el software. Adicionalmente, cuando el teléfono ex114 celular está equipado con una cámara, pueden transmitirse los datos de vídeo obtenidos por la cámara. Los datos de vídeo son datos codificados por el LSI ex500 incluido en el teléfono ex114 celular.
Adicionalmente, el servidor ex103 de difusión en continuo puede componerse de servidores y ordenadores, y puede descentralizar los datos y procesar los datos descentralizados, grabar o distribuir los datos.
Como se ha descrito anteriormente, los clientes pueden recibir y reproducir los datos codificados en el sistema ex100 de suministro de contenido. En otras palabras, los clientes pueden recibir y decodificar información transmitida por el usuario, y reproducir los datos decodificados en tiempo real en el sistema ex100 de suministro de contenido, de modo que el usuario que no tiene ningún derecho ni equipo particulares puede implementar difusión personal.
Además del ejemplo del sistema ex100 de suministro de contenido, al menos uno del aparato de codificación de instantáneas en movimiento (aparato de codificación de imágenes) y el aparato de decodificación de instantáneas en movimiento (aparato de decodificación de imágenes) descritos en cada una de las realizaciones puede implementarse en un sistema ex200 de difusión digital ilustrado en la Figura 29. Más específicamente, una estación de difusión ex201 comunica o transmite a través de ondas de radio a un satélite ex202 de difusión datos multiplexados obtenidos multiplexando datos de audio y otros en datos de vídeo. Los datos de vídeo son datos codificados por el procedimiento de codificación de instantáneas en movimiento descrito en cada una de las realizaciones (es decir, datos codificados por el aparato de codificación de imágenes de acuerdo con un aspecto de la presente invención). Tras la recepción de los datos multiplexados, el satélite ex202 de difusión transmite ondas de radio para difusión. A continuación, una antena ex204 de uso doméstico con una función de recepción de difusión por satélite recibe las ondas de radio. A continuación, un dispositivo, tal como una televisión ex300 (receptor) y un decodificador ex217 de salón (STB), 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 ex218 (i) lee y decodifica los datos multiplexados grabados en un medio ex215 de grabación, tal como un DVD y un BD, o (ii) codifica señales de vídeo en el medio ex215 de grabación y, en algunos casos, escribe datos obtenidos multiplexando una señal de audio en los datos codificados. El lector/grabador ex218 puede incluir el aparato de decodificación de instantáneas en movimiento o el aparato de codificación de instantáneas en movimiento como se muestra en cada una de las realizaciones. En este caso, las señales de vídeo reproducidas se visualizan en el monitor ex219, y pueden reproducirse por otro dispositivo o sistema usando el medio ex215 de grabación en el que se graban los datos multiplexados. También es posible implementar el aparato de decodificación de instantáneas en movimiento en el decodificador ex217 de salón conectado al cable ex203 para una televisión por cable o a la antena ex204 para difusión por satélite y/o terrestre, para visualizar las señales de vídeo en el monitor ex219 de la televisión ex300. El aparato de decodificación de instantáneas en movimiento puede implementarse no en el decodificador de salón sino en la televisión ex300.
La Figura 30 ilustra la televisión ex300 (receptor) que usa el procedimiento de codificación de instantáneas en movimiento y el procedimiento de decodificación de instantáneas en movimiento descritos en cada una de las realizaciones. La televisión ex300 incluye: un sintonizador ex301 que obtiene o proporciona datos multiplexados obtenidos multiplexando datos de audio a datos de vídeo, a través de la antena ex204 o el cable ex203, etc. que recibe una difusión; una unidad ex302 de modulación/demodulación que demodula los datos multiplexados recibidos o modula datos en datos multiplexados a suministrar al exterior; y una unidad ex303 de multiplexación/demultiplexación que demultiplexa los datos multiplexados modulados en datos de vídeo y datos de audio, o multiplexa datos de vídeo y datos de audio codificados por una unidad ex306 de procesamiento de señal en datos.
La televisión ex300 incluye adicionalmente: una unidad ex306 de procesamiento de señales que incluye una unidad ex304 de procesamiento de señales de audio y una unidad ex305 de procesamiento de señales de vídeo que decodifican datos de audio y datos de vídeo y codifican datos de audio y datos de vídeo, respectivamente (que funciona 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 ex309 de salida que incluye un altavoz ex307 que proporciona la señal de audio decodificada y una unidad ex308 de visualización que visualiza la señal de vídeo decodificada, tal como un visualizador. Adicionalmente, la televisión ex300 incluye una unidad ex317 de interfaz que incluye una unidad ex312 de entrada de operación que recibe una entrada de una operación de usuario. Adicionalmente, la televisión ex300 incluye una unidad ex310 de control que controla en general cada elemento constituyente de la televisión ex300 y una unidad de circuito ex311 de fuente de alimentación que suministra potencia a cada uno de los elementos. Además de la unidad ex312 de entrada de operación, la unidad ex317 de interfaz puede incluir: un puente ex313 que se conecta a un dispositivo externo, tal como el lector/grabador ex218; una unidad ex314 de ranura para posibilitar la conexión del medio ex216 de grabación, tal como una tarjeta de SD; un controlador ex315 para conectarse a un medio de grabación externo, tal como un disco duro; y un módem ex316 para conectarse a una red de telefonía. En este punto, el medio ex216 de grabación puede grabar eléctricamente información usando un elemento de memoria de semiconductores no volátil/volátil para almacenamiento. Los elementos constituyentes de la televisión ex300 se conectan entre sí a través de un bus síncrono.
Primero, se describirá la configuración en la que la televisión ex300 decodifica datos multiplexados obtenidos desde el exterior a través de la antena ex204 y otros y reproduce los datos decodificados. En la televisión ex300, después de la operación de un usuario a través de un controlador ex220 remoto y otros, la unidad ex303 de multiplexación/demultiplexación demultiplexa los datos multiplexados demodulados por la unidad ex302 de modulación/demodulación, bajo el control de la unidad ex310 de control que incluye una CPU. Adicionalmente, la unidad ex304 de procesamiento de señal de audio decodifica los datos de audio demultiplexados, y la unidad ex305 de procesamiento de señales de vídeo decodifica los datos de vídeo demultiplexados, usando el procedimiento de decodificación descrito en cada una de las realizaciones, en la televisión ex300. La unidad ex309 de salida proporciona la señal de vídeo decodificada y la señal de audio al exterior, respectivamente. Cuando la unidad ex309 de salida proporciona la señal de vídeo y la señal de audio, las señales pueden almacenarse temporalmente en las memorias ex318 y ex319 intermedias y otras de modo que las señales se reproducen 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 desde los medios ex215 y ex216 de grabación, tales como un disco magnético, un disco óptico y una tarjeta de SD. A continuación, se describirá una configuración en la que la televisión ex300 codifica una señal de audio y una señal de vídeo y transmite los datos al exterior o escribe los datos en un medio de grabación. En la televisión ex300, tras una operación de usuario a través del controlador ex220 remoto y otros, la unidad ex304 de procesamiento de señales de audio codifica una señal de audio, y la unidad ex305 de procesamiento de señales de vídeo codifica una señal de vídeo, bajo el control de la unidad ex310 de control usando el procedimiento de codificación descrito en cada una de las realizaciones. La unidad ex303 de multiplexación/demultiplexación multiplexa la señal de vídeo y la señal de audio codificadas, y proporciona la señal resultante al exterior. Cuando la unidad ex303 de multiplexación/demultiplexación multiplexa la señal de vídeo y la señal de audio, las señales pueden almacenarse temporalmente en las memorias ex320 y ex321 intermedias y otras de modo que las señales se reproducen en sincronización entre sí. En este punto, las memorias ex318, ex319, ex320 y ex321 intermedias pueden ser varias como se ilustra, o al menos una memoria intermedia puede compartirse en la televisión ex300. Adicionalmente, pueden almacenarse datos en una memoria intermedia de modo que puede evitarse el desbordamiento e infrautilización del sistema entre la unidad ex302 de modulación/demodulación y la unidad ex303 de multiplexación/demultiplexación, por ejemplo.
Adicionalmente, la televisión ex300 puede incluir una configuración para recibir una entrada de AV desde un micrófono o una cámara distinta de la configuración para obtener datos de audio y de vídeo desde una difusión o de 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 recibir únicamente, decodificar y proporcionar al exterior datos, pero no 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 31 ilustra una configuración de una unidad ex400 de reproducción/grabación de información cuando se leen o escriben datos de o en un disco óptico. La unidad ex400 de reproducción/grabación de información incluye los elementos ex401, ex402, ex403, ex404, ex405, ex406 y ex407 constituyentes que se describen en lo sucesivo. El cabezal ex401 óptico irradia un punto láser en una superficie de grabación del medio ex215 de grabación que es un disco óptico para escribir información, y detecta luz reflejada desde la superficie de grabación del medio ex215 de grabación para leer la información. La unidad ex402 de grabación de modulación acciona eléctricamente un láser de semiconductores incluido en el cabezal ex401 óptico y modula la luz de láser de acuerdo con datos grabados. La unidad ex403 de demodulación de reproducción amplifica una señal de reproducción obtenida detectando eléctricamente la luz reflejada desde la superficie de grabación usando un fotodetector incluido en el cabezal ex401 óptico, y demodula la señal de reproducción separando un componente de señal grabado en el medio ex215 de grabación para reproducir la información necesaria. La memoria ex404 intermedia mantiene temporalmente la información a grabarse en el medio ex215 de grabación y la información reproducida desde el medio ex215 de grabación. El motor ex405 de disco gira el medio ex215 de grabación. La unidad ex406 de servo control mueve el cabezal ex401 óptico a una pista de información predeterminada mientras controla el accionamiento de rotación del motor ex405 de disco para seguir el punto láser. La unidad ex407 de control de sistema controla en general la unidad ex400 de reproducción/grabación de información. Los procedimientos de lectura y escritura pueden implementarse por la unidad ex407 de control de sistema usando diversa información almacenada en la memoria ex404 intermedia y generando y añadiendo nueva información según sea necesario, y por la unidad ex402 de grabación de modulación, la unidad ex403 de demodulación de reproducción y la unidad ex406 de servo control que graban y reproducen información a través del cabezal ex401 óptico mientras se operan de una manera coordinada. La unidad ex407 de control de sistema incluye, por ejemplo, un microprocesador y ejecuta procesamiento provocando que un ordenador ejecute un programa para lectura y escritura.
Aunque el cabezal ex401 óptico irradia un punto láser en la descripción, puede realizar grabación de alta densidad usando luz de campo cercano.
La Figura 32 ilustra el medio ex215 de grabación que es el disco óptico. En la superficie de grabación del medio ex215 de grabación, se forman surcos de guía en espiral, y una pista ex230 de información graba, con antelación, información de dirección que indica una posición absoluta en el disco de acuerdo con el cambio en una forma de los surcos de guía. La información de dirección incluye información para determinar posiciones de bloques ex231 de grabación que son una unidad para grabar datos. Reproducir la pista ex230 de información y leer 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 ex215 de grabación incluye un área ex233 de grabación de datos, un área ex232 de circunferencia interior y un área ex234 de circunferencia exterior. El área ex233 de grabación de datos es un área para su uso en la grabación de los datos de usuario. El área ex232 de circunferencia interna y el área ex234 de circunferencia exterior que están dentro y fuera del área ex233 de grabación de datos, respectivamente, son para uso específico excepto para la grabación de los datos de usuario. La unidad 400 de reproducción/grabación de información lee y escribe datos de audio codificados, datos de vídeo codificados o datos multiplexados obtenidos multiplexando los datos de audio y vídeo codificados, desde y en el área ex233 de grabación de datos del medio ex215 de grabación.
Aunque se describe un disco óptico que tiene una capa, tal como un DVD y un BD como un ejemplo en la descripción, el disco óptico no se limita a esto, y puede ser un disco óptico que tiene una estructura de múltiples capas y capaz de grabarse en una parte distinta de la superficie. Adicionalmente, el disco óptico puede tener una estructura para grabación/reproducción multidimensional, tal como grabación de información usando luz de colores con diferentes longitudes de onda en la misma porción del disco óptico y para grabar información que tiene diferentes capas desde diferentes ángulos.
Adicionalmente, un automóvil ex210 que tiene una antena ex205 puede recibir datos desde el satélite ex202 y otros, y reproducir vídeo en un dispositivo de visualización, tal como un sistema de navegación de automóvil ex211 establecido en el automóvil ex210, en el sistema ex200 de difusión digital. En este punto, 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 a partir de la configuración ilustrada en la Figura 30. Lo mismo se cumplirá para la configuración del ordenador ex111, el teléfono ex114 celular y otros.
La Figura 33A ilustra el teléfono ex114 celular que usa el procedimiento de codificación de instantáneas en movimiento y el procedimiento de decodificación de instantáneas en movimiento descrito en las realizaciones. El teléfono ex114 celular incluye: una antena ex350 para la transmisión y recepción de ondas de radio a través de la estación ex110 base; una unidad ex365 de cámara capaz de capturar imágenes en movimiento y fijas; y una unidad ex358 de visualización, tal como una pantalla de cristal líquido, para visualizar datos, tales como vídeo decodificado capturado por la unidad ex365 de cámara o recibido por la antena ex350. El teléfono ex114 celular incluye adicionalmente: una unidad de cuerpo principal que incluye una unidad ex366 de teclas de operación; una unidad ex357 de salida de audio tal como un altavoz para la salida de audio; una unidad ex356 de entrada de audio tal como un micrófono para la entrada de audio; una unidad ex367 de memoria para el almacenamiento de vídeo o instantáneas fijas capturadas, audio grabado, datos codificados o decodificados del vídeo recibido, las instantáneas fijas, correos electrónicos u otros; y una unidad ex364 de ranura que es una unidad de interfaz para un medio de grabación que almacena datos de la misma manera que la unidad ex367 de memoria.
A continuación, se describirá un ejemplo de una configuración del teléfono ex114 celular con referencia a la Figura 33B. En el teléfono ex114 celular, una unidad ex360 de control principal diseñada para controlar en general cada unidad del cuerpo principal que incluye la unidad ex358 de visualización así como la unidad ex366 de teclas de operación se conecta mutuamente, a través de un bus ex370 síncrono, a una unidad ex361 de circuito de fuente de alimentación, una unidad ex362 de control de entrada de operación, una unidad ex355 de procesamiento de señales de vídeo, una unidad de interfaz de cámara ex363, una unidad ex359 de control de pantalla de cristal líquido (LCD), una unidad ex352 de modulación/demodulación, una unidad ex353 de multiplexación/demultiplexación, una unidad ex354 de procesamiento de señales de audio, la unidad ex364 de ranura y la unidad ex367 de memoria.
Cuando se activa una tecla de fin de llamada o una tecla de alimentación mediante una operación de un usuario, la unidad ex361 de circuito de fuente de alimentación suministra a las respectivas unidades con alimentación procedente de un paquete de batería para activar el teléfono ex114 celular.
En el teléfono ex114 celular, la unidad ex354 de procesamiento de señales de audio convierte las señales de audio recogidas por la unidad ex356 de entrada de audio en modo de conversación por voz en señales de audio digital bajo el control de la unidad ex360 de control principal que incluye una CPU, ROM y RAM. A continuación, la unidad ex352 de modulación/demodulación realiza un procesamiento de espectro ensanchado sobre las señales de audio digital, y la unidad ex351 de transmisión y recepción realiza una conversión de digital a analógico y una conversión en frecuencia en los datos, para transmitir los datos resultantes a través de la antena ex350. Asimismo, en el teléfono ex114 celular, la unidad ex351 de transmisión y recepción amplifica los datos recibidos por la antena ex350 en modo de conversación por voz y realiza la conversión en frecuencia y la conversión de digital a analógico en los datos. A continuación, la unidad ex352 de modulación/demodulación realiza un procesamiento de espectro ensanchado inverso en los datos, y la unidad ex354 de procesamiento de señales de audio los convierte en señales de audio analógico, para emitir las mismas a través de la unidad ex357 de salida de audio.
Además, cuando se transmite un correo electrónico en modo de comunicación de datos, datos de texto del correo electrónico introducido al operar la unidad ex366 de teclas de operación y otros del cuerpo principal se envían fuera a la unidad ex360 de control principal a través de la unidad ex362 de control de entrada de operación. La unidad ex360 de control principal provoca que la unidad ex352 de modulación/demodulación realice un procesamiento de espectro ensanchado en los datos de texto, y la unidad ex351 de transmisión y recepción realiza la conversión de digital a analógico y la conversión de frecuencia en los datos resultantes para transmitir los datos a la estación ex110 base a través de la antena ex350. Cuando se recibe un correo electrónico, un procesamiento que es aproximadamente inverso al procesamiento de transmisión de un correo electrónico se realiza en los datos recibidos, y los datos resultantes se proporcionan a la unidad ex358 de visualización.
Cuando se transmite o transmiten vídeo, imágenes fijas o vídeo y audio en modo de comunicación de datos, la unidad ex355 de procesamiento de señales de vídeo comprime y codifica señales de vídeo suministradas desde la unidad ex365 de cámara usando el procedimiento de codificación de instantáneas en movimiento mostrado en cada una de las realizaciones (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 vídeo codificados a la unidad ex353 de multiplexación/demultiplexación. En contraposición, durante cuando la unidad ex365 de cámara captura vídeo, imágenes fijas, y otros, la unidad ex354 de procesamiento de señales de audio codifica las señales de audio recogidas por la unidad ex356 de entrada de audio, y transmite los datos de audio codificados a la unidad ex353 de multiplexación/demultiplexación.
La unidad ex353 de multiplexación/demultiplexación multiplexa los datos de vídeo codificados suministrados desde la unidad ex355 de procesamiento de señales de vídeo y los datos de audio codificados suministrados desde la unidad ex354 de procesamiento de señales de audio, usando un procedimiento predeterminado. A continuación, la unidad ex352 de modulación/demodulación (unidad de circuito de modulación/demodulación) realiza un procesamiento de espectro ensanchado en los datos multiplexados, y la unidad ex351 de transmisión y recepción realiza una conversión de digital a analógico y una conversión en frecuencia en los datos para transmitir los datos resultantes a través de la antena ex350.
Cuando se reciben datos de un archivo de vídeo que está vinculado a una página web y otros en modo de comunicación de datos o cuando se recibe un correo electrónico con vídeo y/o audio adjunto, para decodificar los datos multiplexados recibidos a través de la antena ex350, la unidad ex353 de multiplexación/demultiplexación demultiplexa los datos multiplexados en un flujo de bits de datos de vídeo y un flujo de bits de datos de audio, y suministra a la unidad ex355 de procesamiento de señales de vídeo los datos de vídeo codificados y la unidad ex354 de procesamiento de señales de audio con los datos de audio codificados, a través del bus ex370 síncrono. La unidad ex355 de procesamiento de señales de vídeo decodifica la señal de vídeo usando un procedimiento de decodificación de instantáneas en movimiento que corresponde al procedimiento de codificación de instantáneas en movimiento mostrado en cada una de las realizaciones (es decir, funciona como el aparato de decodificación de imágenes de acuerdo con el aspecto de la presente invención) y, a continuación, la unidad ex358 de visualización visualiza, por ejemplo, el vídeo y las imágenes fijas incluidos en el archivo de vídeo enlazado a la página Web a través de la unidad ex359 de control de LCD. Además, la unidad ex354 de procesamiento de señales de audio decodifica la señal de audio y la unidad ex357 de salida de audio proporciona el audio.
Adicionalmente, de forma similar a la televisión ex300, un terminal tal como el teléfono ex114 celular probablemente tiene 3 tipos de configuraciones de implementación que incluyen no únicamente (i) un terminal de transmisión y recepción que incluye tanto un aparato de codificación como un aparato de decodificación, sino que también (ii) un terminal de transmisión que incluye únicamente un aparato de codificación y (iii) un terminal de recepción que incluye únicamente un aparato de decodificación. Aunque el sistema ex200 de difusión digital recibe y transmite los datos multiplexados obtenidos multiplexando datos de audio a datos de vídeo en la descripción, los datos multiplexados pueden ser datos obtenidos multiplexando no datos de audio sino datos de caracteres relacionados con vídeo en datos de vídeo, y pueden ser no datos multiplexados sino los propios datos de vídeo.
Como tal, el procedimiento de codificación de instantáneas en movimiento y el procedimiento de decodificación de instantáneas en movimiento en cada una de las realizaciones puede usarse en cualquiera de los dispositivos y sistemas descritos. Por lo tanto, pueden obtenerse las ventajas descritas en cada una de las realizaciones.
Adicionalmente, pueden hacerse diversas modificaciones y revisiones en cualquiera de las realizaciones en la presente invención.
Realización 6
Los datos de vídeo pueden generarse conmutando, según sea necesario, entre (i) el procedimiento de codificación de instantáneas en movimiento o el aparato de codificación de instantáneas en movimiento mostrados en cada una de las realizaciones y (ii) un procedimiento de codificación de instantáneas en movimiento o un aparato de codificación de instantáneas en movimiento que se ajusta a una norma diferente, tal como MPEG-2, AVC de MPEG-4 y VC-1.
En este punto, cuando se genera una pluralidad de datos de vídeo que se ajustan a las diferentes normas y se decodifican a continuación, necesitan seleccionarse los procedimientos de decodificación para ajustarse a las diferentes normas. Sin embargo, ya que no puede detectarse qué norma se ajusta cada uno de la pluralidad de los datos de vídeo a codificar, no puede seleccionarse un procedimiento de decodificación apropiado.
En vista de esto, los datos multiplexados obtenidos multiplexando datos de audio y otros en datos de vídeo tienen una estructura que incluye información de identificación que indica con qué norma se ajustan los datos de vídeo. En lo sucesivo se describirá la estructura específica de los datos multiplexados que incluyen los datos de vídeo generados en el procedimiento de codificación de instantáneas en movimiento y por el aparato de codificación de instantáneas en movimiento mostrados en cada una de las realizaciones. Los datos multiplexados son un flujo digital en el formato de Flujo de Transporte de MPEG-2.
La Figura 34 ilustra una estructura de los datos multiplexados. Como se ilustra en la Figura 34, los datos multiplexados pueden obtenerse multiplexando al menos uno de un flujo de vídeo, un flujo de audio, un flujo de gráficos de presentación (PG) y un flujo de gráficos interactivo. El flujo de vídeo representa vídeo primario y vídeo secundario de una película, el flujo de audio (IG) representa una parte de audio primario y una parte de audio secundario a mezclarse con la parte de audio primario, y el flujo de gráficos de presentación representa subtítulos de la película. En este punto, el vídeo primario es vídeo normal a visualizarse en una pantalla, y el vídeo secundario es vídeo a visualizarse en una ventana más pequeña en el vídeo primario. Adicionalmente, el flujo de gráficos interactivo representa una pantalla interactiva a generarse disponiendo los componentes de la GUI en una pantalla. El flujo de vídeo se codifica en el procedimiento de codificación de instantáneas en movimiento o por el aparato de codificación de instantáneas en movimiento mostrados en cada una de las realizaciones, o en un procedimiento de codificación de instantáneas en movimiento o por un aparato de codificación de instantáneas en movimiento que se ajustan a una norma convencional, tal como MPEG-2, AVC de MPEG-4 y VC-1. El flujo de audio se codifica de acuerdo con una norma, tal como Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD y PCM lineal.
Cada flujo incluido en los datos multiplexados se identifica por PID. Por ejemplo, se asigna 0x1011 al flujo de vídeo a usarse para vídeo de una película, se asigna 0x1100 a 0x111F a los flujos de audio, se asigna 0x1200 a 0x121F al flujo de gráficos de presentación, se asigna 0x1400 a 0x141F a los flujos de gráficos interactivos, se asigna 0x1B00 a 0x1B1F a los flujos de vídeo a usarse para vídeo secundario de la película y se asigna 0x1A00 a 0x1A1F a los flujos de audio a usarse para el audio secundario a mezclarse con el audio principal.
La Figura 35 ilustra esquemáticamente cómo se multiplexan datos. Primero, un flujo ex235 de vídeo compuesto por fotogramas de vídeo y un flujo ex238 de audio compuesto por tramas de audio se transforman en un flujo ex236 de paquetes de<p>E<s>y un flujo ex239 de paquetes de<p>E<s>, y adicionalmente en paquetes ex237 de TS y paquetes ex240 de TS, respectivamente. De manera similar, los datos de un flujo ex241 de gráficos de presentación y los datos de un flujo ex244 de gráficos interactivo se transforman en un flujo ex242 de paquetes de PES y un flujo ex245 de paquetes de PES, y adicionalmente en paquetes ex243 de TS y paquetes ex246 de TS, respectivamente. Estos paquetes de TS se multiplexan en un flujo para obtener datos multiplexados ex247.
La Figura 36 ilustra cómo se almacena un flujo de vídeo en un flujo de paquetes de PES en más detalle. La primera barra en la Figura 36 muestra un flujo de fotogramas de vídeo en un flujo de vídeo. La segunda barra muestra el flujo de paquetes de PES. Como se indica por las flechas indicadas como yy1, yy2, yy3 y yy4 en la Figura 36, el flujo de vídeo se divide en instantáneas como instantáneas de tipo I, instantáneas de tipo B e instantáneas de tipo P cada una de las cuales es una unidad de presentación de vídeo, las instantáneas se almacenan en una carga útil de cada uno de los paquetes de PES. Cada uno de los paquetes de PES tiene un encabezamiento de PES, y el encabezamiento de PES almacena una Indicación de Tiempo de Presentación (PTS) que indica un tiempo de visualización de la instantánea, y una Indicación de Tiempo de Decodificación (DTS) que indica un tiempo de decodificación de la instantánea.
La Figura 37 ilustra un formato de paquetes de TS a escribir finalmente en los datos multiplexados. Cada uno de los paquetes de TS es un paquete de longitud fija de 188 bytes que incluye un encabezamiento de TS de 4 bytes que tiene información, tal como una PID para identificar un flujo y una carga útil de TS de 184 bytes para almacenar datos. Los paquetes de PES se dividen y se almacenan en las cargas útiles de TS, respectivamente. Cuando se usa un BD ROM, a cada uno de los paquetes de TS se le proporciona un TP_Extra_Header de 4 bytes, resultando por lo tanto en paquetes de origen de 192 bytes. Los paquetes de origen se escriben en los datos multiplexados. El TP_Extra_Header almacena información tal como una Arrival_Time_Stamp (ATS). La ATS muestra un tiempo de inicio de transferencia en el que se ha de transferir cada uno de los paquetes de TS a un filtro de PID. Los paquetes de origen se disponen en los datos multiplexados como se muestra en la parte inferior de la Figura 37. Los números que incrementan desde la cabecera de los datos multiplexados se denominan números de paquete de origen (SPN).
Cada uno de los paquetes de TS incluidos en los datos multiplexados incluye no únicamente flujos de audio, vídeo, subtítulos y otros, sino también una Tabla de Asociación de Programa (PAT), una Tabla de Mapa de Programa (PMT) y una Referencia de Reloj de Programa (PCR). La PAT muestra lo que indica una PID en una PMT usada en los datos multiplexados, y una PID de la propia PAT se registra como cero. La PMT almacena las PID de los flujos de vídeo, audio, subtítulos y otros incluidos en los datos multiplexados e información de atributos de los flujos que corresponden a las PID. La PMT también tiene diversos descriptores relacionados con los datos multiplexados. Los descriptores tienen información, tal como información de control de copia, que muestra si se permite o no el copiado de los datos multiplexados. La PCR almacena información de tiempo de STC que se corresponde con una ATS que muestra cuándo se transfiere el paquete de PCR a un decodificador, para conseguir sincronización entre un Reloj de Tiempo de Llegada (ATC) que es el eje de tiempo de las ATS, y un Reloj de Tiempo de Sistema (STC) que es un eje de tiempo de las PTS y DTS.
La Figura 38 ilustra la estructura de datos de la PMT en detalle. Un encabezamiento de PMT se dispone en la parte superior de la PMT. El encabezamiento de la PMT describe la longitud de datos incluidos en la PMT y otros. Una pluralidad de descriptores relacionados con los datos multiplexados se disponen después del encabezamiento de PMT. La información tal como la información de control de copia se describe en los descriptores. Después de los descriptores, se dispone una pluralidad de piezas de la información de flujo relacionados con los flujos incluidos en los datos multiplexados. Cada pieza de la información de flujo incluye descriptores de flujo que cada uno describe información, tal como un tipo de flujo para identificar un códec de compresión de un flujo, una PID de flujo, e información de atributo de flujo (tal como una tasa de tramas o una relación de aspecto). Los descriptores de flujo son iguales en número al número de flujos en los datos multiplexados.
Cuando los datos multiplexados se graban en un medio de grabación y otros, se graban juntos con ficheros de información de datos multiplexados.
Cada uno de los ficheros de información de datos multiplexados es información de gestión de los datos multiplexados como se muestra en la Figura 39. Los ficheros de información de datos multiplexados están en una correspondencia uno a uno con los datos multiplexados, y cada uno de los ficheros incluye información de datos multiplexados, información de atributo de flujo y un mapa de entrada.
Como se ilustra en la Figura 39, la información de datos multiplexados incluye una tasa de sistema, un tiempo de inicio de reproducción y un tiempo de fin de reproducción. La tasa de sistema indica la tasa de trasferencia máxima a la que un decodificador objetivo de sistema que se va a describir más adelante transfiere los datos multiplexados a un filtro de PID. Los intervalos de las ATS incluidas en los datos multiplexados se establecen para que no sean superiores a una tasa de sistema. El tiempo de inicio de reproducción indica una PTS en una trama de vídeo en la cabecera de los datos multiplexados. Se añade un intervalo de una trama a una PTS en una trama de vídeo al final de los datos multiplexados, y la PTS se establece al tiempo de fin de reproducción.
Como se muestra en la Figura 40, se registra una pieza de información de atributo en la información de atributo de flujo, para cada PID de cada flujo incluido en los datos multiplexados. Cada pieza de información de atributo tiene diferente información dependiendo de si el correspondiente flujo es un flujo de vídeo, un flujo de audio, un flujo de gráficos de presentación o un flujo de gráficos interactivo. Cada pieza de información de atributo de flujo de vídeo lleva información que incluye qué tipo de códec de compresión se usa para comprimir el flujo de vídeo, y la resolución, relación de aspecto y tasa de tramas de las piezas de datos de instantánea que se incluyen en el flujo de vídeo. Cada pieza de información de atributo de flujo de audio lleva información que incluye qué clase de códec de compresión se usa para comprimir el flujo de audio, cuántos canales se incluyen en el flujo de audio, qué idioma soporta el flujo de audio, y cómo de alta es la frecuencia de muestreo. La información de atributo de flujo de vídeo y la información de atributo de flujo de audio se usan para inicialización de un decodificador antes de que el reproductor reproduzca la información.
En la presente realización, los datos multiplexados a usarse son de un tipo de flujo incluido en la PMT. Adicionalmente, cuando los datos multiplexados se graban en un medio de grabación, se usa la información de atributo de flujo de vídeo incluida en la información de datos multiplexados. Más específicamente, el procedimiento de codificación de instantáneas en movimiento o el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones incluyen una etapa o una unidad para la asignación de información única que indica datos de vídeo generados por el procedimiento de codificación de instantáneas en movimiento o el aparato de codificación de instantáneas en movimiento en cada una de las realizaciones, al tipo de flujo incluido en la PMT o la información de atributo de flujo de vídeo. Con la configuración, los datos de vídeo generados por el procedimiento de codificación de instantáneas en movimiento o el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones pueden distinguirse de los datos de vídeo que se ajustan a otra norma.
Adicionalmente, la Figura 41 ilustra etapas del procedimiento de decodificación de instantáneas en movimiento de acuerdo con la presente realización. En la etapa exS100, el tipo de flujo incluido en la PMT o la información de atributo de flujo de vídeo incluido en la información de datos multiplexados se obtiene a partir de los datos multiplexados. A continuación, en la etapa exS101, se determina si el tipo de flujo o la información de atributo de flujo de vídeo indica o no que los datos multiplexados se generan por el procedimiento de codificación de instantáneas en movimiento o el aparato de codificación de instantáneas en movimiento en cada una de las realizaciones. Cuando se determina que el tipo de flujo o la información de atributo de flujo de vídeo indica que los datos multiplexados se generan por el procedimiento de codificación de instantáneas en movimiento o el aparato de codificación de instantáneas en movimiento en cada una de las realizaciones, en la etapa exS102, la decodificación se realiza por el procedimiento de decodificación de instantáneas en movimiento en cada una de las realizaciones. Adicionalmente, cuando el tipo de flujo o la información de atributo de flujo de vídeo indican que se ajustan a las normas convencionales, tal como MPEG-2, MPEG-4 AVC y VC-1, en la etapa exS103, la decodificación se realiza por un procedimiento de decodificación de instantáneas en movimiento que se ajusta a las normas convencionales.
Como tal, asignar un nuevo valor único al tipo de flujo o la información de atributo de flujo de vídeo habilita la determinación de si el procedimiento de decodificación de instantáneas en movimiento o el aparato de decodificación de instantáneas en movimiento que se describen en cada una de las realizaciones pueden realizar o no decodificación. Incluso cuando se introducen datos multiplexados que se ajustan a una norma diferente, puede seleccionarse un procedimiento o aparato de decodificación apropiado. Por lo tanto, se hace posible decodificar información sin error alguno. Adicionalmente, el procedimiento o aparato de codificación de instantáneas en movimiento o el procedimiento o aparato de decodificación de instantáneas en movimiento en la presente realización puede usarse en los dispositivos y sistemas anteriormente descritos.
Realización 7
Cada uno del procedimiento de codificación de instantáneas en movimiento, el aparato de codificación de instantáneas en movimiento, el procedimiento de decodificación de instantáneas en movimiento y el aparato de decodificación de instantáneas en movimiento en cada una de las realizaciones se consigue habitualmente en forma de un circuito integrado o un Circuito Integrado a Gran Escala (LSI). Como un ejemplo del LSI, la Figura 42 ilustra una configuración del LSI ex500 que se fabrica en un chip. El LSI ex500 incluye los elementos ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 y ex509 que se van a describir a continuación, y los elementos se conectan entre sí a través de un bus ex510. La unidad ex505 de circuito de fuente de alimentación se activa suministrando a cada uno de los elementos potencia cuando se activa la unidad ex505 de circuito de fuente de alimentación.
Por ejemplo, cuando se realiza codificación, el LSI ex500 recibe una señal de AV desde un micrófono ex117, una cámara ex113 y otros a través de una ES ex509 de AV bajo el control de una unidad ex501 de control que incluye una CPU ex502, un controlador ex503 de memoria, un controlador ex504 de flujo y una unidad ex512 de control de frecuencia de accionamiento. La señal de AV recibida se almacena temporalmente en una memoria externa ex511, tal como una SDRAM. Bajo el control de la unidad ex501 de control, los datos almacenados se segmentan en porciones de datos de acuerdo con la cantidad de procesamiento y velocidad a transmitir a una unidad ex507 de procesamiento de señales. A continuación, la unidad ex507 de procesamiento de señales codifica una señal de audio y/o una señal de vídeo. En este punto, la codificación de la señal de vídeo es la codificación descrita en cada una de las realizaciones. Adicionalmente, la unidad ex507 de procesamiento de señales multiplexa en ocasiones los datos de audio codificados y los datos de vídeo codificados, y una ES ex506 de flujo proporciona los datos multiplexados al exterior. Los datos multiplexados proporcionados se transmiten a la estación ex107 base o se escriben en el medio ex215 de grabación. Cuando se multiplexan conjuntos de datos, los datos deberían almacenarse temporalmente en la memoria ex508 intermedia de modo que los conjuntos de datos se sincronizan entre sí.
Aunque la memoria ex511 es un elemento fuera del LSI ex500, puede incluirse en el LSI ex500. La memoria ex508 intermedia no se limita a una memoria intermedia, sino que puede estar compuesta por memorias intermedias. Adicionalmente, el LSI ex500 puede fabricarse en un chip o una pluralidad de chips.
Adicionalmente, aunque la unidad ex501 de control incluye la CPU ex502, el controlador ex503 de memoria, el controlador ex504 de flujo, la unidad ex512 de control de frecuencia de accionamiento, la configuración de la unidad ex501 de control no se limita a esto. Por ejemplo, la unidad ex507 de procesamiento de señales puede incluir adicionalmente una CPU. La inclusión de otra CPU en la unidad ex507 de procesamiento de señales puede mejorar la velocidad de procesamiento. Adicionalmente, como otro ejemplo, la CPU ex502 puede servir como o ser una parte de la unidad ex507 de procesamiento de señales y, por ejemplo, puede incluir una unidad de procesamiento de señales de audio. En un caso de este tipo, la unidad ex501 de control incluye la unidad ex507 de procesamiento de señales o la CPU ex502 que incluye una parte de la unidad ex507 de procesamiento de señales.
El nombre usado en el presente documento es LSI, pero también puede denominarse CI, sistema LSI, súper LSI o ultra LSI dependiendo del grado de integración.
Además, las maneras para conseguir la integración no se limitan al LSI, y un circuito especial o un procesador de fin general y así sucesivamente también pueden conseguir la integración. La Matriz de Puertas Programables en Campo (FPGA) que puede programarse después de la fabricación de LSI o un procesador reconfigurable que permite la reconfiguración de la conexión o configuración de un LSI puede usarse para el mismo fin. Un dispositivo lógico programable de este tipo puede ejecutar habitualmente el procedimiento de codificación de instantáneas en movimiento y el procedimiento de decodificación de instantáneas en movimiento descrito en cada una de las realizaciones, cargando o leyendo, de una memoria, un programa incluido en software o firmware.
En el futuro, con el avance de la tecnología de semiconductores, una tecnología nueva puede sustituir al LSI. Los bloques funcionales pueden integrarse usando una tecnología de este tipo. La posibilidad es que la presente invención se aplique a biotecnología.
Realización 8
Cuando se decodifican datos de vídeo generados en el procedimiento de codificación de instantáneas en movimiento o por el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones, en comparación con cuando se decodifican datos de vídeo que se ajustan a una norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, la cantidad de procesamiento probablemente aumenta. Por lo tanto, el LSI ex500 necesita establecerse a una frecuencia de accionamiento más alta que la de la CPU ex502 a usarse cuando se decodifican datos de vídeo que se ajustan a la norma convencional. Sin embargo, cuando la frecuencia de accionamiento se establece más alta, existe un problema de que el consumo de potencia aumenta.
En vista de esto, el aparato de decodificación de instantáneas en movimiento, tal como la televisión ex300 y el LSI ex500 están configurados para determinar a qué norma se ajustan los datos de vídeo, y conmutar entre las frecuencias de accionamiento de acuerdo con la norma determinada. La Figura 43 ilustra una configuración ex800 en la presente realización. Una unidad ex803 de conmutación de frecuencia de accionamiento establece una frecuencia de accionamiento a una frecuencia de accionamiento superior cuando se generan datos de vídeo mediante el procedimiento de codificación de instantáneas en movimiento o el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones. A continuación, la unidad ex803 de conmutación de frecuencia de accionamiento ordena a una unidad ex801 de procesamiento de decodificación que ejecuta el procedimiento de decodificación de instantáneas en movimiento descrito en cada una de las realizaciones para decodificar los datos de vídeo. Cuando los datos de vídeo se ajustan a la norma convencional, la unidad ex803 de conmutación de frecuencia de accionamiento establece una frecuencia de accionamiento a una frecuencia de accionamiento más baja que la de los datos de vídeo generados por el procedimiento de codificación de instantáneas en movimiento o el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones. A continuación, la unidad ex803 de conmutación de frecuencia de accionamiento ordena a la unidad ex802 de procesamiento de decodificación que se ajusta a la norma convencional que decodifique los datos de vídeo.
Más específicamente, la unidad ex803 de conmutación de frecuencia de accionamiento incluye la CPU ex502 y la unidad ex512 de control de frecuencia de accionamiento en la Figura 42. En este punto, cada una de la unidad ex801 de procesamiento de decodificación que ejecuta el procedimiento de decodificación de instantáneas en movimiento descrito en cada una de las realizaciones y la unidad ex802 de procesamiento de decodificación que se ajusta a la norma convencional corresponde a la unidad ex507 de procesamiento de señales en la Figura 42. La CPU ex502 determina a qué norma se ajustan los datos de vídeo. A continuación, la unidad ex512 de control de frecuencia de accionamiento determina una frecuencia de accionamiento a base de una señal desde la CPU ex502. Adicionalmente, la unidad ex507 de procesamiento de señales decodifica los datos de vídeo a base de la señal desde la CPU ex502. Por ejemplo, la información de identificación descrita en la realización 6 se usa probablemente para identificar los datos de vídeo. La información de identificación no se limita a la descrita en la realización 6 sino que puede ser cualquier información siempre que la información indique a qué norma se ajustan los datos de vídeo. Por ejemplo, cuando a qué norma se ajustan los datos de vídeo puede determinarse a base de una señal externa para determinar que los datos de vídeo se usan para una televisión o un disco, etc., la determinación puede realizarse a base de una señal externa de este tipo. Adicionalmente, la CPU ex502 selecciona una frecuencia de accionamiento a base de, por ejemplo, una tabla de consulta en la que las normas de los datos de vídeo se asocian con las frecuencias de accionamiento como se muestra en la Figura 45. La frecuencia de accionamiento puede seleccionarse almacenando la tabla de consulta en la memoria ex508 intermedia y en una memoria interna de un LSI, y con referencia a la tabla de búsqueda por la CPU ex502.
La Figura 44 ilustra etapas de ejecución de un procedimiento en la presente realización. Primero, en la etapa exS200, la unidad ex507 de procesamiento de señales obtiene información de identificación desde los datos multiplexados. A continuación, en la etapa exS201, la CPU ex502 determina si los datos de vídeo se generan o no mediante el procedimiento de codificación y el aparato de codificación descritos en cada una de las realizaciones, a base de la información de identificación. Cuando los datos de vídeo se generan por el procedimiento de codificación de instantáneas en movimiento y el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones, en la etapa exS202, la CPU ex502 transmite una señal para establecer la frecuencia de accionamiento a una frecuencia de accionamiento más alta a la unidad ex512 de control de frecuencia de accionamiento. A continuación, la unidad ex512 de control de frecuencia de accionamiento establece la frecuencia de accionamiento a la frecuencia de accionamiento más alta. Por otra parte, cuando la información de identificación indica que los datos de vídeo se ajustan a la norma convencional, tal como MPEG-2, AVC de MPEG-4 y VC-1, en la etapa exS203, la CPU ex502 transmite una señal para establecer la frecuencia de accionamiento a una frecuencia de accionamiento más baja a la unidad ex512 de control de frecuencia de accionamiento. A continuación, la unidad ex512 de control de frecuencia de accionamiento establece la frecuencia de accionamiento a la frecuencia de accionamiento más baja que la de en el caso en el que los datos de vídeo se generan por el procedimiento de codificación de instantáneas en movimiento y el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones.
Adicionalmente, junto con la conmutación de las frecuencias de accionamiento, el efecto de conservación de potencia puede mejorarse cambiando la tensión a aplicar al LSI ex500 o a un aparato que incluye el LSI ex500. Por ejemplo, cuando la frecuencia de accionamiento se establece más baja, la tensión a aplicar al LSI ex500 o al aparato que incluye el LSI ex500 probablemente se establece a una tensión inferior que en el caso en el que la frecuencia de accionamiento se establece más alta.
Adicionalmente, cuando la cantidad de procesamiento para decodificación es mayor, la frecuencia de accionamiento puede establecerse más alta, y cuando la cantidad de procesamiento para decodificación es menor, la frecuencia de accionamiento puede establecerse más baja que el procedimiento para establecer la frecuencia de accionamiento. Por lo tanto, el procedimiento de establecimiento no se limita a los anteriormente descritos. Por ejemplo, cuando la cantidad de procesamiento para decodificar datos de vídeo que se ajustan a MPEG-4 AVC es mayor que la cantidad de procesamiento para decodificar datos de vídeo generados por el procedimiento de codificación de instantáneas en movimiento y el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones, la frecuencia de accionamiento se establece probablemente en orden inverso al establecimiento descrito anteriormente.
Adicionalmente, el procedimiento para establecer la frecuencia de accionamiento no se limita al procedimiento para establecer la frecuencia de accionamiento más baja. Por ejemplo, cuando la información de identificación indica que los datos de vídeo se generan por el procedimiento de codificación de instantáneas en movimiento y el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones, la tensión a aplicarse al LSI ex500 o al aparato que incluye el LSI ex500 se establece probablemente más alta. Cuando la información de identificación indica que los datos de vídeo se ajustan a la norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, la tensión a aplicarse al LSI ex500 o al aparato que incluye el LSI ex500 probablemente se establece más baja. Como otro ejemplo, cuando la información de identificación indica que los datos de vídeo se generan por el procedimiento de codificación de instantáneas en movimiento y el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones, el accionamiento de la CPU ex502 probablemente no tiene que suspenderse. Cuando la información de identificación indica que los datos de vídeo se ajustan a la norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, el accionamiento de la CPU ex502 se suspende probablemente en un momento dado puesto que la CPU ex502 tiene capacidad de procesamiento adicional. Incluso cuando la información de identificación indica que los datos de vídeo se generan por el procedimiento de codificación de instantáneas en movimiento y el aparato de codificación de instantáneas en movimiento descritos en cada una de las realizaciones, en el caso en el que la CPU ex502 tiene capacidad de procesamiento adicional, el accionamiento de la CPU ex502 se suspende probablemente en un momento dado. En un caso de este tipo, el tiempo de suspensión probablemente se establece más corto que en el caso cuando la información de identificación indica que los datos de vídeo se ajustan a la norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1.
Por consiguiente, el efecto de conservación de potencia puede mejorarse conmutando entre las frecuencias de accionamiento de acuerdo con la norma a la que se ajustan los datos de vídeo. Adicionalmente, cuando el LSI ex500 o el aparato que incluye el LSI ex500 se accionan usando una batería, la duración de la batería puede extenderse con el efecto de conservación de potencia.
Realización 9
Existen casos en los que una pluralidad de datos de vídeo que se ajustan a diferentes normas, se proporcionan a los dispositivos y sistemas, tales como una televisión y un teléfono celular. Para habilitar la decodificación de la pluralidad de datos de vídeo que se ajustan a las diferentes normas, la unidad ex507 de procesamiento de señales del LSI ex500 necesita ajustarse a las diferentes normas. Sin embargo, el aumento en la escala del circuito del LSI ex500 y el aumento en el coste surgen con el uso individual de las unidades ex507 de procesamiento de señal que se ajustan a las respectivas normas.
En vista de esto, lo que se concibe es una configuración en la que la unidad de procesamiento de decodificación de implementación del procedimiento de decodificación de instantáneas en movimiento descrito en cada una de las realizaciones y la unidad de procesamiento de decodificación que se ajusta a la norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, se comparten parcialmente. Ex900 en la Figura 46A muestra un ejemplo de la configuración. Por ejemplo, el procedimiento de decodificación de instantáneas en movimiento descrito en cada una de las realizaciones y el procedimiento de decodificación de instantáneas en movimiento que se ajusta a MPEG-4 AVC tienen, parcialmente en común, los detalles de procesamiento, tal como codificación por entropía, cuantificación inversa, filtrado de desbloqueo y predicción de movimiento compensado. Los detalles de procesamiento a compartirse probablemente incluyen el uso de una unidad ex902 de procesamiento de decodificación que se ajusta a MPEG-4 AVC. En contraposición, una unidad ex901 de procesamiento de decodificación especializada se usa probablemente para otro procesamiento que es único para un aspecto de la presente invención y no se ajusta a MPEG-4 AVC. Ya que el aspecto de la presente invención se caracteriza por el particionamiento de una instantánea en particular, por ejemplo, la unidad ex901 de procesamiento de decodificación especializada se usa para el particionamiento de una instantánea. De otra manera, la unidad de procesamiento de decodificación se comparte probablemente para uno de la cuantificación inversa, decodificación por entropía, filtrado de desbloqueo y compensación de movimiento, o todo el procesamiento. La unidad de procesamiento de decodificación de implementación del procedimiento de decodificación de instantáneas en movimiento descrito en cada una de las realizaciones puede compartirse para que se comparta el procesamiento, y puede usarse una unidad de procesamiento de decodificación especializada de procesamiento única para el de MPEG-4 AVC.
Adicionalmente, ex1000 en la Figura 46B muestra otro ejemplo en el que el procesamiento se comparte parcialmente. Este ejemplo usa una configuración que incluye una unidad ex1001 de procesamiento de decodificación especializada que soporta el procesamiento único de un aspecto de la presente invención, una unidad ex1002 de procesamiento de decodificación especializada que soporta el procesamiento único de otra norma convencional y una unidad ex1003 de procesamiento de decodificación que soporta procesamiento a compartirse entre el procedimiento de decodificación de instantáneas en movimiento de acuerdo con el aspecto de la presente invención y el procedimiento de decodificación de instantáneas en movimiento convencional. En este punto, las unidades ex1001 y ex1002 de procesamiento de decodificación especializadas no están necesariamente especializadas para el procesamiento de acuerdo con el aspecto de la presente invención y el procesamiento de la norma convencional, respectivamente, y pueden ser capaces de implementar un procesamiento general. Adicionalmente, la configuración de la presente realización puede implementarse por el LSI ex500.
En este sentido, la reducción de la escala del circuito de un LSI y la reducción del coste son posibles compartiendo la unidad de procesamiento de decodificación para el procesamiento a compartirse entre el procedimiento de decodificación de instantáneas en movimiento de acuerdo con el aspecto de la presente invención y el procedimiento de decodificación de instantáneas en movimiento que se ajustan a la norma convencional.
rAplicabilidad industrial!
La presente invención puede aplicarse a un procedimiento de codificación de imágenes, un procedimiento de decodificación de imágenes, un aparato de codificación de imágenes y un procedimiento de decodificación de imágenes. Además, la presente invención puede usarse para dispositivos de visualización de información de alta resolución y dispositivos de captura de imágenes que incluyen aparatos de codificación de imágenes, tales como una televisión, un grabador de vídeo digital, un sistema de navegación de automóvil, un teléfono celular, una cámara de imágenes fijas digital y una cámara de vídeo digital.
[Lista de signos de referencia!
100 Aparato de codificación de imágenes
101 Señal de imagen de entrada
105 Restador
106 Señal residual
110 Unidad de transformación
111 Coeficiente de transformación
120 Unidad de cuantificación
121, 291 Coeficiente de cuantificación
130, 230 Unidad de transformación inversa
131, 231 Señal residual
140, 240 Sumador
141, 151, 161, 171, 241, 251, 261, 271 Señal de imagen decodificada
150, 250 Filtro de desbloqueo
160, 260 Filtro de bucle adaptativo
170, 270 Memoria intermedia de fotograma de referencia
180, 280 Unidad de predicción
181, 281 Señal de predicción
190 Unidad de codificación por entropía
191, 201 Señal codificada
200 Aparato de decodificación de imágenes
290 Unidad de decodificación por entropía
300, 310, 330, 340, 350, 360, 370, 390, 400, 410, 420, 500 Instantánea 301, 302, 311, 312, 313, 314, 321, 381 Fila
320, 380 Encabezamiento de corte
331, 332, 333, 341, 342, 343, 344, 351, 354, 361, 362, 363, 364, 365, 371, 372, 373, 374, 391, 392, 393, 394, 401,402, 403, 404, 411, 412, 413, 414, 415, 421, 422, 423, 424, 521, 522, 523, 524 Corte
501, 502, 511, 512 Losa
513 Límite
Claims (2)
1. Un programa informático para codificar losas y cortes en el que se particiona una imagen, para generar un flujo de bits, comprendiendo el programa informático instrucciones que, cuando el programa es ejecutado por un ordenador, hacen que el ordenador lleve a cabo las etapas de:
particionar la imagen en las losas y los cortes; y
codificar las losas y los cortes que resultan del particionamiento; en el que
el tipo de cada uno de los cortes es o bien un tipo de corte normal o bien un tipo de corte dependiente; un corte del tipo de corte normal se codifica sin hacer referencia a un corte diferente y tiene, en un encabezamiento (320), información que se requiere para codificar el corte, y puede usarse para un corte diferente;
un corte del tipo de corte dependiente se decodifica usando información incluida en un encabezamiento (320) de corte de otro corte;
caracterizado porque
cuando una primera losa incluye un corte normal que se inicia desde una posición distinta de un comienzo de la primera losa, una segunda losa codificada a continuación de la primera losa incluye un corte normal que se inicia desde un comienzo de la segunda losa.
2. Un programa informático de decodificación del flujo de bits generado por el programa informático de acuerdo con la reivindicación 1 y que incluye una señal codificada (191,201) que resulta de codificar losas y cortes en los que se particiona una imagen, comprendiendo el procedimiento instrucciones que, cuando el programa es ejecutado por un ordenador, hacen que el ordenador lleve a cabo la etapa de
decodificar la señal codificada (191, 201); en el que
la decodificación incluye decodificar en paralelo un corte en el comienzo de la primera losa y un corte en el comienzo de la segunda losa.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261705891P | 2012-09-26 | 2012-09-26 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3034887T3 true ES3034887T3 (en) | 2025-08-26 |
Family
ID=50338836
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES22161531T Active ES2962366T3 (es) | 2012-09-26 | 2013-09-05 | Aparato de codificación de imágenes, aparato de decodificación de imágenes y medio de almacenamiento |
| ES13842930T Active ES2915051T3 (es) | 2012-09-26 | 2013-09-05 | Procedimiento de codificación de imágenes, procedimiento de decodificación de imágenes |
| ES23172593T Active ES3034887T3 (en) | 2012-09-26 | 2013-09-05 | Image encoding computer program, image decoding computer program |
Family Applications Before (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES22161531T Active ES2962366T3 (es) | 2012-09-26 | 2013-09-05 | Aparato de codificación de imágenes, aparato de decodificación de imágenes y medio de almacenamiento |
| ES13842930T Active ES2915051T3 (es) | 2012-09-26 | 2013-09-05 | Procedimiento de codificación de imágenes, procedimiento de decodificación de imágenes |
Country Status (18)
| Country | Link |
|---|---|
| US (10) | US9036697B2 (es) |
| EP (4) | EP2903270B1 (es) |
| JP (2) | JP5608839B2 (es) |
| KR (1) | KR101918808B1 (es) |
| CN (2) | CN108881921B (es) |
| AR (1) | AR092660A1 (es) |
| AU (1) | AU2013322041B2 (es) |
| BR (1) | BR112015004216B1 (es) |
| CA (1) | CA2882731C (es) |
| ES (3) | ES2962366T3 (es) |
| HU (1) | HUE071344T2 (es) |
| MX (1) | MX345003B (es) |
| MY (1) | MY182530A (es) |
| PL (3) | PL4224858T3 (es) |
| RU (1) | RU2639679C2 (es) |
| SG (1) | SG11201501400QA (es) |
| TW (1) | TWI580255B (es) |
| WO (1) | WO2014049980A1 (es) |
Families Citing this family (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100798188B1 (ko) * | 2002-04-16 | 2008-01-24 | 도요 세이칸 가부시키가이샤 | 커버용 밀봉재 및 이를 사용한 커버의 제조방법 |
| US9621905B2 (en) * | 2012-06-29 | 2017-04-11 | Qualcomm Incorporated | Tiles and wavefront parallel processing |
| KR102169058B1 (ko) * | 2012-09-26 | 2020-10-23 | 벨로스 미디어 인터내셔널 리미티드 | 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치, 및, 화상 부호화 복호 장치 |
| SG11201501400QA (en) | 2012-09-26 | 2015-04-29 | Panasonic Ip Corp America | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
| GB2519745B (en) * | 2013-10-22 | 2018-04-18 | Canon Kk | Method of processing disordered frame portion data units |
| CN106210729A (zh) * | 2015-05-06 | 2016-12-07 | 扬智科技股份有限公司 | 视频流解码系统及视频流解码方法 |
| US10027989B2 (en) * | 2015-05-06 | 2018-07-17 | Integrated Device Technology, Inc. | Method and apparatus for parallel decoding |
| CN106331722B (zh) | 2015-07-03 | 2019-04-26 | 华为技术有限公司 | 图像预测方法和相关设备 |
| US20170105010A1 (en) * | 2015-10-09 | 2017-04-13 | Microsoft Technology Licensing, Llc | Receiver-side modifications for reduced video latency |
| CN107301621B (zh) * | 2017-06-13 | 2020-06-16 | 东南大学 | 一种提高数字图像分辨率的方法 |
| KR20190024212A (ko) * | 2017-08-31 | 2019-03-08 | 세종대학교산학협력단 | 타일 구조의 구성 방법 및 이의 장치 |
| KR102515357B1 (ko) * | 2018-01-25 | 2023-03-29 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 효율적인 서브 픽처 추출 |
| CA3251167A1 (en) | 2018-03-25 | 2025-02-24 | B1 Institute Of Image Technology, Inc. | METHOD AND DEVICE FOR ENCODING/DECODING IMAGES |
| JP6982253B2 (ja) * | 2018-10-31 | 2021-12-17 | 日本電信電話株式会社 | 復号装置、符号化装置、復号方法、符号化方法、及びプログラム |
| CN112997502B (zh) * | 2018-12-07 | 2024-04-26 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法和解码方法 |
| CN113228671B (zh) * | 2018-12-28 | 2022-12-02 | 华为技术有限公司 | 通过将图像划分成包括图块的条带对图像进行译码的设备和方法及计算机可读存储介质 |
| WO2020185145A1 (en) * | 2019-03-08 | 2020-09-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods providing encoding/decoding of dependent/independent partitions and related devices |
| CN113785575A (zh) * | 2019-03-21 | 2021-12-10 | 佳稳电子有限公司 | 处理图片分割的影像编码方法、影像解码方法及其装置 |
| JP7670608B2 (ja) * | 2019-05-21 | 2025-04-30 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法および復号方法 |
| JP7372443B2 (ja) * | 2019-08-10 | 2023-10-31 | 北京字節跳動網絡技術有限公司 | サブピクチャに依存するビデオビットストリーム内のシグナリング |
| KR20210034536A (ko) | 2019-09-20 | 2021-03-30 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
| CN114616830A (zh) * | 2019-11-07 | 2022-06-10 | 英特尔公司 | 超高分辨率视频内容的异构实时流送和解码 |
| WO2021110017A1 (en) | 2019-12-02 | 2021-06-10 | Beijing Bytedance Network Technology Co., Ltd. | Merge with motion vector differencing in affine mode |
| RS67804B1 (sr) * | 2019-12-12 | 2026-03-31 | Lg Electronics Inc | Postupak i uređaj za signalizaciju informacija o video zapisu koje se mogu primeniti na nivou slike ili nivou isečka |
| CN114868158B (zh) | 2019-12-26 | 2025-08-01 | 字节跳动有限公司 | 层级视频中的解码图片缓冲区参数的信令通知 |
| KR102776845B1 (ko) | 2019-12-26 | 2025-03-10 | 바이트댄스 아이엔씨 | 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들 |
| EP4066386A4 (en) | 2019-12-27 | 2023-01-25 | ByteDance Inc. | SUB-PICTURE SIGNALING IN VIDEO ENCODING |
| CN114982243B (zh) | 2020-01-09 | 2025-05-13 | 字节跳动有限公司 | 视频流中的填充数据单元的处理 |
| US12581120B2 (en) | 2020-03-20 | 2026-03-17 | Hfi Innovation Inc. | Method and apparatus for signaling tile and slice partition information in image and video coding |
| EP4107941A4 (en) | 2020-03-23 | 2023-04-19 | Beijing Bytedance Network Technology Co., Ltd. | PREDICTION REFINEMENT FOR AFFINE MERGE AND AFFINER MOTION VECTOR PREDICTION MODE |
| GEP20257718B (en) | 2020-05-22 | 2025-01-27 | Ge Video Compression Llc | Video decoder, video encoder, methods for video data stream, encoding and decoding, and realizing advanced video coding concepts |
| CN111726626B (zh) * | 2020-06-18 | 2022-05-03 | 格兰菲智能科技有限公司 | 集成电路及用于视频解码的概率表存储方法 |
| US12217465B2 (en) * | 2020-12-04 | 2025-02-04 | Tencent America LLC | Method and apparatus for point cloud coding |
| US11611775B2 (en) * | 2021-01-19 | 2023-03-21 | Tencent America LLC | Method and apparatus for point cloud coding |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12016A (en) * | 1854-11-28 | Improvement in machinery for making rope and cordage | ||
| JP4015934B2 (ja) * | 2002-04-18 | 2007-11-28 | 株式会社東芝 | 動画像符号化方法及び装置 |
| JP5234586B2 (ja) * | 2006-01-05 | 2013-07-10 | 日本電信電話株式会社 | 映像符号化方法及び復号方法、それらの装置、及びそれらのプログラム並びにプログラムを記録した記憶媒体 |
| CN105791864B (zh) * | 2007-05-16 | 2019-01-15 | 汤姆逊许可Dtv公司 | 编码及传送多视图视频编码信息中使用码片组的装置 |
| US8705879B2 (en) * | 2009-04-01 | 2014-04-22 | Microsoft Corporation | Image compression acceleration using multiple processors |
| US8344917B2 (en) * | 2010-09-30 | 2013-01-01 | Sharp Laboratories Of America, Inc. | Methods and systems for context initialization in video coding and decoding |
| US9525884B2 (en) * | 2010-11-02 | 2016-12-20 | Hfi Innovation Inc. | Method and apparatus of slice boundary filtering for high efficiency video coding |
| US10244239B2 (en) * | 2010-12-28 | 2019-03-26 | Dolby Laboratories Licensing Corporation | Parameter set for picture segmentation |
| US9300976B2 (en) * | 2011-01-14 | 2016-03-29 | Cisco Technology, Inc. | Video encoder/decoder, method and computer program product that process tiles of video data |
| GB2488830B (en) * | 2011-03-10 | 2015-07-29 | Canon Kk | Method and device for encoding image data and method and device for decoding image data |
| US9325999B2 (en) * | 2011-03-10 | 2016-04-26 | Sharp Kabushiki Kaisha | Video decoder for slices |
| US20120230399A1 (en) * | 2011-03-10 | 2012-09-13 | Christopher Andrew Segall | Video decoder parallelization including a bitstream signal |
| US9807462B2 (en) * | 2011-04-07 | 2017-10-31 | Roku, Inc. | Apparatus and method for aggregating media content |
| US8995523B2 (en) * | 2011-06-03 | 2015-03-31 | Qualcomm Incorporated | Memory efficient context modeling |
| JP2013098735A (ja) | 2011-10-31 | 2013-05-20 | Canon Inc | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
| US9124895B2 (en) | 2011-11-04 | 2015-09-01 | Qualcomm Incorporated | Video coding with network abstraction layer units that include multiple encoded picture partitions |
| US9077998B2 (en) | 2011-11-04 | 2015-07-07 | Qualcomm Incorporated | Padding of segments in coded slice NAL units |
| CA2898152C (en) * | 2012-01-30 | 2018-02-20 | Samsung Electronics Co., Ltd. | Method and apparatus for video encoding for each spatial sub-area, and method and apparatus for video decoding for each spatial sub-area |
| KR102164572B1 (ko) * | 2012-06-26 | 2020-10-12 | 엘지전자 주식회사 | 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치 |
| KR102659283B1 (ko) * | 2012-06-29 | 2024-04-22 | 지이 비디오 컴프레션, 엘엘씨 | 비디오 데이터 스트림 개념 |
| SG11201501400QA (en) * | 2012-09-26 | 2015-04-29 | Panasonic Ip Corp America | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
-
2013
- 2013-09-05 SG SG11201501400QA patent/SG11201501400QA/en unknown
- 2013-09-05 MY MYPI2015000472A patent/MY182530A/en unknown
- 2013-09-05 ES ES22161531T patent/ES2962366T3/es active Active
- 2013-09-05 EP EP13842930.3A patent/EP2903270B1/en active Active
- 2013-09-05 EP EP23172593.8A patent/EP4224858B1/en active Active
- 2013-09-05 CN CN201810768049.XA patent/CN108881921B/zh active Active
- 2013-09-05 PL PL23172593.8T patent/PL4224858T3/pl unknown
- 2013-09-05 JP JP2014514656A patent/JP5608839B2/ja active Active
- 2013-09-05 CN CN201380044687.2A patent/CN104584555B/zh active Active
- 2013-09-05 ES ES13842930T patent/ES2915051T3/es active Active
- 2013-09-05 HU HUE23172593A patent/HUE071344T2/hu unknown
- 2013-09-05 WO PCT/JP2013/005269 patent/WO2014049980A1/ja not_active Ceased
- 2013-09-05 BR BR112015004216-3A patent/BR112015004216B1/pt active IP Right Grant
- 2013-09-05 PL PL13842930.3T patent/PL2903270T3/pl unknown
- 2013-09-05 AU AU2013322041A patent/AU2013322041B2/en active Active
- 2013-09-05 MX MX2015002891A patent/MX345003B/es active IP Right Grant
- 2013-09-05 ES ES23172593T patent/ES3034887T3/es active Active
- 2013-09-05 CA CA2882731A patent/CA2882731C/en active Active
- 2013-09-05 EP EP22161531.3A patent/EP4033764B1/en active Active
- 2013-09-05 EP EP25166708.5A patent/EP4554215A3/en active Pending
- 2013-09-05 RU RU2015106415A patent/RU2639679C2/ru active
- 2013-09-05 PL PL22161531.3T patent/PL4033764T3/pl unknown
- 2013-09-05 KR KR1020157004659A patent/KR101918808B1/ko active Active
- 2013-09-19 US US14/031,169 patent/US9036697B2/en active Active
- 2013-09-24 TW TW102134283A patent/TWI580255B/zh active
- 2013-09-24 AR ARP130103411A patent/AR092660A1/es active IP Right Grant
-
2014
- 2014-09-01 JP JP2014177525A patent/JP6191920B2/ja active Active
-
2015
- 2015-04-09 US US14/682,298 patent/US9277229B2/en active Active
-
2016
- 2016-01-21 US US15/003,226 patent/US9414077B2/en active Active
- 2016-01-21 US US15/003,351 patent/US9602825B2/en active Active
- 2016-12-30 US US15/394,998 patent/US9948942B2/en active Active
-
2018
- 2018-03-08 US US15/915,489 patent/US10397593B2/en active Active
-
2019
- 2019-07-09 US US16/506,359 patent/US10992944B2/en active Active
-
2021
- 2021-03-24 US US17/210,921 patent/US11871019B2/en active Active
-
2023
- 2023-11-16 US US18/511,115 patent/US12457349B2/en active Active
-
2025
- 2025-01-15 US US19/021,580 patent/US20250159225A1/en active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2962366T3 (es) | Aparato de codificación de imágenes, aparato de decodificación de imágenes y medio de almacenamiento | |
| JP6558784B2 (ja) | 方法、装置、および媒体 | |
| ES2716579T3 (es) | Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes | |
| HK1260971B (en) | Image decoding, method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device | |
| HK1260971A1 (en) | Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device |