K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 1
TỌM TÀÕT LÛN VÀN TÄÚT NGHIÃÛP
Näüi dung ca âäư ạn våïi âãư ti K thût nẹn säú liãûu m họa Säú hc âỉåüc
triãøn khai thnh hai pháưn chênh l phỏửn thuyóỳt minh vaỡ phỏửn chổồng
trỗnh:
* Phỏửn thuyóỳt minh gọửm 6 chæång âæåüc täø chæïc nhæ sau:
Chæång I: Giåïi thiãûu thỉûc trảng v sỉû cáưn thiãút ca nẹn säú liãûu.
Chỉång II: Trỗnh baỡy caùc kióỳn thổùc tọứng quan, mọỹt sọỳ khaùi nióỷm
vaỡ cỏỳu truùc cuớa quaù trỗnh neùn sọỳ lióỷu.
Chổồng III: Trỗnh baỡy vóử caùc vỏỳn õóử lión quan cuớa quaù trỗnh maợ
hoùa. Trióứn khai caùc thuỏỷt toaùn vồùi cỏỳu trục dỉỵ liãûu ph håüp âãø ci
âàût trãn ngän ngỉỵ lỏỷp trỗnh bỏỷc cao.
Chổồng IV: Trỗnh baỡy vóử cỏỳu truùc dổợ lióỷu vaỡ thuỏỷt toaùn cuớa caùc
mọ hỗnh tổỡ vaỡ mọ hỗnh kờ tổỷ. Trỗnh baỡy vóử mọ hỗnh bỏỷc cao.
Chổồng V: Trỗnh baỡy vóử kóỳt quaớ thổỷc nghióỷm õaợ tióỳn haỡnh vồùi
caùc mọ hỗnh õaợ trióứn khai. So saùnh kãút qu våïi phỉång phạp nẹn khạc.
Chỉång VI: Kãút lûn, nãu nhỉỵng váún âãư âảt âỉåüc, váún âãư chỉa gii
quút vaỡ hổồùng phaùt trióứn cuớa chổồng trỗnh.
* Phỏửn chổồng trỗnh gäưm cc file ngưn v tãûp thỉûc thi. Cạc file
ngưn viãút trong mäi trỉåìng C åí hãû âiãưu hnh Linux. Dổỷa theo thuỏỷt
toaùn trỗnh baỡy trong taỡi lióỷu [3].
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
Kyợ
thuỏỷt
neùn
sọỳ
lióỷu
maợ
hoaù
Sọỳ
hoỹc
Trang 2
MUC LUC
TOẽM TếT LUN VN TT
NGHIP..................................................................................1
MUC LUC......................................................................................................2
CHặNG I
M ệU.............................................................................................4
TỉNG QUAN VÃƯ NẸN SÄÚ LIÃÛU................................................................................7
.I GIÅÏI THIÃÛU........................................................................................7
.II PHÁN LOẢI CẠC K THÛT NẸN....................................................7
.II.1. Nẹn täøn hao..................................................................................7
.II.2. Nẹn khäng täøn hao........................................................................8
.III CẠC KHẠI NIÃÛM LIÃN QUAN ÂÃÚN NẸN SÄÚ LIÃÛU........................9
.III.1. Sỉû phán bäú ca kê tỉû ...............................................................9
.III.2. Sỉû làûp lải ca nhỉỵng kê tỉû ...................................................9
.III.3. Âäü dỉ thỉìa vë trê.........................................................................9
.III.4. Âån vở õo thọng tin (Entropy) vaỡ õọỹ daỡi trung bỗnh ca tỉì m....9
.III.5. T säú nẹn..................................................................................10
.IV CÁÚU TRỤC CA QUẠ TRầNH NEẽN S LIU.......................................10
.IV.1. Mọ hỗnh hoaù...............................................................................11
.IV.1.1. Khaùi nióỷm........................................................................................................................................................11
.IV.1.2. Bỏỷc cuớa mọ hỗnh.............................................................................................................................................11
.IV.1.3. Phỏn loaỷi mọ hỗnh............................................................................................................................................12
.IV.2. Maợ hoaù......................................................................................13
.IV.2.1. Khaùi nióỷm........................................................................................................................................................13
.IV.2.2. Caùc phổồng phaùp maợ hoaù:.............................................................................................................................13
KYẻ THUT MAẻ HOẽA S HC..............................................................................19
.V CẠC VÁÚN ÂÃƯ CÁƯN GII QUÚT....................................................................19
.V.1. M họa cạc kê tỉû lả................................................................19
.V.2. Qun l bäü nhåï.........................................................................20
.VI M HỌA..............................................................................................21
.VI.1. Ngun tàõc m họa....................................................................21
.VI.2. Cáúu trục dỉỵ liãûu v gii thût...............................................21
.VII GII M..............................................................................................24
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 3
.VII.1. Ngun tàõc gii m...................................................................24
.VII.2. Cáúu trục dỉỵ liãûu vaỡ giaới thuỏỷt..............................................25
.VIII NHặẻNG HAN CH................................................................................27
XY DặNG M HầNH........................................................................................29
.I M HÇNH BÁÛC KHÄNG.................................................................................29
.I.1. Tênh táưn säú xút hiãûn ca cạc kờ hióỷu....................................29
.I.2. Mọ hỗnh tổỡ..................................................................................32
.I.3. Mọ hỗnh kờ tổỷ .............................................................................35
.II M HầNH BC CAO...................................................................................36
CHặNG TRầNH VAè THặC NGHIM...............................................................................39
.I CAèI T CHặNG TRầNH..............................................................................39
.I.1. Maợ hoùa.........................................................................................39
.I.2. Mọ hỗnh........................................................................................39
.I.3. Caùc mọ õun...................................................................................40
.I.4. Caùch dng...................................................................................41
.II THỈÛC NGHIÃÛM........................................................................................41
.II.1. Giåïi thiãûu...................................................................................41
.II.2. Kãút qu thỉûc nghiãûm...............................................................42
.II.2.1. Kãút qu thỉûc nghiãûm våïi cạc file kiãøu *.txt.............................................................................................42
.II.2.2. Kãút qu thỉûc nghiãûm våïi cạc file kiãøu *.cpp............................................................................................44
.III KÃÚT LÛN VÃƯ KT QUA THặC NGHIM......................................................45
KT LUN.........................................................................................47
CHặNG TRầNH NGUệN.......................................................................................49
.I CAẽC FILE NGUệN (*.C)................................................................................49
.I.1. File arith.c.....................................................................................49
.I.2. File bitio.c......................................................................................54
.I.3. File char.c......................................................................................55
.I.4. File hashtable.c..............................................................................56
.I.5. File main.c.....................................................................................60
.I.6. File stats.c.....................................................................................67
.I.7. File word.c.....................................................................................75
.II CẠC FILE TIÃU ÂÃƯ (*.H)..............................................................................79
.II.1. File arith.h....................................................................................79
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 4
.II.2. File bitio.h....................................................................................80
.II.3. File hashtable .h...........................................................................81
.II.4. File main.h...................................................................................83
.II.5. File stats.h....................................................................................83
.II.6. unroll.i.........................................................................................84
CHỈÅNG I
MÅ
Í Â Á ƯU
Ngy nay cng våïi sỉû phạt triãøn khäng ngỉìng ca nãưn khoa hc
k thût thãú giåïi l sỉû phạt triãøn vỉåüt báûc ca ngnh Cäng nghãû
Thäng tin nọi chung v ngnh Tin hc nọi riãng. Cạc hãû thäúng Tin hc
giụp êch ráút nhiãưu trong cäng viãûc hng ngy ca cạc cå quan, âån vë táûp
thãø hay mäùi cạ nhán cọ liãn quan. Cạc hãû thäúng Tin hc cn giụp ta
lỉu trỉỵ cạc thäng tin cáưn thiãút cọ liãn quan âãún cäng viãûc v âåìi säúng
hng ngy. M ngy cng khäúi lỉåüng thäng tin cáưn lỉu trỉỵ tàng lãn gáúp
bäüi chụng ta khäng cn khäng gian âãø lỉu giỉỵ chụng nỉỵa. Mäüt u cáưu
âàût ra l ta phi lm nh lải khäng gian dnh cho cạc thọng tin õoù.
Vồùi xu thóỳ toaỡn cỏửu hoùa, thỗ maỷng Internet â ra âåìi. Âáy l mäüt
mảng ca cạc mảng con trãn thãú giåïi. Qua mảng Internet ta cọ thãø
ngäưi åí nh liãn lảc våïi cạc cäng ty, cạc âäúi tạc lm àn hay våïi bản b åí
trãn khàõp thãú giåïi. Qua mảng ny ta cọ thãø gỉíi âi v nháûn vãư cạc thäng
tin cáưn thiãút phủc vủ cho cüc säúng hng ngy. Khi gỉíi cạc thäng tin âi
m ta õóứ nguyón nhổ vỏỷy gổới õi thỗ tọỳn rỏỳt nhióửu thåìi gian km theo âọ
l sỉû täún kẹm vãư tiãưn bảc.
Cng våïi sỉû ho nháûp ca Tin hc vo cạc lộnh vổỷc õồỡi sọỳng thỗ
vióỷc xổớ lyù caùc loaỷi tỏỷp tin våïi cạc kiãøu file khạc nhau l âiãưu táút úu,
v cạc táûp tin ny thỉåìng cọ kêch thỉåïc låïn nãn nhiãưu khi nọ gáy khọ
khàn cho cäng tạc lỉu trổợ vaỡ truyóửn gổới. Vỗ vỏỷy, khi lổu trổợ hay truyãön
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 5
gỉíi ngỉåìi ta mong mún gim âãún mỉïc tháúp nháút dung lỉåüng bäü nhåï
m cạc táûp tin ny chiãúm dủng âãø dãù täø chỉïc, qun l v tiãút kiãûm
vãư kinh phê.
Âãø âạp ỉïng cạc u cáưu nãu trãn ngỉåìi ta â nghé ra phỉång phạp
lm cho cạc thäng tin âọ nh lải nhàịm chiãúm dủng bäü nhåï êt hån.
Ngỉåìi ta gi âọ l k thût nẹn säú liãûu. Váûy neùn sọỳ lióỷu laỡ gỗ? õỏy
chuùng ta coù thóứ giåïi thiãûu så qua vãư nẹn säú liãûu. Nẹn säú lióỷu laỡ quaù
trỗnh giaớm dung lổồỹng nhồù cỏửn thióỳt daỡnh cho cạc táûp tin m váùn
biãøu diãùn cng mäüt lỉåüng thäng tin nhỉ trỉåïc.
Cọ nhiãưu phỉång phạp nẹn khạc nhau v chụng âỉåüc thiãút kãú cho
cạc loải dỉỵ liãûu khạc nhau nhổ hỗnh aớnh, ỏm thanh, vn baớn.v.v.. trong
nọỹi dung âäư ạn ny chè bn âãún phỉång phạp dng cho nẹn vàn bn.
Nẹn vàn bn bao hm thay âäøi sỉû biãøu diãùn cuía táûp tin so våïi khäng
gian träúng láúy âỉåüc nh hån åí khäúi lỉåüng dỉû trỉỵ hồûc nh hån thåìi
gian truưn tên hiãûu, tuy nhiãn ngun bn chênh ca táûp tin phi âỉåüc
khäi phủc chênh xạc sau khi gii nẹn.
 cọ ráút nhiãưu phỉång phạp nẹn âỉåüc phạt minh v sỉí dủng
