it-swarm.com.de

Empfohlenes Kompressionsverhältnis mit H.264?

Note bene: Ich weiß, das ist eine immens komplizierte Frage mit ungefähr einer Million Nuancen, die ich auf eine einzige Zahl reduzieren möchte ...

Ich bin dabei, ein großes Videocodierungsprojekt mit H.264-Codierung durchzuführen. Wir versuchen, mehrere Bitratenprofile zu erstellen, um Streaming über Internetverbindungen, Prozessoren, Geräte usw. zu ermöglichen.

Welche Art von Kompressionsrate sollte ich generell erwarten (wenn ich dabei auf einem vernünftigen Qualitätsniveau bleibe)? 

Eine Videodatei mit 640x360 (16: 9) Pixeln bei 24 Bildern pro Sekunde und 16-Bit-Farbe sollte beispielsweise eine unkomprimierte -Datei von etwa 33 MB/s ergeben.

Mir wurde gesagt, dass 500 KBit/s (oder 62 KB/s) für diese Datei keine unverhältnismäßige Video-Bitrate ist. Das scheint verrückt zu sein - mehr als 530: 1 Kompression? Das ist eine Kompression von 99,8%. Ist meine Mathematik falsch?

Ich suche nur nach einer groben äußeren Anleitung für Qualität, wie "mehr als 500-fache Kompression ist verrückt" oder "weniger als 400-fache Verschwendung von Bandbreite". Ich habe überall nachgesehen und nichts gibt mir die erwartete Kompression ...

33
Nuby

In einem recht interessanten Dokument namens H.264 Primer wird eine einfache Formel als Hinweis zur Berechnung der "idealen" Bitrate der Ausgabedatei angegeben, die auf den Videoeigenschaften basiert:

[Bildbreite] x [Bildhöhe] x [Bildrate] x [Bewegungsrang] x 0,07 = [gewünschte Bitrate]

wobei die Bildbreite und -höhe in Pixeln ausgedrückt wird und der Bewegungsrang eine ganze Zahl zwischen 1 und 4 ist, wobei 1 eine niedrige Bewegung ist, 2 eine mittlere Bewegung ist und 4 eine hohe Bewegung ist (Bewegung ist die Menge an Bilddaten, die sich zwischen ändern Weitere Informationen finden Sie im verknüpften Dokument).

Wenn wir beispielsweise ein 1280x720-Video mit 24 FPS und mittlerer Bewegung aufnehmen (Film mit langsamen Kamerabewegungen, nicht viele Szenenänderungen ...), würde die erwartete ideale Bitrate lauten:

1280 x 720 x 24 x 2 x 0,07 = 3.096.576 bps => ungefähr 3000 kbps

Dies ist ein reiner Hinweis, und meiner Meinung nach ist der Versuch, die ideale Bitrate genau zu finden, der Versuch, einen Fehler zu finden :)

58
SirDarius

Dies kann je nach Inhalt der Quellvideos drastisch variieren. Ich werde das in Kürze erreichen. 

640x360 ist nicht so groß. 512 kbps sind sehr vernünftig und wohl Standard. Vielleicht 768 kbps, wenn Sie wirklich an Qualität interessiert sind.

Wie ist das möglich? Eine vereinfachte Antwort: Es gibt eine Reihe von Techniken und Fakten zur Videokomprimierung , die dies ermöglichen: 

  1. Nicht jede Video-Frame - Datenstruktur in einem gemeinsamen H.264 (oder anderen CODECs für diese Angelegenheit) ist ein Vollbild. Stattdessen gibt es zwei Typen, die umgangssprachlich als .__ bezeichnet werden.
    1. Key Frames: Eine vollständige Wiedergabe des gesamten Videobildes
    2. Intra-Frames: Eine Beschreibung der Änderungen am vorherigen Frame. Diese Frames machen im Allgemeinen die überwiegende Mehrheit (80% -99%) von Frames in einem Video aus.
  2. H.264 ist "verlustbehaftet", wie auch viele andere CODECs. Sie reproduzieren kein pixelgenaues Duplikat des ursprünglichen Quellvideos. Beispiel: Verlustreiche Blöcke: Wenn alle Pixel bis zu einem Pixel in einem Bereich die gleiche Farbe haben, "verliert" der CODEC das eine Pixel. Anstatt also Informationen zu jedem einzelnen Pixel in einem Frame speichern zu müssen, sagt der CODEC einfach "x1, y1 bis x2, y2 sind alle Farben x". Sehr effizient. 

