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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế và hiện thực phần cứng tăng tốc giải thuật Integer Motion Estimation trong hệ thống nén video HEVC

59 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

Thông tin cơ bản

Tiêu đề Thiet ke va hien thuc phan cung tang toc giai thuat Integer Motion Estimation trong he thong nen video HEVC
Tác giả Nguyen Hoang Phuoc
Người hướng dẫn TS. Lam Duc Khai
Trường học Truong Dai Hoc Cong Nghe Thong Tin
Chuyên ngành Ky Thuat May Tinh
Thể loại Khoa Luan Tot Nghiep
Năm xuất bản 2023
Thành phố Tp. Ho Chi Minh
Định dạng
Số trang 59
Dung lượng 32,84 MB

Nội dung

Hệ thống HEVC đã triển khai giải thuật Motion Estimation bao gồm khối Motion Search và khối so sánh SAD giúp dự đoán cácđiểm ảnh của một block bằng cách sử dụng các dữ liệu từ các khung

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

NGUYEN HOANG PHƯỚC - 19520859

KHOA LUAN TOT NGHIEP

THIET KE VA HIEN THUC PHAN CUNG TANG TOC

GIAI THUAT INTEGER MOTION ESTIMATION

TRONG HE THONG NEN VIDEO HEVC

DESIGN AND IMPLEMENTATION OF HEVC INTEGER MOTION

ESTIMATION ON HARDWARE

KY SU NGANH KY THUAT MAY TINH

GIANG VIEN HUONG DAN

TS LAM DUC KHAI

TP HO CHI MINH, 2023

Trang 2

LỜI CẢM ƠN

Lời đầu tiên, tụi em xin gửi lời cảm ơn chân thành đến toàn thé quý thầy

cô trường Đại học Công nghệ Thông tin - Đại học Quốc gia TP Hồ Chí Minh,đặc biệt là quý thầy cô khoa Kỹ thuật Máy tính đã tạo điều kiện cho em học hỏiđược nhiều kiến thức và kinh nghiệm trong suốt thời gian học tập

Đặc biệt, nhóm xin chân thành cảm ơn thầy Lâm Đức Khải Thầy đã hướngdẫn em rat tận tình trong suốt quá trình thực hiện khóa luận tốt nghiệp, hỗ trợ và

cung cấp nhiều kiến thức chuyên môn quý báu dé nhóm có thé hoàn thành đề tài

Đồng thời, em cũng xin chân thành gửi lời cảm ơn đến các anh chị, bạn bè, những

người đã giúp đỡ nhóm trong quá trình thực hiện đề tài này

Mặc dù đã rất nỗ lực và có gắng nhưng kiến thức cũng như kinh nghiệm van

còn hạn chế, nên báo cáo không thể tránh khỏi nhiều thiếu sót Nhóm rất mong nhận

được nhiều sự góp ý, nhận xét từ quý thầy cô

Một lần nữa, em xin chân thành cảm ơn!

Tp Hồ Chí Minh, ngày tháng năm 2023

Sinh viên thực hiện

Nguyễn Hoàng Phước

Trang 3

1.3 Bố cục khóa luận + St+2t‡ #2 2 2E EEEEEEErrrrrrrrrkere 6

Chương 2 CƠ SỞ LÝ THUYÊTT - + + SE SEEEEEEEEEEE 12321212121 2121 211 2e5 8

"An 10 a9 8

2.1.1 Sơ đồ xử lícủa HEVC se site 8

2.1.2 Kién trúc Coding Unit (CU) va Coding Tree -5-s=¿ 122.1.3 Kiến trúc Prediction Unit cc+cc+ccsrsrererkerkeee 13

2.2 Giải thuật Integer Motion EStImatION s7 c << << << £eressses+ 14

2.2.1 Sơ lược về Integer Motion Estimation 5 +s+c+s+c+ces+ 14

2.2.2 Cac thuật toán Integer Motion Estimation +: 16

Chương 3 THIẾT KE DE XUẤT CHO GIẢI THUẬT HEVC INTEGER

MOTION ESTIMA TION 5-5522 EEEEE2151E11212121111212111111 11111 1x0 20

3.1 Thiết kế hệ thống ¿- - E52 SE EE1121E1 1E 5111112111 E111111 111111 re 20

3.2 Thiết kế chỉ tiẾt ¿- + S221 2EEEEE2121511121 1121111112121 11 11111 xe 23

3.2.2 PROCESSING COMPONENT ¿2-52 ++ccczxczszxerees 25 3.2.3 FULL SEARCH CONTROLLER 2 5+s+s+£e£ezzzxzzcsez 30

Chương 4 MO PHONG VÀ ĐÁNH GIÁ KET QUẢ - 55255: 32

4.1 Mô phỏng pre-synth€SIS TS vn tre 33

Trang 4

4.2 Mô phỏng post-ImplementatIOH - 111111111 1v re 38