trong nhiãưu nàm qua. Khi thỉûc hiãûn gii phạp nẹn säú liãûu chụng ta
cáưn phi xem xẹt âãún hai váún âãư trại ngỉåüc nhau: cạc thût toạn nẹn
säú liãûu thỉûc hiãûn trỉåïc hãút phi âm bo gim chi phê lỉu trỉỵ m lải
khäng sỉí dủng quạ nhiãưìu thåìi gian. Ngun tàõc chung ca cạc phỉång
phạp m hoạ âãưu dỉûa trãn nháûn xẹt loải b viãûc lỉu lải cạc thäng tin
trng làûp. Cạc k thût nẹn khäng täøn hao thỉåìng âỉåüc ạp dủng cho
cạc táûp tin vàn bn vỗ noù chổùa caùc kyù tổỷ xuỏỳt hióỷn thổồỡng xuyón hån
cạc k tỉû khạc, v cạc thût toạn nẹn täøn hao thổồỡng aùp duỷng cho
caùc tỏỷp tin aớnh vỗ noù cọ thãø l cạc vng âäưng nháút, hay cho mä t säú
ca ám thanh v cạc k hiãûu tỉång tỉû khạc.
Âàûc âiãøm ca nẹn vàn bn l dỉỵ liãûu ca tãûp tin gäúc phi ln
ln âỉåüc khäi phủc lải mäüt cạch chênh xạc sau khi gii nẹn. Mäüt
trong nhỉỵng phỉång phạp nẹn vàn bn âỉåüc biãút såïm v â thnh cäng
l nẹn Huffman, láưn âáưu tiãn âỉåüc phäø biãún vo âáưu nhỉỵng nàm 1950.
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 6
Phỉång phạp ny tảo ra cạc tỉì m khạc nhau cho cạc kê hiãûu âáưu vo.
M họa Huffman âỉåüc xem nhỉ mäüt trong nhỉỵng phỉång phạp nẹn täút
trong nhiãưu tháûp k, cho âãún khi cọ bỉåïc âäüt phạ vãư k thût nẹn vo
cúi nhỉỵng nàm by mỉåi l sỉû xút hiãûn ca phỉång phạp nẹn M
họa Säú hc. M họa Säú hc ra âåìi vo thåìi gian ny v âỉåüc nghiãn
cỉïu phạt triãøn båíi nhiãưu nh nghiãn cỉïu.
Trong mäüt thåìi gian di tỉì nhỉỵng nàm by mỉåi âãún âáưu nhỉỵng nàm
tạm mỉåi, m họa Säú hc bë coi l phổồng phaùp khoù thổỷc hióỷn bồới vỗ
noù khọng taỷo ra tỉìng tỉì m riãng l cho tỉìng k hiãûu m chè tảo ra
mäüt tỉì m duy nháút cho ton bäü nguọửn sọỳ lióỷu. Vỗ vỏỷy noù khọng õoỡi
hoới sọỳ nguyón cạc bêt âãø m họa k hiãûu. Vê dủ,û k tổỷ s coù xaùc
suỏỳt xuỏỳt hióỷn laỡ Pr[s] thỗ lổồỹng thäng tin chỉïa âỉûng trong nọ l
-logPr[s] bit (biãøu thỉïc ny âỉåüc âënh nghéa l entropy ca k tỉû), gi
sỉí xạc sút xút hiãûn ca k tỉû ny l 99% thỗ Maợ hoùa Sọỳ hoỹc chố
cỏửn sổớ duỷng 0,015 bit âãø m họa nhỉng m họa Huffman phi sỉí
dủng êt nháút l 1 bit âãø m họa k tỉû ny vỗ vỏỷy ngổồỡi ta noùi maợ hoùa
Sọỳ hoỹc gỏửn vồùi entropy. Tỉì âáy ta cọ thãø nghé âãún mäüt tè säú nẹn cao
hån cho nẹn vàn bn khi ạp dủng phỉång phạp m họa Säú hc. Sỉû
cäng bäú m ngưn cho viãûc m họa nhiãưu kê hiãûu âỉåüc viãút båíi
Witten,Neal v Cleary trong táûp Communication of ACM (CACM ).
Våïi cạc váún âãư nãu trãn v dỉûa vo ti liãûu [3], trong âäư ạn ny em
âi sáu nghiãn cỉïu vãư phỉång phaùp maợ hoùa Sọỳ hoỹc. ổa ra caùc mọ hỗnh
khaùc nhau vaỡ kóỳt quaớ thổỷc tóỳ cuớa tổỡng mọ hỗnh âãø ngỉåìi âc lỉûa
chn. Chi tiãút ca cạc váún âãư seợ õổồỹc trỗnh baỡy trong caùc chổồng tióỳp
theo cuớa õọử ạn.
CHỈÅNG II
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 7
TÄ Ø N G QUAN VÃ Ư NẸ N S
LI U
.IGIẽI THIU
Neùn sọỳ lióỷu laỡ quaù trỗnh lm gim säú liãûu cáưn thiãút m váùn
biãøu diãùn cng mäüt lỉåüng thäng tin nhỉ trỉåïc. ÅÍí âáy hai khại niãûm säú
liãûu v thäng tin l khạc nhau, åí âáy säú liãûu l cại dng âãø truưn ti
thäng tin. Dỉỵ liãûu sau khi nẹn phi âỉåüc khäi phủc lải giäúng hon ton
våïi lục âáưu. Cå såí ca nẹn säú liãûu l dỉûa vo cạc âàûc trỉng sau:
−Tênh hỉỵu hản ca táûp k hiãûu.
−Táưn säú xút hiãûn tỉång âäúi ca cạc k hiãûu.
−Ngỉỵ cnh xút hiãûn ca cạc k hiãûu.
Vê dủ 1: Âãø hiãøu r tạc dủng ca nẹn ta xẹt vê dủ nhỉ sau: gi sỉí
trong mäüt âoản vàn cọ 50 chỉỵ a, 30 chỉỵ b, 20 chỉỵ c, våïi mọựi kờ tổỷ laỡ 1
bit thỗ ta tọỳn tọứng cọỹng laỡ 100 bit. Khi õoù thay vỗ lổu 50 chổợ a, 30 chỉỵ b,
20 chỉỵ c ta chè lỉu 50a, 30b, 20c khi âoï ta chè täún 9 bit âãø lỉu trỉỵ táút c
chụng, nhỉ váûy ta tiãút kiãûm âỉåüc 91 bit.
.IIPHÁN LOẢI CẠC K THÛT NẸN
Dỉûa vo ngun tàõc nẹn ta cọ thãø chia cạc k thût nẹn thnh hai
nhọm chênh l nẹn täøn hao v nẹn khäng täøn hao.
.II.1.Nẹn täøn hao
Nẹn täøn hao l k thût nẹn cháúp nháûn máút mạt mäüt lỉåüng
thäng tin nháút âënh âãø âảt âỉåüc hiãûu qu nẹn cao, nẹn täøn hao thêch
håüp våïi caùc tỏỷp tin hỗnh aớnh, ỏm thanh õaợ õổồỹc sọỳ hoạ. Theo bn cháút
viãûc biãøu diãùn thäng tin tỉång tỉû dỉåïi dảng säú ngay tỉì âáưu â hm
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 8
chỉïa cạc sai säú. Háưu hãút cạc k thût nẹn täøn hao âãưu cọ thãø âỉåüc
âiãưu chènh âãø cán bàịng giỉỵa âäü chênh xạc v hiãûu qu nẹn. Âäúi våïi
cạc thäng tin bë máút mạt khäng phi l váún õóử quan troỹng bồới vỗ noù coù
thóứ õổồỹc khọi phuỷc lải. Do âọ åí âáy chụng ta chè quan tám âãún hiãûu
qu nẹn m thäi. Nẹn täøn hao thỉåìng âỉåüc thỉûc hiãûn qua hai bỉåïc :
−Bỉåïc 1: Thỉûc hiãûn xỉí l säú liãûu trãn ton bäü ngưn säú liãûu, nọ
bao gäưm viãûc biãún âäøi säú liãûu tỉì miãưn thåìi gian sang miãưn táưn säú. Sau
âọ nọ tiãún hnh “lm trån” säú liãûu bàịng cạch lm trn, viãûc máút mạt
säú liãûu xy ra åí giai âoản lm trn ny.
−Bỉåïc 2: Tiãún hnh nẹn säú liãûu â âỉåüc biãún âäøi v lm trån bàịng
cạc phỉång phạp nẹn khäng täøn hao quen thüc.
Vê dủ 2: Nãúu ta dng k thût nẹn täøn hao âãø nẹn cáu vàn “Trỉåìng Âải
Hc K Thût  Nàơng” v nãúu sau khi gii nẹn ta thu âỉåüc “Trỉåìn
Âải Hoỹ Kyợ Thuỏỷt aỡ Nụn thỗ õióửu naỡy laỡ khọng thãø cháúp nháûn
âỉåüc. Do âọ ta khäng thãø ạp dủng k thût nẹn täøn hao âãø nẹn vàn
bn.
.II.2.Nẹn khäng täøn hao
Nẹn khäng täøn hao l phỉång phạp nẹn âm bo khọng mỏỳt maùt
thọng tin sau quaù trỗnh maợ hoaù vaỡ giaới maợ. Sau khi neùn vaỡ giaới neùn thỗ
noù phaới tảo ra mäüt bn sao chênh xạc so våïi lục âáưu. K thût ny sỉí
dủng âãø lỉu trỉỵ v truưn cạc cå såí dỉỵ liãûu, cạc bng tênh âiãûn tỉí,
cạc vn baớn ....vỗ vồùi caùc tỏỷp tin naỡy thỗ vióỷc máút mạt d chè mäüt bit
thäng tin cng l âiãưu khäng thãø cháúp nháûn âỉåüc. Vê dủ, ta dng k
thût nẹn khäng täøn hao âãø nẹn cáu vàn “Trỉåìng Âải Hc K Thût Â
Nàơng” sau khi nẹn v gii nẹn ta phi thu âỉåüc “Trỉåìng Âải Hc K
Thût  Nàơng”.
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 9
.IIICẠC KHẠI NIÃÛM LIÃN QUAN ÂÃÚN NẸN SÄÚ LIÃÛU
.III.1.Sỉû phán bäú ca kê tỉû
Trong chùi kê tỉû xút hiãûn thỗ vaỡi kờ tổỷ õổồỹc xuỏỳt hióỷn nhióửu
lỏửn coỡn vaỡi kờ tổỷ thỗ xuỏỷt hióỷn ờt hồn. Do õoù khi maợ hoaù thỗ caùc kờ tổỷ
xuỏỳt hióỷn nhióửu ta seợ m hoạ bàịng tỉì m ngàõn cn kê tỉû xút hiãûn
êt ta s m hoạ bàịng cạc tỉì m di hồn.
.III.2.Sổỷ lỷp laỷi cuớa nhổợng kờ tổỷ
Khi xuỏỳt hióỷn thỗ cọ kê tỉû thỉåìng âỉåüc làûp âi làûp lải nhiãưu láưn.
Cọ kê tỉû lải ráút êt khi xút hiãûn do váûy khi m hoạ ta cọ thãø m hoạ
cä âäüng hån bàịng cạch chè lỉu cạc thüc tênh kê tỉû nhỉ: säú láưn làûp
lải ca kê tỉû, säú kê tỉû â xút hiãûn.
.III.3.Âäü dỉ thỉìa vë trê
Nãúu nhỉỵng kê tỉû no âọ xút hiãûn åí mäüt vë trê m ta coù thóứ õoaùn
trổồùc õổồỹc thỗ khi maợ hoaù ta coù thãø s giỉỵ vë trê m kê tỉû âọ xút
hiãûn thay vỗ lổu trổợ caùc kờ tổỷ õoù.
.III.4.ồn vở õo thọng tin (Entropy) vaỡ õọỹ daỡi trung bỗnh cuớa tổỡ m
Âån vë âo thäng tin (Entropy): l thuút thäng tin sỉí dủng thût ngỉỵ
entropy l âån vë âo thäng tin âỉåüc m hoạ trong mäüt thäng âiãûp. Entropy
ca mäüt thọng õióỷp caỡng cao thỗ thọng tin noù chổùa õổỷng cng nhiãưu.
Gi sỉí ràịng p l xạc sút xút hiãûn cuớa kờ hióỷu thỗ entropy cuớa noù seợ
laỡ -log2p bit. Entropy ca ton bäü thäng âiãûp l täøng entropy ca caùc kờ
hióỷu thaỡnh phỏửn. Nhổ vỏỷy thỗ entropy seợ phuỷ thüc vo xạc sút
xút hiãûn ca kê hiãûu. Mäüt kê hióỷu coù xaùc suỏỳt xuỏỳt hióỷn cao thỗ
thọng tin chổùa âỉûng trong nọ tháúp v cáưn êt bit hån âãø maợ hoaù.
ọỹ daỡi trung bỗnh cuớa tổỡ maợ: õọỹ daỡi trung bỗnh cuớa tổỡ maợ laỡ giaù
trở trung bỗnh ca táút c cạc tỉì m trong mäüt bäü m. ọỹ daỡi trung
bỗnh cuớa tổỡ maợ khọng thóứ naỡo nhoớ hån entropy ca ngưn säú liãûu
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 10
âỉåüc m hoạ v do âọ mäüt bäü m tọỳi ổu laỡ bọỹ maợ coù õọỹ daỡi trung
bỗnh cuớa tỉì m gáưn våïi entropy ca ngưn säú liãûu.
.III.5.T säú nẹn
T säú nẹn l mäüt âải lỉåüng dng âãø âạnh giạ hiãûu qu ca mäüt
phỉång phạp nẹn no âọ. T säú nẹn l mäüt âải lỉåüng toạn hc ta cọ
thãø tênh bàịng cäng thỉïc. Ngy nay täưn tải 2 quan niãûm trại ngỉåüc
nhau vãư cạch tênh t säú nẹn.
Quan niãûm thỉï nháút tênh t säú nẹn theo cäng thỉïc:
CN =
N2
x 100 (%).
N1
Trong âọ N1 kêch thỉåïc file vo trỉåïc khi nẹn, N2 l kêch thỉåïc ca file
ra sau khi nẹn.
Âäúi våïi cạch tênh ny: âãø âạnh giạ hiãûu qu nẹn thỗ ta dổỷa vaỡo
CN :
+ Nóỳu CN caỡng nhoớ thỗ hiãûu qu nẹn ca phỉång phạp nẹn âọ
cng cao.
+ Nãúu CN caỡng lồùn thỗ hióỷu quaớ neùn cuớa phổồng phaùp nẹn âọ cng
tháúp.
Quan niãûm thỉï hai tênh t säú nẹn theo cäng thæïc:
N
CN = 1− 2 x 100 (%).
N1
ọỳi vồùi caùch tờnh naỡy thỗ CN caỡng lồùn tỉïc l phỉång phạp nẹn âọ cọ
hiãûu qu nẹn cao vaỡ ngổồỹc laỷi tổùc laỡ CN caỡng nhoớ thỗ hióỷu qu nẹn
cng tháúp. Trong näüi dung âäư ạn ny em chn cạch tênh theo quan
niãûm thỉï nháút âãø tênh t sọỳ neùn ồớ trong chổồng trỗnh.
.IVCU TRUẽC CUA QUAẽ TRầNH NEẽN S LIU
Quaù trỗnh neùn sọỳ lióỷu bao gọửm hai quaù trỗnh laỡ mọ hỗnh hoaù vaỡ
maợ hoaù. Quaù trỗnh nẹn âỉåüc minh hoả bàịng så âäư sau:
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
Kyợ
thuỏỷt
neùn
sọỳ
lióỷu
maợ
hoaù
Sọỳ
hoỹc
Trang 11
Mọ
Mọ
hỗnh
hoaù Sổỷ ổồùc
Sổỷ
lổồỹng
phỏn bọỳ
Luọửng kờ
xaùc
suỏỳt
xaùc
Maợ
hoùa
hióỷu
MAẻ
HOẽA
hỗnh
hoaù Sổỷ ổồùc
Sổỷ
lổồỹng
phỏn bọỳ
Luọửng
hióỷu
kờ
õaợ
xaùc
xaùc
suỏỳt
Giaới
GIAI
MAẻ
Luọửng kờ
hióỷu
õỏửu ra
Hỗnh 1: Cỏỳu truùc cuớa quaù trỗnh neùn sọỳ lióỷu (theo [5])
.IV.1.Mọ hỗnh hoaù
.IV.1.1.Khaùi nióỷm
Mọ hỗnh laỡ mọỹt tỏỷp hồỹp säú liãûu cng cạc quy tàõc âỉåüc sỉí dủng
âãø xỉí l cạc k hiãûu âáưu vo v âỉa ra cạc tỉì m tỉång ỉïng. Viãûc xạc
âënh mäüt tỉì m nháút âënh âäúi våïi mäüt kyï hiãûu hoàûc mäüt táûp håüp kyù
hióỷu nhỏỳt õởnh õổồỹc thổỷc hióỷn trón mọỹt mọ hỗnh (model). Mọỹt mọ
hỗnh coù nhióỷm vuỷ xaùc õởnh chờnh xaùc xạc sút xút hiãûn ca tỉìng
k hiãûu v mäüt bäü m hoạ s tảo ra cạc tỉì m cho cạc kờ hióỷu dổỷa
trón caùc xaùc suỏỳt õoù.
õỏy mọ hỗnh hoạ v m hoạ l hai váún âãư hon ton khaùc nhau,
vỗ coù rỏỳt nhióửu caùch õóứ xỏy dổỷng mọ hỗnh cho mọỹt phổồng phaùp maợ
hoaù. Mọỹt phổồng phaùp maợ hoùa coù thóứ sổớ duỷng nhióửu mọ hỗnh khaùc
nhau.
.IV.1.2.Bỏỷc cuớa mọ hỗnh
Cọng vióỷc chờnh cuớa mọ hỗnh hoaù laỡ tờnh xạc sút xút hiãûn ca
cạc kê hiãûu åí âáưu vo õóứ cung cỏỳp cho quaù trỗnh maợ hoaù. Do õoù trong
quaù trỗnh mọ hỗnh hoaù õoù ta phaới tỗm caùch âãø náng cao âäü chênh xaïc
trong viãûc tênh xaïc suáút xút hiãûn ca cạc kê hiãûu. Viãûc tênh xạc
sút xút hiãûn ca cạc kê hiãûu ta cọ thãø dỉûa vo cạc kê hiãûu âỉïng
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 12
trỉåïc, ta gi cạc kê hiãûu âỉïng trỉåïc âọ l ngỉỵ cnh, säú lỉåüng cạc kê
hiãûu âọ cọ thãø laỡ khaùc nhau. Vỏỷy bỏỷc cuớa mọ hỗnh chờnh laỡ säú kê
hiãûu âỉïng trỉåïc m cạc kê hiãûu ny tảo thnh ngỉỵ cnh.
Viãûc tênh xạc sút xút hiãûn dỉûa vo cạc kê hiãûu âỉïng trỉåïc
ny s mang lải âäü chênh xạc cao v nhanh hån. Do âọ khi báûc ca mọ
hỗnh caỡng cao thỗ thỗ quaớ neùn caỡng cao. Do váûy âãø náng cao hiãûu qu
nẹn m cng ngy ngỉåìi ta caỡng nỏng cao hồn bỏỷc cuớa mọ hỗnh. Ngaỡy
nay thỗ bỏỷc cuớa mọ hỗnh coù thóứ laỡ 0, 1, 2, v.v...
.IV.1.3.Phỏn loaỷi mọ hỗnh
Hióỷu quaớ cuớa quaù trỗnh neùn phuỷ thuọỹc rỏỳt nhióửu vaỡo vióỷc lổỷa
choỹn mọ hỗnh thờch hồỹp. Hióỷn nay thỗ coù hai loaỷi mọ hỗnh phọứ bióỳn
duỡng cho neùn sọỳ lióỷu laỡ mọ hỗnh thọỳng kó vaỡ mọ hỗnh tổỡ õióứn. Sau õỏy
ta xeùt õóỳn tổỡng loaỷi mọ hỗnh õoù:
Mọ hỗnh tổỡ õióứn: mọ hỗnh naỡy lm viãûc theo cå chãú l âc säú liãûu
vo räưi tỗm vaỡ so saùnh vồùi caùc kờ hióỷu õaợ coù trong tổỡ õióứn. Nóỳu tỗm
thỏỳy noù seợ troớ õóỳn kờ hiãûu âọ. ÅÍ âáy hiãûu qu nẹn s phủ thüc vo
sỉû trng làûp ca cạc kê hiãûu so våïi cạc kờ hióỷu õaợ coù trong tổỡ õióứn.
Mọ hỗnh thọỳng kó: mọ hỗnh naỡy laỡm vióỷc theo cồ chóỳ maợ hoaù tỉìng
kê hiãûu mäüt dỉûa vo xạc sút xút hiãûn ca tổỡng kờ hióỷu õoù. Sau
mọựi lỏửn xuỏỳt hióỷn thỗ xaùc suỏỳt xuỏỳt hióỷn cuớa noù thay õọứi. Vồùi loaỷi
mọ hỗnh ny ta lải cọ hai cạch khạc nhau l mä hỗnh thọỳng kó õọỹng vaỡ
mọ hỗnh thọỳng kó tộnh.
Mọ hỗnh thäúng kã ténh: laìm viãûc theo cå chãú laì xáy dỉûng mäüt bng
liãût kã cạc giạ trë xạc sút ca ngưn kê hiãûu. Do âọ ta cáưn phi gỉíi
thãm mäüt lỉåüng säú liãûu khạc nỉỵa cho bäü gii m âãø giaới maợ thọng
õióỷp õoù.
Mọ hỗnh thọỳng kó õọỹng: sọỳ lióỷu thäúng kã ca ngưn säú liãûu khäng
cáưn phi gỉíi âi trỉåïc m nọ s liãn tủc âỉåüc sỉỵa âäøi v tờch luyợ dỏửn
trong quaù trỗnh tờnh toaùn sau õoù cuớa quaù trỗnh maợ hoaù.
KHOA CNTT - TVT
95T
Nguyóựn Mỏỷu Nghộa Låïp
Kyợ
thuỏỷt
neùn
sọỳ
lióỷu
maợ
hoaù
Sọỳ
hoỹc
Trang 13
Nóỳu dổỷa vaỡo kờ hióỷu õỏửu vaỡo thỗ coỡn coù caùc mọ hỗnh nhổ mọ
hỗnh tổỡ vaỡ mọ hỗnh kờ tổỷ .
Mọ hỗnh tổỡ: ta xem õỏửu vaỡo laỡ cạc tỉì v cạc khäng tỉì xen k nhau do
âọ m nọ tråí thnh cạc kê hiãûu âỉåüc nẹn. Våïi neùn mọ hỗnh tổỡ noù õỷc
bióỷt thờch hồỹp cho dổợ lióỷu laỡ caùc vn baớn lồùn coù vaỡi chuỷc nghỗn tổỡ.
Bồới vỗ thọng thổồỡng thỗ caùc tổỡ thổồỡng õổồỹc lổu trỉỵ våïi mủc âêch âãø lm
chè mủc, do âọ chè muỷc coù thóứ õổồỹc duỡng nhổ mọỹt phỏửn cuớa mọ
hỗnh nẹn. Do âọ nọ mang lải hiãûu sút nẹn cao hồn. Mọỹt vn baớn thỗ
coù rỏỳt nhióửu tổỡ khaùc nhau v cạc tỉì âọ âỉåüc tảo thnh tỉì mäüt säú kờ
hióỷu nhỏỳt õởnh.
Mọ hỗnh kờ tổỷ: vồùi mọ hỗnh naỡy thỗ õỏửu vaỡo laỡ caùc kờ tổỷ do õoù noù
tọỳn thồỡi gian hồn so vồùi mọ hỗnh tổỡ vaỡ hióỷu quaớ neùn seợ thỏỳp hồn so vồùi
mọ hỗnh tổỡ nhổng buỡ laỷi noù dóự thổỷc hióỷn hồn caùc mọ hỗnh khaùc. Bồới
vỗ caùi cồ baớn nhỏỳt cuớa mọỹt vn baớn âọ chênh l cạc kê tỉû.
.IV.2.M hoạ
.IV.2.1.Khại niãûm
M hoạ l nhiãûm vủ quút âënh viãûc biãøu diãùn âáưu ra ca mäüt
kê hiãûu dỉûa trãn sỉû phán chia xạc sút âỉåüc cung cỏỳp bồới mọ hỗnh.
Hióỷn nay coù nhióửu phổồng phaùp m hoạ khạc nhau nhỉng âỉåüc sỉí
dủng räüng ri nháút váùn l m hoạ Huffman v m hoạ Säú hc.
.IV.2.2.Cạc phỉång phạp m hoạ:
M hoạ Huffman
Phỉång phạp ny dỉûa vo xạc sút xút hiãûn ca kê hiãûu âỉåüc
xáy dỉûng båíi mọ hỗnh õóứ maợ hoaù. Phổồng phaùp naỡy maợ hoaù mäüt kê
hiãûu bàịng mäüt tỉì m riãng biãût. Nãúu kê hióỷu coù xaùc suỏỳt xuỏỳt hióỷn
cao thỗ gaùn cho kờ hiãûu âọ tỉì m ngàõn, v ngỉåüc lải tỉïc l gạn cho kê
hiãûu cọ xạc sút xút hiãûn tháúp tỉì m di hån. ÅÍ âáy tỉì m l mäüt
säú ngun caïc bit.
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 14
Våïi phỉång phạp ny âãø xáy dỉûng m ta sỉí dủng cáúu trục cáy nhë
phán. Cạc nụt lạ ca cáy l cạc kê hiãûu, cạc nụt lạ ny cọ trng
lỉåüng l táưn säú hồûc xạc sút xút hiãûn ca caùc kờ hióỷu. Quaù trỗnh
xỏy dổỷng cỏy tióỳn haỡnh qua cạc bỉåïc nhỉ sau:
−Bỉåïc 1: xạc âënh 2 nụt lạ cọ trng lỉåüng nh nháút tỉïc l cạc kê
hiãûu cọ xạc sút xút hiãûn nh nháút.
−Bỉåïc 2: xáy dỉûng nụt cha ca 2 nụt con ny våïi trng lỉåüng ca
nụt cha l täøng trng lỉåüng ca 2 nụt con cäüng lải.
−Bỉåïc 3: lục ny nụt cha âỉåüc xem nhỉ l mäüt nụt lạ, v nọ âỉåüc
bäø sung vo danh sạch caùc nuùt laù, coỡn caùc nuùt con õaợ xeùt thỗ âỉåüc
âạnh dáúu l â xẹt.
−Bỉåïc 4: âạnh dáúu mäüt trong hai nuùt laù laỡ 0 thỗ nuùt coỡn laỷi laỡ “1”.
Âãø thuáûn låüi cho viãûc âaïnh dáúu “0” hay “1" ta qui ỉåïc ràịng nụt trại ta s
âạnh dáúu l “0” cn nụt phi l “1”.
−Bỉåïc 5: làûp lải cạc bỉåïc trãn cho âãún khi chè cn mäüt nụt lạ thỗ
nuùt naỡy chờnh laỡ nuùt gọỳc cuớa cỏy nhở phỏn ta vỉìa xáy dỉûng.
Vê dủ 3: Âãø hiãøu r hån quaù trỗnh laỡm vióỷc cuớa maợ hoùa Huffman ta xeùt
vờ dủ nhỉ sau. Gi sỉí ta cọ mäüt thäng âiãûp âáưu vo gäưm cạc kê tỉû v
xạc sút xút hiãûn ca mäùi kê hiãûu cho nhỉ trong bng dỉåïi âáy:
Kê tỉû
Xạc
A
sút 20
xút hiãûn
B
C
D
E
G
18
15
10
6
5
Bng 1: Xạc sút xút hiãûn ca cạc kê hiãûu
Ta tiãún hnh theo cạc bỉåïc trãn âãø xáy dổỷng cỏy nhở phỏn cho vờ duỷ
naỡy. Ban õỏửu thỗ c sạu nụt âãưu l cạc nụt tỉû do tỉïc laỡ caùc nuùt laù.
ỏửu tión ta tỗm õổồỹc hai nuùt lạ cọ trng lỉåüng nh nháút l E v G cọ
trng lỉåüng láưn lỉåüt l 6 v 5. Hai nụt ny kãút håüp våïi nhau tảo
thnh nụt cha cọ trng lỉåüng l 11 lục ny nụt cha âỉåüc xem l nuït
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 15
lạ v ta âạnh dáúu l â xẹt cạc nụt ny räưi. Khi âọ ta cọ nụt E âỉåüc
âạnh dáúu l “0” cn nụt G âỉåüc âạnh dáúu l 1.
Tióỳp tuỷc quaù trỗnh trón ta coù caùc nuùt D v nụt cha1 ỉìa tảo thnh
v
0
v cạc nụt cọ trng lỉåüng nh nháút láưn lỉåüt l 100v 11. Khi âọ ta cọ
21
1
nụt cha måïi tảo thnh tỉì hai nụt ny cọ trng lỉåüng l 21. Khi âọ cạc
11
nụt â xẹt 18 ta âạnh dáúu l â xẹt10äưi. Tải thåìi âiãøm 5 ỡy ta coù cỏy
qua
r
na
20
15
6
B
C
D
E
G
nhở phAn nhổ sau:
ỏ
Hỗnh 2: Cỏy Huffman sau hai bỉåïc
ÅÍ cạc bỉåïc tiãúp theo hai nụt cọ trng lỉåüng nh nháút l B v C
âỉåüc näúi våïi nhau tảo thnh nụt cha cọ trng lỉåüng l 33. Sau bỉåïc
ny cạc nụt cọ trng lỉåüng nh nháút l nụt A v nụt cha âỉåüc tảo
thnh sau bỉåïc thỉï haiGäúc l nụt cọ trng lỉåüng l 21v chụng kãút
tỉïc
1
håüp våïi nhau 0
tảo thnh nụt cha måïi cọ trng lỉåüng l 41. Cúi cng
74
0
1
l chè cn lải hai nụt cha cọ trng lỉåüng láưn lỉåüt l 33 v 41 v
41
1
chụng kãút håüp våïi nhau tảo thnh nụt cha måïi cọ trng lỉåüng l 74.
0
Cúi cng âáy l nụt cha duy nháút v ta â hon21 0nh viãûc xáy dỉûng
th
0
1
1
33
11
cáy Huffman cho viãûc m họa. Kãút qu cúi cng ca quaù trỗnh thổỷc
0
18
20
10
5
hióỷn õổồỹc thóứ15 óỷn bũng cỏy nhổ hỗnh veợ dổồùi õỏy.6
hi
E
D
G
A
B
C
Hỗnh 3 Cỏy Huffman hoaỡn chốnh
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 16
Âãø âỉa ra tỉì m cho cạc kê hiãûu chụng ta phi âi tỉì cạc nụt lạ âãún
gäúc ca cáy Huffman. Tuy nhiãn cạc bỉåïc tr vãư phi ngỉåüc lải våïi tỉì
m nãn ta phi âàût chụng vo ngàn xóỳp õóứ khi lỏỳy ra thỗ theo thổù tổỷ
ngổồỹc laỷi v cho ta tỉì m ca cạc kê tỉû . Kãút qu âỉa ra cạc tỉì m
cho cạc kê hiãûu trong thäng âiãûp åí trãn nhỉ sau:
Kê tỉû
Tỉì m
A
B
C
D
E
G
10
00
01
110
1110
1111
Bng 2: Bng liãût kã cạc tỉì m ca cạc kê hiãûu sau khi m
họa
Qua âáy ta tháúy ràịng m họa Huffman sỉí dủng mäüt säú ngun cạc
bit cho mäüt tỉì m. Nhỉng viãûc thỉûc hiãûn m họa v gii m ca nọ
khäng quạ phỉïc tảp, khäng u cáưu nhiãưu thåìi gian thỉûc hiãûn cng
nhỉ bäü nhåï nãn ngay tỉì lục cäng bäú nọ â âỉåüc mi ngỉåìi cháúp nháûn
v u thêch nọ.
M họa Säú hc
Ngay tỉì khi ra âåìi phỉång phạp naỡy khọng mang tờnh khaớ thi vỗ noù
phổùc taỷp vóử màût khại niãûm láùn viãûc thỉûc hiãûn nọ trong thỉûc tãú.
Khi thỉûc hiãûn phỉång phạp ny nọ u cáưu bäü nhåï cọ dung lỉåüng låïn,
thåïi gian thỉûc hiãûn láu nãn trong mäüt thåìi gian di nọ váùn chè mang
tênh thỉí nghiãûm åí trong cạc cüc thê nghiãûm v nghiãn cỉïu. Cho âãún
khi cọ sỉû phạt triãøn ca täúc âäü tênh toạn cng nhỉ dung lỉåüng bäü
nhåï ca cạc mạy tênh thỗ phổồng phaùp naỡy mồùi õổồỹc ngổồỡi ta chuù yù
õóỳn nhiãưu hån. Khi âọ ngỉåìi ta måïi nghé âãún viãûc ạp dủng phỉång phạp
ny vo trong thỉûc tãú.
Báy giåì ta xem xeùt quaù trỗnh laỡm vióỷc cuớa phổồng phaùp naỡy. Gi sỉí
chụng ta cọ mäüt thäng âiãûp bao gäưm cọ cạc kê hiãûu khạc nhau thüc
mäüt bng alphabet cọ âäü låïn giåïi hản. Cng gi sỉí ràịng chụng ta biãút
xạc sút xút hiãûn ca mäùi kê hiãûu l khạc nhau, vaỡ ta tỗm caùch
dióựn taớ laỷi thọng õióỷp õoù maỡ dng mäüt säú bit nh nháút cọ thãø. Ngay
tỉì khi õổồỹc cọng bọỳ thỗ maợ hoùa Sọỳ hoỹc õaợ khọng âỉåüc nhiãưu ngỉåìi
cháúp nháûn båíi nọ l mäüt phỉång phạp khọ thỉûc hiãûn, nọ u cáưu bäü
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 17
nhåï låïn, thåìi gian thỉûc hiãûn láu. Våïi phỉång phạp ny nọ khäng tảo ra
tỉìng tỉì m riãng biãût cho tỉìng kê hiãûu m nọ chè tảo ra mäüt tỉì m
duy nháút cho ton bäü ngưn säú liãûu. Tỉì maợ naỡy seợ bở thay õọứi trong
quaù trỗnh maợ hoùa mäùi khi cọ thãm mäüt kê hiãûu âỉåüc m ha. Do âọ
tỉì m åí âáưu ra khäng cn l mäüt säú ngun cạc bit nỉỵa m l mäüt säú
l cạc bit. Vỗ vỏỷy noù gỏửn vồùi entropy hồn vaỡ mang lải hiãûu qu nẹn täút
hån.
Cå chãú hoảt âäüng nhỉ sau: gi sỉí ràịng p I l xạc sút ca kê hiãûu
thỉï i trong bng alphabet, v cạc biãún L v R âỉåüc khåíi tảo láưn lỉåüt
bàịng 0 v bàịng 1. Trong âọ L biãøu diãùn giạ trë nhë phán nh nháút ph
håüp våïi viãûc biãøu diãùn tỉì m cạc kê hiãûu âỉåüc xỉí lê, R l vng kãút
qu xạc sút xút hiãûn ca cạc kê hiãûu. Âãø m họa kê hiãûu tiãúp
theo, gi l kê hiãûu thỉï j trong bng alphabet, c L v R phi âỉåüc tênh
j −1
toạn lải, L = L + R.∑ pi vaì R = R.pj , váùn âm bo mäúi quan hãû giỉỵa L, R
i =1
v xỉí lê cạc kê hiãûu tiãúp theo. Khi kãút thuùc thọng õióỷp, bỏỳt kỗ giaù trở
naỡo nũm giổợa L v L + R s âỉåüc chè âënh r rng âãø lm tỉì m cho
thäng âiãûp âáưu vo.
Âãø hiãøu r hồn quaù trỗnh laỡm vióỷc cuớa maợ hoùa Sọỳ hoỹc ta xẹt vê
dủ sau: gi sỉí ta cọ bng alphabet gäưm cạc kê tỉû {a, b, c, d}v mäüt
thäng âiãûp gäưm cạc kê tỉû a, b, c l abc v chụng cọ xạc sút xút hiãûn
nhỉ trong bng dỉåïi âáy:
Kê tỉû
a
Xạc sút xút 0,2
hiãûn
5
b
c
0,5
0,2
0
5
Bng 3: Bng xạc sút ca cạc kờ hióỷu
Khi bừt õỏửu quaù trỗnh neùn ta coù L = 0 v R = 1. Khi m họa kê tỉû
âáưu tiãn l a ta tiãún hnh tênh toạn lải L v R nhỉ sau:
L = 0 + 1× 0,25= 0,25.
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 18
R = 1 x 0,25 = 0,25.
Tiãúp theo ta tiãúp tủc m họa kê tỉû b v tênh lải L v R trong
trỉåìng håüp ny theo cạc cäng thỉïc åí trãn:
L = 0,25+ 0,25× 0,25= 0,3125
.
R = 0,25 x 0,50 = 0,125.
Tiãúp tủc m họa kê tỉû tiãúp theo l kê tỉû c ta lải tênh lải L v R:
L = 0,3125 + 0,125 x 0,75 = 0,321875.
R = 0,125 x 0,25 = 0,03125.
Nhỉ váûy ta s quút âënh tỉì m cho âáưu ra l mäüt säú nàịm trong
khong tỉì 0,321875 âãún 0,325, chàóng hản ta láúy säú 0,322.
Khi gii m ta s dỉûa vo säú ny âãø so sạnh våïi giạ trë L ca cạc
kê tỉû v suy ra nọ tỉång ỉïng våïi kê tỉû no trong bng, sau mọựi lỏửn nhổ
vỏỷy thỗ tổỡ maợ naỡy xeợ õổồỹc tênh lải cho ph håüp. Qua vê dủ trãn ta
tháúy vồùi maợ hoùa Sọỳ hoỹc thỗ tổỡ maợ seợ khọng l mäüt säú ngun m l
mäüt säú l cạc bit.
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
Kyợ
thuỏỷt
neùn
sọỳ
lióỷu
maợ
hoaù
Sọỳ
hoỹc
Trang 19
CHặNG III
KYẻ THU T MAẻ
HOẽ A S H C
.VCẠC VÁÚN ÂÃƯ CÁƯN GII QUÚT
.V.1.M họa cạc kê tổỷ laỷ
Vồùi mọ hỗnh kờ tổỷ bỏỷc 0 thỗ noù maợ hoùa 257 kờ tổỷ khaùc nhau laỡ vỗ
ngoaỡi 256 kờ tổỷ bỗnh thổồỡng thỗ noù coỡn maợ hoùa kờ tỉû âàûc biãût l
end_of_file. Táú c chụng âãưu cọ giạ trë trong ngỉỵ cnh bàịng cạch gi
hm install_symbol(). Trại ngỉåüc vồùi õióửu naỡy, mọ hỗnh tổỡ khọng giồùi
haỷn vóử sọỳ kê hiãûu âáưu vo , dy âáưu vo åí âáy cọ thãø l hng tràm
hng ngn tháûm chê l hng trióỷu kờ hióỷu khaùc nhau. óứ giaới quyóỳt
tỗnh huọỳng naỡy ta tảo ra mäüt bng alphabet cạc kê hiãûu âáưu vo cọ
âäü låïn khäng giåïi hản. Ta gi hm encode(C,s) âãø thỉûc hiãûn viãûc m
họa kê hiãûu s trong ngỉỵ cnh C. Hm ny tr vãư cåì l kê hiãûu escape
(m thoạt) nãúu kê hiãûu s khäng cọ trong ngỉỵ caớnh C hoỷc vỗ mọỹt lyù do
naỡo õoù maỡ kờ hiãûu s cọ xạc sút xút hiãûn bàịng 0. Trong trổồỡng hồỹp
naỡy thỗ caùc tổỡ õổồỹc maợ hoùa bũng caùch duỡng mọ hỗnh kờ tổỷ cho caùc kờ
tổỷ ồớ trong tỉì âọ v âáøy tỉì âọ vo bng chỉïa cạc tỉì. Tr vãư mäüt cåì âãø
chè âënh âãún kê hiãûu cọ xạc sút bàịng 0. Bäü m họa cng phi
chuøn mäüt m thoạt âãún bäü gii m âãø gi hm decode(C) vaỡ tổồng
tổỷ nhổ maợ hoùa thỗ bọỹ giaới maợ cng tr vãư mäüt cåì âãø loải trỉì tỉì ny
ra. Chênh âiãưu nay lm tàng thãm sỉû phiãưn toại våïi cạc váún âãư nhỉ xạc
sút s âỉåüc gạn lải cho m thoạt. Våïi cạc kê hiãûu cọ táưn säú bàịng 0
ta gi hm zero_frequency_problem() âãø biãún âäøi táưn säú ca nọ thnh 1.
Âãø tênh xạc sút thoạt ta gi t1 l cạc k cọ táưn säú bàịng 1 (tỉïc l xuáút
hiãûn 1 láön), kê hiãûu si xuáút hiãûn ci láön v t = ∑ici l täøng táưn säú ca
cạc kê hióỷu õaợ õổồỹc cỏỷp nhỏỷt trong quaù trỗnh maợ hoùa. Khi âọ xạc
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 20
sút thoạt l pescape âỉåüc tênh bàịng cäng thỉïc: pescape=
t1
xạc sút ca si
t
t c
l pi = 1− 1 . i .
t t
Âãø m họa cạc kê hiãûu khäng phaới laỡ mồùi laỷ thỗ phổồng phaùp naỡy
coù nhổồỹc õióứm l nọ cáưn âãún hai giai âoản âãø xỉí l. Giai âoản thỉï
nháút l bỉåïc chuøn thäng tin khäng cọ gỗ mồùi meợ õoù vaỡ bổồùc thổù hai laỡ
ci
, chờnh âiãưu ny gáy ra
t
sỉû báút låüi trong viãûc tênh toạn xạc sút thỉûc tãú cho viãûc dng cạc
chè âënh kê hiãûu khäng måïi âọ cọ xạc sút l
bỉåïc m họa riãng l. Tỉì u cáưu tênh lải pi âỉåüc giåïi hản båíi t âãún
mäüt vng giạ trë ráút nh ca noù vaỡ nóỳu traỡn quaù thỗ phaới huớy boớ. Do
õoù ta tênh pescape v pi theo phỉång ạn sau:
pescape =
pi =
t1 + 1
t + t1 + 1
ci
t + t1 + 1
ÅÍ âáy viãûc cäüng thãm 1 cho phẹp kê hiãûu âỉåüc biãøu diãùn lải ngay c
khi khäng cọ trỉåìng håüp l táưn säú bàịng 1 v t1 âỉåüc thãm vo trong
−1
1 − t1
máùu säú bàịng cạch láúy xáúp xè
.
t
Våïi phỉång phạp ny cạc bỉåïc m họa âån l l â, nhỉ t + t1 + 1cọ
thãø âỉåüc thỉûc hiãûn trong mäüt nỉỵa säú bit nhỉ máùu säú t 2 âỉåüc u cáưu
båíi phỉång phạp trãn. Tỉì sỉû dãù dng âọ, u cáưu t tỉång tỉû våïi âäü låïn
ca säú ngun låïn nháút m cọ thãø biãøu diãùn trong mäüt cå chãú tỉì. Cạc
thay âäøi khäng dng âãún xạc sút nh nhỉng táút c cạc phỉång phạp våïi
táưn säú 0 âãưu âỉåüc khạm phạ bàịng báút k cạch no v nọ mang lải
hiãûu qu nh.
.V.2.Qun l bäü nhåï
Sỉïc mảnh ca mäüt hãû thäúng nẹn l âỉa ra vaỡi cồ chóỳ õóứ tỗm ra
tọứng sọỳ bọỹ nhồù â dng trong khi m họa v gii m. Vê dủ, vi bäü
nẹn thu häưi danh sạch cạc khon âang dng êt nháút l cạch gii quút
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp
Kyợ
thuỏỷt
neùn
sọỳ
lióỷu
maợ
hoaù
Sọỳ
hoỹc
Trang 21
mồùi, do õoù cỏỳu truùc cuớa mọ hỗnh tióỳp tủc âỉåüc måí ra khi bäü nhåï âỉåüc
dng hãút. Mä hỗnh khaùc seợ õổồỹc gồợ boớ khi bọỹ nhồù õaợ âáưy, nhỉng giỉỵ
lải cỉía säø âãûm ca kê hiãûu hiãûn taỷi do õoù coù thóứ thay thóỳ bũng mọ
hỗnh nhoớ hån v cọ thãø âỉåüc xáy dỉûng lải láûp tỉïc. Trong thổỷc tóỳ thỗ
cồ chóỳ õaợ duỡng trong bỏỳt kỗ ỉïng dủng no s phủ thüc vo sỉû cáưn
thiãút ca ỉïng dủng âọ, âàûc biãût l täøng bäü nhåï â duỡng bũng cỏỳu
truùc cuớa mọ hỗnh. Giồùi haỷn bọỹ nhồù 1Mb l phong phụ v â âãø xỉí l
vàn bn våïi bäü tỉì vỉûng cọ khong 30.000 tỉì khạc nhau.
.VIM HỌA
.VI.1.Ngun tàõc m họa
M họa Säú hc khäng thay thãú cạc kê hiãûu âáưu vo bàịng cạc tỉì
m riãng biãût m thay thãú lưng k hiãûu âáưu vo bàịng mäüt tỉì m duy
nháút åí âáưu ra. Âáưu ra ca m họa Säú hc l mäüt säú låïn hån 0 v nh
hån 1. M họa Säú hc bàõt âáưu hoảt âäüng ca nọ bàịng viãûc phán chia
khong giỉỵa 0 v 1 dỉûa vo sỉû phán bäú xạc sút xút hiãûn ca kờ
hióỷu trong mọ hỗnh õaợ xỏy dổỷng. Khoaớng naỡy seợ âỉåüc tênh toạn lải sau
khi cọ mäüt kê hiãûu âỉåüc m họa.
.VI.2.Cáúu trục dỉỵ liãûu v gii thût
Bỉåïc m họa cå såí ca bäü m họa âỉåüc thỉûc hiãûn båíi
arithmetic_encode(l, h, t) trong âọ l v h láưn lỉåüt l mỉïc tháúp v mỉïc cao
ca biãún âãúm trỉåïc khi têch ly táưn säú trong ngỉỵ cnh ca cạc kê hiãûu
tỉång ỉïng, hm ny m họa 1 kê hiãûu gi sỉí ngáưm âënh l nọ xút
hiãûn h - l láưn trong täøng säú t láưn, v nọ chè âënh vng xạc sút l [ l/t,
h/t ]. Trảng thại näüi tải ca bäü m họa âỉåüc cho båíi 2 giạ trë l R v
L, trong âọ L l mỉïc tháúp hiãûn tải v R l vng ca âoản âang m họa,
v tải mọựi giai õoaỷn thỗ thọng õióỷp coù thóứ õổồỹc dióựn taớ bũng bỏỳt kỗ
giaù trở naỡo trong õoaỷn [ L, L+R ]. Quaù trỗnh xổớ lyù cuớa bọỹ maợ hoùa õổồỹc
minh hoỹa ồớ hỗnh 4. Giaù trở L vaỡ R âỉåüc thãø hiãûn thäng qua b bit., L âỉåüc
khåíi tảo l 0 v nọ cọ giạ trë nàịm giỉỵa 0 v 2 b - 2b - 2, R âỉåüc khåíi taûo
KHOA CNTT - ÂTVT
95T
Nguyãùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 22
l 2b - 1 v cọ giạ trë nàịm giỉỵa 2b - 2 + 1 v 2b - 1. Chụng täi cho ràịng 0 < l < h
< t v t l täøng táưn säú ca táút c cạc kê hiãûu khạc nhau âỉåüc chè âënh
trong ngỉỵ cnh, t phi tha mn âiãưu kiãûn t < 2f våïi f l säú bit â dng
âãø giỉỵ táưn säú ca kê hiãûu v cọ thãø khäng vỉåüt quạ giạ trë âiãưu khiãøn
båíi lỉûa chn ca b v kêch thỉåïc tỉì mạy âang dng.
Thût toạn m họa kê hiãûu thãø hiãûn åí hỗnh dổồùi.
ỏửu vaỡo laỡ caùc bióỳn thaỡnh phỏửn l, h, t.
Âáưu ra l cạc bit biãøu diãùn kê hiãûu âọ.
Arithmetic_encode(l,h,t)
{
1- Âà ût =
T
( R.l )
t
2- Âàût L = L + T
R.h
3- Âà ûtR =
−T
t
4- Trong khi R < 2b - 2 lm
{
Chøn họa lải R
Tênh laỷi L
ổa ra 1 bit
}
}
Hỗnh 4: Thuỏỷt toaùn maợ hoùa Säú hc
Hoảt âäüng cå såí ca bäü m họa, trong cạc bỉåïc 1,2 v 3 l lm
nh khong [ L, L + R ) thnh cạc khong nh hån âãø biãøu diãùn caïc kê
hiãûu måïi [ l / t, h / t ), mang lải mäüt vng måïi l [ L + R.l/t, L + R.h/t ].
Giạ trë ca L v R âỉc cáûp nháût âãø phn ạnh vng måïi ny. Vng
ny phi chøn họa lải thnh cạc giai âoản âãø ngàn cn nọ tråí thnh
cạc khong quạ nh âãø diãùn t âụng b bit ca giạ trë ny.
Âãø gim tọỳi õa sổỷ mỏỳt maùt hióỷu quaớ neùn bồới vỗ sỉû chia khäng
chênh xạc ca khäng gian m, R nãn âỉåüc giỉỵ åí giạ trë låïn nãúu cọ thãø v
trong hoảt âäüng hiãûn tải, nọ phi cọ âäü räüng täúi thiãøu cng nhỉ t.
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp
Kyợ
thuỏỷt
neùn
sọỳ
lióỷu
maợ
hoaù
Sọỳ
hoỹc
Trang 23
ióửu naỡy õổồỹc thổỷc hióỷn bũng caùch duy trỗ R trong khong 2 b-2 < R <
2b-1 trỉåïc mäùi bỉåïc m họa v khàóng âënh ràịng t ≤ 2f våïi f ≤ b -2. Âọ l R
phi âỉåüc chøn họa lải mäüt cạch âënh k våïi mäüt hồûc nhiãưu hồn
caùc bit ồớ õỏửu ra. Chi tióỳt cuớa quaù trỗnh xỉí lê ny ph håüp våïi sỉû
chøn họa lải ca L, R v chøn họa lải R l mäüt bỉåïc ca
arithmetic_encode() .
Trong thût toạn chøn họa lải R trong bäü m họa, khi L v L+R
âãưu ≤ 2b -1,bit 0 cọ thãø l âáưu ra v L, R nãn âiãưu chènh cho âụng. Tỉång
tỉû, kãút qu âáưu ra cọ thãø l bit 1 khi c 2 âãưu låïn hån 2b - 1. Khi R ≤ 2b -2
v c 2 trỉåìng håüp trãn khäng cháúp nháûn, khoaíng [L,L+R) phaíi thuäüc 2b
. Trong trổồỡng hồỹp thổù 3 thỗ bióỳn bit_outstanding õổồỹc tng, âáy l biãún
-1
lỉu giỉỵ táút c cạc bit biãøu diãùn kê hiãûu âỉåüc âãư cáûp âãún åí âáưu vo, do
âọ bit 0 hồûc bit 1 ca âáưu ra s âi theo sau båíi mäüt hồûc nhiãưu hån cạc
bit âäúi láûp våïi nọ. Hm bit_plus_follow( ) kiãøm tra vë trê cọ sỉû täưn tải
cạc bit ngỉåüc nhau ca cạc bit tải thåìi gian m nọ âỉåüc gi trãn âáưu ra
våïi mäüt bit khạc â biãút.
Táút c âáưu ra ny hoảt âäüng mang lải kãút qu trong R, do âọ sau
mäüt säú thao tạc ca âáưu ra R s âỉåüc åí lải trong vng, chøn bë cho
bỉåïc m họa tiãúp theo. Thỉûc váûy, m họa mäüt bit kê hiãûu ty theo
cạc tham säú l, h v t phi tỉû âäüng sinh ra (-log((h-l)/t)) bit hồûc -log((h-l)/
t) bit âỉåüc sinh ra trong vng làûp chøn họa lải.
Âáy l bỉåïc thỉï 4 trong thût toạn m họa.
{
Trong khi R < 2b - 2 lm
Nãúu L + R < 2b - 1 thỗ bis_plus_follow(0)
Khaùc
{
Nóỳu 2b - 1 < L thỗ
bis_plus_follow(1)
gaùn L = L - 2b -1
Khaïc gaïn bit_outstanding = bit_outstanding + 1
KHOA CNTT - ÂTVT
}
95T
L = L - 2b –2
Gaïn L = 2.L, R = 2.R
}
Nguyãùn Máûu Nghéa – Låïp
Kyợ
thuỏỷt
neùn
sọỳ
lióỷu
maợ
hoaù
Sọỳ
hoỹc
Trang 24
Hỗnh 5: Thuỏỷt toaùn chuỏứn hoùa laỷi cuớa bọỹ m họa Säú
hc
Hm bis_plus_follow(x): ghi bit x cọ giạ trë l 0 hay 1 vo dy bit âáưu
ra. Cäüng vo báút k mäüt bit tỉû do no vo sau cạc bit âọ nãúu biãút
âỉåüc ràịng nọ ngỉåüc nhau.
bis_plus_follow(x)
{
1
1- write_one_bit(x)
2
2- Trong khi bit_outstanding > 0 lm
write_one_bit(1 - x)
Gạn bit_outstanding = bit_outstanding -1
}
Bỏỳt kỗ thọng tin coỡn laỷi cuớa kờ hióỷu õổồỹc ghi lải båíi viãûc thay âäøi
trảng thại m họa, âỉåüc phn chiãúu trong giạ trë måïi ca L v R.
Thût toaùn chuỏứn hoùa laỷi õổồỹc thóứ hióỷn trong hỗnh 5 åí dỉåïi. Sỉû
chøn họa lải chênh l bỉåïc thỉï (4) trong thût toạn m họa åí trãn.
Sau mäùi kê hiãûu âỉåüc nháûn ra bäü m họa phi âiãưu chènh lải âäü
räüng vng. Do âọ våïi mäùi bit âỉåüc xỉí lê bàịng cạch di chuøn nọ ra
ngoi mỉïc kãút thục cao ca 0 v 1 bit måïi âỉåüc chuøn âãún trong mổùc
kóỳt thuùc thỏỳp.
.VIIGIAI MAẻ
.VII.1.Nguyón từc giaới maợ
Hoaỡn toaỡn ngổồỹc laỷi vồùi maợ hoùa thỗ giaới maợ dổỷa vaỡo tổỡ maợ v
cạc giạ trë L v R âãø xạc âënh v õổa ra caùc kờ hióỷu. óứ giaới maợ ta tỗm
kờ tổỷ õỏửu tión cuớa thọng õióỷp bũng caùch tỗm xem giạ trë ca tỉì m m
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp
K
thût
nẹn
säú
liãûu
m
hoạ
Säú
hc
Trang 25
bäü m họa gỉíi âãún l bao nhiãu v nàịm trong khong no v nọ tỉång
âỉång våïi kê hiãûu no v xút kê hiãûu âọ ra. Sau âọ ta tênh lải giạ trë tỉì
m cho kê hiãûu tiãúp theo dỉûa vo L v R.
Mäüt váún âãư âàût ra l lm thãú no âãø bäü gii m biãút âỉåüc â kãút
thục lưng âáưu vo. Åí âáy cọ 2 cạch âãø gii quút váún âãư ny l ta gỉíi
cho bäü gii m biãút âäü di ca thäng âiãûp hồûc mäüt kê hiãûu âàûc biãût
Arithmetic_decode(l, h, ì
âãø bạo cho bäü gii m biãút lat)â kãút thục thäng âiãûp.
{
.VII.2.Cáúu trục dỉỵ liãûu vl)gii thuáût
1- Âàût T = (R x /t
2- Âàût L = L + T
Thuỏỷt toaùn cuớa bọỹ giaới maợ nhổ hỗnh dỉåïi. Våïi V l cỉía säø hiãûn
3- Âàût R = ((R x h) /t) - T
tải måí räüng våïi b bit vo lưng bit â nẹn. ÅÍ âáy cọ 2 haìm laì
4- Trong khi R < 2b -2 laìm
decode_target(t) vaì arithmetic_decode(l,h ,t) tỉång âỉång våïi hai bỉåïc cå bn
{
âỉåüc u cáưu âãø gii m mäüt kê hiãûu. Qui âënh âáưu tiãn l giạ trë target
Chøn họa lải R
dỉûa trãn V v giạ trë ca t â dng trong m họa tỉång âỉång, nọ âạp
Thay âäøi cạc giạ trë ca L vaỡ V
ổùng cho quaù trỗnh tỗm kióỳm cỏỳu truùc dổợ liãûu v xạc âënh kê hiãûu s,
Dëch chuøn bit âáưu vaỡo kóỳ tióỳp vaỡo trong V
tỗm kờ hióỷu vồùi õióửu kiãûn l < target < h. Räưi gi hm arithmetic _decode(l,
}
h, t), noï khäng mang theo tè lãû liãn kãút v chuøn dëch dy bit, nọ giäúng
}
våïi kãút qu ca m họa.
Hm arithmetic_decode() thay âäøi giạ trë ca cạc biãún L v R âãø
phn ạnh sỉû thay âäøi tỉång âỉång trong bäü m họa trong khi gi hm
arithmetic_encode(). Hm decode_target() tr vãư giạ trë ngun target, 0 <
target < t âm bo ràịng target nàịm trongvng [l, h) tỉång âỉång våïi khi gi
arithmetic_encode().
Âáưu vo l cạc biãún thnh pháưn l, h, t.
Âáưu ra l cạc kê hiãûu tỉång ỉïng våïi cạc bit â m họa.
KHOA CNTT - ÂTVT
95T
Nguùn Máûu Nghéa – Låïp