XÂY DỰNG MÔ HÌNH
.IIMÔ H NHÌ B CẬ CAO
Trong ca hai tr ng h üp mã hoá va gia i mã, ng î ca nh C đ üc kh ií ườ ơ ì í ư í ươ ở tạo đ ch ïa đ ûng các kí t û có giá trị c üng th m kí hi ûu m r üng laể ư ư ư ô ê ê ở ô ì end_of_message.
Hình 11: Thuật toán mã hóa file dùng mô hình kí tự bậc không
.II
.IIMMÔ HÌNH BẬC CAOÔ HÌNH BẬC CAO
Ph n tr n s dụng các m hình b ûc kh ng đ nén d î li ûu. N uầ ê ử ô â ô ể ư ê ế chúng ta chuy n đ n b ûc cao h n thì sẽ đạt đ üc hi ûu qua nén t tể ế â ơ ươ ê í ố h n. Khi s dụng m hình b ûc cao thì nó đo i ho i nhi u ng î ca nh h nơ ử ô â ì í ề ư í ơ do đó th i gian l u h n. V ïi m hình b ûc m üt c n t i đa la 256 ng î ca nh,ờ â ơ ơ ô â ô ầ ố ì ư í m hình b ûc hai c n t i đa 256*256 (65536) ng î ca nh va m hình b ûcô â ầ ố ư í ì ô â ba c n có t i đa khoa ng m i sáu tri ûu (256ầ ố í ườ ê ∗256∗256) ba ng ng î ca nhí ư í
decode_file( ) {
1- ặt C = creatĐ _context( )
Install_symbol(C, end_of_message) 2 - Trong khi c != end_of_message la mì install_symbol(C, c) 3- start_encode() 4- Lặp ặt c = decode(C)Đ N u c = endế _of_message thì break Khác
write_one_character(c) 5- finish_encode( )
đ la m vi ûc. Chúng ta sẽ pha i đọc va o m üt l üng văn ba n l ïn tr ïcể ì ê í ì ô ươ í ơ ươ khi các ng î ca nh na y th ng k đu đ bă t đ u nén d î li ûu, va r tư í ì ố ê í ể õ ầ ư ê ì ấ nhi u ba n cu a các ng î ca nh na y sẽ kh ng bao gi đ üc s dụng h tề í í ư í ì ô ờ ươ ử ế g y lãng phí b ü nh ï cu a máy tính. Ví dụ m üt khi nén văn ba n ti ngâ ô ơ í ô í ế Anh ch ng trình kh ng c n pha i c p kh ng gian cho ba ng ươ ô ầ í ấ ô í QQW b i vì nóở sẽ kh ng bao gi xu t hi ûn.ô ờ ấ ê
gia i quy t v n đ na y ta thi t l ûp xác su t kh i tạo cu a t t
Để í ế ấ ề ì ế â ấ ở í ấ
ca các ký hi ûu đ n kh ng cho ng î ca nh đ a ra va quay v ng î ca nhí ê ế ô ư í ư ì ề ư í khác khi kh ng nhìn th y ký hi ûu xu t hi ûn phía tr ïc. La m th na oô ấ ê ấ ê ươ ì ế ì chúng ta s dụng ng î ca nh quay v sau khi phát đi m üt mã thoát ? ử ư í ề ô Ở đ y chúng ta tra v m üt ng î ca nh ng m định gọi la ng î ca nh thoát.â í ề ô ư í ầ ì ư í Ng î ca nh thoát kh ng bao gi đ üc c ûp nh ût, đi u na y có nghĩa ră ngư í ô ờ ươ â â ề ì ò s dụng nó th ng th ng sẽ kh ng cung c p b t ky s û nén na o.ử ô ườ ô ấ ấ ì ư ì
Trong m hình b ûc cao nh t, có m üt cách t t h n chỉ quay tr vô â ấ ô ố ơ ở ề ng î ca nh ng m định m üt cách t û đ üng. N u m üt ng î ca nh đang t nư í ầ ô ư ô ế ô ư í ồ tại kh ng th mã hóa ký hi ûu, quay v ng î ca nh b ûc nho h n ti pô ể ê ề ư í â í ơ ế theo. Ví dụ n u ng î ca nh đang t n tại la ế ư í ồ ìREQ, va ìU c n đ üc mã hóaầ ươ cho l n đ u, m üt mã thoát sẽ đ üc sinh ra. Ti p theo, chúng ta hạầ ầ ô ươ ế xu ng m hình b ûc hai đ c gă ng mã hóa ký t û ố ô â ể ố õ ư U s dụng ng îử ư ca nh í EQ. Nó ti p tục gia m xu ng cho đ n ng î ca nh b ûc 0, n u mãế í ố ế ư í â ế thoát v ùn đ üc sinh ra b ûc 0 chúng ta quay v m üt ng î ca nh đặcâ ươ ở â ề ô ư í bi ût b ûc -1 ma ng î ca nh kh ng bao gi đ üc c ûp nh ût va thi t l ûpê â ì ư í ô ờ ươ â â ì ế â cho s û kh i tạo đ có m üt b ü đ m cho mọi ký t û có th . Vì v ûy nóư ở ể ô ô ế ư ể â đ üc ba o đa m đ mã hóa mọi ký hi ûu.ươ í í ể ê
tr n ta có nói đ n mã thoát, v ûy mã thoát la gì? Mã thoát la
Ở ê ế â ì ì
m üt ký hi ûu đặt bi ût (ô ê ê giống như END_OF_MESSAGE) mã na y chỉ ra choì ch ng trình bi t c n thoát kho i ng î ca nh hi ûn th i. Khi m üt ng îươ ế ầ í ư í ê ờ ô ư ca nh phát ra m üt ký hi ûu thoát, nó th ng quay v ng î ca nh b ûcí ô ê ườ ề ư í â th p h n, nó có th quay v ng î ca nh thoát, m üt ng î ca nh ma kh ngấ ơ ể ề ư í ô ư í ì ô bao gi đ üc c ûp nh ût. Ng î ca nh na y ch ïa 257 ký hi ûu, m ùi ký hi ûuờ ươ â â ư í ì ư ê ô ê na y có s đ m bă ng m üt. Vi ûc na y ba o đa m b t ky ký t û na o bă tì ố ế ò ô ê ì í í ấ ì ư ì õ gặp trong th ng đi ûp đ u có th đ üc mã hóa b i vi ûc xu t ra m üt mãô ê ề ể ươ ở ê ấ ô
KHOA CNTT - TVTĐ Nguyễn Mậu Nghĩa – Lớp
thoát ng î ca nh hi ûn th i va bă ng cách mã hoá ký hi ûu s dụng ng îư í ê ờ ì ò ê ử ư ca nh thoát.í
Ví dụ c n mã hóa cho ký hi ûu ầ ê u la m üt ký hi ûu m ïi. Nh đã gi ïiì ô ê ơ ư ơ thi ûu khi s dụng mã thoát nó tạo m üt s û khác nhau l ïn. Ví dụ đê ử ô ư ơ ể mã hoá ký hi ûu ê u đ u ti n l y 8 bit đ mã hóa. Mã thoát kh ng l y bitầ ê ấ ể ô ấ na o đ mã hóa va trong ng î ca nh thoát ì ể ì ư í u có xác su t 1/257. Sau đó ấ u
đ üc th m va o ba ng va cho s đ m bă ng m üt. L n xu t hi ûn ti p theoươ ê ì í ì ố ế ò ô ầ ấ ê ế cu a í u sẽ y u c u chỉ m üt bit đ mã hóa, khi đó nó có xác su t 1/2. Khiê ầ ô ể ấ
u đã xu t hi ûn 16 l n, trong khi m hình tr ïc v ùn l y 4 bit đ mã hóaấ ê ầ ô ươ â ấ ể nó, m hình đi u khi n thoát sẽ l y 0.06 bit.ô ề ể ấ
Mã thoát gia i phóng ch ng trình kho i gánh nặng các m hìnhí ươ í ô cu a các ký t û ma các ký t û na y kh ng bao gi xu t hi ûn. i u na yí ư ì ư ì ô ờ ấ ê Đ ề ì cho phép m hình đi u chỉnh t c đ ü đ thay đ i xác su t va nhanhô ề ố ô ể ổ ấ ì chóng gia m s bit c n đ mã hóa các ký hi ûu có xác su t cao.í ố ầ ể ê ấ
B ü mã hóa x lý cho s û ca i đặt ri ng na y cu a m üt m hìnhô ử ư ì ê ì í ô ô nhi u b ûc y u c u chỉ m üt va i thay đ i cu a ch ng trình tr ïc. Nóề â ê ầ ô ì ổ í ươ ươ pha i ki m tra m üt ký hi ûu bi u di ùn trong ng î ca nh đ a ra. N uí ể ô ê ể ê ư í ư ế kh ng, mã thoát đ üc mã hóa thay th . ô ươ ế
CHƯƠNG V