SlideShare a Scribd company logo
1 of 9
Download to read offline
Data Compression
Gi i thi u
Giải thuật nén RLE
Giải thuật nén Huffman

Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

29

Giải thuật nén Huffman
Gi i thi u
Huffman tĩnh (Static Huffman)
Huffman đ ng (Adaptive Huffman)

Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

30

15
Giải thuật nén Huffman – Giới thiệu
Hình thành
V nđ :
M t gi i thu t nén b o toàn thông tin;
Không ph thu c vào tính ch t c a d li u;
ng d ng r ng rãi trên b t kỳ d li u nào, v i hi u su t t t

Tư tư ng chính:
Phương pháp cũ: dùng 1 dãy c đ nh (8 bits) đ bi u di n 1 ký t
Huffman:
S d ng vài bits đ bi u di n 1 ký t (g i là “mã bit” – bits code)
Đ dài “mã bit” cho các ký t không gi ng nhau:
Ký t xu t hi n nhi u l n
bi u di n b ng mã ng n;
Ký t xu t hi n ít
bi u di n b ng mã dài
Mã hóa b ng mã có đ dài thay đ i (Variable Length Encoding)

David Huffman – 1952: tìm ra phương pháp xác đ nh mã t i ưu
trên d li u tĩnh
Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

31

Giải thuật nén Huffman – Giới thiệu (tt)
Gi s có d li u như sau:
f = “ADDAABBCCBAAABBCCCBBBCDAADDEEAA”

Bi u di n bình thư ng (8 bits/ký t ):
Sizeof(f) = 10*8 + 8*8 + 6*8 + 5*8 + 2*8
= 248 bits
Ký t

S

l n xu t hi n
trong file f

A
B

8

C

6

D

5

E
Winter 2006

10

2

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

32

16
Giải thuật nén Huffman – Giới thiệu (tt)
Bi u di n b ng mã có đ dài thay đ i (theo
b ng):
Sizeof(f) = 10*2 + 8*2 + 6*2 + 5*3 + 2*3
= 69 bits
Ký t
A

Mã
11

B
C
D
E
Winter 2006

10
00
011
010

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

33

Static Huffman
Thu t toán nén
T o cây Huffman
Phát sinh b ng mã bit
Lưu tr thông tin dùng đ gi i nén
Thu t toán gi i nén

Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

34

17
Static Huffman (tt)
Thu t toán nén:
[b1] Duy t file
lo i ký t

L p b ng th ng kê s l n xu t hi n c a m i

[b2] Phát sinh cây Huffman d a vào b ng th ng kê
[b3] T cây Huffman
[b4] Duy t file

phát sinh b ng mã bit cho các ký t

Thay th các ký t b ng mã bit tương ng

[b5] Lưu l i thông tin c a cây Huffman dùng đ gi i nén

Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

35

Static Huffman (tt)
[b1]
f = “ADDAABBCCBAAABBCCCBBBCDAADDEEAA”

Ký
t

S

l n xu t
hi n

A

8

C

6

D

5

E

[b2]

10

B

2
Ký
t

Mã bit

A

11

B

10

C

00

D

011

E

010

[b3]

[b4]

fnén = 11011011111110100000101111111010000000
1010100001111110110110100101111
Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

36

18
Static Huffman (tt)
T o cây Huffman:
Mô t cây Huffman: mã Huffman đư c bi u di n b ng
1 cây nh phân
M i nút lá ch a 1 ký t
Nút cha s ch a các ký t
c a nh ng nút con
M i nút đư c gán m t tr ng
s :
Nút lá có tr ng s b ng s
l n xu t hi n c a ký t
trong file
Nút cha có tr ng s b ng
t ng tr ng s c a các nút
con

Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

37

Static Huffman (tt)
T o cây Huffman: (tt)
Tính ch t cây Huffman:
Nhánh trái tương ng v i mã hoá bit ‘0’; nhánh ph i tương
ng v i mã hoá bit ‘1’
Các nút có t n s th p n m xa g c
mã bit dài
Các nút có t n s cao n m g n g c
mã bit ng n
S nút c a cây: (2n-1)

Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

