Tải bản đầy đủ (.pdf) (86 trang)

Nghiên cứu về phương pháp trong phân mảnh Fractal Image Coding áp dụng cho kỹ thuật nén ảnh

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 (2.41 MB, 86 trang )

`
i
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG

ĐỒ ÁN
Đề tài:
Nghiên cứu về phương pháp trong phân mảnh
Fractal Image Coding áp dụng cho kỹ thuật nén
ảnh
Sinh viên thực hiện: Trần Bảo Nam
Lớp: ĐTVT-KSTN-K54
Giảng viên hướng dẫn: PGS.TS.NGUYỄN TIẾN DŨNG
Hà Nội, 6-2014
`

ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC

`
iii
BỘ GI ÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HÔI CHỦ NGHĨ A VI ỆT NAM
T R Ư Ờ N G Đ Ạ I H Ọ C B Á C H K H O A H À N Ộ I
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ ĐỒ ÁN TỐT NG HIỆP
Họ và tên sinh viên: .…………….………….…… Số hiệu sinh viên:
……………… Khoá:…………………….Viện: Điện tử - Viễn thông Ngành:
……………….
1. Đầu đề đồ án:


……………………………………………… ………………………………………………………………………
…………………………………………………………………………………………………………… ………
2. Các số liệu và dữ liệu ban đầu:
…………………………………… …………………………………………… …… ……………………………
……………………………………………………………………………………………………………………………….
… ……………………… …………………………………………………………………………………….
3. Nội dung các phần thuyết minh và tính toán:
……………………………………………………………………………………………………………… ….……………
……………………………………………………………………………………………………………………… ….……
………………………………………………………………………………………………………………………………
… ….……………………………………………………………………………………………
4. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):
……………………………………………………………………………………………………………………… ….……
…………………………………………………………………………………………………………………… ……….…
……………………………………………………………………………………………………….
5. Họ tên giảng viên hướng dẫn: ……………………………………………………… ……………………
6. Ngày giao nhiệm vụ đồ án: ………………………………………………….……………
7. Ngày hoàn thành đồ án: ……………………………………………………………………… ………
Ngày tháng năm
Chủ nhiệm Bộ môn
Giảng viên hướng dẫn
Sinh viên đã hoàn thành và nộp đồ án tốt nghiệp ngày tháng năm
Cán bộ phả n biện
`
iv

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI



BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP

Họ và tên sinh viên: Số hiệu sinh viên:
Ngành: Khoá:
Giảng viên hướng dẫn:
Cán bộ phản biện:
1. Nội dung thiết kế tốt nghiệp:







2. Nhận xét của cán bộ phản biện:










Ngày tháng năm
Cán bộ phản biện
( Ký, ghi rõ họ và tên )
Đồ án tốt nghiệp
Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 1

LỜI NÓI ĐẦU
Cùng với sự phát triển mạnh mẽ của công nghệ thông tin, công nghệ điện tử
cũng như sự gia tăng của nhiều loại hình dịch vụ như Internet, truy ền hình kỹ thuật
số… các thiết bị điện tử đều hoạt động và làm việc với tín hiệu số vì việc xử lý tín
hiệu số thực hiện dễ dàng hơn và cho chất lượng cao hơn đối với tín hiệu tương tự.
Môt y êu cầu đăt ra là làm sao việc lưu trữ đạt được hiệu quả cao, tốc độ truy ền dẫn
lớn m à vẫn phù hợp với tốc độ kênh truy ền? Một trong những giải pháp được đưa ra
là sử dụng kĩ thuật nén – một lượng nhỏ dữ liệu được lưu trữ, truyền thay vì số
lượng lớn ban đầu.
Trong quá trình học tâp tại trường đại học Bách khoa Hà Nội, em đã được
tiếp xúc, được đọc, được học và tham khảo những tài liệu về các kĩ thuật này . Một
công nghệ nén mới và có những ưu điểm trội hơn so với các chuẩn khác là nén ảnh
phân mảnh ( Fractal Image Com pression – FIC ). Đây là một kĩ thuật nén tổn hao.
Nhược điểm lớn nhất của kĩ thuật nén này là y êu cầu số lượng lớn các phép tính
toán để thực hiện nên thời gian m ã hóa lớn. Nhưng ưu điểm của nó chỉ ra rằng kĩ
thuật nén phân mảnh là tốt và có thể tốt hơn một số kĩ thuật nén khác như chuẩn
JPEG. Các ưu điểm đó là: tỉ lệ nén cao ( có bài báo đã tuy ên bố rằng tỉ lệ nén có thể
lên tới 10000 lần ), giải quy ết độc lập vì các ảnh có thể được khôi phục lại dễ dàng
và quá trình giải mã đơn giản. Trong vài năm gần đây , nén ảnh phân mảnh đã đạt
được những kết quả đáng kể trong nén ảnh tĩnh cũng như chuỗi ảnh, video. Sự kết
hợp giữa công nghệ nén ảnh Fractal với những phương pháp nén ảnh khác cũng thu
được những kết quả cao.
Xuất phát từ lí do nắm bắt kĩ thuật công nghệ mới, em đã thực hiện đề tài:
„Nghiên cứu về phương pháp trong phân mảnh Fractal Image Coding áp dụng cho kỹ
thuật nén ảnh ồ án trình bày tổng quan về một số kĩ thuật nén khác nhau và đặc biệt
tập trung vào kĩ thuật nén ảnh phân mảnh thực hiện trên ảnh nhiều mức xám và ảnh
màu. Ngoài ra, kết quả của sự kết hợp kĩ thuật nén này với công nghệ VLSI nhằm
kiểm tra kết quả, thời gian xử lý và tăng hiệu quả nén dữ liệu cũng được giới thiệu.
Đồ án tốt nghiệp


Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 2

