![Page 1: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/1.jpg)
Source Coding
Prof. G. MaseraIng. M. MartinaIng. M. Nicola
![Page 2: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/2.jpg)
Codifica di sorgente
AudioMPEG-Audio level I, II, III, MPEG4-Advanced Audio Coding (AAC)…
ImmaginiJPEGJPEG 2000…
VideoMPEG2MPEG4 (H.264/AVC – MPEG4-part 10)...
![Page 3: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/3.jpg)
Video
EncoderDigital video camera (produzione)Consumer…
DecoderTrans-codificatoriDecoder digitali (Set Top Box)…
![Page 4: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/4.jpg)
MPEG2 – Encoder - IDCTDCT++ QQ VLCVLC
QQ--11
II--DCTDCT
Frame Frame BufferBufferMEME
MCMC
Motion vectorMotion vector
--
++
Motion vectorMotion vector
![Page 5: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/5.jpg)
MPEG2 – Encoder - IIDCTDCT++ QQ VLCVLC
QQ--11
II--DCTDCT
Frame Frame BufferBufferMEME
MCMC
Motion vectorMotion vector
--
++
Motion vectorMotion vector
00
![Page 6: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/6.jpg)
MPEG2 – Encoder - IIIDCTDCT++ QQ VLCVLC
QQ--11
II--DCTDCT
Frame Frame BufferBufferMEME
MCMC
Motion vectorMotion vector
--
++
Motion vectorMotion vector
11
![Page 7: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/7.jpg)
Zoom - ME
![Page 8: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/8.jpg)
MPEG2 – Encoder - IVDCTDCT++ QQ VLCVLC
QQ--11
II--DCTDCT
Frame Frame BufferBufferMEME
MCMC
Motion vectorMotion vector
--
++
Motion vectorMotion vector
11
![Page 9: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/9.jpg)
Zoom - MC
![Page 10: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/10.jpg)
MPEG2 – Encoder - VDCTDCT++ QQ VLCVLC
QQ--11
II--DCTDCT
Frame Frame BufferBufferMEME
MCMC
Motion vectorMotion vector
--
++
Motion vectorMotion vector
11
![Page 11: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/11.jpg)
Zoom – Frame Buffer
++
Frame Frame bufferbuffer
VLCVLCMCMC
![Page 12: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/12.jpg)
MPEG2 – Encoder - VIDCTDCT++ QQ VLCVLC
QQ--11
II--DCTDCT
Frame Frame BufferBufferMEME
MCMC
Motion vectorMotion vector
--
++
Motion vectorMotion vector
22
![Page 13: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/13.jpg)
MPEG2 – Encoder Profiling
Qual è il blocco più oneroso (tempo di calcolo) ?
750750--MHz MHz IntelIntelMobile Mobile PentiumPentium III.III.
PowerPCPowerPC 970970
This table is taken from G. Kuzmanov, G. Gaydadjiev and S. Vassiliadis, “The MOLEN Processor Prototype”, in the Proceedings of the IEEE Symposium on Field-Programmable 2004
![Page 14: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/14.jpg)
Stima del moto
Classificazione:Dominio di ricerca
Immagine (block matching)Trasformato (PPC, …)
Tipo di ricercaLossless (ricerca ottima)
Full SearchSuccessive Elimination Algorithm (SEA)…
Lossy (ricerca sub-ottima)3-step-search (TSS)…
![Page 15: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/15.jpg)
Stima del moto
Block Based Motion Estimation Algorithms
Time-domain Algorithms Frequency-domain Algorithms
Matching Algorithms Gradient Based Algorithms
Block-matching
Feature-matching
Pel-recursive
Block-recursive
Phase-correlation
Matching in (DCT) domain
Matching in wavelet domain
Mesh Based Motion Estimation Algorithms
![Page 16: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/16.jpg)
pp
Block matching
p+vp+v
tt t + t + ττ
vv
NN
NN
N(N N(N sottrazionisottrazioni + (N+ (N--1) 1) sommesomme) + (N) + (N--1)somme 1)somme ≈≈ 2N2N22 sommesomme
SS11
SS22
FinestraFinestra didi ricercaricerca
![Page 17: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/17.jpg)
Esempio: Full Search - IPAL (W=720, H=576)Macroblocco 16×16 (N×N) → 45×36 MBsFinestra di ricerca 31×31 (S1×S2) pixel (d=7)
(S(S11--N+1) (SN+1) (S22--N+1)N+1)256 SAD 256 SAD
256 256 ×× 45 45 ×× 36 = 36 = 414720 SAD per frame !!414720 SAD per frame !!
pixelpixel
MPEG2MPEG2
![Page 18: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/18.jpg)
Esempio: Full Search - IIA 25 frame al secondo
1 SAD = N2 sub + (N2 – 1) add ≈ 2N2 = 512
414720 414720 ×× 25 = ~10.4 25 = ~10.4 MilioniMilioni di di SAD al SAD al secondosecondo !!!!
~ 5.4 ~ 5.4 Gsub/sGsub/s5.4 5.4 MiliardiMiliardi di di sottrazionisottrazioni al al secondosecondo !!!!
![Page 19: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/19.jpg)
Altri domini
La stima del moto può essere effettuata in altri dominiEs. in frequenza:
y0 = FFT(frame0) → φ(y0)y1 = FFT(frame1) → φ(y1)d = IFFT(φ(y0)-φ(y1))
Funziona bene se il moto è traslatorioUtilizzata per frame-rate-up-conversion
![Page 20: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/20.jpg)
Ricerca Lossless - I
Esempio: Successive Elimination Algorithm (SEA)
Da cui si ha:
![Page 21: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/21.jpg)
Ricerca Lossless - II
Scelgo un macroblocco iniziale su cui calcolare la SAD
Il macroblocco che stiamo cercando soddisfa
Per cui
![Page 22: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/22.jpg)
Ricerca Lossless - III
Prima di valutare
Verifico se
Se è verificata l’ipotesi allora calcolo
![Page 23: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/23.jpg)
Ricerca Lossless - IV
Posso organizzare i calcoli in modo efficiente:
pp
NN
NN
Calcolo R(p)Calcolo SAD(p,v0)Calcolo di M(p,v)(=SNi,j)
Bisogna ottimizzarlo!
![Page 24: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/24.jpg)
Precalcolare ? - I
SS11
SS22
NN
CC1,11,1CC1,21,2 CC1,S1,S11
SS11(N(N--1) Somme1) Somme
SS11 RegistriRegistri
![Page 25: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/25.jpg)
Precalcolare ? - II
SS11
SS22
NN SNSN1,11,1 = = ∑∑ii CC1,i1,i
SNSN1,21,2 = SN= SN1,11,1 –– CC1,11,1+C+C1,N+11,N+1
•• SS11 RegistriRegistri
•• SS11(N(N--1) Somme1) Somme
![Page 26: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/26.jpg)
Precalcolare ? - III
SS11
SS22
NN
•• SS11 RegistriRegistri
•• SS11(N(N--1) Somme1) Somme
SNSN1,11,1 = = ∑∑ii CC1,i1,i
NN--1 Somme1 Somme
SNSN1,x1,x = SN= SN1,x1,x--11 –– CC1, x1, x--11 + C+ C1,N+x1,N+x--11
22××(S(S11--N) SommeN) Somme
![Page 27: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/27.jpg)
Precalcolare ? - IV
SS11
SS22
NN
•• SS11 RegistriRegistri
•• SS11(N(N--1) Somme1) Somme
•• NN--1 Somme1 Somme
•• 2(S2(S11--N) SommeN) Somme
CC2,12,1= C= C1,11,1 -- f(1,1) + f(N+1,1)f(1,1) + f(N+1,1)
2 Somme2 SommeCC2,12,1= C= C1,11,1 -- f(1,1) + f(N+1,1)f(1,1) + f(N+1,1)
2 Somme2 Somme
2S2S11 SommeSomme
![Page 28: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/28.jpg)
Precalcolare ? - V
SS11
SS22
NN
•• SS11 RegistriRegistri
•• SS11(N(N--1) Somme1) Somme
•• NN--1 Somme1 Somme
•• 2(S2(S11--N) SommeN) Somme
SS22--N N Strisce Strisce ×× 2S2S11 SommeSomme
![Page 29: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/29.jpg)
Precalcolare ? - VI
SS11
SS22
NN
•• SS11 RegistriRegistri
•• SS11(N(N--1) Somme1) Somme
•• NN--1 Somme1 Somme
•• 2(S2(S11--N) SommeN) Somme
SS22--N N Strisce Strisce ×× (N(N--1 + 2(S1 + 2(S11--N)) SommeN)) Somme
![Page 30: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/30.jpg)
TotaleR(p) → N2 SommeSAD(p,v0) → 2N2 SommeM(p,v) = SNi,j
S1(N-1) + N-1 + 2(S1-N) + (S2-N)[2S1 + (N-1) + 2(S1-N)]
N = 16, S1=31, S2=31W = 720 → 45 H = 576 → 3625 frame/s
TotTotminmin = ~117 = ~117 MilioniMilioni di di sommesomme al al secondosecondo !!
![Page 31: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/31.jpg)
Complessità
Dipende molto dalla scelta di v0Dati:
Macroblocco di riferimento (frame t) → pMacroblocco candidato (frame t+τ) → v*
Se
Allora valuto SAD(p,v*)Si arriva a risparmiare ~85% delle operazioni(~800 Msub/s)
![Page 32: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/32.jpg)
Scelta di v0La distribuzione dei vettori di moto è centrataintorno al macroblocco in esame*
These results are taken from Chun-Ho Cheung and Lai-Man Po, “Novel Cross-Diamond-Hexagonal Search Algorithms for Fast Block Motion Estimation”, IEEE Trans. On Multimedia, Feb. 2005.
![Page 33: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/33.jpg)
Ricerca Lossy - I
Si basano sull’ipotesi che nelle sequenzenaturali:
il moto è prevalentemente lentola distribuzione dei vettori di moto è centrata
intorno al macroblocco in esameEsempi:
Three Step Search (TSS)Four Step Search (4SS)Diamond Search…
![Page 34: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/34.jpg)
TSS
![Page 35: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/35.jpg)
TSS
![Page 36: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/36.jpg)
TSS
![Page 37: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/37.jpg)
TSS
![Page 38: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/38.jpg)
Complessità
TSS valuta 25 SAD per ogni macroblocco25×45×36=40.5 kSAD (PAL)
Su 25 frame/s 40.5×25 =~1MSAD/s
~512 Msub/s (TSS)~800 Msub/s (SEA)~ 5.4 Gsub/s (FS)
![Page 39: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/39.jpg)
Partial Distortion Elimination
La funzione SAD è crescente (non strettamente)
Possiamo ridurre la complessità di qualunquealgoritmo block mathching
![Page 40: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/40.jpg)
Esempio: SEA + PDE
Scelta di SAD(p,v0)Se troviamo v*
Non siamo sicuri che
Se mentre valutiamo SAD(p,v*) otteniamo un valore > min(SAD(p,v)) interrompiamo la SAD → risparmiamo somme !!
![Page 41: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/41.jpg)
MPEG2 – Decoder - I
QQ--11 II--DCTDCTVLCVLC ++
BufferBufferMCMC
![Page 42: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/42.jpg)
MPEG2 – Decoder - II
QQ--11 II--DCTDCTVLCVLC ++
BufferBufferMCMC
VettoriVettori di di motomoto
![Page 43: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/43.jpg)
MPEG2 – Decoder Profiling
Qual è il blocco più oneroso (tempo di calcolo) ?
PowerPCPowerPC 970970
This table is taken from G. Kuzmanov, G. Gaydadjiev and S. Vassiliadis, “The MOLEN Processor Prototype”, in the Proceedings of the IEEE Symposium on Field-Programmable 2004
![Page 44: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/44.jpg)
DCT - I
La Discrete Cosine Transform (DCT) 8×8 è:
Analogamente la IDCT:
![Page 45: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/45.jpg)
DCT - IIf(x,yf(x,y)) F(u,vF(u,v))
88××88××complessitcomplessitàà di di F(u,vF(u,v))
![Page 46: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/46.jpg)
DCT - III
22××88××8 8 MulMul + 7+ 7××8+7 Add8+7 Add
![Page 47: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/47.jpg)
Complessità
La complessità della forma diretta di 2D-DCT è:
8×8 ×(2×8×8 Mul + 7×8+7 Add)8192 Mul + 4032 Add
per ogni blocco 2D-DCT 8×8Per un PAL (720×576 @ 25 frame/s)
90×72×25×(8192 Mul + 4032 Add)~1.3 GMul/s + ~650 MAdd/s
![Page 48: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/48.jpg)
Idee
Riorganizzare la sequenza delle operazioniSpezzare il flusso:
1D-DCT orizzontale1D-DCT verticale
Sfruttare la simmetria della funzione cos(x)ChenLoeffler…
![Page 49: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/49.jpg)
Chenx0x1
x2x3x4
x5x6x7
y0y1y 2y 3y 4y 5y6y7
MoltiplicazioneMoltiplicazione SottrazioneSottrazione ShiftShift
![Page 50: Source Coding - polito.itpersonal.delen.polito.it/maurizio.martina/TecnologieDei... · 2010-03-23 · MPEG2 – Encoder Profiling Qual è il blocco più oneroso (tempo di calcolo)](https://reader036.vdocuments.us/reader036/viewer/2022062414/5e95274febc0745c0f695242/html5/thumbnails/50.jpg)
Complessità
La DCT di Chen richiede:16 Mul + 26 Add ogni 8 punti
2D-DCT:2×8 ×(16 Mul + 26 Add) = 256 Mul + 416 AddPAL (720×576 @ 25 frame/s)
90×72×25×(256 Mul + 416 Add)Chen: ~41.5MMul/s + ~67.4MAdd/sDirect: ~1.3 GMul/s + ~650 MAdd/s