38

19
Static Huffman (tt)
// C u trúc d li u lưu tr
#define MAX_NODES 511

cây Huffman
// 2*256 - 1

typedef struct {
char
c;
long
nFreq;
int
nLeft;
int
nRight;
} HUFFNode;

ký t
tr ng s
cây con trái
cây con ph i

//
//
//
//

HUFFNode HuffTree[MAX_NODES];
Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

39

Static Huffman (tt)
T o cây Huffman: (tt)
Thu t toán phát sinh cây:
[b1] Ch n trong b ng th ng kê 2 ph n t x,y có tr ng s th p
t o thành nút cha z:
z.c = min(x.c + y.c);
z.nFreq = x.nFreq + y.nFreq;
z.nLeft = x (*)
z.nRight = y (*)
[b2] Lo i b nút x và y kh i b ng;
[b3] Thêm nút z vào b ng;
[b4] L p l i bư c [b1] - [b3] cho đ n khi ch còn l i 1 nút duy
nh t trong b ng

nh t

(*) Qui ư c:
- nút có tr ng s nh n m bên nhánh trái; nút có tr ng s l n n m bên nhánh ph i;
- n u tr ng s b ng nhau, nút có ký t nh n m bên nhánh trái; nút có ký t l n n m
bên nhánh ph i
- n u có các node có tr ng s b ng nhau
ưu tiên x lý các node có ký t ASCII
nh trư c

Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

40

20
Static Huffman (tt)
Ký
t

SLXH
10

Ký
t

SLXH

A
B

8

A

10

C

6

B

8

D

5

ED

7

E

2

C

6

Ký
t

SLXH

CED

13

Ký
t

SLXH

BA

18

A

10

13

B

8

CED

Minh h a quá trình t o cây
Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

41

Static Huffman (tt)

Cây Huffman sau khi t o
Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

42

21
Static Huffman (tt)
Phát sinh mã bit cho các ký t :
Mã c a m i ký t đư c t o b ng cách duy t t nút g c đ n nút
lá ch a ký t đó;
Khi duy t sang trái, t o ra 1 bit 0;
Khi duy t sang ph i, t o ra 1 bit 1;

Ký
t
A

11

B

10

C

00

D

011

E
Winter 2006

Mã

010

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

43

Static Huffman (tt)
Lưu tr thông tin dùng đ gi i nén:
P.Pháp 1: lưu b ng mã bit

P.Pháp 2: lưu s l n xu t hi n

Ký
t

Ký
t

A

11

A

10

B

10

B

8

C

00

C

6

D

011

D

5

E

Winter 2006

Mã

010

E

2

S

l n xu t
hi n

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

44

22
Static Huffman (tt)
Thu t toán gi i nén:
[b1] Xây d ng l i cây Huffman (t thông tin đư c lưu)
[b2] Kh i t o nút hi n hành pCurr = pRoot
[b3] Đ c 1 bit b t file nén fn
[b4] N u (b==0) thì pCurr = pCurr.nLeft
ngư c l i pCurr = pCurr.nRight
[b5] N u pCurr là nút lá thì:
- Xu t ký t t i pCurr ra file
- Quay l i bư c [b2]
ngư c l i
- Quay l i bư c [b3]
[b6] Thu t toán s d ng khi h t file fn
Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

45

Static Huffman (tt)

Cây Huffman và qui trình gi i nén cho chu i đư c mã hoá “1000110”

Winter 2006

Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM

46

23

More Related Content

Similar to Thuat nen huffman_3272

Hệ điều hành (chương 3)
Hệ điều hành (chương 3)Hệ điều hành (chương 3)
Hệ điều hành (chương 3)realpotter
 
TIN HOC 10 BAI 2 THONG TIN VA DU LIEU
TIN HOC 10 BAI 2 THONG TIN VA DU LIEUTIN HOC 10 BAI 2 THONG TIN VA DU LIEU
TIN HOC 10 BAI 2 THONG TIN VA DU LIEUAccson Joneki
 