Do thời gian có hạn và đây cũng là một công nghệ mới, hơn nữa kiến thức
của em còn nhiều hạn chế nên chắc chắn rằng đồ án sẽ không tránh khỏi những
thiếu sót. Mong các thầy, cô và các bạn góp ý để em có thể hiểu sâu hơn, rộng hơn
về kĩ thuật này.
Đồ án tốt nghiệp
Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 3
LỜI CẢM ƠN
Đầu tiên, em xin cảm ơn các thầy , cô giáo Viện Điện tử Viễn thông, các thầy
cô giáo trường đại học Bách Khoa Hà Nội đã truy ền đạt cho em nhiều kiến thức,
kinh nghiệm quý báu trong suốt quá trình học tập và nghiên cứu.
Em xin chân thành cảm ơn thầy giáo PGS.TS. Nguy ễn Tiến Dũng, người đã
hướng dẫn, định hướng, góp ý cho em nhiều điều vô cùng quý báu trước và trong
quá trình em thực hiện đề tài này . Trong thời gian làm việc trên SIPlab, em đã học
tập được rất nhiều điều bổ ích về phương pháp làm việc và nghiên cứu khoa học của
thầy .
Cuối cùng, con xin cảm ơn bố mẹ, những người đã sinh thành, nuôi dưỡng,
thương y êu và chăm sóc con, đã chăm lo cho con để có được như hiện nay . Chúc bố
m ẹ luôn mạnh khỏe.
Hà Nội, tháng 6 năm 2014
Sinh viên
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 4

TÓM TẮT ĐỒ ÁN
Nén ảnh theo phương pháp phân mảnh ( Fractal Image Compression – FIC)
được biết như một kĩ thuật nén tổn hao, yêu cầu một số lượng lớn phép toán trong
quá trình thực hiện mã hóa. Sự phát triển của công nghệ VLSI cho phép tạo ra một

hệ thống hoàn chỉnh bên trong một chip đơn ( single chip – SoC) như FPGA, do đó
số lượng các phép toán cần thiết trong quá trình thực hiện kĩ thuật nén này có thể
được giảm xuống và việc nén dữ liệu trở nên dễ dàng và hiệu quả hơn – rất có ích
trong việc lưu trữ và truyền dữ liệu. Đồ án này đưa ra tổng quan về một số kĩ thuật
nén khác nhau và đặc biệt tập trung vào kĩ thuật nén ảnh phân mảnh FIC thực hiện
cho ảnh nhiều mức xám và ảnh màu. Kết quả thực hiện FIC trên Xilinx Virtex 5
(XUPV5-LX110T) FPGA board, nhằm giảm đáng kể thời gian mã hóa và được so
sánh với kết quả thực hiện trên DSP TMS320C5515 USB Kit với cùng tốc độ clock
100 Mhz cũng được trình bày. Những kết quả thực hiện theo phương pháp của
Fisher cho ảnh xám và mở rộng cho ảnh màu đã chứng mình khả năng có thể thiết
kế một chip đơn SoC cho bộ mã hóa/ giải mã phân mảnh nhanh với hiệu suất nén
tăng.
Cụ thể, nội dung của đồ án bao gồm những phần sau:
 Chƣơng 1: Tổng quan
Giới thiệu tổng quan về công nghệ nén ảnh theo phương pháp phân mảnh,
ứng dụng và các chuẩn nén khác.
 Chƣơng 2: Nén ảnh theo phƣơng pháp phân mảnh
Giới thiệu cơ sở toán học của công nghệ nén ảnh Fractal, quá trình mã hóa và
giải mã cho ảnh nhiều mức xám và ảnh màu.
 Chƣơng 3: Thực hiện nén ảnh phân mảnh cho ảnh xám và ảnh
