2013-10-30 4 views

risposta

14

YUV 4: 2: 0 planare assomiglia a questo:

---------------------- 
|  Y  | Cb|Cr | 
---------------------- 

dove:

Y = width x height pixels (bytes) 
Cb = Y/4 pixels (bytes) 
Cr = Y/4 pixels (bytes) 

Total num pixels (bytes) = width * height * 3/2 

Così pixel sono disposti in 4: 2: 0 sub-campionamento:

420

Come si può vedere, ogni valore di crominanza è condiviso tra 4 pixel della luminanza.

Fondamentalmente, l'unica cosa che si può fare è vedere quali dimensioni del frame dividono uniformemente la dimensione totale del file .

A titolo di esempio, si consideri il classico Forman-clip, che è possibile scaricare dal http://trace.eas.asu.edu/yuv/foreman/foreman_cif.7z

Le dimensioni di questo clip è 45619200 byte. Come si ottengono le dimensioni e il numero di fotogrammi da quello? Prova risoluzioni diverse!

è SDTV?

In [7]: 45619200/float(720*576*3/2) 
Out[7]: 73.33333333333333 

no!

è QCIF?

In [8]: 45619200/float(176*144*3/2) 
Out[8]: 1200.0 

potrebbe essere ...

è CIF?

In [9]: 45619200/float(352*288*3/2) 
Out[9]: 300.0 

potrebbe essere ...

solo modo per scoprirlo sta cercando di visualizzarlo.

Proviamo QCIF

wring

che non guarda a destra. Proviamo CIF

right

Bingo!

+0

Sulla base della sua nota: ** pixel totali num (byte) = width * height * 3/2 ** è possibile calcolare ** widthHeight = framesize * 2/3; ** Quindi è possibile controllare le dimensioni comuni per una corrispondenza. Oppure scegli le proporzioni comuni di 4: 3. ** larghezza = larghezza Altezza/3; altezza = larghezza Altezza/4; controllo = larghezza * altezza; ASSERT (controlla == widthHeight); ** Ci sono, ovviamente, altri aspect ratio da controllare. Per esempio per l'alta definizione 16: 9. –

+0

Hai assolutamente ragione. La mia idea con questa risposta era solo quella di fornire alcune informazioni di base per avviare l'OP. Puoi passare una vita a studiare tutti gli aspetti dei dati YCbCr :-) –

+1

re: lifetime - Yep. Questo OP è circa 4: 2: 0, cambia tutto se stai parlando di 4: 2: 2 o di qualsiasi altra variante di YCbCr.E la conversione in altri formati di colore (RGB) cambia anche se stai parlando in co-siting. La tua risposta è un ottimo primer per YCbCr 4: 2: 0. Coloro che hanno bisogno dei dettagli sanguinolenti del resto stanno leggendo dei grossi tomi. ;-D –

Problemi correlati