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 2LỜ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 31.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 44.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 5DANH 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 6Hì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 7DANH 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 8DANH 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 10TÓ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 11Chươ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 12Cá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 13Hì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 14thuậ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 15Prediction 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 16Nhó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 17Chươ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 18cả 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 20Mode-,
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 21Encoder 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 22Mỗ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 23Chí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 24Frame 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 25partition 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 26Như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 27Search 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 28Quá 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 29Chươ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