màu trên FPGA
Thực hiện FIC cho ảnh nhiều mức xám/ ảnh màu trên FPGA.
 Chƣơng 4: Kết quả thực nghiệm và đánh giá
Trình bày và đánh giá kết quả thu được, từ đó rút ra các kết luận, đánh giá
quá trình triển khai đề tài cũng như đưa ra hướng phát triển tiếp theo của đồ án.
Kết luận và hƣớng phát triển.
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 5


ABSTRACT
Fractal Image Compression (FIC) is known as a lossy technique, which
requires a large amount of operations to complete the codification. The
development of VLSI technology allows the creation of complete systems inside a
single chip (SoC) likely FPGA, therefore the number of required operations may
reduce and data compression becomes increasingly significant for storage and
transmission. This thesis demonstrates the overview about different compression
technologies especially fractal compression of gray-scale and color images. In the
addition, the results of the implementation of a FIC framework on Xilinx Virtex 5 (
XUPV5-LX110T ) FPGA board, which allows to significantly decrease the elapsing
time compared to that implemented in DSP TMS320C5515 USB Kit at the same
clock rate of 100MHz also present. The experimental results performed by Fisher‟s
method for a gray level and color image have verified the possibility to design a
SoC for fast fractal coder/decoder with an increased compression performance.
This thesis is divided into four following main chapters:
 Chapter 1: Overview
Introduces an overview of fractal image compression technology, applications
and other compression technologies.
 Chapter 2: Fractal image compression
Introduces basic mathematical knowledge of fractal image compression,
encoding and decoding process of gray-scale and color image.
 Chapter 3: Implementation of fractal gray-scale and color image
compression on FPGA.
Implements fractal gray-scale and color image compression on FPGA.
 Chapter 4: Experimental results and performance evaluation
Presents and evaluates the experimental results, from which to draw
conclusions and evaluate project implementation process.
The results and future research.
Đồ án tốt nghiệp


Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 6

MỤC LỤC
LỜI NÓI ĐẦU 1
LỜI CẢM ƠN 3
TÓM TẮT ĐỒ ÁN 4
ABSTRACT 5
MỤC LỤC 6
DANH SÁCH HÌNH VẼ 9
DANH SÁCH BẢNG BIỂU 11
BẢNG CÁC THUẬT NGỮ VIẾT TẮT 12
CHƢƠNG 1. TỔNG QUAN 14
1.1 Giới thiệu chung 14
1.2 Công nghệ nén ảnh phân mảnh 14
1.3 Ứng dụng của công nghệ nén ảnh theo phương pháp phân mảnh 16
1.4 Các chuẩn nén khác 17
1.4.1 JPEG 18
1.4.2 MPEG 24
1.4.3 H261 26
1.4.4 H263 26
1.4.5 H264 26
CHƢƠNG 2. NÉN ẢNH THEO PHƢƠNG PHÁP PHÂN MẢNH 27
2.1 Cơ sở toán học 27
2.1.1 Ánh xạ co và nguyên lý điểm bất động 27
2.1.2 Khoảng cách Housdorff và không gian metric Housdorff 27
2.1.3 Lược đồ hàm lặp 27
2.2 Nén ảnh mức xám theo phương pháp phân mảnh 29
2.2.1 Định nghĩa ảnh xám 29
2.2.2 Mã hóa theo phương pháp phân chia cây tứ phân 31
Đồ án tốt nghiệp


Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 7

2.2.3 Giải mã theo phương pháp phân chia cây tứ phân 35
2.2.4 Phương pháp nâng cao tốc độ trong mã hóa ảnh theo phương pháp phân
mảnh 37
2.3 Nén ảnh màu theo phương pháp phân mảnh 38
2.3.1 RGB ( Red, Green, Blue) 39
2.3.2 YCbCr 41
2.4 Tham số đánh giá chất lượng của ảnh 44
2.4.1 Peak Signal to Noise Ratio ( PSNR ) 44
2.4.2 Tỉ lệ nén 45
CHƢƠNG 3. THỰC HIỆN NÉN ẢNH PHÂN MẢNH CHO ẢNH XÁM VÀ
ẢNH MÀU TRÊN FPGA 46
3.1 Công nghệ FPGA 46
3.1.1 Tổng quan về công nghệ FPGA 46
3.1.2 Kiến trúc của FPGA 47
3.2 Công cụ sử dụng 62
3.2.1 Phần cứng Xilinx Virtex 5 (XUPV5-LX110T) 62
3.2.2 Phần mềm Xilinx ISE Design Suite version 12.4 64
3.3 Thực hiện 66
3.3.1 Nén ảnh xám theo phương pháp phân mảnh triển khai trên FPGA 66
3.3.2 Nén ảnh màu theo phương pháp phân mảnh triển khai trên FPGA 69
3.3.3 Kết quả tổng hợp phần cứng trên Virtex 5 (XUPV5-LX110T) FPGA 70
CHƢƠNG 4. KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 72
4.1 FIC thực hiện trên FPGA 72
4.1.1 Ảnh xám 72
4.1.2 Ảnh màu 73
4.2 Kết quả quá trình kiểm tra FIC trên FPGA 73
4.2.1 Ảnh xám 73

