ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vũ Ngọc Tuyên
XÂY DỰNG HỆ THỐNG HIỂN THỊ THÔNG TIN
HÌNH ẢNH THÔNG QUA MẠNG INTERNET
LUẬN VĂN THẠC SỸ CÔNG NGHỆ ĐIỆN TỬ - VIỄN THÔNG
HÀ NỘI - 2014
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vũ Ngọc Tuyên
XÂY DỰNG HỆ THỐNG HIỂN THỊ THÔNG TIN
HÌNH ẢNH THÔNG QUA MẠNG INTERNET
Ngành: Công nghệ Điện tử - Viễn thông
Chuyên ngành: Kỹ thuật Điện tử
Mã số: 60 52 02 03
LUẬN VĂN THẠC SỸ CÔNG NGHỆ ĐIỆN TỬ - VIỄN THÔNG
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. Trần Xuân Tú
HÀ NỘI - 2014
2
LỜI CAM ĐOAN
Tôi xin cam đoan nội dung của luận văn “Xây dựng hệ thống hiển thị thông tin
hình ảnh thông qua mạng Internet” là sản phẩm do tôi thực hiện dưới sự hướng dẫn
của PGS.TS. Trần Xuân Tú. Trong toàn bộ nội dung của luận văn, những điều được
trình bày hoặc là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các
tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định
cho lời cam đoan của mình.
Hà Nội, ngày 11 tháng 11 năm 2014
TÁC GIẢ
Vũ Ngọc Tuyên
3
LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn tới PGS.TS. Trần Xuân Tú đã tận tình
hướng dẫn, cung cấp tài liệu tham khảo, kinh nghiệm và những ý kiến đóng góp quý
báu. Em cũng xin cảm ơn tới các anh em cán bộ của Phòng thí nghiệm mục tiêu Hệ
thống tích hợp thông minh (SIS Lab) đã hỗ trợ và giải đáp các vướng mắc của em
trong suốt quá trình nghiên cứu.
Em cũng gửi lời cảm ơn đến các thầy cô trong Khoa Điện tử - Viễn thông,
Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội đã truyền đạt những kiến thức
bổ ích và kinh nghiệm quý báu trong suốt thời gian em học tập, nghiên cứu tại nhà
trường.
Cuối cùng em cũng xin gửi lời cảm ơn đến gia đình, bạn bè những người đã
giúp đỡ và tạo điều kiện để em có thể hoàn thành được luận văn này.
Trong thời gian thực hiện luận văn, bản thân em khó tránh khi nhiều thiếu sót. Em
rất mong nhận được ý kiến đóng góp từ pha thầy cô và bạn b để luận văn được hoàn
thiện hơn.
Em xin chân thành cảm ơn !
Học viên
Vũ Ngọc Tuyên
4
MỤC LỤC
LỜI CAM ĐOAN 2
LỜI CẢM ƠN 3
MỤC LỤC 4
DANH MỤC HÌNH VẼ 6
DANH MỤC BẢNG BIỂU 8
DANH MỤC TỪ VIẾT TẮT 9
MỞ ĐẦU 10
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ MÃ HÓA VÀ HIỂN THỊ HÌNH
ẢNH 11
1.1. Cơ sở lý thuyết về mã hóa hình ảnh JPEG 11
1.1.1. Quá trình mã hóa 12
1.1.2. Chuyển đổi hệ màu 12
1.1.3. Lấy mẫu 13
1.1.4. Quá trình giải mã 14
1.2. Hiển thị hình ảnh lên màn hình chuẩn VGA 15
1.2.1. Nguyên lý quét hình ảnh 15
1.2.2. Tín hiệu màu VGA 17
1.2.3. Bộ điều khiển tín hiệu hiển thị hình ảnh – VGA core 18
1.2.4. Nguyên tắc hoạt động của bộ hiển thị hình ảnh VGA 20
CHƯƠNG 2: CÔNG NGHỆ NỀN TẢNG FPGA – PHƯƠNG PHÁP XÂY
DỰNG HỆ THỐNG NHÚNG TRÊN FPGA 22
2.1. Giới thiệu công nghệ nền tảng FPGA 22
2.1.1. Kiến trúc FPGA 23
2.1.2. Ngôn ngữ lập trình mô tả phần cứng VHDL 25
2.2. Phương pháp xây dựng hệ thống nhúng trên FPGA 27
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vũ Ngọc Tuyên
XÂY DỰNG HỆ THỐNG HIỂN THỊ THÔNG TIN
HÌNH ẢNH THÔNG QUA MẠNG INTERNET
LUẬN VĂN THẠC SỸ CÔNG NGHỆ ĐIỆN TỬ - VIỄN THÔNG
HÀ NỘI - 2014
5
2.2.1. Trình tự thiết kế một vi mạch FPGA 27
2.2.2. Giải pháp thiết kế hệ thống sử dụng bộ công cụ của hãng Xilinx 29
CHƯƠNG 3: HỆ THỐNG HIỂN THỊ THÔNG TIN HÌNH ẢNH THÔNG
QUA MẠNG INTERNET 39
3.1. Mô tả ý tưởng thiết kế hệ thống 39
3.2. Hệ thống phần cứng 40
3.2.1. Xây dựng hệ thống phần cứng trên chip 41
3.2.2. Thiết kế ngoại vi giao tiếp màn hình VGA 46
3.3. Đặc tả hệ thống phần mềm 50
3.3.1. Thiết kế chi tiết hệ thống phần mềm 51
3.3.2. Thư viện lwIP hỗ trợ truyền thông Ethernet 54
3.3.3. Thư viện giải mã ảnh JPEG – TinyJPEG 56
CHƯƠNG 4: : KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 59
4.1. Nền tảng thực thi hệ thống 59
4.2. Kết quả kiểm tra chức năng hệ thống 59
4.2.1. Kiểm tra kết nối Ethernet 59
4.2.2. Kiểm tra kết nối màn hình VGA, hiển thị hình ảnh 60
4.2.3. Kiểm tra kết quả giải mã hình ảnh JPEG 61
4.2.4. Kiểm tra kết nối tổng thể toàn hệ thống 61
4.3. Đánh giá giải pháp thực hiện hệ thống 62
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
6
DANH MỤC HÌNH VẼ
Hình 1-1: Sơ đồ quá trình mã hóa JPEG [1]. 12
Hình 1-2: So sánh hệ màu RGB và YCbCr. 13
Hình 1-3: Các kiểu lấy mẫu dữ liệu[3]. 14
Hình 1-4: Sơ đồ khối quá trình giải mã [1]. 14
Hình 1-5: Minh họa phương pháp quét hình ảnh. 15
Hình 1-6: Tín hiệu điện cho một dòng quét trên màn hình CRT [5]. 16
Hình 1-7: Chế độ điều khiển VGA 640×480 [5]. 17
Hình 1-8: Cổng kết nối VGA. 18
Hình 1-9: Các màu cơ bản [5]. 18
Hình 1-10: Kết quả hiển thị. 19
Hình 1-11: Sơ đồ khối cấu trúc của bộ hiển thị hình ảnh VGA 21
Hình 2-1: Kiến trúc chung của FPGA [2]. 23
Hình 2-2: Một Logic Block điển hình 24
Hình 2-3: Khối Logic khả trình. 24
Hình 2-4: Các kết nối khả trình . 25
Hình 2-5: Qui trình thiết kế chip dựa trên VHDL [2]. 26
Hình 2-6: Kit phát triển Spartan-3E [12] 30
Hình 2-7: Các thành phần của Kit Spartan-3E[12]. 31
Hình 2-8: Kiến trúc của Spartan 3E [12]. 32
Hình 2-9: Sơ đồ khối lõi Microblaze [11]. 33
Hình 2-10: Kiến trúc đường ống trong microblaze. 34
Hình 2-11: Hệ thống BUS điển hình của Microblaze [11]. 35
Hình 2-12: Giao diện sử dụng của công cụ XPS. 36
Hình 2-13: Giao diện sử dụng của công cụ SDK 37
Hình 3-1: Sơ đồ khối chức năng hệ thống. 39
Hình 3-2: Sơ đồ chi tiết hệ thống phần cứng. 40
Hình 3-3: Lựa chọn bo mạch. 42
Hình 3-4: Cấu hình hệ thống. 43
Hình 3-5: Cấu hình vi xử lý. 43
Hình 3-6: Cấu hình các ngoại vi của hệ thống. 44
Hình 3-7: Lựa chọn bộ nhớ đệm. 45
7
Hình 3-8: Cấu hình ứng dụng mẫu cho hệ thống. 45
Hình 3-9: Khởi tạo lõi VGA. 46
Hình 3-10: Cấu hình bus cho lõi VGA. 47
Hình 3-11: Thiết lập tần số hoạt động của lõi VGA. 47
Hình 3-12: Tạo ra phần cứng FPGA. 49
Hình 3-13: Sơ đồ khối hệ thống tạo bởi XPS. 49
Hình 3-14: Mô hình phần mềm của hai lớp ứng dụng. 50
Hình 3-15: Mô hình triển khai hệ thống nhúng trên Spartan-3E. 50
Hình 3-16: Biểu đồ các trường hợp sử dụng. 51
Hình 3-17: Lưu đồ tiến trình hoạt động. 52
Hình 3-18: Lưu đồ truyền tập tin. 53
Hình 3-19: Lưu đồ giải mã ảnh Jpeg. 53
Hình 4-1: Kiểm tra kết nối Ethernet. 60
Hình 4-2: Kiểm tra bộ điều khiển VGA 60
Hình 4-3: Kiểm tra chương trình giải mã JPEG 61
Hình 4-4: Kiểm tra kết nối toàn hệ thống. 62
8
DANH MỤC BẢNG BIỂU
Bảng 3-1: Bảng tổng hợp tài nguyên phần cứng của hệ thống 41
Bảng 3-2: Các tín hiệu ngoại vi của lõi VGA 48
Bảng 3-3: Mô tả hàm lwip_socket [4] 54
Bảng 3-4: Mô tả hàm lwip_blind [4] 55
Bảng 3-5: Mô tả hàm lwip_close [4] 55
Bảng 3-6: Mô tả hàm khởi tạo tinyjpeg_init [4] 56
Bảng 3-7: Mô tả hàm duyệt header file tinyjpeg_parse_header [4] 56
Bảng 3-8: Mô tả hàm giải mã ảnh tinyjpeg_decode [4] 57
Bảng 3-9: Mô tả hàm đọc kch thước ảnh tinyjpeg_get_size [4] 57
Bảng 3-10: Mô tả hàm tinyjpeg_get_components [4] 58
Bảng 3-11: Mô tả hàm giải phóng bộ nhớ tinyjpeg_free [4] 58
9
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
Mô tả
ALU
Arithmetic Logic Unit
ASIC
Application-Specific Integrated Circuit
BMP
BitMaP image file
CLB
Configurable Logic Block
CPLD
Complex Programmable Logic Devices
CRT
Cathode Ray Tube
DCM
Digital Clock Manager
EDK
Embedded Development Kit
FPGA
Field-Programmable Gate Array
GIF
Graphics Interchange Format
GPIO
General Purpose Input Output
HS
Horizontal Sync
IEEE
Institue of Electrical and Electronics Engineers
IOB
Input/Output Block
ISE
Integrated Software Environment
JPEG
Joint. Photographic Experts Group
LCD
Liquid-Crystal Display
LUT
Look-Up Tables
PNG
Portable Network Graphics
RGB
Red - Green - Blue
RTL
Register Transfer Level
SDK
Software Development Kit
SOC
System on Chip
TIFF
Tagged Image File Format
UART
Universal Asynchronous Receiver Transmitter
VGA
Video Graphics Array
VHDL
VHSIC Hardware Description Language
VHSIC
Very High Speed Integrated Circuit
VS
Vertical Sync
XCL
Xilinx Cache Link
XPS
Xilinx Platform Studio
10
MỞ ĐẦU
Việc cung cấp thông tin kịp thời tới người dùng một cách nhanh chóng và chính
xác là cần thiết trong xã hội hiện đại. Với sự phát triển của công nghệ, ngày nay chúng
ta có thể nhận thông tin mọi lúc, mọi nơi một cách nhanh chóng thông qua mạng
Internet. Các hệ thống hiển thị thông tin truyền thống cũng đang dần được thay thế
bằng các màn hình kch thước lớn có kết nối mạng. Tuy nhiên, việc truyền nhận và xử
lý thông tin trước khi hiển thị phần lớn vẫn được thực hiện trên các hệ máy tnh đa
năng với giá thành tương đối cao. Việc xây dựng một hệ thống chuyên dụng dạng
“system-on-a-chip” để thực hiện việc thu nhận thông tin hình ảnh và hiển thị là cần
thiết nhằm tối ưu hoá ứng dụng và giảm giá thành sản xuất. Hệ thống này có nhiệm vụ
thiết lập kết nối máy chủ thông qua mạng Internet để lấy dữ liệu hình ảnh, giải mã và
truy xuất hình ảnh ra màn hiển thị tương thch với chuẩn VGA.
Ứng dụng hiển thị hình ảnh thông qua kết nối Internet đang là vấn đề rất thực
tế, phục vụ cho lĩnh vực truyền thông, quảng bá thông tin tại các cơ quan, đơn vị,
trường học, hay các doanh nghiệp, hay thậm chí tại các khu chung cư mới hoặc các cơ
quan thông tin của phường/xã.
Chnh vì lý do trên, em đã chọn đề tài: “Xây dựng hệ thống hiển thị thông tin
hình ảnh thông qua mạng Internet” để nghiên cứu và thực hiện Luận văn Thạc sỹ của
mình.
Bố cục của luận văn gồm có bốn phần:
Chương 1: Cơ sở lý thuyết về mã hoá và hiển thị hình ảnh.
Chương 2: Công nghệ nền tảng FPGA và phương pháp xây dựng hệ thống
nhúng trên FPGA
Chương 3: Hệ thống hiển thị thông tin hình ảnh thông qua mạng Internet
Chương 4: Kết quả thực nghiệm và đánh giá
11
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ MÃ HÓA VÀ HIỂN THỊ
HÌNH ẢNH
Chương đầu tiên của luận văn giới thiệu cơ sở lý thuyết mã hóa hình ảnh theo
định dạng chuẩn JPEG và phương pháp hiển thị hình ảnh trên màn hình chuẩn VGA.
1.1. Cơ sở lý thuyết về mã hóa hình ảnh JPEG
Trong thời đại kỹ thuật số ngày nay, hình ảnh được lưu trữ ở nhiều định dạng
khác nhau như BMP, JPEG, PNG, GIF, TIFF. Trong đó, định dạng ảnh chuẩn JPEG
được sử dụng phổ biến nhất trên Internet và được hầu hết các máy ảnh kỹ thuật số và
phần mềm xử lý ảnh hỗ trợ tương thch. JPEG viết tắt của Joint Photographic Experts
Group được công bố lần đầu vào năm 1992 dựa trên khuyến cáo ITU – T81, là một
trong những phương pháp nén ảnh hiệu quả, có tỷ lệ nén tới vài chục lần. Ảnh sau khi
giải nén sẽ không hoàn toàn giống như ban đầu mà chất lượng ảnh sẽ bị suy giảm sau
khi giải nén. Tuy nhiên sự suy giảm này có thể khắc phục được bằng việc loại b đi
những thông tin dư thừa dựa trên sự nghiên cứu về thị giác của con người.
Khi nghiên cứu về lý thuyết và hiển thị hình ảnh, chúng ta xét đến không gian
màu YUV được tạo bởi một độ sáng và hai thành phần màu. Thị giác của con người
rất nhạy cảm với thành phần Y và kém nhạy cảm với hai thành phần U và V. Dựa trên
đặc tính này của mắt con người, phương pháp JPEG đã tách những thông tin dư thừa
của ảnh và nén thông tin sao cho sự suy giảm tín hiệu thành phần Y là t hơn so với hai
thành phần còn lại là U và V.
Phương pháp nén ảnh JPEG có công đoạn chính là chia bức ảnh thành nhiều
vùng nh (thông thường là 8×8 điểm ảnh) rồi sử dụng phép biến đổi cosin rời rạc để
biến đổi những vùng này thành dạng ma trận có 64 hệ số thể hiện trạng thái các điểm
ảnh. Hệ số đầu tiên có khả năng thể hiện trạng thái cao nhất, khả năng đó giảm nhanh
với các hệ số khác. Điều đó có nghĩa là lượng thông tin của 64 điểm ảnh tập trung chủ
yếu ở một số hệ số ma trận trong phép biến đổi trên. Trong giai đoạn này có sự mất
mát thông tin bởi không có một phép biến đổi ngược chnh xác, tuy nhiên lượng thông
tin mất mát này chưa đáng kể so với các bước sau. Ma trận có được sau phép biến đổi
cosin rời rạc được lược bớt sự khác nhau giữa các hệ số, đây chnh là bước làm cho
12
thông tin bị mất nhiều nhất vì những thay đổi nh của các hệ số sẽ được làm tròn. Các
phép biến đổi trên áp dụng với thành phần U và V nhiều hơn so với thành phần Y.
Bước tiếp theo là dùng một thuật toán mã hóa khác để phân tích dãy số. Những phần
tử nào được lặp lại nhiều sẽ được mã hóa bằng ký tự ngắn hơn. Với phương pháp mã
hóa theo chuẩn JPEG, khi giải mã chúng ta chỉ cần làm lại các bước trên theo quá trình
ngược lại cùng với các phép biến đổi ngược.
1.1.1. Quá trình mã hóa
Hình 1-1: Sơ đồ quá trình mã hóa JPEG [1].
Quá trình mã hóa hình ảnh JPEG được mô tả theo Hình 1-1 [1]. Ảnh nguồn ban
đầu được chia thành các khối có kch thước 8×8 điểm ảnh trước khi đưa vào khối mã
hóa bao gồm DCT, lượng tử hóa và mã hóa Entropy. Kết quả của quá trình mã hóa là
đầu ra hình ảnh nén JPEG.
1.1.2. Chuyển đổi hệ màu
Bộ mã hóa JPEG sẽ thực hiện biến đổi hệ màu từ RGB sang YCbCr trước khi
chuyển đổi DCT. Dữ liệu ảnh được đại diện bởi ba thành phần màu chính là R, G, B
tương ứng ba màu cơ bản là đ, xanh lục, xanh dương. Mỗi màu sẽ sử dụng một byte
để biểu diễn, do đó mỗi điểm ảnh cần ba bytes để biểu diễn.
Như đã trình bày ở trên, mắt người nhạy cảm với sự thay đổi về độ chói và kém
nhạy với những sự thay đổi về sắc độ. Thông thường trong kỹ thuật nén ảnh sử dụng
biến đổi DCT các điểm ảnh sẽ được chuyển đổi từ hệ màu RGB sang YCbCr. Trong
đó thành phần Y tương ứng với độ chói của điểm ảnh, hai thành phần Cb và Cr lần
lượt là sự sai khác về sắc độ của hai thành phần màu xanh dương và đ.
13
Công thức về sự biến đổi như sau:
𝑌 = 0,299𝑅 + 0,587𝐺 + 0,144𝐵
𝐶𝑏 = −0,16874𝑅 − 0. ,3126𝐺 + 0,5𝐵 + 128
𝐶𝑟 = 0,5𝑅 − 0,41869𝐺 − 0,08131𝐵 + 128
Ta có thể quan sát các thành phần R, G, B tương ứng với các thành phần Y, Cb,
Cr trong bức ảnh nổi tiếng “lena” Hình 1-2: [3]
Hình 1-2: So sánh hệ màu RGB và YCbCr.
1.1.3. Lấy mẫu
Do mắt người nhạy cảm với thành phần Y hơn nên việc giảm thành phần sắc độ
đi 50% so với thành phần độ chói Y cũng không làm giảm đi nhiều cảm nhận của mắt
về sự thay đổi của hình ảnh. Có nhiều phương pháp lấy mẫu khác nhau như mô tả trên
hình 1.3 [3], điển hình là lấy mẫu theo tỉ lệ 4:2:0. Tức là độ phân giải của thành phần
Cb, Cr sẽ được giảm đi một nửa theo cả hai chiều dọc và chiều ngang, trong bước này
ta sẽ giảm thành phần sắc độ. Cứ bốn điểm thành phần Y được chọn thì sẽ có một
14
điểm thành phần Cb, và một điểm thành phần Cr được lựa chọn như hình 1.3.a. Một
vài cách lấy mẫu khác nhau như 4:2:2 có nghĩa là hai thành phần Cb, Cr chỉ giảm đi
một nữa theo chiều ngang.
Hình 1-3: Các kiểu lấy mẫu dữ liệu[3].
Dấu “×” thể hiện nơi điểm thành phần Y được chọn. Dấu “o” chỉ nơi các thành
phần sắc độ được chọn.
1.1.4. Quá trình giải mã
Hình 1-4: Sơ đồ khối quá trình giải mã [1].
Quá trình giải mã theo mô tả trên hình 1-4 [1], dựa trên cơ sở thực hiện thuật
toán ngược của quá trình mã hóa. Hình vẽ trên minh họa sơ đồ khối của quá trình giải
mã JPEG. Các thành phần của bộ giải mã cũng tương tự như các thành phần của bộ mã
hóa nhưng được đặt theo thứ tự ngược lại.
Chuyển đổi hệ màu được thực hiện theo công thức:
R = Y + 1,402 (C
r
- 128)
G = Y – 0,71414 (C
r
- 128) – 0,34414 (C
b
- 128)
B = Y + 1,772 (C
b
- 128)
15
1.2. Hiển thị hình ảnh lên màn hình chuẩn VGA
Trên thị trường màn hình hiển thị có nhiều loại khác nhau, tùy theo loại màn
hình được sử dụng là màn hình CRT, LCD hay plasma, chúng ta có phương pháp để
hiển thị hình ảnh là khác nhau. Tuy nhiên, các loại màn hình được chế tạo theo cùng
chuẩn hiển thị VGA có nguyên lý hiển thị một hình ảnh lên màn hình là giống nhau.
1.2.1. Nguyên lý quét hình ảnh
Về nguyên lý của ảnh kỹ thuật số, mỗi hình ảnh được xem như một ma trận các
điểm ảnh.Phương pháp quét hình ảnh là phương pháp hiển thị lần lượt các điểm ảnh
này theo từng hàng một, từ trái qua phải và từ trên xuống dưới như minh họa ở hình
1.5 thay vì hiển thị đồng thời toàn bộ hình ảnh. Các đường nét liền thể hiện các dòng
điểm ảnh được quét ngang màn hình. Các đường nét đứt là đường trở về của tia quét
để bắt đầu một dòng quét mới. Hình ảnh quét được sau một lượt quét từ trên xuống
dưới gọi là một mành quét.
Trong thời gian màn hình hiển thị ảnh, cần phải đưa tới màn hình các tín hiệu
điện chứa các thông tin của các điểm ảnh này. Ngoài ra, có những thời gian không
hiển thị, khi tia quét trở về đầu dòng hoặc đầu mành mới. Các thông tin về hình ảnh
không được đưa đến màn hình trong thời gian này mà thay vào đó là các tn hiệu đặc
biệt dùng để đồng bộ dòng và đồng bộ mành.
Hình 1-5: Minh họa phương pháp quét hình ảnh.
Chúng ta xét một ví dụ trên hình 1-6 [5] về một dòng quét bằng tia điện tử của
màn hình CRT sẽ làm rõ thêm nguyên lý quét ảnh. Màn hình được chia làm 480 dòng,
mỗi dòng có 640 điểm ảnh. Xung răng cưa trên hình 1-6 có tác dụng lái tia điện tử
theo chiều ngang. Mỗi một xung răng cưa ứng với một dòng, như vậy, tần số xung
16
răng cưa tương ứng với tần số dòng. Trong phần thời gian xung răng cưa là đường dốc
ổn định, tia điện tử quét ngang màn hình thể hiện hình ảnh. Phần thời gian còn lại,
xung răng cưa có tác dụng lái tia điện tử trở về đầu dòng tiếp theo và đồng thời là căn
cứ để sinh ra tín hiệu đồng bộ dòng HS. Xung đồng bộ dòng là một xung âm, trong
khoảng thời gian tích cực mức thấp trên tín hiệu HS. Thời gian từ khi có xung đồng bộ
dòng đến khi bắt đầu có tín hiệu thông tin hình ảnh gọi là “front porch”, thời gian sau
khi kết thúc phần thông tin hình ảnh đến khi bắt đầu một xung đồng bộ dòng mới gọi
là “back porch”.
Hình 1-6: Tín hiệu điện cho một dòng quét trên màn hình CRT [5].
Hình ảnh được điều khiển quét theo chiều dọc bằng cách tạo ra xung răng cưa
lái tia điện tử theo chiều dọc và tín hiệu đồng bộ mành VS với cách làm tương tự với
quét dòng.
Sau đây là v dụ VGA Display Timing với chế độ 640×480:
17
Hình 1-7: Chế độ điều khiển VGA 640×480 [5].
1.2.2. Tín hiệu màu VGA
Có ba tín hiệu màu là red, green và blue gửi tín hiệu màu sắc đến màn hình
VGA. Mỗi một tín hiệu điều khiển một súng bắn điện tử để phóng các hạt electron vẽ
lên một màu cơ bản tại một điểm trên màn hình. Dải của tín hiệu nằm từ 0V tương ứng
với màu tối hoàn toàn và 0,7V sáng hoàn toàn, điều khiển cường độ của mỗi thành
phần màu và ba thành phần màu kết hợp với nhau tạo lên màu của điểm ảnh (dot) hay
phần tử ảnh (pixel) trên màn hình.
18
Hình 1-8: Cổng kết nối VGA.
Mỗi tín hiệu màu analog có thể là một trong 8 mức bằng 3 tín hiệu digital bằng
cách dùng bộ chuyển đổi digital to analog 3 bit (DAC 3 bit).
Hình 1-9: Các màu cơ bản [5].
1.2.3. Bộ điều khiển tín hiệu hiển thị hình ảnh – VGA core
VGA core là ngoại vi giao tiếp với màn hình. Nhiệm vụ của VGA core là đọc
thông tin về hình ảnh (thông tin màu sắc) để đưa ra các tn hiệu màu (R, G, B) và các
tín hiệu đồng bộ Hsync, Vsync vào các thời điểm thích hợp, cho kết quả hiển thị như
hình 1.10.
19
Hình 1-10: Kết quả hiển thị.
Vùng A, màu đen là vùng không hiển thị, sử dụng cho quét ngược vị trí hiển thị
về các đầu dòng hoặc đầu mành tiếp theo. Khi vị trí hiển thi rơi vào vùng A, ở lối ra
ghép nối với màn hình, các tín hiệu R, G, B không có dữ liệu và các tín hiệu Hsync,
Vsync có các xung đồng bộ tại vị trí kết thúc dòng hoặc mành. Kch thước của vùng A
là chiều rộng × chiều cao = 800×525 theo chế độ VGA 640×480 60Hz.
Vùng B, màu xanh, là vùng hiển thị màu nền Back ground. Màu nền ở đây được
quy ước là màu của pixel đầu tiên trong ảnh.Vùng B có kch thước của màn hình
640×480 điểm ảnh.Khi vị trí hiển thị rơi vào vùng này, các tn hiệu đồng bộ ở mức
cao, các tín hiệu màu mang thông tin về màu nền.
Vùng C, màu cam, là vùng hiển thị hình ảnh. Vùng này có kch thước thay đổi
được, tối đa là 640×480 điểm ảnh. Tùy theo vị trí hiển thị ở điểm ảnh nào trong vùng
C mà các tín hiệu R, G, B sẽ mang thông tin màu sắc của điểm ảnh đó. Lúc này các tn
hiệu đồng bộ luôn đặt ở mức cao.
Các thông tin về màu sắc của các điểm ảnh sẽ được đọc ra từ một bộ nhớ dữ
liệu bên ngoài chip FPGA.
20
1.2.4. Nguyên tắc hoạt động của bộ hiển thị hình ảnh VGA
Sơ đồ cấu trúc của bộ hiển thị hình ảnh lên VGA như trên hình 1-11. Hệ thống
bên ngoài ghi giá trị pixel vào trong bộ đệm pixel. Các pixel được lấy từ bộ đệm rồi
ghi vào trong thanh ghi pixel. Mỗi pixel có thể là 1, 2, 4, 8 hoặc 16 bit vì thế nên nội
dung của thanh ghi pixel này được dịch sau mỗi xung clock để thay thế pixel hiện tại
theo thứ tự các bit có trọng số thấp đến cao. Các bit này được gửi đến colormap
circuit để chuyển các pixel này sang các giá trị red, green và blue rồi gửi đến bộ DAC
video bên ngoài.
Hai mạch tạo xung đồng bộ được dùng để tạo các xung đồng bộ đứng và nằm
ngang. Bộ horizontal sync generator có đầu ra là tín hiệu gate một chu kì trùng khớp
với sườn lên của xung đồng bộ ngang, tín hiệu gate này nối với tín hiệu clock-enable
của bộ vertical sync generator vì thế nên clock-enable chỉ cập nhật bộ đếm thời gian
sau mỗi dòng pixel. Tín hiệu gate của vertical sync generator được dùng như tn hiệu
báo kết thúc một frame cho các khối dữ liệu pixel bên ngoài, đồng thời nó cũng reset
và xóa toàn bộ nội dung của pixel buffer nên bộ VGA generator luôn khởi động từ
trạng thái xóa sạch hoàn toàn với mọi frame.
Bộ tạo tín hiệu đồng bộ cũng tạo ra các tín hiệu horizontal và vertical blanking.
Khi dùng phép toán OR logic ta được tín hiệu blanking toàn cục. Các tín hiệu
blanking được kết hợp với các bit có trọng số thấp hơn ở bộ đếm horizontal pixel
counter để xác định khi nào đọc pixel từ bộ đệm. Ví dụ, nếu mỗi pixel có độ rộng 16
bit, thì một từ 16 bit sẽ cần được đọc sau mỗi chu kì clock. Vì thế nên hoạt động đọc
được khởi tạo bất cứ khi nào tín hiệu video không trống và 2 bit thấp của bộ đếm pixel
đều bằng 0.
21
Hình 1-11: Sơ đồ khối cấu trúc của bộ hiển thị hình ảnh VGA
Tín hiệu full signal được gửi ra nguồn dữ liệu pixel bên ngoài để báo cho biết
khi nào thì dừng việc điền dữ liệu vào bộ đệm. Với bộ đệm FIFO 256, tín hiệu full lên
cao khi 5 bit cao của tín hiệu FIFO level bằng 11111. Khiến cho b trống 7 bit trong
FIFO để điền các pixel khi các nguồn dữ liệu bên ngoài đã chót gửi dữ liệu vào trong
pipe. Đây gọi là cơ chế bộ đệm an toàn.
Kết luận:
Chương đầu tiên của Luận văn đã giới thiệu cơ sở lý thuyết về mã hóa hình ảnh
theo định dạng chuẩn JPEG, từ việc phân tích tìm hiểu quá trình mã hóa, chúng ta sẽ
có cơ sở để thực thi việc giải mã hình ảnh JPEG chính là một phần nội dung yêu cầu
của đề tài Luận văn. Chương này cũng đã trình bày phương pháp hiển thị hình ảnh trên
màn hình chuẩn VGA thông qua nguyên lý quét hình ảnh và các tín hiệu màu. Để thực
hiện việc hiển thị hình ảnh lên màn hình cần có bộ điều khiển tín hiệu tạo các xung
đồng bộ đứng và xung đồng bộ ngang để đưa các dòng pixel trong bộ đệm đã được
chuyển thành các tín hiệu Red, Green, Blue đến bộ DAC video bên ngoài.
22
CHƯƠNG 2: CÔNG NGHỆ NỀN TẢNG FPGA – PHƯƠNG PHÁP
XÂY DỰNG HỆ THỐNG NHÚNG TRÊN FPGA
Chương thứ hai của luận văn sẽ đưa ra những vấn đề cơ bản của công nghệ nền
tảng FPGA và giới thiệu về phương pháp xây dựng một hệ thống nhúng trên nền
FPGA sử dụng ngôn ngữ mô tả phần cứng VHDL.
2.1. Giới thiệu công nghệ nền tảng FPGA
Tên gọi FPGA viết tắt của Field Programable Gate Arrays, dùng để chỉ một
thiết bị bán dẫn bao gồm các khối logic lập trình được gọi là "Logic Block" và các kết
nối khả trình “Programmable Interconnect”. Các khối logic có thể được lập trình để
thực hiện các chức năng của các khối logic cơ bản như AND, XOR hoặc các chức
năng kết hợp phức tạp hơn như mã hóa, giải mã. Các khối logic cũng có thể bao gồm
cả các phần tử nhớ như các Flip-Flop hay những bộ nhớ hoàn chỉnh hơn như RAM.
Các kết nối khả trình cho phép các khối logic có thể nối với nhau theo thiết kế của hệ
thống giống như việc đi dây trong một bảng mạch điện tử thông thường. Hiện nay, một
số kiến trúc FPGA có thể cho phép cấu hình lại từng phần (partial re-configuration),
một phần của thiết kế được cấu hình lại ngay cả khi những thiết kế khác vẫn tiếp tục
hoạt động.
FPGA còn có một ưu điểm khi có thể tích hợp các bộ xử lý mềm hay vi xử lý
tích hợp do đó các vi mạch FPGA có thể hoạt động như một bo mạch hoàn chỉnh. Các
vi xử lý mềm/tích hợp trong FPGA có thể được thiết kế như các khối logic thông
thường, với mã nguồn do các hãng cung cấp. Vi xử lý thực thi các lệnh theo chương
trình được nạp riêng biệt, có các ngoại vi thiết kế linh động như giao tiếp UART, khối
vào/ra đa chức năng GPIO và khối kết nối Ethernet Các vi xử lý mềm/tích hợp cũng
có thể được lập trình lại trong khi hệ thống đang chạy.
Ứng dụng của FPGA hiện nay rất rộng rãi, điển hình như trong các lĩnh vực xử
lý tín hiệu số, xử lý ảnh, thị giác máy, nhận dạng giọng nói, mô phng đặc biệt trong
các lĩnh vực, ứng dụng có kiến trúc yêu cầu lượng rất lớn xử lý song song như mã hóa
và giải mã. Ngoài ra, FPGA còn được ứng dụng trong những hệ thống cần thực thi các
thuật toán như FFT, nhân chập, làm nhiệm vụ như một vi xử lý. Trong những năm gần
23
đây, công nghệ nền tảng FPGA đang được cung cấp và hỗ trợ phần mềm phát triển
ứng dụng bởi các hãng lớn như Xilinx, Altera, Actel, Atmel Xilinx và Altera là hai
hãng hàng đầu, cả hai hãng lớn đều cung cấp bộ công cụ phần mềm phát triển ứng
dụng miễn phí trên nền Windows, Linux.
2.1.1. Kiến trúc FPGA
Hình 2-1: Kiến trúc chung của FPGA [2].
Kiến trúc FPGA được mỗi nhà sản xuất quy ước riêng theo bộ công cụ phát
triển của hãng, nhưng cấu trúc chung của FPGA được thể hiện giống như trong Hình
2.1. Cấu trúc FPGA bao gồm có các khối logic khả trình (CLBs), các khối vào/ra khả
trình (IOBs), và các khối kết nối khả trình. FPGA có mạch clock để truyền tín hiệu
clock tới các khối logic, và các khối nguồn logic như ALUs, memory.
Các khối logic khả trình bao gồm các Look-Up Tables (LUTs) rất linh động có
chức năng thực thi các logic và các phần tử nhớ dùng như là các flip-flop hoặc các
chốt. CLBs thực hiện phần lớn các chức năng logic như là lưu trữ dữ liệu.
24
Hình 2-2: Một Logic Block điển hình
Các khối vào/ra khả trình điều khiển dòng dữ liệu giữa các chân vào ra I/O và
các logic bên trong của FPGA. Nó bao gồm có các bộ đệm vào và ra với ba trạng thái
và điều khiển ngõ ra dạng open collector. Phần lớn là có trở kéo lên ở ngõ ra và thỉnh
thoảng lại có trở kéo xuống. IOBs hỗ trợ luồng dữ liệu hai chiều và hoạt động logic ba
trạng thái. Hỗ trợ phần lớn các chuẩn tín hiệu, bao gồm một vài chuẩn tốc độ cao, như
Double Data-Rate.
Hình 2-3: Khối Logic khả trình.
Khối kết nối khả trình được dùng để nối các CLBs ở cách xa nhau mà không
gây ra quá nhiều trễ. Khối kết nối có thể được dùng như là các bus trong chip. Có các
đường line ngắn được dùng để liên kết các CLBs riêng rẽ đặt gần nhau. Các bộ chuyển
đổi lập trình được bên trong chip cho phép kết nối giữa CLBs tới các interconnect line
và giữa interconnect line với các line khác và với các bộ chuyển đổi. Các bộ đệm 3
trạng thái được dùng để kết nối phần lớn các CLBs với các đường line dài tạo nên các