SlideShare uma empresa Scribd logo
1 de 105
Seminar - Multimedia Codecs 2009




 MARC SEEGER           CLEMENS KERN   BENJAMIN GUTBROD
   MS241                   NK035           BG019
Überblick
Einführung
Was ist Dirac?
                                  Paul Dirac
 Paul Dirac
   Britischer Physiker


   Mitbegründer der                           Schrödinger
    Quantentheorie

   1933 Nobelpreis für Beitrag
    zu Quantentheorie
Was ist Dirac?

 Laut Entwickler-Homepage
   “Dirac is a general-purpose video compression
    family suitable for everything from internet
    streaming to HDTV”


 Laut offiziellem Pressebericht
   “(…) a cost effective, multi-platform open source
    compression codec for hardware and software,
    from web formats to ultra high definition post
    production”
Allgemeines

 Video-Kompressions-Familie
   Breite Palette von Tools (ähnlich wie Mpeg4)

   Bestimmte Applikationen benötigen i.d.R. nur
    Untermenge dieser Tools -> Profile

   Standardkonforme Geräte implementieren nur
    bestimmte Profile
Allgemeines

 Auflösungen, u.a.
     QCIF (180 x 144)
     HDTV (1.920 x 1.080)
     Digital Cinema 4k (4096 × 2160)
     Ultra HDTV (7680 x 4320)

 mobile streaming          (full) HDTV   Digital Cinema
Allgemeines
         QCIF


 DVD

    HDTV 720p


HDTV 1080p (1920 x 1080)




                           Digital Cinema (4096 x 2160)




                                                  Ultra High Definition Video (7680 x 4320)
Allgemeines

 Kompression:
   Verlustfrei / optisch verlustfrei
   Verlustbehaftet


 Leistung vergleichbar mit aktuellen Codecs
   H264/MPEG-4 AVC und VC-1


 Bitraten von unter 100kbit/s – über 1Gbit/s ++
Allgemeines

 Technologie
   Wavelet Transformation
     Statt DCT wie bei MPEG1,2,4


   Motion Compensation
     Überlappende Blöcke reduzieren Block-
      Artefaktbildung

   Arithmetische Codierung
     Verlustfreie Datenkompression
Allgemeines

 Profile
   Dirac für bestimmte Aufgaben optimieren, z.B.
       Verteilung und Übertragung  Hohe Kompression
       Post Production  Hohe Qualität
       Live Broadcasting  Geringe Latenz
       usw…

   Vordefinierte Einstellungen bestimmter
    Parameter
Allgemeines

 Unterstützte Container
   AVI
   MKV
   ISOM (MP4, Quicktime)
   OGG
   MXF
Wer hat es Entwickelt?

 British Broadcasting Corporation (BBC)
   In Kingswood Warren, UK


   Projektleiter:
     Tim Borer


   Algorithmus Guru:
     Thomas Davies
Wer hat es Entwickelt?

 British Broadcasting Corporation (BBC)
   50 Jahre Erfahrung mit Kompressions-Technologie
    und digitalem TV

   Wünscht sich Zusammenarbeit mit
     OpenSource Community
     Akademikern
     Sonstigen Helfern

     Open Technology
Wer hat es Entwickelt?

 Wie alles begann…
   2001 - Thomas Davies experimentiert mit
    Kompressionstechniken

   Sein Ziel:
    HD Services auf Basis von MPEG-2 Broadcasts

    Dirac war geboren…
Wer hat es Entwickelt?

 Mittlerweile Einstieg von Hardwarefirmen

 Numedia Technology
   Encoder + Decoder
     Dirac Pro 1.5
     Dirac Pro 270
Warum wurde es entwickelt?

 Grund für die Entwicklung
   Lizenzgebühren proprietärer Codecs
     Damals bereits 50 000 Streams  hohe Kosten
     Geplante Erweiterung auf 50 000 000+ Streams


   Abhängigkeit von den Entwicklern
     Unnötige Features
     Lange Release-Zyklen
Warum wurde es entwickelt?

 Philosophie
   Keep it simple!
   Einfaches und modulares Design


 Warum?
   Zusammenarbeit verschiedener Gruppen soll
    ermöglicht bzw. erleichtert werden
Warum wurde es entwickelt?

 Ziele der Entwicklung
   Lizenzfreier hocheffizienter Codec
     von Streaming bis zu High-End Qualität

   Möglichst hohe Kompressionsrate ohne
    Artefaktbildung

   Mit anderen komplexen "State of the Art" Codecs
    mithalten (trotz einfachem Design)
Besonderheiten

 Zukunftssicher
   Unabhängig von einzelnen Firmen


 Komplett lizenzfrei
   Im Sinn von Lizenzgebühren


 Individuell anpassbar
   Kann auf jedes Einsatzgebiet zugeschnitten
    werden
Features

 Auflösungen von QCIF bis UHDTV


 Inter- / Intraframe Codierung


 Frame- / Field Codierung


 Konstante / variable Bitraten
Features

 Verschiedene Wavelet-Filter
   Performance  Komplexität


 Variable Farb-/Kanaltiefe
   8, 10, 12 und 16 bit


 Verschiedene Farbmodelle
   RGB & YUV 4:4:4 / 4:2:2 / 4:2:0
Chroma Formats
                 4:4:4

                         Y

 RGB
                         Cb


                         Cr
Chroma Formats
       4:2:2               4:2:0




                      1/2 weniger Daten
  1/3 weniger Daten
Features

 Anpassbares Bildseitenverhältnis


 Variable Bildwiederholrate
   von 23,97 bis 60 fps


 Einfache Streamnavigation
   Bildnummern (32 Bit)
   Doppelt verkettete Listen
Features

 Multiresolution Transformation


 Dual Syntax


 Konvertierung RGB in YUV
Die Dirac Familie
Dirac Research

 Referenzimplementierung in C++
   V1.0 – September 2008
   V1.2 – Februar 2009


 Laut BBC „State of the Art“ Qualität und
  Performance bei hoher Kompressionsrate
Dirac Research

 Technologie
   Inter-Frame Wavelet-Transformation
   Long-GOP (optional)
   Arithmetische Codierung


 Ziel
   Maximale Kompressions-Effizienz
Dirac Research

 Anwendungsgebiete
   Internet/Mobile Streaming
   Embedded Video auf Webseiten
   Video on Demand (Streaming)
Die Dirac Familie
Dirac Pro

 Implementiert in C


 Spezielle Version von Dirac, optimiert für
   Professionelle Produktion
   Archivierungsanwendungen
   Einsatz in Film-Studios / Broadcast-Zentren


 Standardisiert durch SMPTE als VC-2