4.2.3 Ảnh màu 79
KẾT LUẬN 81
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 8

TÀI LIỆU THAM KHẢO 82
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 9

DANH SÁCH HÌNH VẼ
Hình 1-1 Sơ đồ thuật toán nén JPEG 19
Hình 1-2 Các công đoạn nén ảnh JPEG 19
Hình 1-3 Hàm Cosine 21
Hình 1-4 Quét Zigzag. 23
Hình 2-1 Ảnh xám Lenna 64x64 30
Hình 2-2 Một phân chia cây tứ phân là một đại diện của một ảnh 31
Hình 2-3 Thuật toán mã hóa ảnh xám theo phương pháp phân mảnh 33
Hình 2-4 Thuật toán giải mã ảnh xám theo phương pháp phân mảnh 36
Hình 2-5 Biểu diễn điểm ảnh trên màn hình 40
Hình 2-6 Định dạng 4:4:4 42
Hình 2-7 Định dạng 4:2:2 42
Hình 2-8 Định dạng 4:1:1 42
Hình 2-9 Định dạng 4:2:0 43
Hình 2-10 Chuyển đổi giữa 2 mô hình màu 44
Hình 3-1 Sự phân tách giữa ASIC và PLD [7] 46
Hình 3-2 Cấu trúc cơ bản chip FPGA [7] 48
Hình 3-3 Vị trí các bank I/O [7] 49
Hình 3-4 Sơ đồ một IOB đơn giản 50

Hình 3-5 CLB trong FPGA [7] 51
Hình 3-6 Cấu trúc một CLB 52
Hình 3-7 Kiến trúc của slice 53
Hình 3-8 Dùng LUT để thực hiện một hàm logic 54
Hình 3-9 Kết nối giữa các LUT 55
Hình 3-10 Vị trí các block RAM 56
Hình 3-11 Các bộ nhân của Xilinx 57
Hình 3-12 Kiến trúc bộ MAC 58
Hình 3-13 Phân bố các tín hiệu clock [7] 59
Hình 3-14 Khối DCM 59
Hình 3-15 Ảnh hưởng của nhiễu đến tín hiệu đồng hồ 60
Hình 3-16 Các bộ DCM triệt tiêu méo 61
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 10

Hình 3-17 Sử dụng DCM để tổng hợp tần số 61
Hình 3-18 Sử dụng DCM để dịch pha tín hiệu clock 62
Hình 3-19 Sử dụng DCM điểu chỉnh trượt đồng hồ 62
Hình 3-20 Xilinx Virtex-5 XC5VLX110T FPGA board 63
Hình 3-21 Giao diện phần mềm ISE 65
Hình 3-22 Mô hình phần cứng 66
Hình 3-23 Sơ đồ khối lõi của MicroBlaze 67
Hình 3-24 Sơ đồ các bước thực hiện 68
Hình 3-25 Mô đun nén ảnh màu theo phương pháp phân mảnh 69
Hình 4-1 Lenna 64x64 72
Hình 4-2 Ảnh màu Lenna 73
Hình 4-3 Ảnh Lena ban đầu và các ảnh sau khi giải nén với ET = 6, RET = 6, MiS = 4,
MaS = 16, NI = 20 75
Hình 4-4 Ảnh Lena ban đầu và các ảnh sau khi giải nén với ET = 6, RET = 20, MiS = 4,

MaS = 16, NI =20 75
Hình 4-5 DSP TMS320C5515 USB Kit 76
Hình 4-6 Sơ đồ khối của C5515 eZdsp USB Stick [8] 77
Hình 4-7 Ảnh Lena ban đầu 79
Hình 4-8 Ảnh Lena sau khi giải nén bằng chuẩn JPEG 79
Hình 4-9 Ảnh Lena sau khi giải nén bằng phương pháp phân mảnh tương ứng với thứ tự
các ảnh ở hình 4 -8 79


Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 11

