1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: Xây dựng lõi IP H264 video encoder cho các ứng dụng nhúng sử dụng soc trên nền tảng FPGA

74 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

TRẦN NGUYỄN THANH LÂN

XÂY DỰNG LÕI IP H264 VIDEO ENCODER CHO CÁC ỨNG DỤNG NHÚNG SỬ DỤNG SOC TRÊN NỀN TẢNG FPGA

DESIGN IP CORE H264 VIDEO CODEC SOLUTION FOR EMBEDDED APPLICATION USING FPGA WITH SOC

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

LUẬN VĂN THẠC SĨ

TP Hồ Chí Minh, tháng 08 năm 2021

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI

TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG TP.HCM

Cán bộ hướng dẫn khoa học: PGS TS PHẠM QUỐC CƯỜNG

3 Phản biện 1: PGS TS Đinh Đức Anh Vũ4 Phản biện 2: TS Bùi Trọng Tú

5 Ủy viên: PGS TS PHẠM QUỐC CƯỜNG

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng khoa quản lý chuyênngành sau khi luận văn đã được sửa chữa (nếu có).

CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA

KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCMCỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAMTRƯỜNG ĐẠI HỌC BÁCH KHOAĐộc lập - Tự Do - Hạnh Phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: Trần Nguyễn Thanh Lân MSHV: 1870173

Ngày, tháng, năm sinh: 19/09/1993 Nơi sinh: Bình ThuậnChuyên ngành: Khoa học Máy tính Mã số: 8480101

1 TÊN ĐỀ TÀI:

XÂY DỰNG LÕI IP H264 VIDEO ENCODER CHO CÁC ỨNG DỤNG NHÚNG SỬDỤNG SOC TRÊN NỀN TẢNG FPGA

2 NHIỆM VỤ VÀ NỘI DUNG:

Tìm hiểu bài toán kết hợp bộ Encoder H.264 trên các thiết bị hiện đại nói chung vàFPGA nói riêng Tiến hành nghiên cứu về chuẩn mã hóa video H.264/AVC và các mãnguồn hiện thực encoder của chuẩn H.264 Sử dụng bộ công cụ HLS của Xilinx để xâydựng phần cứng tăng tốc phần mềm encoder H.264, kết hợp so sánh hiệu quả của giảipháp HLS với giải pháp hiện tại trên nền tảng FPGA.

3 NGÀY GIAO NHIỆM VỤ: 22/02/2021

4 NGÀY HOÀN THÀNH NHIỆM VỤ: 13/06/20215 CÁN BỘ HƯỚNG DẪN: PGS.TS Phạm Quốc Cường

Trang 4

Lời Cảm Ơn

Lời đầu tiên, tôi muốn gửi lời cảm ơn chân thành đến thầy PGS.TS Phạm QuốcCường đã hướng dẫn và giúp đỡ tôi trong thời gian thực hiện đề tài luận văntốt nghiệp lần này Những lời nhận xét, góp ý và hướng dẫn của Thầy đã giúptôi có hướng đi đúng trong quá trình thực hiện đề tài, giúp tôi thấy được nhữngthuận lợi và hạn chế của các phương pháp tiếp cận khác nhau và từng bước khắcphục để ngày một tốt hơn.

Tiếp theo tôi muốn gửi lời cảm ơn đến những bạn học viên trong phòng thínghiệm Kỹ Thuật Máy Tính, từ các bạn sinh viên đến những bạn trợ giảng đãhỗ trợ tôi rất nhiều trong quá trình tiếp cận với luận văn này.

Đồng thời tôi cũng muốn gửi lời cảm ơn sâu sắc đến gia đình và bạn bè đãđộng viên, cổ vũ tinh thần và góp ý trong suốt quá trình học tập và thực hiệnđề tài, đặc biệt là gia đình đã chăm lo và hy sinh rất nhiều để tôi có thể chuyêntâm học tập.

Sau cùng, tôi xin kính chúc quý Thầy Cô trong khoa Khoa Học và Kĩ ThuậtMáy Tính thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh caođẹp của mình là truyền đạt kiến thức cho thế hệ mai sau.

Thành phố Hồ Chí Minh, 07/2021Trần Nguyễn Thanh Lân

Trang 5

Tóm Tắt

H.264 là một trong những chuẩn mã hóa video phổ biến nhất hiện nay, nó đượcđồng phát triển bởi hai nhóm chuyên gia về mã hóa video là ITU-T VCEG(Video Coding Experts Group) và MPEG (Moving Picture Experts Group).Video ở định dạng 1080 và thậm chí 4K sau khi được nén bới H.264 có dunglượng nhỏ, phù hợp cho việc lưu trữ và truyền tải qua các mạng internet Đâycũng là chuẩn mã hóa video được sử dụng nhiều nhất hiện nay trong nhiềungành công nghiệp như DVD/BD, HDTV, Youtube, các ứng dụng streaming,truyền hình, lưu trữ video, v.v

Với việc thiết kế ngày càng trở nên phức tạp, ngôn ngữ đặc tả phần cứutruyền thống (HDLs) như VHDL hay Verilog ngày càng trở nên khó khăn đểbắt kịp các thiết kế này Giải pháp được đưa ra là sử dụng một loại ngôn ngữ cấpcao hơn để đặc tả phần cứng High-Level Synthensis (HLS) là một một phươngpháp sử dụng ngôn ngữ lập trình C/C++ để đặc tả phần cứng và tự động sinhra HDL Điều này khiến mã nguồn trở nên dễ hiểu hơn và giảm đi thời gian sửdụng để hiện thực các thiết kế.

