{"id":54312,"date":"2019-12-23T00:00:00","date_gmt":"2019-12-22T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/kak-rabotaet-videokodek-chast-1-osnovy"},"modified":"2020-02-18T14:02:18","modified_gmt":"2020-02-18T11:02:18","slug":"kak-rabotaet-videokodek-chast-1-osnovy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/kak-rabotaet-videokodek-chast-1-osnovy","title":{"rendered":"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>Zweiter Teil:<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/edison\/blog\/480430\/\"> Funktionsprinzipien des Video-Codecs<\/a><\/noindex><\/h3>\n<p>Jedes Raster- <b>Bild<\/b> kann in Form <b>einer zweidimensionalen Matrix<\/b>dargestellt werden. Wenn es um Farben geht, kann die Idee weiterentwickelt werden, indem man das Bild in Form <b>einer dreidimensionalen Matrix<\/b>betrachtet, in der zus\u00e4tzliche Dimensionen zur Speicherung von Daten f\u00fcr jede der Farben verwendet werden.<\/p>\n<p>Wenn wir die resultierende Farbe als Kombination der sogenannten Prim\u00e4rfarben (Rot, Gr\u00fcn und Blau) betrachten, definieren wir in unserer dreidimensionalen Matrix drei Ebenen: die erste f\u00fcr die rote Farbe, die zweite f\u00fcr die gr\u00fcne und die letzte f\u00fcr die blaue.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/edison\/blog\/481418\/\"><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/ce37dd683a4c3ed434dae1d488646716.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nWir nennen jeden Punkt in dieser Matrix Pixel (Bildelement). Jeder Pixel enth\u00e4lt Informationen \u00fcber die Intensit\u00e4t (in der Regel in Form eines numerischen Wertes) jeder Farbe. Zum Beispiel, <b>ein roter Pixel<\/b> bedeutet, dass er 0 gr\u00fcnes, 0 blaues und maximal rotes Licht enth\u00e4lt. <b>Ein Pixel in Rosa<\/b> kann durch eine Kombination aus drei Farben hergestellt werden. Unter Verwendung eines Zahlenbereichs von 0 bis 255 wird ein rosa Pixel definiert als <b>Rot = 255<\/b>, <b>Gr\u00fcn = 192<\/b> und <b>Blau = 203<\/b>.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.edsd.ru\/\" title=\"EDISON Software - Web-Entwicklung\"><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/e5063b9a32248767cb0702e7aa2e7f9e.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br clear=\"right\"><br \/>\nDer Artikel wurde mit Unterst\u00fctzung von EDISON ver\u00f6ffentlicht.<\/p>\n<p>Wir entwickeln <noindex><a rel=\"nofollow\" href=\"https:\/\/www.edsd.ru\/ru\/portfolio\/tehnologiya\/video\">Anwendungen f\u00fcr Video\u00fcberwachung, Streaming-Video<\/a><\/noindex>, sowie besch\u00e4ftigen wir uns mit <noindex><a rel=\"nofollow\" href=\"https:\/\/www.edsd.ru\/videozapis-v-bolnichnoj-operacionnoj-s-vozmozhnostyu-obsuzhdeniya-na-forume\">Videoaufzeichnung im Operationssaal<\/a><\/noindex>.<\/p><\/blockquote>\n<h3>Alternativen zur Kodierung von Farbbildern<\/h3>\n<p>\nEs gibt viele andere Modelle zur Darstellung der Farben, aus denen das Bild besteht. Zum Beispiel kann eine indizierte Palette verwendet werden, bei der nur ein Byte zur Darstellung jedes Pixels ben\u00f6tigt wird, anstelle von drei, die bei der Verwendung des RGB-Modells erforderlich sind. In einem solchen Modell kann eine 2D-Matrix anstelle einer 3D-Matrix zur Darstellung jeder Farbe verwendet werden. Dies spart Speicher, bietet jedoch eine geringere Farbpalette.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/573a39c53527b4ec0403f019becf2d22.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>RGB<\/h2>\n<p>Zum Beispiel, sehen Sie sich das Bild unten an. Das erste Gesicht ist vollst\u00e4ndig gef\u00e4rbt. Die anderen sind die roten, gr\u00fcnen und blauen Ebenen (die Intensit\u00e4t der entsprechenden Farben wird in Graustufen angezeigt).<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/cf1f802d4381e062005490f5f9f26911.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir sehen, dass die Rott\u00f6ne im Original an den gleichen Stellen vorkommen, an denen die hellsten Teile des zweiten Gesichts sichtbar sind. W\u00e4hrend der Beitrag der blauen Farbe haupts\u00e4chlich nur in den Augen von Mario (letztes Gesicht) und in den Elementen seiner Kleidung sichtbar ist. Achten Sie darauf, wo alle drei Farbfl\u00e4chen den geringsten Einfluss haben (die dunkelsten Teile der Bilder) \u2013 das sind die Schnurrhaare von Mario.<\/p>\n<p>F\u00fcr die Speicherung der Intensit\u00e4t jeder Farbe ist eine bestimmte Anzahl von Bits erforderlich \u2013 dieser Betrag wird genannt <b>Farbtiefe<\/b>. Angenommen, es werden 8 Bits (basierend auf dem Wert von 0 bis 255) f\u00fcr eine Farbfl\u00e4che verwendet. Dann haben wir eine Farbtiefe von 24 Bit (8 Bit * 3 Fl\u00e4chen R\/G\/B).<\/p>\n<p>Ein weiteres Merkmal eines Bildes ist <b>die Aufl\u00f6sung<\/b>, die die Menge an Pixeln in einer Dimension darstellt. Oft wird es als <b>Breite \u00d7 H\u00f6he<\/b>angegeben, wie unten im Beispielbild 4 mal 4.<br \/>\n<img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/51a4d948e6d44e4058e346fdbaf9d6c2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEin weiteres Merkmal, mit dem wir bei der Arbeit mit Bildern\/Videos zu tun haben, ist <b>das Seitenverh\u00e4ltnis<\/b>, das die \u00fcbliche proportionale Beziehung zwischen der Breite und der H\u00f6he eines Bildes oder Pixels beschreibt.<\/p>\n<p>Wenn gesagt wird, dass ein Film oder Bild die Gr\u00f6\u00dfe 16 zu 9 hat, bezieht man sich normalerweise auf <b>das Seitenverh\u00e4ltnis des Displays<\/b> (<b>DAR<\/b> \u2013 von <i>Display-Seitenverh\u00e4ltnis<\/i>). Manchmal k\u00f6nnen jedoch unterschiedliche Formen einzelner Pixel auftreten \u2013 in diesem Fall sprechen wir von <b>dem Pixelverh\u00e4ltnis<\/b> (<b>PAR<\/b> \u2013 von <i>Pixel-Seitenverh\u00e4ltnis<\/i>).<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/1158c6e98247a1a1084440969f9400c6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/a610f0f77bdb245c05799d3de4147302.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>F\u00fcr die Hausfrau zur Kenntnisnahme: <b>DVD<\/b> entspricht <b>DAR 4 zu 3<\/b><\/p>\n<p>Obwohl die tats\u00e4chliche Aufl\u00f6sung von DVD 704\u00d7480 betr\u00e4gt, wird trotzdem das Seitenverh\u00e4ltnis 4:3 beibehalten, da der Pixel-Aspekt-Verh\u00e4ltnis-Wert 10:11 betr\u00e4gt (704\u00d710 \/ 480\u00d711).<\/p><\/blockquote>\n<p>\nUnd schlie\u00dflich k\u00f6nnen wir <b>das Video<\/b> als eine Sequenz von <b>n<\/b> Bildern \u00fcber einen Zeitraum <b>Zeit<\/b>definieren, das als zus\u00e4tzliche Dimension betrachtet werden kann. Und <b>n<\/b> das ist dann die Bildfrequenz oder die Anzahl der Bilder pro Sekunde (<b>FPS<\/b> \u2013 von <i>Frames pro Sekunde<\/i>).<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/f940932bbd66aa361c7966f8b44ed431.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie Anzahl der Bits pro Sekunde, die zur Anzeige von Video erforderlich sind, ist <b>die Bitrate<\/b> \u2014 <b>Bitrate = Breite * H\u00f6he * Farbtiefe * Bilder pro Sekunde<\/b>.<\/p>\n<blockquote><p>Zum Beispiel ben\u00f6tigt ein Video mit 30 Bildern pro Sekunde, 24 Bits pro Pixel und einer Aufl\u00f6sung von 480\u00d7240 82.944.000 Bits pro Sekunde oder 82,944 Mbit\/s (30x480x240x24) \u2013 aber nur, wenn keine Komprimierungsmethoden verwendet werden.<\/p><\/blockquote>\n<p>\nZum Beispiel ben\u00f6tigt ein Video mit 30 Bildern pro Sekunde, 24 Bit pro Pixel und einer Aufl\u00f6sung von 480\u00d7240 82.944.000 Bit pro Sekunde oder 82.944 Mbit\/s (30x480x240x24) \u2013 es sei denn, es werden Compression-Methoden verwendet.<\/p>\n<p>fast konstant ist <i>, wird sie als<\/i>konstante Bitrate <b>CBR<\/b> (<b>konstante Bitrate<\/b> \u2013 von <i>). Aber sie kann auch variieren, in diesem Fall nennt man sie<\/i>variable Bitrate <b>variabler \u00dcbertragungsrate<\/b> (<b>VBR<\/b> \u2013 von <i>variable Bitrate<\/i>).<\/p>\n<p>Dieses Diagramm zeigt ein begrenztes VBR, wenn nicht zu viele Bits bei einem vollst\u00e4ndig dunklen Bild verbraucht werden.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/f307dde8da9ef1e017646ebcad0c4062.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUrspr\u00fcnglich entwickelten Ingenieure eine Methode, um die wahrgenommene Bildfrequenz eines Videodisplays zu verdoppeln, ohne zus\u00e4tzliche Bandbreite zu verwenden. Diese Methode ist bekannt als <b>interlaced video<\/b>; im Wesentlichen sendet sie die H\u00e4lfte des Bildschirms im ersten \"Frame\" und die andere H\u00e4lfte im n\u00e4chsten \"Frame\".<\/p>\n<p>Derzeit erfolgt die Visualisierung von Szenen haupts\u00e4chlich unter Verwendung von <b>Progressive Scan-Technologie<\/b>. Dies ist eine Methode zur Anzeige, Speicherung oder \u00dcbertragung bewegter Bilder, bei der alle Linien jedes Frames nacheinander gezeichnet werden.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/434afd828d803ec1e4c87a3827c07dde.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNun, wir wissen jetzt, wie ein Bild in digitaler Form dargestellt wird, wie seine Farben strukturiert sind, wie viele Bits pro Sekunde ben\u00f6tigt werden, um Video anzuzeigen, je nach konstanter (CBR) oder variabler (VBR) \u00dcbertragungsrate. Wir haben das vorgegebene Aufl\u00f6sungsformat unter Verwendung einer bestimmten Bildwiederholfrequenz gelernt und uns mit vielen anderen Begriffen wie interlaced video, PAR und einigen anderen vertraut gemacht.<\/p>\n<h2>Entfernung von Redundanz<\/h2>\n<p>\nEs ist bekannt, dass unver\u00e4ndertes Video nicht praktikabel ist. Ein einst\u00fcndiges Video mit 720p Aufl\u00f6sung und 30 Frames pro Sekunde w\u00fcrde 278 GB ben\u00f6tigen. Dies ergibt sich aus der Multiplikation von 1280 x 720 x 24 x 30 x 3600 (Breite, H\u00f6he, Bits pro Pixel, FPS und Zeit in Sekunden).<\/p>\n<p>Verwendung <b>verlustfreien Kompressionsalgorithmen<\/b>, wie DEFLATE (verwendet in PKZIP, Gzip und PNG), wird nicht zu einer signifikanten Reduzierung der ben\u00f6tigten Bandbreite f\u00fchren. Es m\u00fcssen andere Methoden zur Videokompression gefunden werden.<\/p>\n<p>Dazu k\u00f6nnen die Eigenschaften unseres Sehens genutzt werden. Wir unterscheiden Helligkeit besser als Farben. Sie k\u00f6nnen sich selbst davon \u00fcberzeugen, indem Sie dieses Bild betrachten.<\/p>\n<h2>Farbe, Helligkeit und unsere Augen<\/h2>\n<p>\nUnsere Augen sind empfindlicher gegen\u00fcber Helligkeit als gegen\u00fcber Farbe. Sie k\u00f6nnen dies selbst feststellen, indem Sie auf die linke Bildh\u00e4lfte schauen.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/bf50b7dfd54ebbdb66556bbf5e304090.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Wenn Sie nicht sehen, dass in der linken H\u00e4lfte des Bildes die Farben der Quadrate sind <b>A<\/b> und <b>B<\/b> In der Tat sind sie gleich, und das ist normal. Unser Gehirn lenkt unsere Aufmerksamkeit mehr auf Licht-Schatten als auf Farbe. Auf der rechten Seite zwischen den markierten Quadraten gibt es eine Verbindung derselben Farbe - deshalb erkennen wir (d.h. unser Gehirn) leicht, dass es sich dort tats\u00e4chlich um dieselbe Farbe handelt.<\/p>\n<blockquote><p>Lassen Sie uns (vereinfacht) untersuchen, wie unsere Augen funktionieren. Das Auge ist ein komplexes Organ, bestehend aus vielen Teilen. Doch am meisten interessieren uns die Zapfen und St\u00e4bchen. Das Auge enth\u00e4lt etwa 120 Millionen St\u00e4bchen und 6 Millionen Zapfen.<\/p>\n<p>Betrachten wir die Wahrnehmung von Farbe und Helligkeit als separate Funktionen bestimmter Teile des Auges (in Wirklichkeit ist es etwas komplizierter, aber wir werden es vereinfachen). Die St\u00e4bchen sind haupts\u00e4chlich f\u00fcr die Helligkeit verantwortlich, w\u00e4hrend die Zapfen f\u00fcr die Farbe verantwortlich sind. Die Zapfen unterteilen sich in drei Typen, je nach dem enthaltenen Pigment: S-Zapfen (blau), M-Zapfen (gr\u00fcn) und L-Zapfen (rot).<\/p>\n<p>Da wir deutlich mehr St\u00e4bchen (Helligkeit) als Zapfen (Farbe) haben, l\u00e4sst sich schlussfolgern, dass wir besser in der Lage sind, \u00dcberg\u00e4nge zwischen Dunkelheit und Licht zu unterscheiden als Farben.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/d344365d45e43b36635ce29baa1132b4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Funktionen der Kontrastempfindlichkeit<\/h2>\n<p>\nForscher der experimentellen Psychologie und vieler anderer Bereiche haben viele Theorien zur menschlichen Wahrnehmung entwickelt. Eine davon nennt sich <b>Funktionen der Kontrastempfindlichkeit<\/b>. Sie sind mit r\u00e4umlichem und zeitlichem Licht verbunden. Kurz gesagt, es geht darum, wie viele \u00c4nderungen erforderlich sind, bevor der Beobachter sie bemerkt. Beachten Sie, dass das Wort \u201eFunktion\u201c im Plural steht. Dies liegt daran, dass wir die Funktionen der Kontrastempfindlichkeit nicht nur f\u00fcr Schwarzwei\u00dfbilder, sondern auch f\u00fcr Farbbilder messen k\u00f6nnen. Die Ergebnisse dieser Experimente zeigen, dass unsere Augen in den meisten F\u00e4llen empfindlicher f\u00fcr Helligkeit als f\u00fcr Farbe sind.<\/p><\/blockquote>\n<p>Da bekannt ist, dass wir empfindlicher f\u00fcr die Helligkeit eines Bildes sind, kann man versuchen, diesen Fakt zu nutzen.<\/p>\n<h2>Farbraummodell<\/h2>\n<p>\nWir haben ein bisschen verstanden, wie man mit farbigen Bildern unter Verwendung des RGB-Schemas arbeitet. Es gibt auch andere Modelle. Es gibt ein Modell, das Helligkeit von Farbigkeit trennt und bekannt ist als <b>YCbCr<\/b>. \u00dcbrigens gibt es auch andere Modelle, die eine \u00e4hnliche Trennung vornehmen, aber wir werden nur dieses betrachten.<\/p>\n<p>In diesem Farbmodell <b>Y<\/b> \u2014 handelt es sich um eine Darstellung der Helligkeit, und es werden zwei Farbkan\u00e4le verwendet: <b>Cb<\/b> (ges\u00e4ttigtes Blau) und <b>Cr<\/b> (ges\u00e4ttigtes Rot). YCbCr kann aus RGB gewonnen werden, ebenso ist eine Umwandlung m\u00f6glich. Mit diesem Modell k\u00f6nnen wir Farbbilder erstellen, wie unten zu sehen ist:<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/e7458471caf7ef071bb0362e96b44f11.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Umwandlung zwischen YCbCr und RGB<\/h2>\n<p>\nManche m\u00f6gen einwenden: Wie ist es m\u00f6glich, alle Farben zu erhalten, wenn Gr\u00fcn nicht verwendet wird?<\/p>\n<p>Um diese Frage zu beantworten, wandeln wir RGB in YCbCr um. Wir nutzen die Koeffizienten, die im Standard <b>BT.601<\/b>, empfohlen vom Gremium <b>ITU-R<\/b>, festgelegt wurden. Dieses Gremium definiert Standards f\u00fcr digitales Video. Zum Beispiel: Was ist 4K? Wie sollten Bildfrequenz, Aufl\u00f6sung und Farbmodell sein?<\/p>\n<p>Zuerst berechnen wir die Helligkeit. Wir verwenden die von der ITU vorgeschlagenen Konstanten und ersetzen die RGB-Werte.<\/p>\n<p><b>Y<\/b> = 0.299<b>R<\/b> + 0.587<b>G<\/b> + 0.114<b>B<\/b> <\/p>\n<p>Nachdem wir die Helligkeit erhalten haben, trennen wir blau und rot:<\/p>\n<p><b>Cb<\/b> = 0.564(<b>B<\/b> \u2014 <b>Y<\/b>)<\/p>\n<p><b>Cr<\/b> = 0.713(<b>R<\/b> \u2014 <b>Y<\/b>) <\/p>\n<p>Und wir k\u00f6nnen auch zur\u00fcckwandeln und sogar Gr\u00fcn mit YCbCr erzeugen:<\/p>\n<p><b>R<\/b> = <b>Y<\/b> + 1.402<b>Cr<\/b><\/p>\n<p><b>B<\/b> = <b>Y<\/b> + 1.772<b>Cb<\/b><\/p>\n<p><b>G<\/b> = <b>Y<\/b> \u2014 0.344<b>Cb<\/b> \u2014 0.714<b>Cr<\/b><\/p>\n<p>In der Regel verwenden Displays (Monitore, Fernseher, Bildschirme usw.) nur das RGB-Modell. Aber dieses Modell kann unterschiedlich organisiert werden:<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/8736e59d3a7606494fe6a7718d5b4aa2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Farbsubsampling<\/h2>\n<p>\nMit einem Bild, das als Kombination aus Helligkeit und Farbigkeit dargestellt wird, k\u00f6nnen wir die h\u00f6here Empfindlichkeit des menschlichen Sehverm\u00f6gens f\u00fcr Helligkeit im Vergleich zur Farbigkeit nutzen, wenn wir selektiv Informationen entfernen. Farbunterabtastung ist eine Methode zur Bildkodierung, die eine geringere Aufl\u00f6sung f\u00fcr die Farbigkeit als f\u00fcr die Helligkeit verwendet.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/11b5b602ab1374896df296f787932ace.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Wie sehr ist es zul\u00e4ssig, die Aufl\u00f6sung der Farbigkeit zu reduzieren?! Es gibt bereits einige Schemen, die beschreiben, wie man Aufl\u00f6sung und Verschmelzung verarbeitet (Endfarbe = Y + Cb + Cr).<\/p>\n<p>Diese Schemen sind bekannt als <b>Unterabtastungssysteme<\/b> und werden in Form eines 3-fachen Verh\u00e4ltnisses ausgedr\u00fcckt \u2014 <b>a<\/b>:<b>x<\/b>:<b>y<\/b>, das die Anzahl der Abtastungen von Helligkeits- und Farbunterschiedssignalen definiert.<\/p>\n<p><b>a<\/b> \u2014 der Referenzwert f\u00fcr die horizontale Abtastung (normalerweise 4)<br \/>\n<b>x<\/b> \u2014 die Anzahl der Abtastungen der Farbigkeit in der ersten Zeile der Pixel (horizontale Aufl\u00f6sung im Verh\u00e4ltnis zu <b>a<\/b>)<br \/>\n<b>y<\/b> \u2014 die Anzahl der \u00c4nderungen der Abtastungen der Farbigkeit zwischen der ersten und der zweiten Zeile der Pixel.<\/p>\n<blockquote><p>Eine Ausnahme bildet <b>4<\/b>:<b>1<\/b>:<b>0<\/b>, die eine Abtastung der Farbigkeit in jedem Block von Helligkeitsaufl\u00f6sung 4 auf 4 gew\u00e4hrleistet.<\/p><\/blockquote>\n<p>Allgemeine Schemen, die in modernen Codecs verwendet werden:<\/p>\n<ul>\n<li><b>4<\/b>:<b>4<\/b>:<b>4<\/b> (ohne Subsampling)<\/li>\n<li><b>4<\/b>:<b>2<\/b>:<b>2<\/b><\/li>\n<li><b>4<\/b>:<b>1<\/b>:<b>1<\/b><\/li>\n<li><b>4<\/b>:<b>2<\/b>:<b>0<\/b><\/li>\n<li><b>4<\/b>:<b>1<\/b>:<b>0<\/b><\/li>\n<li><b>3<\/b>:<b>1<\/b>:<b>1<\/b><\/li>\n<\/ul>\n<blockquote>\n<h3>YCbCr 4: 2: 0 \u2014 Beispiel f\u00fcr eine Zusammenf\u00fchrung<\/h3>\n<p>\nHier ist ein zusammengef\u00fchrter Bildausschnitt mit YCbCr 4:2:0. Beachten Sie, dass wir nur 12 Bit pro Pixel verwenden.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/67e288b0a46fca88452addaef736f4cd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p><\/blockquote>\n<p>So sieht dasselbe Bild aus, das mit den Haupttypen der Farbsampling kodiert wurde. Die obere Reihe zeigt das endg\u00fcltige YCbCr, die untere Reihe zeigt die Farbaufl\u00f6sung. Sehr ansehnliche Ergebnisse, wenn man die geringen Qualit\u00e4tsverluste ber\u00fccksichtigt.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/fb54b6fcdbbb63cb19d19b89df9f6d85.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nErinnern Sie sich, dass wir 278 GB Speicherplatz f\u00fcr eine einst\u00fcndige Videodatei mit 720p Aufl\u00f6sung und 30 Bildern pro Sekunde berechnet haben? Wenn wir YCbCr 4:2:0 verwenden, wird die Gr\u00f6\u00dfe halbiert \u2014 auf 139 GB. Bis jetzt ist das immer noch weit von einem akzeptablen Ergebnis entfernt.<\/p>\n<p>Sie k\u00f6nnen ein YCbCr-Histogramm mit FFmpeg selbst erstellen. In diesem Bild \u00fcberwiegt Blau gegen\u00fcber Rot, was auf dem Histogramm gut zu erkennen ist.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/6e74cb646cabc77079aea7eaee846fd1.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote>\n<h4>Farbe, Helligkeit, Farbpalette \u2014 Video\u00fcbersicht<\/h4>\n<p>\nIch empfehle dieses gro\u00dfartige Video anzusehen. Es erkl\u00e4rt, was Helligkeit ist und bringt alles auf den Punkt. <i>\u00e9<\/i> \u00fcber Helligkeit und Farbe.<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"Ymt47wXUDEU\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/Ymt47wXUDEU\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p><\/blockquote>\n<h2>Typen von Frames<\/h2>\n<p>\nLassen Sie uns weitermachen. Versuchen wir, die zeitliche Redundanz zu beseitigen. Aber zuerst lassen Sie uns einige grundlegende Begriffe definieren. Angenommen, wir haben einen Film mit 30 Bildern pro Sekunde, hier sind die ersten 4 Bilder:<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/103dc714d756d014e1d2c1bfb33751b1.png\" style=\"display:block;margin: 0 auto;\" \/> <img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/fdd7d89b884b2f77fea7c386c0d29fef.png\" style=\"display:block;margin: 0 auto;\" \/> <img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/61746b829025d5abcb7db072a54400c0.png\" style=\"display:block;margin: 0 auto;\" \/> <img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/c65ee526ec4539996f6bb94463d0cf2d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir k\u00f6nnen viele Wiederholungen in den Frames sehen: Zum Beispiel der blaue Hintergrund, der sich von Frame zu Frame nicht \u00e4ndert. Um dieses Problem zu l\u00f6sen, k\u00f6nnen wir sie abstrakt in drei Frame-Typen klassifizieren.<\/p>\n<h3>I-Frame (<b>I<\/b>Inter Frame)<\/h3>\n<p>\nEin I-Frame (Referenzframe, Schl\u00fcsselbild, interner Frame) ist autonom. Unabh\u00e4ngig davon, was visualisiert werden muss, ist der I-Frame im Wesentlichen ein statisches Bild. Der erste Frame ist normalerweise ein I-Frame, wir werden jedoch regelm\u00e4\u00dfig auch I-Frames unter denen sehen, die nicht die ersten Frames sind.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/44f2a7d6154f1a40fdb1174a443a9c3f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>P-Frame (<b>P<\/b>Predicted Frame)<\/h3>\n<p>\nEin P-Frame (vorhergesagter Frame) nutzt den Vorteil, dass das aktuelle Bild fast immer mit dem vorherigen Frame reproduziert werden kann. Im zweiten Frame besteht die einzige Ver\u00e4nderung darin, dass der Ball nach vorne rollt. Wir k\u00f6nnen Frame 2 einfach erhalten, indem wir Frame 1 leicht \u00e4ndern und nur die Unterschiede zwischen diesen Frames verwenden. Um Frame 2 zu erstellen, beziehen wir uns auf den vorhergehenden Frame 1.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/1245857fd8406a24da02d0c71beb7b4d.png\" style=\"display:block;margin: 0 auto;\" \/> \u2190 <img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/ab8e8f6020825830c4d03004528af1a4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>B-Bild (<b>B<\/b>i-pr\u00e4diktives Bild)<\/h3>\n<p>\nUnd wie w\u00e4re es mit Links nicht nur zu vergangenen, sondern auch zu zuk\u00fcnftigen Bildern, um eine noch bessere Kompression zu gew\u00e4hrleisten?! Das ist im Wesentlichen das B-Bild (bidirektionales Bild).<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/f28d4e02836e9b37f0f21937dd1ba660.png\" style=\"display:block;margin: 0 auto;\" \/> \u2190 <img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/7a6b3a329db155c94a91f58a99874bb9.png\" style=\"display:block;margin: 0 auto;\" \/> \u2192 <img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/09df4bc5a35df89575c7b51349be4340.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Zwischenausgabe<\/h2>\n<p>\nDiese Bildtypen werden verwendet, um die beste Kompression zu gew\u00e4hrleisten. Wir werden uns im n\u00e4chsten Abschnitt ansehen, wie das funktioniert. W\u00e4hrenddessen bemerken wir, dass das I-Bild am meisten Speicherplatz ben\u00f6tigt, das P-Bild jedoch deutlich g\u00fcnstiger ist, und dass das B-Bild die kosteng\u00fcnstigste Option f\u00fcr Videos darstellt.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/97b9177ffff302881deb1c86ce416166.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Zeitliche Redundanz (interframe Vorhersage)<\/h2>\n<p>\nLassen Sie uns untersuchen, welche M\u00f6glichkeiten wir haben, zeitliche Wiederholungen zu minimieren. Diese Art von Redundanz l\u00f6sen wir durch gegenseitige Vorhersagemethoden.<\/p>\n<p>Wir versuchen, so wenige Bits wie m\u00f6glich zur Kodierung der Bildsequenzen 0 und 1 zu verwenden.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/f0dc2df33a5297622a77a4ca09b19af8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir k\u00f6nnen <b>subtrahieren<\/b>, indem wir einfach Bild 1 von Bild 0 abziehen. Wir erhalten Bild 1, indem wir die Differenz zwischen ihm und dem vorherigen Bild verwenden und tats\u00e4chlich nur den resultierenden Rest kodieren.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/c14981c3a3a0459a02620805c4a0f2db.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAber was ist, wenn ich Ihnen sage, dass es noch eine bessere Methode gibt, die noch weniger Bits verwendet?! Lassen Sie uns zun\u00e4chst Bild 0 in ein klares Raster aus Bl\u00f6cken unterteilen. Dann versuchen wir, die Bl\u00f6cke aus Bild 0 mit Bild 1 abzugleichen. Anders ausgedr\u00fcckt, wir bewerten die Bewegung zwischen den Bildern.<\/p>\n<blockquote><p> Aus Wikipedia \u2014 <b>Blockbasierte Bewegungskompensation<\/b><\/p>\n<p>Die blockbasierte Bewegungskompensation unterteilt das aktuelle Bild in nicht \u00fcberlappende Bl\u00f6cke, und der Bewegungskompensationsvektor gibt an, woher die Bl\u00f6cke kommen (ein weit verbreiteter Irrtum ist, dass <i>das vorherige<\/i> Bild in nicht \u00fcberlappende Bl\u00f6cke unterteilt wird, und die Bewegungskompensationsvektoren angeben, wohin diese Bl\u00f6cke gehen. Tats\u00e4chlich ist es umgekehrt: nicht das vorherige Bild wird analysiert, sondern das folgende; es wird ermittelt, wo die Bl\u00f6cke herkommen und nicht, wohin sie sich bewegen). In der Regel \u00fcberlappen sich die Ausgangsbl\u00f6cke im urspr\u00fcnglichen Bild. Einige Video-Komprimierungsalgorithmen stellen das aktuelle Bild aus Teilen nicht nur eines, sondern gleich mehrerer zuvor \u00fcbertragenen Bilder zusammen.<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/0c34e84b318be2d250bade240fad80ed.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIm Evaluierungsprozess sehen wir, dass sich die Kugel von (<b>x<\/b>=0, <b>y<\/b>=25) nach (<b>x<\/b>=6, <b>y<\/b>=26) bewegt, die Werte <b>x<\/b> und <b>y<\/b> definieren die Bewegungsrichtung. Ein weiterer Schritt, den wir unternehmen k\u00f6nnen, um die Bits zu erhalten, besteht darin, nur die Differenz der Bewegungsvektoren zwischen der letzten Position des Blocks und der prognostizierten Position zu kodieren, sodass der endg\u00fcltige Bewegungsvektor (x=6-0=6, y=26-25=1) sein wird.<\/p>\n<p>In einer realen Situation w\u00fcrde dieser Ball in <b>n<\/b> Bl\u00f6cke unterteilt werden, aber das \u00e4ndert nichts am Wesentlichen.<\/p>\n<p>Objekte im Bild bewegen sich in drei Dimensionen, daher kann der Ball beim Bewegen visuell kleiner (oder gr\u00f6\u00dfer, wenn er sich auf den Betrachter zubewegt) erscheinen. Es ist normal, dass es keine perfekte \u00dcbereinstimmung zwischen den Bl\u00f6cken gibt. Hier sehen wir eine kombinierte Ansicht unserer Sch\u00e4tzung und der realen Szene.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/0fb4737e1076221e786fd6a78357422d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAber wir sehen, dass bei der Anwendung der Bewegungsbewertung die Daten zum Kodieren deutlich weniger sind als bei der Verwendung einer einfacheren Methode zur Berechnung der Delta-Werte zwischen den Frames.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/319507ad7197b7693efff11dcd7e4df4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Wie wird die echte Bewegungskompensation aussehen?<\/h2>\n<p>\nDiese Methode wird sofort auf alle Bl\u00f6cke angewendet. Oft wird unser hypothetischer bewegender Ball sofort in mehrere Bl\u00f6cke aufgeteilt.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/978b5612dbd164d2865ccdec4474fdb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSie k\u00f6nnen diese Konzepte selbst ausprobieren, indem Sie <noindex><a rel=\"nofollow\" href=\"https:\/\/jupyter.org\/\">Jupyter<\/a><\/noindex>.<\/p>\n<p>Um die Bewegungsvektoren zu sehen, k\u00f6nnen Sie ein Video mit externer Vorhersage erstellen mithilfe von <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ffmpeg.org\/\">ffmpeg<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/056d6dfd2c18baaabc70655edfe3d609.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlternativ k\u00f6nnen Sie auch <noindex><a rel=\"nofollow\" href=\"https:\/\/software.intel.com\/en-us\/video-pro-analyzer\">Intel Video Pro Analyzer<\/a><\/noindex> (es ist kostenpflichtig, aber es gibt eine kostenlose Testversion, die nur die ersten zehn Frames begrenzt).<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/5e28ccc6e6101b8d613f94d326a685f2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>R\u00e4umliche Redundanz (interne Vorhersage)<\/h2>\n<p>\nWenn wir jedes Frame im Video analysieren, entdecken wir zahlreiche miteinander verbundene Bereiche.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/24bff6d64704cf0c8e1010832ea8f6ea.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLassen Sie uns dieses Beispiel durchgehen. Diese Szene besteht haupts\u00e4chlich aus blauen und wei\u00dfen Farben.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/12edf221c61e064674ad363db9f3342c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDies ist der I-Frame. Wir k\u00f6nnen die vorherigen Frames zur Vorhersage nicht verwenden, aber wir k\u00f6nnen ihn komprimieren. Lassen Sie uns die Auszeichnung des roten Blocks kodieren. Wenn wir uns seine Nachbarn ansehen, stellen wir fest, dass es um ihn herum einige Farbtrends gibt.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/b67b3fba3d1792db81d0f1cb52c7c29b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir nehmen an, dass die Farben im Frame vertikal verlaufen. Das bedeutet, dass die Farben unbekannter Pixel Werte ihrer Nachbarn enthalten werden.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/6fe8f6ed7ebc66940fca27b8cd2c5915.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDiese Vorhersage kann auch falsch sein. Aus diesem Grund m\u00fcssen wir diese Methode (interne Vorhersage) anwenden und dann die tats\u00e4chlichen Werte subtrahieren. Dadurch erhalten wir einen Restblock, was zu einer viel kompakteren Matrix im Vergleich zum Original f\u00fchren wird.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/52fd77c96aa8445af12fca468c72c844.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWenn Sie an internen Vorhersagen arbeiten m\u00f6chten, k\u00f6nnen Sie mit ffmpeg Videos mit Makrobl\u00f6cken und deren Vorhersagen erstellen. Um die Bedeutung jeder Blockfarbe zu verstehen, m\u00fcssen Sie sich mit der ffmpeg-Dokumentation vertraut machen.<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/0399473c538a550f9317fd59c347a565.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlternativ k\u00f6nnen Sie den Intel Video Pro Analyzer verwenden (wie ich bereits erw\u00e4hnt habe, gibt es in der kostenlosen Testversion eine Begrenzung auf die ersten 10 Frames, aber das sollte f\u00fcr die ersten Schritte ausreichen).<\/p>\n<p><img decoding=\"async\" alt=\"Wie ein Video-Codec funktioniert. Teil 1. Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/abcdf1eb4b7dbdcf2a7a64154f3052ba.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Zweiter Teil:<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/edison\/blog\/480430\/\"> Funktionsprinzipien des Video-Codecs<\/a><\/noindex><\/h3>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/edison\/blog\/481418\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a\u0430 \u041b\u044e\u0431\u043e\u0435 \u0440\u0430\u0441\u0442\u0440\u043e\u0432\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b. \u041a\u043e\u0433\u0434\u0430 \u0440\u0435\u0447\u044c \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u043e \u0446\u0432\u0435\u0442\u0430\u0445, \u0438\u0434\u0435\u044e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u044c, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 \u0446\u0432\u0435\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0446\u0432\u0435\u0442 \u043a\u0430\u043a \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u0442.\u043d. \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432 (\u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e, \u0437\u0435\u043b\u0435\u043d\u043e\u0433\u043e \u0438 \u0441\u0438\u043d\u0435\u0433\u043e), \u0432 \u043d\u0430\u0448\u0435\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-54312","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a\u0430 \u041b\u044e\u0431\u043e\u0435 \u0440\u0430\u0441\u0442\u0440\u043e\u0432\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/kak-rabotaet-videokodek-chast-1-osnovy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a. \u0427\u0430\u0441\u0442\u044c 1. \u041e\u0441\u043d\u043e\u0432\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a\u0430 \u041b\u044e\u0431\u043e\u0435 \u0440\u0430\u0441\u0442\u0440\u043e\u0432\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/kak-rabotaet-videokodek-chast-1-osnovy\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-22T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wie ein Video-Codec funktioniert. Teil 1. Grundlagen | ProHoster","description":"Zweiter Teil: Funktionsprinzipien des Video-Codecs. Jedes Rasterbild kann in Formdarstellung gebracht werden.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/kak-rabotaet-videokodek-chast-1-osnovy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a. \u0427\u0430\u0441\u0442\u044c 1. \u041e\u0441\u043d\u043e\u0432\u044b | ProHoster","og:description":"\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u0434\u0435\u043a\u0430 \u041b\u044e\u0431\u043e\u0435 \u0440\u0430\u0441\u0442\u0440\u043e\u0432\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435.","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/kak-rabotaet-videokodek-chast-1-osnovy","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-22T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54312","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 10:53:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:31:31","updated":"2026-01-24 10:53:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/54312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=54312"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/54312\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=54312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=54312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=54312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}