DANH SÁCH BẢNG BIỂU
Bảng 2-1 Thông số ảnh Lenna 64x64 30
Bảng 2-2 Các thành phần của ảnh màu Lenna trong không gian màu RGB 40
Bảng 3-1 Bảng tổng hợp phần cứng trên Virtex 5 (XUPV5-LX110T) FPGA thực hiện nén
ảnh xám 71
Bảng 3-2 Bảng tổng hợp phần cứng trên Virtex 5 (XUPV5-LX110T) FPGA thực hiện nén
ảnh màu 71
Bảng 4-1 Domain pool với kích thước range khác nhau và số lượng domain 72
Bảng 4-2 Bảng kết quả thực thi phương pháp của Fisher trên FPGA 74
Bảng 4-3 Kết quả thực hiện phương pháp Fisher trên FPGA với RET = 20 74
Bảng 4-4 Bảng so sánh hiệu suất thực thi phương pháp của Fisher trên FPGA và DSP 78
Bảng 4-5 Bảng kết quả thực thi nén theo phương pháp phân mảnh 79
Bảng 4-6 Bảng so sánh hiệu suất thực thi nén theo phương pháp phân mảnh và JPEG 80
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 12


BẢNG CÁC THUẬT NGỮ VIẾT TẮT
STT
Từ viết tắt
Thuật ngữ
1
IFS
Iterated Function System
2
JPEG
Joint Photographic Experts Group
3
DCT
Discrete Consine Transform
4
MPEG
Moving Picture Experts Group
5
SPLDs
Simple Programmable Logic Devices
6
CPLDs
Complex Programmable Logic Devices
7
ASICs
Application-Specific Integrated Circuit
8
PLDs
Programmable Logic Devices
9
CLB

Configurable Logic Block
10
IOB
Input Output Block
11
LUT
Look Up Table
12
MAC
Multiplier Accumulator
13
DCM
Digital Clock Manager
14
LSB
Least Significant Bit
15
SRL16
Shift register
16
FIFO
First In First Out
17
FSM
Finite State Machine
18
BRAM
Block Random Access Memory
19
CLB

Configurable Logic Blocks
20
XPS
Xilinx platform studio
21
SDK
Xilinx software development kit
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 13

22
SoC
Single on Chip
23
RISC
Reduced Instruction Set Computer
24
FPGAs
Field Programmable Gate Arrays
25
ET
Entropy Threshold
26
RET
rms Er ror Tolerance
27
MiS
Minimum Range Size
28

MaS
Maximum Range Size
29
NI
Number of Iteration

Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 14

CHƢƠNG 1. TỔNG QUAN
1.1 Giới thiệu chung
Sự ra đời của lý thuyết hình học fractal là kết quả của nhiều thập kỷ nỗ lực
giải quyết các vấn đề nan giải trong nhiều ngành khoa học chính xác, đặc biệt là vật
lý và toán học. Một cách cụ thể, lý thuyết hình học fractal được xây dựng dựa trên 2
vấn đề lớn được quan tâm ở những thập niên đầu thế kỷ 20. Các vấn đề đó bao gồm:
- Tính hỗn độn của các quá trình phát triển có quy luật trong tự nhiên.
- Sự mở rộng khái niệm số chiều và độ đo trong lý thuyết hình học Euclide cổ
điển.
Mandelbrot và các nhà toán học khác như A.Douady, J.Hubbard đã đặt nền
móng và phát triển cho lý thuyết hình học Fractal. Các kết quả đạt được chủ yếu tập
trung ở các tính chất của các cấu trúc Fractal cơ sở như tập Mandelbrot và tập Julia.
Dựa trên những công trình của Mandelbrot (1976, 1979, 1982 ) và Hutchinson
(1981), vào các năm 1986, 1988 Micheal F.Barnsley và M.Begger đã phát triển lý
thuyết hệ hàm lặp IFS ( Iterated Function System ) được ứng dụng trong nhiều lĩnh
vực khác nhau [1]. Ngoài các công trình mang tính lý thuyết, hình học Fractal còn
được bổ sung những nghiên cứu vào trong khoa học máy tính và các ngành khoa
học khác đặc biệt là trong nén ảnh.
1.2 Công nghệ nén ảnh phân mảnh
Một trong những mục tiêu quan trọng hàng đầu của công nghệ xử lý hình ảnh

hiện nay là sự thể hiện hình ảnh thế giới thực với đầy đủ tính phong phú và sống
động trên máy tính. Vấn đề khó khăn trong lĩnh vực này chủ yếu do yêu cầu về
không gian lưu trữ thông tin vược quá khả năng của các thiết bị lưu trữ thông
thường. Ví dụ đơn giản: 1 ảnh có chất lượng gần như ảnh chụp đòi hỏi 1 vùng nhớ
24 bit cho 1 điểm ảnh, nên để hiện ảnh đó trên một màn hình máy tính có độ phân
giải tương đối cao như 1024x768 cần xấp xỉ 2.25Mb. Với các ảnh "thực" 24 bit này,
để thể hiện được một hoạt cảnh trong thời gian 10 giây đòi hỏi xấp xỉ 700Mb dữ
liệu, tức là bằng sức chứa của một đĩa CD-ROM. Như vậy khó có thể đưa công
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 15