Đề tài luận văn này sử dụng board FPGA Ultra96-V2 để tạo nên một bảnhiện thực bộ mã hóa H.264 dựa trên nền tảng HLS để tối ưu hóa tốc độ vàthời gian tính toán trên nền tảng hệ điều hành Linux Mã nguồn H.264 encodertrong đề tài này một bản mã nguồn mở của cộng đồng và đã được dùng trongnhiều phiên bản Linux khác nhau Mục tiêu của đề tài này là dựa trên nền tảngđang có sẵn để tăng tốc độ xử lý H.264 trên board FPGA, kết quả của của đềtài cho thấy các thành phần được tối ưu của bộ mã hóa H.264 có tốc độ và hiệunăng cao hơn so với ban đầu.

Trang 6

H.264, one of the most popular video coding standards, is co-developed by T VCEG (Video Coding Experts Group) and MPEG (Moving Picture ExpertsGroup) from ISO/IEC JTC1 Videos (1080p and even 4K) compressed by H.264are relatively easier to save, compress, and deliver via the network And it is themost accepted codec implemented in almost all multimedia industries includingDVD/BD, HDTV, YouTube video, live streaming, broadcasting, video recording,etc.

ITU-As designs become more and more complex, traditional hardware (HW) scription languages (HDLs), such as Very High Speed Integrated Circuit Hard-ware Description Language (VHDL) or Verilog, cannot be used to present thedesigns without increasing effort The solution for this is a higher abstractionlanguage for describing HW High-Level Synthesis (HLS) is a way of using aprogramming language like C or C++ to describe the HW and automaticallygenerating the HDL from it This makes the code easier to understand anddecreases the time used for implementing the design.

de-This Thesis uses Ultra96-V2 to create an HLS-based implementation of H.264library for Linux on a Field Programmable Gate Array (FPGA) The objectiveis to accelerate the processing speed of this library on Ultra96-V2 board usingevery available methods like: HLS, memory access optimization, kernel optimiza-tion Compared to the existing H.264 Video Encoding libraries for Linux, resultsindicate that those special H264 libraries and applications could fully show theiradvantages in high-speed and flexibility.

Trang 7

Lời cam đoan

Tôi là Trần Nguyễn Thanh Lân, học viên cao học khoa Khoa Học và Kĩ ThuậtMáy Tính, Đại học Bách Khoa TP HCM, MSHV 1870173 Tôi xin cam đoanrằng luận văn thạc sĩ "Xây dựng và bộ lõi IP cho H264 video encoder cho cácứng dụng nhúng trên FPGA" là kết quả tìm hiểu, nghiên cứu độc lập của chínhbản thân Tôi xin cam đoan:

1 Luận văn được thực hiện cho mục đích tìm hiểu và nghiên cứu ở bậc caohọc

2 Các công trình, bài báo tham khảo để xây dựng nên luận văn này đều đượctrích dẫn, tham khảo Tất cả các tài liệu được trích dẫn và có tính kế thừatừ các tạp chí và các công trình nghiên cứu đã được công bố

3 Những công cụ, phần mềm cho quá trình thực hiện luận văn đều là phầnmềm mã nguồn mở

4 Hình ảnh và số liệu được trích dẫn nguồn tham khảo rõ ràng

5 Kết quả nghiên cứu được trình bày trung thực dựa trên số liệu thực tế khichạy chương trình

TP.HCM, ngày 21 tháng 7 năm 2021Học viên

Trần Nguyễn Thanh Lân

Trang 8

2.2.3 Các công đoạn của bộ mã hóa H.264 21

2.2.4 Công đoạn dự đoán 22

2.2.5 Biến đổi và lượng tử hóa 27

Trang 9

MỤC LỤC

3.2.1 Xây dựng bộ giải mã CAVLC trên FPGA 33

3.2.2 Hiện thực quá trình intraprediction cho HEVC trên FPGA 343.2.3 Xây dựng bộ lọc nội suy cho khối Intraprediction trên FPGA 343.3 Kết luận 35

4 Phương pháp giải quyết vấn đề 374.1 Những mã nguồn H.264 đã được chứng nhận 37

5.1.1 Tối ưu hóa mã nguồn 49

5.1.2 Tổng hợp các khối IP thành hệ thống hoàn chỉnh 53

5.2 Kết luận 56

6 Kết luận 576.1 Kết quả đạt được 57

6.2 Hướng nghiên cứu tiếp theo 58

Lý lịch trích ngang

Trang 10

Danh sách hình vẽ

1.1 Video Coding trong thực tế - 1 chiều (1) 2

1.2 Video Coding trong thực tế - 2 chiều (1) 3

2.1 Một frame cảnh được lấy mẫu (1) 8

2.2 Top field của cảnh được lấy mẫu (1) 9

2.3 Bottom field của cảnh được lấy mẫu (1) 9

2.4 Ảnh gốc ban đầu 10

2.5 Ảnh sau khi được tách xuất thành 3 channel riêng biệt 11

2.6 Ảnh sau khi được tách xuất thành 3 thành phần Y:Cr:Cb 12

2.7 Block diagram của video encoder (1) 16

2.8 Các quy trình hoạt động của chuẩn mã hóa H.264(1) 17

2.9 Các lớp cú pháp của H.264 (1) 18

2.10 Đặc điểm của các loại profiles trong H.264 (2) 20

2.11 Sơ đồ khối của bộ mã hóa H.264 (2) 21

2.12 Các loại Macroblock và cách dự đoán (1) 23

2.13 Các hướng dự đoán của luma 4x4 prediction (1) 24

2.14 Các cách chia nhỏ MB (1) 24

2.15 Ví dụ về motion vector trong interprediction (1) 26

3.1 Giải pháp IP core cho chuẩn mã hóa H.264 của Atria (3) 31

3.2 Lõi IP cứng H.264 của Atria (3) 32

3.3 Sơ đồ khối lõi IP mềm H.264 của Atria(4) 32

3.4 Sơ đồ khối của bộ giải mã hỗn loạn (entropy decoder) (5) 333.5 Phương pháp HLS các vòng lặp của bộ intraprediction HEVC (6) 34

Trang 11

DANH SÁCH HÌNH VẼ

4.1 Sơ đồ hoạt động của mã nguồn JM (1) 38

4.2 Các khối cơ bản trong mã nguồn x264 39

4.3 Các hàm chính trong khối Filter x264 40

4.4 Các hàm chính trong khối Analysis x264 41

4.5 Các hàm chính trong khối Encode x264 41

4.6 Các hàm chính trong khối Entroy Encoding x264 42

4.7 Kết quả của perf cho x264 43

4.8 Hình mẫu ứng dụng HLS trên FPGA 44

4.9 Sử dụng kỹ thuật loop unroll cho một đoạn mã nguồn 45

4.10 Giao diện làm việc Vitis HLS 45

4.11 Kết quả thiết kế các khối IP 46

4.12 Cấu hình phần cứng vừa xây dựng trong petalinux 47

4.13 Tinh chỉnh kernel Linux 47

4.14 Tinh chỉnh cấu hình của rootfs 48

5.1 So sánh kết quả của các kỹ thuật tối ưu cho hàm pixel_avg_16x16 505.2 So sánh kết quả của các kỹ thuật tối ưu cho hàm pixel_sad_16x16 515.3 So sánh kết quả của các kỹ thuật tối ưu cho hàm pixel_ssd_16x16 525.4 So sánh kết quả của các kỹ thuật tối ưu cho hàm quant_4x4x4 52

5.5 Kết quả sau khi tổng hợp trên Vivado 53

5.6 Kết quả chi tiết tương ứng 54

5.7 Board boot thành công trên Linux và có các khối IP 55

Trang 12

Danh sách bảng

2.1 CIF Video Frame Format (1) 13

2.2 HD Video Format (1) 14

5.1 Bảng so sánh thời gian thực hiện từng hàm 56

5.2 Bảng so sánh thời gian khi chạy toàn hệ thống 56

Trang 13

Để phục vụ nhu cầu ứng dụng video ngày một tăng cao cả về số lượng cũngnhư chất lượng video, các chuẩn nén video lần lượt được cho ra đời InternationalTelecommunication Union (ITU-T) và Moving Pictures Expert Group (MPEG)đã cùng hợp tác thành một nhóm thống nhất có tên Joint Video Team (JVT)để làm việc trên một chuẩn video mới, có tên gọi H.264, H.264/AVC AdvancedVideo Coding, hay còn được biết đến với cái tên MPEG-4 part 10, đây là mộtchuẩn coding có thể đạt được độ tối ưu cao hơn với độ phức tạp chi tiết đơngiản hơn những chuẩn ra đười trước đó, đồng thời nó còn tương thích với tất cảchuẩn kết nối internet và kiến trúc truyền nhiều phương tiện một lúc (multiplexarchitecture) (2) Hiện nay, chuẩn H.264 vẫn là một trong những chuẩn codec

Trang 14

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

hoàn hảo nhất và có khả năng ứng dụng trong nhiều lĩnh vực cả mới và cũ baogồm họp trực tuyến, truyền hình ảnh, live video stream, v.v đồng thời phùhợp với nhiều loại kết nối và chuẩn truyền tải.

Hình 1.1: Video Coding trong thực tế - 1 chiều (1)

Bắt đầu từ năm 2008, công nghệ H.264 đã được áp dụng vào ngành cameragiám sát để tăng thời gian lưu trữ và đáp ứng các tiêu chuẩn video độ nét cao FullHD1080P Đến nay toàn bộ các sản phẩm camera và đầu ghi hình của các hãngđều đã được tích hợp chuẩn nén hình H.264 do nhu cầu phát triển của ngành vàcác chi phí cho ổ cứng lưu trữ đã được giảm đi đáng kể Ngoài ra H.264 còn cótrong dịch vụ phát video trực tuyến như Youtube, Vimeo, iTunes Store, v.v .Các phần mềm web như Adobe Flash, Microsoft Silverlight, HTML, v.v Nócòn được sử dụng trong các dịch vụ truyền hình HDTV mặt đất (ATSC, ISDB-T,DVB-T, DVB-T2), cáp (DVB-C) và vệ tinh (DVB-S và DVB-S2).

Tuy được sử dụng rộng rãi trong nhiều ứng dụng, bản thân H264 cũng mangđến những khó khăn nhất định dành cho những nhà nghiên cứu và phát triểnsản phẩm H.264/AVC sử dụng những giải thuật phức tạp hơn để đạt được tỉlệ nén vượt trội so với những chuẩn nén trước đó (1) Năng lượng tiêu thụ, cáccổng luận lý được sử dụng, chi phí thiết kế và độ khả biến (flexibility) là những

Trang 15

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

Hình 1.2: Video Coding trong thực tế - 2 chiều (1)

H.264/AVC codec Thế nhưng đây cũng là yêu cầu của thị trường và công nghệngày nay, khi mà nhu cầu về chất lượng video và số lượng người dùng ngày càngtăng cao Điều đó khiến cho các hãng sản xuất, nhà nghiên cứu, phát triển sảnphẩm tiêu tốn không ít chi phí vào cuộc chơi này Bản chất của hiệu năng vượttrội của H.264 khiến nó có độ phức tạp cao không kém, và đó trở thành mộttrở ngại chính dành cho các kỹ sư và nhà thiết kế khi phải làm việc, phát triểncác phần mềm tương tác với một bộ H.264 codec H.264 có nhiều lựa chọn tùychỉnh và thông số đầu vào (control knobs) hơn hẳn so với các chuẩn nén trướcđó Tinh chỉnh các tùy chỉnh và thông số phù hợp cho một ứng dụng không phảilà một việc dễ dàng, làm chính xác thì H.264 sẽ đưa ra được một kết quả nénvới hiệu năng vượt trội, nhưng nếu sai thì kết quả sẽ là những thước video cóchất lượng tệ hại và hiệu năng đường truyền (bandwidth efficiency) thấp (2).Ngoài ra, H.264 còn có đặc điểm là hao tổn tính toán rất cao (computationalexpensive), vì thế ảnh hưởng đến tốc độ xử lí khi encode/decode và mức tiêuthụ năng lượng lớn.

Lĩnh vực IoT và Embedded System hiện nay cũng không ngoại lệ khi nhu cầusử dụng video ngày càng tăng cao, vì thế các ứng dụng của H.264/AVC xuấthiện ngày càng nhiều Thế nhưng bên cạnh độ phức tạp của chính H.264/AVC,bản chất của các sản phẩm IoT hay Embedded System đều đặt nặng tính thờigian thực (Real-time), điều đó đòi hỏi hiệu năng xử lý cao không chỉ của quytrình nén mà cả những hàm thao tác trước và sau khi nén ví dụ như: scale,filter, deinterlacing, v.v Những đặc tính đó khiến FPGA là một giải phéphoàn toàn thích hợp cho các ứng dụng truyền tải video trong lĩnh vực nhúng.FPGA với các phần cứng khả cấu hình là một giải pháp có chi phí thấp, tính

Trang 16

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

linh động cao, đồng thời cung cấp khả năng xử lý song song trong việc convert(transcode) các chuẩn truyền tải khác nhau, đáp ứng đầy đủ các nhu cầu củatruyền tải video trong lĩnh vực nhúng (8).

Qua những lí do nêu trên, ta có thể thấy chi phí để đầu tư nghiên cứu và pháttriển một bộ H.264 codec là rất lớn, vì thế rất ít công ty lựa chọn tự phát triểnmột bộ codec cho riêng mình mà sẽ đi tìm những giải pháp đã có sẵn trên thịtrường Và trên thực tế, hiện nay thị trường đã xuất hiện nhiều doanh nghiệpthiết kế và sản xuất thành công các giải pháp cho H.264 với nhiều loại sản phẩmđa dạng Về software, các công ty lớn như Apple, Adobe System, Intel, x264,Sony v.v đều đã sản xuất những bộ H.264 codec riêng cho các sản phẩm củamình và cung cấp chúng ra thị trường, tuy vậy không phải thiết bị phần cứngnào cũng có thể sử dụng chúng theo nhu cầu Về hardware, đã có nhiều sảnphẩm trên thị trường như: lõi IP (Intellectual Property core) cả cứng và mềmdành cho các thiết bị ASIC hoặc FPGA, chips đơn H.264 encoder/decoder dànhriêng cho các thiết bị SoC.

1.2Thiết lập mục tiêu

Truyền tải video là một lĩnh vực màu mỡ và đầy tiềm năng, với nhu cầu ngàycàng tăng, đặc biệt là trong Embedded và IoT Như đã đề cập ở trên, sử dụngFPGA là một trong những giải pháp hợp lí nhất cho việc ứng dụng H.264 vàotrong lĩnh vực Embedded Trên thị trường hiện nay đã có nhiều sản phẩm IPcore cho FPGA và SoC của các công ty thiết kế chips, từ soft IP core cho đếnhard IP core, tuy vậy chi phí cho một bộ IP core là vô cùng lớn Vì thế, đề tàiluận văn này sẽ đi sâu vào hướng thiết kế, phát triển và cải thiện hiệu năng chomột lõi IP mềm (soft IP core) trên một thiết bị MPSoC FPGA của Avnet cótên Ultra96-v2 (9) Trong đó, phần thứ nhất chứa lõi xử lý cứng xây dựng trênchip ARM Cortex-A53, cho phép thực thi những hệ điều hành và chương trìnhứng dụng phức tạp Phần thứ hai cho phép người dùng tùy biến cấu hình vàthực hiện nhiều thiết kế IP trên thành phần này.

Bài nghiên cứu này có tham khảo qua một số bài báo trên IEEE về thiết kế

Trang 17

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

và giúp tương thích với phần cứng sử dụng Mục đích của bài nghiên cứu là xâydựng một giải pháp lõi IP H.264 encoder dựa trên nền tảng mã nguồn mở vàcác ứng dụng chạy trên vi xử lý ARM Cortex, kết hợp giữa phần CPU trên SoCvà các lõi IP được xây dựng trên khối khả cấu hình của FPGA.

Vì một số quy trình tiếp cận cũng như ràng buộc về thời gian, nền tảng củacông nghệ, nghiên cứu này sẽ sẽ tập trung vào việc phân tích mã nguồn bộ mãhóa H.264, sau đó sử dụng bộ phần mềm của Xilinx để thử nghiệm, hiện thựcvà kiểm thử những mô hình HLS tối ưu từng thành phần của quá trình mã hóavideo.

1.3Kết quả đạt được

Trong nghiên cứu này, các chi tiết về quá trình mã hóa video sẽ được đề cậpqua, tương ứng với đó là phân tích những phần mã nguồn tương ứng với các quátrình đó Các thành phần mã nguồn có hao tổn tính toán lớn sẽ được tìm ra vàđưa vào bộ phần mềm Xilinx, sau đó sử dụng các kỹ thuật tối ưu để tăng tốcvà xây dựng thành một khối IP trên khối khả cấu hình của FPGA bằng ngônngữ đặc tả phần cứng HLS Các khối tăng tốc phần cứng sau đó sẽ được kết nốilại với khối xử lý CPU của FPGA để tạo thành một hệ thống hoàn chỉnh.

Đề tài sẽ so sánh tốc độ và hiệu năng của từng phần được tăng tốc riêng biệt,đồng thời điều khiển và sử dụng chúng trên nền tảng hệ điều hành Linux bằngcác giao thức drivers của Xilinx cung cấp để tạo thành một khối lõi IP hoànhchỉnh.

