ES2952761T3 - Método de decodificación de imágenes - Google Patents
Método de decodificación de imágenes Download PDFInfo
- Publication number
- ES2952761T3 ES2952761T3 ES17204497T ES17204497T ES2952761T3 ES 2952761 T3 ES2952761 T3 ES 2952761T3 ES 17204497 T ES17204497 T ES 17204497T ES 17204497 T ES17204497 T ES 17204497T ES 2952761 T3 ES2952761 T3 ES 2952761T3
- Authority
- ES
- Spain
- Prior art keywords
- motion vector
- decoding
- component
- vector difference
- unit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 132
- 230000033001 locomotion Effects 0.000 claims abstract description 337
- 239000013598 vector Substances 0.000 claims abstract description 301
- 238000012545 processing Methods 0.000 claims description 219
- 238000009795 derivation Methods 0.000 claims description 30
- 238000013139 quantization Methods 0.000 description 26
- 230000005236 sound signal Effects 0.000 description 26
- 230000009466 transformation Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 20
- 230000003287 optical effect Effects 0.000 description 19
- 238000012986 modification Methods 0.000 description 14
- 230000004048 modification Effects 0.000 description 14
- 239000000470 constituent Substances 0.000 description 12
- 239000000872 buffer Substances 0.000 description 11
- 238000007906 compression Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 8
- NRNCYVBFPDDJNE-UHFFFAOYSA-N pemoline Chemical compound O1C(N)=NC(=O)C1C1=CC=CC=C1 NRNCYVBFPDDJNE-UHFFFAOYSA-N 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000001228 spectrum Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 101100315260 Picea mariana SB09 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000004622 sleep time Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/521—Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/1887—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 a variable length codeword
-
- 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/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- 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/184—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 bits, e.g. of the compressed video stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Auxiliary Devices For And Details Of Packaging Control (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
Un método de codificación de imágenes incluye (S801) codificar una diferencia de vector de movimiento que indica una diferencia entre el vector de movimiento y un vector de movimiento predicho, en donde la codificación (S801) incluye: codificar una primera porción que es parte de un primer componente que es uno de una componente horizontal y una componente vertical de la diferencia del vector de movimiento; codificar una segunda porción que es parte de un segundo componente que es diferente del primer componente y es el otro del componente horizontal y del componente vertical; codificar una tercera porción que es parte del primer componente y es diferente de la primera porción; codificar una cuarta porción que es parte del segundo componente y es diferente de la segunda porción; y generar una cadena de código que incluye la primera parte, la segunda parte, la tercera parte y la cuarta parte en el orden indicado. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Método de decodificación de imágenes
Campo de la invención
La presente invención se refiere a un método de decodificación de imágenes para decodificar imágenes utilizando un vector de movimiento.
Ejemplos de técnicas relacionadas con un método de codificación de imágenes para la codificación de imágenes usando vectores de movimiento incluyen técnicas descritas en la literatura no perteneciente a patentes (Non-Patent Literature, NPL) 1 a 6.
Literatura no perteneciente a patentes
[NPL 1] Recomendación ITU-T H.264 “Codificación avanzada de vídeo para servicios audiovisuales genéricos” (del inglés, “Advanced video coding for generic audiovisual services”), Marzo, 2010
[NPL 2] JCT-VC “WD3: Borrador de trabajo 3 de codificación de vídeo de alta eficiencia” (del inglés, “WD3 : Working Draft 3 of High-Efficiency Video Coding”, JCTVC-E603, Marzo, 2011.
[NPL 3] MOON Y H et al., “Un esquema de codificación de vectores de movimiento híbrido basado en una estimación de la ubicación con respecto a diferencia de vectores de movimiento” (del inglés, “A hybrid motion-vector coding scheme based on an estimation of the locality for motion-vector difference”), IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, EE. UU., (20060601), vol. 16, n.° 6, doi : 10.1109/TCSVT.2006.876361, ISSN 1051-8215, páginas 781 -785,
[NPL 4] MARPE D et al., “Codificación aritmética binaria adaptable al contexto en el estándar de compresión de vídeo H.264/AVC” (del inglés, “Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard”), IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, EE. UU., (20030701), vol. 13, n.° 7, doi: 10.1109/TCSVT.2003.815173, ISSN 1051 8215, páginas 620 - 636, XP011099255
[NPL 5] JVT, “Borrador de recomendación ITU-T y estándar internacional de borrador final de especificación de vídeo conjunta (ITU-T Rec. H.264 ISO/IEC 14496-10 AVC)” (del inglés, “Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification (IT U-T Rec. H.264 ISO/IEC 14496-10 AVC)”), 7. JVT MEETING; 64. MPEG MEETING; 07-03-2003 - 14-03-2003; PATTAYA, TH; (JOINT VIDEO TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG. 16 ), (20030314), n.° JVT-G050r1, ISSN 0000-0427, XP030005712
[NPL 6] TEXAS INSTRUMENTS, “CABAC paralelo” (del inglés, “Parallel CABAC”), ITU-T SG16 MEETING; 22-4-2008 2-5-2008; GENEVA, (20080411), n.° T05-SG16-C-0334, ISSN 0000-0052, XP030003826
La codificación ineficiente de una imagen provoca retardo en el procesamiento y afecta también a la decodificación de la imagen.
En vista de lo anterior, un objeto de la presente invención es proporcionar un método de codificación de imágenes para codificar de manera eficiente la información que constituye una imagen.
Esto se logra mediante las características de las reivindicaciones independientes. La invención se define en las reivindicaciones adjuntas. La divulgación habilitante de la invención como se define en las reivindicaciones se encuentra en la modificación de realización 1, así como en la realización 3 al comprender las características de la modificación de realización 1. Las realizaciones restantes deben entenderse como ejemplos ilustrativos que no describen partes de la presente invención como se define en las reivindicaciones.
Estos aspectos generales y específicos pueden implementarse usando un aparato, un sistema, un circuito integrado, un programa de computación o medio de grabación no transitorio legible por computadora, como por ejemplo, un CD-ROM, o cualquier combinación de aparatos, sistemas, circuitos integrados, programas de computación o medios de grabación.
La información que constituye una imagen se codifica eficientemente de acuerdo con la presente invención.
La figura 1 es un diagrama de bloques que muestra un ejemplo de una configuración de un método de decodificación de diferencia de vectores de movimiento convencionales.
La figura 2 es un diagrama de flujo que muestra un flujo de operaciones del método de decodificación de diferencia de vectores de movimiento convencionales.
La figura 3 es un diagrama de flujo que muestra el procesamiento de decodificación aritmética binaria adaptable al contexto del método de decodificación aritmética convencional.
La figura 4 es un diagrama de flujo que muestra procesamiento de decodificación aritmética de derivación del método de decodificación aritmética convencional.
La figura 5 es un diagrama de flujo que muestra procesamiento de normalización del método de decodificación aritmética convencional.
La figura 6 es un diagrama esquemático que muestra ejemplos de cadenas binarias de diferencia de vectores de movimiento.
La figura 7 es un diagrama de bloques que muestra una configuración funcional de un aparato de decodificación de acuerdo con la realización 1.
La figura 8 es un diagrama de flujo que muestra la operación de procesamiento del aparato de decodificación de acuerdo con la realización 1.
La figura 9 es un diagrama para describir ejemplos de procesamiento ejecutado en la realización 1.
La figura 10 es un diagrama de bloques que muestra un ejemplo de una configuración de un dispositivo de decodificación de imágenes de acuerdo con la realización 1.
La figura 11A es una tabla que muestra ejemplos de cadenas de códigos binarios de acuerdo con una modificación de la realización 1.
La figura 11B es un diagrama de flujo que muestra la operación de procesamiento de un aparato de decodificación de acuerdo con la modificación de la realización 1.
La figura 12 es un diagrama de flujo que muestra la operación de procesamiento de un aparato de codificación de acuerdo con la realización 2.
La figura 13 es una tabla de sintaxis que muestra un ejemplo de una estructura de datos.
La figura 14 es un diagrama de bloques que muestra un ejemplo de una configuración de un aparato de codificación de imágenes de acuerdo con la realización 2.
La figura 15A es un diagrama de bloques que muestra un ejemplo de una configuración de un aparato de codificación de imágenes de acuerdo con la realización 3.
La figura 15B es un diagrama de flujo que muestra la operación de procesamiento del aparato de codificación de imágenes de acuerdo con la realización 3.
La figura 16A es un diagrama de bloques que muestra un ejemplo de una configuración de un aparato de decodificación de imágenes de acuerdo con la realización 3.
La figura 16B es un diagrama de flujo que muestra la operación de procesamiento del aparato de decodificación de imágenes de acuerdo con la realización 3.
La figura 17 es una tabla de sintaxis que muestra un ejemplo de una estructura de datos de una cadena de códigos correspondiente a una diferencia de vectores de movimiento.
La figura 18 muestra una configuración global de un sistema que suministra contenido para implementar servicios de distribución de contenido.
La figura 19 muestra una configuración global de un sistema de radiodifusión digital.
La figura 20 muestra un diagrama de bloques que ilustra un ejemplo de una configuración de una televisión.
La figura 21 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 graba la información proveniente de y en un medio de grabación que es un disco óptico.
La figura 22 muestra un ejemplo de una configuración de un medio de grabación que es un disco óptico.
La figura 23A muestra un ejemplo de un teléfono celular.
La figura 23B es un diagrama de bloques que muestra un ejemplo de una configuración de un teléfono celular.
La figura 24 ilustra una estructura de datos multiplexados.
La figura 25 muestra de manera esquemática cómo cada flujo se multiplexa en datos multiplexados.
La figura 26 muestra cómo se almacena un flujo de vídeo en un flujo de paquetes PES con mayor detalle.
La figura 27 muestra una estructura de paquetes TS y paquetes fuente en los datos multiplexados.
La figura 28 muestra una estructura de datos de un PMT.
La figura 29 muestra una estructura interna de información de datos multiplexados.
La figura 30 muestra una estructura interna de información de atributos de flujo.
La figura 31 muestra pasos para identificar datos de vídeo.
La figura 32 muestra un ejemplo de una configuración de un circuito integrado para implementar el método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento de acuerdo con cada una de las realizaciones.
La figura 33 muestra una configuración para conmutar entre frecuencias de accionamiento.
La figura 34 muestra pasos para identificar datos de vídeo y conmutar entre frecuencias de accionamiento.
La figura 35 muestra un ejemplo de una tabla de consulta en la cual los estándares de datos de vídeo están vinculados con frecuencias de accionamiento.
La figura 36A es un diagrama que muestra un ejemplo de una configuración para compartir un módulo de una unidad de procesamiento de señales.
La figura 36B es un diagrama que muestra otro ejemplo de una configuración para compartir un módulo de la unidad de procesamiento de señales.
(Conocimiento subyacente que forma la base de la presente invención)
El número de aplicaciones para, por ejemplo, servicios del tipo vídeo bajo demanda que incluyen videoconferencia por Internet, radiodifusión de señales digitales de vídeo y emisión de contenido de vídeo en directo, está en constante aumento y estas aplicaciones dependen de la transmisión de información de vídeo. Cuando se transmiten o graban datos de vídeo, se transmite una cantidad considerable de datos a través de un canal de transmisión convencional que tiene un ancho de banda limitado o se almacena en un medio de almacenamiento convencional que tiene una capacidad de datos limitada. Es necesario comprimir o reducir la cantidad de datos digitales con el fin de transmitir información de vídeo por medio de un canal de transmisión convencional y almacenar información de vídeo en un medio de almacenamiento convencional.
En virtud de lo anterior, ha sido desarrollada una pluralidad de estándares de codificación de vídeo para comprimir datos de vídeo. Entre los ejemplos de tales estándares de codificación de vídeo se incluyen el estándar ITU-T, tipificado como H.26x, y el estándar ISO/IEC, tipificado como MPEG-x. El estándar más reciente y avanzado de codificación de vídeo en el presente es un estándar tipificado como H.264/MPEG-4 AVC (véase la literatura no perteneciente a patentes (NPL) 1).
Un enfoque de codificación que constituye la base de la mayoría de estos estándares es el que se basa en la codificación predictiva, la cual incluye los pasos principales mostrados por (a) a (d) a continuación. paso (a): Dividir tramas de vídeo en bloques de píxeles para realizar la compresión de datos en cada trama (frame) de vídeo a nivel de bloques. paso (b): Identificar redundancia temporal y espacial prediciendo bloques individuales a partir de datos de vídeo previamente codificados. paso (c): Eliminar la redundancia identificada sustrayendo datos predichos de los datos de vídeo. paso (d): Comprimir los datos restantes (bloque residual) realizando codificación por transformada de Fourier, cuantización y entropía.
En el paso anterior (a), los modos de predicción usados para predecir macrobloques son diferentes para los estándares de codificación de vídeo actuales. La mayoría de los estándares de codificación de vídeo usan detección de movimiento y compensación de movimiento, con el fin de predecir datos de vídeo a partir de una trama codificada y decodificada previamente (predicción inter-trama). De manera alternativa, los datos de bloques pueden extrapolarse
a partir de un bloque adyacente en la misma trama (predicción intra-trama).
Por ejemplo, cuando una imagen objetivo de codificación va a ser codificada usando la predicción inter-trama, un aparato de codificación de imágenes utiliza, como imagen de referencia, una imagen codificada que aparece antes o después de la imagen objetivo de codificación en el orden de visualización. A continuación, el aparato de codificación de imágenes realiza una detección de movimiento en la imagen objetivo de codificación en relación con la imagen de referencia, en virtud de lo cual se deriva un vector de movimiento de cada bloque. El aparato de codificación de imágenes realiza una compensación de movimiento usando vectores de movimiento derivado de esta manera, para generar datos de imágenes predichas. A continuación, el aparato de codificación de imágenes codifica una diferencia entre los datos de imágenes predichas generados y los datos de imágenes de la imagen objetivo de codificación y reduce, por lo tanto, la redundancia en la dirección temporal.
Adicionalmente, se tiene en cuenta el uso de un modo de designación de vectores de movimiento predichos cuando se codifica un vector de movimiento de un bloque objetivo de codificación en una imagen B o una imagen P (NPL 2). Un aparato de codificación de imágenes que usa el modo de designación de vectores de movimiento predichos genera una pluralidad de candidatos a vector de movimiento predicho, con base en bloques para los cuales ha sido realizada la codificación y los cuales son adyacentes a un bloque objetivo de codificación. A continuación, el aparato de codificación de imágenes selecciona un vector de movimiento predicho entre la pluralidad de candidatos generados.
El aparato de codificación de imágenes codifica un vector de movimiento del bloque objetivo de codificación usando el vector de movimiento predicho seleccionado. Específicamente la codificación de longitud variable se realiza en una diferencia de vectores de movimiento entre el vector de movimiento del bloque objetivo de codificación y el vector de movimiento predicho seleccionado.
Adicionalmente, el aparato de codificación de imágenes agrega un índice (también denominado índice de vector de movimiento predicho) del vector de movimiento predicho seleccionado a un flujo de bits codificado. Por lo tanto, en el momento de la decodificación, el aparato de decodificación de imágenes puede seleccionar un vector de movimiento predicho que es igual al vector de movimiento predicho seleccionado cuando se realiza la codificación.
Adicionalmente, se proporciona una descripción más específica usando las figuras 1 y 2 de un método para realizar la decodificación de longitud variable en una diferencia de vectores de movimiento. La figura 1 es un diagrama de bloques que muestra un ejemplo de una configuración de un método convencional para realizar la decodificación de longitud variable en una diferencia de vectores de movimiento. La figura 2 es un diagrama de flujo que muestra un ejemplo del flujo de operaciones del método convencional para realizar la decodificación de longitud variable en una diferencia de vectores de movimiento.
Se binarizan los valores de diferencia de vectores de movimiento y se constituyen cadenas binarias. Las cadenas binarias pueden separarse cada una en una bandera (flag) que indica un signo (de suma o resta), una porción de prefijo correspondiente a una porción del valor absoluto de una diferencia de vectores de movimiento menor o igual que un valor umbral (threshold, TH) y una porción de sufijo correspondiente a una porción del mismo mayor que el valor TH (véase figura 6).
Un signo es o -. Por ejemplo, si un signo es , una bandera que indica el signo es 0. Si un signo es -, una bandera que indica el signo es 1. Adicionalmente, el valor TH es 8, por ejemplo. En este caso, una porción de prefijo corresponde a una porción que constituye ocho o menos en una cadena binarizada del valor absoluto de una diferencia de vectores de movimiento. Una porción de sufijo corresponde a una porción que constituye nueve o más en una cadena binarizada del valor absoluto de una diferencia de vectores de movimiento.
Los métodos de codificación y decodificación aritmética son diferentes con respecto a la bandera que indica un signo, la porción de prefijo y la porción de sufijo. A continuación se describirán métodos de codificación y decodificación aritmética.
Una unidad de decodificación de longitud variable de diferencia de vectores de movimiento A00 obtiene un flujo de bits (bit stream, BS) el cual incluye información de diferencia de vectores de movimiento e introduce el flujo de bits obtenido BS en una unidad de control de reconstrucción de diferencia de vectores de movimiento A01 y una unidad de determinación de 0 de diferencia de vectores de movimiento A02. Cabe destacar que, en este caso, la unidad de control de reconstrucción de diferencia de vectores de movimiento A01 toma en un componente X (componente horizontal) y un componente Y (componente vertical) de la información de diferencia de vectores de movimiento obtenida en el orden establecido y gestiona si un componente de la información de diferencia de vectores de movimiento sobre la que está realizándose el procesamiento de decodificación es un componente X o un componente Y.
La unidad de determinación de 0 de diferencia de vectores de movimiento A02 decodifica, a partir del flujo de bits obtenido, una bandera que indica si el componente X de la diferencia de vectores de movimiento es 0 (paso SB00). Si el componente X de la diferencia de vectores de movimiento no es 0 (NO en el paso SB01), una unidad de decodificación de porción de prefijo de diferencia de vectores de movimiento A03 decodifica la porción de prefijo del
componente X de la diferencia de vectores de movimiento (paso SB02). A continuación, si el componente X de la diferencia de vectores de movimiento incluye la porción de sufijo (SÍ en el paso SB03), una unidad de decodificación de porción de sufijo de diferencia de vectores de movimiento A04 decodifica la porción de sufijo del componente X de la diferencia de vectores de movimiento (SB04). Si el componente X no incluye la porción de sufijo (NO en SB03) se omite el procesamiento de decodificación de sufijo. A continuación, una unidad de decodificación de signo de diferencia de vectores de movimiento A05 decodifica el signo del componente X de la diferencia de vectores de movimiento, y una unidad de reconstrucción de diferencia de vectores de movimiento A06 reconstruye y fija el componente X de la diferencia de vectores de movimiento (SB05).
Por otro lado, si el componente X de la diferencia de vectores de movimiento es 0 (SÍ en el paso SB01), la unidad de reconstrucción de diferencia de vectores de movimiento A06 fija el componente X de la diferencia de vectores de movimiento en 0 (paso SB06). En este caso, la unidad de control de reconstrucción de diferencia de vectores de movimiento A01 conmuta un conmutador A07 a un lado que indica un componente X (un terminal en un lado superior en la figura 1) y produce el componente X de la diferencia de vectores de movimiento.
A continuación, se decodifica un componente Y de la diferencia de vectores de movimiento como en el caso del componente X. Cabe destacar que en el procedimiento siguiente de la operación, el paso SB07 corresponde al paso SB00, el paso SB08 corresponde al paso SB01, el paso SB09 corresponde al paso SB02, el paso SB10 corresponde al paso SB03, el paso SB11 corresponde al paso SB04, el paso s B12 corresponde al paso SB05 y el paso SB13 corresponde al paso SB06. Por lo tanto, la operación en estos pasos es la misma salvo que los componentes son diferentes y, por lo tanto, no se presenta una descripción detallada.
Al finalizar todos los pasos, se reconstruyen el componente X y el componente Y de la diferencia de vectores de movimiento.
A continuación se presenta una descripción de la codificación de longitud variable en una diferencia entre datos de imágenes predichas y datos de imágenes de una imagen objetivo de codificación y una diferencia de vectores de movimiento entre un vector de movimiento predicho y un vector de movimiento y otros semejantes. En H.264, uno de los métodos de codificación de longitud variable es codificación aritmética binaria adaptable al contexto (Context Adaptive Binary Arithmetic Coding, CABAC). A continuación se presenta una descripción de esta CABAC usando las figuras 3, 4 y 5.
La figura 3 muestra el flujo del procesamiento convencional de la decodificación aritmética binaria adaptable al contexto mencionado anteriormente. Cabe destacar que esta ilustración se extrae de la literatura no perteneciente a patentes NPL 1, y corresponde a lo descrito en la NPL 1, salvo que se proporcione particularmente una descripción.
En el procesamiento de decodificación aritmética, primero se introduce un contexto (ctxIdx) determinado basándose en un tipo de señal.
A continuación, se calcula un valor qCodIRangeIdx derivado de un parámetro codIRange el cual indica el estado en un aparato de decodificación aritmética en este punto temporal, y se obtiene un valor pStateIdx el cual es un valor de estado correspondiente a ctxldx. Usando estos dos valores, se obtiene codIRangeLPS haciendo referencia a una tabla (rangeTabIeLPS). Cabe destacar que este codIRangeLPS indica un valor correspondiente al primer parámetro codIRange que indica el estado en el aparato de decodificación aritmética cuando ha aparecido LPS (que indica un símbolo 0 o 1 de probabilidad de aparición más baja).
Adicionalmente, un valor obtenido disminuyendo el codIRange actual por el anterior codIRangeLPS se coloca en codIRange (paso SC01). A continuación, el codIRange calculado se compara con un segundo parámetro codIOffset que indica el estado en el aparato de decodificación aritmética (paso SC02).
Si codIOffset es igual o mayor que el segundo parámetro (SÍ en SC02), se determina que ha aparecido el símbolo de LPS. A continuación, se fija el valor binVal que es un valor de salida decodificado en un valor diferente al valor valMPS (un valor específico (0 o 1) de MPS el cual indica un símbolo 0 o 1 de probabilidad de aparición superior), siendo 0 el valor diferente en el caso de valMPS = 1 y 1 en el caso de valMPS = 0. Adicionalmente, se fija el segundo parámetro codIOffset que indica el estado del aparato de decodificación aritmética en un valor obtenido como resultado de una disminución de codIRange. Puesto que ha aparecido LPS, el primer parámetro codIRange que indica el estado en el aparato de decodificación aritmética se fija en el valor de codIRangeLPS calculado en el paso SC01 (paso SC03).
Cabe destacar que, en este caso, si el valor pStateIdx anterior, el cual es un valor de estado correspondiente a ctxldx es 0 (SÍ en el paso SC05), se indica el caso donde la probabilidad de que LPS excede la probabilidad de MPS. Así, el valor valMPS se conmuta (a 0 en el caso de valMPS = 1 y se conmuta a 1 en el caso de valMPS = 0) (paso SC06). Por otro lado, si el valor pStateIdx no es 0 (NO en el paso SC05), el valor pStateIdx se actualiza basándose en una tabla de transición transIdxLPS usada cuando aparece LPS (paso SC07).
Si codIOffset es más pequeño (NO en SC02), se determina que ha aparecido el símbolo de MPS. A continuación, el valor binVal, el cual es un valor de salida decodificado, se fija en valMPS, y el valor pStateIdx se actualiza basándose
en una tabla de transición transIdxMPS usada cuando aparece MPS (paso SC04).
Finalmente, se realiza procesamiento de normalización (RenormD) (paso SC08), y termina la decodificación aritmética.
Según se describe anteriormente, en el procesamiento de decodificación aritmética binaria adaptable al contexto, se mantienen una pluralidad de probabilidades de aparición de símbolos, que son las probabilidades de aparición de símbolos binarios, en vinculación con índices de contexto y se conmuta de acuerdo con las condiciones (en referencia a un valor de un bloque adyacente, por ejemplo). De esta forma, se hace necesario mantener el orden del procesamiento.
La figura 4 muestra el flujo de procesamiento convencional de decodificación aritmética anterior para el procesamiento de derivación. Cabe destacar que esta ilustración se extrae de la literatura no perteneciente a patentes NPL 1, y corresponde a lo descrito en la literatura NPL 1, salvo que se proporcione particularmente una descripción.
En primer lugar, el segundo parámetro codIOffset que indica el estado en el dispositivo de decodificación aritmética en este punto temporal se desplaza hacia la izquierda (duplicado) y se lee un bit de un flujo de bits. Si el bit leído indica 1, se agrega 1 al segundo parámetro codIOffset duplicado, en tanto que si el valor indica 0, el segundo parámetro codIOffset se fija en el valor en el estado actual (el cual ha sido duplicado) (SD01).
A continuación, si codIOffset es mayor o igual que el primer parámetro codIRange que indica el estado en el dispositivo de decodificación aritmética (SÍ en SD02), el valor binVal, que es un valor de salida decodificado, se fija en “1”. A continuación, codIOffset se fija en un valor obtenido como resultado de una disminución de codIRange (paso SD03). Por otro lado, si codIOffset es menor que el primer parámetro codIRange, el cual indica el estado en el dispositivo de decodificación aritmética (NO en SD02), el valor binVal, que es un valor de salida decodificado, se fija en “0” (paso SD04).
La figura 5 es un diagrama de flujo para describir en detalle el procesamiento de normalización (RenormD) mostrado en el paso SC08 de la figura 3. Esta ilustración se extrae de la literatura NPL 1 y corresponde a la descripción dada en tal NPL 1, salvo que se proporcione particularmente una descripción.
Si el primer parámetro codIRange que indica el estado del aparato de decodificación aritmética se vuelve menor que 0x100 (en hexadecimal: 256 (en decimal)) como resultado del procesamiento de decodificación aritmética (SÍ en el paso SE01), codIRange se desplaza hacia la izquierda (duplicado), y el segundo parámetro codIOffset que indica el estado en el dispositivo de decodificación aritmética se desplaza hacia la izquierda (duplicado). A continuación, se lee 1 bit de un flujo de bits. Si el bit leído indica 1, 1 se agrega al segundo parámetro codIOffset duplicado, en tanto que si el valor indica 0, el segundo parámetro codIOffset se fija en el valor en el estado actual (el cual ha sido duplicado) (SE02).
En el punto temporal en el cual codIRange se ha convertido eventualmente en 256 o un valor mayor (NO en el paso SE01), termina este procesamiento.
Se realiza la decodificación aritmética sobre una diferencia de vectores de movimiento realizando el procesamiento anterior mostrado en las figuras 3, 4 y 5.
Sin embargo, de manera convencional, cuando se realiza la codificación aritmética sobre una diferencia de vectores de movimiento entre un vector de movimiento predicho y un vector de movimiento, se codifican en orden un componente X y un componente Y de la diferencia de vectores de movimiento. Específicamente, se almacenan por separado un componente X de la diferencia de vectores de movimiento y un componente Y de la diferencia de vectores de movimiento, en un flujo codificado. De esta forma, la codificación aritmética binaria adaptable al contexto y la codificación de derivación se ejecutan alternativamente sobre cada uno de un componente X y un componente Y, en el momento de la codificación, y la decodificación aritmética binaria adaptable al contexto y la decodificación de derivación se ejecutan de manera alternativa sobre cada uno de un componente X y un componente Y en el momento de la decodificación, lo cual conduce a un problema en el cual no se permite el procesamiento paralelo suficiente, lo cual es una ventaja de la codificación y decodificación de derivación.
En vista de lo anterior, un método de codificación de imágenes de acuerdo con un aspecto de la presente invención es un método de codificación de imágenes para la codificación de una imagen que usa un vector de movimiento, incluyendo el método la codificación de una diferencia de vectores de movimiento que indica una diferencia entre el vector de movimiento y un vector de movimiento predicho, el cual es un valor predicho del vector de movimiento, en el cual la codificación incluye: codificación de una primera porción que forma parte de un primer componente el cual es uno de un componente horizontal o un componente vertical de la diferencia de vectores de movimiento; la codificación de una segunda porción que forma parte de un segundo componente la cual es diferente del primer componente y es el otro del componente horizontal o el componente vertical; la codificación de una tercera porción que forma parte del primer componente y es diferente de la primera porción; la codificación de una cuarta porción que forma parte del segundo componente y es diferente de la segunda porción; y la generación de una cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en un orden de la primera
porción, la segunda porción, la tercera porción y la cuarta porción.
Por lo tanto, una parte del componente horizontal de la diferencia de vectores de movimiento y una parte del componente vertical de la diferencia de vectores de movimiento se combinan en la cadena de códigos. Por ejemplo, si se combinan una porción para la cual se usará la decodificación de derivación y la cual se incluye en el componente horizontal y una porción para la cual se usará la decodificación de derivación y la cual se incluye en el componente vertical en una cadena de códigos, puede incrementarse el grado de paralelismo de procesamiento de decodificación. En otras palabras, la diferencia de vectores de movimiento se codifica de manera eficiente combinando una parte del componente horizontal y una parte del componente vertical.
Por ejemplo, la codificación de la diferencia de vectores de movimiento puede incluir: la codificación de la tercera porción la cual incluye un signo de suma o de resta del primer componente y la codificación de la cuarta porción la cual incluye un signo de suma o de resta del segundo componente; y la generación de la cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción.
Por lo tanto, el signo del componente horizontal y el signo del componente vertical se combinan en la cadena de códigos. Normalmente, se usa decodificación de derivación para la decodificación de los signos. Por lo tanto, puede incrementarse el grado de paralelismo del procesamiento de decodificación.
Adicionalmente, por ejemplo, la codificación de diferencia de vectores de movimiento puede incluir: la codificación de la primera porción la cual incluye una bandera que indica si el primer componente es 0, y la codificación de la segunda porción la cual incluye una bandera que indica si el segundo componente es 0; y la generación de la cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción.
Por lo tanto, la bandera que indica si el componente horizontal es 0 y la bandera que indica si el componente vertical es 0 se combinan en la cadena de códigos. Normalmente, se usa decodificación aritmética binaria adaptable al contexto para la decodificación de las banderas. Se combina una pluralidad de porciones diferentes para la cual se usará la decodificación de derivación en la cadena de códigos mediante la combinación de las banderas en la cadena de códigos. En consecuencia, puede incrementarse el grado de paralelismo del procesamiento de decodificación.
Adicionalmente, por ejemplo, la codificación de diferencia de vectores de movimiento puede incluir: la codificación de la tercera porción la cual incluye una diferencia entre un valor umbral y un valor absoluto del primer componente cuando el valor absoluto del primer componente es mayor que el valor umbral; la codificación de la cuarta porción la cual incluye una diferencia entre el valor umbral y un valor absoluto del segundo componente cuando el valor absoluto del segundo componente es mayor que el valor umbral; incluye porción y la generación de la cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción.
Por lo tanto, la diferencia entre el valor umbral y el valor absoluto del componente horizontal y la diferencia entre el valor umbral y el valor absoluto del componente vertical se combinan en la cadena de códigos. Normalmente, se usa la decodificación de derivación para la decodificación de estas diferencias. Por lo tanto, puede incrementarse grado de paralelismo del procesamiento de decodificación.
Adicionalmente, por ejemplo, la codificación de la diferencia de vectores de movimiento puede incluir: la codificación de la primera porción y la segunda porción realizando codificación aritmética binaria adaptable al contexto la cual es codificación aritmética en la cual se usa una probabilidad variable actualizada basándose en datos codificados; y la generación de la cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción.
Por lo tanto, se combina una pluralidad de porciones para la cual se usará la decodificación aritmética binaria adaptable al contexto en la cadena de códigos. En este caso, se combinan una pluralidad de porciones diferentes para la cual se usará la decodificación de derivación en la cadena de códigos. En consecuencia, puede incrementarse el grado de paralelismo del procesamiento de decodificación.
Adicionalmente, por ejemplo, la codificación de la diferencia de vectores de movimiento puede incluir: codificación de la tercera porción y la cuarta porción realizando una codificación de derivación la cual es codificación aritmética en la cual se usa una probabilidad fija determinada previamente; y la generación de la cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción.
Por lo tanto, se combina una pluralidad de porciones para la cual se usará la decodificación de derivación en la cadena de códigos. En consecuencia, puede incrementarse el grado de paralelismo del procesamiento de decodificación.
Adicionalmente, por ejemplo, en la codificación de la diferencia de vectores de movimiento, la tercera porción y la
cuarta porción pueden codificarse en paralelo.
Por lo tanto, una parte del componente horizontal y una parte del componente vertical se codifican en paralelo. En consecuencia, se codifica de manera eficiente la diferencia de vectores de movimiento.
Adicionalmente, por ejemplo, la codificación de la diferencia de vectores de movimiento puede incluir: la conmutación de procesamiento de codificación al primer procesamiento de codificación que se ajusta a un primer estándar o al segundo procesamiento de codificación que se ajusta a un segundo estándar, y la generación de un flujo de bits el cual incluye información de identificación que indica el primer estándar o el segundo estándar al cual se ajusta uno correspondiente del primer procesamiento de codificación y el segundo procesamiento de codificación al cual se ha conmutado el procesamiento de codificación; y la generación, cuando el procesamiento de codificación se conmuta al primer procesamiento de codificación, de la cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción, y la generación del flujo de bits el cual incluye la cadena de códigos y la información de identificación que indica el primer estándar.
Por lo tanto, un aparato que sirve para realizar decodificación recibe una notificación si se combinan una parte del componente horizontal de la diferencia de vectores de movimiento y una parte del componente vertical de la diferencia de vectores de movimiento en la cadena de códigos. En consecuencia, será posible conmutar de manera apropiada procesamiento de decodificación.
Adicionalmente, un aparato de decodificación de imágenes de acuerdo con un aspecto de la presente invención puede ser un método de decodificación de imágenes para la decodificación de una imagen usando un vector de movimiento, incluyendo el método la decodificación de una diferencia de vectores de movimiento que indica una diferencia entre el vector de movimiento y un vector de movimiento predicho el cual es un valor predicho del vector de movimiento, en el cual la decodificación puede incluir: la obtención de una cadena de códigos la cual incluye (i) una primera porción que forma parte de un primer componente el cual es uno de un componente horizontal o un componente vertical de la diferencia de vectores de movimiento, (ii) una segunda porción que forma parte de un segundo componente la cual es diferente del primer componente y es el otro del componente horizontal o el componente vertical, (iii) una tercera porción que forma parte del primer componente y es diferente de la primera porción, y (iv) una cuarta porción la cual forma parte del segundo componente y es diferente de la segunda porción, en un orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción; y la decodificación de la primera porción incluida en la cadena de códigos; la decodificación de la segunda porción incluida en la cadena de códigos, la decodificación de la tercera porción incluida en la cadena de códigos, y la decodificación de la cuarta porción incluida en la cadena de códigos.
Por lo tanto, se obtiene la cadena de códigos en la cual se combinan una parte del componente horizontal de la diferencia de vectores de movimiento y una parte del componente vertical de la diferencia de vectores de movimiento. Por ejemplo, si una porción para la cual se usará decodificación de derivación y la cual está incluida en el componente horizontal y una porción para la cual se usará decodificación de derivación y la cual está incluida en los componentes verticales se combinan en la cadena de códigos, se podrá incrementar el grado de paralelismo del procesamiento de decodificación. En otras palabras, la diferencia de vectores de movimiento se decodifica de manera eficiente usando la cadena de códigos en la cual se combinan una parte del componente horizontal y una parte del componente vertical.
Por ejemplo, la decodificación de la diferencia de vectores de movimiento puede incluir: la obtención de la cadena de códigos la cual incluye (i) la primera porción, (ii) la segunda porción, (iii) la tercera porción, la cual incluye un signo de suma o de resta del primer componente, y (iv) la cuarta porción, la cual incluye un signo de suma o de resta del segundo componente, en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción; y decodificación de la primera porción incluida en la cadena de códigos; la decodificación de la segunda porción incluida en la cadena de códigos; la decodificación de la tercera porción incluida en la cadena de códigos y la decodificación de la cuarta porción incluida en la cadena de códigos.
Por lo tanto, se obtiene la cadena de códigos en la cual se combinan el signo del componente horizontal y el signo del componente vertical. Normalmente, se usa decodificación de derivación para la decodificación de los signos. En consecuencia, puede incrementarse el grado de paralelismo del procesamiento de decodificación.
Adicionalmente, por ejemplo, la decodificación de la diferencia de vectores de movimiento puede incluir: la obtención de la cadena de códigos la cual incluye (i) la primera porción la cual incluye una bandera que indica si el primer componente es 0, (ii) la segunda porción la cual incluye una bandera que indica si el segundo componente es 0, (iii) la tercera porción, y (iv) la cuarta porción, en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción; y la decodificación de la primera porción incluida en la cadena de códigos; la decodificación de la segunda porción incluida en la cadena de códigos; la decodificación de la tercera porción incluida en la cadena de códigos y la decodificación de la cuarta porción incluida en la cadena de códigos.
Por lo tanto, se obtiene la cadena de códigos en la cual se combinan la bandera que indica si componente horizontal es 0 y la bandera que indica si el componente vertical es 0. Normalmente, se usa decodificación aritmética binaria adaptable al contexto para decodificar estas banderas. Una pluralidad de porciones diferentes para la cual se usará la
decodificación de derivación se combina en la cadena de códigos combinando estas banderas en la cadena de códigos. En consecuencia, puede incrementarse el grado de paralelismo del procesamiento de decodificación.
Adicionalmente, por ejemplo, la decodificación de la diferencia de vectores de movimiento puede incluir: la obtención de la cadena de códigos la cual incluye (i) la primera porción, (ii) la segunda porción, y (iii) la tercera porción la cual incluye una diferencia entre un valor umbral y un valor absoluto del primer componente cuando el valor absoluto del primer componente es mayor que el valor umbral, y (iv) la cuarta porción la cual incluye una diferencia entre el valor umbral y un valor absoluto del segundo componente cuando el valor absoluto del segundo componente es mayor que el valor umbral, en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción; y la decodificación de la primera porción incluida en la cadena de códigos; la decodificación de la segunda porción incluida en la cadena de códigos; la decodificación de la tercera porción incluida en la cadena de códigos y la decodificación de la cuarta porción incluida en la cadena de códigos.
Por lo tanto, se obtiene la cadena de códigos en la cual se combinan la diferencia entre el valor umbral y el valor absoluto del componente horizontal y la diferencia entre el valor umbral y el valor absoluto del componente vertical. Normalmente, se usa decodificación de derivación para la decodificación de estas diferencias. En consecuencia, puede incrementarse el grado de paralelismo del procesamiento de decodificación.
Adicionalmente, por ejemplo, la decodificación de la diferencia de vectores de movimiento puede incluir: la obtención de la cadena de códigos la cual incluye (i) la primera porción a decodificar realizando decodificación aritmética binaria adaptable al contexto, la cual es decodificación aritmética en la cual se usa una probabilidad variable actualizada basándose en datos decodificados, (ii) la segunda porción a decodificar realizando la decodificación aritmética binaria adaptable al contexto, (iii) la tercera porción, y (iv) la cuarta porción, en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción; y la decodificación de la primera porción incluida en la cadena de códigos realizando la decodificación aritmética binaria adaptable al contexto; la decodificación de la segunda porción incluida en la cadena de códigos realizando la decodificación aritmética binaria adaptable al contexto; la decodificación de la tercera porción incluida en la cadena de códigos y la decodificación de la cuarta porción incluida en la cadena de códigos.
Por lo tanto, se obtiene la cadena de códigos en la cual se combinan una pluralidad de porciones para la cual se usará la decodificación aritmética binaria adaptable al contexto. En este caso, se combinan en la cadena de códigos una pluralidad de porciones diferentes para la cual se usará decodificación de derivación. En consecuencia, puede incrementarse el grado de paralelismo del procesamiento de decodificación.
Adicionalmente, por ejemplo, la decodificación de la diferencia de vectores de movimiento puede incluir: la obtención de la cadena de códigos la cual incluye (i) la primera porción, (ii) la segunda porción, (iii) la tercera porción a decodificar realizando decodificación de derivación la cual es decodificación aritmética en la cual se usa una probabilidad fija determinada previamente, y (iv) la cuarta porción a decodificar realizando la decodificación de derivación, en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción; y la decodificación de la primera porción incluida en la cadena de códigos; la decodificación de la segunda porción incluida en la cadena de códigos; la decodificación de la tercera porción incluida en la cadena de códigos realizando la decodificación de derivación y la decodificación de la cuarta porción incluida en la cadena de códigos realizando la decodificación de derivación.
Por lo tanto, se obtiene la cadena de códigos en la cual se combinan una pluralidad de porciones para la cual se usará decodificación de derivación. En consecuencia, puede incrementarse el grado de paralelismo del procesamiento de decodificación.
Adicionalmente, por ejemplo, en la decodificación de la diferencia de vectores de movimiento, la tercera porción y la cuarta porción pueden decodificarse en paralelo.
Por lo tanto, una parte del componente horizontal y una parte del componente vertical son decodificadas en paralelo. En consecuencia, la diferencia de vectores de movimiento se decodifica de manera eficiente.
Adicionalmente, por ejemplo, la decodificación de la diferencia de vectores de movimiento puede incluir: la obtención de un flujo de bits el cual incluye información de identificación que indica un primer estándar o un segundo estándar, y basándose en la información de identificación, la conmutación de procesamiento de decodificación al primer procesamiento de decodificación conforme al primer estándar o al segundo procesamiento de decodificación conforme al segundo estándar; y cuando el procesamiento de decodificación se conmuta al primer procesamiento de decodificación, la obtención de la cadena de códigos a partir del flujo de bits, la decodificación de la primera porción incluida en la cadena de códigos, la decodificación de la segunda porción incluida en la cadena de códigos, la decodificación de la tercera porción incluida en la cadena de códigos, y la decodificación de la cuarta porción incluida en la cadena de códigos.
Por lo tanto, el procesamiento de decodificación se conmuta de manera apropiada dependiendo de si una parte del componente horizontal de la diferencia de vectores de movimiento y una parte del componente vertical de diferencia de vectores de movimiento se combinan en la cadena de códigos.
Adicionalmente, estas realizaciones generales específicas pueden implementarse usando un aparato, un sistema, un circuito integrado, un programa de computación o un medio de grabación no transitorio legible por computadora, como por ejemplo, un CD-ROM, o cualquier combinación de aparatos, sistemas, circuitos integrados, programas de computación o medios de grabación.
A continuación se presenta una descripción detallada de un método de codificación de imágenes y un método de decodificación de imágenes de acuerdo con un aspecto de la presente invención a través de ilustraciones. Cada una de las realizaciones describe muestra un ejemplo específico de la presente invención. Los valores numéricos, formas, materiales, elementos constituyentes, la disposición y conexión de los elementos constituyentes, pasos, el orden de procesamiento de los pasos, y otros semejantes mostrados en las realizaciones siguientes son meros ejemplos, y en consecuencia no limitan la presente invención. En consecuencia, entre los elementos constituyentes en las realizaciones siguientes, los elementos constituyentes no enumerados en ninguna de las reivindicaciones independientes que definen la parte más genérica del concepto se describen como elementos constituyentes arbitrarios.
Realización 1
La figura 7 es un diagrama de bloques que muestra la configuración funcional de una unidad de decodificación de diferencia de vectores de movimiento 100 de acuerdo con la realización 1.
La unidad de decodificación de diferencia de vectores de movimiento 100 de acuerdo con la presente realización incluye la unidad de decodificación de porción de prefijo 110, una unidad de decodificación de porción de sufijo 120, una unidad de control de reconstrucción de las diferencia de vectores de movimiento 101 y una unidad de reconstrucción de diferencia de vectores de movimiento 106. Entre éstas, la unidad de decodificación de porción de prefijo 110 está constituida por una unidad de determinación de 0 de diferencia de vectores de movimiento 102 y una unidad de decodificación de porción de prefijo de diferencia de vectores de movimiento 103. Además, la unidad de decodificación de porción de sufijo 120 está constituida por una unidad de decodificación de porción de sufijo de las diferencia de vectores de movimiento 104 y una unidad de decodificación de signo de diferencia de vectores de movimiento 105. La unidad de decodificación de diferencia de vectores de movimiento 100 reconstruye, a partir de un flujo de bits BS, información en un componente X MVDX y un componente Y MVDY de una diferencia de vectores de movimiento.
El funcionamiento de la unidad de decodificación de diferencia de vectores de movimiento 100 en la presente realización se describe detalladamente en la figura 8. La figura 8 es un diagrama de flujo que muestra un ejemplo de un flujo de operaciones de la unidad de decodificación de diferencia de vectores de movimiento 100 de la presente realización.
En primer lugar, la unidad de determinación de 0 de diferencia de vectores de movimiento 102 decodifica, a partir de un flujo de bits obtenido, una bandera que indica si un componente X de una diferencia de vectores de movimiento es 0 (S200). En este caso, si el componente X de la diferencia de vectores de movimiento no es 0 (NO en S201) la unidad de decodificación de porción de prefijo de la diferencia de vectores de movimiento 103 decodifica una porción de prefijo del componente X de la diferencia de vectores de movimiento (S202). Por otro lado, si el componente X de la diferencia de vectores de movimiento es 0 (SÍ en S201), el componente X de la diferencia de vectores de movimiento se fija en 0 (S203).
A continuación, regresando al procesamiento desde bucle, la unidad de determinación de 0 de diferencia de vectores de movimiento 102 decodifica una bandera que indica si el componente Y de la diferencia de vectores de movimiento es 0 (S204). Si el componente Y de la diferencia de vectores de movimiento no es 0 en este caso (NO en S205), la unidad de decodificación de porción de prefijo de la diferencia de vectores de movimiento 103 decodifica una porción de prefijo del componente Y de la diferencia de vectores de movimiento (S206). Por otro lado, si el componente Y de la diferencia de vectores de movimiento es 0 (SÍ en S205), el componente Y de la diferencia de vectores de movimiento se fija en 0 (S207). Cabe destacar que el procesamiento hasta este paso es la operación realizada por la unidad de decodificación de porción de prefijo de la diferencia de vectores de movimiento 103 (S280).
A continuación, si se determina, basándose en información decodificada en el componente X de la diferencia de vectores de movimiento, que el componente X no es 0 (NO en S208), e incluye una porción de sufijo (SÍ en S209), la unidad de decodificación de porción de sufijo de las diferencia de vectores de movimiento 104 decodifica, a partir del flujo de bits, la porción de sufijo del componente X de la diferencia de vectores de movimiento (S210). Por otro lado, si la porción de sufijo no está incluida (No en S209), se omite el procesamiento de decodificación en la porción de sufijo. Cabe destacar que, en este caso, en lo concerniente a si una porción de sufijo está incluida, la porción de prefijo y la porción de sufijo se separan en una cadena de códigos binarios según se muestra en la figura 6, por ejemplo, y por lo tanto se determina que una porción de sufijo está incluida si todos los dígitos en una porción de prefijo son 1.
A continuación, la unidad de decodificación de signo de diferencia de vectores de movimiento 105 decodifica, a partir del flujo de bits, el signo de la diferencia de vectores de movimiento, y la unidad de reconstrucción de diferencia de
vectores de movimiento 106 reconstruye el componente X de la diferencia de vectores de movimiento (S211). Por otro lado, si el componente X es 0 (SÍ en S208), el componente X de la diferencia de vectores de movimiento ha sido reconstruida con éxito y, por lo tanto, se omite el procesamiento de decodificación en la porción de sufijo del componente X.
A continuación, si se determina, basándose en información decodificada sobre el componente Y de la diferencia de vectores de movimiento, que el componente Y no es 0 (NO en S212), e incluye una porción de sufijo (SÍ en S213), la unidad de decodificación de porción de sufijo de diferencia de vectores de movimiento 104 decodifica, a partir del flujo de bits, la porción de sufijo del componente Y de la diferencia de vectores de movimiento (S214). Cabe destacar que si la porción de sufijo no está incluida (NO en S213), se omite el procesamiento de decodificación en la porción de sufijo. En este caso, si una porción de sufijo esté incluida o no puede determinarse de la misma manera que en el caso del componente X. A continuación, la unidad de decodificación de signo de diferencia de vectores de movimiento 105 decodifica, a partir del flujo de bits, el signo del componente Y de la diferencia de vectores de movimiento, y la unidad de reconstrucción de diferencia de vectores de movimiento 106 reconstruye el componente Y de la diferencia de vectores de movimiento (S215). Por otro lado, si el componente Y es 0 (SÍ en S212), el componente Y de la diferencia de vectores de movimiento ha sido reconstruida con éxito y, por lo tanto, se omite el procesamiento de decodificación en la porción de sufijo del componente Y.
Cabe destacar que, para la porción de prefijo, la información de una diferencia de vectores de movimiento muestra una tendencia alta (hay una tendencia a haber muchos vectores cero) y, por lo tanto, la eficiencia de la codificación se incrementa realizando la codificación aritmética binaria adaptable al contexto descrita anteriormente. Por lo tanto, el procesamiento de decodificación aritmética binaria adaptable al contexto (figura 3) se ejecuta en el momento de la decodificación.
Por otro lado, la porción de sufijo se corresponde con menos bits de una diferencia de vectores de movimiento grande. De esta forma, la gama de valores posibles es grande (por ejemplo, 9 a 1024), y las frecuencias con las cuales aparece el mismo símbolo de cadena de código binaria tiende a ser baja. Por lo tanto, la cantidad de procesamiento se reduce realizando una codificación de derivación, suponiendo que la probabilidad de aparición de símbolo es del 50 %. Específicamente, se ejecuta la decodificación de derivación (figura 4) cuando se decodifica una porción de sufijo. Cabe destacar que, si el signo de una diferencia de vectores de movimiento está incluido, la codificación de derivación se realiza también sobre el signo, y por lo tanto se ejecuta la decodificación de derivación.
En este caso, se describe un ejemplo de operación de procesamiento de decodificación mostrado en la figura 8 usando la figura 9.
La figura 9 es una ilustración que describe ejemplos de pasos de procesamiento ejecutados en la realización 1. En la figura 9, (a) se muestra un ejemplo en el caso donde el procesamiento ejecutado en la realización 1 se lleva a cabo en paralelo con un proceso. El procesamiento se lleva a cabo en el orden de la decodificación en una porción de prefijo de un componente X de una diferencia de vectores de movimiento (MVDX_PREFIX), la decodificación en una porción de prefijo de un componente Y del mismo (MVDY_PREFIX), la decodificación en una porción de sufijo del componente X (MVDX_SUFFIX), la decodificación en el signo del componente X (MVDX_SIGN), la decodificación en la porción de sufijo del componente Y (MVDY_SUFFIX), y la decodificación en el signo del componente Y (MVDY_SIGN).
Sin embargo, se requiere un procesamiento de alta velocidad debido a un incremento en la resolución de imagen utilizada y a una expansión de la comunicación en tiempo real de alta velocidad y, por lo tanto, se implementa el procesamiento paralelizado. Sin embargo, puesto que se lleva a cabo un procesamiento de codificación aritmética binaria adaptable al contexto en una porción de prefijo, es necesario realizar de manera sucesiva el procesamiento de lectura y actualización de la probabilidad de aparición de símbolos. De esta forma, el procesamiento en una porción de prefijo no puede paralelizarse. Sin embargo, una porción de procesamiento de derivación puede paralelizarse a nivel de bits, según se muestra en la (b) en la figura 9.
En contraste, (c) y (d) en la figura 9 son ejemplos de paralelización de procesamiento ejecutado en la configuración convencional. En la figura 9, (c) se corresponde con (a) en la figura 9, y (d) se corresponde con (b) en la figura 9. De manera semejante, se realiza el procesamiento de manera sucesiva en una porción de prefijo, concretamente, una porción de procesamiento de decodificación aritmética binaria adaptable al contexto, y el procesamiento en una porción de sufijo, concretamente, la porción de procesamiento de derivación, pueden paralelizarse. Sin embargo, puesto que se dispone de manera alternativa un componente X y un componente Y, las porciones en las cuales se puede realizar el procesamiento en paralelo no se disponen de manera consecutiva. De esta forma, no puede lograrse un incremento suficiente en velocidad en ((d) en la figura 9). Adicionalmente, a menudo se conmuta el procesamiento entre decodificación aritmética binaria adaptable al contexto y decodificación de derivación, lo cual conduce a una carga grande y un retardo considerable en el procesamiento.
Cabe destacar que la unidad de decodificación aritmética 100 de acuerdo con la realización 1 está incluida en el aparato de decodificación de imágenes el cual decodifica datos de imágenes codificados en las cuales se ha realizado codificación de compresión. La figura 10 es un diagrama de bloques que muestra un ejemplo de una configuración de un aparato de decodificación de imágenes 400 de acuerdo con la realización 1.
El aparato de decodificación de imágenes 400 decodifica datos de imágenes codificados sobre los cuales se ha realizado la codificación de compresión. Por ejemplo, los datos de imágenes codificados son introducidos, bloque por bloque, al aparato de decodificación de imágenes 400 como señales a decodificar. El aparato de decodificación de imágenes 400 reconstruye datos de imágenes realizando decodificación de longitud variable, cuantización inversa y transformación inversa en las señales objetivo de decodificación de entrada.
Según se muestra en la figura 10, el aparato decodificación de imágenes 400 incluye una unidad decodificación de entropía 410, una unidad de cuantización inversa y transformación inversa 420, un sumador 425, un filtro desbloqueador 430, una memoria 440, una unidad de intra-predicción 450, una unidad de compensación de movimiento 460 y un conmutador de intra/inter-cambio 470.
La unidad de decodificación de entropía 410 realiza la decodificación de longitud variable en una señal de entrada (flujo de entrada), para reconstruir un coeficiente de cuantización. Cabe destacar que, en este caso, una señal de entrada (flujo de entrada) es una señal a decodificar y se corresponde con datos codificados de imágenes correspondientes a cada bloque. Adicionalmente, la unidad de decodificación de entropía 410 obtiene datos de movimiento de la señal de entrada, y produce los datos de movimiento obtenidos que van a la unidad de compensación de movimiento 460.
La unidad de cuantización inversa y transformación inversa 420 realizan cuantización inversa en el coeficiente de cuantización reconstruido por la unidad de decodificación de entropía 410, para reconstruir un coeficiente de transformación. A continuación, la unidad de cuantización inversa y transformación inversa 420 realizan transformación inversa en el coeficiente de transformación reconstruido, para reconstruir un error de predicción.
El sumador 425 agrega el error de predicción reconstruido a una señal predicha, para generar una imagen decodificada.
El filtro desbloqueador 430 realiza el procesamiento de filtro desbloqueador en la imagen decodificada generada. La imagen decodificada en la cual se ha realizado procesamiento de filtro desbloqueador se produce como una señal decodificada.
La memoria 440 es una memoria para almacenar imágenes de referencia que se usa para la compensación de movimientos. Específicamente, la memoria 440 almacena imágenes decodificadas en las cuales se ha realizado el procesamiento de filtro desbloqueador.
La unidad de intra-predicción 450 realiza una intra-predicción para generar una señal predicha (señal intra-predicha). Específicamente, la unidad de intra-predicción 450 realiza una intra-predicción con referencia a una imagen alrededor de un bloque a decodificar (señal de entrada) en la imagen decodificada generada por el sumador 425, para generar una señal intra-predicha.
La unidad de compensación de movimiento 460 realiza compensación de movimiento, basándose en datos de movimiento que salen de la unidad de decodificación de entropía 410, para generar una señal predicha (señal interpredicha).
El conmutador de intra/inter-cambio 470 selecciona cualquiera de la señal intra-predicha y la señal inter-predicha, y produce la señal seleccionada que va al sumador 425 como una señal predicha.
Usando la configuración anterior, el aparato de decodificación de imágenes 400 de acuerdo con la realización 1 decodifica datos de imágenes codificados en las cuales se ha realizado codificación de compresión.
Cabe destacar que en el aparato de decodificación de imágenes 400, la unidad de decodificación de entropía 410, incluye la unidad de decodificación de diferencia de vectores de movimiento 100 de acuerdo con la realización 1.
Según se describe anteriormente, el aparato de decodificación de imágenes y el método de decodificación de imágenes de acuerdo con la realización 1 permiten decodificación de las diferencia de vectores de movimiento de alta velocidad.
Específicamente, según se describe en la realización 1, un componente X y un componente Y de un valor de diferencia de vectores de movimiento están integradas, y un valor de diferencia de vectores de movimiento se separa en una porción en la cual se realizará decodificación aritmética binaria adaptable al contexto y una porción en la cual se realizará un procesamiento de derivación. En consecuencia, es posible expandir una porción en la cual se puede realizar una operación paralela. De esta forma, se puede realizar procesamiento paralelo o, en otras palabras, decodificación de alta velocidad.
Cabe destacar que, si bien lo anterior describe el procesamiento de decodificación en una porción de sufijo y el procesamiento de decodificación de signos, los cuales son realizados en un componente X y un componente Y por
separado, el concepto de la invención no se limita a lo anterior. Por ejemplo, después del procesamiento de decodificación en porción de sufijo en un componente X, puede realizarse procesamiento de decodificación en porción de sufijo en un componente Y, procesamiento de decodificación de signos en un componente X y A continuación procesamiento de decodificación de signos en un componente Y. Incluso con esta configuración, las porciones en las cuales el procesamiento de derivación se lleva a cabo son sucesivas y, por lo tanto, cabe esperarse que se obtengan efectos ventajosos. Además, con respecto a una porción de prefijo, información que indica si un componente X es 0, e información que indica si un componente Y es 0 puede ser decodificada de manera sucesiva. En cualquiera de los casos rigen las mismas restricciones en una porción en la cual se lleva a cabo el procesamiento de decodificación aritmética por contexto (se requiere realizar el procesamiento de manera sucesiva).
Cabe destacar que en la figura 6 se muestra una cadena binaria y la longitud de una porción en la cual la se lleva a cabo decodificación aritmética binaria adaptable al contexto son ejemplos, y no requieren necesariamente ser iguales a las de la descripción anterior. Por ejemplo, la decodificación puede realizarse suponiendo que una diferencia de vectores de movimiento que tiene valor absoluto 0, 1 o 2 es una porción de prefijo, mientras que una diferencia de vectores de movimiento cuyo valor absoluto es mayor o igual que 3 es una porción de sufijo (a decir verdad, se supone que el aparato de codificación que genera este flujo de bits ha realizado también el mismo procesamiento). Al determinar de este modo una cadena binaria, el grado de paralelismo puede aumentar y el procesamiento de decodificación se puede realizar a una velocidad todavía mayor.
Modificación de realización 1
Cabe destacar que en la realización 1, una diferencia de vectores de movimiento se separa en una porción de prefijo correspondiente a una porción en la cual se lleva a cabo procesamiento de decodificación aritmética binaria adaptable al contexto y una porción de sufijo correspondiente a una porción en la cual se lleva a cabo el procesamiento de decodificación de derivación, independientemente de un componente X y un componente Y. Lo anterior logra un procesamiento de alta velocidad. Mientras se alcanza este punto, es posible tomar en cuenta la posibilidad de una modificación según se describe más adelante.
La modificación de la realización 1 se describe con detalles a continuación usando las figuras 11A y 11B. La figura 11A es una tabla de correspondencias de bandera que muestra si los componentes X y los componentes Y de las diferencia de vectores de movimiento son 0 en la modificación de la realización 1. La figura 11B es un diagrama de flujo que muestra un ejemplo del flujo de procesamiento en la modificación de la realización 1.
La realización 1 describe banderas diferentes que indican si un componente X de una diferencia de vectores de movimiento es 0 y si un componente Y de una diferencia de vectores de movimiento es 0. Sin embargo, un componente X y un componente Y de una diferencia de vectores de movimiento se combinan para realizar la decodificación en la realización 1 y, por lo tanto, la eficiencia de la codificación puede mejorar adicionalmente combinando las banderas.
Por ejemplo, según se muestra en la figura 11A, los códigos (MVDXY_EXIST) son asignados a combinaciones que muestran si un componente X es 0 (MVDX_EXIST) y si un componente Y es 0 (MVDY_EXIST).
“0” se asigna cuando tanto un componente X como un componente Y son 0, “111 ” se asigna cuando ni un componente X ni un componente Y es 0, “110” se asigna si un componente X es 0, en tanto que un componente Y no es 0, y “10” se asigna si un componente Y es 0, en tanto que un componente X no es 0.
Según se describe anteriormente, se toma en cuenta la designación, usando un índice, un método para realizar una derivación de vectores vecinos, como un método de derivación de una diferencia de vectores de movimiento. Por lo tanto, la probabilidad de que un componente de una diferencia de vectores de movimiento sea “0” es todavía más alta que con la codificación de imágenes convencional. Si tanto un componente X como un componente Y son “0”, puede expresarse una señal de cadena binaria usando 1 bit en la presente modificación, si bien convencionalmente se hace con 2 bits. El flujo de procesamiento realizado por la unidad de decodificación de diferencia de vectores de movimiento 100 en la presente modificación es según se muestra en la figura 11B.
En el paso S501, se obtiene una cadena de códigos la cual indica si un componente X y un componente Y de una diferencia de vectores de movimiento son 0 (S501). En este caso, por ejemplo, se aplica la tabla de correspondencias en la figura 11A a un resultado que muestra si un componente X y un componente Y son 0. Cabe destacar que la figura 11B es igual a la figura 8 excepto por los pasos S200 y S204 en la figura 8 se reemplazan por el paso S501 y así se omite la descripción de los pasos siguientes.
Cabe destacar que la tabla de correspondencias que aparece en la figura 11A es un ejemplo. En el caso de este ejemplo, se determinan cadenas binarias, suponiendo que una posibilidad de que un componente X de una diferencia de vectores de movimiento sea 0 es baja puesto que generalmente muchas imágenes se mueven horizontalmente. Por ejemplo, una unidad de codificación de diferencia de vectores de movimiento puede cambiar de una a otra tabla de correspondencias de acuerdo con la frecuencia de aparición de códigos, y puede grabar un índice que indica que tabla de correspondencias se usa para la codificación en un flujo de bits. En lo sucesivo, la unidad de decodificación de diferencia de vectores de movimiento 100 puede obtener la tabla de correspondencias en la figura 11A mediante
decodificación del índice.
Esta modificación permite mejorar la eficiencia de codificación mientras se logra un procesamiento de alta velocidad.
Realización 2
Se describe ahora de manera general un método de codificación aritmética en la presente realización. El método de codificación aritmética en la presente realización tiene la característica de dividir una diferencia de vectores de movimiento en una porción de prefijo correspondiente a una porción en la cual se lleva a cabo la codificación aritmética binaria adaptable a contexto y una porción de sufijo correspondiente a una porción en la cual se lleva a cabo la codificación de procesamiento de derivación, en lugar de dividir una diferencia de vectores de movimiento en un componente X y un componente Y. Lo anterior logra una paralelización de procesamiento y una codificación de alta velocidad.
Lo anterior es una descripción general del método de codificación aritmética en la presente realización. Puede usarse el mismo método que el método convencional de codificación aritmética, salvo que se describa de manera particular.
A continuación se presenta una descripción del flujo de procesamiento realizado por la unidad de codificación de las diferencia de vectores de movimiento que realiza el método de codificación de diferencia de vectores de movimiento en la presente realización.
La figura 12 es un diagrama de flujo que muestra el flujo de procesamiento realizado por una unidad de codificación de diferencia de vectores de movimiento de acuerdo con la realización 2.
En primer lugar la unidad de codificación de diferencia de vectores de movimiento obtiene información en un componente X y un componente Y de una diferencia de vectores de movimiento a codificar, y determina si el componente X de la diferencia de vectores de movimiento es 0 (S601). Si el componente X de la diferencia de vectores de movimiento no es 0 (NO en S601), el procesamiento de codificación se lleva a cabo en una porción de prefijo del componente X de la diferencia de vectores de movimiento (S602). Cabe destacar que en el procesamiento de codificación en la porción de prefijo en este caso, se codifica una cadena binaria que aparece en la figura 6 usando el método de codificación aritmética binaria adaptable al contexto descrito más adelante. La codificación aritmética binaria adaptable al contexto forma un par con el método de decodificación aritmética en la figura 3, y es una clase codificación aritmética en la cual los contextos se conmutan de uno a otro basándose en condiciones, se obtiene la probabilidad de aparición de símbolos, y el valor de probabilidad de la misma se actualiza usando el símbolo codificado (véase literatura NPL 1). Cabe destacar que, en lo sucesivo, se aplica el método de codificación aritmética binaria adaptable al contexto para la codificación de una porción de prefijo, si no se establece claramente por escrito.
A continuación, si el componente X de la diferencia de vectores de movimiento es 0 (SÍ en S601), se codifica una bandera que indica que el componente X de la diferencia de vectores de movimiento es 0 (S603). A continuación, se determina si el componente Y de la diferencia de vectores de movimiento es 0 (S604). Si el componente Y de la diferencia de vectores de movimiento no es 0 (NO en S604), se lleva a cabo procesamiento de codificación en la porción de prefijo del componente Y de la diferencia de vectores de movimiento (de la misma manera que para el componente X, S605). Por otro lado, si el componente Y de la diferencia de vectores de movimiento es 0, se codifica una bandera que indica que el componente Y de la diferencia de vectores de movimiento es 0 (S606).
A continuación, se determina si el componente X de la diferencia de vectores de movimiento es mayor o igual que un valor TH, o en otras palabras, está incluido un sufijo (S607). Por ejemplo, si se usa la tabla de cadenas binarias en la figura 6, se realiza la determinación suponiendo que existe TH = 9. Cabe destacar que en la presente realización, puede determinarse un límite entre una porción de prefijo (codificación aritmética binaria adaptable al contexto) y una porción de sufijo (codificación de procesamiento de derivación), independientemente de esta tabla de cadenas binarias.
Si el componente X incluye una porción de sufijo en este caso (SÍ en S607), se codifica la porción de sufijo del componente X de la diferencia de vectores de movimiento (S608). Cabe destacar que el procesamiento de derivación de codificación aritmética se lleva a cabo para la codificación de una porción de sufijo. Específicamente, es un método usado para reducir los cálculos fijando la probabilidad en 50 %, y forma un par con el método de decodificación de derivación que aparece en la figura 4 (véase literatura NPL 1). En lo sucesivo, si no se establece claramente por escrito, se usa la codificación de derivación para la codificación de una porción de sufijo. A continuación, se codifica el signo del componente X de la diferencia de vectores de movimiento. Cabe destacar que la codificación de derivación se realiza también con respecto a este procesamiento (S610). Cabe destacar también que el signo del componente X se codifica también en el caso donde una porción de sufijo no está incluida (NO en S607), y el componente X no es 0 (NO en S609). Después de finalizar el procesamiento de codificación de sufijo en el componente X (S610 y SÍ en S609), se lleva a cabo el procesamiento de codificación de sufijo en el componente Y.
A continuación, se determina si el componente Y de la diferencia de vectores de movimiento es mayor o igual que el valor de TH, o en otras palabras, está incluido un sufijo (S611). Puesto que se determina de la misma manera que en
el caso del componente X, se omite una descripción detallada.
Si el componente Y incluye una porción de sufijo en este caso (SÍ en S611) se codifica la porción de sufijo del componente Y de la diferencia de vectores de movimiento (S612). Cabe destacar que el procesamiento de derivación de codificación aritmética se lleva a cabo para la codificación de una porción de sufijo. A continuación, se codifica el signo del componente Y de la diferencia de vectores de movimiento. Cabe destacar que la codificación de derivación se realiza también con respecto a este procesamiento (S614). Cabe destacar que el signo del componente Y se codifica también si la porción de sufijo no está incluida (NO en S611) y el componente Y no es 0 (NO S613). Con lo anterior se completa el procesamiento de codificación de sufijo en el componente Y, y termina el procesamiento de codificación en el componente X y el componente Y de la diferencia de vectores de movimiento.
Cabe destacar que incluso usando el método para codificación de una diferencia de vectores de movimiento, el procesamiento puede paralelizarse como en (b) en la figura 9 descrita en la realización 1 y, por lo tanto, es posible obtener un aparato de codificación de alta velocidad. Cabe destacar que como un método de codificación para la modificación de la realización 1, S601 y S604 en el flujo de procesamiento en la figura 12 se realizan primero. A continuación, en lugar de S603 y S606, se codifica una cadena binaria lo cual indica si cada uno de un componentes X y un componente Y, en una combinación es 0, basándose en la tabla de correspondencias de la figura 11a . Cabe destacar que la codificación de prefijo, concretamente, el método de codificación aritmética binaria adaptable al contexto, se realiza también para la codificación en este caso. Con lo anterior se logra un aparato de codificación de alta velocidad, en tanto que se mejora la eficiencia de codificación.
Cabe destacar que la figura 13 es un diagrama esquemático que describe la sintaxis que muestra un ejemplo de una estructura de datos de esta configuración. Cabe destacar que esta tabla de sintaxis es una cita extraída de la literatura no perteneciente a patentes NPL 2, y es un ejemplo de una estructura de datos en el cual se generan las porciones denotadas por 701, 702 y 703 usando el método para la codificación (decodificación) de una diferencia de vectores de movimiento en la realización 2 (y la realización 1).
Según se muestra en 701 a 703, mvd_I? que indica una diferencia de vectores de movimiento es representado como un parámetro que indica tanto un componente X como un componente Y. Cabe destacar que “?” en mvd_I? se corresponde con un índice de referencia, y es específicamente c, 0 o 1(véase literatura NPL 2 para más detalles).
Una diferencia de vectores de movimiento se representa convencionalmente como mvd_I? [x0] [y0] [0] y mvd_I? [x0] [y0] [1]. En este caso, el último elemento [0] indica un componente X, y el último elemento [1] indica un componente Y. Un componente X y un componente Y de una diferencia de vectores de movimiento de acuerdo con la realización 2 (y la realización 1) se combinan y describen en un flujo. Por lo tanto, una diferencia de vectores de movimiento de acuerdo con la realización 2 (y la realización 1) recibe la notación mvd_I? [x0] [y0].
La codificación de alta velocidad y la decodificación de alta velocidad pueden lograrse mediante la generación de datos que tienen una estructura de este tipo.
Cabe destacar que la unidad de codificación de las diferencia de vectores de movimiento de acuerdo con la realización 2 está incluida en el aparato de codificación de imágenes el cual realiza la codificación de compresión en datos de imágenes. La figura 14 es un diagrama de bloques que muestra un ejemplo de una configuración de un aparato de codificación de imágenes 200 de acuerdo con la realización 2.
El aparato de codificación de imágenes 200 realiza la codificación de compresión en datos de imágenes. Por ejemplo, se introducen los datos de imágenes en el aparato de codificación de imágenes 200 como una señal de entrada correspondiente a cada bloque. El aparato de codificación de imágenes 200 realiza la transformación, la cuantización y la codificación de longitud variable en la señal de entrada que ha sido introducida para generar una señal codificada.
Según se muestra en la figura 14, el aparato de codificación de imágenes 200 incluye un sustractor 205 y una unidad de transformación y cuantización 210, una unidad de codificación de entropía 220, una unidad de cuantización inversa y transformación inversa 230, un sumador 235, un filtro desbloqueador 240, una memoria 250, una unidad de intrapredicción 260, una unidad de detección de movimiento 270, una unidad de compensación de movimiento 280 y un conmutador de intra/inter-cambio 290.
El sustractor 205 calcula una diferencia entre una señal de entrada y una señal predicha o, en otras palabras, un error de predicción.
La unidad de transformación y cuantización 210 transforma un error de predicción en un dominio espacial para generar un coeficiente de transformación en un dominio de frecuencia. Por ejemplo, la unidad de transformación y cuantización 210 realiza transformación discreta de coseno (Discrete Cosine Transform, DCT) en el error de predicción para generar un coeficiente transformación. Adicionalmente, la unidad de transformación y cuantización 210 cuantiza el coeficiente de transformación, para generar un coeficiente de cuantización.
La unidad de codificación de entropía 220 realiza una codificación de longitud variable en el coeficiente de
cuantización, para generar una señal codificada. Adicionalmente, la unidad de codificación de entropía 220 codifica datos de movimiento (por ejemplo, vector de movimiento) detectados por la unidad de detección de movimiento 270, y produce los datos incluidos en la señal codificada.
La unidad de cuantización inversa y transformación inversa 230 realiza cuantización inversa en el coeficiente de cuantización, para reconstruir un coeficiente de transformación. Adicionalmente, la unidad de cuantización inversa y transformación inversa 230 realiza transformación inversa en el coeficiente de transformación reconstruido, para reconstruir el error de predicción. Cabe destacar que el error de predicción reconstruido tiene pérdida de información debido a la cuantización y, por lo tanto, no coincide con el error de predicción generado por el sustractor 205. Específicamente, el error de predicción reconstruido incluye un error de cuantización.
El sumador 235 agrega el error de predicción reconstruido a la señal predicha, para generar una imagen decodificada local.
El filtro desbloqueador 240 realiza el procesamiento de filtro desbloqueador en la imagen decodificada local generada.
La memoria 250 es una memoria para almacenar imágenes de referencia que se usa para la compensación de movimiento. Específicamente, la memoria 250 almacena la imagen decodificada localmente en la cual ha sido realizado el procesamiento de filtro desbloqueador.
La unidad de intra-predicción 260 realiza una intra-predicción, para generar una señal predicha (señal intra-predicha). Específicamente, la unidad de intra-predicción 260 realiza una intra-predicción con referencia a una imagen que rodea un bloque objetivo de codificación (señal de entrada) en la imagen decodificada localmente generada por el sumador 235, para generar una señal intra-predicha.
La unidad de detección de movimiento 270 detecta datos de movimiento (por ejemplo, vector de movimiento) entre una señal de entrada y una imagen de referencia almacenada en la memoria 250.
La unidad de compensación de movimiento 280 realiza una compensación de movimiento basándose en los datos de movimiento detectados, para generar una señal predicha (señal inter-predicha).
El conmutador de intra/inter-cambio 290 selecciona una de las dos señales, una señal intra-predicha y una señal de inter-predicción, y produce la señal seleccionada como una señal predicha al sustractor 205 y el sumador 235.
Usando la configuración anterior, el aparato de codificación de imágenes 200 de acuerdo con la realización 2 realiza la codificación de compresión en datos de imágenes.
Realización 3
La presente realización describe configuraciones y procedimientos característicos incluidos en la realización 1 o 2 para confirmación. Las configuraciones y los procedimientos de acuerdo con la presente realización se corresponden con las configuraciones y procedimientos descritos en la realización 1 o 2. Específicamente, el concepto descrito en las realizaciones 1 y 2 incluye las configuraciones y los procedimientos de acuerdo con la presente realización.
La figura 15A es un diagrama de bloques que muestra un ejemplo de una configuración de un aparato de codificación de imágenes de acuerdo con la presente realización. Un aparato de codificación de imágenes 800 que aparece en la figura 15A codifica una imagen usando un vector de movimiento. El aparato de codificación de imágenes 800 incluye una unidad de codificación 801.
La figura 15B es un diagrama de flujo que muestra el funcionamiento del procesamiento del aparato de codificación de imágenes 800 mostrado en la figura 15A. La unidad de codificación 801 codifica una diferencia de vectores de movimiento (S801). Una diferencia de vectores de movimiento muestra la diferencia entre un vector de movimiento predicho y un vector de movimiento. Un vector de movimiento predicho es un valor predicho de un vector de movimiento. Cuando se hace la codificación de una diferencia de vectores de movimiento, la unidad de codificación 801 codifica una primera porción, una segunda porción, una tercera porción y una cuarta porción.
La primera porción forma parte de un primer componente el cual es o bien un componente horizontal o bien un componente vertical de una diferencia de vectores de movimiento. La segunda porción forma parte de un segundo componente la cual es diferente del primer componente y es el otro de los componentes, o bien el componente horizontal o bien el componente vertical, de la diferencia de vectores de movimiento. La tercera porción es una parte del primer componente y es diferente de la primera porción. La cuarta porción es una parte del segundo componente y es diferente de la segunda porción. Normalmente, una parte de cada componente forma parte de datos binarios correspondientes al componente.
A continuación, la unidad de codificación 801 genera una cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera
porción y la cuarta porción.
Por lo tanto, una parte del componente horizontal de la diferencia de vectores de movimiento y una parte del componente vertical de la diferencia de vectores de movimiento se combinan en la cadena de códigos. De esta forma, la diferencia de vectores de movimiento se codifica de manera eficiente combinando una parte del componente horizontal y una parte del componente vertical.
Por ejemplo, la primera porción puede incluir una bandera que indica si el primer componente es 0. La segunda porción puede incluir, una bandera que indica si el segundo componente es 0. La tercera porción puede incluir el signo del primer componente. La cuarta porción puede incluir el signo del segundo componente.
Adicionalmente, por ejemplo, si el valor absoluto del primer componente es mayor que un valor umbral, la tercera porción puede incluir la diferencia entre el valor umbral y el valor absoluto del primer componente. Si el valor absoluto del segundo componente es mayor que el valor umbral, la cuarta porción puede incluir la diferencia entre el valor umbral y el valor absoluto del segundo componente.
Adicionalmente, por ejemplo, la unidad de codificación 801 puede codificar la primera porción y la segunda porción realizando una codificación aritmética binaria adaptable al contexto. A continuación, la unidad de codificación 801 puede codificar la tercera porción y la cuarta porción realizando una codificación de derivación. La codificación aritmética binaria adaptable al contexto es una codificación aritmética en la cual se usa una probabilidad variable actualizada basándose en datos codificados. La codificación de derivación es una codificación aritmética en la cual se usa una probabilidad fija determinada previamente. Adicionalmente, la unidad de codificación 801 puede codificar la tercera porción y la cuarta porción en paralelo.
Adicionalmente, por ejemplo, la unidad de codificación 801 puede codificar la primera porción, la segunda porción, la tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción.
Por ejemplo, la unidad de codificación 801 puede conmutar el procesamiento de codificación al primer procesamiento de codificación conforme a un primer estándar o al segundo procesamiento de codificación conforme a un segundo estándar. A continuación, la unidad de codificación 801 puede generar un flujo de bits el cual incluye información de identificación que indica el primer estándar o el segundo estándar al cual se ajusta uno correspondiente entre el primer procesamiento de codificación y el segundo procesamiento de codificación al cual se ha conmutado el procesamiento de codificación.
Si el procesamiento de codificación se conmuta al primer procesamiento de codificación, la unidad de codificación 801 puede generar una cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción. Adicionalmente, la unidad de codificación 801 puede generar un flujo de bits el cual incluye información de identificación que indica el primer estándar y la cadena de códigos, en este caso.
La figura 16A es un diagrama de bloques que muestra un ejemplo de una configuración de un aparato de decodificación de imágenes de acuerdo con la presente realización. Un aparato de decodificación de imágenes 900 que aparece en la figura 16A decodifica una imagen usando un vector de movimiento. Adicionalmente, el aparato de decodificación de imágenes 900 incluye una unidad de decodificación 901.
La figura 16B es un diagrama de flujo que muestra la operación de procesamiento del aparato de decodificación de imágenes 900 que aparece en la figura 16A. La unidad decodificación 901 decodifica una diferencia de vectores de movimiento (S901). Un vector de movimiento predicho es un valor predicho de un vector de movimiento. Una diferencia de vectores de movimiento muestra la diferencia entre el vector de movimiento predicho y el vector de movimiento.
Cuando se decodifica una diferencia de vectores de movimiento, la unidad de decodificación 901 obtiene una cadena de códigos. A continuación, la unidad de decodificación 901 decodifica una primera porción incluida en la cadena de códigos, decodifica una segunda porción incluida en la cadena de códigos, decodifica una tercera porción incluida en la cadena de códigos y decodifica una cuarta porción incluida en la cadena de códigos.
La primera porción forma parte de un primer componente el cual es o bien un componente horizontal o bien un componente vertical de una diferencia de vectores de movimiento. La segunda porción forma parte de un segundo componente la cual es diferente del primer componente y es el otro del componente horizontal y el componente vertical. La tercera porción es una parte del primer componente y es diferente de la primera porción. La cuarta porción es una parte del segundo componente y es diferente de la segunda porción. Normalmente, una parte de cada componente forma parte de los datos binarios correspondientes al componente.
Una cadena de códigos incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción.
Por lo tanto, la unidad de decodificación 901 obtiene una cadena de códigos en la cual se combina una parte del componente horizontal de la diferencia de vectores movimiento y una parte del componente vertical de diferencia de vectores de movimiento. A continuación, la diferencia de vectores de movimiento se decodifica de manera eficiente usando una cadena de códigos en la cual se combina una parte del componente horizontal y una parte del componente vertical.
Por ejemplo, la primera porción puede incluir una bandera que indica si el primer componente es 0. La segunda porción puede incluir una bandera que indica si el segundo componente es 0. La tercera porción puede incluir el signo del primer componente. La cuarta porción puede incluir el signo del segundo componente.
Por ejemplo, si el valor absoluto del primer componente es mayor que el valor umbral, la tercera porción puede incluir la diferencia entre el valor umbral y el valor absoluto del primer componente. Si el valor absoluto del segundo componente es mayor que el valor umbral, la cuarta porción puede incluir la diferencia entre el valor umbral y el valor absoluto del segundo componente.
Por ejemplo, la unidad de decodificación 901 puede decodificar la primera porción y la segunda porción realizando decodificación aritmética binaria adaptable al contexto. Adicionalmente, la unidad de decodificación 901 puede decodificar la tercera porción y la cuarta porción realizando una decodificación de derivación. La decodificación aritmética binaria adaptable al contexto es una decodificación aritmética en la cual se usa una probabilidad variable actualizada basándose en datos decodificados. La decodificación de derivación es una decodificación aritmética en la cual se usa una probabilidad fija determinada previamente. Adicionalmente, la unidad de decodificación 901 puede decodificar la tercera porción y la cuarta porción en paralelo.
Por ejemplo, la unidad de decodificación 901 puede decodificar la primera porción, la segunda porción, tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción.
Adicionalmente, por ejemplo, la unidad de decodificación 901 puede obtener un flujo de bits el cual incluye información de identificación que indica un primer estándar o un segundo estándar. A continuación, basándose en la información de identificación, la unidad de decodificación 901 puede conmutar el procesamiento de decodificación al primer procesamiento de decodificación conforme al primer estándar o al segundo procesamiento de decodificación conforme al segundo estándar.
Si el procesamiento de decodificación se conmuta al primer procesamiento de decodificación, la unidad de decodificación 901 puede obtener, a partir del flujo de bits, la cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en el orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción.
Adicionalmente, por ejemplo, el aparato de codificación de imágenes 800 y el aparato de decodificación de imágenes 900 pueden constituir un aparato de codificación y decodificación de imágenes.
Adicionalmente, por ejemplo, la estructura de datos correspondiente a una cadena de códigos de una diferencia de vectores de movimiento puede ser la estructura de datos mostrada en la figura 17.
La figura 17 muestra una tabla de sintaxis que muestra un ejemplo de una estructura de datos correspondiente a una cadena de códigos de una diferencia de vectores de movimiento. En la figura 17, [0] indica un componente horizontal, en tanto que [1] indica un componente vertical.
“abs_mvd_greater0_flag” es una bandera que indica si el valor absoluto de un componente horizontal o un componente vertical de una diferencia de vectores de movimiento es superior a 0. “abs_mvd_greater1_flag” es una bandera que indica si el valor absoluto del componente horizontal o el componente vertical de la diferencia de vectores movimiento es mayor que 1. “abs_mvd_minus2” es un valor obtenido sustrayendo 2 del valor absoluto del componente horizontal o el componente vertical de la diferencia de vectores de movimiento. “mvd_sign_flag” es un signo del componente horizontal o el componente vertical de la diferencia de vectores de movimiento.
“abs_mvd_greater0_flag” y “abs_mvd_greater1_flag” corresponden con una porción de prefijo. “abs_mvd_minus2” corresponde con una porción de sufijo. Normalmente se usa la codificación aritmética binaria adaptable al contexto (decodificación) para la codificación (decodificación) “abs_mvd_greater0_flag” y “abs_mvd greater1_flag”. A continuación, se usa codificación de derivación (decodificación) para la codificación (decodificación) “abs_mvd_minus2” y “mvd_sign_flag”.
Cabe destacar que en las realizaciones anteriores, cada uno de los elementos constituyentes puede tener la forma de hardware dedicado o puede obtenerse ejecutando un programa de software adecuado para el elemento constituyente. Cada elemento constituyente puede obtenerse por una unidad de ejecución de programas como una CPU o un procesador que lee y que ejecuta un programa de software registrado en un medio de grabación como un disco duro o una memoria de semiconductores. En este caso, el software que funciona en el aparato de codificación de imágenes en las realizaciones anteriores y otros semejantes es un programa según se describirá a continuación.
Específicamente, este programa hace que una computadora ejecute un método de codificación de imágenes para la codificación de una imagen que usa un vector de movimiento, incluyendo el método la codificación de una diferencia de vectores de movimiento que indica una diferencia entre el vector de movimiento y un vector de movimiento predicho que es un valor predicho del vector de movimiento, en el cual la codificación incluye: la codificación de una primera porción que forma parte de un primer componente el cual es o bien un componente horizontal o bien un componente vertical de la diferencia de vectores de movimiento; la codificación de una segunda porción que forma parte de un segundo componente la cual es diferente del primer componente y es el otro del componente horizontal y el componente vertical; la codificación de una tercera porción que forma parte del primer componente y es diferente de la primera porción; la codificación de una cuarta porción que forma parte del segundo componente y es diferente de la segunda porción; y la generación de una cadena de códigos la cual incluye la primera porción, la segunda porción, la tercera porción y la cuarta porción en un orden de la primera porción, la segunda porción, la tercera porción y la cuarta porción.
Lo anterior es una descripción de un método de codificación de imágenes de acuerdo con uno o más aspectos de la presente invención, basándose en las realizaciones. Sin embargo, la presente invención no se limita a estas realizaciones. Pueden incluirse diversas modificaciones a estas realizaciones que pueden concebirse por personas capacitadas en la técnica y combinaciones de elementos constituyentes en diferentes realizaciones.
Realización 4
El procesamiento descrito en cada una de las realizaciones puede implementarse de manera sencilla en un sistema de computación independiente, mediante el registro, en un medio de grabación, de un programa para implementar las configuraciones del método de codificación de imágenes en movimiento (método de codificación de imágenes) y el método de decodificación de imágenes en movimiento (método de decodificación de imágenes) descritos en cada una de las realizaciones. Los medios de grabación pueden ser cualquier medio de grabación siempre que el programa pueda ser grabado, tal como en un disco magnético, un disco óptico, un disco óptico magnético, una tarjeta de circuito integrado (IC) y una memoria de semiconductores.
En lo sucesivo, se describirán las aplicaciones correspondientes al método de codificación de imágenes en movimiento (método de codificación de imágenes) y al método de decodificación de imágenes en movimiento (método de decodificación de imágenes) descritos en cada una de las realizaciones y sistemas que los usan. El sistema tiene la característica de tener un aparato de codificación y decodificación de imágenes que incluye un aparato de codificación de imágenes que usa el método de codificación de imágenes y un aparato de decodificación de imágenes que usa el método de decodificación de imágenes. Es posible modificar otras configuraciones en el sistema según corresponda dependiendo de los casos.
La figura 18 ilustra una configuración global de un sistema que proporciona contenido ex100 para implementar servicios de distribución de contenido. El área para proporcionar servicios de comunicaciones se divide en celdas de tamaño deseado, y estaciones base ex106, ex107, ex108, ex109 y ex110 que son estaciones inalámbricas fijas colocadas en cada una de las celdas.
El sistema proveedor de contenido ex100 está conectado a dispositivos, como por ejemplo, una computadora ex111, un asistente digital personal (PDA, por sus siglas en inglés) ex112, una cámara ex113, un teléfono celular ex114 y una máquina de juegos ex115 por medio de Internet ex101, un proveedor de servicios de Internet ex102, una red telefónica ex104, así como estaciones base ex106 a ex110, respectivamente.
Sin embargo, la configuración del sistema proveedor de contenido ex100 no está limitada a la configuración que aparece en la figura 18, y puede aceptarse una combinación en la cual estén conectados cualquiera de los elementos. Adicionalmente, cada dispositivo puede ser conectado directamente a la red telefónica ex104, en lugar de hacerlo por medio de las estaciones base ex106 a ex110 las cuales son las estaciones inalámbricas fijas. Adicionalmente, los dispositivos pueden interconectarse entre sí por medio de una comunicación inalámbrica de distancia corta y otros.
La cámara ex113, como por ejemplo una cámara de vídeo digital, puede ser capaz de capturar vídeo. Una cámara ex116, como por ejemplo una cámara de vídeo digital, puede ser capaz de capturar tanto imágenes como vídeo. Adicionalmente, el teléfono celular ex114 puede ser el que cumple cualquiera de los estándares como por ejemplo el Sistema Global para Comunicaciones Móviles (GSM, por sus siglas en inglés) (marca comercial registrada), Acceso Múltiple por División de Código (CDMA, por sus siglas en inglés), Acceso Múltiple por División de Código de Banda Ancha (W-CDMA, por sus siglas en inglés), Evolución a Largo Plazo (LTE, por sus siglas en inglés) y Acceso de Paquetes a Alta Velocidad (HSPA, por sus siglas en inglés). De manera alternativa, el teléfono celular ex114 puede ser un Sistema de Teléfono Manual Personal (PHS, por sus siglas en inglés).
En el sistema proveedor de contenido ex100, un servidor de transmisión en vivo ex103 se conecta a la cámara ex113 y otros por medio de la red telefónica ex104 y la estación base ex109, lo cual permite la distribución de imágenes de un programa en vivo y otros. En tal distribución, un contenido (por ejemplo, vídeo de un programa de música en vivo) capturado por el usuario usando la cámara ex113 se codifica según se describe 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 de transmisión en vivo ex103. Por otro lado, el servidor de transmisión en vivo ex103 realiza una distribución de flujos de los datos de contenido transmitido a los clientes dependiendo de sus solicitudes. Los clientes incluyen la computadora ex111, la PDA ex112, la cámara ex113, el teléfono celular ex114 y la máquina de juegos ex115 que pueden realizar la decodificación de los datos codificados mencionados anteriormente. Cada uno de los dispositivos que han recibido los datos distribuidos decodifica y reproduce los datos codificados (es decir, funciona como el aparato de decodificación de imágenes de acuerdo con un aspecto de la presente invención).
Los datos capturados pueden codificarse mediante la cámara ex113 o el servidor de transmisión en vivo ex103 que transmite los datos, o los procesos de codificación pueden ser comparados entre la cámara ex113 y el servidor de transmisión en vivo ex103. De manera semejante, los datos distribuidos pueden decodificarse por los clientes o el servidor de transmisión en vivo ex103, o los procesos de decodificación pueden ser compartidos entre los clientes y el servidor de transmisión en vivo ex103. Adicionalmente, los datos de las imágenes fijas y vídeo capturados no solamente por la cámara ex113 sino también por la cámara ex116 pueden ser transmitidos al servidor de transmisión en vivo ex103 a través de la computadora ex111. Los procesos de codificación pueden realizarse por la cámara ex116, la computadora ex111 o el servidor de transmisión en vivo ex103, o compartirse entre los mismos.
Adicionalmente, los procesos de codificación y decodificación pueden realizarse por un LSI ex500 generalmente incluido en cada computadora ex111 y en los dispositivos. El circuito LSI ex500 puede configurarse basándose en un solo chip o en una pluralidad de chips. El software para la codificación y decodificación de vídeo puede integrarse en algún tipo de medio de grabación (como por ejemplo un CD-ROM, un disco flexible y un disco duro) que puede leerse en la computadora ex111 y otros medios, y los procesos de codificación y decodificación pueden realizarse usando el software. Adicionalmente, cuando el teléfono celular ex114 está dotado de una cámara, pueden transmitirse los datos de imágenes obtenidos por la cámara. Los datos de vídeo son datos codificados por el circuito LSI ex500 incluido en el teléfono celular ex114.
Adicionalmente, el servidor de transmisión en vivo ex103 puede estar compuesto por servidores y computadoras, y puede descentralizar datos y procesar datos descentralizados, grabar o distribuir datos.
Según se describe anteriormente, los clientes pueden recibir y reproducir los datos codificados en el sistema proveedor de contenido ex100. 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 proveedor de contenido ex100, de modo que el usuario que no posee derechos particulares y equipos puede implementar una radiodifusión personal.
Aparte del ejemplo del sistema proveedor de contenido ex100, como mínimo uno de los aparatos, entre el aparato de codificación de imágenes en movimiento (aparato de codificación de imágenes) y el aparato de decodificación de imágenes en movimiento (aparato de decodificación de imágenes) descritos en cada una de las realizaciones, puede implementarse en un sistema de radiodifusión digital ex200 ilustrado en la figura 19. Más específicamente, una estación de radiodifusión ex201 comunica o transmite, por medio de ondas de radio a un satélite de radiodifusión ex202, datos multiplexados obtenidos mediante la multiplexación de datos de audio y otros en datos de vídeo. Los datos de vídeo son datos codificados por el método de codificación de imágenes 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). Después de la recepción de los datos multiplexados, el satélite de radiodifusión ex202 transmite ondas de radio para su radiodifusión. A continuación, una antena de uso doméstico ex204 con una función de recepción de radiodifusión por satélite recibe las ondas de radio. A continuación, un dispositivo como por ejemplo una televisión (receptor) ex300 y una caja auxiliar de conexión (Set Top Box, STB) ex217 decodifica los datos multiplexados recibidos y reproduce los datos decodificados (es decir, funciona como el aparato de decodificación de imágenes de acuerdo con un aspecto de la presente invención).
Adicionalmente, un dispositivo lector/grabador ex218 (i) lee y decodifica los datos multiplexados grabados en un medio de grabación ex215, como por ejemplo un DVD y un BD, o (i) codifica señales de vídeo en el medio de grabación ex215 y en algunos casos, graba datos obtenidos mediante la multiplexación de una señal de audio en los datos codificados. El dispositivo lector/grabador ex218 puede incluir el aparato de decodificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento según se muestra en cada una de las realizaciones. En este caso, las señales reproducidas de vídeo se visualizan en el monitor ex219 y pueden reproducirse a través de otro dispositivo o sistema que usa el medio de grabación ex215 en el cual han sido grabados los datos multiplexados. También se puede implementar el aparato de decodificación de imágenes en movimiento en la caja auxiliar de conexión ex217 conectada al cable ex203 para una televisión por cable o en la antena ex204 para radiodifusión por satélite y/o terrestre, de modo que se visualizan las señales de vídeo en el monitor ex219 de la televisión ex300. El aparato de decodificación de imágenes en movimiento puede implementarse no en la caja auxiliar de conexión sino en la televisión ex300.
La figura 20 ilustra la televisión (receptor) ex300 que usa el método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento descritos en cada una de las realizaciones. La televisión ex300 incluye: un sintonizador ex301 que obtiene o proporciona datos multiplexados obtenidos mediante la multiplexación
de datos de audio en datos de vídeo, a través de la antena ex204 o el cable ex203, etc. que recibe una radiodifusión; una unidad de modulación/demodulación ex302 que demodula los datos multiplexados recibidos o modula datos en datos multiplexados que se suministrarán al exterior; y una unidad de multiplexación/desmultiplexación ex303 que desmultiplexa 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 de procesamiento de señales ex306 en datos.
La televisión ex300 incluye adicionalmente: una unidad de procesamiento de señales ex306 que incluye una unidad de procesamiento de señales de audio ex304 y una unidad de procesamiento de señales de vídeo ex305 que decodifican datos de audio y datos de vídeo y codifican datos de audio y datos de vídeo, respectivamente (que funcionan como un aparato de codificación de imágenes y un aparato de decodificación de imágenes de acuerdo con los aspectos de la presente invención); y una unidad de salida ex309 que incluye un altavoz ex307 que proporciona la señal de audio decodificada, y una unidad de visualización ex308 que visualiza la señal de vídeo decodificada, como por ejemplo, un elemento de visualización. Adicionalmente, la televisión ex300 incluye una unidad de interfaz ex317 que incluye una unidad de entrada de operaciones ex312 que recibe una entrada de una operación de usuario. Adicionalmente, la televisión ex300 incluye una unidad de control ex310 que controla de manera global cada elemento constituyente de la televisión ex300, y una unidad de circuito de suministro de potencia ex311 que suministra potencia a cada uno de los elementos. Aparte de la unidad de entrada de operaciones ex312, la unidad de interfaz ex317 puede incluir: un puente ex313 que se conecta a un dispositivo externo, como por ejemplo, el dispositivo lector/grabador ex218; una unidad de ranuras ex314 que permite la unión del medio de grabación ex216, como por ejemplo una tarjeta SD; un controlador ex315 que se conecta a un medio de grabación externo, como por ejemplo un disco duro; y un módem ex316 que se conecta a una red telefónica. En este caso, el medio de grabación ex216 puede grabar eléctricamente información usando un elemento de memoria de semiconductores no volátil/volátil para su almacenamiento. Los elementos constituyentes de la televisión ex300 se conectan entre sí a través de un bus sincrónico.
Primero, se describirá la configuración en la cual la televisión ex300 decodifica datos multiplexados obtenidos del exterior a través de la antena ex204 y otros medios y reproduce los datos decodificados. En la televisión ex300, después de una operación de usuario a través de un controlador remoto ex220 y otros medios, la unidad de multiplexación/desmultiplexación ex303 desmultiplexa los datos multiplexados demodulados por la unidad de modulación/demodulación ex302, bajo control de la unidad de control ex310 que incluye una CPU. Adicionalmente, la unidad de procesamiento de señales de audio ex304 decodifica los datos de audio desmultiplexados, y la unidad de procesamiento de señales de vídeo ex305 decodifica los datos de vídeo multiplexados, usando la decodificación aritmética descrita en cada una de las realizaciones, en la televisión ex300. La unidad de salida ex309 proporciona la señal de vídeo decodificada y la señal de audio al exterior, respectivamente. Cuando la unidad de salida ex309 proporciona la señal de vídeo y la señal de audio, las señales pueden ser almacenadas temporalmente en las memorias intermedias ex318 y ex319 y otros medios de modo que las señales son reproducidas en sincronización mutua. Adicionalmente, la televisión ex300 puede leer datos multiplexados no a través de una radiodifusión y otros medios sino de los medios de grabación ex215 y ex216, como por ejemplo, un disco magnético, un disco óptico y una tarjeta SD. A continuación, se describirá una configuración en la cual la televisión ex300 codifica una señal de audio y una señal de vídeo, y transmite los datos hacia el exterior o graba los datos en un medio de grabación. En la televisión ex300, después de una operación de usuario a través del control remoto ex220 y otros medios, la unidad de procesamiento de señales de audio ex304 codifica una señal de audio, y la unidad de procesamiento de señales de vídeo ex305 codifica una señal de vídeo, bajo control de la unidad de control ex310 que usa el método de codificación descrito en cada una de las realizaciones. La unidad de multiplexación/desmultiplexación ex303 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 de multiplexación/desmultiplexación ex303 multiplexa la señal de vídeo y la señal de audio, las señales pueden ser almacenadas temporalmente en las memorias intermedias ex320 y ex321, y otros medios de modo que las señales son reproducidas en sincronización mutua. En este caso, las memorias intermedias ex318, ex319, ex320 y ex321 pueden ser varias según se ilustra, o como mínimo una memoria intermedia puede ser compartida en la televisión ex300. Adicionalmente, los datos pueden ser almacenados en una memoria intermedia de modo que puede evitarse desbordamiento y subdesbordamiento del sistema entre la unidad de modulación/demodulación ex302 y la unidad de multiplexación/desmultiplexación ex303, por ejemplo.
Adicionalmente, la televisión ex300 puede incluir una configuración para recibir una entrada AV desde un micrófono o una cámara distinta de la configuración para la obtención de datos de audio y vídeo de una radiodifusión o un medio de grabación, y puede codificar los datos obtenidos. Si bien la televisión ex300 puede codificar, multiplexar y proporcionar datos externos en la descripción, puede ser capaz de recibir únicamente la decodificación, y proporcionar datos externos pero no realizar la codificación, multiplexación y suministro de datos externos.
Adicionalmente, cuando el dispositivo lector/grabador ex218 lee o graba datos multiplexados de o en un medio de grabación, uno de la televisión ex300 y el dispositivo lector/grabador ex218 puede decodificar o codificar los datos multiplexados, y la televisión ex300 y el dispositivo lector/grabador ex218 pueden compartir la decodificación o codificación.
A modo de ejemplo, la figura 21 ilustra una configuración de una unidad de reproducción/grabación de información ex400 cuando se leen o se graban datos de o en un disco óptico. La unidad de reproducción/grabación de información
ex400 incluye los elementos constituyentes ex401, ex402, ex403, ex404, ex405, ex406 y ex407 que se describen más adelante en este documento. El cabezal óptico ex401 irradia un punto láser en una superficie de grabación del medio de grabación ex215 que es un disco óptico para grabar información, y detecta luz reflejada desde la superficie de grabación del medio de grabación ex215 para leer la información. La unidad de grabación de modulación ex402 conduce eléctricamente un láser de semiconductor incluido en cabezal óptico ex401, y modula el láser luminoso de acuerdo con los datos registrados. La unidad de demodulación de reproducción ex403 amplifica una señal reproducción obtenida mediante detección de manera electrónica de la luz reflejada desde la superficie de grabación que usa un fotodetector incluido en el cabezal óptico ex401, y demodula la señal de reproducción mediante la separación de un componente de señal registrada en el medio de grabación ex215 para reproducir la información necesaria. La memoria intermedia ex404 mantiene temporalmente la información a grabar en el medio de grabación ex215 y la información reproducida del medio de grabación ex215. El motor de disco ex405 gira el medio de grabación ex215. La unidad de servocontrol ex406 mueve el cabezal óptico ex401 hasta una pista de información determinada previamente mientras controla la unidad de rotación del motor de disco ex405 de modo que se sigue el punto láser. La unidad de control de sistema ex407 controla de manera global la unidad de reproducción/grabación de información ex400. Los procesos de lectura y escritura pueden implementarse a través de la unidad de control de sistema ex407 que usa diversa información almacenada en la memoria intermedia ex404 y que genera y agrega información nueva según sea necesario, y a través de la unidad de grabación de modulación ex402, la unidad de demodulación de reproducción ex403, y la unidad de servocontrol ex406 que graba y reproduce la información a través del cabezal óptico ex401 mientras se hace funcionar de una manera coordinada. La unidad de control de sistema ex407 incluye, por ejemplo, un microprocesador y ejecuta procesamiento haciendo que una computadora ejecute un programa para leer y grabar.
Si bien el cabezal óptico ex401 irradia un punto láser en la descripción, puede realizar una grabación de alta densidad usando una luz de campo próximo.
La figura 22 ilustra el medio de grabación ex215 que es el disco óptico. En la superficie de grabación del medio de grabación ex215 se forman surcos guía de manera espiral y se graba una pista de información ex230, 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 guía. La información de dirección incluye información para determinar posiciones de bloques de grabación ex231 que son una unidad de grabación de datos. La reproducción de la pista de información ex230 y la lectura de la información de dirección en un aparato que graba y reproduce datos puede conducir a la determinación de las posiciones de los bloques de grabación. Adicionalmente, el medio de grabación ex215 incluye un área de grabación de datos ex233, un área de circunferencia interior ex232 y un área de circunferencia exterior ex234. El área de grabación de datos ex233 es un área para su uso en el registro de los datos de usuario. El área de circunferencia interior ex232 y el área de circunferencia exterior ex234 que están dentro y fuera del área de grabación de datos ex233, son respectivamente para uso específico excepto para el registro de los datos de usuario. La unidad de reproducción/grabación de información 400 lee y graba datos de audio codificados, datos de vídeo codificados o datos multiplexados obtenidos mediante la multiplexación de los datos de audio y vídeo codificados, desde y en el área de grabación de datos ex233 del medio de grabación ex215.
Si bien se describe un disco óptico que tiene una capa, como por ejemplo un DVD y un BD a modo de ejemplo en la descripción, el disco óptico no está limitado a los mismos, y puede ser un disco óptico que tiene una estructura multicapa y que puede grabarse en una parte separada de la superficie. Adicionalmente, el disco óptico puede tener una estructura para la grabación/reproducción multidimensional, como por ejemplo, la grabación de información usando luz de colores con diferentes longitudes de onda en la misma porción del disco óptico y para la grabación de información que tiene capas diferentes desde ángulos diversos.
Adicionalmente, un vehículo ex210 que tiene una antena ex205 puede recibir datos del satélite ex202 y otros medios, y reproducir vídeo en un dispositivo de visualización como por ejemplo un sistema de navegación para vehículos ex211 fijado en el vehículo ex210, en el sistema de radiodifusión digital ex200. En este caso, una configuración del sistema de navegación para vehículos ex211 será una configuración, por ejemplo, que incluye una unidad de recepción de GPS de la configuración ilustrada en la figura 20. Lo mismo se cumplirá con la configuración de la computadora ex111, el teléfono celular ex114 y otros medios.
La figura 23A ilustra el teléfono celular ex114 que usa el método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento descritos en las realizaciones. El teléfono celular ex114 incluye: una antena ex350 para transmitir y recibir ondas de radio a través de la estación base ex110; una unidad de cámara ex365 que puede capturar imágenes en movimiento y fijas; y una unidad de visualización ex358 como por ejemplo una pantalla de cristal líquido para visualizar los datos como por ejemplo vídeo decodificado capturado por una unidad de cámara ex365 o recibido por la antena ex350. El teléfono celular ex114 incluye además: una unidad de cuerpo principal que incluye una unidad de botón de operaciones ex366; una unidad de salida de audio ex357 como por ejemplo un altavoz para la salida de audio; una unidad de entrada de audio ex356 como por ejemplo un micrófono para la entrada de audio; una unidad de memoria ex367 para almacenamiento de vídeo o imágenes fijas capturadas, audio grabado, datos codificados o decodificados del vídeo recibido, las imágenes fijas, correos electrónicos, u otros; y una unidad de ranuras ex364 que es una unidad de interfaz para un medio de grabación que almacena datos de la misma manera que la unidad de memoria ex367.
A continuación, se describirá un ejemplo de una configuración del teléfono celular ex114 con referencia a la figura 23B. En el teléfono celular ex114, una unidad de control principal ex360 diseñada para controlar de modo global cada unidad del cuerpo principal incluyendo la unidad de visualización ex358 así como la unidad de botón de operaciones ex366 se conectan mutuamente, por medio de un bus sincrónico ex370, a una unidad de circuito de suministro de potencia ex361, una unidad de control de entrada de operaciones ex362, una unidad de procesamiento de señales de vídeo ex355, una unidad de interfaz de cámara ex363, una unidad de control de pantalla de cristal líquido (LCD, por sus siglas en inglés) ex359, una unidad de modulación/demodulación ex352, una unidad multiplexación/desmultiplexación ex353, una unidad de procesamiento de señales de audio ex354, la unidad de ranuras ex364 y la unidad de memoria ex367.
Cuando un usuario activa el ENCENDIDO (ON) de un botón de finalización de llamada o un botón de encendido, la unidad de circuito de suministro de potencia ex361 proporciona potencia a las unidades respectivas a partir de un conjunto de baterías con el fin de activar el teléfono celular ex114.
En teléfono celular ex114, la unidad de procesamiento de señales de audio ex354 convierte las señales de audio recogidas por la unidad de entrada de audio ex356 en modo de conversación de voz en señales de audio digitales controladas por la unidad de control principal ex360 incluyendo una CPU, ROM y RAM. A continuación, la unidad modulación/demodulación ex352 realiza procesamiento de espectro expandido en las señales de audio digitales, y la unidad de transmisión y recepción ex351 realiza conversión de formato digital a analógico y conversión de frecuencias en los datos, de modo que se transmitan los datos resultantes por medio de la antena ex350. Además, en el teléfono celular ex114, la unidad de transmisión y recepción ex351 amplifica los datos recibidos por la antena ex350 en modo de conversación de voz y realiza conversión de frecuencias y conversión de formato digital a analógico de los datos. A continuación, la unidad de modulación/demodulación ex352, realiza el procesamiento inverso de espectro expandido de los datos, y la unidad de procesamiento de señales de audio ex354 los convierte en señales de audio analógicas, de modo que se emiten por medio de la unidad de salida de audio ex357.
Adicionalmente, cuando se transmite un correo electrónico en modo de comunicación de datos, se introducen los datos de texto del correo electrónico haciendo funcionar la unidad de botón de operaciones ex366 y otros medios del cuerpo principal son enviados hacia el exterior de la unidad de control principal ex360 por medio de la unidad de control de entrada de operaciones ex362. La unidad de control principal ex360 hace que la unidad de modulación/demodulación ex352 realice el procesamiento de espectro expandido en los datos de texto, y la unidad de transmisión y recepción ex351 realiza la conversión de formato digital a analógico y la conversión de frecuencias en los datos resultantes para transmitir los datos hasta la estación base ex110 por medio de la antena ex350. Cuando se recibe un correo electrónico, se lleva a cabo el procesamiento que es aproximadamente inverso al procesamiento para transmitir un correo electrónico en los datos recibidos, y los datos resultantes son suministrados a la unidad de visualización ex358.
Cuando se transmite(n) vídeo, imágenes fijas o vídeo y audio en modo de comunicación de datos, la unidad de procesamiento de señales de vídeo ex355 comprime y codifica señales de vídeo suministradas por la unidad de cámara ex365 usando el método de codificación de imágenes en movimiento que aparece 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 de multiplexación/desmultiplexación ex353. En contraste, cuando la unidad de cámara ex365 captura vídeo, imágenes fijas y otros medios, la unidad de procesamiento de señales de audio ex354 codifica señales de audio recogidas por la unidad de entrada de audio ex356 y transmite los datos de audio codificados hacia la unidad de multiplexación/desmultiplexación ex353.
La unidad de multiplexación/desmultiplexación ex353 multiplexa los datos de vídeo codificados suministrados por la unidad de procesamiento de señales de vídeo ex355 y los datos de audio codificados suministrados por la unidad de procesamiento de señales de audio ex354, usando un método determinado previamente. A continuación, la unidad de modulación/demodulación (unidad de circuito de modulación/demodulación) ex352 realiza procesamiento de espectro expandido en los datos multiplexados, y la unidad de transmisión y recepción ex351 realiza conversión de formato digital a analógico y conversión de frecuencias en los datos de modo que se transmitan los datos resultantes por medio de la antena ex350.
Cuando se reciben datos de un archivo de vídeo que está vinculado a una página web y otros medios en modo de comunicación de datos o cuando se recibe un correo electrónico con material anexo de vídeo y/o audio, con el fin de decodificar los datos multiplexados recibidos por medio de la antena ex350, la unidad de multiplexación/desmultiplexación ex353 desmultiplexa los datos multiplexados en un flujo de bits de datos de vídeo y un flujo de bits de datos de audio y suministra la unidad de procesamiento de señales de vídeo ex355 con los datos de vídeo codificados y la unidad de procesamiento de señales de audio ex354 con los datos de audio codificados, a través del bus sincrónico ex370. La unidad de procesamiento de señales de vídeo ex355 decodifica la señal de vídeo que usa un método de decodificación de imágenes en movimiento correspondiente al método de codificación de imágenes en movimiento que aparece 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 de visualización ex358 visualiza, por ejemplo, el vídeo y las imágenes fijas incluidas en el archivo de vídeo vinculado a la
página web por medio de la unidad de control de LCD ex359. Adicionalmente, la unidad de procesamiento de señales de audio ex354 decodifica la señal de audio, y la unidad de salida de audio ex357 proporciona el audio.
Adicionalmente, de manera semejante a la televisión ex300, un terminal como por ejemplo el teléfono celular ex114 tiene probablemente 3 tipos de configuraciones de implementación incluyendo no solamente (i) un terminal de transmisión y recepción que incluye tanto un aparato de codificación como un aparato de decodificación, pero 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. Si bien el sistema de radiodifusión digital ex200 recibe y transmite los datos multiplexados obtenidos mediante la multiplexación de datos de audio en datos de vídeo en la descripción, los datos multiplexados pueden ser datos obtenidos mediante la multiplexación no de datos de audio sino de datos de carácter relacionados con vídeo en datos de vídeo, y pueden ser no datos multiplexados sino datos de vídeo en sí mismos.
Como tal, el método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento en cada una de las realizaciones puede usarse en cualquiera de los dispositivos y sistemas descritos. De esta forma, es posible obtener las ventajas descritas en cada una de las realizaciones.
Adicionalmente, la presente invención no está limitada a las realizaciones y pueden efectuarse diversas modificaciones y revisiones sin desviarse del alcance de la presente invención.
Realización 5
Se pueden generar datos de vídeo por conmutación, según corresponda, entre (i) el método de codificación de imágenes en movimiento o aparato de codificación de imágenes en movimiento que aparece en cada una de las realizaciones y (ii) un método de codificación de imágenes en movimiento o un aparato de codificación de imágenes en movimiento de acuerdo con un estándar diferente, como por ejemplo, MPEG-2, MPEG-4 AVC y VC-1.
En este caso, cuando una pluralidad de datos de vídeo que se ajusta a los diferentes estándares se genera y A continuación se decodifica, no es necesario seleccionar la decodificación aritmética ajustada a los diferentes estándares. Sin embargo, puesto que no se puede detectar a que estándar se ajusta cada uno de la pluralidad de los datos de vídeo a decodificar, se plantea un problema de que no es posible seleccionar un método de decodificación apropiado.
Con el fin de resolver el problema, los datos multiplexados obtenidos mediante la multiplexación de datos de audio y otros medios en datos de vídeo tienen una estructura incluyendo información de identificación que indica a que estándar se ajustan los datos de vídeo. La estructura específica de los datos multiplexados incluyendo los datos de vídeo generados en el método de codificación de imágenes en movimiento y por el aparato de codificación de imágenes en movimiento aparece en cada una de las realizaciones se describirá más adelante en este documento. Los datos multiplexados son un flujo digital en formato de flujo de transporte MPEG-2.
La figura 24 ilustra una estructura de los datos multiplexados. Según se ilustra en la figura 24, los datos multiplexados pueden obtenerse mediante la multiplexación como mínimo de una opción entre flujo de vídeo, flujo de audio, flujo de gráficos de presentaciones (PG) y flujo de gráficos interactivos. 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 mezclar con la parte de audio primario, y el flujo de gráficos de presentaciones representa los subtítulos de la película. En este caso, el vídeo primario es vídeo normal que va a ser visualizado en una pantalla, y el vídeo secundario es vídeo que va a ser visualizado en una ventana más pequeña en el vídeo primario. Adicionalmente, el flujo de gráficos interactivos representa una pantalla interactiva que va a ser generada para disponer los componentes GUI en una pantalla. El flujo de vídeo se codifica en el método de codificación de imágenes en movimiento o mediante el aparato de codificación de imágenes en movimiento que aparece en cada una de las realizaciones, o en un método de codificación de imágenes en movimiento o mediante un aparato de codificación de imágenes en movimiento de acuerdo con un estándar convencional, como por ejemplo MPEG-2, MPEG-4 AVC y VC-1. El flujo de audio se codifica de acuerdo con un estándar, como por ejemplo Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD y PCM lineal.
Cada flujo incluido en los datos multiplexados es identificado por un PID. Por ejemplo, 0x1011 se asigna al flujo de vídeo que se usará para el vídeo de una película, 0x1100 a 0x111F son asignados a los flujos de audio, 0x1200 a 0x121F son asignados a los flujos de gráficos de presentaciones, 0x1400 a 0x141F son asignados al flujo de gráficos interactivos, 0x1B00 a 0x1B1 F son asignados a los flujos de vídeo que se usarán para vídeo secundario de la película y 0x1A00 a 0x1A1 F son asignados a los flujos de audio que se usarán para el vídeo secundario a mezclar con el audio primario.
La figura 25 ilustra esquemáticamente cómo se multiplexan los datos. Primero, un flujo de vídeo ex235 compuesto por tramas de vídeo y un flujo de audio ex238 compuesto por tramas de audio se transforman en un flujo de paquetes PES ex236 y un flujo de paquetes PES ex239, y adicionalmente en paquetes TS ex237 y paquetes TS ex240, respectivamente. De manera semejante, los datos de un flujo de gráficos de presentaciones ex241 y datos de un flujo de gráficos interactivo ex244 se transforman en un flujo de paquetes PES ex242 y un flujo de paquetes PES ex245, y
adicionalmente en paquetes TS ex243 y paquetes TS ex246, respectivamente. Estos paquetes TS se multiplexan en un flujo para obtener datos multiplexados ex247.
La figura 26 ilustra cómo se almacena un flujo de vídeo en un flujo de paquetes PES con más detalles. La primera barra en la figura 26 muestra un flujo de tramas de vídeo en un flujo de vídeo. La segunda barra muestra el flujo de paquetes PES. Según lo indican las flechas denominadas yy1, yy2, yy3 e yy4 en la figura 26, el flujo de vídeo se divide en imágenes como imágenes I, imágenes B e imágenes P cada una de las cuales es una unidad de presentaciones de vídeo, y las imágenes son almacenadas en una carga útil de cada uno de los paquetes PES. Cada uno de los paquetes PES tiene un encabezamiento PES, y el encabezamiento PES almacena un Sello de Tiempo de Presentación (Presentation Time-Stamp, PTS) que indica un tiempo de visualización de la imagen y un Sello de Tiempo de Decodificación (Decoding Time-Stamp, DTS) que indica un tiempo de decodificación de la imagen.
La figura 27 ilustra un formato de paquetes TS que serán finalmente escritos en los datos multiplexados. Cada uno de los paquetes TS es un paquete de longitud fija de 188 bytes incluyendo un encabezamiento TS de 4 bytes que tiene información, como por ejemplo un PID para identificar un flujo y una carga útil de TS de 184 bytes para almacenamiento de datos. Los paquetes PES son divididos, y almacenados en las cargas útiles TS, respectivamente. Cuando se usa un BD ROM, cada uno de los paquetes TS recibe un encabezamiento extra TP (TP_Extra_Header) de 4 bytes, dando como resultado así paquetes fuente de 192 bytes, Los paquetes fuente se graban en los datos multiplexados. El encabezamiento extra TP almacena información como por ejemplo un Sello de Tiempo de Llegada (Arrival_Time_Stamp, ATS). El ATS muestra un tiempo de inicio de transferencia en el cual cada uno de los paquetes TS será transferido a un filtro de PID. Los paquetes fuente son dispuestos en los datos multiplexados según se muestra en la parte inferior de la figura 27. Los números que se incrementan desde el encabezamiento de los datos multiplexados son denominados números de paquete fuente (Source Packet Numbers, SPN).
Cada uno de los paquetes TS incluido en los datos multiplexados incluye no solamente flujos de audio, vídeo, subtítulos y otros medios, sino también una Tabla de Asociación de Programas (Program Association Table, PAT), una Tabla de Mapas de Programas (Program Map Table, PMT) una Referencia de Reloj de Programas (Program Clock Reference, PCR). La PAT muestra qué indica un PID en una PMT usada en los datos multiplexados y un PID de la PAT propiamente se registra como cero. La PMT almacena el PID de los flujos de vídeo, audio, subtítulos y otros medios incluidos en los datos multiplexados, y atribuyen información de los flujos correspondientes al PID. La PMT tiene además diversos descriptores en relación con los datos multiplexados. Los descriptores tienen información, tal como, información de control de copias que muestra si copiar los datos multiplexados está permitido o no. La PCR almacena información de tiempo STC correspondiente a un ATS que muestra cuando el paquete PCR se transfiere a un decodificador, con el fin de lograr la sincronización entre un Reloj de Tiempo de Llegada (Arrival Time Clock, ATC) que es un eje de tiempo del ATS y un Reloj de Tiempo de Sistema (System Time Clock, STC) que es un eje de tiempo de PTS y DTS.
La figura 28 ilustra la estructura de datos de la PMT en detalle. Se dispone un encabezamiento de PMT en la parte superior de la PMT. El encabezamiento de PMT describe longitud de datos incluida en la PMT y otros medios. Se dispone una pluralidad de descriptores relacionados con los datos multiplexados 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 información de flujo relacionada con los flujos incluidos en los datos multiplexados. Cada información de flujo incluye descriptores de flujo que describen cada uno información, como por ejemplo un tipo de flujo para identificar un códec de compresión de un flujo, un PID de flujo e información de atributo de flujo (como por ejemplo una velocidad 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 medios, se graban junto con archivos de información de datos multiplexados.
Cada uno de los archivos de información de datos multiplexados es información de gestión de los datos multiplexados según se muestra en la figura 29. Los archivos de información de datos multiplexados están en correspondencia de uno a uno con los datos multiplexados, y cada uno de los archivos incluye información de datos multiplexados, información de atributo de flujo y un mapa de entrada.
Según se ilustra en la figura 29, los datos multiplexados incluyen una velocidad de sistema, un tiempo de inicio de reproducción y un tiempo de finalización de reproducción. La velocidad de sistema indica la velocidad de transferencia máxima a la que un decodificador objetivo de sistema descrito más adelante transfiere los datos multiplexados a un filtro de PID. Los intervalos de los ATS incluidos en los datos multiplexados se establecen en un nivel que no es más alto que una velocidad de sistema. El tiempo de inicio de reproducción indica un PTS en una trama de vídeo en el cabezal de los datos multiplexados. Se agrega un intervalo de una trama a un PTS en una trama de vídeo al final de los datos multiplexados, y el PTS se establece en el tiempo de finalización de reproducción.
Según se muestra en la figura 30, se registra una información de atributo en la información de atributo de flujo, para cada PID de cada flujo incluido en los datos multiplexados. Cada información de atributo tiene información diferente dependiendo de si el flujo correspondiente es un flujo de vídeo, un flujo de audio, un flujo de gráficos de presentaciones,
o un flujo de gráficos interactivos. Cada información de atributo de flujo de vídeo porta 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 velocidad de tramas de los datos de imágenes que se incluyen en el flujo de vídeo. Cada información de atributo de flujo de audio porta la información que incluye qué tipo 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é lenguaje 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 la inicialización de un decodificador antes de que el reproductor presente de vuelta la información.
En la presente realización, los datos multiplexados que van 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 método de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones incluye un paso o una unidad para asignar información única que indica datos de vídeo generados por el método de codificación de imágenes en movimiento o el aparato de codificación de imágenes 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 método de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones pueden distinguirse de los datos de vídeo que se ajustan a otro estándar.
Adicionalmente, la figura 31 ilustra pasos del método de decodificación aritmética de imágenes en movimiento de acuerdo con la presente realización. En el paso exS100, el tipo de flujo incluido en la PMT o la información de atributo de flujo de vídeo se obtiene de los datos multiplexados. A continuación, en el paso exS101, se determina si el tipo de flujo o la información de atributo de flujo de vídeo indican que los datos multiplexados son generados o no por el método de codificación de imágenes en movimiento o el aparato de codificación de imágenes 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 son generados por el método de codificación de imágenes en movimiento o por el aparato de codificación de imágenes en movimiento en cada una de las realizaciones, en el paso exS102, la decodificación se realiza por el método de decodificación de imágenes 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 indica conformidad con los estándares convencionales, como por ejemplo MPEG-2, MPEG-4 AVC y VC-1, en el paso exS103, la decodificación se realiza por un método de decodificación de imágenes en movimiento de acuerdo con los estándares convencionales.
Como tal, la asignación de un valor único nuevo en relación con el tipo de flujo o la información de atributo de flujo de vídeo permite determinar si el método de decodificación de imágenes en movimiento o el aparato de decodificación de imágenes en movimiento que se describen en cada una de las realizaciones pueden realizar la decodificación. Incluso cuando los datos multiplexados que se ajustan a un estándar diferente, pueden seleccionarse un aparato o un método de decodificación apropiado. De esta forma, se hace posible decodificar la información sin errores. Adicionalmente, el aparato o el método de codificación de imágenes en movimiento, o el aparato o el método de decodificación de imágenes en movimiento en la presente realización pueden usarse en los dispositivos y sistemas según se describe anteriormente.
Realización 6
Cada uno del método de codificación de imágenes en movimiento, el aparato de codificación de imágenes en movimiento, el método de decodificación imágenes en movimiento y el aparato de decodificación de imágenes en movimiento en cada una de las realizaciones se logra normalmente en forma de un circuito integrado o circuito integrado de gran escala (Large Scale Integrated, LSI, por sus siglas inglés). A modo de ejemplo del LSI, la figura 32 ilustra una configuración del LSI ex500 que se realiza en un chip. El circuito LSI ex500 incluye los elementos ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 y ex509 a describir más adelante, y los elementos se conectan entre sí a través de un bus ex510. La unidad de circuito de fuente de alimentación ex505 se activa al suministrar a cada uno de los elementos potencia cuando se activa la unidad de circuito de fuente de alimentación ex505.
Por ejemplo, cuando se lleva a cabo la codificación, el circuito LSI ex500 recibe una señal AV de un micrófono ex117, una cámara ex113 y otros medios a través de AV IO ex509 bajo control de una unidad de control ex501 que incluye una CPU ex502, un controlador de memoria ex503, un controlador de flujo ex504, y una unidad de control de frecuencia de accionamiento ex512. La señal AV recibida es almacenada temporalmente en una memoria externa ex511, como por ejemplo, una SDRAM. Controlados por la unidad de control ex501, los datos almacenados se segmentan en unas porciones de datos de acuerdo con la cantidad de procesamiento y velocidad a ser transmitidos a una unidad de procesamiento de señales ex507. A continuación, la unidad de procesamiento de señales ex507 codifica una señal de audio y/o una señal de vídeo. En este caso, la codificación de la señal de vídeo es la codificación descrita en cada una de las realizaciones. Adicionalmente, la unidad de procesamiento de señales ex507 en ocasiones multiplexa los datos de audio codificados y los datos de vídeo codificados, y un flujo IO ex506 proporciona los datos multiplexados al exterior. Los datos multiplexados proporcionados son transmitidos hasta la estación base ex107, o se graban en los medios de grabación ex215. Cuando los conjuntos de datos se multiplexan, los datos deberían ser almacenados temporalmente en la memoria intermedia ex508 de modo que los conjuntos de datos se sincronicen entre sí.
Si bien la memoria ex511 es un elemento externo al LSI ex500, puede ser incluida en LSI ex500. La memoria intermedia ex508 no está limitada a una memoria intermedia, sino que puede estar compuesta por memorias intermedias. Adicionalmente, LSI ex500 puede estar formado por un chip o por una pluralidad de chips.
Adicionalmente, si bien la unidad de control ex501 incluye la CPU ex502, el controlador de memoria ex503, controlador de flujo ex504, la unidad de control de frecuencia de accionamiento ex512, la configuración de la unidad de control ex501 no se limita a estos tipos. Por ejemplo, la unidad de procesamiento de señales ex507 puede incluir adicionalmente una CPU. La inclusión de otra CPU en la unidad de procesamiento de señales ex507 puede mejorar la velocidad de procesamiento. Adicionalmente, como otro ejemplo, la CPU ex502 puede servir como unidad de procesamiento de señales ex507 o formar parte de la misma y, por ejemplo, puede incluir una unidad de procesamiento de señales de audio. En cada caso, la unidad de control ex501 incluye la unidad de procesamiento de señales ex507 o la CPU ex502 que incluye una parte de la unidad de procesamiento de señales ex507.
El nombre usado en este caso es LSI pero puede llamarse también IC, LSI de sistema, súper LSI o ultra LSI dependiendo del grado de integración.
Además, las maneras de lograr la integración no se limitan al LSI, y la integración puede lograrse con un circuito especial o un procesador de uso general y así sucesivamente. Con el mismo fin puede usarse una Matriz de Puertas Programables en Campo (FPGA) que puede programarse después de la fabricación del circuito LSI o un procesador reconfigurable que permite la reconfiguración de la conexión o la configuración de un LSI.
En el futuro, con el avance de la tecnología de semiconductores, una tecnología novedosa puede remplazar los LSI. Los bloques funcionales pueden integrarse usando tal tecnología. La posibilidad es que el concepto de la invención se aplica a la biotecnología.
Realización 7
Cuando se decodifican datos de vídeo generados por el método de codificación de imágenes en movimiento o por el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones, en comparación con lo que ocurre cuando se decodifican datos de vídeo que se ajustan a un estándar convencional, como por ejemplo MPEG-2, MPEG-4 AVC y VC-1, la cantidad de procesamiento se incrementa probablemente. De esta forma, el LSI ex500 debe fijarse en una frecuencia de accionamiento más alta que la de la CPU ex502 que va a usarse cuando se decodifican los datos de vídeo de acuerdo con el estándar convencional. Sin embargo, cuando la frecuencia de accionamiento se fija en un nivel más alto, surge un problema de que aumenta el consumo de potencia.
Con el fin de resolver el problema, el aparato de decodificación de imágenes en movimiento, como por ejemplo la televisión ex300 y el circuito LSI ex500 se configura para determinar a qué estándar se ajustan los datos de vídeo, y conmutar entre las frecuencias motrices de conformidad con el estándar determinado. La figura 33 ilustra una configuración ex800 en la presente realización, Una unidad de conmutación de frecuencia de accionamiento ex803 fija una frecuencia de accionamiento en una frecuencia de accionamiento más alta cuando los datos de vídeo son generados por el método de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones. A continuación, la unidad de conmutación de frecuencia de accionamiento ex803 da instrucciones a una unidad de procesamiento de decodificación ex801 que ejecuta el método de decodificación de imágenes en movimiento descrito en cada una de las realizaciones para decodificar los datos de vídeo. Cuando los datos de vídeo se ajustan al estándar convencional, la unidad de conmutación de frecuencia de accionamiento ex803 fija una frecuencia de accionamiento en una frecuencia de accionamiento más baja que la de los datos de vídeo generados por el método de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones. A continuación, la unidad de conmutación de frecuencia de accionamiento ex803 da instrucciones a la unidad de procesamiento de decodificación ex802 que se ajusta al estándar convencional para decodificar los datos de vídeo.
Más específicamente, la unidad de conmutación de frecuencia de accionamiento ex803 incluye la CPU ex502 y la unidad de control de frecuencia de accionamiento ex512 en la figura 32. En este caso, cada una de la unidad de procesamiento de decodificación ex801 que ejecuta el método de decodificación de imágenes en movimiento descrito en cada una de las realizaciones y la unidad de procesamiento de decodificación ex802 que se ajusta al estándar convencional se corresponde con la unidad de procesamiento de señales ex507 en la figura 32. La CPU ex502 determina a qué estándar se ajustan los datos de vídeo. A continuación, la unidad de control de frecuencia de accionamiento ex512 determina una frecuencia de accionamiento basándose en una señal de la CPU ex502. Adicionalmente, la unidad de procesamiento de señales ex507 decodifica los datos de vídeo basándose en la señal de la CPU ex502. Por ejemplo, la información de identificación descrita en la realización 5 se usa probablemente para identificar los datos de vídeo. La información de identificación no está limitada a la descrita en la realización sino que puede ser cualquier información siempre que la información indique a qué estándar se ajustan los datos de vídeo. Por ejemplo, cuando se puede determinar a qué estándar de datos de vídeo se ajusta, basándose en 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 efectuarse basándose en tal señal externa. Adicionalmente, la CPU ex502 selecciona una frecuencia de accionamiento basándose en, por ejemplo, una tabla de consulta en la cual los estándares de los datos de vídeo se asocian con las
frecuencias motrices según se muestra en la figura 35. La frecuencia de accionamiento puede seleccionarse mediante el almacenamiento de la tabla de consulta en la memoria intermedia ex508 y en una memoria interna de un LSI, y con referencia a la tabla de consulta por la CPU ex502.
La figura 34 ilustra pasos para ejecutar un método en la presente realización. Primero, en el paso exS200, la unidad de procesamiento de señales ex507 obtiene información de identificación de los datos multiplexados. A continuación, en el paso exS201, la CPU ex502 determina si los datos de vídeo son generados o no por el método de codificación y el aparato de codificación descritos en cada una de las realizaciones, basándose en la información de identificación. Cuando los datos de vídeo son generados por el método de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones, en el paso exS202, la CPU ex502 transmite una señal para fijar la frecuencia de accionamiento en una frecuencia de accionamiento más alta con respecto a la unidad de control de frecuencia de accionamiento ex512. A continuación, la unidad de control de frecuencia de accionamiento ex512 fija la frecuencia de accionamiento en la frecuencia de accionamiento más alta. Por otro lado, cuando la información de identificación indica que los datos de vídeo se ajustan al estándar convencional, como por ejemplo MPEG-2, MPEG-4 AVC y VC-1, en el paso exS203, la CPU ex502 transmite una señal para fijar la frecuencia de accionamiento en una frecuencia de accionamiento más baja con respecto a la unidad de control de frecuencia de accionamiento ex512. A continuación, la unidad de control de frecuencia de accionamiento ex512 fija la frecuencia de accionamiento en la frecuencia de accionamiento más baja que en el caso donde los datos de vídeo son generados por el método de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada realización.
Adicionalmente, junto con la conmutación de frecuencias motrices, el efecto de conservación de potencia puede ser mejorado cambiando el voltaje a aplicar al LSI ex500 o un aparato que incluye el circuito LSI ex500. Por ejemplo, cuando la frecuencia de accionamiento se fija en un nivel más bajo, el voltaje a aplicar al LSI ex500 o al aparato que incluye el circuito LSI ex500 probablemente se fija en un voltaje más bajo al caso donde la frecuencia de accionamiento se fija en un nivel más alto.
Adicionalmente, cuando la cantidad de procesamiento para la decodificación es mayor, la frecuencia de accionamiento puede fijarse más alta y cuando la cantidad de procesamiento para la decodificación es menor, la frecuencia de accionamiento puede fijarse más baja como el método para fijar la frecuencia de accionamiento. De esta forma, el método de fijación no está limitado a los descritos anteriormente. Por ejemplo, cuando la cantidad de procesamiento para la decodificación de datos de vídeo de acuerdo con MPEG-4 AVC es mayor que la cantidad de procesamiento para la decodificación de datos de vídeo generados por el método de codificación de imágenes en movimiento y el aparato de codificación de imágenes movimiento descritos en cada una de las realizaciones, la frecuencia de accionamiento probablemente se fija en orden inverso a la fijación descrita anteriormente.
Adicionalmente, el método para fijar la frecuencia de accionamiento no se limita al método para fijar la frecuencia de accionamiento más baja. Por ejemplo, cuando la información de identificación indica que los datos de vídeo son generados por el método de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones, el voltaje a aplicar al LSI ex500 o al aparato que incluye el circuito LSI ex500 probablemente se fija más alta. Cuando la información de identificación indica que los datos de vídeo se ajustan al estándar convencional, como por ejemplo MPEG-2, MPEG-4 AVC y VC-1, el voltaje a aplicar al LSI ex500 o al aparato que incluye el circuito LSI ex500 probablemente se fija más baja. Como otro ejemplo, cuando la información de identificación indica que los datos de vídeo son generados por el método de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones, el accionamiento de la CPU ex502 probablemente no requiere ser suspendido. Cuando la información de identificación indica que los datos de vídeo se ajustan al estándar convencional, como por ejemplo MPEG-2, MPEG-4 AVC y VC-1, el accionamiento de la CPU ex502 probablemente se suspende en un momento dado puesto que la CPU ex502 tiene una capacidad de procesamiento adicional. Incluso cuando la información de identificación indica que los datos de vídeo son generados por el método de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones, en el caso donde la CPU ex502 tiene una capacidad de procesamiento adicional, el accionamiento de la CPU ex502 probablemente se suspende en un momento dado. En tal caso, el tiempo de suspensión probablemente se fija más corto que en el caso donde cuando la información de identificación indica que los datos de vídeo se ajustan al estándar convencional, como por ejemplo MPEG-2, MPEG-4 AVC y VC-1.
Por lo tanto, el efecto de conservación de potencia puede ser mejorado mediante la conmutación entre las frecuencias motrices en conformidad con el estándar al cual se ajustan los datos de vídeo. Adicionalmente, cuando el circuito LSI ex500 o el aparato que incluye LSI ex500 se acciona usando una batería, la duración de la batería puede extenderse con el efecto de conservación de potencia.
Realización 8
Existen casos donde una pluralidad de datos de vídeo que se ajustan a estándares diferentes es proporcionada a los dispositivos y sistemas, como por ejemplo, una televisión y un teléfono móvil. Con el fin de permitir la decodificación de la pluralidad de datos de vídeo que se ajusta a diferentes estándares, la unidad de procesamiento de señales ex507
de LSI ex500 debe ajustarse a los diferentes estándares. Sin embargo, los problemas de incremento en la escala del circuito LSI ex500 y de incremento en el coste surge con el uso individual de la unidad de procesamiento de señales ex507 que se ajusta a los estándares respectivos.
Con el fin de resolver el problema, que se concibe que es una configuración en la cual la unidad de procesamiento de decodificación para implementar el método de decodificación de imágenes en movimiento descrito en cada una de las realizaciones y la unidad de procesamiento de decodificación que se ajusta al estándar convencional, como por ejemplo MPEG-2, MPEG-4 AVC y VC-1 se comparten parcialmente. Ex900 en la figura 36A muestra un ejemplo de la configuración. Por ejemplo, el método de decodificación de imágenes en movimiento descrito en cada una de las realizaciones y el método de decodificación de imágenes en movimiento que se ajusta a MPEG-4 AVC tienen, parcialmente en común, los detalles de procesamiento, como por ejemplo codificación de entropía, cuantización inversa, filtro desbloqueador y predicción compensada de movimientos. Los detalles de procesamiento a compartir probablemente incluyen el uso de una unidad de procesamiento de decodificación ex902 que se ajusta a MPEG-4 AVC. En contraste, una unidad dedicada de procesamiento de decodificación ex901 se usa probablemente para otro procesamiento único con respecto a un aspecto de la presente invención. Puesto que el aspecto de la presente invención se caracteriza por una decodificación de entropía en particular, por ejemplo, la unidad dedicada de procesamiento de decodificación ex901 se usa para decodificación de entropía. De otro modo, la unidad de procesamiento de decodificación probablemente sea compartida para una de estas opciones, cuantización inversa, filtro desbloqueador y compensación de movimiento o todo el procesamiento. La unidad de procesamiento de decodificación para implementar el método de decodificación de imágenes en movimiento descrito en cada una de las realizaciones puede ser compartida para el procesamiento a compartir, y una unidad dedicada de procesamiento de decodificación puede ser usada para el procesamiento único con respecto al de MPEG-4 AVC.
Adicionalmente, ex1000 en la figura 36B muestra otro ejemplo en el que el procesamiento es parcialmente compartido. Este ejemplo usa una configuración que incluye una unidad dedicada de procesamiento de decodificación ex1001 que soporta el procesamiento único en un aspecto de la presente invención, una unidad dedicada de procesamiento de decodificación ex1002 que soporta el procesamiento único con respecto a otro estándar convencional, y una unidad de procesamiento de decodificación ex1003 que soporta el procesamiento a compartir entre el método de decodificación de imágenes en movimiento de conformidad con el aspecto de la presente invención y el método de decodificación de imágenes en movimiento convencional. En este caso, las unidades dedicadas de procesamiento de decodificación ex1001 y ex1002 no están necesariamente especializadas para el procesamiento de acuerdo con el aspecto de la presente invención y el procesamiento del estándar convencional, respectivamente y pueden ser unas que sean capaces de implementar el procesamiento general. Adicionalmente, la configuración de la presente realización puede implementarse mediante el circuito LSI ex500.
Como tal, es posible reducir la escala del circuito de un LSI y reducir el coste compartiendo la unidad de procesamiento de decodificación para el procesamiento a compartir entre el método de decodificación de imágenes en movimiento de conformidad con el aspecto de la presente invención y el método de decodificación de imágenes en movimiento de acuerdo con el estándar convencional.
De acuerdo con una realización adicional, se proporciona un aparato de codificación de imágenes que codifica una imagen usando un vector de movimiento. El aparato comprende una unidad de codificación configurada para codificar una diferencia de vectores de movimiento que indica una diferencia entre el vector de movimiento y un vector de movimiento predicho que es un valor predicho de vector de movimiento. La unidad de codificación se configura para: codificar una primera porción que forma parte de un primer componente que es uno de un componente horizontal y un componente vertical de la diferencia de vectores de movimiento; codificar una segunda porción que forma parte de un segundo componente que es diferente del primer componente y es el otro del componente horizontal y el componente vertical; codificar una tercera porción que forma parte del primer componente y es diferente de la primera porción; codificar una cuarta porción que forma parte del segundo componente y es diferente de la segunda porción; y generar una cadena de códigos que incluye la primera porción, la segunda porción, la tercera porción, y la cuarta porción en un orden de la primera porción, la segunda porción, la tercera porción, y la cuarta porción.
De acuerdo con una realización adicional, se proporciona un aparato de decodificación de imágenes que decodifica una imagen usando un vector de movimiento. El aparato comprende una unidad de decodificación configurada para decodificar una diferencia de vectores de movimiento que indica una diferencia entre el vector de movimiento y un vector de movimiento predicho que es un valor predicho del vector de movimiento. La unidad de decodificación se configura para: obtener una cadena de códigos que incluye (i) una primera porción que forma parte de un primer componente que es uno de un componente horizontal y un componente vertical de la diferencia de vectores de movimiento, (ii) una segunda porción que forma parte de un segundo componente que es diferente del primer componente y es el otro del componente horizontal y el componente vertical, (iii) una tercera porción que forma parte del primer componente y es una diferente de la primera porción, y (iv) una cuarta porción que forma parte del segundo componente y es diferente de la segunda porción, en un orden de la primera porción, la segunda porción, la tercera porción, y la cuarta porción; y decodificar la primera porción incluida en la cadena de códigos, decodificar la segunda porción incluida en la cadena de códigos, decodificar la tercera porción incluida en la cadena de códigos, y decodificar la cuarta porción incluida en la cadena de códigos.
De acuerdo con una realización adicional, se proporciona un aparato de decodificación y codificación de imágenes que comprende el aparato de codificación de imágenes y el aparato de decodificación de imágenes anteriores. Aplicabilidad Industrial
El método de codificación de imágenes y el método de decodificación de imágenes de acuerdo con un aspecto de la presente invención es aplicable, por ejemplo, a receptores de televisión, grabadoras de vídeo digital, sistemas de navegación para vehículos, teléfonos celulares, cámaras digitales y cámaras de vídeo digital.
Lista de símbolos de referencia
100 Unidad de decodificación de diferencia de vectores de movimiento
101, A01 Unidad de control de reconstrucción de diferencia de vectores de movimiento
102, A02 Unidad de determinación de 0 de diferencia de vectores de movimiento
103, A03 Unidad de decodificación de porción de prefijo de diferencia de vectores de movimiento
104, A04 Unidad de decodificación de porción de sufijo de diferencia de vectores de movimiento
105, A05 Unidad de decodificación de signo de diferencia de vectores de movimiento
106, A06 Unidad de reconstrucción de diferencia de vectores de movimiento
110 Unidad de decodificación de porción de prefijo
120 Unidad de decodificación de porción de sufijo
200, 800 Aparato de codificación de imágenes
205 Sustractor
210 Unidad de transformación y cuantización
220 Unidad de codificación de entropía
230, 420 Unidad de cuantización inversa y transformación inversa
235, 425 Sumador
240, 340 Filtro desbloqueador
250, 440 Memoria
260, 450 Unidad de intra-predicción
270 Unidad de detección de movimiento
280, 460 Unidad de compensación de movimiento
290, 470 Conmutador de intra/inter-cambio
400, 900 Aparato de decodificación de imágenes
410 Unidad de decodificación de entropía
801 Unidad de codificación
901 Unidad de decodificación
A00 Unidad de decodificación de longitud variable de diferencia de vectores de movimiento
A07 Conmutador
Claims (2)
- REIVINDICACIONESUn método de decodificación de imágenes para decodificar una imagen usando un vector de movimiento, comprendiendo el método decodificar, a partir de un flujo de bits, una diferencia de vectores de movimiento que indica una diferencia entre el vector de movimiento usado para predecir una imagen y un vector de movimiento predicho que es una predicción del vector de movimiento, comprendiendo el método:decodificar, a partir del flujo de bits, una cadena de códigos que indica si un componente horizontal de la diferencia de vectores de movimiento es cero o no y si un componente vertical de la diferencia de vectores de movimiento es cero o no; y decodificar el vector de movimiento, en el que la cadena de códigos toma(i) un primer valor, cuando tanto el componente horizontal como el vertical de la diferencia de vectores de movimiento son cero,(ii) un segundo valor, cuando solo el componente horizontal de la diferencia de vectores de movimiento no es cero,(iii) un tercer valor, cuando solo el componente vertical de la diferencia de vectores de movimiento no es cero, y(iv) un cuarto valor, cuando tanto el componente horizontal como el vertical de la diferencia de vectores de movimiento no son cero; ydeterminar basándose en la cadena de códigos si el componente horizontal de la diferencia de vectores de movimiento es 0 o no (S502), si el componente horizontal de la diferencia de vectores de movimiento no es 0, decodificar una porción de prefijo del componente horizontal de la diferencia de vectores de movimiento (S503), y si el componente horizontal de la diferencia de vectores de movimiento es 0 (SÍ en S502), fijar el componente horizontal de la diferencia de vectores de movimiento en 0 (S504),determinar basándose en la cadena de códigos si el componente vertical de la diferencia de vectores de movimiento es 0 o no (NO en S505), si el componente vertical de la diferencia de vectores de movimiento no es 0, decodificar una porción de prefijo del componente vertical de la diferencia de vectores de movimiento (S506), y si el componente vertical de la diferencia de vectores de movimiento es 0 (SÍ en S505), fijar el componente vertical de la diferencia de vector de movimiento en 0 (S507),posteriormente, el método comprende las etapas de:si se determina, basándose en información decodificada sobre el componente horizontal de la diferencia de vectores de movimiento, que el componente horizontal es 0 (SÍ en S508), omitir el procesamiento de decodificación en una porción de sufijo y unos datos de signo del componente horizontal,si se determina, basándose en información decodificada sobre el componente horizontal de la diferencia de vectores de movimiento, que el componente horizontal no es 0 (NO en S508), e incluye la porción de sufijo (SÍ en S509), decodificar, a partir del flujo de bits, la porción de sufijo del componente horizontal de la diferencia de vectores de movimiento (S510), y decodificar los datos de signo del componente horizontal de la diferencia de vectores de movimiento (S511),si se determina, basándose en información decodificada sobre el componente horizontal de la diferencia de vectores de movimiento, que el componente horizontal no es 0 (NO en S508) y la porción de sufijo no está incluida (NO en S509), omitir el procesamiento en la porción de sufijo, y decodificar los datos de signo del componente horizontal de la diferencia de vectores de movimiento (S511),si se determina, basándose en información decodificada sobre el componente vertical de la diferencia de vectores de movimiento, que el componente vertical es 0 (SÍ en S512), omitir el procesamiento de decodificación en una porción de sufijo y unos datos de signo del componente vertical,si se determina, basándose en información decodificada sobre el componente vertical de la diferencia de vectores de movimiento, que el componente vertical no es 0 (NO en S512), e incluye la porción de sufijo (SÍ en S513), decodificar, a partir del flujo de bits, la porción de sufijo del componente vertical de la diferencia de vectores de movimiento (S514), y decodificar los datos de signo del componente vertical de la diferencia de vector de movimiento (S515),si se determina, basándose en información decodificada sobre el componente vertical de la diferencia de vectores de movimiento, que el componente vertical no es 0 (NO en S512) y la porción de sufijo no está incluida (NO en S513), omitir el procesamiento en la porción de sufijo, y decodificar los datos de signo del componente vertical de la diferencia de vectores de movimiento (S515),reconstruir el componente horizontal de la diferencia de vectores de movimiento a partir de una combinación de la porción de prefijo del componente horizontal, la porción de sufijo del componente horizontal, y los datos de signo del componente horizontal; yreconstruir el componente vertical de la diferencia de vectores de movimiento a partir de una combinación de la porción de prefijo del componente vertical, la porción de sufijo del componente vertical, y los datos de signo del componente vertical;en el que decodificar las porciones de prefijo comprende realizar decodificación aritmética binaria adaptable al contexto con probabilidad variable, yen el que decodificar la porción de sufijo y los datos de signo comprende realizar decodificación de derivación.
- 2. El método según la reivindicación 1, en el que decodificar la cadena de códigos comprende realizar una decodificación aritmética binaria adaptable al contexto con probabilidad variable.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161500805P | 2011-06-24 | 2011-06-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2952761T3 true ES2952761T3 (es) | 2023-11-03 |
Family
ID=47361842
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES17204497T Active ES2952761T3 (es) | 2011-06-24 | 2012-06-21 | Método de decodificación de imágenes |
ES17204482T Active ES2944949T3 (es) | 2011-06-24 | 2012-06-21 | Método y aparato de codificación de imágenes |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES17204482T Active ES2944949T3 (es) | 2011-06-24 | 2012-06-21 | Método y aparato de codificación de imágenes |
Country Status (13)
Country | Link |
---|---|
US (7) | US8855207B2 (es) |
EP (6) | EP3309970B1 (es) |
JP (9) | JP5362129B2 (es) |
KR (2) | KR102258753B1 (es) |
CN (3) | CN107396107B (es) |
AU (1) | AU2012274765B2 (es) |
BR (1) | BR112013002450B1 (es) |
CA (1) | CA2806796C (es) |
ES (2) | ES2952761T3 (es) |
MX (1) | MX2013001167A (es) |
PL (2) | PL3309970T3 (es) |
TW (1) | TWI565304B (es) |
WO (1) | WO2012176450A1 (es) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9076239B2 (en) | 2009-04-30 | 2015-07-07 | Stmicroelectronics S.R.L. | Method and systems for thumbnail generation, and corresponding computer program product |
JP5362129B2 (ja) * | 2011-06-24 | 2013-12-11 | パナソニック株式会社 | 画像符号化方法および画像符号化装置 |
US10536701B2 (en) * | 2011-07-01 | 2020-01-14 | Qualcomm Incorporated | Video coding using adaptive motion vector resolution |
AU2012333927A1 (en) | 2011-11-07 | 2013-08-22 | Sun Patent Trust | Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding and decoding device |
US9088796B2 (en) * | 2011-11-07 | 2015-07-21 | Sharp Kabushiki Kaisha | Video decoder with enhanced CABAC decoding |
WO2014107029A1 (ko) * | 2013-01-02 | 2014-07-10 | 엘지전자 주식회사 | 비디오 신호 처리 방법 및 장치 |
GB2513110A (en) * | 2013-04-08 | 2014-10-22 | Sony Corp | Data encoding and decoding |
US9225988B2 (en) | 2013-05-30 | 2015-12-29 | Apple Inc. | Adaptive color space transform coding |
US9706229B2 (en) * | 2013-06-05 | 2017-07-11 | Texas Instruments Incorporated | High definition VP8 decoder |
EP2854405A1 (en) * | 2013-09-26 | 2015-04-01 | Thomson Licensing | Method and apparatus for encoding and decoding a motion vector representation in interlaced video using progressive video coding tools |
WO2015056449A1 (ja) * | 2013-10-18 | 2015-04-23 | パナソニック株式会社 | 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置 |
US20150189321A1 (en) * | 2014-01-02 | 2015-07-02 | Mediatek Inc. | Method of Binarization and Context Adaptive Binary Arithmetic Coding of Depth Coding Syntax |
JP6346445B2 (ja) | 2014-01-10 | 2018-06-20 | キヤノン株式会社 | 処理装置、処理装置の制御方法、およびプログラム |
US10944983B2 (en) * | 2014-04-01 | 2021-03-09 | Mediatek Inc. | Method of motion information coding |
US10382759B2 (en) | 2014-06-20 | 2019-08-13 | Hfi Innovation Inc. | Method and apparatus of binarization and context-adaptive coding for syntax in video coding |
WO2016013571A1 (ja) * | 2014-07-23 | 2016-01-28 | 株式会社不二越 | 転がり軸受 |
EP3270594A1 (en) * | 2016-07-15 | 2018-01-17 | Thomson Licensing | Method and apparatus for advanced cabac context adaptation for last coefficient coding |
KR20210115052A (ko) | 2017-07-07 | 2021-09-24 | 삼성전자주식회사 | 적응적 움직임 벡터 해상도로 결정된 움직임 벡터의 부호화 장치 및 부호화 방법, 및 움직임 벡터의 복호화 장치 및 복호화 방법 |
EP3691274A4 (en) * | 2017-09-28 | 2021-04-28 | Samsung Electronics Co., Ltd. | CODING METHOD AND DEVICE FOR IT AND DECODING METHOD AND DEVICE FOR IT |
WO2019150411A1 (ja) * | 2018-01-30 | 2019-08-08 | 富士通株式会社 | 映像符号化装置、映像符号化方法、映像復号装置、映像復号方法、及び映像符号化システム |
KR102220474B1 (ko) | 2018-02-28 | 2021-02-25 | 삼성전자주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
CN108810553B (zh) * | 2018-05-02 | 2021-01-12 | 上海大学 | 一种基于稀疏化处理的移动节点监测数据序列压缩方法 |
KR20200139830A (ko) * | 2018-05-21 | 2020-12-14 | 엘지전자 주식회사 | 영상 코딩 시스템에서 lut를 기반으로 도출된 mvd를 사용하는 영상 디코딩 방법 및 그 장치 |
WO2020004682A1 (ko) * | 2018-06-26 | 2020-01-02 | 삼성전자 주식회사 | 움직임 정보의 부호화 장치 및 부호화 방법, 및 움직임 정보의 복호화 장치 및 복호화 방법 |
CN113302936B (zh) * | 2019-01-07 | 2024-03-19 | 北京字节跳动网络技术有限公司 | 用于具有MVD的Merge的控制方法 |
CN113273207A (zh) | 2019-01-10 | 2021-08-17 | 北京字节跳动网络技术有限公司 | 基于几何分区的具有运动矢量差(MVD)的Merge |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5381145A (en) * | 1993-02-10 | 1995-01-10 | Ricoh Corporation | Method and apparatus for parallel decoding and encoding of data |
GB2319689B (en) * | 1994-02-23 | 1998-07-15 | Ricoh Kk | Compression of palletized images |
US20040146109A1 (en) * | 2002-04-19 | 2004-07-29 | Satoshi Kondo | Method for calculation motion vector |
US8054880B2 (en) * | 2004-12-10 | 2011-11-08 | Tut Systems, Inc. | Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window |
US7567617B2 (en) * | 2003-09-07 | 2009-07-28 | Microsoft Corporation | Predicting motion vectors for fields of forward-predicted interlaced video frames |
CN1216496C (zh) * | 2003-09-27 | 2005-08-24 | 浙江大学 | 一种视频编解码中的运动矢量预测方法和装置 |
JP2005184232A (ja) * | 2003-12-17 | 2005-07-07 | Sony Corp | 符号化装置、プログラム、およびデータ処理方法 |
KR100645735B1 (ko) * | 2004-10-14 | 2006-11-15 | 주식회사 팬택 | 모바일 플랫폼의 컨텐츠 오동작 통신 검출 장치 및 방법 |
CN1984336A (zh) * | 2005-12-05 | 2007-06-20 | 华为技术有限公司 | 一种二进制化方法及装置 |
CN101167366B (zh) * | 2005-12-05 | 2010-10-27 | 华为技术有限公司 | 一种二进制化方法及装置 |
JP5025286B2 (ja) * | 2007-02-28 | 2012-09-12 | シャープ株式会社 | 符号化装置及び復号装置 |
KR101398534B1 (ko) * | 2007-03-23 | 2014-05-27 | 톰슨 라이센싱 | 코딩된 비트스트림의 수정 |
US8782379B2 (en) * | 2007-09-27 | 2014-07-15 | Qualcomm Incorporated | H.264 video decoder CABAC core optimization techniques |
US8891615B2 (en) * | 2008-01-08 | 2014-11-18 | Qualcomm Incorporated | Quantization based on rate-distortion modeling for CABAC coders |
EP2319244A1 (en) * | 2008-08-19 | 2011-05-11 | Thomson Licensing | Cabac/avc compliant watermarking of syntax elements in compressed video |
US8594366B2 (en) * | 2008-08-19 | 2013-11-26 | Thomson Licensing | Context-based adaptive binary arithmetic coding (CABAC) video stream compliance |
JP2010050697A (ja) * | 2008-08-21 | 2010-03-04 | Toshiba Corp | 画像圧縮伸張装置および画像圧縮伸張方法 |
EP2164176A1 (en) * | 2008-09-12 | 2010-03-17 | Thomson Licensing | Method for lossless compressing prefix-suffix-codes, method for decompressing a bit sequence representing integers or symbols encoded in compressed prefix-suffix-codes and storage medium or signal carrying compressed prefix-suffix-codes |
TWI455587B (zh) * | 2009-04-10 | 2014-10-01 | Asustek Comp Inc | 具有多格式影像編解碼功能的資料處理電路及處理方法 |
JP5258664B2 (ja) * | 2009-04-14 | 2013-08-07 | 株式会社エヌ・ティ・ティ・ドコモ | 画像符号化装置、方法およびプログラム、並びに、画像復号装置、方法およびプログラム |
JP2010278668A (ja) * | 2009-05-27 | 2010-12-09 | Sony Corp | 符号化装置及び符号化方法、並びに復号装置及び復号方法 |
WO2011034148A1 (ja) | 2009-09-18 | 2011-03-24 | シャープ株式会社 | 符号化装置、復号装置、動画像符号化装置、動画像復号装置、および符号化データ |
US9060176B2 (en) * | 2009-10-01 | 2015-06-16 | Ntt Docomo, Inc. | Motion vector prediction in video coding |
US9591320B2 (en) | 2010-07-15 | 2017-03-07 | Texas Instruments Incorporated | Context and bypass encoding video |
US9532066B2 (en) * | 2011-01-21 | 2016-12-27 | Qualcomm Incorporated | Motion vector prediction |
US9106913B2 (en) * | 2011-03-08 | 2015-08-11 | Qualcomm Incorporated | Coding of transform coefficients for video coding |
ES2906869T3 (es) | 2011-06-16 | 2022-04-20 | Ge Video Compression Llc | Inicialización de contexto en codificación entrópica |
JP5362129B2 (ja) * | 2011-06-24 | 2013-12-11 | パナソニック株式会社 | 画像符号化方法および画像符号化装置 |
US10536701B2 (en) * | 2011-07-01 | 2020-01-14 | Qualcomm Incorporated | Video coding using adaptive motion vector resolution |
-
2012
- 2012-06-21 JP JP2012555992A patent/JP5362129B2/ja active Active
- 2012-06-21 EP EP17204497.6A patent/EP3309970B1/en active Active
- 2012-06-21 CN CN201710800531.2A patent/CN107396107B/zh active Active
- 2012-06-21 EP EP17204482.8A patent/EP3309969B1/en active Active
- 2012-06-21 PL PL17204497.6T patent/PL3309970T3/pl unknown
- 2012-06-21 EP EP23168445.7A patent/EP4220966B1/en active Active
- 2012-06-21 WO PCT/JP2012/004014 patent/WO2012176450A1/ja active Application Filing
- 2012-06-21 ES ES17204497T patent/ES2952761T3/es active Active
- 2012-06-21 KR KR1020207015654A patent/KR102258753B1/ko active IP Right Grant
- 2012-06-21 US US13/529,384 patent/US8855207B2/en active Active
- 2012-06-21 MX MX2013001167A patent/MX2013001167A/es active IP Right Grant
- 2012-06-21 EP EP19158039.8A patent/EP3522377A1/en not_active Withdrawn
- 2012-06-21 BR BR112013002450-0A patent/BR112013002450B1/pt active IP Right Grant
- 2012-06-21 TW TW101122233A patent/TWI565304B/zh active
- 2012-06-21 EP EP24172404.6A patent/EP4383723A3/en active Pending
- 2012-06-21 KR KR1020137001105A patent/KR20140032930A/ko not_active Application Discontinuation
- 2012-06-21 CA CA2806796A patent/CA2806796C/en active Active
- 2012-06-21 EP EP12802237.3A patent/EP2725796A4/en not_active Ceased
- 2012-06-21 CN CN201280001995.2A patent/CN103004207B/zh active Active
- 2012-06-21 ES ES17204482T patent/ES2944949T3/es active Active
- 2012-06-21 PL PL17204482.8T patent/PL3309969T3/pl unknown
- 2012-06-21 CN CN201710800325.1A patent/CN107371025B/zh active Active
- 2012-06-21 AU AU2012274765A patent/AU2012274765B2/en active Active
-
2013
- 2013-08-29 JP JP2013178701A patent/JP5390727B1/ja active Active
- 2013-09-03 JP JP2013182563A patent/JP5999563B2/ja active Active
- 2013-09-03 JP JP2013182569A patent/JP5415648B2/ja active Active
- 2013-09-30 US US14/041,043 patent/US9681130B2/en active Active
- 2013-09-30 US US14/041,147 patent/US9648324B2/en active Active
-
2016
- 2016-08-19 JP JP2016161243A patent/JP6229909B2/ja active Active
-
2017
- 2017-04-27 US US15/498,840 patent/US10382779B2/en active Active
- 2017-10-04 JP JP2017194032A patent/JP6443847B2/ja active Active
-
2018
- 2018-11-19 JP JP2018216457A patent/JP6612416B2/ja active Active
-
2019
- 2019-07-28 US US16/524,155 patent/US11330292B2/en active Active
- 2019-10-30 JP JP2019197323A patent/JP6821766B2/ja active Active
-
2021
- 2021-01-06 JP JP2021000766A patent/JP7033675B2/ja active Active
-
2022
- 2022-05-09 US US17/740,324 patent/US11743490B2/en active Active
-
2023
- 2023-07-10 US US18/219,767 patent/US11991388B2/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6612416B2 (ja) | 画像復号方法および画像復号装置 | |
JP6238215B2 (ja) | 復号方法および復号装置 | |
ES2936333T3 (es) | Procedimiento de codificación de imágenes de vídeo, procedimiento de decodificación de imágenes de vídeo, dispositivo de codificación de imágenes de vídeo, dispositivo de decodificación de imágenes de vídeo y dispositivo de codificación-decodificación de imágenes de vídeo | |
ES2863625T3 (es) | Señalización de banderas de bloque codificado (CBF) de luminancia-crominancia en codificación de vídeo | |
ES2871858T3 (es) | Método de codificación de imágenes y dispositivo de codificación de imágenes | |
ES2923648T3 (es) | Procedimiento de codificación de imágenes de vídeo, procedimiento de decodificación de imágenes de vídeo | |
ES2754784T3 (es) | Procedimiento de decodificación de vídeo, aparato de decodificación de vídeo | |
ES2936058T3 (es) | Procedimiento y aparato de codificación de imágenes |