ES2661697T3 - Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento - Google Patents
Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento Download PDFInfo
- Publication number
- ES2661697T3 ES2661697T3 ES16182966.8T ES16182966T ES2661697T3 ES 2661697 T3 ES2661697 T3 ES 2661697T3 ES 16182966 T ES16182966 T ES 16182966T ES 2661697 T3 ES2661697 T3 ES 2661697T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- images
- block
- target
- coding
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 304
- 230000033001 locomotion Effects 0.000 claims abstract description 849
- 230000015654 memory Effects 0.000 claims abstract description 527
- 230000003044 adaptive effect Effects 0.000 claims abstract description 21
- 239000013598 vector Substances 0.000 description 482
- 230000008569 process Effects 0.000 description 85
- 238000010586 diagram Methods 0.000 description 77
- 238000001514 detection method Methods 0.000 description 66
- 238000007726 management method Methods 0.000 description 41
- 238000012545 processing Methods 0.000 description 36
- 230000002457 bidirectional effect Effects 0.000 description 34
- 238000004364 calculation method Methods 0.000 description 32
- 238000004458 analytical method Methods 0.000 description 22
- 238000012935 Averaging Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000007774 longterm Effects 0.000 description 8
- 230000009467 reduction Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 5
- 238000001228 spectrum Methods 0.000 description 5
- 230000001174 ascending effect Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000008707 rearrangement Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 3
- 238000005206 flow analysis Methods 0.000 description 3
- 238000011002 quantification Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 102100025248 C-X-C motif chemokine 10 Human genes 0.000 description 1
- 101100168606 Caenorhabditis elegans crh-2 gene Proteins 0.000 description 1
- 206010012335 Dependence Diseases 0.000 description 1
- 101000858088 Homo sapiens C-X-C motif chemokine 10 Proteins 0.000 description 1
- 101100258315 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) crc-1 gene Proteins 0.000 description 1
- 101100329389 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) cre-1 gene Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000012800 visualization Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/127—Prioritisation of hardware or computational resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/16—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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/423—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 characterised by memory 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/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/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- 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
-
- 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/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- 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/58—Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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/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/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un aparato de codificación de imágenes en movimiento que codifica una imagen en una imagen en movimiento, comprendiendo el aparato de codificación de imágenes en movimiento: una unidad de generación de primera y segunda informaciones operativa para generar, sobre una base imagen por imagen, o bien (i) una primera información que indica que una imagen objetivo, que es una de entre una imagen I, una imagen P, y una imagen B, puede ser una imagen de referencia a la que se hace referencia cuando se codifica al menos una de las imágenes P que siguen a la imagen objetivo o cuando se codifica al menos una de las imágenes B que siguen a la imagen objetivo, y (ii) una segunda información que indica que la imagen objetivo no puede ser una imagen de referencia a la que se hace referencia cuando se codifica cada una de las imágenes P que siguen a la imagen objetivo o cuando se codifica cada una de las imágenes B que siguen a la imagen objetivo; una unidad de generación de tercera información operativa para generar, sobre una base imagen por imagen, (iii) una tercera información que indica una pluralidad de imágenes de referencia candidatas, siendo cada una de las imágenes de referencia candidatas una candidata para una imagen de referencia seleccionada de entre las imágenes para las cuales sólo se adjunta la primera información, cuando se codifica una imagen P objetivo o cuando se codifica una imagen B objetivo; una unidad de asignación de índices de imágenes de referencia operativa para asignar índices de imágenes de referencia a las imágenes de referencia candidatas entre un método de asignación por defecto para asignar índices de imágenes de referencia a las imágenes de referencia candidatas según una regla inicializada y un método de asignación adaptativa para asignar índices de imágenes de referencia a las imágenes de referencia candidatas cambiando los índices de imágenes de referencia asignados por el método de asignación por defecto; una unidad de generación de cuarta información operativa para generar, sobre una base bloque por bloque, (iv) una cuarta información que indica una imagen de referencia especificada a la que se hace referencia cuando se realiza una codificación predictiva en un bloque objetivo incluido en la imagen P objetivo o indica una o dos imágenes de referencia especificadas a las que se hace referencia cuando se realiza una codificación predictiva en un bloque objetivo incluido en la imagen B objetivo; una unidad de almacenamiento operativa para almacenar, sobre una base imagen por imagen, la imagen objetivo en una memoria como una imagen de referencia candidata sólo cuando la primera información se genera para la imagen objetivo por la unidad de generación de primera y segunda informaciones; una unidad de codificación operativa para codificar, sobre una base bloque por bloque, el bloque objetivo usando la imagen de referencia especificada cuando se realiza la codificación predictiva en el bloque objetivo incluido en la imagen P objetivo, o usando la una o dos imágenes de referencia especificadas cuando se realiza una codificación predictiva en el bloque objetivo incluido en la imagen B objetivo para generar datos de bloque codificados; y una unidad de generación de flujo de bits operativa para generar un flujo de bits correspondiente a la imagen en movimiento, añadiendo la primera información, la segunda información, la tercera información, una información de la regla de asignación del método de asignación adaptativa, y la cuarta información a los datos de bloque codificados, en el que, cuando la imagen objetivo es una imagen P y el bloque objetivo incluido en la imagen P objetivo se codifica de forma predictiva, dicha una imagen de referencia especificada se especifica sobre una base bloque por bloque, entre una pluralidad de imágenes de referencia candidatas que están almacenadas en la memoria, y el bloque objetivo se codifica de manera predictiva con referencia a la imagen de referencia especificada, y cuando la imagen objetivo es una imagen B y el bloque objetivo incluido en la imagen del objetivo B se codifica de manera predictiva con referencia a una o dos imágenes de referencia especificadas, la una o dos imágenes de referencia especificadas se especifican, sobre una base bloque por bloque, entre una pluralidad de imágenes de referencia candidatas que están almacenadas en la memoria, y el bloque objetivo se codifica de manera predictiva con referencia a una o dos imágenes de referencia especificadas.
Description
5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento Campo técnico
La presente invención se refiere a un método de codificación de imágenes en movimiento y un método de decodificación de imágenes en movimiento y, más particularmente, a un método para codificar o decodificar imágenes que constituyen una imagen en movimiento, con referencia otras imágenes de la imagen en movimiento.
Antecedentes de la técnica
Generalmente, en codificación de imágenes que constituyen una imagen en movimiento, cada imagen se divide en bloques plurales y la codificación compresiva (en lo sucesivo, también referida simplemente como “codificación”) de información de imagen poseída por cada imagen se lleva a cabo para cada bloque, utilizando redundancias en la dirección de espacio y la dirección de tiempo de la imagen en movimiento. Como un proceso de codificación que utiliza redundancia en la dirección de espacio, hay una codificación dentro de una imagen que utiliza correlación de valores de píxel en una imagen. Como un proceso de codificación que utiliza redundancia en la dirección de tiempo hay una codificación predictiva entre imágenes que utilizan correlación de valores de píxel entre imágenes. La codificación predictiva entre imágenes es un proceso de codificación de una imagen objetivo a ser codificada, con referencia a una imagen que se coloca en cuanto al tiempo hacia delante de la imagen objetivo (imagen hacia delante) o una imagen que se coloca en cuanto al tiempo hacia atrás de la imagen objetivo (imagen hacia atrás).
La imagen hacia delante es una imagen cuyo tiempo de visualización es anterior al de la imagen objetivo y se coloca hacia delante de la imagen objetivo en un eje de tiempo indicando los tiempos de visualización de las imágenes respectivas (en lo sucesivo, referido como “eje de tiempo de visualización”). La imagen hacia atrás es una imagen cuyo tiempo de visualización es posterior al de la imagen objetivo y se coloca hacia atrás de la imagen objetivo en el eje de tiempo de visualización. Además, en la siguiente descripción, una imagen a ser referida en la codificación de la imagen objetivo se llama imagen de referencia.
En la codificación predictiva entre imágenes, específicamente, se detecta un vector de movimiento de la imagen objetivo con respecto a la imagen de referencia y se obtienen datos de predicción para datos de imágenes de la imagen objetivo mediante compensación de movimiento basada en el vector de movimiento. Entonces, se elimina la redundancia de datos de diferencia entre los datos de predicción y los datos de imagen de la imagen objetivo en la dirección de espacio de la imagen, con lo que se lleva a cabo la codificación compresiva de la cantidad de datos de la imagen objetivo.
Por otra parte, como un proceso para decodificar una imagen codificada, hay decodificación dentro de una imagen que corresponde a la codificación dentro de una imagen y la decodificación entre imágenes que corresponde a la codificación entre imágenes. En la decodificación entre imágenes, se hace referencia a la misma imagen que una imagen a la que se hace referencia en la codificación entre imágenes. Es decir, una imagen Xtg que se codifica con referencia a imágenes Xra y Xrb se decodifica con referencia a las imágenes Xra y Xrb.
Las figuras 43(a)-43(c) son diagramas que ilustran las imágenes plurales que constituyen una imagen en movimiento.
En la figura 43(a), se muestra una parte de las imágenes plurales que constituyen una imagen en movimiento Mpt, es decir, imágenes F(k)~F(k+2n-1) [k,n: enteros]. Los tiempos de visualización t(k)~t(k+2n-1) se fijan en las imágenes respectivas F(k)~F(k+2n-1). Como se muestra en la figura 43(a), las imágenes respectivas se disponen sucesivamente desde la que tiene el tiempo de visualización anterior en un eje de tiempo de visualización X que indica tiempos de visualización Tdis de las imágenes respectivas y estas imágenes se agrupan para cada número predeterminado (n) de imágenes. Cada uno de estos grupos de imágenes se llaman un GOP (Grupo de Imágenes) y ésta es una unidad mínima de acceso aleatorio a datos codificados de una imagen en movimiento. En la siguiente descripción, un grupo de imágenes algunas veces se abrevia como un GOP.
Por ejemplo, un grupo de imágenes de orden (i) Gp(i) está constituido por imágenes F(k)~F(k+n-1). Un grupo de imágenes de orden (i+1) Gp(i+1) está constituido por imágenes F(n+k)~F(k+2n-1).
Cada imagen se divide en segmentos plurales cada uno que comprende macrobloques plurales. Por ejemplo, un macrobloque es un área rectangular que tiene 16 píxeles en la dirección vertical y 16 píxeles en la dirección en la dirección horizontal. Además, como se muestra en la figura 43(b), una imagen F(k+1) se divide en segmentos plurales SL1~SLm [m: número natural]. Un segmento SL2 está constituido por macrobloques plurales MB1~MBr [r: número natural] como se muestra en la figura 43(c).
La figura 44 es un diagrama para explicar datos codificados de una imagen en movimiento que ilustra una estructura de un flujo obtenido codificando las imágenes respectivas que constituyen la imagen en movimiento.
5
10
15
20
25
30
35
40
45
50
55
Un flujo Smp son datos codificados que corresponden a una secuencia de imágenes (por ejemplo, una imagen en movimiento). El flujo Smp se compone de un área (área de información común) Cstr en la que se disponen flujos de bits que corresponden a información común tal como una cabecera y un área (área GOP) Dgop en la que se disponen flujos de bits que corresponden a los GOP respectivos. El área de información común Cstr incluye datos de sincronismo Sstr y una cabecera Hstr que corresponde al flujo. El área de GOP Dgop incluye flujos de bits Bg(1)~Bg(i-1), Bg(i), Bg(i+1)~Bg(I) que corresponden a grupos de imágenes (GOP) Gp(1)~Gp(i-1), Gp(i), Gp(i+1 )~Gp(I) [i,I: enteros].
Cada flujo de bits que corresponde a cada GOP se compone de un área (área de información común) Cgop en la que se disponen flujos de bits que corresponden a información común tal como una cabecera y un área (área de imagen) Dpct en la que se disponen flujos de bits que corresponden a las imágenes respectivas. El área de información común Cgop incluye datos de sincronismo Sgop y una cabecera Hgop que corresponde al GOP. Un área de imagen Dpct en el flujo de bits Bg(i) que corresponde al grupo de imágenes G(i) incluye flujos de bits Bf(k'), Bf(k'+1), Bf(k'+2), Bf(k'+3), ..., Bf(k'+s) que corresponden a imágenes F(k'), F(k'+1), F(k'+2), F(k'+3), ..., F(k'+s) [k', s: enteros]. Las imágenes F(k'), F(k'+1), F(k'+2), F(k'+3), ..., F(k'+s) se obtienen reordenando, en orden de codificación, las imágenes F(k)~F(k+n-1) dispuestas en orden de tiempos de visualización.
Cada flujo de bits que corresponde a cada imagen se compone de un área (área de información común) Cpct en la que se disponen flujos de bits que corresponden a información común tal como una cabecera y un área (área de segmento) Dslc en la que se disponen flujos de bits que corresponden a los segmentos respectivos. El área de información común Cpct incluye datos de sincronismo Spct y una cabecera Hpct que corresponde a la imagen. Por ejemplo, cuando la imagen F(k'+1) en la disposición en orden de tiempos de codificación (disposición de orden de codificación) es la imagen F(k+1) en la disposición en orden de tiempos de visualización (disposición de orden de visualización), el área de segmento Dslc en el flujo de bits Bf(k'+1) que corresponde a la imagen F(k'+1) incluye flujos de bits Bs1~Bsm que corresponden a los segmentos SL1~SLm respectivos.
Cada flujo de bits que corresponde a cada segmento se compone de un área (área de información común) Cslc en la que se disponen flujos de bits que corresponden a información común tal como una cabecera y un área (área de macrobloque) Dmb en la que se disponen flujos de bits que corresponden a los macrobloques respectivos. El área de información común Cslc incluye datos de sincronismo Sslc y una cabecera Hslc que corresponde al segmento. Por ejemplo, cuando la imagen F(k'+1) en la disposición de orden de codificación es la imagen F(k+1) en la disposición de orden de visualización, el área de macrobloque Dmb en el flujo de bits Bs2 que corresponde al segmento SL2 incluye flujos de bits Bm1~Bmr que corresponden a los macrobloques MB1~MBr respectivos.
Como se describió anteriormente, datos codificados que corresponden a una imagen en movimiento (es decir, una secuencia de imágenes) tienen una estructura jerárquica que comprende una capa de flujo que corresponde a un flujo Smp como los datos codificados, unas capas de GOP que corresponden a los GOP que constituyen el flujo, unas capas de imágenes que corresponden a imágenes que constituyen cada uno de los GOP y unas capas de segmentos que corresponden a segmentos que constituyen cada una de las imágenes.
Por cierto, en métodos de codificación de imágenes en movimiento tales como MPEG (Grupo de Expertos de Imágenes en Movimiento)-1, MPEG-2, MPEG-4, recomendación ITU-T H.263, H.26L, y similares, una imagen a ser sometida a codificación dentro de una imagen se llama una imagen I y una imagen a ser sometida a codificación predictiva entre imágenes se llama una imagen P o una imagen B.
En lo sucesivo, se describirán definiciones de una imagen I, una imagen P y una imagen B.
Una imagen I es una imagen a ser codificada sin hacer referencia a otra imagen. Una imagen P o imagen B es una imagen a ser codificada con referencia a otra imagen. Para ser exactos, una imagen P es una imagen para la cual se puede seleccionar o bien codificación de modo I o bien codificación de modo P cuando se codifica cada bloque en la imagen. Una imagen B es una imagen para la cual se puede seleccionar una de codificación de modo I, codificación de modo P y codificación de modo B cuando se codifica cada bloque en la imagen.
La codificación de modo I es un proceso de realización de codificación dentro de una imagen para un bloque objetivo en una imagen objetivo sin hacer referencia a otra imagen. La codificación de modo P es un proceso de realización de codificación predictiva entre imágenes para un bloque objetivo en una imagen objetivo con referencia a una imagen ya codificada. La codificación de modo B es un proceso de realización de codificación predictiva entre imágenes para un bloque objetivo en una imagen objetivo con referencia a dos imágenes ya codificadas.
Una imagen a ser referida durante la codificación de modo P o codificación de modo B es una imagen I o una imagen B distinta de la imagen objetivo y puede ser o bien una imagen hacia delante colocada hacia delante de la imagen objetivo o bien una imagen hacia atrás colocada hacia atrás de la imagen objetivo.
No obstante, hay tres formas de combinar dos imágenes a ser referidas durante la codificación de modo B. Es decir, hay tres casos de codificación de modo B como sigue: un caso en el que se hace referencia a dos imágenes hacia delante, un caso en el que se hace referencia a dos imágenes hacia atrás y un caso en el que se hace referencia a una imagen hacia delante y una imagen hacia atrás.
5
10
15
20
25
30
35
40
45
50
55
La figura 45 es un diagrama para explicar un método de codificación de imágenes en movimiento tal como el MPEG descrito anteriormente. La figura 45 ilustra realizaciones entre imágenes objetivo y las imágenes de referencia correspondientes (imágenes a ser referidas cuando se codifican las imágenes objetivo respectivas).
La codificación de las imágenes respectivas F(k)~F(k+7), ..., F(k+17)~F(k+21) que constituye la imagen en movimiento se lleva a cabo con referencia a otras imágenes como se muestra por las flechas Z. Para ser específicos, una imagen al final de una flecha Z se codifica mediante codificación predictiva entre imágenes con referencia a una imagen al comienzo de la misma flecha Z. En la figura 45, las imágenes F(k)~F(k+7), ..., F(k+17)~F(k+21) son idénticas a las imágenes F(k)~F(k+4), ..., F(k+n-2)~F(k+n+4), ..., F(k+2n-2), F(k+2n-1) mostradas en la figura 43(a). Estas imágenes se disponen sucesivamente desde una que tiene un tiempo de visualización anterior en el eje de tiempo de visualización X. Los tiempos de visualización de las imágenes F(k)~F(k+7), ..., F(k+17)~F(k+2l) son tiempos t(k)~t(k+7), ..., t(k+17)~t(k+21). Los tipos de imagen de las imágenes F(k)~F(k+7) son I, B, B, P, B, B, P, B y los tipos de imagen de las imágenes F(k+17)~F(k+21) son B, P, B, B, P.
Por ejemplo, cuando se realiza la codificación de modo B para la segunda imagen B F(k+1) mostrada en la figura 45, se hace referencia a la primera imagen I F(k) y a la cuarta imagen P F(k+3). Además, cuando se realiza la codificación de modo P para la cuarta imagen P F(k+3) mostrada en la figura 45, se hace referencia a la primera imagen I F(k).
Aunque se hace referencia a una imagen hacia delante en codificación de modo P de una imagen P en la figura 45, se puede hacer referencia a una imagen hacia atrás. Además, aunque se hace referencia a una imagen hacia delante y una imagen hacia atrás en la codificación de modo B de una imagen B en la figura 45, se puede hacer referencia a dos imágenes hacia delante o dos imágenes hacia atrás.
Además, en un método de codificación de imágenes en movimiento tal como MPEG-4 o H.26L, se puede seleccionar un modo de codificación llamado “modo directo” cuando se codifica una imagen B.
Las figuras 46(a) y 46(b) son diagramas para explicar una codificación predictiva entre imágenes a ser realizada con el modo directo. La figura 46(a) muestra vectores en movimiento a ser usados en el modo directo.
En la figura 46(a), las imágenes P1, B2, B3 y P4 corresponden a las imágenes F(k+3)~F(k+6) [k=-2] mostradas en la figura 45 y los tiempos t(1), t(2), t(3) y t(4) (t(1)<t(2)<t(3)<t(4)) son tiempos de visualización de las imágenes P1, B2, B3 y P4, respectivamente. Además, X es un eje de tiempo de visualización que indica tiempos de visualización Tdis.
En lo sucesivo, se describirá específicamente un caso en el que un bloque BL3 en la imagen B3 se codifica en el modo directo.
En este caso, una imagen objetivo a ser codificada es la imagen B3 y un bloque objetivo a ser codificado es un bloque BL3.
En la codificación predictiva del bloque BL3 en la imagen B3, se usa un vector de movimiento MV4 de un bloque BL4 en la imagen P4, cuyo bloque se ha codificado más recientemente y se coloca hacia atrás de la imagen B3. La posición relativa del bloque BL4 a la imagen P4 es igual a la posición relativa del bloque BL3 a la imagen B3. Es decir, como se muestra en la figura 46(b), las coordenadas (x4, y4) de un origen Ob4 del bloque BL4 con respecto a un origen 04 de la imagen P4 son iguales a las coordenadas (x3, y3) de un origen Ob3 del bloque BL3 con respecto a un origen 03 de la imagen P3. Además, el vector de movimiento MV4 del bloque BL4 es el vector de movimiento que se usa en la codificación predictiva del bloque BL4. El vector de movimiento MV4 del bloque BL4 se obtiene mediante detección de movimiento del bloque BL4 con referencia a la imagen hacia delante P1 y muestra una región R4f que corresponde al bloque BL4, de la imagen hacia delante P1.
Entonces, el bloque BL3 en la imagen B3 se somete a codificación predictiva bidireccional con referencia a la imagen hacia delante P1 y la imagen hacia atrás P4, usando los vectores de movimiento MV3f y MV3b que son paralelos al vector de movimiento MV4. El vector de movimiento MV3f indica una región R3f que corresponde al bloque BL3, de la imagen hacia delante P1 a ser referida cuando se codifica el bloque BL3. El vector de movimiento MV3b indica una región R3b que corresponde al bloque BL3, de la imagen hacia atrás P4 a ser referida cuando se codifica el bloque BL3.
Por cierto, la recomendación de la ITU-T (H.263++ Anexo U) describe acerca de un marco en un caso en el que las imágenes plurales se usan como candidatas para una imagen de referencia. En esta descripción, una memoria de imágenes de referencia para contener datos de imagen de imágenes a ser candidatas para una imagen de referencia (imágenes candidatas) se clasifica en una memoria de imágenes a corto plazo y una memoria de imágenes a largo plazo. La memoria de imágenes a corto plazo es un área de memoria para contener datos de imágenes candidatas que son en cuanto al tiempo cercanas a una imagen objetivo (imágenes candidatas colindantes). La memoria de imágenes a largo plazo es un área de memoria para contener imágenes candidatas que están en cuanto al tiempo alejadas de la imagen objetivo (imágenes candidatas distantes). Para ser específicos, una imagen candidata distante está separada de la imagen objetivo por tal distancia que el número de imágenes candidatas de la imagen objetivo a la imagen candidata distante excede el número de imágenes candidatas que se pueden almacenar en la memoria de imágenes a corto plazo.
5
10
15
20
25
30
35
40
45
50
Además, la recomendación de la ITU-T (H.263++ Anexo U) describe acerca de un método de utilización de la memoria de imágenes a corto plazo y la memoria de imágenes a largo plazo y, además, también describe un método para designar índices de imágenes de referencia (en lo sucesivo, también referidos simplemente como índices de referencia) a imágenes.
Inicialmente, se describirá brevemente el método de designación de índices de referencia a imágenes.
Las figuras 47(a) y 47(b) son diagramas para explicar el método de designación de índices de referencia a imágenes plurales que constituyen una imagen en movimiento. La figura 47(a) muestra candidatas (imágenes candidatas) para una imagen a ser referida cuando se codifica una imagen P16. La figura 47(b) muestra candidatas (imágenes candidatas) para una imagen a ser referida cuando se codifica una imagen B15.
En la figura 47(a), las imágenes P4, B2, B3, P7, B5, B6, P10, B8, B9, P13, B11, B12, P16, B14, B15, P19, B17 y P18 se obtienen reordenando las imágenes F(k+1)~F(k+17) [k=1] mostradas en la figura 45 en orden de codificación. La asignación de imágenes plurales mostradas en la figura 47(a) es una disposición de imágenes en un eje de tiempo (eje de tiempo de codificación) Y que indica tiempos (tiempos de codificación) Tenc para codificar las imágenes respectivas.
Una descripción se dará de un caso en el que, como se muestra en la figura 47(a), un bloque en la imagen P P16 se somete a codificación de modo P.
En este caso, entre cuatro imágenes P hacia delante (imágenes P4, P7, P10 y P13), se hace referencia a una imagen adecuada para codificación. Es decir, las imágenes P hacia delante P4, P7, P10 y P13 son imágenes candidatas que se pueden designar como una imagen de referencia en la realización de codificación de modo P de la imagen P16. Estas imágenes candidatas P4, P7, P10 y P13 son índices de referencia asignados, respectivamente.
Cuando se asignan índices de referencia a estas imágenes candidatas, un índice de referencia que tiene un valor menor se asigna a una imagen candidata más cercana a la imagen objetivo P16 a ser codificada. Para ser específicos, como se muestra en la figura 47(a), los índices de referencia [0], [1], [2] y [3] se asignan a las imágenes P13, P10, P7 y P4, respectivamente. Además, se describe información que indica los índices de referencia asignados a las imágenes candidatas respectivas como un parámetro de compensación de movimiento en un flujo de bits que corresponde a un bloque objetivo en la imagen P16.
A continuación, se dará una descripción de un caso en el que, como se muestra en la figura 47(b) un bloque en la imagen B B15 se somete a codificación de modo B.
En este caso, entre cuatro imágenes hacia delante (imágenes P4, P7, P10 y P13) y una imagen hacia atrás (imagen P16), se hace referencia a dos imágenes adecuadas para codificación. Es decir, las imágenes hacia delante P4, P7, P10 y P13 y la imagen hacia atrás P16 son imágenes candidatas que se pueden designar como imágenes de referencia la codificación de modo B para la imagen B B15. Cuando cuatro imágenes hacia delante y una imagen hacia atrás son imágenes candidatas, a las imágenes hacia delante P4, P7, P10 y P13 se asignan índices de referencia y a la imagen hacia atrás P16 se asigna un código [b] que indica que esta imagen es una imagen candidata a ser referida hacia atrás.
En la asignación de índices de referencia a las imágenes candidatas, en cuanto a imágenes hacia delante como imágenes candidatas, un índice de referencia menor se asigna a una imagen hacia delante (imagen candidata) más cercana a la imagen objetivo B15 a ser codificada sobre el eje de tiempo de codificación Y. Para ser específicos, como se muestra en la figura 47(b), los índices de referencia [0], [1]. [2] y [3] se asignan a las imágenes P13, P10, P7 y P4, respectivamente. Además, se describe información que indica el índice de referencia asignado a cada imagen candidata, como un parámetro de imagen en movimiento, en un flujo de bits que corresponde a un bloque objetivo en la imagen B15.
A continuación, el método de asignación de índices de referencia, que se describe en la recomendación de la ITU-T (H.263++ Anexo U), se describirá en asociación con el método de utilización de la memoria de imágenes a corto plazo y la memoria de imágenes a largo plazo.
En la memoria de imágenes a corto plazo, las imágenes candidatas que se pueden designar como una imagen de referencia para una imagen objetivo se almacenan sucesivamente y a las imágenes candidatas almacenadas se asignan índices de referencia en orden de almacenamiento en la memoria (es decir, en el orden de decodificación o el orden de flujos de bits). Además, cuando se decodifica una imagen B, una imagen que se ha almacenado más recientemente en la memoria se trata como una imagen de referencia hacia atrás mientras que a las otras imágenes se asignan índices de referencia en orden de almacenamiento en la memoria.
En lo sucesivo, se dará una descripción de un caso en el que se pueden usar cuatro imágenes hacia delante como candidatas para una imagen de referencia para una imagen objetivo.
5
10
15
20
25
30
35
40
45
50
Las figuras 48(a) y 48(b) son diagramas que ilustran parte de imágenes plurales que constituyen una imagen en movimiento, en las que se disponen imágenes en orden de visualización (48(a)) y se disponen imágenes en orden de codificación (48(b)). La imágenes P1, B2, B3, P4, B5, B6, P7, B8, B9, P10, B11, B12, P13, B14, B15, P16, B17, B18 y P19 mostradas en la figura 48(a) corresponden a las imágenes F(k+3)~F(k+21) [k=-2] mostradas en la figura 45.
La figura 49 es un diagrama para explicar la gestión de una memoria para imágenes de referencia para las imágenes dispuestas como se describió anteriormente.
En la figura 49, imágenes ya codificadas que se almacenan en la memoria de imágenes de referencia cuando se codifican imágenes objetivo se muestran en asociación con números de memoria lógica que corresponden a áreas de memoria en las que se almacenan las imágenes ya codificadas e índices de referencia asignados a las imágenes ya codificadas.
En la figura 49, las imágenes P16, B14 y B15 son imágenes objetivo. Los números de memoria lógica (0) ~ (4) indican posiciones lógicas (áreas de memoria) en la memoria de imágenes de referencia. Cuanto más tardío sea el tiempo de codificación (o decodificación) una imagen ya procesada almacenada en un área de memoria, menor será el número de memoria lógica que corresponden al área de memoria.
En lo sucesivo, se describirá más específicamente la gestión de la memoria de imágenes de referencia.
Cuando se codifica (decodifica) la imagen P16, las imágenes P13, P10, P7 y P4 se almacenan en las áreas de memoria indicadas por los números de memoria lógica (0), (1), (2) y (3) en la memoria de imágenes de referencia, respectivamente. A las imágenes, P13, P10, P7 y P4 se asignan los índices de referencia [0], [1], [2] y [3], respectivamente.
Cuando se codifican (se decodifican) las imágenes B14 y B15, las imágenes P16, P13, P10, P7 y P4 se almacenan en las áreas de memoria indicadas por los números de memoria lógica (0), (1), (2), (3) y (4) en la memoria de imágenes de referencia, respectivamente. En este momento, a la imagen P16 se asigna un código [b] que indica que esta imagen es una imagen candidata para referida hacia atrás y a las imágenes candidatas restantes P13, P10, P7 y P4 a ser referidas hacia atrás se asignan los índices de referencia [0], [1], [2] y [3], respectivamente.
La información que indica los índices de referencia asignados a las imágenes candidatas respectivas es un parámetro de compensación de movimiento y, cuándo se codifica un bloque en una imagen objetivo, se describe en un flujo de bits que corresponde al bloque como información que indica cuál de las imágenes candidatas plurales se debería usar como una imagen de referencia. En este momento, un código más corto se asigna a un índice de referencia menor.
En el método de codificación convencional descrito anteriormente, no obstante, dado que una imagen I o una imagen P se designa como una imagen de referencia cuando se realiza codificación predictiva para un bloque en una imagen B, se podría aumentar una distancia (en lo sucesivo, también referida como una distancia basada en tiempo) entre la imagen objetivo y la imagen de referencia sobre el eje de tiempo de visualización.
Por ejemplo, en la codificación predictiva sobre un bloque en la imagen B B15 mostrada en la figura 48(b), cuando la imagen hacia delante P13 y la imagen hacia atrás P16 se designan como imágenes de referencia, la distancia basada en el tiempo Ltd (=t(15)-t(13)) entre la imagen B B15 (imagen objetivo) y la imagen hacia delante P13 (imagen de referencia) llega a ser un intervalo de dos imágenes (2Pitv) como se muestra en la figura 50(a).
Además, en la codificación predictiva para un bloque en la imagen B B15 mostrada en la figura 48(b), cuando las imágenes hacia delante P13 y P10 se designan como imágenes de referencia, la distancia basada en el tiempo Ltd (=t(15)-t(10)) entre la imagen B B15 (imagen objetivo) y la imagen hacia delante P10 (imagen de referencia) llega a ser un intervalo de cinco imágenes (5Pitv) como se muestra en la figura 50(b).
Especialmente cuando se aumenta el número de imágenes B insertadas entre una imagen I y una imagen P o entre dos imágenes P adyacentes, se aumenta la distancia basada en el tiempo Ltd entre la imagen objetivo y la imagen de referencia, provocando una reducción considerable en eficiencia de codificación.
Además, en el método de codificación convencional, cuando se realiza codificación de modo B en la cual se puede hacer referencia a imágenes hacia atrás plurales, hay casos en los que a una imagen colindante que es en cuanto al tiempo cercana a una imagen objetivo se asigna un índice de referencia mayor que un índice de referencia asignado a una imagen distante que está en cuanto al tiempo alejada de la imagen objetivo.
En este caso, en la detección de movimiento para un bloque en la imagen objetivo, va a ser probablemente hecha referencia a una imagen candidata que es en cuanto al tiempo más cercana a la imagen objetivo, en otras palabras, una imagen candidata que es en cuanto al tiempo más cercana a la imagen objetivo va a ser probablemente designada como una imagen de referencia, provocando degradación de la eficiencia de codificación.
5
10
15
20
25
30
35
40
45
50
En lo sucesivo, se dará una descripción de un caso en el que se hace referencia a dos imágenes hacia atrás P16 y P19 en la codificación de modo B para un bloque en una imagen B B15 mostrada en la figura 51(a).
En este caso, las imágenes B2, B3, P4, B5, B6, P7, B8, B9, P10, B11, B12, P13, B14, B15, P16, B17, B18 y P19 que se disponen en orden de visualización como se muestra en la figura 51(a) se reordenan en orden de codificación, dando como resultado P7, B2, B3, P10, B5, B6, P13, B8, B9, P16, B11, B12, P19, B14 y B15 como se muestra en la figura 51(b).
Además, en este caso, entre tres imágenes hacia delante (imágenes P7, P10 y P13) y dos imágenes hacia atrás (imágenes P16 y P19), se hace referencia a dos imágenes adecuadas para codificación. Para ser específicos, las imágenes hacia delante P7, P10 y P13 y las imágenes hacia atrás P16 y P19 son imágenes candidatas que se pueden designar como una imagen de referencia cuando se codifica un bloque en la imagen B15. Cuando tres imágenes hacia delante y dos imágenes hacia atrás son imágenes candidatas como se describió anteriormente, los índices de referencia se asignan a las imágenes hacia delante P7, P10 y P13 y las imágenes hacia atrás P16 y P19.
En la asignación de índices de referencia a las imágenes candidatas, un índice de referencia menor se asigna a una imagen candidata que es más cercana a la imagen objetivo B15 a ser codificada en el eje de tiempo de codificación Y. Para ser específicos, como se muestra en la figura 51 (b), los índices de referencia [0], [1], [2], [3] y [4] se asignan a las imágenes P19, P16, P13, P10 y P7, respectivamente.
En este caso, no obstante, el índice de referencia [1] asignado a la imagen P P16 que es el más cercano a la imagen objetivo (imagen B B15) en el eje de tiempo de visualización X llega a ser mayor que el índice de referencia [0] asignado a la imagen P P19 que está lejos de la imagen B B15, provocando degradación de la eficiencia de codificación.
La presente invención se hace para resolver los problemas descritos anteriormente y tiene para su objeto proporcionar un método de codificación de imágenes en movimiento que puede evitar una reducción en la eficiencia de codificación debida a un aumento en una distancia basada en el tiempo entre una imagen objetivo y una imagen de referencia y un método de decodificación de imágenes en movimiento que corresponde al método de codificación de imágenes en movimiento que puede evitar una reducción en la eficiencia de codificación.
Además, otro objeto de la presente invención es proporcionar un método de codificación de imágenes en movimiento que pueda asignar índices de referencia a las imágenes candidatas a las que se puede hacer referencia en la codificación predictiva, sin degradar la eficiencia de codificación, y un método de decodificación de imágenes en movimiento que corresponde al método de codificación de imágenes en movimiento que puede evitar la degradación en la eficiencia de codificación.
Descripción de la invención
Según la presente invención, se proporciona un aparato de codificación de imágenes en movimiento como se define en la reivindicación 1 y un método de codificación de imágenes en movimiento como se define en la reivindicación 2.
Breve descripción de los dibujos
La figura 1 es un diagrama de bloques para explicar un aparato de codificación de imágenes en movimiento según una primera realización de la presente invención.
Las figuras 2(a) y 2(b) son diagramas esquemáticos para explicar un método de codificación de imágenes en movimiento según la primera realización, en la que la figura 2(a) muestra imágenes dispuestas en orden de visualización y la figura 2(b) muestra imágenes dispuestas en orden de codificación.
La figura 3 es un diagrama esquemático para explicar el aparato de codificación de imágenes en movimiento según una primera realización y un aparato de decodificación de imágenes en movimiento según una segunda realización, que ilustra un método para gestionar colectivamente imágenes P y B en una memoria.
Las figuras 4(a) y 4(b) son diagramas para explicar la primera realización, que ilustran un primer ejemplo (4(a)) y un segundo ejemplo (4(b)) de codificación de modo directo (para la imagen B11).
Las figuras 5(a) y 5(b) son diagramas para explicar la primera realización, que ilustran un tercer ejemplo (5(a)) y un cuarto ejemplo (5(b)) de codificación de modo directo (para la imagen B11).
Las figuras 6(a)-6(c) son diagramas para explicar la primera realización, que ilustran un quinto ejemplo (6(a)) de codificación de modo directo (para la imagen B11), un bloque de salto (6(b)) y un identificador de salto (6(c)).
Las figuras 7(a) y 7(b) son diagramas para explicar la primera realización, que ilustran un primer ejemplo (7(a)) y un segundo ejemplo (7(b)) de codificación de modo directo (para la imagen B12).
Las figuras 8(a) y 8(b) son diagramas para explicar la primera realización, que ilustran un tercer ejemplo (8(a)) y un cuarto ejemplo (8(b)) de codificación de modo directo (para la imagen B12).
5
10
15
20
25
30
35
40
45
Las figuras 9(a) y 9(b) son diagramas para explicar la primera realización, que ilustran un primer ejemplo (9(a)) y un segundo ejemplo (9(b)) de codificación en los que se hace referencia a una imagen B colocada hacia delante de una imagen P hacia delante más cercana.
Las figuras 10(a) y 10(b) son diagramas para explicar la primera realización, que ilustran un primer ejemplo (10(a)) y un segundo ejemplo (10(b)) de codificación en los que no se hace referencia a una imagen B colocada hacia delante de una imagen I o P hacia delante más cercana.
La figura 11 es un diagrama para explicar la primera y segunda realizaciones, que ilustra un primer método para gestionar imágenes P e imágenes B en una memoria, separadamente unas de otras.
La figura 12 es un diagrama para explicar la primera y segunda realizaciones, que ilustra un segundo método para gestionar imágenes P e imágenes B en una memoria, separadamente unas de otras.
La figura 13 es un diagrama para explicar la primera y segunda realizaciones, que ilustra un tercer método para gestionar imágenes P e imágenes B en una memoria, separadamente unas de otras.
La figura 14 es un diagrama para explicar la primera y segunda realizaciones, que ilustra un cuarto método para gestionar imágenes P e imágenes B en una memoria, separadamente unas de otras.
La figura 15 es un diagrama de bloques para explicar un aparato de decodificación de imágenes en movimiento según la segunda realización de la invención.
Las figuras 16(a) y 16(b) son diagramas esquemáticos para explicar un método de decodificación de imágenes en movimiento según la segunda realización, en las que la figura 16(a) muestra imágenes dispuestas en orden de decodificación y la figura 16(b) muestra imágenes dispuestas en orden de visualización.
La figura 17 es un diagrama para explicar la segunda realización, que ilustra decodificación predictiva bidireccional (para la imagen B11)
Las figuras 18(a) y 18(b) son diagramas para explicar la segunda realización, que ilustran un primer ejemplo (18(a)) y un segundo ejemplo (18(b)) de decodificación de modo directo (para la imagen B11).
Las figuras 19(a) y 19(b) son diagramas para explicar la segunda realización, que ilustran un tercer ejemplo (19(a)) y un cuarto ejemplo (19(b)) de decodificación de modo directo (para la imagen B11).
La figura 20 es un diagrama para explicar la segunda realización, que ilustra decodificación predictiva bidireccional (para la imagen B12).
Las figuras 21(a) y 21 (b) son diagramas para explicar la segunda realización, que ilustran un primer ejemplo (21(a)) y un segundo ejemplo (21 (b)) de decodificación de modo directo (para la imagen B12).
Las figuras 22(a) y 22(b) son diagramas para explicar la segunda realización, que ilustran un tercer ejemplo (22(a)) y un cuarto ejemplo (22(b)) de decodificación de modo directo (para la imagen B12).
La figura 23 es un diagrama de bloques para explicar un aparato de codificación de imágenes en movimiento según una tercera realización de la invención.
La figura 24 es un diagrama esquemático para explicar el aparato de codificación de imágenes en movimiento según la tercera realización, que ilustra un método para gestionar imágenes P y B colectivamente en una memoria.
Las figuras 25(a) y 25(b) son diagramas para explicar la tercera realización, que ilustran un caso en el que la decodificación de una imagen B inmediatamente después de una imagen P no se lleva a cabo (25(a)) y un caso en el que no se decodifica una imagen predeterminada.
La figura 26 es un diagrama de bloques para explicar un aparato de decodificación de imágenes en movimiento según una cuarta realización de la invención.
La figura 27 es un diagrama de bloques para explicar un aparato de codificación de imágenes en movimiento según una quinta realización de la invención.
La figura 28 es un diagrama para explicar la quinta realización, que ilustra un método para gestionar una memoria de imágenes y un método para asignar índices de imágenes de referencia.
Las figuras 29(a) y 29(b) son diagramas para explicar la quinta realización, que ilustran imágenes dispuestas en orden de visualización (29(a)') e imágenes dispuestas en orden de codificación.
La figura 30 es un diagrama para explicar la quinta realización, que ilustra un método para gestionar una memoria de imágenes y un método para asignar índices de imágenes de referencia.
5
10
15
20
25
30
35
40
45
La figura 31 es un diagrama para explicar la quinta realización, que ilustra una estructura de datos de un flujo de bits que corresponde a un bloque en un caso en el que se usan dos sistemas de índices de imágenes de referencia.
La figura 32 es un diagrama de bloques para explicar un aparato de decodificación de imágenes en movimiento según una sexta realización de la presente invención.
La figura 33 es un diagrama de bloques para explicar un aparato de codificación de imágenes en movimiento según una séptima realización de la invención.
Las figuras 34(a) y 34(b) son diagramas esquemáticos para explicar un método de codificación de imágenes en movimiento según la séptima realización, que ilustran imágenes dispuestas en orden de visualización (34(a)) e imágenes dispuestas en orden de codificación (34(b)).
La figura 35 es un diagrama de bloques para explicar un aparato de decodificación de imágenes en movimiento según una octava realización de la invención.
Las figuras 36(a) y 36(b) son diagramas esquemáticos para explicar un método de decodificación de imágenes en movimiento según la octava realización, que ilustran imágenes dispuestas en orden de decodificación (36(a)) e imágenes dispuestas en orden de visualización (36(b)).
La figura 37 es un diagrama para explicar la octava realización, que ilustra un método para gestionar una memoria de imágenes.
Las figuras 38(a) y 38(b) son diagramas que ilustran un medio de almacenamiento que contiene un programa para implementar los aparatos según las realizaciones respectivas con software y la figura 38(c) es un diagrama que ilustra un sistema informático que usa el medio de almacenamiento.
La figura 39 es un diagrama para explicar aplicaciones de los métodos de codificación y métodos de decodificación de imágenes en movimiento según las realizaciones respectivas, que ilustra un sistema de suministro de contenidos que realiza servicios de distribución de contenidos.
La figura 40 es un diagrama para explicar un teléfono portátil que utiliza los métodos de codificación y métodos de decodificación de imágenes en movimiento según las realizaciones respectivas.
La figura 41 es un diagrama de bloques que ilustra una construcción específica del teléfono portátil mostrado en la figura 40.
La figura 42 es un diagrama conceptual que ilustra un sistema para difusión digital que utiliza los métodos de codificación y métodos de decodificación de imágenes en movimiento según las realizaciones respectivas.
Las figuras 43(a)-43(c) son diagramas para explicar un método de codificación de imágenes en movimiento convencional, que ilustran una disposición de imágenes que constituyen una imagen en movimiento (43(a)), un segmento obtenido dividiendo una imagen (43(b)) y un macrobloque (43(c)).
La figura 44 es un diagrama para explicar datos codificados de una imagen en movimiento ordinaria, que ilustra estructuras de flujos que se obtienen codificando imágenes que constituyen una imagen en movimiento.
La figura 45 es un diagrama para explicar un método de codificación de imágenes en movimiento convencional tal como MPEG, que ilustra las relaciones entre imágenes objetivo e imágenes a ser referidas cuando se codifican las imágenes objetivo.
Las figuras 46(a) y 46(b) son diagramas para explicar la codificación de modo directo convencional, que ilustran vectores de movimiento usados en el modo directo (46(a)) y posiciones relativas de imágenes a bloques (46(b)).
Las figuras 47(a) y 47(b) son diagramas para explicar un método convencional para asignar índices de imágenes de referencia, que ilustran índices de referencia a ser asignados a imágenes candidatas a las cuales se hace referencia cuando se codifican imágenes P e imágenes B, respectivamente.
Las figuras 48(a) y 48(b) son diagramas para explicar un método de codificación de imágenes en movimiento convencional, que ilustran imágenes que constituyen una imagen en movimiento que se disponen en orden de visualización (48(a)) y aquellas imágenes dispuestas en orden de codificación (48(b)).
La figura 49 es un diagrama para explicar un método de codificación de imágenes en movimiento convencional, que ilustra un ejemplo de gestión de una memoria de cuadro para las imágenes dispuestas en orden de codificación.
Las figuras 50(a) y 50(b) son diagramas para explicar problemas del método de codificación predictiva entre imágenes convencional, que ilustran un caso en el que se lleva a cabo una referencia bidireccional (50(a)) y un caso en el que se hace referencia hacia atrás a dos imágenes (50(b)).
5
10
15
20
25
30
35
40
45
50
55
Las figuras 51(a) y 51(b) son diagramas para explicar problemas del método convencional de asignación de índices de imágenes de referencia, que ilustran imágenes dispuestas en orden de visualización (51(a)) e imágenes dispuestas en orden de codificación (51(b)).
Mejor modo para ejecutar la invención
[Realización 1]
La figura 1 es un diagrama de bloques para explicar un aparato de codificación de imágenes en movimiento 10 según una primera realización de la presente invención.
El aparato de codificación de imágenes en movimiento 10 según esta primera realización divide cada una de las imágenes plurales que constituyen una imagen en movimiento en unidades (bloques) de procesamiento de datos predeterminados y codifica datos de imagen de cada imagen para cada bloque.
Para ser específicos, el aparato de codificación de imágenes en movimiento 10 incluye una memoria de imágenes de entrada (en lo sucesivo también referida como una memoria de cuadro) 101 para contener datos de imagen (datos de entrada) Id de imágenes introducidas y sacar los datos almacenados Id para cada bloque; una unidad de cálculo de diferencia 102 para calcular datos de diferencia entre datos de imagen Md de un bloque objetivo a ser codificados, que se sacan de la memoria de cuadro 101 y datos de predicción Pd del bloque objetivo, como datos de error de predicción PEd del bloque objetivo; y una unidad de codificación de error de predicción 103 para codificar de manera compresiva los datos de imagen Md del bloque objetivo o los datos de error de predicción PEd. En la memoria de cuadro 101, un proceso de reordenación de los datos de imagen de las imágenes respectivas introducidos en orden de visualización a aquellos en orden de codificación de imagen se lleva a cabo sobre la base de la relación entre cada imagen objetivo y una imagen a ser referida (imagen de referencia) en la codificación predictiva de la imagen objetivo.
El aparato de codificación de imágenes en movimiento 10 incluye además una unidad de decodificación de error de predicción 105 para decodificar de manera expandible los datos de salida (datos codificados) Ed a partir de la unidad de codificación de error de predicción 103 para sacar datos de diferencia decodificados PDd del bloque objetivo; una unidad de adición 106 para añadir los datos de diferencia decodificados PDd del bloque objetivo y los datos de predicción Pd del bloque objetivo para sacar datos decodificados Dd del bloque objetivo; y una memoria de imágenes de referencia (en lo sucesivo también referida como una memoria de cuadro) 117 para contener los datos decodificados Dd según una señal de control de memoria Cd2 y sacar los datos decodificados Dd almacenados, como datos Rd de candidatas (imágenes candidatas) de imágenes a ser referidos cuando se codifica el bloque objetivo.
El aparato de codificación de imágenes en movimiento 10 incluye además una unidad de detección de vector de movimiento 108 para detectar un vector de movimiento MV del bloque objetivo, sobre la base de los datos de salida (datos de imagen del bloque objetivo) Md de la memoria de cuadro 101 y los datos de salida (datos de imagen candidata) Rf de la memoria de cuadro 117; y una unidad de selección de modo 109 para determinar un modo de codificación adecuado al bloque objetivo sobre la base del vector de movimiento MV del bloque objetivo y los datos de salida Md y Rd de las memorias de cuadro 101 y 117 respectivas, y sacar una señal de control de conmutación Cs2. La unidad de detección de vector de movimiento 108 realiza detección de movimiento para detectar el vector de movimiento antes mencionado con referencia a imágenes candidatas plurales a las que se puede hacer referencia en la codificación predictiva para el bloque objetivo. Además, la unidad de selección de modo 109 selecciona un modo de codificación para el bloque objetivo de entre los modos de codificación plurales, cuyo modo de codificación proporciona una eficiencia de codificación óptima. Cuando se selecciona codificación predictiva entre imágenes, se selecciona una imagen óptima de entre las imágenes candidatas plurales a las que se puede hacer referencia.
En el aparato de codificación de imágenes en movimiento 10 según la primera realización, para una imagen P (es decir, una imagen a la cual hace referencia una imagen ya codificada cuando un bloque en esta imagen se somete a codificación predictiva), se selecciona uno de los siguientes modos de codificación: modo de codificación entre imágenes, modo de codificación predictiva entre imágenes usando un vector de movimiento y modo de codificación predictiva entre imágenes no usando un vector de movimiento (es decir, el vector de movimiento se considera como 0). Además, para una imagen B (es decir, una imagen para la cual dos imágenes ya codificadas hacen referencia cuando un bloque en esta imagen se somete a la codificación predictiva), se selecciona uno de los siguientes modos de codificación: modo de codificación entre imágenes, modo de codificación predictiva entre imágenes usando un vector de movimiento hacia delante, modo de codificación predictiva entre imágenes usando una imagen de movimiento hacia atrás, modo de codificación predictiva entre imágenes usando vectores de movimiento bidireccionales y modo directo. Además, en esta primera realización, cuando un bloque en la imagen B se codifica en el modo directo, se hace referencia a una imagen ya codificada que se coloca justo anterior a la imagen objetivo en el eje de tiempo de visualización.
Además, el aparato de codificación de imágenes en movimiento 10 incluye un conmutador de selección 111 colocado entre la memoria de cuadro 101 y la unidad de cálculo de diferencia 102; un conmutador de selección 112
5
10
15
20
25
30
35
40
45
50
55
colocado entre la unidad de cálculo de diferencia 102 y la unidad de codificación de error de predicción 103; un conmutador de ENCENDIDO/APAGADO 113 colocado entre la memoria de cuadro 101 y la unidad de selección de modo 109 y la unidad de detección de vector de movimiento 108; un conmutador de eNcENDIDO/APAGADO 114 colocado entre la unidad de selección de modo 109 y la unidad de adición 106; y un conmutador de ENCENDIDO/APAGADO 115 colocado entre la unidad de codificación de error de predicción 103 y la unidad de decodificación de error de predicción 105.
Por otra parte, el aparato de codificación de imágenes en movimiento 10 incluye una unidad de control de codificación 110 para controlar las operaciones de ENCENDIDO/APAGADO de los conmutadores 113~115 según una señal de control de conmutación Cs1 y sacar una señal de control de generación de código Cd1 y una señal de control de memoria Cd2; y una unidad de generación de flujo de bits 104 para realizar codificación de longitud variable para los datos de salida (datos codificados) Ed de la unidad de codificación de error de predicción 103 sobre la base de la señal de control de generación de código Cd1 para sacar un flujo de bits Bs que corresponde al bloque objetivo. La unidad de generación de flujo de bits 104 se suministra con el vector de movimiento MV detectado por la unidad de detección de vector de movimiento 108 y la información que indica el modo de codificación Ms determinado por la unidad de selección de modo 109. El flujo de bits Bs que corresponde al bloque objetivo incluye el vector de movimiento MV que corresponde al bloque objetivo y la información que indica el modo de codificación Ms.
El conmutador de selección 111 tiene un terminal de entrada Ta y dos terminales de salida Tb1 y Tb2 y el terminal de entrada Ta se conecta a uno de los terminales de salida Tb1 y Tb2 según la señal de control de conmutación Cs2. El conmutador de selección 112 tiene dos terminales de entrada Tc1 y Tc2 y un terminal de salida Td y el terminal de salida Td se conecta a uno de los terminales de entrada Tc1 y Tc2 según la señal de control de conmutación Cs2. Además, en el conmutador de selección 111, los datos de imagen Md sacados de la memoria de cuadro 101 se aplican al terminal de entrada Ta y los datos de imagen Md se sacan a través de un terminal de salida Tb1 al terminal de entrada Tc1 del conmutador de selección 112 mientras que los datos de imagen Md se sacan a través del otro terminal de salida Tb2 a la unidad de cálculo de diferencia 102. En el conmutador de selección 112, los datos de imagen Md de la memoria de cuadro 101 se aplican a un terminal de entrada Tc1 mientras que los datos de diferencia PEd obtenidos en la unidad de cálculo de diferencia 102 se aplican al otro terminal de entrada Tc2 y o bien los datos de imagen Md o bien los datos de diferencia PEd se sacan a través del terminal de salida Td a la unidad de codificación de error de predicción 103.
A continuación, se describirá la operación.
En las siguientes descripciones de las realizaciones respectivas, se hace referencia a una imagen (imagen hacia delante) cuyo tiempo de visualización es anterior al de una imagen a ser codificada (imagen objetivo) como una imagen que se coloca en cuanto al tiempo hacia delante de la imagen objetivo o simplemente como una imagen que se coloca hacia delante de la imagen objetivo. Además, se hace referencia a una imagen (imagen hacia atrás) cuyo tiempo de visualización es posterior que el de la imagen objetivo como una imagen que se coloca en cuanto al tiempo hacia atrás de la imagen objetivo o simplemente como una imagen que se coloca hacia atrás de la imagen objetivo. Además, en las siguientes descripciones de las realizaciones respectivas, “en cuanto al tiempo” significa “en orden de tiempos de visualización” a menos que se especifique de otro modo.
En el aparato de codificación de imágenes en movimiento 10 según la primera realización, los datos de imagen de entrada Id se introducen en la memoria de cuadro 101 en unidades de imágenes según el orden de tiempos de visualización.
La figura 2(a) es un diagrama para explicar el orden en que los datos de imagen de las imágenes respectivas se almacenan en la memoria de cuadro 101. En la figura 2(a), las líneas verticales indican imágenes. En cuanto a un símbolo en el lado inferior derecho de cada imagen, la primera letra del alfabeto indica un tipo de imagen (I, P o B) y el siguiente número indica un número de imagen en orden de tiempo. Es decir, las imágenes P1, B2, B3, P4, B5, B6, P7, B8, B9, P10, B11, B12, P13, B14, B15 y P16 mostradas en la figura 2(a) corresponden a las imágenes F(k+3)~F(k+18) [k=-2] mostradas en la figura 45 y estas imágenes se disponen en orden de visualización, es decir, desde una que tiene un tiempo de visualización anterior a lo largo del eje de tiempo de visualización X.
Los datos de imagen de las imágenes se almacenan en la memoria de cuadro 101 en orden de visualización de imágenes. Los datos de imagen de las imágenes almacenados en la memoria de cuadro 101, que se disponen en orden de visualización de imágenes, se reordenan en orden de codificación de imágenes. En lo sucesivo, por simplificación, se hace referencia a los datos de imagen de cada imagen simplemente como una imagen.
Para ser específicos, el proceso de reordenación de las imágenes almacenadas en la memoria de cuadro 101 de orden de entrada (orden de visualización) al orden de codificación se lleva a cabo sobre la base de las relaciones entre imágenes objetivo e imágenes de referencia en codificación predictiva entre imágenes. Es decir, este proceso de reordenación se lleva a cabo de manera que una segunda imagen a ser usada como una imagen de referencia cuando se codifica una primera imagen se codifica anterior a la primera imagen.
5
10
15
20
25
30
35
40
45
50
55
Cuando se codifica una imagen P, tres imágenes (imágenes I o P) que se colocan cerca de y en cuanto al tiempo hacia delante de la imagen objetivo a ser codificada (imagen P) se usan como imágenes candidatas para una imagen de referencia. En la codificación predictiva para un bloque en la imagen P, se hace referencia a una de las tres imágenes candidatas como máximo.
Además, cuando se codifica una imagen B, dos imágenes (imagen I o P) que se colocan cerca de y en cuanto al tiempo hacia delante de la imagen objetivo (imagen B), una imagen B que se coloca la más cercana a y en cuanto al tiempo hacia delante de la imagen objetivo y una imagen I o P que se coloca en cuanto al tiempo hacia atrás de la imagen objetivo, se usan como imágenes candidatas para una imagen de referencia. En la codificación predictiva para un bloque en la imagen B, se hace referencia a dos de las cuatro imágenes candidatas como máximo.
Para ser específicos, las correspondencias entre las imágenes P10, B11, B12 y P13 y las imágenes candidatas para imágenes de referencia que corresponden a las imágenes respectivas se muestran mediante flechas en la figura 2(a). Es decir, cuando se codifica la imagen P P10, las imágenes P1, P4 y P7 se usan como imágenes candidatas para una imagen de referencia. Cuando se codifica la imagen P P13, las imágenes P4, P7 y P10 se usan como imágenes candidatas para una imagen de referencia. Además, cuando se codifica la imagen B B11, las imágenes P7, B9, P10 y P13 se usan como imágenes candidatas para una imagen de referencia. Cuando se codifica la imagen B B12, las imágenes P7, P10, B11 y P13 se usan como imágenes candidatas para una imagen de referencia.
La Figura 2(b) muestra las imágenes en orden de codificación, que se obtienen reordenando las imágenes P1~P16 mostradas en la figura 2(a) de orden de visualización a orden de codificación. Después de la reordenación, como se muestra en la figura 2(b) las imágenes mostradas en la figura 2(a) se disponen desde una que tiene un tiempo de codificación anterior en el eje de tiempo Y que indica los tiempos de codificación (eje de tiempo de codificación), es decir, las imágenes se disponen en orden de P4, B2, B3, P7, B5, B6, P10, B8, B9, P13, B11, B12 y P16.
Los datos de las imágenes reordenadas en la memoria de cuadro 101 se leen sucesivamente, para cada unidad de procesamiento de datos predeterminados, desde una que tiene un tiempo de codificación anterior. En esta primera realización, la unidad de procesamiento de datos predeterminada es una unidad de datos en la que se lleva a cabo compensación de movimiento y, más específicamente, es un espacio de imagen rectangular (macrobloque) en el que se disponen 16 píxeles tanto en la dirección horizontal como en la dirección vertical. En la siguiente descripción, también se hace referencia a un macrobloque simplemente como un bloque.
En lo sucesivo, los procesos de codificación de las imágenes P13, B11 y B12 se describirán en este orden.
<Proceso de codificación para la imagen P13>
Inicialmente, se describirá el proceso de codificación para la imagen P13.
Dado que la imagen P13 a ser codificada (imagen objetivo) es una imagen P, como una codificación predictiva entre imágenes para un bloque objetivo en la imagen P13, se lleva a cabo una codificación predictiva entre imágenes unidireccional en la que se hace referencia a una imagen ya codificada que se coloca en cuanto al tiempo hacia delante o hacia atrás de la imagen objetivo.
En la siguiente descripción, una imagen P que se coloca hacia delante de la imagen objetivo se usa como una imagen de referencia.
En este caso, la codificación predictiva entre imágenes que usa una referencia hacia delante se lleva a cabo como un proceso de codificación para la imagen P13. Además, las imágenes B no se usan como imágenes de referencia en la codificación de imágenes P. Por consiguiente, tres imágenes I o P hacia delante se usan como imágenes candidatas para una imagen de referencia, más específicamente, se usan las imágenes P4, P7 y P10. La codificación de estas imágenes candidatas ya se ha completado cuando se codifica la imagen objetivo, y los datos (datos decodificados) Dd que corresponden a las imágenes candidatas se almacenan en la memoria de cuadro 101.
Cuando se codifica una imagen P, la unidad de control de codificación 110 controla los conmutadores respectivos con la señal de control de conmutación Cs1 de manera que los conmutadores 113, 114 y 115 están en sus estados de ENCENDIDO. Los datos de imagen Md que corresponden al macrobloque en la imagen P13, que se leen desde la memoria de cuadro 101, se introducen en la unidad de detección de vector de movimiento 108, la unidad de selección de modo 109 y la unidad de cálculo de diferencia 102.
La unidad de detección de vector de movimiento 108 detecta el vector de movimiento MV del macrobloque en la imagen P13, usando los datos de imagen codificados Rd de las imágenes P4, P7 y P10 almacenadas en la memoria de cuadro 117. Entonces, el vector de movimiento MV detectado se saca a la unidad de selección de modo 109. La unidad de selección de modo 109 determina un modo de codificación para el bloque en la imagen P13, usando el vector de movimiento detectado por la unidad de detección de vector de movimiento 108. El modo de codificación indica un método para codificar el bloque. Por ejemplo, en el caso de la codificación de una imagen P, como se describió anteriormente, se selecciona un modo de codificación de entre la codificación dentro de una imagen, la codificación predictiva entre imágenes usando un vector de movimiento y la codificación predictiva entre imágenes
5
10
15
20
25
30
35
40
45
50
55
no usando un vector de movimiento (es decir, el movimiento se considera como 0). En la determinación de un modo de codificación, en general, se selecciona un modo de codificación que minimiza el error de codificación cuando una cantidad predeterminada de bits se da al bloque como una cantidad de códigos. En este caso, cuando se selecciona codificación predictiva entre imágenes, una imagen más adecuada se selecciona como una imagen de referencia de entre las imágenes P4, P7 y P10.
El modo de codificación Ms determinado por la unidad de selección de modo 109 se saca a la unidad de generación de flujo de bits 104. Además, cuando el modo de codificación determinado Ms es el modo de codificación que se refiere a una imagen hacia delante, un vector (vector de movimiento hacia delante) MVp que se obtiene mediante detección de movimiento con referencia a la imagen hacia delante así como información Rp que indica a cuál de las imágenes P4, P7 y P10 se hace referencia cuando se detecta el vector de movimiento, se saca también a la unidad de generación de flujo de bits 104.
Cuando el modo de codificación Ms determinado por la unidad de selección de modo 109 es el modo de codificación predictiva entre imágenes, el vector de movimiento MVp a ser usado en la codificación predictiva entre imágenes y la información Rp que indica a cuál de las imágenes P4, P7 y P10 se hace referencia cuando se detecta el vector de movimiento, se almacenan en la unidad de almacenamiento de vector de movimiento 116.
Además, la unidad de selección de modo 109 realiza compensación de movimiento según el modo de codificación determinado para el bloque objetivo, usando los vectores de movimiento que corresponden a la imagen de referencia y al bloque objetivo. Entonces, los datos de predicción Pd para el bloque objetivo, que se obtienen mediante la compensación de movimiento, se sacan a la unidad de cálculo de diferencia 102 y la unidad de adición 106.
No obstante, cuando se selecciona el modo de codificación dentro de una imagen, la unidad de selección de modo 109 no genera datos de predicción Pd. Además, cuando se selecciona el modo de codificación dentro de una imagen, el conmutador 111 se controla de manera que el terminal de entrada Ta se conecta al terminal de salida Tb1 y el conmutador 112 se controla de manera que el terminal de salida Td se conecta al terminal de entrada Tc1. Por otra parte, cuando se selecciona la codificación predictiva entre imágenes, el conmutador 111 se controla de manera que el terminal de entrada Ta se conecta al terminal de salida Tb2 y el conmutador 112 se controla de manera que el terminal de salida Td se conecta al terminal de entrada Tc2.
En lo sucesivo, se dará una descripción de un caso en el que se selecciona el modo de codificación predictivo entre imágenes como el modo de codificación Ms.
La unidad de cálculo de diferencia 102 se suministra con los datos de imagen Md del bloque objetivo en la imagen P13 y los datos de predicción Pd correspondientes de la unidad de selección de modo 109. La unidad de cálculo de diferencia 102 calcula datos de diferencia entre los datos de imagen del bloque de la imagen P13 y los datos predictivos Pd correspondientes y saca los datos de diferencia como datos de error de predicción PEd.
Los datos de error de predicción PEd se introducen en la unidad de codificación de error de predicción 103. La unidad de codificación de error de predicción 103 somete los datos de error de predicción PEd introducidos a procesos de codificación tales como conversión de frecuencia y cuantificación para generar datos codificados Ed. Los procesos tales como conversión de frecuencia y cuantificación se llevan a cabo en unidades de datos que corresponden a un espacio de imagen rectangular (subbloque) en el que ocho píxeles se disponen tanto en la dirección horizontal como en la dirección vertical.
Los datos codificados Ed sacados de la unidad de codificación de error de predicción 103 se introducen a la unidad de generación de flujo de bits 104 y la unidad de decodificación de error de predicción 105.
La unidad de generación de flujo de bits 104 genera un flujo de bits sometiendo los datos codificados Ed introducidos a codificación de longitud variable. Además, la unidad de generación de flujo de bits 104 añade, al flujo de bits, información tal como el vector de movimiento MVp y el modo de codificación Ms, información de cabecera suministrada desde la unidad de control de codificación 110 y similares, generando por ello un flujo de bits Bs.
Cuando el modo de codificación es uno que realiza una referencia hacia delante, información (información de imagen de referencia) Rp que indica a cuál de las imágenes P4, P7 y P10 se hace referencia cuando se detecta el vector de movimiento hacia delante también se añade al flujo de bits.
A continuación, se dará una descripción de un método para gestionar la memoria de cuadro y la información que indica una imagen de referencia entre imágenes candidatas (información de imagen de referencia).
La figura 3 es un diagrama que ilustra cómo cambian con el tiempo las imágenes almacenadas en la memoria de imágenes de referencia (memoria de cuadro) 117. La gestión de esta memoria de cuadro 117 se lleva a cabo según la señal de control de memoria Cd2 de la unidad de control de codificación 110. Además, la memoria de cuadro 117 tiene áreas de memoria (#1)~(#5) para cinco imágenes. Cada área de memoria puede contener datos de imagen que corresponden a una imagen. No obstante, cada área de memoria no es necesariamente un área en una memoria de cuadro, puede ser una memoria.
5
10
15
20
25
30
35
40
45
50
55
Inicialmente, se describirá un método para gestionar la memoria de cuadro (memoria de imágenes de referencia).
Cuando se inicia la codificación de una imagen P13, las imágenes B8, P4, P7, P10 y B9 se almacenan en las áreas de memoria (#1)~(#5) respectivas en la memoria de cuadro 117, respectivamente. Aunque la imagen B9 no se usa para codificar la imagen P13, la imagen B9 se almacena en la memoria de cuadro 117 debido a que se usa para codificar la imagen B11. La imagen P13 se codifica usando las imágenes P4, P7 y P10 como imágenes candidatas para una imagen de referencia. La imagen codificada P13 se almacena en el área de memoria (#1) en la que se había almacenado la imagen P8. La razón es la siguiente. Aunque las imágenes P4, P7, P10 y B9 se usan como imágenes candidatas para una imagen de referencia cuando se codifica la imagen P13 y las imágenes siguientes, la imagen B8 no se usa como una imagen de referencia cuando se codifican estas imágenes. En la figura 3, cada imagen en un círculo es una imagen (imagen objetivo) que se almacena finalmente en la memoria de cuadro 117 cuando se ha completado la codificación de la imagen objetivo.
A continuación, se dará una descripción de un método para asignar un índice de imagen de referencia específico como información de imagen de referencia, a cada imagen candidata.
El índice de imagen de referencia es información que indica cuál de las imágenes candidatas plurales para una imagen de referencia se usa como una imagen de referencia cuando se codifica cada bloque. En otras palabras, el índice de imagen de referencia es información que indica cuál de las imágenes candidatas P4, P7 y P10 para una imagen de referencia se usa cuando se detecta el vector de movimiento del bloque objetivo en la imagen objetivo (imagen P13). Como para la asignación de índices de imágenes de referencia, un método para asignar sucesivamente los índices a las imágenes candidatas respectivas, comenzando desde una imagen candidata que es en cuanto al tiempo la más cercana a la imagen objetivo.
Para ser específicos, cuando la imagen P10 se designa como una imagen de referencia en la codificación del bloque objetivo en la imagen objetivo P13, información que indica que una imagen candidata justo anterior a la imagen objetivo P13 se designa como una imagen de referencia (índice de imagen de referencia [0]) se añade en el flujo de bits de la imagen objetivo P13. Cuando se hace referencia a la imagen P7 en la codificación del bloque en la imagen objetivo P13, información que indica que una imagen candidata dos imágenes anterior a la imagen objetivo P13 se designa como una imagen de referencia (índice de imagen de referencia [1]) se añade en el flujo de bits de la imagen objetivo P13. Cuando se hace referencia a la imagen P4 en la codificación del bloque en la imagen objetivo P13, información que indica que una imagen candidata tres imágenes anteriores a la imagen objetivo P13 se designa como una imagen de referencia (índice de imagen de referencia [2]) se añade en el flujo de bits de la imagen objetivo P13.
En la figura 3, una imagen a la que se asigna un código [b] como información de imagen de referencia será una candidata para una imagen de referencia hacia atrás cuando se codifica la imagen objetivo.
<Proceso de codificación para la imagen B11>
A continuación, se describirá el proceso de codificación para la imagen B11.
Dado que la imagen a ser codificada (imagen objetivo) es la imagen B11, la codificación predictiva entre imágenes a ser realizada para un bloque objetivo de la imagen B11 es codificación predictiva entre imágenes bidireccional en la que se hace referencia a dos imágenes ya codificadas que están en cuanto al tiempo hacia delante o hacia atrás de las imágenes objetivo.
En lo sucesivo, se dará una descripción de un caso en el que una imagen (imagen I, imagen P o imagen B) colocada hacia delante de la imagen objetivo y una imagen (imagen I o imagen P) colocada hacia atrás de la imagen objetivo se usan como imágenes de referencia.
Es decir, en este caso, como imágenes de referencia hacia delante, se usan dos imágenes (imágenes I o P) colocadas en cuanto al tiempo cerca de la imagen objetivo (imagen B11) y una imagen B colocada en cuanto al tiempo la más cercana a la imagen objetivo. Además, como una imagen de referencia hacia atrás, se usa una imagen I o P colocada en cuanto al tiempo la más cercana a la imagen objetivo. Por consiguiente, en este caso, imágenes candidatas para una imagen de referencia para la imagen B11 son las imágenes P7, B9 y P10 (imágenes hacia delante) y la imagen P13 (imagen hacia atrás).
En la codificación de una imagen B a ser usada como una imagen de referencia cuando se codifica otra imagen, la unidad de control de codificación 110 controla los conmutadores respectivos con la señal de control de conmutación Cs1 de manera que los conmutadores 113, 114 y 115 estén ENCENDIDOS. Dado que la imagen B11 va a ser usada como una imagen de referencia cuando se codifica otra imagen, la unidad de control de codificación 110 controla los conmutadores respectivos con la señal de control de conmutación Cs2 de manera que los conmutadores 113, 114 y 115 están ENCENDIDOS. Los datos de imagen Md que corresponden al bloque en la imagen B11, que se lee desde la memoria de cuadro 101, se introducen en la unidad de detección de vector de movimiento 108, la unidad de selección de modo 109 y la unidad de cálculo de diferencia 102.
La unidad de detección de vector de movimiento 108 detecta un vector de movimiento hacia delante y un vector de movimiento hacia atrás del bloque objetivo en la imagen B11. En la detección de estos vectores de movimiento, las imágenes P7, B9 y P10 almacenadas en la memoria de cuadro 117 se usan como imágenes de referencia hacia delante y la imagen P13 se usa como una imagen de referencia hacia atrás. La detección de un vector de 5 movimiento hacia atrás se lleva a cabo en base a la imagen P13 como imagen de referencia hacia atrás. Los vectores de movimiento detectados por la unidad de detección de vector de movimiento 108 se sacan a la unidad de selección de modo 109.
La unidad de selección de modo 109 determina un modo de codificación para el bloque objetivo en la imagen B11, usando los vectores de movimiento detectados por la unidad de detección de vector de movimiento 108. Por 10 ejemplo, un modo de codificación para la imagen B B11 se selecciona de entre el modo de codificación dentro de una imagen, el modo de codificación predictiva entre imágenes usando un vector de movimiento hacia delante, el modo de codificación predictiva entre imágenes usando una imagen de movimiento hacia atrás, el modo de codificación predictiva entre imágenes usando vectores de movimiento bidireccionales, y el modo directo. Cuando el modo de codificación es codificación predictiva entre imágenes usando un vector de movimiento hacia delante, se 15 selecciona una imagen más adecuada como imagen de referencia de entre las imágenes P7, B9 y P10.
En lo sucesivo, se describirá un proceso de codificación de los bloques en la imagen B11 por el modo directo.
[Primer ejemplo de codificación de modo directo]
La figura 4(a) muestra un primer ejemplo de codificación de modo directo para un bloque (bloque objetivo) BLa1 en la imagen (imagen objetivo) B11. Esta codificación de modo directo utiliza un vector de movimiento (vector de 20 movimiento base) MVc1 de un bloque (bloque base) BLb1 que se incluye en la imagen (imagen base) P13 como una imagen de referencia colocada hacia atrás de la imagen B11 y se sitúa en la misma posición que el bloque objetivo BLa1. El vector de movimiento MVc1 es un vector de movimiento que se usa cuando se codifica el bloque BLb1 en la imagen P13 y se almacena en la unidad de almacenamiento de vector de movimiento 116. Este vector de movimiento MVc1 se detecta con referencia a la imagen P10 e indica un área CRc1 en la imagen P10, cuya área 25 corresponde al bloque BLb1. El bloque BLa1 se somete a codificación predictiva bidireccional, usando los vectores de movimiento MVd1 y MVe1 que son paralelos al vector de movimiento MVc1 y las imágenes P10 y P13 que se seleccionan como imágenes de referencia. Los vectores de movimiento MVd1 y MVe1 que se usan en la codificación del bloque BLa1 son un vector de movimiento hacia delante que indica un área CRd1 en la imagen P10, que corresponde al bloque BLa1 y un vector de movimiento hacia atrás que indica un área CRe1 en la imagen P13, 30 que corresponde al bloque BLa1, respectivamente.
En este caso, la magnitud MVF del vector de movimiento hacia delante MVd1 y la magnitud MVB del vector de movimiento hacia atrás MVe1 se obtienen mediante las fórmulas (1) y (2) como sigue.
MVF = MVR X TRF/TRD ... (1)
MVB = (TRB - TRD) X MVR/TRD ... (2)
35 donde MVF y MVB representan la componente horizontal y la componente vertical de los vectores de movimiento, respectivamente.
Además, MVR es la magnitud del vector de movimiento MVc1 (una dirección en un espacio bidimensional se expresa por un signo) y TRD es la distancia basada en el tiempo entre la imagen de referencia hacia atrás (imagen P13) para la imagen objetivo (imagen B11) y la imagen P10 a la que se hace referencia cuando se codifica el bloque 40 BLb1 en la imagen de referencia hacia atrás (imagen P13). Además, TRF es la distancia basada en el tiempo entre la imagen objetivo (imagen B11) y la imagen de referencia justo anterior (imagen P10) y TRB es la distancia basada en el tiempo entre la imagen objetivo (imagen B11) y la imagen P10 a la que se hace referencia cuando se codifica el bloque BLb1 en la imagen de referencia hacia atrás (imagen P13).
[Segundo ejemplo de codificación de modo directo]
45 A continuación, se describirá un segundo ejemplo de codificación de modo directo.
La figura 4(b) muestra un segundo ejemplo de un proceso para codificar un bloque (bloque objetivo) BLa2 en la imagen (imagen objetivo) B11 por el modo directo.
Esta codificación de modo directo utiliza un vector de movimiento (vector de movimiento base) MVf2 de un bloque (bloque base) BLb2 que se incluye en la imagen (imagen base) P13 como una imagen de referencia colocada hacia 50 atrás de la imagen B11 y se sitúa en la misma posición que el bloque objetivo BLa2. El vector de movimiento MVf2 es un vector de movimiento que se usa cuando se codifica el bloque BLb2 y se almacena en la unidad de almacenamiento de vector de movimiento 116. Este vector de movimiento MVf2 se detecta con referencia a la imagen P7 e indica un área CRf2 en la imagen P7, cuya área corresponde al bloque BLb2. El bloque BLa2 se somete a codificación predictiva bidireccional, usando vectores de movimiento MVg2 y MVh2 que son paralelos al 55 vector de movimiento MVf2 y las imágenes P10 y P13 las cuales se seleccionan como imágenes de referencia. Los
5
10
15
20
25
30
35
40
45
50
vectores de movimiento MVg2 y MVh2 los cuales se usan en la codificación del bloque BLa2 son un vector de movimiento hacia delante que indica un área CRg2 en la imagen P10, que corresponde al bloque BLa2 y un vector de movimiento hacia atrás que indica un área CRh2 en la imagen P13, que corresponde al bloque BLa2, respectivamente.
En este caso, las magnitudes MVF y MVB de los vectores de movimiento MVg2 y MVh2 se obtienen mediante las fórmulas anteriormente descritas (1) y (2), respectivamente.
Como se describió anteriormente, en el modo directo, el vector de movimiento MVf2 del bloque BLb2, que se incluye en la imagen a ser usada como una imagen de referencia hacia atrás cuando se codifica el bloque objetivo BLa2 y se sitúa relativamente en la misma posición que el bloque objetivo, se escala, obteniendo por ello el vector de movimiento hacia delante MVg2 y el vector de movimiento hacia atrás MVh2 para el bloque objetivo. Por lo tanto, cuando se selecciona el modo directo, no es necesario enviar información del vector de movimiento del bloque objetivo. Además, dado que la imagen ya codificada que se coloca en cuanto al tiempo la más cercana a la imagen objetivo se usa como una imagen de referencia hacia delante, se puede mejorar la eficiencia de predicción.
[Tercer ejemplo de codificación de modo directo]
A continuación, se describirá un tercer ejemplo de codificación de modo directo.
La figura 5 (a) muestra un tercer ejemplo de un proceso de codificación de un bloque (bloque objetivo) BLa3 en la imagen (imagen objetivo) B11 por el modo directo.
Esta codificación de modo directo utiliza un vector de movimiento (vector de movimiento base) MVc3 de un bloque (bloque base) BLb3 que se incluye en la imagen (imagen base) P13 que es una imagen de referencia hacia atrás para la imagen B11 y se sitúa en la misma posición que el bloque objetivo BLa3. El vector de movimiento MVc3 es un vector de movimiento que se usa cuando se codifica el bloque BLb3 y se almacena en la unidad de almacenamiento de vector de movimiento 116. Este vector de movimiento MVc3 se detecta con referencia a la imagen P7 e indica un área CRc3 en la imagen P7, cuya área corresponde al bloque BLb3. El bloque BLa3 se somete a codificación predictiva bidireccional, sobre la base de los vectores de movimiento MVd3 y MVe3 que son paralelos al vector de movimiento MVc3, la imagen a la que se hace referencia cuando se codifica el bloque BLb3 (la imagen P7 seleccionada como una imagen de referencia hacia delante) y la imagen P13 como una imagen de referencia hacia atrás. En este caso, los vectores de movimiento MVd3 y MVe3 que se usan en la codificación del bloque BLa3 son un vector de movimiento hacia delante que indica un área CRd3 en la imagen P7, que corresponde al bloque BLa3 y un vector de movimiento hacia atrás que indica un área CRe3 en la imagen P13, que corresponde al bloque BLa3, respectivamente.
Las magnitudes MVF y MVB de los vectores de movimiento MVd3 y MVe3 se obtienen mediante la siguiente formula (3) y la formula anteriormente descrita (2), respectivamente.
MVF = MVR X TRB/TRD ... (3)
donde MVR es la magnitud del vector de movimiento MVc3.
Como se describió anteriormente, en la codificación de modo directo mostrada en la figura 5(a), el vector de movimiento MVc3 del bloque BLb3, que se incluye en la imagen a ser usada como una imagen de referencia hacia atrás cuando se codifica el bloque objetivo y se sitúa relativamente en la misma posición que el bloque objetivo, se escala, obteniendo por ello el vector de movimiento hacia delante MVd3 y el vector de movimiento hacia atrás MVe4 para el bloque objetivo. Por lo tanto, cuando se selecciona el modo directo, no es necesario enviar información del vector de movimiento del bloque objetivo.
Cuando la imagen P13 a ser referida en la codificación del bloque BLb3 ya se ha borrado de la memoria de cuadro 117, la imagen de referencia hacia delante P10 que es en cuanto al tiempo la más cercana a la imagen objetivo se usa como una imagen de referencia hacia delante en el modo directo. La codificación de modo directo en este caso es idéntica a la mostrada en la figura 4(a) (primer ejemplo).
[Cuarto ejemplo de codificación de modo directo]
A continuación, se describirá un cuarto ejemplo de codificación de modo directo.
La figura 5(b) muestra un cuarto ejemplo de un proceso de codificación de un bloque (bloque objetivo) BLa4 en la imagen (imagen objetivo) B11 por el modo directo.
En este caso, el bloque objetivo BLa4 se somete a codificación predictiva bidireccional con un vector de movimiento que es 0, sobre la base de la imagen P10 más cercana que se selecciona como una imagen de referencia hacia delante y la imagen P13 como una imagen de referencia hacia atrás. Es decir, los vectores de movimiento MVf4 y MVh4 a ser usados para codificar el bloque BLa4 son un vector de movimiento que indica un área (bloque) CRf4 que se incluye en la imagen P10 y se sitúa relativamente en la misma posición que el bloque objetivo BLa4 y un vector
5
10
15
20
25
30
35
40
45
50
de movimiento que indica un área (bloque) CRh4 que se incluye en la imagen P13 y se sitúa relativamente en la misma posición que el bloque objetivo BLa4, respectivamente.
Como se describió anteriormente, en la codificación de modo directo mostrada en la figura 5(b), dado que el vector de movimiento del bloque objetivo se ajusta a la fuerza a 0, cuando se selecciona el modo directo, no es necesario enviar información del vector de movimiento del bloque objetivo y el escalado del vector de movimiento llega a ser innecesario, provocando una reducción de la complejidad de procesamiento de señal. Este método es aplicable a, por ejemplo, un caso en el que un bloque que se incluye en la imagen P13 como una imagen de referencia hacia atrás de la imagen B11 y se sitúa en la misma posición ya que el bloque BLa4 es un bloque que no tiene vector de movimiento como un bloque codificado dentro del cuadro. Por consiguiente, incluso cuando un bloque que se incluye en la imagen de referencia hacia atrás y se sitúa en la misma posición que el bloque objetivo se codifica sin un vector de movimiento, se puede mejorar la eficiencia de codificación usando el modo directo.
El procesamiento de modo directo anteriormente mencionado (primer al cuarto ejemplos) es aplicable no solamente cuando el intervalo de tiempos de visualización de imágenes es constante sino también cuando el intervalo de tiempos de visualización de imágenes es variable.
[Quinto ejemplo de codificación de modo directo]
A continuación, la codificación predictiva de modo directo a ser realizada cuando el intervalo de tiempos de visualización de imágenes es variable se describirá como un quinto ejemplo de codificación de modo directo.
La figura 6(a) es un diagrama para explicar un quinto ejemplo de una codificación de modo directo, en la que la codificación predictiva de modo directo (segundo ejemplo) se aplica al caso en que el intervalo de visualización de imágenes es variable.
En este caso, la codificación predictiva bidireccional para un bloque objetivo BLa5 en la imagen objetivo B11 se lleva a cabo usando un vector de movimiento (vector de movimiento base) MVf5 de un bloque (bloque base) BLb5 que se incluye en la imagen (imagen base) P13 como una imagen de referencia colocada hacia atrás de la imagen B11 y se sitúa en la misma posición que el bloque objetivo BLa5, de la misma manera que la codificación predictiva de modo directo (segundo ejemplo) mostrada en la figura 4(b). El vector de movimiento MVf5 es un vector de movimiento que se usa cuando se codifica el bloque BLb5 en la imagen P13 e indica un área CRf5 en la imagen P7, cuya área corresponde al bloque BLb5. Además, los vectores de movimiento MVg5 y MVh5 que corresponden al bloque objetivo son paralelos al vector de movimiento MVf5. Además, estos vectores de movimiento MVg5 y MVh5 son un vector de movimiento hacia delante que indica un área CRg5 en la imagen P10, que corresponde al bloque BLa5 y un vector de movimiento hacia atrás que indica un área CRh5 en la imagen P13, que corresponde al bloque BLa5, respectivamente.
También en este caso, las magnitudes MVF y MVB de los vectores de movimiento MVg5 y MVh5 se pueden obtener mediante las fórmulas anteriormente descritas (1) y (2), respectivamente, como en el procesamiento de modo directo del segundo ejemplo.
[Proceso de salto de bloque específico]
A continuación, se dará una descripción de codificación de modo directo en la que un bloque específico se trata como un bloque de salto.
Cuando los datos de diferencia que corresponden a un bloque objetivo llegan a ser cero en codificación de modo directo, la unidad de codificación de error de predicción 103 no genera datos codificados que corresponden al bloque objetivo y la unidad de generación de flujo de bits 104 no saca un flujo de bits que corresponde al bloque objetivo. De esta manera, un bloque cuyos datos de diferencia llegan a ser cero se trata como un bloque de salto.
En lo sucesivo, se describirá un caso en el que un bloque específico se trata como un bloque de salto.
La figura 6(b) muestra una imagen F específica como un componente de una imagen en movimiento.
En esta imagen F, entre bloques adyacentes MB(r-1)~MB(r+3), los valores de datos de diferencia (datos de error de predicción) que corresponden a los bloques MB(r-1), MB(r) y MB(r+3) no son cero, sino que los valores de datos de diferencia (datos de error de predicción) que corresponden a los bloques MB(r+1) y MB(r+2) que se colocan entre el bloque MB(r) y el bloque MB(r+3), son cero.
En este caso, los bloques MB(r+1) y MB(r+2) se tratan como bloques de salto en el modo directo y un flujo de bits Bs que corresponde a una imagen en movimiento no incluye flujos de bits que corresponden a los bloques MB(r+1) y MB(r+2).
La figura 6(c) es un diagrama para explicar una estructura de flujo en el caso en el que los bloques MB(r+1) y MB(r+2) se tratan como bloques de salto, en los cuales se muestran partes del flujo de bits Bs que corresponden a los bloques MB(r) y MB(r+3).
5
10
15
20
25
30
35
40
45
50
55
Entre un flujo de bits Bmb(r) que corresponde al bloque MB(r) y un flujo de bits Bmb(r+3) que corresponde al bloque MB(r+3), se coloca un identificador de salto Sf(Sk:2) que indica que hay dos bloques considerados como bloques de salto entre estos bloques. Además, entre un flujo de bits Bmb(r-1) que corresponde al bloque MB(r-1) y el flujo de bits Bmb(r) que corresponde al bloque MB(r), se coloca un identificador de salto Sf(Sk:0) que indica que no hay ningún bloque considerado como un bloque de salto entre estos bloques.
El flujo de bits Bmb(r) que corresponde al bloque MB(r) se compone de una sección de cabecera Hmb y una sección de datos Dmb y la sección de datos Dmb incluye datos de imagen codificados que corresponden a este bloque. Además, la sección de cabecera Hmb incluye una marca de modo Fm que indica un tipo de macrobloque, es decir, un modo de codificación en el que se codifica este bloque; información de imagen de referencia Rp que indica una imagen a la que se hace referencia en la codificación de este bloque, e información Bmvf y Bmvb que indica vectores de movimiento que se usan en la codificación de este bloque. Este bloque MB(r) se codifica mediante codificación predictiva bidireccional y la información Bmvf y Bmbv de los vectores de movimiento indica los valores de un vector de movimiento hacia delante y un vector de movimiento hacia atrás que se usan en la codificación predictiva bidireccional, respectivamente. Además, flujos de bits que corresponden a otros bloques, tales como un flujo de bits Bmb(r+3) que corresponde al bloque MB(r+3), tienen la misma estructura que la del flujo de bits Bmb(r) que corresponde al bloque MB(r).
Como se describió anteriormente, en el modo directo, se puede reducir la cantidad de códigos tratando un bloque cuyos datos de diferencia llegan a ser cero, como un bloque de salto, es decir, saltando, en el flujo de bits, la información que corresponde a este bloque junto con la información de modo.
Si se salta o no un bloque se puede detectar a partir del identificador de salto Sf que se coloca justo antes del flujo de bits de cada bloque. Además, si se salta o no un bloque se puede conocer a partir de la información del número de bloque o similar, que se describe en el flujo de bits que corresponde a cada bloque.
Además, en el procesamiento de modo directo mostrado en la figura 4(a) (primer ejemplo), el procesamiento de modo directo mostrado en la figura 4(b) (segundo ejemplo) y el procesamiento de modo de dirección mostrado en la figura 5(a) (tercer ejemplo), todos los bloques cuyos datos de diferencia llegan a ser cero no se tratan necesariamente como bloques de salto. Es decir, un bloque objetivo se somete a predicción bidireccional usando una imagen que se coloca justo anterior a la imagen objetivo como una imagen de referencia hacia delante y un vector de movimiento cuya magnitud es cero y solamente cuando los datos de diferencia del bloque objetivo llegan a ser cero, este bloque objetivo se puede tratar como un bloque de salto.
Por cierto, la selección de un modo de codificación para un bloque objetivo se lleva a cabo, generalmente, para minimizar un error de codificación que corresponde a una cantidad de bits predeterminada. El modo de codificación determinado por la unidad de selección de modo 109 se saca de la unidad de generación de flujo de bits 104. Además, los datos de predicción que se obtienen de la imagen de referencia según el modo de codificación determinado en la unidad de selección de modo 109 se sacan a la unidad de cálculo de diferencia 102 y la unidad de adición 106. No obstante, cuando se selecciona codificación dentro de una imagen, no se sacan datos de predicción. Además, cuando la unidad de selección de modo 109 selecciona codificación dentro de una imagen, el conmutador 111 se controla de manera que el terminal de entrada Ta se conecta al terminal de salida Tb1 y el conmutador 112 se controla de manera que el terminal de salida Td se conecta al terminal de entrada Tc1. Cuando se selecciona codificación predictiva entre imágenes, el conmutador 111 se controla de manera que el terminal de entrada Ta se conecta al terminal de salida Tb2 y el conmutador 112 se controla de manera que el terminal de salida Td se conecta al terminal de entrada Tc2.
En lo sucesivo, se dará una descripción de la operación del aparato de codificación de imágenes en movimiento 10 en el caso en que la unidad de selección de modo 109 selecciona codificación predictiva entre imágenes.
La unidad de cálculo de diferencia 102 recibe los datos de predicción Pd sacados de la unidad de selección de modo 109. La unidad de cálculo de diferencia 102 calcula datos de diferencia entre datos de imagen que corresponden a un bloque objetivo en la imagen B11 y los datos de predicción y saca los datos de diferencia como datos de error de predicción PEd. Los datos de error de predicción PEd se introducen a la unidad de codificación de error de predicción 103. La unidad de codificación de error de predicción 103 somete los datos de error de predicción PEd introducidos a procesos de codificación, tales como conversión de frecuencia y cuantificación, generando por ello datos codificados Ed. Los datos codificados Ed sacados de la unidad de codificación de error de predicción 103 se introducen a la unidad de generación de flujo de bits 104 y a la unidad de decodificación de error de predicción 105.
La unidad de generación de flujo de bits 104 somete los datos codificados Ed introducidos a codificación de longitud variable y añade información tal como un vector de movimiento y un modo de codificación a los datos codificados Ed para generar un flujo de bits Bs, y saca este flujo de bits Bs. Cuando el modo de codificación es uno que realiza referencia hacia delante, información (información de imagen de referencia) Rp que indica a cuál de las imágenes P7, B9 y P10 se hace referencia cuando se detecta el vector de movimiento hacia delante también se añade al flujo de bits Bs.
5
10
15
20
25
30
35
40
45
50
55
A continuación, se dará una descripción de un método para gestionar la memoria de cuadro, y un método para asignar información de imagen de referencia, en la codificación de la imagen B11, con referencia a la figura 3.
Cuando se inicia la codificación de la imagen B11, las imágenes P4, P7, P10, P13 y B9 se almacenan en la memoria de cuadro 117. La imagen B11 se somete a codificación predictiva bidireccional, usando las imágenes P7, B9 y P10 como imágenes candidatas para una referencia hacia delante y la imagen P13 como una imagen candidata para una imagen de referencia hacia atrás. La imagen ya codificada B11 se almacena en el área de memoria (#2) en la que la imagen P4 se había almacenado, debido a que la imagen P4 no se usa como una imagen de referencia en la codificación de las imágenes desde la imagen B11 en adelante.
En la codificación de la imagen B11, como un método para añadir información que indica a cuál de las imágenes P7, B9 y P10 se hace referencia en la detección del vector de movimiento hacia delante para el bloque objetivo (información de imagen de referencia), se emplea un método de asignación de índices sucesivamente a las imágenes candidatas de referencia, comenzando desde una que está en cuanto al tiempo más cercana a la imagen objetivo (imagen B11). Las imágenes candidatas de referencia son imágenes que se pueden seleccionar como una imagen de referencia en la codificación de la imagen objetivo.
Para ser específicos, se asigna a la imagen P10 un índice de imagen de referencia [0], se asigna a la imagen B9 un índice de imagen de referencia [1] y se asigna a la imagen 7 un índice de imagen de referencia [2].
Por consiguiente, cuando se hace referencia a la imagen P10 en la codificación de la imagen objetivo, el índice de imagen de referencia [0] se describe en el flujo de bits que corresponde al bloque objetivo, como información que indica que se hace referencia a una imagen candidata justo anterior a la imagen objetivo. Del mismo modo, cuando se hace referencia a la imagen B9, el índice de imagen de referencia [1] se describe en el flujo de bits que corresponde al bloque objetivo, como información que indica que se hace referencia a una imagen candidata dos imágenes anterior a la imagen objetivo. Además, cuando se hace referencia a la imagen P7, el índice de imagen de referencia [2] se describe en el flujo de bits que corresponde al bloque objetivo, como información que indica que se hace referencia a una imagen candidata tres imágenes anterior a la imagen objetivo.
La asignación de códigos a los índices de imágenes de referencia [0], [1] y [2] se lleva a cabo de manera que un código de una longitud más corta se asigna a un índice menor.
Generalmente, una imagen candidata que es en cuanto al tiempo más cercana a una imagen objetivo es más probable que sea usada como una imagen de referencia. Por consiguiente, asignando los códigos como se describió anteriormente, se puede reducir la cantidad total de códigos, cada uno que indica a cuál de las imágenes candidatas plurales se hace referencia en la detección del vector de movimiento del bloque objetivo.
La unidad de decodificación de error de predicción 105 somete los datos codificados introducidos que corresponden al bloque objetivo a procesos de decodificación tales como cuantificación inversa y conversión de frecuencia inversa para generar datos de diferencia decodificados PDd del bloque objetivo. Los datos de diferencia decodificados PDd se añaden a los datos de predicción Pd en la unidad de adición 106 y los datos decodificados Dd de la imagen objetivo que se obtienen mediante la adición se almacenan en la memoria de cuadro 117.
Los bloques restantes de la imagen B11 se codifican de la misma manera que se describió anteriormente. Cuando se han procesado todos los bloques en la imagen B11, tiene lugar la codificación de la imagen B12.
<Proceso de codificación para la imagen B12>
A continuación, se describirá el proceso de codificación para la imagen B12.
Dado que la imagen B12 es una imagen B, la codificación predictiva entre imágenes a ser realizada para un bloque objetivo en la imagen B12 es codificación predictiva entre imágenes bidireccional en la que se hace referencia a dos imágenes ya codificadas que se colocan en cuanto al tiempo hacia delante o hacia atrás de la imagen objetivo.
En lo sucesivo, se dará una descripción de un caso en el que una codificación predictiva entre imágenes usando referencia bidireccional se realiza como un proceso de codificación para la imagen B12. Por consiguiente, en este caso, como candidatas para una imagen de referencia hacia delante, se usa/usan dos imágenes I o P colocadas cerca de la imagen objetivo en orden de tiempos de visualización o una imagen B colocada la más cercana a la imagen objetivo en orden de tiempos de visualización. Además, como imagen de referencia hacia atrás, se usa una imagen I o P colocada la más cercana a la imagen objetivo en orden de tiempos de visualización. Por consiguiente, las imágenes candidatas de referencia para la imagen B12 son las imágenes P7, P10 y B11 (imágenes hacia delante) y la imagen P13 (imagen hacia atrás).
En la codificación de una imagen B a ser usada como una imagen de referencia cuando se codifica otra imagen, la unidad de control de codificación 110 controla los conmutadores respectivos de manera que los conmutadores 113, 114 y 115 están ENCENDIDOS. Dado que la imagen B12 va a ser usada como una imagen de referencia en la codificación de otra imagen, la unidad de control de codificación 110 controla los conmutadores respectivos de manera que los conmutadores 113, 114 y 115 están ENCENDIDOS. Por consiguiente, los datos de imagen que
corresponden al bloque en la imagen B12, que se lee de la memoria de cuadro 101, se introducen a la unidad de detección de vector de movimiento 108, la unidad de selección de modo 109 y la unidad de cálculo de diferencia 102.
La unidad de detección de vector de movimiento 108 detecta un vector de movimiento hacia delante y un vector de 5 movimiento hacia atrás que corresponden al bloque objetivo en la imagen B12, usando las imágenes P7, P10 y B11 almacenadas en la memoria de cuadro 117 como imágenes candidatas de referencia hacia delante y la imagen P13 almacenada en la memoria de cuadro 117 como una imagen de referencia hacia atrás.
Los vectores de movimiento detectados se sacan a la unidad de selección de modo 109.
La unidad de selección de modo 109 determina un modo de codificación para el bloque objetivo en la imagen B12, 10 usando los vectores de movimiento detectados por la unidad de detección de vector de movimiento 108. Por ejemplo, se selecciona un modo de codificación para la imagen B B12 de entre el modo de codificación dentro de una imagen, el modo de codificación predictiva entre imágenes usando un vector de movimiento hacia delante, el modo de codificación predictiva entre imágenes usando una imagen de movimiento hacia atrás, el modo de codificación predictiva entre imágenes usando vectores de movimiento bidireccionales y el modo directo. Cuando el 15 modo de codificación es codificación predictiva entre imágenes usando un vector de movimiento hacia delante, se selecciona una imagen más adecuada como una imagen de referencia de entre las imágenes P7, P10 y B11.
En lo sucesivo, se describirá un proceso de codificación de los bloques en la imagen B12 por el modo directo.
[Primer ejemplo de codificación de modo directo]
La figura 7 (a) muestra un caso en el que un bloque (bloque objetivo) BLa5 en la imagen (imagen objetivo) B12 se 20 codifica en el modo directo. Esta codificación de modo directo utiliza un vector de movimiento (vector de movimiento base) MVc5 de un bloque (bloque base) BLb5 que se incluye en la imagen (imagen base) P13 como una imagen de referencia colocada hacia atrás de la imagen B12 y se sitúa en la misma posición que el bloque objetivo BLa5. El vector de movimiento MVc5 es un vector de movimiento que se usa cuando se codifica el bloque BLb5 y se almacena en la unidad de almacenamiento de vector de movimiento 116. Este vector de movimiento MVc5 indica un 25 área CRc5 en la imagen P10, cuya área corresponde al bloque BLb5. El bloque BLa5 se somete a codificación predictiva bidireccional, usando vectores de movimiento paralelos al vector de movimiento MVc5, sobre la base de las imágenes B11 y P13 como imágenes de referencia para el bloque BLa5. Los vectores de movimiento a ser usados en la codificación del bloque BLa5 son un vector de movimiento MVe5 que indica un área CRd5 en la imagen B11, que corresponde al bloque BLa5 y un vector de movimiento MVe5 que indica un área CRe5 en la 30 imagen P13, que corresponde al bloque BLa5. Las magnitudes MVF y MVB de los vectores de movimiento MVd5 y MVe5 se pueden obtener mediante las fórmulas anteriormente mencionadas (1) y (2), respectivamente.
[Segundo ejemplo de codificación de modo directo]
A continuación, se describirá un segundo ejemplo de codificación de modo directo.
La figura 7(b) muestra un caso en el que un bloque (bloque objetivo) BLa6 en la imagen (imagen objetivo) B12 se 35 codifica en el de modo directo. Esta codificación de modo directo utiliza un vector de movimiento (vector de movimiento base) MVc6 de un bloque (bloque base) BLb6 que se incluye en la imagen (imagen base) P13 como una imagen de referencia colocada hacia atrás de la imagen B12 y se sitúa en la misma posición que el bloque objetivo BLa6. El vector de movimiento MVc6 es un vector de movimiento que se usa cuando se codifica el bloque BLb6 y se almacena en la unidad de almacenamiento de vector de movimiento 116. Este vector de movimiento MVc6 indica un 40 área CRc6 en la imagen P7, cuya área corresponde al bloque BLb6. El bloque BLa6 se somete a codificación predictiva bidireccional, usando vectores de movimiento paralelos al vector de movimiento MVc6, sobre la base de las imágenes B11 y P13 como imágenes de referencia. Los vectores de movimiento a ser usados en la codificación del bloque BLa6 son un vector de movimiento MVg6 que indica un área CRg6 en la imagen B11, que corresponde al bloque BLa6 y un vector de movimiento MVh6 que indica un área CRh6 en la imagen P13, que corresponde al 45 bloque BLa6. Las magnitudes MVF y MVB de los vectores de movimiento MVg6 y MVh6 se pueden obtener mediante las fórmulas anteriormente mencionadas (1) y (2), respectivamente.
Como se describió anteriormente, en el modo directo, el vector de movimiento MVf6 del bloque BLb6, que se incluye en la imagen a ser referida como una imagen de referencia hacia atrás cuando se codifica el bloque objetivo BLa6 y se sitúa relativamente en la misma posición que el bloque objetivo, se escala, obteniendo por ello el vector de 50 movimiento hacia delante MVg6 y el vector de movimiento hacia atrás MVh6 que corresponde al bloque objetivo. Por lo tanto, cuando se selecciona el modo directo, no es necesario enviar información del vector de movimiento del bloque objetivo. Además, dado que la imagen ya codificada que se coloca la más cercana a la imagen objetivo en orden de tiempos de visualización se usa como una imagen de referencia hacia delante, se puede mejorar la eficiencia de predicción.
55 [Tercer ejemplo de codificación de modo directo]
A continuación, se describirá un tercer ejemplo de codificación de modo directo.
5
10
15
20
25
30
35
40
45
50
55
La figura 8(a) muestra un tercer ejemplo de un proceso para codificar un bloque (bloque objetivo) BLa7 en la imagen (imagen objetivo) B12 por el modo directo.
Esta codificación de modo directo utiliza un vector de movimiento (vector de movimiento base) MVc7 de un bloque (bloque base) BLb7 que se incluye en la imagen (imagen base) P13 como una imagen de referencia colocada hacia atrás de la imagen B12 y se sitúa en la misma posición que el bloque objetivo BLa7. El vector de movimiento MVc7 es un vector de movimiento que se usa cuando se codifica el bloque BLb7 y se almacena en la unidad de almacenamiento de vector de movimiento 116. Este vector de movimiento MVc7 indica un área CRc7 en la imagen P7, cuya área corresponde al bloque BLb7. El bloque BLa7 se somete a codificación predictiva bidireccional, usando vectores de movimiento paralelos al vector de movimiento MVc7, la misma imagen como a la que se hace referencia en la codificación del bloque BLb7 (es decir, la imagen P7) como una imagen de referencia hacia delante) y la imagen P13 como una imagen de referencia hacia atrás. Los vectores de movimiento a ser usados en la codificación del bloque BLa7 son un vector de movimiento MVd7 que indica un área CRd7 en la imagen P7, que corresponde al bloque BLa7 y un vector de movimiento MVe7 que indica un área CRe7 en la imagen P13, que corresponde al bloque BLa7.
Las magnitudes MVF y MVB de los vectores de movimiento MVd7 y MVe7 se pueden obtener mediante las fórmulas anteriormente mencionadas (2) y (3), respectivamente.
Cuando la imagen a la que se hace referencia cuando se codifica el bloque BLb7 ya se ha borrado de la memoria de cuadro 117, una imagen de referencia hacia delante que es en cuanto al tiempo la más cercana a la imagen objetivo se puede usar como una imagen de referencia hacia delante en el modo directo. La codificación de modo directo en este caso es idéntica a la descrita como el primer ejemplo de codificación de modo directo.
Como se describió anteriormente, en la codificación de modo directo mostrada en la figura 8(a), el vector de movimiento MVf7 del bloque BLb7, que se incluye en la imagen a ser usada como una imagen de referencia hacia atrás cuando se codifica el bloque objetivo y se sitúa relativamente en la misma posición que el bloque objetivo, se escala, obteniendo por ello el vector de movimiento hacia delante MVd7 y el vector de movimiento hacia atrás MVe7 que corresponden al bloque objetivo. Por lo tanto, cuando se selecciona el modo directo, no es necesario enviar información del vector de movimiento del bloque objetivo.
[Cuarto ejemplo de codificación de modo directo]
A continuación, se describirá un cuarto ejemplo de codificación de modo directo.
La figura 8(b) muestra un cuarto ejemplo de un proceso de codificación de un bloque (bloque objetivo) BLa8 en la imagen (imagen objetivo) B12 por el modo directo.
En este caso, el bloque objetivo BLa8 se somete a codificación predictiva bidireccional con un vector de movimiento que es cero, sobre la base de la imagen P10 más cercana que se selecciona como una imagen de referencia hacia delante y la imagen P13 como una imagen de referencia hacia atrás. Es decir, los vectores de movimiento MVf8 y MVh8 a ser usados para codificar el bloque BLa8 son un vector de movimiento que indica un área (bloque) CRf8 que se incluye en la imagen B11 y se sitúa relativamente en la misma posición que el bloque objetivo BLa8 y un vector de movimiento que indica un área (bloque) CRh8 que se incluye en la imagen P13 y se sitúa relativamente en la misma posición que el bloque objetivo BLa8, respectivamente.
Como se describió anteriormente, en la codificación de modo directo mostrada en la figura 8(b), el vector de movimiento del bloque objetivo se fija a la fuerza a cero. Por lo tanto, cuando se selecciona el modo directo, no es necesario enviar información del vector de movimiento del bloque objetivo y el escalado del vector de movimiento llega a ser innecesario, provocando una reducción de la complejidad de procesamiento de señal. Este método es aplicable a, por ejemplo, un caso en el que un bloque que se incluye en la imagen P13 como una imagen de referencia hacia atrás de la imagen B12 y se sitúa en la misma posición que el bloque BLa8 es un bloque que no tiene ningún vector de movimiento como un bloque codificado dentro del cuadro. Por consiguiente, incluso cuando un bloque que se incluye en la imagen de referencia hacia atrás y se sitúa en la misma posición que el bloque objetivo se codifica sin un vector de movimiento, se puede mejorar la eficiencia de codificación usando el modo directo.
El procesamiento de modo directo anteriormente mencionado para la imagen B12 (primer a cuarto ejemplos) es aplicable no solamente cuando el intervalo de tiempos de visualización de imágenes es constante sino también cuando el intervalo de tiempos de visualización de imágenes es variable, como en el caso de la imagen B11 mostrada en la figura 6(a).
Además, en la codificación de modo directo para la imagen B12, como la codificación de modo directo para la imagen B11, cuando los datos de diferencia que corresponden al bloque objetivo llegan a ser cero, la unidad de codificación de error de predicción 103 no genera datos codificados que corresponden al bloque objetivo y la unidad de generación de flujo de bits 104 no saca un flujo de bits que corresponde al bloque objetivo. De esta manera, un bloque cuyos datos de diferencia llegan a ser cero se trata como un bloque de salto, como en el caso de la imagen B11 mostrada en las figuras 6(b) y 6(c).
5
10
15
20
25
30
35
40
45
50
55
Además, en el procesamiento de modo directo mostrado en la figura 7(a) (primer ejemplo), el procesamiento de modo directo mostrado en la figura 7(b) (segundo ejemplo) y el procesamiento de modo de dirección mostrado en la figura 8(a) (tercer ejemplo), todos los bloques cuyos datos de diferencia llegan a ser cero no se tratan necesariamente como bloques de salto. Es decir, un bloque objetivo se somete a predicción bidireccional usando una imagen que se coloca justo anterior a la imagen objetivo como una imagen de referencia hacia delante y un vector de movimiento cuya magnitud es cero y solamente cuando los datos de diferencia del bloque objetivo llegan a ser cero, este bloque objetivo se puede tratar como un bloque de salto.
Cuando el modo de codificación para el bloque objetivo en la imagen B12 se determina por la unidad de selección de modo 109, se generan datos de predicción PEd para el bloque objetivo y se sacan a la unidad de cálculo de diferencia 102 y la unidad de adición 106, como en el proceso de codificación para el bloque objetivo en la imagen B11. No obstante, cuando se selecciona la codificación dentro de una imagen, no se sacan datos de predicción de la unidad de selección de modo 109. Además, los conmutadores 111 y 112 se controlan de la misma manera que se describe para codificar la imagen B11, según se seleccione o bien codificación dentro de una imagen o bien codificación entre imágenes como un modo de codificación por la unidad de selección de modo 109.
En lo sucesivo, se dará una descripción de la operación del aparato de codificación de imágenes en movimiento 10 en el caso en que la unidad de selección de modo 109 selecciona codificación predictiva entre imágenes cuando se codifica la imagen P12.
En este caso, la unidad de cálculo de diferencia 102, la unidad de codificación de error de predicción 103, la unidad de generación de flujo de bits 104, la unidad de decodificación de error de predicción 105, la unidad de adición 106 y la memoria de cuadro 117 se operan de la misma manera que se describe para el caso en que la unidad de selección de modo 109 selecciona codificación predictiva entre imágenes para codificar la imagen P11.
En este caso, no obstante, dado que las imágenes candidatas para una imagen de referencia hacia delante son diferentes de aquéllas para codificar la imagen P11, cuando el modo de codificación para el bloque objetivo es uno que realiza referencia hacia delante, la información de imagen de referencia a ser añadida al flujo de bits del bloque objetivo llega a ser información que indica a cuál de las imágenes P7, P10 y B11 se hace referencia en la detección del vector de movimiento hacia delante.
Además, un método de gestión de memoria de cuadro y un método de asignación información de imagen de referencia, que van a ser empleados en la codificación de la imagen B12 son idénticos a los empleados en la codificación de la imagen B11 mostrada en la figura 3.
Como se describió anteriormente, según la primera realización de la invención, cuando se codifica una imagen B (imagen objetivo), una imagen B se usa como imagen candidata para una imagen de referencia hacia delante así como imágenes P. Por lo tanto, una imagen hacia delante colocada la más cercana a la imagen B objetivo se puede usar como una imagen de referencia para la imagen B objetivo, por lo cual se puede aumentar la precisión de predicción de compensación de movimiento para la imagen B, provocando un aumento de la eficiencia de codificación.
En esta primera realización, ninguna imagen B se usa como una imagen de referencia en la codificación de una imagen P. Por lo tanto, incluso cuando ocurre un error en una imagen durante la decodificación, la recuperación del error se puede realizar perfectamente reanudando la decodificación de una imagen I o P cerca de la imagen en la que ocurre el error de decodificación. No obstante, los otros efectos obtenidos por la primera realización no se cambian incluso cuando una imagen B se usa como una imagen de referencia en la codificación de una imagen P.
Además, dado que dos imágenes P y una imagen B se usan como imágenes candidatas para una imagen de referencia hacia delante en la codificación de una imagen B, el número de imágenes candidatas para una imagen de referencia hacia delante para una imagen B no se cambia en comparación con el caso convencional en el que tres imágenes P se usan como imágenes candidatas para una imagen de referencia hacia delante para una imagen B. Por lo tanto, es posible evitar un aumento en la capacidad de la memoria de cuadro para contener imágenes candidatas de referencia y un aumento en la cantidad de procesamiento para detección de movimiento, cuyos aumentos se causan por la inclusión de la imagen B en las imágenes candidatas para una imagen de referencia hacia delante para una imagen B.
Además, en esta primera realización, información que indica que una imagen B se somete a codificación de predicción entre imágenes con referencia a una imagen B hacia delante e información que indica cuántas imágenes I o P y cuántas imágenes B se usan como imágenes candidatas para referencia hacia delante, se describen como información de cabecera de un flujo de bits a ser generado. Por lo tanto, es posible conocer la capacidad de una memoria de cuadro que se necesita cuando se decodifica el flujo de bits generado en el aparato de codificación de imágenes en movimiento.
Además, cuando información tal como un vector de movimiento, un modo de codificación y similares, se añade a un flujo de bits, si el modo de codificación es uno que realiza referencia hacia delante, información de imagen de referencia para identificar imágenes de referencia, que se asignan a imágenes candidatas a ser referidas, se añade al flujo de bits y, además, información de imagen de referencia asignada a una imagen candidata que es en cuanto
5
10
15
20
25
30
35
40
45
50
55
al tiempo la más cercana a la imagen objetivo se expresa con un código de una longitud de código más corta, según un método de gestión de la memoria de cuadro para imágenes de referencia. Por lo tanto, se puede reducir la cantidad total de códigos que expresan la información de imagen de referencia. Además, en la gestión de la memoria de cuadro, dado que la memoria de cuadro se gestiona con independencia del tipo de imagen, se puede minimizar la capacidad de la memoria de cuadro.
Por otra parte, en esta primera realización, cuando la memoria de cuadro para imágenes de referencia se gestiona con un área para imágenes P y un área para imágenes B que están separadas una de la otra, se facilita la gestión de la memoria de cuadro.
Además, cuando un bloque en una imagen B se codifica en el modo directo, una imagen que se coloca la más cercana a la imagen B en orden de tiempos de visualización se usa como una imagen de referencia hacia adelante, por lo cual se puede mejorar la eficiencia de predicción en el modo directo para la imagen B.
Además, cuando un bloque en una imagen B va a ser codificado en el modo directo, una imagen a la que se hace referencia hacia delante en la codificación de una imagen de referencia hacia atrás se usa como imagen de referencia hacia delante, por lo cual se puede mejorar la eficiencia de predicción en el modo directo para la imagen B.
Además, cuando un bloque en una imagen B va a ser codificado en el modo directo, la predicción bidireccional con un vector de movimiento que es cero se lleva a cabo sobre la base de una imagen de referencia hacia delante y una imagen de referencia hacia atrás, por lo cual el escalado del vector de movimiento en el modo directo llega a ser innecesario, provocando una reducción en la complejidad de procesamiento de información. En este caso, incluso cuando un bloque que se incluye en la imagen de referencia hacia atrás y se sitúa en la misma posición que el bloque objetivo se codifica sin un vector de movimiento, la eficiencia de codificación se puede mejorar usando el modo directo.
Además, cuando un bloque en una imagen B va a ser codificado en el modo directo, si un error de predicción con respecto al bloque objetivo llega a ser cero, la información relativa al bloque objetivo no se describe en el flujo de bits, por lo cual se puede reducir la cantidad de códigos.
En esta primera realización, la compensación de movimiento se realiza en unidades de espacios de imágenes (macrobloques) cada uno que comprende 16 píxeles en la dirección horizontal X 16 píxeles en la dirección vertical y la codificación de una imagen de error de predicción se realiza en unidades de espacios de imágenes (subbloques) cada uno que comprende 8 píxeles en la dirección horizontal X 8 píxeles en la dirección vertical. No obstante, el número de píxeles en cada macrobloque (subbloque) en compensación de movimiento (codificación de una imagen de error de predicción) puede ser diferente del descrito para la primera realización.
Además, mientras que en esta primera realización el número de imágenes B continuas es dos, el número de imágenes B continuas puede ser tres o más.
Por ejemplo, el número de imágenes B colocadas entre una imagen I y una imagen P o entre dos imágenes P puede ser tres o cuatro.
Además, en esta primera realización, un modo de codificación para una imagen P se selecciona de entre codificación dentro de una imagen, codificación predictiva entre imágenes usando un vector de movimiento y codificación predictiva entre imágenes no usando un vector de movimiento, mientras que un modo de codificación para una imagen B se selecciona de entre la codificación dentro de una imagen, la codificación predictiva entre imágenes usando un vector de movimiento hacia delante, la codificación predictiva entre imágenes usando un vector de movimiento hacia atrás, la codificación predictiva entre imágenes usando vectores de movimiento bidireccionales y el modo directo. No obstante, el modo de codificación para una imagen P o una imagen B puede ser distinto de los mencionados anteriormente.
Por ejemplo, cuando el modo directo no se usa como un modo de codificación para una imagen B, se prescinde de la unidad de almacenamiento de vector de movimiento 116 en el aparato de codificación de imágenes en movimiento 10.
Además, mientras que en esta primera realización la imagen B11 o B12 como una imagen B llega a ser una imagen candidata para una imagen de referencia en la codificación de otra imagen, no es necesario almacenar una imagen B que no se va a ser usada como una imagen de referencia en la codificación de otra imagen, en la memoria de imágenes de referencia 117. En este caso, la unidad de control de codificación 110 apaga los conmutadores 114 y 115.
Además, mientras que en esta primera realización se usan tres imágenes como imágenes candidatas para referencia hacia delante en la codificación de una imagen P, la presente invención no se restringe a las mismas. Por ejemplo, se pueden usar dos imágenes o cuatro o más imágenes como imágenes candidatas para referencia hacia delante en la codificación de una imagen P.
5
10
15
20
25
30
35
40
45
50
55
Mientras que en esta primera realización se usan dos imágenes P y una imagen B como imágenes candidatas para referencia hacia delante en la codificación de una imagen B, las imágenes candidatas para referencia hacia delante en la codificación de una imagen B no se restringen a las mencionadas anteriormente.
Por ejemplo, en la codificación de una imagen B, las imágenes candidatas para referencia hacia delante pueden ser una imagen P y dos imágenes B o dos imágenes P y dos imágenes B o tres imágenes las más cercanas a la imagen objetivo con independencia del tipo de imagen. Además, no una imagen B la más cercana a la imagen objetivo en el eje de tiempo de visualización sino una imagen B separada de la imagen objetivo en el eje de tiempo de visualización se puede usar como una imagen candidata de referencia.
Además, en un caso en el que, en la codificación de un bloque en una imagen B, se hace referencia a una imagen hacia atrás y solamente se usa una imagen la más cercana a la imagen objetivo como una imagen candidata para referencia hacia delante, no es necesario describir información que indica a qué imagen se hace referencia en la codificación del bloque objetivo (información de imagen de referencia) en el flujo de bits.
Además, en esta primera realización, cuando se codifica una imagen B, se hace referencia a una imagen B que se coloca hacia delante de una imagen P que se coloca hacia delante y la más cercana a la imagen objetivo. No obstante, en la codificación de una imagen B, no se hace referencia necesariamente a una imagen B que se coloca hacia delante de una imagen I o P que está hacia delante y la más cercana a la imagen objetivo. En este caso, cuando se decodifica un flujo de bits generado, incluso si ocurre un error durante la decodificación, la recuperación del error se puede llevar a cabo perfectamente reanudando la decodificación de una imagen I o P junto a la imagen en la que ocurre el error.
Por ejemplo, las figuras 9(a) y 9(b) son diagramas que ilustran un caso en el que, cuando se codifica una imagen B, se hace referencia a una imagen B que está colocada hacia delante de una imagen P que se coloca hacia delante y la más cercana a la imagen objetivo.
La figura 9(a) ilustra una disposición de imagen y las relaciones entre imágenes B e imágenes de referencia. Para ser específicos, en la figura 9(a), se colocan dos imágenes B entre imágenes P adyacentes y se usan una imagen P y dos imágenes B como imágenes candidatas para una imagen de referencia hacia delante para una imagen B (es decir, una imagen a ser referida cuando se codifica la imagen B objetivo).
La figura 9(b) ilustra otra disposición de imagen y las relaciones entre imágenes B e imágenes de referencia. Para ser específicos, en la figura 9(b), se colocan cuatro imágenes B entre imágenes P adyacentes y dos imágenes que son en cuanto al tiempo las más cercanas a la imagen objetivo, con independencia del tipo de imagen, se usan como imágenes candidatas para una imagen de referencia hacia delante para una imagen B.
Además, las figuras 10(a) y 10(b) son diagramas que ilustran un caso en el que, cuando se codifica una imagen B, no se hace referencia a una imagen B que se coloca hacia delante de una imagen I o P que se coloca hacia delante y la más cercana a la imagen objetivo.
Para ser específicos, en la figura 10(a), se colocan dos imágenes B entre imágenes P adyacentes, una imagen P y una imagen B se usan como imágenes candidatas para una imagen de referencia hacia delante para una imagen B y una imagen B que se coloca hacia delante de una imagen P que se coloca hacia delante y la más cercana a la imagen objetivo no se usa como una imagen candidata para la imagen de referencia hacia delante.
En la figura 10(b), se colocan cuatro imágenes B entre imágenes P adyacentes, una imagen P y una imagen B se usan como imágenes candidatas para una imagen de referencia hacia delante para una imagen B y una imagen B que se coloca hacia delante de una imagen P que se coloca hacia delante y la más cercana a la imagen objetivo no se usa como una imagen candidata para la imagen de referencia hacia delante.
Además, en esta primera realización, se usan tres imágenes como imágenes candidatas de referencia para una imagen P y dos imágenes P y una imagen B se usan como imágenes candidatas para referencia hacia delante para una imagen B, es decir, el número de imágenes al que se puede hacer referencia cuando se codifica una imagen P es igual al número de imágenes al que se puede hacer referencia hacia delante cuando se codifica una imagen B. No obstante, el número de imágenes al que se puede hacer referencia hacia delante cuando se codifica una imagen B puede ser menor que el número de imágenes al que se puede hacer referencia cuando se codifica una imagen P.
Además, mientras que en esta primera realización se describen cuatro métodos como ejemplos de codificación de modo directo, uno de estos cuatro métodos o algunos de estos cuatro métodos se pueden emplear en el modo directo. No obstante, cuando se emplean métodos plurales, es deseable describir información que indica los modos directos empleados (información de modo DM) en el flujo de bits.
Por ejemplo, cuando se usa un método sobre la secuencia entera, se describe información de modo DM en la cabecera de la secuencia entera. Cuando se selecciona un método para cada imagen, se describe información de modo DM en la cabecera de la imagen. Cuando se selecciona un método para cada bloque, se describe información de modo DM en la cabecera del bloque.
5
10
15
20
25
30
35
40
45
50
Aunque se describe una imagen o un bloque como una unidad para la cual se selecciona uno de los métodos de codificación de modo directo, puede ser un GOP (Grupo de imágenes) que comprende imágenes plurales, un GOB (Grupo de Bloques) que comprende bloques plurales o un segmento que se obtiene dividiendo una imagen.
Además, mientras que en esta primera realización un método de gestión de memoria de cuadro se describe con referencia a la figura 3, los métodos de gestión de memoria de cuadro aplicables no se restringen al mostrado en la figura 3.
A continuación, se describirán otros métodos de gestión de memoria de cuadro.
Inicialmente, un primer ejemplo de un método de gestión de memoria de cuadro en el que todas las imágenes usadas como imágenes de referencia se separan en imágenes P e imágenes B a ser gestionadas, se describirá con referencia a la figura 11.
En este caso, la memoria de cuadro 117 tiene áreas de memoria para seis imágenes en total, es decir, las áreas de memoria de imágenes P (#1)~(#4) y áreas de memoria de imágenes B (#1) y (#2). Un almacenamiento para cada imagen no se restringe a un área en la memoria de cuadro y puede ser una memoria.
Cuando se inicia la codificación de la imagen P13, las imágenes P1, P4, P7 y P10 se almacenan en las áreas de memoria de imágenes P (#1)~(#4) en la memoria de cuadro 117, respectivamente y las imágenes B8 y B9 se almacenan en las áreas de memoria de imágenes B (#1) y (#2), respectivamente. La imagen P13 se codifica usando las imágenes P4, P7 y P10 como imágenes candidatas para una imagen de referencia y la imagen codificada P13 se almacena en el área (#1) en la que se había almacenado la imagen P1, debido a que la imagen P1 no se usa como una imagen de referencia cuando se codifica la imagen P13 y las imágenes posteriores.
En este caso, un método para asignar información de imagen de referencia a las imágenes P4, P7 y P10 como imágenes candidatas es idéntico al método mostrado en la figura 3, es decir, un índice de imagen de referencia menor se asigna a una imagen candidata que es en cuanto al tiempo más cercana a la imagen objetivo.
Para ser específicos, un índice de imagen de referencia [0] se asigna a una imagen candidata hacia delante que es la más cercana a la imagen objetivo, un índice de imagen de referencia [1] se asigna a una imagen candidata que es la segunda cercana a la imagen objetivo y un índice de imagen de referencia [2] se asigna a una imagen candidata que es la más distante de la imagen objetivo.
En la figura 11, a las imágenes a ser usadas como imágenes de referencia hacia atrás se asignan códigos [b] como información de imagen de referencia y a las imágenes que no se usan como imágenes de referencia cuando se codifica la imagen objetivo y las imágenes posteriores se asignan códigos [n].
A continuación, un segundo ejemplo de un método de gestión de memoria de cuadro en el que todas las imágenes usadas como imágenes de referencia se separan en imágenes P e imágenes B a ser gestionadas, se describirá con referencia a la figura 12.
Dado que la gestión de memoria en este segundo ejemplo es idéntica a la del primer ejemplo mostrado en la figura 11, no es necesaria una descripción repetida.
En este segundo ejemplo, como un método de asignación de índices de imágenes de referencia, la asignación de índices a las imágenes almacenadas en las áreas de memoria de imágenes P se lleva a cabo con prioridad. No obstante, en la codificación de la imagen P13, dado que no se usan imágenes B como imágenes de referencia, no se asignan índices a las imágenes B. Por consiguiente, un índice de imagen de referencia [0] se asigna a la imagen P10, un índice de imagen de referencia [1] se asigna a la imagen P7 y un índice de imagen de referencia [2] se asigna a la imagen P4.
A continuación, un tercer ejemplo de un método de gestión de memoria de cuadro en el que todas las imágenes usadas como imágenes de referencia se separan en imágenes P e imágenes B a ser gestionadas, se describirá con referencia a la figura 13.
Dado que la gestión de memoria en este tercer ejemplo es idéntica a la del primer ejemplo mostrado en la figura 11, no es necesaria una descripción repetida.
En este tercer ejemplo, como un método para asignar índices de imágenes de referencia, la asignación de índices a las imágenes almacenadas en las áreas de memoria de imágenes B se lleva a cabo con prioridad. No obstante, en la codificación de la imagen P13, dado que no se usan imágenes B como imágenes de referencia, no se asignan índices a las imágenes B. Por consiguiente, un índice de imagen de referencia [0] se asigna a la imagen P10, un índice de imagen de referencia [1] se asigna a la imagen P7 y un índice de imagen de referencia [2] se asigna a la imagen P4.
A continuación, un cuarto ejemplo de un método de gestión de memoria de cuadro en el que todas las imágenes usadas como imágenes de referencia se separan en imágenes P e imágenes B a ser gestionadas, se describirá con referencia a la figura 14.
5
10
15
20
25
30
35
40
45
50
55
Dado que la gestión de memoria en este cuarto ejemplo es idéntica a la del primer ejemplo mostrado en la figura 11, no es necesaria una descripción repetida.
En este tercer ejemplo, como un método para asignar índices de imágenes de referencia, o bien las imágenes almacenadas en el área de memoria de imágenes P o bien las imágenes almacenadas en el área de memoria de imágenes B se seleccionan para cada imagen objetivo a ser codificada y se dan índices de imágenes de referencia a las imágenes seleccionadas con prioridad.
Para ser específicos, según el tipo de imagen de referencia que es en cuanto al tiempo la más cercana a la imagen objetivo, se determina que o bien la imagen almacenada en el área de memoria de imágenes P o bien la imagen almacenada en el área de memoria de imágenes B se la debería dar prioridad en la asignación de índices de imágenes de referencia.
En la codificación de la imagen P13, dado que no se usa una imagen B como una imagen de referencia, los índices de imágenes de referencia se asignan a las imágenes almacenadas en el área de memoria de imágenes P con prioridad. Por consiguiente, un índice de imagen de referencia [0] se asigna a la imagen P10, un índice de imagen de referencia [1] se asigna a la imagen P7 y un índice de imagen de referencia [2] se asigna a la imagen P4. En este caso, información que indica que los índices de imágenes de referencia se dan a las imágenes almacenadas en las áreas de memoria de imágenes P con prioridad, se describe en la cabecera de cada imagen.
En los métodos de asignación de índice de imagen de referencia mostrados en las figuras 3 y 11 a 14, cuanto menor sea el índice de imagen de referencia, más corta será la longitud de un código que indica el índice de imagen de referencia. Dado que, en general, una imagen que es en cuanto al tiempo más cercana a la imagen objetivo es más probable que sea usada como una imagen de referencia, la cantidad total de códigos que expresan los índices de imágenes de referencia se puede reducir determinando las longitudes de los códigos que expresan los índices de imágenes de referencia, como se mencionó anteriormente.
Mientras que los cinco métodos mostrados en las figuras 3 y 11~14 se describen relativos a la gestión de memoria de cuadro y la asignación de índices de imágenes de referencia, uno de estos métodos se puede seleccionar previamente para su uso. Además, algunos de estos métodos se pueden usar conmutándolos. En este caso, no obstante, es deseable describir información acerca de los métodos que se usan, como información de cabecera o similar.
Además, cuando información que indica que cada imagen P se somete a codificación predictiva entre imágenes usando tres imágenes candidatas de referencia se describe como información de cabecera, es posible conocer la capacidad de una memoria de cuadro que se necesita en la decodificación del flujo de bits Bs generado en el aparato de codificación de imágenes en movimiento 10 según la primera realización. Estas informaciones de cabecera se pueden describir en la cabecera de la secuencia entera, la cabecera de cada GOP (Grupo de Imágenes) que comprende imágenes plurales o la cabecera de cada imagen.
Subsecuentemente, como un método de gestión de memoria de cuadro y un método de asignación de información de imagen de referencia a ser usados en la codificación de la imagen B11, se describirán métodos distintos del mostrado en la figura 3 (es decir, métodos de separación de las imágenes candidatas de referencia en imágenes P e imágenes B para gestión).
Inicialmente, se dará una descripción de un primer ejemplo de un método para separar las imágenes candidatas de referencia en imágenes P e imágenes B a ser gestionadas, con referencia a la figura 11.
Cuando se inicia la codificación de la imagen B11, en la memoria de cuadro 117, las imágenes P4, P7, P10 y P13 se almacenan en las áreas de memoria de imágenes P mientras que las imágenes B8 y B9 se almacenan en las áreas de memoria de imágenes B. La imagen P11 se codifica usando las imágenes P7, B9 y P10 como imágenes candidatas para referencia hacia delante y la imagen P13 como una imagen candidata para referencia hacia atrás y entonces la imagen codificada P11 se almacena en el área en la que la imagen P8 se había almacenado, debido a que la imagen P8 no se usa como una imagen de referencia en la codificación de la imagen P11 y las imágenes posteriores.
En este caso, como un método para asignar información de imagen de referencia a cada imagen (es decir, información que indica cuál de las imágenes candidatas de referencia P7, B9 y P10 se usa como una imagen de referencia en la detección del vector de movimiento hacia adelante), un método para asignar índices de imágenes de referencia a las imágenes candidatas de referencia, comenzando desde una que es en cuanto al tiempo la más cercana a la imagen objetivo, se usa como se describió con respecto a la figura 3.
Es decir, un índice de imagen de referencia [0] se asigna a una imagen candidata (imagen P10) que está justo anterior a la imagen objetivo (imagen B11), un índice de imagen de referencia [1] se asigna a una imagen candidata (imagen B9) que es dos imágenes anterior a la imagen objetivo y un índice de imagen de referencia [3] se asigna a una imagen candidata (imagen 7), que es tres imágenes anterior a la imagen objetivo.
5
10
15
20
25
30
35
40
45
50
A continuación, un segundo ejemplo de un método de gestión de memoria de cuadro en el que las imágenes candidatas de referencia se separan en imágenes P e imágenes B a ser gestionadas en la codificación de la imagen B11, se describirá con referencia a la figura 12.
Dado que la gestión de memoria en este segundo ejemplo es idéntica a la del primer ejemplo mostrado en la figura 11, no es necesaria una descripción repetida.
En este segundo ejemplo, como un método para asignar índices de imágenes de referencia, la asignación de índices a las imágenes almacenadas en las áreas de memoria de imágenes P se lleva a cabo con prioridad. Por consiguiente, un índice de imagen de referencia [0] se asigna a la imagen P10, un índice de imagen de referencia [1] se asigna a la imagen P7 y un índice de imagen de referencia [2] se asigna a la imagen B9.
A continuación, un tercer ejemplo de un método de gestión de memoria de cuadro en el que imágenes candidatas de referencia se separan en imágenes P e imágenes B a ser gestionadas en la codificación de la imagen B11, se describirá con referencia a la figura 13.
Dado que la gestión de memoria en este tercer ejemplo es idéntica a la del primer ejemplo mostrado en la figura 11, no es necesaria una descripción repetida.
En este tercer ejemplo, como un método para asignar índices de imágenes de referencia, la asignación de índices a las imágenes almacenadas en las áreas de memoria de imágenes B se lleva a cabo con prioridad. Por consiguiente, un índice de imagen de referencia [0] se asigna a la imagen B9, un índice de imagen de referencia [1] se asigna a la imagen P10 y un índice de imagen de referencia [2] se asigna a la imagen P7.
A continuación, un cuarto ejemplo de un método de gestión de memoria de cuadro en el que imágenes candidatas de referencia se separan en imágenes P e imágenes B a ser gestionadas en la codificación de la imagen B11, se describirán con referencia a la figura 14.
Dado que la gestión de memoria en este cuarto ejemplo es idéntica a la del primer ejemplo mostrado en la figura 11, no es necesaria una descripción repetida.
En este cuarto ejemplo, como un método para asignar índices de imágenes de referencia o bien las imágenes almacenadas en las áreas de memoria de imágenes P o bien las imágenes almacenadas en las áreas de memoria de imágenes B se seleccionan para cada imagen objetivo a ser codificada y se dan índices de imágenes de referencia a las imágenes seleccionadas con prioridad.
Para ser específicos, se determina a cuál de la memoria de imágenes P y la memoria de imágenes B se la deberían asignar índices de imágenes de referencia, según el tipo de imagen candidata de referencia que es en cuanto al tiempo la más cercana a la imagen objetivo a ser codificada.
En la codificación de la imagen B11, dado que la imagen de referencia hacia delante que es en cuanto al tiempo la más cercana a la imagen objetivo es la imagen P10, los índices de imágenes de referencia se asignan a las imágenes almacenadas en el área de memoria de imágenes P con prioridad.
Por consiguiente, un índice de imagen de referencia [0] se asigna a la imagen P10, un índice de imagen de referencia [1] se asigna a la imagen P7 y un índice de imagen de referencia [2] se asigna a la imagen B9. En este caso, información que indica que los índices de imágenes de referencia se dan a las imágenes almacenadas en las áreas de memoria de imágenes P con prioridad, se describe en la cabecera de cada imagen.
En los métodos de asignación de índices de imágenes de referencia cuando se codifica la imagen B11 (los cinco métodos mostrados en las figuras 3 y 11 a 14), como en el caso de codificación de la imagen P13, cuanto menor sea el índice de imagen de referencia, más corta será la longitud de un código que indica el índice de imagen de referencia.
Además, en la codificación de la imagen B B11, como en el caso de codificación de la imagen P P13, uno de los cinco métodos se puede seleccionar previamente para su uso. Además, algunos de estos métodos se pueden usar conmutándolos. No obstante, en el caso en el que se usan métodos plurales conmutándolos, es deseable que información acerca de los métodos que se usan se debiera describir como información de cabecera o similar.
Además, describiendo, como información de cabecera, información que indica que una imagen B se somete a codificación predictiva entre imágenes usando una imagen B hacia delante como una imagen candidata de referencia e información que indica que imágenes candidatas para referencia hacia delante, que se usan en la codificación de la imagen B, son dos imágenes I o P y una imagen B, es posible conocer la capacidad de almacenamiento de una memoria de cuadro que se necesita en la decodificación del flujo de bits generado en el aparato de codificación de imágenes en movimiento 10 según la primera realización. Estas informaciones de cabecera se pueden describir en la cabecera de la secuencia entera, la cabecera de cada GOP (Grupo de Imágenes) que comprende imágenes plurales o la cabecera de cada imagen.
5
10
15
20
25
30
35
40
45
50
Finalmente, como un método de gestión de memoria de cuadro y un método de asignación de información de imagen de referencia a ser empleado en la codificación de la imagen B12, se describirán métodos distintos del mostrado en la figura 3 (es decir, los métodos de separación de imágenes candidatas de referencia en imágenes P e imágenes B a ser gestionadas).
Dado que del primer a tercer ejemplos mostrados en las figuras 11 a 13 son idénticos a los del caso de codificación de la imagen B11, no es necesaria una descripción repetida.
Así, solamente un cuarto ejemplo de gestión de imágenes candidatas de referencia que se separan en imágenes P e imágenes B se describirá para la imagen B12, con referencia a la figura 14.
Dado que la gestión de memoria en este cuarto ejemplo es idéntica a la del primer ejemplo en el que imágenes candidatas de referencia se separan en imágenes P e imágenes B a ser gestionadas en la codificación de la imagen B11, no es necesaria una descripción repetida.
En este cuarto ejemplo, como para un método de asignación, a cada imagen, de información que indica a cuál de las imágenes candidatas de referencia P7, P10 y B11 se hace referencia en la detección del vector de movimiento hacia delante, se usa un método de determinación, para cada imagen a ser codificada, se debería dar prioridad o bien a las imágenes candidatas almacenadas en las áreas de memoria de imágenes P o bien a las imágenes candidatas almacenadas en las áreas de memoria de imágenes B.
Para ser específicos, en la codificación de la imagen B12, a cuál de la imagen candidata en el área de memoria de imágenes P y la del área de memoria de imágenes B se debería asignar un índice de imagen de referencia con prioridad, se determina según el tipo de la imagen de referencia que es en cuanto al tiempo la más cercana a la imagen objetivo.
En la codificación de la imagen B12, dado que la imagen candidata de referencia hacia delante que es en cuanto al tiempo la más cercana a la imagen objetivo (imagen B12) es la imagen B11, a las imágenes almacenadas en las áreas de memoria de imágenes B se asignan índices con prioridad.
Por consiguiente, un índice de imagen de referencia [0] se asigna a la imagen B11, un índice de imagen de referencia [1] se asigna a la imagen P10 y un índice de imagen de referencia [2] se asigna a la imagen P7. En este caso, información que indica que tiene prioridad la asignación de índices de imágenes de referencia para las imágenes en las áreas de memoria de imágenes B se describe en la cabecera de cada imagen.
Además, como en el caso de la codificación de la imagen B11, se describen, como información de cabecera, que la imagen B se somete a codificación predictiva entre imágenes usando también la imagen B hacia delante como una imagen candidata de referencia y que las imágenes candidatas de referencia hacia delante usadas en la codificación de la imagen B son dos imágenes I o P y una imagen B.
Además, en esta primera realización, los cinco ejemplos de métodos de gestión de memoria de cuadro (figuras 3, 11~14) se describen con respecto al caso en el que hay tres imágenes candidatas de referencia para una imagen P y hay dos imágenes P y una imagen B como imágenes candidatas de referencia hacia delante para una imagen B. No obstante, cada uno de los cinco ejemplos de métodos de gestión de memoria de cuadro se puede aplicar a casos en los que el número de imágenes candidatas de referencia es diferente de los mencionados para la primera realización. Cuando el número de imágenes candidatas de referencia difiere de los de la primera realización, la capacidad de la memoria de cuadro difiere de la de la primera realización.
Además, en esta primera realización, en los métodos de gestión de la memoria de cuadro en la que las imágenes candidatas de referencia se separan en imágenes P e imágenes B (cuatro ejemplos mostrados en las figuras 11~14), las imágenes P se almacenan en las áreas de memoria de imágenes P mientras que las imágenes B se almacenan en las áreas de memoria de imágenes B. No obstante, una memoria de imágenes a corto plazo y una memoria de imágenes a largo plazo que se definen en H.263 ++ se pueden usar como áreas de memoria en las que se almacenan imágenes. Por ejemplo, la memoria de imágenes a corto plazo y la memoria de imágenes a largo plazo se pueden usar como un área de memoria de imágenes P y un área de memoria de imágenes B, respectivamente.
[Realización 2]
En lo sucesivo, se describirá una segunda realización de la presente invención.
La figura 15 es un diagrama de bloques para explicar un aparato de decodificación de imágenes en movimiento 20 según una segunda realización de la presente invención.
El aparato de decodificación de imágenes en movimiento 20 decodifica el flujo de bits Bs sacados del aparato de codificación de imágenes en movimiento 10 según con la primera realización.
Para ser específicos, el aparato de decodificación de imágenes en movimiento 20 incluye una unidad de análisis de flujo de bits 201 para analizar el flujo de bits Bs y extraer diversos tipos de datos; una unidad de decodificación de
5
10
15
20
25
30
35
40
45
50
55
error de predicción 202 para decodificar datos codificados Ed sacados de la unidad de análisis de flujo de bits 201 para sacar datos de error de predicción PDd; y una unidad de decodificación de modo 223 para sacar una señal de control de conmutación Cs sobre la base de información de modo (modo de codificación) Ms relativa a la selección de modo, que se extrae por la unidad de análisis de flujo de bits 201.
El aparato de decodificación de imágenes en movimiento 20 incluye además una memoria de imágenes de referencia 207 para contener datos de imagen decodificados Dld y sacar los datos de imagen almacenados como datos de referencia Rd o datos de imagen de salida Od; una unidad de decodificación de compensación de movimiento 205 para generar datos de predicción Pd sobre la base de los datos (datos de imagen de referencia) Rd que se leen de la memoria de imágenes de referencia 207, información de un vector de movimiento MV que se extrae por la unidad de análisis de flujo de bits 201 y el modo de codificación Ms que se saca de la unidad de decodificación de modo 223; y una unidad de adición 208 para añadir los datos de predicción Pd a los datos de salida PDd desde la unidad de decodificación de error de predicción 202 para generar datos decodificados Ad.
El aparato de decodificación de imágenes en movimiento 20 incluye además una unidad de control de memoria 204 para controlar la memoria de imágenes de referencia 207 con una señal de control de memoria Cm sobre la base de información de cabecera Ih que se extrae por la unidad de análisis de flujo de bits 201; un conmutador de selección
209 colocado entre la unidad de decodificación de error de predicción 202 y la unidad de adición 208; y un conmutador de selección 210 colocado entre la unidad de adición 208 y la memoria de imágenes de referencia 207.
El conmutador de selección 201 tiene un terminal de entrada Te y dos terminales de salida Tf1 y Tf2, y el terminal de entrada Te se conecta a uno de los terminales de salida Tf1 y Tf2, según la señal de control de conmutación Cs. El conmutador de selección 210 tiene dos terminales de entrada Tg1 y Tg2 y un terminal de salida Th y el terminal de salida Th se conecta a uno de los terminales de entrada Tg1 y Tg2, según la señal de control de conmutación Cs. Además, en el conmutador de selección 209, los datos de salida PDd de la unidad de decodificación de error de predicción 202 se aplican al terminal de entrada Te y los datos de salida PDd de la unidad de decodificación de error de predicción 202 se sacan desde un terminal de salida Tf1 al terminal de entrada Tg1 del conmutador de selección
210 mientras que los datos de salida PDd se sacan desde el otro terminal de salida Tf2 a la unidad de adición 208. En el conmutador de selección 210, los datos de salida PDd de la unidad de decodificación de error de predicción 202 se aplican a un terminal de entrada Tg1 mientras que los datos de salida Ad de la unidad de adición 208 se introducen al otro terminal de entrada Tg1 y o bien los datos de salida PDd o bien los datos de salida Ad se sacan desde el terminal de salida Th a la memoria de imágenes de referencia 207 como datos de imagen decodificados Dld.
Además, el aparato de decodificación de imágenes en movimiento 20 incluye una unidad de almacenamiento de vector de movimiento 226 para contener el vector de movimiento MV de la unidad de decodificación de compensación de movimiento 205 y sacar el vector de movimiento MV almacenado a la unidad de decodificación de compensación de movimiento 205.
A continuación, se describirá la operación.
En la siguiente descripción, a una imagen que se coloca hacia delante o hacia atrás de una imagen objetivo a ser decodificada en un eje de tiempo de visualización se hace referencia como una imagen que está en cuanto al tiempo hacia delante o hacia atrás de la imagen objetivo o simplemente como una imagen hacia delante o una imagen hacia atrás.
El flujo de bits B generado en el aparato de codificación de imágenes en movimiento 10 de la primera realización se introduce en el aparato de decodificación de imágenes en movimiento 20 mostrado en la figura 15. En esta segunda realización, un flujo de bits de una imagen P se obtiene realizando codificación predictiva entre imágenes con referencia a una imagen seleccionada de entre tres imágenes candidatas (imágenes I o P) que están colocadas cerca de y en cuanto al tiempo hacia delante o hacia atrás de la imagen P. Además, un flujo de bits de una imagen B se obtiene realizando codificación predictiva entre imágenes con referencia a dos imágenes seleccionadas de entre cuatro imágenes candidatas colocadas hacia delante o hacia atrás de la imagen B (es decir, hacia delante de dos imágenes I o P que son en cuanto al tiempo las más cercanas a la imagen objetivo, una imagen B que es en cuanto al tiempo la más cercana a la imagen objetivo y una imagen I o P que está colocada en cuanto al tiempo detrás de la imagen objetivo). Las cuatro imágenes candidatas para la imagen B objetivo incluyen otra imagen B que está colocada en cuanto al tiempo delante de la imagen B objetivo.
Además, a qué imágenes candidatas se hace referencia cuando se codifica la imagen P o la imagen B objetivo se puede describir como información de cabecera del flujo de bits. Por consiguiente, es posible conocer a qué imágenes se hace referencia cuando se codifica la imagen objetivo, extrayendo la información de cabecera en la unidad de análisis de flujo de bits 201. Esta información de cabecera Ih también se saca a la unidad de control de memoria 204.
En este caso, los datos codificados que corresponden a imágenes en el flujo de bits se disponen en orden de codificación como se muestra en la figura 16(a).
5
10
15
20
25
30
35
40
45
50
55
Para ser específicos, los datos codificados de las imágenes en el flujo de bits Bs se disponen en el orden de P4, B2, B3, P7, B5, B6, P10, B8, B9, P13, B11, B12, P16, B14 y B15. En otras palabras, en esta disposición de imágenes, las imágenes respectivas se disponen sucesivamente desde una que tiene un tiempo de decodificación anterior en un eje de tiempo de decodificación Y que indica los tiempos de decodificación Tdec de las imágenes (disposición en orden de decodificación).
La figura 16(b) muestra una disposición de imágenes en la que las imágenes dispuestas en orden de decodificación se reordenan en orden de visualización. Es decir, en la figura 16(b), las imágenes B2, B3, P4, B5, B6, P7, B8, B9, P10, B11, B12, P13, B14, B15 y P16 se disponen sucesivamente desde una que tiene un tiempo de visualización anterior en un eje de tiempo de visualización X que indica los tiempos de visualización Td es de las imágenes respectivas (disposición en orden de visualización).
En lo sucesivo, los procesos de decodificación de las imágenes P13, B11 y B12 se describirán en este orden. <Proceso de decodificación para la imagen P13>
El flujo de bits de la imagen P13 se introduce a la unidad de análisis de flujo de bits 201. La unidad de análisis de flujo de bits 201 extrae varios tipos de datos a partir del flujo de bits introducido. Los datos respectivos son como sigue: información para realizar la selección de modo, es decir, información que indica un modo de codificación Ms (en lo sucesivo referido simplemente como un modo de codificación); información que indica un vector de movimiento MV (en lo sucesivo referido simplemente como un vector de movimiento), información de cabecera, datos codificados (información de imagen) y similares. El modo de codificación extraído Ms se saca a la unidad de decodificación de modo 203. Además, el vector de movimiento MV extraído se saca a la unidad de decodificación de compensación de movimiento 205. Además, los datos codificados de error de predicción Ed extraídos por la unidad de análisis de flujo de bits 201 se sacan a la unidad de decodificación de error de predicción 202.
La unidad de decodificación de modo 203 controla los conmutadores 209 y 210 sobre la base del modo de codificación Ms extraído del flujo de bits. Cuando el modo de codificación indica codificación entre imágenes, el conmutador 209 se controla de manera que el terminal de entrada Te se conecta al terminal de salida Tf1 y el conmutador 210 se controla de manera que el terminal de salida Th se conecta al terminal de entrada Tg1. Además, cuando el modo de codificación indica codificación de predicción entre imágenes, el conmutador 209 se controla de manera que el terminal de entrada Te se conecta al terminal de salida Tf2 y el conmutador 210 se controla de manera que el terminal de salida Th se conecta al terminal de entrada Tg2. Además, la unidad de decodificación de modo 203 saca el modo de codificación Ms a la unidad de decodificación de compensación de movimiento 205.
En lo sucesivo, se dará una descripción del caso en el que el modo de codificación es codificación predictiva entre imágenes.
La unidad de decodificación de error de predicción 202 decodifica los datos codificados Ed introducidos para generar datos de error de predicción PDd. Los datos de error de predicción PDd generados se sacan al conmutador 209. En este caso, dado que el terminal de entrada Te del conmutador 209 se conecta al terminal de salida Tf2, los datos de error de predicción PDd se sacan a la unidad de adición 208.
La unidad de decodificación de compensación de movimiento 205 realiza compensación de movimiento sobre la base del vector de movimiento MV y el índice de imagen de referencia Rp que se extraen por la unidad de análisis 201 y obtiene una imagen de compensación de movimiento de la memoria de imágenes de referencia 207. Esta imagen de compensación de movimiento es una imagen en un área en la imagen de referencia, cuya área corresponde a un bloque objetivo a ser decodificado.
La imagen P13 se ha codificado usando las imágenes P4, P7 y P10 como imágenes candidatas para referencia hacia delante. Cuando se decodifica la imagen P13, estas imágenes candidatas ya se han decodificado y se almacenan en la memoria de imágenes de referencia 207.
Así, la unidad de decodificación de compensación de movimiento 205 determina cuál de las imágenes P4, P7 y P10 se usan como una imagen de referencia cuando se codifica el bloque objetivo de la imagen P13. Entonces, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en un área en la imagen de referencia, cuya área corresponde al bloque objetivo, como una imagen de compensación de movimiento de la memoria de imágenes de referencia 207 sobre la base del vector de movimiento.
En lo sucesivo, se dará una descripción de cómo cambian con el tiempo las imágenes almacenadas en la memoria de imágenes de referencia 207 y un método para determinar una imagen de referencia, con referencia a la figura 3.
La memoria de imágenes de referencia 207 se controla por la unidad de control de memoria 204 sobre la base de información que indica qué tipo de referencia se ha llevado a cabo para obtener imágenes P e imágenes B (información de imagen de referencia), cuya información se extrae de la información de cabecera del flujo de bits.
Como se muestra en la figura 3, la memoria de imágenes de referencia 207'tiene áreas de memoria (#1)~(#5) para cinco imágenes. Cuando se inicia la decodificación de la imagen P13, las imágenes B8, P4, P7, P10 y B9 se
5
10
15
20
25
30
35
40
45
50
almacenan en la memoria de imágenes de referencia 207. La imagen P13 se decodifica usando las imágenes P4, P7 y P10 como imágenes candidatas para una imagen de referencia. La imagen decodificada P13 se almacena en el área de memoria en la que se ha almacenado la imagen P8. La razón es como sigue. Mientras que las imágenes P4, P7 y P10 se usan como imágenes candidatas para una imagen de referencia cuando se decodifican la imagen P13 y las siguientes imágenes, la imagen B8 no se usa como una imagen de referencia cuando se decodifican estas imágenes.
En la figura 3, cada imagen en un círculo es una imagen (imagen objetivo) que se almacena finalmente en la memoria de imágenes de referencia 207 cuando se ha completado la decodificación de la imagen objetivo.
En este caso, a qué imagen se ha hecho referencia en la detección del vector de movimiento del bloque objetivo en la imagen P13 se puede determinar a partir de la información de imagen de referencia que se añade al vector de movimiento.
Concretamente, la información de imagen de referencia es índices de imágenes de referencia y los índices de imágenes de referencia se asignan a las imágenes candidatas de referencia para la imagen P13. Esta asignación de los índices de imágenes de referencia a las imágenes candidatas de referencia se lleva a cabo de manera que un índice menor se asigna a una imagen candidata de referencia que es en cuanto al tiempo más cercana a la imagen objetivo (imagen P13).
Para ser específicos, cuando se ha hecho referencia a la imagen P10 en la codificación del bloque objetivo de la imagen P13, información que indica que la imagen candidata (imagen P10) justo anterior a la imagen objetivo se ha usado como una imagen de referencia (por ejemplo, índice de imagen de referencia [0]) se describe en el flujo de bits del bloque objetivo. Además, cuando se ha hecho referencia a la imagen P7 en la codificación del bloque objetivo, información que indica que la imagen candidata que es dos imágenes anterior a la imagen objetivo se ha usado como una imagen de referencia (por ejemplo, índice de imagen de referencia [1]) se describe en el flujo de bits del bloque objetivo. Además, cuando se ha hecho referencia a la imagen P4 en la codificación del bloque objetivo de la imagen P13, información que indica que la imagen candidata que es tres imágenes anterior a la imagen objetivo se ha usado como una imagen de referencia (por ejemplo, índice de imagen de referencia [2]) se describe en el flujo de bits del bloque objetivo.
Es posible conocer cuál de las imágenes candidatas se ha usado como una imagen de referencia en la codificación del bloque objetivo, mediante el índice de imagen de referencia.
De este modo, la unidad de decodificación de compensación de movimiento 205 obtiene la imagen de compensación de movimiento, es decir, la imagen en el área en la imagen de referencia que corresponde al bloque objetivo, de la memoria de imágenes de referencia 207, según el vector de movimiento y la información de imagen de referencia.
La imagen de compensación de movimiento generada de esta manera se saca a la unidad de adición 208.
Además, cuando se realiza decodificación de una imagen P, la unidad de decodificación de compensación de movimiento 205 saca el vector de movimiento MV y la información de imagen de referencia Rp a la unidad de almacenamiento de vector de movimiento 226.
La unidad de adición 208 añade los datos de error de predicción PDd y los datos (datos de predicción) Pd de la imagen de compensación de movimiento para generar datos decodificados Ad. Los datos decodificados Ad así generados se sacan como datos de imagen decodificados DId, a través del conmutador 210 a la memoria de imágenes de referencia 207.
De este modo, los bloques en la imagen P13 se decodifican sucesivamente. Cuando todos los bloques en la imagen P13 se han decodificado, tiene lugar la decodificación de la imagen B11.
(Proceso de decodificación para la imagen B11)
Dado que la unidad de análisis de flujo de bits 201, la unidad de decodificación de modo 203 y la unidad de decodificación de error de predicción 202 operan de la misma forma que se describe para la decodificación de la imagen P13, no es necesaria una descripción repetida.
La unidad de decodificación de compensación de movimiento 205 genera datos de compensación de movimiento a partir de la información introducida tal como el vector de movimiento. La unidad de análisis de flujo de bits 201 saca el vector de movimiento y el índice de imagen de referencia a la unidad de decodificación de compensación de movimiento 205. La imagen P11 se obtiene mediante codificación predictiva usando las imágenes P7, B9 y P10 como imágenes candidatas para referencia hacia delante y la imagen P13 como una imagen candidata para referencia hacia atrás. En la decodificación de la imagen objetivo, estas imágenes candidatas de referencia ya se han decodificado y se almacenan en la memoria de imágenes de referencia 207.
5
10
15
20
25
30
35
40
45
50
En lo sucesivo, se dará una descripción de cómo las imágenes almacenadas en la memoria de imágenes de referencia 207 cambian con el tiempo y un método para determinar una imagen de referencia, con referencia a la figura 3.
La memoria de imágenes de referencia 207 se controla por la unidad de control de memoria 204 sobre la base de información lh que indica qué tipo de referencia se ha llevado a cabo en la codificación de imágenes P e imágenes B, cuya información se extrae de la información de cabecera del flujo de bits.
Cuando se inicia la decodificación de la imagen P11, las imágenes P13, P4, P7, P10 y B9 se almacenan en la memoria de imágenes de referencia 207 como se muestra en la figura 3. La imagen B11 se decodifica usando las imágenes P7, B9 y P10 como imágenes candidatas para referencia hacia delante y la imagen P13 como una imagen de referencia hacia atrás. La imagen decodificada B11 se almacena en el área de memoria en la que la imagen P4 se había almacenado, debido a que la imagen P4 no se usa como una candidata para una imagen de referencia cuando se decodifica la imagen B11 y las siguiente imágenes.
En este caso, a qué imagen candidata se ha hecho referencia en la detección del vector de movimiento hacia delante se puede determinar a partir de la información de imagen de referencia añadida al vector de movimiento.
Para ser específicos, cuando se ha hecho referencia a la imagen P10 en la codificación de bloque objetivo de la imagen B11, información que indica que la imagen candidata (imagen P10) justo anterior a la imagen objetivo se ha usado como una imagen de referencia (por ejemplo, índice de imagen de referencia [0]) se describe en el flujo de bits del bloque de imagen. Además, cuando se ha hecho referencia a la imagen B9 en la codificación del bloque objetivo, información que indica que la imagen que es dos imágenes anterior a la imagen objetivo se ha usado como una imagen de referencia (por ejemplo, índice de imagen de referencia [1]) se describe en el flujo de bits del bloque objetivo. Además, cuando se ha hecho referencia a la imagen P7 en la codificación del bloque objetivo de la imagen P13, información que indica que la imagen candidata que es tres imágenes anterior a la imagen objetivo se ha usado como una imagen de referencia (por ejemplo, índice de imagen de referencia [2]) se describe en el flujo de bits del bloque objetivo.
Por consiguiente, es posible conocer cuál de las imágenes candidatas se ha usado como una imagen de referencia en la codificación del bloque objetivo, a partir del índice de imagen de referencia.
Cuando el modo seleccionado es codificación predictiva bidireccional, la unidad de decodificación de compensación de movimiento 205 determina cuál de las imágenes P7, B9 y P10 se ha usado para referencia hacia delante, a partir del índice de imagen de referencia. Entonces, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen de compensación de movimiento hacia delante de la memoria de imágenes de referencia 207 sobre la base del vector de movimiento hacia delante y, además, obtiene una imagen de compensación de movimiento hacia atrás de la memoria de imágenes de referencia 207 sobre la base del vector de movimiento hacia atrás.
Entonces, la unidad de decodificación de compensación de movimiento 205 realiza adición y promediado de la imagen de compensación de movimiento hacia delante y la imagen de compensación de movimiento hacia atrás para generar una imagen de compensación de movimiento.
A continuación, se describirá un proceso de generación de una imagen de compensación de movimiento usando vectores de movimiento hacia delante y hacia atrás.
(Modo de predicción bidireccional)
La figura 17 ilustra un caso en el que la imagen objetivo a ser decodificada es la imagen B11 y una decodificación predictiva bidireccional se realiza en un bloque (bloque objetivo) BLa01 a ser decodificado, en la imagen B11.
Inicialmente, se dará una descripción de un caso en el que la imagen de referencia hacia delante es la imagen P10 y la imagen de referencia hacia atrás es la imagen P13.
En este caso, el vector de movimiento hacia delante es un vector de movimiento MVe01 que indica un área CRe01 en la imagen P10, cuya área corresponde al bloque BLa01. El vector de movimiento hacia atrás es un vector de movimiento MVg01 que indica un área CRg01 en la imagen P13, cuya área corresponde al bloque BLa01.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área CRe01 en la imagen P10 como una imagen de referencia hacia delante y una imagen en el área CRg01 en la imagen P13 como una imagen de referencia hacia atrás, de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen sobre las imágenes en ambas áreas CRe01 y CRg01 para obtener una imagen de compensación de movimiento que corresponde al bloque objetivo BLa01.
A continuación, se dará una descripción de un caso en el que la imagen de referencia hacia delante es la imagen B9 y la imagen de referencia hacia atrás es la imagen P13.
5
10
15
20
25
30
35
40
45
50
55
En este caso, el vector de movimiento hacia delante es un vector de movimiento MVf01 que indica un área CRf01 en la imagen B9, cuya área corresponde al bloque BLa01. El vector de movimiento hacia atrás es un vector de movimiento MVg01 que indica un área CRg01 en la imagen P13, cuya área corresponde al bloque BLa01.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área CRf01 en la imagen B9 como una imagen de referencia hacia delante y una imagen en el área CRg01 en la imagen P13 como una imagen de referencia hacia atrás, de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen para las imágenes en ambas áreas CRf01 y CRg01 para obtener una imagen de compensación de movimiento que corresponde al bloque BLa01.
(Modo directo)
Además, cuando el modo de codificación es el modo directo, la unidad de decodificación de compensación de movimiento 205 obtiene un vector de movimiento (vector de movimiento base) de un bloque que se incluye en la imagen de referencia hacia atrás P13 para la imagen objetivo B11 y se coloca relativamente en la misma posición que el bloque objetivo, cuyo vector de movimiento se almacena en la unidad de almacenamiento de vector de movimiento 226. La unidad de decodificación de compensación de movimiento 205 obtiene una imagen de referencia hacia delante y una imagen de referencia hacia atrás de la memoria de imágenes de referencia 207 usando el vector de movimiento base. Entonces, la unidad de decodificación de compensación de movimiento 205 realiza adición y promediado de datos de imagen para la imagen de referencia hacia delante y la imagen de referencia hacia atrás, generando por ello una imagen de compensación de movimiento que corresponde al bloque objetivo. En la siguiente descripción, un bloque en una imagen, cuya posición relativa con respecto a una imagen es igual a la de un bloque específico en otra imagen se refiere simplemente como un bloque que se sitúa en la misma posición que un bloque específico en una imagen.
La figura 18(a) muestra un caso en el que el bloque BLa10 en la imagen B11 se decodifica en el modo directo con referencia a la imagen P10 que es justo anterior a la imagen B11 (primer ejemplo de decodificación de modo directo).
Un vector de movimiento base a ser usado para decodificación de modo directo del bloque BLa10 es un vector de movimiento hacia delante (vector de movimiento base) MVh10 de un bloque (bloque base) BLg10 situado en la misma posición que el bloque BLa10, cuyo bloque BLg10 se incluye en la imagen (imagen base) P13 a la que se hace referencia hacia atrás cuando se decodifica el bloque BLa10. El vector de movimiento hacia atrás MVh10 indica un área CRh10 que corresponde al bloque base BLg10, en la imagen P10 que es justo anterior a la imagen B11.
En este caso, como un vector de movimiento hacia delante MVk10 del bloque objetivo BLa10 a ser decodificado, se emplea un vector de movimiento que es paralelo al vector de movimiento base MVh10 e indica un área CRk10 incluida en la imagen P10 y que corresponde al bloque objetivo BLa10. Además, como un vector de movimiento hacia atrás MVi10 del bloque objetivo BLa10 a ser decodificado, se emplea un vector de movimiento que es paralelo al vector de movimiento base MVh10 e indica un área CRi10 incluida en la imagen P13 y que corresponde al bloque objetivo BLa10.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área CRk10 de la imagen de referencia hacia delante P10 como una imagen de referencia hacia delante y una imagen en el área CRi10 de la imagen de referencia hacia atrás P13 como una imagen de referencia hacia atrás, de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen de ambas imágenes para obtener una imagen de compensación de movimiento (imagen de predicción) que corresponde al bloque objetivo BLa10.
En este caso, la magnitud (MVF) del vector de movimiento hacia delante MVk10 y la magnitud (MVB) del vector de movimiento hacia atrás MVi10 se obtienen mediante las fórmulas anteriormente descritas (1) y (2), usando la magnitud (MVR) del vector de movimiento base MVh10.
Las magnitudes MVF y MVB de los vectores de movimiento respectivos muestran la componente horizontal y la componente vertical del vector de movimiento, respectivamente.
Además, TRD indica una distancia basada en el tiempo entre la imagen de referencia hacia atrás P13 para el bloque objetivo BLa10 en la imagen B11 y la imagen P10 a la que se hace referencia hacia delante cuando se decodifica el bloque (bloque base) BLg10 en la imagen de referencia hacia atrás (imagen base) P13. Además, TRF es la distancia basada en el tiempo entre la imagen objetivo B11 y la imagen de referencia justo anterior P10 y TRB es la distancia basada en el tiempo entre la imagen objetivo B11 y la imagen P10 a la que se hace referencia cuando se decodifica el bloque BLg10 en la imagen de referencia hacia atrás P13.
La figura 18(b) muestra un caso en el que un bloque BLa20 en la imagen B11 se decodifica en el modo directo con referencia a la imagen P10 que es justo anterior a la imagen B11 (segundo ejemplo de decodificación de modo directo).
5
10
15
20
25
30
35
40
45
50
55
En este segundo ejemplo de decodificación de modo directo, en contraste con el primer ejemplo de decodificación de modo directo mostrado en la figura 18(a), una imagen a la que se hace referencia hacia delante en la decodificación del bloque base (es decir, un bloque colocado en la misma posición que el bloque objetivo, en la imagen de referencia hacia atrás del bloque objetivo) es la imagen P7.
Es decir, un vector de movimiento base a ser usado para decodificación de modo directo del bloque BLa20 es un vector de movimiento MVh20 de un bloque BLg20 situado en la misma posición que el bloque BLa20, cuyo bloque BLg20 se incluye en la imagen P13 a la que se hace referencia hacia atrás cuando se decodifica el bloque BLa20. El vector de movimiento hacia atrás MVh20 indica un área CRh20 que corresponde al bloque base BLg20, en la imagen P7 que se coloca hacia delante de la imagen objetivo B11.
En este caso, como un vector de movimiento hacia delante MVk20 del bloque objetivo BLa20 a ser decodificado, se emplea un vector de movimiento, que es paralelo al vector de movimiento base MVh20 e indica un área CRk20 incluida en la imagen P10 y que corresponde al bloque objetivo BLa20. Además, como un vector de movimiento hacia atrás MVi20 del bloque objetivo BLa20 a ser decodificado, se emplea un vector de movimiento, el cual es paralelo al vector de movimiento base MVh20 e indica un área CRi20 incluida en la imagen P13 y que corresponde al bloque objetivo BLa20.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área CRk20 de la imagen de referencia hacia delante P10 como una imagen de referencia hacia delante y una imagen en el área CRi20 de la imagen de referencia hacia atrás P13 como una imagen de referencia hacia atrás, de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen de ambas imágenes para obtener una imagen de compensación de movimiento (imagen de predicción) que corresponde al bloque objetivo BLa20.
En este caso, la magnitud (MVF) del vector de movimiento hacia delante MVk20 y la magnitud (MVB) del vector de movimiento hacia atrás MVi20 se obtienen mediante las fórmulas anteriormente descritas (1) y (2), usando la magnitud (MVR) del vector de movimiento base MVh20, como se describió para el primer ejemplo de decodificación de modo directo.
La figura 19(a) muestra un caso en el que un bloque BLa30 en la imagen B11 se decodifica en el modo directo con referencia a la imagen P7 que se coloca hacia delante de la imagen P10 que se coloca justo anterior a la imagen B11 (tercer ejemplo de decodificación de modo directo).
En este tercer ejemplo de decodificación de modo directo, en contraste con el primer y segundo ejemplos de codificación de modo directo mostrados en las figuras 18(a) y 18(b), una imagen a ser referida hacia delante en la decodificación del bloque objetivo no es una imagen justo anterior a la imagen objetivo, sino una imagen a la que se hace referencia hacia delante en la decodificación del bloque base (un bloque en la misma posición que el bloque objetivo) en la imagen base. La imagen base es una imagen a la que se hace referencia hacia atrás en la decodificación del bloque objetivo.
Es decir, un vector de movimiento base a ser usado para decodificación de modo directo del bloque BLa30 es un vector de movimiento MVh30 de un bloque BLg30 situado en la misma posición que el bloque BLa30, cuyo bloque BLg30 se incluye en la imagen P13 a la que se hace referencia hacia atrás en la decodificación del bloque BLa30. El vector de movimiento hacia delante MVh30 indica un área CRh30 que corresponde al bloque base BLg30, en la imagen P7 que se coloca hacia delante de la imagen objetivo B11.
En este caso, como un vector de movimiento hacia delante MVk30 del bloque objetivo BLa30 a ser decodificado, se emplea un vector de movimiento, que es paralelo al vector de movimiento base MVh30 e indica un área CRk30 incluida en la imagen P7 y que corresponde al bloque objetivo BLa30. Además, como un vector de movimiento hacia atrás MVi30 del bloque objetivo BLa30 a ser decodificado, se emplea un vector de movimiento, que es paralelo al vector de movimiento base MVh30 e indica un área CRi30 incluida en la imagen P13 y que corresponde al bloque objetivo BLa30.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área CRk30 de la imagen de referencia hacia delante P7 como una imagen de referencia hacia delante y una imagen en el área CRi30 de la imagen de referencia hacia atrás P13 como una imagen de referencia hacia atrás, de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen de ambas imágenes para obtener una imagen de compensación de movimiento (imagen de predicción) que corresponde al bloque objetivo BLa30.
En este caso, la magnitud (MVF) del vector de movimiento hacia delante MVk30 y la magnitud (MVB) del vector de movimiento hacia atrás MVi30 se obtienen mediante las fórmulas anteriormente descritas (2) y (3), usando la magnitud (MVR) del vector de movimiento base MVh30.
Cuando la imagen a ser referida en la decodificación del bloque BLg30 ya se ha borrado de la memoria de imágenes de referencia 207, la imagen de referencia hacia delante P10 que es en cuanto al tiempo la más cercana a la imagen objetivo se usa como una imagen de referencia hacia delante en el tercer ejemplo de decodificación de modo directo, el tercer ejemplo de decodificación de modo directo es idéntico al primer ejemplo de decodificación de modo directo.
5
10
15
20
25
30
35
40
45
50
55
La figura 19(b) muestra un caso en el que un bloque BLa40 en la imagen B11 se decodifica en el modo directo usando un vector de movimiento cuya magnitud es cero (cuarto ejemplo de decodificación de modo directo).
En este cuarto ejemplo de decodificación de modo directo, la magnitud del vector de movimiento de referencia empleado en el primer y segundo ejemplos mostrados en las figuras 18(a) y 18(b) es cero.
En este caso, como un vector de movimiento hacia delante MVk40 y un vector de movimiento hacia atrás MVi40 del bloque BLa40 a ser decodificado, se emplea un vector de movimiento cuya magnitud es cero.
Es decir, el vector de movimiento hacia delante MVk40 indica un área (bloque) CRk40 del mismo tamaño que el bloque objetivo, cuya área se incluye en la imagen P10 y se coloca en la misma posición que el bloque objetivo BLa40. Además, el vector de movimiento hacia atrás MVi40 indica un área (bloque) CRi40 del mismo tamaño que el bloque objetivo, cuya área se incluye en la imagen P13 y se coloca en la misma posición que el bloque objetivo BLa40.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área (bloque) CRk40 de la imagen de referencia hacia delante P10 como una imagen de referencia hacia delante y una imagen en el área (bloque) CRi40 de la imagen de referencia hacia atrás P13 como una imagen de referencia hacia atrás, de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen de ambas imágenes para obtener una imagen de compensación de movimiento (imagen de predicción) que corresponde al bloque objetivo BLa40. Este método es aplicable, por ejemplo, a un caso en el que un bloque que se incluye en la imagen P13 como una imagen de referencia hacia atrás de la imagen B11 y se sitúa en la misma posición que el bloque BLa40 es un bloque que no tiene vector de movimiento como un bloque codificado dentro del cuadro.
Los datos de la imagen de compensación de movimiento generados de esta manera se sacan a la unidad de adición 208. La unidad de adición 208 añade los datos de error de predicción introducidos y los datos de imagen de compensación de movimiento para generar datos de imagen decodificados. Los datos de imagen decodificados así generados se sacan a través del conmutador 210 a la memoria de imágenes de referencia 207 y la imagen decodificada se almacena en la memoria de imágenes de referencia 207.
La unidad de control de memoria 204 controla la memoria de imágenes de referencia 207 sobre la base de la información de cabecera Ih que indica qué tipo de referencia se ha llevado a cabo en la codificación de las imágenes P y las imágenes B extraídas de la información de cabecera del flujo de bits.
Como se describió anteriormente, los bloques en la imagen B11 se decodifican sucesivamente. Cuando todos los bloques en la imagen B11 se han decodificado, tiene lugar la decodificación de la imagen B12.
En la decodificación de la imagen B descrita anteriormente, un bloque específico se trata algunas veces como un bloque de salto. En lo sucesivo, se describirá brevemente la decodificación de un bloque de salto.
Cuando se encuentra que un bloque específico se trata como un bloque de salto durante la decodificación de un flujo de bits introducido, desde un identificador de salto o una información de número de bloque que se describe en el flujo de bits, se lleva a cabo en el modo directo una compensación de movimiento, es decir, una adquisición de una imagen de predicción que corresponde al bloque objetivo.
Por ejemplo, como se muestra en la figura 6(b), cuando los bloques MB(r+1) y MB(r+2) entre el bloque MB(r) y el bloque MB(r+3) en la imagen B11 se tratan como bloques de salto, la unidad de análisis de flujo de bits 201 detecta el identificador de salto Sf a partir del flujo de bits Bs. Cuando el identificador de salto Sf se introduce a la unidad de decodificación de modo 223, la unidad de decodificación de modo 223 da instrucciones a la unidad de decodificación de compensación de movimiento 205 para realizar compensación de movimiento en el modo directo.
Entonces, la unidad de decodificación de compensación de movimiento 205 obtiene las imágenes de predicción de los bloques MB(r+1) y MB(r+2), sobre la base de una imagen (imagen de referencia hacia delante) de un bloque que se incluye en la imagen de referencia hacia delante P10 y se coloca en la misma posición que el bloque tratado como un bloque de salto y una imagen (imagen de referencia hacia atrás) de un bloque en la misma posición que el bloque tratado como un bloque de salto y entonces saca los datos de las imágenes de predicción a la unidad de adición 208. La unidad de decodificación de error de predicción 202 saca datos cuyo valor es cero, como datos de diferencia de los bloques tratados como bloques de salto. En la unidad de adición 208, dado que los datos de diferencia de los bloques tratados como bloques de salto son cero, los datos de las imágenes de predicción de los bloques MB(r+1) y MB(r+2) se sacan a la memoria de imágenes de referencia 207 como imágenes decodificadas de los bloques MB(r+1) y MB(r+2).
Además, en el procesamiento de modo directo mostrado en la figura 18(a) (primer ejemplo), el procesamiento de modo directo mostrado en la figura 18(b) (segundo ejemplo) y el procesamiento de modo de dirección mostrado en la figura 19(a) (tercer ejemplo), todos los bloques cuyos datos de diferencia llegan a ser cero no se tratan necesariamente como bloques de salto. Es decir, un bloque objetivo se somete a predicción bidireccional usando una imagen que se coloca justo anterior a la imagen objetivo como una imagen de referencia hacia delante y un
5
10
15
20
25
30
35
40
45
50
vector de movimiento cuya magnitud es cero y solamente cuando los datos de diferencia del bloque objetivo llegan a ser cero, este bloque objetivo se puede tratar como un bloque objetivo.
En este caso, cuando se encuentra, a partir del identificador de salto o similar en el flujo de bits Bs, que un bloque específico se trata como un bloque de salto, se debería llevar a cabo compensación de movimiento mediante predicción bidireccional cuyo movimiento es cero, usando una imagen de referencia justo anterior como una imagen de referencia hacia delante.
(Proceso de decodificación para la imagen B12)
Dado que la unidad de análisis de flujo de bits 201, la unidad de decodificación de modo 223 y la unidad de decodificación de error de predicción 202 operan del mismo modo que se describe para la decodificación de la imagen P10, no es necesaria una descripción repetida.
La unidad de decodificación de compensación de movimiento 205 genera datos de imagen de compensación de movimiento a partir de la información introducida tal como el vector de movimiento. El vector de movimiento MV y el índice de imagen de referencia Rp se introducen a la unidad de decodificación de compensación de movimiento 205. La imagen P12 se ha codificado usando las imágenes P7, P10 y B11 como imágenes candidatas para referencia hacia delante y la imagen P13 como una imagen candidata para referencia hacia atrás. Al decodificar la imagen objetivo, estas imágenes candidatas ya se han decodificado y se almacenan en la memoria de imágenes de referencia 207.
El cambio en cuanto al tiempo de las imágenes almacenadas en la memoria de imágenes de referencia 207 y el método para determinar una imagen de referencia son idénticos a los del caso de decodificación de la imagen B11 descrita con respecto a la figura 3.
Cuando el modo de codificación es codificación predictiva bidireccional, la unidad de decodificación de compensación de movimiento 205 determina cuál de las imágenes P7, P10 y B11 se han usado para referencia hacia delante, a partir del índice de imagen de referencia. Entonces, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen de referencia hacia delante a partir de la memoria de imágenes de referencia 207 sobre la base del vector de movimiento hacia delante y, además, obtiene una imagen de referencia hacia atrás de la memoria de imágenes de referencia 207 sobre la base del vector de movimiento hacia atrás. Entonces, la unidad de decodificación de compensación de movimiento 205 realiza adición y promediado de los datos de imagen de la imagen de referencia hacia delante y la imagen de referencia hacia atrás para generar una imagen de compensación de movimiento que corresponde al bloque objetivo.
(Modo de predicción bidireccional)
La figura 20 ilustra un caso en el que la imagen objetivo a ser decodificada es la imagen B12 y la decodificación predictiva bidireccional se realiza para un bloque (bloque objetivo) BLa02 a ser decodificado, en la imagen B12.
Inicialmente, se dará una descripción de un caso en el que la imagen de referencia hacia delante es la imagen B11 y la imagen de referencia hacia atrás es la imagen P13.
En este caso, el vector de movimiento hacia delante es un vector de movimiento MVe02 que indica un área CRe02 en la imagen B11 que corresponde al bloque BLa02. El vector de movimiento hacia atrás es un vector de movimiento MVg02 que indica un área CRg02 en la imagen P13 que corresponde al bloque BLa02.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área CRe02 en la imagen B11 como una imagen de referencia hacia delante y una imagen en el área CRg02 en la imagen P13 como una imagen de referencia hacia atrás, de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen de las imágenes en ambas áreas CRe02 y CRg02 para obtener una imagen de compensación de movimiento que corresponden al bloque objetivo BLa02.
A continuación, se dará una descripción de un caso en el que la imagen de referencia hacia delante es la imagen P10 y la imagen de referencia hacia atrás es la imagen P13.
En este caso, el vector de movimiento hacia delante es un vector de movimiento MVf02 que indica un área CRf02 en la imagen P10, que corresponde al bloque BLa02. El vector de movimiento hacia atrás es un vector de movimiento MVg02 que indica un área CRg02 en la imagen P13, que corresponde al bloque BLa02.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área CRf02 en la imagen P10 como una imagen de referencia hacia delante y una imagen en el área CRg02 en la imagen P13 como una imagen de referencia hacia atrás de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen de las imágenes en ambas áreas CRf02 y CRg02 para obtener una imagen de compensación de movimiento que corresponden al bloque objetivo BLa02.
5
10
15
20
25
30
35
40
45
50
55
(Modo directo)
Además, cuando el modo de codificación es el modo directo, la unidad de decodificación de compensación de movimiento 205 obtiene un vector de movimiento (vector de movimiento base) de un bloque de referencia (un bloque cuya posición relativa es la misma que la de la posición objetivo) en la imagen de referencia hacia atrás P13 para la imagen objetivo B12, cuyo vector de movimiento se almacena en la unidad de almacenamiento de vector de movimiento 226. La unidad de decodificación de compensación de movimiento 205 obtiene una imagen de referencia hacia delante y una imagen de referencia hacia atrás de la memoria de imágenes de referencia 207 usando un vector de movimiento base. Entonces, la unidad de decodificación de compensación de movimiento 205 realiza adición y promediado de datos de imagen de la imagen de referencia hacia delante y la imagen de referencia hacia atrás, generando por ello una imagen de compensación de movimiento que corresponde al bloque objetivo.
La figura 21(a) muestra un caso en el que el bloque BLa50 en la imagen B12 se decodifica en el modo directo con referencia a la imagen B11 que es justo anterior a la imagen B12 (primer ejemplo de decodificación de modo directo).
Un vector de movimiento base a ser usado para decodificación de modo directo del bloque BLa50 es un vector de movimiento hacia delante MVj50 del bloque base (es decir, el bloque BLg50 colocado en la misma posición que el bloque BLa50) en la imagen P13 al que se hace referencia cuando se decodifica el bloque BLa50. El vector de movimiento hacia delante MVj50 indica un área CRj50 que corresponde al bloque base BLg50 en la imagen P10 que se coloca delante y cerca de la imagen B11.
En este caso, como un vector de movimiento hacia delante MVk50 del bloque objetivo BLa50 a ser decodificado, se emplea un vector de movimiento que es paralelo al vector de movimiento base MVj50 e indica un área CRk50 incluida en la imagen B11 y que corresponde al bloque objetivo BLa50. Además, como un vector de movimiento hacia atrás MVi50 del bloque objetivo BLa50 a ser decodificado, se emplea un vector de movimiento que es paralelo al vector de movimiento base MVj50 e indica un área CRi50 incluida en la imagen P13 y que corresponde al bloque objetivo BLa50.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área CRk50 de la imagen de referencia hacia delante B11 como una imagen de referencia hacia delante y una imagen en el área CRi50 de la imagen de referencia hacia atrás P13 como una imagen de referencia hacia atrás de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen de ambas imágenes para obtener una imagen de compensación de movimiento (imagen de predicción) que corresponde al bloque objetivo BLa50.
En este caso, la magnitud (MVF) del vector de movimiento hacia delante MVk50 y la magnitud (MVB) del vector de movimiento hacia atrás MVi50 se obtienen mediante las fórmulas anteriormente descritas (1) y (2) usando la magnitud (MVR) del vector de movimiento base MVh10.
Las magnitudes MVF y MVB de los vectores de movimiento respectivos muestran la componente horizontal y la componente vertical del vector de movimiento, respectivamente.
La figura 21(b) muestra un caso en el que el bloque BLa60 en la imagen B12 se decodifica en el modo directo con referencia a la imagen B11 que se coloca hacia delante de la imagen B12 (segundo ejemplo de decodificación de modo directo).
En este segundo ejemplo de decodificación de modo directo, en contraste con el primer ejemplo de decodificación de modo directo mostrado en la figura 21(a), una imagen a la que se hace referencia hacia delante en la decodificación del bloque base (es decir, un bloque situado en la misma posición que el bloque objetivo, en la imagen de referencia hacia atrás para el bloque objetivo) es la imagen P7.
Es decir, un vector de movimiento base a ser usado para decodificación de modo directo del bloque BLa60 es un vector de movimiento hacia delante MVj60 del bloque de referencia (bloque BLg60 en la misma posición que el bloque BLa60) en la imagen P13 a la que se hace referencia hacia atrás cuando se decodifica el bloque BLa60. El vector de movimiento hacia delante MVj60 indica un área CRj60 que corresponde al bloque base BLg60, en la imagen P7 que se coloca hacia delante de la imagen objetivo B12.
En este caso, como un vector de movimiento hacia delante MVk60 del bloque objetivo BLa60 a ser decodificado, se emplea un vector de movimiento, que es paralelo al vector de movimiento base MVj60 e indica un área CRk60 incluida en la imagen B11 y que corresponde al bloque objetivo BLa60. Además, como un vector de movimiento hacia atrás MVi60 del bloque objetivo BLa60 a ser decodificado, se emplea un vector de movimiento, que es paralelo al vector de movimiento base MVj60 e indica un área CRi60 incluida en la imagen P13 y que corresponde al bloque objetivo BLa60.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área CRk60 de la imagen de referencia hacia delante B11 como una imagen de referencia hacia delante y una imagen en el área CRi60 de la imagen de referencia hacia atrás P13 como una imagen de referencia hacia atrás de la memoria
5
10
15
20
25
30
35
40
45
50
de imágenes de referencia 207 y realiza adición y promediado de datos de imagen de ambas imágenes para obtener una imagen de compensación de movimiento (imagen de predicción) que corresponde al bloque objetivo BLa60.
En este caso, la magnitud (MVF) del vector de movimiento hacia delante MVk60 y la magnitud (MVB) del vector de movimiento hacia atrás MVi60 se obtienen mediante las fórmulas anteriormente descritas (1) y (2), usando la magnitud (MVR) del vector de movimiento base MVj60, como se describió para el primer ejemplo de decodificación de modo directo.
La figura 22(a) muestra un caso en el que un bloque BLa70 en la imagen B12 se decodifica en el modo directo con referencia a la imagen P7 que se coloca hacia delante de la imagen P10 hacia delante que es la más cercana a la imagen B12 (tercer ejemplo de decodificación de modo directo).
En este tercer ejemplo de decodificación de modo directo, en contraste con el primer y segundo ejemplos de codificación de modo directo mostrados en las figuras 21(a) y 21 (b), una imagen a ser referida hacia delante en la decodificación del bloque objetivo no es una imagen justo anterior a la imagen objetivo, sino una imagen a la que se hace referencia hacia delante en la decodificación del bloque base en la imagen base. La imagen base es una imagen a la que se hace referencia hacia atrás en la decodificación del bloque objetivo.
Es decir, un vector de movimiento base a ser usado en decodificación de modo directo del bloque BLa70 es un vector de movimiento hacia delante MVj70 de un bloque base bloque BLg70 (un bloque en la misma posición que el bloque BLa70) en la imagen P13 a la que se hace referencia hacia atrás en la decodificación del bloque BLa70. El vector de movimiento hacia delante MVj70 indica un área CRj70 que corresponde al bloque base BLg70 en la imagen P7 que se coloca hacia delante de la imagen objetivo B12.
En este caso, como un vector de movimiento hacia delante MVk70 del bloque objetivo BLa70 a ser decodificado, se emplea un vector de movimiento que es paralelo al vector de movimiento base MVj70 e indica un área CRk70 incluida en la imagen P7 y que corresponde al bloque objetivo BLa70. Además, como un vector de movimiento hacia atrás MVi70 del bloque objetivo BLa70, se emplea un vector de movimiento que es paralelo al vector de movimiento base MVj70 e indica un área CRi70 incluida en la imagen P13 y que corresponde al bloque objetivo BLa70.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área CRk70 de la imagen de referencia hacia delante P7 como una imagen de referencia hacia delante y una imagen en el área CRi70 de la imagen de referencia hacia atrás P13 como una imagen de referencia hacia atrás de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen de ambas imágenes para obtener una imagen de compensación de movimiento (imagen de predicción) que corresponde al bloque objetivo BLa70.
En este caso, la magnitud (MVF) del vector de movimiento hacia delante MVk70 y la magnitud (MVB) del vector de movimiento hacia atrás MVi70 se obtienen mediante las fórmulas anteriormente descritas (2) y (3), usando la magnitud (MVR) del vector de movimiento base MVj70.
Cuando la imagen a ser referida en la decodificación del bloque BLg70 ya se ha borrado de la memoria de imágenes de referencia 207, la imagen de referencia hacia delante P10 es en cuanto al tiempo la más cercana a la imagen objetivo se usa como una imagen de referencia hacia delante en el tercer ejemplo de decodificación de modo directo. En este caso, el tercer ejemplo de decodificación de modo directo es idéntico al primer ejemplo de decodificación de modo directo.
La figura 22(b) muestra un caso en el que un bloque BLa80 en la imagen B12 se decodifica en el modo directo usando un vector de movimiento cuya magnitud es cero (cuarto ejemplo de decodificación de modo directo).
En este cuarto ejemplo de decodificación de modo directo, la magnitud del vector de movimiento de referencia empleado en el primer y segundo ejemplos mostrados en las figuras 21(a) y 21(b) es cero.
En este caso, como un vector de movimiento hacia delante MVk80 y un vector de movimiento hacia atrás MVi80 del bloque objetivo BLa80 a ser decodificado, se emplea un vector de movimiento cuya magnitud es cero.
Es decir, el vector de movimiento hacia delante MVk80 indica un área (bloque) CRk80 del mismo tamaño que el bloque objetivo, cuya área se incluye en la imagen B11 y se coloca en la misma posición que el bloque objetivo BLa80. Además, el vector de movimiento hacia atrás MVi80 indica un área (bloque) CRi80 del mismo tamaño que el bloque objetivo, cuya área se incluye en la imagen P13 y se coloca en la misma posición que el bloque objetivo BLa80.
Por consiguiente, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen en el área (bloque) CRk80 de la imagen de referencia hacia delante B11 como una imagen de referencia hacia delante y una imagen en el área (bloque) CRi80 de la imagen de referencia hacia atrás P13 como una imagen de referencia hacia atrás de la memoria de imágenes de referencia 207 y realiza adición y promediado de datos de imagen de ambas imágenes para obtener una imagen de compensación de movimiento (imagen de predicción) que corresponde al bloque objetivo BLa80. Este método es aplicable, por ejemplo, a un caso en el que un bloque que se incluye en la
5
10
15
20
25
30
35
40
45
50
55
imagen P13 como una imagen de referencia hacia atrás de la imagen B11 y se sitúa en la misma posición que el bloque BLa80 es un bloque que no tiene vector de movimiento como un bloque codificado dentro del cuadro.
Los datos de la imagen de compensación de movimiento generados de esta manera se sacan a la unidad de adición 208. La unidad de adición 208 añade datos de error de predicción introducidos y los datos de imagen de compensación de movimiento para generar datos de imagen decodificados. Los datos de imagen decodificados así generados se sacan a través del conmutador 210 a la memoria de imágenes de referencia 207.
Como se describió anteriormente, los bloques en la imagen B12 se decodifican sucesivamente. Los datos de imagen de las imágenes respectivas almacenadas en la memoria de imágenes de referencia 207 se reordenan en orden de tiempo a ser sacados como datos de imagen de salida Od.
A partir de entonces, las imágenes que siguen a la imagen B12, que se disponen tiempos de orden de decodificación como se muestra en la figura 16(a), se decodifican sucesivamente según el tipo de imagen, de la misma manera que se describió para las imágenes P13, B11 y B12. La figura 16(b) muestra las imágenes reordenadas en orden de tiempos de visualización.
Durante la decodificación del flujo de bits introducido, si se encuentra que un bloque específico se trata como un bloque de salto, desde un identificador de salto o una información de número de bloque que se describe en el flujo de bits, una compensación de movimiento, es decir, adquisición de una imagen de predicción que corresponde a un bloque objetivo, se lleva a cabo en el modo directo como en el caso de decodificación de la imagen B11.
Como se describió anteriormente, en el aparato de decodificación de imágenes en movimiento 20 según la segunda realización, cuando se decodifica un bloque en una imagen B, se genera una imagen de predicción que corresponde al bloque objetivo usando una imagen P ya decodificada y una imagen B ya decodificada como imágenes candidatas para referencia hacia delante, sobre la base de información (índice de imagen de referencia) que indica imágenes candidatas a las que se hace referencia hacia delante en la codificación del bloque objetivo, cuya información se incluye en el flujo de bits que corresponde al bloque objetivo a ser decodificado. Por lo tanto, es posible decodificar correctamente un bloque en una imagen B objetivo que se ha codificado usando una imagen B como una imagen candidata para referencia hacia delante.
Además, en el aparato de decodificación de imágenes en movimiento 20, cuando un bloque objetivo a ser decodificado que se incluye en una imagen B se ha codificado en el modo directo, un vector de movimiento del bloque objetivo se calcula sobre la base de un vector de movimiento de un bloque que se coloca en la misma posición que el bloque objetivo. Por lo tanto, no es necesario para el extremo de decodificación obtener la información que indica el vector de movimiento del bloque que se codifica en el modo directo, desde el extremo de codificación.
Además, en el aparato de decodificación de imágenes en movimiento 20, los datos de las imágenes ya decodificadas que se almacenan en la memoria de imágenes de referencia se gestionan sobre la base de la información que indica las imágenes candidatas que se usan en la codificación de imágenes P e imágenes B, cuya información se incluye como información de cabecera en el flujo de bits. Por ejemplo, a la terminación de la decodificación de una imagen, se borran sucesivamente datos de imágenes que no van a ser usadas como imágenes de referencia en la decodificación de las siguientes imágenes, por lo cual la memoria de imágenes se puede usar con eficiencia.
Además, cuando se decodifica un bloque objetivo en una imagen P, es posible determinar cuál de las imágenes candidatas plurales se usa como una imagen de referencia (es decir, a cuál de las imágenes candidatas se hace referencia en la detección del vector de movimiento del bloque objetivo a ser decodificado) de la información de imagen de referencia añadida a la información de vector de movimiento.
Del mismo modo, cuando se decodifica un bloque objetivo en una imagen B, es posible determinar cuál de las imágenes candidatas plurales para referencia hacia delante se usa como una imagen de referencia (es decir, a cuál de las imágenes candidatas se hace referencia en la detección del vector de movimiento hacia delante del bloque objetivo a ser decodificado) a partir de la información de imagen de referencia añadida a la información de vector de movimiento.
Mientras que en esta segunda realización se usa el modo directo como uno de los modos de codificación plurales para imágenes B, el modo directo no se usa necesariamente como el modo de codificación para imágenes B. En este caso, se prescinde de la unidad de almacenamiento de vector de movimiento 226 en el aparato de decodificación de imágenes en movimiento 20.
Además, mientras que en esta segunda realización se describen cuatro métodos específicos como ejemplos de modo directo (es decir, el primer ejemplo mostrado en la figura 18(a) o 21(a), el segundo ejemplo mostrado en la figura 18(b) o 21 (b), el tercer ejemplo mostrado en la figura 19(a) o 22(a) y el cuarto ejemplo mostrado en la figura 19(b) o 22(b), el aparato de codificación realiza codificación usando un método adecuado para un método de codificación que se usa como modo directo mediante el aparato de codificación. Más específicamente, cuando se emplean métodos plurales como modo directo, el aparato de decodificación realiza decodificación, usando
5
10
15
20
25
30
35
40
45
50
55
información que indica cuál de los métodos plurales se usa como modo directo específico, que se describe en el flujo de bits.
En este caso, la operación de la unidad de decodificación de compensación de movimiento 205 varía según la información. Por ejemplo, cuando esta información se añade en unidades de bloques para compensación de movimiento, la unidad de decodificación de modo 223 determina cuál de los cuatro métodos mencionados anteriormente se usa como modo directo en la codificación e informa a la unidad de decodificación de compensación de movimiento 205 del método determinado. La unidad de decodificación de compensación de movimiento 205 realiza decodificación predictiva de compensación de movimiento adecuada según el método determinado de modo directo.
Además, cuando la información (información de modo DM) que indica cuál de los métodos plurales se usa como modo directo se describe en la cabecera de la secuencia entera, la cabecera del GOP, la cabecera de imagen o la cabecera de segmento, la información de modo DM se transfiere para cada secuencia, GOP, imagen o segmento, desde la unidad de análisis de flujo de bit 201 a la unidad de decodificación de compensación de movimiento 205 y la unidad de decodificación de compensación de movimiento 205 cambia la operación.
Mientras que en esta segunda realización se colocan dos imágenes B entre una imagen I y una imagen P o entre imágenes P adyacentes, el número de imágenes B continuas puede ser tres o cuatro.
Además, mientras que en esta segunda realización se usan tres imágenes como imágenes candidatas para una imagen de referencia hacia delante para una imagen P, el número de imágenes candidatas de referencia para una imagen P puede ser distinto de tres.
Además, mientras que en esta segunda realización se usan dos imágenes I o P y una imagen B como imágenes candidatas para una imagen de referencia hacia delante en la decodificación de una imagen B, las imágenes candidatas de referencia hacia delante en la decodificación de una imagen B no están restringidas a las mismas.
Por otra parte, en esta segunda realización, como un método para gestionar la memoria de imágenes de referencia en la decodificación de la imagen P13, la imagen B11 y la imagen B12, se describe un método de gestión de manera colectiva de las imágenes P y las imágenes B a ser usadas como candidatas de una imagen de referencia, como se muestra en la figura 3. No obstante, el método de gestión de memoria de imágenes de referencia puede ser cualquiera de los cuatro métodos que se describen para la primera realización con referencia a las figuras 11 a 14, en las que todas las imágenes a ser usadas como candidatas para una imagen de referencia se separan en imágenes P e imágenes B a ser gestionadas.
En este caso, la memoria de imágenes de referencia 207 tiene áreas de memoria para seis imágenes, es decir, las áreas de memoria de imágenes P (#1)~(#4) y las áreas de memoria de imágenes B (#1) y (#2). Además, estas seis áreas de memoria no se forman necesariamente en una memoria de imágenes de referencia, sino que cada una de las seis áreas de memoria se puede constituir por una memoria de imágenes de referencia independiente.
Además, cuando el extremo de codificación emplea un método de asignación de índice de imagen de referencia en el que se determina, para cada imagen a ser decodificada, a cuál del área de memoria de imágenes P y el área de imagen B se da prioridad en la asignación de índices de imágenes de referencia como se muestra en la figura 14, el aparato de decodificación de imágenes en movimiento puede identificar fácilmente una imagen que se usa como una imagen de referencia entre imágenes candidatas plurales, sobre la base de los índices de imágenes de referencia, usando información descrita en el flujo de bits, que indica el área de memoria que tiene prioridad.
Por ejemplo, cuando la imagen objetivo a ser decodificada es la imagen B11, dado que la imagen de referencia hacia delante que es en cuanto al tiempo la más cercana a la imagen objetivo es la imagen P10, se asignan índices de imágenes de referencia a las imágenes almacenadas en la memoria de imágenes P con prioridad. Por consiguiente, un índice de imagen de referencia [0] se añade como información de cabecera al flujo de bits del bloque objetivo cuando la imagen P10 se usa como una imagen de referencia en la codificación del bloque objetivo de la imagen B11. Del mismo modo, un índice de imagen de referencia [1] se añade como información de cabecera cuando la imagen P7 se usa como una imagen de referencia y un índice de imagen de referencia [2] se añade como información de cabecera cuando se usa la imagen B9 como una imagen de referencia. Por consiguiente, el aparato de decodificación de imágenes en movimiento puede conocer qué imagen candidata se usa como una imagen de referencia en la codificación del bloque objetivo, según el índice de imagen de referencia.
En este caso, dado que la información que indica que los índices de imágenes de referencia se asignan a las imágenes candidatas en la memoria de imágenes P con prioridad se incluye como información de cabecera en el flujo de bits, la identificación de la imagen de referencia se facilita además usando esta información.
Además, cuando la imagen objetivo a ser decodificada es la imagen B12, dado que la imagen de referencia hacia delante que es en cuanto al tiempo la más cercana a la imagen objetivo es la imagen B11, se asignan índices de imágenes de referencia a las imágenes almacenadas en la memoria de imágenes B con prioridad. Por consiguiente, un índice de imagen de referencia [0] se añade como información de cabecera al flujo de bits del bloque objetivo cuando la imagen B11 se usa como una imagen de referencia en la codificación del bloque objetivo de la imagen
5
10
15
20
25
30
35
40
45
50
55
B12. Del mismo modo, un índice de imagen de referencia [1] se añade como información de cabecera cuando la imagen P10 se usa como una imagen de referencia y un índice de imagen de referencia [2] se añade como información de cabecera cuando la imagen P7 se usa como una imagen de referencia. Por consiguiente, el aparato de decodificación de imágenes en movimiento puede conocer qué imagen candidata se usa como una imagen de referencia en la codificación del bloque objetivo, según el índice de imagen de referencia.
En este caso, dado que la información que indica que los índices de imágenes de referencia se asignan a las imágenes candidatas en la memoria de imágenes B con prioridad se incluye como información de cabecera en el flujo de bits, la identificación de la imagen de referencia se facilita además usando esta información.
Además, hay casos en los que, en el extremo de codificación, uno de los cinco métodos mencionados anteriormente para gestionar la memoria de imágenes de referencia (consultar las figuras 3, 11 a 14) se selecciona previamente o algunos de estos cinco método se usan conmutándolos. Por ejemplo, cuando el extremo de codificación emplea algunos de los métodos plurales conmutándolos, el aparato de decodificación de imágenes en movimiento puede determinar el índice de imagen de referencia, según información que indica qué método se usa para cada imagen, que se describe en el flujo de bits.
Además, en esta segunda realización, los cinco métodos para gestionar la memoria de imágenes de referencia (consultar las figuras 3, 11 a 14) se describen para el caso en el que hay tres imágenes candidatas de referencia para una imagen P y hay dos imágenes P y una imagen B como imágenes candidatas de referencia hacia delante para una imagen B. No obstante, los cinco métodos para gestionar la memoria de imágenes de referencia también son aplicables a casos en los que el número de imágenes candidatas de referencia es diferente a las mencionadas anteriormente. Cuando el número de imágenes candidatas de referencia es diferente de los mencionados para la segunda realización, la capacidad de la memoria de imágenes de referencia también es diferente de la descrita para la segunda realización.
Por otra parte, en esta segunda realización, en el método de gestión de la memoria de imágenes de referencia en la que las candidatas de referencia almacenadas se separan en imágenes P e imágenes B (cuatro ejemplos mostrados en las figuras 11 a 14), las imágenes P se almacenan en el área de memoria de imágenes P mientras que las imágenes B se almacenan en el área de memoria de imágenes B. No obstante, una memoria de imágenes a corto plazo y una memoria de imágenes a largo plazo que se definen en H.263++ se pueden usar como áreas de memoria en las que se almacenan imágenes. Por ejemplo, la memoria de imágenes a corto plazo y la memoria de imágenes a largo plazo se pueden usar como un área de memoria de imágenes P y un área de memoria de imágenes B, respectivamente.
[Realización 3]
La figura 23 es un diagrama de bloques que ilustra un aparato de codificación de imágenes en movimiento 30 según una tercera realización de la presente invención.
El aparato de codificación de imágenes en movimiento 30 puede conmutar, según una señal de control suministrada desde el exterior, un método para asignar índices de imágenes de referencia a imágenes candidatas, entre un método de asignación de índices de imágenes de referencia a imágenes candidatas según una regla inicializada (método de asignación por defecto) y un método de asignación adaptativa de asignación de índices de imágenes de referencia a imágenes candidatas mediante el método de asignación por defecto y, además, cambiar adaptativamente los índices de imágenes de referencia asignados según el estado de codificación.
Para ser específicos, un modo de operación del aparato de codificación de imágenes en movimiento 30 según la tercera realización es la operación del aparato de codificación de imágenes en movimiento 10 según la primera realización. En otras palabras, cuando se selecciona el método de asignación por defecto como un método de asignación de índice de imagen de referencia del aparato de codificación de imágenes en movimiento 30, el aparato de codificación de imágenes en movimiento 30 realiza el mismo procesamiento que el del aparato de codificación de imágenes en movimiento 10.
En lo sucesivo, se describirá en detalle el aparato de codificación de imágenes en movimiento 30.
El aparato de codificación de imágenes en movimiento 30 se dota con una unidad de control de codificación 130, en lugar de la unidad de control de codificación 110 del aparato de codificación de imágenes en movimiento 10 según la primera realización. La unidad de control de codificación 130 conmuta, según una señal de control externa Cont, un método para asignar índices de imágenes de referencia a imágenes candidatas, entre un método de asignación de índices de imágenes de referencia según una regla inicializada (método de asignación por defecto) y un método que incluye un primer paso de asignación de índices de imágenes de referencia a imágenes candidatas por el método de asignación por defecto y un segundo paso de cambio de manera adaptativa de los índices de imágenes de referencia que se asignan a las imágenes candidatas por el método de asignación por defecto (método de asignación adaptativa).
Además, la unidad de control de codificación 130 incluye una unidad de detección (no mostrada) que detecta, para cada imagen objetivo a ser codificada, la eficiencia de codificación en un caso en el que cada una de las imágenes
5
10
15
20
25
30
35
40
45
50
candidatas de referencia plurales se usa como una imagen de referencia. La unidad de control de codificación 130 cambia el índice de imagen de referencia que se asigna a cada imagen candidata mediante el método de asignación por defecto, según la eficiencia de codificación detectada por la unidad de detección.
Más específicamente, la unidad de control de codificación 130 cambia el índice de imagen de referencia que se asigna a cada imagen candidata por el método de asignación por defecto, de manera que, entre imágenes candidatas plurales para una imagen objetivo, a una imagen candidata que proporciona una eficiencia de codificación mayor de la imagen objetivo cuando se usa como una imagen de referencia se da un índice de imagen de referencia menor.
Entonces, la unidad de selección de modo 139 selecciona, en el modo directo, una imagen que se asigna a un índice de imagen de referencia [0], como una imagen de referencia hacia delante para un bloque objetivo. En un modo de codificación predictiva distinto del modo directo tal como el modo de codificación predictiva bidireccional, la unidad de selección de modo 139 selecciona una imagen de referencia de entre imágenes candidatas plurales según la eficiencia de codificación.
Otros componentes del aparato de codificación de imágenes en movimiento 30 según la tercera realización son idénticos a los del aparato de codificación de imágenes en movimiento 10 según la primera realización.
En lo sucesivo se describirá la operación.
En el aparato de codificación de imágenes en movimiento 30, cuando el método de asignación por defecto se selecciona como un método para asignar índices de imágenes de referencia a imágenes candidatas según la señal de control externa Cont, la operación del aparato de codificación de imágenes en movimiento 30 es idéntica a la operación del aparato de codificación de imágenes en movimiento 10 según la primera realización.
Por otra parte, cuando se selecciona el método de asignación adaptativa como un método para asignar índices de imágenes de referencia a imágenes candidatas según la señal de control externa Cont, el aparato de codificación de imágenes en movimiento 30 realiza, en el primer paso, asignación de índices de imágenes de referencia de la misma manera que se describió para el aparato de codificación de imágenes en movimiento 10.
Cuando se selecciona el método de asignación adaptativa, el aparato de codificación de imágenes en movimiento 30 realiza, en el segundo paso, un cambio adaptativo de los índices de imágenes de referencia que se asignan por el método de asignación por defecto.
En lo sucesivo, se dará una descripción de métodos específicos de asignación de índices de imágenes de referencia en el caso en el que se selecciona el método de asignación adaptativa. En la siguiente descripción, se supone que una imagen objetivo es la imagen B12.
Inicialmente, en el primer paso, como se muestra en la figura 3, los índices de imágenes de referencia se asignan a imágenes candidatas para referencia hacia delante de manera que un índice de imagen de referencia menor se asigna a una imagen candidata que es más cercana a la imagen objetivo. Es decir, un índice de imagen de referencia [1] se asigna a la imagen de referencia P10, un índice de imagen de referencia [0] se asigna a la imagen de referencia B11 y un índice de imagen de referencia [2] se asigna a la imagen de referencia P7.
A continuación, en el segundo paso, como se muestra en la figura 24, el índice de imagen de referencia [1] de la imagen de referencia P10 se cambia a [0] y el índice de imagen de referencia [0] de la imagen de referencia B11 se cambia a [1].
Tal reescritura de índices de imágenes de referencia se lleva a cabo para cada imagen objetivo, según la eficiencia de codificación. Además, el aparato de codificación de imágenes en movimiento 30 inserta información que indica cuál del método de asignación por defecto y el método de asignación adaptativa se fija como un método de asignación, como información de cabecera, en el flujo de bits. Además, cuando se fija el método de asignación adaptativa, información que indica cómo se lleva a cabo la asignación de índices de imágenes de referencia también se inserta como información de cabecera en el flujo de bits.
Como se describió anteriormente, en esta tercera realización, el índice de imagen de referencia de la imagen candidata que va a ser usado como una imagen de referencia hacia delante en el modo de dirección, se puede cambiar a [0].
Es decir, dado que, en la primera realización, un índice de imagen de referencia menor se da a una imagen candidata de referencia que es en cuanto al tiempo más cercana a la imagen objetivo, solamente se puede hacer referencia en el modo directo a la imagen B11 que es en cuanto al tiempo la más cercana a la imagen objetivo B12. En esta tercera realización, no obstante, cualquier imagen distinta de la imagen B11 la más cercana a la imagen objetivo B12 se puede usar como una imagen de referencia hacia delante, si se mejora la eficiencia de codificación.
Además, en este caso, dado que la imagen a ser referida en la codificación de la imagen B12 en el modo directo no es la imagen B11 sino la imagen B10, la decodificación de la imagen B11 llega a ser innecesaria. Por consiguiente,
5
10
15
20
25
30
35
40
45
50
como se muestra en la figura 25(a), una imagen B inmediatamente después de una imagen P se puede procesar sin decodificarla, por lo cual se logra la aceleración de la decodificación cuando la imagen B11 no es necesaria. Además, dado que la decodificación se puede llevar a cabo incluso cuando los datos de la imagen B11 se pierdan debido a error de transmisión o similar, se mejora la fiabilidad de la decodificación.
Como se describió anteriormente, cuando un índice de imagen de referencia se puede asignar arbitrariamente a una imagen candidata para determinar intencionadamente una imagen a ser referida en el modo directo, una imagen predeterminada se puede procesar sin decodificarla, como se muestra en la figura 25(a).
Además, incluso cuando tres imágenes B se colocan entre imágenes P como se muestra en la figura 25(b), una imagen predeterminada se puede procesar sin decodificarla. Por lo tanto, cuando una imagen que no se necesita por el usuario se conoce previamente en el extremo de codificación, tal imagen se puede omitir para reducir el tiempo de procesamiento en la decodificación.
En la figura 25(b), incluso cuando la imagen B3 no se decodifica, se pueden decodificar otras imágenes.
Es decir, en el método de asignación de la primera realización, dado que la imagen B4 se refiere a la imagen B3 en el modo directo, la imagen B3 se debe decodificar para decodificar la imagen B4. En esta tercera realización, no obstante, dado que una imagen a ser referida en el modo directo se puede fijar arbitrariamente, se puede prescindir de la decodificación de la imagen B3.
Además, en esta tercera realización, la asignación de índices de imágenes de referencia se lleva a cabo de manera que un índice de imagen de referencia menor se asigna a una imagen candidata que es en cuanto al tiempo más cercana a la imagen objetivo y una imagen de referencia a ser usada en el modo directo se determina según los índices de imágenes de referencia. Por lo tanto, la eficiencia de codificación se puede mejorar mediante una reducción en el vector de movimiento y, además, se puede reducir el tiempo de procesamiento.
Además, cuando se procesa el bloque objetivo en el modo directo en el extremo de decodificación, dado que la imagen candidata de referencia hacia delante a la cual se asigna el índice de imagen de referencia [0] se usa inmediatamente como una imagen de referencia, se puede reducir el tiempo de decodificación.
Además, mientras que en esta tercera realización una imagen candidata cuyo índice de imagen de referencia se debería cambiar a [0] se determina según la eficiencia de codificación, un índice de imagen de referencia de una imagen a la que más probablemente va a ser hecha referencia, por ejemplo, una imagen P que es en cuanto al tiempo la más cercana a la imagen objetivo, se puede cambiar a [0].
Por otra parte, mientras que en esta tercera realización una imagen a ser referida en el modo directo es una imagen cuyo índice de imagen de referencia es [0], la presente invención no está restringida a la misma. Por ejemplo, se codifica una información que indica que se va a hacer referencia a una imagen en el modo directo y la decodificación se puede llevar a cabo en el modo directo sobre la base de esta información.
[Realización 4]
La figura 26 es un diagrama de bloques para explicar un aparato de decodificación de imágenes en movimiento 40 según una cuarta realización de la presente invención.
El aparato de decodificación de imágenes en movimiento 40 recibe el flujo de bits sacados del aparato de codificación de imágenes en movimiento 30 de la tercera realización y realiza decodificación de cada imagen, sobre la base de información que indica cuál del método de asignación por defecto y el método de asignación adaptativa se debería usar cuando se asignan índices de imágenes de referencia (información de instrucciones del método de asignación), cuya información se incluye en el flujo de bits.
Es decir, un modo de operación del aparato de decodificación de imágenes en movimiento 40 según la cuarta realización es la operación del aparato de codificación de imágenes en movimiento 20 según la segunda realización. En otras palabras, cuando el método de asignación por defecto se usa como un método de asignación de índices de imágenes de referencia en el aparato de decodificación de imágenes en movimiento 40, la operación del aparato de decodificación de imágenes en movimiento 40 es idéntica a la del aparato de decodificación de imágenes en movimiento 20.
En lo sucesivo, se describirá en detalle el aparato de decodificación de imágenes en movimiento 40.
El aparato de decodificación de imágenes en movimiento 40 se dota con una unidad de control de memoria 244, en lugar de la unidad de control de memoria 204 del aparato de decodificación de imágenes en movimiento 20 según la segunda realización. La unidad de control de memoria 244 realiza gestión de memoria según o bien el método de asignación por defecto o bien el método de asignación adaptativa, sobre la base de la información de instrucciones del método de asignación incluida en el flujo de bits como información de cabecera.
Otros componentes del aparato de decodificación de imágenes en movimiento 40 según la cuarta realización son idénticos a los del aparato de decodificación de imágenes en movimiento 20 según la segunda realización.
5
10
15
20
25
30
35
40
45
50
55
En lo sucesivo se describirá la operación.
El aparato de decodificación de imágenes en movimiento 40 opera según la información de instrucciones del método de asignación que se incluye como información de cabecera en el flujo de bits suministrado desde el aparato de codificación de imágenes en movimiento 30.
Es decir, cuando se selecciona el método de asignación por defecto como un método de asignación de índice de imagen de referencia en el extremo de codificación, es decir, cuando información que indica que se selecciona el método de asignación por defecto se incluye en el flujo de bits, el aparato de decodificación de imágenes en movimiento 40 opera de la misma manera que el aparato de decodificación de imágenes en movimiento 20 de la segunda realización.
Por otra parte, cuando se selecciona el método de asignación adaptativa como un método de asignación de índice de imagen de referencia en el extremo de codificación, es decir, cuando información que indica que se selecciona el método de asignación adaptativa se incluye en el flujo de bits, el aparato de decodificación de imágenes en movimiento 40 opera según el método de asignación adaptativa. En este caso, dado que información que indica cómo se lleva a cabo la asignación de índices de imágenes de referencia también se incluye como información de cabecera en el flujo de bits, la asignación de índices de imágenes de referencia se lleva a cabo según esta información.
En lo sucesivo, se dará una descripción de la operación del aparato de decodificación de imágenes en movimiento 40 en el caso en el que se selecciona el método de asignación adaptativa.
En la memoria de imágenes de referencia 207, como se muestra en la figura 24, imágenes candidatas de referencia almacenadas en el área de memoria respectiva se reescriben cada vez que se procesa una imagen objetivo.
Para ser específicos, cuando la imagen objetivo a ser decodificada es la imagen B12, la decodificación de un bloque objetivo en la imagen B12 se lleva a cabo sin referencia a una imagen de referencia que se selecciona a partir de imágenes candidatas según la información de cabecera del bloque objetivo.
Por ejemplo, cuando el modo de codificación para el bloque objetivo es el modo predictivo bidireccional, una imagen candidata a la que se da el mismo índice de imagen de referencia como el índice de imagen de referencia que se incluye en la información de cabecera del bloque objetivo, se selecciona como una imagen de referencia hacia delante de entre las imágenes candidatas P10, B11 y P7. Cuando el índice de imagen de referencia incluido en la información de cabecera del bloque objetivo es [1], la imagen candidata B11 se selecciona como una imagen de referencia hacia delante. Entonces, el bloque objetivo se somete a decodificación predictiva bidireccional con referencia a la imagen candidata B11 como una imagen de referencia hacia delante, y la imagen P13 como una imagen de referencia hacia atrás.
Además, cuando el modo de decodificación del bloque objetivo es el modo directo, una imagen candidata (imagen P10) a la que se da el índice de imagen de referencia [0] se selecciona como una imagen de referencia hacia delante de entre las imágenes candidatas P7, P10 y B9. Entonces, el bloque objetivo se decodifica con referencia a la imagen candidata P10 como una imagen de referencia hacia delante y la imagen P13 como una imagen de referencia hacia atrás.
Como se describió anteriormente, según la cuarta realización, la memoria de imágenes de referencia 207 se gestiona como se muestra en la figura 24, es decir, la gestión de memoria se lleva a cabo usando, como los índices de imágenes de referencia de las imágenes candidatas respectivas, los obtenidos cambiando los índices de imágenes de referencia asignados por el método de asignación por defecto, según el estado de codificación. Por lo tanto, es posible realizar un método de decodificación adaptativo a un método de codificación en el que los índices de imágenes de referencia de las imágenes candidatas se reescriben según la eficiencia de codificación.
Es decir, dado que, en la segunda realización, se da un índice de imagen de referencia menor a una imagen candidata de referencia que es en cuanto al tiempo más cercana a la imagen objetivo, solamente la imagen B11 que es en cuanto al tiempo la más cercana a la imagen objetivo B12 se puede usar como una imagen de referencia en el modo directo. En esta cuarta realización, no obstante, una imagen distinta de la imagen B11 la más cercana a la imagen objetivo B12 se puede usar como una imagen de referencia hacia delante.
Además, en este caso, dado que la imagen a ser referida en la decodificación de un bloque en la imagen B12 en el modo directo no es la imagen B11 sino la imagen B10, la decodificación de la imagen B11 llega a ser innecesaria. Por consiguiente, como se muestra en la figura 25(a), una imagen B inmediatamente después de una imagen P se puede procesar sin decodificarla, por lo cual se logra la aceleración de la decodificación cuando la imagen B11 no es necesaria. Además, dado que la decodificación se puede llevar a cabo incluso cuando los datos de la imagen B11 se pierdan debido a error de transmisión o similar, se mejora la fiabilidad de la decodificación.
Como se describió anteriormente, cuando se selecciona arbitrariamente un índice de imagen de referencia a ser asignado a cada imagen candidata de referencia según el estado de codificación para determinar intencionadamente
5
10
15
20
25
30
35
40
45
50
55
una imagen a ser referida en el modo directo, una imagen predeterminada se puede procesar sin decodificarla como se muestra en la figura 25(a).
Además, incluso cuando tres imágenes B se colocan entre imágenes P como se muestra en la figura 25(b), una imagen predeterminada se puede procesar sin decodificarla. Por lo tanto, si una imagen que no se necesita por el usuario se conoce previamente en el extremo de codificación, tal imagen se puede omitir para reducir el tiempo de procesamiento para la decodificación.
En la figura 25(b), incluso cuando no se decodifica la imagen B3, se pueden decodificar otras imágenes.
Es decir, dado que, en la segunda realización, la imagen B4 se decodifica con referencia a la imagen B3 en el modo directo, se debe decodificar la imagen B3. En esta cuarta realización, no obstante, dado que una imagen a ser referida en el modo directo se fija arbitrariamente en el extremo de codificación, se puede prescindir de la decodificación de la imagen B3.
Además, cuando se procesa el bloque objetivo en el modo directo en el extremo de decodificación, dado que la imagen candidata de referencia hacia delante a la que se asigna el índice de imagen de referencia [0] se usa inmediatamente como una imagen de referencia, se puede reducir el tiempo de decodificación.
Mientras que en la primera a cuarta realizaciones no se hace referencia a una imagen B cuando se codifica o decodifica una imagen P, se puede hacer referencia a una imagen B cuando se codifica o decodifica una imagen P.
Además, mientras que en la primera a cuarta realizaciones una distancia basada en el tiempo entre imágenes se calcula según los tiempos de visualización de las imágenes respectivas, se puede calcular según información distinta de información de tiempo tal como tiempos de visualización de imágenes.
Por ejemplo, se fija un valor de contador que se aumenta cada vez que se procesa una imagen y una distancia basada en el tiempo entre imágenes se pueden calcular según este valor de recuento.
Para ser específicos, cuando se incluye información de tiempo en ambos de un flujo de vídeo y un flujo de audio que corresponde a contenidos únicos, no es fácil gestionar datos de vídeo y datos de audio sobre la base de la información de tiempo para mantener la sincronización entre estos datos, debido a que una unidad de información de tiempo es pequeña. No obstante, se facilita la gestión considerando sincronización entre datos de vídeo y datos de audio gestionando la disposición de las imágenes respectivas con el valor de contador.
Además, en la primera a cuarta realizaciones, una sección de cabecera y una sección de datos en una unidad de procesamiento de datos, tal como un GOP o una imagen, no están separadas una de otra y se incluyen en un flujo de bits que corresponde a cada unidad de procesamiento de datos a ser transferidos. No obstante, la sección de cabecera y la sección de datos pueden estar separadas una de otra para ser transferidas en diferentes flujos.
Por ejemplo, cuando un flujo se transfiere en unidades de transferencia de datos tales como paquetes en los cuales se divide el flujo, una sección de cabecera y una sección de datos que corresponden a una imagen se pueden transferir separadamente una de otra. En este caso, la sección de cabecera y la sección de datos no siempre se incluyen en el mismo flujo. No obstante, en la transferencia de datos usando paquetes, incluso cuando la sección de cabecera y la sección de datos no se transfieren continuamente, la sección de cabecera correspondiente y la sección de datos se transfieren meramente en diferentes paquetes y la relación entre la sección de cabecera y la sección de datos correspondientes se almacena en la información de cabecera de cada paquete y, por lo tanto, es sustancialmente idéntica a la de la sección de cabecera y la sección de datos se incluyen en el mismo flujo de bits.
Además, mientras que en la primera a cuarta realizaciones los índices de imágenes de referencia se usan como información para identificar a cuál de imágenes candidatas de referencia plurales se hace referencia en la codificación de un bloque objetivo, los índices de imágenes de referencia se pueden usar como información que indica las posiciones de imágenes candidatas de referencia hacia delante para una imagen objetivo a ser codificada o decodificada. Para ser específicos, en los métodos de asignación de índices de imágenes de referencia según la primera y segunda realizaciones o los métodos de asignación por defecto según la tercera y cuarta realizaciones, los índices de imágenes de referencia se asignan a las imágenes candidatas de referencia hacia delante de manera que un índice de imagen de referencia menor se asigna a una imagen candidata más cercana a la imagen objetivo y, por lo tanto, la posición de cada imagen candidata de referencia hacia delante (es decir, la categoría ordinal de cada imagen candidata de referencia hacia delante en las cercanías de la imagen objetivo, entre todas las imágenes candidatas de referencia hacia delante) se puede detectar según el índice de imagen de referencia asignado a la imagen candidata de referencia hacia delante.
Además, información de identificación de posición que indica las posiciones de las imágenes respectivas que constituyen una imagen en movimiento en el eje de tiempo de visualización se puede incluir en el flujo de bits que corresponde a la imagen en movimiento, separadamente de los índices de imágenes de referencia que indican las posiciones relativas de las imágenes candidatas de referencia hacia delante. La información de identificación de posición es diferente de la información de tiempo que indica los tiempos de visualización de imágenes y es información que especifica las posiciones relativas de las imágenes respectivas.
5
10
15
20
25
30
35
40
45
50
55
Por otra parte, en la primera a cuarta realizaciones, una imagen a la que va a ser hecha referencia hacia atrás cuando se codifica un bloque en una imagen objetivo a ser codificada o decodificada (imagen de referencia hacia atrás para una imagen objetivo) se usa como una imagen base en el modo directo. No obstante, una imagen base a ser usada en el modo directo puede ser una imagen ya procesada distinta de la imagen de referencia hacia atrás para la imagen objetivo, por ejemplo, una imagen a ser referida hacia delante cuando se codifica el bloque en la imagen objetivo.
[Realización 5]
La figura 27 es un diagrama de bloques para explicar un aparato de codificación de imágenes en movimiento 50 según una quinta realización de la presente invención.
El aparato de codificación de imágenes en movimiento 50 según la quinta realización es diferente del aparato de codificación de imágenes en movimiento 10 según la primera realización en imágenes candidatas para imágenes de referencia hacia delante a ser referidas cuando se codifica una imagen P y una imagen B y modos de codificación para una imagen B.
Es decir, el aparato de codificación de imágenes en movimiento 50 se dota con, en lugar de la unidad de control 110 y la unidad de selección de modo 109 según la primera realización, una unidad de control 150 y una unidad de selección de modo 159 que opera de maneras diferentes de las descritas para la primera realización.
Para ser específicos, la unidad de control 150 según la quinta realización controla una memoria de imágenes de referencia 117 de tal manera que, cuando se codifica una imagen P, cuatro imágenes (imágenes I o P) que se colocan hacia delante de la imagen P se usan como imágenes candidatas para referencia hacia delante y cuando se codifica una imagen B, cuatro imágenes (imágenes I o P) que se colocan hacia delante de la imagen B, una imagen B hacia delante que es la más cercana a la imagen B y una imagen I o P hacia atrás se usan como imágenes candidatas.
Además, cuando se codifica un bloque (bloque objetivo) en una imagen P, la unidad de selección de modo 159 según la quinta realización selecciona, como un modo de codificación para el bloque objetivo, uno de entre la codificación dentro de una imagen, la codificación predictiva entre imágenes usando un vector de movimiento y la codificación predictiva entre imágenes no usando un vector de movimiento (un movimiento se trata como cero). Cuando se codifica un bloque (bloque objetivo) en una imagen B, la unidad de selección de modo 159 selecciona, como un modo de codificación para el bloque objetivo, uno de entre la codificación dentro de una imagen, la codificación predictiva entre imágenes usando un vector de movimiento hacia delante, la codificación predictiva entre imágenes usando un vector de movimiento hacia atrás y la codificación predictiva entre imágenes usando un vector de movimiento hacia delante y un vector de movimiento hacia atrás. Es decir, la unidad de selección de modo 159 del aparato de codificación de imágenes en movimiento 50 según esta quinta realización es diferente de la unidad de selección de modo 109 del aparato de codificación de imágenes en movimiento 10 según la primera realización solamente en que no usa el modo directo y, por lo tanto, el aparato de de codificación de imágenes en movimiento 50 no tiene la unidad de almacenamiento de vector de movimiento 116 del aparato de codificación de imágenes en movimiento 10.
Además, el aparato de codificación de imágenes en movimiento 50 según la quinta realización es idéntico al aparato de codificación de imágenes en movimiento 10 según la primera realización excepto la unidad de control de codificación 150 y la unidad de selección de modo 159.
A continuación se describirá la operación.
Las imágenes de entrada se almacenan en la memoria de imágenes de entrada 101, en unidades de imágenes en orden de tiempos de visualización. Como se muestra la figura 29(a), las imágenes de entrada P0, B1, B2, P3, B4, B5, P6, B7, B8, P9, B10, B11, P12, B13, B14, P15, B16, B17 y P18 se almacenan en la memoria de imágenes de entrada 101 en orden de tiempos de visualización.
Las imágenes respectivas almacenadas en la memoria de imágenes de entrada 101 se reordenan en orden de codificación de codificación como se muestra la figura 29(b). Esta reordenación se lleva a cabo según las relaciones entre imágenes objetivo e imágenes de referencia durante la codificación predictiva entre imágenes. Es decir, la reordenación de las imágenes de entrada se lleva a cabo de manera que una segunda imagen a ser usada como candidata para una imagen de referencia cuando se codifica una primera imagen se debería codificar anterior a la primera imagen.
En esta quinta realización, cuando se codifica una imagen P (imagen objetivo), cuatro imágenes (imágenes I o P) que se colocan en cuanto al tiempo hacia delante y cerca de la imagen objetivo se usan como candidatas para una imagen de referencia. Además, cuando se codifica una imagen B, cuatro imágenes (imágenes I o P) que se colocan en cuanto al tiempo hacia delante y cerca de la imagen objetivo, una imagen B que se coloca en cuanto al tiempo hacia delante y la más cercana a la imagen objetivo y una imagen I o P que se coloca en cuanto al tiempo hacia atrás y la más cercana a la imagen objetivo, se usan como candidatas para la imagen de referencia.
5
10
15
20
25
30
35
40
45
50
55
Las imágenes respectivas reordenadas en la memoria de imágenes de entrada 101 se leen para cada unidad de compensación de movimiento. En esta quinta realización, la unidad de compensación de movimiento es un área rectangular (macrobloque) en la cual se disponen píxeles en una matriz, que tiene un tamaño de 16 píxeles en la dirección horizontal X 16 píxeles en la dirección vertical. En la siguiente descripción, se hace referencia a un macrobloque simplemente como un bloque.
En lo sucesivo, se describirán en este orden procesos de codificación para las imágenes P15, B13 y B14.
(Proceso de codificación para la imagen P15)
Dado que la imagen P15 es una imagen P, esta imagen se somete a codificación predictiva entre imágenes usando referencia hacia delante. Además, en la codificación de una imagen P, no se usa una imagen B como una imagen de referencia.
La figura 28 muestra la manera de gestión de imágenes en la memoria de imágenes de referencia 117.
Por ejemplo, al inicio de la codificación de la imagen P15, en la memoria de imágenes de referencia 117, las imágenes P12, B11, P9, P6 y P3 se almacenan en áreas de memoria a las cuales se asignan números de memoria lógica, en orden ascendente de los números de memoria lógica. Estas imágenes ya se han codificado y los datos de imagen almacenados en la memoria de imágenes de referencia 117 son datos imagen que se han decodificado en el aparato de codificación de imágenes en movimiento 50. En lo sucesivo, por simplificación, a una imagen cuyos datos de imagen se almacenan en la memoria se hace referencia como una imagen almacenada en la memoria.
A las imágenes candidatas de referencia almacenadas en la memoria de imágenes de referencia 117 se asignan índices de imágenes de referencia, bajo el control de la unidad de control de codificación 150. La asignación de índices de imágenes de referencia se lleva a cabo no en orden de codificación de imágenes sino en orden de tiempos de visualización. Para ser específicos, un índice de imagen de referencia menor se asigna a una imagen candidata de referencia más reciente, es decir, una imagen candidata de referencia que es posterior en orden de visualización. No obstante, en la codificación de una imagen P, no se asignan índices de imágenes de referencia a imágenes B. Además, en la codificación de una imagen B, a una imagen candidata de referencia la más reciente se asigna un código [b] que indica que esta imagen se debería tratar como una imagen de referencia hacia atrás.
Según el método de determinación de índice de imagen de referencia mencionado anteriormente, como se muestra la figura 28, los índices de imágenes de referencia [0], [1], [2] y [3] se asignan a las imágenes P12, P9, P6, y P3, respectivamente y no se asigna ningún índice de imagen de referencia a la imagen B11.
Por cierto, en la codificación de una imagen P, la unidad de control de codificación 150 controla los conmutadores respectivos de manera que los conmutadores 113, 114 y 115 se ENCIENDEN. Un bloque en la imagen P15 que se lee de la memoria de imágenes de entrada 101 se introduce a la unidad de detección de vector de movimiento 108, la unidad de selección de modo 109, y la unidad de cálculo de diferencia 102.
La unidad de detección de vector de movimiento 108 detecta un vector de movimiento del bloque en la imagen P15, usando las imágenes P12, P9, P6 y P3 a las cuales se asignan los índices de imágenes de referencia, entre las imágenes almacenadas en la memoria de imágenes de entrada 117. En este caso, se selecciona una imagen candidata de referencia óptima de entre las imágenes P12, P9, P6 y P3 y se lleva a cabo una detección del vector de movimiento con referencia a la imagen de referencia seleccionada. Entonces, el vector de movimiento detectado se saca a la unidad de selección de modo 159 y la unidad de generación de flujo de bits 104. Además, información Rp que indica a cuál de las imágenes P12, P9, P6 y P3 se hace referencia en la detección del vector de movimiento, es decir, el índice de imagen de referencia, también se saca a la unidad de selección de modo 159.
La unidad de selección de modo 159 determina un modo de codificación para el bloque en la imagen P15, usando el vector de movimiento detectado por la unidad de detección de vector de movimiento 108. El modo de codificación indica un método para codificar el bloque. Por ejemplo, para un bloque en una imagen P, se selecciona un modo de codificación de entre la codificación dentro de una imagen, la codificación predictiva entre imágenes usando un vector de movimiento y la codificación predictiva entre imágenes no usando vector de movimiento (es decir, el movimiento se considera como cero). Generalmente, la selección de un modo de codificación se lleva a cabo de manera que se minimiza el error de codificación en una cantidad de bits predeterminada.
El modo de codificación Ms determinado por la unidad de selección de modo 159 se saca a la unidad de generación de flujo de bits 104. Además, cuando el modo de codificación determinado es el modo de codificación que realiza referencia hacia delante, el índice de imagen de referencia también se saca a la unidad de generación de flujo de bits 104.
Además, una imagen de predicción Pd que se obtiene sobre la base del modo de codificación determinado por la unidad de selección de modo 152 se saca a la unidad de cálculo de diferencia 102 y la unidad de adición 106. No obstante, cuando se selecciona codificación dentro de una imagen, no se saca ninguna imagen de predicción Pd. Además, cuando se selecciona la codificación dentro de una imagen, el conmutador 111 se controla de manera que
5
10
15
20
25
30
35
40
45
50
55
el terminal de entrada Ta se conecta al terminal de salida Tb2 y el conmutador 112 se controla de manera que el terminal de salida Td se conecta al terminal de entrada Tc2.
En lo sucesivo, se dará una descripción de un caso en el que se selecciona codificación predictiva entre imágenes en la unidad de selección de modo 109. Dado que las operaciones de la unidad de cálculo de diferencia 102, unidad de codificación de error de predicción 103, unidad de generación de flujo de bits 104 y unidad de decodificación de error de predicción 105 son idénticas a las mencionadas en la primera realización, no es necesaria una descripción repetida.
Cuando se completa la codificación de todos los bloques en la imagen P15, la unidad de control de codificación 150 actualiza los números de memoria lógica y los índices de imágenes de referencia que corresponden a las imágenes almacenadas en la memoria de imágenes de referencia 117.
Es decir, dado que la imagen codificada P15 es posterior en el orden de tiempos de visualización que cualquier imagen almacenada en la memoria de imágenes de referencia 117, la imagen P15 se almacena en el área de memoria en la que se fija el número de memoria lógica (0). Entonces, los números de memoria lógica de las áreas de memoria en las que ya se han almacenado otras imágenes de referencia se aumentan en 1. Además, dado que la siguiente imagen objetivo a ser codificada es la imagen B13 que es una imagen B, también se asigna un índice de imagen de referencia a la imagen B11. Por ello, las imágenes P15, P12, B11, P9, P6 y P3 se almacenan en las áreas de memoria en las cuales se fijan los números de memoria lógica (0)~(5), respectivamente y los índices de imágenes de referencia [0], [1], [2], [3] y [4] se asignan a las imágenes P12, B11, P9, P6 y P3, respectivamente. Dado que la siguiente imagen objetivo es una imagen B, a la imagen P15 almacenada en el área de memoria del número de memoria lógica 0 se la asigna un código [b] que indica que esta imagen se trata como una imagen de referencia hacia atrás, en lugar del índice de imagen de referencia.
(Proceso de codificación para la imagen B13)
Dado que la imagen B13 es una imagen B, esta imagen se somete a codificación predictiva entre imágenes usando referencia bidireccional. En este caso, cuatro imágenes I o P que son en cuanto al tiempo cercanas a la imagen objetivo y una imagen B que es en cuanto al tiempo la más cercana a la imagen objetivo se usan como imágenes candidatas para referencia hacia delante y una imagen I o P que es en cuanto al tiempo la más cercana a la imagen objetivo se usa como una imagen candidata para referencia hacia atrás. Por consiguiente, las imágenes candidatas para referencia hacia delante para la imagen B13 son las imágenes P12, B11, P9, P6 y P3 y la imagen candidata para referencia hacia atrás para la imagen B13 es la imagen P15. Estas imágenes candidatas de referencia se almacenan en la memoria de imágenes de referencia 117. A estas imágenes candidatas de referencia se las asignan números de memoria lógica e índices de imágenes de referencia como se muestra en la figura 28.
En la codificación de una imagen B, la unidad de control de codificación 150 controla los conmutadores respectivos de manera que los conmutadores 113, 114 y 115 están ENCENDIDOS. Por consiguiente, un bloque en la imagen B11 que se lee de la memoria de imágenes de entrada 101 se introduce a la unidad de detección de vector de movimiento 108, la unidad de selección de modo 109 y la unidad de cálculo de diferencia 102.
La unidad de detección de vector de movimiento 108 detecta un vector de movimiento hacia delante y un vector de movimiento hacia atrás del bloque en la imagen B13, usando las imágenes P12, B11, P9, P6 y P3 almacenadas en la memoria de imágenes de referencia 117, como imágenes candidatas para referencia hacia delante y la imagen P15 como una imagen candidata para referencia hacia atrás. En este caso, se selecciona una imagen óptima de entre las imágenes P12, B11, P9, P6 y P3 y la detección del vector de movimiento hacia delante se lleva a cabo con referencia a la imagen seleccionada. Entonces, el vector de movimiento detectado se saca a la unidad de selección de modo 159 y la unidad de generación de flujo de bits 104. Además, información Rp que indica a cuál de las imágenes P12, B11, P9, P6 y P3 se hace referencia en la detección del vector de movimiento hacia delante, es decir, el índice de imagen de referencia, se saca también a la unidad de selección de modo 159.
Las operaciones de la unidad de selección de modo 150, unidad de cálculo de diferencia 102, unidad de generación de flujo de bits 104 y unidad de decodificación de error de predicción 105 son idénticas a aquéllas para codificar la imagen P15.
Cuando se completa la codificación de todos los bloques en la imagen B13, la unidad de control de codificación 150 actualiza los números de memoria lógica y los índices de imágenes de referencia que corresponden a las imágenes almacenadas en la memoria de imágenes de referencia 117.
Es decir, dado que la imagen B13 se coloca, en orden de tiempos de visualización, antes de la imagen P15 almacenada en la memoria de imágenes de referencia 117 y después de la imagen P12 almacenada en la memoria de imágenes de referencia 117, la imagen B13 se almacena en el área de memoria en la que se fija el número de memoria lógica (1). Además, dado que la imagen B11 no se usa como una imagen de referencia en la codificación de las imágenes posteriores, se borra la imagen B11. En este momento, información que indica que la imagen B11 se borra de la memoria de imágenes de referencia se saca a la unidad de generación de flujo de bits 104 como una señal de control Cs1. La unidad de generación de flujo de bits 104 describe esta información como información de
5
10
15
20
25
30
35
40
45
50
55
cabecera en el flujo de bits. Además, el número de memoria lógica del área de memoria que corresponde a la imagen P12 se aumenta en 1.
La siguiente imagen objetivo a ser codificada es la imagen B14 como una imagen B. Por consiguiente, la imagen almacenada en el área de memoria con el número de memoria lógica (0) se usa como una imagen de referencia hacia atrás y los índices de imagen de referencia se asignan a las otras imágenes. Por ello, las imágenes P15, B13, P12, P9, P6 y P3 se almacenan en las áreas de memoria que corresponden a los números de memoria lógica (0)~(5), respectivamente y los índices de imágenes de referencia [0], [1], [2], [3] y [4] se asignan a las imágenes B13, P12, P9, P6 y P3, respectivamente.
<Proceso de codificación para la imagen B14>
Dado que la imagen B14 es una imagen B, esta imagen se somete a codificación predictiva entre imágenes usando referencia bidireccional. Como imágenes de referencia para la imagen B14, las imágenes B13, P12, P9, P6 y P3 se usan como imágenes de referencia hacia delante mientras que la imagen P15 se usa como una imagen de referencia hacia atrás. En el procesamiento de una imagen B, la unidad de control de codificación 150 controla los conmutadores respectivos de manera que los conmutadores 113, 114 y 115 están ENCENDIDOS. Por consiguiente, un bloque en la imagen B14 que se lee de la memoria de imágenes de entrada 101 se introduce a la unidad de detección de vector de movimiento 108, la unidad de selección de modo 109 y la unidad de cálculo de diferencia 102.
La unidad de detección de vector de movimiento 108 detecta un vector de movimiento hacia delante y un vector de movimiento hacia atrás del bloque en la imagen B14, usando las imágenes B13, P12, P9, P6 y P3 almacenadas en la memoria de imágenes de referencia 117 como imágenes candidatas para referencia hacia delante así como la imagen P15 como una imagen candidata para referencia hacia atrás. En este caso, se selecciona una imagen óptima de entre las imágenes B13, P12, P9, P6 y P3 y la detección del vector de movimiento hacia delante se lleva a cabo con referencia a la imagen seleccionada. Entonces, el vector de movimiento detectado se saca a la unidad de selección de modo 159 y la unidad de generación de flujo de bits 104. Además, información Rp que indica a cuál de las imágenes B13, P12, P9, P6 y P3 se hace referencia en la detección del vector de movimiento hacia delante, es decir, el índice de imagen de referencia, también se saca a la unidad de selección de modo 159.
Las operaciones de la unidad de selección de modo 150, unidad de cálculo de diferencia 102, unidad de generación de flujo de bits 104, unidad de decodificación de error de predicción 105 y unidad de adición 106 son similares a aquéllas para codificar la imagen P15.
Cuando se completa la codificación de todos los bloques en la imagen B14, la unidad de control de codificación 150 actualiza los números de memoria lógica y los índices de imágenes de referencia que corresponden a las imágenes almacenadas en la memoria de imágenes de referencia 117.
Es decir, dado que la imagen B14 se coloca, en orden de tiempos de visualización, antes de la imagen P15 almacenada en la memoria de imágenes de referencia 117, y posterior a la imagen B13 almacenada en la memoria de imágenes de referencia 117, la imagen B14 se almacena en el área de memoria en la que se fija el número de memoria lógica (1). Además, dado que la imagen B13 no se usa como una imagen de referencia en la codificación de las imágenes posteriores, se borra la imagen B13. En este momento, información que indica que la imagen B13 se borra de la memoria de imágenes de referencia se saca a la unidad de generación de flujos de bits 104 como una señal de control Cd1. La unidad de generación de flujo de bits 104 describes esta información como información de cabecera en el flujo de bits.
La siguiente imagen objetivo a ser codificada es la imagen P18 que es una imagen P. Por consiguiente, se asignan índices de imágenes de referencia a las imágenes distintas de las imágenes B. Por ello, las imágenes P15. B14, P12, P9 y P6 se almacenan en las áreas de memoria que corresponden a los números de memoria lógica (0)~(5), respectivamente y los índices de imágenes de referencia [0], [1], [2] y [3] se asignan a las imágenes P15. P12, P9 y P6, respectivamente.
Como se describió anteriormente, según la quinta realización, a las imágenes candidatas plurales para referencia hacia delante para una imagen objetivo a ser codificada se las asignan índices de imágenes de referencia de manera que un índice menor se asigna a una imagen candidata cuyo tiempo de visualización es posterior (es decir, información para identificar cuál de las imágenes candidatas se usa en la detección del vector de movimiento hacia delante del bloque objetivo). Por lo tanto, a una imagen candidata que es más probable que sea seleccionada como una imagen de referencia entre las imágenes candidatas plurales se asigna un índice de imagen de referencia menor. Por consiguiente, se puede minimizar la cantidad de códigos de los índices de imágenes de referencia, provocando un aumento en la eficiencia de codificación.
En lo sucesivo, los efectos de esta quinta realización se describirán tomando un caso en el que la codificación de una imagen B se lleva a cabo usando otras imágenes B como una imagen candidata de referencia, junto con los problemas de la técnica anterior.
5
10
15
20
25
30
35
40
45
50
55
Por ejemplo, se supone que las imágenes de una imagen en movimiento se disponen en orden de visualización como se muestra la figura 29(a) y cuatro imágenes P y una imagen B se usan como imágenes candidatas para referencia hacia delante en la codificación de una imagen objetivo.
La figura 30 muestra un ejemplo de gestión de imágenes almacenadas en la memoria de imágenes de referencia. Las imágenes candidatas se almacenan en orden de codificación, en la memoria.
Cuando se codifica la imagen P15, en la memoria de imágenes de referencia, las imágenes B11, P12, P9, P6 y P3 se almacenan en las áreas de memoria, en orden ascendente de los números de memoria lógica. Además se asignan a estas imágenes candidatas los índices de imágenes de referencia [0], [1], [2], [3] y [4], respectivamente. Por lo tanto, se asigna un índice de imagen de referencia a una imagen B (imagen B11 en este caso) que no se usa como una imagen de referencia en la codificación de una imagen P y el índice de imagen de referencia a no ser usado causa degradación en la eficiencia de codificación.
Además, cuando se codifica la imagen B13, en la memoria de imágenes de referencia, las imágenes P15, B11, P12, P9. P6 y P3 se almacenan en las áreas de memoria, en orden ascendente de los números de memoria lógica. A la imagen P15 se la asigna un código [b] que indica que esta imagen se usa como una imagen de referencia hacia atrás y a las imágenes restantes se las asignan los índices de imágenes de referencia [0], [1], [2], [3] y [4], respectivamente. Por lo tanto, el índice de imagen de referencia asignado a imagen B11 que está en cuanto al tiempo lejos de la imagen B13 (imagen objetivo) es menor que el índice de imagen de referencia asignado a la imagen P12 que es en cuanto al tiempo cercana a la imagen objetivo B13. En la realización de detección de movimiento, generalmente, una imagen candidata que es en cuanto al tiempo más cercana a la imagen objetivo es más probable que sea usada como una imagen de referencia. Por consiguiente, cuando el índice de imagen de referencia de la imagen B11 que está lejos de la imagen objetivo es menor que el índice de imagen de referencia de la imagen P12 que es cercana a la imagen objetivo, se degrada la eficiencia de codificación.
Además, cuando se codifica la imagen B14, en la memoria de imágenes de referencia, las imágenes B13, P15, B11, P12, P9 y P6 se almacenan en las áreas de memoria, en orden ascendente de los números de memoria lógica. A la imagen B13 se la asigna un código [b] que indica que esta imagen se usa como una imagen de referencia hacia atrás y a las imágenes restantes se las asignan los índices de imágenes de referencia [0], [1], [2], [3] y [4], respectivamente. Por lo tanto, la imagen P15 que se debería usar realmente como una imagen candidata para referencia hacia atrás para la imagen B14, se usa como una imagen candidata para referencia hacia delante. Por otra parte, la imagen B13 que se debería usar realmente como una imagen candidata para referencia hacia delante para la imagen B14, se usa como una imagen candidata para referencia hacia atrás. Como resultado, llega a ser difícil realizar una codificación correcta. Además, en la codificación de la imagen B14, la imagen B11 que no se usa como una imagen de referencia existe en la memoria de imágenes de referencia.
Por otra parte, según la quinta realización de la invención, como se muestra la figura 28, las imágenes candidatas de referencia para la imagen objetivo se almacenan en orden de visualización en la memoria de imágenes de referencia y a las imágenes candidatas para referencia hacia delante se las asignan los índices de imágenes de referencia de manera que a una imagen candidata cuyo tiempo de visualización es posterior se la asigna un índice de imagen de referencia menor y, por lo tanto, a una imagen candidata que es más probable que sea seleccionada como una imagen de referencia de entre las imágenes candidatas se la asigna un índice de imagen de referencia menor. Por ello, se puede minimizar la cantidad de códigos de los índices de imágenes de referencia, provocando un aumento en la eficiencia de codificación.
Además, dado que, en la codificación de una imagen P, no se asignan índices de imágenes de referencia a imágenes B, se evita la aparición de índices de imágenes de referencia que nunca se usarán, provocando un aumento adicional en la eficiencia de codificación.
Por otra parte, cuando se codifica una imagen B, no se asigna un índice de imagen de referencia a la imagen que está almacenada en el área de memoria que corresponde al número de memoria lógica menor y esta imagen se usa como una imagen de referencia hacia atrás. Por lo tanto, en la codificación predictiva de una imagen B, una imagen P a ser usada como una imagen de referencia hacia atrás se evita que se use como una imagen de referencia hacia delante.
Además, cuando una imagen que no se usa como una imagen de referencia se borra de la memoria de imágenes de referencia, la información que indica este borrado se describe en el flujo de bits. Por lo tanto, el extremo de decodificación puede detectar que la imagen que no va a ser usada como una imagen de referencia en la decodificación de una imagen objetivo y las siguientes imágenes, está borrada de la memoria de imágenes de referencia.
En esta quinta realización, se realiza compensación de movimiento en unidades de espacios imagen (macrobloques) cada uno que comprende 16 píxeles en la dirección horizontal X 16 píxeles en la dirección vertical y la codificación de una imagen de error de predicción se realiza en unidades de espacios de imagen (subbloques) cada uno que comprende 8 píxeles en la dirección horizontal X 8 píxeles en la dirección vertical. No obstante, el número de píxeles
5
10
15
20
25
30
35
40
45
50
en cada macrobloque (subbloque) en compensación de movimiento (codificación de una imagen de error de predicción) puede ser diferente del descrito para la quinta realización.
Además, mientras que en esta quinta realización el número de imágenes B contiguas es dos, el número de imágenes B contiguas puede ser tres o más.
Además, mientras que en esta quinta realización se usan cuatro imágenes como imágenes candidatas para una imagen de referencia hacia delante en la codificación de una imagen P, el número de imágenes candidatas de referencia hacia delante para una imagen P puede ser distinto de cuatro.
Además, mientras que en esta quinta realización se usan cuatro imágenes P y una imagen B como imágenes candidatas para una imagen de referencia hacia delante en la codificación de una imagen B, las imágenes candidatas de referencia hacia delante para una imagen B no se restringen a las mismas.
Además, en esta quinta realización, cada una de las imágenes plurales que constituyen una imagen en movimiento, que es una imagen objetivo a ser codificada, se usa como una imagen de referencia cuando se codifica otra imagen que sigue a la imagen objetivo. No obstante, las imágenes plurales que constituyen una imagen en movimiento pueden incluir imágenes a no ser usadas como imágenes de referencia. En este caso, las imágenes a no ser usadas como imágenes de referencia no se almacenan en la memoria de imágenes de referencia, por lo cual se pueden lograr los mismos efectos que se describen para la quinta realización.
Además, mientras que en esta quinta realización la codificación de una imagen B se lleva a cabo usando otra imagen B como una imagen candidata de referencia, la codificación de una imagen B se puede llevar a cabo sin hacer referencia a otra imagen B. En este caso, no se almacenan imágenes B en la memoria de imágenes de referencia. También en este caso, se puede lograr los mismos efectos que se describen para la quinta realización asignando índices de imágenes de referencia según el orden de tiempos de visualización de imágenes.
Además, mientras que en esta quinta realización se asigna un único sistema de índices de imágenes de referencia, se pueden asignar diferentes sistemas de índices de imágenes de referencia en la dirección hacia delante y en la dirección hacia atrás, respectivamente.
Por otra parte, mientras que en esta quinta realización se asigna un índice de imagen de referencia menor a una imagen candidata para un referencia hacia delante cuyo tiempo de visualización es posterior, el método de asignación de índice de imagen de referencia no está restringido al mismo en tanto en cuanto un índice de imagen de referencia menor se asigna a una imagen candidata que es más probable que sea seleccionada como una imagen de referencia.
La figura 31 es un diagrama conceptual que ilustra la estructura de un flujo de bits (formato de una señal de imagen codificada) que corresponde a imágenes a las que se asignan índices de imágenes de referencia.
Una señal codificada Pt equivalente a una imagen incluye información de cabecera Hp colocada al principio de la imagen y una sección de datos Dp que sigue a la información de cabecera Hp. La información de cabecera Hp incluye una señal de control (rPsL). La sección de datos Dp incluye datos codificados (flujo de bits) que corresponden a cada bloque.
Por ejemplo, un flujo de bits BLx es un flujo de bits de un bloque que se codifica en un modo de codificación dentro de una imagen y un flujo de bits BLy es un flujo de bits de un bloque que se codifica en un modo de codificación predictiva entre imágenes distinto de un modo de codificación dentro de una imagen.
El flujo de bits de bloque BLx incluye información de cabecera Hbx, información Prx relativa a un modo de codificación e información de imagen codificada Dbx. El flujo de bits de bloque BLy incluye información de cabecera Hby, información Pry en relación a un modo de codificación, un primer índice de imagen de referencia R1d1, un segundo índice de imagen de referencia R1d2, un primer vector de movimiento MV1, un segundo vector de movimiento MV2 e información de imagen codificada Dby. Cuál del primer y segundo índices de imágenes de referencia R1d1 y R1d2 se debería usar se determina a partir de la información Pry relativa al modo de codificación.
Un índice de imagen de referencia R1d1 se asigna a una imagen candidata de referencia hacia delante con prioridad sobre una imagen candidata de referencia hacia atrás. Un índice de imagen de referencia R1d2 se asigna a una imagen candidata de referencia hacia atrás con prioridad sobre una imagen candidata referencia hacia delante.
[Realización 6]
La figura 32 es un diagrama de bloques para explicar un aparato de decodificación de imágenes en movimiento 60 según una sexta realización de la presente invención.
El aparato de decodificación de imágenes en movimiento 60 según la sexta realización decodifica el flujo de bits Bs sacado del aparato de codificación de imágenes en movimiento 50 según la quinta realización.
5
10
15
20
25
30
35
40
45
50
55
El aparato de decodificación de imágenes en movimiento 60 es diferente del aparato de decodificación de imágenes en movimiento 20 según la segunda realización en imágenes candidatas para imágenes de referencia hacia delante a ser referidas cuando se codifica una imagen P y una imagen B y modos de codificación para una imagen B.
Es decir, el aparato de decodificación de imágenes en movimiento 60 se dota con, en lugar de las unidades de control de memoria 204 y la unidad de decodificación de modo 223 según la segunda realización, una unidad de control de memoria 264 y una unidad de decodificación de modo 263 las cuales operan de diferentes maneras de las descritas para la segunda realización.
Para ser específicos, la unidad de control de memoria 264 según la sexta realización controla una memoria de imágenes de referencia 207 de manera que, cuando se decodifica una imagen P, cuatro imágenes (imágenes I o P) que se colocan hacia delante de la imagen P se usan como imágenes candidatas para referencia hacia delante y cuando se decodifica una imagen B, cuatro imágenes (imágenes I o P) que se colocan hacia delante de la imagen B, una imagen B hacia delante que es la más cercana a la imagen B y una imagen I o P hacia atrás se usan como imágenes candidatas.
Además, cuando se decodifica un bloque (bloque objetivo) en una imagen P, la unidad de decodificación de modo 263 según la sexta realización selecciona, como un modo de codificación para el bloque objetivo, uno de entre los modos plurales como sigue: decodificación dentro de una imagen, decodificación predictiva entre imágenes usando un vector de movimiento y decodificación predictiva entre imágenes no usando ningún vector de movimiento (un movimiento se trata como cero). Cuando se decodifica un bloque (bloque objetivo) en una imagen B, la unidad de decodificación de modo 263 selecciona, como un modo de decodificación para el bloque objetivo, uno de entre los modos plurales como sigue: decodificación dentro de una imagen, decodificación predictiva entre imágenes usando un vector de movimiento hacia delante, decodificación predictiva entre imágenes usando un vector de movimiento hacia atrás y decodificación predictiva entre imágenes usando un vector de movimiento hacia delante y un vector de movimiento hacia atrás.
Es decir, la unidad de decodificación de modo 263 del aparato de decodificación de imágenes en movimiento 60 según esta sexta realización es diferente de la unidad de decodificación de modo 223 del aparato de decodificación de imágenes en movimiento 20 según la segunda realización solamente en que no usa un proceso de decodificación que corresponde al modo directo y, por lo tanto, el aparato de decodificación de imágenes en movimiento 60 no tiene la unidad de almacenamiento de vector de movimiento 226 del aparato de decodificación de imágenes en movimiento 20.
Además, el aparato de decodificación de imágenes en movimiento 60 según la sexta realización es idéntico al aparato de decodificación de imágenes en movimiento 20 según la segunda realización excepto la unidad de control de memoria 264 y la unidad de decodificación de modo 263.
A continuación, se describirá la operación del aparato de decodificación de imágenes en movimiento 60.
El flujo de bits Bs sacado desde el aparato de codificación de imágenes en movimiento 50 según la quinta realización se introduce al aparato de decodificación de imágenes en movimiento 60 mostrado la figura 32. En el flujo de bits Bs, cada imagen P se ha sometido a codificación predictiva entre imágenes, usando cuatro imágenes I o P que se colocan en cuanto al tiempo hacia delante y cerca de la imagen P, como imágenes candidatas de referencia. Además, cada imagen B se ha codificado usando cuatro imágenes P que se colocan en cuanto al tiempo hacia delante y las más cercanas a la imagen B, una imagen B que se coloca en cuanto tiempo hacia delante de la imagen B y una imagen I o P que se coloca en cuanto al tiempo hacia atrás y la más cercana a la imagen B.
En este caso, el orden de las imágenes en el flujo de bits es como sigue en la figura es se muestra en la figura 29(b).
En lo sucesivo, se describirán en este orden procesos de decodificación para las imágenes P15, B13 y B14.
(Proceso de decodificación para la imagen P15)
El flujo de bits de la imagen P15 se introduce a la unidad de análisis de flujo de bits 201. La unidad de análisis de flujo de bits 201 extrae diversos tipos de datos a partir del flujo de bits introducido Bs. Los diversos tipos de datos son información tal como un modo de codificación, un vector de movimiento y similares. La información extraída para selección de modo (modo de codificación) Ms se introduce a la unidad de decodificación de modo 263. Además, el detector de movimiento MV extraído se saca a la unidad de decodificación de compensación de movimiento 205. Además, los datos codificados de error de predicción Ed se sacan a la unidad de decodificación de error de predicción 202.
La unidad de decodificación de modo 263 controla los conmutadores 209 y 210 con referencia al modo de codificación Ms extraído a partir del flujo de bits. Cuando el modo de codificación es codificación entre imágenes, el conmutador 209 se controla de manera que el terminal de entrada Te se conecta al terminal de salida Tf1 y el conmutador 210 se controla de manera que el terminal de salida Th se conecta al terminal de entrada Tg1. Cuando el modo de codificación es codificación predictiva entre imágenes, el conmutador 209 se controla de manera que el
5
10
15
20
25
30
35
40
45
50
terminal de entrada Te se conecta al terminal de salida Tf1 y el conmutador 210 se controla de manera que el terminal de salida Th se conecta al terminal de entrada Tg2.
Además, la unidad de decodificación de modo 263 saca el modo de codificación Ms también a la unidad de decodificación de compensación de movimiento 205.
En lo sucesivo, se dará una descripción del caso en el que el modo de codificación es codificación predictiva entre imágenes.
La unidad de decodificación de error de predicción 202 decodifica los datos codificados Ed introducidos para generar datos de error de predicción PDd. Los datos de error de predicción PDd generados se sacan al conmutador 209. Dado que el terminal entrada Te del conmutador 209 está conectado al terminal de salida Tf1, los datos de error de predicción se sacan a la unidad de adición. 208.
La unidad de decodificación de compensación de movimiento 205 genera una imagen de compensación de movimiento a partir de la información introducida tal como el detector de movimiento. La información introducida a la unidad de decodificación de compensación de movimiento 205 es el vector de movimiento MV y el índice de imagen de referencia Rp. La unidad de decodificación de compensación de movimiento 205 obtiene una imagen de compensación de movimiento (imagen de predicción) a partir de la memoria de imagen de referencia 207, sobre la base de la información introducida. La imagen P15 se ha codificado usando las imágenes P12, P9, P6 y P3 como candidatas para una imagen de referencia y estas imágenes candidatas ya se han decodificado y se almacenan en la memoria de imágenes de referencia 207.
La figura 28 muestra las imágenes almacenadas en la memoria de imágenes de referencia 207. Como se muestra en la figura 28, cuando se decodifica la imagen P15, las imágenes P12, B11, P9, P6 y P3 se almacenan en la memoria de imágenes de referencia 207.
La unidad de control de memoria 264 asigna índices de imágenes de referencia a las imágenes candidatas de referencia almacenadas en la memoria de imágenes de referencia 117. Esta asignación de índices de imágenes de referencia se lleva a cabo según el orden de tiempos de visualización de imágenes de manera que un índice de imagen de referencia menor se asigna a una imagen candidata de referencia más reciente. En la decodificación de una imagen P, no se asignan índices de imágenes de referencia a imágenes B. Por consiguiente, los índices de imágenes de referencia [0], [1], [2] y [3] se asignan a las imágenes P12, P9, P6 y P3, respectivamente y ningún índice de imagen de referencia se asigna a la imagen B11.
La unidad de decodificación de compensación de movimiento 205 determina cuál de las imágenes P12, P9, P6 y P3 se usa como una imagen de referencia cuando se codifica el bloque objetivo, a partir de los índices de imágenes de referencia. Entonces, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen de predicción (datos de predicción Pd) de la memoria de imágenes de referencia 207 sobre la base de la imagen de referencia determinada y del vector de movimiento para generar una imagen de compensación de movimiento. La imagen de compensación de movimiento así generada se introduce a la unidad de adición 208.
La unidad de adición 208 añade los datos de error de predicción PDd y la imagen de compensación de movimiento para generar una imagen decodificada (datos Ad). La imagen decodificada así generada se saca a través del conmutador 210 a la memoria de imágenes de referencia 207.
Cuando se han decodificado todos los macrobloques de la imagen P15, la unidad de control de memoria 264 actualiza los números de memoria lógica y los índices de imágenes de referencia que corresponden a las imágenes almacenadas en la memoria de imágenes de referencia 207.
En este momento, dado que, en orden de tiempo, la imagen P15 es posterior a cualquier imagen almacenada en la memoria de imágenes de referencia 117, la imagen P15 se almacena en el área de memoria en la cual se fija el número de memoria lógica (0). Entonces, los números de memoria lógica de las áreas de memoria en las que ya se han almacenado otras imágenes de referencia se aumentan en 1.
Además, dado que la siguiente imagen objetivo a ser decodificada es la imagen B13, un índice de imagen de referencia se asigna a la imagen B11. Por ello, las imágenes P15, P12, B11, P9, P6 y P3 se almacenan en las áreas de memoria en las que se fijan los números de memoria lógica (0)~(5), respectivamente y los índices de imágenes de referencia [0], [1], [2], [3] y [4] se asignan a las imágenes P12, B11, P9, P6 y P3, respectivamente.
(Proceso de decodificación para la imagen B13)
Dado que las operaciones de la unidad de análisis de flujo de bits 201, la unidad de decodificación de modo 203 y la unidad de decodificación de error de predicción 202 son idénticas a las descritas para la decodificación de la imagen P15, no es necesaria una descripción repetida.
La unidad de decodificación de compensación de movimiento 205 genera una imagen de compensación de movimiento a partir de la información introducida tal como el detector de movimiento. La información introducida a la
5
10
15
20
25
30
35
40
45
50
55
unidad de decodificación de compensación de movimiento 205 es el detector de movimiento y el índice de imagen de referencia. La imagen B13 se ha codificado usando las imágenes P12, B11, P9, P6 y P3 como imágenes candidatas para referencia hacia delante y la imagen P15 como una imagen candidata para referencia hacia atrás. En la decodificación de la imagen B13, ya se han decodificado estas imágenes candidatas y se almacenan en la memoria de imágenes de referencia 207.
Cuando el modo de codificación es codificación predictiva hacia delante o codificación predictiva bidireccional, la unidad de decodificación de compensación de movimiento 205 determina cuál de las imágenes candidatas P12, B11, P9, P6 y P3 se usa como una imagen de referencia hacia delante cuando se codifica la imagen B13, sobre la base de los índices de imágenes de referencia. Entonces, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen de compensación de movimiento hacia delante a partir de la memoria de imágenes de referencia 207 sobre la base de la imagen de referencia y el vector de movimiento determinados. Cuando el modo de codificación es codificación predictiva bidireccional o codificación predictiva hacia atrás, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen de compensación de movimiento hacia atrás hacia atrás de la memoria de imágenes de referencia 207 sobre la base de la imagen de referencia determinada y el detector de movimiento hacia atrás. Entonces, la unidad de decodificación de compensación de movimiento 205 genera una imagen de compensación de movimiento (imagen de predicción) usando la imagen de compensación de movimiento hacia delante y la imagen de compensación de movimiento hacia atrás.
La imagen de compensación de movimiento así generada se saca a la unidad de adición 208. La unidad de adición 208 añade la imagen de error de predicción introducida y la imagen de compensación de movimiento para generar una imagen decodificada. La imagen decodificada así generada se saca través del conmutador 210 a la memoria de imágenes de referencia 207.
Cuando todos los bloques en la imagen B13 se han decodificado, la unidad de control de memoria 264 actualiza los números de memoria lógica y los índices imágenes de referencia que corresponden a las imágenes almacenadas en la memoria de imágenes de referencia 207. Dado que la imagen B13 está hacia delante de la imagen P15 almacenada en la memoria de imágenes de referencia 207 en el orden de tiempos de visualización y es posterior a la imagen P12 almacenada en la memoria de imágenes de referencia 207, la imagen B13 se almacena en el área de memoria en la cual se fija el número de memoria lógica (1).
Además, información que indica que la imagen B11 va ser borrada de la memoria de imágenes de referencia se describe en el flujo de bits, la unidad de control de memoria 264 controla la memoria de imágenes de referencia 207 para borrar la imagen B11 de la memoria.
Además, el número de memoria lógica del área de memoria en el que se almacena la otra imagen candidata de referencia P12 se aumenta en 1. Por ello, las imágenes P15, B13, P12, P9, P6 y P3 se almacenan en las áreas de memoria en las que se fijan los números de memoria lógica (0)~(5), respectivamente y los índices de imágenes de referencia [0], [1], [2], [3] y [4] se asignan a las imágenes B13, P12, P9, P6 y P3, respectivamente.
(Proceso de decodificación para la imagen B14)
Dado que las operaciones de la unidad de análisis de flujo de bits 201, la unidad de decodificación de modo 203 y la unidad de decodificación de error de predicción 202 son idénticas a las descritas para la decodificación de la imagen P15, no es necesaria una descripción repetida.
La unidad de decodificación de compensación de movimiento 205 genera una imagen de compensación de movimiento a partir de la información introducida tal como el vector de movimiento. La información introducida a la unidad de decodificación de compensación de movimiento 205 es el vector de movimiento y el índice de imagen de referencia. La imagen B14 se ha codificado usando las imágenes B13, P12, P9, P6 y P3 como imágenes candidatas a la referencia hacia delante y la imagen P15 como una imagen candidata para referencia hacia atrás. En la decodificación de la imagen B14, ya se han decodificado estas imágenes candidatas y se almacenan en la memoria de imágenes de referencia 207.
Cuando el modo de codificación es codificación predictiva hacia delante o codificación predictiva bidireccional, la unidad de decodificación de compensación de movimiento 205 determina cuál de las imágenes candidatas B13, P12, P9, P6 y P3 se usa como una imagen de referencia hacia delante cuando se codifica la imagen B14, sobre la base de los índices de imágenes de referencia. Entonces, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen de compensación de movimiento hacia delante de la memoria de imágenes de referencia 207 sobre la base de la imagen de referencia determinada y el vector de movimiento hacia delante. Cuando el modo de codificación es codificación predictiva bidireccional o codificación predictiva hacia atrás, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen de compensación de movimiento hacia atrás de la memoria de imágenes de referencia 207 sobre la base de la imagen de referencia determinada y el vector de movimiento hacia atrás. Entonces, la unidad de decodificación de compensación de movimiento 205 genera una imagen de compensación de movimiento, usando la imagen de compensación de movimiento hacia delante y la imagen de compensación de movimiento hacia atrás.
5
10
15
20
25
30
35
40
45
50
55
La imagen de compensación de movimiento así generada se saca a la unidad de adición 208. La unidad de adición 208 añade la imagen de error de predicción introducida y la imagen de compensación de movimiento para generar una imagen decodificada. La imagen decodificada así generada se saca a través del conmutador 210 a la memoria de imágenes de referencia 207.
Cuando se han decodificado todos los bloques de la imagen B14, la unidad de control de memoria 264 actualiza los números de memoria lógica y los índices de imágenes de referencia que corresponden a las imágenes almacenadas en la memoria de imágenes de referencia 207. Dado que la imagen B14 está hacia delante de la imagen P15 almacenada en la memoria de imágenes de referencia 207 en el orden de tiempos de visualización y es posterior a la imagen B13 almacenada en la memoria de imágenes de entrada 207, la imagen B14 se almacena en el área de memoria en la cual se fija el número de memoria lógica (1). Además, dado que información que indica que la imagen B13 va ser borrada de la memoria de imágenes de referencia se describe en el flujo de bits, la unidad de control de memoria 264 controla la memoria de imágenes de referencia 207 para borrar la imagen B13 de la memoria.
Dado que la siguiente imagen objetivo a ser decodificada es la imagen P18 que es una imagen P, los índices de imágenes de referencia se asignan a imágenes distintas de imágenes B. Por ello, las imágenes P15, B14, P12, P9 y P6 se almacenan en las áreas de memoria en las que se fijan los números de memoria lógica (0)~(5), respectivamente y los índices de imágenes de referencia [0], [1], [2], [3] y [4] se asignan a las imágenes P15, P12, P9 y P6, respectivamente.
Además, las imágenes decodificadas se sacan de la memoria de imágenes de referencia 207, como imágenes de salida dispuestas en orden de tiempos de visualización.
A partir de entonces, las imágenes posteriores se decodifican de manera similar según el tipo de imagen.
Como se describió anteriormente, según la sexta realización, los índices de imágenes de referencia se asignan a imágenes candidatas plurales para referencia hacia delante para una imagen objetivo a ser decodificada de manera que un índice de imagen de referencia menor se asigna a una imagen candidata cuyo tiempo de visualización es posterior (es decir, información para identificar a qué imagen candidata se hace referencia en la detección de un vector de movimiento hacia delante de un bloque objetivo) y se determina una imagen de referencia de entre las imágenes candidatas plurales sobre la base de los índices de imágenes de referencia incluidos en el flujo de bits de la imagen objetivo. Por lo tanto, un índice imagen de referencia menor se asigna a una imagen candidata que es más probable que sea usada como una imagen de referencia. Por consiguiente, es posible de codificar correctamente un flujo de bits que se obtiene por un método de codificación altamente eficiente que puede minimizar la cantidad de códigos que corresponden a los índices imágenes de referencia.
Además, dado que, en la decodificación de una imagen P, no se asignan índices de imágenes de referencia a imágenes B, es posible decodificar correctamente un flujo de bits que se obtiene por un método de codificación altamente eficiente que puede evitar la aparición de índices de imágenes de referencia que nunca se usarán.
Además, dado que, en la decodificación de una imagen B, una imagen almacenada en una memoria en la cual se fija un número de memoria lógica menor se usa como una imagen de referencia hacia atrás y no se asigna ningún índice de imagen de referencia a esta imagen, es posible decodificar correctamente un flujo de bits que se obtiene por un método de codificación altamente eficiente que puede evitar que una imagen P sea usada como una imagen de referencia hacia delante en codificación predictiva de una imagen B.
Por otra parte, cuando información que indica que una imagen que nunca se usará como una imagen de referencia se borrar de la memoria de imágenes de referencia, se describe en el flujo de bits, la imagen de referencia se borra de la memoria de imágenes de referencia según la información, por lo cual la memoria de imágenes de referencia se puede usar eficazmente.
Además, en esta sexta realización, como una disposición de imágenes plurales que constituyen una imagen en movimiento, una disposición de imágenes en las que dos imágenes se colocan entre imágenes P adyacentes. No obstante, el número de imágenes B colocadas entre imágenes P adyacentes puede ser distinto de dos, por ejemplo puede ser tres o cuatro.
Además, aunque en esta sexta realización se usan cuatro imágenes como imágenes candidatas para referencia hacia delante para una imagen P, el número de imágenes candidatas de referencia hacia delante para una imagen P puede ser distinto de cuatro.
Mientras que en esta sexta realización se usan cuatro imágenes P y una imagen B como imágenes candidatas para referencia hacia delante para una imagen B, las imágenes candidatas de referencia hacia delante para una imagen B no están restringidas a las mismas.
Mientras que en esta sexta realización cada una de las imágenes plurales que constituyen una imagen en movimiento se usa como una imagen de referencia cuando se decodifica otra imagen que sigue a esta imagen, las imágenes plurales que constituyen una imagen en movimiento, que van a ser de codificadas, pueden incluir imágenes que nunca se usarán como imágenes de referencia. En este caso, las imágenes inútiles como imágenes
5
10
15
20
25
30
35
40
45
50
55
de referencia no se almacenan en la memoria de imágenes de referencia, por lo cual se pueden lograr los mismos efectos que se describen para la sexta realización.
Mientras que en esta sexta realización la decodificación de una imagen B se lleva a cabo usando otra imagen B como una imagen candidata de referencia, la decodificación de una imagen B se puede llevar a cabo sin hacer referencia a otra imagen B. En este caso, no se almacenan imágenes B en la memoria de imágenes de referencia. También en este caso, los mismos efectos que se describen para la sexta realización se pueden lograr asignando índices de imágenes de referencia según el orden de tiempos de visualización de imágenes.
Mientras que en esta sexta realización, por simplificación, una memoria para gestionar imágenes candidatas de referencia y una memoria para reordenar imágenes decodificadas en orden de visualización para sacarlas no están separadas sino que se describen como una única memoria de imágenes de referencia, el aparato de decodificación de imágenes en movimiento 60 se puede dotar con una memoria de gestión para gestionar imágenes candidatas de referencia y una memoria de reordenación para reordenar imágenes decodificadas en orden de visualización, respectivamente.
En este caso, la memoria de gestión se controla por el controlador de memoria 264 y saca imágenes candidatas de referencia a la unidad de decodificación de compensación de movimiento 205. Además, la memoria de reordenación reordena las imágenes decodificadas dispuestas en orden de decodificación, en orden de visualización y saca secuencialmente las imágenes.
Además, en esta sexta realización, la asignación de índices de imágenes de referencia a imágenes candidatas se lleva a cabo según una única regla, es decir, se usa un sistema de índices de imágenes de referencia. No obstante, se pueden usar dos sistemas de índices de imágenes de referencia, como se describió para la quinta realización.
[Realización 7]
La figura 33 es un diagrama de bloques para explicar un aparato de codificación de imágenes en movimiento 70 según una séptima realización de la presente invención.
Este aparato de codificación de imágenes en movimiento 70 es diferente del aparato de codificación de imágenes en movimiento 10 según la primera realización en las imágenes candidatas para imágenes de referencia hacia delante a ser referidas cuando se codifica una imagen P y una imagen B y modos de codificación para una imagen B.
Es decir, el aparato de codificación de imágenes en movimiento 70 se dota con, en lugar de la unidad de control 110 y la unidad de selección de modo 109 según la primera realización, una unidad de control de codificación 170 y una unidad de selección de modo 109 que operan de maneras diferentes de las descritas para la primera realización.
Para ser específicos, la unidad de control de codificación 170 según la séptima realización controla una memoria de imágenes de referencia 117 de manera que, cuando se codifica un imagen P, tres imágenes (imágenes I o P) que se colocan hacia delante de la imagen P se usan como imágenes candidatas para referencia hacia delante y cuando se codifica un imagen B, dos imágenes (imágenes I o P) que se colocan hacia delante de la imagen B, una imagen B hacia delante que es la más cercana a la imagen B y una imagen I o P hacia atrás se usan como imágenes candidatas. No obstante, no se hace referencia a una imagen, que se coloca hacia delante de una imagen I o P que se coloca hacia delante y la más cercana a la imagen objetivo.
La unidad de control de codificación 170 controla la unidad de generación de flujo de bits 104 con una señal de control Cd de manera que una marca que indica si se va a hacer referencia o no a una imagen objetivo cuando se codifican imágenes posteriores se inserta en el flujo de bits. Para ser específicos, la unidad de generación de código 104 se controla con la señal de control Cd de manera que información que indica que datos de la imagen objetivo se deberían almacenar en la memoria de imágenes de referencia 117 en la codificación así como información que indica un periodo de tiempo para el almacenamiento se añaden al flujo de bits.
Además, cuando se codifica un bloque (bloque objetivo) en una imagen P, la unidad de selección de modo 109 según la séptima realización selecciona, como un modo de codificación para el bloque objetivo, uno de entre los modos plurales como sigue: codificación dentro de una imagen, codificación predictiva entre imágenes usando un vector de movimiento y codificación predictiva entre imágenes no usando un vector de movimiento (o el movimiento se trata como cero). Cuando se codifica un bloque (bloque objetivo) en una imagen B, la unidad de selección de modo 179 selecciona, como un modo de codificación para el bloque objetivo, uno de entre los modos plurales como sigue: codificación dentro de una imagen, codificación predictiva entre imágenes usando un vector de movimiento hacia delante, codificación predictiva entre imágenes usando un vector de movimiento hacia atrás y codificación predictiva entre imágenes usando un vector de movimiento hacia delante y un vector de movimiento hacia atrás. Es decir, la unidad de selección de modo 179 del aparato de codificación de imágenes en movimiento 70 según esta séptima realización es diferente de la unidad de selección de modo 109 del aparato de codificación de imágenes en movimiento 10 según la primera realización solamente en que no usa el modo directo y, por lo tanto, el aparato de codificación de imágenes en movimiento 70 no tienen la unidad de almacenamiento de vector de movimiento 116 del aparato de codificación de imágenes en movimiento 10. Otros componentes del aparato de codificación de imágenes
5
10
15
20
25
30
35
40
45
50
en movimiento 70 según la séptima realización son idénticos a los del aparato de codificación de imágenes en movimiento 10 según la primera realización.
El aparato de codificación de imágenes en movimiento 70 según la séptima realización es diferente del aparato de codificación de imágenes en movimiento 50 según la quinta realización en que la unidad de control de codificación 170 controla la unidad de generación de flujo de bits 104 de manera que una marca que indica si va a hacerse referencia o no a una imagen objetivo cuando se codifican imágenes sucesivas se inserta en el flujo de bits. Para ser específicos, la unidad de generación de código 104 se controla con la señal de control Cd de manera que una marca que indica si se va hacer referencia o no a una imagen objetivo cuando se codifican imágenes posteriores se inserta en el flujo de bits que corresponde a la imagen objetivo. Además, el aparato de codificación de imágenes en movimiento 70 es diferente del aparato de codificación de imágenes en movimiento 50 en las imágenes candidatas a las que se hace referencia en la codificación de una imagen P y una imagen B. El aparato de codificación de imágenes en movimiento 70 es idéntico al aparato de codificación de imágenes en movimiento 50 en aspectos distintos a los mencionados anteriormente.
A continuación, se describirá la operación del aparato de codificación de imágenes en movimiento 70.
Los datos de imagen Id introducidos se almacenan en la memoria de imágenes de entrada 101, en unidades de imágenes, en orden de tiempo.
La figura 34(a) muestra el orden de las imágenes introducidas a la memoria de imágenes de entrada 101.
Como se muestra la figura 34(a), las imágenes respectivas se introducen sucesivamente a la memoria de imágenes de entrada 101, comenzando desde la imagen P1. En la figura 34(a), las imágenes P1, P4, P7, P10, P13, P16, P19 y P22 son imágenes P, mientras que las imágenes B2, B3, B5, B6, B8, B9, B11, B12, B14, P15, B17, P18, B20 y B21 son imágenes B.
Cuando se codifica una imagen P, tres imágenes (imágenes I o P) que están en cuanto al tiempo hacia delante y cerca de la imagen P se usan como candidatas para una imagen de referencia. Además, cuando se codifica una imagen B, dos imágenes (imágenes I o P) que están en cuanto al tiempo hacia delante y cerca de la imagen B, una imagen B que está hacia adelante y la más cerca de la imagen B y una imagen I o P que está hacia delante de la imagen B, se usan como candidatas para una imagen de referencia. No obstante, en la codificación de una imagen B, no se hace referencia a una imagen B que se coloca hacia delante de una imagen I o P que están en cuanto al tiempo hacia delante y las más cercanas a la imagen B. Cuando se codifica una imagen I, no se hace referencia a otras imágenes.
Los datos Id de las imágenes respectivas introducidos a la memoria de imágenes de entrada 101 se reordenan en orden de codificación. A partir de entonces se hace referencia a los datos de cada imagen simplemente como una imagen.
Es decir, en el proceso de cambio del orden de las imágenes desde el orden entrada al orden de codificación se lleva a cabo sobre la base de las relaciones entre las imágenes objetivo y las imágenes de referencia en codificación predictiva entre imágenes. En la reordenación, las imágenes respectivas se reordenaron de manera que una segunda imagen a ser usada como una candidata para una imagen de referencia en la codificación de una primera imagen se codifica anterior a la primera imagen.
Para ser específicos, las correspondencias entre las imágenes P10~P13 y las imágenes candidatas de referencia se muestran por las flechas en la figura 34(a). Es decir, cuando se codifica la imagen P P10, se hace referencia a las imágenes P1, P4 y P7 y cuando se codifica la imagen P P13, se hace referencia a las imágenes P4, P7 y P10. Además, cuando se codifica la imagen B B11, se hace referencia a las imágenes P7, P10 y P13 y cuando se codifica la imagen B B12, se hace referencia a las imágenes P7, P10, B11 y P13.
La figura 34(b) muestra el orden de las imágenes después de reordenar las imágenes B2 a P22 mostradas en la figura 34(a). Después de la reordenación, las imágenes respectivas se disponen en orden de P4, B2, B3, P7, B5, B6, P10, B8, B9, P13, B11, B12, P16, B14, B15, P19, B17, B18 y P22.
Las imágenes respectivas reordenadas en la memoria de imágenes de referencia 101 se leen sucesivamente, para cada unidad de procesamiento de datos predeterminada, en orden de tiempos de codificación. En esta séptima realización, la unidad de procesamiento de datos es una unidad de datos de la cual se lleva a cabo una compensación el movimiento y, más específicamente, es un espacio de imagen rectangular (macrobloque) en el cual se disponen 16 píxeles tanto en la dirección horizontal como en la dirección vertical. En la siguiente descripción, se hace referencia a un macrobloque simplemente como un bloque.
En lo sucesivo, los procesos de codificación para las imágenes P13, B11 y B12 se describirán en este orden. (Proceso de codificación para la imagen P13)
5
10
15
20
25
30
35
40
45
50
55
Dado que la imagen P13 es una imagen P, la codificación predictiva entre imágenes usando referencia hacia delante se lleva a cabo como un proceso de codificación para la imagen P13. En este caso, tres imágenes I o P que se colocan hacia delante de la imagen objetivo (imagen P13) se usan como imágenes candidatas de referencia y, específicamente, se usan las imágenes P4, P7 y P10. Estas imágenes candidatas de referencia ya se han codificado y las que corresponden a datos imagen decodificados Dd se almacenan en la memoria de imágenes de referencia 117.
En la codificación de una imagen P, la unidad de control de codificación 170 controla los conmutadores respectivos de manera que los conmutadores 113, 114 y 115 están ENCENDIDOS.
Los datos Md que corresponden a un bloque en la imagen P13, que se leen de la memoria del imágenes de entrada 101, se introducen a la unidad de detección de vector de movimiento 108, la unidad de selección de modo 179 y la unidad de cálculo de diferencia 102.
La unidad de detección vector de movimiento 108 detecta el vector de movimiento MV del bloque en la imagen P13, usando los datos de imagen decodificados Rd de las imágenes P4, P7 y P10 almacenadas en la memoria de imágenes de referencia 117. En este caso, se selecciona una imagen óptima de entre las imágenes P4, P7 y P10 y se lleva a cabo de detección del vector de movimiento con referencia a la imagen seleccionada. Entonces, el detector de movimiento MV detectado se saca a la unidad de selección de modo 179 y la unidad de generación de flujo de bits 104. Además, información que indica a cuál de las imágenes P4, P7 y P10 se hace referencia en la detección del vector de movimiento MV (información de imagen de referencia) también se saca a la unidad de selección de modo 179.
La unidad de selección de modo 179 determina un modo de codificación para el bloque en la imagen P13, usando el detector de movimiento detectado por la unidad de detección de vector de movimiento 108.
Para ser específicos, en el caso de codificación de una imagen P, se selecciona un modo de codificación de entre los siguientes modos de codificación: codificación dentro de una imagen, codificación predictiva entre imágenes usando un vector de movimiento y codificación predictiva entre imágenes no usando un vector de movimiento (es decir, el movimiento se considera como 0). En la determinación de un modo de codificación, generalmente, se selecciona un modo de codificación que minimiza los errores de codificación cuando se da una cantidad de bits predeterminada al bloque como una cantidad de códigos.
El modo de codificación Ms determinado por la unidad de selección de modo 179 se saca a la unidad de generación de flujo de bits 104. Además, cuando el modo de codificación Ms determinado es el modo de codificación que realiza referencia hacia delante, información que indica a cuál de las imágenes P4, P7 y P10 se hace referencia en la detección del vector de movimiento hacia delante (vector de movimiento hacia delante) también se saca a la unidad de generación de flujos de bits 104.
Entonces, los datos de imagen de predicción Pd, que se obtienen a partir de la imagen de referencia según el modo de codificación Ms que se determina por la unidad de selección de modo 179, se sacan a la unidad de cálculo de diferencia 102 y la unidad de adición 106. No obstante, cuando se selecciona el modo de codificación dentro de una imagen, no se sacan datos de imagen de predicción Pd. Además, cuando se selecciona la codificación dentro de una imagen, los conmutadores 111 y 112 se controlan de la misma manera que se describió para la quinta realización.
En lo sucesivo, se dará una descripción de un caso en el que se selecciona el modo de codificación predictiva entre imágenes como el modo de codificación Ms.
La unidad de cálculo de diferencia 102, la unidad de codificación de error de predicción 103, la unidad de generación de flujos de bits 104, la unidad de decodificación de error de predicción 105 y la unidad de control de codificación 170 son idénticas a las descritas para la quinta realización.
No obstante, en esta séptima realización, información que indica que la imagen P13 se codifica usando tres imágenes I o P hacia delante como imágenes candidatas de referencia, se añade como información de cabecera de la imagen P13. Además, dado que se hará referencia a la imagen P13 cuando se codifica otra imagen, información (marca) que indica que los datos decodificados Dd que corresponden a la imagen P13 se deberían almacenar en la memoria de imágenes de referencia 117 en la decodificación, también se añade como información de cabecera de la imagen P13. Además, información que indica que la imagen P13 se debería almacenar en la memoria de imágenes de referencia hasta que se completa la decodificación de la imagen P22, también se añade como información de cabecera de la imagen P13.
El periodo de almacenamiento para la imagen P13 se puede indicar mediante información de tiempo de la imagen P22 (por ejemplo, información de posición basada en el tiempo tal como un número de imagen, información de tiempo de decodificación o información de tiempo de visualización) o información del período desde la imagen P13 a la imagen P22 (por ejemplo, el número de imágenes). La información de cabecera descrita anteriormente se puede describir como información de cabecera en unidades de imágenes, es decir, como información de cabecera para cada imagen objetivo a ser codificada. Alternativamente, se puede describir como información de cabecera de la
5
10
15
20
25
30
35
40
45
50
55
secuencia entera o como información de cabecera en unidades de cuadros (por ejemplo, en unidades de GOP en MPEG).
Cuando el modo de codificación para cada bloque en la imagen P13 es uno que realiza referencia hacia delante, información que indica a cuál de las imágenes P4, P7 y P10 se hace referencia en la detección del vector de movimiento hacia delante (información de imagen de referencia) también se añade al flujo de bits. Por ejemplo, cuando se obtiene el vector de movimiento con referencia la imagen P10, información que indica que la imagen P justo anterior a la imagen objetivo se usa como una imagen de referencia (índice de imagen de referencia) se añade al flujo de bits. Cuando el vector de movimiento se obtiene con referencia a la imagen P7, información que indica que la imagen P dos imágenes anterior a la imagen objetivo se usa como una imagen de referencia (índice de imagen de referencia) se añade al flujo de bits. Cuando el vector de movimiento se obtiene con referencia a la imagen P4, información que indica que la imagen P tres imágenes anterior a la imagen objetivo se usa como una imagen de referencia (índice de imagen de referencia) se añade al flujo de bits. Por ejemplo, un índice de imagen de referencia [0] se puede usar para indicar que la imagen P justo anterior a la imagen objetivo se usa como una imagen de referencia, un índice de imagen de referencia [1] se puede usar para indicar que la imagen P dos imágenes anterior a la imagen objetivo se usa como una imagen de referencia y un índice de imagen de referencia [2] se puede usar para indicar que la imagen P tres imágenes anterior a la imagen objetivo se usa como una imagen de referencia.
Además, información que indica que la imagen P se somete a codificación predictiva entre imágenes usando tres imágenes candidatas de referencia se describe como información de cabecera.
Los macrobloques restantes en la imagen P13 se codifican de la misma manera que se describió anteriormente. Cuando se han codificado todos los macrobloques en la imagen P13, tiene lugar la codificación de la imagen B11.
(Proceso de codificación para la imagen B11)
Dado que la imagen B11 es una imagen B, una codificación predictiva entre imágenes usando referencia bidireccional se lleva a cabo como un proceso de codificación para la imagen B11. En este caso, dos imágenes (imágenes I o P) que son en cuanto al tiempo cercanas a la imagen objetivo (imagen B11) y una imagen B que es en cuanto al tiempo la más cercana a la imagen objetivo se usan como imágenes candidatas para referencia hacia delante y una imagen I o P que es en cuanto al tiempo la más cercana a la imagen objetivo se usa como una imagen candidata para referencia hacia atrás. No obstante, nunca se hace referencia a una imagen B que se coloca más allá de una imagen I o P la más cercana a la imagen objetivo.
Por consiguiente, las imágenes P7 y P10 se usan como imágenes de referencia hacia delante para la imagen B11 y la imagen P13 se usa como una imagen de referencia hacia atrás para la imagen B11. En el procesamiento de una primera imagen B entre dos imágenes B continuas, dado que esta primera imagen B se usa como una imagen de referencia en la codificación de la otra imagen B, la unidad de control de codificación 170 controla los conmutadores respectivos de manera que los conmutadores 113, 114 y 115 están ENCENDIDOS. Por consiguiente, los datos de imagen Md que corresponden al bloque en la imagen B11, que se leen de la memoria de imagen de entrada 101, se introducen a la unidad de detección de vector de movimiento 108, la unidad de selección de modo 179 y la unidad de cálculo de diferencia 102.
La unidad de detección de vectores de movimiento 108 detecta un vector de movimiento hacia delante y un vector de movimiento hacia atrás que corresponden al bloque objetivo en la imagen B11, con referencia las imágenes P7 y P10 almacenadas en la memoria de imágenes de referencia 117, como imágenes candidatas para referencia hacia delante y la imagen P13 almacenada en la memoria de imágenes de referencia 117, como una imagen de referencia hacia atrás. En este caso, o bien la imagen P7 o bien la imagen P10 se selecciona como una imagen de referencia más adecuada y se lleva a cabo una detección de un vector de movimiento hacia delante según la imagen seleccionada. Los vectores de movimiento detectados se sacan a la unidad de selección de modo 179 y la unidad de generación de flujos de bits 104. Además, información que indica a cuál de las imágenes P7 y P10 se hace referencia en la detección del vector de movimiento hacia delante (información de imagen de referencia) también se saca a la unidad de selección de modo 179.
La unidad de selección de modo 179 determina un modo de codificación para el bloque objetivo en la imagen B11, usando los vectores de movimiento detectados por la unidad de detección de vector de movimiento 108. Como un modo de codificación para la imagen B, se selecciona uno de los siguientes modos de codificación: modo de codificación dentro de una imagen, modo de codificación predictiva entre imágenes usando un vector de movimiento hacia delante, modo de codificación predictiva entre imágenes usando una imagen en movimiento hacia atrás y el modo de codificación predictiva entre imágenes usando vectores de movimiento bidireccionales. También en este caso, se debería seleccionar un método general (modo) que minimiza los errores de codificación cuando una cantidad predeterminada de bits se da como la cantidad de códigos.
El modo de codificación determinado por la unidad de selección de modo 179 se saca a la unidad de generación de flujo de bits 104. Además, los datos de imagen de predicción Pd, que se obtienen a partir de la imagen de referencia según el modo de codificación Ms que se determina por la unidad de selección de modo 179, se sacan a la unidad
5
10
15
20
25
30
35
40
45
50
55
de cálculo de diferencia 102 y la unidad de adicción 106. No obstante, cuando el modo de codificación dentro de una imagen se selecciona por la unidad de selección de modo 179, no se sacan datos de imagen de predicción Pd. Además, cuando se selecciona codificación dentro de una imagen, los conmutadores 111 y 112 se controlan de la misma manera que se describió para el proceso de codificación de la imagen P13.
En lo sucesivo, se dará una descripción de un caso en el que se selecciona la codificación predictiva entre imágenes por la unidad de selección de modo 179.
En este caso, las operaciones de la unidad de cálculo de diferencia 102, la unidad de codificación de error de predicción 103, la unidad de generación de flujo de bits 104, la unidad de decodificación de error de predicción 105 y la unidad de control de codificación 170 son idénticas a las descritas para la quinta realización.
Cuando el modo de codificación es uno que realiza referencia hacia delante, información que indica a cuál de las imágenes P7 y P10 se hace referencia en la decodificación del vector de movimiento hacia delante (información de imagen de referencia) también se añade al flujo de bits. Por ejemplo, cuando se hace referencia a la imagen P10, información de imagen de referencia que indica que una imagen candidata justo anterior a la imagen objetivo se usa como una imagen de referencia se añade al flujo de bits. Cuando se hace referencia a la imagen P7, información de imagen de referencia que indican que una imagen candidata dos imágenes anterior a la imagen objetivo se usa como una imagen de referencia se añade al flujo de bits. Por ejemplo, un índice de imagen de referencia [0] se puede usar para indicar que una imagen candidata justo anterior a la imagen objetivo se usan como una imagen de referencia y un índice de imagen de referencia [1] se puede usar para indicar que una imagen candidata dos imágenes anterior a la imagen objetivo se usa como una imagen de referencia.
Además, en este caso, información que indica que la imagen B objetivo se somete a codificación predictiva entre imágenes usando una imagen B hacia delante como una imagen de referencia no se añade como información de cabecera. Además información que indica que las imágenes candidatas de referencia hacia delante para la imagen B objetivo son dos imágenes I o P y una imagen B se añade como información de cabecera. Por otra parte, información que indica que no se hace referencia a una imagen B, que se coloca hacia delante de una imagen I o P que se coloca hacia delante y la más cercana a la imagen B objetivo, se añade como información de cabecera.
Por ello, es posible conocer la capacidad de una memoria de imágenes de referencia que se necesita en la decodificación del flujo de bits Bs generado en el aparato de codificación de imágenes en movimiento 70 según la séptima realización. La información de cabecera descrita anteriormente se puede describir como información de cabecera en unidades de imágenes, es decir, como información de cabecera para cada imagen objetivo a ser codificada. Alternativamente, se puede describir como información de cabecera de la secuencia entera o como información de cabecera en unidades de varias imágenes (por ejemplo, en unidades de GOP en MPEG).
Además, dado que la imagen B11 se usa como una imagen de referencia cuando se codifica una imagen colocada hacia atrás de la imagen B11, información que indica que datos de imagen decodificados Dd que corresponden a la imagen B11 se deberían almacenar en la memoria de imágenes de referencia 117 en la decodificación, también se añade como información de cabecera. Además, información que indica que los datos Dd se deberían almacenar en la memoria de imágenes de referencia 117 hasta que se completa la decodificación de la imagen B12, también se añade como información de cabecera.
Cuando se han codificado todos los bloques restantes en la imagen B11, tiene lugar la codificación de la imagen B12.
(Proceso de codificación para la imagen B12)
Dado que la imagen B12 es una imagen B, una codificación predictiva entre imágenes usando referencia bidireccional se lleva a cabo como un proceso de codificación para la imagen B12. En este caso, dos imágenes I o P que están en cuanto al tiempo cerca de la imagen objetivo B12 y una imagen B que está en cuanto al tiempo la más cercana a la imagen objetivo B12 se usan como imágenes candidatas para referencia hacia delante. Además, una imagen I o P, que es en cuanto al tiempo la más cercana a la imagen objetivo B12 se usa como una imagen candidata para referencia hacia atrás. Para ser específicos, las imágenes P7, P10 y B11 se usan como imágenes candidatas para referencia hacia delante para la imagen B12 y la imagen P13 se usa como una imagen de referencia hacia atrás para la imagen B12.
Dado que la imagen B12 no se usa como una imagen de referencia cuando se codifica otra imagen, la unidad de control de codificación 170 controla los conmutadores respectivos con la señal de control Cs1 de manera que el conmutador 113 está ENCENDIDO y los conmutadores 114 y 115 están APAGADOS. Por consiguiente, los datos de imagen Md que corresponden al bloque en la imagen B12, que se leen de la memoria de imágenes de entrada 101, se introducen a la unidad de detección de vector de movimiento 108, la unidad de selección de modo 179 y la unidad de cálculo de diferencia 102.
La unidad de detección de vector de movimiento 108 detecta un vector de movimiento hacia delante y un vector movimiento hacia atrás que corresponden al macrobloque en la imagen B12, con referencia las imágenes P7, P10 y
5
10
15
20
25
30
35
40
45
50
B11 almacenadas en la memoria de imágenes de referencia 117, como imágenes de referencia hacia delante y la imagen P13 almacenada en la memoria de imágenes de referencia 117, como una imagen de referencia hacia atrás.
En este caso, se selecciona una imagen de referencia más adecuada de entre las imágenes P7, P10 y B11 y una detección de un vector de movimiento hacia delante se lleva a cabo según la imagen seleccionada. Los vectores de movimiento detectados se sacan a la unidad de selección de modo 179 y la unidad de generación de flujo de bits 104. Además, información que indica a cuál de las imágenes P7, P10 y B11 se hace referencia en la detección del vector de movimiento hacia delante (información de imagen de referencia) también se saca a la unidad de selección de modo 179.
La unidad de selección del modo 179 determina un modo de codificación para el bloque en la imagen B12, usando los vectores de movimiento detectados por la unidad de detección de vector de movimiento 108. Como un modo de codificación para la imagen B, se selecciona uno de los siguientes modos de codificación: modo de codificación dentro de una imagen, modo de codificación predictiva entre imágenes usando un vector de movimiento hacia delante, modo de codificación predictiva entre imágenes usando un vector de movimiento hacia atrás y modo de codificación predictiva entre imágenes usando vectores de movimiento bidireccionales.
El modo de codificación Ms determinado por la unidad de selección de modo 179 se saca a la unidad de generación de flujo de bits 104. Además, datos de imagen de predicción Pd, que se obtienen a partir de la imagen de referencia según el modo de codificación que se determina por la unidad de selección de modo 179, se sacan a la unidad de cálculo de diferencia 102 y la unidad de adición 106. No obstante, cuando se selecciona el modo de codificación dentro de una imagen, no se sacan datos de imagen de predicción Pd.
Además, cuando se selecciona el modo de codificación dentro de una imagen por la unidad de selección de modo 179, los conmutadores 111 y 112 se controlan de la misma manera que se describió para el proceso de codificación de la imagen P13.
En lo sucesivo, se dará una descripción de un caso en el que se selecciona el modo de codificación predictiva entre imágenes por la unidad de selección de modo 179.
En este caso, las operaciones de la unidad de cálculo de diferencia 102, la unidad de codificación de error de predicción 103, la unidad de generación de flujo de bits 104, la unidad de decodificación de error de predicción 105 y la unidad de control de codificación 170 son idénticas a las descritas para la quinta realización.
Cuando el modo de codificación es uno que realiza referencia hacia delante, información que indica a cuál de las imágenes P7, P10 y B11 se hace referencia en la detección del vector de movimiento hacia delante (información de imagen de referencia) también se añade al flujo de bits.
Además, información que indica que la imagen B objetivo B12 se somete a codificación predictiva entre imágenes usando una imagen B B11 hacia delante como una candidata para una imagen de referencia se describe como información de cabecera. Además, información que indica que las imágenes candidatas para referencia hacia delante son dos imágenes I o P y una imagen B se describe como información de cabecera.
Por otra parte, información que indica que la imagen B12 no va ser usada como imagen de referencia cuando se codifican las siguientes imágenes se añade como información de cabecera.
Por ello, se determina fácilmente que no hay que almacenar necesariamente los datos de imagen decodificados Dd que corresponden a la imagen B12 en la memoria de imágenes de referencia en la codificación, por lo cual se facilita la gestión de la memoria de imágenes de referencia.
La información de cabecera antes mencionada se puede describir como información de cabecera en unidades de imágenes, es decir, como información de cabecera para cada imagen objetivo a ser codificada. Alternativamente, se puede escribir como información de cabecera de la secuencia entera o como información de cabecera en unidades de varias imágenes (por ejemplo, en unidades de GOP en MPEG).
Los bloques restantes en la imagen B12 se codifican de la misma manera que se describió anteriormente.
A partir de entonces, los datos de imagen que corresponden a las imágenes respectivas que siguen a la imagen B12 se codifican de la misma manera que se describió anteriormente según el tipo de imagen. Por ejemplo, las imágenes P se procesan como la imagen P13 y la primera imagen B de las imágenes B continuas (imagen B14, B17 o similares) se procesa como la imagen P11. Además, la segunda imagen B de las imágenes B continuas (imagen B15, B18 o similares) se procesa como la imagen P12.
Como se describió anteriormente, en el aparato de codificación de imágenes en movimiento 70 según la séptima realización, cuando se codifica una imagen B como una imagen objetivo, dado que una imagen B también se usa como una imagen candidata para referencia hacia delante así como imágenes P, una imagen de referencia hacia delante que se coloca la más cercana a la imagen objetivo se puede usar como una imagen de referencia hacia
5
10
15
20
25
30
35
40
45
50
55
delante. Por ello, se puede aumentar la precisión de predicción en compensación de movimiento para una imagen B, provocando una eficiencia de codificación mejorada.
Por otra parte, cuando se codifica una imagen B como una imagen objetivo, información que indica si la imagen objetivo va ser usada o no como una imagen de referencia cuando se codifica (se decodifica) otra imagen se añade como información de cabecera. Además, cuando la imagen objetivo se usa como una imagen de referencia cuando se codifica (se decodifica) otra imagen, se añade información que indica un periodo durante el cual se debería almacenar la imagen objetivo en la memoria de imágenes de referencia. Por lo tanto, cuando se decodifica el flujo de bits Bs sacado del aparato de codificación de imágenes en movimiento 70, el extremo de decodificación puede conocer fácilmente el extremo de codificación puede conocer fácilmente qué imagen se debería almacenar en la memoria de imágenes y cuánto es el período del almacenamiento, por lo cual se facilita la gestión de la memoria de imágenes de referencia en la decodificación.
En esta séptima realización, cuando se codifica una imagen B objetivo usando otra imagen B como una imagen de referencia, esto se describe como información de cabecera de la imagen B objetivo. No obstante, la información de cabecera no se describe necesariamente en unidades de imágenes. Se puede describir como información de cabecera de la secuencia entera o como información de cabecera en unidades de varias imágenes (por ejemplo, GOP en MPEG).
En esta séptima realización, una compensación de movimiento se realiza en unidades de macrobloques cada uno que comprende 16 píxeles (dirección horizontal) X 16 píxeles (dirección vertical) y una codificación de unos datos de imagen de error de predicción se realiza en unidades de bloques cada uno que comprende 4 píxeles (dirección horizontal) X 4 (dirección vertical) o en unidades de bloques cada uno que comprende 8 píxeles (dirección horizontal) X 8 (dirección vertical). No obstante, una compensación de movimiento y una codificación de datos de imagen de error de predicción se pueden llevar a cabo en unidades de espacios de imagen, cada uno que comprende diferente número de píxeles de los mencionados anteriormente.
Además, en esta séptima realización, un modo de codificación para una imagen P se selecciona de entre modo de codificación dentro de una imagen, modo de codificación predictiva entre imágenes usando un vector de movimiento y modo de codificación predictiva entre imágenes no usando un vector de movimiento, mientras que un modo de codificación para una imagen B se selecciona de entre modo de codificación dentro de una imagen, modo de codificación predictiva entre imágenes usando un vector de movimiento hacia delante, modo de codificación predictiva entre imágenes usando un vector de movimiento hacia atrás y modo de codificación predictiva entre imágenes usando vectores de movimiento bidireccionales. No obstante, la selección de un modo de codificación para una imagen P o una imagen B no se restringe a la mencionada para la séptima realización.
Además, mientras que esta séptima realización emplea una secuencia de imágenes en la que dos imágenes B se insertan entre una imagen I y una imagen P o entre imágenes P adyacentes, el número de imágenes B insertadas entre una imagen I y una imagen P o entre imágenes P adyacentes en una secuencia de imágenes puede ser distinto de dos, por ejemplo, puede ser de tres o cuatro.
Además, mientras que en esta séptima realización se usan tres imágenes como imágenes candidatas para referencia hacia delante cuando se codifica una imagen P, el número de imágenes candidatas de referencia hacia delante para una imagen P no se restringe a las mismas.
Además, mientras que en esta séptima realización se usan dos imágenes P y una imagen B como imágenes candidatas para referencia hacia delante cuando se codifica una imagen B, imágenes candidatas de referencia hacia delante a ser usadas en la codificación de una imagen B no se restringen a las mismas. Por ejemplo, imágenes candidatas de referencia hacia delante para una imagen B pueden ser una imagen P y dos imágenes B o dos imágenes P y dos imágenes B o tres imágenes que son en cuanto al tiempo las más cercanas a la imagen objetivo, con independencia del tipo de imagen.
Cuando, en la codificación de una imagen B, solamente una imagen que es la más cercana a la imagen B objetivo se usa como una imagen de referencia, no es necesario describir información que indica a qué imagen se hace referencia en la codificación de un bloque objetivo en la imagen B (información de imagen de referencia), en el flujo de bits.
Además, en esta séptima realización, cuando se codifica una imagen B, no se hace referencia a una imagen B que se coloca hacia delante de una imagen I o P que se coloca hacia delante y la más cercana a la imagen B objetivo. No obstante, cuando se codifica una imagen B, una imagen B que se coloca hacia delante de una imagen I o P que se coloca hacia delante y la más cercana a la imagen B objetivo, se puede usar como una imagen de referencia.
[Realización 8]
La figura 35 es un diagrama de bloques para explicar un aparato de decodificación de imágenes en movimiento 80 según una octava realización de la presente invención.
5
10
15
20
25
30
35
40
45
50
55
El aparato de decodificación de imágenes en movimiento 80 según la octava realización decodifica el flujo de bits Bs sacados desde el aparato de codificación de imágenes en movimiento 70 según la séptima realización.
El aparato de decodificación de imágenes en movimiento 80 es diferente del aparato de decodificación de imágenes en movimiento 20 según la segunda realización en imágenes candidatas para imágenes de referencia hacia delante a ser referidas cuando se codifica una imagen P y una imagen B y modos de decodificación para una imagen B.
Es decir, el aparato de decodificación de imágenes en movimiento 80 se dota con, en lugar de la unidad de control de memoria 204 y la unidad de decodificación de modo 223 según la segunda realización, una unidad de control de memoria 284 y una unidad de decodificación de modo 283 que operan de diferentes maneras de las descritas para la segunda realización.
Para ser específicos, la unidad de control de memoria 284 según la octava realización controla una memoria de imágenes de referencia 287 de manera que, cuando se decodifica una imagen P, tres imágenes (imágenes I o P) que se colocan hacia delante de la imagen P se usan como imágenes candidatas para referencia hacia delante y cuando se decodifica una imagen B, dos imágenes (imágenes I o P) que se colocan hacia delante de la imagen B, una imagen B hacia delante que es la más cercana a la imagen B y una imagen I o P hacia atrás se usan como imágenes candidatas. No obstante, no se hace referencia a una imagen B que se coloca hacia delante de una imagen I o P que se coloca hacia delante y la más cercana a la imagen objetivo.
La unidad de control de memoria 284 controla la memoria de imágenes de referencia 287, con una señal de control Cm, sobre la base de una marca que indica si va a ser hecha referencia o no a la imagen objetivo en la codificación de una imagen que sigue a la imagen objetivo, dicha marca se inserta en la cadena de código que corresponde a la imagen objetivo.
Para ser específicos, información (marca) que indica que los datos de la imagen objetivo se deberían almacenar en la memoria de imágenes de referencia 287 en la decodificación e información que indica un período durante el cual se deberían almacenar los datos de la imagen objetivo, se incluyen en el flujo de bits que corresponde a la imagen objetivo.
Además, cuando se decodifica un bloque (bloque objetivo) en una imagen P, la unidad de decodificación de modo 283 según la octava realización selecciona, como un modo de codificación para el bloque objetivo, uno de entre los siguientes modos: decodificación dentro de una imagen, decodificación predictiva entre imágenes usando un vector de movimiento y decodificación predictiva entre imágenes no usando un vector de movimiento (un movimiento se trata como cero). Cuando se decodifica un bloque (bloque objetivo) en una imagen B, la unidad de decodificación de modo 283 selecciona, como un modo de decodificación para el bloque objetivo, uno de entre los siguientes modos: decodificación dentro de una imagen, decodificación predictiva entre imágenes usando un vector de movimiento hacia delante, decodificación predictiva entre imágenes usando un vector de movimiento hacia atrás y decodificación predictiva entre imágenes usando un vector de movimiento hacia delante y un vector de movimiento hacia atrás. Es decir, la unidad de decodificación de modo 283 del aparato de decodificación de imágenes en movimiento 80 según esta octava realización es diferente de la unidad de decodificación de modo 223 del aparato de decodificación de imágenes en movimiento 20 según la segunda realización solamente en que no usa el modo directo y, por lo tanto, el aparato de decodificación de imágenes en movimiento 80 no tiene la unidad de almacenamiento de vector de movimiento 226 del aparato de decodificación de imágenes en movimiento 20. Otros componentes del aparato de decodificación de imágenes en movimiento 80 según la séptima realización son idénticos a los del aparato de decodificación de imágenes en movimiento 20 según la segunda realización.
Además, el aparato de decodificación de imágenes en movimiento 80 según la octava realización diferente del aparato de decodificación de imágenes en movimiento 60 según la sexta realización en que la unidad de control de memoria 284 controla la unidad de generación de flujo de bits 104 de manera que una marca que indica si se va a hacer referencia o no a la imagen objetivo en la codificación de una imagen después de que el bloque objetivo se inserta en el flujo de bits que corresponde a la imagen objetivo. Además, en el aparato de decodificación de imágenes en movimiento 80, imágenes candidatas a ser referidas en la decodificación de una imagen P y una imagen B también son diferentes de las empleadas en el aparato de decodificación de imágenes en movimiento según la sexta realización. Otros componentes del aparato de decodificación de imágenes en movimiento 80 según la séptima realización son idénticos a los del aparato de decodificación de imágenes en movimiento 60 según la sexta realización.
A continuación, se describirá la operación del aparato de decodificación de imágenes en movimiento 80.
El flujo de bits Bs sacado del aparato de codificación de imágenes en movimiento 70 según la séptima realización se introduce en el aparato de decodificación de imágenes en movimiento 80.
En esta octava realización, cuando se decodifica una imagen P, tres imágenes (imágenes I o P) que están en cuanto al tiempo hacia delante y cerca de la imagen P se usan como candidatas para una imagen de referencia. Por otra parte, cuando se decodifica una imagen B, dos imágenes (imágenes I o P) que se colocan en cuanto al tiempo hacia delante y cerca de la imagen B, una imagen B que se coloca hacia delante y la más cercana a la imagen B y una imagen I o P que se coloca hacia atrás de la imagen objetivo, se usan como imágenes candidatas para una imagen
5
10
15
20
25
30
35
40
45
50
de referencia. No obstante, en la decodificación de una imagen B, no se hace referencia a una imagen B que se coloca hacia delante de una imagen I o P que se coloca hacia delante y la más cercana a la imagen objetivo. Además, en la decodificación de una imagen I, no se hace referencia a otras imágenes.
Además, información que indica cuál de las imágenes candidatas se usa como una imagen de referencia en la decodificación de una imagen P o una imagen B se describe como información de cabecera Ih del flujo de bits Bs y la información de cabecera Ih se extrae por la unidad de análisis de flujo de bits 201.
La información de cabecera Ih se saca a la unidad de control de memoria 284. La información de cabecera se puede describir como información de cabecera de la secuencia entera, información de cabecera en unidades de varias imágenes (por ejemplo, GOP en MPEG) o información de cabecera en unidades de imagen.
Las imágenes en el flujo de bits Bs introducidas al aparato de decodificación de imágenes en movimiento 80 se disponen en orden de decodificación de imágenes como se muestra en la figura 36(a). En lo sucesivo, los procesos de decodificación de las imágenes P13, B11 y B12 se describirán específicamente en este orden.
(Proceso de decodificación para la imagen P13)
Cuando el flujo de bits que corresponde a la imagen P13 se introduce en la unidad de análisis de flujo de bits 201, la unidad de análisis de flujo de bits de 201 extrae diversos tipos de datos a partir del flujo de bits introducido. Los diversos tipos de datos son información (modo de codificación) Ms relativa al modo de selección, información del vector de movimiento MV, la información de cabecera descrita anteriormente y similares. El modo de codificación Ms extraído se saca a la unidad de decodificación de modo 283. Además, el vector de movimiento MV extraído se saca a la unidad de decodificación de compensación de movimiento 205. Además, los datos codificados Ed extraídos por la unidad de análisis de flujo de bits 201 se sacan a la unidad de decodificación de error de predicción 202.
La unidad de decodificación de modo 283 controla los conmutadores 209 y 210 con referencia a la información de selección de modo (modo de codificación) MS extraído a partir del flujo de bits. Cuando el modo de codificación Ms es el modo de codificación dentro de una imagen y cuando el modo de codificación Ms es el modo de codificación predictiva entre imágenes, los conmutadores 209 y 210 se controlan de la misma manera que se describió para la sexta realización.
Además, la unidad de decodificación de modo 283 saca el modo de codificación Ms a la unidad de decodificación de compensación de movimiento 205.
En lo sucesivo, se dará una descripción del caso en el que el modo de codificación es modo de codificación predictivo entre imágenes.
Dado que las operaciones de la unidad de decodificación de error de predicción 202, la unidad de decodificación de compensación de movimiento 205 y la unidad de adición 208 son idénticas a las descritas para la sexta realización, no es necesaria una descripción repetida.
La figura 37 muestra cómo las imágenes, cuyos datos se almacenan en la memoria de imágenes de referencia 207, cambian con el tiempo.
Cuando se inicia la decodificación de la imagen P13, las imágenes B8, P7 y P10 se almacenan en las áreas R1, R2 y R3 de la memoria de imágenes de referencia 207. La imagen P13 se decodifica usando las imágenes P7 y P10 como candidatas para una imagen de referencia y la imagen P13 se almacena en el área de memoria R1 en la que se había almacenado la imagen B8. Tal reescritura de datos de imagen de cada imagen en la memoria de imágenes de referencia se lleva a cabo en base a la información de cabecera de cada imagen que se añade al flujo de bits. Esta información de cabecera indica que la imagen P7 se debería almacenar en la memoria de imágenes de referencia 207 hasta que se completa la decodificación de la imagen P13, la imagen P10 se debería almacenar en la memoria hasta que se completa la decodificación de la imagen P16 y la imagen B8 se debería almacenar en la memoria hasta que se completa la decodificación de la imagen B9.
En otras palabras, dado que se puede decidir que la imagen B8 no es necesaria para la decodificación de la imagen P13 y las siguientes imágenes, la imagen P13 se escribe sobre el área de memoria de imágenes de referencia R1 en la que se almacena la imagen B8.
Además, dado que la información que indica que la imagen P13 se debería almacenar en la memoria de imágenes de referencia hasta que se completa la decodificación de la imagen P19 se describe como información de cabecera de la imagen P13, la imagen P13 se almacena en la memoria de imágenes de referencia al menos hasta ese momento.
Como se describió anteriormente, los bloques en la imagen P13 se decodifican sucesivamente. Cuando todos los datos codificados que corresponden a los bloques en la imagen P13 se han decodificado, tiene lugar la decodificación de la imagen B11.
5
10
15
20
25
30
35
40
45
50
55
<Proceso de decodificación para la imagen B11>
Dado que las operaciones de la unidad de análisis de flujo de bits 201, la unidad de decodificación de modo 203 y la unidad de decodificación de error de predicción 202 son idénticas a las descritas para la decodificación de la imagen P13, no es necesaria una descripción repetida.
La unidad de decodificación de compensación de movimiento 205 genera datos de imagen de compensación de movimiento Pd a partir de la información introducida tal como el vector de movimiento. Es decir, la información introducida a la unidad de decodificación de compensación de movimiento 205 es el vector de movimiento MV y el índice de imagen de referencia que corresponde a la imagen B11. La imagen B11 se ha codificado usando la imagen P10 como una imagen de referencia hacia delante y la imagen P13 como una imagen de referencia hacia atrás. Por consiguiente, en la decodificación de la imagen B11, estas imágenes candidatas P10 y P13 ya se han decodificado y los datos de imagen decodificados DId correspondientes se almacenan en la memoria de imágenes de referencia 207.
Cuando el modo de codificación es el modo de codificación predictivo bidireccional, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen de referencia hacia delante de la memoria de imágenes de referencia 207 sobre la base de la información que indica el vector de movimiento hacia delante y obtiene una imagen de referencia hacia atrás de la memoria 207 sobre la base de la información que indica el vector de movimiento hacia atrás. Entonces, la unidad de decodificación de compensación de movimiento 205 realiza adición y promediado de la imagen de referencia hacia delante y la imagen de referencia hacia atrás para generar una imagen de compensación de movimiento. Los datos Pd de la imagen de compensación de movimiento así generados se sacan a la unidad de adición 208.
La unidad de adición 208 añade los datos de imagen de error de predicción PDd introducidos y los datos de imagen de compensación de movimiento Pd para sacar datos de imagen de adición Ad. Los datos de imagen de adición Ad así generados se sacan como datos de imagen decodificados DId, a través del conmutador 210 a la memoria de imágenes de referencia 207.
La unidad de control de memoria 284 controla la memoria de imágenes de referencia 207 sobre la base de información que indica a qué imágenes candidatas se hace referencia en la codificación de la imagen P y la imagen B, cuya información es información de cabecera del flujo de bits.
La figura 37 muestra cómo las imágenes almacenadas en la memoria de imágenes de referencia 207 cambian con el tiempo.
Cuando se inicia la decodificación de la imagen P11, las imágenes P13, P7 y P10 se almacenan en la memoria de imágenes de referencia 207. La imagen P11 se decodifica usando las imágenes P10 y P13 como imágenes de referencia y la imagen P11 se almacena en el área de memoria R2 en la que se había almacenado la imagen P7. Tal reescritura de cada imagen en la memoria de imágenes de referencia 207 se lleva a cabo en base a la información de la cabecera de cada imagen que se añade al flujo de bits. Esta información de cabecera indica que la imagen P7 se debería almacenar en la memoria de imágenes de referencia 207 hasta que se completa la decodificación de la imagen P13, la imagen P10 se debería almacenar en la memoria hasta que se completa la decodificación de la imagen P16 y la imagen P13 se debería almacenar en la memoria hasta que se completa la decodificación de la imagen P19.
En otras palabras, dado que se decide que la imagen P7 no es necesaria para la decodificación de la imagen P13 y las siguientes imágenes, la imagen P11 se almacena en el área de memoria de imágenes de referencia R2 en la que se almacena la imagen P7.
Además, dado que información que indica que la imagen B11 se debería almacenar en la memoria de imágenes de referencia 207 hasta que se completa la decodificación de la imagen B12 se describe como información de cabecera de la imagen B11, la imagen B11 se almacena en la memoria de imágenes de referencia 207 al menos hasta ese momento.
Como se describió anteriormente, los datos codificados que corresponden a los bloques en la imagen B11 se decodifican sucesivamente. Cuando todos los datos codificados que corresponden a los bloques en la imagen B11 se han decodificado, tiene lugar la decodificación de la imagen B12.
(Proceso de decodificación para la imagen B12)
Dado que las operaciones de la unidad de análisis de flujo de bits 201, la unidad de decodificación de modo 203 y la unidad de decodificación de error de predicción 202 son idénticas a las descritas para la decodificación de la imagen P13, no es necesaria una descripción repetida.
La unidad de decodificación de compensación de movimiento 205 genera datos de imagen de compensación de movimiento Pd a partir de la información introducida tal como el vector de movimiento. Es decir, la información introducida a la unidad de decodificación de compensación de movimiento 205 es el vector de movimiento MV y el
5
10
15
20
25
30
35
40
45
50
55
índice de imagen de referencia que corresponde a la imagen B12. La imagen B12 se ha codificado usando las imágenes P10 y B11 como candidatas para una imagen de referencia hacia delante y la imagen P13 como una imagen de referencia hacia atrás. Estas imágenes candidatas de referencia P10, B11 y P13 ya se han decodificado y los datos de imagen decodificados correspondientes se almacenan en la memoria de imágenes de referencia 207.
Cuando el modo de codificación es el modo de codificación predictiva bidireccional, la unidad de decodificación de compensación de movimiento 205 determina cuál de las imágenes P10 y B11 se usa como una imagen de referencia hacia delante en la codificación de la imagen B12, según los índices de imágenes de referencia y obtiene una imagen de referencia hacia delante de la memoria de imágenes de referencia 207 según la información que indica el vector de movimiento hacia delante. Además, la unidad de decodificación de compensación de movimiento 205 obtiene una imagen de referencia hacia atrás de la memoria 207 según la información que indica el vector de movimiento hacia atrás. Entonces, la unidad de decodificación de compensación de movimiento 205 realiza adición y promediado de la imagen de referencia hacia delante y la imagen de referencia hacia atrás para generar una imagen de compensación de movimiento. Los datos Pd de la imagen de compensación de movimiento así generados se sacan a la unidad de adición 208.
La unidad de adición 208 añade los datos de imagen de error de predicción PDd introducidos y los datos de imagen de compensación de movimiento Pd para sacar los datos de imagen de adición Ad. Los datos de imagen de adición Ad así generados se sacan como datos de imagen decodificados Dld, a través del conmutador 210 a la memoria de imágenes de referencia 207.
La unidad de control de memoria 284 controla la memoria de imágenes de referencia 207 sobre la base de información que indica qué imágenes de referencia se usan en la codificación de la imagen P y la imagen B, cuya información se extrae a partir de la información de cabecera del flujo de bits.
La figura 37 muestra cómo las imágenes almacenadas en la memoria de imágenes de referencia 207 cambian con el tiempo. Cuando se inicia la decodificación de la imagen B12, las imágenes P13, B11 y P10 están almacenadas en la memoria de imágenes de referencia 207. La imagen B12 se decodifica usando las imágenes P13, B11 y P10 como imágenes candidatas de referencia. Dado que información que indica que la imagen B12 no va a ser usada como una imagen de referencia cuando se decodifica otra imagen se describe como información de cabecera, los datos decodificados de la imagen B12 no se almacenan en la memoria de imágenes de referencia 207 sino que se sacan como datos de imagen de salida Od.
Como se describió anteriormente, los datos codificados que corresponden a los bloques en la imagen B12 se decodifican sucesivamente. Los datos de imagen decodificados de las imágenes respectivas que se almacenan en la memoria de imágenes de referencia 207 y los datos de imagen decodificados que no se almacenan en la memoria de imágenes de referencia 207 se reordenan en orden de sus tiempos de visualización como se muestra en la figura 36(b) y se sacan como datos de imagen de salida Od.
A partir de entonces, los datos codificados que corresponden a las imágenes respectivas se decodifican de la misma manera que se describió anteriormente según el tipo de imagen.
Para ser específicos, los datos codificados de las imágenes P se decodifican como la imagen P13 y la primera imagen B (imagen B14, B17 o similares) de las imágenes B continuas se decodifica como la imagen P11. Además, la segunda imagen B (imagen B15, B18 o similares) de las imágenes B continuas se decodifica como la imagen P12.
Como se describió anteriormente, en el aparato de decodificación de imágenes en movimiento 80 según la octava realización, dado que una imagen B se usa como una imagen candidata de referencia cuando se decodifica una imagen B, un flujo de bits, que se obtiene en un proceso de codificación que usa una imagen B así como imágenes P como imágenes candidatas de referencia hacia delante cuando se codifica una imagen B, se puede decodificar con precisión. Además, dado que la memoria de imágenes de referencia se controla usando información obtenida del flujo de bits, indicando qué imágenes de referencia se usan en la codificación de una imagen P y una imagen B, la memoria de imágenes de referencia se puede utilizar eficazmente. Es decir, los datos de imagen de imágenes a ser usadas como imágenes de referencia en el siguiente proceso de decodificación se mantienen en la memoria de imágenes de referencia, mientras que datos de imagen de imágenes a no ser usadas como imágenes de referencia en el siguiente proceso de decodificación se borran sucesivamente de la memoria, por lo cual la memoria de imágenes de referencia se puede utilizar eficazmente.
Mientras que esta octava realización emplea un flujo de bits que corresponde a una secuencia de imágenes en la que dos imágenes B se insertan entre imágenes P adyacentes, el número de imágenes B colocadas entre imágenes P adyacentes puede ser distinto de dos, por ejemplo, puede ser tres o cuatro.
Además, mientras que en esta octava realización se usan dos imágenes como imágenes candidatas para referencia hacia delante cuando se decodifica una imagen P, el número de imágenes candidatas de referencia hacia delante a ser referido en la decodificación de una imagen P no se restringe al mismo.
Además, en esta octava realización, cuando se decodifica una imagen B, una imagen P y una imagen B se usan como imágenes candidatas para referencia hacia delante y una imagen B que se coloca hacia delante de una
5
10
15
20
25
30
35
40
45
50
55
imagen I o P que es en cuanto al tiempo la más cercana a la imagen B objetivo, no se usa como una imagen de referencia. No obstante, las imágenes a ser usadas como imágenes candidatas de referencia en la decodificación de una imagen B pueden ser distintas de las descritas para la octava realización. Además, cuando se decodifica una imagen B, una imagen B que se coloca hacia delante de una imagen I o P que es en cuanto al tiempo la más cercana a la imagen B objetivo, se puede usar como una imagen de referencia.
Además, mientras que en la octava realización los datos de imagen decodificados de imágenes que no van a ser usadas como imágenes de referencia cuando se decodifican otras imágenes no se almacenan en la memoria de imágenes de referencia, los datos de imagen decodificados de estas imágenes se pueden almacenar en la memoria.
Por ejemplo, cuando la salida de datos de imagen decodificados de cada imagen se lleva a cabo con un pequeño retardo desde la decodificación de cada imagen, los datos de imagen decodificados de cada imagen se deben almacenar en la memoria de imágenes de referencia. En este caso, un área de memoria, distinta del área de memoria en la que se almacenan los datos de imagen decodificados de las imágenes candidatas de referencia, se proporciona en la memoria de imágenes de referencia y los datos de imagen decodificados de las imágenes a no ser usadas como imágenes de referencia se almacenan en esta área de memoria. Aunque, en este caso, se aumenta la capacidad de almacenamiento de la memoria de imágenes de referencia, el método para gestionar la memoria de imágenes de referencia es idéntico al descrito para la octava realización y, por lo tanto, se puede gestionar fácilmente la memoria de imágenes de referencia.
Mientras que todas las imágenes se usan como imágenes candidatas de referencia en la segunda, cuarta, sexta y octava realizaciones, todas las imágenes no se usan necesariamente como imágenes candidatas de referencia.
Para ser breves, en un aparato de decodificación de imágenes en movimiento, normalmente, imágenes ya decodificadas se almacenadas una vez en un almacenador temporal de decodificación (memoria de cuadro decodificado) con independencia de si se usarán o no como imágenes candidatas de referencia y, a partir de entonces, las imágenes ya decodificadas se leen sucesivamente desde el almacenador temporal de decodificación para ser visualizadas.
En la segunda, cuarta, sexta y octava realizaciones de la presente invención, todas las imágenes se usan como imágenes candidatas de referencia y, por lo tanto, todas las imágenes ya decodificadas se almacenan en una memoria de imágenes de referencia para contener imágenes a ser usadas como imágenes candidatas de referencia y, a partir de entonces, las imágenes ya decodificadas se leen sucesivamente de la memoria de imágenes de referencia para ser visualizadas.
No obstante, como se describió anteriormente, todas las imágenes ya decodificadas no se usan necesariamente como imágenes candidatas de referencia. Por consiguiente, las imágenes ya decodificadas se pueden almacenar una vez en un almacenador temporal de decodificación (memoria de cuadro decodificado) para contener no solamente imágenes a no ser usadas como imágenes candidatas de referencia sino también imágenes a ser usadas como imágenes candidatas de referencia y, a partir de entonces, las imágenes ya decodificadas se leen sucesivamente desde el almacenador temporal de decodificación para ser visualizadas.
El aparato de codificación de imágenes en movimiento o el aparato de decodificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas se implementa mediante hardware, si bien estos aparatos se pueden implementar mediante software. En este caso, cuando un programa para ejecutar el proceso de codificación o decodificación según cualquiera de las realizaciones antes mencionadas se graba en un medio de almacenamiento de datos tal como un disco flexible, el aparato de codificación de imágenes en movimiento o el aparato de decodificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas se puede implementar fácilmente en un sistema informático independiente.
Las figuras 38(a)-38(c) son diagramas para explicar un sistema informático para ejecutar el proceso de codificación de imágenes en movimiento según cualquiera de la primera, tercera, quinta y séptima realizaciones y el proceso de decodificación de imágenes en movimiento según cualquiera de la segunda, cuarta, sexta y octava realizaciones.
La figura 38(a) muestra una vista frontal de un disco flexible FD que es un medio que contiene un programa empleado en el sistema informático, una vista en sección transversal del mismo y un cuerpo de disco flexible D. La figura 38(b) muestra un ejemplo de un formato físico del cuerpo del disco flexible D.
El disco flexible FD se compone del cuerpo de disco flexible D y una envoltura FC que contiene el cuerpo de disco flexible D. En la superficie del cuerpo de disco D, una pluralidad de pistas Tr se forman concéntricamente desde la circunferencia exterior del disco hacia la circunferencia interior. Cada pista se divide en 16 sectores Se en la dirección angular. Por lo tanto, en el disco flexible FD que contiene el programa antes mencionado, los datos del programa para ejecutar el proceso de codificación de imágenes en movimiento o el proceso de decodificación de imágenes en movimiento se graban en las área de almacenamiento asignadas (sectores) en el cuerpo de disco flexible D.
La figura 38(c) muestra la estructura para grabar o reproducir el programa en/desde el disco flexible FD. Cuando el programa se graba en el disco flexible FD, los datos del programa se escriben en el disco flexible FD desde el
5
10
15
20
25
30
35
40
45
50
55
sistema informático Csys a través de la unidad de disco flexible FDD. Cuando el aparato de codificación o decodificación de imágenes en movimiento anteriormente mencionado está construido en el sistema informático Csys mediante el programa grabado en el disco flexible FD, el programa se lee desde el disco flexible FD por la unidad de disco flexible FDD y luego se carga al sistema informático Csys.
Aunque en la descripción anterior se emplea un disco flexible como un medio de almacenamiento, se puede emplear un disco óptico. También en este caso, el proceso de codificación o decodificación de imágenes en movimiento se puede realizar mediante software de la misma manera que el caso de usar el disco flexible. El medio de almacenamiento no se restringe a estos discos y se puede emplear cualquier medio siempre que pueda contener el programa, por ejemplo, un CD-ROM, una tarjeta de memoria o un casete ROM. También, cuando se emplea tal medio de almacenamiento de datos, el proceso de codificación o decodificación de imágenes en movimiento se puede realizar por el sistema informático de la misma manera que el caso de usar el disco flexible.
Se describirán en lo sucesivo aplicaciones del método de codificación de imágenes en movimiento y del método de decodificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas y sistemas que usan las mismas.
La figura 39 es un diagrama de bloques que ilustra una construcción entera de un sistema de provisión de contenidos 1100 que realiza servicios de distribución de contenidos.
Un área de provisión de servicios de comunicación se divide en regiones (celdas) de tamaño deseado y las estaciones de base 1107 a 1110 que son cada una estaciones radio fijas que se establecen en las celdas respectivas.
En este sistema de provisión de contenidos 1100, varios dispositivos tales como un ordenador 1111, un PDA (asistente digital personal) 1112, una cámara 1113, un teléfono portátil 1114 y un teléfono portátil con una cámara 1200 están conectados a Internet 1101 a través de un proveedor de servicios de Internet 1102, una red telefónica 1104 y las estaciones de base 1107 a 1110.
No obstante, el sistema de provisión de contenidos 1100 no se restringe a un sistema que incluye todos los dispositivos plurales mostrados en la figura 39, sino que puede ser uno que incluye algunos de los dispositivos plurales mostrados en la figura 39. Además, los dispositivos respectivos se pueden conectar directamente a la red telefónica 1104, no a través de las estaciones de base 1107 a 1110 como las estaciones radio fijas.
La cámara 1113 es un dispositivo que puede tomar imágenes en movimiento de un objeto, como una cámara de vídeo digital. El teléfono portátil puede ser un teléfono portátil fijo según cualquiera del sistema PDC (Comunicaciones Digitales Personales), sistema CDMA (Acceso Múltiple por División de Código), sistema W-CDMA (Acceso Múltiple por División de Código de Banda Ancha) y sistema gSm (Sistema Global para Comunicaciones Móviles) o PHS (Sistema de Telefonía Portátil Personal).
Un servidor de difusión en forma continua 1103 se conecta a la cámara 1113 a través de la estación base 1109 y la red telefónica 1104. En este sistema, se puede realizar distribución en directo basada en datos codificados que se transmiten por un usuario usando la cámara 1113. El proceso de codificación para los datos de imágenes tomadas se puede llevar a cabo o bien por la cámara 1113 o bien por el servidor que transmite los datos. Los datos de imágenes en movimiento que se obtienen tomando imágenes en movimiento de un objeto por medio de la cámara 1116 se pueden transmitir al servidor de difusión en forma continua 1103 a través del ordenador 1111. La cámara 1116 es un dispositivo que puede tomar imágenes fijas o imágenes en movimiento de un objeto, tal como una cámara digital. En este caso, la codificación de los datos de imágenes en movimiento se puede realizar o bien mediante la cámara 1116 o bien mediante el ordenador 1111. Además, el proceso de codificación se lleva a cabo mediante una LSI 1117 incluida en el ordenador 1111 o la cámara 1116.
El software de codificación o decodificación de imágenes se puede almacenar en un medio de almacenamiento (un CD-ROM, un disco flexible, un disco duro o similares) que es un medio de grabación que contiene datos legibles por el ordenador 1111 o similar. Los datos de imagen en movimiento se pueden transmitir a través del teléfono portátil con una cámara 1200. Los datos de imagen en movimiento son datos que se han codificado por una LSI incluida en el teléfono portátil 1200.
En este sistema de provisión de contenidos 1100, los contenidos que corresponden a imágenes tomadas por el usuario por medio de la cámara 1113 o la cámara 1116 (por ejemplo, vídeo en directo de un concierto de música) se codifican en la cámara de la misma manera que cualquiera de las realizaciones antes mencionadas y se transmiten desde la cámara hasta el servidor de difusión en forma continua 1103. Los datos de contenidos se someten a distribución de difusión en forma continua desde el servidor de difusión en forma continua 1103 a un cliente solicitante.
El cliente puede ser cualquiera del ordenador 1111, el PDA 1112, la cámara 1113, el teléfono portátil 1114 y similares, que pueden decodificar los datos codificados.
5
10
15
20
25
30
35
40
45
50
55
En este sistema de provisión de contenidos 1100, los datos codificados se pueden recibir y reproducir en el lado del cliente. Cuando se reciben los datos, decodificados y reproducidos en tiempo real en el lado del cliente, se puede realizar difusión privada.
La codificación o decodificación en los dispositivos respectivos que constituye este sistema se puede realizar usando el aparato de codificación de imágenes en movimiento o el aparato de decodificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas.
Un teléfono portátil se describirá ahora como un ejemplo del aparato de codificación o decodificación de imágenes en movimiento.
La figura 40 es un diagrama que ilustra un teléfono portátil 1200 que emplea el método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas.
Este teléfono portátil 1200 incluye una antena 1201 para transmitir/recibir ondas de radio a/desde la estación base 1110, una unidad de cámara 1203 que puede tomar vídeo o imágenes fijas de un objeto, tal como una cámara CCD y una unidad de visualización 1202 tal como una pantalla de cristal líquido para visualizar datos del vídeo tomado por la unidad de cámara 1203 o vídeo recibido a través de la antena 1201.
El teléfono portátil 1200 incluye además un cuerpo principal 1204 que incluye teclas de control plurales, una unidad de salida de voz 1208 para sacar voces tal como un altavoz, una unidad de entrada de voz 1205 para introducir voces tal como un micrófono, un medio de grabación 1207 para retener datos codificados o datos decodificados tales como datos de imágenes en movimiento o imágenes fijas tomadas o datos, datos de imágenes en movimiento o datos de imágenes fijas de correos electrónicos recibidos y una unidad de ranura 1206 que permite que el medio de grabación 1207 sea unido al teléfono portátil 1200.
El medio de grabación 1207 tiene un elemento de memoria rápida como un tipo de EEPROM (Memoria de Sólo Lectura Borrable y Programable Eléctricamente) que es una memoria no volátil programable y borrable eléctricamente contenida en una envoltura de plástico, como una tarjeta SD.
El teléfono portátil 1200 se describirá más específicamente con referencia a la Figura 41.
El teléfono portátil 1200 tiene una unidad de control principal 1241 que realiza un control general de las unidades respectivas del cuerpo principal que incluyen la unidad de visualización 1202 y la tecla de control 1204.
El teléfono portátil 1200 incluye además un circuito de fuente de alimentación 1240, una unidad de control de entrada de operación 1234, una unidad de codificación de imágenes 1242, una unidad de interfaz de cámara 1233, una unidad de control de LCD (Visualizador de Cristal Líquido) 1232, una unidad de decodificación de imágenes 1239, una unidad de multiplexación/demultiplexación 1238, una unidad de grabación/reproducción 1237, una unidad de modulación/demodulación 1236 y una unidad de procesamiento de audio 1235. Las unidades respectivas del teléfono portátil 1200 se conectan entre sí a través de un bus de sincronización 1250.
El circuito de fuente de alimentación 1240 suministra potencia desde un paquete de baterías a las unidades respectivas cuando una tecla de finalización de llamada/fuente de alimentación se ENCIENDE bajo el control de un usuario, activando por ello el teléfono portátil digital con una cámara 1200 para ser convertido a un estado operativo.
En el teléfono portátil 1200, las unidades respectivas operan bajo el control de la unidad de control principal 1241 que está constituida por una CPU, una ROM, una RAM y similares. Para ser más específicos, en el teléfono portátil 1200, una señal de audio que se obtiene introduciendo voz en la unidad de entrada de voz 1205 en un modo de comunicación de voz se convierte en datos de audio digitales por la unidad de procesamiento de audio 1235. Los datos de audio digitales se someten a un proceso de propagación de espectro por el circuito de modulación/demodulación 1236, sometidos además a un proceso de conversión DA y un proceso de transformación de frecuencia por el circuito de transmisión/recepción 1231 y transmitidos a través de la antena 1201.
En este conjunto de teléfono portátil 1200, una señal recibida a través de la antena 1201 en el modo de comunicación de voz se amplifica y luego se somete a un proceso de transformación de frecuencia y un proceso de conversión AD. La señal recibida se somete además a un proceso de propagación inversa de espectro en el circuito de modulación/demodulación 1236, convertida en una señal de audio analógica por la unidad de procesamiento de audio 1235 y esta señal audio analógica se saca a través de la unidad de salida de voz 1208.
Cuando el teléfono portátil 1200 transmite un correo electrónico en un modo de comunicación de datos, los datos de texto del correo electrónico que se introducen mediante la manipulación de la tecla de control 1204 en el cuerpo principal se transmiten a la unidad de control principal 1241 a través de la unidad de control de entrada de operación 1234. La unidad de control principal 1241 controla las unidades respectivas de manera que los datos de texto se someten al proceso de propagación de espectro en el circuito de modulación/demodulación 1236, luego se someten al proceso de conversión DA y el proceso de transformación de frecuencia en el circuito de transmisión/recepción 1231 y luego se transmiten a la estación de base 1110 a través de la antena 1201.
5
10
15
20
25
30
35
40
45
50
55
Cuando este teléfono portátil 1200 transmite datos de imagen en el modo de comunicación de datos, los datos de una imagen tomada por la unidad de cámara 1203 se suministran a la unidad de codificación de imagen 1242 a través de la unidad de interfaz de cámara 1233. Cuando el teléfono portátil 1200 no transmite los datos de imagen, los datos de la imagen tomada por la unidad de cámara 1203 se pueden visualizar directamente en la unidad de visualización 1202 a través de la unidad de interfaz de cámara 1233 y la unidad de control LCD 1232.
La unidad de codificación de imágenes 1242 incluye el aparato de codificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas. La unidad de codificación de imágenes 1242 codifica por compresión los datos de imagen suministrados desde la unidad de cámara 1203 mediante el método de codificación de imágenes en movimiento según cualquiera de las realizaciones anteriores para convertir los mismos en datos de imagen codificados y saca los datos de imagen codificados obtenidos a la unidad de multiplexación/demultiplexación 1238. Al mismo tiempo, el teléfono portátil 1200 transmite voces que se introducen en la unidad de entrada de voz 1205 mientras que la imagen está siendo tomada por la unidad de cámara 1203, como datos de audio digitales, a la unidad de multiplexación/demultiplexación 1238 a través de la unidad de procesamiento de audio 1235.
La unidad de multiplexación/demultiplexación 1238 multiplexa los datos de imagen codificados suministrados desde la unidad de codificación de imágenes 1242 y los datos de audio suministrados desde la unidad de procesamiento de audio 1235 mediante un método predeterminado. Los datos multiplexados resultantes se someten a un proceso de propagación de espectro en el circuito de modulación/demodulación 1236, luego se someten además al proceso de conversión DA y al proceso de transformación de frecuencia en el circuito de transmisión/recepción 1231 y los datos obtenidos se transmiten a través de la antena 1201.
Cuando el teléfono portátil 1200 recibe datos de un archivo de imagen en movimiento que está vinculado a una página de inicio o similar en el modo de comunicación de datos, una señal recibida desde la estación base 1110 a través de la antena 1201 se somete a un proceso de propagación inversa de espectro por el circuito de modulación/demodulación 1236 y los datos multiplexados resultantes se transmiten a la unidad de multiplexación/demultiplexación 1238.
Cuando se decodifican los datos multiplexados que se reciben a través de la antena 1201, la unidad de multiplexación/demultiplexación 1238 demultiplexa los datos multiplexados para dividir los datos en un flujo de bits codificado que corresponde a los datos de imagen y un flujo de bits codificado que corresponde a los datos de audio y los datos de imagen codificados se suministran a la unidad de decodificación de imágenes 1239 y los datos de audio se suministran a la unidad de procesamiento de audio 1235, a través del bus de sincronización 1250.
La unidad de decodificación de imágenes 1239 incluye el aparato de decodificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas. La unidad de decodificación de imágenes 1239 decodifica el flujo de bits codificado de los datos de imagen mediante el método de decodificación que corresponde al método de codificación según cualquiera de las realizaciones antes mencionadas, para reproducir datos de imagen en movimiento y suministra los datos reproducidos a la unidad de visualización 1202 a través de la unidad de control LCD 1232. Por ello, por ejemplo, se muestran los datos de imágenes en movimiento incluidos en el archivo de imagen en movimiento que está vinculado a la página de inicio. Al mismo tiempo, la unidad de procesamiento de audio 1235 convierte los datos de audio en una señal de audio analógica y luego suministra la señal de audio analógica a la unidad de salida de voz 1208. Por ello, por ejemplo, se reproducen los datos de audio incluidos en el archivo de imagen en movimiento que está vinculado a la página de inicio.
Aquí, un sistema al que es aplicable el método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas no se restringe al sistema de provisión de contenidos anteriormente mencionado.
Recientemente, se habla frecuentemente de difusión digital usando satélites u ondas terrestres y el aparato de codificación de imágenes y el aparato de decodificación de imágenes según las realizaciones anteriores es aplicable también a un sistema de difusión digital como se muestra en la Figura 42.
Más específicamente, un flujo de bits codificado que corresponde a información de vídeo se transmite desde una estación de difusión 1409 a un satélite 1410 tal como un satélite de comunicación o un satélite de difusión, a través de radiocomunicación. Cuando el satélite de difusión 1410 recibe el flujo de bits codificado que corresponde a la información de vídeo, el satélite 1410 saca ondas de difusión y estas ondas se reciben por una antena 1406 en casa, incluyendo instalaciones de recepción de difusión por satélite. Por ejemplo, un aparato tal como una televisión (receptor) 1401 o un receptor multimedia digital (STB) 1407 decodifica el flujo de bits codificado y reproduce la información de vídeo.
Además, el aparato de decodificación de imágenes según cualquiera de las realizaciones antes mencionadas se puede montar también en un aparato de reproducción 1403 que puede leer y decodificar el flujo de bits grabado en el medio de almacenamiento 1402 tal como un CD o un DVD (medio de grabación).
En este caso, una señal de vídeo reproducida se visualiza en un monitor 1404. El aparato de decodificación de imágenes en movimiento se puede montar en el receptor multimedia digital 1407 que se conecta a un cable para televisión por cable 1405 o una antena para difusión por satélite/terrestre 1406, para reproducir una salida del
5
10
15
20
25
30
35
40
45
50
aparato de decodificación de imágenes en movimiento a ser visualizada en un monitor 1408 de la televisión. En este caso, el aparato de decodificación de imágenes en movimiento se puede incorporar no en el receptor multimedia digital sino en la televisión. Un vehículo 1412 que tiene una antena 1411 puede recibir una señal desde el satélite 1410 o la estación base 1107 y reproducir una imagen en movimiento para visualizar la misma en un dispositivo de visualización de un sistema de navegación de coche 1413 o similar que está montado en el vehículo 1412.
Además, también es posible que una señal de imagen se pueda codificar por el aparato de codificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas y grabar en un medio de grabación.
Un ejemplo específico de un dispositivo de grabación es un grabador 1420 tal como un grabador de DVD que graba señales de imágenes en un disco DVD 1421 y un grabador de disco que graba señales de imágenes en un disco duro. Las señales de imágenes se pueden grabar en una tarjeta SD 1422. Además, cuando el grabador 1420 incluye el aparato de decodificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas, las señales de imágenes que se graban en el disco DVD 1421 o la tarjeta SD 1422 se pueden reproducir por el grabador 1420 y visualizar en el monitor 1408.
Aquí, la estructura del sistema de navegación de coche 1413 puede incluir, por ejemplo, los componentes del teléfono portátil mostrado en la figura 41 distintos de la unidad de cámara 1203, la unidad de interfaz de cámara 1233 y la unidad de codificación de imágenes 1242 y lo mismo aplica al ordenador 1111 o la televisión (receptor) 1401.
Además, como el terminal tal como el teléfono portátil 1114, se puede montar uno de tres tipos de terminales: un terminal de tipo transmisión-recepción que tiene tanto un codificador como un decodificador, un terminal de transmisión que tiene solamente un codificador y un terminal de recepción que tiene solamente un decodificador.
Como se describió anteriormente, el método de codificación de imágenes en movimiento o el método de decodificación de imágenes en movimiento según cualquiera de las realizaciones antes mencionadas es aplicable a cualquiera de los dispositivos o sistemas antes mencionados, por lo cual se pueden obtener los efectos que se describen en las realizaciones anteriores.
Aplicabilidad industrial
Como se describió anteriormente, en el método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento según la presente invención, cuando una imagen objetivo a ser codificada o decodificada es una imagen B, una imagen hacia delante que se coloca la más cercana a la imagen objetivo se puede usar como una imagen de referencia para la imagen objetivo, por lo cual se aumenta la precisión de predicción en la compensación de movimiento para la imagen B, provocando una eficiencia de codificación mejorada. Particularmente, estos métodos son útiles en procesamiento de datos para transferir o grabar datos de imagen en movimiento.
Sigue una lista de otras realizaciones de la invención:
Realización 1 Un método de codificación de imágenes en movimiento para codificar cada una de las imágenes plurales que constituyen una imagen en movimiento para generar un flujo de bits correspondiente a cada imagen, que incluye:
una etapa de codificación para codificar una imagen objetivo a ser codificada, con referencia a una imagen ya codificada,
en el que, en dicha etapa de codificación, se describe en el flujo de bits una marca que indica si la imagen objetivo debería o no ser usada como candidata para una imagen de referencia cuando se codifica otra imagen que sigue a la imagen objetivo.
Realización 2 Un método de decodificación de imágenes en movimiento para decodificar cada una de las imágenes plurales que constituye una imagen en movimiento para convertir un flujo de bits correspondiente a cada imagen en datos de imagen, que incluye:
una etapa de decodificación para decodificar una imagen objetivo a ser decodificada, con referencia a una imagen ya decodificada,
en el que se describe en el flujo de bits una marca que indica si la imagen objetivo debería o no ser usada como candidata para una imagen de referencia cuando se decodifica otra imagen que sigue a la imagen objetivo; y
en dicha etapa de decodificación, la imagen objetivo decodificada se gestiona sobre la base de la marca.
Claims (2)
- 51015202530354045501. Un aparato de codificación de imágenes en movimiento que codifica una imagen en una imagen en movimiento, comprendiendo el aparato de codificación de imágenes en movimiento:una unidad de generación de primera y segunda informaciones operativa para generar, sobre una base imagen por imagen, o bien (i) una primera información que indica que una imagen objetivo, que es una de entre una imagen I, una imagen P, y una imagen B, puede ser una imagen de referencia a la que se hace referencia cuando se codifica al menos una de las imágenes P que siguen a la imagen objetivo o cuando se codifica al menos una de las imágenes B que siguen a la imagen objetivo, y (ii) una segunda información que indica que la imagen objetivo no puede ser una imagen de referencia a la que se hace referencia cuando se codifica cada una de las imágenes P que siguen a la imagen objetivo o cuando se codifica cada una de las imágenes B que siguen a la imagen objetivo;una unidad de generación de tercera información operativa para generar, sobre una base imagen por imagen, (iii) una tercera información que indica una pluralidad de imágenes de referencia candidatas, siendo cada una de las imágenes de referencia candidatas una candidata para una imagen de referencia seleccionada de entre las imágenes para las cuales sólo se adjunta la primera información, cuando se codifica una imagen P objetivo o cuando se codifica una imagen B objetivo;una unidad de asignación de índices de imágenes de referencia operativa para asignar índices de imágenes de referencia a las imágenes de referencia candidatas entre un método de asignación por defecto para asignar índices de imágenes de referencia a las imágenes de referencia candidatas según una regla inicializada y un método de asignación adaptativa para asignar índices de imágenes de referencia a las imágenes de referencia candidatas cambiando los índices de imágenes de referencia asignados por el método de asignación por defecto;una unidad de generación de cuarta información operativa para generar, sobre una base bloque por bloque, (iv) una cuarta información que indica una imagen de referencia especificada a la que se hace referencia cuando se realiza una codificación predictiva en un bloque objetivo incluido en la imagen P objetivo o indica una o dos imágenes de referencia especificadas a las que se hace referencia cuando se realiza una codificación predictiva en un bloque objetivo incluido en la imagen B objetivo;una unidad de almacenamiento operativa para almacenar, sobre una base imagen por imagen, la imagen objetivo en una memoria como una imagen de referencia candidata sólo cuando la primera información se genera para la imagen objetivo por la unidad de generación de primera y segunda informaciones;una unidad de codificación operativa para codificar, sobre una base bloque por bloque, el bloque objetivo usando la imagen de referencia especificada cuando se realiza la codificación predictiva en el bloque objetivo incluido en la imagen P objetivo, o usando la una o dos imágenes de referencia especificadas cuando se realiza una codificación predictiva en el bloque objetivo incluido en la imagen B objetivo para generar datos de bloque codificados; yuna unidad de generación de flujo de bits operativa para generar un flujo de bits correspondiente a la imagen en movimiento, añadiendo la primera información, la segunda información, la tercera información, una información de la regla de asignación del método de asignación adaptativa, y la cuarta información a los datos de bloque codificados,en el que,cuando la imagen objetivo es una imagen P y el bloque objetivo incluido en la imagen P objetivo se codifica de forma predictiva, dicha una imagen de referencia especificada se especifica sobre una base bloque por bloque, entre una pluralidad de imágenes de referencia candidatas que están almacenadas en la memoria, y el bloque objetivo se codifica de manera predictiva con referencia a la imagen de referencia especificada, ycuando la imagen objetivo es una imagen B y el bloque objetivo incluido en la imagen del objetivo B se codifica de manera predictiva con referencia a una o dos imágenes de referencia especificadas, la una o dos imágenes de referencia especificadas se especifican, sobre una base bloque por bloque, entre una pluralidad de imágenes de referencia candidatas que están almacenadas en la memoria, y el bloque objetivo se codifica de manera predictiva con referencia a una o dos imágenes de referencia especificadas.
- 2. Un método de codificación de imágenes en movimiento para codificar una imagen en una imagen en movimiento, comprendiendo el método de codificación de imágenes en movimiento:una etapa de generación de primera y segunda informaciones para generar, sobre una base imagen por imagen, o bien (i) una primera información que indica que una imagen objetivo, que es una de entre una imagen I, una imagen P, y una imagen B, puede ser una imagen de referencia a la que se hace referencia cuando se codifica al menos una de las imágenes P que siguen a la imagen objetivo o cuando se codifica al menos una de las imágenes B que siguen a la imagen objetivo, y (ii) una segunda información que indica que la imagen objetivo no puede ser una imagen de referencia a la que se hace referencia cuando se codifica cada una de las imágenes P que siguen a la imagen objetivo o cuando se codifica cada una de las imágenes B que siguen a la imagen objetivo;5101520253035una etapa de generación de tercera información para generar, sobre una base imagen por imagen, (iii) una tercera información que indica una pluralidad de imágenes de referencia candidatas, siendo cada una de las imágenes de referencia candidatas una candidata para una imagen de referencia seleccionada de entre las imágenes para las cuales sólo se adjunta la primera información, cuando se codifica una imagen P objetivo o cuando se codifica una imagen B objetivo;una etapa de asignación de índices de imágenes de referencia para asignar índices de imágenes de referencia a las imágenes de referencia candidatas entre un método de asignación por defecto para asignar índices de imágenes de referencia a las imágenes de referencia candidatas según una regla inicializada y un método de asignación adaptativa para asignar índices de imágenes de referencia a las imágenes de referencia candidatas cambiando los índices de imágenes de referencia asignados por el método de asignación por defecto;una etapa de generación de cuarta información para generar, sobre una base bloque por bloque, (iv) una cuarta información que indica una imagen de referencia especificada a la que se hace referencia cuando se realiza una codificación predictiva en un bloque objetivo incluido en la imagen P objetivo o indica una o dos imágenes de referencia especificadas a las que se hace referencia cuando se realiza una codificación predictiva en un bloque objetivo incluido en la imagen B objetivo;una etapa de almacenamiento para almacenar, sobre una base imagen por imagen, la imagen objetivo en una memoria como una imagen de referencia candidata sólo cuando la primera información se genera para la imagen objetivo en la etapa de generación de primera y segunda informaciones;una etapa de codificación para codificar, sobre una base bloque por bloque, el bloque objetivo usando la imagen de referencia especificada cuando se realiza la codificación predictiva en el bloque objetivo incluido en la imagen P objetivo, o usando la una o dos imágenes de referencia especificadas cuando se realiza una codificación predictiva en el bloque objetivo incluido en la imagen B objetivo para generar datos de bloque codificados; yuna etapa de generación de flujo de bits para generar un flujo de bits correspondiente a la imagen en movimiento, añadiendo la primera información, la segunda información, la tercera información, una información de la regla de asignación del método de asignación adaptativa, y la cuarta información a los datos de bloque codificados,en el que,cuando la imagen objetivo es una imagen P y el bloque objetivo incluido en la imagen P objetivo se codifica de forma predictiva, dicha una imagen de referencia especificada se especifica sobre una base bloque por bloque, entre una pluralidad de imágenes de referencia candidatas que están almacenadas en la memoria, y el bloque objetivo se codifica de manera predictiva con referencia a la imagen de referencia especificada, ycuando la imagen objetivo es una imagen B y el bloque objetivo incluido en la imagen del objetivo B se codifica de manera predictiva con referencia a una o dos imágenes de referencia especificadas, la una o dos imágenes de referencia especificadas se especifican, sobre una base bloque por bloque, entre una pluralidad de imágenes de referencia candidatas que están almacenadas en la memoria, y el bloque objetivo se codifica de manera predictiva con referencia a una o dos imágenes de referencia especificadas.
Applications Claiming Priority (10)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001340698 | 2001-11-06 | ||
| JP2001340698 | 2001-11-06 | ||
| JP2001373311 | 2001-12-06 | ||
| JP2001373311 | 2001-12-06 | ||
| JP2001388466 | 2001-12-20 | ||
| JP2001388466 | 2001-12-20 | ||
| JP2002012117 | 2002-01-21 | ||
| JP2002012117 | 2002-01-21 | ||
| JP2002118598 | 2002-04-19 | ||
| JP2002118598 | 2002-04-19 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2661697T3 true ES2661697T3 (es) | 2018-04-03 |
Family
ID=27532030
Family Applications (10)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17199599T Expired - Lifetime ES2725714T3 (es) | 2001-11-06 | 2002-11-06 | Procedimiento de codificación de imágenes en movimiento y procedimiento de decodificación de imágenes en movimiento |
| ES17199506T Expired - Lifetime ES2721514T3 (es) | 2001-11-06 | 2002-11-06 | Procedimiento de codificación de imágenes en movimiento y procedimiento de decodificación de imágenes en movimiento |
| ES10186098.9T Expired - Lifetime ES2608453T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES10186123.5T Expired - Lifetime ES2602575T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES16182966.8T Expired - Lifetime ES2661697T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES16171956.2T Expired - Lifetime ES2687176T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES08166965.7T Expired - Lifetime ES2601356T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES16182963.5T Expired - Lifetime ES2661591T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES16182959.3T Expired - Lifetime ES2665693T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES02780003.6T Expired - Lifetime ES2602202T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
Family Applications Before (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17199599T Expired - Lifetime ES2725714T3 (es) | 2001-11-06 | 2002-11-06 | Procedimiento de codificación de imágenes en movimiento y procedimiento de decodificación de imágenes en movimiento |
| ES17199506T Expired - Lifetime ES2721514T3 (es) | 2001-11-06 | 2002-11-06 | Procedimiento de codificación de imágenes en movimiento y procedimiento de decodificación de imágenes en movimiento |
| ES10186098.9T Expired - Lifetime ES2608453T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES10186123.5T Expired - Lifetime ES2602575T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
Family Applications After (5)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES16171956.2T Expired - Lifetime ES2687176T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES08166965.7T Expired - Lifetime ES2601356T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES16182963.5T Expired - Lifetime ES2661591T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES16182959.3T Expired - Lifetime ES2665693T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
| ES02780003.6T Expired - Lifetime ES2602202T3 (es) | 2001-11-06 | 2002-11-06 | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
Country Status (13)
| Country | Link |
|---|---|
| US (17) | US7782936B2 (es) |
| EP (15) | EP2009923B1 (es) |
| KR (6) | KR100951485B1 (es) |
| CN (2) | CN1484922A (es) |
| AU (1) | AU2002343215C1 (es) |
| BR (3) | BR0206305A (es) |
| CA (2) | CA2432453C (es) |
| DK (3) | DK2271110T3 (es) |
| ES (10) | ES2725714T3 (es) |
| MX (2) | MXPA03010729A (es) |
| PT (3) | PT2271111T (es) |
| TR (4) | TR201812420T4 (es) |
| WO (2) | WO2003041415A1 (es) |
Families Citing this family (84)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ES2725714T3 (es) | 2001-11-06 | 2019-09-26 | Panasonic Ip Corp America | Procedimiento de codificación de imágenes en movimiento y procedimiento de decodificación de imágenes en movimiento |
| KR100693669B1 (ko) * | 2003-03-03 | 2007-03-09 | 엘지전자 주식회사 | 피일드 매크로 블록의 레퍼런스 픽쳐 결정 방법 |
| CN1225127C (zh) * | 2003-09-12 | 2005-10-26 | 中国科学院计算技术研究所 | 一种用于视频编码的编码端/解码端双向预测方法 |
| FR2860678A1 (fr) * | 2003-10-01 | 2005-04-08 | Thomson Licensing Sa | Procede de codage differentiel |
| CN1321534C (zh) * | 2003-12-31 | 2007-06-13 | 中国科学院计算技术研究所 | 固定参考帧数编码方式下获取图像参考块的方法 |
| TWI268715B (en) * | 2004-08-16 | 2006-12-11 | Nippon Telegraph & Telephone | Picture encoding method, picture decoding method, picture encoding apparatus, and picture decoding apparatus |
| US20060062304A1 (en) * | 2004-09-17 | 2006-03-23 | Shih-Chang Hsia | Apparatus and method for error concealment |
| US20060109900A1 (en) * | 2004-11-23 | 2006-05-25 | Bo Shen | Image data transcoding |
| JP4106070B2 (ja) * | 2004-11-26 | 2008-06-25 | 松下電器産業株式会社 | 復号化回路、復号化装置、及び復号化システム |
| US7675872B2 (en) | 2004-11-30 | 2010-03-09 | Broadcom Corporation | System, method, and apparatus for displaying pictures |
| JP4203036B2 (ja) * | 2005-04-11 | 2008-12-24 | 株式会社東芝 | 動画像復号装置とこの装置を備えた移動体端末 |
| JP4523886B2 (ja) * | 2005-07-08 | 2010-08-11 | 富士通株式会社 | 動画像復号装置、動画像復号方法および動画像復号プログラム |
| JP4662171B2 (ja) * | 2005-10-20 | 2011-03-30 | ソニー株式会社 | 符号化装置および方法、復号化装置および方法、プログラム、並びに記録媒体 |
| US20070199011A1 (en) * | 2006-02-17 | 2007-08-23 | Sony Corporation | System and method for high quality AVC encoding |
| JP4720543B2 (ja) * | 2006-03-01 | 2011-07-13 | ソニー株式会社 | データ処理装置、データ処理方法およびデータ処理プログラム、記録媒体、ならびに、再生装置、再生方法および再生プログラム |
| US7912129B2 (en) * | 2006-03-16 | 2011-03-22 | Sony Corporation | Uni-modal based fast half-pel and fast quarter-pel refinement for video encoding |
| JP4810298B2 (ja) * | 2006-05-09 | 2011-11-09 | キヤノン株式会社 | 画像符号化装置及び符号化方法並びに画像復号化装置及び復号化方法 |
| US8270492B2 (en) * | 2006-05-12 | 2012-09-18 | Panasonic Corporation | Moving picture decoding device |
| JP2008160398A (ja) * | 2006-12-22 | 2008-07-10 | Matsushita Electric Ind Co Ltd | 動画像符号化装置および動画像符号化方法 |
| JP5474838B2 (ja) * | 2008-03-10 | 2014-04-16 | トムソン ライセンシング | 改善された効率及び主観的な品質をサポートする予測フレームの選択方法及び装置 |
| JP2010063092A (ja) * | 2008-08-05 | 2010-03-18 | Panasonic Corp | 画像符号化装置、画像符号化方法、画像符号化集積回路およびカメラ |
| US9253496B2 (en) * | 2008-12-12 | 2016-02-02 | Qualcomm Incorporated | Intelligent decoded picture buffering |
| JP5332773B2 (ja) * | 2009-03-18 | 2013-11-06 | ソニー株式会社 | 画像処理装置および方法 |
| US8363721B2 (en) | 2009-03-26 | 2013-01-29 | Cisco Technology, Inc. | Reference picture prediction for video coding |
| KR20110068792A (ko) | 2009-12-16 | 2011-06-22 | 한국전자통신연구원 | 적응적 영상 부호화 장치 및 방법 |
| US9036692B2 (en) | 2010-01-18 | 2015-05-19 | Mediatek Inc. | Motion prediction method |
| CN102835111B (zh) | 2010-01-19 | 2015-08-12 | 三星电子株式会社 | 使用先前块的运动矢量作为当前块的运动矢量来对图像进行编码/解码的方法和设备 |
| CA2788954A1 (en) | 2010-02-09 | 2011-08-18 | Nippon Telegraph And Telephone Corporation | Motion vector predictive encoding method, motion vector predictive decoding method, moving picture encoding apparatus, moving picture decoding apparatus, and programs thereof |
| CA2788946A1 (en) | 2010-02-09 | 2011-08-18 | Nippon Telegraph And Telephone Corporation | Motion vector predictive encoding method, motion vector predictive decoding method, moving picture encoding apparatus, moving picture decoding apparatus, and programs thereof |
| US9124898B2 (en) * | 2010-07-12 | 2015-09-01 | Mediatek Inc. | Method and apparatus of temporal motion vector prediction |
| MX2013003063A (es) | 2010-10-06 | 2013-05-30 | Ntt Docomo Inc | Dispositivo para codificacion predictiva de imagenes, metodo para codificacion predictiva de imagenes, programa informatico para codificacion predictiva de imagenes, dispositivo para decodificacion predictiva de imagenes, metodo para la decodificacion predictiva de imagenes y programa informatico para decodificacion predictiva de imagenes. |
| KR101782978B1 (ko) | 2010-11-12 | 2017-09-29 | 삼성전자주식회사 | 참조 데이터의 가용성에 기초하여 영상 데이터를 복호화하는 장치 및 방법 |
| EP4102835A1 (en) * | 2010-11-24 | 2022-12-14 | Velos Media International Limited | Motion vector calculation method, picture coding method, picture decoding method, motion vector calculation apparatus, and picture coding and decoding apparatus |
| CN107071469B (zh) * | 2010-12-13 | 2020-03-03 | 韩国电子通信研究院 | 基于帧间预测对视频信号进行解码的方法 |
| SI3554079T1 (sl) | 2011-01-07 | 2023-01-31 | Lg Electronics Inc. | Postopek za kodiranje video informacij, postopek za dekodiranje video informacij in dekodirna naprava za dekodiranje video informacij |
| KR101913086B1 (ko) | 2011-01-12 | 2018-10-29 | 선 페이턴트 트러스트 | 동화상 부호화 방법 및 동화상 복호화 방법 |
| EP3700212B1 (en) | 2011-01-14 | 2022-03-23 | Sun Patent Trust | Method, apparatus and computer program for temporal prediction in scalable video coding |
| JP6108309B2 (ja) * | 2011-02-22 | 2017-04-05 | サン パテント トラスト | 動画像符号化方法、動画像符号化装置、動画像復号方法、および、動画像復号装置 |
| KR101878008B1 (ko) | 2011-03-03 | 2018-07-13 | 선 페이턴트 트러스트 | 동화상 부호화 방법, 동화상 복호 방법, 동화상 부호화 장치, 동화상 복호 장치 및 동화상 부호화 복호 장치 |
| PL3136727T3 (pl) | 2011-04-12 | 2018-11-30 | Sun Patent Trust | Sposób kodowania ruchomych obrazów i urządzenie do kodowania ruchomych obrazów |
| AU2012260302B2 (en) | 2011-05-24 | 2016-11-17 | Sun Patent Trust | Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus |
| CA2834123C (en) | 2011-05-27 | 2020-02-11 | Panasonic Corporation | Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus |
| US9485518B2 (en) | 2011-05-27 | 2016-11-01 | Sun Patent Trust | Decoding method and apparatus with candidate motion vectors |
| SG194746A1 (en) | 2011-05-31 | 2013-12-30 | Kaba Gmbh | Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device |
| EP4270953A3 (en) | 2011-05-31 | 2023-11-22 | Sun Patent Trust | Video decoding method, video decoding device |
| US8743969B2 (en) | 2011-06-23 | 2014-06-03 | Panasonic Corporation | Image decoding method and apparatus based on a signal type of the control parameter of the current block |
| USRE47366E1 (en) | 2011-06-23 | 2019-04-23 | Sun Patent Trust | Image decoding method and apparatus based on a signal type of the control parameter of the current block |
| CA2830046C (en) | 2011-06-24 | 2018-09-04 | Panasonic Corporation | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
| KR102062283B1 (ko) | 2011-06-24 | 2020-01-03 | 선 페이턴트 트러스트 | 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치 |
| JP5933545B2 (ja) | 2011-06-27 | 2016-06-08 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 復号方法及び復号装置 |
| BR122022013246B1 (pt) | 2011-06-28 | 2022-11-16 | Sun Patent Trust | Aparelho de decodificação para decodificar um parâmetro de controle para controlar decodificação de uma imagem, e aparelho de codificação para codificar um parâmetro de controle para controlar codificação de uma imagem |
| MX2013010892A (es) | 2011-06-29 | 2013-12-06 | Panasonic Corp | Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de codificacion y decodificacion de imagenes. |
| WO2013001769A1 (ja) | 2011-06-30 | 2013-01-03 | パナソニック株式会社 | 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置 |
| PH12013502397A1 (en) | 2011-06-30 | 2014-01-13 | Sun Patent Trust | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
| CN106851269B (zh) | 2011-06-30 | 2019-11-15 | 太阳专利托管公司 | 图像解码方法及装置、图像编码方法及装置、编解码装置 |
| MX2014000159A (es) | 2011-07-02 | 2014-02-19 | Samsung Electronics Co Ltd | Metodo y aparato para la codificacion de video, y metodo y aparato para la decodificacion de video acompañada por inter prediccion utilizando imagen co-localizada. |
| WO2013008438A1 (ja) | 2011-07-11 | 2013-01-17 | パナソニック株式会社 | 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置 |
| JP5706264B2 (ja) | 2011-08-01 | 2015-04-22 | 日本電信電話株式会社 | 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラムおよび画像復号プログラム |
| EP3487178A1 (en) | 2011-08-03 | 2019-05-22 | Sun Patent Trust | Video encoding method, video encoding apparatus, video decoding method, video decoding apparatus, and video encoding/decoding apparatus |
| EP3923572A1 (en) | 2011-10-19 | 2021-12-15 | Sun Patent Trust | Image encoding method, image encoding device, image decoding method, and picture decoding device |
| BR122015021735A2 (pt) | 2011-11-08 | 2019-08-27 | Samsung Electronics Co Ltd | aparelho para decodificar uma imagem |
| WO2013105207A1 (en) * | 2012-01-10 | 2013-07-18 | Panasonic Corporation | Video encoding method, video encoding apparatus, video decoding method and video decoding apparatus |
| EP2805511B1 (en) | 2012-01-20 | 2019-03-06 | Sun Patent Trust | Methods and apparatus for encoding and decoding video using temporal motion vector prediction |
| EP2811743B1 (en) * | 2012-02-03 | 2021-03-03 | Sun Patent Trust | Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device |
| US8280197B1 (en) * | 2012-02-29 | 2012-10-02 | Google Inc. | Managed background loading of image resources in resource-constrained devices |
| JP6421931B2 (ja) | 2012-03-06 | 2018-11-14 | サン パテント トラスト | 動画像符号化方法及び動画像符号化装置 |
| KR101674415B1 (ko) * | 2012-04-27 | 2016-11-09 | 삼성전자주식회사 | 디지털 신호 처리 시스템에서 신호 이득 제어 방법 및 장치 |
| CA2847304C (en) * | 2012-06-27 | 2017-08-22 | Kabushiki Kaisha Toshiba | Encoding device, decoding device, encoding method, and decoding method |
| JP6000763B2 (ja) * | 2012-08-31 | 2016-10-05 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
| KR20150056811A (ko) | 2012-11-13 | 2015-05-27 | 인텔 코포레이션 | 차세대 비디오를 위한 콘텐츠 적응적 변환 코딩 |
| US9628790B1 (en) | 2013-01-03 | 2017-04-18 | Google Inc. | Adaptive composite intra prediction for image and video compression |
| EP2952003B1 (en) | 2013-01-30 | 2019-07-17 | Intel Corporation | Content adaptive partitioning for prediction and coding for next generation video |
| JP6156489B2 (ja) * | 2013-04-23 | 2017-07-05 | 富士通株式会社 | 画像符号化装置、画像符号化方法、及び撮像装置 |
| US9609343B1 (en) | 2013-12-20 | 2017-03-28 | Google Inc. | Video coding using compound prediction |
| KR101868203B1 (ko) * | 2015-01-28 | 2018-07-20 | 한국전자통신연구원 | 스트림 처리 방법 및 장치 |
| US10805627B2 (en) | 2015-10-15 | 2020-10-13 | Cisco Technology, Inc. | Low-complexity method for generating synthetic reference frames in video coding |
| US10136155B2 (en) | 2016-07-27 | 2018-11-20 | Cisco Technology, Inc. | Motion compensation using a patchwork motion field |
| JP6700489B2 (ja) * | 2016-09-30 | 2020-05-27 | 華為技術有限公司Huawei Technologies Co.,Ltd. | インター予測を介する画像符号化および復号のための方法および装置 |
| CN117061736A (zh) | 2017-01-13 | 2023-11-14 | 谷歌有限责任公司 | 视频代码化的复合预测 |
| US10735761B2 (en) * | 2017-05-19 | 2020-08-04 | Mediatek Inc | Method and apparatus of video coding |
| RU2768971C1 (ru) | 2018-12-28 | 2022-03-28 | ДжейВиСиКЕНВУД Корпорейшн | Устройство кодирования движущихся изображений, способ кодирования движущихся изображений, программа кодирования движущихся изображений, устройство декодирования движущихся изображений, способ декодирования движущихся изображений и программа декодирования движущихся изображений |
| EP3902244B1 (en) * | 2020-04-23 | 2022-03-23 | Axis AB | Controlling a pan-tilt-zoom camera |
| US11582442B1 (en) * | 2020-12-03 | 2023-02-14 | Amazon Technologies, Inc. | Video encoding mode selection by a hierarchy of machine learning models |
| KR20250104845A (ko) * | 2023-12-29 | 2025-07-08 | 삼성전자주식회사 | 병렬 부호화를 위한 부호화 장치 및 이에 의한 영상의 부호화 방법, 및 복호화 장치 및 이에 의한 영상의 복호화 방법 |
Family Cites Families (50)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0424026B1 (en) * | 1989-10-14 | 1997-07-23 | Sony Corporation | Video signal transmitting system and method |
| DE69222240T2 (de) | 1991-07-12 | 1998-02-05 | Sony Corp | Vorrichtung zum Decodieren eines Bildsignals |
| JPH05137131A (ja) * | 1991-11-13 | 1993-06-01 | Sony Corp | フレーム間動き予測方法 |
| DE69333896T2 (de) * | 1992-01-29 | 2006-07-27 | Mitsubishi Denki K.K. | Vorrichtung und Verfahren zum Aufzeichnen/Wiedergeben von Videoinformation |
| US6160849A (en) * | 1992-06-29 | 2000-12-12 | Sony Corporation | Selectable field and frame based predictive video coding |
| JP2785220B2 (ja) * | 1992-09-22 | 1998-08-13 | ソニー株式会社 | データ符号化装置および方法、並びにデータ復号化装置および方法 |
| TW224553B (en) * | 1993-03-01 | 1994-06-01 | Sony Co Ltd | Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture |
| ES2431289T3 (es) * | 1993-03-24 | 2013-11-25 | Sony Corporation | Método de decodificación de señal de imagen y aparato asociado |
| US5329365A (en) | 1993-07-07 | 1994-07-12 | Rca Thomson Licensing Corporation | Method and apparatus for providing compressed non-interlaced scanned video signal |
| US6091460A (en) * | 1994-03-31 | 2000-07-18 | Mitsubishi Denki Kabushiki Kaisha | Video signal encoding method and system |
| US5943096A (en) | 1995-03-24 | 1999-08-24 | National Semiconductor Corporation | Motion vector based frame insertion process for increasing the frame rate of moving images |
| US5724446A (en) * | 1995-04-18 | 1998-03-03 | Advanced Micro Devices, Inc. | Video decoder apparatus using non-reference frame as an additional prediction source and method therefor |
| US5809173A (en) * | 1995-04-18 | 1998-09-15 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression using previous frame DCT coefficients |
| US5774206A (en) * | 1995-05-10 | 1998-06-30 | Cagent Technologies, Inc. | Process for controlling an MPEG decoder |
| JPH09182083A (ja) * | 1995-12-27 | 1997-07-11 | Matsushita Electric Ind Co Ltd | ビデオ画像符号化方法及び復号化方法とその装置 |
| JP3628810B2 (ja) | 1996-06-28 | 2005-03-16 | 三菱電機株式会社 | 画像符号化装置 |
| JPH1042295A (ja) | 1996-07-19 | 1998-02-13 | Sony Corp | 映像信号符号化方法および映像信号符号化装置 |
| JP3344576B2 (ja) * | 1996-09-09 | 2002-11-11 | ソニー株式会社 | 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法 |
| JPH10191356A (ja) | 1996-12-27 | 1998-07-21 | Oki Electric Ind Co Ltd | 画像符号化装置 |
| JPH10234045A (ja) | 1997-02-21 | 1998-09-02 | Oki Electric Ind Co Ltd | 動画像通信装置 |
| US5991447A (en) * | 1997-03-07 | 1999-11-23 | General Instrument Corporation | Prediction and coding of bi-directionally predicted video object planes for interlaced digital video |
| US6005980A (en) | 1997-03-07 | 1999-12-21 | General Instrument Corporation | Motion estimation and compensation of video object planes for interlaced digital video |
| DE69834788T2 (de) | 1997-03-19 | 2007-05-16 | Sony Corp. | Verfahren und vorrichtung zur bildkodierung |
| US6404813B1 (en) * | 1997-03-27 | 2002-06-11 | At&T Corp. | Bidirectionally predicted pictures or video object planes for efficient and flexible video coding |
| CN1136734C (zh) * | 1997-07-29 | 2004-01-28 | 皇家菲利浦电子有限公司 | 可变比特率视频编码方法及相应的视频编码器 |
| US6282240B1 (en) * | 1997-09-03 | 2001-08-28 | Oki Electric Industry Co., Ltd. | Picture coder, picture decoder, and transmission system |
| JPH11155147A (ja) | 1997-09-18 | 1999-06-08 | Casio Comput Co Ltd | 画像再生方法、画像符号化装置及び画像符号化方法 |
| US6404872B1 (en) * | 1997-09-25 | 2002-06-11 | At&T Corp. | Method and apparatus for altering a speech signal during a telephone call |
| KR100357093B1 (ko) * | 1999-06-02 | 2002-10-18 | 엘지전자 주식회사 | 동영상 압축 복원시스템에서의 오류 은폐장치 및 방법 |
| US6792047B1 (en) * | 2000-01-04 | 2004-09-14 | Emc Corporation | Real time processing and streaming of spliced encoded MPEG video and associated audio |
| US6891893B2 (en) * | 2000-04-21 | 2005-05-10 | Microsoft Corp. | Extensible multimedia application program interface and related methods |
| GB2381403B (en) | 2000-05-10 | 2004-12-01 | Picturetel Corp | Video coding using multiple buffers |
| US6504872B1 (en) | 2000-07-28 | 2003-01-07 | Zenith Electronics Corporation | Down-conversion decoder for interlaced video |
| US6680973B2 (en) | 2001-03-29 | 2004-01-20 | Koninklijke Philips Electronics N.V. | Scalable MPEG-2 video decoder with selective motion compensation |
| EP1263239A3 (en) | 2001-05-30 | 2005-02-09 | Nippon Telegraph and Telephone Corporation | Image compression system |
| US7266150B2 (en) | 2001-07-11 | 2007-09-04 | Dolby Laboratories, Inc. | Interpolation of video compression frames |
| ES2725714T3 (es) | 2001-11-06 | 2019-09-26 | Panasonic Ip Corp America | Procedimiento de codificación de imágenes en movimiento y procedimiento de decodificación de imágenes en movimiento |
| PT1449385E (pt) * | 2001-11-21 | 2015-10-15 | Google Technology Holdings LLC | Codificação adaptativa de quadro/campo ao nível dos macroblocos para o conteúdo de vídeo digital |
| US20030099294A1 (en) * | 2001-11-27 | 2003-05-29 | Limin Wang | Picture level adaptive frame/field coding for digital video content |
| CN101715137B (zh) * | 2001-11-21 | 2016-01-27 | 摩托罗拉移动有限责任公司 | 对具有多个图像的图像序列进行编码的方法及设备 |
| JP2004088722A (ja) * | 2002-03-04 | 2004-03-18 | Matsushita Electric Ind Co Ltd | 動画像符号化方法および動画像復号化方法 |
| JP4215197B2 (ja) * | 2002-04-12 | 2009-01-28 | パナソニック株式会社 | 画像符号化方法および画像復号化方法 |
| JP2004023458A (ja) | 2002-06-17 | 2004-01-22 | Toshiba Corp | 動画像符号化/復号化方法及び装置 |
| BRPI0305432B1 (pt) | 2002-07-11 | 2018-07-03 | Panasonic Intellectual Property Corporation Of America | “Método e aparelho de decodificação para decodificar um sinal de imagem codificado preditivamente” |
| EP1422946A4 (en) * | 2002-07-26 | 2008-04-02 | Matsushita Electric Industrial Co Ltd | MOVING IMAGE PROCEDURE, MOVABLE IMAGE DECODING METHOD AND RECORD MEDIUM |
| US7263129B2 (en) * | 2002-08-29 | 2007-08-28 | Sony Corporation | Predictive encoding and data decoding control |
| KR100506864B1 (ko) * | 2002-10-04 | 2005-08-05 | 엘지전자 주식회사 | 모션벡터 결정방법 |
| JP3513148B1 (ja) | 2002-10-11 | 2004-03-31 | 株式会社エヌ・ティ・ティ・ドコモ | 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム |
| US7366081B2 (en) * | 2004-11-10 | 2008-04-29 | Tdk Corporation | Information recording medium |
| KR20080026010A (ko) * | 2006-09-19 | 2008-03-24 | 엘지전자 주식회사 | 위상천이 기반의 프리코딩을 이용한 데이터 전송 방법 및이를 구현하는 송수신 장치 |
-
2002
- 2002-11-06 ES ES17199599T patent/ES2725714T3/es not_active Expired - Lifetime
- 2002-11-06 ES ES17199506T patent/ES2721514T3/es not_active Expired - Lifetime
- 2002-11-06 BR BR0206305-0A patent/BR0206305A/pt active IP Right Grant
- 2002-11-06 ES ES10186098.9T patent/ES2608453T3/es not_active Expired - Lifetime
- 2002-11-06 CN CNA028034775A patent/CN1484922A/zh active Pending
- 2002-11-06 PT PT101861235T patent/PT2271111T/pt unknown
- 2002-11-06 EP EP08166965.7A patent/EP2009923B1/en not_active Expired - Lifetime
- 2002-11-06 EP EP16182966.8A patent/EP3122047B1/en not_active Expired - Lifetime
- 2002-11-06 KR KR1020077025442A patent/KR100951485B1/ko not_active Expired - Lifetime
- 2002-11-06 US US10/250,456 patent/US7782936B2/en not_active Expired - Lifetime
- 2002-11-06 EP EP02780003.6A patent/EP1445960B1/en not_active Expired - Lifetime
- 2002-11-06 WO PCT/JP2002/011553 patent/WO2003041415A1/ja not_active Ceased
- 2002-11-06 EP EP17199599.6A patent/EP3310045B1/en not_active Expired - Lifetime
- 2002-11-06 ES ES10186123.5T patent/ES2602575T3/es not_active Expired - Lifetime
- 2002-11-06 BR BRPI0206308A patent/BR0206308B1/pt active IP Right Grant
- 2002-11-06 EP EP10186098.9A patent/EP2271110B1/en not_active Expired - Lifetime
- 2002-11-06 CA CA2432453A patent/CA2432453C/en not_active Expired - Lifetime
- 2002-11-06 ES ES16182966.8T patent/ES2661697T3/es not_active Expired - Lifetime
- 2002-11-06 DK DK10186098.9T patent/DK2271110T3/en active
- 2002-11-06 DK DK10186123.5T patent/DK2271111T3/en active
- 2002-11-06 TR TR2018/12420T patent/TR201812420T4/tr unknown
- 2002-11-06 EP EP17199503.8A patent/EP3310049B1/en not_active Expired - Lifetime
- 2002-11-06 EP EP16171956.2A patent/EP3094088B1/en not_active Expired - Lifetime
- 2002-11-06 US US10/478,484 patent/US7310373B2/en not_active Expired - Lifetime
- 2002-11-06 KR KR1020097021200A patent/KR100976285B1/ko not_active Expired - Lifetime
- 2002-11-06 ES ES16171956.2T patent/ES2687176T3/es not_active Expired - Lifetime
- 2002-11-06 EP EP10186123.5A patent/EP2271111B1/en not_active Expired - Lifetime
- 2002-11-06 KR KR20037015345A patent/KR100926850B1/ko not_active Expired - Lifetime
- 2002-11-06 EP EP20090174081 patent/EP2148512A3/en not_active Withdrawn
- 2002-11-06 ES ES08166965.7T patent/ES2601356T3/es not_active Expired - Lifetime
- 2002-11-06 EP EP16182959.3A patent/EP3122045B1/en not_active Expired - Lifetime
- 2002-11-06 TR TR2018/02352T patent/TR201802352T4/tr unknown
- 2002-11-06 EP EP20080166968 patent/EP2009924A3/en not_active Withdrawn
- 2002-11-06 DK DK02780003.6T patent/DK1445960T3/en active
- 2002-11-06 TR TR2018/02625T patent/TR201802625T4/tr unknown
- 2002-11-06 MX MXPA03010729A patent/MXPA03010729A/es active IP Right Grant
- 2002-11-06 AU AU2002343215A patent/AU2002343215C1/en not_active Expired
- 2002-11-06 MX MXPA03006080A patent/MXPA03006080A/es active IP Right Grant
- 2002-11-06 EP EP17199509.5A patent/EP3310051B1/en not_active Expired - Lifetime
- 2002-11-06 KR KR1020097021201A patent/KR100973374B1/ko not_active Expired - Lifetime
- 2002-11-06 KR KR1020097009382A patent/KR100952542B1/ko not_active Expired - Lifetime
- 2002-11-06 EP EP16182963.5A patent/EP3122046B1/en not_active Expired - Lifetime
- 2002-11-06 PT PT101860989T patent/PT2271110T/pt unknown
- 2002-11-06 BR BRPI0206305-0A patent/BRPI0206305B1/pt unknown
- 2002-11-06 CN CNB028157664A patent/CN100505878C/zh not_active Expired - Lifetime
- 2002-11-06 ES ES16182963.5T patent/ES2661591T3/es not_active Expired - Lifetime
- 2002-11-06 PT PT2780003T patent/PT1445960T/pt unknown
- 2002-11-06 EP EP17199506.1A patent/EP3310050B1/en not_active Expired - Lifetime
- 2002-11-06 KR KR1020037009034A patent/KR100917521B1/ko not_active Expired - Lifetime
- 2002-11-06 CA CA2456377A patent/CA2456377C/en not_active Expired - Lifetime
- 2002-11-06 TR TR2018/02383T patent/TR201802383T4/tr unknown
- 2002-11-06 ES ES16182959.3T patent/ES2665693T3/es not_active Expired - Lifetime
- 2002-11-06 EP EP20020780004 patent/EP1444835A2/en not_active Withdrawn
- 2002-11-06 ES ES02780003.6T patent/ES2602202T3/es not_active Expired - Lifetime
- 2002-11-06 WO PCT/JP2002/011554 patent/WO2003041385A2/en not_active Ceased
-
2006
- 2006-10-26 US US11/586,596 patent/US8107533B2/en active Active
- 2006-10-26 US US11/586,590 patent/US8213517B2/en not_active Expired - Fee Related
-
2007
- 2007-10-31 US US11/980,598 patent/US8126057B2/en not_active Expired - Fee Related
- 2007-10-31 US US11/980,563 patent/US8126056B2/en not_active Expired - Fee Related
- 2007-10-31 US US11/980,484 patent/US7756204B2/en not_active Expired - Lifetime
-
2009
- 2009-09-30 US US12/570,486 patent/US8194747B2/en not_active Expired - Fee Related
- 2009-09-30 US US12/570,423 patent/US8265153B2/en not_active Expired - Fee Related
-
2012
- 2012-06-01 US US13/486,358 patent/US8964839B2/en not_active Expired - Lifetime
-
2014
- 2014-12-31 US US14/587,225 patent/US9078003B2/en not_active Expired - Fee Related
-
2015
- 2015-06-01 US US14/726,838 patent/US9241161B2/en not_active Expired - Fee Related
- 2015-06-01 US US14/726,867 patent/US9241162B2/en not_active Expired - Fee Related
- 2015-12-09 US US14/963,536 patent/US9344714B2/en not_active Expired - Fee Related
- 2015-12-09 US US14/963,715 patent/US9338448B2/en not_active Expired - Fee Related
-
2016
- 2016-04-14 US US15/098,778 patent/US9462267B2/en not_active Expired - Fee Related
- 2016-08-16 US US15/238,096 patent/US9578323B2/en not_active Expired - Fee Related
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2661697T3 (es) | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento | |
| CN1913633B (zh) | 运动图像编码方法 | |
| BR122017003640B1 (pt) | Método de decodificação para decodificar uma pluralidade de imagens |