1.4Cấu trúc của luận văn

Cấu trúc của báo cáo được tổ chức như sau:

• Chương 1 - Giới thiệu vấn đề: nhằm giới thiệu tổng quan về bái toán mãhóa video và phương pháp giải quyết.

• Chương 3 - Cơ sở lý thuyết: trình bày những lý thuyết liên quan được sửdụng trong bài nghiên cứu

Trang 18

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

• Chương 2 - Các nghiên cứu liên quan: bao gồm các công trình nghiên cứuliên quan đến việc hiện thực hóa các quy trình của bộ mã hóa H.264 trênnền tảng FPGA

• Chương 4 - Phương pháp tiếp cận: phân tích đặc điểm của mã nguồ và trìnhbày cụ th ểphương pháp đề xuất và cách thức quy trình hoạt động

• Chương 5 - Kết quả thực nghiệm: là kết quả đánh giá của phương pháp đềxuất và so sánh với các phương pháp khác

• Chương 6 - Kết luận: nêu ra các kết luận đúc kết được trong quá trìnhnghiên cứu và hướng phát triển tiếp theo trong tương lai.

Trang 19

Chương 2

Cơ sở lý thuyết

Chương này sẽ đi sâu và giải thích những khái niệm liên quan đến Digitalvideo Sau đó sẽ đưa những thông tin tổng quan về cách hoạt động của chuẩnmã hóa video H.264/AVC và đi sâu về các quy trình hoạt động của một bộ mãhóa H.264.

2.1Tổng quan về Digital Video

Video số (digital video) là sự diễn tả một đoạn video tự nhiên trong thế giớithực thông qua lấy mẫu (sampling) Thường thì những cảnh vật sẽ được lấymẫu trong một khoảng thời gian nhất định để tạo thành một frame hoặc fieldở chính thời điểm đó Lấy mẫu thường được lặp lại sau một khoảng thời gian(thường là 1/25 hoặc 1/30 giây) để tạo thành một đoạn video chuyển động Mộtđoạn video tự nhiên thường bao gồm nhiều đối tượng (object) khác nhau, từngđối tượng đó mang những đặc điểm riêng về hình dạng, độ sâu, cấu trúc riêngbiệt Màu sắc và độ tương phản của một đoạn video tự nhiên cũng liên tục thayđổi Cùng với sự thay đổi về ánh sáng, góc quay camera, những đặc điểm trêncủa một đoạn video tự nhiên ảnh hưởng rất lớn đến việc xử lý và mã hóa video.

2.1.1Frames và Fields

Như đã đề cập ở trên, một đoạn video có thể được tạo bằng cách lấy mẫu mộtchuỗi những frames, gọi là progressive sampling, hoặc bằng những đoạn fields

Trang 20

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

xen kẽ (interlaced), cách lấy mẫu này có tên interlaced sampling.

Hình 2.1: Một frame cảnh được lấy mẫu (1)

Trong một đoạn interlaced video, một nửa dữ liệu trong một frame sẽ đượcchứa trong một field Một filed thường sẽ chứa toàn bộ những dòng lẻ (odd-numbered lines) hoặc dòng chẵn (even-numbered lines) của một frame hoànchỉnh và vì vậy, một đoạn video interlaced sẽ chứa một chuỗi nhiều fields để tạothành một video hoàn chỉnh Ưu điểm của cách lấy mẫu video này là nó tạo rasố lượng fields gấp đôi số lượng frames trong cùng một đoạn thời gian, điều đógiúp cho các chuyển động trong video được lưu trữ trở nên mượt mà hơn.

Trang 21

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Hình 2.2: Top field của cảnh được lấy mẫu (1)

Hình 2.3: Bottom field của cảnh được lấy mẫu (1)

Điều quan trọng cần chú ý rằng một đoạn digital video có thể được lưu trữ(capture) và trình chiếu (play back) bằng cả hai phương pháp progressive vàinterlaced Vì thế, một video được lưu trữ bằng phương pháp interlaced phảiđược biến đổi (convert) nếu muốn trình chiếu theo phương pháp progressive.

Trang 22

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.1.2Color Spaces

Tất cả các ứng dụng lúc hiển thị đều phụ thuộc vào màu sắc của video và vìthế, cần có một phương thức để thu giữ và hiển thị thông tin màu sắc của đoạnvideo Những đặc tính của video bao gồm độ tương phản (brightness), độ chóisáng (luminance - luma) và màu sắc được thể hiện qua các những phương thứccó tên là không gian màu (color spaces).

Đây là không gian màu được phổ biến rộng rãi nhất và là không gian màuphù hợp nhất để lưu trữ hình ảnh Trong không gian màu này, màu sắc của mỗibức ảnh được thể hiện bằng ba con số tương ứng với thành phần Đỏ (Red),Xanh lá (Green) và Xanh da trời (Blue) Kết hợp ba thành phần này với nhaubằng các giá trị khác nhau có thể tạo ra bất cứ màu sắc nào Đồng thời, mộtbức ảnh cũng có thể được tách xuất ra làm ba thành phần khác nhau Thànhphần Red chỉ bao gồm những mẫu có màu đỏ, tương tự với Blue và Green.

Hình 2.4: Ảnh gốc ban đầu.

Trang 23

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Hình 2.5: Ảnh sau khi được tách xuất thành 3 channel riêng biệt.

Để lưu trữ được hình ảnh trong không gian màu RGB cần lọc ra các thànhphần màu đỏ, xanh lá và xanh dương của cảnh vật là lưu trữ bằng các cảm biếnriêng biệt.