GEN Co Si 00 (414 38

A.A Danh c‹tc::iiđđaiiaaiii'ÃẼÉÝỶÝÝÝỶ 42

Chương 5 KET LUẬN VA HƯỚNG PHAT TRIEN - 55255: 46

` na 46

5.2 Hướng phát triển ¿-¿©¿©++k+SStSE2E+EEEEEEEEEEEEEEEEEEEEEEEEEExerrree 47

Trang 5

DANH MỤC HÌNH

Hình 1.1 Tương quan về kích thước block của chuẩn HEVC (a) và chuẩn AVC (b) 2

Hình 1.2 So sánh về lưu lượng băng thông cho video với độ phân giải FullHD 3

Hình 2.1 Minh họa cho giai đoạn Motion Estimation -««««<<cx+++ss 9 Hình 2.2 Các loại khung hình bên trong một nhóm khung hình - - 10

Hình 2.3 Sơ đồ khối của hệ thong HEVC -¿-¿- 2-5552 222t2EEEztzxerrrerees 11Hình 2.4 Vi dụ về việc sắp xếp các CTU bên trong một 64x64 CTB - 12Hình 2.5 Cấu trúc “quad tree structure” và depth tương ứng - 5-5-5: 13

Hình 2.6 Các loại PU được hỗ trợ bới HEVC Inter-codIng - «+ 14

Hình 2.7 Minh họa cho Motion VecCfOr - - - + + 313111 1 11c 15

Hình 2.8 Thống kê số lượng các PU partition cần xử lí ¿2 2c +c+x+scz£zc+ 16

Hình 2.9 Hướng di chuyên của scan direction cho Full Search -. 17

Hình 2.10 Minh họa cho Search Area và Search Re€gOII « «<< «<< <<<+ 18

Hình 3.1 Sơ đồ khối chính của hệ thống đề xuất - ¿+ + 2 +s+s+s+s£z£z£+x+xzxz 20Hình 3.2 Cấu trúc phân bó dit liệu từ reference area s5 +s+s+szszszxzx+: 24Hình 3.3 Cấu trúc module SHIFTER ARRAY -. ¿-+ ++c++c++z+erxerxerxerxee 26Hình 3.4 Cấu trúc module PROCESSING ELEMENT ARRAY -: 27Hình 3.5 Cấu trúc của PROCESSING ELEMENT - - 5 +c+xve+eeeeeereed 28

Hình 3.6 Cấu trúc module ADDER TREE - ¿52 5tccxtzxtsevrrxrsrvrrrrrrvee 29

Hình 3.7 Mô hình khối CONTROLLER - 2 2 2 2+2 S2 S2£E£E£££E2££E2EzEzEzxzxe2 31Hình 4.1 Cấu trúc của hệ thống kiểm chứng thiết kỀ 5-2-5 +s+s+s+sz£zSz2 33Hình 4.2 Kết quả so sánh một CTU -¿ ¿+ + ¿52 22+E2E+EE££E2E+EvEeEztzxerrrerees 35Hình 4.3 Mô phỏng khi hệ thống bắt đầu hoạt động 2-5-5 + +s2£+szSzSz2 36Hình 4.4 Mô phỏng hệ thống sau khi nạp xong SHIFTER ARRAY 36

Hình 4.5 Mô phỏng giai đoạn tính toán của ADDER TREE -‹5<- 37

Hình 4.6 Mô phỏng thời điểm kết quả SAD đầu tiên được tính toán 37Hình 4.7 Mô phỏng post-implementation functional của thiết kế - 38Hình 4.8 Các thiết lập cho quá trình synthesis ¿22252 522222+E2EzEzEzxzx+2 39

Trang 6

Hình 4.9 Các thiết lập cho quá trình implementation - ¿2255255 5255: 40

Hình 4.10 Thống kê về tài nguyên FPGA của mạch 2-2-5 5+s+s+s+x+szxzsz2 41

Hình 4.11 Thống kê về lượng tài nguyên sử dụng của từng thành phan chính 41Hình 4.12 Kết quả về timing của mạch tại 323 Mhz - ¿2 2 2 +x+x+s+z£z£+ 41Hình 4.13 Mô phỏng cơ chế pipeline của hệ thống 5-2-2 522s+s2Ez£z£zS22 42Hình 4.14 Quá trình tính toán của hệ thống - - - ¿+2 2 +£+E+E+E£z£z£z£zxzxzxz 43

Trang 7

DANH MỤC BANG

Bảng 1.1 Mục tiêu đề tài 5c cSc 13333 E1 1111111111111 11 2116 6

Bang 3.1 Mô tả các chức năng chính của hệ thống - - 5 +c+£+£+£zEzzzesed 20

Bang 3.2 Mô ta input/output của “Memory Componenif” «««ccsc++<s«2 21 Bang 3.3 Mô ta input/output của “Processing Componenif” « «+ 22 Bảng 3.4 Mô tả các trạng thái của FULL SEARCH CONTROLLER - 31

Bảng 4.1: Cac tính năng của Kvazaar cccceeesssscccceeeeecceseessnsteeeeeeeeeeeseeensnsaees 32

Bảng 4.2 Các file dữ liệu dược trích xuất tỪ KVaZâF - cv rrea 34Bang 4.3 So sánh giữa hệ thống đề xuất với các thiết kế khác - - 5: 44

Trang 8

DANH MỤC TỪ VIET TAT

HEVC High Efficiency Video Coding

FullHD Độ phan giải 1920x1080 pixels

2K D6 phan giai 2560x1440 pixels

4K Độ phân giải 3840x2160 pixels 8K Độ phân giải 7680x4320 pixels FPGA Field-programmable gate array AVC Advanced Video Coding

MPEG Moving Picture Experts Group FPS Frame Per Secone

CTU Coding Tree Unit

CTB Coding Tree Block

SCU Smallest Coding Unit

LCU Largest Coding Unit

SAD Sum of Absolute Difference

IME Integer Motion Estimation

Trang 10

TÓM TẮT KHÓA LUẬN

Các giải thuật nén video phô biến hiện nay bao gồm MPEG-2, MPEG-4, H.264,

H.265, AV1, VP9, High Efficiency Video Coding (HEVC/H265) là một chuẩn nén

video mới kế thừa của Advance Video Coding (AVC/H264) và có hiệu suất tốt hơnlên đến 50% so với thế hệ cũ Hệ thống HEVC đã triển khai giải thuật Motion

Estimation (bao gồm khối Motion Search và khối so sánh SAD) giúp dự đoán cácđiểm ảnh của một block bằng cách sử dụng các dữ liệu từ các khung hình đã nén

trước đó, trên hệ thống HEVC Inter Prediction hỗ trợ nhiều kích cỡ Prediction Unit

(PU) từ 4x8/8x4 đến 64x64 điềm ảnh [1] Ngoài ra đối với Inter Prediction, các PU

còn có thé được phân chia theo 3 chế độ: Square Motion Partitions, Synmmetric

Motion Partitions (SMP) và Asymmetric Motion Partitions (AMP).

Do cải tiến nay làm cho yêu cầu về phan cứng trở nên phức tạp hon, vì thé việctối ưu hóa tốc độ và tài nguyên phan cứng cho giải thuật Integer Motion Estimation

của hệ thông nén HEVC là một điều cần thiết nhằm mục đích tối ưu hóa hệ thống

Trong đề tài này, nhóm đã tham khảo lý thuyết và cách hoạt động của giải thuậtInter Prediction trong hệ thống nén HEVC Đồng thời áp dụng các kĩ thuật dé tăng

tốc giải thuật như: tối ưu bộ nhớ, xử lý song song đồng thời hỗ trợ tăng throughtput

băng cách thực hiện pipeline cho toàn mạch Đề kiểm tra về chức năng cũng như tính

đúng đăn của mạch nhóm đã sử dụng mã nguồn mở Kvazaar [2] để làm model mẫu.

Qua quá trình mô phỏng nhóm đã đảm bảo mạch chạy đúng chức năng của giải

thuật và mục tiêu đề ra Bên cạnh đó nhóm cũng so sánh kết quả đạt được với kết quả

của các công trình nghiên cứu liên quan được đăng trên các hội nghị, tạp chí uy tín.

Trang 11

Chương 1 GIỚI THIỆU DE TÀI

1.1 Giới thiệu đề tài

Tên đề tài: Thiết kế và hiện thực phần cứng tăng tốc giải thuật Integer Motion

Estimation trong hệ thống nén video HEVC

Giới thiệu:

Giải thuật nén video là quá trình giảm thiểu kích thước dit liệu video để giảm

băng thông mạng và dung lượng lưu trữ Nén video là rất cần thiết vì video là tàinguyên dit liệu có kích thước lớn, tốn nhiều băng thông mạng dé truyền tải và lưu trữ

Khi video được nén, kích thước của tệp video được giảm xuống một phần, điều này

làm giảm tốc độ truyền tải và chi phí lưu trữ Ngoài ra, giải thuật nén video giúp tối

ưu hóa việc phát video trên các thiết bị với màn hình kích thước khác nhau và giúpcải thiện chất lượng phát

a

Me) | | | |

Hình 1.1 Tương quan về kích thước block của chuẩn HEVC (a) và chuẩn AVC (b)

Trang 12

Các giải thuật nén video phổ biến hiện nay bao gồm MPEG-2, MPEG-4, H.264,

H.265, AVI, VP9, High Efficiency Video Coding (HEVC/H265) là một chuẩn nén

video mới kế thừa của Advance Video Coding (AVC/H264) và có hiệu suất tốt hơn

lên đến 50% so với thế hệ cũ Mặc dù chuẩn nén video AVC vẫn được sử dụng phổbiến trong hầu hết các thiết bị điện tử ngày nay, hiệu năng nén video của AVC vẫn là

chưa đủ dé đáp ứng được nhu cầu streaming hay lưu trữ video ngày càng tăng

Dựa trên sự phát triển của internet, streaming video với độ phân giải lớn (4K, 8K)

đòi hỏi băng thông mạng rất lớn Qua đó sự cần thiết của việc áp dụng các giải thuậtnén, đặc biệt là giải thuật mới nhất High Efficiency Video Coding (HEVC) hỗ trợ độphân giải lên tới 8192 x 4320 bao gồm độ phân giải 8K UHD (Ultra High Definition)thay vì chỉ tới 4K như phiên bản tiền nhiệm là AVC đồng thời cải thiện hiệu suất néntrên cùng bitrate tốt hơn 40% [3] Vì những cải tiễn đó việc thực hiện giải thuật HEVC

lên phần cứng dé đáp ứng nhu cầu nén và truyền video theo thời gian thực nham mục

đích streaming hay sử dụng cho các nên tảng xem video trực tuyến (Netflix, Youtube,

Twitch, ) giúp cải thiện tốc độ truyền tải cũng như khả năng lưu trữ là vô cùng cần

thiết Mặt khác, sức mạnh xử lí của các thiết bị điện tử đã tăng lên rất nhiều trongnhững năm gan đây, tạo ra cơ hội cho những chuẩn nén video yêu cầu nhiều tài

nguyên phân cứng và cung câp được hiệu suât nén tôt hơn người tiên nhiệm của chúng.

tủ

=~

= MPEG-2 AVC HEVC FVC

= $ Advanced High Efficiency Future

= ` Video Coding Video Coding Video: Coding

16 Po @ ; : :

1994 1999 2003 2012 ~2021 Year

Hình 1.2 So sánh về lưu lượng băng thông cho video với độ phân giải FullHD

Trang 13

Hình 1.2 trình bày biểu đồ về sự cải thiện trong lượng băng thông mạng yêu cầu

dé có thé truyền đi qua từng khoảng năm với những chuẩn nén video mới [3] Hệthống HEVC đã triển khai giải thuật Integer Motion Estimation (IME) giúp dự đoáncác điểm ảnh của một block bằng cách sử dụng các đữ liệu từ các khung hình đã néntrước đó, trên hệ thống HEVC Inter Prediction hỗ trợ nhiều kích cỡ Prediction Unit(PU) từ 4x8/8x4 đến 64x64 điểm ảnh Ngoài ra đối với Inter Prediction, các PU còn

có thé được phân chia theo 3 chế độ: Square Motion Partitions, Synmmetric Motion

Partitions (SMP) va Asymmetric Motion Partitions (AMP) cùng với Search Area

(SR) va Largest Coding Unit (LCU) lớn hơn nhiều so với các chuẩn video cũ [1].Điều nay đã làm cho gánh nặng tính toán của giai đoạn Motion Estimation cũng như

Inter Prediction tăng lên rất nhiều

1.2 Mục tiêu đề tài và phương pháp thực hiện

1.2.1 Mục tiêu

Đối với HEVC, do việc tăng cường thêm các chế độ dự đoán và hỗ trợ kích cỡ

xử lý của PU lớn hơn nhiều so với H.264 (có tông cộng 677 partitions cho một LCUvới kích thước 64x64) trực tiếp làm cho việc tính toán trong giải thuật MotionEstimation trở nên phức tạp hơn với tốc độ xử lý chậm hơn Với sự phát triển củaphần cứng hiện nay, nhiều thuật toán phức tạp đã được hiện thực phần cứng nhằmtăng tốc độ xử lý

Trong hau hết các công trình được công bố, các kiến trúc phần cứng IME được

đề xuất chỉ tập trung vào cải thiện hoặc thay thế thuật toán Motion Search vì thuật

toán này liên quan đến phần lớn độ phức tạp tính toán của khối IME Có rất nhiều

thuật toán Motion Search có thé được sử dung dé tìm chuyên động trong một đoạn

video.

Một số bài báo đã đề xuất giải pháp triển khai thuật toán Motion Estimation trên

phần cứng dé đạt được tốc độ mã hóa cao hơn mà không hi sinh quá nhiều chất lượng

video được mã hóa Điển hình cho những cải tiến này là sử dụng các thuật toán Fast

Search như [4] Kiến trúc được đề xuất trình bày một khối phần cứng IME sử dụng

Trang 14

thuật toán Motion Search Rot-W— Diamond (RWD) Trong [4], các tác giả đã đề xuất

một hệ thống có thé xử lý video 8K với fps cao nhưng tiêu tốn rất nhiều tài nguyên

phần cứng Trong khi các thuật toán Fast Search giúp làm giảm gánh nặng tính toán

của giai đoạn IME tới gần 72%, vẫn có những bat lợi riêng như thông số PSNR sẽ bịgiảm đi và tính bất thường trong quá trình tìm nạp dữ liệu từ bộ nhớ (việc truy xuất

dữ liệu không đồng nhất gây khó khăn cho data-reuse) khi so sánh với thuật toán Full

Search.

Thuật toán Motion Search phù hợp với phần cứng nhất là thuật toán Full Search

(FS) FS tìm kiếm chuyên động tại tất cả các điểm của vùng Search Region đã thiết

lập và do đó, có thể cung cấp kết quả tối ưu nhất so với tất cả các thuật toán khác(nghĩa là tìm ra được một Motion Vector chính xác nhất mà có thé giảm thiểu đượcgiá trị sai số residual, nhờ đó giảm được lượng thông tin cần phải nén) Thiết kế phần

cứng [5] đã đề xuất thiết kế phần cứng IME sử dụng Full Search (FS) với lượng

data-reuse rất cao Ở [6] các tác giả cũng sử dụng cấu trúc data-data-reuse tương tự nhưng với

Search Region nhỏ hơn đáng ké dé cải thiện throughput hệ thống

Nhận thấy các cải tiễn này vẫn còn nhiều hạn chế về chất lượng video được

encode cũng như sử dụng quá nhiêu tài nguyên phân cứng Ở nghiên cứu này nhóm

muôn dé xuât một kiên trúc phân cứng nhăm hiện thực va tăng toc giải thuật Integer

Motion Estimation trên FPGA bang thuật toán Full Search

Kiến trúc phan cứng của nhóm dé xuất mong muốn hệ thống có kha năng hỗ trợ

throughput ôn định ở 20FPS tại độ phân giải 4K Dé đạt được yêu cầu về throughput,

thiết kế hệ thống phải xử lí được tối thiểu 40500 CU mỗi giây, với kích thước mỗi

CU là 64x64 Đề hoàn thành xử lí một CU thì hệ thống cần phải thực hiện trên ME

trên tất cả các search point bên trong vùng Search Area (SR) là 129x129, có nghĩa là

cần phải xử lí hết 16641 (129 x 129) search point bao gồm cả vị trí gốc thì quá trìnhMotion Estimation của một CU mới hoàn thành Ngoài ra phần cứng đề xuất còn phải

hỗ trợ xử lí trên tất cả các Prediction Unit (PU) partition mode mà HEVC hỗ trợ

Trang 15

Prediction của hệ thống dé xem cách thức hoạt động đồng thời hiện thực phan mềm

dựa trên ngôn ngữ lập trình C++ cho thuật toán Integer Motion Estimation bên trong

Inter Prediction Sau khi đã đảm bảo giải thuật trên phần mềm đã hoạt động chính

xác thì nhóm sẽ chuyên qua nghiên cứu đề xuất các câu trúc phần cứng nhằm tối ưu

và tăng tốc giải thuật này Cuối cùng nhóm sẽ tiến hành mô phỏng thiết kế trên

FPGA.

1.3 Bồ cục khóa luận

Chương 2: Cơ sở lý thuyết

Chương này trình bày những cơ sở lý thuyết được sử dụng có liên quan đếnnội dung nghiên cứu của đề tài như tìm hiểu sơ lược về hệ thống nén HEVC cũng

như chỉ tiết về giải thuật Integer Motion Estimation trong hệ thống nén đó

Chương 3: Thiết kế đề xuất cho giải thuật Integer Motion Estimation

Trang 16

Nhóm dựa vào các lý thuyết đã tìm hiểu ở chương 2 dé đề xuất một hệ thống

thực hiện giải thuật Integer Motion Estimation bằng ngôn ngữ lập trình System

Verilog, cũng như giải thích chức năng của từng module có trong mạch và cách thức hoạt động của module đó.

Chương 4: Mô phỏng và Đánh giá kết quả

Ở chương này, nhóm thực hiện sẽ trình bày những kết quả mà khóa luận đãđạt được thông qua một số biéu dé thong kê số liệu Cũng như cách dé thực hiện các

công đoạn mô phỏng, kiểm tra dé ra được kết quả trên

Chương 5: Kết luận và Hướng phát triển

Đây là chương để đúc kết lại khóa luận, tóm tắt toàn bộ công việc của nhómthực hiện và những kết quả, thành tích đã đạt được Đồng thời ở chương này nhómthực hiện sẽ đưa ra đề xuất cho hướng phát triên tiếp theo của dé tài trong tương lai

Trang 17

Chương 2 CƠ SỞ LÝ THUYET

2.1 Sơ lược về HEVC

High Efficiency Video Coding (HEVC/H265) [5] là một định dạng nén video

được thiết kế dé kế thừa Advanced Video Coding (AVC/H264) [5] Chuan nén được

phát triển bởi Joint Colabborative Team on Video Coding (JCT-VC), nhóm thành lập

do sự hợp tác giữa ISO/IEC Moving Picture Experts Group (MPEG) va ITU-T Video

Coding Experts Group (VCEG) Đến tháng 10 năm 2010, JCT - VC đã đưa ra dự thao

hoạt động đầu tiên dựa trên 8 thông sỐ kỹ thuật dự thảo hoạt động và được phê duyệt

vào tháng 7 năm 2012 Phiên bản chuẩn H.265/HEVC đầu tiên được phê chuẩn vào

tháng 1 năm 2013 và được tuyên bồ vào tháng 6 năm 2013

Cũng giống như các chuân mã hóa video khác, HEVC kết hợp cả những kĩ thuật

mới và những kĩ thuật cũ đã cải tiên dé đạt được hiệu suất nén cao nhất Các videođược quay bằng máy quay HD chuyên nghiệp thường có dung lượng rất lớn do dữ

liệu còn ở dạng thô (raw) và việc truyền tải nội dung là rất khó khăn Đề thuận tiện

trong việc truyền tải và lưu trữ, các video sẽ được nén lại nhằm giảm dung lượng tới

mức tôi da

Chuan nén HEVC sẽ kiểm tra các khung hình dé tìm kiếm sự thay đổi, phân tích,

mã hóa toàn bộ các điểm ảnh trong khung hình đầu tiên và sau đó chỉ mã hóa những

sự thay đổi ở những khung hình tiếp theo HEVC mở rộng kích thước của cửa số tìmkiếm (Search Area) những điểm ảnh thay đổi trong cửa số đó Ngoài ra, phương thức

nén HEVC còn đưa dự đoán của các chuyền động, các không gian trong video dé

phân tích và xử lý hình ảnh.

2.1.1 Sơ đồ xử lí của HEVC

Ở giải thuật H.264 để dự đoán trong một frame ảnh thuật toán phải chia frameảnh đó thành nhiều phan bằng nhau được gọi là macroblocks [7] và sau đó nhớ các

phân có mau sac giông nhau lại thành một, điêu đó hiệu quả hơn nhiêu thay vì nén tat

Trang 18

cả các pixel của một frame lại đồng thời giúp giảm kích thước dữ liệu cần phải lưu

trữ, giải thuật này được gọi là Intra Prediction [7].

Bên cạnh Intra Prediction, HEVC còn hỗ trợ một giải thuật nén nữa đó là Inter

Prediction Inter Prediction sử dung Motion Estimation (ME) như được minh họa ở

Hình 2.1 là một giai đoạn cốt lỗi trong việc nén video ME là kỹ thuật có đóng gópchính cho hiệu suất nén của tất cả các chuẩn nén video [8] Thông thường hầu hếtgiữa 2 frame ảnh liền kề nhau trong một chuối frame thường có rat ít sự thay đôi, do

đó giải thuật Inter Prediction giúp phát hiện những thay đổi đó giữa các khung hình

dựa vào các Motion Vector (MV) đồng thời nén các PU có các sự thay đổi đó Còn

các PU khác nếu như có quá ít hoặc không có sự thay đổi thi encoder chỉ cần hién thịlại như frame anh đầu tiên thay vì phải thực hiện nén lại nhiều lần cho từng frame

Trang 19

———————* Time

Display order I B B P B B P B B I

Hình 2.2 Các loại khung hình bên trong một nhóm khung hình

Hình 2.2 trình bày 3 loại khung hình (I-frame, B-frame, P-frame) bên trong một

nhóm khung hình Thứ tự những khung hình được nén trong encoder sẽ khác với thứ

tự hiện thị từng khung hình theo thời gian thực tế Một video sẽ bao gồm rất nhiềukhung hình được chia thành từng nhóm khung hình mà encoder có thê thực hiện nénđộc lập với các nhóm khung hình khác Khung hình đầu tiên trong một nhóm khunghình sẽ được nén hoàn toàn băng intra-picture prediction (I-frame) Cho tat cả những

khung hình còn lại trong nhóm (B-frame và P-frame), inter-picture prediction sẽ được

sử dung cho hau hết các block bên trong những khung hình này Quá trình nén

inter-picture prediction sẽ bao gồm việc chon dữ liệu chuyền động (motion data) bao gồm

Motion Vector (MV) và reference picture Những motion data này sẽ được áp dụng

lên block tương ứng ở current picture đề tiến hành tao ra predicted sample Giai đoạnthực hiện kiểm tra các reference sample tương ứng với current sample của block đang

xử lí và tìm kiếm motion data tương ứng được gọi là Motion Estimation (ME)

Chuan High Efficiency Video Coding (HEVC) được thiết kế dựa theo nguyên lí

block-based hybrid video coding Dựa theo nguyên lí này, mỗi khung hình đều đượcchia thành các block và mỗi block sẽ được xử lí nén theo phương pháp intra-picture

hoặc inter-picture prediction Trong khi phương pháp intra-picture prediction chi sử

dụng những samples bên trong cùng một khung hình dé tham khảo, phương phápinter-picture prediction lại sử dụng những block có sự tương đồng đối với block đang

xử lí từ những khung hình khác mà đã được giải mã trước đó dé tham khảo

10

Trang 20

Mode-,

Quadtree-t~==========================m==m=m== Encoder Control =~=~~~ + Motion- and

Coefficients

Coding Tree Blocks

Intra-Picture Prediction

Hình 2.3 So đồ khối của hệ thống HEVC

Hình 2.3 trình bày một sơ đồ khối cho giải thuật nén video HEVC Ở giai đoạnđầu tiên, mỗi khung hình sẽ được phân chia thành các khối hình vuông có kích thước

băng nhau, có vai trò làm block gốc cho quad-tree structure, những khối này được

gọi là Coding Tree Block (CTB) Những CTB này có thé được phan chia tiếp thành

các Coding Block (CB), encoder sẽ quyết đỉnh xem những CB này nên được nén theo

phương pháp Intra-picture hoặc inter-picture prediction [1].

Ở cả 2 phương pháp, những sample được dự đoán đồng thời sẽ có thêm sai số,được gọi là residual, được tính bang sự chênh lệch giữa block được dự đoán va block

hiện tại đang được nén Thông tin này được truyền đi bằng linear spatial transform

coding để giảm thiếu lượng thông tin cần lưu cho block đó Những transformcoefficient sau đó sẽ được scaled, quantized và entropy coded, sau đó được truyền đi

cùng với thông tin dự đoán.

residual = current block data — predicted output (1)

11

Trang 21

Encoder cũng bao gồm các khối có nhiệm vụ giải nén video (những khối được

tô màu xám) đóng vai trò như một decoder Những quantized transform coefficients

được tái tạo lại bằng khối inverse scaling và Inverse transform dé tạo ra gia tri

residual Giá tri residual nay sau đó sẽ được cộng trở lại với giá tri prediction, sau đó

kết quả sẽ được đi qua 1 hay 2 loop filter dé làm mịn những giá tri bị nhiễu trong quátrình xử lí block và quantization Sau đó, khung hình được tái tạo lại bằng những khốidecoder này sẽ được lưu vào bên trong Decoded Picture Buffer (DPB) để tạo ra mộtdanh sách reference picture hỗ trợ cho việc nén những khung hình tiếp theo bằng khối

Motion Estimation (inter-picture prediction).

2.1.2 Kiến trúc Coding Unit (CU) va Coding Tree

Thay vì sử dung các macroblocks như chuẩn nén AVC (H.264) trước đó, mộtkhung hình video nén theo chuẩn HEVC được chia ra thành các Coding Tree Block(CTB) được sắp xếp theo raster scan order bên trong một khung hình [1] Dựa vàocau hình được đặt ra cho một bộ video streamin g nhất định, kích thước của một CTU

có thé là 64x64, 32x32 hoặc 16x16 Ví dụ cho việc phân chia một CTU có kích thước

là 64 x 64 được trình bày ở Hình 2.4.

1

(16x16)

0 (32x32)

y9

(8x8)

15

11 12 10

13 14

64

Hình 2.4 Ví dụ về việc sắp xếp các CTU bên trong một 64x64 CTB

12

Trang 22

Mỗi CTU sẽ có thé được chia nhỏ bang cách đệ quy theo “quad tree structure”

xuống tới kích thước 8x8 là tối đa như tại Hình 2.5 Những khối sau khi được chia

nhỏ như vậy sẽ được gọi là Coding Unit (CU), đây cũng chính là đơn vị dùng dé dự

đoán cơ bản của chuẩn HEVC Mỗi CU là một vùng hình vuông chứa các pixel samples) và cũng là một nhánh lá của một CTU Các CU có thế có kích thước từ

