Tải bản đầy đủ (.doc) (80 trang)

Kỹ thuật nén số liệu mã hóa Số học

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (506.24 KB, 80 trang )

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


Í Â Á Ư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


×