Bild-Formate NV12 Speicher-in-Speicher

Bin ich völlig verstehen, über die Größe der NV12 format wie beschrieben in Frage

NV12 format und UV-Flugzeug

Lese ich jetzt aus zwei Quellen über die Lagerung von UV-Ebene in diesem format:
man ist https://msdn.microsoft.com/en-us/library/windows/desktop/dd206750(v=vs. 85).aspx

NV12

Alle von der Y-Proben werden zunächst im Speicher als ein array von unsigned char-Werte mit einer geraden Anzahl von Linien. Die Y-Ebene ist, unmittelbar gefolgt durch ein array von unsigned char-Werte enthält, verpackt U (Cb) und V (Cr) - Proben. Wenn die kombinierte U-V-array angesprochen wird als ein array von little-endian WORD-Werte, die LSBs enthalten, die U-Werte, und die MSBs enthalten die V-Werte. NV12 der am günstigsten gelegene 4:2:0 pixel-format für DirectX VA. Es wird erwartet, dass ein mittelfristiger Voraussetzung für DirectX VA-Beschleuniger unterstützt 4:2:0 video. Die folgende Abbildung zeigt die Y-Ebene, und das array enthält, verpackt U-und V-Proben.

Was ich verstehe ist: in der UV-Ebene jedes U und V werden gespeichert in single-byte -.

Wenn ich lese aus wikipedia dazu:
https://wiki.videolan.org/YUV#NV12

Er sagt:

NV12

Bezug auf I420, NV12 hat eine Luminanz "Helligkeit" Y-Ebene und einer Ebene mit U-und V-Werte interleaved.
In NV12, chroma-Ebenen (blau und rot) sind in einer Unterstichprobe (subsampled) sowohl die horizontalen und vertikalen Dimensionen um einen Faktor von 2.
Für eine 2x2-Gruppe von Pixeln ein, haben Sie 4 Y-Proben und 1 U und 1 V-Probe.
Es kann hilfreich sein, sich NV12 als I420 mit der U-und V-Ebenen verschachtelt.
Hier ist eine grafische Darstellung der NV12. Jeder Buchstabe steht für ein bit:
Für 1 NV12 pixel: YYYYYYYY UVUV
Für einen 2-pixel-NV12-Rahmen: YYYYYYYYYYYYYYYY UVUVUVUV
Für ein 50-pixel-NV12 Rahmen: Y*8*50 (UV)*2*50
Für eine n-pixel-NV12 Rahmen: Y*8*n (UV)*2*n

Dem, was ich verstehe ist hier : jedes U und V sind interleaved bit by bit in jedem byte. Also jedem einzelnen byte der UV-Ebene enthalten 4U bits und 4V bits interleaved.

Kann jemand klären meine Zweifel?

  • Es gibt keine bit-interleaving, (nur) bytes interleaving.
InformationsquelleAutor Manish Kumar | 2015-07-15
Schreibe einen Kommentar