<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>zoonoro.cl</title>
	<atom:link href="http://zoonoro.cl/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://zoonoro.cl/blog</link>
	<description>Jugando con la tecnología</description>
	<lastBuildDate>Mon, 05 Oct 2009 19:08:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Aceleración por hardware en Flash Player 10</title>
		<link>http://zoonoro.cl/blog/aceleracion-por-hardware-en-flash-player-10/</link>
		<comments>http://zoonoro.cl/blog/aceleracion-por-hardware-en-flash-player-10/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 04:16:46 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[Artículo]]></category>
		<category><![CDATA[Flash Player]]></category>

		<guid isPermaLink="false">http://zoonoro.cl/blog/?p=33</guid>
		<description><![CDATA[1.    Información general
Flash Player 10 introduce dos modos de ventana, directo y composición por GPU, que se pueden habilitar desde la configuración de publicación de la herramienta de edición de Flash. Para poder utilizar estos modos, es preciso activar la aceleración de hardware para Flash Player.
El modo directo utiliza la ruta más [...]]]></description>
			<content:encoded><![CDATA[<h2>1.    Información general</h2>
<p>Flash Player 10 introduce dos modos de ventana, directo y composición por GPU, que se pueden habilitar desde la configuración de publicación de la herramienta de edición de Flash. Para poder utilizar estos modos, es preciso activar la aceleración de hardware para Flash Player.</p>
<p>El modo directo utiliza la ruta más rápida y directa para introducir gráficos en pantalla, lo que resulta apropiado para la reproducción de gráficos y video.</p>
<p>La composición con GPU utiliza la unidad de procesamiento de gráficos de la tarjeta de vídeo para acelerar la composición. La composición de vídeo es el proceso de organización en capas de varias imágenes para crear una sola imagen de vídeo. Cuando la composición se acelera con la GPU, es posible mejorar el rendimiento de la conversión YUV, la corrección de color, la rotación o la escala, así como la fusión. La conversión YUV hace referencia a la conversión de color de las señales analógicas del compuesto, que se utilizan para la transmisión, en el modelo de color RGB (rojo, verde, azul) que utilizan las pantallas y las cámaras de vídeo. El uso de la GPU para acelerar la composición reduce la demanda del equipo y la memoria que se aplica a la CPU. También supone una reproducción más suavizada para el vídeo de definición estándar.</p>
<p><span id="more-33"></span>El uso de la composición con GPU puede resultar costoso en términos de recursos de CPU y memoria. Si algunas operaciones (por ejemplo, modos de fusión, recorte o enmascaramiento) no se pueden llevar a cabo en la GPU, se realizan mediante el software. Adobe recomienda la limitación a un archivo SWF por página HTML cuando se utilicen estos modos.</p>
<p>La definición de una velocidad de fotogramas en el archivo SWF que sea superior a 60, velocidad máxima de actualización de pantalla, no resulta útil. El establecimiento de la velocidad de fotogramas de 50 a 55 permite fotogramas eliminados, lo cual puede suceder por distintos motivos en algunas ocasiones.</p>
<p>Para poder utilizar el modo directo, es preciso disponer de Microsoft DirectX 9 con VRAM de 128 MB en Windows y OpenGL para Apple Macintosh, Mac OS X v10.2 o versiones posteriores. El modo de composición por GPU requiere compatibilidad con Microsoft DirectX 9 y Pixel Shader 2.0 en Windows con 128 MB de VRAM. En Mac OS X y Linux, la composición por GPU requiere OpenGL 1.5 y diversas extensiones de OpenGL (objeto framebuffer, objetos multitexture y shader, lenguaje de sombreado y sombreados de fragmentos).</p>
<p>Se puede activar los modos de aceleración directo y gpu por archivo SWF mediante el cuadro de diálogo de configuración de publicación de Flash, utilizando el menú de aceleración de hardware de la ficha Flash. Si selecciona Ninguno, el modo de ventana vuelve a los valores predeterminado, transparente u opaco, tal y como se especifica en la configuración del modo de ventana en la ficha HTML.</p>
<h3>1.1      Requerimientos de hardware</h3>
<p><strong>Tarjetas gráficas soportadas<a href="#_ftn1">[1]</a></strong></p>
<p>Adobe recomienda Directx 9.0 o superior (en Windows) y Shader 3.0. Tarjetas gráficas con 512 MB de VRAM o superior y soporte para OpenGL 2.0 si la tarjeta de video detectada no aparece como soportada, los efectos para GPU y sus preferencias no serán vistos con la aplicación.</p>
<p align="left"><strong>Tarjetas Gráficas compatibles testeadas</strong></p>
<p align="left"><strong> </strong></p>
<p align="left"><strong>Windows </strong><strong> </strong></p>
<table border="1" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td valign="top">
<p align="left">NVIDIA</p>
</td>
<td valign="top">
<p align="left">GeForce   6 Series</p>
</td>
<td valign="top">
<p align="left">6800   Ultra</p>
</td>
<td valign="top">
<p align="left">
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">GeForce   7 Series</p>
</td>
<td valign="top">
<p align="left">7800   GTX</p>
</td>
<td valign="top">
<p align="left">
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">GeForce   8 Series</p>
</td>
<td valign="top">
<p align="left">8800 GT</p>
</td>
<td valign="top">
<p align="left">
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">GeForce   9 Series</p>
</td>
<td valign="top">
<p align="left">9600GT,   9800 (single GPU variant one)</p>
</td>
<td valign="top">
<p align="left">
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">Quadro   FX Series</p>
</td>
<td valign="top">
<p align="left">1700</p>
</td>
<td valign="top">
<p align="left">Mid-Range</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">Quadro   FX Series</p>
</td>
<td valign="top">
<p align="left">4600</p>
</td>
<td valign="top">
<p align="left">High</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">Quadro   FX Series</p>
</td>
<td valign="top">
<p align="left">5600</p>
</td>
<td valign="top">
<p align="left">Ultra   High-End</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">AMD/ATI</p>
</td>
<td valign="top">
<p align="left">Radeon   X1000 Series</p>
</td>
<td valign="top">
<p align="left">1900</p>
</td>
<td valign="top">
<p align="left">
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">Radeon   HD2000 Series</p>
</td>
<td valign="top">
<p align="left">HD2900   XT</p>
</td>
<td valign="top">
<p align="left">
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">Radeon   HD3000 Series</p>
</td>
<td valign="top">
<p align="left">HD3870   X2</p>
</td>
<td valign="top">
<p align="left">
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">FireGL   V-Avivo Series</p>
</td>
<td valign="top">
<p align="left">V5600</p>
</td>
<td valign="top">
<p align="left">Mid-Range</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">FireGL   V-Avivo Series</p>
</td>
<td valign="top">
<p align="left">V7600</p>
</td>
<td valign="top">
<p align="left">High</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">FireGL   V-Avivo Series</p>
</td>
<td valign="top">
<p align="left">V8650</p>
</td>
<td valign="top">
<p align="left">Ultra   High-End</p>
</td>
</tr>
</tbody>
</table>
<p align="left"><strong> </strong></p>
<p align="left"><strong>Macintosh</strong></p>
<table border="1" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td valign="top">
<p align="left">Mac Pro</p>
</td>
<td valign="top">
<p align="left">First   Generation</p>
</td>
<td valign="top">
<p align="left">AMD/ATI</p>
</td>
<td valign="top">
<p align="left">Radeon   X1900</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">Second   Generation</p>
</td>
<td valign="top">
<p align="left">NVIDIA</p>
</td>
<td valign="top">
<p align="left">GeForce   8800 GT</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">iMac</p>
</td>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">NVIDIA</p>
</td>
<td valign="top">
<p align="left">GeForce   8800 GS</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">MacBook   Pro</p>
</td>
<td valign="top">
<p align="left">
</td>
<td valign="top">
<p align="left">NVIDIA</p>
</td>
<td valign="top">
<p align="left">GeForce   8800M GT</p>
</td>
</tr>
</tbody>
</table>
<h3>1.2         Observaciones realizadas a raiz de pruebas de código</h3>
<p>La respuesta a las principales dudas que surgen sobre el uso de GPU en Flash son resueltas en el sitio  de Tinic Uro, ingeniero de adobe y se encuentran en el siguiente enlace <a href="http://www.kaourantin.net/2008/05/what-does-gpu-acceleration-mean.html">http://www.kaourantin.net/2008/05/what-does-gpu-acceleration-mean.html</a></p>
<p>Un resumen de ellas es el detallado a continuación:</p>
<ol>
<li><strong>Que flash player utilice la tarjeta de video para renderizar no significa que vaya más rápido.</strong> En la mayoría de los casos el contenido irá más lento.</li>
</ol>
<p>Contenidos han sido especificamente diseñados para trabajar bien con las funcionalidades de la GPU. El conversor de vectores a mapa de bits (rasterizar) puede optimizar muchos de los casos que la GPU no puede optimizar. Por lo que en aquellos casos en los que el trabajo que hacia la GPU debe hacerlos la CPU los equipos andarán bastante más lento de lo esperado, y debido a las restricciones del hardware es posible que esto sea en la mayoría de las visualizaciones.</p>
<ol>
<li><strong>2. </strong><strong>Los requerimientos de hardware para el modo GPU son demasiado rigidos. </strong></li>
<li><strong>3. </strong><strong>La fidelidad de los pixeles no se encuentra garantizada en el modo GPU.</strong></li>
<li><strong>4. </strong><strong>No utilizar ciegamente la habilitación del los modos GPU o DIRECT en el contenido creado.</strong></li>
</ol>
<p>El autor del artículo recomienda en el caso de usar aceleración gráfica la opción direct, ya que es el más compatible de los dos y no haría que el contenido funcionara más lento en el caso que el procesamiento deba ser por CPU</p>
<h2>2.    El uso de pixel bender<a href="#_ftn2">[2]</a></h2>
<p>Pixel bender implementa algoritmos de procesamiento de imágenes (filtros y efectos) de forma independiente del hardware del equipo. La sintaxis del lenguaje se encuentra basada en XML para combinar operaciones de procesamiento de pixeles individuales (Kernels) dentro de operaciones de filtros Pixel bender más complejas.</p>
<p align="left">Permite ejecutar eficiententement el mismo filtro en diferentes arquitecturas a través de GPU y CPU, incluyendo sistemas multi-core y multiprocesos.</p>
<p align="left">El mismo Kernel puede correr en profundidades de 8-bit/16-bit-32-bit</p>
<p align="left">Se utiliza principalmente en algoritmos cuyo procesamiento de cualquier pixel tiene minima dependencia del valor de otro pixel. Por ejemplo al manipular el brillo de una imagen cada pixel puede ser modificado de forma independiente.</p>
<p align="left">
<h3>2.1.   Tarjetas gráficas soportadas por Pixel Bender<a href="#_ftn3">[3]</a></h3>
<p>La siguiente tabla lista las tarjetas gráficas soportadas por la herramienta de desarrollo de Pixel Bender y el visualizador, las cuales soportan la aplicación de filtros a través de  GPU y  CPU.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<p align="left"><strong>Manufacturer</strong></p>
</td>
<td>
<p align="left"><strong>Series</strong></p>
</td>
<td>
<p align="left"><strong>Model Numbers</strong></p>
</td>
</tr>
<tr>
<td rowspan="6" valign="top">
<p align="left">NVIDIA</p>
</td>
<td valign="top">
<p align="left">QuadroFX Series</p>
</td>
<td valign="top">
<p align="left">FX 5500 SDI, FX 4500 SDI, FX 5600, FX 5500, FX 4600, FX 4500 X2, FX   4500, FX 4400 (discontinued, replaced by the FX 4500), FX 4000 SDI, FX 3500,   FX 3450, FX 1700, FX 1500, FX GO 1400, FX 1400, FX 1300, FX 570, FX 560, FX   550, FX 540, FX 370, FX 350</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">200 Series</p>
</td>
<td valign="top">
<p align="left">GTX 295, GTX 285</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">9 Series</p>
</td>
<td valign="top">
<p align="left">9800, 9600, 9500, 9400, 9300, GeForce 9800 GTX, GeForce 9800 GX2</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">8 Series</p>
</td>
<td valign="top">
<p align="left">GeForce 8800 GTS/GTX/Ultra, GeForce 8600M GT, GeForce 8500 GT</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">7 Series</p>
</td>
<td valign="top">
<p align="left">GeForce 7950 GT/GS, GeForce 7900, GeForce 7800, GeForce 7600,   GeForce 7300, GeForce 7200 GS, GeForce 7100</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">6 Series</p>
</td>
<td valign="top">
<p align="left">6800 Ultra, 6800 GT, 6800 GS, 6800, 6800 XT, 6600, 6500, 6200, 6200   TurboCache, 6200 LE, 6100, 6150</p>
</td>
</tr>
<tr>
<td rowspan="5" valign="top">
<p align="left">AMD/ATI</p>
</td>
<td valign="top">
<p align="left">Radeon HD4000 series</p>
</td>
<td valign="top">
<p align="left">HD4870, HD4850</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Radeon HD3800 series</p>
</td>
<td valign="top">
<p align="left">
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Radeon HD2000 Series</p>
</td>
<td valign="top">
<p align="left">HD2900,  HD2600, HD2400</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Radeon X1000 Series</p>
</td>
<td valign="top">
<p align="left">X1950, X1900, X1800, X1650, X1600, X1300, &#8220;All In Wonder&#8221;   X1900 (X1900 GPU), &#8220;All In Wonder&#8221; 2006 PCI Express cards (Based on   X1300 GPU)</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">FireGL</p>
</td>
<td valign="top">
<p align="left">Avivo PCI Express, V8650, V8600, V7600, V7350, V7300, V7200, V5600,   V5200, V3600, V3300, V3400</p>
</td>
</tr>
</tbody>
</table>
<h3>2.2.   Observaciones realizadas a través de artículos</h3>
<p>Tinic Uro a través del post <a href="http://www.kaourantin.net/2008/05/adobe-pixel-bender-in-flash-player-10.html">http://www.kaourantin.net/2008/05/adobe-pixel-bender-in-flash-player-10.html</a> nuevamente entrega directrices sobre cuando recomienda usar pixel bender.</p>
<p>Pixel Bender no corre ningun tipo de aceleración por GPU en Flash Player 10, debido a las limitaciones que lleva el aplicar los filtros a traves del modo GPU lo que haria que en la mayoría de los casos se tuviese que volver al uso de software, aun si se tuviese el hardware adecuado. Además existía la necesidad de tener que llegar a la mayor cantidad de máquinas posibles.</p>
<p>Existen 4 diferentes formas de usar Pixel Bender Kernels en Flash Player, comenzando desde las más obvias a las más interesantes</p>
<ul>
<li>Filtros: Para ser usados como filtros en los DisplayObject</li>
<li>Relleno: Para definir rellenos personalizados de los objetos, como por ejemplo gradientes o rellenos animados.</li>
<li>Difuminados entre capas: Al momento de mezclar dos gráficos, es posible crear un efecto propio.</li>
<li>Se puede utilizar con gráficos de hasta 32 bits, tomando objetos BitMapData, ByteArrays o vectores como fuentes de procesamiento.</li>
</ul>
<p>El uso de Pixel bender en estas 4 modalidades funciona de forma totalmente separada del código principal en ActionScript en flujos asincronos independientes.</p>
<p>Algunas observaciones de las encontradas al momento de hacer la implementación en el Flash Player:</p>
<ul>
<li>El espacio de color RGB de Flash contiene alpha que es lo que toma Pixel Bender como base</li>
<li>Los colores de salida siempre son fijados contra el canal alpha. Lo que no es el caso cuando la salida es un ByteArray o Vector.</li>
<li>El tamaño máximo del buffer de JIT para los kernel es de 32KB, si se llega al limite, flash vuelve al modo interpretado.</li>
<li>Las funciones matemáticas simples funcionan de forma diferente de acuerdo a la plataforma.</li>
<li>JIT no hace un almacenamiento en memoria de forma inteligente.</li>
</ul>
<h2>3. Conclusión</h2>
<p>A pesar de que al momento de lanzar la décima versión del flash player, Adobe metió harta bulla sobre las posibilidades de aceleración por Hardware, hubo algunos detalles omitidos, como la poca cantidad de tarjetas soportadas, lo que hace arriesgado  compilar un swf con esta opción, debido a que de lo contrario la aceleración es realizada por software generando el abrutpo consumo de recursos por parte del procesador.</p>
<p>Como vemos, la acelaración por GPU tiene un futuro promisorio en las próximas versiones del player, pero por ahora no es recomendable su uso si queremos llegar a la mayor cantidad de usuarios.</p>
<hr size="1" /><a href="#_ftnref">[1]</a> http://kb2.adobe.com/cps/405/kb405445.html</p>
<p><a href="#_ftnref">[2]</a> http://labs.adobe.com/technologies/pixelbender/</p>
<p><a href="#_ftnref">[3]</a> http://labs.adobe.com/technologies/pixelbender/releasenotes.html#video</p>
]]></content:encoded>
			<wfw:commentRss>http://zoonoro.cl/blog/aceleracion-por-hardware-en-flash-player-10/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Player para pesquisa.cl</title>
		<link>http://zoonoro.cl/blog/player-pesquisa/</link>
		<comments>http://zoonoro.cl/blog/player-pesquisa/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 15:45:37 +0000</pubDate>
		<dc:creator>Marcelo</dc:creator>
				<category><![CDATA[desarrollos]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://zoonoro.cl/blog/?p=3</guid>
		<description><![CDATA[Nos complacemos en presentar nuestro último desarrollo: el player de video para pesquisa.cl solicitado por nuestro cliente co-op.cl.
Dentro de los requerimientos solicitados se encontraban la necesidad de que pudiese ser embebido en otros sitios, la posibilidad de compartir el enlace, postear el video principal en calidad estandar y HD antecedido por su correspondiente introducción y [...]]]></description>
			<content:encoded><![CDATA[<p>Nos complacemos en presentar nuestro último desarrollo: el player de video para <a href="http://pesquisa.cl" target="_blank">pesquisa.cl</a> solicitado por nuestro cliente <a href="http://co-op.cl" target="_blank">co-op.cl</a>.</p>
<p>Dentro de los requerimientos solicitados se encontraban la necesidad de que pudiese ser embebido en otros sitios, la posibilidad de compartir el enlace, postear el video principal en calidad estandar y HD antecedido por su correspondiente introducción y la presentación del canal.</p>
<p>El player fue montado en wordpress, completamente personalizado, teniendo la capacidad de listar y enlazar las categorías a las cuales pertenece el video.</p>
<p>El siguiente es un ejemplo de como se visualiza al ser embebido en nuestra web.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://pesquisa.cl/wp-content/themes/pesquisa2/fla/player.swf" /><param name="flashvars" value="autostart=NO&amp;videoid=120" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="360" src="http://pesquisa.cl/wp-content/themes/pesquisa2/fla/player.swf" flashvars="autostart=NO&amp;videoid=120" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://zoonoro.cl/blog/player-pesquisa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
