Diferencia entre revisiones de «Ordenación arbitraria de slices»

Contenido eliminado Contenido añadido
Dasshar (discusión · contribs.)
Sin resumen de edición
Dasshar (discusión · contribs.)
Línea 25:
'''Figura 1:''' Un ejemplo de asignación de macrobloque a cuatro slices. Cada segmento está representado por una textura diferente.
 
[[Archivo:Bloques_descodificadorBloques_descodificador_AVC.JPG‎]]
 
'''Figura 2:''' Los bloques del descodificador AVC necesarios para apoyar la decodificación de ASO.
 
Para cada tramo, la longitud de slice y la dirección del primer macrobloque (es decir, índice con respecto a la orden de escaneo de trama) del primer macrobloque (MB) del slice son extraídos por el slice parser (analizador de slices, en la Figura 2). Esta información, junto con el mismo slice, se almacena en la memoria (que aparece como DRAM). Además, una lista de punteros (en la figura 2, un puntero para cada sector, y cada una apuntando a la ubicación de memoria donde se almacena el slice), debe ser generada. La lista de los punteros, junto con la dirección del primer macrobloque del slice, se utiliza para navegar a través del orden de slices. La longitud del tramo será utilizado para transferir los datos del slice de la DRAM a la memoria interna del descodificador.
Línea 34:
*'''1)''' esperar a que llegen todos los slices de la misma imagen antes de empezar la descodificación y apertura de la imagen
*'''2)''' descifrar los slices en el orden en que llegan al descodificador.
 
El primer método aumenta la latencia, pero permite la realización de descodificación y apertura en paralelo. Sin embargo, la gestión de un gran número de punteros (en el peor de los casos, un puntero para cada macrobloque) y el aumento de la inteligencia de la unidad de acceso de DRAM hacen que haya un aumento de la complejidad del descodificador.
El segundo método perjudica significativamente el rendimiento del descodificador. Además, mediante la realización de la apertura en un segundo paso, se aumenta el ancho de banda de memoria DRAM de procesador.
 
Descodificación de slices en el orden en que se reciben puede provocar un consumo de memoria adicional o imponer requisitos más altos de rendimiento en el descodificador y la memoria local para ejecutar a una velocidad de reloj más altas.
 
=== Asociación de slices a grupos de slices ===
 
Un ejemplo de cómo slices pueden ser asociados a grupos de slices diferentes se muestra en la Figura 3. Cuando la ASO y FMO son compatibles, las cuatro slices de este ejemplo pueden ser recibidos por el descodificador en un orden aleatorio. La Figura 4 muestra el siguiente orden: slice #4, slice #2, slice #1, y slice #3. En la misma figura se presentan los bloques del descodificador AVC necesarios para apoyar ASO y decodificación de FMO.
 
[[Archivo:Slice_Group.JPG‎ ]]
 
'''Figura 3:''' Un ejemplo de asignación de macrobloque a cuatro slices y dos grupos de slices (SG en la figura). Cada segmento está representado por una textura diferente, y cada uno de SG está representado por un color diferente.
 
[[Archivo:Bloques_descodificador_AVC2.JPG‎]]
 
'''Figura 4:''' Los bloques del descodificador AVC necesarios para apoyar la ASO y decodificación de FMO.
 
Además de la longitud del tramo y la dirección del primer macrobloque de la sección, el analizador de slice (en la Figura 4) necesita extraer del grupo de slices (SG) cada slice. Estas informaciones, junto con el mismo slice, se almacenan en la memoria DRAM. Como en el caso de ASO, la lista de punteros (en la Figura 4) debe ser generada.
 
La lista de indicadores, junto con la dirección del primer macrobloque del slice, el Slice Group (SG), y el mb_allocation_map (almacenada en la memoria local del procesador), se utilizarán para navegar por las secciones. La longitud del tramo será utilizada para transferir los datos de slice de la DRAM al procesador de memoria local.
Al igual que en el caso de ASO, en el caso de ASO y FMO combinados, el descodificador podrá:
 
*'''1)''' esperar a que llegen todos los slices de la misma imagen antes de empezar la descodificación y apertura de la imagen
*'''2)''' descifrar los slices en el orden en quevan llegando al descodificador. En consecuencia, como se describe para el caso de ASO, ambos métodos imponen un coste adicional en los descodificadores de silicio.
 
El primer caso es el preferido. A causa de FMO, la descodificación de macrobloques escaneando la trama puede requerir cambiar entre diferentes slices y / o grupos de slices. Para acelerar el acceso de la DRAM, debe utilizarse un buffer para cada Slice Group(SG) ( en la Figura 4). Esta inteligencia adicional de la unidad de acceso DRAM aumenta aún más la complejidad del descodificador. Por otra parte, el cambio entre diferentes slices y / o grupos de slices requiere el cambio de la información del estado del Descodificador Entrópico (ED). En el peor de los casos, el intercambio se produce después de la descodificación de cada macrobloque. Si toda la información del estado es demasiado grande para ser almacenado en la memoria del procesador local, cada estado del Descodificador Entrópico (ED) necesita ser cargado y almacenados desde memorias DRAM, incrementándose con ello el ancho de banda de memoria DRAM de procesador (en la Figura 4).