28.11.2012 Views

Procesamiento digital de video en tiempo real y - Maestría en ...

Procesamiento digital de video en tiempo real y - Maestría en ...

Procesamiento digital de video en tiempo real y - Maestría en ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Procesami<strong>en</strong>to</strong> <strong>digital</strong> <strong>de</strong> vi<strong>de</strong>o <strong>en</strong> <strong>tiempo</strong> <strong>real</strong> y “vi<strong>de</strong>o wall” con la PC 41<br />

Hay también un método para <strong>en</strong>tregar mas <strong>de</strong> una muestra a un <strong>tiempo</strong>,<br />

ImemInputPin::ReceiveMultiple. Este trabaja como Receive, pero con un arreglo <strong>de</strong><br />

muestras.<br />

3.8.3 Det<strong>en</strong>er, Pausa, y Ejecución<br />

Los filtros ti<strong>en</strong><strong>en</strong> tres estados: <strong>de</strong>t<strong>en</strong>ido, pausado y ejecutándose. Para muchos<br />

filtros, pausado y ejecutándose son equival<strong>en</strong>tes. Cuando un filtro esta <strong>de</strong>t<strong>en</strong>ido, no se<br />

procesan muestras y se rechaza cualquier muestra <strong>de</strong> filtros upstream.<br />

Cuando un filtro es pausado o esta ejecutándose, este acepta muestras y las procesa.<br />

Si este es un filtro source, g<strong>en</strong>era nuevas muestras y las <strong>en</strong>trega downstream. Los filtros<br />

r<strong>en</strong><strong>de</strong>rer son una excepción. Cuando un filtro r<strong>en</strong><strong>de</strong>rer va <strong>de</strong> <strong>de</strong>t<strong>en</strong>ido a pausado, no se<br />

completa la transición sino hasta que reciba muestras media. En este punto, el filtro<br />

manti<strong>en</strong>e la muestra y se bloquea <strong>en</strong> la llamada a Receive. Los r<strong>en</strong><strong>de</strong>rers <strong>de</strong> vi<strong>de</strong>o dibujan<br />

la muestra como un frame fijo. Los r<strong>en</strong><strong>de</strong>rers <strong>de</strong> audio no pres<strong>en</strong>tan la muestra hasta que<br />

ellos estén ejecutándose. En cualquier caso, el r<strong>en</strong><strong>de</strong>rer no acepta mas muestras hasta que<br />

pase <strong>de</strong> pausado a ejecutándose.<br />

El Manejador <strong>de</strong>l gráfico <strong>de</strong> filtros controla el estado <strong>de</strong>l gráfico <strong>de</strong> filtros como un<br />

conjunto. Las transiciones <strong>de</strong> estados validas son <strong>en</strong>tre <strong>de</strong>t<strong>en</strong>ido y pausado, y <strong>en</strong>tre pausado<br />

y ejecutándose. Transiciones <strong>en</strong>tre <strong>de</strong>t<strong>en</strong>ido y ejecutándose <strong>de</strong>b<strong>en</strong> ser a través <strong>de</strong> pausado<br />

(Si se llama a ImediaControl::Run <strong>en</strong> un grafico <strong>de</strong>t<strong>en</strong>ido, o ImediaControl::Stop <strong>en</strong> un<br />

filtro ejecutándose, el Manejador <strong>de</strong>l gráfico <strong>de</strong> filtros pausa primero el grafico).<br />

Cuando el grafico <strong>de</strong>l filtro va <strong>de</strong> <strong>de</strong>t<strong>en</strong>ido a pausado, ocurre la sigui<strong>en</strong>te secu<strong>en</strong>cia:<br />

El Manejador <strong>de</strong>l gráfico <strong>de</strong> filtros llama a ImediaFilter::Pause <strong>en</strong> cada filtro,<br />

iniciando <strong>de</strong>s<strong>de</strong> el filtro r<strong>en</strong><strong>de</strong>rer y continuando upstream.<br />

Como cada filtro conmuta a pausado, un filtro se <strong>en</strong>cu<strong>en</strong>tra listo para aceptar<br />

muestras <strong>de</strong>s<strong>de</strong> su upstream más cercano. Este pue<strong>de</strong> <strong>en</strong>tregar muestras downstream con<br />

seguridad, <strong>de</strong>bido a que los filtros downstream también están pausados.<br />

El filtro source es el último <strong>en</strong> ser pausado. En este punto, el filtro inicia <strong>en</strong>tregando<br />

muestras. Como las muestras se muev<strong>en</strong> downstream, los filtros intermedios las procesan.<br />

Cuando las primeras muestras alcanzan al r<strong>en</strong><strong>de</strong>rer, el r<strong>en</strong><strong>de</strong>rer completa su estado<br />

<strong>de</strong> transición y se bloquea.<br />

Estos ev<strong>en</strong>tos pue<strong>de</strong>n tomar una cantidad arbitraria <strong>de</strong> <strong>tiempo</strong> para completarse<br />

(usualm<strong>en</strong>te no mucho, pero el retardo podría ser significativo, especialm<strong>en</strong>te si la fu<strong>en</strong>te<br />

requiere <strong>de</strong>scompresión). Al <strong>tiempo</strong> que el gráfico ha terminado <strong>de</strong> pausarse, estará apto<br />

para iniciar la pres<strong>en</strong>tación <strong>de</strong> datos inmediatam<strong>en</strong>te. Una aplicación pue<strong>de</strong> hacer esto<br />

a<strong>de</strong>lantándose <strong>en</strong> <strong>tiempo</strong>, y <strong>en</strong>tonces rápidam<strong>en</strong>te conmutar el grafico a ejecutándose, <strong>en</strong><br />

respuesta a un comando <strong>de</strong>l usuario.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!