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

Xây dựng driver hỗ trợ cho player các file MPEG trên t engine

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 (1.06 MB, 164 trang )

Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-------------------------

TRẦN QUỐC TUẤN

XÂY DỰNG DRIVER HỖ TR CHO PLAYER
CÁC FILE MPEG TRÊN T-ENGINE

Chuyên ngành: Khoa Học Máy Tính

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 11 năm 2007


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học: TS. PHẠM TƯỜNG HẢI

Cán bộ chấm nhận xét 1: TS. LÊ NGỌC MINH

Cán bộ chấm nhận xét 2: PGS-TS. LÊ TIẾN THƯỜNG

Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 22 tháng 02 năm 2008


ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA



CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc

Tp. HCM, ngày 05 tháng 11 năm 2007

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: Trần Quốc Tuấn.................................Giới tính: Nam ;/ Nữ …
Ngày, tháng, năm sinh: 26/02/1973......................................Nơi sinh: Cà Mau.
Chuyên ngành: Khoa học Máy tính ...................................................................................
Khóa: 2005 .........................................................................................................................
1- TÊN ĐỀ TÀI: Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine .......
2- NHIỆM VỤ LUẬN VĂN: ...........................................................................................
- Nghiên cứu tổng quan hệ thống nhúng và cách lập trình trên hệ thống nhúng cụ thể
trên bộ kit SH7760. ............................................................................................................
- Nghiên cứu cấu trúc file MPEG-2 phần video và cách giải mã trên máy PC. ................
- Từ hai kết quả trên tìm ra cách xây dựng chương trình giải mã file MPEG cho hệ
thống nhúng........................................................................................................................
- Xây dựng demo giải mã file MPEG-2 phần video trên bộ kit SH7760...........................
3- NGÀY GIAO NHIỆM VỤ: ......................................................................................
4- NGÀY HOÀN THÀNH NHIỆM VỤ: .....................................................................
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS. PHẠM TƯỜNG HẢI ......................
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)

CHỦ NHIỆM BỘ MÔN
QUẢN LÝ CHUYÊN NGÀNH
(Họ tên và chữ ký)

Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chun Ngành thơng

qua.
TRƯỞNG PHỊNG ĐT-SĐH

Ngày tháng năm 2008
TRƯỞNG KHOA QL NGÀNH


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

TÓM TẮT
Luận văn này giới thiệu một cách tổng quan hệ thống nhúng T-Engine, một
hệ thống có tính mở và được chuẩn hóa. Hiện nay nó là một nền tảng cho việc phát
triển các hệ thống nhúng thời gian thực. T-Engine được giáo sư Ken Sakamura ở
trường đại học Tokyo đưa ra với mục đích là chuẩn hóa hệ thống nhúng. Cùng với
việc giới thiệu hệ thống nhúng luận văn này còn giới thiệu về cấu trúc file MPEG-2
một file nén video được chuẩn hóa, các nguyên lý mã hóa và giải mã của file
MPEG-2. Từ đó xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine và
xây dựng chương trình demo để playback file MPEG-2 phần video trên bộ kit
SH7760 của công ty Renesas, làm tăng thêm chương trình ứng dụng trên hệ thống
nhúng.

i


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

ABSTRACT
This theme introduces the general of T-Engine system, this system has the
openness and standard. And now it is the foundation for developing the real time
embeded system. The T-Engine has been given by professor Ken Sakamura in the

Tokyo university for purposing the standard of embeded system. And this theme
introduces the structure of file MPEG-2 that files are compressed standard video
and the principles of encodes and decodes that file. About the result of embeded
system and file MPEG-2, we has researched. We constructed driver for player files
MPEG on T-Engine and write a demo program to play file MPEG-2 video on the
suit of the kit SH7760 of Renesas company. We write that program to increase
applications on embeded system.

ii


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

MỤC LỤC
trang
Chương 1: GIỚI THIỆU .......................................................................................... 1
Chương 2: CÁC CƠNG TRÌNH LIÊN QUAN ....................................................... 3
Chương 3: T-ENGINE/SH7760............................................................................... 6
3.1 Tổng quan về T-Engine ................................................................................. 6
3.2 Kiến trúc phần cứng T-Engine SH7760 ........................................................ 6
3.3 Kiến trúc phần mềm T-Engine SH7760 ........................................................ 7
3.4 Tổng quan về T-Kernel.................................................................................. 7
3.5 Các hàm system call ...................................................................................... 9
3.5.1 Các hàm quản lý task ........................................................................... 10
3.5.2 Đồng bộ task-dependent....................................................................... 11
3.5.3 Xử lý các ngoại lệ của task................................................................... 11
3.5.4 Đồng bộ giao tiếp ................................................................................. 12
3.5.4.1 Semaphore ................................................................................... 12
3.5.4.2 Event flag..................................................................................... 12
3.5.4.3 Mailbox........................................................................................ 12