Tim hieu thanh ghi in asm
Tim hieu thanh ghi in asmTim hieu thanh ghi in asm
Tim hieu thanh ghi in asmMy Đá
 
Chuong10
Chuong10Chuong10
Chuong10na
 
Nmlt C03 Cac Kieu Du Lieu Co So
Nmlt C03 Cac Kieu Du Lieu Co SoNmlt C03 Cac Kieu Du Lieu Co So
Nmlt C03 Cac Kieu Du Lieu Co SoCuong
 
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaĐề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaViết thuê trọn gói ZALO 0934573149
 
Tin 10 - Bài 2: Thông tin và dữ liệu
Tin 10 - Bài 2: Thông tin và dữ liệuTin 10 - Bài 2: Thông tin và dữ liệu
Tin 10 - Bài 2: Thông tin và dữ liệuHoàng Hiệp Lại
 
Tnkts p2
Tnkts p2Tnkts p2
Tnkts p2Huy Ryx
 
Tnkts de1
Tnkts de1Tnkts de1
Tnkts de1Huy Ryx
 
Baitap vxl
Baitap vxlBaitap vxl
Baitap vxlkhanh449
 
Microprocessor final ver1_part2
Microprocessor final ver1_part2Microprocessor final ver1_part2
Microprocessor final ver1_part2Mit Rin
 
Lớp 10: Bai2 thong tinvadulieu1
Lớp 10: Bai2 thong tinvadulieu1Lớp 10: Bai2 thong tinvadulieu1
Lớp 10: Bai2 thong tinvadulieu1Heo_Con049
 

Similar to Thuat nen huffman_3272 (20)

Hệ điều hành (chương 3)
Hệ điều hành (chương 3)Hệ điều hành (chương 3)
Hệ điều hành (chương 3)
 
slide 8051
slide 8051 slide 8051
slide 8051
 
Bai 2-t tva-dl-k10
Bai 2-t tva-dl-k10Bai 2-t tva-dl-k10
Bai 2-t tva-dl-k10
 
Phan1 chuong1
Phan1 chuong1Phan1 chuong1
Phan1 chuong1
 
TIN HOC 10 BAI 2 THONG TIN VA DU LIEU
TIN HOC 10 BAI 2 THONG TIN VA DU LIEUTIN HOC 10 BAI 2 THONG TIN VA DU LIEU
TIN HOC 10 BAI 2 THONG TIN VA DU LIEU
 
Bai 2 thong tin va du lieu
Bai 2 thong tin va du lieuBai 2 thong tin va du lieu
Bai 2 thong tin va du lieu
 
Tim hieu thanh ghi in asm
Tim hieu thanh ghi in asmTim hieu thanh ghi in asm
Tim hieu thanh ghi in asm
 
Chuong10
Chuong10Chuong10
Chuong10
 
Nmlt C03 Cac Kieu Du Lieu Co So
Nmlt C03 Cac Kieu Du Lieu Co SoNmlt C03 Cac Kieu Du Lieu Co So
Nmlt C03 Cac Kieu Du Lieu Co So
 
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaĐề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
 
Tin 10 - Bài 2: Thông tin và dữ liệu
Tin 10 - Bài 2: Thông tin và dữ liệuTin 10 - Bài 2: Thông tin và dữ liệu
Tin 10 - Bài 2: Thông tin và dữ liệu
 
Tnkts p2
Tnkts p2Tnkts p2
Tnkts p2
 
Tnkts de1
Tnkts de1Tnkts de1
Tnkts de1
 
Bai2_TIN10
Bai2_TIN10Bai2_TIN10
Bai2_TIN10
 
Bao cao full
Bao cao fullBao cao full
Bao cao full
 
1616 bai tap_vxl
1616 bai tap_vxl1616 bai tap_vxl
1616 bai tap_vxl
 
