Wofür wird die lib Swscale von ffmpeg-Programmierern verwendet?
- Welche Vorteile ergeben sich daraus für die AV-Codierung/Decodierung?
- Welchen Standpunkt vertritt sie gegenüber av* libs?
Wofür wird die lib Swscale von ffmpeg-Programmierern verwendet?
Swscale wird hauptsächlich für Player verwendet, nicht für die Codierung/Decodierung. Es ist notwendig, wenn Sie das Video mit einer anderen Pixelgröße/einem anderen Seitenverhältnis anzeigen möchten, als es kodiert wurde, und Sie keine Hardware-Videoskalierungsunterstützung haben. Swscale führt auch die Farbraumkonvertierung zwischen verschiedenen RGB- und YUV-Farbformaten sowie die Konvertierung zwischen gepackten (alle Kanäle in einem einzigen Puffer) und planaren (jeder Kanal hat seinen eigenen Puffer) Formaten durch. Alle diese Routinen sind hochgradig optimiert; soweit ich weiß, gibt es derzeit keine schnellere Software-Implementierung für eine von ihnen, zumindest nicht auf x86 und x86_64.
Eine Skalierung kann auch für die Codierung von Videos erforderlich sein, wenn das Quellvideo nicht bereits in dem vom Encoder benötigten Format vorliegt. Wenn Ihr Quellvideo z. B. RGB ist, müssen Sie es wahrscheinlich in das entsprechende YUV-Planarformat konvertieren, da die meisten Codecs mit YUV arbeiten. Dies erfordert sowohl eine Farbraumkonvertierung (eine affine Transformation der R,G,B-Vektoren) als auch eine tatsächliche Skalierung (Resampling), da die meisten YUV-Formate U- und V-Ebenen (Farbebenen) mit halber Auflösung im Vergleich zur Y-Ebene (Luma, d. h. Intensitätsdaten) verwenden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.