nghệ multimedia lên máy PC vì nó đòi hỏi một cơ sở dữ liệu ảnh và âm thanh
khổng lồ. Đứng trước bài toán này, khoa học máy tính đã giải quyết bằng những cải
tiến vượt bậc cả về phần cứng lẩn phần mềm. Tất cả các cải tiến đó dựa trên ý tưởng
nén thông tin hình ảnh trùng lặp. Tuy nhiên cho đến gần đây, các phương pháp nén
thông tin hình ảnh đều có 1 trong 2 yếu điểm sau:
- Cho tỉ lệ nén không cao. Đây là trường hợp của các phương pháp nén không
mất thông tin.
- Cho tỉ lệ tương đối cao nhưng chất lượng ảnh nén quá kém so với ảnh ban
đầu.
Đây là trường hợp của các phương pháp nén mất thông tin ví dụ chuẩn nén
JPEG. Các nghiên cứu lý thuyết cho thấy, để đạt một tỷ lệ nén hiệu quả (kích thước
dữ liệu nén giảm so với ban đầu ít nhất hàng trăm lần), phương pháp nén mất thông
tin là bắt buộc. Tuy nhiên một vấn đề đặt ra là làm thế nào có được một phương
pháp nén kết hợp cả tính hiệu quả về tỷ lệ nén lẩn chất lượng ảnh so với ảnh ban
đầu? Phương pháp nén ảnh Fractal được phát triển gần đây bởi Iterated System đáp
ứng được yêu cầu này. Như đã biết, với một ánh xạ co trên một không gian metric
đầy đủ, luôn tồn tại 1điểm bất động x sao cho: x=P(x). Micheal F.Barnsley đã mở
rộng kết quả này cho 1 họ các ánh xạ co F.Barnsley đã chứng minh được với một họ

ánh xạ như vậy vẫn tồn tại 1 "điểm" bất động x. Để ý rằng với một ánh xạ co, ta
luôn tìm được điểm bất động của nó bằng cách lấy một giá trị khởi đầu rồi lặp lại
nhiều lần ánh xạ đó trên các kết quả thu được ở mỗi lần lặp. Số lần lặp càng nhiều
thì giá trị tìm được càng xấp xỉ chính xác giá trị của điểm bất động. Dựa vào nhận
xét này, người ta đề nghị xem ảnh cần nén là "điểm bất động" của một họ ánh xạ co.
Khi đó đối với mỗi ảnh chỉ cần lưu thông tin về họ ánh xạ thích hợp, điều này làm
giảm đi rất nhiều dung lượng cần có để lưu trữ thông tin ảnh. Việc tìm ra các ánh xạ
co thích hợp đã được thực hiện tự động hóa nhờ quá trình fractal một ảnh số hóa do
công ty Iterated System đưa ra với sự tối ưu về thời gian thực hiện. Kết quả nén cho
bởi quá trình này rất cao, có thể đạt đến tỷ lệ 10000: 1 hoặc cao hơn. Ngoài phương
pháp nén ảnh Fractal của Barnsley, còn có một phương pháp khác cũng đang được
phát triển. Phương pháp đó do F.H.Preston, A.F.Lehar, R.J.Stevens đưa ra dựa trên
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 16

tính chất của đường cong Hilbert. Ý tưởng cơ sở của phương pháp là sự biến đổi
thông tin n chiều về thông tin một chiều với sai số cực tiểu. Ảnh cần nén có thể xem
là một đối tượng ba chiều, trong đó hai chiều dùng để thể hiện vị trí điểm ảnh, chiều
thứ ba thể hiện màu sắc của nó. Ảnh sẽ được quét theo thứ tự hình thành nên đường
cong Hilbert chứ không theo hàng từ trái sang phải như thường lệ để đảm bảo các
dữ liệu nén kế tiếp nhau đại diện cho các khối ảnh kế cạnh nhau về vị trí trong ảnh
gốc. Trong quá trình quét như vậy, thông tin về màu sắc của mỗi điểm ảnh được ghi
nhận lại. Kết quả cần nén sẽ được chuyển thành một tập tin có kích thước nhỏ hơn
rất nhiều vì chỉ gồm các thông tin màu sắc. Phương pháp này thích hợp cho các ảnh
có khối cùng tông màu lớn cũng như các ảnh phối màu.
1.3 Ứng dụng của công nghệ nén ảnh theo phƣơng pháp phân mảnh
Nén ảnh phân mảnh được sử dụng nhiều trong ứng dụng thương mại.
Năm 1992, Iterated Systems Inc. thu được 2,1 tỉ đô la đầu tư của chính phủ
để phát triển một mẫu chip giải nén và lưu trữ ảnh số sử dụng công nghệ nén ảnh