Es ist alles viel komplexer als das, mit Millionen verschiedener Ansätze, Techniken und Algorithmen innerhalb spezifischer CODECs und zwischen CODECs, um dies zu ermöglichen.

Zurück zu dem Kommentar "Dies wird sich je nach Inhalt der Quellvideos drastisch unterscheiden": Der Kompressionsgrad, den Sie sehen, und die resultierende Qualität hängen wesentlich von folgenden Faktoren ab:

  • den Inhalt des Videos
  • ihre Toleranz für Artefakte (Blöcke, Farbverlust, Definitionsverlust)
  • die von Ihnen eingestellten CODEC-Parameter und wie Sie sie einstellen

Beispiel: Ein Video von einer Tür in einem Raum (z. B. einer Überwachungskamera) mit einem Schlüsselbild alle zehn Minuten wird eine erstaunlich hohe Kompressionsrate haben dieses Szenario bei 15.000: 1 Komprimierung.

Da Sie mit einem großen Videocodierungsprojekt beginnen, würde ich ein paar Dinge empfehlen, um die Kompressionsrate zu bestimmen:

  • nehmen Sie eine Probe der Quellvideos, die Sie verschlüsseln möchten. 100 oder mehr sind statistisch relevant.
  • kodieren Sie sie mit verschiedenen Bitraten und verschiedenen Parametern, um zu bestimmen, welche resultierenden Eigenschaften Ihren Anforderungen entsprechen

Das Ändern der Parameter des Encoders zum Verkleinern der Videos kann auch andere Auswirkungen haben:

  • höhere CPU-Anforderungen für die Wiedergabe
  • spieler CODEC Erwartungen. Nicht alle H.264-kodierten Videos können von allen Playern wiedergegeben werden
  • längere Kodierungszeiten
  • verschiedene Qualitätsminderung

Es ist ein großes, kompliziertes Thema. Viel Glück. Mein erfahrener "Daumen zum Wind"-Test sagt, dass Sie mit 512-768 kbps für Ihr Projekt mehr als zufrieden sind.

20
Stu Thompson
 Komprimierungsverhältnis-Daumenregeln 
 Komprimierungsraten zur Erhaltung einer hervorragenden Qualität: 
– 10: 1 für allgemeine Bilder mit JPEG 
– 30: 1 für allgemeines Video mit H.263 und MPEG-2 
– 50: 1 für allgemeines Video mit H.264/MPEG-4 AVC 

aus http://www.kanecomputing.co.uk/pdfs/compression_ratio_rules_of_thumb.pdf

8
Const

Vergessen Sie nicht die normale Wiedergabe. MPEG verwendet nur YUV 4: 2: 0. Bei einer Farbtiefe von 8 Bit ist jedes Pixel nur 16 Bit (oder 64 Bit mit jeweils 4 Pixeln) wert. Bitte verwenden Sie nur eine RAW-Datei von der Kamera mit einer Tiefe von 16 Bit, und das muss Millionen USD wert sein! Mittelhoher Film DVR kann nur 12-14 Bit liefern !! H.264 ist für das Endprodukt ausgelegt.

In 640 x 360/24p YUV4: 2: 0 wird die Bitrate Folgendes bedeuten:

  640x360x24x(8+4+4)/8 = 10.5MB/s

Bei 500 Kbit/s beträgt die Komprimierung nur 172: 1. Es ist normal

Zur Erklärung von YUV4: 2: 0 lesen Sie:
http://en.wikipedia.org/wiki/Chroma_subsampling

2
Wilson Luniz

Ich teile einfach mein Wissen über die Kodierung mit der H264-Umgebung

Das Verhältnis von 450-512 kbit/s ist am besten, wenn Sie H264 mit High 5.0 oder High 7.0 verwenden. Nun, ich kann Ihnen vorschlagen, ein gutes Verhältnis im Gleichgewicht mit der besten Qualität zu erzielen, der Schlüssel, auf den es wirklich ankommt es ist mit der Auflösung Größe zu spielen . Ergebnis der Videoauflösung = 3/4 * Native/Raw-Videoauflösung

H264 neigt dazu, Details zu verlieren, wenn Sie das Bild nicht in etwas kleinerer Auflösung komprimieren.

0
laruffii