You are on page 1of 49
1 thugt ma héa Huftinan v6 mo hind «did 1 CHUONG 0, GIOL THIEL. CHUONG 1. LY THUYET TONG QUAN VE NEN DU LIEU, 1. Karsten ve NEN Dd LIEU Ml MoTS® KHAI NIEM CO BAN 11. Tile nén (compression ratio) 1.2. Bb de thts 8 lu 4. Su lap la ea nh ki ty bb Su phan bd cic ki tw «BO thi v ti G a Nhiing mu sir dung mit d cao. 3. Bg it rung ie ma 1.4, Nén tom hao va nin King ton hao. a. Nén tn uo (lossy compression) >. Nén khong ton hao (lesstess compression). 15, Nén 6 ligu = Mo hink hia * Ma héa. ML Ly muUyEr VEMA HOA. UhL. Binh nghia ma ha IHT.2. Mit sé kh nigm co ban 4. Chigu di rma by. Trong luyag ti mi . Khoting eich ma 113. Phin loaima. ILA. Mit 30 plucaneg pip biéw din ma thing dung. a, Phiromg php HL KE >. Phuong php do inh Két cia «Phuong piped ILS, Biéw hién dé ma phin ich doe I.6. Mai cé sink én w (pref. WL, Binds vé dt erumg binh tema IV. MA THONG KE T01 UU WW. Ma Shannon-Fano 1.2 Mad hoe 3. Ma Huffnan V. Mo niin 104 NGUON $01 1. Ma hint ting he. -2.Mé hin te dien CHUONG Il, PHUONG PHAP MA HOA HUFFMAN VOI MO HINH THONG KE 1. PHUONG PHAP MA HOA HUFFMAN, 19 LL. Ma Huffman tink D 4 Coss0 nén s6 ligu cua phuong php md ha Huflinan doh 7 19 '. Phuromg php tgo ma Huffinan tinh 19 ¢, Phuong phip gii ma Fluinan tinh, 23 4. Uu va nhuge digm eta phuong phip mi héa Huftian tah voi md hinh thong KE so..24 (CHUONG II. CAC PHUONG PHAP NEN THEO MO HINH TU DIEN, 1. MO nintt Ty BIEN TINH VA MO HiNtt TH BIEN DONG 2s I CAC PHUONG PHAP NEN LEMPEL VA ZIV. - tae ILA. Phucomg php nén 1277. 28 II. Phuc plsip nén L278. 30 CHUONG IV, KY THUAT MA HOA HUFFMAN DONG VOI MO HiNH TU DIEN THICH UNG..33 1. MA HOA HUFFMAN BONG 33 "Tain Gua Min ROR CONG NOME THONG TIN 1 thugt ma héa Huftinan v6 mo hind «did 2 Ml MO HiNH TU BIEN THICH UNG 34 ILA. KS thug én vi mot cies sé han che. 34 1.2. Cie cd trie di lifu hb tr. 35 ‘4 BS dém quay ving, 35 bb. Bang bam (Hash table) 35 IL TIEN TRINH NEN 37 TEL. Qué rink mé hinh hoa 37 2. Oud trinh ma hoa. 7 ‘4. Cin tre dr igu me ta cy ma Huttinan dng 38 b. Th tuo mi hoa, 40 IV. TIEN TRINH GIAINEN : nn 40 1. Qua rink gid ma theo cay ma Fugfman ding, 0 a Khoi tao cay ma du tien, ele 40 b. Thi tue git) ma, al 1.2. Qué trinh gia nén : wend V. NHAN ET. a2 CHUONG V. THYC NGHTEM. 1. So SANH Ti SO NEN 4B 11. Bang so sanh 11 s6 nén as 1.2. Biéw 3 so sinh td. nin 44 13. Nin set ee 7 onan T, So SANH TOC BO NEN 45 I, Being so sinh toe db nn 1S 1.2. Biéw di so sinh tée dé. nin 45 M3. Nha xé. 46 IL. SO SANH TOC DO GIAINEN. na abit i ery ULL. Bang. se sin tbc 46 gia nen. 46 4L2. Biéu di so sinh tbe gia nd. 46 IS. Nha xe 7 IV. Ker Luan. aT CHUONG VI KET L [ANnanseinsnininninnienininieinninmennaneninanensndd "Tain Gua Min ROR CONG NOME THONG TIN ‘thugt mi ha Huffman véi md hin oi din 3 CHUONG 0 GIGI THIEU Nagay nay, may tinh da tham nbip vio hiu hét ede Tinh wye cua db séng- xa hoi. Néi dlén may tn ie Ti. ni da hai vin Alo : hut vi I Yo sy bing nd thang tin nu ign tina va dang dat ra nhigu van && cin pha gi quyét, dd I lam sao &éIru tt mt cc gt kigm, higu qua vi trao d0i thong tin mdt céch akan ching nhit. MOt giai php la tang dung lugng cu cde hit bj hw tr. Tuy ahi, du ny dai hoi cao vé mat KS thuat phan cing va chi phi Kha tn kém. [Nha vy, git phip nay li khong kinh t, Mot git php khie ni trién vong hon vé mang tinh kh thi dt dupe dt ra, dla nén di ligu. Vay nén dt lig li gi? Cé thé higu mét cach nom na ring, nén do ligu 1é qua trinh lim giémm dung lugng lu tet ct dv figu ma van bao ton duge ndi dung thong tin trade a6, Nhu vay, vige nén dt igu s@ dem Iai nhidu loi ich thigtthye, Dé la + Tg kigm duge Khong gian hi tri «Tang tbe 6 va gidm chi phi truyén dln trén mang. # Bao mat duge thong tin ‘Mie dit dung iuong cia cic thiét bj uu tr ngty nay di ting dén te Ad chéng mit, c6 thé len dén hing chue Gigabytes, nhurng vi nhiing loi ich nhw da néu trén, gi php nén dit Jigu true khi uu tri, cing nh truyén dn qua mang li iu khign ching ta khong thé khong xét dén Noi chung, nén di Tigu la qué tinh bién di mot ludng ede ki higu thin mot hudng ede smd ¢6 kich huge nho hon ban diu, Thong thuong, m6t qué tink nén duge tign himh qua hai siai dogn: (1) Mé hinh héa, la gia’ doan tn dodn vé tin suit xudt hign eu cfc ki ty vi / hofe chudi ki tw eta van ban cin nén, (2) Ma hoa, la giai dogn dya trén m6 hinh véi tin suét via duroe xée dinh a tgo ra tr ma twong ting, Cing voi sx phat trén man me cua ly thuyét thong tin, e6 kh nigu phuong php ma hnéa vi’ m6 hinh héa 43 ra dis. Trong ee phuong php ma héa, dng chit ¥-ahat kt ma hoa Huffman vi ma héa s6 hoe. Phuong phip ma héa Huffman duge D.A Huffman céng bo nim 1952. Phuong php ma hia niy don. gian, dé xdy dung vi cho thdi gian ma héa ng. Phuong phap ma hoa s6 hoc ra di vao eudi nhting nam 70, Phuong phap nay hudng dén vige {61 uu dd tr ma nén twomg d6% phi tap hom vt vi vay thoi gian ma hoa chm hom, KY thudt nén xir IY timg ki tyr mOt cia Iudng ki higu dau vio duge goi la nén voi md hinh thong ké (Statistical model). Nguge lai, kp thuat nén xem xét mdi lie mOt chudi ede ki ty tir dng np eo linen vi mo hinh te dign (Dictionary-based model). Do die thi cia me hinh tr dién va thy té edng cho thiy. wi cdmg mot phuomg phip mai héa thi vige dp dung mé hinh tir dién s& cho higu qua nén cao hon nhiéu so vai md hinh thing ké. Hi bét cfc chiromg tinh nén thing mai hign hanh déu sr dung mo hinh tr dign ri dign inh li ede churangtrinh nn ndi ting nur NCZi, PKZip va WinZip. rong mot thoi gin ngén,vige nghinciu tit cd cae Ky thudt nén di igu lt du king kha thi, do vay, trong cu6n ludn van tot nghigp nay, tae gid chi di siu nghién etru vé phuong rae ‘thugt mi ha Huffman véi md hin oi din 4 phap nén dd ligu khing t6n hao dya trén KY thuét ma héa Huffinan (chi yéu la ma Huffman ng) va mo hin tr dién ‘Do ning Tye ban than va thei gian c6 han nén DS dn cin khé nhigu thiéu s6t. Xin nhin due nhimng Iii phé binh, 26p ¥ quy bau ca cée thay ¢6 va ban doc dé dé tai ed thé hodn thign hom trong tucmg lai fu trie DB én ‘BO Ain bao gim 6 chuong va chuong trinh Demo trén dia. Noi dung nbu sau Chuong 0: Gidi thigu d8 ti, vai trd va ‘Chong 1: Trinh bay ting quan vé ly thuyét nén va gi nén de ig, tim nn tang cho vige gid quyét vin dé da dt ra trong Do én. Y nghia cia né. ‘Chuong II: Trinh bay phuong php nén dit ligu 4p dung kj thugt ma hoa Huttinan dia trénmd hin thong ke (Churong 1M: Timm higa mgt s6 phurong php nén dy trén m6 hinh wr dién Cuong IV : Di siu nghién etry phuong phip nén db Tiga dp dung ky thagt mt hoa Huffman dng, dya teén m6 hinh tr dign thich tng, lam nén tang eho vige phat wrién chuong tinh. Cuong V : Trinh bay két gui thye nghigm kiém tra tinh ding din, chinh xéc cia chuong trinh va so sinh v6i m9t s6 chung trinh thuong mai €6 cing ehite nang. Trén co so 446, dnh gid wu dim va han ché cia phuong phip nén due sit dung. Chuong VI : Két lugn, nh gid nhimg gi da lam duge, nhitng gi chua dat drge va néu hnuding phit trig cia 4 ti "Tain Gua Min ROR CONG NOME THONG TIN ‘thugt mi ha Huffman véi md hin oi din 5 CHUONG I LY THUYET TONG QUAN VE NE Dv LIEU 1. KAI NIEM VE NEN DU LIEW [Néa di ligula qua trinh Kim gim sé ligu edn thiét ma vin bio toin dupe ngi dung thing tn. $6 ligu va théng tin li khong dng nhit vi naa. SO ligu chi la phuomg tign 48 chuyén tai théng tin, Vi cing mOt ndi dung théng tin, ta o6 thé biéu dién bling cfc dit ligu kh nhau, CC ky thuat nén di ig, thong thang, dua vio mt trong ce de tung sa: Tink hin han cia tipi hid Rin sudt dt hin nnomg di cia ed thé Noi edmh sud ign cita cic Kt hi [Néa dig lin quan dén Khai nig thdng tin trong If thay&t thang tin, Lime tn eb oi li Eneropy, Lurgng tin cia mt ki higu cage tinh bing (-logsP) wi don vil bit, rong 46 P li xc su xt hign ean ki higu d8. Luong tn cua toin bo ngudn sb liga dae tinh bang tong Jugng tn cia fc ki higwthinh phn Lyng tin trang binh thing ké tin mot ki higu dupe goi la Entropy cia ngudn s6 ligu Entropy cia mét ngubn s6 ligu edng cao thi hrong théng tin chia dmg trong n6 cing nh Shannon la ngudi diu tién chimg minh duge sy tin tgi mgt gidi han nén cho mdi van ban. Gigi han dy chin 1 hagng tn ea vin ban ‘Nhin chung, qua trinh nén va gidi nén dit ligu 06 thé duge m6 ta tm tit theo so dé sau: Qua tinh nin ponoe POND ta [Qua tinh gi ate Hin 1. STAT ehCe nCing ela qui tinh nin a Ha I. MOT SO KHAINIEM CO BAN ILL. Ti nén (compression ratio) _ Tig nén 1a mét trong abting théng sé quan trong ahit ciia moi phuong phép nén. C5 nhigu cach khée nhau dé dinh nghia ti I nén, Thong thudng, nguéi ta dinh nghia ti Ig nén nh sau: ‘Tuy nbién, edn pha thiy ring, 118 nén cao chua phai ltt ca 48 dah gid higu qua cia ‘rig nda = Neth iu tha de suk NED ogy, ich thude di tigu ngudn it phuong phap nén, Boi vi edn o6 ede yéu t6 kde nhu: chi phi vé thd gian, khong gian va ca d6 phite tap tinh toan. ‘thugt mi ha Huffman véi md hin oi din 6 11.2. DO dw thira sé ligu Neuyén tic chung cua eae phuong phip nén dit figu la loai bo cée thong tin tring lap, cfc di ligu dur thia dén mite ti thigu 6 thé duge. Vige xée dinh bain chat cic kiéu dur thira sd ligu rit o6 ich trong vige nay dung ede phuong php nén phi hop. Nhin chung, e6 bon kiéu dir tira chinh trong dt liga a. Sy lip lgi cia nhiing kite Io ligu, nhit fa céc tgp tin anh, thudng 66 nhiting ki ty vit chudi ki tw 1p lai nhigu Lin Lién tgp nhau. Khi d6, ngubn dir ligu e6 thé dzge mi ha mot cach 6 dong hhon bing céch thay thé nhing day ki wx d6 bing ma cia ching va sé Ki tw lip lai, Phuong phap nén véi mé hin tir dién khai thie rat higu qua logi du thira nay. 6. Su phan b6 ete ki te Xt mt chudi ki ty, ta thug thy 6 mot sé ki nr xudt hign vai tin sudt eao hom nhing, i ty Khée . Nhur vay, ta e6 thé giam bat lugng dit ligu bing ciich ma héa nhing ki ty xudt hign throng xuyén véi tir ma ngin, nhong ki ny it xuit hién s® dirge ma hoa bing nhng tir ma dai hon. Kiéu du thira niy dae bigt phi hgp véi phuong phap ma héa Huftinan, 6 6 die thita vj tré C6 nhiéu trudng hyp, di igu trong mot ngudn s6 ligu ¢6 sir phy thude lin nhau, do d6, u biel duge ki higu xuit hign tai mot vit ndo dé, ta 6 thé phong dosn trade mot each hop 1¥ sqc xudt hign cia cde Ki higu khiéc 6 nhiing vj tri Khe nhau, Vi dy, anh bigu dién trong mot Indi hai chigu, mot so digm & hang doc Iai xuat hign trong cing vi tri cdc hing khée nhau. hur vay, thay vi lew tri dir ligu ta chi lou lei vi tri hang va et. Phuong php nén khai thickiéu du thia nay goi li phuomg phap ma hoa dy dosn, 4. Nhiing mu sé dung miu dp cao ‘Thing thing, trong cée vin bin dang text, sy tun ty cia nhing ki ue bio dé s& ti suit hign voi tin suattucmg. di cao, vi vy, e6 the big dign bing diy bit ngin hon. ‘BE dinh gid mOL thuat ton nén c6 higu qua hay khong, ngwivi ta sé dya vao edch ma thule ton sc ede kid dir thi nha trén. Thiet cho thay ring, hu het cd ky thudt nén déu king di: mém déo dé nie tt ca ede kibu du thi, Mai chign roe nén dp dang thug chi cing nhac cho tig kiéu sO ligu ma théi, 'B6 dur thir sb liu 6 thé dinh lnong bing toan hge. Véi Ly.L> 1A hai huang sé ligu etng duge diing dé bigu din mot luong tin cho trade thi dé du si ligu tong di Ry ea tip sb liga thir abt so vai tp 56 iu the ha ls ‘Trong dé Li/Lz duge goi li ti 6 nén. 11.3. DG dai trung binh tir ma Gia trj trung binh thing ke cua tit ca cic tir ma trong mot bh} ma duge goi la dé dai trang binh etia mit tie ma. C.E Shannon di chi ra ring: “Dé dai trung bink cua mot tr ma hing bao gid: nhé han entropy cia nguén x6 ligu dye ma héa” Do dS, mot bo ma Wi uu ‘thugt mi ha Huffman véi md hin oi din 7 (cho higu sudt nén cao) la b6 ma o6 d6 dai trang binh cia tr ma tién gin dén Eniropy cia gun s6 liga IL4, Nén tén hao va nén khong tén hao C6 nhigu cach dé phn logi ede phuomg php nén, Céch phan loai dya vio nguyén ly nén chia ee phyong phap nén thanh hai ho chink «a. Nén tan hao (lossy compression) [Nén td hao edn gp li nén e6 mat mat thing tin, KJ thuat nén nay chap niin mat mat ‘mot lirgng thong tin nhat dinh dé thu drge higu suat nén cao hom, do val, sau khi gi nén, ta sé khong thu duge dir ligu g6e. Nén tin hao thuing diege ép dung cho cic tp tin hinh anh hay im thanh dinge sé hse Bai vi dbi vdi cde tap tin thuge logi nay thi vige mat mit mde ft thong tin li digu e6 thé chip nhin dg. +b. Nén khing tan hao (lossless compression) Nén Kling tin hao cin goi Ka nén chinh xc hay nén khong mdt thong tin, Day Wa phyong phép nén ma sau Khi gia nén ta thu duge mot ban sao chinh xe cha dd ligu g6c Phuong phip nén nay thing duge ap dung d0i vi cde nguén sé igu ma ni dung thong tin «ain duge bio ton nhu cdc van bin dang tent, cae bang tinh hay leo 36 die. Dang nén mi ta nghign et trong d3 dn nay li dang nén Wing tn hao. TLS. Nén s6 lig = M6 hinh héa + Ma héa [2] Noi chung, nén 36 ligu li chuyén di mt ludng ofc hi higu thanh mot Luong céc ti mi ‘wong img. Néu higu img nén xara th hudng ef tr ma se nho hom lub ea ki higa band. Vige quyét dinh dara mt tr mi nit dinh cho mdi ki higu hose mot tip k hu dua én mt 1m hh, Mo inh ching qua chi I8 mot tdp hop 86 ligu va ede nguyen tie dire se dung dé ie 18 ede ki higu tr using nhdp vii ude ra cde te md. Mi hink e6 nhigm vy xée dinh xi sust xuat hign eu timg ki ty vavhoge chu ki ty va b6 phn mi hoa sé go ra ede tir ma da trén cde xée suit Mo hinh iba is mi hd la Kh nfm hodn toin tich bigt nau, Thé nhung, ching a vn hay ding dhuft ng“ hia” dé nd én cf qua trnh nén sb Tigu, mB di, dhge etd ehi ai li mt giai doan ega qua trinh 46. Vi dy, ching ta van hay ding ede thugt ngit “md ada Hufinan, *ma iba sé hoc” d@ nbi dén eée kj thuat nén sb ligu, wong Khi dé chi la ede phuong phip mi héa duge sir dung cing véi mt md hinh nto dé dé én s6 Lig 6 rit nhigu eich dé mé hinh hoa ngudn sé Tigu I 66 thé cing sir dung mpt phuong hip mi héa dé igo ra eée tir mi. Vi dy, ching ta 66 thé ding phuong php mi héa Huffman cho cat hai mé hinh théng ké vi mo inh tir dign d€ nén s6 lig ‘V6i phuong php ma héa Huffinan, ta théy mot qué tin nén s6 ligu diy du duge biéu dif nr sa (Cae xe sult cae Ome Me hoa Tung ra [ioe rae ‘thugt mi ha Huffman véi md hin oi din 8 IL LY THUVET VE MA HOA [7} [Nhu dni, nén sb tigu 8 qué. tinh bién di me ludng ede ti ma thn MOE TuBMg ee tir ma. Qua trinh giai nén sB xi ly ludng ede tr ma dé dé khoi phye lai nguén sb ligu ban dau. [Nhu vay, vige tim higu vé ma nén di igu la digu cn this TILA. Dinh nghta ma héa ‘Ma ha nguds tin X theo b9 mi M la phép inh xa 1:1 bign 46i mt tin x) € X thinh mot 16 hgp ede ki higu cua bp ma M. Nagudin X = fx, x Kah im, ms, -} V6i k 1 ca 56 cia b6 ma Vi du, voi ma ni phan k= 2. Néu tin x; duge ma héa thin mai, ma, ..m (11a sO kf higu eta bo ma ding dé bigu dif x; va | eng la 46 di tie ma, Vidy X= fxr, =X} BO ma nhi phn M= (0.1) MA ha x) = 00, x»= 01, x)= 10, x= 11 TIL.2. MOt sé khai nigm co ban a. Chiéu dati tie ma CChigu dai tema ta s6 ki higu cha bo ma ding dé mai ha eho tte ma do. 6. Trong lirgng tie ma ‘Trong luong tir mi la tng s6 cfc ki higu Khéc 0 cia tir ma Vi dy: Tir ma 1011010 66 trong lngng la 4. ¢. Khoding ctich ma Khodng ech ma d 1a s6 ki higu Khe nhaw tin theo vi tcf tuong ding eta hai tr ma e6 chigu dai bang nhau WW 40W,, W) = w4W, @ W,), voi ® a phép cng modul-2 Khoaing cach cia mét b6 ma la khong cach ma nhé nit cia hai tir mi bat ma d6. M113. Phan logi ma trong bo ya vio eée die diém cia ma, new ta phn mitra thinh abu loai Khe nhau, Sau diy 1a mgt 6 céch phan loa ign hin © Phin loat theo chidu da tie mas ‘MA 6 chigu dai kndng di. ‘MA c6 chidu dai thay di, © Phan logi theo trong luegmg tie ma Ma cé trong lugmg thay ‘Ma trong lugng eb din. 1 thugt ma héa Huftinan v6 mo hind «did 9 © Phen fog theo hig suds thing tin Ma tdi, Ma chura ti uw, © Phan loai theo cx 86 cia bb ma C6 thé tgo ra m9t b6 ma e6 ea 6 tay Mii nj phan (c6 co sé 2) la phd bién nha © Phan loai theo muc dich se dung mai Masé. Ma kit. IIL4. Mot sé phuong phap biéu dign ma thong dyng C5 nhigu phuong phip dé bigu dign ma, Mbi eich dé c6 nhting uu diém va nhuge = 2 khOng e6 5 hop nio tring voi cdc tir ma trong eG | 1 thugt ma héa Huftinan v6 mo hind «did ul Vi dy Cho bo ma O1, 11, 001, 1001, 1011, Ta e6 bang thir ma phan téch: “a cb chim gm bing 0 vi oft 2 tng rng. Nhu vy, bg mi d cho o6 tinh phn ch ‘BO chim gii ma e6 thé duge dan gid qua bang thir ma phn tich nur sau [hel Trong dé: Te chim gia ma ke: gi tr cia e6t ng, in Bras 9 dai te ma ngin nb va dai nt cua BO ma (Ching ta 66 thé rit ra két lun qua ede nha xét va vi du tren: ‘Ma cé kh nang phin téch duge khi va chi khi bar k mor 16 hop mando cing khong triang vii phn dé cia bait ki mbt 16 hop mi Bhi trong clung b6 ma TIL6. MA c6 tinh tién t6 (prefix) (prefix) cua mo tir ma 6 46 ki higu cui cing (0 |) | ‘Va chudi bit ma ma héa cho chudi trén 1a: 111000000111010011 101111 Lu ¥ ring, binh ding edy mi thé Khe di (v8 do vay, tir ma cia. mdi kf He s& Ke di) ngu nhu trong qué tinh xdy ding ey mt, ¢ mt bude no 46 ta e6 nbigu khit ning lea chon hai mt “iy do" 66 trong lugmg nbo nb, Caing han, x6 gn rin tr ti tha diém hur sa rae ‘thugt mi ha Huffman véi md hin oi din 2B @: @, 2 9,,9,9,, 2,2 ya af hai Ki ningRthon hag ty @9 e6 trong lueng nho nit. Gi sir ta chon kha nang Khe wi kh nang o trad 1g hop cy ma tn: @ we kh cia cg ma oO ‘Va ede tr mi dang voneay tre: ‘000T ‘010 011 ‘Chudi bit ma trong trong hop nay li: 10100000001 100100111 Pee D6 dii chudi bit ma ma hia cho chudi “SEAMSTRESS” trong bai traimg hop déu bing 24 its) & Phuong phép sii mit Huffman tink Do ma Hustinan 66 tinh it 6 (prefix) nén qu tri gi ma cong di dam gin: Xu phit tr gée cm edy vd in ty di thco ede uhdnh tuong dng v6i bit mA nin drgc (0/1) cho {én khi gp dage mot nat i. Khi 6, ki tp Ung v6i itl sé duge da vob) dg, ‘Luu ¥ ring, qué trinh giai m& xi IY tudin ty timg bit mbt ca Tudng tir ma. ‘Thuat todn giai ma nguén tin da duge ma héa bing cy Huffman : ‘Vato : i, Cay ma Huffinan, ii, Luong tr ma, Ra : Nguén tin trade khi dirge ma héa. Bude 1. Khéi tao con tro p tro dén géc ca city Huffinan, "Tain Gua Min ROR CONG NOME THONG TIN ‘thugt mi ha Huffman véi md hin oi din 4 Bude 2. Trong khi chu két tite ludng tr ma, lap lai ee bude sau 4. b li bit ip theo trong lubng tr ma BAFD=I then Dat pt dén nit con pha’ ea nd Else Dat ptr dén nit con tri eta nb. IF (p 6 dén mot nit 14) then 1. Dua ki tu tuomg fing v6i nit i vio ving dm {Cho p to dén nit goc eva cy Vidy: V6i lubng tir mi 111000000111010011101111 ma héa cho chudi “SEAMSTRESS” trén, dy vio cy ma twong ding, qu tinh gi ma s® nur sa — ti gin 11109000011 010011101111 Xuit ph ti nt ade, bibs ena Baath dage ner ya bit L, do d6 ta ré sang nha pha (néu bit id 0,18 sang nn tii), bit kp mgt nit nhinh én ta doe mot Bit mi isp theo, bit ny 11, ta tip tue r@ sang nhsnh pha, Bén day, ta bit etp mt mit, n6 chia ki tr S, Dua ki ty niy vio ving dém. Nhu vay, tir mi eta Kit $ d& due nu 1¥. Quay vé lai nit 6c, ta tip tue xi ly cfc bit ma Ké tigp mot eéch twomg ny cho dén Khi két thie Iuéng tr ma (Can nhé li sau khi bit gp mt nit li th ta Iai quay vé g6e. Ro ring, dé khai phe chinhxde nguins6 gu gc, b6 phn git mt pa big rns 69 tir ma 43 duye sir dung hoae Ia cau tric cua cdy mai. Nhu vay, cau tric ctia cdy ma hoje bd tir mt phai dupe gi di cing vi sb liu d& duge ma héa <4. in vd nlurgediém cia phurong php mi héw Huffman tink véi ma hink thing ké Un diém © Xirly khé tt 46 dur thita phiin bé ki ty. + Qué tinh ma hoa vi git ma twong di dom gin, © Cho ma c6 dé dai ti wu. ‘Han ché + Git quyé kém higu qua dai véi ete log dG du thi ke (hing han nh dd tira vite. + Tén ohigu th gian xy dng ody ma, Clu nie eda ely ma hoge bé tr ma da dng dé ma héa phai duge gi dicing véi sb ligu di duge ma héa. Dicu nay lim gi higu suat nén, ‘thugt mi ha Huffman véi md hin oi din 2s CHUONG IIT CAC PHUONG PHAP N THEO MO HiNH TU DIEN Cée phong php nén sir dang mo hinh thOng ké ma ching ta da biét the hign vige nén bing céch ma héa méi lic mt ki higu don think tit ma e6 d dai agin hom so véi ki higu ban du. Higu qua nén ting hay giam phy thude vio vige phét trién mé hink, M6 hinh khong hing phai du don chinh xée xc suat xuat hign cua cdc ki higu ma edn phai dur dodn duoc cée xe suat Igoh kh gi ti trung binh, ‘Tuy nhign, ede thudt todn nén chinh théng dya trén mo hinh tir dién Iai sic dung mot ky thudt hodin ton kh dé nén s6 ligu, Cac kj thuat nén kigu nay khOng mai hoa ede ki higu don. bing céc tir ma e6 dé dai thay d0i ma ma héa eae chudi ki higu e6 d6 dai thay di bang cdc the bai (token). Cc the bai niy ding dé sinh xq vo mot tir dién. Néu ma cia cae thé bai nity ng hon chudi ki higu ma chang thay thé thi higu tng nén xay ra © ohigu Khia canh, phuong phip nén dy trén md hink tr dign la d8 hiu 45% véi moi nui. Né kh gidng véi cach ma nhimg ngxéi lap tinh hay ap dung: lip chi muc eho co so di Tigu d& d8 ding truy xuit_ ning ivong dit ligu lin, Trong eude séng thydng nhat, ching ta vn thuimg bat gap cfc sé dign thoai, ma buru cuc ma héa cho nhimg chudi van ban Ién ho, ‘Dé chinh la nguyen tic ma héa dua trén m6 hink tr di, 'Bé hink dung rd hon vé phurong php nén nay, ta hay xét mot vi dy dién inh sau: Gia sit, ching ta maén nn chudi “The token form an index to « phrase dictionary”. Chiang ta s@ sir dung cudn ti dién “The English Viemamese Dictionary” (day 1680 trang, 165.000 mye tr ) cua nit uit bain Van héa thing tin (1999) nhur mt khéa dé mi ha thong tin Sa d mi héa ma ta dp dung dui dy gbm mot bing ta ete dan gin theo dang: < Chi sé trang ciate din / 88 thi ne tia te 6 trong trang > [Nhu vay, chudi tréns® duge ma héa think: HONS 148920 28/12 37711948028 31I7 (Ching han, the bai 1462 /s@ ma héa cho tir thir Seta trang 1462, tte la chit “The” Bay gid, ching ta di tinh s6 bit edn thiét dé ma hoa mt tir, MBi tir e6 thé & trong mot trang bat ky trong so 1680 trang, vy edn toi da 1 bits d& ma héa (boi vi 2" < 1680 <2"); mdi trang ¢6 nhigu nhit 1a 60 mye tr, vay cn ti da 6 bits dé ma hoa (bai vi 2°< 60 < 2"), ‘Nhur vy, chiing ta cin nhigu nit 17 bits €é ma héa mét tr bat ky c6 trong tir dién. Vi vi du trén, ta cn tt ea 9x17=153 bits ~ 19 bytes 48 ma héa cho 9 ti. Trong khi d6, agu ding ma ASCIL thi ta cin dén 46x8 = 368 bits = 46 bytes dé biéa dign, Nhur vay, khii ma ha theo mo hinh tr dign, tad gdm kich thude cua chubi di gin 60%, mot eon s6 dng ké. ‘Trong vi dy trén, ching ta da sir dung so d6 < chi sd trang / chi sé mue tir> dé lam cho vige m& héa cic cum tir tro nén don gin vi higu quai hon, So 43 dé chinh ki mt nén tang, quan trong trong phucng php nén dya trén m6 hinh tir dign 1. MO HINH TU’ DIEN TINH VA MO HINH TU DIEN DONG ‘Mt cich tong quit, ky thuft nén dya vio mé hinh tir dién thay thé eée chudi ki ue rong ngudn 6 ligu_ bing cde die bai (token), Néu sb bit dé ma ha th bai abo hon s6 bit cia chudi ‘thugt mi ha Huffman véi md hin oi din 26 thi higu img nén xay ra, Tuy véy, dinh nghta nay van cin dé ngo nhieu vin d&, ching ban nhu, ching ta sé xiy dung va duy ti tr dign nh thé nio trong qua trinh nén hoge gia nén Trong vai trudmg hop, néu ta ding mot tr dién d& duge xfy dymg sin dé ma hoa ngubn, tin thi s& rit chudin fgi. Néu nguén tin cin duge ma hia l& mot eo so dir ligu chia cfc ding ki ‘mua phin mém, ching ta c6 thé xy dung tir dign chi chita vai tram hgng mue tip tfung vio sum tir nh “Microsoft”, “Windows”, “Office”, “Server”... mt khi ti dign 43 duge in dich, né c6 thé duoc lu gitt m6t edch truc tiép Va duge sit dung cho ca hai qua trinh ma hha vat gi ma khi cn thst ‘Mot tr dign kidu nr thé woi Isr didn sinh, No duge xAy dmg trade khi qué tinh nén say ra, vi bt bién trong ki ligu dang duge nén Ti din ki tinh 66 nhigu uu diém va td nin cing ¢6 ning han ché. Uit diém lon nit cua né 1 e6 thé lam cho tir dién“thich ing” v6i kigu di Tigu dem nén. Ching han, v6i eo 96 dt liga vita néu trén, ta e6 thé ma héa chu “Windows” bang i bit vi cép nigu bit hon cho chudi “Uni Oi vai m6 hinh nén thich ting, tir dign khong thé diéu chinh trude, béi vi né chi doe phat sinh (va Tién te bin 46) trong qua trinh ma hs, Digu nay ¢6 ve nhs mot nhage ‘in, nhimng nén theo mo hinh tir dign tinh cing gap pha mot van dé la Ram thé no 48 chuyén tir digm tir bg ma héa dén bo giai ma. Tuy ain, oe mot sb truimg hp te din rah 0 thé King cin chuyén di cing wi da lig nén néu nf n6 6 ye duy tt dn trong bo gai ma, Hode trong trong hop Inong dt Tigu_vao ¢6 kich thude lin, tir dién ¢6 thé duge chuyén di kém ma khéng lam ti s6 nén giam di ahi Mé hinh thich dng (cin goi ki mé hinh dng) ‘Nhin chung, higu qua cia so dé nén theo mé hinh tir din tinh phu thuée vio ting img dung cy thé. Do vy, mé hinh tir dién thich ting due img dyng nhigu han trong thye té. Thay vi ding mét tir dign da dinh nghia trade, 6 day, m6 hinh thich img lai lam vige theo. mot co cché Khéic, dé Ia: Iie bat dau nén, mé hinh thich img xuat ra mot tir dién tham chiéu ngim dinh_ hay m6t tir dién rong, Khi qué trinh nén phat sinh, mé hinh thich img s@ thém mot chudi méi vo tir dign dé sir dung Iai sau nay nh mt thé bai 48 duge ma béa, Nauyén tie lam vige ciia mé hinh dng ¢6 thé minh hoa bing oan chuong trinh git Lip du6i day for(::)t word = get_wordt input file): P* ky mot hud tc tuing nhip—*/ dictionary index = look up (word, dictionary ): tim chuéi 6 tc dién theo chi muct/ if (dictionary_index <0) { 1 bhong tim thay chusi *! ‘output word, output file): 7 suit chs ra file tch*/ aadd_t0_dictionary( word, dictionary); thom chuéi vio te din */ Jelse im thay chusi/ output dictionary index, output file); *xuéi chi mue cia hud ra fle dieh*! 3 Néu dé mye cia tir dién durge ding & day due ma héa nh mét chi sé nguyén trong ‘mt bang thi qué trink nén c6 thé thye hign véi mt thudt todn den gin qua ede bude sau 1. Phan ich ludng dit ligu vio shanh ede doan dé tra te dién rae 1 thugt ma héa Huftinan v6 mo hind «did 27 2. Tra il ait vt ec dogn da de phn teh 4. Thém ce chudi méi vito wong tie didn, 4. Ma héa véin hin gde va ede chi mue cia se dién sao cho cb thé phin bit ching véi au, Qui trinh wii ma e6 mot vai diém khic bigt so vai ede burée tren, nb Khdng clin phn Aich ed php ludng vio thinh cée doan va cling khong kiém tra cic phan doan ngd vio giin v6i tirdién, Thay vio 46, né thye hign theo eée bude sau: 1. Gidi ma luéng vio thank chi muc tiedién hode vin bén gée. 2. Thém céic chudi méi vio tie dién, 3. Bién déi chi muc cia tie dién thinh cum tr. 4. Xuéit ede own tie Thye té cho thi, cée tic vy trén duge thye higa véi chi phi tuong déi thip v8 tai nguyén hé thing. Digu d6 lam cho ec ki thuat nén dia trén m6 hinh tie dien ngay cing tra nn phd bién. Nam 1989, hing Stac Electronic da cai dat thanh cOng thudt todn nén theo m6 hinh tt ign ten mot chip. Thugt ton nay sau d6 da nhanh echdng tro thanh mot chuan cng nghigp ‘a duge sir dung rat rong rai, Phuomg php nén nay thuding duge goi la QIC-122. QUC-122 1a mot vi du dién hinh vé cach thi lam vige cia thudt todn nén cira sé truot, 18 mt thudt todn nén dya trén md hinh tir dién, N6 dya vao phuong phap nén eta 58 tract LZ77. Kbi cée ki higu duge 9 mii héa doe vio, ching durge bd sung va0 eubi mot BO dém (20i Ia cia sé) e6 ich thude 2KB dé tao thanh tir dién, Dé ma hoa mot ki higu hode mot chudi ki higu, bO my héa tién hank kiém tra xem ki higu hoi chudi ki higu d6 e6 mit trong tir dign hay khong, néu c6, nd s® tao ra mat thé hai token) dé xic dinh vi tri va d6 dai cia cum, tir theo tr dign, néu khong, ki higu sé duge phat di 6 dang khéng ma hoa Diu ra cia b6 mi héa QIC-122 la mot lung sb igu, bao gbm cfc the Bi va ede ki higu khong mii héa xen lin nhau, Mot bit e@ duge gin vio trade moi the bai hay méi ki higu chi bio ring phan dt ligu di sau né 1a mot tham chiéu dén tr diém hay la: mot ki higu binh thang. Khuén dang cia hai diy 6 li: (0) Van ban gée: <1> <8 bits ki higu > (2) Tham chigu tis dién: <0 > < vj tri cum tir trong ctia so > < chiéu dai cum tie > Ca ehé lam vige cua bp ma hoa QIC-122 e6 thé thy qua dogn chug trinh gia Hp dud diy: hile (! out_of symbols ){ length = find_tongest_match( &oftset); if (length > I) { output bit (0); length= find_longest_match( &offset ); output bits( offset); output bits( length ); shift_input_buffer( length ; Helse { output bit( 1); coutput_byto( buffer 0] shiftinput_buffer 1); "Tain Gua Min ROR CONG NOME THONG TIN ‘thugt mi ha Huffman véi md hin oi din 28 } } I. CAC PHUONG PHAP NEN LEMPEL VA ZIV [2} ‘Thing 3/1977, Jacob Ziv vi Abraham Lempel da céng bd tai liga “A Universal Algorithm for Sequential Data Compression” trong “IEEE Transactions on Information Theory”. Tigp dé, vao nam 1978, ho lai cdng bS “Compression of Individual Sequences via Variable-Rate Coding”. Bé la nhiing nghign ciru méi abit vé phong php nén dya trén mo hinh tir dign dng vao lie dy. Ching di khoi din cho mét thai ky phat trién manh mé cia ec 1s thudt nén theo mo hinh tr dién cho higu quai nén cao, Mai k¥ thuat nén duye gidi thigu trong céc tai ligu trén goi li L277 (Lempel-Ziv 1977) vi LZ78 (Lempel-Ziv 1978), ILL. Phuong phap nén L277 L277 li phuong php nén sit dung ki thudt ciza sé truot (sliding window). Tie din la mot tip hop céc cum tir e6 chiéu dai c6 dinh duge tim thay trong mt cra s6 kh nhin vio vin ban da duge xir Wy trade d3. Cita s6 o6 kich thud tir 2KB dn 16 KB, chia céc eum ti e6 45 dai tdi da tir 16 bytes dén 64 bytes. L277 sé thay thé cde chudi c6 9 dai bién dng 6 Iudng sd ligu vo bing ede con tre kich thuée o6 dinh anh xa vio tir dién dé tao néa higu img nén. Cf trie dv ligu chinh cia L277 a mgt eta s® van ban, Cita sO nay durge cba im hai phan: phin dau tién chira mot khoi In van ban d& duge xir ly trude dé; phin thé hai, thong thydng nho hon rt nhigu, la mgt b6 dm “ahin thiy trzée” (look-ahead buffer) chira cde ki Wr urge doc vo ts lung nha nung cha duge ma ha Kich o& binh thvng eva cua $6 Ii Khosing vi ngan kit. Trong khi 46, bj dm diye tao nh han nhigu, 66 thé chiza tr 10 dé 100 Ki ey, Thudttodn Tudn ludn tién hinh 30 khop (match) nd dung cua b@ dm “nin thay trade” véi mt chudi nao 46 trong tr dign. Mot vi da don gidn thé hign nhu hinh dudi diy: fir (1-0; MAX -1 14+ ie for (j= #1 5 EMAX j++ ee “Tn Cla eC SO 10 BOCLm Hinh 9. (COs SE OH tong L277 Hinh ve tén 18 mt dogn ma nguén C duge dem nén, Cua s6 tugt e6 d9 dai ting cong 1 64 bytes, véi 16 bytes trong d6 dug sir dung boi bd, dém, M@i thé bai gim c6 ba hang myc dd Tigu ding a xe din mt cum ti voi d9 dai thay di chia trong b§ dém hign tai. Dé las () Vi tr cia eum tr trong cia 56. (©) Chiu dai eum ti (3) Ki ty du tién 6 bo dm theo sau eum tr 6 vi dy trén, bG, dém bao gm cum ki ty “ «gm, chiing ta tim thiy chudi “, Chong trinh nén thy hign thudt todn LZ.77 phét ra thé bai ddu tign, san 46 dich chuyén (tru) cita 96 sang phi nam ki ty (1a 46 dai cum tir via durge ma héa, ké ca ki ty theo sau). [Naim ki tu m6i duye doc vao b6 dm, va qua trinh lap lai nh trén, "Tain Gua Min ROR CONG NOME THONG TIN 1 thugt ma héa Huftinan v6 mo hind «did 29 0s iSMAX 1 HH ir for 1s jSMAX|. j++ ral] “Tn ca CO oC 80cm Hinh 10. Gita 83 saw Ki ma hd <14, 4, ° > ‘The bai tiép theo dinye phat ra béi thudt ton nén sé ma hoa cum ki ty “+” (bao gm ca i ur theo sau) thinh <40, 2, "+>. Ci php ei the bai ny cho phép ma hoa ca nhamg ewm tr khong xuat hign trong ctra sé. Néu b6 dém chi ra sy khdng so khdp (vi dy, nd od thé ma héa mgt kite dom le khong e6 mat trong crm s0 igi mot thoi diem nhut fa cu tr ob 6 di zero <0, 0, > ) thi phuong phép niy khong higu gua, bi vi dé ma ha mét ki tw phai edn dén ba Jogi thing tn, Toy nhién,phaithiyein,thudt ton 6 thé ma hda mo chudi Kt. Gi thuat ma héa cia LZ77 la tcong 45i dom gin. N6 cho phép xem xét xuyén suét ton b9 cia sO trust vai su so khOp t6i da, ma hoa va sau dé chuyén d6i. ‘Thuft fon gidi nén eting kha don gin, boi vi né khong thye hign nhiing vige so sinh, 'N6 doe vito mot the bai, xuat ra cym tir xe dink, dua ra ki ty theo sau, djch chuyén vai Kip Iai ING duy ri ciras6, nhurng khong lam vige so sinh chu. ‘MBét higu img phu tich exe cia phuong php gidi nén la n6 e6 thé si dung cum tir chara a cum tir 48 c6. Trong mot ngudn tin c6 100 ki tu “A” lign tgp, vi dy, ching ta e6 thé ma héa ki tw “A” dau tign lé <0, 0,*A’>. Lie ny, cia s6 38 nhur hinh dui: AANAMAAAAAA| Hiab 1 48 fn cho 100 KA lin i naw ‘Ching ta c6 thé ma héa chin ki tu “A” ké tigp la <38, 9, A’> (gid sir kich thude cia cira 86 trugt i 38). Digu d6 c6 ve nhw la sir dung mot eum ti c6 chin ki ty. Mae dit chiing ta 66 thé thay tam ki ter trong cum tir lé 6 mat o b6 dém. Khi bé phin gidi ma nbn dugc thé bai <38, 9, “A>, b6 dgm sé nhur hinh dui: VD to khClp ta Hink 12, - ‘821.20 khi DO. phOh gilli mé nha COT th bai <38, 9, xem xét thuiit toiin gi nén, ta sé thiy ed win tha thud nay. ‘Sau Ki ki ty dau tién duge sao chép, b6 dém S® nhur sar VO so khOp + boom +i Hinh 13. BO. OGm sau khi sao chip K 17 00 win Qua vong lip ké tigp, chin ki ty “A” s8 duge sao chép, mic dit ching Khong ¢6 mit trong cv 86 khi bat dau tién hanh gidi mf, Sau khi hodn tit vige sao ehép, ki ty dan tiép theo 8 duge dgc vio, vi b6 dim sin sng chuyén dich hur hin sau: f “AAAAAAAAAAA| vane vows MS ‘BO OCim khi sin sing ehuyCin deieh ‘thugt mi ha Huffman véi md hin oi din 30 Hinh 14. Vi dy nay cho thy diém manh ena phurong php nén LZ.77: thich img nhanh ching vi éu dau vao. G vi du trén, nd ma héa mot loat mudi ki tu khi ma tir dién cia né chi chira mat ne dom “MOt vin dé In xudt hign bén trong L277. Dé la, khi ma héa né phai so sinh chudi ki ty trong bo dgm vai tt ca cde vj tricia cra so trugt. Neu sir dung mot ci s6 nho dé la tr ce i d3 due nem xét trade db, thud ton sé lgn tue bo gua ning thay d6i 6 mgd vio ei tir ign, boi vind tru: nhanh qua phan tir dign, Nhu vay, de tng ty sO nén, ta phai tang kich thude cia ia 6 true. Digu nay 3B dn dén hai bt loi chinh. Thi nit, ching ta sé ton mot 6 bit nhieu hon dé ma ha cho mot the bis, Ching han, khi tang kich e@ ea eta 80 tir 4K Jén 64KB, ching ta sé can 16 bits thay vi 12 bits dé ma héa yi tri trong cira 6, va can 10 bits thay vi 4 bits 48 ma héa cho 4 dai cum tir trong b6 dém néu kich thude bo dém ting tir 16 ta cin dén 26 bits thay cho 16 bits dé ma héa mt cum ti. Thit hai, bytes lén IKB. Nhu vay vige tng thong s6tréns& lam cho that gian nén trong CPU ting len ding ké. Vi LZ77, tng kich thug eva sb trugt tr KB len 64KB thi thoi gan tim kiém chudi sé ting len 16 vimoi chudi trong cia so déu duage so sanh wi bp dm, Tinh thé bit loi chi th su phat sinh hi tng kich co-bd dém, boi vi thdi gian chay s@ tang i IG voi chitu di bG dém. Chuang trinh s8 chay cham di khodng 64 lan neu tang dung lung cua b6 dm Wr 16 bytes len 1024 bytes. Tuy nhign, mat tch eye la qua tinh gidi ma sé khdng ehiu gu qua cia vige tang kich thude ci sb traot Hin b6 dem. Qua trinh giai ma chi vién hinh sao chp Iai nhiing cum ti, khong thye hign vige tim kiém chudi nén tc dé thye hign nhanh horn, ‘Mgt vin 4@ na Hkh cum tr / ki wy & 9 dm king im thiy trong tir dién. Khi 6, chyong tinh nén vin siz dung ding ba log thing tn lign hg chi dé ma héa mst ki ty. BS thiy due sy ling phi nay, gia thigt ring kieh thude cita so tragt ka 4KB va bp dém la 16 bytes, hue vay cin 12 bits dé ma ha vi tri wong eta s6, 4 bits dé ma héa cho chigu dai chudi, Nghia 1 Kim de the bai dang <0, 0, & phi cin dén 24 bits ma tt ci ehi AB mf hia cho mt ki ty 8 bit. Dé la mét cai gid qué kon phai tra. ‘Vi nhong han ché néi trén, hai tie gia Lempel va Ziv 4a ei tin L277 va da ra phuong phip nga L278, 11.2. Phuong phip nén LZ78 L278 tr b6 Khai nig v8 mot cta sb trugt. Trong L277, tr diém duge dinh nghta la mt cota s6 06 kich thud o6 dinh cia nhiing doan vin ban duge doc vao trude 6, Nhung véi LZ78, tirdién la mot danh sich khong c6 gidi han cia nhing cum wr da duge xem xét trutic i ne theo sa chi ds > 1LZ78 cting xuat ra mot loa! cic the bai vi y ngha twang ty. Mi the bai cua LZ78 bao gom: < md chi ra chudi doe chon, ki te theo sau chudi dé >. Khong giéng nhu LZ77, chigu dai cia chubi duge chon khong duge chuyén di vi bo giai ma biet duge dieu d. “MOt diém hic bigt nita so véi LZ77 la LZ78 khong c6 mot cita s6 day nhing chudi duge dge sin d8 sir ng nhur mot ti dién. Thay vio 49, LZ78 to ra mt cum te mei gi msi thoi diém mOt the bai duge xuat ra va cap nhat cum tir d6 vao tir din. Sau khi cum ti da duge 1 thugt ma héa Huftinan v6 mo hind «did 31 cp nat, n6 e6 thé ma hoa sir dung tai mot hai diém bat ky trong tuong lat chit Khing chi o vai ngin ki ty ké tip. Khi sir dng thugt (oan LZ78, €@ bp ma hoa va gi ma du Khoi dng véi mot cr dién ain nhw tréng ring, Theo dinh nghia, tir dién chi e6 mot xiv 4% dye mi hoa, dé la xu rong. Ki. mt ki we duge doe vio, né s@ durge thém vio chubi hign igi. Chimg nio ma chusi hign hinh edn so khop vi mot cum tir no 46 trong ti dign, qué tinh nay van tgp tue ‘Nhung cudi cing s# dén hic chudi hign hanh khdng khép v6i xu d3 06 trong tr din Diiy la lie LZ78 xudt ra mot the bai va m9t ki ty. Cin nhé rang, chudi da e6 mot sy so khop trong ti dién cho dén khi ki ty cubi cing duge vio. Vi vay, chudi hitn tai dupe xem nbur I sy so khGp cudi cing cho dn khi mot ki ty. méi da duge thém vio, Bay Ii lie LZ78 sB dua ra: chi sé cia muc tir vita duge so kh6p trong tr dién va ki ty thém vio ma giy ra sy khng so khop. Nhung khong ding wi dly, LZ78 cba thye hign thm mot bube, ciudi méi bao gim cchudi so khdp trong tir dién va ki tw mdi, sé duge thém vao tir dién, Sau nay, khi chudi 45 ‘xuat hign né e6 thé duge sir dung dé xay dmg chudi dai hon. Theo dinh ngha, chudi rng s& ludn so khép véi xdu 0, dé Ii it ring wong tr dién, Do 44, ki ching ta aap mot Kit lan di tén, nd st duge ma hoa nhu la mgt xau 0 cng wi ki turd, Sau niy, nu ky d6 Tai aut ign, n6 s® duce ma hoa nur mot phn cua xa Dud diy la mdt vi dy v8 di ra cua bg ma hoa: Chui vin bin vio: “DAD DADA DADDY DADO..." Qui trinh ma, hoa LZ78 bit dé ma khong 06 xdu nio trong ts dién; vi vay, ki tye dw Aién doe duge tt ladng nlp, “D”, go ra mt chudi chwa e6 trong tr dién, BQ ma héa s8 xu ra m6t el < cum tr/ ki ne >, tong trang hop nay 0 va “D. Lim ¥ ring, 1 dién duge hai tgo vi gi tO nha Ii mot cum ti rdng. Hai ki ty dau tién di qua bO ma ho: ”” vi “A”, chua duge thay trude d6. Méi mot trong sb ching s® duge ma ha nhu li mt ep O ebng véi ki te. "D” duge ep abit vio tir dlign nhu li cum tr 1, “A” duge ep nhit vio tt dién nbu li cum tk 2. Khi ki ty thi 3 1a “D" duge doe vito, nso Khip véi mot xu 6 trong te dign, Ki tw tring ““ dugc doc tigp vao sé tao ra xu “D “ chua cd trong tir dién. LZ78 sé xuat ra ma 1 cho chuOi trade (ehudi“D") va tgp theo i i ty ting * rae 1 thugt ma héa Huftinan v6 mo hind «did 32 a a ee Khi tigp tue ma ha, tr dign nhanh chéng xy dung duge ning xau dai. Sau Khi 19 ki ty d duge dge vao hét va duge ma hoa, ta e6 tir dién nhu sau: a oA =e "pA “DA= DAD" Spy" “DADC ing nfur LZ77, LZ78 06 thé ty thidt lip kich thade cia xu trong tir dién. Tay nhign, ching ta edn luna ¥. sy tic dOng ciia né trong hai trang hgp. MOt la, clin hu ¥ én 6 bit cang edp cho the bai xudt ra divi mdi ti ma. Hai la, quan trong hon, cin phi xét xcm CPU mit bao nhigu th gian dé qui fy tr den ‘Theo i thoyét, LZ78 06 thé ném tt hom nu ta tang kih thas cia tr dé, Nhung dita 46 oh ding kh Kich thage cia ngudn sb lia vao tuong di Hin. Mét khé Kh thye V6 LZ78 la vige quan ltr diem, Néa sur dung ma 16 bits dé ma ha chi s cia nau trong tr dig, chiing ta €6 thé c6 65.536 xéu khic nhau, bao gbm ea ma rong. Va mdi xu ‘eb thé kha dai. Cie xau 6 6 thé duge Inu tt trong mot ey nhiéu nhnh. Cay nay 66 nit g6e mang sma 0 (xiu rng). MGi ki ty duge thém vio xu rng li mot nhnh mdi cua edy vi mbi xa uve igo ra theo each niy s€ duge gan cho mot sb img Véi mot nit méi. Voi vi dy trén, t 06 ey tr ign nur sa 3 47 be 6 a 9 Hinh 15. Mok edy tin L278 rae ‘thugt mi ha Huffman véi md hin oi din 33 CHUONG IV KY THUAT MA HOA HUFFMAN DONG VOI MO HINH TU BIEN THICH UNG Chuong nay, ching ta di tim higu vé phuong php ma héa Huffman dng (edn goi Ia 1nd hoa Huffinanthich tng). Day la phucng php ma hoa duge sir dyng trong chyong trinh ‘minh ha cho d6 én edng voi md hinh tr din, 1. MA HOA HUFFMAN DONG Phuong phip mi héa Huffman tinh cho thiy mgt nhuye diém cia né la bén phat (bén sna ha) pha truyén died tne cacy ma (hode ti thu 1a bang thing ké tan suat cua cde Kf higu) cing véi di ligu da due ma hba dé cho bén thu (bén gi ma) 66 thé Khoi phye li chinh ‘de dd Tigu abe. Qua trinh nén va gia nén déu dya vo mt ciy mt Hsinan duy nit, ng Ja da vio mot 69 tir ma duy nhit, tn eo 59 thong ks toan b6 nguba sé ligu ngay tir Ke A 'Bé kde phye nhimg han ché 46, ngudi ta da dua ra ma Human dong Co ché lam vige ciia mi Huffman déng li ca bén phat va bén thu déu phai tr xdy dung ‘a cp nit cay ma trong swt moi qué trinh nén va gid nén, Nghia Ta, edu trie ea ey ma va do dé hinb ding cay mi lun ludn thay déi trong mdi qua winh 46. Mot uu diém cia mi Huffman dng la vige xy dumg cay ma khdng cin phai thong ké toin b6 nguén s6 liga ngay tire da, Qué trinh xdy dung eéy ma trong khi ma hoa’ gid mi duge tén hinh theo eéc bude 1 thugt ma héa Huftinan v6 mo hind «did 34 Buse 1. Khdi ding cay ma ring di tén, Bue 2. Béi véi bén phit : Nhiin mot ki higu cd ma ha via ma ha theo edy ma hign hain Doi voi bén thu : Lay mét tie ma ti file nén va gidi ma theo cay ma hién hah. Buse 3. Cap nhdit lai cy ma va quay vé Iai burde 2, I, MO HiNH TU DIEN THICH UNG Nhur di ndi, cde phuong phdp m6 hinh héa xit fy mdi hic mOt chudi ki higu tir ludng nhip duge goi chung li mé hinh tir dién. Tuy nhién, 06 nhiimg mé hinh 1a md hhinh tr dién nhumg ky thuat ma ching st dung lai rét khde nhau, Chang han, ede ky thugt m6 hinh héa etia L277, LZ78 hay LZW. KY thugt m6 hinh héa durge cai dat cho an kha giéng véi ky thuat duge sit dung L277, né duoc goi ka “AP shut nén s dung ciea sé han ché” (Finite window compression). Phuong php ma hoa duye sir dyng cing vi mé hinh tren 18 phuwong php md hoa Huftinan dng. kf thugt nén voi m@t cira s6 han ché ¥ arg ca ban cia thudttodn li duy tri mde tr dién, goi Ia “cia shan ehé” (Finite window), chia sin khoang vii ngin ki tw duoe doc vio gin thoi diém hign tai va tién hank tim idm 6 chub ki ty dai nit so khdp (marching) vi doan van ban bit dau ti vi ti dang x6. Néu o6 mot chudi nhu thé duge tim dhiy va néu n6 phit hop hose vut qué mot 46 dai wi thigu thi vige nén s@ duge thy hign bing ciich ma héa phin duge so khép cia dogn van bin 46 bing mot the bai c6 khudn dang < chiéw dai doan so khdp diye; khodng céch gitta hai hus so Khép > Vidu: VOR COW xyes VO Cane xt 0 KA Ce ab tv iCu R oOs ———_— KhoOng each sO) ehilu dai Goon CEC mé fa so kA CON ‘Hinh 16. ot Nba chidu dai emu G HE SS Mabe st che at AP ATOT a cho trade hoc Sn tg m0 50 Kp Bom ca vit A i UH vt dang at (go Kt hi 3 duge chuyén di nguyén dang sang bp ma hoa va thuat toin & gp tye wit tai vi ti p trong cia 6 ‘Tht ton “ta 9 han ch ny 3 Kim phi sind ha dang mi, la dong ma igi te dhrgechuyén dl nguyen wen sang bd ma hiv dng nd ca cd so Kh de bao gbm db ‘di vh gu tr Uhoang cic, DS te ig s6 bit a ha, khong ch gi ha chub 30 hp tre sé dag tn rh end cing ea ehudi so Kh tim thy dn vi tr dang Xt, thay’ tinh wr ki ty du tén, Cde gid tj kodng och khie nhau s& duge ma bia bing nhimng sb bit Ke nhau (oy thé a dng mt sb bit via da) nh eye ibu ba dd i eta ma Khodng cic, rae ‘thugt mi ha Huffman véi md hin oi din 35 Cae cdu erie di ligu hd try 48. B6 dem quay vong __ Vin d di tgn 1a Kim thé nio lau tt b6 dm chira doan vin ban vita méi xudt hign. 'Néu duy tri mot hang dai (queue) bing each su dang danh sich lgn két (linked list) thi s® kim phic tap qua tinh tim kim chad. Vig dich chuyén n6i dang cua a mst mang dé thm vio sit ki tr mai I8 mar cng vige di ho qué nhieu tho gia, KS thugt dém duge sit dung trong chuong trinh dé Inu trit vin ban trong mot bd dém te quay ving. Ching ta sit dung mgt bin ua vin ban vila duge dge vio bj dg. Khi bign dé dat dén vi tri eubi mang (cudi b@ dm), né s® duge dat lai dé tro vio du mang va khi 46, vin ban cl sé bj ghi d2. Chiing ta khOng edn sir dung mot edu tric dit ligu phite tap Khe a8 lim bo dm bai vi edu trie mang tw quay vong chi chiém mot khong gian hg ti thieu. (6, Bang bam (Hash table) ‘Mgt vin dé Kin caa thagt todn “cia s6 hn ch” di tim kiém chudi kf up dé nit so hop voi doan van ban hign hinh (doan vin bn bit du tir vj tri dang xét) trong m6t khdi lon >), rae 1 thugt ma héa Huftinan v6 mo hind «did 37 IIL. TIEN TRINH NEN ‘Chuong trinh cho dé dn duge edi dat én ngdn ngit C, do 46, khi clin mink hoa cho mgt qua trinh no dé ta qui wée 88 ding ngon ngi gid C dé mink hoa, Qué trinh mé hinh héa ‘Qué trinh mé hinh héa 66 thé duge minh hoa bing doan ng6n ngt gia sau diy cho’ igo cée bign vi edu tte di igul)s : 7 for (i=0; i < MINCOPY; i++) {/*MINCOPY la heing dp dat «61 thiéw ctia chudi so khép*/ ‘= doe kite ké tpt ile en no) if(c—= BOF) { (hat file* mi Nba gid ti EOF );/* oi bd phin maha ‘ket thie xt YQ); 3 ‘mk a pit mb ASCH oi i te thé Ii te vio b6 dm) 5 /* dé vo sadn dec MANCOPY kit fp the trie nnn vo bm) ‘P*MAXCOPY lashing di daca hud so Khop*? hile (chu ht file cin nén ) { if (bp dam diy ) 6a nit cig voi vt ca bd thém mat nt mi vo dan ‘n= vj tek dang xir trong b9 dé): nex fen = dp di esa chusi so Kip duge tai vi rin + 1 wong bs dm), en = 6 ei cia chub so khp rg ta vi tin rong bx dé distance = khoang cich chusi so khép duge tai vit n wong b6 dé) if( fen >= MINCOPY va en >= next fen) { ‘emp = bigm di dai len tn gid tr rung gan Kom hom 2560); sma hoa tr fmp );/ goth pin ma hoa */ m0 iti tiga 8 big dign git distance) xu kit ra fle nén(); J else ; : : ‘ehudi so Bhi Wiig di dt hose tn ta mot chudi so kp hon tai vi wi kb tid? sil ha git mi ASCII ua kit ta vi a khdi dan sich ign ké thude bang bain}: Tidn kee tuumg ing thubde bang bam); ) (69 46m dy ) cp abit v tr wy v8 dub dém it(cl EOF) doc ki ek dp eile cha mnt if(e BOF) /* hésfile them ki te vio bg dm): thé vote din het ving lp while * rt hoa (gia ty EOF ): at thie x07 90s Qua trin ma hia ‘hur da trinh iy, du ra cia bp phn m6 hinh ha bao gdm cc ki tur @ nguyén dang (chua ma ba) va ce th bi dang < ohidw di clu so Khip: kone cc gta hai choi da so khép >, Bay gid, ching ta s@ sir dung ma Huffman dng dé ma ha ede ki ne nguyen dang 46 va chiéu dai chudi da so khép dige, Con céc gid tri khodng cach (thudng la cde gid tri niga nhign, king phi hop vi ma hoa Halffinan) s€duge xuat ing tgp a file na va sb bit rae 1 thugt ma héa Huftinan v6 mo hind «did 38 duuge tinh vrai (vf du: Néu gi tr khong ech a 13 thi a chi cnt hid 4 bit bidw dign va sé xuat diy gom 4 bit 1101 ra file nén). Tuy nhién, d& cde ki ne va cae gid tri dé dai phan bigt duge vii nha, wid rj dO di st Ausye bin di theo mit quy tec mhat dink thenh mot gid tr trung gian lin hon 256 (eke sid {rj tir 0.255 danh cho ma ASCII cia cdc ki tr, gid tri 256 dinh cho ma End_OF Fite) trade hi chuyén cho b6 mi héa. Ti mt gid tri trung gian, ta hotin tod c6 thé Khoi phue Iai chinh xe gi tri d6 dai tuong img. 2. Clu tie dt igu md tb ety ma Huffman dng ‘Trude khi di xy dug eay ma, chiing ta edn quan duge sir dung trong chuerg trinh: u duge ¥ nghia cia cc hing 96 06 lién MAXFREQ "Ngudg trong Tung dan cho nit woe ely MINCOPY ‘Dg dai i hia cus chub so Kip MAXCOPY ‘DG dai ti da eva chuai so khop COPYRANGES ‘SB khang bit ding d& ma khoang eich CODESPERRANGE | -MAXCOPY- MINCOPY > TERMINATE 256 ‘Mi cho H higu EOF FIRSTCODE: 287 Gif ring gian nho ahi eo ma dit MAXCHAR | FIRSTCODE + COPYRANGES* | Gig ty teung gian ln abt cus mi d6 di ‘CODESPERRANGE- | ‘SUCEMAN MANCHAR +I TWIceMAX. 3 MAXCHAR +1 ROOT L Cay ma Huffman ma ta s2 xdy dung Id mot edy nh phan edn bing. NO dug bigu dfn trong b nh bing bin mang thin phn nu sa int left[ MAXCHAR + 1 ], right MAXCHAR + 1]; int up[ TWICEMAX + 1 ], freq[ TWICEMAX +1] la nit 66 chi s6 1 (ROOT), Hai mang left{ J, right{_] déu co (MAXCHAR + 1) phin tt, nhung ta chi sir dung MAXCHAR phi tir e6 chi sé tir 1. MAXCHAR (phi tir 0 khong sic dung). Cée phan tr up(0}, up[!}, freq[0).freq( 1] eting khong durge st dung, Nit gée ciia Mang left}: ciza chi s6 cia tt a ede nit con tai trong cy ma. 4 Ming right: chia chi sb cia tt ect mit con phi trong cdy ma. + Mang upf J chi chi 6 ct tit cdc nt cha trong cy ma + Ming freq J chia trong hzong ota tt ea cient trong ey ma + Mang up| 06 s6 phin tr bing ting s6 phin eva hai mang left) gt] boi vi mmdi-nit cha 66 hai nt con twang tig. Ta qui we ring: lef i] ==} : nga tant conti cia mit c6 chi sj Ia mit. chi 6, hay 6 thé ‘ni mot cdc nain gon hon, nit con tri ia niin right i] == j: nit con phai ova nit i 18 mit j Ta wT 1 thugt ma héa Huftinan v6 mo hind «did 39 © up ]==, mit cha cia mit i 1 nit j, hay nit j 1A mit con eta nit i © freq[ i] ==j : trong lugng eta nit i bing j (Cay ma Huffman trong truimg hop biéu din nhw trén dae goi la iy ma ring (Splay Tree). Un diém oi céch bigu dign cay mit nfur tn 1d edu tne di liga dom gién,truy xudt nhanh, d& su dung nhumg od han ché lh cdy mf kh tru twang, ling phi bd nh néu nhu cfc phin tr ci ming khong duge sr dung hit, ‘vy, ely ma Hutinan dug bid dif nh rén 6 + Nit gbc li nit 66 chi s6 1 ROOT) + Ct nit nh o6 chi 6 ti 2. MAXCHAR © Cae nit l@ cO chi sO tr (MAXCHAR + 1). TWICEMAX, tuong tng vi (MAXCHAR+1) gif tri edn ma hia (bao gm md ASCH cia 256 ki te, ki higu EOP vi (MAXCHAR - FIRSTCODE + 1) gii tri trang gian ctia ma dp dai), Gis trj clin ma héa k (nim trong khodng tt 0. MAXCHAR) s@ tuong ting voi nit Id && chisé (k*SUCCMAX), Khai tg0 ly ma dda for (i lefll i] right{ i : 4 for (i= 2; i <= TWICEMAX; i+) { upliJ=i/2s freaL i} = 15 ' ‘Sau khi khéi tgo, ey mi 8 ¢6 dang nhur saw: ROOT oi o@1 6 Ori: Or oO Oo Nt la &chO sO sucemax (Chg vii gave) = Net Hinh 19. Ta cd: lef 2 }== 4: ma 4 1a GO Cs SRG Eine seu kit a TOR CONG ROME THON TT ‘thugt mi ha Huffman véi md hin oi din 40 nit 3 18 nit cha eu nt 7 up(7! 5. Thai que ma hoa Khi b6 phn mi héa nbgin duge mot gid trj edn ma héa tir b6 phn mo hinh héa ehuyén sang, né sé tién hanh ma héa gid tri dé theo cay ma hign thi, Tir ma clia gid tri dé s® duge xic dinh bing cach: duyét tr nit 1é twong img véi gid tri d6 dén nist eoe eiia cay ma; trén dung di, tich lay Tai gid tri cua nhiinh phai di qua (0/1), cudi cing, dio nguye day bit da tien Ty duge ta 06 tir ma cin xée dinh, ‘Sau khi ma héa xong mét gi tri, bp phan ma héa s@ tign hin ep nbat Iai cay ma. Sau 46, qui trinh lai duge tiép tue vdi gid tr} ké tigp cin ma béa tir b6 phn mé hinh héa chuyén sang. # Tha tye cp nhat cy ma Huffman dong ‘Tha tue cdp nhét edy ma s# duge thyc hign tuan ty theo ede bude sau: Bude 1. Tang trong long ciia nit la img voi gi tr vita durge ma ha lén mt do vi duing c: trong. Basie 2. Cip ah trong Iuomg cho tito ede nt nh (ka mtg) ni 4 emit vita tag tong rong den nt go, theo hg ti da en, theo nguyen Iugng eta nt cha bang tong trong ong hai nit con, Bui 3. Kim ta tnh chit Sibling: Vige cp it tong ung 6 thé 8 lm cho mt nat lo 46 c6 trong hago lin hom mont ke nim & vj tr eao hon trong cy mA (vi pgm tin hit Sibling). Trutma hp nay, eng ta ph ra dint Ad voi mot nt Ve ao ho trong cdy. C6 thé o@ nhieu nit o6 trong huong bang v6i it nim vt cao hon d, do vay nit cin chon trio i chinh nit cao cig tong lst cae nto cing trong hrgng do, Sa hi trao di, ta cling phai cp nhat trong Iugng cho cde nit c6 lién quan twang ty nhu 6 bude 2 Buse 4. Kiém tra b9 dém trong lugng 6 nat gbc: Néa trong luong cha nit gbc dat dén pt gid tri ngudng da dinh trade, dé tran hign tuyng tran, trong lugng cia tit ea cde nut trong cy s8 duge qui gidm di 1/2 va lam tn, Diéu nay edng tao ra mat su thich Kg cue bO i véi da ligu dau vio va nhu vay, higu qua nén sB tt hen, IV. TIEN TRINH GIAL NEN Qua trinh gi 8 theo ciy ma Huffman dng 42 Kh go cay ma di ion ‘Truge hét, chung trinh gid ma eng kha tgo mL smi héa di kim : iy ma ging hét nhur bén bO phn for (i= 1; 1 <= MAXCHAR; i: lef i] ~ 24% ‘thugt mi ha Huffman véi md hin oi din 41 b. Thai tue gid ma ‘Sau khi cdy ma duyc khéi igo xong, thi tye giai ma st nh§n digu khién tir chuong trinh, ‘This tye giai ma 88 doe tig tir ma ti file cn giai nén vi tién hinh giai ma theo cdy ma hign thai. Khi dig goi, no s€ dirng gi mit goe ea ey ma, nh tim bit mot tir lub it ma A xic |: Néu bit nkgn duge la 0, n6 sé x8 xuong theo nhinh tai; nguge Iai, bit nbn duege kd 1, 8 sang nln phai cua eay. N6 ei tigp tue nhur thé cho dén khi bat gp mt nit li. Tai ths diém nly, thi tye efip nhat cay mi cho gid tr img véi mit la vira duge bat gip sé duoc goi. Dén day, xem nhur mOt tir ma 43 duge xir ly xong. Tha tue wiai ma s® quay ve dimg tai nat gée dé cher nat If tir ma tip theo va dong thai, gi tr tuong img véi nit I trén sB duge chuyén cho BO phan mé hinh héa xu ly tig. ‘Th tue cdp nhat cay ma trong qué trinh gidi mal hod toan gidng nhu teong qua teinh ma hoa ‘Thugt todn gidt ma moe tir ma: int a= ROOT; /* xudit phat tie gée cita edy */ dof Lay mot bit ma tt file nén(); if (bit ma la 1) a=right[ a]; *r2 sang whénh phai*/ else a=lefila }, /r€ sang nbuinh tri? } while (<= MAXCHAR ); cp nit cy ma cho gia tri (a - SUCCMAX ) : return (a- SUCCMAX ) ; Bai vi MAXCHAR Ti gigi han chi s6 cia nit €6 chi s6 <= MAXCHAR (IB ede mit nhnh) trén mot dung di xuat phit tir mat g6e th ta Jud gp durge mot mt Ii Qua trinh gi (Qué trinh gidi nén dupe tién hank nbn sau: Khai tao cy ma du tient); while (1) { code = fi ma motte mi tile nC); // got aha tue gi ma mgt te ma i (code = TERMINATE) “ma EOF Kit thie qué trinh giai nén ); i (code <256) { 1m ASCII ctia kite Binh thang rut KF ty e6 ma code vao file wid nt); cp mhat ki ty 66 ma code vio b6 dé); // thor ki ne vio ae din Jelse { //gid tr trang gian cia ma db dat chuéi so Khip ;plge hai dé dai length cia chudi 43 so khop()s ple hai s6 bit & di ding dé ma héa khang cich( ); distance = dge k bit tip theo tr file nén(); Khoi phue gid tri Khoding ede ‘n= vi tridang xu IY trong b§ d&m ) i =n- (distance + length } "Tain Gua Min ROR CONG NOME THONG TIN 1 thugt ma héa Huftinan v6 mo hind «did 2 ‘a0 chép fengeh ki tu bit dit tai vj tri feta bo dém vio file wii nént ); sao chép length ki ty bat dt ti vi tivo v te meta BO dé); int lengths il edp ndtv rt xe mai aromg bp dem. } Vi dy minh he: Gia sir tai mt thoi diém nao dé trong qua trinh gid nén, sau khi cic gia ti length va distance dirge khdi phuc, b6 dém 6 dang nhur sau: VOtri =n (distance + Tength) VC tin Cang x01 fing ta Cn iu WE png a. Gagan length distance Hinh 20. Sau ki kena HAP FG ae ede AGHA tlw -(distance+ length) VOlen yO x ID mi tng ta Cem hich vO pRICng ph (enscing Tength distance Minh 21, BEECIm saw khi sao chip length & Iti i vio vote V.NHAN XET Véi cée cfu tric da liga nhw di tinh biy owen (bao gim ce ming cho edy ma Huufiman, b> dgm quay ving, bang bam, danh séch lign ket kép,..) thi lugmg 66 nh ma chuong tinh chiém dung khi edi dat thye tla twong di bé (khoang vai tram KB khi nén va vai chue KB Ki gi nén, boi vi ki gi nén ta khong ein dén bang bam va cée danh sach lién ket kép). Thuat tofin duge six dung la khong qué phite tap. __ Tanhin thdy ring, tbe 9 nén cia chyong trinh phy thude rit nbigu vio thoi gian tim idm chudi trong tr dién. Tha gian tim kiém chudi s@ 1é v6i kieh thude cua te dién (b9

You might also like