Sono totalmente capire circa le dimensioni del formato NV12, come descritto nella domandaformati di memorizzazione delle immagini NV12 in memoria
Ora sto leggendo da due fonti circa la conservazione del piano UV in questo formato: uno è https://msdn.microsoft.com/en-us/library/windows/desktop/dd206750(v=vs.85).aspx
NV12
Tutti i campioni Y vengono ordinate in memoria, come un array di uns valori di char igned con un numero pari di linee. Il piano Y viene seguito immediatamente da una matrice di valori char non firmati che contiene campioni U (Cb) e V (Cr) impacchettati. Quando l'array U-V combinato viene indirizzato come una matrice di valori WORD little-endian, gli LSB contengono i valori U e gli MSB contengono i valori V. NV12 è il formato di pixel 4: 2: 0 preferito per DirectX VA. Si prevede che sia un requisito a medio termine per gli acceleratori DirectX VA che supportano il video 4: 2: 0. L'illustrazione seguente mostra il piano Y e l'array che contiene campioni U e V compressi.
Quello che ho capito è: nel piano UV ogni U e V sono memorizzati nel singolo byte.
Quando ho letto da wikipedia su questi: https://wiki.videolan.org/YUV#NV12
Si dice:
NV12
relativi a I420, NV12 ha una luma aereo "luminanza" Y e un piano con U e valori V interlacciati. Nella NV12, i piani cromia (blu e rosso) sono sottocampionati in entrambe le dimensioni orizzontale e verticale di un fattore di 2. Per un gruppo di pixel 2x2, sono disponibili 4 campioni Y e 1 campione U e 1 V. Può essere utile pensare a NV12 come I420 con gli aerei U e V interlacciati. Ecco una rappresentazione grafica di NV12. Ogni lettera rappresenta un bit: Per 1 NV12 pixel: YYYYYYYY UVUV Per un 2-pixel NV12 telaio: YYYYYYYYYYYYYYYY UVUVUVUV Per un 50 pixel telaio NV12: Y * 8 * 50 (UV) * 2 * 50 Per un n -pixel NV12 frame: Y * 8 * n (UV) * 2 * n
Quello che capisco qui è: ogni U e V sono interlacciati bit per bit in ogni byte. Quindi ogni byte del piano UV conterrà 4U bit e 4V bit intercalati.
Qualcuno può chiarire il mio dubbio?
Non c'è interlacciamento di bit, (solo) ** byte ** interleaving. – Rotem