3.5.5 Đồng bộ giao tiếp mở rộng .................................................................. 13
3.5.5.1 Mutex ........................................................................................... 13
3.5.5.2 Message buffer............................................................................. 13
3.5.5.3 Rendezvous port .......................................................................... 13
3.5.6 Quản lý Memory Pool .......................................................................... 14
3.5.6.1 Fixed size Memory pool .............................................................. 14
3.5.6.2 Variable-size Memory pool .......................................................... 14
3.5.7 Quản lý thời gian.................................................................................. 15
3.5.7.1 Quản lý thời gian hệ thống .......................................................... 15
3.5.7.2 Trình xử lý Cyclic........................................................................ 15
3.5.7.3 Trình xử lý Alarm ........................................................................ 15
3.5.8 Quản lý hệ thống .................................................................................. 15
iii


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

trang
3.5.9 Quản lý bộ nhớ hệ thống ...................................................................... 16
3.6 Tổng quan về LCD của T-Engine................................................................ 16
3.7 Nguyên tắc hiển thị của màn hình LCD. ..................................................... 17
3.7.1 Bộ điều khiển màn hình LCD (LCDC) ................................................ 17
3.7.2 Thơng số f_addr (real RAM logical address)....................................... 17
3.7.3 Thông số v_addr (logical address for virtual RAM)............................ 18
3.7.4 Cấu trúc của v_addr và f_addr ............................................................. 19
3.8 Cách vẽ dữ liệu lên LCD ............................................................................. 20
3.9 Một số kết quả vẽ ảnh lên màn hình LCD................................................... 21
3.9.1 Vẽ từng điểm ảnh dùng bảng màu chuẩn 24 bit của bộ kit SH7760.... 21
3.9.2 Vẽ từng điểm ảnh dùng bảng màu chuẩn 16 bit của bộ kit SH7760.... 22
Chương 4: CẤU TRÚC FILE MPEG VÀ CÁC GIẢI MÃ TRÊN MÁY PC. 23

4.1 Giới thiệu về file MPEG ............................................................................. 23
4.2 Lớp hệ thống của file MPEG....................................................................... 24
4.3 Một số thuật ngữ về MPEG video .............................................................. 26
4.4 Cấu trúc file MPEG video và cách giải mã ................................................. 28
4.4.1 Lớp Video sequence............................................................................. 30
4.4.1.1 Hàm video_sequence() ................................................................ 30
4.4.1.2 Hàm sequence_header()................................................................ 32
4.4.1.3 Hàm sequence_extension() ........................................................... 35
4.4.1.4 Hàm chọn lựa dữ liệu mở rộng cho đoạn sequence...................... 36
4.4.1.5 Hàm sequence_display_extension() ............................................. 37
4.4.1.6 Hàm quant_matrix_extension() .................................................... 40
4.4.1.7 Hàm picture_display_extension()................................................ 42
4.4.1.8 Hàm copyright_extension() .......................................................... 42
4.4.2 Lớp nhóm các khung hình.................................................................... 43
4.4.2.1 Hàm group_of_pictures_header() ................................................. 43
4.4.2.2 Hàm picture_data() ...................................................................... 44

iv


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

trang
4.4.3 Lớp khung hình ................................................................................... 44
4.4.3.1 Hàm picture_header() ................................................................... 44
4.4.3.2 Hàm picture_coding_extension().................................................. 45
4.4.3.3 Hàm extension_and_user_data() .................................................. 54
4.4.3.4 Hàm user_data()............................................................................ 55
4.4.4 Lớp slice ............................................................................................... 55
4.4.5 Lớp macroblock ................................................................................... 56

4.4.5.1 Hàm macroblock() ........................................................................ 56
4.4.5.2 Hàm macroblock_mode() ............................................................ 59
4.4.5.3 Hàm motion_vectors() .................................................................. 62
4.4.5.4 Hàm coded_block_pattern() ......................................................... 64
4.4.6 Mã hóa Block ....................................................................................... 64
4.5 Bù chuyển động ........................................................................................... 66
4.5.1 Dự đoán bù chuyển động trong P-picture ............................................ 66
4.5.2 Dự đoán bù chuyển động trong B-picture............................................ 68
4.5.3 Sự phát sinh của sự dịch chuyển chuyển động..................................... 69
4.5.4 Thành phần chính và thành phần dư thừa của độ dịch chuyển. ........... 71
4.5.5 Làm tròn số cho độ dịch chuyển chuyển động..................................... 72
4.5.6 Mã hóa và giải mã của các vector chuyển động................................... 72
4.5.6.1 Giải mã sự dịch chuyển chuyển động........................................... 73
4.5.6.2 Các vector chuyển động hướng tới ............................................... 74
4.5.6.3 Các vector chuyển động hướng lui ............................................... 75
4.5.6.4 P-picture và B-picture của các vector chuyển động ..................... 75
4.5.6.5 Tính sự dịch chuyển cho Y và C................................................... 76
4.5.7 Bù chuyển động trong MPEG-2........................................................... 77
4.5.7.1 Các vector chuyển động trong MPEG-2....................................... 77
4.5.7.2 Dự đoán dual-prime trong MPEG-2 ............................................. 80
4.5.7.3 Dự đoán bù chuyển động .............................................................. 82

