xây dựng engine giải mã video h.264 trên hệ thống nhúng

101 359 0
xây dựng engine giải mã video h.264 trên hệ thống nhúng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 TÓM TẮT NỘI DUNG NGHIÊN CỨU +. S chip PNX1500. video H. 1 (720x640). . 2 SUMMARY OF RESEARCH CONTENT In this project “H.264 decoder on embedded systems”, we do research on H.264 video compression standard and AAC audio compression standard and build a product named slH264Decoder. This product is a decoder for H.264 video and AAC audio on Nexperia platform including Trimedia processors and real-time operating system pSOS+ slH264Decoder is implemented based on two popular open source project on x86 PC platform, FFmpeg (H.264 part) and faad (AAC part). We reconstructed, rewrote, optimize the source codes to obtain the real-time decoding speed on PNX1500 processor. The architecture of slH264Decoder is compatible with OpenMAX standard. Testings and evaluations on Trimedia PNX1500 hardware show that slH264Decoder can decode video H.264 and audio AAC data contained in MP4 format file. The decoding speed is real-time (25 fps in PAL and 30 fps in NTSC). The screen size can be up to D1 resolution (720x640) We are also successful in porting slH264Decoer to ARM Embedded Linux platform to evaluate multi-platform porting capability of OpenMAX standard and slH264Decoder. 3 Chuẩn H.264 là một chuẩn nén/giải nén video chất lượng cao hiện đang được sử dụng rất phổ biến trên các nền tảng PC, web, thiết bị kỹ thuật số cá nhân, điện thoại di động,… Vì lý do đó, nhóm nghiên cứu phần mềm nhúng của PTN. Công nghệ phần mềm (SELab) – trường ĐH. KHTN Tp.HCM – quyết định đi sâu nghiên cứu để nắm được công nghệ giải nén H.264 và hướng tới xây dựng sản phẩm thương mại engine giải nén video H.264 cho các thiết bị sử dụng nền tảng NXP Trimedia/ARM. . , nhóm thực hiện đã nhận được sự hỗ trợ rất lớn từ phía công ty NXP Việt nam về thiết bị thử nghiệm, hỗ trợ kỹ thuật và các tài liệu tham khảo. Bên cạnh mục tiêu nghiên cứu và xây dựng đội ngũ, n còn riêng của Việt nam so với các nước trong khu vực. Chúng tôi cảm ơn Sở KHCN Tp.HCM đã tạo điều kiện đầu tư tốt nhất để nhóm thực hiện đề tài. Cám ơn công ty NXP đã hỗ trợ rất nhiều về mặt kỹ thuật và trang thiết bị. Cám ơn các Thầy/Cô trong hội đồng đánh giá đã có nhiều góp ý và cung cấp tư liệu tham khảo. Cám ơn các bạn thành viên của nhóm và SELab đã nhiệt tình làm việc trong 02 năm qua để đạt kết quả tốt nhất. . Tp.HCM, ngày 28 tháng 12 năm 2010 Chủ nhiệm đề tài Nguyễn Tri Tuấn 4 Tên đề tài: Chủ nhiệm đề tài: Cơ quan chủ trì: .HCM Thời gian thực hiện đề tài: 12/2010 Kinh phí đƣợc duyệt: Kinh phí đã cấp: 22 theo TB số : 167/TB-SKHCN ngày 08/09/2008 5 Mục tiêu: ) Xây dựng hệ thống phần mềm lõi giải mã video H.264 dùng để phát triển các thiết bị nhúng đa phương tiện như set-top-box, đầu DVD, IP camera v.v… Hỗ trợ các chuẩn nén video và audio mới nhất hiện nay là H.264 và AAC Tương thích với các họ vi xử lý ARM và Trimedia Khả năng tích hợp cao Đạt tốc độ thời gian thực Kiến trúc hệ thống dễ bảo trì, thay đổi, sửa lỗi Đa platform Triển khai thử nghiệm: Thiết kế và xây dựng prototype thiết bị H.264 Player cầm tay trên phần cứng Trimedia của hãng NXP Nội dung: ) 1. Nghiên cứu kỹ thuật lập trình nhúng trên các họ chip ARM, Trimedia 2. Nghiên cứu kiến trúc và kỹ thuật lập trình thời gian thực trên các platform pSOS và Embedded Linux 3. Nghiên cứu quy trình và xác định quy trình kiểm thử cho sản phẩm của đề tài 4. Nghiên cứu chuẩn OpenMAX và thiết kế kiến trúc hệ thống tương thích với chuẩn OpenMAX 5. Nghiên cứu chuẩn AAC 6. Nghiên cứu chuẩn H.264 Thuật toán nén, giải nén Định dạng dữ liệu MP4 7. Nghiên cứu kỹ thuật xử lý ảnh số nguyên trên hệ thống nhúng 8. Xây dựng engine giải nén H.264 và AAC 6 Engine giải nén H264 có kiến trúc như sau : Chuẩn H.264 là một chuẩn mở, chỉ bao gồm các đặc tả về cấu trúc lưu trữ dữ liệu, cách thức tổ chức và các bước trong quá trình nén/giải nén, chứ không đưa ra những thuật toán nén/giải nén cụ thể cho từng bước. Nội dung nghiên cứu của đề tài là: Nghiên cứu các qui ước của chuẩn đặt ra về cấu trúc dữ liệu lưu trữ, dữ liệu vào và ra của từng bước trong quá trình giải nén Nghiên cứu tìm ra các thuật toán thích hợp nhất trong các bước giải nén cụ thể (phù hợp với các yêu cầu của thiết bị, môi trường…) 9. Thiết kế và xây dựng prototype thiết bị H.264 Player cầm tay trên phần cứng Trimedia 7 TT 01 Nghiên cứu kỹ thuật lập trình nhúng trên các họ chip ARM và Trimedia Chương 2 02 Nghiên cứu kiến trúc và kỹ thuật lập trình thời gian thực trên plaform pSOS và Embedded Linux Chương 3 03 Nghiên cứu chuẩn OpenMAX và triển khai thiết kế kiến trúc hệ thống tương thích với chuẩn OpenMAX Chương 6 04 .264 bao gồm thuật toán nén, giải nén và định dạng dữ liệu H.264 Chương 4 05 Nghiên cứu kỹ thuật xử lý ảnh số nguyên và thử nghiệm trên hệ thống nhúng Chương 5 06 Xây dựng engine giải nén H.264 Chương 8, 9 07 Xây dựng engine giải nén AAC Chương 6, 8, 9 08 Nghiên cứu quy trình và xác định quy trình kiểm thử cho sản phẩm của đề tài Chương 10 09 Triển khai thử nghiệm trên phần cứng của NXP Trimedia Chương 9, 10 10 Thiết kế và xây dựng prototype thiết bị H.264 cầm tay C 11 Kiểm thử và đánh giá chất lượng sản phẩm Chương 10 8 Danh sách cán bộ tham gia thực hiện đề tài: STT Tên tổ chức, cá nhân Học vị Học hàm Cơ quan công tác Nội dung công việc tham gia 1 Nguyễn Tri Tuấn Thạc sĩ SELab Chủ nhiệm 2 Trương Thiên Đỉnh Cao học SELab Quản lý dự án 3 Nguyễn Thị Kiêm Ái Cao học SELab Kiểm soát chất lượng 4 Trần Phước Tâm Cử nhân SELab Nghiên cứu viên 5 Hoàng Quốc Minh Thạc sĩ SELab Nghiên cứu viên 6 Nguyễn Tuấn Khang Cao học SELab Nghiên cứu viên 7 Phạm Đào Võ Nhật Quang Cao học SELab Nghiên cứu viên 8 Châu Chí Thiện Cao học SELab Nghiên cứu viên 9 Trần Hoàng Khanh Cử nhân SELab Nghiên cứu viên 10 Trần Nguyên Đại Hãn Cao học SELab Nghiên cứu viên 11 Hứa Lê Thanh Vy Cao học SELab Nghiên cứu viên 12 Nguyễn Xuân Nhật Cao học SElab Nghiên cứu viên 13 Trần Phượng Hoàng Cao học SElab Nghiên cứu viên 14 Chung Quang Khánh Cao học SElab Nghiên cứu viên 9 9 DANH MỤC HÌNH 13 DANH MỤC BẢNG 15 CHƢƠNG 1 : TỔNG QUAN VỀ ĐỀ TÀI 17 1.1 Các kết quả nghiên cứu và sản xuất phần mềm nhúng trên thế giới 17 1.2 OpenMAX và vấn đề chuẩn hóa phần mềm nhúng 18 1.3 Tính cấp thiết của đề tài 19 1.3.1 Tiềm năng ngành công nghiệp nội dung multimedia 19 1.3.2 Tiềm năng thị trường thiết bị multimedia: 21 1.4 Ý nghĩa và khả năng áp dụng thực tiễn 22 CHƢƠNG 2 : NẾN TẢNG NEXPERIA TRIMEDIA 24 2.1 Tổng quan dòng Trimedia 24 2.2 Các tính năng chính của TriMedia 25 2.3 Lịch sử phát triển 25 2.4 Các lõi CPU đã được công bố 26 2.5 Hệ thống trên chip (System on chip) 27 2.5.1 Thiết bị ngoại vi thông minh 28 2.5.2 TM-1300 Input/Output 29 2.5.3 TM-1500 I/O 31 2.5.4 Lõi CPU 33 2.5.5 Bộ biên dịch 34 2.6 Kiến trúc pSOS 35 2.6.1 Tổng quan 35 2.6.2 pSOSystem của TriMedia 36 2.6.3 Môi trường phát triển tích hợp 39 2.7 Kỹ thuật lập trình thời gian thực 39 2.7.1 Lõi xử lý thời gian thực pSOS+ 40 2.7.2 Lời gọi hệ thống 42 2.7.3 Độ ưu tiên của tác vụ 42 2.7.4 Các ngăn xếp dành cho tác vụ 43 2.7.5 Giao tiếp, đồng bộ hóa, thẻ độc quyền (mutex) 43 2.7.6 Hàng đợi thông điệp 43 2.7.7 Sự kiện 44 2.7.8 Semaphore 44 2.7.9 Các thẻ độc quyền 45 2.7.10 Quản lý thời gian 45 CHƢƠNG 3 : HỆ THỐNG ARM VỚI NỀN TẢNG EMBEDDED LINUX 47 3.1 Dòng ARM 47 10 3.1.1 Sơ lược về tên gọi: 47 3.1.2 Sự kế thừa cấu trúc: 47 3.1.3 Mô hình thiết kế ARM (3) : 47 3.1.4 Cấu trúc load-store (3) : 48 3.1.5 Tập lệnh của ARM: 49 3.1.6 ARM C-Compiler: 49 3.2 Kiến trúc Embedded Linux 50 3.2.1 Bootloader (vivi, u-boot), kernel, root filesystem 50 3.2.2 Device driver 55 3.2.3 Application 55 3.2.4 Stand-alone mode 56 3.2.5 Quá trình tạo tập tin thực thi 57 3.2.6 Trình biên dịch GNU C/C++ 58 3.2.7 Quá trình biên dịch 58 3.3 Kỹ thuật lập trình thời gian thực trên Linux 59 3.3.1 Định nghĩa Tiến trình 59 3.3.2 Daemon processes 60 3.3.3 Lệnh ps 60 3.3.4 Lệnh kill 61 3.3.5 Lệnh Top 61 3.3.6 Giao tiếp và đồng bộ 62 CHƢƠNG 4 : NGHIÊN CỨU CHUẨN VIDEO H.264 68 4.1 Giới thiệu các chuẩn video thông dụng hiện nay 68 4.1.1 Dòng MPEG (4) 69 4.1.2 Dòng H.26x 70 4.1.3 Việc sử dụng chuẩn 71 4.1.4 Một số thuật ngữ chung về mã hóa video 72 4.2 Tổng quan về quy trình nén và giải nén của chuẩn H.264 (6) 74 4.2.1 Qui trình nén (7) 75 4.2.2 Qui trình giải nén 79 4.2.3 So sánh với các chuẩn nén video trước đây 80 4.3 Cấu trúc H.264 81 4.3.1 Không gian màu YCbCr và kiểu lấy mẫu 4:2:0 81 4.3.2 Macroblock 82 4.3.3 Slice 83 4.3.4 Profile 85 4.4 Quy trình mã hóa hình ảnh của chuẩn H.264 87 4.4.1 Dự đoán Inter 87 4.4.2 Dự đoán Intra 93 4.4.3 Lọc tách khối (deblocking filter) 96 4.4.4 Biến đổi và lượng tử hóa 97 4.4.5 Tái sắp xếp (reorder) 107 4.4.6 Mã hóa Entropy 108 CHƢƠNG 5 : CÁC THUẬT TOÁN XỬ LÝ ẢNH CƠ BẢN 116 5.1 Phép biến đổi DCT 116 5.1.1 Phép biến đổi Cosin một chiều 119 [...]... trình cài đặt thuật toán xử lý ảnh, âm thanh trên PC thường chạy rất chậm khi được chuyển đổi sang chạy trên hệ thống nhúng 17 Vấn đề kích thƣớc bộ nhớ : Các phần mềm chạy trên PC thường được thiết kế với giả định kích thước bộ nhớ của hệ thống là đủ lớn Tuy nhiên điều này không đúng trên hệ thống nhúng, kích thước bộ nhớ 1.2 OpenMAX và vấn đề chuẩn hóa phần mềm nhúng Sự phát triển của các phần cứng thuộc... cả hệ thống là rẻ nhất có thể 27 Hình 2-2 :Kiến trúc hệ thống trên chip của TriMedia Kiến trúc hệ thống trên chip của TriMedia có 3 thành phần chính: 1 Lõi CPU TriMedia – được tối ưu cho việc xử lý media 2 Co-processor – được thiết kế giúp tăng tốc quá trình xử lý video 3 Thiết bị ngoại vi dành cho việc nhập xuất (I/O peripherals) – thiết bị I/O hiệu suất cao được tích hợp trên chip Kiến trúc hệ thống. .. vực này thường được tính trên đầu thiết bị Ví dụ nếu giá một engine decoder H.264 giá 2 USD/thiết bị Engine này được nạp vào 100.000 thiết bị thì tiền bản quyền thiết bị là 200.000 USD 23 CHƢƠNG 2 : NẾN TẢNG NEXPERIA TRIMEDIA  Giới thiệu về kiến trúc xử lý, nguyên lý biên dịch chương trình trên chip thuộc dòng Trimedia - kiến trúc hệ thống trên hệ điều hành hỗ trợ lập trình nhúng là pSOS 2.1 Tổng quan... đây là Philips) Các phần mềm lõi mã nguồn mở trên PC có chất lượng tốt và khá ổn định tuy nhiên lại không sử dụng lại được trên Hệ Thống Nhúng do nhiều nguyên nhân Có 2 nguyên nhân quan trọng nhất là : Vấn đề xử lý dấu chấm động (1): để tiết kiệm năng lượng nên các loại CPU hệ thống nhúng thường không có bộ xử lý số thực dấu chấm động FPU (Floating Point Unit) (2) như trên CPU của máy PC Cho nên, những... thiết kế cho việc giải mã Huffman (phần quan trọng trong chuẩn MPEG) Bộ giải nén DVD-CSS dùng cho việc giải mã các mô hình DVD copy Các thiết bị nhập xuất video xử lý các video số chuẩn CCIR 656/601 Chúng cũng có thể được dùng cho dữ liệu thô 8 đến 10 bit với tốc độ xử lý 80 Mbyte/s Các thiết bị ngoại vi dành cho xử lý video cũng hỗ trợ tính năng canh tỷ lệ, lọc ảnh video, chồng ảnh video bằng hiệu ứng... phần mềm nhúng mới nhằm để làm tăng tính tái sử dụng của phần mềm nhúng Ý tưởng chung là tạo ra các middleware (phần mềm lõi trung gian) chạy được trên nhiều loại phần cứng khác biệt Các nhà sản xuất thiết bị sẽ xây dựng phần mềm cho thiết bị nhúng trên nền của những phần mềm lõi này Đi đầu trong lĩnh vực phần mềm multimedia hệ thống nhúng là tập đoàn Texas với bộ phần mềm lõi Davinci và tập đoàn NXP... Hình 3 – Giao diện chọn tập tin video để play 225 DANH MỤC BẢNG Bảng 2-1 - Bảng các lời gọi hệ thống cho việc quản lý tác vụ 42 Bảng 2-2 - Bảng các lời gọi xử lý hàng đợi thông điệp 44 Bảng 2-3 - Bảng các lời gọi hệ thống dành cho sự kiện 44 Bảng 2-4 - Bảng các lời gọi hệ thống liên quan đến Semaphore 45 Bảng 2-5 - Bảng các lời gọi hệ thống liên quan đến thẻ độc quyền... 2-6 - Bảng các lời gọi hệ thống dùng để quản lý thời gian 46 Bảng 7 – Các kiểu dữ liệu chuẩn OpenMAX DL được tích hợp vào bộ giải nén 187 Bảng 8 – Các hàm OpenMAX DL được tích hợp vào bộ giải nén video H.264 187 Bảng 9 – Bảng thống kê tốc độ giải nén sau khi tối ưu 190 Bảng 10 – Scale và cách cài đặt các chức năng playback 196 Bảng 11 – Chuẩn hiển thị trên các thiết bị phổ biến... mua lại TTI Năm 2002, dòng CPU TM3260 được giới thiệu thông qua hệ thống trên chip xử lý media PNX1500 Dòng CPU này là sản phẩm đầu tiên trong họ sản phẩm có tích hợp hệ thống xử lý Audio /Video trên chip TM3260 cũng được sử dụng trong các sản phẩm khác của NXP như PNX8550 Năm 2004, lõi CPU siêu phân luồng TM5250 được công bố và giành giải thưởng Best Media Processor do Microprocessor Report trao tặng... 179 8.5.1 Khởi tạo hệ thống 179 8.5.2 Truy vấn handle của một thành phần 180 8.5.3 Tạo kết nối trực tiếp (tunnel) giữa 2 thành phần 181 8.5.4 Chuyển trạng thái của một thành phần sang EXECUTING 182 8.5.5 Chuyển trạng thái của một thành phần sang PAUSE 183 8.6 Kiến trúc tổng thể của hệ thống 184 CHƢƠNG 9 : XÂY DỰNG BỘ GIẢI MÃ slH264Decoder 186 . kích thƣớc bộ nhớ : Các phần mềm chạy trên PC thường được thiết kế với giả định kích thước bộ nhớ của h thống là đủ lớn. Tuy nhiên điều này không đúng trên h thống nhúng, kích thước bộ nhớ như trên CPU của máy PC. Cho nên, những chương trình cài đặt thuật toán xử lý ảnh, âm thanh trên PC thường chạy rất chậm khi được chuyển đổi sang chạy trên h thống nhúng. 18 Vấn đề kích. Nghiên cứu kỹ thuật xử lý ảnh số nguyên trên h thống nhúng 8. Xây dựng engine giải nén H. 264 và AAC 6 Engine giải nén H2 64 có kiến trúc như sau : Chuẩn H. 264 là một chuẩn mở, chỉ bao gồm

Ngày đăng: 07/02/2015, 22:56

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan