Gepostet von Monty (monty@xiph.org, cmontgomery@mozilla.com). Veröffentlicht am 28. Juni 2018.
Wenn jemand den
vorherigen Artikel nicht gelesen hat ... AV1 ist ein neuer universeller Videocodec, der
von der Alliance for Open Media entwickelt wurde. Die Allianz basierte auf dem VPX-Codec von Google, Thor von Cisco und Daala von Mozilla / Xiph.Org. Der AV1-Codec ist VP9 und HEVC in seiner Leistung überlegen, was ihn nicht morgen, sondern übermorgen zu einem Codec macht. Das AV1-Format ist frei von Lizenzgebühren und wird dies mit einer Lizenzlizenz für immer bleiben.
Dieser Artikel wurde als zweiter in einer Reihe von Artikeln konzipiert, in denen die Funktionalität von AV1 und die neuen Technologien, die ihm zugrunde liegen und erstmals in der Produktion verwendet werden, ausführlich beschrieben werden. In einem früheren Artikel auf Xiph.org wurde die Helligkeitsvorhersagefunktion von Chroma from Luma (CfL) erläutert . Heute werden wir über einen begrenzten Richtungskorrekturfilter (Constrained Directional Enhancement Filter) sprechen. Wenn Sie sich immer gefragt haben, was es braucht, um einen Codec zu schreiben, schnallen Sie sich an und machen Sie sich bereit für die Ausbildung!Filter in AV1
In fast allen Video-Codecs werden Korrekturfilter verwendet, um die subjektive Qualität des Ausgabematerials zu verbessern.
Mit "Korrekturfiltern" meine ich Methoden, die nicht unbedingt Bildinformationen codieren oder die objektive Codierungseffizienz verbessern, aber das Ergebnis auf irgendeine Weise verbessern. Korrekturfilter sollten sorgfältig verwendet werden, da sie normalerweise einige Informationen verlieren - und aus diesem Grund werden sie manchmal als inakzeptable Betrugsmethode angesehen, damit das Ergebnis besser aussieht als es tatsächlich ist.
Das ist aber nicht fair. Korrekturfilter wurden entwickelt, um bestimmte Artefakte zu umgehen oder zu beseitigen, die für objektive Metriken unsichtbar, für das menschliche Auge jedoch offensichtlich sind. Und selbst wenn wir Filter als eine Form der Täuschung betrachten, benötigt ein guter Video-Codec immer noch alle praktischen und effektiven „Cheats“, die er verwenden kann.
Filter sind in mehrere Kategorien unterteilt. Erstens können sie
normativ oder
nicht normativ sein . Der normative Filter ist ein erforderlicher Bestandteil des Codecs. Ohne sie ist es unmöglich, das Video korrekt zu dekodieren. Nicht standardmäßiger Filter ist optional.
Zweitens unterscheiden sich die Filter im Anwendungsort. Es gibt Vorverarbeitungsfilter (Vorverarbeitung), die vor dem Codieren auf die Eingabedaten angewendet werden, Nachverarbeitungsfilter (Nachverarbeitung), die nach Abschluss der Decodierung auf die Ausgabedaten angewendet werden, sowie In-Loop-Filter (Loop-Filter), die in den Codierungsprozess integriert sind. Vor- und Nachbearbeitungsfilter sind normalerweise nicht Standard und werden nicht in den Codec aufgenommen. Und Schleifenfilter sind per Definition normativ. Dies ist Teil des Codecs. Sie werden im Prozess der Codierungsoptimierung verwendet und auf Referenzrahmen oder für die Codierung zwischen Rahmen angewendet.