v


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

trang
4.6 Xây dựng lại phần tử ảnh............................................................................. 82
4.6.1 Giải mã lượng tử hóa cho block độc lập .............................................. 82

4.6.2 DC dự đoán trong macroblock độc lập ................................................ 83
4.6.3 Giải mã lượng tử hóa cho block khơng độc lập ................................... 85
4.6.4 Sai lệnh trong IDCT và các đặc điểm của IDCT theo chuẩn IEEE ..... 86
4.6.5 Giới hạn việc gây lỗi ............................................................................ 89
4.6.6 Xây dựng lại phần tử ảnh trong MPEG-2 ............................................ 89
4.6.6.1 Xây dựng lại block độc lập trong MPEG-2 .................................. 90
4.6.6.2 Xây dựng lại block không độc lập trong MPEG-2 ....................... 91
4.7 Tóm tắt q trình giải mã và hiển thị hình ảnh video trên màn hình PC..... 92
4.8 Kết quả đạt được trên máy PC..................................................................... 93
Chương 5: CHUYỂN CHƯƠNG TRÌNH GIẢI MÃ FILE MPEG TỪ MÁY PC
SANG BỘ KIT SH7760 ....................................................................................... 97
5.1 Cách chuyển đổi chương trình giải mã từ chương trình chạy trên máy PC
sang bộ kit SH7760............................................................................................ 97
5.1.1 Task_main ............................................................................................ 98
5.1.2 Task_read MPEG ............................................................................... 100
5.1.3 Task_show.......................................................................................... 100
5.1.4 Task_play audio ................................................................................. 100
5.2 Những lỗi có thể gặp phải khi chuyển đổi chương trình giải mã từ chương
trình chạy trên máy PC sang bộ kit SH7760. ................................................. 100
5.2.1 Sự không trùng khớp về hai bảng màu của hai thiết bị phần cứng. ... 101
5.2.2 Lỗi do tốc độ đọc bộ nhớ lưu trữ dữ liệu chậm.................................. 107
5.2.3 Lỗi do chất lượng nén không phù hợp. .............................................. 108
5.2.4 Lỗi do thu nhỏ ảnh. ............................................................................ 109
5.3 Những hiệu chỉnh để chương trình thực hiện hiệu quả trên bộ kit SH7760111
5.3.1 Xây dựng bảng màu sử dụng 16 bit. .................................................. 111
5.3.2 Chép điểm ảnh giải mã được vào trực tiếp địa chỉ cần giải mã. ........ 114

vi



Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

5.3.3 Playback những file nén có kích thước, độ phân giải và độ nén hợp lý116
5.4 Các kết quả đạt được khi thực hiện chương trình giải mã file MPEG trên bộ
kit SH7760. ...................................................................................................... 117
5.4.1 Chương trình thực hiện theo cơ chế vừa đọc vừa giải mã. ................ 117
5.4.2 Đọc tất cả dữ liệu vào vùng đệm, sau đó vừa đọc vùng đệm vừa giải ..
mã….. .......................................................................................................... 119
5.4.3 Đọc dữ liệu từ file sau đó tách ra thành 2 phần video và audio riêng biệt
vào 2 file, sau đó giải mã hai file đó. .......................................................... 120
5.4.4 Đọc dữ liệu từ file sau đó tách ra thành 2 phần video và audio riêng biệt
vào 2 bộ đệm, sau đó giải mã hai bộ đệm đó. ............................................. 122
5.4.5 Đọc dữ liệu từ file sau đó tách ra thành 2 phần video và audio riêng biệt
vào 2 bộ đệm vịng, sau đó giải mã hai bộ đệm đó. Kết hợp với những thời
gian còn dư để đọc tiếp dữ liệu vào hai bộ đệm.......................................... 123
KẾT LUẬN .......................................................................................................... 126
TÀI LIỆU THAM KHẢO.................................................................................... 127
Phục Lục A: BIẾN ĐỔI RỜI RẠC COSIN......................................................... 128
A.1. Biến đổi thuận nghịch .............................................................................. 128
A.2. Lượng tử hóa ........................................................................................... 129
A.2.1 Quy ước làm trịn số trong lượng tử hóa ........................................... 130
A.2.2 Tỷ lệ của bảng lượng tử hóa.............................................................. 130
A.2.3 Lượng tử hóa của FDCT ................................................................... 131
A.2.4 Giải mã lượng tử của IDCT............................................................... 131
A.3 Sự sai lệch IDCT...................................................................................... 132
Phụ lục B: KHÔNG GIAN MÀU ...................................................................... 133
B.1 Không gian màu RGB............................................................................... 133
B.2. Luminance và chrominance ..................................................................... 134
B.3 Sự cảm nhận độ sáng ................................................................................ 134
B.4. Hiệu chỉnh gama ...................................................................................... 135

B.5 Luma và luminance hiệu chỉnh gamma. ................................................... 136

vii


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