Không gian màu này ra đời vì bản chất hệ thị giác của con người nhạy cảmvới độ chói (luminance) hơn so với màu sắc Thay vì lưu trữ thành phần màusắc riêng biệt và ngang bằng như trong không gian màu RGB, hình ảnh có thểđược thể hiện hiệu quả hơn bằng cách tách biệt độ chói ra khỏi thông tin màusắc Y:Cr:Cb là một không gian màu nổi tiếng về khả năng tái hiện màu sắcmột các hiệu quả, với Y là thành phần luminance và có thể tính bằng số bìnhquân gia quyền (weighted average) của nhân tố R, G và B:

với k là trọng số (weighted factors).

Thông tin màu sắc có thể được biểu diễn bằng thành phần khác biệt màu sắc(chrominance - chroma), với mỗi thành phần chrominance được tính bằng hiệu

Trang 24

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

của của R, G, B và luminance Y:

Cr = R − YCb = B − YCg = G − Y

Chi tiết màu sắc hình ảnh của không gian màu này được cung cấp bởi Y,thành phần luma, và ba thành phần chroma Cr, Cb, Cg Hình 3.6 dưới đây thểhiệu các thành phần luma chroma Y:Cr:Cb tương ứng của hình gốc 3.4:

Hình 2.6: Ảnh sau khi được tách xuất thành 3 thành phần Y:Cr:Cb.

Đến đây có thể thấy, cách thể hiện màu này có nhiều thông số hơn so vớiRGB vì sử dụng đến 4 thành phần thay vì chỉ 3 thành phần R, G và B Tuynhiên,Cr + Cb + Cg là hằng số nên trong không gian màu Y:Cr:Cb chỉ các thànhphần luma Y, red chroma Cr, blue chrom Cb được lưu trữ và truyền tải Ưuđiểm của không gian màu này là thành phần chroma có thể được hiển thị ở độphân giải thấp hơn thành phần luma vì thị giác con người vốn nhạy cảm vớiluma hơn là màu sắc Điều này mang ý nghĩa rất lớn vì có thể giảm lượng dữ

Trang 25

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

xử lý video trở nên đơn giản hơn nhưng không hề mất đi độ hiệu quả.

Một bức ảnh RGB sau khi được chụp có thể được convert sang không gianmàu Y:Cr:Cb để giảm thiểu dung lượng và tiêu hao truyền tải (ví dụ trườnghợp truyền qua mạng internet) Trước khi hiển thị, bức ảnh sẽ lại được convertvề không gian màu RGB Công thức chuyển đổi giữa hai không gian màu nhưsau (1):

Y = 0.299R + 0.587G + 0.114BCb = 0.564(B − Y )

Cg = 0.713(R − Y )

R = Y + 1.402Cr

G = Y − 0.344Cb − 0.714CrB = Y + 1772Cb

Nên nhớ G có thể được tính bằng Y:Cr:Cb nên thành phần Cg không cần phảilưu trữ và truyền tải, điều này đồng nghĩa với việc đánh đổi dung lượng lưu trữvới yêu cầu tính toán, và tối ưu dung lượng vẫn được ưu tiên hơn trong các ứngdụng ngày nay.

2.1.3Định dạng và chất lượng của video

Thuật toán mã hóa video của chuẩn H.264 có khả năng mã hóa nhiều loạiđịnh dạng video frame (video frame format) khác nhau Bảng 3.1 dưới đây liệtkê những định dạng video trung bình (Common Intermediate Format - CIF)phổ biến Xếp trên chất lượng trung bình và từng có độ phổ biến rộng rãi, nhất

FormatLuminance ResolutionBits per frame (4:2:0, 8 bits mỗi sample)

Trang 26

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

là trong xử lí video cho thiết bị TV chính là định dạng tiêu chuẩn (StandardDefinition) có tên ITU-Recommendation BT.601-5 (10) Theo định dạng này,thành phần luminance được lấy mẫu với tần số 13.5MHz và thành phần chromi-nance là 6.75MHz để tạo thành tín hiệu 4:2:2 Y:Cr:Cb Chất lượng cao hơn SDvà hiện đang được sử dụng nhiều nhất trong các ứng dụng ngày nay đó chínhlà định dạng High Definition (HD) Bảng 3.2 dưới dây liệt kê những định dạngphổ biến, dễ tương thích với các thiết bị và đặc điểm của chúng.

FormatProgressive / InterlacedHorizontal PixelsVertical PixelsFrames / Fields mỗi giây

Đánh giá chất lượng của video được trình chiếu cho người dùng cũng là mộtvấn đề đáng lưu tâm, tuy vậy đo lường chất lượng hình ảnh là một thao tác khókhăn và nhiều khi thiếu chính xác do có nhiều nhân tố có thể ảnh hưởng đếnkết quả Đánh giá chủ quan (Subjective quality measurement) phụ thuộc vàonhiều yếu tố chủ quan như cảm nhận người dùng, không gian, thiết bị, v.v Ngược lại, phương pháp đánh giá khách quan (Objective quality measurement),có thể đưa ra những kết quả cụ thể với những tiêu chuẩn rõ ràng, tuy không thểtái hiện được cảm nhận của người xem như đánh giá chủ quan Có nhiều thuậttoán và tiêu chuẩn để đánh giá khách quan chất lượng của một thước video,và được sử dụng rộng rãi nhất để đo lường chính là Peak Signal to Noise Ratio

Trang 27

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

một thuật toán mới có thể cải thiện được những hạn chế của PSNR, tuy vậyvới đặc điểm tính toán nhanh và gọn, PSNR vẫn là một tiêu chuẩn phổ biến đểso sánh chất lượng của những video trước và sau khi mã hóa Kkhi so sánh cácvideo với nhau, giá trị PSNR càng cao chứng tỏ chất lượng của thước video đócàng cao, công thức tính PSNR như sau:

2.1.4Video CODEC