Dirac Pro

 Anforderungen
   Hohe Bild-Qualität
   Verlustfreie Kompression
   Hohe Bitraten
   Sehr geringe Latenz


   Erfordert höhere Bandbreiten (Mbit/s – Gbit/s)
Dirac Pro

 Unterschied zu Dirac Research
   Intra-Frame Wavelet-Transformation
     Ermöglicht framegenaue Editierung


   Exponential-Golomb Codierung
     Ermöglicht sehr hohe Bitraten

   Keine Arithmetische Codierung
     Niedrige Latenz
     Bessere Performance
Dirac Pro

 Anwendungsgebiete
   Post Production
   Digital Cinema Mastering
   Archivierung
Dirac Pro

 Ermöglicht Übergang zu HD-Produktion
   Übertragung von
     Full HD-Signale über standard HD-Infrastruktur
            HD 1080p       Dirac Pro   HD 1080p
              3Gbit/s                   1.5Gbit/s



     HD-Signale über bestehende SD-Infrastruktur

            HD 720p        Dirac Pro   HD 720p
             1.5Gbit/s                 270mbit/s
Dirac Pro 1.5

 Full HDTV (1080P) über konv. HD-Infrastruktur
   (1,5Gbit/s HD-SDI)


 Komprimierungsverhältnis von 2:1
   Quasi verlustfrei

 Sehr geringe Latenz: << 1ms (end to end)

 Geplanter Einsatz bei Olymp. Spielen 2012
Dirac Pro 270

 HDTV (720p) über SD-Infrastruktur
   (270Mbit/s SD-SDI)


 Stärkere Komprimierung als bei Dirac Pro 1.5
   Nur optisch verlustfrei

 Geringe Latenz: < 3ms (end to end)

 Erfolgreich eingesetzt bei Olymp. Spielen 2008
Die Dirac Familie
Schrödinger Projekt

 Implementiert in ANSI C
   V1.00 – Februar 2008
   V1.07 – April 2009


 Optimierte Implementierung der Dirac-
  Spezifikation

 Finanziert durch BBC
Schrödinger Projekt

 Ziele
   Unterstützung von Dirac in Multimedia-
    Anwendungen beschleunigen

   Codier-Performance erhöhen
     Auf Kosten der Bild-Qualität
Schrödinger Projekt

 David Schleef, Leitender Entwickler:


  “…you either get slow and good
  (dirac-research) or fast and
  crappy (Schrödinger)"
Schrödinger Projekt
Dirac playback compatibility matrix
                                           MPEG
               Raw
                            Ogg            Transport          AVI                 Matroska            MOV / MP4
               Bitstream
                                           Stream
GStreamer /
               Yes          Yes            Yes                Yes                 Yes                 Yes
Totem
FFMpeg /
               Yes          No             Yes                Yes                 Yes                 Yes
FFplay
MPLAYER        Yes          No             Yes                Yes                 Yes                 Yes

VLC 1.0        Yes          Yes            Yes                Yes (?)             Yes (?)             Yes (?)
DirectShow/    Yes
                            Yes
Windows        (unrelease                  No                 WIP                 No                  No
                            (unreleased)
Media Player   d)
QuickTime
                                                                                                      Yes
Player /       No           No             No                 No                  No
                                                                                                      (unreleased)
OSX
                                            Quelle: http://www.diracvideo.org/wiki/index.php/Dirac_Compatibility_Matrix
Lizenzierung

 Freier Videocodec
   MPL 1.1
   Keine Patente auf Seiten der BBC an Dirac
   Keine Verwendung von patentierten Technologien
    Dritter

  Dirac auch mit GPL und LGPL Lizenz
  Schrödinger zusätzlich mit MIT Lizenz
Lizenzierung
 GPL (GNU General Public License)
    Erlaubt keine Einbindung in proprietäre Software


 LGPL (GNU Lesser General Public License)
    Erlaubt indirekte Einbindung in proprietäre Software


 MPL (Mozilla Public License)
    Erlaubt Verbindung mit proprietärem Code, der sich in separaten
     Dateien befindet, aber gemeinsam kompiliert wird

 MIT (Massachusetts Institute of Technology )
    Erlaubt direkte Einbindung in proprietärerSoftware
Technologie
Technologie Übersicht
Input



        Y: luma
        U: chroma
        V: chroma




             ≈YCbCr
RGB Input?

  RGB        ITU-T H.264
             residual color transform
                                        YCoCg
Wavelet Transformation
Wavelet Transformation
                                                                   redo()
                                                                   links oben:
                                                                   Level-4-Tiefpass




                      Zeilen
                                              Spalten des Tiefpass-
                      Links:Tiefpass,
                                              Anteils gefiltert
                      Rechts: Hochpass
                                              (links oben Level-2-Tiefpass,
                                              links unten Level-2-Hochpass)




Quelle:
http://user.cs.tu-berlin.de/~rammelt/wavelets/index.html
Wavelet Transformation
Diesmal mit Quoten Lenna:
Wavelets vs DCT
     DCT          DWT
A wavelet is a wavelet is a ...

Wavelet                      Usage
Deslauriers-Dubuc (9,3)      default intra-frame filter
LeGall (5,3)                 default inter-frame filter
Deslauriers-Dubuc (13,7)
Haar with no/single/double
shift per level
Fidelity filter              improved downconversion
                             and anti-aliasing
Daubechies (9,7)             compatibility with JPEG 2000
DC Subband Prediction




                        X   Y
                        Z   P
Quantisation

    DWT = lossless!
    But we haven‘t got bits to spare...
dead-zone quantiser
  Vorteil:
  • mehr quantisation der kleinen Werte  de-noising
  • implementation: teile mit Qunatisierungsfaktor und runde ab.
  (In Dirac: näherungsweise via multiplication +bitshift.)




                                                                   (N-0.5) * D  (N+0.5) * D




                                                                    >0: N*D  (N+1)*D
                                                                    <0: (N-1)*D  N*D
Quantisation

         The current Dirac encoder uses an RDO technique to
         pick a quantiser by minimising a Lagrangian
         combination of rate and distortion.
         Rate is estimated via a an adaptively-corrected
         measure of zeroth-order entropy measure Ent(q) of
         the quantised symbols resulting from applying the
         quantisation factor q, calculated as a value of
         bits/pixel.
         Distortion is measured in terms of the perceptually-
         weighted error fourth-power error E(q,4), resulting
         from the difference between the original and the
         quantised coefficients
