Neo85 ha scritto:
ma è meglio yv12 o yuy2? mi sa però che con ffdshow a parte l'uscita ( che può essere impostata anche a rgb32)l'ingresso sia comunque trasformato in yv12 per resize o sbaglio? quindi dovrebbe essere meglio madare direttamente sia da nvidia che da dscaler un segnale yv12....o no?
A puro titolo di informazione vi posto quanto da me appreso sull'argomento.
Il campionamento dei colori.
Generalmente, nel mondo informatico, il colore di un pixel è dato dalla combinazione di 3 colori, il Rosso, Il Verde ed il Blu. La notifica usata è quindi la classica RGB.
Nel mondo video (DVD/televisione) invece viene usato lo standard YUV dove i valori usati sono sempre 3 ma fanno riferimento alla crominanza e alla luminosità.
Y (luminanza) descrive la luminosità del pixel
U e V (crominanza) definiscono invece il colore
Per definire quindi un colore di un pixel abbiamo bisogno di 3 valori (quindi 3 bytes) sia che si tratti di RGB che di YUV.
Tutto cambia però se vogliamo descrivere dei gruppi di pixel (ad esempio dei blocchi 2x2). Nell'MPEG 1 e 2 viene utilizzato il formato YUV 4:2:0 (detto anche YUV12) che per descrivere i 4 pixel di un blocco 2x2 usa solamente 6 bytes invece dei 12 normalmente occorrerebero (4 pixel x 3 byte = 12 byte).
I 4 pixel in questione vengono descritti ciascuno con il suo valore di luminosità (Y) ma tutti con gli stessi valore di crominanza (U e V). In pratica viene sfruttato il fatto che l'occhio umano è più ricettivo verso la luminosità che verso il colore per cui in un fotogramma di una scena anche modificando sensibilmente i colori non si ha nessuna perdita di qualità apparente.
Il formato YUV 4:2:0:
Con questo tipo di gestione del colore, un singolo fotogramma 720x576 occuperà 622.080 byte, la metà rispetto ad una normale codifica RGB o YUV. La codifica YUV 4:2:0 viene normalmente definita YUV12 visto che un singolo pixel viene in pratica descritto da 12 bits (6 Bytes / 4 Pixels = 1.5 Bytes = 12 bits).
Una descrizione del processo è quì:
http://www.comefunziona.net/articolo.asp?Ogg=Mpeg&Pro=0
Quindi un DVD nasce con compressione colore YUV12,......ma leggete quì:
YUV 4:2:0
Questa rappresentazione, in ambito Windows Direct Draw va sotto il nome di YV12, ed è il formato utilizzato per l'mpeg 1,2 e 4. Tale modalità è supportata in Xmpeg e vi consiglio vivamente di utilizzarla.
In questo caso, per descrivere un blocco di 4 pixel, si utilizzano 6 byte. Come sempre 4 per la luminosità (uno per pixel), mentre gli altri due vengono utilizzati uno per ciascun componente di crominanza (U = (U1+U2+U3+U4)/4.
Ulteriori info:
Modalità RGB, YUV2 e YV12, che cosa sono? e quale usare?
moviemaniac,
moviemaniac@altervista.org,
http://www.moviemaniac.altervista.org.
Da quanto letto, IMHO, la conversione da YU12 ===>YV12 è puramente nominale, in quanto passaggio dal mondo video DVD /YU12/mpeg 2/4 al mondo Windows/YV12.
Per quanto attiene alla ricodifica YV12 ===>RGB32, in teoria inutile in quanto priva di effetti sulla percezione effettiva dei colori, ribadisco che nel mio sistema e ai miei occhi la profondità dell'immagine risulta di molto superiore alla modalità YV12, merito forse del profilo colore ADOBE ???
Il processo assorbe un 5% di utilizzo CPU/ Hyper T. attivato - lettura task manager, quindi un 2/3 % reale.