Và tiếp sau đóvào năm 2018, việc áp dụng giải thuật Intra Prediction này lên phần cứng FPGA được thực hiện bằng cách sử dụng các khối DSP thay cho các phép tính cộng và shift thôngthường
Trang 1ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
NGUYEN PHAM THE ANH
TRAN TUAN ANH
KHOA LUAN TOT NGHIEP
THIET KE VA HIEN THUC PHAN CUNG TANG TOC GIAI THUAT INTRA PREDICTION TRONG
HE THONG NEN VIDEO HEVC
DESIGN AND IMPLEMENTATION OF HEVC INTRA
PREDICTION ON FPGA
KỸ SU NGANH KY THUAT MAY TÍNH
TP HO CHi MINH, 2022
Trang 2ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
NGUYEN PHAM THE ANH - 18520460
TRAN TUAN ANH - 18520474
KHOA LUAN TOT NGHIEP
THIET KE VA HIEN THUC PHAN CUNG TANG TOC GIAI THUAT INTRA PREDICTION TRONG
HE THONG NEN VIDEO HEVC
DESIGN AND IMPLEMENTATION OF HEVC INTRA
PREDICTION ON FPGA
KỸ SƯ NGANH KỸ THUAT MAY TÍNH
GIẢNG VIÊN HƯỚNG DẪN
TS.LAM ĐỨC KHÁI
TP HÒ CHÍ MINH, 2022
Trang 3THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 528/QD-DHCNTT
ngày 19 tháng 07 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LỜ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ướng
dẫn em rất 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 đề nhóm có thé hoàn thành dé tài Đồng
thời, tụ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
4 giúp đỡ nhóm trong quá trình thực hiện đề tài này
Mặc dù đã rat nỗ lực và có gắng nhưng kiến thức cũng như kinh nghiệm vẫn 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, tụi em xin chân thành cảm ơn!
Tp Hồ Chí Minh, ngày 04 tháng 08 năm 2022
Sinh viên thực hiện
Nguyễn Phạm Thế Anh
Trần Tuấn Anh
Trang 5MỤC LỤC
Chương 1 GIỚI THIỆU DE TÀI -.-: +c+2222+++222vszretrrseccee 1
1.1 Giới thiệu để tài HHHHHHHHHH He 1
1.2 Mục tiêu đề tai và phương pháp thực hiện -cc:-+-222cvvvccceceee 3
5w MUC na 3 1.2.2 _ Phương pháp thực hiện - 6 5S 5
1.3 Bố cục khóa luận -cccctrririiirrrrrririiiirrrrreeeirirỔ
Chương 2 CƠ SỞ LÝ THUYẾT .-.: 22¿+2222++222SS++ettvvvrretrrrrrree 7
2.1 Sơ lược về HEVC ii 7
21.1 Sơđồxử lã4¡: loi cm hố §
21.2 CŨ Partition Sàn it 10
2.2 _ Giải thuật Intra PredictiOn - s5: St 3+ x23 vesseerrrrerrsrrrrrrrrrrrree 11
2.2.1 Sơ lược về Intra Prediction -2++222++ztz2zrxeerzrrrserrrrree 11
2.2.2 Quy trình Reference Sample Array Construction - 14 2.2.3 Sample Prediction c.cececeecseseseseseescseseseeeseeesceeesesesesssneeseseeeseeeaeae 19
2.2.4 Qué trình Post Processing cece + cty 25
2.2.5 Bộ chọn mode tối ưu nhất
Chuong3 | THIET KE DE XUẤT CHO GIẢI THUAT INTRA PREDICTION
28
3.1 Thiết kế hệ thống
3.2 _ Thiết kế chỉ tiết ¿¿-22222+t2222112222111122221112222111102121110.111 cty 30
3.2.1 Module Reference Sample Eilter
3.2.2 Module Angular PrediCtiOn 6 tk rrererrkskekekrkree 33 3.2.3 Module Planar Prediction
Trang 63.2.4 Module DC Prediction 6-5255 tre 44 3.2.5 Module SAD And Best Mode Selection
Trang 7DANH MỤC HÌNH ẢNH
Hình 2.1: Khác biệt giữa Macroblocks(AVC) va Coding Tree Unit(HEVC) 8
Hình 2.2 Sơ đồ khối của hệ thống HEVC.sscessecssssesssssssssssssssssessssesssssssssessessssecesssesssses 9
Hình 2.3: Coding Unit PA4TFIIOHIH cv setekskEskerrerkrererekekrkrree 1]
Hình 2.4: Quy trình tạo ra kết qua dự đoán của giải thuật Intra Prediction 11 Hình 2.5 Reference Samples của một khối PU với size N x N {10] 12 Hình 2.6 Minh họa kết quả dựa đoán cua 35 mode voi PU kích thước 8x8 [10] 13
Hình 2.7: So sánh số lượng vector dự đoán của Intra Prediction 14
Hình 2.8 Mô tả quá trình References Samples Array Constructioni - 14
Hình 2.9: Quá trình Reference Sample SuSIIFUIÍOH +5 svSscexsxsesv+exee 1ó Hình 2.10 Các phương pháp filter Reference SAMple +5 S+x+x+x+esve 18 Hình 2.11 Mô tả quá trình References Samples Array Construction 19 Hình 2.12 Các hướng dự đoán cua Angular Prediction với độ chính xác 1/32 20 Hình 2.13 Quá trình mở rộng Reference TOJ) sec se SS+k‡kstsevEekereretetrseree 22
Hình 2.14 Quá trình thực hiện Planar Prediction [ IŨ] -. «s+<<+5s<5s++x+ 24
Hình 2.15: Quá trình chọn mode tối wu nhất [ 12] -©-cz5cce5ccscsccxesccs 27 Hình 3.1 Thiết kế phan cứng dé xuất cho giải thuật HEVC Intra Prediction 30
Hình 3.2 Minh hoa module Reference Sample FÌÏT€F -c-s=+=+<cecexsxzx+ezee 31
Hình 3.3 Minh hoa module THREE-TAP FILTER - 5-55 <s5<5<+++<++ 31
Hình 3.4 Sơ đô minh hoa module Angular Prediction -ccccccccccccces 32 Hình 3.5 Sơ dé minh hoa module REFERENCE SELLECT -eccccccccsrÖ 32
Hình 3.6 Mô tả kiến trúc phan cứng cho module PEA .35
Hình 3.7 Minh họa module “SAMPLES FLIP” với PU kích thước 4x4.
Hình 3.8 Minh họa module PPC (post-processing cell).
Hình 3.9 Mình họa module POST PROCESSING 38 Hình 3.10: Module Planar Prediction c.c.ccceessssecsssssssseseseeseseseseseseesesesesesneseseseees 39
Hình 3.11: Module Predict 8X8 cccccccccccccsssesesesssessesesesesesesesesessesesesesesensseessscsesenees 41
Hình 3.12 Module Branch với kích cỡ PU ồXổ -¿- - esse seeeeesesseseaeseee 43 Hình 3.13 Module DC PrediCfiOII c5 S555 SS+S+Se+E+Eexerertrteterererrerrerer 44
Trang 8Hình 3.14: Module dcVal_Caculate c- 5c 5c S2 E2 E8 E8 E££EE+E+EEsE+eE+eererse 46
Hình 3.15 Thiết kết của khối SAD And Best Mode Selection - 47
Hình 3.16 Mô hình FSM điều kiến
Hình 4.1 Cầu trúc môi trường UVM để đánh giá thiết kế -.-: -c 50
Hình 4.2 Dang sóng mô phỏng quá trình xử lý cho 1 CU có kích thước 32x32 54
Hình 4.3 Quá trình lấp đây các thanh ghi pipeline -cccccccccccccccccee 54
Hình 4.4 quá trình xử lý chọn ra mode tốt nNdtc.ccsesccsssssessssssssssscssssesssssssesssssesssessees $5 Hình 4.5 Dạng sóng ouput sau khi đã lap day các thanh ghi pipeline 55
Hình 4.6 Dang sóng mô phỏng tinh toán best cost cho PU kích thước 4x4 và 8x8 56 Hình 4.7 Dạng sóng mô phỏng tinh toán best cost cho PU kích thước 16x16 và 32x32
Hình 4.8 Kết quả mô phỏng quá trình xử lý liên tiếp nhiều CU - 56 Hình 4.9 Các cài đặt cho quá trình tổng hợp
Hình 4.10 Kết quả tổng hợp về resource sử dụng
Hình 4.11 Kết quả resource sử dụng cho các module chính trong thiết kế
Hình 4.12 Kết quả timing report
Hình 4.13 Mô phỏng timing với ở chu kỳ 4.31ns ứng với tần số 232Mhz.
Trang 9DANH MỤC BẢNG
Bảng 1.1: So sánh banwidth giữa AVC và HEVC [44]' 5 c555<55x+cs+sv<v<vx 1
Bang 1.2: Thống kê tốc độ mạng trung bình ở Việt Nam [Š] - 1
Bảng 1.3 Số chu kỳ mong muốn can đạt được cho từng kích thước PU 4
Bảng 1.4: Mục tiêu de tdi cccccccscsssssssssssssssssssssssssssssssssssssssuessssssicessssuesessssiesesssseeeeessvess 5
Bang 2.1 So sánh Bit-Rate Savings giữa các phiên bản nén video [9] 7
Bảng 2.2: Tham số góc A so với mode dự đOÁH -:-552cc:c5c5scscccxvccscrvscee 20 Bang 2.3: Tham số góc nghịch đảo B so với tham số góc A
Bang 3.1 Các thông số cơ bản của thiết kế phẩn cứng c ¿-©ccccccccccccee 28 Bảng 3.2: Mô tả input/output của thiết kế ©cccz5555szsvcc+ssesevcvsserrrssee 29
Bảng 3.3: Các mode thực thi ở chế độ song song -c -: ©ccccccccceccccccee 35
Bảng 3.4: Mô tả tín hiệu module Planar PrediCHOH c5 5+5cexsxsxsvseve 40 Bang 3.5: Tỉ lệ kích cỡ module Branch so với từng P «<<<<<x++<<+ 43
Bang 3.6: Mô ta tín hiệu module DC PrediCtiOnn 5555555552 555+5<+x+<+> 44
Bảng 3.7 Mô tả các trạng thái Xử Ỉý S55 St St EeEEkekEsskrkrkerekkekekrke 4 Bang 4.1: Các tính năng của Kvazaar
Bang 4.2: Các mode kiểm tra ứng với từng loại ŠeqI€H€€ -ccccc:5c55ccz 49
Bang 4.3: Coverpoint cho từng tín hiỆu 5-55 5555c5< 5+5 +x+xsxcxercseexexes 30
Bang 4.4: Kết quả bao phú cua các bài kiểm tra
Bang 4.5 Thông tin timing cua từng module thành phân chính trong mạch 58
Bang 4.6: Các lệnh can thiết cho quá trình mô phỏng timing post-synthesis 58 Bang 4.7: Phân bố số lượng các testcase có trong 4 CU .-. -+c-ccscc+ 59
Bảng 4.8: Thống kê số chu kỳ cân thiết để xử lý cho từng từng kích thước PU có trong
1 CŨ kích thước 32x32 63
Bang 4.9 Kết quả so sánh với các nghiên cứu trước đỏ . -cc cc cc5cccs 65
Trang 10DANH MỤC TỪ VIẾT TÁT
Từ viết tắt Tên đầy đủ
HEVC High Efficiency Video Coding
UVM Universal Verification Methodology
DPI Direct Programming Interface
FullHD Độ phân giải 1920x1080 pixels
2K Độ phân giải 2560x1440 pixels
4K Độ phân giải 3840x2160 pixels
8K Độ phan giải 7680x4320 pixels
UHD Ultra High Definition
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
DCT Discrete Cosine Transform
CABAC Context-Adaptive Binary Arithmetic Coding
SCU Smallest Coding Unit
LCU Largest Coding Unit
DC Direct Current
DCVal Direct Current Value
RMD Rough Mode Decision
Trang 11RDO Rate Distortion Optimization
SAD Sum of Absolute Transform Difference MPM Most probable mode
Trang 12TOM TAT KHÓA LUẬN
High Efficiency Video Coding hay HEVC là một chuẩn nén cải tiến thay thé cho phiên bản H.264, cung cấp cho người sử dụng kha năng nén video chất lượng cao với banwitdth thấp và có hiệu suất tốt hơn 40% so với phiên bản nén tiền nhiệm [1] Để
đạt được điều đó, giải thuật nén Intra Prediction đã được cải tiến với mức độ phức tạp cao hơn Cùng với việc bố sung thêm 26 vector dự đoán mới, cũng như hỗ trợ thêm
các kích cỡ của khối dự đoán từ 4x4 sample lên đến 32x32 sample giúp cho cải thiện
độ chính xác của dự đoán Do cải tiến này làm cho yêu cầu về phần cứng trở nên phức
tạp hơn, vì thế việc tối ưu hóa tốc độ và tài nguyên phần cứng cho giải thuật Intra Prediction 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ật Intra Prediction trong hệ thống nén HEVC Đồng thời áp dụng các kĩ thuật đề tăng
tốc giải thuật như: tối ưu phép nhân, xử lý song song đồng thời nhiều mode dự đoán
thực hiện pipeline để tăng throughput ch 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 Và đồng thời xây dựng một môi trường kiểm tra dựa trên thư viện
UVM [3] Cùng với đó nhóm đã sử dụng tính năng DPI của SystemVerilog dé giao
tiếp với model Kavazaar.
Qua quá trình mô phỏng nhóm đã nắm được độ bao phủ của mạch dựa trên các coverpoint đã được định nghĩa trước đó, đảm bảo mạch chạy đúng chức năng của giải
thuật và mục tiêu dé 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 13Chuong 1 GIỚI THIỆU ĐÈ 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 Intra Prediction trong
hệ thống nén video HEVC
Giới thiệu:
Nén video là kỹ thuật giúp giảm thiểu khối lượng thông tin cần thiết để mô tả một video số Quá trình nén là để loại bỏ các thông tin dư thừa có trong tín hiệu nhằm
mục dich dé giảm lượng tài nguyên can thiết để lưu trữ video, tiết kiệm chi phí và
cũng cho phép giảm lượng băng thông (bandwidth) cần thiết dé truyền video, mang lại trải nghiệm tốt hơn khi truy cập.
Theo thống kê ở Bang 1.1 khi muốn truyền tải một video ở độ phân giải
1920x1080 (~ 6 Mbyte) và FPS là 30 tức là trong 1 giây ta có tới 180 Mbyte (~ 1440
Mbps) cần thực hiện, việc nén video bằng các chuẩn nén có thé giúp giảm lượng băng
thông xuống 88 lần ở đối với AVC và xuống hơn 450 lần khi sử dụng giải thuật
HEVC.
Bang I.I: So sánh banwidth giữa AVC và HEVC [4]
AVC HD Video HEVC HD Video
FPS 30fps 30fps Resolution 1920x1080 1920x1080 Bandwidth 16.3 Mbps 3.134 Mbps
Làm một phép tính đơn giản với một mạng trung bình hiện tại của Việt Nam hiện
nay theo thống kê:
Bảng 1.2: Thống kê tốc độ mạng trung bình ở Việt Nam [5]
Download Upload Latency
35.29 Mbps 16.89 Mbps 23 ms
Trang 14Nếu ta muốn upload một file phim gốc có độ phân giải 1920x1080 như trên,
trong khi dung lượng cho phép của mang chi là 16.89 Mbps (gấp 85 lần dung lượng
băng thông để upload và 40 lần dung lượng download ) Vậy nên nếu ta không sử
dụng các giải thuật nén video thì chắc chăn ta không thể upload hay download được
các video có định dạng lớn như 2K, 4K hay 8K.
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ật né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 HighDefinition) thay vì chỉ tới 4K như phiên bản tiền nhiệm là AVC [1] đồng thời cảithiện hiệu suất nén trên cùng bitrate tốt hơn 40% [1] Vì những cải tiến đó việc thựchiện giải thuật HEVC lên phần cứng để đáp ứng nhu cầu nén và truyền video theothời gian thực nhằm mục đích streaming hay sử dụng cho các nền tảng coi phim trựctuyến 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
Trong hệ thống HEVC đã triển khai giải thuật Intra Prediction [1] giúp dự đoáncác điểm ảnh của một frame ảnh bang cách sử dung các dữ liệu đã nén trước đó trongcùng một frame Tuy nhiên do việc bồ sung nhiều cơ chế dự đoán mới so với cácphiên bản tiền nhiệm vô hình chung đã làm tăng độ phức tạp của giải thuật Intra
Prediction và làm tăng thời gian tính toán của giải thuật lên.
FPGA hay Field-programmable gate array là một mạch tích hợp bao gồm cáckhối phần cứng bên trong với các kết nối liên kết có thé lập trình cho người dùng détùy chỉnh hoạt động cho một ứng dụng cụ thé Các kết nối liên kết có thé dé dangđược lập trình lại, cho phép FPGA thích ứng với các thay đổi đối với thiết kế hoặcthậm chí hỗ trợ một ứng dụng mới trong suốt thời gian hoạt động của bộ phận Hay
có thê hiểu nôm na nó là một loại chip trang cho phép người dùng có thé tái cấu hìnhlại kiến trúc theo ý người dùng để thực thi một chức năng cụ thể Nhiều thuật toán
phức tạp trong đó có HEVC đã được hiện thực trên phần cứng FPGA nhằm tăng tốc
Trang 15độ xử lý và giảm điện năng tiêu thụ, giúp giải quyết vấn đề về thời gian tính toán củaHEVC một cách tối ưu nhất.
1.2 Mục tiêu đề tài và phương pháp thực hiện
1.2.1 Mục tiêu
Ngày nay việc streaming video cũng như truyền phát các video trên nền tảng trực
tuyến thời gian thực đang được phô biến một cách vô cùng rộng rãi sử dụng chuẩn
nén HEVC Tuy nhiên, càng ngày độ phân giải càng được cải tiến dẫn đến các giảipháp bằng phần mềm đơn thuần khó đáp ứng được nhu cầu này, bắt buộc chúng taphải chuyền sang thực hiện giải thuật trên phần cứng đặc biệt là giải thuật phức tapIntra Prediction của chuẩn nén HEVC
Đã có một số bài nghiên cứu đưa ra các giải pháp dé hiện thực giải thuật này trênphần cứng cũng như giảm điện năng tiêu thụ của giải thuật hơn so với phiên bản phầnmềm Ở nghiên cứu [1] đề xuất kĩ thuật data reuse giúp giảm khối lượng tính toán lêntới 80% so với ban đầu và video đạt được ở mức 30EPS FullHD tuy nhiên chỉ hỗ trợ
cho các PU có kích cỡ 4x4 và 8x8 Fully pipeline đã được tác gia của bài nghiên cứu
[6] thực hiện giúp đạt được tốc độ 24 FPS ở độ phân giải 4K và hỗ trợ tất cả các kích
cỡ của PU Vào năm 2017, Hasan Azgin và những người cộng sự của mình đã đềxuất giúp giảm số lượng tính toán cũng như năng lượng tiêu thụ đi 24,63% so với
phiên bản HEVC góc và có thé thực hiện được ở tần số 166MHz [7] Và tiếp sau đóvào năm 2018, việc áp dụng giải thuật Intra Prediction này lên phần cứng FPGA được
thực hiện bằng cách sử dụng các khối DSP thay cho các phép tính cộng và shift thôngthường, đề xuất này giúp cho mạch có thé xử lý được ở độ phân giải FullHD với nănglượng tiêu thụ ít hơn [8] so với nghiên cứu trước Tat cả giải pháp trên nhắm đếnmục đích cải thiện độ phức tạp trong việc tính toán của giải thuật cũng như tối ưu hóa
năng lượng tiêu thụ.
Nhận thấy tiềm năng của giải thuật này vẫn có thê tiếp tục phát triển thêm nữa về
tốc độ xử lý Ở nghiên cứu này nhóm muốn đề xuất 1 kiết trúc phần cứng thực hiện
Trang 16giải thuật Intra Prediction của hệ thống HEVC, và đồng thời kiểm tra kết quả trênphần cứng mô phỏng.
Kiến trúc phần cứng của nhóm đề xuất với mong muốn hỗ trợ xử lý được tối thiêu
là 30FPS ở có độ phân giải 4K, để đạt được điều đó trên lý thuyết mạch phải xử lý
được tối thiểu 243000 CU, mỗi CU bao phủ 32x32 samples, mà dé xử lý được 1 CUtrong trường hợp tệ nhất cần phần thược hiện việc dự đoán đệ quy từ kích thước PUlớn nhất (32x32) cho đến kích thước nhỏ nhất (4x4) trên toàn bộ các mode Tốc độmong muốn nhóm muốn đạt được với các PU có kích thước từ 8x8 cho đến 32x32sau khi lấp đầy các thanh ghi pipeline là 1 mode trên chu kỳ, riêng với PU có kíchthước 4x4 nhóm sẻ xử lý song song 16 mode trên 1 chu kỳ Suy ra số chu kỳ cần thiếtnếu áp dụng kỹ thuật pipeline và xử lý song song cho xử lý từng kích thước PU cụthé tại Bảng 1.3
Bảng 1.3 Số chu kỳ mong muốn cần đạt được cho từng kích thước PUKích thước PU Sô lượng Số chu kỳ cần thiết
32x32 1 35
16x16 4 140
8x8 16 560
4x4 64 140
Ở Bang 1.3, với toàn bộ các kích thước PU cần thiết phải thực hiện dự đoán
trên toàn bộ các mode (35 mode), với các PU lớn hơn 4x4 thì:
Số chu kỳ cần thiết = Số lượng * 35
riêng với PU 4x4 do khối lượng xử lý nhỏ nên có thé xử lý song song nhiều mode
nên:
(Số lượng + 35)
Số chu kỳ cần thiết 6 chu kỳ cân thié 16 =
Trang 17Qua đó dé xử lý được 1 CU số chu kỳ cần thiết sẽ là 35 + 140 + 560 + 140 = 875 chu
kỳ xung clock, ở độ phân giải 4K xử lý 30 khung hình xấp xi 243000 CU sẽ can
212625000 chu kỳ xung clock, tương đương với việc mạch phải hoạt động ở tần số
tối thiểu 212,625 Mhz cụ thé tại Bang 1.4
Bang 1.4: Muc tiéu dé tai
của hệ thống dé xem cách thức hoạt động đồng thời hiện thực phần mềm dựa trên
ngôn ngữ lập trình C++ cho thuật toán Intra 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ấtcác cau 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
Báo cáo này được chia thành 5 chương chính Chương đầu tiên giới thiệu về
dé tài khóa luận Các chương tiép theo sap xêp theo bô cục sau:
Chương 2: Cơ sở lý thuyết
Chương nay trình bày những cơ sở lý thuyết được sử dụng có liên quan đến
nộ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ư chi tiệt vê giải thuật Intra Prediction trong hệ thông nén đó
Trang 18Chương 3: Thiết kế đề xuất cho giải thuật Intra Prediction
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 Intra Prediction bằng ngôn ngữ lập trình 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 đô thông kê sô liệu Cũng như cách đê thực hiện các
công đoạn mô phỏng, kiêm tra đê ra được kêt quả trên.
Chương 5: Kết luận và Hướng phát triển
Chương 5 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óm thực hiện và những ket quả, thành tích đã đạt được Đông thời ở chương nay
nhóm thực hiện sé đưa ra đê xuât cho hướng phát triên tiép theo của đê tai trong tương
lai.
Trang 19CƠ SỞ LÝ THUYET
2.1 Sơ lược về HEVC
High Efficiency Video Coding (HEVC/H265) [1] là một định dạng nén video
được thiết kế như sự là kế thừa của Advanced Video Coding (AVC/H264) [1] Chuan
Chương 2.
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ự hop tác giữa ISO/IEC Moving Picture Experts Group (MPEG) va
ITU-T Video Coding Experts Group (VCEG) Đến thang 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 đượcphê chuẩn vào tháng 1 năm 2013 và được tuyên bố vào tháng 6 năm 2013
HEVC cung cấp khả năng nén dữ liệu tốt hơn đến 40% thé hiện ở Bang 2.1 sovới phiên bản H.264, ở cùng mức chất lượng video hoặc được cai thiện đáng kế ởcùng tốc độ bit-rate, đồng thời độ phân giải cũng được tăng lên đến 8192 x 4320 baogồm độ phân giải 8K UHD (Ultra High Definition)
Bang 2.1 So sánh Bit-Rate Savings giữa các phiên bản nén video [9]
Bit-Rate Savings Relative to
Cũng giống như các chuan mã hóa video khác, HEVC có những logic nhất
định dé dat đượ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 đữ liệu còn ở dạng thô (raw) và việc
Trang 20truyền tải nội dung là rat khó khăn Dé 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 đa.
Chuẩn 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óanhữ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ố dé tìm kiếm những điểm ảnh thay đôi trong cửa số đó Ngoài ra, phương thức nénHEVC 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 phần bằng nhau được gọi là macroblocks [1] và sau đó nhớ các
phần có màu sắc giống nhau lại thành một, điều đó hiệu quả hơn nhiều thay vì nén tất
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 [1].
Hình 2.1: Khác biệt giữa Macroblocks(AVC) va Coding Tree Unit(HEVC)
Ngoài ra còn một giải thuật nữa đó là Inter Prediction, thông thường hau hếtgiữa 2 frame ảnh liền kề nhau thường có rất ít sự thay đổi, do đó giải thuật InterPrediction giúp cho người sử dụng phát hiện những thay đổi đó giữa các frame dựa
vào các vector chuyên động đông thời nén các macroblocks có các sự thay đôi đó.
Trang 21Còn các macroblocks khác do không có sự thay đổi nên chỉ cần hiền thị lại như frame
ảnh đầu tiên thay vì phải nén bấy nhiêu lần cho bấy nhiêu frame
Encoder Control
Current frame
Hình 2.2 Sơ đồ khối của hệ thống HEVC
Dựa vào Hình 2.2, thay vì chia frame ảnh thành các macroblocks như các giải
thuật trước đây thì HEVC lại chia các frame ảnh thành các Coding Tree Unit tại khốiCTB split [1] tương tự như macroblocks nhưng mở rộng lên đến 64x64 điểm ảnh —lớn hơn nhiều so với 16x16 ở H.264, sau đó tiến hành sử dụng cấu trúc Quad-tree déchia nhỏ một lần nữa thành các CB ở bước CU Partition, các CB sẻ được xử lý ở khốiCoding unit Mỗi CU bao gồm 2 thành phan chính là PU (Prediction Unit) và TU(Transform Unit) Các điểm ảnh của từng CU sẽ được đưa vào khối PU dé tiễn hànhnén bang hai thuật toán Intra hoặc Inter Prediction, khi hoàn tat quá trình này sẽ tạo
ra một khối các sample đã được dự đoán và những sample này sẽ so sánh với các giátrị sample ban đầu dé chọn ra các sample cần phải nén được gọi là residual
residual = current PU block data — PU output
Residual sau khi được tính toán tiếp tục được đưa vào khối TU, ở phan này
giá trị sẽ qua một phép biến đổi cosin rời rac (DCT) dé biểu diễn các sample dướidạng hình cosin có cường độ và tần số khác nhau ở khối TU và cuối cùng các giá trị
đó được mã hóa bằng thuật toán CABAC (Context-adaptive binary arithmetic coding)[10] ở khối Entropy Coding Sau khi hoàn tat quá trình này ở đầu ra của khối Entropy
Trang 22Coding chính là các giá trị bitstream đồng thời cũng là kết quả frame ảnh sau khi
được nén của giải thuật HEVC.
2.1.2 CU Partition.
Dé nén một frame ảnh trong HEVC, giải thuật không thé nào xử lý một lúc số
lượng lớn thông tin của một frame ảnh đó mà phải qua một bước giúp chia nhỏ thông
tin đầu vào dé dé dang hơn cho việc xử lý, cho phép xử lý song song nhằm tăng tốc
độ nén, kỹ thuật đó được gọi là Coding Unit Partition.
Vì HEVC được thiết kế với mục đích xử lí các video có độ phân giải cao lên
đến 8K UHD, do đó nếu sử dụng phương pháp chia frame ảnh thành các macroblocksnhư ở giải thuật tiền nhiệm thì kích thước khối dự đoán tối đa chỉ được 16x16 sampleđiều này không phù hợp với những video có độ phân giải lớn từ FullHD trở lên Do
đó HEVC đã thay thế macroblocks bằng một khái niệm mới là CTU, việc thay đổi
này nhằm mục đích cải thiện kích cỡ khối dự đoán tối đa từ 16x16 lên đến 32x32
sample.
Mặc dù việc triển khai CTU có kích thước lớn này giúp mã hóa được các video
có độ phân giải cao tuy nhiên sẽ gây ảnh hưởng nếu thực hiện trên các video có độ
phân giải thấp hoặc mức mã hóa thấp Do đó dé dự đoán chính xác được vùng chuyên
động HEVC có một cơ chế linh hoạt giúp chia các CTU thành các đơn vị xử lý cơbản có kích thước phù hợp hay còn được gọi là Coding Unit Partitioning thể hiện ở
Hình 2.3.
10
Trang 23Hình 2.3: Coding Unit Partitioning
Khối CTU bao phủ 64x64 pixel hay con được gọi là LCU (Largest Coding
Unit) có thé được chia thành 4 khối CU nhỏ hơn 32x32, tương tự như thế khối CU
32x32 lại tiếp tục có thê chia thành 4 khối CU với kích thước bằng một phần tư và cóthé chia tới nhỏ nhất là 8x8 hay còn được gọi là SCU (Smallest Coding Unit) Việcthực hiện CU Partitioning này phụ thuộc vào hệ số rate-distortion [1] (chỉ mức độ nén
tối đa có thé đạt được khi thực hiện việc nén có mat mát)
2.2 Giải thuật Intra Prediction
2.2.1 Sơ lược về Intra Prediction
Giải thuật Intra Prediction của HEVC gồm ba bước chính là Reference Sample
Atrray Construction, Sample Prediction và Post Processing được mô tả ở Hình 2.4.
Tất cả ba bước trên được thiết kế để đồng thời tối ưu hiệu năng lập trình và tối thiểu
những yêu câu máy tính trong cả hai bước encoder và decoder.
Reference Sample Array
Hình 2.4: Quy trình tạo ra kết quả dự đoán của giải thuật Intra Prediction
11
Trang 24Tắt ca các chế độ dự đoán của HEVC đều cần phải sử dụng một tập Reference
Samples được tạo ra từ các sample liền kề của khối PU cần dự đoán làm đầu vào cho
giải thuật cụ thể được mô tả ở Hình 2.5 các References Samples này thường có chiều
dài bằng 2N với N là chiều rộng của khối dự đoán
p[1l[F1l plOlFllBD - PINAY] - pf2N-1][-1]
P[-1][0]
Ø[-1][N-1]
p[-1][2N-1]
Hình 2.5 Reference Samples của một khối PU với size N x N [10]
Sau đó dé cải thiện khả tìm kiếm mode dự đoán phù hợp, HEVC hỗ trợ nhiều
bộ lọc khác nhau cho quá trình tiền xử lý (Reference Sample Array Construction)
trước khi các References Samples được đưa vào quá trình xử lý chính của giải thuật
Intra Prediction tại bước Sample Prediction Sau khi hoàn tất quá trình dự đoán một
số mode dự đoán sẽ cần phải được xử lý hậu kì Post Processing (mode 10 và mode
26) dé làm đảm bảo độ liên tục đồng đều của các samples cho kết quả dựa đoán
(Predicted Samples) Hình 2.6 minh họa kết quả dựa đoán của tất cả 35 mode
Prediction khi sử dụng các cùng | bộ Reference Samples làm input.
12
Trang 25Planar mode DC mode
Hình 2.6 Minh họa kết quả dựa đoán của 35 mode với PU kích thước 8x8 [10]
Các phương pháp dự đoán của HEVC ở bước Sample Prediction được chia
thành 3 loại chính là phương pháp dự đoán góc (Angular Prediction) cung cấp cho
bộ giải mã khả năng xác định các sample tạo ra cấu trúc có các góc và cạnh có hướng.Phương pháp thứ 2 là dự đoán mặt phăng (Planar Prediction) và dự đoán DC (Direct
Current Prediction) giúp dự đoán các sample năm ở vị trí mặt phăng đồng thời làmmịn các sample đó bằng phép tính chia trung bình
Bên cạnh đó HEVC cũng đã bổ sung thêm 26 mode vector dự đoán cho giảithuật Intra Prediction so với phiên bản tiền nhiệm trước đó chỉ có 9 mode Hình 2.7thé hiện sự so sánh số lượng mode của giải thuật Intra Predition giữa 2 phiên bảnH264 và HEVC Việc tăng thêm này giúp giải thuật có thể nén video một cách tối ưu
13
Trang 26và hiệu quả nhất tăng độ chính xác của kết quả dựa đoán lên 1⁄4 sample và đồng thời
kích thước tối đa của PU cũng được tăng lên 4 lần thành 32x32 so với 16x16 trên
phiên bản H.264 [11].
3 18 10 19 4 20 1121022 12 23 5 24 13 25 6
26 14
Hình 2.7: So sánh số lượng vector dự đoán của Intra Prediction
2.2.2 Quy trình Reference Sample Array Construction
Reference
Samples Filtering
p3191|I-Reference Sample Array Construction
—=————————>—>—>—>—> EEE EE EE
Hinh 2.8 M6 ta qua trinh References Samples Array Construction
Các bước dé tao ra một tap References chuan (Filtered Reference Samples)
bao gom 2 bước được mô tả tai Hình 2.8 Khác với H.264, HEVC đã bổ sung thêm
14
Trang 27bước Reference Sample Substitution giúp tự động thêm vào giá trị bị thiếu của một
hoặc nhiều sample trong tập Reference Samples, cho phép giải thuật sử dụng đầy đủ
tất các các kích thước dự đoán ở bước Sample Prediction mà không cần đến sự có
mặt đầy đủ của toàn bộ sample có trong tập Reference Sample Sau đó một bộ filter
có được áp dụng thể làm mịn các sample trong tập Reference Sample ở bước Samples
Filtering.
2.2.2.1 Reference Sample Substitution
Một vài hoặc tat cả các sample trong tap Reference Samples có thé không cósan cho quá trình dự đoán của một số CU vì một số lý do, ví dụ như khối PU nằm ở
các góc hoặc tại các cạnh của frame ảnh thì các sample để tạo nên Reference Sample
sẽ không nằm trong frame đó Vi lý do đó quá trình Reference Sample Substitution
được thêm vào đề bù đắp những sample còn thiếu Không như H.264 chỉ có phép DCPrediction hoạt động ở những trường hợp này, nhờ quá trình thay thế này HEVC chophép tất cả 35 chế độ dự đoán đều hoạt động đề tìm ra chế độ tối ưu nhất
Với trường hợp đặc biệt khi khối dự đoán nằm ở góc trên bên trái của mộtframe ảnh, khi đó không có bất kì một sample nào có san dé tạo ra các ReferenceSample, lúc này các Reference Sample sẽ được thay thế bằng một giá trị trung bình
bang với độ sâu của bit cho trước (ví dụ 128 với kiểu dữ liệu 8 bit) Nếu có ít nhất
một sample có sẵn thì các sample còn lại sẽ được lấy giá trị của các sample có sẵn
đứng trước nó thay cho sample hiện tại theo chiều kim đồng hồ như Hình 2.9
15
Trang 28Hình 2.9: Quá trình Reference Sample Substitution
thể hiện một ví dụ về quá trình thực hiện Reference Sample Substitution Cụ thé
hơn quá trình này được thực hiện như sau:
e Khi p[-1][2N -1] không có sẵn, vị trí này sẽ được thay thé bởi giá trị đầu tiên
có sẵn trong quá trình quét reference theo thứ tự p[-1][2N -2], , p[-1][-1].
nếu các giá trị này vẫn không có thì các reference tiếp tục quét tiếp p[O][-1],
5 D[AN-I][-1].
e Các giá trị không có sẵn của các Reference p[-1][y] với y = 2N-2, -1 sẽ
được thay thé bằng các Reference phía đưới p[-1][y+1]
e Cac giá tri không có sẵn của các Reference pl-1lIx] với x = 0, 2N -1 sẽ
được thay thé bang các Reference phía trai p[x-1][-1]
2.2.2.2 Qua trình Samples Filtering
Các Reference Samples được sử dung cho giải thuật Intra Prediction của HEVC sẽ được qua một bộ loc (smoothing filter), tưrơng tự như những gi được làm ở
H.264 Mục đích của quá trình này là làm mịn bộ Reference Samples dé tránh tạo ranhững góc cạnh có hướng không mong muốn trong kết quả sau quá trình dự đoán Dé
16
Trang 29tối ưu hiệu năng cho quá trình filter việc quyết định có thực hiện smoothing filter phụ
thuộc vào mode dự đoán được chọn và kích cỡ của khối PU đó
Nếu đó là mode DC Prediction hoặc khối có kích cỡ 4x4 sample thì sẽ không
áp dụng filter Đối với PU 8x8 bộ lọc chỉ áp dụng với những mode theo phươngnghiêng (mode 2, 18 và 34) Đối với kích cỡ 16x16 bộ lọc này sẽ được áp dụng chohầu hết tất cả trường hợp ngoại trừ các các mode 9, 10, 11, 25, 26 và 27 là những
mode có các sample tạo thành các phương cận ngang hoặc cận dọc Còn với PU 32x32
chỉ có 2 mode phương thắng và phương ngang (mode 10 và 25) là không cần qua bộ
lọc.
Một khi được xác định răng bộ lọc nào sẽ được áp dụng, một trong hai phương
pháp lọc (three-tap filter va linear interpolation) sẽ được chọn dựa trên kích cỡ block
và sự liên tục của Reference Sample, mặc định bộ three-tap filter [1 2 1] / 4 sẽ được
sử dụng trong hầu hết các trường hợp của quá trình filtering Tất cả các ReferenceSample sẽ được filter bằng cách sử dụng 2 Reference liền kề theo công thức sau:
interpolation giữa 3 góc cua reference sample p[1][63], p[1][1] và p[63][1] thay vi sử
dung three-tap filter Một reference được xem là tương đối phang khi thỏa mãn 2 bat
đẳng thức sau với b là bit depth:
17
Trang 30Quá trình này được coi như một strong intra smoothing khi nó thay thé gần
như toàn bộ Reference Sample nguyên mẫu Hai quá trình filter cho Reference
Sample được thé hiện rõ ở Hình 2.10
(C+2Y+D)/4 Linear Interpolation
Linear Interpolation
(At2X+B)/4
(a) Three-tap filter (b) Linear Interpolation
Hinh 2.10 Cac phuong phap filter Reference Sample.
18
Trang 31Angular prediction
Hinh 2.11 M6 ta qua trinh References Samples Array Construction
HEVC đã hỗ trợ nhiều chế độ cho bước Sample Prediction khác nhau giúp cho
việc dự đoán các vector chuyên động của các PU đạt được hiệu quả cao nhất Trong
Hình 2.11: Angular Prediction giúp dự đoán các cấu trúc có hướng hoặc góc khácnhau thường xuất hiện trong hình ảnh Trong khi đó Planar và DC Prediction hỗ trợcho khu vực hình anh min ít thay đôi nội dung hoặc thay đôi một cách từ từ Đồngthời dé cải thiện khả năng dự đoán ở chế độ Angular, một số mode sẽ được thêm bước
hậu xử lý (Post Processing) dé đảm bao tính liên tục của các sample sau khi dự đoán
2.2.3.1 Angular Prediction
Angular Prediction được thiết kế dé xác định những cấu trúc có hướng và góccạnh khác nhau thường xuất hiện trong một frame ảnh Ở quá trình này có 4 kích cỡ
PU được áp dụng dé dự đoán bao gồm 4x4, 8x8, 16x16 và 32x32 mỗi PU lại được hỗ
trợ 33 vector chỉ hướng Vì lý do đó một bộ decoder của Angular phải hỗ trợ được
132 tô hợp của kích cỡ khối PU và hướng dự đoán
HEVC đã cung cấp một bộ 33 hướng dự đoán với độ chính xác 1/32 sample
để phục vụ cho công đoạn Angular Prediction Hình 2.10 thể hiện chính xác cácsample dùng dé dự đoán ở chế độ Angular Prediction Trong hình ảnh tự nhiên, nhữnghình ảnh có hướng theo chiều ngang hoặc dọc thường xuyên xuất hiện hơn những cấu
19
Trang 32trúc có phương khác Nhờ việc chia thành nhiều mode với mode ngang (horizontal
mode) từ 2 đến 17 và mode dọc (vertical mode) từ 18 đến 33 giúp cho việc dự đoán
s9
ỳ
€
ở
Hình 2.12 Các hướng dự đoán của Angular Prediction với độ chính xác 1/32
Bảng 2.2: Tham số góc A so với mode dự đoán
Mỗi mode dự đoán Angular đều được thé hiện bằng một tham sé góc A Bang 2.2 chỉ
ra sự liên quan giữa tham sô góc A so với mode dự đoán của Angular Prediction.
20
Trang 33Đối với các tham số góc có giá trị âm, lúc này phải sử dụng cả hai Reference
Sample ở phía trên (top) và phía trái (left) dé dự đoán Dé đơn giản hóa việc dự đoán,
các giá trị của cả hai Reference top và left được đặt trong một mảng một chiều bằng
cách chiếu các giá trị của Reference left đưa lên Reference top và mở rộng về phíabên trái Hoặc ngược lại chiếu các giá tri Reference top đưa vào Reference left dé mởrộng lên phía trên tùy trường hợp dự đoán doc hay dự đoán ngang Phép chiếu này
được thực hiện như sau:
Đối với các mode có tham số góc A là một sé duong (mode doc ttr 26 dén 33
va mode ngang từ 2 đến 10), mang 1 chiều được tạo ra don giản bang cách sao chép
lại các Reference Sample từ hướng của dự đoán:
p[—1 + x][-1],(œx = 0) cho verital mode (2.8)
ref [x]
ref [y] = p[-1][-1 + y],(y = 0) cho horizontal mode (2.9)
Ngược lại nếu tham số góc A là một số âm các thì các giá trị được tính như sau:
reƑ[x] =p[—1][—1+((x+*B+ 128) >8)|(x<0) (2.10)refly] =p[-1+((y*B +128) >8)|[—-1](w<0) (2.11
Với B là tham số góc nghịch đảo của tham số góc A được biểu diễn ở Bảng 2.3
Bảng 2.3: Tham số góc nghịch đảo B so với tham số góc A
A -32 -26 -21 -17 -13 -9 -5 -2
B -256 -315 -390 -482 -630 -910 -1638 -4096
21
Trang 34Hình 2.13 Quá trình mở rộng Reference Top
Hình 2.11 cho thấy quá trình tham chiếu với trường hợp mode dự đoán bằng
23 với tham số góc bằng -9 Trong đó mũi tên đậm chỉ hướng dự đoán, mũi tên nhạtchỉ vi trí của các giá tri Reference Left khi được tham chiếu lên thành Reference Top
và mở rộng về phía bên trái sử dụng tham số góc nghịch đảo là -910
Đối với vị trí sample cần dự đoán p[x][y] các giá trị này được tính bằng cáchtham chiếu vị trí của sample p[x][y] lên mảng Reference Sample và áp dụng hướng
dự đoán được chọn cùng phương pháp nội suy giá trị cho một sample với độ chính
xác 1/32 Với horizontal mode (từ 2 đến 17) các giá trị của các sample dự đoán được
tính như sau:
p [x][y] = ((32-f)*ref[y+it1]+f *reƒ [y+¡+ 2] + 16) > 5 (2.12)Ngược lại đối với các vertical mode (từ 18 đến 34) được tính bằng cách:
22
Trang 35p [xlly] = (2 — ƒ) *reƒ [x+¡+ 1] + ƒ «ref [x+¡+ 2] + 16) > 5 (2.13)
Trong đó tham số i để xác định vị trí các sample tham chiếu trong mảng được tínhdựa trên tham số góc A và phụ thuộc vào cột x hoặc hàng y với công thức sau:
i= (( x+1)* A) > 5 cho các horizontal mode
i= (Cy +1)* A) > 5 cho các vertical mode
Tương tự với tham sỐ f dé xác định hệ số nhân của mỗi mode được tính băng :
f= (( x+1)* A) & 31 cho các horizontal mode
f = (Cy +1) *« A) & 31 cho các vertical mode
Các tham số i và ƒ là một hằng số không đổi trong quá trình thực hiện dựđoán của một khối PU Do đó phép toán duy nhất cần thực hiện cho mỗi sample củakhối PU là phép nội suy tuyến tinh đề tính ra được giá trị của sample tai vi trí p[x][y]
2.2.3.2 DC Prediction
DC Prediction giúp tao ra một khối dự đoán mịn tuyệt đối không có góc cạnh
cho một khối PU cần dự đoán Với trường hợp DC Prediction, tất cả reference sample
của khối PU cần dự đoán được gán bang một giá trị hăng số dcVal, giá trị này được
tính dựa vào phép toán trung bình cộng của các Reference Sample Left và Reference
Sample Top được thể hiện bởi công thức sau:
}x=o pÍx][—1] + Xÿ=o p[—1]lly] + N
(2.14)
Với N là chiều rộng của PU
2.2.3.3 Planar Prediction
Trong khi Angular Prediction cung cấp dự đoán về những cau trúc có các cạnh
và góc, nó có thê tạo ra một vài đường viền (contouring) trong bề mặt ảnh phăng
23
Trang 36Tương tự, các cạnh có thê xuất hiện trong những khu vực hình ảnh mượt khi áp dụng
DC Prediction ở tỉ lệ bit vừa và thấp
Planar Prediction được thiết kế dé giải quyết van đề này bằng cách tạo ra một
bề mặt dự đoán liên tục không bị gián đoạn Điều này được thực hiện bằng cách tính
giá trị trung bình của hai giá tri p, (horizontal prediction) và p, (vertical prediction)tai
vị trí references sample đang được tham chiếu Được biểu diễn bằng công thức sauvới N là chiều rộng của khối PU cần dự đoán:
plxl[y] = @alxlly] + plx][y] +N) > đogạ(N)+1) (2.15)
Với p„ Va Py được tính bằng công thức sau:
Ðn[x][y] = (NT— 1 *x) *p[—1][y] + (x + 1) * p[N][-1] (2.16) p,„lx][y] = (N — 1— y) *p[x][—1] + Œ + 1) * p[—1][N] (2.17)
k piM[1] P e
-p[-1][NI
Hình 2.14 Quá trình thực hiện Planar Prediction [10]
Hình 2.14 biểu diễn quá trình thực hiện Planar Prediction giá tri reference
sample tại vi trí p[N][-1] (top-right) được dùng làm reference right dé tham chiếutheo chiều ngang cho các reference left tại vị trí muốn tính Tương tự giá trị bottom-left tức p[-1][N] được dùng làm reference top dé tham chiếu theo chiều doc cho cácreference top Sau khi có được hai giá trị p„ và p„, hai giá trị này sẽ được chia dé lay
24
Trang 37giá trị trung bình đồng thời giá trị đó cũng là giá trị của Planar Prediction tại vị trí cần
tính.
2.2.4 Quá trình Post Processing
Một số mode dự đoán có thé tao ra sự gián đoạn cho quá trình dự đoán giá tri
của một PU Các trường hợp điển hình bao gồm DC Prediction, và cho các mode có
hướng dự đoán ngang hoặc dọc Trong quá trình DC Prediction, sự gián đoạn này có
thé xảy ra ở phía trên hoặc bên trái của khối dự đoán khi tất cả các giá trị được thaythế bằng một giá trị duy nhất
Trong trường hop mode có hướng dọc, sự gián đoạn này có thé xảy ra ở cộtbên trái ngoài cùng Tương tự, nó cũng có thê xảy ra tại hàng trên cùng của mode cóhướng ngang hoàn toàn được chọn Dé giảm những sự gián đoạn này, các giá trị bêntrong khối PU cần dự đoán sẽ được thay thế bởi những giá trị đã được lọc (boundarysmoothing) dé tránh những sự gián đoạn như trên Bộ hậu xử lý này chỉ được áp dụngcho ba trường hợp kề trên (DC Prediction, Angular mode 26 và Angular mode 10) vàkhi kích cỡ khối dự đoán nhỏ hơn 32x32
Khi khối dự đoán có phương ngang tuyệt đối (mode 10), giá trị dự đoán tại vị
trí p [0]lly] với y=0 N — 1 được tính toán dựa vào các giá tri p 1]1] và p
[-I]Iy]:
p[0]l[y] = p[0][y] + (œ[—1lly] — p[—1][—1]) > 1 (2.18)
Đối với dự đoán có hướng dọc tuyệt đối (mode 26), giá tri p[x][0] với x = 0
N—1 cũng được tinh tương tự
p[x][0] = plx][0] + (œlx]I—1] — p[-1][-1]) > 1 (2.19)
Trong trường hợp đó là DC Prediction bộ xử lý THREE-TAP FILTER được
áp dụng cho giá trị sample đầu tiên p[0][0] được tính dựa vào giá trị dcVal cùng với
2 sample tham chiếu lân cận là pI-1][0] và p [0][-L]:
25
Trang 38p[0][0] = (p[—1][0] + 2 * dcVal + p[0][—1]) > 2 (2.20)
Với những vi tri sample khác, bộ xử ly two-tap filter được áp dung:
p[x]{0] = (p[x][—1] + 3 * dcVal + 2) > 2 với x=1 N-I1 (2.21) p[0l[y] = (p[—1l[y] + 3 * dcVal + 2) > 2 véiy=1 N-1 (2.22)
2.2.5 Bộ chon mode tối ưu nhất
Đề giảm bớt những quá trình dư thừa trong dự đoán đồng thời làm tăng hiệu suấtcủa quá trình nén cũng như xử lý hiệu quá các PU có cấu trúc phức tạp, như đã nói ởcác phần trước HEVC đã đưa một loạt chế độ dự đoán mới bé sung cho các chế độ
dự đoán cũ của các phiên bản tiên nhiệm.
Bên cạnh DC và Planar Prediction dé xử lý các vùng ảnh mịn, HEVC còn cungcấp thêm 33 mode Angular Prediction dé phục cho các vùng ảnh có hướng dé hỗ trợthay đôi hướng nhiều hơn Đối với mỗi PU bộ chọn mode sẽ thực hiện tất cả 35 mode
đã đề cập và cuối cùng quyết định ra mode tốt nhất sẽ được áp dụng vào trong khối
PU do.
Bộ mã hóa này được tuân theo quy trình RMD (Rough Mode Decision) va RDO
(Rate Distortion Optimization) Quá trình RMD có thê được coi là một bước tiền xử
lý giúp giảm thiêu độ phức tạp của RDO bang cách giảm bớt các mode cần dự đoán
từ 35 xuống ít hơn và đưa vào một danh sách Sau đó, các mode trong danh sách sẽ
được RDO xử lý dé tìm ra một chế độ tối ưu nhất phục vụ cho việc dự đoán
Trong quá trình thực hiện RMD bộ mã hóa sẽ tính toán hàm chi phí cho từng PU
bang hàm chi phí Lagrangian (Lagrangian cost function):
Với CFpyp là tổng chi phi (cost) cần thiết dé mã hóa một PU, SAD (Sum ofAbsolute Transform Difference) là tong khác biệt giữa khối PU gốc và khối PU được
dự đoán Còn 4 là hệ số Lagrangian và R„ea; là bit rate cần thiết dé mã hóa khối PU
đó.
26
Trang 39Với việc thực hiện RDM bộ giải mã sẽ giảm số mode cần thực hiện xuống từ 35mode xuống 3 mode (PU 64x64, 32x32, 16x16) va 8 mode (PU 8x8 và 4x4) có cost
thấp nhất sau khi đã được tinh ra dé đưa vào danh sách candidates Bên cạnh đó vi
các PU liền kề bên trái và phía trên có liên quan với PU hiện tại và các khối này đã
được mã hóa trước đó nên Intra mode của các cũng được thêm vào danh sách candidates, các mode này được gọi là MPM (Most probable mode).
Tổng kết sau khi hoàn tất bước RDM và thêm MPM vào thì danh sách mode tối
ưu nhất sẽ bao gồm tổng cộng 11 mode hoặc 6 mode tùy theo kích cỡ của PU Ở
bước cuối cùng quá trình RDO được thực hiện dé tiép tục tinh cost của các mode
này va chon ra mode có cost thấp nhất dé áp dụng vào PU đó bằng công thức sau:
Tương tự với cách tính RMD, €CƑzpo là RDO cost của mỗi PU, 2 là hệ sốLagrangian và Rmoae là bit rate cần thiết dé mã hóa khối PU đó Còn SSE là tổngbình phương lỗi giữa khối PU hiện tại với PU cần dự đoán Sau khi đã tính toán xong
bộ xử lý sẽ tiến hành chon mode có RDO cost thap nhất làm mode thực hiện cho PUhiện tại Quá trình này được thê hiện trong Hình 2.15
Trang 40Chương 3 THIẾT KE ĐÈ XUẤT CHO GIẢI THUẬT INTRA PREDICTION 3.1 Thiết kế hệ thống
Hệ thống đề xuất hỗ trợ đầy đủ các chức năng để tạo các Sample Prediction cho toàn bộ các prediction mode và toàn bộ kích cỡ của PU cụ thể ở Bảng 3.1 Hình
3.1 thể hiện toàn bộ các module chính trong thiết kế, thiết kế được chia thành 3 datapath chính (Planar, DC, Angular) để áp dụng kỷ thuật xử lý song song dé tối đa
throughput tông thé cho toàn bộ hệ thống.
Bảng 3.1 Các thông số cơ bản của thiết kế phần cứng
Nội dung Chỉ tiết
Mode hỗ trợ Toàn bộ 35 mode (0 đến 34)
Kich thước PU Toàn bộ (4x4, 8x8, 16x16, 32x32)
Reference filter Có
Post-processing Có
SAD Có
Kênh màu Y,U,V
Sau khi các dit liệu cần thiết cho việc dựa đoán được nạp vào hệ thống thông
qua module: “Configuration References And Original Block Data Load”, toàn bộ tập
Reference sẻ được cho vào khối “Reference Sample Filter” để làm mịn các Reference
Sample trước khi được chia thành 3 datapath thực hiện tính toán dựa đoán sau đó, module “Planar Prediction” phụ trách việc tạo các Predicted Samples cho mode 0, module “DC Prediction” giúp tao các Predicted Samples cho mode 1, các mode còn
lại được xử lý bởi module “Angular Prediction”, tất cả các kết quả dự đoán được tạo
ra sẻ được tính toán SAD (Sum of absolute differences) dựa vào dữ liệu gốc của block
đang được xử lý (Original Block Data) và tổng hợp lại để so sánh chọn ra mode tốt
nhất.
28