Quantisation

Essentially, lots of quantisers are tried and the
best* one is picked




                                  *rate-distortion framework
Coefficient scanning


Eigene Quantisierungs-
faktoren für Codeblocks
statt ein einzelner Faktor
pro Subband
Low Delay Quantisierung

Für die low delay syntax werden die
Koeffizienten jedes Subbandes in ein Array
von “lokalen” Wavelets angeordnet dass
sich “Slice” nennt.

Jeder Slice korrespondiert mit einer Region
des Originalbildes (in Frequenzen zerlegt).
Low delay coefficient scanning
Quantisierung des DC Subbandes




        Koeffizienten basieren im DC
        Subband auf Vorhersagen!
         mögliche Artefakte
Motion Compensation
Motion Compensation
Motion Compensation
Motion Estimation


                    Bild zur Zeit t




                    Bild zur Zeit t‘
Motion Estimation


 p  ( x, y, t )   wi p( x  u, y  v, t ' ),  wi  1
                    i                          i




Suchen und minimieren von SAD (SSD, MSE etc.)
Motion Estimation
1. Stufe - Search

Hierarchische Suche
1. Stufe - Search

             Guide
1. Stufe - Search

 Probleme
   Sehr kleine Bewegungen
   Viele unterschiedliche Bewegungen
1. Stufe - Search

 Lösung:
   Null-Vektor als zusätzlichen Guide


 Optimierung:
   Schon gefundene Nachbarvektoren als Guides
2. Stufe - Refinement


               Subpixel-Genauigkeit
2. Stufe - Refinement




4 facher Upscale => 16 fache Datenmenge
3. Stufe – Mode Decision


           Längen-Differenz zwischen
           Vektoren übertragen
3. Stufe – Mode Decision


           Rotation zwischen
           Vektoren übertragen
3. Stufe – Mode Decision


           Aggregieren
3. Stufe – Mode Decision


           Aggregieren
Compensation
Compensation
Compensation
Codierung

 Exponential Golomb Binarisation
 Arithmetic Coding
Exponential Golomb




  exp(               )
Exp. Golomb - Encode

 Schreibe Zahl binär         1111
 Lasse K-Bits weg (K=0)      1111
 Addiere   1 (arithm.)       10000


 Zähle Binärzeichen N        N = 5
 Hänge N-1 Nullen vorne an   000010000
 Schreibe K-Bits hinten an




            15 -> 000010000
Exp. Golomb - Encode

 Schreibe Zahl binär           11
                              1111
 Lasse K-Bits weg (K=2)      11
 Addiere   1 (arithm.)       100


 Zähle Binärzeichen N        N = 3
 Hänge N-1 Nullen vorne an   00100
 Schreibe K-Bits hinten an   0010011




              15 -> 0010011
Exp. Golomb - Decode

 Zähle Nullen bis zur ersten 1,   N=2
  lese N+1+K Bits weiter
                                      11
                                   10011
 Lasse K-Bits weg (K=2)           100
 Ziehe 1 ab (arithm.)             011

 Schreibe K-Bits hinten an          11
                                   1111




             0010011 -> 15
Exp. Golomb - Interleaved

 Schreibe Zahl (13) binär          1101
 Lasse K-Bits weg (K=0)            1101
 Addiere   1 (arithm.)             1110


 Interleaving

            13 -> 010101001
            0 => es kommen noch weitere Bits
            1 => Ende
Arithmetische Codierung
Zu codierendes Wort: 0001
0                                             0.75       1
                    0                                1
0                                0.5625       0.75
              0                           1
0                 0.421875       0.5625

          0                  1
0         0.316406      0.421875
      0            1

    Wähle Zahl aus letzem Intervall => 0.375
Arithmetische Codierung
Warum gerade 0.375?

   2-1       0.5      0
   2-2      0.25      1          0.25
   2-3      0.125     1   0.25 + 0.125 = 0.375



Übertrage 011
Arithmetische Codierung

Warum so gut?

 I(0) = 0.415 Bits
 I(1) = 2 Bits
      Zeichenkette 0001 hat
      Informationsgehalt 3.245 Bits
Arithmetische Codierung

Probleme?
                    Wtf? 

 0.63646624589264
 4687348434884555
 5445224785599876
 63322124157961
Arithmetische Codierung
  Ratter
 ratter….
                      zzZZZ..




            Low Delay??
Denoiser
Centre-weighted 3x3 median
Denoiser
Centre-weighted 3x3 median
3    5   10         [3, 3, 5, 6, 7, 9, 10, 23,
23   60 3           60, 60, 60, 60, 60]
6    7   9

                         3     5     10
                         23    10    3
                         6     7     9
Demonstration
Setup
Linux 64 Bit
liboil-0.3.16.tar.gz 19-Mar-2009 14:12 836K
schroedinger-1.0.7.tar.gz 22-Apr-2009 20:56 857K
dirac-1.0.2.tar.gz 11-Feb-2009 19:42 897K
ffmpeg: SVN vom 15. Juni 09
x264: SVN vom 15. Juni 09




FFMPEG:
./configure --enable-libdirac --enable-libschroedinger --enable-libx264 --enable-gpl
 -->
FFmpeg version SVN-r19200, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --enable-libdirac --enable-libschroedinger --enable-libx264 --enable-gpl
libavutil 50. 3. 0 / 50. 3. 0
libavcodec 52.31. 2 / 52.31. 2
libavformat 52.34. 0 / 52.34. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0. 7. 1 / 0. 7. 1
built on Jun 15 2009 18:19:46, gcc: 4.3.3
Australia
Australia
Original Input:
australia.mkv
VIDEO: [avc1] 1920x816 24bpp 23.976 fps, Avg Bitrate 6252 kbit/s



Verlustfrei Transcodiert:
 $ mencoder australia.mkv -ovc lavc -lavcopts vcodec=ffvhuff:vstrict=-
1:pred=2:context=1:format=422p -nosound -o australia_huff.mkv
--> Video stream: 165493.422 kbit/s (20686677 B/s) size: 656597040 bytes
(627M) 31.740 secs 761 frames
Family Guy Intro
           x264
           720x544
           avg: 1180 kbit/s
Encoding Parameter

                                   resolution




                         bitrate



                                                codec




ffmpeg -i input.mkv -vcodec libschroedinger -s 720x480 -b 2000k output.mkv
ffmpeg -i input.mkv -vcodec libx264-s 720x480 -b 2000k output.mkv
DEMO
Kritik

 Doom9.org
Dark Shikari (x264 developer)
(28th May 2009, 16:44 )



“1. Wavelets suck, visually. Nobody has found a way around this yet. One
could say they have a high ratio of PSNR to visual quality
2. Wavelets suck for intra coding compared to H.264's intra prediction. Hence
why JPEG-2000 comes out worse than JPEG.
3. Dirac has constant-size partitions, either 8x8 or 16x16, because they
couldn't find a good way to mix them in OBMC. (Overlapped block-based
motion compensation)
4. Dirac has a pretty crappy entropy coder (far fewer contexts than H.264!). I
suspect this is why despite being in theory superior to Snow due to having B-
frames, it often comes out worse.
5. Dirac's current implementation is not very good to begin with.
6. And it's slow as hell (OBMC + 8-tap motion compensation -> insanely
slow).”
Ben Waggoner                     (Silverlight Video Strategist, Microsoft)