AV1 verwendet drei regulatorische Korrekturfilter. Der erste ist ein De-Blocking-Filter zum Entfernen von "Blocking" - offensichtlichen Artefakten entlang der Kanten codierter Blöcke. Obwohl DCT relativ gut zum Komprimieren von Energie in natürlichen Bildern geeignet ist, neigt es immer noch dazu, Fehler an den Kanten von Blöcken zu akkumulieren. Wenn Sie sich erinnern, war die Beseitigung dieser Artefakte der
Hauptgrund, warum Daala die überlappte Transformation verwendete. AV1 ist jedoch ein traditionellerer Codec mit engen Blockgrenzen. Infolgedessen ist hier ein herkömmlicher Entblockungsfilter erforderlich, um Artefakte an den Kanten der Blöcke auszugleichen.
Ein Beispiel für Artefakte an Blockgrenzen im herkömmlichen DCT-Blockcodec. Diese Fehler sind besonders auffällig.Der letzte der drei Filter ist der Loop Restoration-Filter. Es besteht aus zwei konfigurierbaren und austauschbaren Filtern: dem
Wiener Filter und dem Self-Guided Filter. Dies sind zwei Faltungsfilter, die versuchen, einen Kernel zu erstellen, um die verlorene Qualität des ursprünglichen Eingabebildes teilweise wiederherzustellen. Sie werden normalerweise zur Rauschunterdrückung und / oder Korrektur an den Kanten von Blöcken verwendet. Im Fall von AV1 führen sie eine allgemeine Rauschunterdrückungsaufgabe durch, wobei das Basis-DCT-Rauschen durch einstellbare Unschärfe entfernt wird.
Dazwischen befindet sich ein
begrenzter Richtungskorrekturfilter (Constrained Directional Enhancement Filter, CDEF), über den wir sprechen werden. Wie der Loopback-Filter entfernt er Artefakte und Grundrauschen an den Gelenken, ist jedoch im Gegensatz zum Loopback-Filter ein Richtungsfilter. Im Gegensatz zu den meisten Filtern gilt es nicht für alles in einer Reihe, sondern findet speziell Blockgrenzen. Daher ist CDEF besonders interessant: Es ist das erste praktische und nützliche Richtungsfilter, das bei der Videokodierung verwendet wird.
Lange und kurvenreiche Straße
Die Geschichte von CDEF hat sich nicht leicht entwickelt. Dies ist ein langer Weg mit Kurven, Seitenwegen und Sackgassen. CDEF vereint mehrere Forschungsarbeiten, von denen jede eine Idee oder Inspiration für den endgültigen Filter in AV1 lieferte.
Der springende Punkt beim Transformieren von Pixeldatenblöcken unter Verwendung von DCT- und DCT-ähnlichen Transformationen besteht darin, einen Pixelblock mit möglichst wenigen Zahlen darzustellen. DCT komprimiert Energie in den meisten Bildern ziemlich gut, was bedeutet, dass es dazu neigt, gestreute Pixelmuster in nur wenigen wichtigen Ausgabefaktoren zu sammeln.
Es gibt jedoch Ausnahmen zur Effizienz der DCT-Komprimierung. Zum Beispiel übersetzt DCT Richtungsgrenzen oder Muster nicht sehr gut. Wenn Sie sich den DCT-Ausgang einer scharfen diagonalen Kante ansehen, bilden die Ausgangskoeffizienten auch ... eine scharfe Diagonale! Es unterscheidet sich nach der Konvertierung, ist aber immer noch im Bild vorhanden, wenn auch normalerweise in einer komplexeren Form als zu Beginn. Die Komprimierung ist nicht möglich!
Scharfe Grenzen sind ein traditionelles Problem für DCT-basierte Codecs, da sie, wenn überhaupt, nicht sehr gut komprimiert werden. Hier sehen wir einen scharfen Rand (links) und DCT-Transformationskoeffizienten (rechts). Die Energie der Anfangsgrenze breitet sich durch DCT in das Muster der Richtungswelligkeiten ausIn den letzten zwei Jahrzehnten hat sich die Videocodec-Forschung zunehmend mit Transformationen, Filtern und Vorhersagemethoden befasst, die im Wesentlichen gerichtet sind. Forscher haben nach einer Möglichkeit gesucht, solche Grenzen und Muster besser zu handhaben, um diese grundlegende DCT-Einschränkung zu korrigieren.
Klassische Richtungsvorhersagen
Die gerichtete Intra-Vorhersage ist wahrscheinlich eine der bekanntesten Methoden der Richtungsaktion in modernen Video-Codecs. Jeder ist mit den Richtungsvorhersagemodi h.264 und VP9 vertraut, bei denen der Codec die Vorhersage eines bestimmten Musters basierend auf den umgebenden Pixeln von bereits decodierten Blöcken auf einen neuen Block überträgt. Ziel ist es, Energie in harten, gerichteten Kanten zu entfernen (oder deutlich zu reduzieren),
bevor der Block konvertiert wird. Durch Vorhersagen und Entfernen von Funktionen, die nicht komprimiert werden können, erhöhen wir die Gesamteffizienz des Codecs.
Darstellung der Richtungsvorhersagemodi in AVC / H.264 für 4x4-Blöcke. Der Prädiktor erweitert die Werte von Einzelpixelstreifen benachbarter Pixel und überträgt sie in einer von acht Richtungen auf den vorhergesagten Block sowie einen Mittelungsmodus für eine einfache DC-VorhersageEine noch ältere Idee ist die Bewegungskompensation. Dies ist auch eine Form der Richtungsprognose, obwohl wir das selten so sehen. In diesem Modus werden die Blöcke in bestimmte Richtungen verschoben, um Energie vorherzusagen und zu extrahieren, bevor DCT ausgeführt wird. Dieser Blockversatz ist gerichtet und gefiltert. Wie bei der gerichteten Intra-Vorhersage werden sorgfältig konstruierte Oversampling-Filter angewendet, wenn der Offset keine ganzzahlige Anzahl von Pixeln ist.
Richtungsfilter
Wie bereits erwähnt, wenden Videocodecs aktiv Filter an, um Blockartefakte und Rauschen zu entfernen. Obwohl die Filter in der 2D-Ebene angewendet werden, arbeiten die Filter selbst normalerweise in 1D, dh sie werden horizontal und vertikal getrennt ausgeführt.
Die Richtungsfilterung löst Filter in andere Richtungen als horizontal und vertikal aus. Ein solches Verfahren ist bereits bei der Verarbeitung statischer Bilder üblich, bei denen Rauschunterdrückungsfilter und Überlagerungen von Spezialeffekten häufig Grenzen und Richtungen berücksichtigen. Diese Richtungsfilter basieren jedoch häufig auf der Filterung der Ausgabe von Richtungsumwandlungen. Zum Beispiel basieren die [etwas veralteten]
Rauschunterdrückungsfilter, über die ich geschrieben habe , auf einem
Doppelbaum komplexer Wavelets .
Bei der Videokodierung interessieren wir uns jedoch am meisten für Richtungsfilter, die direkt auf Pixel in einer bestimmten Richtung angewendet werden, anstatt den Frequenzbereich am Ausgang einer Richtungsumwandlung zu filtern. Sobald Sie versuchen, ein solches Tier zu erschaffen, wird sich schnell die große Frage stellen: Wie kann eine andere Richtung als horizontal und vertikal formalisiert werden, wenn die Filterpositionen nicht mehr an die Pixel im Raster gebunden sind?
Eine Möglichkeit besteht darin, den klassischen Ansatz der hochwertigen Bildverarbeitung zu verwenden: Transformieren Sie den Filterkern und tasten Sie den Pixelraum nach Bedarf neu ab (neu abtasten). Sie könnten sogar argumentieren, dass dies die einzige "richtige" oder "vollständige" Antwort ist. Es wird zur Kompensation von Subpixelbewegungen verwendet, bei denen es ohne eine gute Neuabtastung unmöglich ist, ein gutes Ergebnis zu erzielen, und auch zur Richtungsvorhersage, bei der normalerweise eine schnelle Approximation verwendet wird.
Selbst eine schnelle Annäherung ist in Bezug auf Rechenressourcen teuer, wenn sie universell angewendet wird. Daher ist es ratsam, eine erneute Abtastung nach Möglichkeit zu vermeiden. Der teure Preis für Geschwindigkeit ist einer der Gründe, warum Richtungsfilter bei der Videokodierung noch nicht angewendet wurden.
Richtungsumwandlungen
Richtungskonvertierungen versuchen, DCT-Probleme mit der Blockrandverdichtung auf der Ebene der Transformation selbst zu beheben.
Experimente in diesem Bereich fallen in zwei Kategorien. Es gibt Transformationen, die im Wesentlichen gerichtete Basen verwenden, wie z. B. gerichtete Wavelets. In der Regel neigen sie zu übermäßiger Konvertierung / Übervollständigkeit, dh sie produzieren mehr Output als sie am Input erhalten: normalerweise viel mehr. Es ist wie in die entgegengesetzte Richtung zu arbeiten, denn wir wollen
die Datenmenge
reduzieren , nicht erhöhen! Diese Konvertierungen komprimieren jedoch immer noch Energie, und der Codierer wählt immer noch eine kleine Teilmenge der Ausgabe für die Codierung aus, sodass in der Realität einige Unterschiede zur üblichen verlustbehafteten DCT-Codierung bestehen. "Überfüllte" Konvertierungen erfordern jedoch normalerweise zu viel Speicher und Rechenressourcen und werden daher in gängigen Videocodecs nicht verwendet.
Die zweite Kategorie von Richtungskonvertierungen nimmt regelmäßige ungerichtete Transformationen wie DCT vor - und modifiziert sie, was sich auf die Eingabe oder Ausgabe auswirkt. Änderungen können in Form von wiederholter Abtastung, Matrixmultiplikation (die als spezielle Form der wiederholten Abtastung angesehen werden kann) oder Jonglieren mit der Reihenfolge der Eingabedaten durchgeführt werden.
Diese letzte Idee ist die stärkste, weil die Methode schnell funktioniert. Eine einfache Permutation von Zahlen erfordert keine mathematischen Berechnungen.
Zwei Beispiele für Transformationen in verschiedene Richtungen durch Umordnen von Pixeln und Koeffizienten anstelle eines erneuten Filterns. Ein Beispiel stammt aus der Übersicht über Richtungstransformationen in der Bildcodierung , Jicheng Xu, Bing Zeng, Feng WuDie Implementierung wird durch mehrere praktische Schwierigkeiten erschwert. Die Neuorientierung des Quadrats ergibt eine diagonale Kante mit überwiegend vertikalen oder horizontalen Linien, was zu einer nicht quadratischen Zahlenmatrix als Eingabe führt. Konzeptionell ist dies kein Problem. Da Sie Zeilen und Spalten unabhängig voneinander transformieren können, verwenden wir einfach unterschiedliche Größen von 1D DCT für jede Zeile und Spalte, wie in der obigen Abbildung gezeigt. In der Praxis bedeutet dies jedoch, dass wir für jede mögliche Spaltenlänge eine andere DCT-Faktorisierung benötigen - und sobald die Hardwareentwicklungsabteilung dies versteht, werden Sie aus dem Fenster geworfen.
Es gibt andere Möglichkeiten, nicht quadratische Bereiche nach der Neuanordnung zu verarbeiten. Sie können Resampling-Schemata erstellen, die das Eingabequadrat speichern oder nur am Ausgang arbeiten. Die meisten der
unten aufgeführten Artikel zur Richtungsumwandlung bieten hierfür unterschiedliche Schemata.
Und hier endet die Geschichte der gerichteten Transformationen im Wesentlichen. Sobald Sie verschiedene Komplikationen von Richtungskonvertierungen umgehen und einen echten Filter erstellen, funktioniert dies in einem modernen Codec normalerweise aus einem unerwarteten Grund nicht: aufgrund der Konkurrenz mit einer variablen Blockgröße. Das heißt, in einem Codec mit fester Blockgröße führt das Hinzufügen von Richtungsumwandlungen zu einer beeindruckenden Effizienzsteigerung. Und eine variable Blockgröße an sich bietet noch größere Vorteile. Die Kombination einer variablen Blockgröße und von Richtungsumwandlungen führt jedoch zu einem schlechteren Ergebnis als die Verwendung jeder dieser Methoden einzeln. Die variable Blockgröße hat bereits die Redundanzen beseitigt, die von Richtungsumwandlungen verwendet werden, und sie sogar effizienter gemacht.
Nathan Egge und ich haben bei der Entwicklung von Daala viel mit Richtungsumwandlungen experimentiert. Ich habe das Problem sowohl auf der Eingabeseite als auch auf der Ausgabeseite untersucht und spärliche Matrixmultiplikationen verwendet, um diagonale Ränder in die vertikale / horizontale Position am Ausgang umzuwandeln. Nathan testete bekannte Ansätze für Richtungsumwandlungen, indem er Eingabedaten neu erstellte. Wir sind zu einem Schluss gekommen: Die zusätzliche Komplexität bietet weder objektive noch subjektive Vorteile.
Die Verwendung von Richtungsumwandlungen in Daala (und anderen Codecs) mag ein Fehler sein, aber die Forschung warf eine Frage auf, die bereits erwähnt wurde: Wie kann man schnell entlang von Grenzen filtern, ohne kostspielige Neuabtastung? Antwort: Keine erneute Probenahme erforderlich. Zoomen Sie hinein, indem Sie sich entlang des nächsten ganzen Pixels bewegen. Vergrößern Sie den transformierten Kernel, indem Sie die Pixel buchstäblich oder konzeptionell neu anordnen. Dieser Ansatz führt zu einer gewissen Verzerrung (Aliasing), funktioniert jedoch
recht gut und
schnell genug .
Richtungsprädiktoren, Teil 2: Daala Chronicles
Die Geschichte von CDEF im Daala-Codec begann mit Versuchen, etwas völlig anderes zu tun: die übliche langweilige Richtungs-Intra-Vorhersage. Oder zumindest etwas Normales für den Daala-Codec.
Ich schrieb über das
Daala-Intra-Vorhersage- Schema
im Frequenzbereich, als wir gerade anfingen, daran zu arbeiten. Die Mathematik hier funktioniert ziemlich gut; Kein Grund zur Sorge. Die naive Implementierung erforderte jedoch eine große Anzahl von Matrixmultiplikationen, was für den Codec in der Produktion zu teuer war. Wir hofften, dass die Rechenlast aufgrund der Verdünnung um eine Größenordnung reduziert werden könnte - Eliminierung von Matrixelementen, die nicht viel zur Prognose beitrugen.
Aber das Ausdünnen funktioniert nicht so, wie wir es möchten. Zumindest bei der Implementierung gingen zu viele Informationen verloren, was die Technik in der Praxis ungeeignet machte.
Natürlich brauchte Daala immer noch irgendeine Form der Intra-Vorhersage, und Jean-Marc Valin hatte die Idee: einen autonomen Vorhersage-Codec, der im räumlichen Bereich parallel zum Daala-Codec im Frequenzbereich arbeitet. Als eine Art Symbiont, der zusammenarbeitet, aber nicht von Daala abhängig ist, ist er nicht auf die Anforderungen von Daala für den Frequenzbereich beschränkt. So entstand
Intra Paint .
Ein Beispiel für einen Intra-Paint-Vorhersagealgorithmus auf einem Foto des Hafens von Sydney . Die visuelle Ausgabe ist klar gerichtet, passt gut zu den Grenzen der Blöcke und den Merkmalen des Originalbilds und erzeugt ein schönes (vielleicht etwas seltsames) Ergebnis mit klaren GrenzenDer Intra-Paint-Filter funktionierte auf eine neue Art und Weise: Er codierte eindimensionale Vektoren nur entlang der Grenzen der Blöcke und führte die Vorlage dann in die ausgewählte Richtung aus. Es ist, als würde man Farbe sprühen und dann in offenen Bereichen in verschiedene Richtungen verteilen.
Intra Paint schien vielversprechend und führte an sich zu erstaunlich schönen Ergebnissen, erwies sich jedoch erneut als unzureichend effektiv, um als Standard-Intra-Prädiktor zu arbeiten. Es hat einfach nicht genug Bits bekommen, um seine eigenen Informationen zu codieren.
Der Unterschied zwischen dem Originalfoto von Sydney Harbour und dem Ergebnis von Intra Paint. Trotz der optisch ansprechenden Ausgabe von Intra Paint kann es objektiv nicht als hochpräziser Prädiktor bezeichnet werden. Der Unterschied ist selbst entlang vieler Grenzen, die gut ausgearbeitet zu sein schienen, ziemlich bedeutendDas „Scheitern“ von Intra Paint führte uns zu einer anderen Idee. Obwohl diese „Zeichnung“ objektiv kein sehr guter Prädiktor ist, sieht sie subjektiv größtenteils gut aus. Verwenden Sie möglicherweise die Methode „Farbabstrich“ als Nachbearbeitungsfilter, um die subjektive visuelle Qualität zu verbessern? Intra Paint folgt sehr gut entlang scharfer Kanten und sollte daher möglicherweise Rauschen beseitigen, das sich entlang der schärfsten Kanten aufbaut. Paint-Dering Daala, CDEF.
, . /
Edge-Directed Interpolation (EDI). ( VPx AV1) , . , EDI , . EDI . , .
,
, CDEF, . Intra Paint Daala Paint-Dering, Intra-Paint . .
Intra Paint . Daala CLPF Thor, - , (Deringing) Daala, Intra-Paint ( ),
Conditional Replacement Filter , . CRF - , , .
7-tap ,Daala CRF, 7-tap 5-tap. , . Daala , CDEF.
Daala AOM, AV1 daala_dering. Cisco , Constrained Low-Pass Filter (CLPF) Thor. - AV1: . , .
,
CDEF : CLPF Cisco Daala .
CDEF
CDEF . ( , / ), . , CDEF « ? ?» CDEF — , , . — .
CDEF , . , Intra Paint Paint-Dering. .
CDEF. 'k', «» , , . , . d k, .
d, . k . k . , , . /, — , . , : , . !
, . :
— ,
— ,
— ,
— ,
— ( )
. . ,
. , AV1 CDEF 5,875 1,9375 , 8×8 DCT.
(filter taps)
CDEF . Richtung
, ( ) .
CDEF . , Daala. 45° , CLPF Thor.
d. , 45° ., . , .
. , (constraint function), .
(taps) (w) . a = 2 b = 4, a = 3 b = 3., , .
CDEF
,
(constraint function)
,
::
Die Einschränkungsfunktion soll die Verarbeitung von Pixeln reduzieren oder ganz aufgeben, die sich nicht zu stark von den gefilterten Pixeln unterscheiden. Im definierten Bereich werden die Unterschiede in den Werten der Markierungen vom zentralen Pixel vollständig berücksichtigt (was durch den Kraftparameter bestimmt wird )
Wenn die Wertedifferenz in den Bereich zwischen den Parametern fällt und
.
. (d) x. y. (S). (D), . , ( ) , . :