theo phương pháp phân mảnh.
Trong suốt những năm 90, Iterated Systems Inc. và các đối tác đã phát triển
nén video theo phương pháp phân mảnh. Trong đó:
ClearVideo: tương tự Realvideo ( Fractal ) và SoftVideo là sản phản
nén video theo phương pháp phân mảnh. ClearFusion được sử dụng cho các
web browsers. Năm 1994, SoftVideo được cấp bản quyền cho Spectrum
Holobyte cho việc sử dụng trong CD_ROM games của nó bao gồm Falcon
Gold và Star Trek: The next generation a final unity.
Năm 1996, Iterated Systems Inc. hợp tác cùng tập đoàn Mitsubishi
đưa ClearVideo tới khách hang Nhật. Driver ClearVideo 1.2 đầu tiên vẫn
được sử dụng trong Windows Media Player.
onOne Software được phát triển bởi Iterated Systems Inc.
Genuine Fractal 5 là một Photoshop plugin có khả năng lưu trữ những
files trong chuẩn nén FIF( Fractal Image Format).
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 17

Ứng dụng nổi bật nhất của công nghệ nén ảnh theo phương pháp phân
mảnh là bộ bách khoa toàn thư multimmedia với tên gọi"Microsoft Encarta"
được đưa ra vào 12-1992. Bộ bách khoa này bao gồm hơn 7 giờ âm thanh,
100 hoạt cảnh, 800 bản đồ màu cùng với 7000 ảnh chụp cây cối, hoa quả,
con người, phong cảnh, động vật,…Tất cả được mã hóa dưới dạng các dữ
liệu fractal và chỉ chiếm xấp xỉ 600 Mb trên 1 đĩa compact.
Iterated Systems Inc. cung cấp một bộ mã hóa shareware( Fractal
Imager), một bộ giải mã chuẩn riêng, một bộ giải mã Netscape plug-in và
một gói phát triển cho người sử dụng Windows.
1.4 Các chuẩn nén khác
Nén dữ liệu được chia thành hai dạng cơ bản: Nén không mất dữ liệu
(Lossless) và nén có mất dữ liệu (Lossy). Đối với dạng nén không mất dữ liệu, ảnh

được khôi phục hoàn toàn giống ảnh gốc, tuy nhiên điều này đòi hỏi phải có thiết bị
lưu trữ và đường truyền lớn hơn. Các thuật toán của nén không mất dữ liệu thường
dựa vào việc thay thế một nhóm các ký tự trùng lặp bởi một nhóm các ký tự đặc biệt
khác ngắn hơn mà không quan tâm tới ý nghĩa của dòng bit dữ liệu. Các ví dụ của
dạng nén không mất dữ liệu là Run-Length Encoding ( RLE ), Huffman Coding,
Arithmetic coding, Shannon-Fano Coding, LZ78, LZH, LZW
Đối với dạng nén có mất dữ liệu, ảnh được khôi phục không giống hoàn toàn
với ảnh gốc, dạng nén này thích hợp cho việc lưu trữ và truyền ảnh tĩnh, video qua
một mạng có băng thông hạn chế. Các dạng nén này thường cho hệ số nén cao hơn,
nó liên quan tới việc dùng các phép biến đổi tín hiệu từ miền này sang miền khác.
Các ví dụ của biến đổi có mất dữ liệu gồm: Differential Encoding, Discrete Cosine
Transform( DCT ), Vector Quantization, JPEG ( Joint Photographic Experts Group
) và MPEG ( Motion Picture Experts Group ).
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 18

1.4.1 JPEG
1.4.1.1 Giới thiệu
Là viết tắt của Joint Photographic Experts Group. Nó cũng là một tiêu chuẩn
ISO / IEC làm việc nhóm, nhưng các công trình xây dựng các tiêu chuẩn mã hóa
hình ảnh liên tục giai điệu. JPEG là một kỹ thuật nén tổn hao được sử dụng cho các
hình ảnh đầy màu sắc hoặc màu xám quy mô, bằng cách khai thác thực tế mà mắt
con người sẽ không nhận thấy thay đổi màu sắc nhỏ [2].
1.4.1.2 Các nguyên tắc nén ảnh
Một tính chất chung nhất của tất cả các ảnh số đó là tương quan giữa các pixel ở
cạnh nhau lớn, điều này dẫn đến dư thừa thông tin để biểu diễn ảnh. Dư thừa thông
tin sẽ làm cho việc mã hoá không tối ưu. Do đó công việc cần làm để nén ảnh là
phải tìm được các biểu diễn ảnh với tương quan nhỏ nhất để giảm thiểu độ dư thừa
thông tin của ảnh. Thực tế, có hai kiểu dư thừa thông tin được phân loại như sau:

- Dư thừa trong miền không gian: tương quan giữa các giá trị pixel của ảnh,
điều này có nghĩa rằng các pixel lân cận của ảnh có giá trị gần giống nhau ( trừ
những pixel ở giáp đường biên ảnh ).
- Dư thừa trong miền tần số: Tương quan giữa các mặt phẳng màu hoặc dải phổ
khác nhau.
Sau đây là sơ đồ thuật toán nén ảnh JPEG ( hình 1-1 và hình 1-2 ) :
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 19


Hình 1-1 Sơ đồ thuật toán nén JPEG

Hình 1-2 Các công đoạn nén ảnh JPEG
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 20

1.4.1.3 Các công đoạn nén ảnh JPEG
a. Phép biến đổi Cosine rời rạc DCT ( Discrete consine transform – DCT )
Đầu vào của DCT là một tập hợp các số và đầu ra là một tập hợp có cùng
kích cỡ. IDCT là sự biến đổi đảo ngược, có nghĩa là ta có thể dùng các hệ số đầu ra
để tái tạo các hệ số đầu vào ban đầu. Sự đảo ngược của DCT được gọi là Inverse
Discrete Consine Transform ( IDCT ). DCT thường được ám chỉ tới FORWARD
DCT ( FDCT )
DCT biến đổi tập hợp các giá trị đầu vào thành tập hợp các hệ số của các
hàm cosin với tần số ngày càng tăng. Mỗi giá trị ban đầu được biến đổi thành tổng
của các cosin. Trong quá trình này, DCT có mối liên hệ mật thiết với Fourier
transform.
DCT thường được sử dụng để xử lý các dữ liệu được thiết lập theo một chiều hoặc

hai chiều. Số lượng các giá trị đầu vào thường là 2. Trong JPEG, DCT và IDCT
thường sắp xếp dữ liệu theo hai chiều trong block 8x8.
Trong khi sử dụng DCT ta sẽ có thể nén tốt hơn nếu quan tâm đến sự tương
quan của chiều ngang và chiều dọc của ảnh điểm cùng một lúc. Trong phần trước,
chúng ta đã xem xét cách JPEG tách hình ảnh làm 8 block hình vuông gọi là đơn vị
dữ liệu. Bước đầu tiên của việc nén một đơn vị dữ liệu là sử dụng DCT hai chiều,
trong đó ma trận vuông có kích thước N được xác định như sau:

11
00
(2 1) (2 1)
[ , ] ( , ) [ , ].cos .cos
22
NN
xy
y i x j
T i j c i j V y x
NN







( 1-1 )

Trong đó:
2
( , ) ,c i j

N

i và j

0
1
( , ) ,c i j
N

i or j =0
Công thức IDCT 2 chiều là:
Đồ án tốt nghiệp

Đặng Thị Xuân – ĐTVT_KSTN_K52 Trang 21

11
00
(2 1) (2 1)
[ , ] ( , ). [ , ].cos .cos
22
NN
ij
y i x j
V y x c i j T i j
NN








( 1-2 )
Cách tốt hơn để miêu tả DCT hai chiều là sử dụng các ma trận.
Forward DCT là:
T = MVM
T
Inveser DCT là:
V = M
T
TM
Ở đây V là ma trận 8 hàng, 8 cột.
Còn M là ma trận DCT.
Trong JPEG modes được sử dụng các giá trị pixel được biểu diễn bằng 8-bít
bởi vậy chúng có thể chạy từ 0 đến 255. JPEG đòi hỏi mỗi giá trị đầu vào phải trừ
đi 128 để nó có thể chạy từ -128 đến 127 trước khi tiến hành tính DCT.

Hình 1-3 Hàm Cosine
Điều này làm giảm độ lớn của hệ số DCT đầu tiên nhưng không làm thay đổi
độ lớn của các hệ số khác. Sau khi sử dụng IDCT chúng ta phải cộng thêm 128 để
kết quả trở về với “phạm vi” đúng của nó.
Nếu DCT và IDCT được sử dụng đạt độ chính xác tuyệt đối thì kết quả sẽ
luôn bằng với đầu vào. Tuy nhiên, máy tính không làm việc chính xác tuyệt đối.
Thêm vào đó, trong quá trình nén JPEG tất cả các giá trị DCT đều được làm tròn,
điều đó có nghĩa là quá trình DCT sử dụng JPEG có lỗi làm tròn khi chúng ta nén
và giải nén ảnh.
Chúng ta có thể sử dụng các hệ số DCT để tái lập các giá trị mẫu ban đầu (có
lỗi làm tròn), nhưng chúng cũng không sai khác so với các giá trị ban đầu là mấy.

×