{"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\/novosti-interneta\/kak-rabotaet-videokodek-chast-1-osnovy","title":{"rendered":"Wie funktioniert ein Video-Codec? 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 eines Video-Codecs<\/a><\/noindex><\/h3>\n<p>Jedes Raster- <b>bild<\/b> l\u00e4sst sich als <b>zweidimensionale Matrix<\/b>darstellen. Wenn es um Farben geht, kann das Konzept weiterentwickelt werden, indem man das Bild als <b>dreidimensionale 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 endg\u00fcltige 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 funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/ce37dd683a4c3ed434dae1d488646716.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nJeden Punkt in dieser Matrix nennen wir ein Pixel (Bildelement). Jedes Pixel enth\u00e4lt Informationen zur Intensit\u00e4t (normalerweise in Form eines Zahlenwerts) jeder Farbe. Zum Beispiel, <b>ein rotes Pixel<\/b> bedeutet, dass es 0 gr\u00fcn und 0 blau sowie maximal rot enth\u00e4lt. <b>Ein pinkfarbenes Pixel<\/b> kann durch die Kombination der drei Farben gebildet werden. Mit einem Zahlenbereich von 0 bis 255 wird ein pinkfarbenes 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 funktioniert ein Video-Codec? 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 unterst\u00fctzt von der Firma EDISON.<\/p>\n<p>Wir entwickeln <noindex><a rel=\"nofollow\" href=\"https:\/\/www.edsd.ru\/ru\/portfolio\/tehnologiya\/video\">Anwendungen f\u00fcr Video\u00fcberwachung und Streaming<\/a><\/noindex>, au\u00dferdem befassen wir uns mit <noindex><a rel=\"nofollow\" href=\"https:\/\/www.edsd.ru\/videozapis-v-bolnichnoj-operacionnoj-s-vozmozhnostyu-obsuzhdeniya-na-forume\">der Videoaufzeichnung im Operationssaal<\/a><\/noindex>.<\/p><\/blockquote>\n<h3>Alternative Methoden zur Kodierung von Farbabbildungen<\/h3>\n<p>\nUm die Farben darzustellen, aus denen das Bild besteht, gibt es zahlreiche andere Modelle. Beispielsweise kann eine indizierte Palette verwendet werden, die nur ein Byte zur Darstellung jedes Pixels ben\u00f6tigt, anstelle der drei, die f\u00fcr das RGB-Modell erforderlich sind. In einem solchen Modell kann eine 2D-Matrix anstelle einer 3D-Matrix zur Darstellung jeder Farbe verwendet werden. Das spart Speicher, bietet jedoch eine geringere Farbpalette.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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>Sehen Sie sich beispielsweise das Bild unten an. Das erste Bild ist vollst\u00e4ndig eingef\u00e4rbt. Die anderen sind die roten, gr\u00fcnen und blauen Fl\u00e4chen (die Intensit\u00e4t der entsprechenden Farben ist in Graustufen dargestellt).<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 erscheinen, an denen die hellsten Teile des zweiten Gesichts sichtbar sind. W\u00e4hrend der Beitrag des blauen Farbtons haupts\u00e4chlich nur in den Augen von Mario (dem letzten Gesicht) und in Elementen seiner Kleidung zu erkennen ist. Beachten Sie, wo alle drei Farbfl\u00e4chen den geringsten Beitrag leisten (die dunkelsten Teile der Bilder) \u2013 das sind die Schnurrhaare von Mario.<\/p>\n<p>Um die Intensit\u00e4t jeder Farbe zu speichern, werden eine bestimmte Anzahl von Bits ben\u00f6tigt \u2013 dieser Wert wird als <b>Farbtiefe<\/b>bezeichnet. Angenommen, es werden 8 Bit (von 0 bis 255) f\u00fcr eine Farbfl\u00e4che verwendet. Dann ergibt sich eine Farbtiefe von 24 Bit (8 Bit * 3 Fl\u00e4chen R\/G\/B).<\/p>\n<p>Ein weiteres Merkmal eines Bildes ist das <b>Aufl\u00f6sungsverm\u00f6gen<\/b>, das die Anzahl der Pixel in einer Dimension darstellt. H\u00e4ufig wird es als <b>Breite \u00d7 H\u00f6he<\/b>angegeben, wie im folgenden Bildbeispiel 4 auf 4.<br \/>\n<img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/51a4d948e6d44e4058e346fdbaf9d6c2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEin weiteres Merkmal, das wir beim Arbeiten mit Bildern\/Videos ber\u00fccksichtigen m\u00fcssen, ist das <b>Seitenverh\u00e4ltnis<\/b>, das die \u00fcbliche proportionale Beziehung zwischen der Breite und der H\u00f6he des Bildes oder Pixels beschreibt.<\/p>\n<p>Wenn von einem Film oder Bild in einem Format von 16 zu 9 die Rede ist, bezieht man sich normalerweise auf <b>das Seitenverh\u00e4ltnis des Displays<\/b> (<b>DAR<\/b> \u2014 von <i>Display-Seitenverh\u00e4ltnis<\/i>). Manchmal kann es jedoch unterschiedliche Formen einzelner Pixel geben \u2014 in diesem Fall sprechen wir von <b>Pixelverh\u00e4ltnis<\/b> (<b>PAR<\/b> \u2014 von <i>Pixel-Seitenverh\u00e4ltnis<\/i>).<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 funktioniert ein Video-Codec? 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 Notiz: <b>DVD<\/b> entspricht <b>DAR 4 zu 3<\/b><\/p>\n<p>Obwohl die tats\u00e4chliche DVD-Aufl\u00f6sung 704&#215;480 betr\u00e4gt, beh\u00e4lt sie das Seitenverh\u00e4ltnis von 4:3 bei, da das PAR einen Wert von 10:11 hat (704&#215;10 \/ 480&#215;11).<\/p><\/blockquote>\n<p>\nUnd schlie\u00dflich k\u00f6nnen wir definieren <b>Video<\/b> als eine Abfolge von <b>n<\/b> Bildern \u00fcber einen Zeitraum <b>von Zeit<\/b>, das als zus\u00e4tzliche Dimension angesehen werden kann. Und <b>n<\/b> dann \u2014 ist die Bildfrequenz oder die Anzahl der Bilder pro Sekunde (<b>FPS<\/b> \u2014 von <i>Frames pro Sekunde<\/i>).<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/f940932bbd66aa361c7966f8b44ed431.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie Anzahl an Bits pro Sekunde, die erforderlich ist, um Video anzuzeigen, ist dessen <b>Datenrate<\/b> \u2014 <b>Bitrate<\/b>.<\/p>\n<blockquote><p>Bitrate = Breite * H\u00f6he * Farbtiefe * Bilder pro Sekunde<\/p><\/blockquote>\n<p>\nF\u00fcr Videos mit 30 Bildern pro Sekunde, 24 Bit pro Pixel und einer Aufl\u00f6sung von 480&#215;240 werden 82.944.000 Bit pro Sekunde oder 82.944 Mbit\/s ben\u00f6tigt (30x480x240x24) \u2013 vorausgesetzt, es werden keine Komprimierungsmethoden verwendet.<\/p>\n<p>Wenn die Datenrate <i>fast konstant<\/i>ist, wird sie genannt <b>konstante Datenrate<\/b> (<b>CBR<\/b> \u2014 von <i>konstante Bitrate<\/i>). Sie kann jedoch auch variieren, in diesem Fall spricht man von <b>variabler Bitrate<\/b> (<b>VBR<\/b> \u2014 von <i>variable Bitrate<\/i>).<\/p>\n<p>Dieses Diagramm zeigt eine eingeschr\u00e4nkte VBR, bei der nicht zu viele Bits in einem v\u00f6llig dunklen Bild verbraucht werden.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 zur Verdopplung der wahrgenommenen Bildwiederholfrequenz von Video-Displays, ohne zus\u00e4tzliche Bandbreite zu verwenden. Diese Methode ist bekannt als <b>Interlaced video<\/b>; sie sendet haupts\u00e4chlich die halbe Anzeige im ersten \u201eFrame\u201c und die andere H\u00e4lfte im n\u00e4chsten \u201eFrame\u201c.<\/p>\n<p>Derzeit erfolgt die Visualisierung von Szenen haupts\u00e4chlich mit Hilfe von <b>progressiver Scanning-Technologie<\/b>. Dies ist eine Methode zur Anzeige, Speicherung oder \u00dcbertragung von Bewegungsbildern, bei der alle Zeilen jedes Frames nacheinander gezeichnet werden.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 digital dargestellt wird, wie seine Farben aufgebaut sind und wie viele Bits pro Sekunde wir ben\u00f6tigen, um Video bei konstanter (CBR) oder variabler (VBR) Bitrate anzuzeigen. Wir sind uns des festgelegten Aufl\u00f6sungsformats bei einer bestimmten Bildwiederholfrequenz bewusst und haben uns mit vielen anderen Begriffen vertraut gemacht, wie etwa interlaced Video, PAR und einigen anderen.<\/p>\n<h2>Entfernung von Redundanzen<\/h2>\n<p>\nEs ist bekannt, dass unkomprimiertes Video nicht praxisgerecht ist. Eine Stunde Video in 720p mit 30 Bildern pro Sekunde w\u00fcrde 278 GB beanspruchen. Dieses Ergebnis erhalten wir, indem wir 1280 x 720 x 24 x 30 x 3600 multiplizieren (Breite, H\u00f6he, Bits pro Pixel, FPS und Zeit in Sekunden).<\/p>\n<p>Nutzung <b>verlustfreie Kompressionsalgorithmen<\/b>, wie DEFLATE (verwendet in PKZIP, Gzip und PNG), werden nicht ausreichend Bandbreite reduzieren. Daher m\u00fcssen wir nach anderen Methoden zur Videokompression suchen.<\/p>\n<p>Daf\u00fcr k\u00f6nnen wir die Eigenschaften unseres Sehens nutzen. Wir nehmen Helligkeit besser wahr als Farben. Ein Video ist eine Abfolge von Bildern, die \u00fcber die Zeit wiederholt werden. Die Unterschiede zwischen benachbarten Frames einer Szene sind gering. Au\u00dferdem enth\u00e4lt jedes Bild viele Bereiche, die die gleiche (oder \u00e4hnliche) Farbe nutzen.<\/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 \u00fcberpr\u00fcfen, indem Sie sich dieses Bild ansehen.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/bf50b7dfd54ebbdb66556bbf5e304090.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Wenn Sie nicht erkennen, dass die Farben der Quadrate in der linken H\u00e4lfte des Bildes <b>A<\/b> und <b>B<\/b> tats\u00e4chlich identisch sind, ist das normal. Unser Gehirn lenkt unsere Aufmerksamkeit st\u00e4rker auf Licht und Schatten als auf Farbe. Auf der rechten Seite gibt es eine Verbindung zwischen den markierten Quadraten, die die gleiche Farbe haben \u2013 deshalb kann unser Gehirn leicht erkennen, dass es tats\u00e4chlich die gleiche Farbe ist.<\/p>\n<blockquote><p>Lassen Sie uns (vereinfacht) anschauen, wie unsere Augen funktionieren. Das Auge ist ein komplexes Organ, das aus vielen Teilen besteht. Allerdings interessieren uns vor allem 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 das etwas komplexer, aber wir vereinfachen es). St\u00e4bchenzellen sind haupts\u00e4chlich f\u00fcr die Helligkeit verantwortlich, w\u00e4hrend Zapfenzellen f\u00fcr die Farbe zust\u00e4ndig sind. Zapfen werden je nach dem enthaltenen Pigment in drei Typen unterteilt: S-Zapfen (blau), M-Zapfen (gr\u00fcn) und L-Zapfen (rot).<\/p>\n<p>Da wir viel mehr St\u00e4bchen (Helligkeit) als Zapfen (Farbe) haben, k\u00f6nnen wir 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 funktioniert ein Video-Codec? 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>\nForschende der experimentellen Psychologie und vieler anderer Bereiche haben zahlreiche Theorien \u00fcber das menschliche Sehen entwickelt. Eine davon nennt sich <b>Funktionen der Kontrastempfindlichkeit<\/b>Sie beziehen sich auf r\u00e4umliche und zeitliche Beleuchtung. Kurz gesagt, es geht darum, wie viele Ver\u00e4nderungen erforderlich sind, bevor der Beobachter diese bemerkt. Beachten Sie die Mehrzahl des Wortes \u201eFunktion\u201c. Das liegt daran, dass wir die Empfindlichkeit gegen\u00fcber Kontrastfunktionen nicht nur f\u00fcr Schwarz-Wei\u00df-Bilder, sondern auch f\u00fcr Farbige messen k\u00f6nnen. Die Ergebnisse dieser Experimente zeigen, dass unsere Augen in den meisten F\u00e4llen empfindlicher auf Helligkeit reagieren als auf Farbe.<\/p><\/blockquote>\n<p>Da bekannt ist, dass wir empfindlicher auf die Helligkeit eines Bildes reagieren, k\u00f6nnte man versuchen, diese Tatsache zu nutzen.<\/p>\n<h2>Farbmodell<\/h2>\n<p>\nWir haben bereits ein wenig verstanden, wie man mit Farb Bildern unter Verwendung des RGB-Schemas arbeitet. Es gibt auch andere Modelle. Es gibt ein Modell, das Helligkeit von Farbdaten trennt, und es ist bekannt 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 dies ist die Darstellung der Helligkeit, und es werden zwei Farbkan\u00e4le verwendet: <b>Cb<\/b> (intensives Blau) und <b>Cr<\/b> (sattes Rot). YCbCr kann aus RGB gewonnen werden, ebenso ist eine Umwandlung in die entgegengesetzte Richtung m\u00f6glich. Mit diesem Modell k\u00f6nnen wir Farbbilder erstellen, wie unten dargestellt:<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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>\nEinige k\u00f6nnten 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 verwenden die Koeffizienten, die im Standard festgelegt sind <b>BT.601<\/b>, der von einer Abteilung empfohlen wurde <b>ITU-R<\/b>. Diese Abteilung definiert die Standards im digitalen Video. Zum Beispiel: Was ist 4K? Was sollten die Bildfrequenz, die Aufl\u00f6sung und das 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 die blaue und rote Farbe:<\/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 erhalten:<\/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.) ausschlie\u00dflich das RGB-Modell. Aber dieses Modell kann unterschiedlich organisiert sein:<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/8736e59d3a7606494fe6a7718d5b4aa2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Farbunterabtastung<\/h2>\n<p>\nBei der Darstellung von Bildern durch eine Kombination aus Helligkeit und Farbigkeit k\u00f6nnen wir die h\u00f6here Empfindlichkeit des menschlichen Sehens f\u00fcr Helligkeit im Vergleich zu Farbigkeit nutzen, indem wir selektiv Informationen entfernen. Die Farbunterabtastung ist eine Methode zur Bildkodierung, die eine niedrigere Aufl\u00f6sung f\u00fcr Farbigkeit als f\u00fcr Helligkeit verwendet.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/11b5b602ab1374896df296f787932ace.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Wie weit darf die Aufl\u00f6sung der Farbigkeit reduziert werden?! Es gibt bereits einige Schemen, die beschreiben, wie man die Aufl\u00f6sung und das Zusammenf\u00fchren behandelt (Endfarbe = Y + Cb + Cr).<\/p>\n<p>Diese Schemen sind bekannt als <b>Unterabtastungssysteme<\/b> und werden in einem Verh\u00e4ltnis von 3 zu 1 ausgedr\u00fcckt - <b>a<\/b>:<b>x<\/b>:<b>y<\/b>, das die Anzahl der Abtastungen der Helligkeits- und Farbdifferenzsignale festlegt.<\/p>\n<p><b>a<\/b> - die Referenz-Horizontalabtastung (in der Regel gleich 4)<br \/>\n<b>x<\/b> - die Anzahl der Abtastungen der Farbigkeit in der ersten Zeile der Pixel (die horizontale Aufl\u00f6sung im Verh\u00e4ltnis zu <b>a<\/b>)<br \/>\n<b>y<\/b> - die Anzahl der \u00c4nderungen der Abtastungen der Farbigkeit zwischen der ersten und zweiten Zeile der Pixel.<\/p>\n<blockquote><p>Eine Ausnahme bilden <b>4<\/b>:<b>1<\/b>:<b>0<\/b>, die eine Abtastung der Farbigkeit in jedem Block mit einer Aufl\u00f6sung von 4 auf 4 erm\u00f6glicht.<\/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 \u2013 Beispiel einer Zusammenf\u00fchrung<\/h3>\n<p>\nHier ist ein zusammengef\u00fcgter Bildausschnitt unter Verwendung von YCbCr 4:2:0. Beachten Sie, dass wir nur 12 Bit pro Pixel verwenden.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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, kodiert mit den g\u00e4ngigsten Arten von Farbsampling. Die oberste Reihe zeigt den finalen 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 funktioniert ein Video-Codec? 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 Video-Datei in 720p und 30 Bildern pro Sekunde berechnet haben? Bei Verwendung von YCbCr 4:2:0 wird diese Gr\u00f6\u00dfe halbiert \u2013 auf 139 GB. Bis zu einem akzeptablen Ergebnis ist es trotzdem noch ein weiter Weg.<\/p>\n<p>Sie k\u00f6nnen das YCbCr-Histogramm selbst mit FFmpeg erstellen. In diesem Bild \u00fcberwiegt Blau \u00fcber Rot, was auf dem Histogramm deutlich sichtbar ist.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/6e74cb646cabc77079aea7eaee846fd1.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote>\n<h4>Farbs\u00e4ttigung, Helligkeit, Farbton \u2013 Video\u00fcbersicht<\/h4>\n<p>\nIch empfehle, dieses gro\u00dfartige Video anzusehen. Es erkl\u00e4rt, was Helligkeit ist und bringt alle Punkte klar auf den Tisch. <i>\u0096<\/i> Zur 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>Arten von Frames<\/h2>\n<p>\nLass uns weitermachen. Wir versuchen, die Zeitredundanz zu beseitigen. Zuerst definieren wir jedoch einige grundlegende Begriffe. Angenommen, wir haben einen Film mit 30 Bildern pro Sekunde. Hier sind die ersten 4 Bilder:<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/103dc714d756d014e1d2c1bfb33751b1.png\" style=\"display:block;margin: 0 auto;\" \/> <img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/fdd7d89b884b2f77fea7c386c0d29fef.png\" style=\"display:block;margin: 0 auto;\" \/> <img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/61746b829025d5abcb7db072a54400c0.png\" style=\"display:block;margin: 0 auto;\" \/> <img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 Bildern sehen: Zum Beispiel der blaue Hintergrund, der sich von Bild zu Bild nicht \u00e4ndert. Um dieses Problem zu l\u00f6sen, k\u00f6nnen wir sie abstrakt in drei Arten von Bildern klassifizieren.<\/p>\n<h3>I-Frame (<b>I<\/b>Intro Frame)<\/h3>\n<p>\nDer I-Frame (Referenzbild, Schl\u00fcsselbild, internes Bild) ist autonom. Unabh\u00e4ngig davon, was visualisiert werden soll, ist der I-Frame im Grunde ein statisches Foto. Das erste Bild ist normalerweise ein I-Frame, jedoch werden wir regelm\u00e4\u00dfig I-Frames auch unter den nicht ganz vorderen Bildern beobachten.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 (pr\u00e4diktiver Frame) nutzt den Vorteil, dass das aktuelle Bild fast immer unter Verwendung des vorherigen Bildes wiedergegeben werden kann. Zum Beispiel besteht im zweiten Bild die einzige \u00c4nderung im vorw\u00e4rtsbewegenden Ball. Wir k\u00f6nnen Frame 2 einfach erhalten, indem wir Frame 1 leicht anpassen und nur die Unterschiede zwischen diesen Frames verwenden. Um Frame 2 zu erstellen, beziehen wir uns auf das vorhergehende Frame 1.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/1245857fd8406a24da02d0c71beb7b4d.png\" style=\"display:block;margin: 0 auto;\" \/> \u2190 <img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/ab8e8f6020825830c4d03004528af1a4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Ein B-Frame (<b>B<\/b>i-pr\u00e4diktiver Frame)<\/h3>\n<p>\nWas ist mit Verweisen auf nicht nur vergangene, sondern auch zuk\u00fcnftige Frames, um eine noch bessere Kompression zu erreichen?! Das ist im Wesentlichen ein B-Frame (bidirektionaler Frame).<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/f28d4e02836e9b37f0f21937dd1ba660.png\" style=\"display:block;margin: 0 auto;\" \/> \u2190 <img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/7a6b3a329db155c94a91f58a99874bb9.png\" style=\"display:block;margin: 0 auto;\" \/> \u2192 <img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 Frame-Typen werden verwendet, um die bestm\u00f6gliche Kompression zu gew\u00e4hrleisten. Wir werden uns im n\u00e4chsten Abschnitt ansehen, wie das funktioniert. Vorab ist zu erw\u00e4hnen, dass der \u201eteuerste\u201c in Bezug auf den Speicherverbrauch der I-Frame ist, w\u00e4hrend der P-Frame deutlich g\u00fcnstiger ist, und der B-Frame die kosteneffizienteste Option f\u00fcr Videos darstellt.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 \u00fcberlegen, welche M\u00f6glichkeiten wir haben, um zeitliche Wiederholungen zu minimieren. Diese Art der Redundanz werden wir mit Methoden der gegenseitigen Prognose l\u00f6sen.<\/p>\n<p>Wir streben an, so wenige Bits wie m\u00f6glich zu verwenden, um die Sequenz der Frames 0 und 1 zu codieren.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/f0dc2df33a5297622a77a4ca09b19af8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir k\u00f6nnen <b>Subtraktion<\/b>, indem wir einfach Frame 1 von Frame 0 abziehen. Wir erhalten Frame 1, nutzen jedoch nur die Differenz zu dem vorherigen Frame und codieren faktisch nur den verbleibenden Rest.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/c14981c3a3a0459a02620805c4a0f2db.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAber was, wenn ich Ihnen sage, dass es eine noch bessere Methode gibt, die noch weniger Bits ben\u00f6tigt?! Lassen Sie uns zun\u00e4chst Frame 0 in ein klares Gitter aus Bl\u00f6cken unterteilen. Danach versuchen wir, Bl\u00f6cke aus Frame 0 mit Frame 1 abzugleichen. Anders gesagt, wir bewerten die Bewegung zwischen den Frames.<\/p>\n<blockquote><p> Aus Wikipedia \u2014 <b>Blockbasierte Bewegungscompensation<\/b><\/p>\n<p>Die blockbasierte Bewegungscompensation teilt den aktuellen Frame in nicht \u00fcberlappende Bl\u00f6cke, und der Bewegungsvektor zeigt den Ursprung der Bl\u00f6cke an (ein weit verbreitetes Missverst\u00e4ndnis ist, dass <i>der vorherige<\/i> Ein Frame wird in nicht \u00fcberlappende Bl\u00f6cke unterteilt, und die Bewegungsvektoren zeigen an, wohin diese Bl\u00f6cke verschoben werden. Tats\u00e4chlich wird jedoch nicht der vorherige Frame analysiert, sondern der n\u00e4chste. Es wird ermittelt, woher die Bl\u00f6cke kommen, nicht wohin sie gehen. Normalerweise sind die urspr\u00fcnglichen Bl\u00f6cke im Ausgangsframe \u00fcberlappt. Einige Video-Komprimierungsalgorithmen setzen den aktuellen Frame sogar aus Teilen mehrerer zuvor \u00fcbertragener Frames zusammen.<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/0c34e84b318be2d250bade240fad80ed.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIm Bewertungsprozess sehen wir, dass sich die Kugel von (<b>x<\/b>=0, <b>y<\/b>=25) auf (<b>x<\/b>=6, <b>y<\/b>=26) bewegt hat, die Werte <b>x<\/b> und <b>y<\/b> definieren den Bewegungsvektor. Ein weiterer Schritt, den wir unternehmen k\u00f6nnen, um Bits zu sparen, besteht darin, nur die Differenz der Bewegungsvektoren zwischen der letzten Position des Blocks und der prognostizierten zu kodieren. Daher wird der endg\u00fcltige Bewegungsvektor (x=6-0=6, y=26-25=1) sein.<\/p>\n<p>In einer realen Situation w\u00e4re diese Kugel in <b>n<\/b> Bl\u00f6cke unterteilt, aber das \u00e4ndert nichts am Wesentlichen.<\/p>\n<p>Die Objekte im Bild bewegen sich in drei Dimensionen, sodass die Kugel beim Bewegen visuell kleiner (oder gr\u00f6\u00dfer, wenn sie sich auf den Betrachter zubewegt) erscheinen kann. Es ist normal, dass es keine perfekte \u00dcbereinstimmung zwischen den Bl\u00f6cken gibt. Hier ist eine kombinierte Ansicht unserer Sch\u00e4tzung und des tats\u00e4chlichen Bildes.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/0fb4737e1076221e786fd6a78357422d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAber wir sehen, dass, wenn wir die Bewegungseinsch\u00e4tzung anwenden, die Daten zur Kodierung deutlich weniger sind als bei der Verwendung einer einfacheren Methode, die die Delta zwischen den Frames berechnet.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/319507ad7197b7693efff11dcd7e4df4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>So wird die tats\u00e4chliche Bewegungskompensation aussehen.<\/h2>\n<p>\nDiese Methode wird sofort auf alle Bl\u00f6cke angewendet. Oft wird unser hypothetischer beweglicher Ball in mehrere Bl\u00f6cke unterteilt.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 erkunden, 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 einer externen Vorhersage mithilfe von <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ffmpeg.org\/\">ffmpeg<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/056d6dfd2c18baaabc70655edfe3d609.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAu\u00dferdem k\u00f6nnen Sie auf <noindex><a rel=\"nofollow\" href=\"https:\/\/software.intel.com\/en-us\/video-pro-analyzer\">Intel Video Pro Analyzer<\/a><\/noindex> (dies ist kostenpflichtig, aber es gibt eine kostenlose Testversion, die nur auf die ersten zehn Frames beschr\u00e4nkt ist).<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 man jeden Frame im Video analysiert, wird man viele miteinander verbundene Bereiche entdecken.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 Blau- und Wei\u00dft\u00f6nen.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/12edf221c61e064674ad363db9f3342c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas ist ein I-Frame. Wir k\u00f6nnen die vorherigen Frames zur Vorhersage nicht heranziehen, aber wir k\u00f6nnen ihn komprimieren. Lassen Sie uns die Markierung des roten Blocks kodieren. Wenn wir uns die Nachbarn ansehen, stellen wir fest, dass es um ihn herum einige Farbtrends gibt.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 verteilt sind. Das bedeutet, dass die Farben der unbekannten Pixel Werte ihrer Nachbarn enthalten werden.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/6fe8f6ed7ebc66940fca27b8cd2c5915.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDiese Vorhersage kann sich als falsch herausstellen. Aus diesem Grund ist es notwendig, diese Methode (interne Vorhersage) anzuwenden und dann die tats\u00e4chlichen Werte abzuziehen. Dies gibt uns einen Restblock, der zu einer viel kompakteren Matrix im Vergleich zum Original f\u00fchrt.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/52fd77c96aa8445af12fca468c72c844.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWenn Sie mit internen Vorhersagen \u00fcben m\u00f6chten, k\u00f6nnen Sie mit ffmpeg ein Video mit Macroblox und ihren Vorhersagen erstellen. Um die Bedeutung jeder Farbe des Blocks zu verstehen, m\u00fcssen Sie die ffmpeg-Dokumentation konsultieren.<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? Teil 1: Grundlagen\" src=\"\/wp-content\/uploads\/2019\/12\/0399473c538a550f9317fd59c347a565.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOder Sie k\u00f6nnen den Intel Video Pro Analyzer verwenden (wie ich oben erw\u00e4hnt habe, gibt es in der kostenlosen Testversion eine Einschr\u00e4nkung von 10 Frames, aber das sollte anfangs ausreichen).<\/p>\n<p><img decoding=\"async\" alt=\"Wie funktioniert ein Video-Codec? 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 eines 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-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.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\/novosti-interneta\/kak-rabotaet-videokodek-chast-1-osnovy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.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\/novosti-interneta\/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 funktioniert ein Video-Codec? Teil 1. Grundlagen | ProHoster","description":"Zweiter Teil: Funktionsprinzipien des Video-Codecs Jedes Bitmap-Bild kann in Form dargestellt werden.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/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\/novosti-interneta\/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}]}}