7 Stimmen

Wofür wird die lib Swscale von ffmpeg-Programmierern verwendet?

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?

23voto

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.

3voto

rogerdpack Punkte 55995

Swscale kann auch ein hochwertiges Resampling durchführen, z. B. mit dem Lanczos-Algorithmus. Im Grunde konvertiert es also zwischen Farbräumen, zwischen der "Anzahl der Bits" und führt auch eine Größenänderung durch. Es hat auch Optionen, um MMX usw. zu verwenden, kann also schnell sein.

CodeJaeger.com

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.

Powered by:

X