II. ỹ thuật nén ảnh JPE
3. Phương pháp nén ảnh JPEG không tổn hao(JPEG Lossless)
3.2.3. Phương pháp mã hóa Lemple – Ziv
Giải thuật nén Lemple-ziv xây dựng một từ điển lưu các mẫu có tần suất xuất hiện cao trong ảnh. Từ điển là tập hợp những cặp (từ vựng và nghĩa của từ vựng). Trong đó từ vựng sẽ là các từ mã được sắp xếp theo thứ tự nhất định. Nghĩa là một chuỗi con trong dữ liệu ảnh. Từ điển được xây dựng song song với quá trình đọc dữ liệu. Sự xuất hiện của chuỗi con trong từ điển khẳng định rằng chuỗi đó đã từng xuất hiện trong phần dữ liệu đã được đọc qua. Thuật toán liên tục tra cứu và sau mỗi lần đọc một ký tự ở dữ liệu đầu vào thì tiến hành cập nhật lại từ điển.
Do giới hạn của bộ nhớ và để đảm bảo tốc độ tìm kiếm nhanh, từ điển chỉ giới hạn 4096 phần tử dùng để lưu trữ giá trị của các từ mã. Như vậy độ dài lớn nhất của từ mã là 12 bit (4096 = 2 12). Cấu trúc từ điển như sau:
33
256 từ mã đầu tiên theo thứ tự từ 0 …255 chứa các số nguyên từ 0 …255. Đây là mã của 256 kí tự cơ bản trong bảng mã ASCII.
Từ mã thứ 256 chứa một mã đặc biệt là mã xóa (CC – Clear Code). Khi số mẫu lặp lớn hơn 4096 thì người ta sẽ coi ảnh gồm nhiều mảnh ảnh và từ điển sẽ gồm nhiều từ điển con. Khi hết một mảnh ảnh sẽ gửi một mã xóa CC để báo hiệu kết thúc mảnh ảnh cũ và bắt đầu mảnh ảnh mới đồng thời sẽ khởi tạo lại từ điển.
Từ mã thứ 257 chứa mã kết thúc thông tin (EOI – End of Information). Thông thường một file ảnh có thể chứa nhiều mảnh ảnh, mỗi mảnh ảnh này sẽ được mã hóa riêng. Chương trình giải mã sẽ lặp đi lặp lại thao tác giải mã từng ảnh cho đến khi gặp mã kết thúc thông tin thì dừng lại. Các từ mã còn lại (từ 258 đến 4095) chứa các mẫu thường lặp lại trong ảnh, 512 phần tử đầu tiên của từ điển biểu diễn bằng 9 bit. Các từ mã từ 512 đến 1023 biểu diễn bởi 10 bit, từ 1024 đến 2047 biểu diễn 11 bit và từ 2048 đến 4095 biểu diễn bởi 12 bit.