trang
B.6 Hệ thống màu YUV và YCbCr và Chroma ................................... 136
Phụ lục C: NGUYÊN LÝ MÃ HÓA FILE MPEG ......................................... 138
C.1 Nguyên lý của mã hóa Huffman ............................................................... 138
C.2 Mã hóa Hệ số DC trong I-Pictures............................................................ 138
C.3 Mã hóa Hệ số AC trong I-Pictures............................................................ 140
C.4 Mã hóa P và B-Pictures............................................................................. 145

viii


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

DANH MỤC CÁC HÌNH
trang
Hình 3.1 Khối cơ bản của một T-Engine ................................................................. 6
Hình 3.2 Sơ đồ khối T-Engine SH7760 ................................................................... 7
Hình 3.3 Kiến trúc phần mềm T-Engine.................................................................. 8
Hình 3.4 Vị trí của T-Kernel .................................................................................... 9
Hình 3.5 Sơ đồ trạng thái của task ......................................................................... 10
Hình 3.6 Khối điều khiển LCD .............................................................................. 16
Hình 3.7 Sơ đồ khối nguyên tắc hiển thị ảnh của LCD ......................................... 17
Hình 3.8 Cập nhật dữ liệu f_addr từ v_addr .......................................................... 18

Hình 3.9 Cấu trúc và kích thước của v_addr và f_addr ........................................ 19
Hình 3.10 Cấu trúc màu của 16 bit màu ................................................................ 19
Hình 3.11 Hàm vẽ một điểm ảnh sử dụng bảng màu có 256 màu và 24 bit cho mỗi
phần tử.................................................................................................................... 22
Hình 4.1 Hệ thống cấu trúc giải nén file MPEG................................................... 24
Hình 4.2 Các thành phần của file MPEG video..................................................... 26
Hình 4.3 Cấu trúc phân cấp file MPEG Video ...................................................... 29
Hình 4.4 : Hàm MPEG-2 video_sequence() .......................................................... 31
Hình 4.5 : Hàm MPEG-1 video_sequence() .......................................................... 32
Hình 4.6 Hàm MPEG sequence_header().............................................................. 33
Hình 4.7: Hàm MPEG-2 sequence_extension ....................................................... 35
Hình 4.8: Hàm MPEG-2 extension_data()............................................................. 38
Hình 4.9 Hàm MPEG-2 sequence_display_extension() ........................................ 39
Hình 4.10 MPEG -2 Hàm quan_matrix_extension() ............................................. 41
Hình 4.11 Hàm MPEG -2 picture_display_extension()......................................... 42
Hình 4.12 Hàm MPEG -2 Copyright_extension() ................................................. 43
Hình 4.13 Hàm MPEG-2 group_of_picture_header() .......................................... 43
Hình 4.14 Hàm MPEG -2 picture_data() ............................................................... 44
trang
ix


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

Hình 4.15 Hàm MPEG -2 picture_header() ........................................................... 45
Hình 4.16 Hàm MPEG-2 picture_coding_extension() .......................................... 46
Hình 4.17 Hàm MPEG-2 extension_and_usr_data() ............................................. 55
Hình 4.18 Hàm MPEG-2 user_data() .................................................................... 55
Hình 4.19 Hàm MPEG -2 slice() ........................................................................... 56
Hình 4.20 Hàm MPEG -2 macroblock()................................................................ 57

Hình 4.21 Hàm MPEG -2 macroblock_mode() ..................................................... 60
Hình 4.22 Hàm MPEG -2 motion_vectors(s) ........................................................ 62
Hình 4.23 Hàm MPEG -2 motion_vector(r,s)........................................................ 62
Hình 4.24 Hàm MPEG -2 coded_block_pattern() ................................................. 64
Hình 4.25 Hàm MPEG -2 block(i)......................................................................... 64
Hình 4.26 P-picture motion vector displayments................................................... 67
Hình 4.27 B-picture motion vector displayments .................................................. 68
Hình 4.28 Hàm tính motion displacement ............................................................. 74
Hình 4.29 Hàm tính forward motion displacement................................................ 74
Hình 4.30 Hàm tính forward motion displacement................................................ 75
Hình 4.31 Hàm tính Motion_displacement_P()..................................................... 75
Hình 4.32 Hàm tính Motion_displacement_B() .................................................... 76
Hình 4.33 Hàm tính vector chuyển động ............................................................... 80
Hình 4.34 Hàm dự đốn chuyển động ................................................................... 82
Hình 4.35 Hàm tính inQ_intra()............................................................................. 83
Hình 4.36 Hàm tính invQ_intraY1() ..................................................................... 84
Hình 4.37 invQ_intraYnext() ................................................................................ 84
Hình 4.38 Hàm tính invQ_intra_Cb() .................................................................... 85
Hình 4.39 Hàm tính invQ_intra_Cr()..................................................................... 85
Hình 4.40 Hàm tính invQ_non_intra()................................................................... 86
Hình 4.41 Hàm tính invQ_intra()........................................................................... 91
Hình 4.42 Hàm tính invQ_non_intra()................................................................... 92
trang