…
und
.
. . CDEF, ,
CDEF .
Ergebnisse
CDEF wurde entwickelt, um Grundrauschen und Klingelartefakte an scharfen Bildrändern zu entfernen oder zu reduzieren, ohne Unschärfen oder Beschädigungen zu verursachen. Der Filter wird jetzt in AV1 verwendet und bietet einen subtilen, aber konsistenten Effekt. Vielleicht wird es in Zukunft möglich sein, sich noch mehr auf CDEF zu verlassen.
Ein Beispiel für Rauschunterdrückung und Artefakte beim Codieren von Fruchtbildern . Der erste Einschub zeigt den Bereich ohne CDEF-Verarbeitung, der zweite zeigt denselben Bereich nach der CDEF-VerarbeitungDer quantitative Wert eines Korrekturfilters
sollte durch subjektive Tests bestimmt werden. Objektive Metriken sollten nicht diskontiert werden, aber CDEF soll ein Ergebnis liefern, das über die Fähigkeiten primitiver objektiver Testtools wie PSNR und SSIM hinausgeht.
Daher führten wir mehrere subjektive Testrunden durch, zunächst während der Entwicklung von CDEF (als Daala Dering und Thor CLPF noch technische Konkurrenten waren), und führten dann umfassendere Tests des kombinierten CDEF-Filters durch. Da dies ein neuer Filter ist, der in früheren Codec-Generationen vollständig fehlt, bestanden die Tests hauptsächlich aus AV1 mit aktiviertem CDEF und AV1 ohne CDEF.
Subjektive AV1 A / B-Testergebnisse mit CDEF und AV1 ohne CDEF für die Konfiguration mit hoher LatenzSubjektive Ergebnisse zeigen eine statistisch signifikante (p <0,05) Verbesserung in drei der sechs Clips. Dies entspricht in der Regel einer Steigerung der Codierungseffizienz um 5-10%. Dies ist ein ziemlich großer Gewinn für ein Tool, das einem ausgereiften Codec hinzugefügt wurde.
Wie erwartet zeigten objektive Tests einen bescheideneren Anstieg von etwa 1%. Objektive Tests sind jedoch nur insoweit nützlich, als sie mit subjektiven Ergebnissen übereinstimmen. Subjektive Tests sind der Goldstandard, und die subjektiven Ergebnisse sind ziemlich klar.
Tests haben auch gezeigt, dass CDEF eine bessere Leistung erbringt, wenn zusätzliche Codec-Tools während der Codierung deaktiviert werden. Wie bei gerichteten Transformationen konkurriert CDEF mit anderen, komplexeren AV1-Methoden um Vorteile. Da CDEF ein einfacher, kleiner und schneller Filter ist, kann es in Zukunft verwendet werden, um die Komplexität von AV1-Encodern zu verringern. In Bezug auf die Decoderkomplexität macht CDEF je nach Konfiguration 3% bis 10% des AV1-Decoders aus.
Zusätzliche Ressourcen
- Xiph.Org Standard-Derf-Testsuiten unter media.xiph.org
- Automatisiertes Testsystem und Metriken für die Entwicklung von Daala und AV1: "Sind wir bereits komprimiert?"
- CDEF (Constrained Directional Enhancement Filter) in AV1 . Steinar Midtskogen, Jean-Marc Valin, Oktober 2017
- CDEF-Präsentationsfolien für ICASSP 2018 , Steinar Midtskogen, Jean-Marc Valin
- Deringing Filter für Daala und Weiterentwicklung . Jean-Marc Valin. Der vorherige Rauschunterdrückungsfilter wurde bei der Entwicklung des Daala-Codecs erstellt, mit dem die CDEF in AV1 erstellt wurde.
- Daala: Bilder zum Spaß und zum Guten ausmalen . Jean-Marc Valin. Ein noch früherer Korrekturfilter für die Intra-Paint-Basis, der zur Schaffung eines Rauschunterdrückungsfilters in Daala führte, was wiederum zu CDEF führte
- Intra Paint Deringing Filter . Jean-Marc Valin, 2015. Anmerkungen zum Rauschunterdrückungskorrekturfilter, der aus dem Intra Paint-Experiment in Daala hervorgegangen ist
- Geführte Bildfilterung . Caiming Hye, Jian San, Xiaou Tang, 2013
- Richtungsadaptive diskrete Wavelet-Transformation zur Bildkomprimierung . Chuo-Ling Chang, Bernd Girod, IEEE-Transaktionen zur Bildverarbeitung, Band 16, Nummer 5, Mai 2007
- Directional Adaptive Transformationen für die gemeinsame Nutzung von Bildern . Chuo-Ling Chang, Doktorarbeit an der Stanford University, 2009. Diese Dissertation bietet einen guten Überblick über den Bereich der Richtungsumwandlungen ab 2009; Leider waren online keine Exemplare verfügbar
- Directional Adaptive Blocking Conversion zum Codieren eines Farbbildes . Chuo-Ling Chang, Mina Makar, Bernd Girod, Sam S. Tsai, IEEE-Transaktionen zur Bildverarbeitung, Band 19, Nummer 7, Juli 2010
- DCT-schaltungsbasiert mit DC-Vorhersage und adaptiver Codierung . Zhibo Chen, Xiaozhong Xu. Der Artikel hinter dem IEEE
- Richtungsadaptive Transformationen für die Vorhersage der Restcodierung . Robert Cohen, Sven Klomp, Anthony Vetro, Huifan Sun. Proceedings of 2010 IEEE 17. Internationale Konferenz für Bildverarbeitung, 26.-29. September 2010, Hongkong
- Orientierungsselektive orthogonale Transformation mit Überlappung . Dietmar Kunz, 2008. Artikel von IEEE
- Geschwindigkeitsverzerrungsanalyse von gerichteten Wavelets . Arian Maleki, Boshra Rajay und Hamid Reza Purreza. IEEE-Transaktionen zur Bildverarbeitung, Band 21, Nummer 2, Februar 2012
- Theoretische Analyse der Trends in Trends in gerichteten orthogonalen Transformationen . Shogo Murumatsu, Dandan Khan, Tomoya Kobayashi und Hisakazu Kikuchi. Ein Artikel hinter der IEEE Paywall. Eine Kurzversion ist jedoch frei verfügbar.
- Ein Überblick über Richtungstransformationen in der Bildcodierung . Jicheng Xu, Bing Zeng, Feng Wu.
- Konvertierung mit Richtungsfilterung für Bildkomprimierung und Interframe-Informationen . Xulian Peng, Jicheng Xu, Feng Wu, IEEE-Transaktion in der Bildverarbeitung, Band 19, Nummer 11, November 2010. Artikel von IEEE Firewall
- Approximation und Komprimierung mit spärlichen orthonormalen Transformationen . O. G. Sezer, O. G. Guleruz, Yusel Altunbasak, 2008
- Zuverlässige Untersuchung zweidimensionaler gemeinsamer Transformationen für Videocodecs der nächsten Generation . O. G. Cezer, R. Cohen, A. Vetro, März 2011
- Gemeinsame Optimierung basierend auf der Spärlichkeit eines Satzes orthonormaler zweidimensionaler gemeinsamer Blocktransformationen . Joel Sole, Peng Yin, Christina Gomila, Yunfei Zheng, 2009. Artikel von IEEE
- Richtungsüberlappende Transformationen für die Bildcodierung . Jicheng Xu, Feng Wu, Wenjun Zhang, Jie Liang, IEEE-Transaktionen zur Bildverarbeitung, April 2008
- Direktionale diskrete Cosinustransformationen sind ein neues Framework für die Bildcodierung . Bing Zeng, Jingjing Fu, IEEE-Transaktionen auf Schaltungen und Systemen für die Videotechnik, April 2008
- Doppelbaum komplexer Wavelet-Transformationen . Ivan Seleznik, Richard Baranyuk, Nick Kingsbury, IEEE Signal Processing Magazine, November 2005