Definitionen des ffmpeg-Pixelformats

9

ffmpeg -pix_fmtslistet viele Pixelformate auf. In meinem ffmpeg gibt es 66 verschiedene Pixelformate, die mit yuv beginnen . Einige von ihnen sind mir bekannt (z. B. yuv422p), die meisten jedoch nicht (z. B. yuva422p16be).

Wo sind diese Pixelformate definiert?

Doug Richardson
quelle
3
Die meisten beschreiben sich selbst. yuva422p16be YUV sind Luma- und Chroma-Flugzeuge. a ist der Alpha-Kanal. 422 ist die Beschreibung der Plangröße, p bedeutet Planer, 16be bedeutet 16 Bit pro Pixel Big-Endian-Format.
SlimSCSI
Danke @SlimSCSI. Wissen Sie, wofür das j in yuvj440p steht?
Doug Richardson
5
YUV420P verwendet den Bereich 16 bis 239, um Luminanz- und Chroma-Werte zu beschreiben, sodass Werte von 0 bis 16 auf denselben Ausgangspegel abgebildet werden wie die Werte 239 bis 255. YUVJ420P verwendet den gesamten Bereich von 0 bis 255. Ich bin mir nicht sicher, warum es J ist.
Stib
4
In libavutil/pixfmt.h: AV_PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range.
Llogan

Antworten:

7

Wenn deine Frage war

Wo sind diese Pixelformate definiert?

Gehen Sie zu http://ffmpeg.org/download.html und laden Sie die Quelle von ffmpeg herunter. Dann packen Sie es aus

tar -xavf FILENAME.tar.*

und steigen Sie in den Ordner im aufgerufenen Quellcode ab libavutil

cd ffmpeg-*/libavutil/

und öffnen Sie die Datei, pixfmt.hin der Sie eine Beschreibung aller Pixelformate finden. Ein paar Beispielzeilen

AV_PIX_FMT_YUV420P,   ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)          
AV_PIX_FMT_YUYV422,   ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
AV_PIX_FMT_RGB24,     ///< packed RGB 8:8:8, 24bpp, RGBRGB...
AV_PIX_FMT_BGR24,     ///< packed RGB 8:8:8, 24bpp, BGRBGR...
AV_PIX_FMT_YUV422P,   ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)

Zusätzlich können Sie https://en.wikipedia.org/wiki/YUV und die zitierten Quellen und externen Links lesen .

erik
quelle
7
Oder besuchen Sie
Gyan