11.6. Codarea intercadre Principiile codarii intercadre = codarea secventelor video senal TV; teleconferinte; senale ecografice edicale) Cadrul 1 Cadrul 2 Cadrul 3 Cadrul teporal Cadrul 10 Codarea intercadre = exploatarea redundantei teporale <=> intre cadrele succesive diferentele sunt ici -> date de: iscarea obiectelor; iscarea caerei; zooing)
11.6. Codarea intercadre - continuare Redundanta teporala <=> diferenta ica de luinanta intre cadrele secventei: Cadrul 66 Cadrul 69 Modulul diferentei de luinanta Metode siple de copresie intercadre: 1) Intreteserea liniilor orizontale 2) Subesantionarea si repetarea capurilor la cadrele intretesute => calitate slaba a secventelor video 3) Transisia si redarea selectiva a cadrelor: - cadrele se transit cu rata ica - rata => stabilita de un algorit predeterinat fixat de actualizare a datelor: se actualizeaza nuai datele care se odifica senificativ de la un cadru la altul - la redare => datele neactualizate se repeta refresh) din cadrul anterior stocat in eoria de 1 cadru. -> etoda este aplicabila secventelor cu iscare lenta
Metode siple de copresie intercadre - continuare: 4) Metoda bazata pe identificarea zonelor stationare si zonelor in iscare : - raspunsul sisteului vizual uan = foarte slab la iagini care contin siultan frecvente teporale + spatiale inalte => zonele cu odificari i teporale rapide - reprezentate t cu aplitudine + rezolutie spatiala ai ica decat zonele stationare => secvente de calitate buna la rate de 2 25 biti/pixel. - principiul etodei: 1) Segentarea iaginii in zone stationare si zone in iscare pe baza senalului diferenta dintre cadrele succesive 2) In zonele stationare: se transite diferenta intre cadre pt. fiecare al 2-lea pixel; pixelii raasi se repeta din cadrul precedent 3) In zonele in iscare: subesantionare orizontala 2:1; transiterea zonei; eleentele netransise - reconstituite prin interpolare de-a lungul liniilor -> distorsiuni vizibile la uchiile ascutite care se deplaseaza cu viteza oderata 11.6.1. Codarea cu inlocuire conditionata: Bazata pe detectia si codarea zonelor in iscare care se inlocuiesc de la un cadru la altul; celelalte zone se repeta de la cadrul anterior. Daca uni) = pixelul de pe pozitia spatiala n) in cadrul i; u ni-1) = pixelul refacut decodat) de pe pozitia n) in cadrul i-1 => senalul diferenta intercadre eni): e n i) = u n i) u n i 1)
11.6.1. 1 Codarea cu inlocuire conditionata - continuare: Daca => eni) se cuantizeaza se codeaza si se transite. e n i) > η Altfel => e n i) 0. η = valoare de prag La receptie: u ni) se obtine din cadrul precedent prin repetare) daca eni)=0 sau prin adunarea senalului - diferenta decodat: u u n i 1) + e n i ) daca e n i ) n i) = u n i 1) in rest > η Zona stationara fond) Obiect in iscare Cadrul i-1 Cadrul i
11 6 2 Codarea predictiva adaptiva: 11.6.2. Codarea predictiva adaptiva: = adaptarea codarii la caracteristicile iscarii din iagine <=> clasificarea pixelilor in: 1) pixeli dintr-o zona stationara C S 2) i li di t i i t / d t C 2) pixeli dintr-o zona cu iscare inceata/oderata C M 3) pixeli dintr-o zona cu iscare rapida C R Clasificarea - bazata pe un indice de activitate αni): + + + + = α 1) ) ) i y n x u i y n x u i n unde N = vecinatatea pixelilor codati anterior v. DPCM 2-D): + + + + = α ) Ν 1) ) ) y x i y n x u i y n x u i n 11)} 10) 1) 1 s 0 = ) { N s=2 pentru esantionare 2:1; s=1 altfel αni) are <=> iscare in vecinatatea pixelului uni). Valoarea prezisa a uni): ρ ρ + ρ ρ = R s M s C n 1i 1n u i n 1 u 1i n u C n 1 i q n p u C n 1 i n u i n u ) ) ) ) ) ) ) ) ) 2 1 2 1 ρ 1 si ρ 2 = coeficientii de corelatie cu pixelii vecini pe directiile si n; p q = alese dupa estiarea deplasarii N care da activitatea inia. Avantajul etodei: copresie de 2 ori > ca la inlocuirea conditionata
n Cuantizor Q S e Codor entropic Scaner de rastru Cuantizor Q M Intarziere si eorare Predictor al frecventei de esantionare Cuantizor Q R Predictori de intensitate Estiare a iscarii Buffer Codarea adaptiva predictiva intercadre - schea bloc
11.6.3. Codarea predictiva cu copensarea iscarii: Bazata pe codarea traiectoriei iscarii; foloseste vectorul de iscare intre cadre consecutive pentru obtinerea predictorului pixelului curent Succesul etodei dependent de precizia viteza si iunitatea la perturbatii a etodei de estiare a iscarii. Principial: 1) divizarea cadrelor in blocuri de diensiuni ici ex. 8x8 pixeli) 2) copararea blocurilor din cadre succesive => deterina care blocuri au raas stationare si care s-au deplasat <=> identifica partile statice si partile in iscare Cadrul curent Cadrul de referinta Cea ai buna potrivire Regiunea de cautare Blocul l curent Estiarea iscarii
11.6.3. Codarea predictiva cu copensarea iscarii - continuare: Estiarea iscarii = deterinarea blocurilor din iagine care au suferit o deplasare de la un cadru la altul; deterinarea directiei + vitezei lor de deplasare = vectorul de iscare MV). Copensarea iscarii = reconstructia cadrului folosind secvente din cadrele anterioare + inforatii referitoare la iscare vectorul de iscare). Estiarea iscarii - prin cautarea potrivirii blocurilor. Detectia precisa a potrivirii blocurilor - prin etoda erorii edii patratice RMSE - de obicei blocuri 8x8 pixeli: RMSE = 1 64 7 7 e j= 0 k= 0 2 j k) ejk) = eroarea intre valorile pixelului l i jk) din iaginile i il adiacente. Algoriti de estiare a iscarii: 1) Tehnici de cautare a vectorului de deplasare care asigura iniizarea distorsiunii intre cadrul de referinta si cadrul curent. 2) Estiarea recursiva a iscarii pe baza gradientului functiei de eroare a deplasarii 3) Tehnici diferentiale: bazate pe constanta luinantei pixelului de-a lungul traiectoriei: u x t) y t) t) = const. ; xt) yt) - traiectoria de iscare
3) Tehnici diferentiale - continuare: u u u x t) y t) =>: + v1 + v2 = 0 x y) R unde: v = cele doua coponente t x y 1 = v2 = t t ale vitezei; R = ultiea pixelilor in iscare care au aceeasi traiectorie Vectorul de deplasare d poate fi estiat ca: d = t 0 +τ vdt v τ unde vectorul viteza v se obtine prin iniizarea: t0 u = + v t u + v x J 1 2 R u y 2 dxdy De exeplu daca se ignora cadrele de ordin par un2i) i=12... prin folosirea copensarii iscarii se obtine: prin repetarea cadrelor: u n2i) = u -pn-q2i-1) prin interpolarea cadrelor: u n2i)=1/2[-pn-q2i-1)+ u -p n-q 2i+1)] unde pq) [i p q ) sunt vectorii de deplasare relativ la cadrul precedent si respectiv urator.
Cadrul de referinta Cadrul prezis
Cadrul de referinta 66) Cadrul 69 Cadrul 69 cu vectorii de iscare Cadrul 69 prezis Diferenta intre cadrul 69 prezis si cadrul 69 real
11.6.4. Codarea hibrida intercadre Eroarea de predictie DPCM devine: e k l) = v k l) αv~ 1 k l) i i i unde: ~ v i 1 k l ) se obtine prin transforarea secventei ~ 1 p la n care q ) s-a aplicat copensarea iscarii. u i u i n) + 2-D - + DCT e Cuantizor Transisie 2D Meorie de cadru α Estiare a iscarii u i-1 -pn-q) vector de deplasare DCT -1 + + Meorie de cadru Trans. bloc Transisie pq) Codor hibrid intercadre cu copensarea iscarii
11.6.5. Codarea prin transforari tridiensionale O transforare separabila tridiensionala a unei secvente MxNxQ unq) se defineste ca: v k l j) = M 1N 1 Q 1 u n q) a k ) a k n) a = 0n= 0q= 0 M N Q j q) unde 0 k) M-1 0 ln) N-1 0 ji) Q-1 si {a M k)} sunt eleentele unei atrici MM MxM unitare s.a..d. 11.8. Codarea iaginilor color si ultispectrale R G B Transforare de coordonate T 1 T 1 R Codare independenta T 2 Codare T 2 independenta T 3 Codare independenta T 3 Transforare inversa G B Codarea pe coponente a iaginilor color
11.7. Codarea iaginilor i il bitonale binare) Pentru codare se folosesc uratoarele trei teorii: a) codarea doar a punctelor de tranzitie intre negru si alb b) netransiterea pixelilor albi si c) recunoasterea forelor. Tehnicile de copresie a datelor binare bazate pe aceste teorii se grupeaza astfel: eliinarea blocurilor de alb: 1D 2D arbori binari RLC: de lungie fixa Huffan MHC THC B1 tehnici de adresare relativa: PDQ RAC READ codare predictiva alte etode: recunoastere de fore urarirea contururilor halftoning 11.7.1 Codarea RLC = codeaza cursele de alb 1) si negru 0) de-a lungul liniilor de scanare. Pria cursa -alb Codare RLC si cu eliinarea blocurilor de alb
11.7.1 Codarea RLC - continuare Tabel de cod Huffan odificat Cuvinte de cod terinator Cuvinte de cod terinator Lung.cursei Curse de alb Curse de negru Lung.cursei Curse de alb Curse de negru 0 00110101 0000110111 32 00011011 000001101010 1 000111 010 33 00010010 000001101011 2 0111 11 34 00010011 000011010010 3 1000 10 35 00010100 000011010011 4 1011 011 36 00010101 000011010100 5 1100 0011 37 00010110 000011010101 Tabelul 11.9. Cod Huffan odificat pentru codare RLC unidiensionala 6 1110 0010 38 00010111 000011010110 Tabelul 11.9. 7 1111 00011 39 00101000 000011010111 8 10011 000101 40 00101001 000001101100 9 10100 000100 41 00101010 000001101101 10 00111 0000100 42 00101011 000011011010 11 01000 0000101 43 00101100 000011011011 12 001000 0000111 44 00101101 000001010100 13 000011 00000100 45 00000100 000001010101 14 110100 00000111 46 00000101 000001010110 15 110101 000011000 47 00001010 000001010111 16 101010 0000010111 48 00001011 000001100100 17 101011 0000011000 49 01010010 000001100101 18 0100111 0000001000 50 01010011 000001010010 19 0001100 00001100111 51 01010100 0 0 00 000001010011 0 20 0001000 00001101000 52 01010101 000000100100 21 0010111 00001101100 53 00100100 000000110111 22 0000011 00000110111 54 00100101 000000111000 23 0000100 00000101000 55 01011000 000000100111 24 0101000 00000010111 56 01011001 000000101000 25 0101011 00000011000 57 01011010 000001011000 26 0010011 000011001010 58 01011011 000001011001 27 0100100 000011001011 59 01001010 000000101011 28 0011000 000011001100 60 01001011 000000101100 29 00000010 000011001101 61 00110010 000001011010 30 00000011 000001101000 62 00110011 000001100110 31 00011010 000001101001 63 00110100 000001100111
11.7.1 Codarea RLC - continuare Tabel de cod Huffan odificat Cuvinte de cod de ajustare Lung.cursei Curse de alb Curse de negru Lung.cursei Curse de alb Curse de negru 64 11011 0000001111 960 011010100 0000001110011 128 10010 000011001000 1024 011010101 0000001110100 192 010111 000011001001 1088 011010110 0000001110101 256 0110111 000001011011 1152 011010111 0000001110110 320 00110110 000000110011 1216 011011000 0000001110111 384 00110111 000000110100 1280 011011001 0000001010010 448 01100100 000000110101 1344 011011010 0000001010011 512 01100101 0000001101100 1408 011011011 0000001010100 576 01101000 0000001101101 1472 010011000 0000001010101 640 01100111 0000001001010 1536 010011001 0000001011010 704 011001100 0000001001011 1600 010011010 0000001011011 768 011001101 0000001001100 1664 011000 0000001100100 832 011010010 0000001001101 1728 010011011 0000001100101 896 011010011 0000001110010 EOL 000000000001 000000000001 Lungie cursa Negru si alb) Tabel de cod Huffan odificat Cuvinte de cod de ajustare 1792 00000001000 1856 00000001100 1920 00000001101 1984 000000010010 2048 000000010011 2112 000000010100 2176 000000010101 2240 000000010110 2304 000000010111 2368 000000011100 2432 000000011101 2496 000000011110 2560 000000011111
11.7.1 Codarea RLC continuare - cursele lungi apar ai des decat ar indica distributia de probabilitate exponentiala => Recoandata folosirea altui odel de distributie scade ai putin cu lungiea cursei l): c P l) = α > 0 c = const. α l Codurile B N = coduri H N ): coduri ultiple de lungie fixa Lungiea cursei Cuvinte de kn biti Cod B 1 1 0 01 2 1 11 3 00 0001 4 01 0011 5 10 1001 6 11 1011 7 000 000001 : : : Tabelul 11.10. Codul B1 bitii inserati sunt subliniati) 11.7.2 Eliinarea blocurilor de alb sau codarea WBS =white block skipping) 1) divizarea fiecarei linii in blocuri de N pixeli; 2) daca un bloc contine nuai pixeli albi => codul = 0; 3) se foreaza un cuvant de cod de N+1 biti + codarea binara a blocului Rata de copresie: 1 pn ) N + 1) + pn 1 RN = = 1 pn + ) biti / Varianta ibunatatita: WBS adaptiva N N pixel
11.9. Standarde de copresie a iaginilor Standarde consacrate: pentru copresia iaginilor statice si cadru cu cadru intercadru): standardul JPEG pentru copresia secventelor video: standardele H.261 MPEG 11.9.1. 1 Standardul d JPEG In principiu bazat pe: 1) ipartirea iaginii in blocuri de NxN pixeli tipic N=8) 2) scalarea luinantelor sietric fata de 0 3) transforarea DCT 1-D a fiecarui bloc 4) cuantizarea optiala a coeficientilor transforati 5) codarea RL + Huffan a coeficientilor cuantizati Exista diferite variante de JPEG 1) Siste de codare de baza cu pierderi bazat pe DCT 2) Siste de codare extinsa pentru precizie inalta si reconstructie progresiva 3) Siste decodare cu pierderi ici pt. copresia reversibila Recent JPEG2000 bazat pe DWT)
11.9.1. Standardul JPEG - continuare Codorul JPEG: Iagine Source FDCT Quantizer Entropy Codor Iagine Cuantizor sursa Encoder Entropic Iage copriata Dat Iage Data Copresse blocuri 8x8 blocks 8x8 Table Specificatii Table Specifications Specifications din tabel Specificatii din tabel Decodorul JPEG: Copressed Iagine Iage copriata Data Entropy Decodor Decoder Entropic Filtrare Senal Dequantizer IDCT DCT -1 Reconstructed Iagine reconstruita Iage Data Specificatii Table din Specifications tabel Specificatii Table din Specifications tabel
11.9.1. Standardul JPEG continuare Codarea JPEG: 1) Divizarea iaginii in blocuri 8x8 2) Scalarea luinantelor sietric fata de 0 l-128
11.9.1. Standardul JPEG - continuare 3) DCT 1-D DCT 1-D 4) Scanare zig-zag si cuantizare optiala a coeficientilor cf. tabel
11.9.1. Standardul JPEG - continuare => Coeficientii cuantizati: Cuantizarea coeficientilor i DCT: cu forula: 5) Codarea RL a datelor cuantizate = cf. tabelelor de codare Codul:
11.9.1. Standardul JPEG - continuare Tabelele de codare
1191 11.9.1. Standardul d ljpeg continuare Decodarea JPEG: 1) Decodarea Huffan a datelor cuantizate = cf. tabelelor de codare Codul: Blocul de coeficienti cuantizati decodati:
11.9.1. Standardul JPEG continuare Decodarea JPEG: 2) Denoralizarea coeficientilor = confor tabelului de cuantizare 3) Calculul IDCT 1-D => iaginea refacuta cu luinante [-128;128]: 4) Adunarea valorii de luinanta 128 => iaginea reconstruita:
11.9.1. Standardul JPEG continuare Eroarea de reconstructie Standardul JPEG -rezultate 487x414 pixeli necopriat 604.854 Bytes 24 bpp 487x414 pixeli copriat JPEG 41.174 Bytes 163 bpp; Rata de copresie = 147
11.9.1. Standardul JPEG - rezultate: 8 bpp 0.6 bpp 0.37 bpp 0.22 bpp
11.9.2. Standarde de copresie a cadrelor secventiale onocroe si color Cronologic: 1) Standardul H.261 si H.263) al CCITT 2) Standardele MPEG cu variante: MPEG1 MPEG2 MPEG4 MPEG7) al CCITT & ISO MPEG = Motion Picture Experts Group MPEG TV digitala stocare suport optic H.261 ISDN videotelefon videoconf. Standardele de codare video ITU-R H.263 PSTN videotelefon Internet
11.9.2.1. Standardul H.261: aplicatii tip teleconferinta videoconferinta intarzieri intre cadre < 150 s) <=> aplicatii la rata bit redusa codor cadru cu cadru nu pe grupuri de cadre) principii de codare: foloseste codarea DCT a blocurilor de 8x8 pixeli ca in JPEG) 8x8 pixeli = bloc) foloseste copensarea iscarii blocurilor de 16x16 pixeli = acroblocuri) tipuri de acroblocuri intr-un cadru: a) fara copensarea iscarii => codate DCT bloc cu bloc <=> codate intracadru =acroblocuri I b) cu copensarea iscarii fata de cadrul anterior previous) <=> codate prin calculul vectorului de iscare MV); estiarea inainte forward) a iscarii prin predictia acroblocului urator pe baza estiarii iscarii = acroblocuri P codeaza grupuri de blocuri GOB) H.261 Cadru P = un cadru care poate contine acroblocuri Cadre P codate cu copensarea iscarii H.261 144 pixeli 176 pixeli Bloc Macrobloc 99 vectori de iscare MV) Cadru I
11.9.2.1. Standardul H.261 - continuare: Codarea datelor se bazeaza pe grupuri de blocuri GOB); intr-un GOB acroblocurile se codeaza cu copensarea iscarii sau intrabloc DCT) Cadru P Macroblocurile din cadrul P se codeaza: - intra daca diferenta intre cadrul curent si cea ai buna potrivire din cadrul de referinta este prea are - inter daca diferenta intre cadrul curent si cea ai buna potrivire din cadrul de referinta este ica
11921 11.9.2.1. Standardul d lh261 H.261 -continuare: Structura datelor codate in H.261 Cadru al secventei video Grup de blocuri GOB) Macrobloc Bloc Codare RLC ca in JPEG
11922 11.9.2.2. Standardul d lmpeg: rate de transfer de 5 Mbiti/sec 10 Mbiti/sec => pentru codarea in: retele TV cablu; canale de transisie de banda ingusta din retele de transisie prin satelit MPEG2); secvente cu iscare rapida; copresia video a inforatiei pe suporturi digitale ex. CD-ROM) MPEG1) codor pe grupuri de cadre GOF) principii de codare: foloseste codarea DCT a blocurilor de 8x8 pixeli ca in JPEG) 8x8 pixeli = bloc) foloseste copensarea iscarii blocurilor de 16x16 pixeli = acroblocuri); diensiunea regiunii de cautare a acroblocului cel ai aseanator = 16x16 pixeli tipuri de cadre - dupa tipurile de acroblocuri din cadru: a) fara copensarea iscarii => tot cadrul codat DCT bloc cu bloc <=> codare intracadru = cadre I b) cu copensarea iscarii fata de cadrul anterior previous) <=> cadrul contine acroblocuri codate prin calculul l lvectorului de iscare MV); estiarea inainte i forward) a iscarii prin predictia acroblocului urator pe baza estiarii iscarii fata de cadrul de referinta decodat = cadre P c) cu copensarea bidirectionala a iscarii sau predictia bidirectionala <=> folosind ca referinta 2 cadre: 1) un cadru anterior A) + 2) un cadru viitor C) din secventa <=> interpolare a cadrului cu copensarea iscarii = cadre B. Obs.: 1) Nuai cadrele de tip I si P pot fi folosite ca si cadre de referinta cadrele B - nu) 2) Un cadru I poate contine doar acroblocuri codate intra I); un cadru P -acroblocuri PI; PI; un cadru B - acroblocuri I P si B. 3) Estiarea iscarii se face nuai in interiorul aceluiasi grup de cadre GOF)
11922 11.9.2.2. Standardul d lmpeg -continuare: Pasii de baza ai copresiei MPEG: 1) Copresia intracadru a unui cadru de referinta confor specificatiilor JPEG 2) Refacerea cadrului copriat de referinta) + estiarea iscarii obiectelor intre cadrul refacut si cadrul urator 3) Decizia odului de codare al cadrului urator -> pe baza rezultatului estiarii iscarii din 2): - codare intra - codare cu copensarea iscarii Cadrul anterior Cadrul anterior Cadrul curent Cadrul viitor Cadrul curent Cadrul viitor B=A => predictie inainte cadre P) un singur vector de iscare) B=C => predictie inapoi un singur vector de iscare) B=A+C)/2 => predictie bidirectionala doi vectori de iscare) v f v b - vectorii de iscare inainte/ inapoi
11.9.2.2. Standardul MPEG - continuare: - cadrele P sunt prezise din ultiul cadru P sau I - cadrele B sunt prezise din uratorul si viitorul cadru P sau I Ordinea de afisare a cadrelor Predictia cadrelor P din GOF Predictia cadrelor B din GOF: Predictia inainte a cadrelor B: Predictia inapoi a cadrelor B:
11.9.2.2. Standardul MPEG - continuare: Cadru curent Codarea cadrelor Pin MPEG Referinta Codor JPEG Potrivire optia Vector de iscare Codor Huffan
11.9.2.3. Codarea inforatiei de croinanta: - prin subesantionarea senalelor diferenta de culoare in spatiul: * YUV => senalele U V) * YC b C r => senalele C b C r ) - subesantionarea <=> reducerea benzii de frecvente spatiale a U V C b C r ) de 4 ori factor de 2 pe orizontala si 2 pe verticala) 4 blocuri Y 8x8 pixeli 1 bloc C b 8x8 pixeli 1 bloc C r 8x8 pixeli
11.9.2.3. Codarea inforatiei de croinanta: - prin subesantionarea senalelor diferenta de culoare in spatiul: * YUV => senalele U V) * YC b C r => senalele C b C r ) - subesantionarea <=> reducerea benzii de frecvente spatiale a U V C b C r ) de 4 ori factor de 2 pe orizontala si 2 pe verticala) 4 blocuri Y 8x8 pixeli 1 bloc C b 8x8 pixeli 1 bloc C r 8x8 pixeli - Subesantionarea croinantei realizata cu un filtru de deciare: 1331)x1/8 3 1) 1/8 - Interpolarea croinantei realizata cu un filtru de interpolare: 1 3 3 1) x 1/4