SlideShare a Scribd company logo
1 of 22
Download to read offline
JPEG
1980 videotex
1980 videotex
listopad 1986 ISO a CCITT vytvářejí skupinu JPEG
listopad 1986 14 technik (1. meeting JPEG)
březen 1987 12 technik (2. meeting JPEG)
1980 videotex
listopad 1986 ISO a CCITT vytvářejí skupinu JPEG
listopad 1986 14 technik (1. meeting JPEG)
březen 1987 12 technik (2. meeting JPEG)
1987 objevuje se orthogonální verze DWT
leden 1988 závěrečný meeting (vybrána ADCT)
1989 návrh standardu
1989 vynalezen World Wide Web
říjen 1991 uvolněna otevřená knihovna libjpeg
18. září 1992 JPEG schválen jako doporučení ITU-T T.81
1993 JPEG schválen jako standard ISO/IEC 10918-1
červen 1998 JPEG-LS schválen jako doporučení
srpen 2002 JPEG 2000 schválen jako doporučení
YCbCr
transformace RGB


Y
Cb
Cr

 =


0
128
128

 +


+0,299 +0,587 +0,114
−0,16875 −0,33126 +0,5
+0,5 −0,41869 −0,08131

 ·


R
G
B


Podvzorkování
Y vs. Cb, Cr
člověkem nepozorovatelné
blok, makropixel
J:a:b, 4:4:4, 4:2:2, 4:1:1, 4:2:0
centroidy
4:4:4 4:2:2
4:1:1 4:2:0
DCT (diskrétní kosinová transformace)
enkodér
DCT kvantizace
kvantizační
tabulka
tabulka
kódů
RLE
Huffmanův
kodér
vstupní
obrazový
kanál
komprimovaný
tok dat
význam koeficientů
DC
(a) Směry hran (b) Frekvence (c) Bázové funkce
kvantování, kvantizační tabulka (parametr JPEGu)
Sq
v,u = round(Sv,u/Qv,u)
kvantizační tabulky
16 11 10 16 124 140 151 161
12 12 14 19 126 158 160 155
14 13 16 24 140 157 169 156
14 17 22 29 151 187 180 162
18 22 37 56 168 109 103 177
24 35 55 64 181 104 113 192
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 199
17 18 24 47 99 99 99 99
18 21 26 66 99 99 99 99
24 26 56 99 99 99 99 99
47 66 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
kódování koeficientů
blokový efekt
linearizace zig-zag, nulové více ke konci, EOB
DC zapsán rozdílově
AC pomocí RLE předcházejících nul
následně arit. nebo Huff. kódování (5–10 %)
Huffman: tabulky pro DC a AC koeficienty
kontejnery
JIF, JFIF, Exif, SPIFF
datový tok, big endian
rozdělen do segmentů, max. 65 535 B
segment uvozen markerem 0xff + 0x01 až 0xfe
markery: APP0 (hlavička JFIF), APP1 (Exif), SOF0 (začátek
obrázku v základním režimu), SOS (začátek komprimovaných
dat), RSTm (restartovací značky), DHT (definice Huffmanových
tabulek), DQT (definice kvantizačních tabulek)
JIF rozšířen na JFIF a Exif (nekompatibilní), JFIF+Exif
náhledy, metadata (model fotoaparátu)
Exif: TIFF (náhled JFIF)
SPIFF se neujal
zajímavosti
lapped DCT
dekomprese v 1/8..7/8 rozlišení
rozdílná kvantizace, možnost ROI
bezeztrátové transformace (jpegtran) – ořez, rotace, překlopení
postprocessingové filtry (deblocking)
zajímavosti
zajímavosti: ringing
nové transformace
0
0.5
1
1.5
2
2.5
3
3.5
4
34 dB 36 dB 38 dB
BPP
PSNR [dB]
DCT
DChT
LDCT
CDF 9/7
60
65
70
75
80
85
90
95
100
0 1 2 3 4 5 6
SSIM[%] BPP
DCT
DWT 9/7
LDCT
SMRT
DChT
WHT
JPEG vs. JPEG 2000
kvalita/kompresní poměr, 108:1
Obrázek: originál, JPEG 2000, JPEG
JPEG vs. JPEG 2000
odolnost vůči chybám
Obrázek: JPEG, JPEG 2000
srovnání
Lenna
0
15
30
45
60
75
0 3 6 9 12 15
SSIM/dB
bits per pixel
JPEG
JPEG 2000
JPEG XR
WebP
kam dál?
video: predikce z okolních bloků, Chroma From Luma
transformace: hierachická DCT, DWT, X-lety
zajímavé odkazy
https://people.xiph.org/~xiphmont/demo/
https://xooyoozoo.github.io/yolo-octo-bugfixes/
http://www.imagecompression.info/lossy/
https://jpeg.org/

