Projektseminar Bildverarbeitung – Image Processing Projektseminar

Transcription

Projektseminar Bildverarbeitung – Image Processing Projektseminar
Forum
http://forum.uni-duisburg.de/
Projektseminar Bildverarbeitung – Image Processing
Guido H. Bruck
guido.bruck@kommunikationstechnik.org
Kommunikations
Technik
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 1
1.04.2012
Projektseminar (Praktikum) Bildverarbeitung – Image Processing
Guido H. Bruck
Bildverarbeitung - Folie 3
1.04.2012
Anwendung von Bilddatenkompressionsverfahren

Wahlpflichtfach

Projektseminar „Anwendung von Bilddatenkompressionsverfahren“
•
Kennenlernen von verschiedenen Verfahren zur Bilddatenkompression

MPEG-1, -2, -4, Realmedia, Windows Media etc.
•
Software finden

Jede Gruppe ein Verfahren
•
Software installieren

Besprechung und Vorträge der Gruppen bei Treffen
•
Bildsequenzen für verschiedene Parameter codieren

Anmeldung online bis zum 12.4.2013 unter
www.kommunikationstechnik.org
•
Bildqualitäten vergleichen

Freitags von 11:00 Uhr -14:00 Uhr, Beginn 19.4.2013, Raum BB130
•
Ziel: Welches Verfahren ist derzeit das geeignetste für welche Parameter und ...
•
Quelle: c‘t 10/2001, S. 122ff ; c‘t 10/2003 S. 146ff ; c‘t 10/2005 S. 146ff
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 2
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 4
1.04.2012
1
Testsequenzen zur Bildcodierung
Vorgehensweise
•
•
•
•
•
•
Gesamtprojekt in Teilprojekte aufspalten
Gruppen von Studenten bilden
Teilprojekte den Studentengruppen zuordnen. Jede Studentengruppe
bearbeitet ein Teilprojekt selbständig
Jede Woche berichtet jede Gruppe mit einem kurzen Vortrag über den
Fortgang der Arbeiten, stellt Fragen zur Diskussion und sammelt Vorschläge
ein.
Die Präsentation fasst jede Gruppe auf „Papier“ zusammen und stellt sie allen
anderen Gruppen zur Verfügung
Am Ende des Semesters haben wir das Gesamtprojekt bearbeitet und die
Fragen gelöst.
Kommunikations
Technik
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 5
1.04.2012
Guido H. Bruck
Bildverarbeitung - Folie 7
1.04.2012
Interessierende Bildgrößen und Datenraten
Verfahren zur Untersuchung
•
•
•
Bildgrößen
Video-Quellmaterial 720 x 576 Bildelemente
Reduziertes Video-Quellmaterial 544 x 432 Bildelemente
Source Input Format 352 x 288 Bildelemente
Quarter SIF 176 x 144
Datenraten
von 2MBit/s (LAN) bis 50kBit/s (ISDN, Modem, Mobil?)
•
•
•
•
•
•
•
MPEG-1, MPEG-2:
Tsunami MPEG-Encoder:
DivX-3.11
DivX-6:
RealVideo:
Windows Media Video 9:
MediaRig:
On2:
Xvid
http://www.tmpgenc.net/
http://www.divx-digest.com
http://www.divxnetworks.com
http://www.realnetworks.com
http://www.microsoft.com/windows/windowsmedia
http://www.ligos.com/
http://www.on2.com/
http://www.xvid.org/
http://www.netzwelt.de/software/3384-xvid-codec.html/
http://www.netzwelt.de/software/3585-xvid-codec-koepi.html/
http://www.netzwelt.de/software/3407-xvid-codec-nics.html
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 6
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 8
1.04.2012
2
Vorgehensweise
Gruppeneinteilung I
•
•
•
•
•
•
•
•
•
•
Informationen zu Codierungsprogramm im Internet finden, lesen, nötige
Software herunterladen
Software auf PC installieren nach Absprache
Software in Betrieb nehmen
Verschiedene Bildsequenzen mit unterschiedlichen Parametereinstellungen
codieren und beurteilen
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 9
1.04.2012
Weitere interessante Internet-Seiten mit interessanter Software
•
•
•
•
•
•
•
•
Pro Gruppe bis zu 5 Teilnehmer
Gruppe 1 MPEG-1, MPEG-2
Gruppe 2 RealVideo
Gruppe 3 Windows Media Series 9
Gruppe 4 DivX-6, DivX-3.11
Gruppe 5 H.264/AVC
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 11
1.04.2012
H.264/AVC
http://forum.doom9.org/showthread.php?s=95e4af6393a64adbc027f77ac360fef7&threadid=73022
Digital Digest
http://www.digital-digest.com/
Vcd-Helper
http://www.vcdhelp.com/
Tha video capturing source
http://home.swipnet.se/~w-129483/
Virtual Dub
http://www.virtualdub.org/
http://forum.dvdboard.de/
http://www.videotools.net/
http://www.math.berkeley.edu/~benrg/index.html
http://www.doom9.org/
x264
http://de.wikipedia.org/wiki/X264
mpegable
mpegable provides a free VFW AVC/H.264 Enc/Decoder (not based on the reference), which uses P-Frames only
http://mpegable-x4-live.softonic.de/
MainConcept
MainConcept's AVC/H.264 implementation (based on the reference software?) is currently available as a free
preview version (adds a watermark)
http://www.mainconcept.com
JM (Reference Software)
The Reference Software of the AVC/H.264 standard already offers a very rich featureset
http://iphome.hhi.de/suehring/tml/
Hdot264
Hdot264 is an opensource (GPL) VFW version of the reference software, written by doom9 member charact3r
http://sourceforge.net/projects/hdot264/
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 10
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 12
1.04.2012
3
H.264/AVC
Beurteilung der Qualität von Videosignalen
http://forum.doom9.org/showthread.php?t=96059
- x264: the first publically available High Profile encoder, opensource (GPL) (Source), available for VFW: x264vfw, ffdshow (output .avi), as
commandline: x264cli (outputs .mp4, .mkv, raw), mencoder (outputs raw, .avi) (Doom9's MeGUI) or ffmpeg
x264 supports 2pass, CABAC, Loop, multiple B-Frames, B-References, multiple Reference Frames, 4x4 P-Frame, 8x8 B-Frame Blocksizes,
anamorphic signalling and High Profile: 8x8 dct and intra prediction, lossless and custom quant matrices
- NeroDigital AVC: useable in Nero Recode2, outputs .mp4
ND AVC supports 2pass, CABAC, (adaptive) Loop, multiple B-Frames, mulitple Reference Frames, weighted prediction, 8x8 P-Frame Blocksizes,
16x16 B-Frame Blocksizes, Adaptive Quant. (Psy High)
- Sorenson: useable in Sorenson Squeeze 4, outputs .mp4,
Sorenson supports 2pass, max 2 B-Frames, B-References, Loop and multiple Slices
- Apple: useable in Quicktime 7, outputs .mp4, .3gp and .mov, totally slow
uses 2pass, max 1 B-frame, Loop (0,0), P8x8,B8x8,I4x4, Adapt. Quant, 5 Slices, no CABAC, no Weighted Pred., no multi Ref.
- JM: The AVC Reference Software offers in v9.3 Main and High Profile: B/SP-Frames, CABAC, Loop Filter, 4x4 Blocksizes, multiple Reference
Frames, Adaptive Quant, Error Resilience, RDO, Lossless Coding, Custom Quants, Rate Control aso...
- Hdot264: opensource (GPL) VFW version of the reference software by doom9 member charact3r, still based on a very old version of the
reference (JM 4.0c)
- VSS: free preview VFW Encoder (limited to 5 days), based on the reference encoder
- Elecard: useable in Elecard Mobile Converter, outputs .mp4 and MainConcept's v2 encoder, outputs .264 and .mpg PS/TS
not publically available anymore:
- Moonlight: useable in Moonlight's OneClick Compressor v1.1 and CyberLink's PowerEncoder, outputs .mpg
Moonlight supports 1pass (VBR/CBR/Fixed Quants), CABAC, Loop, 2 B-Frames, 8x8 P-Frame Sizes, Adapt. Quant, PAR, Interlacing
- MainConcept: was useable in the v1 encoder (adds a watermark), outputs .264 and .mpg PS/TS
1pass (CBR/VBR/fixed Quants), P-Frame Reorder, CABAC, Loop, Multiple B-Vops, Multiple Ref, 4x4 P-Frame Sizes, PAR, RDO
- mpegable: offered for some time a free VFW Encoder (not based on the reference), doesnt handle YV12
mpegable supports 1pass (fixed quants) uses P-Frames only, 8x8 P-Frame Blocksizes, CAVLC only, Loop
- Envivio: useable in 4Coder, outputs .mp4
Kommunikations
Technik
•
•
•
•
•
•
•
Beurteilung auf der 5-stufigen „Impairment scale“ nach ITU-R BT 500
5.0 = transparent (this should be the original signal)
4.0 = perceptible, but not annoying (first differences noticable)
3.0 = slightly annoying
2.0 = annoying
1.0 = very annoying
to annoy = stören, ärgern, lästig sein
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 13
1.04.2012
Guido H. Bruck
Bildverarbeitung - Folie 15
1.04.2012
Grundlagen
Beurteilung der Qualität von Videosignalen
•
•
•
•
•
Bildqualitätsbeurteilung, Untersuchungsparameter
Irrelevanzreduktion
Zeilensprung (Interlace)
Beispiel für Bilddatenkompression
– Pixelanzahlen
– Abtastformate
– MPEG-Codierung
Testsequenzen bei unterschiedlichen Datenraten beurteilen
5
Reihe2
4,5
Reihe4
Reihe6
4
3,5
3
2,5
2
1,5
1
0,5
0
0
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 14
1.04.2012
Kommunikations
Technik
100
200
300
400
500
600
700
800
900
Guido H. Bruck
Bildverarbeitung - Folie 16
1.04.2012
4
1.4.2 Nutzung der Unvollkommenheiten des menschlichen
Gesichtssinns zur Irrelevanzreduktion
Beurteilung der Qualität von Videosignalen
•
•
Testsequenzen bei unterschiedlichen Datenraten beurteilen
– 2MBit/s
720x576 Pixel,
25fps
– 1MBit/s
720x576 Pixel, 352x288 Pixel, 25fps
– 500 kBit/s 720x576 Pixel, 352x288 Pixel, 25fps
– 300 kBit/s 720x576 Pixel, 352x288 Pixel, 25fps
– 150 kBit/s
352x288 Pixel, 25fps
– 64 kBit/s
352x288 Pixel, 25fps
Datenrate R:
R
S
 1
n  25 
 s

S  25
n s
Prinzip der Standard-Bildzerlegung in zwei Teilbilder:
S=Dateigröße
n=Anzahl der Bilder in der Sequenz
Bei den eingeführten
Fernsehsystemen verwendet
man das Teilbildverfahren.
Bei ihm wird ein Vollbild in
zwei Teilbilder (Halbbilder)
zerlegt, die zeilenweise
ineinander verschachtelt sind
(Zeilensprungverfahren,
Interlace-Verfahren).
Blendenöffnung bei der Aufnahme
bzw. Leuchtfleck bei der Wiedergabe
1
2
5
6
7
8
9
10
11
Vertikalrücklauf
1. Teilbild
2. Teilbild
Kommunikations
Technik
Zerlegung in 11 “Zeilen” nach
dem Zeilensprungverfahren
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 17
1.04.2012
Guido H. Bruck
Bildverarbeitung - Folie 19
1.04.2012
3.1.1a Digitale Fernsehstandards
1.4.1 Nutzung der Unvollkommenheiten des menschlichen
Gesichtssinns zur Irrelevanzreduktion
In der elektronischen Bildübertragungstechnik nutzt man das begrenzte örtliche
Auflösungsvermögen des menschlichen Auges dadurch aus, dass man das
einzelne Bild in streifenförmige Elemente (“Zeilen” gelegentlich auch „Spalten“) mit
Breiten zerlegt, die vom menschlichen Auge aus dem
Normalbetrachtungsabstand unter einem Winkel gesehen werden, der kleiner als
1' ist und die über die Streifenbreite variierende Leuchtdichte z. B. durch deren
“Mittelwert” ersetzt.
Bei der elektronischen Bewegtbildübertragungstechnik wird zusätzlich das
begrenzte zeitliche Auflösungsvermögen des menschlichen Gesichtssinns dadurch
ausgenutzt, dass man eine begrenzte Anzahl von Bildern pro Zeiteinheit überträgt.
Bei digitalen Bildübertragungsverfahren wird die Anzahl der Bits zur
Amplitudendarstellung so gewählt, dass zu einem kontinuierlichen Signal kein
Unterschied sichtbar wird.
Kommunikations
Technik
Horizontalrücklauf
3
4
Guido H. Bruck
Bildverarbeitung - Folie 18
1.04.2012
•
•
•
•
•
DVB (-S, -C, -T…)
ATSC
ISDB (-T)
ISDTV
DTMB
Europa, teilw. Andere Kontinente
USA, Korea
Japan, Brasilien
Brasilien
China
ATSC
DVB-T
ISDB-T
ISDTV
DTMB
MPEG-2
MPEG-2
MPEG-2
H.264
MPEG-2
MPEG-2 AAC
MPEG-2 AAC
H.264
MPEG-2
Video Digitization
Dolby AC-3
Audio
Digitization
Multiplexing
Signal
Transmission
Kommunikations
Technik
MPEG
MPEG
MPEG
MPEG
MPEG
8-VSB
modulation
Multiplex
COFDM
Multiplex
COFDM
Multiplex
COFDM
SCM and
MCM
Guido H. Bruck
Bildverarbeitung - Folie 20
1.04.2012
5
3.1.1b Digitale Fernsehstandards
•
•
•
•
•
•
•
•
•
•
•
•
3.1.3 Bild-Abtastformate (Vollbild-Schemata)
DVB = Digital Video Broadcast
ATSC = Advanced Telecision Systems Comitee (USA, Korea)
ISDB = Integrated Services Digital Broadcasting (Japan, Brasilien)
ISDTV = International System for Digital Television (Brasilien)
DTMB = Digital Terrestrial Television Multimedia Broadcasting (China)
MPEG = Moving Pictures Experts Group
Dolby AC-3 = Dolby Digital („Audio Coding 3“)
AAC = Advanced Audio Coding
VSB = Vestigial Side Band – Restseitenband
COFDM = Coded Orthogonal Frequency Division Multiplex
SCM = Single Carrier Modulation
MCM = Multi Carrier Modulation
4:4:4-Format:
X: Luminanz-Signal (Y) ;
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 21
1.04.2012
3.1.1c Digitales Fernsehen - SDTV
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 23
1.04.2012
3.1.4 Bild-Abtastformate (Vollbild-Schemata)
Für die digitale Übertragung von Videosignalen werden für die Übertragung im Studio
und für die Übertragung zum Endteilnehmer unterschiedliche Standards verwendet.
Standard für die Studioanwendung (ITU-R, BT.601)
Bei diesem Standard werden das Luminanzsignal (Y) und zwei Chrominanzsignale
(CR,CB) getrennt, aber in fester zeitlicher bzw. räumlicher Zuordnung zueinander
abgetastet. Die Abtastfrequenzen werden im Verhältnis 4:2:2 gewählt. Für die
Standards, denen die Parameter Z = 625 und fv = 50 Hz zugrunde liegen, gilt:
Anzahl der Abtastwerte pro Zeile Abtastfrequenz
Y:
864 (brutto) 720 (netto)
13,5MHz
CR,CB:
432 (brutto) 360 (netto)
6,75MHz
Die Signale werden einer gleichförmigen Quantisierung mit einer Auflösung
entsprechend 8 Bit unterzogen.
Im Interesse einer einfachen standardübergreifenden Konvertierbarkeit der Signale
gelten die Werte für die Abtastfrequenz und die Anzahl der Abtastwerte pro Zeile
weltweit.
Aus den o.a. Werten ergibt sich eine Gesamtdatenrate von 216 Mbit/s (brutto).
Kommunikations
Technik
: Chrominanz-Signal (CR,CB)
Guido H. Bruck
Bildverarbeitung - Folie 22
1.04.2012
4:2:2-Format:
4:2:0-Format:
X: Luminanz-Signal (Y) ;
Kommunikations
Technik
: Chrominanz-Signal (CR,CB)
Guido H. Bruck
Bildverarbeitung - Folie 24
1.04.2012
6
3.1.5 Standard für die Übertragung zum Endteilnehmer
3.1.6a Diskrete-Cosinus-Transformation (DCT)
Die in 3.1.1 genannte Datenrate ist für die Übertragung zum Endteilnehmer viel zu
hoch. Zur Senkung der Rate verwendet man eine redundanz- und
irrelevanzreduzierende Datenreduktion („Datenkompression“). Sie erfolgt
weltweit nach den sogenannten MPEG-Standards (Speziell: MPEG-2-Standard
„ISO/IEC IS 13818“).
Der MPEG-2-Standard: (MPEG: „Motion Picture Experts Group“)
Bei Bildsignalen bestehen große Abhängigkeiten zwischen zeitlich
aufeinanderfolgenden Bildern und ebenfalls Abhängigkeiten zwischen benachbarten
Bildelementen in eine Bild. Diese Abhängigkeiten sind in den Quellsignalen
enthalten. Durch eine Entfernung dieser Abhängigkeiten lässt sich die zur
Übertragung nötige Datenmenge reduzieren. Die Abhängigkeiten können auf der
Empfangsseite in das Signal wieder eingefügt und so das Quellsignal rekonstruiert
werden.
Die 2-dimensionale DCT kann wegen ihrer Separierbarkeit auch als
Hintereinanderschaltung zweier eindimensionaler DCT aufgefasst werden:
Kommunikations
Technik
F ( x, ) 
N 1
 2 y  1
2
C ( )   f ( x, y ) cos
N
2N
y 0
F ( , ) 
N 1
 2 x  1 
2
C ( )   F ( x, ) cos
N
2N
x 0
f x ( , y ) 
 2 y  1
2 N 1
C ( ) F ( , )cos

N  0
2N
f ( x, y ) 
 2 x  1 
2 N 1
 C ( ) f x ( , y)cos 2 N
N  0
 1
für  ,  0
2
mit C ( ), C ( )  
und (üblich): N  8
1 sonst
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 25
1.04.2012
Guido H. Bruck
Bildverarbeitung - Folie 27
1.04.2012
3.1.6 Diskrete-Cosinus-Transformation (DCT)
3.1.7 Diskrete-Cosinus-Transformation (DCT)
Bei Bildcodierungsverfahren wird häufig eine Transformationscodierung unter
Verwendung einer 2-dimensionalen DCT verwendet. Damit lassen sich
Abhängigkeiten der Bildelemente innerhalb eines Bildes verringern. Dies geschieht
auch beim MPEG-2-Standard. Die 2-dimensionale DCT ist beschrieben durch:
Basisfunktionen der 1-dimensionalen DCT für eine Blocklänge von N=8:
F ( , ) 
f ( x, y ) 
 2 x  1  cos  2 y  1
2
C ( )C ( )   f ( x, y ) cos
N
2N
2N
x 0 y 0
N 1 N 1
2
N
N 1 N 1
 C ( )C ( ) F ( , )
 
0 0
cos
 2 x  1 
2N
cos
 2 y  1
2N
 1
für  ,  0
2
mit C ( ), C ( )  
und (üblich): N  8
1 sonst
Kommunikations
Technik
0,25
0,15
0,05
-0,05
-0,15
-0,25
0,25
0,15
0,05
-0,05
-0,15
-0,25
0,25
0,15
0,05
-0,05
-0,15
-0,25
0,25
0,15
0,05
-0,05
-0,15
-0,25
Guido H. Bruck
Bildverarbeitung - Folie 26
1.04.2012
0
0
0
0
1
1
1
1
2
2
2
2
Kommunikations
Technik
3
3
3
3
4
4
4
4
5
5
5
5
6
6
6
6
7
7
7
7
n=0
n=1
n=2
n=3
0,25
0,15
0,05
-0,05
-0,15
-0,25
0,25
0,15
0,05
-0,05
-0,15
-0,25
0,25
0,15
0,05
-0,05
-0,15
-0,25
0,25
0,15
0,05
-0,05
-0,15
-0,25
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
n=4
n=5
n=6
n=7
Guido H. Bruck
Bildverarbeitung - Folie 28
1.04.2012
7
3.1.10 Die Quantisierung
3.1.8 Diskrete-Cosinus-Transformation (DCT)
Zur Transformation werden jeweils 8*8 Bildelemente (Pixel) zu einem
Transformationsblock zusammengefaßt.
Aus 8*8 Originalwerten entstehen durch die Transformation 8*8 Spektralwerte. Zur
im Regelfall irrelevanzreduzierenden Codierung werden in einem nachfolgenden
Verarbeitungsschritt die Spektralkoeffizienten einer Quantisierung unterzogen.
Sie geschieht dadurch, dass man die Spektralkoeffizienten zunächst durch ihnen
zugeordnete Q-Werte dividiert und die Ergebniswerte auf ganze Zahlen rundet. Die
Q-Werte sind den Blöcken entsprechend in zweidimensional angeordneten Tabellen
zusammengefasst. Dabei sind für unterschiedliche Bildtypen und Verfahren auch
unterschiedliche Tabellen üblich:
Basisfunktionen der 2dimensionalen DCT für
eine Blocklänge von
N=8:
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 29
1.04.2012
3.1.9 Diskrete-Cosinus-Transformation (DCT)
Kommunikations
Technik
3.1.11 Die Quantisierung
DCT-Explorer von Lutz Lißeck
Download von den Internet-Seiten des Fachgebiets KT („Freie Software“)
Quantisierungstabellen für MPEG-2:
8
16
19
22
22
26
26
27
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 31
1.04.2012
Guido H. Bruck
Bildverarbeitung - Folie 30
1.04.2012
16
16
22
22
26
27
27
29
Kommunikations
Technik
19 22 26
22 24 27
26 27 29
26 27 29
27 29 32
29 32 35
29 34 38
35 38 46
QI ( , )
27
29
34
34
35
40
46
56
29
34
34
37
40
48
56
69
34
37
38
40
48
58
69
83
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16 16 16 16
16 16 16 16
16 16 16 16
16 16 16 16
16 16 16 16
16 16 16 16
16 16 16 16
16 16 16 16
QP,B ( , )
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
Guido H. Bruck
Bildverarbeitung - Folie 32
1.04.2012
8
3.1.12 Codierung eines Blocks mittels der DCT
3.1.14 Codierung eines Blocks mittels der DCT
Das folgende Beispiel einer JPEG-Codierung (Joint Photographic Experts Group),
einem der MPEG-2-Codierung ähnlichen Codierungsverfahren für Standbilder, zeigt
die Anwendung der 2-dimensionalen DCT mit N=8 und Quantisierung der
Spektralkoeffizienten für einen Bildblock.
Auf der Empfangsseite werden die normalisierten Spektralkoeffizienten mit den
zugehörigen Q-Werten multipliziert (oftmals irreführend als „inverse Quantisierung“
bezeichnet). Mittels der DCT-Rücktransformation wird dann aus den
denormalisierten Spektralkoeffizienten ein Bildsignalblock rekonstruiert.
Signalwerte des Originalbildes
DCT-Spektralkoeffizienten
139 144 149 153 155 155 155 155
1259, 6
1, 0 12,1
5, 2
2,1
1, 7 2, 7
144 151 153 156 159 156 156 156
22, 6 17,5
6, 2 3, 2 2,9 0,1
150 155 160 163 158 156 156 156
10,9
1, 6
159 161 162 160 160 159 159 159
159 160 161 162 162 155 155 155
9,3
7,1
0, 6
1,9
0,8
0, 2
1,5
1,5
Denormalisierte Spektralkoeffizienten
1,3
1, 2
0, 4
0, 2 0,9 0, 6 0,1
1,5
0,9 0,1
1, 6 0,1 0, 7
0, 0
0, 6
0,3
1,3
10 0 0 0 0 0
Rekonstruierte Bildsignalwerte
1264
0
144 146 149 152 154 156 156 156
24
12
0
0 0 0 0 0
14
13
0
0 0 0 0 0
155 156 157 158 158 157 156 155
0
0
0
0
0
0
0 0 0 0 0
0 0 0 0 0
160 161 161 162 161 159 157 155
163 163 164 163 162 160 158 156
148 150 152 154 156 156 156 156
161 161 161 161 160 157 157 157
1,8
0, 2
1,5
1, 0
1, 0
0
0
0
0 0 0 0 0
163 164 164 164 162 160 158 157
162 162 161 163 162 157 157 157
1,3
0, 4
0,3
1,5 0,5
1, 7
1,1
0,8
0
0
0
0 0 0 0 0
160 161 162 162 162 161 159 158
162 162 161 161 163 158 158 158
2, 6
1, 6
3,8
1,8
1, 2 0, 6 0, 4
0
0
0
0 0 0 0 0
158 159 161 161 162 161 159 158
1, 6 0,3 0,8
Kommunikations
Technik
1,9
Guido H. Bruck
Bildverarbeitung - Folie 33
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 35
1.04.2012
3.1.15 8x8 DCT Beispiel
3.1.13 Codierung eines Blocks mittels der DCT
Die DCT Spektralkoeffizienten werden durch die ihnen zugeordneten Q-Werte
dividiert und die Ergebniswerte auf ganze Zahlen gerundet. Die so entstandenen
Zahlen seine als „normalisierte Spektralkoeffizienten“ bezeichnet.
Quantisierungstabelle (Q-Werte)
Normalisierte Spektralkoeffizienten
0
1 0 0 0 0 0
16 11 10 16
24
40
51
61
79
12 12 14 19
26
58
60
55
2 1
0
0 0 0 0 0
14 13 16 24
40
57
69
56
1 1
0
0 0 0 0 0
14 17 22 29
18 22 37 56
51
68
87 80
109 103
62
77
0
0
0
0
0 0 0 0 0
0 0 0 0 0
24 35 55 64
81
104 113
0
0
92
0
0
0
0 0 0 0 0
49 64 78 87 103 121 120 101
0
0
0
0 0 0 0 0
72 92 95 98 112 100 103
0
0
0
0 0 0 0 0
Kommunikations
Technik
99
Guido H. Bruck
Bildverarbeitung - Folie 34
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 36
1.04.2012
9
3.1.16 8x8 DCT-Beispiel
3.2.1 Der MPEG-2-Standard
Im allgemeinen wird man davon ausgehen können, dass das zu codierende
Programmaterial dem Studio-Standard entsprechend im 4:2:2-Format vorliegt. Die
Werteauflösung entspricht dabei 8 Bit (in Sonderfällen 10 Bit).
Der Codierung nach dem MPEG-2-Standard liegt in der Regel das 4:2:0–
Abtastformat zugrunde. Ausgehend vom 4:2:2–Format wird bei den
Chrominanzsignalen, im Standard mit CR und CB bezeichnet, eine AbtastratenKonversion vorgenommen. Sie bewirkt neben der Konversion der Abtastfrequenzen
in vertikaler Richtung auch die Veränderung der „Abtastposition“ um einen halben
Zeilenabstand.
Zur Transformation werden jeweils 8*8 Bildelemente (Pixel) zu einem
Transformationsblock zusammengefaßt. Bei Vorliegen eines 4:2:0-Abtastformats
deckt dementsprechend ein Chrominanzsignalblock die vierfache Bildfläche eines
Luminanzsignalblocks ab. Vier im Quadrat angeordnete Luminanzsignalblöcke und
zwei zugeordnete Chrominanzblöcke bilden einen Makroblock.
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 37
1.04.2012
3.1.17 8x8 DCT-Beispiel
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 39
1.04.2012
3.2.2 Der MPEG-2-Standard
Makroblock-Struktur beim Main-Profile
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 38
1.04.2012
Y (EY)
Y (EY)
Block 0
Block 1
Y (EY)
Y (EY)
Block 2
Block 3
Kommunikations
Technik
CB (EU)
CR (EV)
Block 4
Block 5
Guido H. Bruck
Bildverarbeitung - Folie 40
1.04.2012
10
3.2.4 Der MPEG-2-Standard
3.2.3 Der MPEG-2-Standard
Im MPEG-2-Standard unterscheidet man verschiedene Bildtypen:
I-Bilder:
Intraframe codierte Bilder
P-Bilder:
Unidirektional prädizierte Bilder
B-Bilder:
Bidirektional prädizierte Bilder
Die Abfolge der verschiedenen Bildtypen in einer Bildfolge ist weitgehend durch
den Codierer festlegbar. Eine für die fernsehtechnische Anwendung günstige
Abfolge zeigt Abb. 1.
1
2
3
4
5
6
7
8
9
10 11 12 13
I
B
B
P
B
B
P
B
B
P
Kommunikations
Technik
Abb. 1
B
B
Ein zur Bewegungsvektorschätzung häufig eingesetztes Verfahren ist das BlockMatching-Verfahren.
Beispiel:
I
Guido H. Bruck
Bildverarbeitung - Folie 41
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 43
1.04.2012
3.2.3 Der MPEG-2-Standard
3.2.5 Der MPEG-2-Standard
Die I-Bilder werden eigenständig, ohne den Einsatz einer Prädiktion codiert. Sie
stellen „Stützbilder“ dar und erlauben dem Empfänger einen Einstieg in die
Decodierung der Bilder.
Die P-Bilder werden unter Verwendung eines jeweils vorausgegangenen I- oder PBildes prädiziert. Das prädizierte Bild ist aber nicht einfach ein entsprechendes
vorausgegangenes Bild, sondern ein durch Bewegungsschätzung aus dem
vorausgegangenen hervorgehendes Bild. Die Bewegungsschätzung erfolgt
makroblockweise. Dazu wird untersucht, welcher Block mit den Abmessungen
eines Makroblocks einen Makroblock in einem aktuellen Block am besten annähert.
Die Blockbewegungen werden in Form von Bewegungsvektoren zum Empfänger
übertragen.
Die B-Bilder werden jeweils aus einem vorausgegangenen I- oder P-Bild und einem
nachfolgenden I- oder P-Bild geschätzt. Dazu werden auch bidirektional
geschätzte Bewegungsvektoren ermittelt. Durch die Verwendung von B-Bildern
kann die datenreduzierende Wirkung der Codierung merklich gesteigert werden.
Zur Bildprädiktion werden Bildspeicher benötigt. Auch die
Bewegungsvektorschätzung ist mit einem Speicherbedarf verbunden. Um den
Speicherbedarf auf der Empfängerseite so klein wie möglich zu halten, sieht der
MPEG-2-Standard eine Bildumsortierung vor. Z.B. die in 3.2.3 dargestellte Bildfolge
erfährt zur Übertragung folgende Umsortierung:
IBBPBBPBBPBBI
IPBBPBBPBBIBB
Durch das beschriebene Bild-Prädiktionsverfahren wird eine Wertedekorrelation in
den Differenz-Bildern erreicht. Dementsprechend ist die dekorrelierende Wirkung der
DCT in diesen Bildern im Vergleich mit der in den I-Bildern gering. Dies findet
Berücksichtigung in der Auslegung der Quantisierungtabellen in 3.1.10. Für die IBilder werden die QI(-Werte und für die P- und B-Bilder die QP,B(-Werte
verwendet. Die Tabelle der QI(-Werte berücksichtigt, dass die wesentliche
Energie eines I-Bild-Blocks in den „niederfrequenten“ Spektralanteilen steckt.
Die I-, P- und B-Bilder werden in Blöcke eingeteilt und die DCT-Spektralkoeffizienten
berechnet und quantisiert.
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 42
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 44
1.04.2012
11
3.2.6 Der MPEG-2-Standard
3.2.8 Der MPEG-2-Standard
Die quantisierten Spektralkoeffizienten werden vor ihrer Übertragung noch einer
redundanzmindernden Codierung unterzogen, und zwar einer Lauflängencodierung
und einer anschließenden „Optimalkodierung“ (z.B. Huffmann-Codierung).
Die entsprechend den Originalwerten ebenfalls im Quadrat angeordneten
Spektralwerte werden zunächst in eine eindimensionale Wertefolge umgewandelt.
Die Wertefolge enthält im allgemeinen mehr oder weniger lange Null-Folgen, die als
Runs bezeichnet werden. Ein Run wird jeweils in Kombination mit einem
nachfolgenden Nicht-Null-Wert, einem sogenannten Level, codiert. Dabei sind auch
Runs der Länge Null möglich. Die Run-Level-Kombinationen werden einer
„Optimalcodierung“ (entsprechend einer abgebrochenen Huffmann-Codierung)
unterzogen.
Die Gesamtstruktur des MPEG-2-Coders geht aus Abb. 1 hervor (z.B. mit PBildschätzung).
QD
DCT
Guido H. Bruck
Bildverarbeitung - Folie 45
1.04.2012
MUX
DCT:
DCT-1:
Q:
Q-1:
„Q-1“
RLC:
VLC:
ME:
MC:
P:
PS:
MV:
MUX:
B:
QF:
QD:
DCT-1
MC
ME
Kommunikations
Technik
Q
QF
RLC
VLC
P
PS
MV
Abb. 1
Kommunikations
Technik
B
Diskrete Kosinus-Transformation
Inverse Diskrete Kosinus-Transformation
Quantisierungseinheit
Rückgewinnung der (quantisierten)
Spektralkoeff.
Lauflängen-Codierung
„Optimalcodierung“
Bewegungsschätzung
Bewegungskompensation
Prädiktor
Bildspeicher
Bewegungsvektoren
Multiplexer
Puffer
Quantisierungsfaktor
Quantisierungsdaten
Guido H. Bruck
Bildverarbeitung - Folie 47
1.04.2012
3.2.7 Der MPEG-2-Standard
3.2.9 Der MPEG-2-Standard
Die Überführung der quadratisch angeordneten Spektralwerte-Koeffizienten in
eindimensionaler Folge wird mithilfe eines sogenannten Zick-Zack-Scans
vorgenommen. Ein solcher Scan ist in Abb. 1 gezeigt. Er schließt den Koeffizienten
des Gleichanteils aus. Dieser wird in Form eines Differenzwertes gegenüber dem
des vorausgegangenen Blocks getrennt codiert.
Abb. 1 zeigt die MPEG-2-Decodierungsschaltung.
QD
B
MUX-1
VLC-1
RLC-1
Q-1
DCT-1

P

Abb. 1
MV
MUX-1:
Demultiplexer
RLC-1: Zu RLC und VLC inverse Operationen
VLC-1: Zu RLC und VLC inverse Operationen
Durch die Verwendung der Operationen DCT-1 und Q-1 auch auf der Codierungsseite
wird sichergestellt, dass im Coder und Decoder gleiche Werte prädiziert werden.
Abb. 1
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 46
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 48
1.04.2012
12
3.2.10 Der MPEG-2-Standard
3.3.1 MPEG-4
1920*1152 Pixel
(960*576)
100(80,25) Mbit/s
1920*1152 Pixel
High
Level
80 Mbit/s
1440*1152 Pixel
High-1440
Level
1440*1152 Pixel 1440*1152 Pixel
(720*576)
(720*576)
60(40,15) Mbit/s 80(60,20) Mbit/s
60 Mbit/s
Main
Level
720*576 Pixel
720*576 Pixel
720*576 Pixel
15 Mbit/s
15 Mbit/s
15(10) Mbit/s
352*288 Pixel
352*288 Pixel
Low
Level
4 Mbit/s
Levels
Simple
Profile
Profiles
(wie Main Profile,
ohne B-Bilder)
Main
Profile
(4:2:0, keine
Scal.)
Kommunikations
Technik
720*576 Pixel
(352*288)
20(15,4) Mbit/s
4(3) Mbit/s
SNR Scalable Spatial Scalable
Profile
Profile
(wie Main Profile
+ SNR Scal.)
(wie SNR Prof.,
+ Spat. Scal.)
High
Profile
(wie Spat. Prof.,
+ 4:2:2-Cod.)
Guido H. Bruck
Bildverarbeitung - Folie 49
1.04.2012
MPEG-4 hat eine gegenüber MPEG-2 erweiterte Funktionalität:
• Kompression
• Flexibilität
• keine Festlegung auf bestimmtes Verfahren, oft nur Interfaces standardisiert
• stattdessen: Sammlung verschiedener „Tools“
• „Profiles“ limitieren Tools, die der Decoder implementieren kann
 optimale Qualität für spezielle Anwendungen
•
Wie bei MPEG-1 und –2 sind der Decoder und der Datenstrom standardisiert.
Verschiedene Hersteller können so verschiedene Encoder herstellen, die
zusammen mit einem standardgemäßen Decoder unterschiedliche
Bildqualitäten liefern.
Wegen der besseren Darstellung wird hier teilweise der Codierungsvorgang dargestellt.
Kommunikations
Technik
3.2.11 Der MPEG-2-Standard
3.3.2 MPEG-4
Der MPEG-2-Standard beschreibt einen sogenannten generischen Code
(Gatterungscode) für die „Gatterung“ Bewegtbildcodierung. Er unterteilt deren
Gesamtbereich in Merkmalsbereiche, die hinsichtlich „qualitativer“ und „quantitativer“
Merkmale unterschieden werden. In der Sprache der MPEG werden die
Merkmalsbereiche nach Profils und Levels unterschieden.
MPEG-4 Entwicklungen des Standards im Bereich Visual:
Eine Übersicht über die Profile-Level-Struktur des Standards gibt 3.2.10. Die in der
Übersicht angegebenen Parameterkombinationen sind als Maximumwerte zu
verstehen. Die in Klammern stehenden Werte beziehen sich auf niedere, sogenannte
Layer der Profile-Level-Kombinationen der Formen der skalierbaren Codierung. Die
MPEG-2-Codierung ist abwärtskompatibel aufgebaut. Das bedeutet: Ein Decoder, der
einem Feld in der Tabelle zugeordnet ist, muss auch die Datenströme entsprechend
den links und unterhalb dieses Feldes liegenden Felder decodieren können.
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 50
1.04.2012
Guido H. Bruck
Bildverarbeitung - Folie 51
1.04.2012
MPEG-4-Standard ISO 14496, Part 2, Visual
• Version 1: Basic MPEG-4, International Standard (IS) Mai 1999
• Version 2: Neue Tools und Profiles, IS Feb. 2000
• Amendment 1, Studio Profile: Tools und Profiles für Studio und Produktion IS
März 2001
• Amendment 2, Streaming Video Profile: Weitere Tools und Profiles, IS März
2001
• Amendment 3, Neue Levels und Tools: IS Dec. 2002
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 52
1.04.2012
13
3.3.3 MPEG-4
3.3.5 MPEG-4 Codierung
Die zu übertragenen Daten werden auf unterschiedliche Art und Weise codiert:
• Szene wird in „Einheiten“ unterteilt, sog. „Audio-Visual Objects“
• Zusammensetzung der Audio-Visual Objects wird gespeichert im
„Szenengraph“
• Audio-Visual Objects:
• Video Objects
• Natural (Kamera)
• Synthetic (computergeneriert)
• Audio Objects
• Natural (Mikrofon)
• Synthetic (computergeneriert)
• Szenengraph sorgt für korrekte Positionierung der Media Objects
• räumlich
• zeitlich
• Realisiert durch gerichteten, azyklischen Graphen
Bespiel für die Codierung einzelner Audio-Visual Objects
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 53
1.04.2012
Kommunikations
Technik
Quelle: Kohtaro Asai and Fuminobu Ogawa:
MPEG Coding Technologies, Mitsubishi
Electric ADVANCE December 1998
Guido H. Bruck
Bildverarbeitung - Folie 55
1.04.2012
3.3.4 MPEG-4 Szenegraph
3.4.1 Datenstrom MPEG-4 Visual
Jedes Audio-Visual Object besitzt ein eigenes Koordinatensystem
Szenengraph verfügt selbst auch über ein Koordinatensystem
• durch Berechnung: „virtuelle Kamera“ möglich
• Blickwinkel
• Ausschnitt
• Audio-Visual Objects einer Szene sind hierarchisch sortiert
• Blätter: Primitive Audio-Visual Objects
• Still Images - unbewegte Bilder (z. B. Hintergrund)
• Video Objects (z. B. Person)
scene
• Audio Objects (z. B. Stimme)
Codierung von visuellen Objekten in natürlichen und synthetischen, bewegten Bildern.
Hierarchische Beschreibung einer „visual scene“:
• Visual Object Sequence (VS): Die komplette MPEG-4-Szene kann beliebig viele
2D oder 3D natürliche oder synthetische Objekte und deren Erweiterungen
enthalten
• Video Object (VO): Entspricht einem bestimmten (2D-)Objekt in der Szene.
Im einfachsten Fall ein rechteckiges Bild oder ein beliebig geformtes Objekt
• Video Object Layer (VOL): Jedes Video-Objekt kann skalierbar (multi
layer) codiert werden. Es gibt räumliche (spatial) und zeitliche
(temporal) Skalierbarkeit, von grober bis zu feiner Auflösung. Der
Decoder kann die passende Skalierung einstellen.
• Group of Video Object Planes (GOV): Sie fasst mehrere Video
Object Planes zusammen. Auf den Anfang einer GOV kann
wahlfrei zugegriffen werden.
• Video Object Plane (VOP)
Person
voice
Kommunikations
Technik
Quelle: MPEG-4 – Ein Überblick, Paderborn
Center for mobile Computing
2D Background
Video
picture
Guido H. Bruck
Bildverarbeitung - Folie 54
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 56
1.04.2012
14
3.4.2 Datenstrom MPEG-4 Visual
3.4.4 Datenstrom MPEG-4 Visual
•
•
Video Object Plane (VOP): Sie stellt einen zeitlichen Abtastwert eines VideoObjektes dar und kann unabhängig oder durch Bewegungskompensation in
Abhängigkeit von anderen VOPs codiert werden. Ein herkömmliches Videobild
kann durch eine VOP mit rechteckiger Form repräsentiert werden.
Beispiel einer VOP-Decodierung in MPEG-4 ohne Sprites
Ein natürliches Video-Objekt enthält die folgenden Informationen:
• Form (shape)
• Bewegungsinformation (motion)
• Texturen (texture)
•
Zusätzliche Kompression durch sprite Coding
Sprites: zeitunveränderliche Video-Objekte, größer als das übliche Bild, zur
Repräsentation größerer, statischer Bildinhalte (Hintergrund).
Kommunikations
Technik
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 57
1.04.2012
3.4.3 Datenstrom MPEG-4 Visual
Guido H. Bruck
Bildverarbeitung - Folie 59
1.04.2012
3.4.5 Datenstrom MPEG-4 Visual
•
•
Quelle: Touradj Ebrahimi and Caspar Horne:
MPEG-4 Natural Video Coding - An overview,
aus dem Internet
Beispiel einer Überlagerung mehrerer Video Object Planes (VOPs):
Entsprechend enthalten die VOPs in Makroblöcken:
• Zeitliche Abtastwerte des Video-Objekts:
• Form-Informationen (Shape)
• Bewegungsvektoren und –parameter
• Texturdaten:
Luminanzsignal und unterabgetastetes Chrominanzsignal wie bei
MPEG-2 im Abtastformat 4:2:0 für DCT-Codierung in 8x8-Blöcken
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 58
1.04.2012
Kommunikations
Technik
Quelle: Andrew Perkis: MPEG-4 visual,
SIE2070 Multimedia signal processing,
4/3/2002
Guido H. Bruck
Bildverarbeitung - Folie 60
1.04.2012
15
3.5.1 Tools zur Codierung von VOPs natürlicher Video-Objekte
3.6.2 Binary-Shape-Coding
•
•
Shape Coding Tools
• Binary Shape Coding
• Gray Scale Shape Coding
Bewegungskompensation (Motion Compensation Tools) mit optionalen
Erweiterungen:
• Overlapped Motion Compensation,
• Advanced Motion Compensation
Texturcodierung
Sprites
Skalierbarkeit
• Räumliche Skalierbarkeit
• Zeitliche Skalierbarkeit
Error Resilence
...
...
•
•
•
•
•
•
•
Kommunikations
Technik
•
•
•
•
•
•
Guido H. Bruck
Bildverarbeitung - Folie 63
1.04.2012
3.6.3 Gray-Scale-Shape-Coding
•
Binary-Shape-Coding
• Matrix (Binary Alpha Map)
• definiert, ob Pixel zu Objekt gehört
• 0 - liegt nicht drin
• 255 - liegt drin
Kommunikations
Technik
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 61
1.04.2012
3.6.1 Binary-Shape-Coding
Jede VOP wird von einer „Bounding Box“
umschlossen
Zu der VOP gehört eine binäre Maske, die
für jedes Pixel, das zur VOP gehört, den Wert
255 enthält. Alle anderen Pixel haben der Wert 0.
Die binäre Maske wird in „Binary Alpha Blocks“
(BAB) der Größe 16x16 Pixel unterteilt, die
einzeln codiert werden.
Quelle: Touradj Ebrahimi, MPEG-4 Natural
Haben alle Pixel den Wert 0, ist der Block
Video Tools, Signal Processing Laboratory
Swiss Federal Institute of Technology,
Lausanne
transparent und es erfolgt keine weitere Codierung.
Haben alle Pixel den Wert 255, ist der Block undurchsichtig, er gehört zur VOP
und es erfolgt eine Codierung.
BAB werden durch eine „Context based Arithmetic Encoding“ (CAE) mit
Bewegungskompensation codiert. Dabei gibt es InterCAE und IntraCAE mit und
ohne Bewegungskompensation.
•
0
0
0
255
0
0
0
0
0
255
255
255
0
0
0
255
255
255
255
255
0
255
255
255
255
255
255
255
Entspricht der Binary-Shape-Coding mit dem Unterschied, dass jeder Wert der
Maske Werte zwischen 0 (transparent) und 255 (undurchsichtig) annehmen kann
und mit den dazwischen liegenden Werten die Transparenz des zugehörigen
Pixels beschrieben wird.
Gray-Scale-Shape-Information wird mit einer bewegungskompensierten DCT
ähnlich der Texturcodierung codiert
Quelle: MPEG-4 – Ein Überblick, Paderborn
Center for mobile Computing
Guido H. Bruck
Bildverarbeitung - Folie 62
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 64
1.04.2012
16
3.7.1 Bewegungskompensation (Motion Compensation)
3.7.3 Bewegungskompensation (Motion Compensation)
•
•
Die bekannten Verfahren anderer Video-Codierungsstandards wurden an die
VOP-Struktur von MPEG-4 angepasst. Daher gibt es drei Typen von Video
Object Planes (VOP):
• Eine VOP wird unabhängig von anderen VOPs codiert. Diese VOP wird
Intra-VOP (I-VOP) genannt.
• Eine VOP wird durch Bewegungskompensation auf Basis einer anderen
vorher codierten VOP codiert. Solche VOPs werden Predicted VOP
(P-VOP) genannt.
• Eine VOP wird durch Bewegungskompensation auf Basis von früheren und
zukünftigen VOPs codiert. Diese VOP werden Bidirectional Interpolated
VOPs (B-VOP) genannt. Sie dürfen nur auf Basis von I-VOPs und P-VOPs
interpoliert werden.
Kommunikations
Technik
•
Die Skizze zeigt verschiedene
Typen von VOPs.
Wenn ein 16x16 Pixel großer
Macroblock ganz in der VOP liegt,
geschieht die
Bewegungskompensation auf Basis
eines Block-Matching mit den
Macroblöcken bzw. mit 8x8 Pixeln
großen Blöcken im „Advanced
Prediction Mode“.
•
•
•
•
Die Texturinformation eines Video-Objektes wird mit Hilfe des Luminanzsignals Y
und den beiden Chrominanzsignalkomponenten CR und CB beschrieben.
Im Fall von I-VOPs enthalten das Luminanzsignal und das Chrominanzsignal direkt
die zugehörigen Werte. Im Fall von bewegungskompensierten VOPs enthalten sie
nur die nach der Bewegungskompensation verbleibenden Fehlersignale.
Zur Codierung der Texturinformation wird eine übliche 8x8 blockbasierte DCT
verwendet.
Zeilensprung-Bilder: Field-DCT Coding
Progressive Bilder: Frame DCT-Coding
Eine Übersicht über den Codierungsvorgang zeigt das folgende Bild:
VOP
Textur
Kommunikations
Technik
Quelle: Touradj Ebrahimi, MPEG-4 Natural
Video Tools, Signal Processing Laboratory
Swiss Federal Institute of Technology,
Lausanne
Guido H. Bruck
Bildverarbeitung - Folie 67
1.04.2012
3.8.1 Texturcodierung
•
•
Quelle: Touradj Ebrahimi, MPEG-4 Natural
Video Tools, Signal Processing Laboratory
Swiss Federal Institute of Technology,
Lausanne
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 65
1.04.2012
3.7.2 Bewegungskompensation (Motion Compensation)
Wenn ein Macroblock nicht ganz innerhalb der VOP liegt, werden verschiedene
Füllverfahren für die außerhalb liegenden Teile sowie modifizierte-Block (Polygon)Matching-Verfahren verwendet.
Guido H. Bruck
Bildverarbeitung - Folie 66
1.04.2012
DCT
Kommunikations
Technik
Quantisierung
Prädiktion der
Koeffizienten
Scan der
Koeffizienten
Codierung mit
variabler
Wortlänge
Datenstrom
Guido H. Bruck
Bildverarbeitung - Folie 68
1.04.2012
17
3.8.2 Texturcodierung
3.8.4 Texturcodierung
Diskrete Cosinus-Transformation (DCT)
• Blöcke der Größe 8x8 Pixel werden der VOP überlagert. Blöcke innerhalb der VOP
werden ohne Veränderung codiert. Blöcke, die teilweise auf der Grenze der VOP
liegen, werden anders behandelt.
Low Pass Extrapolation:
1. Die Werte außerhalb der VOP werden auf den Mittelwert der Werte innerhalb
der VOP gesetzt:
 N : Anzahl der Pixel pro Block
1
f r ,c  r ,c VOP 
f x , y mit 

N  x , y VOP
 f x , y : Signalwert an der Stelle  x, y 
Kommunikations
Technik
Quelle: Touradj Ebrahimi, MPEG-4 Natural
Video Tools, Signal Processing Laboratory
Swiss Federal Institute of Technology,
Lausanne
2. Die Werte in der Nähe des Randes der VOP werden angepasst:
f
f
 f r ,c 1  f r 1,c
f r ,c  r ,c VOP  r ,c 1 r 1,c
4
Als Signalwerte für die rechte Seite der obigen Gleichung kommen nur Werte
in Betracht, die innerhalb der VOP liegen. Wenn Werte außerhalb liegen,
werden sie nicht berücksichtigt und der Nenner des Bruches entsprechend
angepasst.
Nach der Erweiterung werden die Randblöcke genauso behandelt wie die inneren
Blöcke.
Guido H. Bruck
Bildverarbeitung - Folie 69
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 71
1.04.2012
3.8.3 Texturcodierung
3.8.5 Texturcodierung
•
Quantisierung
• Die nach der Transformation vorliegenden Spektralkoeffizienten werden quantisiert,
indem die Spektralkoeffizienten durch einen Wert dividiert und die Ergebnisse auf
ganze Zahlen gerundet werden. Dabei gibt es verschiedene Methoden:
• Division durch Werte einer Quantisierungsmatrix ähnlich wie bei MPEG-2.
• Division durch einen festen Wert.
• Eine ungleichförmige Quantisierung („non-linear“) des DC-Koeffizienten ist
möglich.
•
•
•
Blöcke der Größe 8x8 Pixel an den Grenzen der VOP enthalten nur teilweise Werte
aus der VOP. Die übrigen Werte, die außerhalb der VOP lokalisiert sind, werden
aus den Werten der VOP extrapoliert:
Bei Luminanzsignal-Blöcken wird auf Basis 16x16 extrapoliert, bei
Chrominanzsignal-Blöcken auf Basis 8x8.
Bei P- und B-Blöcken werden außerhalb der VOP liegende Pixel mit dem Wert Null
gefüllt.
Bei I-Blöcken werden die außerhalb der VOP liegenden Werte durch einen
zweistufigen Prozess mit Werten gefüllt. Dieser Prozess wird Low Pass
Extrapolation (LPE) genannt.
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 70
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 72
1.04.2012
18
3.8.6 Texturcodierung
3.8.8 Texturcodierung
Prädiktion der Spektralkoeffizienten in Abhängigkeit der Unterschiede der Koeffizienten
in den Blöcken A, B und C
DC-Prädktion
AC-Prädiktion
Statische Texturen
Nachbarblock B
Kandidatenblock C
Nachbarblock B
Kandidatenblock C
Kandidatenblock A
Aktueller
Block
Kandidatenblock A
Aktueller
Block
Prädiktion des DC-Koeffizienten durch
den Koeffizienten von Block A oder
von Block C
Kommunikations
Technik
Entweder die Koeffizienten der ersten
Zeile oder der ersten Spalte werden
aus den entsprechenden Koeffizienten
eines ausgewählten Kandidatenblocks
prädiziert.
Guido H. Bruck
Bildverarbeitung - Folie 73
1.04.2012
Mit MPEG-4 können statische Texturen, die sich also nicht bewegen, auf animierte 2Doder 3D-Oberflächen abgebildet werden. Zu diesem Zweck verfügt MPEG-4 über
Methoden zur Codierung von statischen Texturen, die eine größere Skalierbarkeit
ermöglichen als die Codierung mittels der DCT.
Die Codierung beruht auf einer Wavelet-Transformation, wobei die DC- und ACKomponenten unterschiedlich codiert werden. Die sich ergebenden Koeffizienten
werden quantisiert und mit einem sog. Zero-Tree-Algorithmus und arithmetischer
Codierung codiert.
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 75
1.04.2012
3.8.7 Texturcodierung
3.9.1 Sprites
Scan der Koeffizienten
Sprites sind Hintergrund-Objekte, die sich nicht bewegen und nur einmal übertragen
werden. Sie werden wie I-VOPs am Anfang eines Datenstroms übertragen und stehen
dann in einem Speicher dem Empfänger zur Verfügung. Bei einem Wechsel der
Kameraposition rechnet der Empfänger den jeweils sichtbaren Teil aus den im Speicher
vorliegenden Daten aus. Es lassen sich große Kompressionraten erzielen.
Die Koeffizienten werden in vorgegebener Weise in einen eindimensionalen
Datenvektor überführt. Dazu dient der Zig-Zag-Scan nach 3.2.7 oder zwei alternative
Muster (Alternate-horizontal scan und Alternate-vertical scan), die in Abhängigkeit von
der Prädiktion der DC-Koeffizienten benutzt werden.
Quelle: Touradj Ebrahimi, MPEG-4 Natural
Video Tools, Signal Processing Laboratory
Swiss Federal Institute of Technology,
Lausanne
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 74
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 76
1.04.2012
19
3.10.1 Skalierbarkeit
3.10.3 Räumliche Skalierbarkeit (Spatial Scalability)
Durch verschiedene Video-Object-Layer wird eine räumliche oder zeitliche Skalierung
implementiert.
Beispiel: Base-Layer und Enhancement-Layer
Im Fall der räumlichen Skalierung enthält der Base-Layer Informationen über das
Videoobjekt mit geringer Auflösung und der Enhancement-Layer die nötige
Zusatzinformation zur Auflösungserhöhung.
Beispiel für eine räumliche Skalierbarkeit, hier mit zwei Enhancement-Layern
Quelle: Touradj Ebrahimi, MPEG-4 Natural
Video Tools, Signal Processing Laboratory
Swiss Federal Institute of Technology,
Lausanne
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 77
1.04.2012
Kommunikations
Technik
Quelle: Andrew Perkis: MPEG-4 visual,
SIE2070 Multimedia signal processing,
4/3/2002
Guido H. Bruck
Bildverarbeitung - Folie 79
1.04.2012
3.10.4 Zeitliche Skalierbarkeit (Temporal Scalability)
Der VOPs des Base-Layers werden codiert wie vorher beschrieben.
Die VOPs des Enhancement-Layers werden als P-VOPs oder als B-VOPs codiert.
Bei der zeitlichen Skalierbarkeit wird die Wiederholrate der VOPs verbessert, der
Enhancement-Layer enthält die Informationen, die zwischen den Bildern des BaseLayers wiedergegeben werden sollen.
Base Layer
Enhancement Layer
Zwei Typen:
Enhancement
• Typ I: Der Enhancement-Layer
Typ I
verbessert nur die Auflösung
VOL 0: Ges. Bild
VOL 1: Auto
eines Teils des Base-Layers.
• Typ II: Der Enhancement-Layer
verbessert die Auflösung des
Enhancement
gesamten Base-Layers.
Typ II
VO 0
3.10.2 Räumliche Skalierbarkeit (Spatial Scalability)
VOL 1: Ges. Bild
VO 1
VOL 0: Ges. Bild
VOL 0: Auto
Kommunikations
Technik
Quelle: Touradj Ebrahimi, MPEG-4 Natural
Video Tools, Signal Processing Laboratory
Swiss Federal Institute of Technology,
Lausanne
Guido H. Bruck
Bildverarbeitung - Folie 78
1.04.2012
Kommunikations
Technik
Quelle: Touradj Ebrahimi, MPEG-4 Natural
Video Tools, Signal Processing Laboratory
Swiss Federal Institute of Technology,
Lausanne
VOL 1: Auto
Verbesserter Bereich
Guido H. Bruck
Bildverarbeitung - Folie 80
1.04.2012
20
3.10.5 Zeitliche Skalierbarkeit (Temporal Scalability)
3.10.7 Zeitliche Skalierbarkeit (Temporal Scalability)
Typ I: Der Enhancement-Layer Verbessert nur die zeitliche Auflösung eines Teils des
Base-Layers.
Kommunikations
Technik
Quelle: Touradj Ebrahimi, MPEG-4 Natural
Video Tools, Signal Processing Laboratory
Swiss Federal Institute of Technology,
Lausanne
Guido H. Bruck
Bildverarbeitung - Folie 81
1.04.2012
3.10.6 Zeitliche Skalierbarkeit (Temporal Scalability)
Quelle: Touradj Ebrahimi, MPEG-4 Natural
Video Tools, Signal Processing Laboratory
Swiss Federal Institute of Technology,
Lausanne
Kommunikations
Technik
Quelle: Andrew Perkis: MPEG-4 visual,
SIE2070 Multimedia signal processing,
4/3/2002
Guido H. Bruck
Bildverarbeitung - Folie 83
1.04.2012
3.11.1 Error-Resilence-Tools
Typ II: Der Enhancement-Layer verbessert die zeitliche Auflösung des gesamten
Base-Layers.
Kommunikations
Technik
Beispiel für eine zeitliche Skalierbarkeit mit zwei Enhancement-Layern
Speziell für die Übertragung über gestörte Kanäle, wie z.B. über Mobilfunkkanäle, sind
sog. Error-Risilence-Tools vorhanden, die die sichtbaren Auswirkungen von
Übertragungsfehlern verringern sollen:
• Resynchronization Markers
Das Bild zeigt die Auswirkungen dieser
• Extended Header Code
Tools auf die Datenstrom-Syntax
• Data Partitioning
• Reversible VLCs
Vorwärts-Decodierung
Guido H. Bruck
Bildverarbeitung - Folie 82
1.04.2012
Kommunikations
Technik
Rückwärts-Decodierung
Quelle: Touradj Ebrahimi, MPEG-4 Natural Video Tools, Signal
Processing Laboratory Swiss Federal Institute of Technology, Lausanne
Guido H. Bruck
Bildverarbeitung - Folie 84
1.04.2012
21
3.12.1 Synthetische Video-Objekte
3.12.3 Body Animation
MPEG-4 enthält verschiedene Tools, um synthetische Video-Objekte zu übertragen
(Auswahl):
Vergleichbar mit der Face Animation.
Form, Textur und Haltung des Körpers werden nur durch Parameter übergeben
•
•
•
•
•
Facial Animation - Animation von Gesichtern
Body Animation – Animation von Körpern
2D-Meshes (2D-Gittermodelle)
3D-Meshes (3D-Gittermodelle)
View-dependent Scalability
Quelle: MPEG-4 – Ein Überblick, Paderborn
Center for mobile Computing
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 85
1.04.2012
3.12.2 Facial Animation
Kommunikations
Technik
„Body Control Points“ in unteren Körperteilen
Quelle: Streaming Multimedia – The MPEG-4 Approach, Circuit Cellular,
Issue 137, Dec. 2001
Guido H. Bruck
Bildverarbeitung - Folie 87
1.04.2012
3.12.4 2D-Meshes
Form, Textur und Gesichtsausdruck werden nur durch
Parameter übergeben
• Facial Definition Parameters (FDP)
Gesicht wird durch 84 FDPs
beschrieben
• FDPs werden vom Decoder in Gesicht
umgesetzt
Animation:
• Facial Animation Parameters
Gesichtsausdrücke
Aufteilung des 2-dimensionalen Raumes in Polygone
• in MPEG-4 nur Dreiecke
Textur wird über das Gittermodell gelegt
• Texture Mapping
Animation
• Verschieben der Knotenpunkte
Quelle: MPEG-4 – Ein Überblick, Paderborn Center for mobile Computing
Kommunikations
Technik
Quelle: MPEG-4 – Ein Überblick, Paderborn
Center for mobile Computing
Guido H. Bruck
Bildverarbeitung - Folie 86
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 88
1.04.2012
22
3.12.5 View-dependent Scalebility
3.13.2 Profile (Profiles)
Beispiel für die Bearbeitung von Profilen in einem MPEG-4 Encoder/Decoder. Profile
werden in Form von Video-Objekt-Typen definiert
• wird in 3D-Welten benutzt
• ermöglicht Übertragung von Texturen
• nur sichtbare Informationen werden übertragen
spart Bandbreite
• Berechnung auf Encoder- und Decoder-Seite
Rückkanal erforderlich
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 89
1.04.2012
3.13.1 Profile (Profiles)
Kommunikations
Technik
Quelle: Olivier Avaro: Overview of MPEG-4 Developments, Davic European
Information Day, Geneva, 12 January 1999
Guido H. Bruck
Bildverarbeitung - Folie 91
1.04.2012
3.13.3 Profile (Profiles) für natürliche Videobilder („natural Video“)
Auswahl von Video-Tools zu einigen Video-Objekttypen
Die meisten Anwendungen benötigen nur einen Teil der vielfältigen Werkzeuge
(„Tools“), die im MPEG-4-Standard definiert sind. Die Codierungswerkzeuge werden
zu sog. Profilen („Profiles“) zusammengefasst. Diese Profile werden auf bestimmte
Anwendungen angepasst, dadurch verringert sich der Implementierungsaufwand in
Encoder und Decoder. Für jedes Profil kann es verschiedene „Levels“ geben, die die
Komplexität z.B. in Form von Bildgröße, Anzahl der Video-Objekte, Speicherbedarf,
einschränken.
Typen von Profilen:
• Szenenbeschreibung
• Objektbeschreibungen
• Audio (natürliche und synthetische): Typen von Objekten
• Visual (natürliche und synthetische): Typen von Objekten
• Grafiken
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 90
1.04.2012
MPEG-4 video tools
Basic(I and P-VOP, coefficient
prediction, 4-MV, unrestricted MV)
Error resilience
Short Header
B-VOP
P-VOP with OBMC (Texture)
Method 1/Method 2 Quantization
P-VOP based temporal scalability
Binary Shape
Grey Shape
Interlace
Sprite
Temporal Scalability (Rectangular)
Spatial Scalability (Rectangular)
N-Bit
Scalable Still Texture
MPEG-4 video object types
Main
Simple
N-bit
Scalable
Simple
Core
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
Still
Scalable
Texture
x
x
x
x
x
x
x
„Simple“: Nur rechteckförmige Video-Objekte (keine Shape-Verarbeitung)
Kommunikations
Technik
Quelle: Touradj Ebrahimi and Caspar Horne: MPEG-4 Natural Video Coding - An
overview, aus dem Internet
Guido H. Bruck
Bildverarbeitung - Folie 92
1.04.2012
23
3.13.4 Profile (Profiles) für natürliche Videobilder („natural Video“)
Auswahl von Typen von Video-Objekten, die innerhalb einer Auswahl von Profiles
bearbeitet werden können:
MPEG-4 video profiles
Simple
MPEG-4
video object
types
Simple
x
Core
Main
Simple
Scaleable
N-Bit
Scalable Still
Texture
Kommunikations
Technik
Core
Main
Simple
Scalable
N-Bit
x
x
x
x
x
x
x
x
Scalable
Texture
x
x
x
Quelle: Touradj Ebrahimi and Caspar Horne: MPEG-4 Natural Video Coding - An
overview, aus dem Internet
x
Guido H. Bruck
Bildverarbeitung - Folie 93
1.04.2012
3.13.6 Profile (Profiles) für natürliche Videobilder („natural Video“)
Weitere Ergänzungen durch neue Tools und Profiles:
• Advanced Simple: Verbesserte Codierverfahren gegenüber dem simple Profile.
• Simple Studio: Hohe Bildqualität, Verwendung für die Bildbearbeitung im Studio, nur
I-VOPs, Datenrate bis 2GBit/s.
• Core Studio: Wie Simple-Studio, aber zusätzlich mit P-VOPs, die eine verbesserte
Datenreduktion erlauben aber gleichzeitig einen erhöhnten
Implementierungsaufwand verlangen.
• Core Scalable: Wie Core, aber zusätzlich Skalierbarkeit. Anwendung im Internet, bei
Mobilfunkübertragung und für Rundfunkzwecke.
• Advanced Real-Time Simple: Für Echtzeitanwendungen wie Videotelefon,
Telekonferenz.
• Advanced Coding Efficiency: Mit allen neuen Verfahren zur verbesserten Codierung,
für mobile Rundfunkübertragung, Camcorder etc.
• Fine Granularity Scalable: Mehrere Verfahren zur Skalierbarkeit, um den Datenstrom
schnell veränderlichen Datenübertragungsraten besser anpassen zu können
(Streaming Video).
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 95
1.04.2012
3.13.5 Profile (Profiles) für natürliche Videobilder („natural Video“)
3.13.7 Levels
Wichtige vorgesehene Anwendungen der Profiles:
• Simple: Einfache fehlergeschützte Übertragung von rechteckigen Bildern, z.B. für
Übertragung in Mobilfunksystemen
• Simple Scalable: Anwendung, wo Skalierbarkeit z.B. wegen unterschiedlicher zur
Verfügung stehender Bandbreite eingeschränkt wird, oder bei Begrenzungen von
Rechenleistungen: Internet oder Software-Decodierung
• Core: Übertragung für beliebig geformte Bildobjekte. Für einfache Interaktivität, z.B.
Internet-Multimedia-Anwendungen
• Main Visual: Für interaktive, Fernseh- und DVD-Anwendungen
Mit sog. Levels werden Parametervorgaben für den Datenstrom gemacht. Die folgende
Tabelle gibt einige Levels für die wichtigsten Profiles wider. In der Spalte „Total mblk
memory“ ist die für den Decodiervorgang nötige Speichermenge in „Macroblock-Units“
angegeben.
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 94
1.04.2012
Typical
scene size
Profile and Level
L1
Simple
L2
Profile
L3
L1
Core Profile
L2
L2
Main Profile L3
L4
Kommunikations
Technik
QCIF
CIF
CIF
QCIF
CIF
CIF
ITU-R 601
1920x1088
Size in
Pixels
176x144
352x288
352x288
176x144
352x288
352x288
720x576
1920x1088
Bitrate
(bit/s)
64 k
128 k
384 k
384 k
2M
2M
15 M
38.4 M
Quelle: Touradj Ebrahimi and Caspar Horne: MPEG-4 Natural Video Coding - An
overview, aus dem Internet
Maximum Total mblk
number of
memory
objects
(mblk units)
4
4
4
4
16
16
32
32
198
792
792
594
2376
2376
9720
48960
Guido H. Bruck
Bildverarbeitung - Folie 96
1.04.2012
24
3.13.8 Datenrate
3.14.2 H.264/AVC - Scope and Context
Die Datenrate kann sowohl für Anwendungen mit variabler Datenrate (VBR – Variable
Bitrate) als auch für Anwendungen mit fester Datenrate (CBR – Constant Bitrate)
eingestellt werden. Dazu ist ein Algorithmus erforderlich, der die Quantisierung der zu
übertragenden Größen einstellt.
Bei VBR-Anwendungen wird versucht, die optimale Bildqualität mit einer vorgegebenen
Bitrate zu erreichen.
Bei CBR-Anwendungen muss die vorgegebene Verzögerungszeit und die vorgegebene
Größe des Pufferspeichers berücksichtigt werden, der die ungleichmäßig anfallenden
Datenbits zwischenspeichert, bevor sie mit konstanter Datenrate über den
Übertragungskanal geschickt werden. Ein vergleichbarer Pufferspeicher ist auf der
Decoderseite vorhanden.
Wenn der Pufferspeicher droht überzulaufen, wird die Quantisierung vergröbert, so
dass weniger Daten anfallen. Wenn der Pufferspeicher droht leer zu laufen, wird die
Quantisierung feiner eingestellt, so dass mehr Daten anfallen.
• Aimed at providing high-quality compression for various services:
– IP streaming media (50-1500 kbps)
– SDTV and HDTV Broadcast and video-on-demand (1 - 8+ Mbps)
– DVD
– Conversational services (<1 Mbps, low latency)
• Standard defines:
– Decoder functionality (but not encoder)
– File and stream structure
• Final results: 2-fold improvement in compression
• Same fidelity, half the size compared to H.263 and MPEG-2
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 97
1.04.2012
3.14.1 H.264/AVC
– MPEG-4 Part 10 (Official MPEG Term)
• ISO/IEC 14496-10 AVC
– H.264 (Official ITU Term)
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 99
1.04.2012
3.14.3 H.264/AVC - New features
• In the early 1990’s, the first video compression standards were introduced:
– H.261 (1990) and H.263 (1995) from ITU
– MPEG-1 (1993) and MPEG-2 (1996) from ISO
• Since then, the technology has advanced rapidly
– H.263 was followed by H.263+, H.263++, H.26L
– MPEG-1/2 followed by MPEG-4 visual
– But industry and research coders are still way ahead
• H.264/AVC is a joint project of ITU and ISO, to create an up-to-date
standard.
• New features in H.264
– Motion compensation and intra-prediction
– Image transform
– Deblocking filters
– Entropy coding
– Frames and slices
Quellen:
Gidon Shavit The H.264/AVC Video Coding Standard, Based on Material from IEEE Transactions on Circuits and Systems for Video
Technology, July 2003, www.cs.washington.edu/ homes/gidon/presentations/h264.ppt
Tom McMahon: The Emerging H.264/AVC Video Coding Standard, www.itl.nist.gov/div895/isis/jvtslides.ppt
Dr. Pankaj Topiwala H.264: The Next Revolution? www.hpaonline.com/files/public/topiwala.ppt
Mohsen Saneei: H-264 ece.ut.ac.ir/classpages/Multimedia/h264.ppt
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 98
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 100
1.04.2012
25
3.14.4 H.264/AVC - Changes in Motion Compensation
3.14.6 H.264/AVC - Variable Block Sizes
• Quarter-pixel accuracy
– A gain of 1.5-2dB across the board over ½-pixel
• Variable block-size:
– Every 16x16 macroblock can be subdivided
– Each sub-block gets predicted separately
• Multiple and arbitrary reference frames
– Vs. only previous (H.263) or previous and next (MPEG).
• Anti-aliasing sub-pixel interpolation
– Removes some common artifacts in residual
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 101
1.04.2012
3.14.5 H.264/AVC - Variable Block-Size MC
Guido H. Bruck
Bildverarbeitung - Folie 103
1.04.2012
3.14.7 H.264/AVC - Motion Scale Example
• Motivation: size of moving/stationary objects is variable
– Many small blocks may take too many bits to encode
– Few large blocks give lousy prediction
• In H.264/AVC, each 16x16 macroblock may be:
– Kept whole,
– Divided horizontally (vertically) into two sub-blocks of size 16x8 (8x16)
– Divided into 4 sub-blocks
16x16
16x8
8x16
– In the last case, the 4 sub-blocks may MB
0
0
0 1
Types
be divided once more into 2 or 4
1
smaller blocks.
4x8
8x4
8x8
0
– Bit rate savings of more than 15% as
8x8
0 1
0
Types
1
compared to using only a
Motion vector accuracy 1/4
16x16 block size.
Kommunikations
Technik
Kommunikations
Technik
8x8
0 1
2
3
4x4
0 1
2
3
T=1
Guido H. Bruck
Bildverarbeitung - Folie 102
1.04.2012
Kommunikations
Technik
T=2
Guido H. Bruck
Bildverarbeitung - Folie 104
1.04.2012
26
3.14.8 H.264/AVC - Motion Scale Example
T=1
Kommunikations
Technik
3.14.10 H.264/AVC – Variable Block Size Example
T=2
T=1
Guido H. Bruck
Bildverarbeitung - Folie 105
1.04.2012
T=2
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 107
1.04.2012
3.14.11 H.264/AVC – Arbitrary Reference Frames
3.14.9 H.264/AVC - Motion Scale Example
• In H.263, the reference frame for prediction is always the previous frame
• In MPEG and H.26L, some frames are predicted from both the previous
and the next frames (bi-prediction)
• In H.264/AVC, any one frame may be used as reference:
– Encoder and decoder maintain synchronized buffers of available frames
(previously decoded)
– Reference frame is specified as index into this buffer
• In bi-predictive mode, each macroblock may be:
– Predicted from one of the two references
– Predicted from both, using weighted
mean of predictors
Multiple Reference Frames for
Motion Compensation
T=1
Kommunikations
Technik
T=2
Guido H. Bruck
Bildverarbeitung - Folie 106
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 108
1.04.2012
27
3.14.12 H.264/AVC – Intra Prediction
3.14.14 H.264/AVC – 4x4 Intra Prediction Modes
• Motivation: intra-frames are natural images, so they exhibit strong spatial
correlation
– Implemented to some extent in H.263++ and MPEG-4, but in transform
domain
• Macroblocks in intra-coded frames are predicted based on previously-coded ones
– Above and/or to the left of the current block
– The macroblock may be divided into 16 4x4 sub-blocks which are predicted in
cascading fashion
• An encoded parameter specifies which neighbors should be used to predict, and
how
• 9 types for luminance signal
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 109
1.04.2012
3.14.13 H.264/AVC – Intra Prediction
Guido H. Bruck
Bildverarbeitung - Folie 111
1.04.2012
3.14.15 H.264/AVC – 4x4 Intra Prediction Modes
• For example in Mode 3 (Diagonal-Down-Left prediction) the values
of a to p are given as follows:
– a is equal to (A+2B+C+2)/4
– b, e are equal to (B+2C+D+2)/4
– c, f, i are equal to (C+2D+E+2)/4
– d, g, j, m are equal to (D+2E+F+2)/4
– h, k, n are equal to (E+2F+G+2)/4
– l, o are equal to (F+2G+H+2)/4
– p is equal to (G+3H+2)/4
• Mode 2 (DC)
– Predict all pixels from
– (A+B+C+D+I+J+K+L+4)/8 or (A+B+C+D+2)/4 or (I+J+K+L+2)/4
• For I macroblocks
• For luminance samples
– 4x4 prediction process
– 16x16 prediction process
• For chrominance samples
– 8x8 prediction process
Kommunikations
Technik
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 110
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 112
1.04.2012
28
3.14.16 H.264/AVC – 4x4 Intra Prediction Modes
Kommunikations
Technik
3.14.18 H.264/AVC - Intra Prediction
Guido H. Bruck
Bildverarbeitung - Folie 113
1.04.2012
3.14.17 H.264/AVC - Intra Prediction
Guido H. Bruck
Bildverarbeitung - Folie 115
1.04.2012
3.14.19 H.264/AVC - Image Transform
Intra 16x16 luminance (smooth
macroblocks containing little detail) and
8x8 chrominance prediction modes
– Mode 0 (Vertical)
– Mode 1 (Horizontal)
– Mode 2 (DC)
– Mode 4 (Plane): a linear “plane”
function is fitted to the upper and
left-hand samples H and V.
• Motivation:
– DCT requires real-number operations, which may cause inaccuracies in
inversion
– Better motion compensation means less spatial correlation – no need for 8x8
transform
• H.264 uses a very simple integer 4x4 transform
– A (pretty crude) approximation to 4x4 DCT
– Transform matrix contains only +/-1 and +/-2
• Can be computed with only additions, subtractions, and shifts
• Results show negligible loss in quality (~0.02dB)
If any of the 8x8 blocks in the luminance
component are coded in Intra mode, both
chrominance blocks (Cr,Cb) are also intra
coded
Kommunikations
Technik
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 114
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 116
1.04.2012
29
3.14.20 H.264/AVC - Image Transform
3.14.22 H.264/AVC - Image Transform
• EXACT MATCH Simplified Transform
• Based primarily on 4x4 transform (all prior standards: 8x8)


T



1
1
1
1  1  2
1 1 1
1

1 2
2
1
1
2
• In “adaptive block size transform” mode
– further transforms are chosen depending on the motion
compensation block size(4x8, 8x4, 8x8, 16x8, etc)
– transform operates on 4x4 blocks of residual data after motioncompensated prediction or Intra prediction
 1 1
T

 1 1
• Requires only 16 bit arithmetic (including intermediate values)
• Easily extensible to 10-12 bits per component
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 117
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 119
1.04.2012
3.14.21 H.264/AVC - Image Transform
3.14.23 H.264/AVC - Deblocking Filters
Transform in “baseline” profile of H.264/AVC
• 4x4 block transform for residual data
• 4x4 transform of luminance DC coefficients in intra macroblocks
(intra predicted in 16x16 mode)
• 2x2 transform of chrominance DC coefficients (in any macroblock)
• Motivation: block-based MC and transforms generate blocking artifacts
– Very visible to human eye at low bit-rates
• Previous standards applied simple filters to “smudge” edges between blocks
• H.264/AVC adaptively chooses for each edge which one of 5 deblocking filters to
apply.
– For instance, if both blocks have the same motion vector, less filtering is
needed.
• Improves objective quality as well: about 7-9% reduction in bit-rate for same
PSNR.
Kommunikations
Technik
Luminance signal
Guido H. Bruck
Bildverarbeitung - Folie 118
1.04.2012
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 120
1.04.2012
30
3.14.24 H.264/AVC - Deblocking Filters
3.14.26 H.264/AVC - Entropy Coding: CABAC
• Arithmetic coding framework designed specifically for H.264
• Binarization: all syntax symbols are translated to bit-strings
• 399 predefined context models, used in groups
– E.g. models 14-20 used to code macroblock type for inter-frames
– The model to use next is selected based on previously coded information (the
context)
– Each context model adapts to empirical distribution
1) Without Filter
2) with H264/AVC Deblocking
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 121
1.04.2012
3.14.25 H.264/AVC - Entropy Coding
Guido H. Bruck
Bildverarbeitung - Folie 123
1.04.2012
3.14.27 H.264/AVC - Frames and Slices
• Motivation: traditional coders use fixed, variable-length codes
– Essentially Huffman-style codes
– Non-adaptive
– Can’t encode symbols with probability > 0.5 efficiently, since at least one bit
required
• H.263 Annex E defines an arithmetic coder
– Still non-adaptive
– Uses multiple non-binary alphabets, which results in high computational
complexity
• H.264/AVC uses two entropy codings:
– CAVLC (context-adaptive variable length coding) and UVLC (Uniform Variable
Length Coding)
– CABAC (context-adaptive binary arithmetic coding)
Kommunikations
Technik
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 122
1.04.2012
• In H.263 and MPEG, each frame is either inter (P-frame) or intra (I-frame).
– Exception: some macroblocks in P-frames may be intra-coded, and are called
I-blocks.
• H.264/AVC generalizes this: each frame consists of one or more slices
– Contiguous groups of macroblocks
– Processed in internal raster order
– Each is independently encoded and decoded
• I-slices, P-slices, B-slices (two reference frames)
Slice 0
Slice 1
Slice 2
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 124
1.04.2012
31
3.14.28 H.264/AVC vs MPEG-2, Low Rate
Foreman, QCIF, 30 fps
MPEG-2
203 kbps
Kommunikations
Technik
H.264
39 kbps!
Guido H. Bruck
Bildverarbeitung - Folie 125
1.04.2012
3.14.29 Quick Look at WM9
• WM4 onward were variants of MPEG-4
• WM9 is a variant of H.264/AVC
– Fast, 16-bit integer transform
– Sophisticated motion estimation
– Scalar quantization
– Adaptive VLC (no CABAC)
• This would give it performance similar to H.264/AVC
– Might expect ~10% less since no CABAC
– In our tests, they appear comparable
• WM9 performed well in tests at DVD Forum. But
– WM9 may have used optimized, tuned, 2-pass encoding, prefiltering.
– H.264/AVT used 1-pass ref. sw. (No 2-pass, tuning, filtering, opt.)
Kommunikations
Technik
Guido H. Bruck
Bildverarbeitung - Folie 126
1.04.2012
32