1616 bai tap_vxl
1616 bai tap_vxl1616 bai tap_vxl
1616 bai tap_vxl
 
Baitap vxl
Baitap vxlBaitap vxl
Baitap vxl
 
Microprocessor final ver1_part2
Microprocessor final ver1_part2Microprocessor final ver1_part2
Microprocessor final ver1_part2
 
Lớp 10: Bai2 thong tinvadulieu1
Lớp 10: Bai2 thong tinvadulieu1Lớp 10: Bai2 thong tinvadulieu1
Lớp 10: Bai2 thong tinvadulieu1
 

Recently uploaded

Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNguyễn Đăng Quang
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 

Recently uploaded (20)

Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 

Thuat nen huffman_3272

  • 1. Data Compression Gi i thi u Giải thuật nén RLE Giải thuật nén Huffman Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 29 Giải thuật nén Huffman Gi i thi u Huffman tĩnh (Static Huffman) Huffman đ ng (Adaptive Huffman) Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 30 15
  • 2. Giải thuật nén Huffman – Giới thiệu Hình thành V nđ : M t gi i thu t nén b o toàn thông tin; Không ph thu c vào tính ch t c a d li u; ng d ng r ng rãi trên b t kỳ d li u nào, v i hi u su t t t Tư tư ng chính: Phương pháp cũ: dùng 1 dãy c đ nh (8 bits) đ bi u di n 1 ký t Huffman: S d ng vài bits đ bi u di n 1 ký t (g i là “mã bit” – bits code) Đ dài “mã bit” cho các ký t không gi ng nhau: Ký t xu t hi n nhi u l n bi u di n b ng mã ng n; Ký t xu t hi n ít bi u di n b ng mã dài Mã hóa b ng mã có đ dài thay đ i (Variable Length Encoding) David Huffman – 1952: tìm ra phương pháp xác đ nh mã t i ưu trên d li u tĩnh Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 31 Giải thuật nén Huffman – Giới thiệu (tt) Gi s có d li u như sau: f = “ADDAABBCCBAAABBCCCBBBCDAADDEEAA” Bi u di n bình thư ng (8 bits/ký t ): Sizeof(f) = 10*8 + 8*8 + 6*8 + 5*8 + 2*8 = 248 bits Ký t S l n xu t hi n trong file f A B 8 C 6 D 5 E Winter 2006 10 2 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 32 16
  • 3. Giải thuật nén Huffman – Giới thiệu (tt) Bi u di n b ng mã có đ dài thay đ i (theo b ng): Sizeof(f) = 10*2 + 8*2 + 6*2 + 5*3 + 2*3 = 69 bits Ký t A Mã 11 B C D E Winter 2006 10 00 011 010 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 33 Static Huffman Thu t toán nén T o cây Huffman Phát sinh b ng mã bit Lưu tr thông tin dùng đ gi i nén Thu t toán gi i nén Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 34 17
  • 4. Static Huffman (tt) Thu t toán nén: [b1] Duy t file lo i ký t L p b ng th ng kê s l n xu t hi n c a m i [b2] Phát sinh cây Huffman d a vào b ng th ng kê [b3] T cây Huffman [b4] Duy t file phát sinh b ng mã bit cho các ký t Thay th các ký t b ng mã bit tương ng [b5] Lưu l i thông tin c a cây Huffman dùng đ gi i nén Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 35 Static Huffman (tt) [b1] f = “ADDAABBCCBAAABBCCCBBBCDAADDEEAA” Ký t S l n xu t hi n A 8 C 6 D 5 E [b2] 10 B 2 Ký t Mã bit A 11 B 10 C 00 D 011 E 010 [b3] [b4] fnén = 11011011111110100000101111111010000000 1010100001111110110110100101111 Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 36 18
  • 5. Static Huffman (tt) T o cây Huffman: Mô t cây Huffman: mã Huffman đư c bi u di n b ng 1 cây nh phân M i nút lá ch a 1 ký t Nút cha s ch a các ký t c a nh ng nút con M i nút đư c gán m t tr ng s : Nút lá có tr ng s b ng s l n xu t hi n c a ký t trong file Nút cha có tr ng s b ng t ng tr ng s c a các nút con Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 37 Static Huffman (tt) T o cây Huffman: (tt) Tính ch t cây Huffman: Nhánh trái tương ng v i mã hoá bit ‘0’; nhánh ph i tương ng v i mã hoá bit ‘1’ Các nút có t n s th p n m xa g c mã bit dài Các nút có t n s cao n m g n g c mã bit ng n S nút c a cây: (2n-1) Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 38 19
  • 6. Static Huffman (tt) // C u trúc d li u lưu tr #define MAX_NODES 511 cây Huffman // 2*256 - 1 typedef struct { char c; long nFreq; int nLeft; int nRight; } HUFFNode; ký t tr ng s cây con trái cây con ph i // // // // HUFFNode HuffTree[MAX_NODES]; Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 39 Static Huffman (tt) T o cây Huffman: (tt) Thu t toán phát sinh cây: [b1] Ch n trong b ng th ng kê 2 ph n t x,y có tr ng s th p t o thành nút cha z: z.c = min(x.c + y.c); z.nFreq = x.nFreq + y.nFreq; z.nLeft = x (*) z.nRight = y (*) [b2] Lo i b nút x và y kh i b ng; [b3] Thêm nút z vào b ng; [b4] L p l i bư c [b1] - [b3] cho đ n khi ch còn l i 1 nút duy nh t trong b ng nh t (*) Qui ư c: - nút có tr ng s nh n m bên nhánh trái; nút có tr ng s l n n m bên nhánh ph i; - n u tr ng s b ng nhau, nút có ký t nh n m bên nhánh trái; nút có ký t l n n m bên nhánh ph i - n u có các node có tr ng s b ng nhau ưu tiên x lý các node có ký t ASCII nh trư c Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 40 20
  • 7. Static Huffman (tt) Ký t SLXH 10 Ký t SLXH A B 8 A 10 C 6 B 8 D 5 ED 7 E 2 C 6 Ký t SLXH CED 13 Ký t SLXH BA 18 A 10 13 B 8 CED Minh h a quá trình t o cây Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 41 Static Huffman (tt) Cây Huffman sau khi t o Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 42 21
  • 8. Static Huffman (tt) Phát sinh mã bit cho các ký t : Mã c a m i ký t đư c t o b ng cách duy t t nút g c đ n nút lá ch a ký t đó; Khi duy t sang trái, t o ra 1 bit 0; Khi duy t sang ph i, t o ra 1 bit 1; Ký t A 11 B 10 C 00 D 011 E Winter 2006 Mã 010 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 43 Static Huffman (tt) Lưu tr thông tin dùng đ gi i nén: P.Pháp 1: lưu b ng mã bit P.Pháp 2: lưu s l n xu t hi n Ký t Ký t A 11 A 10 B 10 B 8 C 00 C 6 D 011 D 5 E Winter 2006 Mã 010 E 2 S l n xu t hi n Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 44 22
  • 9. Static Huffman (tt) Thu t toán gi i nén: [b1] Xây d ng l i cây Huffman (t thông tin đư c lưu) [b2] Kh i t o nút hi n hành pCurr = pRoot [b3] Đ c 1 bit b t file nén fn [b4] N u (b==0) thì pCurr = pCurr.nLeft ngư c l i pCurr = pCurr.nRight [b5] N u pCurr là nút lá thì: - Xu t ký t t i pCurr ra file - Quay l i bư c [b2] ngư c l i - Quay l i bư c [b3] [b6] Thu t toán s d ng khi h t file fn Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 45 Static Huffman (tt) Cây Huffman và qui trình gi i nén cho chu i đư c mã hoá “1000110” Winter 2006 Data Structure & Algorithm - Data Compression - Nguyen Tri Tuan, DH.KHTN Tp.HCM 46 23