“The nut no one has cracked has been to get decent motion estimation with a
wavelet codec, while DCT is very good at that: small blocks + block based
motion estimation are a great match. A wavelet transform touches a much
bigger image area, so motion doesn't map to the transform at all.

So, near as I can tell is that wavelet codecs bet that wavelets > dct for intra by
a big enough margin that dct > wavelets for inter won't matter that much.

However, if you think about the average video encode, what's the ratio of bits
spent on intra blocks to predicted blocks? And lets say you made the intra
blocks 2x as efficient while reducing the efficiency of predicted blocks by
20%? Probably still a lousy deal.

And wavelet motion estimation is more than 20% less efficient than the best
dct motion estimation, while wavelet intra coding isn't anywhere near 2x as
efficient as the best dct intra coding.”
Quellen
   http://diracvideo.org
       http://diracvideo.org/download/press/diracoverview-ibc2008.pdf
       http://diracvideo.org/download/specification/dirac-spec-latest.pdf
       http://diracvideo.org/download/specification/diracpro-spec-latest.pdf
   http://www.bbc.co.uk/rd/projects/dirac/index.shtml
   http://dirac.sourceforge.net/documentation/algorithm/algorithm/toc.htm
   http://www.numediatechnology.com/
   http://hdmasters2007.com/pdf/Presentations/HDM2007_Wilson-HDDC.pdf

Mais conteúdo relacionado

Destaque (20)

Equipos
EquiposEquipos
Equipos
 
87. guía para evaluar protocolos de investigación clínica (1)
87. guía para evaluar protocolos de investigación clínica (1)87. guía para evaluar protocolos de investigación clínica (1)
87. guía para evaluar protocolos de investigación clínica (1)
 
Presentacion diplomado
Presentacion diplomadoPresentacion diplomado
Presentacion diplomado
 
Aprendizaje Signifcativo
Aprendizaje SignifcativoAprendizaje Signifcativo
Aprendizaje Signifcativo
 
Spanish winter holidays
Spanish winter holidaysSpanish winter holidays
Spanish winter holidays
 
Texto de esperanza aguirre.
Texto de esperanza aguirre.Texto de esperanza aguirre.
Texto de esperanza aguirre.
 
Classic goes Web 2.0
Classic goes Web 2.0Classic goes Web 2.0
Classic goes Web 2.0
 
Comprar en internet
Comprar en internetComprar en internet
Comprar en internet
 
Manuscrito
ManuscritoManuscrito
Manuscrito
 
Bid resposta
Bid respostaBid resposta
Bid resposta
 
Protocolo analisis
Protocolo analisisProtocolo analisis
Protocolo analisis
 
Ppt balihai
Ppt balihaiPpt balihai
Ppt balihai
 
Redes
RedesRedes
Redes
 
Diversidad cultural en mexico
Diversidad cultural en mexicoDiversidad cultural en mexico
Diversidad cultural en mexico
 
Borrador de Agenda Comisión de Hacienda 89 09 06-14
Borrador de Agenda Comisión de Hacienda  89 09 06-14Borrador de Agenda Comisión de Hacienda  89 09 06-14
Borrador de Agenda Comisión de Hacienda 89 09 06-14
 
Qué es la educación
Qué es la educaciónQué es la educación
Qué es la educación
 
Medidas especiales circulacion 2012
Medidas especiales circulacion 2012Medidas especiales circulacion 2012
Medidas especiales circulacion 2012
 
Musica siglo xx
Musica siglo xxMusica siglo xx
Musica siglo xx
 
Bahena
BahenaBahena
Bahena
 
Revista (reparado)
Revista (reparado)Revista (reparado)
Revista (reparado)
 

Semelhante a The Dirac Video CoDec

Videokompression
VideokompressionVideokompression
Videokompression
hcycon
 
Mtv 10-streaming
Mtv 10-streamingMtv 10-streaming
Mtv 10-streaming
bhtol
 
KODAK Demofilm "It's T-Time"
KODAK Demofilm "It's T-Time"KODAK Demofilm "It's T-Time"
KODAK Demofilm "It's T-Time"
Holger Schwaerzel
 
Nano dvr bedienungsanleitung
Nano dvr bedienungsanleitungNano dvr bedienungsanleitung
Nano dvr bedienungsanleitung
hanknumb
 

Semelhante a The Dirac Video CoDec (20)

Lexikon Der Videoformate
Lexikon Der VideoformateLexikon Der Videoformate
Lexikon Der Videoformate
 
IMAI HD Video 2011 - Excerpt
IMAI HD Video 2011 - ExcerptIMAI HD Video 2011 - Excerpt
IMAI HD Video 2011 - Excerpt
 
How-to Video heute: im Web, mobile und überhaupt
How-to Video heute: im Web, mobile und überhauptHow-to Video heute: im Web, mobile und überhaupt
How-to Video heute: im Web, mobile und überhaupt
 
Datenblatt Conference 200 Deutsch
Datenblatt Conference 200 DeutschDatenblatt Conference 200 Deutsch
Datenblatt Conference 200 Deutsch
 
Videokompression
VideokompressionVideokompression
Videokompression
 
How-to Video heute: im Web, mobile und überhaupt
How-to Video heute: im Web, mobile und überhauptHow-to Video heute: im Web, mobile und überhaupt
How-to Video heute: im Web, mobile und überhaupt
 
Mtv 10-streaming
Mtv 10-streamingMtv 10-streaming
Mtv 10-streaming
 
KODAK Demofilm "It's T-Time"
KODAK Demofilm "It's T-Time"KODAK Demofilm "It's T-Time"
KODAK Demofilm "It's T-Time"
 