More Related Content

More from David Bařina

Single-Loop Software Architecture for JPEG 2000
Single-Loop Software Architecture for JPEG 2000Single-Loop Software Architecture for JPEG 2000
Single-Loop Software Architecture for JPEG 2000David Bařina
 
Lifting Scheme Cores for Wavelet Transform
Lifting Scheme Cores for Wavelet TransformLifting Scheme Cores for Wavelet Transform
Lifting Scheme Cores for Wavelet TransformDavid Bařina
 
Real-Time 3-D Wavelet Lifting
Real-Time 3-D Wavelet LiftingReal-Time 3-D Wavelet Lifting
Real-Time 3-D Wavelet LiftingDavid Bařina
 
IIR aproximace Gaussovy funkce
IIR aproximace Gaussovy funkceIIR aproximace Gaussovy funkce
IIR aproximace Gaussovy funkceDavid Bařina
 
Akcelerace DWT pomocí SIMD
Akcelerace DWT pomocí SIMDAkcelerace DWT pomocí SIMD
Akcelerace DWT pomocí SIMDDavid Bařina
 
Wavelet Lifting on Application Specific Vector Processor
Wavelet Lifting on Application Specific Vector ProcessorWavelet Lifting on Application Specific Vector Processor
Wavelet Lifting on Application Specific Vector ProcessorDavid Bařina
 
Bit Twiddling Hacks: Integers
Bit Twiddling Hacks: IntegersBit Twiddling Hacks: Integers
Bit Twiddling Hacks: IntegersDavid Bařina
 
Fixed-point arithmetic
Fixed-point arithmeticFixed-point arithmetic
Fixed-point arithmeticDavid Bařina
 

More from David Bařina (12)

Single-Loop Software Architecture for JPEG 2000
Single-Loop Software Architecture for JPEG 2000Single-Loop Software Architecture for JPEG 2000
Single-Loop Software Architecture for JPEG 2000
 
Lifting Scheme Cores for Wavelet Transform
Lifting Scheme Cores for Wavelet TransformLifting Scheme Cores for Wavelet Transform
Lifting Scheme Cores for Wavelet Transform
 
Real-Time 3-D Wavelet Lifting
Real-Time 3-D Wavelet LiftingReal-Time 3-D Wavelet Lifting
Real-Time 3-D Wavelet Lifting
 
Wavelet News
Wavelet NewsWavelet News
Wavelet News
 
IIR aproximace Gaussovy funkce
IIR aproximace Gaussovy funkceIIR aproximace Gaussovy funkce
IIR aproximace Gaussovy funkce
 
Akcelerace DWT pomocí SIMD
Akcelerace DWT pomocí SIMDAkcelerace DWT pomocí SIMD
Akcelerace DWT pomocí SIMD
 
Wavelet Lifting on Application Specific Vector Processor
Wavelet Lifting on Application Specific Vector ProcessorWavelet Lifting on Application Specific Vector Processor
Wavelet Lifting on Application Specific Vector Processor
 
GStreamer
GStreamerGStreamer
GStreamer
 
FFmpeg
FFmpegFFmpeg
FFmpeg
 
Bit Twiddling Hacks: Integers
Bit Twiddling Hacks: IntegersBit Twiddling Hacks: Integers
Bit Twiddling Hacks: Integers
 
Fixed-point arithmetic
Fixed-point arithmeticFixed-point arithmetic
Fixed-point arithmetic
 
Wavelets @ CPU
Wavelets @ CPUWavelets @ CPU
Wavelets @ CPU
 