Quá trình mã hóa video luôn cần đến một hệ thống gồm hai thành phần:Bộ mã hóa (encoder) và bộ giải mã (decoder) Công việc của encoder chính làchuyển đổi những dữ liệu gốc thành một dạng dữ liệu nén khác có số lượng bitsđược giảm đi đáng kể, thuận tiện cho việc truyền tải và lưu trữ dữ liệu Trongkhi đó, decoder có chức năng chuyển đổi những dữ liệu đã được nén trở thànhdữ liệu gốc ban đầu Cặp đôi này thường được gọi tắt là CODEC.

Một bộ video encoder bao gồm ba bộ phận chính: mô hình dự đoán (predictionmodel), mô hình không gian (spatial model) và bộ mã hóa hỗn loạn (entropyencoder).

Trang 28

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Hình 2.7: Block diagram của video encoder (1).

Video decoder sẽ tái xây dựng lại video gốc từ bitstream kết quả của coder cùng với các thông số hệ số (coefficients) và giá trị dự đoán (predictionparameters) được tính toán trong lúc encoder thực hiện mã hóa video.

en-2.2Chuẩn mã hóa video H.264/AVC

Chuẩn mã hóa H.264/AVC (H.264/AVC Video Coding Standard) được đồngchuẩn hóa bởi ISO và ITU (14), chuẩn video này có hiệu năng xử lí và độ tốiưu vượt trội so với các chuẩn quốc tế trước đó Trước H.264, các chuẩn mã hóalà sự kết hợp giữa các thuật toán để dự đoán hình ảnh đầu vào và biến đổi cáchình ảnh khác nhau để giảm thiểu hệ số liên quan về không gian và thời gian(temporal and spatial correlation) của video đầu vào, từ đó cải thiện tỉ lệ nénảnh (compression ratio).

H.264 vẫn giữ những khối chức năng như các phiên bản trước đó, ngoài ra cònđược thêm vào những khối chức năng mới để cải thiện hiệu năng tính toán (2).Những khối chính của H.264 bao gồm các khối biến đổi cosine rời rạc (discretecosine transformation - DCT), lượng tử hóa (quantization), kiểm soát bit-rate(bit-rate control), khối dự đoán đền bù chuyển động (motion compensation pre-diction) và bộ mã hóa hỗn loạn (entropy coding) Tuy vậy, điểm khác biệt ởH.264 chính là sự xuất hiện của khối dự đoán nội ảnh - intrapicture prediction,cùng với đó là bộ biến đổi số nguyên 4 x 4 (4x4 integer transform), tính năngđền bù chuyển động được tính dựa trên một phần tư pixel (quarter pel) và bộlọc tách khối trong vòng lặp (debocking filter) Sau đây bài báo cáo sẽ tập trung

Trang 29

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Hình 2.8: Các quy trình hoạt động của chuẩn mã hóa H.264(1).

2.2.1Các cú pháp trong H.264

H.264 cung cấp những định nghĩa chi tiết về cú pháp để tái hiện video đã quaxử lý và những thông tin liên quan.

Trang 30

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Hình 2.9: Các lớp cú pháp của H.264 (1).

Ở lớp cao nhất, mỗi đoạn (sequence) H.264 bao gồm nhiều gói tin được gọilà Network Adaptation Layer Units (NALUs) Mỗi gói tin đó chứa những thôngsố được decoder sử dụng để giải mã một đoạn video hoặc slide Ở lớp tiếptheo, mỗi slice là video frame hoàn chỉnh hoặc một phần video frame đã đượcmã hóa, và là tập hợp của những macroblock, mỗi macroblock chứa dữ liệu đãđược mã hóa tương ứng với những khối 16x16 của pixel trong một video frame.Macroblock là cú pháp dành cho lớp thất nhất trong H.264, bản thân nó chứađựng thông tinh diễn tả những cách thức được sử dụng để mã hóa một khối

Trang 31

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.2.2Profiles và Levels

Chuẩn H.264 bao gồm nhiều loại công cụ Chúng là những thuật toán hoặcquy trình xử lý khác nhau dùng trong các bước mã hóa và giải mã video Cáccông cụ đó có thể được sử dụng cho những tính năng cơ bản như biến đổi 4x4,hoặc những bộ mã hóa hỗn loạn khác nhau, hoặc cũng có công cụ được sử dụngcho những trường hợp và ứng dụng cụ thể Profiles trong H.264 là một tập hợpnhững đặc điểm mà tương ứng với đó, những công cụ của H.264 sẽ được sử dụngsao cho phù hợp trong lúc mã hóa cũng như giải mã đoạn video Có 7 profilescơ bản, được sử dụng cho các ứng dụng và mục đích khác nhau: Baseline, Main,Extended, High, High10, High 4:2:2 và High 4:4:4 Predictive Từng profiles đềucó những điểm chung và điểm khác biệt.

Levels quy định giới hạn cho các thành phần của từng cú pháp có thể tiếpnhận, thường thì những thông số này bị giới hạn bởi tốt độ xử lý, dung lượng bộnhớ và kích thước trình chiếu ở bộ giải mã, hay có thể hiểu đơn giản hơn, mỗilevel quy định giới hạn cho các thông số như bit-rate, kích thước frame, kíchthước buffer của mỗi hình ảnh, v.v

Trang 32

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Hình 2.10: Đặc điểm của các loại profiles trong H.264 (2).

Trang 33

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.2.3Các công đoạn của bộ mã hóa H.264

Bộ mã hóa H.264 thực hiện công việc dự đoán, biến đổi và nén ảnh để tạothành một chuỗi bit H.264 (H.264 bitstream) Quá trình mã hóa một video củabộ mã hóa H.264 có thể được khái quát bằng sơ đồ khối dưới đây

Hình 2.11: Sơ đồ khối của bộ mã hóa H.264 (2).