x


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

Hình 5.1 Sơ đồ các task thực hiện giải thuật giải mã file MPEG .......................... 99

Hình 5.2 Chỉ cách chuyển từ bảng màu YCbCr sang RGB................................. 112
Hình A.1 Sơ đồ mã hóa và giải mã dùng biến đổi DCT ...................................... 128
Hình A.2 Làm trịn hệ số DCT............................................................................. 130
Hình B.1 Sơ đồ hệ thống nén và giải nén ............................................................ 135
Hình C.1 Thứ tự mã hóa của các macroblock và chuỗi dự đốn DC. ................. 139
Hình C.2 Thứ tự Zigzag của hệ số DCT .............................................................. 141
Hình C.3 Mã hóa kết thức khối trong MPEG ...................................................... 142

xi


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

DANH MỤC CÁC BẢNG
trang
Bảng 3.1 Thời gian vẽ các điểm trên màn hình trong trường hợp sử dụng bảng màu
có 256 màu và 24 bit cho mỗi phần tử ................................................................... 22
Bảng 3.2 Thời gian vẽ các điểm trên màn hình trong trường hợp sử dụng bảng màu
có 256 màu và 16 bit cho mỗi phần tử ................................................................... 22
Bảng 4.1 Mã bắt đầu của đoạn file MPEG ............................................................ 25
Bảng 4.2 Các mã của aspect_ration_information ................................................. 33
Bảng 4.3 Các mã của frame_rate_code ................................................................. 34
Bảng 4.4 Các mã của extension_start_code_identifier ......................................... 36
Bảng 4.5 MPEG-2 chroma format codes ............................................................... 36
Bảng 4.6 Các mã định dạng kiểu video ................................................................ 38
Bảng 4.7 Các mã của bảng màu gốc ...................................................................... 39
Bảng 4.8 Các mã của đặc tính truyền màu............................................................. 40
Bảng 4.9 Mã các hệ số ma trận .............................................................................. 40
Bảng 4.10 Mã các kiểu khung hình........................................................................ 45
Bảng 4.11 Các mã thuộc tính intra_dc_precision .................................................. 46

Bảng 4.12 Các mã cấu trúc ảnh.............................................................................. 47
Bảng 4.13 Sự kết hợp các thông số cho Field and frame....................................... 48
Bảng 4.14 The two MPEG-2 mapping between quantisier scale code and quantiser
scale........................................................................................................................ 19
Bảng 4.15 Chiều dài của biến mã cho hệ số AC. (s là 0 cho số dương và 1 cho số
âm).......................................................................................................................... 51
Bảng 4.16 Thứ tự hệ số DCT zigzag...................................................................... 52
Bảng 4.17 Luật kết hợp hai thông số field và frame ............................................ 53
Bảng 4.18 MPEG-2 field sequence codes.............................................................. 54
Bảng 4.19 Các mã cho việc tăng địa chỉ cho đồ dài macroblock .......................... 58
Bảng 4.20 VLC cho kiểu macroblock in I- P- B picture ...................................... 59
Bảng 4.21 Các kiểu mã hóa frame motion type và field motion ........................... 60
xii


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

trang
Bảng 4.22 MPEG-2 các kiểu frame chuyển động.................................................. 61
Bảng 4.23 MPEG -2 các kiểu của field chuyển động ............................................ 61
Bảng 4.24 Các kiểu mã hóa dct.............................................................................. 61
Bảng 4.25 Các mã độ dài của biến chuyển động ................................................... 63
Bảng 4.26 Các mã của dmvector[t] ....................................................................... 63
Bảng 4.27 Các mã MPEG-1 and MPEG-2 dct_dc_size _luminance .................... 65
Bảng 4.28 Các mã MPEG-1 and MPEG-2 dct_dc_size _chrominance ................ 65
Bảng 4.29 Các thông số của vector chuyển động .................................................. 70
Bảng 4.30 Các thông số cơ bản của vector chuyển động....................................... 70
Bảng 4.31 Tầm vực của mtion_r và hàm của f_code............................................. 72
Bảng 4.32 Các suy dẫn của sự dịch chuyển vector chuyển động .......................... 73
Bảng 4.33 Các thông số cơ bản của vector chuyển động....................................... 79

Bảng 4.34 MPEG-2 dual prime scaling factor m and line shift e .......................... 81
Bảng 4.35 Các toán hạng cho dùng trong xây dựng ánh ....................................... 90
Bảng 4.36 Một số kết quả chương trình giải mã file MPEG trên máy PC ............ 96
Bảng 5.1 Bảng màu chuẩn dùng trong bộ kit SH7760......................................... 104
Bảng 5.2 Bảng màu số không dùng trong nén và giải nén ảnh MPEG................ 107
Bảng 5.3 Tốc độ đọc dữ liệu từ thẻ nhớ của bộ kit SH7760................................ 108
Bảng 5.4 Thống kê chất lượng nén và tốc độ giải mã.......................................... 109
Bảng 5.5 Thống kê thời gian chạy khi thu nhỏ ảnh khơng vẽ trực tiếp lên địa chỉ
màn hình............................................................................................................... 111
Bảng 5.6 Thống kê thời gian chạy khi cải tiến bảng màu.................................... 114
Bảng 5.7 Thống kê thời gian chạy khi cải tiến gán điểm vào địa chỉ màn hình .. 116
Bảng 5.8 Thống kê tốc độ khi giải mã theo cơ chế vừa đọc vừa tách ................. 118
Bảng 5.9 Thống kê tốc độ khi giải mã theo cơ chế đọc vào vùng đệm rồi giải mã119
Bảng 5.10 Thống kê tốc độ khi giải mã theo cơ chế đọc vào vùng đệm rồi giải mã
.............................................................................................................................. 121

