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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- 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.
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)
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)
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 |
-
1998
- 1998-12-22 FR FR9816221A patent/FR2787669B1/fr not_active Expired - Fee Related
-
1999
- 1999-12-10 DE DE69931017T patent/DE69931017T2/de not_active Expired - Lifetime
- 1999-12-10 ES ES99403116T patent/ES2262297T3/es not_active Expired - Lifetime
- 1999-12-10 EP EP99403116A patent/EP1014716B1/en not_active Expired - Lifetime
- 1999-12-17 CN CNB991263723A patent/CN1154048C/zh not_active Expired - Lifetime
- 1999-12-21 US US09/469,117 patent/US6631164B1/en not_active Expired - Lifetime
- 1999-12-21 JP JP36330699A patent/JP4435918B2/ja not_active Expired - Lifetime
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) | 프레임 메모리에 있어서 어드레스 발생장치 |