Đầu tiên, từng video frame đầu vào sẽ được chia nhỏ thành các khối roblock chứa 16x16 mẫu của thành phần luma và 8x8 mẫu của hai thành phầnchroma còn lại Sau đó bộ mã hóa sẽ lựa chọn giữa hai chế độ intracoding vàintercoding Một MB dự đoán sẽ được tạo ra và trích xuất từ MB hiện tại để kếthợp thành một MB thừa (residual MB) Khối MB này sau đó sẽ được biến đổi(transform), lượng tử hóa (quantized) và cuối cùng là mã hóa thành một H.264bitstream Cùng lúc đó, dữ liệu đã được lượng tử hóa sẽ được tái kích thướcvà đảo biến đổi (inverse-transform) để kết hợp cùng với MB dự đoán để tái tạolại thành một bản mã hóa của frame, sau đó được lưu trữ để sử dụng cho cácbước dự đoán sau Ở chế độ intracoding, một bức ảnh hay khung hình được mãhóa mà không cần phải tham khảo đến những khung hình khác Intracoding sửdụng nhiều chế độ dự đoán không gian (spatial prediction) khác nhau để loại bỏ

Trang 34

mac-CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

những phần không gian dư thừa trong một khung hình của dữ liệu gốc coding phức tạp hơn nhưng có độ hiểu quả cao hơn, với việc sử dụng thuật toáninterprediction cho từng block của những khung hình đã được mã hóa trước đó.Kỹ thuật intercoding này sửa dụng các vector chuyển động (motion vectors) chodự đoán theo khối để giảm thiểu dư thừa về thời gian giữa các khung hình khácnhau.

Inter-2.2.4Công đoạn dự đoán

Công đoạn dự đoán (prediction) chính là công đoạn đem lại hiệu quả caonhất cho H.264/AVC so với các chuẩn tiền nhiệm Mỗi macroblock đều đượcxây dựng một dữ liệu dự đoán và tách xuất nó ra khỏi macroblock đó để kếthợp thành một khối dữ liệu dư Công đoạn prediction này có độ chính xác càngcao thì khối dữ liệu dư càng nhỏ và hiệu năng tính toán càng lớn Macroblockđược chia ra làm 3 loại: I, P và B Macroblock Macroblock loại I (I MB) sẽ đượcdự đoán bằng cách lấy mẫu trong cùng frame Macroblock P (P MB) được dựđoán bằng một frame đã được mã hóa trước đó, có thể là past frame hoặc futureframe tùy vào thứ tự Macroblock B (B MB) có thể được dự đoán bằng mộthoặc hai frame đã được mã hóa từ trước, đồng nghĩa rằng B MB có thể đượcdự đoán bằng cả past frame và future frame.

Trang 35

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Hình 2.12: Các loại Macroblock và cách dự đoán (1).

Trong intraprediction, dữ liệu của intra macroblock (I MB) được xây dựngdựa trên những khối đã được mã hóa trong cùng một khung hình Có ba loạiintraprediction cho luma dựa trên số lượng block: 4x4 blocks, 8x8 blocks hoặctoàn bộ macroblock 16x16 và chroma chỉ có một loại prediction Với luma 4x4 và8x8 block, mỗi loại có 9 hướng prediction, trong khi 16x16 MB chỉ có 4 hướng,tương tự cho chroma prediction.

Trang 36

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Hình 2.13: Các hướng dự đoán của luma 4x4 prediction (1).

Luma 4x4 block và 8x8 block prediction có chung số hướng prediction nhưhình 3.13 Trong khi đó, luma 16x16 MB và chroma prediction có 4 hướngprediction gồm: DC, horizontal, vertical và plane.

Như đã đề cập, interprediction là phương pháp dự đoán một khối luma vàchroma dựa trên những khung hình đã được mã hóa trước đó, hay còn gọi làreference picture, bao gồm lựa chọn một vùng dự đoán (prediction region), xâydựng khối predcition và tách nó ra khỏi khối ban đầu để xây dựng thành khốiresidual, sau đó khối này sẽ được mã hóa và truyền tải Kỹ thuật này sử dụngđộ liên quan về thời gian để giảm thiểu bit rate (2) Mỗi macroblock trong framecó thể được chia nhỏ thành những khối nhỏ hơn, lên đến 4x4 luma và chromablock tương ứng.

Trang 37

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Khung hình đối chiếu (reference picture) sẽ được chọn từ danh sách nhữngkhung hình đã được mã hóa từ trước, được lưu trữ trong bộ đệm khung hìnhđược giải mã (Decoded Picture Buffer - DPB), danh sách này sẽ chứa cả nhữngkhung hình trước và sau khung hình hiện tại theo thứ tự trình chiếu (past vàfuture frame) Những khung hình trung DPB được đánh số và sắp xếp theo thứtự nhất định trong những loại danh sách dưới đây tùy thuộc vào MB nằm trênslice P hay B.

• Danh sách 0 (Loại P): Một danh sách chứa tất cả những khung hình thamchiếu Phần tử đầu tiên trong danh sách này khung hình mới nhất được giảimã.

• Danh sách 0 (Loại B): Danh sách này cũng chứa toàn bộ khung hình thamchiếu Phần tử đầu tiên của danh sách này là khung hình trước khung hìnhhiện tại theo thứ tự trình chiếu.

• Danh sách 1 (Loại B): Danh sách này cũng chứa toàn bộ khung hình thamchiếu Phần tử đầu tiên của danh sách này là khung hình sau khung hìnhhiện tại theo thứ tự trình chiếu.

Khoảng cách từ vị trí của khối hiện tại đến vùng dự đoán của khung hìnhtham chiếu được gọi là motion vector Motion vector có thể chỉ đến vị trí sốnguyên, một nửa hoặc một phần tư mẫu của thành phần luma trong khunghình tham chiếu (ví dụ 1, 1.5, 1.25) Các motion vector của những khối liền kềsẽ được xây dựng và mã hóa khác nhau.

Ngày đăng: 30/07/2024, 16:26

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w