State of TV - Stand der Vortragsaufzeichnung 11/2017
State of TV - Stand der Vortragsaufzeichnung 11/2017State of TV - Stand der Vortragsaufzeichnung 11/2017
State of TV - Stand der Vortragsaufzeichnung 11/2017
 
Nano dvr bedienungsanleitung
Nano dvr bedienungsanleitungNano dvr bedienungsanleitung
Nano dvr bedienungsanleitung
 
Vorträge aufzeichnen ohne Nachbearbeitung
Vorträge aufzeichnen ohne NachbearbeitungVorträge aufzeichnen ohne Nachbearbeitung
Vorträge aufzeichnen ohne Nachbearbeitung
 
Screencast mit Camtasia
Screencast mit CamtasiaScreencast mit Camtasia
Screencast mit Camtasia
 
Mpeg7 und Mpeg21
Mpeg7 und Mpeg21Mpeg7 und Mpeg21
Mpeg7 und Mpeg21
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
BIT II SoSem 2015 | Basisinformationstechnologie II - 08_Video und Audio
BIT II SoSem 2015 | Basisinformationstechnologie II - 08_Video und AudioBIT II SoSem 2015 | Basisinformationstechnologie II - 08_Video und Audio
BIT II SoSem 2015 | Basisinformationstechnologie II - 08_Video und Audio
 
SoSe 2013 | Basisinformationstechnologie II - 07_Video / Audio: Kompressionsv...
SoSe 2013 | Basisinformationstechnologie II - 07_Video / Audio: Kompressionsv...SoSe 2013 | Basisinformationstechnologie II - 07_Video / Audio: Kompressionsv...
SoSe 2013 | Basisinformationstechnologie II - 07_Video / Audio: Kompressionsv...
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
Videotechnik im web
Videotechnik im webVideotechnik im web
Videotechnik im web
 
Datenblatt Team 200 Deutsch
Datenblatt Team 200 DeutschDatenblatt Team 200 Deutsch
Datenblatt Team 200 Deutsch
 
3d mit Python (PythonCamp)
3d mit Python (PythonCamp)3d mit Python (PythonCamp)
3d mit Python (PythonCamp)
 

Mais de Marc Seeger

Lunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and CapybaraLunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and Capybara
Marc Seeger
 
Communitygetriebe Android Systementwicklung
Communitygetriebe Android SystementwicklungCommunitygetriebe Android Systementwicklung
Communitygetriebe Android Systementwicklung
Marc Seeger
 
Eventdriven I/O - A hands on introduction
Eventdriven I/O - A hands on introductionEventdriven I/O - A hands on introduction
Eventdriven I/O - A hands on introduction
Marc Seeger
 
Key-Value Stores: a practical overview
Key-Value Stores: a practical overviewKey-Value Stores: a practical overview
Key-Value Stores: a practical overview
Marc Seeger
 
Security In Dect
Security In DectSecurity In Dect
Security In Dect
Marc Seeger
 

Mais de Marc Seeger (17)

DevOps Boston - Heartbleed at Acquia
DevOps Boston - Heartbleed at AcquiaDevOps Boston - Heartbleed at Acquia
DevOps Boston - Heartbleed at Acquia
 
The current state of anonymous filesharing
The current state of anonymous filesharingThe current state of anonymous filesharing
The current state of anonymous filesharing
 
Lunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and CapybaraLunch and learn: Cucumber and Capybara
Lunch and learn: Cucumber and Capybara
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
building blocks of a scalable webcrawler
building blocks of a scalable webcrawlerbuilding blocks of a scalable webcrawler
building blocks of a scalable webcrawler
 
Communitygetriebe Android Systementwicklung
Communitygetriebe Android SystementwicklungCommunitygetriebe Android Systementwicklung
Communitygetriebe Android Systementwicklung
 
Eventdriven I/O - A hands on introduction
Eventdriven I/O - A hands on introductionEventdriven I/O - A hands on introduction
Eventdriven I/O - A hands on introduction
 
Alternative Infrastucture
Alternative InfrastuctureAlternative Infrastucture
Alternative Infrastucture
 
Communitygetriebene Android Systemerweiterungen
Communitygetriebene Android SystemerweiterungenCommunitygetriebene Android Systemerweiterungen
Communitygetriebene Android Systemerweiterungen
 
Key-Value Stores: a practical overview
Key-Value Stores: a practical overviewKey-Value Stores: a practical overview
Key-Value Stores: a practical overview
 
ZFS
ZFSZFS
ZFS
 
Anonimität - Konzepte und Werkzeuge
Anonimität - Konzepte und WerkzeugeAnonimität - Konzepte und Werkzeuge
Anonimität - Konzepte und Werkzeuge
 
Security In Dect
Security In DectSecurity In Dect
Security In Dect
 
Social Media in der Unternehmenskommunikation
Social Media in der UnternehmenskommunikationSocial Media in der Unternehmenskommunikation
Social Media in der Unternehmenskommunikation
 
xDSL, DSLAM & CO
xDSL, DSLAM & COxDSL, DSLAM & CO
xDSL, DSLAM & CO
 
Ruby Xml Mapping
Ruby Xml MappingRuby Xml Mapping
Ruby Xml Mapping
 
HdM Stuttgart Präsentationstag PPTP VPN WLAN Update
HdM Stuttgart Präsentationstag PPTP VPN WLAN UpdateHdM Stuttgart Präsentationstag PPTP VPN WLAN Update
HdM Stuttgart Präsentationstag PPTP VPN WLAN Update
 