xiii


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

trang
Bảng 5.11 Thống kê tốc độ khi giải mã theo cơ chế đọc vào vùng đệm rồi giải mã
.............................................................................................................................. 123
Bảng 5.12 Thống kê tốc độ khi giải mã theo cơ chế đọc vào vùng đệm rồi giải mã
.............................................................................................................................. 125
Bảmg C.1 Mã hóa DC cho luminance và chrominance...................................... 139
Bảng C.2 Các ví dụ mã hóa vi phân DC .............................................................. 140
Bảng C.3 Sự kết hợp mã hóa của độ dài biến cho run-level ............................... 145


xiv


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

Chương 1: GIỚI THIỆU
T-Engine là một flatform được phát triển mở và chuẩn hóa cho những hệ
thống nhúng. Nó đóng một vai trị quan trọng trong việc xây dựng những hệ thống
tính tốn trong thời đại máy tính số được sử dụng rộng rãi khắp mọi nơi. T-Engine
là sự kết hợp của chuẩn phần cứng (T-Engine board) và hệ điều hành thời gian thực
(T-Kernel). T-Engine hỗ trợ sự phân phối middleware. Đây là một kiến trúc cho
phát triển hệ thống nhúng nhanh chóng và hiệu quả cho các sản phẩm ứng dụng
công nghệ thông tin.
Trong lĩnh vực hệ thống nhúng khác với thế giới của máy tính cá nhân, việc
sử dụng rộng rãi đủ các loại kiến trúc CPU và các phần cứng thông thường. Một hệ
điều hành thời gian thực và middleware phải được phát triển một cách riêng biệt
cho mỗi flatform phần cứng. Càng ngày càng có những yêu cầu mới về chức năng
của sản phẩm. Nhưng để thỏa mãn yêu cầu mới về chức năng của sản phẩm phải tốn
nhiều thời gian phát triển và chi phí cao. Trước tình hình đó giáo sư Ken Sakamura
(http//:tron.um.u-tokyo.ac.jp) trường đại học Tokyo muốn đưa hệ thống T-Engine
thành một hệ thống nhúng chuẩn hóa để phát triển trên nhiều hệ thống nhúng khác
nhau.
Các hệ thống nhúng cịn có các khe cấm mở rộng điều khiển tín hiệu ngõ ra.
Do đó người dùng có thể nối kết bộ kit này với các thiết bị điều khiển hoặc máy
tính. Nhờ đó tạo điều kiện thuận lợi cho việc khai thác các ứng dụng trên hệ thống
nhúng của T-Engine.
Ngày nay việc ứng dụng trên các hệ thống nhúng được ứng dụng ngày càng
nhiều, ví dụ như: Hệ thống chỉ dẫn đường cho xe hơi, nghe nhạc, xem truyền hình
xem phim hoặc truy cập internet trên các thiết bị cầm tay, điện thoại di động được
nhiều người quan tâm. Vì họ muốn có những tin tức hay giải trí ở bất cứ nơi đâu và

bất cứ lúc nào họ cần.

1


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

Đề tài này khai thác một ứng dụng để phục vụ một trong những nhu cầu trên
là xem phim trên T-Engine SH7760. Vì hệ thống nhúng thường có hệ thống lưu trữ
nhỏ và tốc độ CPU không nhanh cho lắm nên việc phát lại các file video từ các file
thu được từ máy camera gần như không thể thực hiện được. Do các file này có dung
lượng lớn nên không lưu trữ được và một lý do nữa là tốc độ truy xuất vùng nhớ lưu
trữ của T-Engine cũng chậm (SH7760 đọc 1 MB dữ liệu mất gần 1 giây). Do đó
muốn phát lại file video ta nên chọn các file nén.
File MPEG là file video nén được chuẩn hóa có kích thước rất nhỏ so với file
gốc, có chất lượng hình ảnh gần bằng với file gốc vì dùng phương pháp nén cả
không gian (loại bỏ những dư thừa do những điểm ảnh lân cận giống nhau), nén cả
thời gian (loại bỏ những dư thừa do các khung hình giống nhau) và xóa bỏ đi những
phần mà mắt thường khó thấy được sự thay đổi.
Mục đích của luận văn này là xây dựng các driver hỗ trợ cho các player các
file MPEG trên T-Engine. Xây dựng demo phát lại file MPEG-2 phần video trên bộ
kit SH7760.

2


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

Chương 2: CÁC CƠNG TRÌNH LIÊN QUAN
Theo xu hướng hiện nay thì hệ thống nhúng ngày càng được ứng dụng nhiều

trong thực tế, các sản phẩm dân dụng như đồng hồ báo thức, máy giặt, máy lạnh,
điện thoại di động đến các sản phẩm, trang thiết bị hiện đại dùng trong kỹ thuật
quân sự như thiết bị dẫn đường cho tên lửa, vệ tinh, thông tin liên lạc … Một yêu
cầu quan trọng của hệ thống nhúng là thông dụng và giá thành rẽ, do đó lúc mới
phát triển ứng dụng các vi xử lý trong các hệ thống này thường có tốc độ thấp để
giảm giá thành. Nhưng đến nay thì các ứng dụng trên địi hỏi phải có tốc độ xử lý
nhanh để đáp ứng kịp thời các cơng việc và phải có giá thành hợp lý, các sản phẩm
phần mềm đó được dùng chung các hầu hết các thiết bị phần cứng. Do đó cần có
một hệ thống nhúng được chuẩn hóa để làm điều đó. T-Engine là một hệ thống
nhúng được giáo sư Ken Sakamura đưa ra để làm việc đó.
Trang web: được xem là như là một diễn đàn về
kiến trúc hệ thống nhúng, các ứng dụng của hệ thống nhúng. Tại đây các nhà nghiên
cứu thường xuyên đăng tải các bài báo về hầu hết các lĩnh vực liên quan đến hệ
thống nhúng. Thông tin về các công ty, trường đại học và các chuyên gia hàng đầu
nghiên cứu về lĩnh vực hệ thống nhúng có thể tìm thấy ở đây. Bên cạnh đó các
thành viên trong diễn đàn có thể đăng các bài báo về kết quả nghiên cứu của mình
hoặc là các vấn đề của mình chưa giải quyết được liên quan đến hệ thống nhúng lên
đây. Trang web tài còn cung cấp các tài liệu về T-Engine và các ứng dụng mẫu để
người muốn nghiên cứu về lĩnh vực này có tài liệu tham khảo.
Trang web: cung cấp cho chúng ta những thông
tin về khai thác các ứng dụng trên hệ thống nhúng. Những tài liệu cơ bản để hiểu rõ
hệ thống nhúng, nguyên lý hoạt động hệ thống nhúng.
Giới thiệu hệ thống nhúng T-Engine, một hệ thống nhúng có tính mở được
chuẩn hóa và hiện nay là nền tảng tốt nhất để phát triển các hệ thống nhúng thời
gian thực. Nói về lịch sử, nguồn gốc phát triển và các thành tựu đạt được của T-

3


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine


Engine. Đồng thời trình bày các vấn đề chính yếu để người đọc có thể tiếp cận hệ
thống nhúng T-Engine một cách nhanh nhất, hiểu được cấu trúc phần cứng, kiến
trúc phần mềm và có thể phát triển các ứng dụng trên hệ thống nhúng. Cụ thể là quy
trình phát triển ứng dụng trên hệ thống nhúng T-Engine/SH7760 của hãng Renesas
[1].
Trang web: là một tổ chức để chuẩn hóa file video nén
trong đó có chuẩn MPEG-2. Trang web này nói lên nguồn gốc hình thành và q
trình phát triển các file video nén dạng MPEG. Đặc biệt trang web này còn cho ta
biết cấu trúc của các file nén này. Cung cấp nhiều mã nguồn mở cho việc playback
các file MPEG trên máy PC. Tại đây các nhà khoa học, các nhà nghiên cứu các
chuyên gia có thể đăng tải những nghiên cứu của mình về file MPEG, những thắc
mắc của những người muốn tìm hiểu về file nén này cũng có thể hỏi trên trang web
này đề cùng nhau giải quyết. Ngồi ra trang web này cịn cung cấp nhiều link để
cho ta đến các trang web khác nói về file nén.
Trang web: là một trang web
như một giáo trình nói về cấu trúc của các loại file video nén. Trong trang web này
nói lên cấu trúc của file MPEG, các khái niệm, các thuật ngữ dùng cho file MPEG,
các hằng số, thông số và cách thức nén file MPEG cùng với các đoạn chương trình
mã giả gần giống với ngôn ngữ C để người đọc có thể tìm hiểu về file MPEG một
cách dễ dàng.
Cung cấp các nguyên lý để loại bỏ những thông tin dư thừa trong lưu trữ để
khi playback chất lượng hình ảnh gần giống với file video gốc. Các khái niệm, các
cách mã hóa dữ liệu của file video thơng thường sang file MPEG-2. Cũng như cung
cấp cách giải mã từ file MPEG khi playback [4].
Trang web là sản phẩm của một số phần mềm
thương mại mà họ đã thực hiện trong việc playback file MPEG cho Pocket PC
home hoặc Smartphone.

4



Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

Trang web cho
ta biết cấu trúc file MPEG cách phát, truyền nhận và phát lại trong viễn thông.
Trang web Trang web này cho ta biết về cấu
trúc file MPEG cũng như cách thức giải mã file này khi playback.
Ngoài ra việc playback các file video nén trên các điện thoại di động và các
thiết bị cầm tay cũng được các hãng sản xuất ra nó khai thác để phù hợp với nhu
cầu của người dùng.
Để khai thác thêm các ứng dụng trên hệ thống nhúng T-Engine, đề tài này sẽ
xây dựng các driver hỗ trợ cho player các file MPEG trên T-Engine. Cụ thể là thực
hiện demo playback file MPEG-2 trên bộ kit SH7760.

5


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

Chương 3: T-ENGINE/SH7760
3.1 Tổng quan về T-Engine
T-Engine là một flatform được phát triển mở và chuẩn hóa cho những hệ
thống nhúng. Nó được ứng dụng trong việc nhúng với các máy tính thơng minh và
việc liên kết mạng.
T-Engine là sự kết hợp của chuẩn phần cứng (T-Engince board) và hệ điều
hành thời gian thực (T-Kernel). T-Engine còn được hỗ trợ sự phân phối middleware
T-Engine hỗ trợ eTRON, một kiến trúc bảo mật mạng phát triển dựa trên
TRON Project đảm bảo an tồn thơng tin trong khi truyền.
Các ngõ vào

(Inputs)

Bộ xử lý trung tâm
(CPU)

Các ngõ ra
(outputs)

Hình 3.1 Khối cơ bản của một T-Engine

3.2 Kiến trúc phần cứng T-Engine SH7760
T-Engine SH7760 của hãng Renesas là một microcomputer có bộ điều khiển
và màn hình tinh thể lõng, điều khiển giao tiếp USB, điều khiển PCMCIA, sound
generator chip, SIM Card connector, ngoài ra còn kèm theo một đơn vị quản lý bộ
nhớ MMU, bộ điều khiển trạng thái bus cho phép kết nối với bộ nhớ SDRAM. Vì
vậy SH7760 thuận tiện cho phát triển trong điều khiển tự động, hệ thống bán hàng
tự động, các thiết bị cầm tay, các ứng dụng trong cơng nghiệp…
Board T-Engine SH7760 có bus địa chỉ, bus dữ liệu và khe cắm mở rộng
điều khiển tín hiệu ngõ ra. Do đó người dùng có thể kết nối bộ kit này với các thiết
bị cần điều khiển.
T-Engine SH7760 được kết nối với máy tính bằng cáp RS-232C và dùng
phần mềm Tera Term Pro. Phần mềm này mô phỏng đầu cuối cho Window. Nó có

6


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

chức năng như là một telnet client kết nối với một telnet server chạy trên Cygwin.
Phần mền này còn sử dụng để mơ phỏng T-Engine.


Hình 3.2 Sơ đồ khối T-Engine SH7760

3.3 Kiến trúc phần mềm T-Engine SH7760
T-monitor: T-monitor là công cụ để thiết lập nên trạng thái ban đầu khi khởi
tạo hệ thống, kèm theo chức năng dị tìm các lỗi cơ bản của hệ thống. Khi bật nguồn
lên T-monitor khởi động các trạng thái phần cứng ban đầu rồi kế đến là khởi động
T-Kernel.
T-Kernel: T-Kernel là một hệ điều hành thời gian thực.

7


Xây dựng driver hỗ trợ cho player các file MPEG trên T-Engine

Devices Driver: Các trình điều khiển thiết bị dùng để điều khiển các thiết bị
phần cứng. T-Kernel quản lý các trình điều khiển này và các ứng dụng có thể sử
dụng các trình điều khiển thiết bị thơng qua việc gọi các hàm hệ thống T-Kernel.
T-Kernel mở rộng: Mở rộng thêm các chức năng của T-Kernel và thực hiện
các chức năng của của hệ thống ở mức độ cao.
T-Kernel mở rộng
Các T-kernel mở rộng
Standard

Tiny

khác (T-linuxm T-Java..)

T-Kernel


standard device driver

T-Monitor
Hình 3.3 Kiến trúc phần mềm T-Engine

3.4 Tổng quan về T-Kernel
T-Kernel là một hệ điều hành thời gian thực (real-time) do đó trong mỗi cơng
việc của T-Kernel ta đều có thể thiết lập một thơng số thời gian timeout cho nó.
T-Kernel một cách tổng qt thì có: T-Kernel Operating System (TKernel/OS), T-Kernel System Manager (T-Kernel/SM), T-Kernel Debugger
Support(T-Kernel/DS). Nhưng trong một trường hợp xây dựng ứng dụng trên TEngine thì T-Kernel được hiểu như là T-Kernel/OS.
T-Kernel Operating System cung cấp một số chức năng như sau:
• Hàm điều khiển task
• Hàm giao tiếp task
• Hàm quản lý bộ nhớ
• Hàm quản lý các Exception/interrupt
• Hàm quản lý thời gian
8


×