JPEG

  • 2.
  • 3.
  • 5. 1980 videotex listopad 1986 ISO a CCITT vytvářejí skupinu JPEG listopad 1986 14 technik (1. meeting JPEG) březen 1987 12 technik (2. meeting JPEG)
  • 6. 1980 videotex listopad 1986 ISO a CCITT vytvářejí skupinu JPEG listopad 1986 14 technik (1. meeting JPEG) březen 1987 12 technik (2. meeting JPEG) 1987 objevuje se orthogonální verze DWT leden 1988 závěrečný meeting (vybrána ADCT) 1989 návrh standardu 1989 vynalezen World Wide Web říjen 1991 uvolněna otevřená knihovna libjpeg 18. září 1992 JPEG schválen jako doporučení ITU-T T.81 1993 JPEG schválen jako standard ISO/IEC 10918-1 červen 1998 JPEG-LS schválen jako doporučení srpen 2002 JPEG 2000 schválen jako doporučení
  • 7. YCbCr transformace RGB   Y Cb Cr   =   0 128 128   +   +0,299 +0,587 +0,114 −0,16875 −0,33126 +0,5 +0,5 −0,41869 −0,08131   ·   R G B  
  • 8. Podvzorkování Y vs. Cb, Cr člověkem nepozorovatelné blok, makropixel J:a:b, 4:4:4, 4:2:2, 4:1:1, 4:2:0 centroidy 4:4:4 4:2:2 4:1:1 4:2:0
  • 11. význam koeficientů DC (a) Směry hran (b) Frekvence (c) Bázové funkce kvantování, kvantizační tabulka (parametr JPEGu) Sq v,u = round(Sv,u/Qv,u)
  • 12. kvantizační tabulky 16 11 10 16 124 140 151 161 12 12 14 19 126 158 160 155 14 13 16 24 140 157 169 156 14 17 22 29 151 187 180 162 18 22 37 56 168 109 103 177 24 35 55 64 181 104 113 192 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 199 17 18 24 47 99 99 99 99 18 21 26 66 99 99 99 99 24 26 56 99 99 99 99 99 47 66 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
  • 13. kódování koeficientů blokový efekt linearizace zig-zag, nulové více ke konci, EOB DC zapsán rozdílově AC pomocí RLE předcházejících nul následně arit. nebo Huff. kódování (5–10 %) Huffman: tabulky pro DC a AC koeficienty
  • 14. kontejnery JIF, JFIF, Exif, SPIFF datový tok, big endian rozdělen do segmentů, max. 65 535 B segment uvozen markerem 0xff + 0x01 až 0xfe markery: APP0 (hlavička JFIF), APP1 (Exif), SOF0 (začátek obrázku v základním režimu), SOS (začátek komprimovaných dat), RSTm (restartovací značky), DHT (definice Huffmanových tabulek), DQT (definice kvantizačních tabulek) JIF rozšířen na JFIF a Exif (nekompatibilní), JFIF+Exif náhledy, metadata (model fotoaparátu) Exif: TIFF (náhled JFIF) SPIFF se neujal
  • 15. zajímavosti lapped DCT dekomprese v 1/8..7/8 rozlišení rozdílná kvantizace, možnost ROI bezeztrátové transformace (jpegtran) – ořez, rotace, překlopení postprocessingové filtry (deblocking)
  • 18. nové transformace 0 0.5 1 1.5 2 2.5 3 3.5 4 34 dB 36 dB 38 dB BPP PSNR [dB] DCT DChT LDCT CDF 9/7 60 65 70 75 80 85 90 95 100 0 1 2 3 4 5 6 SSIM[%] BPP DCT DWT 9/7 LDCT SMRT DChT WHT
  • 19. JPEG vs. JPEG 2000 kvalita/kompresní poměr, 108:1 Obrázek: originál, JPEG 2000, JPEG
  • 20. JPEG vs. JPEG 2000 odolnost vůči chybám Obrázek: JPEG, JPEG 2000
  • 21. srovnání Lenna 0 15 30 45 60 75 0 3 6 9 12 15 SSIM/dB bits per pixel JPEG JPEG 2000 JPEG XR WebP
  • 22. kam dál? video: predikce z okolních bloků, Chroma From Luma transformace: hierachická DCT, DWT, X-lety zajímavé odkazy https://people.xiph.org/~xiphmont/demo/ https://xooyoozoo.github.io/yolo-octo-bugfixes/ http://www.imagecompression.info/lossy/ https://jpeg.org/