ES2262297T3 - Proceso de direccionamiento para almacenamiento en memoria de bloques de imagen. - Google Patents

Proceso de direccionamiento para almacenamiento en memoria de bloques de imagen.

Info

Publication number
ES2262297T3
ES2262297T3 ES99403116T ES99403116T ES2262297T3 ES 2262297 T3 ES2262297 T3 ES 2262297T3 ES 99403116 T ES99403116 T ES 99403116T ES 99403116 T ES99403116 T ES 99403116T ES 2262297 T3 ES2262297 T3 ES 2262297T3
Authority
ES
Spain
Prior art keywords
image
blocks
block
memory
dimensions
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
Application number
ES99403116T
Other languages
English (en)
Inventor
Alain Thomson multimedia Sorin
Frederic Thomson Multimedia Plissonneau
Jean-Marc Thomson multimedia Allard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technicolor SA
Original Assignee
Thomson Multimedia SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson Multimedia SA filed Critical Thomson Multimedia SA
Application granted granted Critical
Publication of ES2262297T3 publication Critical patent/ES2262297T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Input (AREA)
  • Memory System (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

Proceso para almacenar los datos de vídeo digital de una imagen, dividiéndose la imagen en primeros bloques de imagen (h, v) (1, 2) consistentes en v líneas de h puntos de imagen, constituyendo una fila el conjunto de bloques sobre una anchura de imagen, siendo almacenado los datos como bloques de imagen sucesivos (3, 13) en páginas sucesivas (4, 5, 6, 8) de una memoria dinámica de acceso aleatorio siguiendo un orden correspondiente a un barrido de tipo televisivo para lectura de segundos bloques de imágenes (H, V) (9, 10, 11) consistentes en V líneas de H puntos de imagen, caracterizado porque considerando la posición de los bloques en la imagen y la de las páginas que los contienen, el desplazamiento horizontal Dl.l+a en términos de número de primeros bloques (h, v) del límite de una página correspondiente a una fila I de la imagen respecto del límite de una página correspondiente a una fila I + a es igual a: Dl, l+aç = a D, siendo ¿a¿ un número entero positivo, menor que RM = INT [(V-2)/v] + 2, H (correspondiendo INT a la parte entera de la división) el valor D, que corresponde al desplazamiento entre dos filas sucesivas se selecciona de forma que: D> (BM-1), siendo BM = INT [(H-2)/h] + 2

Description

Proceso de direccionamiento para almacenamiento en memoria de bloques de imagen.
La invención se refiere a un proceso de direccionamiento para almacenar datos en memorias de tipo SDRAM.
El procesamiento de vídeo digital necesita poder almacenar en memoria imágenes de vídeo. Normalmente se utilizan dos tipos de memoria:
- memorias estáticas de acceso aleatorio (SRAMs). Puede accederse directamente a las áreas de estas memorias desde el bus de direcciones;
- memorias dinámicas de acceso aleatorio (DRAMs) o, si son síncronas, memorias dinámicas de acceso aleatorio síncronas (SDRAMs).
La memoria dinámica está dividida en páginas y el acceso a una nueva página correspondiente a un cambio de página exige un tiempo de acceso al que se denomina "penalización de tiempo". La dirección de memoria está formada por un primer componente denominado dirección de página o "dirección de fila" y por un segundo componente denominado dirección de sector o "dirección de columna". Los términos mencionados aquí entre comillas son los términos normalmente utilizados en las hojas de certificaciones de componentes tipo DRAM o SDRAM.
Las aplicaciones de procesamiento de vídeo, que son cada vez más corrientes, necesitan acceder a bloques de imágenes, es decir, a un conjunto de puntos de imagen ("pixels") de una imagen.
Este es el caso, por ejemplo, de la compresión de datos de vídeo digital de acuerdo con la norma MPEG, siglas que significan Motion Picture Expert Group [grupo de expertos en imágenes en movimiento], cuyo tamaño de codificación elemental es un bloque de imagen que constituye un macrobloque. Durante el cálculo de movimiento, el macrobloque de imagen actual se compara con los macrobloques de una imagen reconstruida que se encuentran almacenados en una memoria tipo SDRAM a fin de determinar el macrobloque reconstruido que ofrece la mejor correlación con el macrobloque de imagen actual.
En la norma MPEG, los macrobloques son conjuntos consistentes en cuatro bloques de 8 x 8 elementos de datos de luminancia y, por ejemplo para el formato 4: 2: 0, en dos bloques de 8 x 8 elementos de datos de crominancia procedentes de una sección de 16 x 16 elementos del componente de luminancia de la imagen.
De hecho, los cálculos de estimación del movimiento se ejecutan solamente sobre los valores de luminancia. Los bloques correspondientes serán entonces los bloques de luminancia con un tamaño global de 16 x 16. Estos bloques se almacenan en forma de bloques de 16 puntos de imagen x 8 líneas, habiéndose separado previamente los bloques de luminancia con un tamaño global de 16 x 16 en dos bloques de 16 puntos de imagen x 8 líneas. Estos bloques corresponden a un primer bloque del cuadro superior y a un segundo bloque del cuadro inferior en modo de imagen, agrupando conjuntamente dos cuadros o incluso a un primer bloque que agrupa conjuntamente las 8 primeras líneas y a un segundo grupo que agrupa conjuntamente las siguientes 8 líneas del mismo cuadro en modo fotograma. Estos bloques de luminancia de 16 puntos de imagen x 8 líneas se denominarán en adelante semi-macrobloques de luminancia o simplemente semi-macrobloques para indicar que agrupan conjuntamente 2 bloques de luminancia de 8 puntos de imagen x 8 líneas, utilizándose el término macrobloque de luminancia para indicar en la norma MPEG los 4 bloques de luminancia.
Por lo general, suele ser necesario recuperar de la memoria bloques de imágenes con un tamaño mayor al de estos bloques de 16 puntos de imagen x 8 líneas. De hecho, el tamaño de los bloques recuperados viene definido por la aplicación.
Por ejemplo, el cálculo de los vectores de movimiento se lleva a cabo con una resolución de medio pixel, lo que requiere el procesamiento de bloques de imagen con una línea y una columna adicional, es decir con unas dimensiones de 17 puntos de imagen x 9 líneas.
Otro ejemplo hace referencia a las ventanas de búsqueda en la imagen reconstruida, ejecutándose la correlación de los bloques en dichas ventanas cuyas dimensiones son mayores o menores en función de los procesos utilizados para la estimación del movimiento. En el caso de un proceso que designe en una primera etapa la ubicación de una ventana de búsqueda a partir de un vector de movimiento suele ser necesario, en una segunda etapa, refinar la búsqueda para realizar un ajuste local, llevándose a cabo este refinado en una ventana de pequeñas dimensiones. En un ejemplo, estas ventanas de búsqueda tienen unas dimensiones de 24 x 12, lo que corresponde a una desviación horizontal de \pm 4 y una desviación vertical de \pm 2 para bloques de 16 x 8 puntos de imagen.
El tiempo de acceso a un bloque completo con un mayor tamaño no suele optimizarse y exige acceder a varias páginas de la memoria SDRAM para leer o escribir los valores de los puntos de imagen que constituyen dicho bloque.
La figura 1 representa macrobloques de luminancia con unas dimensiones de 16 x 16, un primer macrobloque de luminancia 1 de 16 x 16 y un último macrobloque de luminancia 2 de 16 x 16 que tienen una y la misma fila horizontal, es decir una sucesión horizontal de macrobloques sobre una anchura de imagen. En el caso general, una fila de macrobloques corresponde a un segmento, según se define en la norma MPEG. En adelante, el término fila se usará más particularmente para definir una sucesión de bloques o de semi-macrobloques sobre una anchura de imagen, reservándose el término segmento para los macrobloques.
En el eje de abscisas se indican los números de punto de imagen y en el eje de ordenadas los números de línea. 16 líneas de vídeo sobre una anchura de imagen de 720 puntos de imagen corresponden a 45 macrobloques de 16 puntos de imagen (720:16).
Los semi-macrobloques se almacenan uno tras otro según un barrido de tipo televisión, como se indica más adelante.
La figura 2 representa páginas de memoria 4, 5, 6, 8 tal y como son direccionadas sucesivamente durante el almacenamiento de los semi-macrobloques. Como se ha indicado anteriormente, los macrobloques de 16 x 16 se almacenan tras su separación en dos partes, los bloques superiores y los bloques inferiores.
Si los bloques superiores corresponden a un cuadro, y los bloques inferiores al siguiente cuadro, es decir en modo de imagen, los bloques superiores se almacenan uno tras otro en un espacio de memoria y los bloques inferiores uno tras otro en otro espacio de memoria, correspondiendo por tanto cada espacio de memoria a un cuadro.
Si los bloques superiores e inferiores corresponden a uno y al mismo cuadro, es decir en modo fotograma, se almacenan uno tras otro, o lo que es lo mismo, en primer lugar, los bloques superiores de una fila (de semi-macrobloques), y después los bloques inferiores correspondientes a la siguiente fila. El siguiente cuadro se almacena en otro espacio de memoria.
El proceso de almacenamiento se describe para el modo fotograma y puede generalizarse sin dificultad para el modo de imagen. Se aplica a cada uno de los espacios de memoria tomados por separado, considerando para cada uno de ellos tan sólo los semi-macrobloques que están almacenados en su interior.
Una página 4 puede almacenar en nuestro ejemplo 8 semi-macrobloques MB indicados con la referencia 3. El almacenamiento de los 8 semi-macrobloques MB siguientes se lleva a cabo en la siguiente página 5, y así sucesivamente. Por lo tanto, cada 8 semi-macrobloques se produce un cambio de página o salto 7 denominado "pérdida de página" en la literatura técnica. El semi-macrobloque Nº 45, que se corresponde con el final de la primera fila, se almacena en la mitad de una página denominada con la referencia 6, más exactamente como el 5º semi-macrobloque de los 8 semi-macrobloques de la página.
El siguiente semi-macrobloque que se corresponde con el semi-macrobloque situado al comienzo de la segunda fila del cuadro se almacena en la memoria al comienzo de una nueva página 8, siendo el almacenamiento al comienzo de la página de un semi-macrobloque de comienzo de fila la solución más sencilla para gestionar las direcciones.
La figura 3 muestra los inconvenientes de esta técnica anterior. El espacio de memoria se representa esquemáticamente en función del tamaño de los semi-macrobloques 13 almacenados. Las líneas en negrita 12 corresponden a los límites de las páginas con unas dimensiones de 8 bloques de 16 x 8 puntos de imagen. Se han representado tres páginas completas solapadas que corresponden a grupos de semi-macrobloques superpuestos de tres filas sucesivas del cuadro. Cuando es necesario acceder a bloques de imagen con unas dimensiones mayores a las de los semi-macrobloques almacenados es necesario acceder a varias páginas para leer un bloque de imagen. De esto modo, el acceso al bloque de 17 líneas x 9 puntos de imagen denominado con la referencia 9 requiere 4 cambios de página, el acceso al bloque 10, que tiene las mismas dimensiones, 2 cambios de página, y el acceso al bloque 11, con unas dimensiones de 24 líneas x 12 puntos de imagen, 6 cambios de página. Este cálculo tiene en cuenta el primer cambio de página que debe realizarse simplemente para acceder al bloque.
En esta configuración, el número máximo de cambios de página correspondiente a un bloque con dimensiones 17 x 9 es 4, y el número máximo de cambios de página para un bloque de dimensiones 24 x 12 es 6.
El dispositivo de escritura/lectura en memoria debe configurarse de tal forma que tenga en cuenta el máximo número posible de cambios de página. De este modo, cuanto mayor sea este número, mayor será el tiempo de acceso, incluso para acceder a una sola página.
Estos cambios de página, o más exactamente este número máximo posible de cambios de página, requieren una configuración del sistema que penaliza el tiempo de acceso a los datos almacenados y que, por tanto, reduce la banda de paso del bus de memoria, correspondiendo dicha banda de paso al número de puntos de imagen a los que puede accederse en un intervalo dado. Un cambio de página requiere un cierto número de ciclos de reloj, lo que disminuye el tiempo de acceso.
El artículo de Winzker M. y otros "Architecture and Memory Requirements for stand-alone and hierarchical MPEG2 HDTV-Decoders with Synchronous DRAMs", 1995 IEEE International Symposium on Circuits and Systems (ISCAS), Seattle 1995, Vol. 1, 30 de abril de 1995 (1995-04-30) páginas 609-612, y el documento EP-A.0849953, describen un método para almacenar y direccionar bloques estándar MPEG en una memoria SDRAM de forma que se reduzca al mínimo el número de páginas que contienen los datos.
El objeto de la invención consiste en mitigar los problemas descritos.
Para ello, el objeto de la invención consiste en un proceso de almacenamiento de datos de vídeo digital correspondientes a una imagen, dividiéndose la imagen en primeros bloques de imagen (h, v) consistente en v líneas de h puntos de imagen, constituyendo una el conjunto de bloques sobre una anchura de imagen, almacenándose los datos como bloques de imagen sucesivos en páginas sucesivas de una memoria dinámica de acceso aleatorio siguiendo un orden correspondiente a un barrido tipo televisión, para la lectura de segundos bloques de imágenes (H, V) consistentes en V líneas de H puntos de imagen, caracterizado porque el desplazamiento horizontal D_{1\cdot1+a\text{ç},} relativo al número de primeros bloques (h, v) del límite de una página correspondiente a cualquier fila I + a de la imagen en relación con el límite de una página correspondiente a una fila I + a es igual a:
D_{1,1+a\text{ç}} = a D, siendo "a" un número entero positivo, inferior a R_{M} = INT [(V-2)/v] + 2, H
(correspondiendo INT a la parte entera de la división)
el valor D, que corresponde al desplazamiento entre dos filas sucesivas se selecciona de forma que:
D\geq (B_{M}-1), siendo B_{M} = INT [(H-2)/h] + 2
De acuerdo con un modo específico de implementación, el proceso se caracteriza porque el desplazamiento se obtiene dejando en blanco espacios de memoria correspondientes a uno o más primeros bloques (h, v) en la página en la que se almacenan los últimos bloques de una fila.
La invención también hace referencia a un proceso estimación de primeros bloques de almacenamiento de movimiento (h, v) con dimensiones h, v para obtener una imagen reconstruida en una memoria y llevar a cabo una comparación de un bloque con una imagen actual con segundos bloques (H, V) con dimensiones H, V de la imagen reconstruida almacenada, caracterizado porque los primeros bloques (h, v) están almacenados en las páginas de una memoria del tipo SDRAM de acuerdo con el primero de los procesos descritos anteriormente.
La invención hace también referencia a un proceso de correlación que lleva a cabo el almacenamiento de primeros bloques de imágenes (h, v) con dimensiones h, v para obtener una imagen reconstruida en una memoria, una lectura de una ventana de búsqueda (H, V) de la imagen reconstruida con dimensiones H, V para llevar a cabo una correlación de un bloque de una imagen actual con un bloque de imagen que se encuentra en la ventana de búsqueda, caracterizado por los primeros bloques (h, v) se almacenan en las páginas de una memoria de tipo SDRAM de acuerdo con uno de los procesos descritos anteriormente.
La invención hace también referencia a un proceso de predicción de un bloque de imagen en una imagen reconstruida mediante el almacenamiento de primeros bloques de imágenes (h, v) con dimensiones h, v para obtener una imagen reconstruida, a una predicción a partir de un vector de movimiento para definir un segundo bloque con dimensiones (H, V) en la imagen reconstruida, a una lectura de este segundo bloque (H, V), caracterizada porque los primeros bloques (h, v) están almacenados en las páginas de una memoria de tipo SDRAM de acuerdo con uno de los procesos descritos anteriormente.
En virtud de la invención, el número máximo de cambios de página es limitado y, en consecuencia, mejora la banda de paso. El tiempo de acceso a un bloque de puntos de imagen está optimizado. La reducción al mínimo del tiempo de uso del bus de memoria, debido a la reducción del tiempo total de transferencia, resulta especialmente ventajosa, al ser la banda de paso una limitación importante del rendimiento de los dispositivos de acceso a memoria utilizados en la actualidad.
Las características y ventajas de la presente invención se apreciarán mejor mediante la siguiente descripción facilitada a modo de ejemplo y haciendo referencia a las figuras adjuntas, en las cuales:
- la figura 1 representa un primer y un último macroblques de un segmento de macrobloques de una imagen.
- la figura 2 representa el almacenamiento de los semi-macrobloques en una memoria, de acuerdo con la técnica anterior.
- la figura 3 representa los bloques que deben leerse en una memoria configurada de acuerdo con la técnica anterior.
- la figura 4 representa una configuración del espacio de memoria de acuerdo con la invención.
- la figura 5 representa los bloques que van a leerse en una memoria configurada de acuerdo con la invención.
- la figura 6 representa el almacenamiento de semi-macrobloques en una memoria de acuerdo con la invención.
La figura 4 representa una configuración del espacio de memoria de acuerdo con la invención.
La dimensión de las páginas es, recurriendo al ejemplo facilitado anteriormente, 8 semi-macrobloques de 16 x 8 puntos de imagen. Desde una fila de semi-macrobloques a la fila inferior, los límites verticales 14 de las páginas, que se representan mediante líneas en negrita y que se corresponden con saltos de página, se desplazan un espacio equivalente a 2 semi-macrobloques (o a 2 macrobloques debido a que la anchura es la misma). De este modo, los semi-macrobloques de un cuadro situado bajo el primer y el segundo semi-macrobloques de una página pertenecen a otra página.
La figura 5 debe compararse con la figura 3 y representa los mismos bloques de imagen 9, 10, 11 en la memoria. En virtud del desplazamiento de los límites de las páginas el acceso al bloque de 17 líneas x 9 puntos de imagen designado con la referencia 9 requiere 3 cambios de página en lugar de 4, el acceso al bloque 10, con las mismas dimensiones, 2 cambios de página y el acceso al bloque 11, con unas dimensiones de 24 líneas x 12 puntos de imagen, 4 cambios de página en lugar de 6.
En esta configuración, el número máximo de cambios de página para un bloque de dimensiones 17 x 9 es 3, y el número máximo de cambios de página para un bloque de dimensiones 24 x 12 es 4. De este modo, en virtud de esta configuración, el número de cambios de página puede reducirse en 2, es decir una ganancia de 12 ciclos de reloj de memoria en nuestra aplicación.
El desplazamiento efectuado depende, de hecho, de las dimensiones de los bloques de imagen que deben leerse en relación con las de los bloques almacenados.
Los bloques almacenados tienen unas dimensiones h, v, es decir consisten en v líneas de h puntos de imagen y se denominan bloques (h, v).
Los bloques a leer son bloques de dimensiones H, V, es decir consisten en V líneas de H puntos de imagen y se denominan bloques (H, V).
El número máximo de filas de bloques en la memoria en el cual puede distribuirse un bloque (H, V) de dimensión vertical V es:
R_{M} = INT [(V-2)/v] + 2,
representando INT la parte entera de la división.
El número máximo de bloques horizontalmente, en el cual puede distribuirse un bloque (H, V) con una dimensión horizontal H es:
B_{M} = INT [(H-2)/h] + 2
Las limitaciones que deben observarse en relación con el desplazamiento horizontal D (en términos de número de bloques almacenados) de las páginas que constituyen la memoria son, entre dos filas de bloques sucesivas:
D \geq (B_{M} - 1)
Por ejemplo, para el bloque (H, V) indicado con la referencia 9 o 10, distribuido verticalmente, como máximo en dos filas sucesivas (R_{M} = 2) y cuya dimensión H se encuentra entre 1 y h+1, es decir un bloque distribuido horizontalmente en 2 bloques (h, v) como máximo (B_{M} = 2), el desplazamiento D se toma como igual a 1.
Cuando un bloque (H, V) puede distribuirse en varias filas, la limitación se generaliza al número máximo de filas R_{M} calculado para este bloque:
Sea D el valor del desplazamiento seleccionado entre dos filas sucesivas, satisfaciendo dicho valor la desigualdad:
D \geq (B_{M} - 1)
Siendo a un número entero variable entre 1 y R_{M} - 1. La limitación puede expresarse entonces como:
D_{1,1+a} = a D, \forall a, R_{M} > a \geq 1
Siendo D_{1,1+a} el desplazamiento entre cualquier fila I y una fila I + a.
\newpage
Por ejemplo, para el bloque (H, V) con la referencia 11, distribuido verticalmente, como máximo en tres filas sucesivas (R_{M} = 3) y cuya dimensión H se encuentra entre h+2 y 2h+1, es decir un bloque distribuido horizontalmente en 3 bloques (h, v) como máximo (B_{M} = 3) el desplazamiento D_{l,l+1} es igual a 2 y el desplazamiento D_{l,l+2} es igual a 4.
Para llevar a cabo este desplazamiento, se crean áreas no utilizadas en el espacio de memoria. En la figura 6, que debe compararse con la figura 2, se representa a lo largo de una línea continua una sucesión de páginas de memoria 4, 5, 6, 8 tal como se han direccionado durante el almacenamiento de los semi-macrobloques. Al llegar al último semi-macrobloque de la primera fila, que es el quinto semi-macrobloque almacenado en la página indicada por la referencia 6, se deja vacía un área de memoria 15 cuyas dimensiones corresponden a un semi-macrobloque, a fin de grabar los semi-macrobloques primero y segundo de la siguiente fila en las posiciones séptima y octava del semi-macrobloque de la página. De este modo, la siguiente página 8 graba el tercer semi-macrobloque en esta siguiente fila. El semi-macrobloque que se encuentra en el cuadro por encima de este primer semi-macrobloque de la página 8 se ha almacenado por su parte como el tercer semi-macrobloque de la correspondiente página 3 de la fila superior.
Un desplazamiento de tres semi-macrobloques correspondería a una ausencia de espacio libre en memoria, y un desplazamiento de un solo semi-macrobloque correspondería a dos espacios de memoria con unas dimensiones de semi-macrobloque.
Por lo general, el número de semi-macrobloques almacenados en la primera página de la siguiente fila, cuando la fila anterior comienza con una nueva página, corresponde a este desplazamiento, y un número de 8 semi-macrobloques no corresponde a ningún desplazamiento.
La descripción se ha realizado a partir de los semi-macrobloques almacenados. Por supuesto, se trata de un ejemplo de realización, y los semi-macrobloques pueden sustituirse por cualquier tipo de bloques de imagen de cualquier dimensión sin que el proceso se aparte del alcance de la invención.
El almacenamiento se ha descrito al nivel de los cuadros de una imagen, pero puede realizarse al nivel de la imagen completa obtenida, por ejemplo, mediante barrido secuencial. La división de la imagen en bloques se lleva entonces a cabo en función de la imagen completa, y los bloques de imagen se almacenan en un solo espacio de memoria.
Las aplicaciones de la presente invención hacen referencia, por ejemplo, al acceso a un bloque de predicción a partir de un vector de movimiento, en una imagen reconstruida, al acceso a las ventanas de búsqueda para su correlación con un bloque actual durante el cálculo de la estimación de movimiento.
Los bloques almacenados pueden ser bloques de luminancia que formen parte de los macrobloques definidos en la norma MPEG. También pueden ser bloques de crominancia únicamente o un conjunto de bloques de luminancia y crominancia.
La invención puede también aplicarse al almacenamiento de los bloques reconstruidos en un decodificador MPEG. Los bloques predichos para su lectura en la memoria y definidos por los vectores del movimiento suelen tener unas dimensiones mayores que los bloques almacenados, por ejemplo cuando el vector de movimiento tiene una precisión de medio punto de imagen. Posteriormente, estos bloques leídos se redimensionan por interpolación para el cálculo del bloque de imagen actual.

Claims (7)

1. Proceso para almacenar los datos de vídeo digital de una imagen, dividiéndose la imagen en primeros bloques de imagen (h, v) (1, 2) consistentes en v líneas de h puntos de imagen, constituyendo una fila el conjunto de bloques sobre una anchura de imagen, siendo almacenado los datos como bloques de imagen sucesivos (3, 13) en páginas sucesivas (4, 5, 6, 8) de una memoria dinámica de acceso aleatorio siguiendo un orden correspondiente a un barrido de tipo televisivo para lectura de segundos bloques de imágenes (H, V) (9, 10, 11) consistentes en V líneas de H puntos de imagen, caracterizado porque considerando la posición de los bloques en la imagen y la de las páginas que los contienen, el desplazamiento horizontal D_{1\cdot1+a} en términos de número de primeros bloques (h, v) del límite de una página correspondiente a una fila I de la imagen respecto del límite de una página correspondiente a una fila I + a es igual a:
D_{1,1+a\text{ç}} = a D, siendo "a" un número entero positivo, menor que R_{M} = INT [(V-2)/v] + 2, H
(correspondiendo INT a la parte entera de la división)
el valor D, que corresponde al desplazamiento entre dos filas sucesivas se selecciona de forma que:
D\geq (B_{M}-1), siendo B_{M} = INT [(H-2)/h] + 2
2. Proceso de acuerdo con la reivindicación 1 caracterizado porque el desplazamiento se obtiene dejando en blanco espacios de memoria (15) correspondientes a uno o más primeros bloques (h, v) en la página donde se almacenan los últimos bloques de una fila (6).
3. Proceso de acuerdo con la reivindicación 1 o 2, caracterizado porque los primeros bloques (h, v) forman parte de los macrobloques definidos en la norma MPEG.
4. Proceso de acuerdo con cualquiera de las reivindicaciones que anteceden, caracterizado porque la imagen es un cuadro par o impar.
5. Proceso para estimación de movimiento, almacenando primeros bloques (h, v) de dimensiones h, v a fin de obtener una imagen reconstruida en una memoria y llevar a cabo una comparación de un bloque de una imagen actual con segundos bloques (H, V) de dimensiones H, V de la imagen reconstruida almacenada, caracterizado porque los primeros bloques h, v se encuentran almacenados en las páginas de una memoria de tipo SDRAM de acuerdo con el proceso de las reivindicaciones 1 o 2.
6. Proceso de correlación que lleva a cabo un almacenamiento de unos primeros bloques de imagen (h, v) con unas dimensiones h, v para obtener una imagen reconstruida en una memoria, una lectura de una ventana de búsqueda (H, V) de la imagen reconstruida con unas dimensiones H, V para llevar a cabo una correlación de un bloque de una imagen actual con un bloque de imagen situado en la ventana de búsqueda, caracterizado porque los primeros bloques (h, v) se encuentran almacenados en las páginas de una memoria de tipo SDRAM de acuerdo con el proceso de las reivindicaciones 1 o 2.
7. Proceso para predicción de un bloque de imagen en una imagen reconstruida que efectúa un almacenamiento de primeros bloques de imagen (h, v) de dimensiones h, v para obtener una imagen reconstruida, una predicción a partir de a un vector de movimiento para definir un segundo bloque de dimensiones (H, V) en la imagen reconstruida, una lectura de este bloque (H, V), caracterizado porque los bloques (h, v) son almacenados en las páginas de una memoria de tipo SDRAM de acuerdo con el proceso de las reivindicaciones 1 o 2.
ES99403116T 1998-12-22 1999-12-10 Proceso de direccionamiento para almacenamiento en memoria de bloques de imagen. Expired - Lifetime ES2262297T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9816221 1998-12-22
FR9816221A FR2787669B1 (fr) 1998-12-22 1998-12-22 Procede d'adressage pour la memorisation de blocs d'image

Publications (1)

Publication Number Publication Date
ES2262297T3 true ES2262297T3 (es) 2006-11-16

Family

ID=9534309

Family Applications (1)

Application Number Title Priority Date Filing Date
ES99403116T Expired - Lifetime ES2262297T3 (es) 1998-12-22 1999-12-10 Proceso de direccionamiento para almacenamiento en memoria de bloques de imagen.

Country Status (7)

Country Link
US (1) US6631164B1 (es)
EP (1) EP1014716B1 (es)
JP (1) JP4435918B2 (es)
CN (1) CN1154048C (es)
DE (1) DE69931017T2 (es)
ES (1) ES2262297T3 (es)
FR (1) FR2787669B1 (es)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7471298B1 (en) * 2000-06-26 2008-12-30 S3 Graphics Co., Ltd. Fetching pixel data with reduced memory bandwidth requirement
CN100403276C (zh) * 2002-08-26 2008-07-16 联发科技股份有限公司 存储器存取方法
US20080158601A1 (en) * 2006-12-29 2008-07-03 Steven Tu Image memory tiling
US9286696B2 (en) * 2013-04-08 2016-03-15 Broadcom Corporation Compression within a set of images
CN117499664B (zh) * 2023-12-29 2024-03-19 南京博润类脑智能技术有限公司 一种基于比特替换的图像数据嵌入和提取方法、装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2283876B (en) * 1993-11-09 1998-06-24 Matsushita Electric Ind Co Ltd Encoding and decoding code sequences and frames
TW245871B (en) * 1994-08-15 1995-04-21 Gen Instrument Corp Method and apparatus for efficient addressing of dram in a video decompression processor
DE4441295A1 (de) * 1994-11-21 1996-05-23 Sican Gmbh Verfahren und Schaltungsanordnung zur Adressierung von Komponenten blockweise organisierter digitaler Bilddaten in einem Speicher mit Page-Adressierung
US5774206A (en) * 1995-05-10 1998-06-30 Cagent Technologies, Inc. Process for controlling an MPEG decoder
US5872577A (en) * 1996-02-28 1999-02-16 U.S. Philips Corporation Device for decoding signals of the MPEG-type
US5912676A (en) * 1996-06-14 1999-06-15 Lsi Logic Corporation MPEG decoder frame memory interface which is reconfigurable for different frame store architectures
US6005624A (en) * 1996-12-20 1999-12-21 Lsi Logic Corporation System and method for performing motion compensation using a skewed tile storage format for improved efficiency
JPH10191236A (ja) * 1996-12-25 1998-07-21 Nec Corp 画像処理装置及び画像データメモリ配置方法
US5883679A (en) * 1997-02-20 1999-03-16 C-Cube Microsystems, Inc. Scanning scheme for images stored in dynamic random access memory
US6088047A (en) * 1997-12-30 2000-07-11 Sony Corporation Motion compensated digital video decoding with buffered picture storage memory map
US6104416A (en) * 1997-11-18 2000-08-15 Stmicroelectronics, Inc. Tiling in picture memory mapping to minimize memory bandwidth in compression and decompression of data sequences

Also Published As

Publication number Publication date
CN1258044A (zh) 2000-06-28
JP2000236506A (ja) 2000-08-29
DE69931017T2 (de) 2006-09-14
CN1154048C (zh) 2004-06-16
JP4435918B2 (ja) 2010-03-24
EP1014716B1 (en) 2006-04-26
DE69931017D1 (de) 2006-06-01
FR2787669A1 (fr) 2000-06-23
EP1014716A1 (en) 2000-06-28
US6631164B1 (en) 2003-10-07
FR2787669B1 (fr) 2001-03-02

Similar Documents

Publication Publication Date Title
US8514937B2 (en) Video encoding apparatus
US8436865B2 (en) Memory controller and memory system using the same
ES2262297T3 (es) Proceso de direccionamiento para almacenamiento en memoria de bloques de imagen.
KR19980081641A (ko) 동화상 복호 방법 및 동화상 복호 장치
US8644380B2 (en) Integer pixel motion estimation system, motion estimation system for quarter-pixel luminance, motion estimation system for quarter-pixel chrominance, motion estimation system for combined luminance, motion estimation system for combined luminance and chrominance, and motion estimation system for quarter-pixel luminance and chrominance
US5946037A (en) Method and apparatus for reordering frames in MPEG coder/decoder
US20140369562A1 (en) Image processor
US7526024B2 (en) Storing macroblocks for concatenated frames
US7848432B2 (en) System and method for efficiently storing macroblocks in SD-RAM
US7386651B2 (en) System, method, and apparatus for efficiently storing macroblocks
JP3405079B2 (ja) メモリ割り付け方法
KR100243469B1 (ko) 프레임 메모리에 있어서 어드레스 발생장치
KR100243471B1 (ko) 프레임 메모리에 있어서 어드레스 발생장치
KR100255795B1 (ko) 프레임 메모리에 있어서 반화소를 가진 예측 매크로블록에 대한어드레스 발생시 기준 포인트 보상방법
KR100235485B1 (ko) 프레임 메모리에 있어서 예측 매크로블록에 대한 어드레스 발생시 기준 포인트 보상방법 및 회로
JPH10210481A (ja) メモリ制御装置
KR0130437B1 (ko) 엠피이지 2 6분할 디코더에서의 메모리구조 개선방법
KR100226705B1 (ko) 어드레스 발생시 프레임 메모리 상태 천이방법 및 장치
KR100255221B1 (ko) 프레임 메모리에 있어서 반화소 보상시 화소 어드레스 보상방법및 박스 보상을 위한 어드레스 카운터
KR100243473B1 (ko) 프레임 메모리에 있어서 예측 매크로블록에 대한 어드레스 발생시 움직임 벡터 보상회로
KR100226704B1 (ko) 프레임 메모리에 있어서 어드레스 거리 산출방법
KR19990026427A (ko) 프레임 메모리에 있어서 움직임벡터 거리 산출방법
KR100235486B1 (ko) 프레임 메모리에 있어서 예측 매크로블록에 대한 어드레스 발생시 슬라이스 위치 보상방법 및 회로
KR19990005602A (ko) 프레임 메모리에 있어서 듀얼 프라임 필드 예측방법
KR19990026428A (ko) 프레임 메모리에 있어서 어드레스 발생장치