The Dirac Video CoDec

  • 1. Seminar - Multimedia Codecs 2009 MARC SEEGER CLEMENS KERN BENJAMIN GUTBROD MS241 NK035 BG019
  • 4. Was ist Dirac? Paul Dirac  Paul Dirac  Britischer Physiker  Mitbegründer der Schrödinger Quantentheorie  1933 Nobelpreis für Beitrag zu Quantentheorie
  • 5. Was ist Dirac?  Laut Entwickler-Homepage  “Dirac is a general-purpose video compression family suitable for everything from internet streaming to HDTV”  Laut offiziellem Pressebericht  “(…) a cost effective, multi-platform open source compression codec for hardware and software, from web formats to ultra high definition post production”
  • 6. Allgemeines  Video-Kompressions-Familie  Breite Palette von Tools (ähnlich wie Mpeg4)  Bestimmte Applikationen benötigen i.d.R. nur Untermenge dieser Tools -> Profile  Standardkonforme Geräte implementieren nur bestimmte Profile
  • 7. Allgemeines  Auflösungen, u.a.  QCIF (180 x 144)  HDTV (1.920 x 1.080)  Digital Cinema 4k (4096 × 2160)  Ultra HDTV (7680 x 4320) mobile streaming (full) HDTV Digital Cinema
  • 8. Allgemeines QCIF DVD HDTV 720p HDTV 1080p (1920 x 1080) Digital Cinema (4096 x 2160) Ultra High Definition Video (7680 x 4320)
  • 9. Allgemeines  Kompression:  Verlustfrei / optisch verlustfrei  Verlustbehaftet  Leistung vergleichbar mit aktuellen Codecs  H264/MPEG-4 AVC und VC-1  Bitraten von unter 100kbit/s – über 1Gbit/s ++
  • 10. Allgemeines  Technologie  Wavelet Transformation  Statt DCT wie bei MPEG1,2,4  Motion Compensation  Überlappende Blöcke reduzieren Block- Artefaktbildung  Arithmetische Codierung  Verlustfreie Datenkompression
  • 11. Allgemeines  Profile  Dirac für bestimmte Aufgaben optimieren, z.B.  Verteilung und Übertragung  Hohe Kompression  Post Production  Hohe Qualität  Live Broadcasting  Geringe Latenz  usw…  Vordefinierte Einstellungen bestimmter Parameter
  • 12. Allgemeines  Unterstützte Container  AVI  MKV  ISOM (MP4, Quicktime)  OGG  MXF
  • 13. Wer hat es Entwickelt?  British Broadcasting Corporation (BBC)  In Kingswood Warren, UK  Projektleiter:  Tim Borer  Algorithmus Guru:  Thomas Davies
  • 14. Wer hat es Entwickelt?  British Broadcasting Corporation (BBC)  50 Jahre Erfahrung mit Kompressions-Technologie und digitalem TV  Wünscht sich Zusammenarbeit mit  OpenSource Community  Akademikern  Sonstigen Helfern  Open Technology
  • 15. Wer hat es Entwickelt?  Wie alles begann…  2001 - Thomas Davies experimentiert mit Kompressionstechniken  Sein Ziel: HD Services auf Basis von MPEG-2 Broadcasts   Dirac war geboren…
  • 16. Wer hat es Entwickelt?  Mittlerweile Einstieg von Hardwarefirmen  Numedia Technology  Encoder + Decoder  Dirac Pro 1.5  Dirac Pro 270
  • 17. Warum wurde es entwickelt?  Grund für die Entwicklung  Lizenzgebühren proprietärer Codecs  Damals bereits 50 000 Streams  hohe Kosten  Geplante Erweiterung auf 50 000 000+ Streams  Abhängigkeit von den Entwicklern  Unnötige Features  Lange Release-Zyklen
  • 18. Warum wurde es entwickelt?  Philosophie  Keep it simple!  Einfaches und modulares Design  Warum?  Zusammenarbeit verschiedener Gruppen soll ermöglicht bzw. erleichtert werden
  • 19. Warum wurde es entwickelt?  Ziele der Entwicklung  Lizenzfreier hocheffizienter Codec  von Streaming bis zu High-End Qualität  Möglichst hohe Kompressionsrate ohne Artefaktbildung  Mit anderen komplexen "State of the Art" Codecs mithalten (trotz einfachem Design)
  • 20. Besonderheiten  Zukunftssicher  Unabhängig von einzelnen Firmen  Komplett lizenzfrei  Im Sinn von Lizenzgebühren  Individuell anpassbar  Kann auf jedes Einsatzgebiet zugeschnitten werden
  • 21. Features  Auflösungen von QCIF bis UHDTV  Inter- / Intraframe Codierung  Frame- / Field Codierung  Konstante / variable Bitraten
  • 22. Features  Verschiedene Wavelet-Filter  Performance  Komplexität  Variable Farb-/Kanaltiefe  8, 10, 12 und 16 bit  Verschiedene Farbmodelle  RGB & YUV 4:4:4 / 4:2:2 / 4:2:0
  • 23. Chroma Formats 4:4:4 Y RGB Cb Cr
  • 24. Chroma Formats 4:2:2 4:2:0 1/2 weniger Daten 1/3 weniger Daten
  • 25. Features  Anpassbares Bildseitenverhältnis  Variable Bildwiederholrate  von 23,97 bis 60 fps  Einfache Streamnavigation  Bildnummern (32 Bit)  Doppelt verkettete Listen
  • 26. Features  Multiresolution Transformation  Dual Syntax  Konvertierung RGB in YUV
  • 28. Dirac Research  Referenzimplementierung in C++  V1.0 – September 2008  V1.2 – Februar 2009  Laut BBC „State of the Art“ Qualität und Performance bei hoher Kompressionsrate
  • 29. Dirac Research  Technologie  Inter-Frame Wavelet-Transformation  Long-GOP (optional)  Arithmetische Codierung  Ziel  Maximale Kompressions-Effizienz
  • 30. Dirac Research  Anwendungsgebiete  Internet/Mobile Streaming  Embedded Video auf Webseiten  Video on Demand (Streaming)
  • 32. Dirac Pro  Implementiert in C  Spezielle Version von Dirac, optimiert für  Professionelle Produktion  Archivierungsanwendungen  Einsatz in Film-Studios / Broadcast-Zentren  Standardisiert durch SMPTE als VC-2
  • 33. Dirac Pro  Anforderungen  Hohe Bild-Qualität  Verlustfreie Kompression  Hohe Bitraten  Sehr geringe Latenz  Erfordert höhere Bandbreiten (Mbit/s – Gbit/s)
  • 34. Dirac Pro  Unterschied zu Dirac Research  Intra-Frame Wavelet-Transformation  Ermöglicht framegenaue Editierung  Exponential-Golomb Codierung  Ermöglicht sehr hohe Bitraten  Keine Arithmetische Codierung  Niedrige Latenz  Bessere Performance
  • 35. Dirac Pro  Anwendungsgebiete  Post Production  Digital Cinema Mastering  Archivierung
  • 36. Dirac Pro  Ermöglicht Übergang zu HD-Produktion  Übertragung von  Full HD-Signale über standard HD-Infrastruktur HD 1080p Dirac Pro HD 1080p 3Gbit/s 1.5Gbit/s  HD-Signale über bestehende SD-Infrastruktur HD 720p Dirac Pro HD 720p 1.5Gbit/s 270mbit/s
  • 37. Dirac Pro 1.5  Full HDTV (1080P) über konv. HD-Infrastruktur  (1,5Gbit/s HD-SDI)  Komprimierungsverhältnis von 2:1  Quasi verlustfrei  Sehr geringe Latenz: << 1ms (end to end)  Geplanter Einsatz bei Olymp. Spielen 2012
  • 38. Dirac Pro 270  HDTV (720p) über SD-Infrastruktur  (270Mbit/s SD-SDI)  Stärkere Komprimierung als bei Dirac Pro 1.5  Nur optisch verlustfrei  Geringe Latenz: < 3ms (end to end)  Erfolgreich eingesetzt bei Olymp. Spielen 2008
  • 40. Schrödinger Projekt  Implementiert in ANSI C  V1.00 – Februar 2008  V1.07 – April 2009  Optimierte Implementierung der Dirac- Spezifikation  Finanziert durch BBC
  • 41. Schrödinger Projekt  Ziele  Unterstützung von Dirac in Multimedia- Anwendungen beschleunigen  Codier-Performance erhöhen  Auf Kosten der Bild-Qualität
  • 42. Schrödinger Projekt  David Schleef, Leitender Entwickler: “…you either get slow and good (dirac-research) or fast and crappy (Schrödinger)"
  • 43. Schrödinger Projekt Dirac playback compatibility matrix MPEG Raw Ogg Transport AVI Matroska MOV / MP4 Bitstream Stream GStreamer / Yes Yes Yes Yes Yes Yes Totem FFMpeg / Yes No Yes Yes Yes Yes FFplay MPLAYER Yes No Yes Yes Yes Yes VLC 1.0 Yes Yes Yes Yes (?) Yes (?) Yes (?) DirectShow/ Yes Yes Windows (unrelease No WIP No No (unreleased) Media Player d) QuickTime Yes Player / No No No No No (unreleased) OSX Quelle: http://www.diracvideo.org/wiki/index.php/Dirac_Compatibility_Matrix
  • 44. Lizenzierung  Freier Videocodec  MPL 1.1  Keine Patente auf Seiten der BBC an Dirac  Keine Verwendung von patentierten Technologien Dritter Dirac auch mit GPL und LGPL Lizenz Schrödinger zusätzlich mit MIT Lizenz
  • 45. Lizenzierung  GPL (GNU General Public License)  Erlaubt keine Einbindung in proprietäre Software  LGPL (GNU Lesser General Public License)  Erlaubt indirekte Einbindung in proprietäre Software  MPL (Mozilla Public License)  Erlaubt Verbindung mit proprietärem Code, der sich in separaten Dateien befindet, aber gemeinsam kompiliert wird  MIT (Massachusetts Institute of Technology )  Erlaubt direkte Einbindung in proprietärerSoftware
  • 48. Input Y: luma U: chroma V: chroma ≈YCbCr
  • 49. RGB Input? RGB ITU-T H.264 residual color transform YCoCg
  • 51. Wavelet Transformation redo() links oben: Level-4-Tiefpass Zeilen Spalten des Tiefpass- Links:Tiefpass, Anteils gefiltert Rechts: Hochpass (links oben Level-2-Tiefpass, links unten Level-2-Hochpass) Quelle: http://user.cs.tu-berlin.de/~rammelt/wavelets/index.html
  • 53. Wavelets vs DCT DCT DWT
  • 54. A wavelet is a wavelet is a ... Wavelet Usage Deslauriers-Dubuc (9,3) default intra-frame filter LeGall (5,3) default inter-frame filter Deslauriers-Dubuc (13,7) Haar with no/single/double shift per level Fidelity filter improved downconversion and anti-aliasing Daubechies (9,7) compatibility with JPEG 2000
  • 56. Quantisation DWT = lossless! But we haven‘t got bits to spare...
  • 57. dead-zone quantiser Vorteil: • mehr quantisation der kleinen Werte  de-noising • implementation: teile mit Qunatisierungsfaktor und runde ab. (In Dirac: näherungsweise via multiplication +bitshift.) (N-0.5) * D  (N+0.5) * D >0: N*D  (N+1)*D <0: (N-1)*D  N*D
  • 58. Quantisation The current Dirac encoder uses an RDO technique to pick a quantiser by minimising a Lagrangian combination of rate and distortion. Rate is estimated via a an adaptively-corrected measure of zeroth-order entropy measure Ent(q) of the quantised symbols resulting from applying the quantisation factor q, calculated as a value of bits/pixel. Distortion is measured in terms of the perceptually- weighted error fourth-power error E(q,4), resulting from the difference between the original and the quantised coefficients
  • 59. Quantisation Essentially, lots of quantisers are tried and the best* one is picked *rate-distortion framework
  • 60. Coefficient scanning Eigene Quantisierungs- faktoren für Codeblocks statt ein einzelner Faktor pro Subband
  • 61. Low Delay Quantisierung Für die low delay syntax werden die Koeffizienten jedes Subbandes in ein Array von “lokalen” Wavelets angeordnet dass sich “Slice” nennt. Jeder Slice korrespondiert mit einer Region des Originalbildes (in Frequenzen zerlegt).
  • 63. Quantisierung des DC Subbandes Koeffizienten basieren im DC Subband auf Vorhersagen!  mögliche Artefakte
  • 67. Motion Estimation Bild zur Zeit t Bild zur Zeit t‘
  • 68. Motion Estimation  p  ( x, y, t )   wi p( x  u, y  v, t ' ),  wi  1 i i Suchen und minimieren von SAD (SSD, MSE etc.)
  • 70. 1. Stufe - Search Hierarchische Suche
  • 71. 1. Stufe - Search Guide
  • 72. 1. Stufe - Search  Probleme  Sehr kleine Bewegungen  Viele unterschiedliche Bewegungen
  • 73. 1. Stufe - Search  Lösung:  Null-Vektor als zusätzlichen Guide  Optimierung:  Schon gefundene Nachbarvektoren als Guides
  • 74. 2. Stufe - Refinement Subpixel-Genauigkeit
  • 75. 2. Stufe - Refinement 4 facher Upscale => 16 fache Datenmenge
  • 76. 3. Stufe – Mode Decision Längen-Differenz zwischen Vektoren übertragen
  • 77. 3. Stufe – Mode Decision Rotation zwischen Vektoren übertragen
  • 78. 3. Stufe – Mode Decision Aggregieren
  • 79. 3. Stufe – Mode Decision Aggregieren
  • 83. Codierung  Exponential Golomb Binarisation  Arithmetic Coding
  • 85. Exp. Golomb - Encode  Schreibe Zahl binär 1111  Lasse K-Bits weg (K=0) 1111  Addiere 1 (arithm.) 10000  Zähle Binärzeichen N N = 5  Hänge N-1 Nullen vorne an 000010000  Schreibe K-Bits hinten an 15 -> 000010000
  • 86. Exp. Golomb - Encode  Schreibe Zahl binär 11 1111  Lasse K-Bits weg (K=2) 11  Addiere 1 (arithm.) 100  Zähle Binärzeichen N N = 3  Hänge N-1 Nullen vorne an 00100  Schreibe K-Bits hinten an 0010011 15 -> 0010011
  • 87. Exp. Golomb - Decode  Zähle Nullen bis zur ersten 1, N=2 lese N+1+K Bits weiter 11 10011  Lasse K-Bits weg (K=2) 100  Ziehe 1 ab (arithm.) 011  Schreibe K-Bits hinten an 11 1111 0010011 -> 15
  • 88. Exp. Golomb - Interleaved  Schreibe Zahl (13) binär 1101  Lasse K-Bits weg (K=0) 1101  Addiere 1 (arithm.) 1110  Interleaving 13 -> 010101001 0 => es kommen noch weitere Bits 1 => Ende
  • 89. Arithmetische Codierung Zu codierendes Wort: 0001 0 0.75 1 0 1 0 0.5625 0.75 0 1 0 0.421875 0.5625 0 1 0 0.316406 0.421875 0 1 Wähle Zahl aus letzem Intervall => 0.375
  • 90. Arithmetische Codierung Warum gerade 0.375? 2-1 0.5 0 2-2 0.25 1 0.25 2-3 0.125 1 0.25 + 0.125 = 0.375 Übertrage 011
  • 91. Arithmetische Codierung Warum so gut? I(0) = 0.415 Bits I(1) = 2 Bits Zeichenkette 0001 hat Informationsgehalt 3.245 Bits
  • 92. Arithmetische Codierung Probleme? Wtf?  0.63646624589264 4687348434884555 5445224785599876 63322124157961
  • 93. Arithmetische Codierung Ratter ratter…. zzZZZ.. Low Delay??
  • 95. Denoiser Centre-weighted 3x3 median 3 5 10 [3, 3, 5, 6, 7, 9, 10, 23, 23 60 3 60, 60, 60, 60, 60] 6 7 9 3 5 10 23 10 3 6 7 9
  • 97. Setup Linux 64 Bit liboil-0.3.16.tar.gz 19-Mar-2009 14:12 836K schroedinger-1.0.7.tar.gz 22-Apr-2009 20:56 857K dirac-1.0.2.tar.gz 11-Feb-2009 19:42 897K ffmpeg: SVN vom 15. Juni 09 x264: SVN vom 15. Juni 09 FFMPEG: ./configure --enable-libdirac --enable-libschroedinger --enable-libx264 --enable-gpl --> FFmpeg version SVN-r19200, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --enable-libdirac --enable-libschroedinger --enable-libx264 --enable-gpl libavutil 50. 3. 0 / 50. 3. 0 libavcodec 52.31. 2 / 52.31. 2 libavformat 52.34. 0 / 52.34. 0 libavdevice 52. 2. 0 / 52. 2. 0 libswscale 0. 7. 1 / 0. 7. 1 built on Jun 15 2009 18:19:46, gcc: 4.3.3
  • 98. Australia Australia Original Input: australia.mkv VIDEO: [avc1] 1920x816 24bpp 23.976 fps, Avg Bitrate 6252 kbit/s Verlustfrei Transcodiert: $ mencoder australia.mkv -ovc lavc -lavcopts vcodec=ffvhuff:vstrict=- 1:pred=2:context=1:format=422p -nosound -o australia_huff.mkv --> Video stream: 165493.422 kbit/s (20686677 B/s) size: 656597040 bytes (627M) 31.740 secs 761 frames
  • 99. Family Guy Intro x264 720x544 avg: 1180 kbit/s
  • 100. Encoding Parameter resolution bitrate codec ffmpeg -i input.mkv -vcodec libschroedinger -s 720x480 -b 2000k output.mkv ffmpeg -i input.mkv -vcodec libx264-s 720x480 -b 2000k output.mkv
  • 101. DEMO
  • 103. Dark Shikari (x264 developer) (28th May 2009, 16:44 ) “1. Wavelets suck, visually. Nobody has found a way around this yet. One could say they have a high ratio of PSNR to visual quality 2. Wavelets suck for intra coding compared to H.264's intra prediction. Hence why JPEG-2000 comes out worse than JPEG. 3. Dirac has constant-size partitions, either 8x8 or 16x16, because they couldn't find a good way to mix them in OBMC. (Overlapped block-based motion compensation) 4. Dirac has a pretty crappy entropy coder (far fewer contexts than H.264!). I suspect this is why despite being in theory superior to Snow due to having B- frames, it often comes out worse. 5. Dirac's current implementation is not very good to begin with. 6. And it's slow as hell (OBMC + 8-tap motion compensation -> insanely slow).”
  • 104. Ben Waggoner (Silverlight Video Strategist, Microsoft) “The nut no one has cracked has been to get decent motion estimation with a wavelet codec, while DCT is very good at that: small blocks + block based motion estimation are a great match. A wavelet transform touches a much bigger image area, so motion doesn't map to the transform at all. So, near as I can tell is that wavelet codecs bet that wavelets > dct for intra by a big enough margin that dct > wavelets for inter won't matter that much. However, if you think about the average video encode, what's the ratio of bits spent on intra blocks to predicted blocks? And lets say you made the intra blocks 2x as efficient while reducing the efficiency of predicted blocks by 20%? Probably still a lousy deal. And wavelet motion estimation is more than 20% less efficient than the best dct motion estimation, while wavelet intra coding isn't anywhere near 2x as efficient as the best dct intra coding.”
  • 105. Quellen  http://diracvideo.org  http://diracvideo.org/download/press/diracoverview-ibc2008.pdf  http://diracvideo.org/download/specification/dirac-spec-latest.pdf  http://diracvideo.org/download/specification/diracpro-spec-latest.pdf  http://www.bbc.co.uk/rd/projects/dirac/index.shtml  http://dirac.sourceforge.net/documentation/algorithm/algorithm/toc.htm  http://www.numediatechnology.com/  http://hdmasters2007.com/pdf/Presentations/HDM2007_Wilson-HDDC.pdf