(luma-64x64, 32x32, 16x16 và 8x8 tương ứng với các “depth” cua “quad tree structure” từ

0 đến 3 Việc phân chia từ CTU thành các CU sẽ được dừng lại phụ thuộc vào yêu

cầu cụ thể của encoder Các CU bên trong mỗi một CTU sẽ được xử lí theo Z-order

2.1.3 Kiến trúc Prediction Unit

Mỗi một CU sẽ có 8 partition mode Các partition mode này được định dạng nhưsau: 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, 2NxnD, nLx2N, nRx2N Voi N biểu thị

cho một nửa và n biểu thị cho một phan tư kích thước của của CU (32x32 CU có N

= l6 vàn =8).

15

Trang 23

Chính vì vậy mỗi CU có thê chứa tối đa 1, 2 hoặc 4 Prediction Unit (PU) bên

trong nó được minh họa ở Hình 2.6 Mỗi CU sẽ có thé được nén bằng Inter-prediction

hoặc Intra-prediction cho nên tất cả các PU bên trong một CU sẽ cùng là Inter-coded

hoặc Intra-coded Một Intra-coded CU sẽ chỉ sử dụng 2 partition mode là 2Nx2N

hoặc NxN Một Inter-coded CU có thê sử dụng cả 8 mode tại nhưng đối với kích

thước 8x8 (depth = 3) thì partition mode NxN và các không được phép sử dụng Điều

này có nghĩa là Inter-prediction chỉ có thé được thực hiện trên kích thước PU nhỏnhất là 4x8 hoặc 8x4 và các PU loại này chỉ được sử dụng một reference frame

2Nx2N 2NxN Nx2N NxN 2NxnU 2NxnD nLx2N nRx2N

Hình 2.6 Các loại PU được hỗ trợ bới HEVC Inter-coding

2.2 Giải thuật Integer Motion Estimation

2.2.1 So lược về Integer Motion Estimation

Motion Estimation (ME) là một quá trình xác định chuyển động của một vùnghình ảnh bên trong một video frame bằng cách so sánh vùng hình ảnh này với mộthay nhiều vùng tương ứng trên reference frame Sau khi hoàn tất quá trình so sánh vàthu được một vùng trên reference frame có kích thước tương ứng và độ tương đồng

cao nhất đối với vùng đang xét hay còn gọi là “best match”, encoder sẽ thu được độ

lệch giữa vi trí của hai vùng này và từ đó tìm ra MV MV sẽ thể hiện sự chênh lệch

về vi trí tương ứng giữa vùng đang xét và “best match” này.

Integer Motion Estimation thực ra là một giai đoạn cốt lõi của Inter-prediction

Đối với mỗi Inter-predicted CU thi encoder sẽ phải cung cấp được dit liệu về chuyên

động bên trong CU ứng với mỗi danh sách reference frame Dữ liệu về chuyển động

bao gồm Motion Vector (MV) va reference frame index

14

Trang 24

Frame n (current)

Hình 2.7 Minh họa cho Motion Vector

Dựa theo Hình 2.7, PU partition (A) được dự đoán từ một khu vực tương ứng trên frame n - 1, PU partition (B) được dự đoán từ một khu vực khác trên frame n —

2 Partition (A) có MV là (-6.5, -5.75), nghĩa là vi trí của vùng được dự đoán trên

reference frame n - 1 bị lệch -6.5 samples theo chiều x (bên trái) và -5.75 samples

theo chiều y (bên trên) Tương tự, PU partition (B) có MV là (1.25, 4), ứng với

-1.25 theo chiều x và -4 theo chiều y trên reference frame n - 1

Đề tìm ra MV cho mỗi PU, encoder phải thực hiện một thuật toán block-matching

cho PU đó HEVC hé trợ độ chính xác cho MV là quarter-pel samples Điều này có

nghĩa là encoder sẽ thực hiện interpolation filtering lên reference sample đề thu được

MV có độ chính xác cao hơn Nhung thay vi tìm kiếm MV ở quarter-pel samples,

HEVC sẽ thực hiện giải Motion Estimation trước ở integer-pel samples dé tìm ra MVtrên một phạm vi rộng hơn mà không phải tiêu tốn quá nhiều tài nguyên Giai đoạntìm kiếm MV gọi là Integer Motion Estimation (IME) Sau khi tìm được MV ở

integer-position có hiệu quả nén tốt nhất dựa trên cost function phù hợp, HEVC

encoder sẽ tiếp tục tìm kiếm lần lượt là half-pel và quarter-pel position xung quanh

MV đó dé đưa ra được MV cuối cùng

Chính vì số lượng partition mode cho mỗi CU là 8 cho nên khi thực hiện IntegerMotion Estimation, hệ thống cần phải thực hiện tính toán cho toàn bộ tất cả các

15

Trang 25

partition mode tại Hình 2.8 mà HEVC hỗ trợ dé có thé cung cấp đủ thông tin cho giai

đoạn tiêp theo của việc nén video nhăm mang lại kêt quả nén tot nhât.

Kích thước block Số lượng SAD Kích thước block Số lượng SAD

Hình 2.8 Thống kê số lượng các PU partition cần xử lí

Hình 2.8 bao gồm 2 cột thông tin chính: cột thứ nhất là thông tin về kích thướccủa block cha cùng loại PU partition tương ứng trong dau ngoặc đơn, cột thứ 2 chỉ ra

số lượng PU partition con khi block được phân chia theo chế độ PU partition đó Cuối

cùng, kết quả về tong số lượng PU partition được tinh tại cuối thong kê

2.2.2 Các thuật toán Integer Motion Estimation

e Full search

Trong hầu hết những cải tiến về giai đoạn Integer Motion Estimation (ME),

những cải tiễn chỉ tập trung phần lớn nỗ lực vào việc cải thiện thuật toán Motion

Search vì thuật toán được sử dụng sẽ có tác động trực tiếp tới tốc độ tính toán cũng

như độ tin cậy của giai đoạn IME Thuật toán Motion Search có vai trò điều khiển về

vị trí và cách thức mà các PU được sử dụng trong reference frame [5].

Thuật toán Motion Search phổ biến nhất cho những thiết kế trên phần cứng là

Full Search (FS) Thuật toán này có hạn chế lớn nhất về độ phức tạp cho quá trình

tính toán với số lượng search point là tất cả các pixel bên trong Search Area (SR)

16

Trang 26

Nhưng cũng chính vì số lượng search point lớn mà FS cũng đưa ra kết quả tốt nhấttrong tất cả cách thuật toán Motion Search.

Khi thực hiện thuật toán FS, encoder sẽ thực hiện ME trên mọi integer-position

bên trong một Search Area (SR) được định san SR là một vùng bao quanh một CUđang được xử lí Đối với mỗi integer-position bên trong SR, encoder sẽ phải thực hiện

Motion Search cho tất cả các PU partition cua CU tai vi trí đó trên reference frame

Hình 2.9 Hướng di chuyền của scan direction cho Full Search

Các hướng di chuyền chính của cửa sô scan (RB) được trình bày trong Hình 2.9

bao gồm horizontal scan và vertical scan Đây cũng chính là lí do vì sao các thiết kế

cho phần cứng thường sử dụng thuật FS cho giai đoạn IME Các cửa số trượt liên tiếpchỉ cách nhau 1 pixel và chi bao gồm 3 hướng scan Điều này cho phép sử dụng tài

nguyên phần cứng ít phức tạp hơn cũng như tạo ra cơ hội cho việc sử dụng lại dữ liệu

cũ (data-reuse) dễ được thực hiện hơn.

17

Trang 27

Search Area 129x129

Search Region 192x192

Hình 2.10 Minh họa cho Search Area và Search Region

Đối với thiết kế đề xuất, hệ thông sẽ thực hiện giải thuật Motion Estimation trên

một vùng Search Region là [129, 129], vùng này sẽ tương ứng với một diện tích là 192x192 sample trên reference frame gọi là Search Region được trình bày ở Hình

2.10 Với Search Area là vùng mà tọa độ của CTU di chuyên trên reference frame,

Search Region (Search Window) là tổng diện tích vùng sample sẽ cần được nạp vào

bộ nhớ đê xử lí.

Colocated Block Motion Vector = (-2,1)

Trang 28

Quá trình thực hiện Motion Estimation được minh họa cụ thé ở Hình 2.11 Saukhi quá trình scan của thuật toán FS đến vị trí mới được định vị bằng Motion Vector,

hệ thống sẽ tiến hành tính toán Cost function của Current block với block tại vi trí

mới và lưu lại giá trị MV cũng như Cost function nhỏ nhất dé giúp encoder đưa raquyết định trong việc lựa chọn giữa các chế độ nén cũng như partition size của PU

tại vị trí này [9].

e Cost function

HEVC hỗ tro nhiều loại Cost function dé lựa chọn nhằm hỗ tro encoder có đượcthông tin đủ chính xác trong việc lựa chọn giữa các Prediction Mode Trong đó, đối

với giải thuật Integer Motion Estimation thì SAD Cost function là phù hợp nhất cho

giải thuật IME SAD Cost function cũng rất phù hợp đối với thiết kế phần cứng khi

mà chỉ yêu cầu bộ cộng và tính giá trị tuyệt đối để so sánh 2 mảng luma-sample pixel

với nhau Công thức (1) trình bày về Cost function SAD:

e C đại diện cho giá tri luma-sample cua current block trong current frame.

e R đại diện cho giá tri luma-sample của reference block trong reference frame.

e (1, k) là vi trí hiện tai của current block trên current frame.

e (x, y) là vi trí cua pixel tương ứng giữa current block va reference block.

e (i, j) là giá tri offset về vi trí trong ứng của current block với reference block

19

Trang 29

Chương 3 THIET KE DE XUẤT CHO GIẢI THUẬT HEVC

INTEGER MOTION ESTIMATION

3.1 Thiết kế hệ thống

Hệ thống đề xuất hỗ trợ day đủ các chức năng dược cung cấp bởi chuẩn nén video

HEVC cho giải thuật Integer Motion Estimation được trình bày cụ thé ở Bang 3.1

Bảng 3.1 Mô tả các chức năng chính của hệ thống

Nội dung Chỉ tiết

PU Partition mode All (AMP & SMP) CTU size 64x64

Search Region 129x129 Search algorithm Full search

RE Si£ueuot ý i i a 2 Va cit iii oz, aoe

FULL SEARCH 1 pel = 8 bit

CONTROLLER mux_control

hor_rd_porta

HOR RAM

§12x192 hor_wr_port b

Ệ el 6 el

REFERENCE FRAME ì

64X64 BUFFER

SHIFTER 64x64 reí arrav—*

PROCESSING ELEMENT

CURRENT FRAME BUFFER ROW BUFFER

Hình 3.1 Sơ đồ khối chính của hệ thống đề xuất

20

Ngày đăng: 23/10/2024, 00:16