Tải bản đầy đủ (.pptx) (22 trang)

Tìm hiểu về thuật toán Arithmetic coding

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 (818.81 KB, 22 trang )

Arithmetic
Coding
HOÀNG VĂN HÙNG - 18520794
NGUYỄN ANH KHOA - 18520922
NGUYỄN HUỲNH NHI - 18521204


1. Tổng quan về Arithmetic

Arithmetic coding (AC) là thuật toán nén dữ liệu dựa trên lý thuyết thông tin. Nó cho phép chúng ta lưu trữ
thông tin với số lượng bits tối thiểu. Claude Shannon chỉ ra rằng không thể nào lưu trữ thông tin với số bits nhỏ
hơn entropy của thông tin này. AC cho phép chúng ta tiến tới gần giới hạn entropy này với khoảng cách 2 bits.

2


2. Cải thiện so với Huffman

Arithmetic coding vượt trội về hầu hết các khía cạnh so với phương pháp Huffman. Hiệu suất của AC tối ưu hơn mà không
cần phải chặn dữ liệu đầu vào. Nó khuyến khích sự tách biệt rõ ràng giữa mơ hình đại diện cho dữ liệu và mã hóa thơng tin
liên quan đến mơ hình đó. Nó đáp ứng các mơ hình thích nghi dễ dàng và hiệu quả tính tốn.

3


3. Mục tiêu

Mục tiêu của phương pháp là tìm ra một khoảng duy nhất thể hiện một chuỗi ký tự có độ dài cố định, tiếp theo cần chọn trong
khoảng này một số thập phân thích hợp, và coi đấy là mã biểu diễn cho chuỗi ký tự trên. Quá trình mã hóa được khởi tạo với
khoảng ban đầu là [0, 1).
Arithmetic Coding thường có tỷ lệ nén tốt hơn phương pháp Huffman, vì nó tạo ra một mã hiệu duy nhất biểu diễn cho cả


chuỗi ký tự thay vì một mã riêng biệt cho từng ký tự.

4


4. Chi tiết thuật toán mã hoá và ví dụ
Đầu vào của q trình giải mã là một chuỗi kí tự, và đầu ra là một phân số thập phân
Bài toán : Nén chuỗi “BACA” với xác suất xuất hiện PA = 0.5, PB = 0.25 và PC = 0.25

BACA

???

5


Bước 1 :
 

1.0
C
0.75
B
0.5
A

0

6



Bước 2 :
D = 0.75 – 0.5 = 0.25
Range(Kí tự) = Giá trị đáy

1.0

Giá trị đáy + D x (P(Kí tự))

0.75

C

C
0.75

B

0.6875
B

0.5
A

0

0.625
A

0.5


7


Bước 3 :
D = 0.625 – 0.5 = 0.125

Range(Kí tự) = Giá trị đáy

1.0

Giá trị đáy + D x (P(Kí tự))

0.625

0.75

C

C

C
0.75

B

B

B
0.5

A

0

0.59375

0.6875

0.5625

0.625
A

0.5

A

0.5

8


Bước 4 :

1.0
C
0.75

0


B

B

0.5

0.5

0.609375

0.5625

0.625
A

0.6171875

0.59375

0.6875
B

A

C

C

C


B

0.625

0.625

0.75

A

0.5

A

0.59375

9


Bước 5 :
Dựa theo số lượng và các số liệu của khoảng cuối để chuyển thành dạng mã hoá

1.0
C
0.75

0

B


B

0.5

0.5

0.609375

0.5625

0.625
A

0.6171875

0.59375

0.6875
B

A

C

C

C

B


0.625

0.625

0.75

A

0.5

A

0.59375

10


Kết quả

 

BACA

11


5. Chi tiết thuật toán giải mã và ví dụ
Đầu vào của quá trình giải mã là một số thập phân và các xác suất của ký tự đầu vào, đầu ra là một chuỗi kí tự
Bài tốn : Giải nén mã tín hiệu 0.609375 với PA = 0.5, PB = 0.25 và PC = 0.25


0.609375

???

12


Bước 1 :
Chia khoảng [0,1) thành các khoảng phụ với xác suất xuất hiện của các kí tự đầu vào
Xét tín hiệu 0.609375 thuộc khoảng B.

1.0
C
0.75
B
0.5
A

0

13


Bước 2 :
Xét tín hiệu 0.609375 thuộc khoảng A .

1.0

0.75
D(B) = 0.75 – 0.5 = 0.25.


C

C
0.75

B

0.6875

Khoảng của “A” = 0.5 -> 0.5 + 0.25*0.5 = 0.5 -> 0.625

0.625

Khoảng của “B” = 0.625 -> 0.625 + 0.25*0.25 = 0.625 -> 0.6875

B
0.5
A

0

A

Khoảng của “C” = 0.6875 -> 0.6875 + 0.25*0.25 = 0.6875 -> 0.75

0.5

14



Bước 3 :
Xét tín hiệu 0.609375 thuộc khoảng C.

1.0

0.625

0.75

C

C

C
0.75

B

B

B
0.5
A

0

0.59375

0.6875


0.5625

0.625
A

0.5

A

0.5

15


Bước 4 :
Xét tín hiệu 0.609375 thuộc khoảng A.

1.0
C
0.75

0

B

B

0.5


0.5

0.609375

0.5625

0.625
A

0.6171875

0.59375

0.6875
B

A

C

C

C

B

0.625

0.625


0.75

A

0.5

A

0.59375

16


4. Chi tiết thuật toán giải mã và ví dụ

0.609375

BACA

17


Số liệu so sánh

18


Số liệu so sánh

19



5. Ưu, nhược điểm
+ Ưu điểm:
- Là giải thuật nén khơng mất mát.
- Thường có hệ số nén tốt hơn so với các giải thuật nén entropy khác.
+ Nhược điểm:
- Cài đặt phức tạp hơn các giải thuật entropy khác.
- Dễ bị lỗi trong q trình giải mã nếu tín hiệu mã hóa truyền vào bị sai lệch.
- Tồn tại nhiều bằng sáng chế về arithmetic coding nên việc sử dụng thuật tốn có thể bị tính phí bản quyền.

20


6. Tài liệu tham khảo
1.
2.

Nén dữ liệu sử dụng phương pháp mã hóa số học – Hà Diệu Thúy – Đại học Thái Nguyên – Trường đại học CNTT & Truyền thông - 2013.
Arithmetic Coding- A Reliable Implementation - Lakshmi Sasilal - Dr. V. K. Govindan - International Journal of Computer Applications - Volume 73– No.7,
July 2013.

21


Thank you




×