Bài viết đề xuất giải pháp thiết kế phần cứng cho mô-đun Binarizer đối với dữ liệu residual data, cho phép mã hóa các luồng dữ liệu video chuẩn UHD. Mô-đun Binarizer được thiết kế và mô phỏng trên ngôn ngữ VHDL. Kết quả mô phỏng cho thấy bộ Binarizer có thể xử lý được các luồng dữ liệu video chuẩn UHD.
Kỹ thuật điện tử GIẢI PHÁP THỰC THI PHẦN CỨNG MÔ-ĐUN BIẾN ĐỔI NHỊ PHÂN DỮ LIỆU ẢNH CHO BỘ MÃ HĨA CABAC TRONG CHUẨN NÉN VIDEO HEVC Trần Đình Lâm*, Lưu Thị Thu Hồng, Vũ Lê Hà, Nguyễn Mạnh Cường Tóm tắt: Mã hóa nhị phân thích nghi CABAC (Context Adaptive Binary Arithmetic Coding) áp dụng chuẩn mã hóa video hiệu cao HEVC phương pháp mã hóa entropy cho hiệu mã hóa cao gấp đơi so với chuẩn H.264/AVC Mô-đun biến đổi nhị phân (Binarizer) CABAC thực biến đổi liệu ảnh thành chuỗi nhị phân bin string (bins) trước mã hóa thích nghi theo xác suất Dữ liệu độ dư thông tin điểm ảnh (residual data) chiếm phần đa lượng thơng tin đầu vào mơ-đun Binarizer, từ 63 ÷ 94 % Vì vậy, hiệu xử lý Binarizer residual data có ảnh hưởng lớn tới hiệu chung mã hóa CABAC Bài báo đề xuất giải pháp thiết kế phần cứng cho mô-đun Binarizer liệu residual data, cho phép mã hóa luồng liệu video chuẩn UHD Mô-đun Binarizer thiết kế mô ngôn ngữ VHDL Kết mơ cho thấy Binarizer xử lý luồng liệu video chuẩn UHD Từ khóa: Chuẩn HEVC; Bộ mã hóa CABAC; Binarizer; Dữ liệu ảnh; Thực thi phần cứng MỞ ĐẦU Sự phát triển nhanh chóng cơng nghệ số ngày cho phép truyền tải dịch vụ video số có chất UHD thời gian thực Chuẩn nén video phổ biến nay, H.264/AVC có nhiều hạn chế việc đảm bảo chất lượng dịch vụ tảng sở hạ tầng mạng hạn chế băng thông truyền tải Chuẩn nén video hiệu cao H.265/HEVC, với hiệu nén cao gấp đôi so với H.264/AVC, ITU-T công bố năm 2013 nhằm giải thách thức dịch vụ truyền video chất lượng cao, thời gian thực sở hạ tầng mạng có băng thơng hạn chế [1] Mã hóa thơng tin điều khiển chung Tín hiệu video Biến đổi lượng tử Phân chia thành CTU Ước lượng nội ảnh Dự đoán nội ảnh Chọn chế độ Intra/Inter Bù chuyển động Ước lượng chuyển động Các hệ số lượng tử Dữ liệu thông tin điều khiển Biến đổi ngược Dữ liệu dự đốn nội ảnh Định dạng tiêu đề Mã hóa CABAC Luồng bit mã hóa Phân tích tham Dữ liệu điều khiển lọc số lọc Các lọc Deblocking, SAO Dữ liệu chuyển động Bộ đệm khung ảnh khơi phục Tín hiệu sau khơi phục H nh Sơ đồ khối chức mã hóa video HEVC 158 T Đ Lâm, …, N M Cường, “Giải pháp thực thi phần cứng … chuẩn nén video HEVC.” Nghiên cứu khoa học công nghệ Kiến trúc HEVC xây dựng theo ngun lý mã hóa độ dư thơng tin sở phép dự đốn theo khơng gian (Intra-Picture Prediction) theo thời gian (Inter-Picture Prediction) áp dụng chuẩn H.264/AVC [2] Tuy vậy, tỷ lệ nén liệu video HEVC đạt gần gấp đôi so với chuẩn H.264/AVC cải tiến hầu hết mô-đun chức thành phần Sơ đồ khối chức mã hóa video chuẩn HEVC mơ tả hình [1] CABAC mơ-đun chức cuối kiến trúc mã hóa HEVC, thực biến đổi bins liệu đầu vào thành chuỗi bit trước ghép vào luồng bit đầu mã hóa CABAC đóng góp lớn vào hiệu nén chung chuẩn HEVC xây dựng theo ngun lý mã hóa entropy thơng tin, lượng thơng tin đầu mã hóa cách thích nghi tùy thuộc vào kết mã hóa thơng tin trước thống kê xác suất thông tin đầu vào Kiến trúc sơ đồ khối chức mã hóa CABAC mơ tả hình [3] Khối Binarizer có chức biến đổi liệu đầu vào thành chuỗi nhị phân trước mã hóa thích nghi khối mã hóa Binary Arithmetic Encoder (BAE) theo mơ hình thống kê xác suất lưu khối Context Modeler Cập nhật mơ hình ngữ cảnh Mơ hình Mơ hình hóa xác suất ngữ cảnh Phần tử cú pháp Mã hóa regular bin tuyến mã hóa liệu thường Biến đổi nhị phân Các bít mã Chuỗi bit mã bin tuyến mã hóa liệu bypass Mã hóa bypass bin Các bit mã Mã hóa số học nhị phân thích nghi H nh Sơ đồ khối kiến trúc chức mã hóa CABAC Tuy hiệu mã hóa đạt cao, việc thực hóa CABAC để xử lý luồng liệu video tốc độ cao gặp nhiều thách thức Chuẩn HEVC áp dụng loạt cải tiến cơng cụ mã hóa, vậy, liệu thơng tin đầu vào CABAC có tương quan lớn Hơn nữa, thuật toán mã hóa entropy thơng tin áp dụng CABAC địi hỏi phải thực thi cách nối tiếp việc mã hóa liệu cần thiết phải cập nhật mơ hình xác suất sau mã hóa liệu Cấu trúc luồng bit liệu đầu HEVC encoder mơ tả hình [2], CABAC áp dụng để mã hóa liệu độ dư thông tin ảnh sau loạt bước xử lý trước (hình 1) Ngồi ra, cịn có liệu thơng tin tiêu đề (NALU header – Thông tin tiêu đề khung liệu, slice seg Header – Thông tin tiêu đề cho đoạn liệu ảnh giải mã độc lập) kèm khung liệu đóng vai trị quy ước đồng gói liệu đầu mã hóa giải mã thơng tin mã hóa theo phương thức non-CABAC (Fixed Length Coding, Variable Length Coding) Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san Viện Điện tử, - 2020 159 Kỹ thuật điện tử Điểm truy cập Byte chỉnh H nh Cấu trúc khung liệu nén video chuẩn HEVC [2] Thống kê cho thấy luồng liệu đầu vào CABAC, liệu residual data chiếm tỷ lệ phần trăm chủ yếu, có tính biến động (adaptive) theo đặc tính luồng video đầu vào Chính vậy, việc đề xuất giải pháp xử lý hiệu qủa luồng liệu residual data có đóng góp lớn tới hiệu nén mã hóa CABAC HEVC Xây dựng giải pháp thực thi phần cứng chuẩn HEVC nói chung mã hóa CABAC nói riêng có ý nghĩa việc áp dụng chuẩn HEVC cách đa dạng nhiều ứng dụng video Bài báo đề xuất giải pháp xây dựng thiết kế kiến trúc phần cứng thực thi biến đổi nhị phân luồng liệu độ dư thông tin điểm ảnh “Residual Binarizer” Bố cục báo sau: Mục trình bày tổng quan nguyên lý biến đổi nhị phân residual data; Trên sở đó, mục đề xuất giải pháp thiết kế kiến trúc phần cứng biến đổi Residual Binarizer báo; Mục trình bày đánh giá kết mô thiết kế phần cứng số luồng video chuẩn HEVC; Phần kết luận đề xuất nghiên cứu đưa mục TỔNG QUAN NGUYÊN LÝ BIẾN ĐỔI NHỊ PHÂN DỮ LIỆU ẢNH 2.1 Dữ liệu điểm ảnh đầu vào mô-đun Binarizer Trong chuẩn H.264/AVC thực phân chia khung ảnh thành khối liệu Macro Block (MB) với kích thước 1616, chuẩn HEVC cho phép phân chia khung ảnh thành khối liệu có kích thước đa dạng, thích nghi theo đặc điểm vùng điểm ảnh khung [4, 5] Các khối điểm ảnh HEVC biểu diễn dạng đơn vị liệu mã hóa theo phân cấp kiểu hình (CTU: Coding Tree Unit), có kích thước NN (N = 8, 16, 32 64) Khái niệm CTU sử dụng để mơ tả logic tổ chức, đóng gói liệu mã hóa, cách thức tổ chức thơng tin điều khiển để mã hóa truy cập theo phân cấp kiểu hình từ cao xuống thấp q trình mã hóa Các thơng tin bao gồm “độ sâu” (partitioning depth) phân chia khối liệu từ mức (6464) tới mức (88), chế độ mã hóa (coding mode: Intra, Inter), cờ báo hiệu,… Tất thông tin gọi phần tử cú pháp SE (Syntax Element) đóng gói kèm với khối liệu mã hóa Coding Block (CB) Phương pháp phân chia cách thức tổ chức, đóng gói liệu CTU mơ tả hình [6] Trong CTU phân chia thành đơn vị liệu mã hóa (CU: Coding Unit) mức thấp Các CU mơ tả cách đóng gói thơng tin video thành khối liệu PU (Prediction Unit), phục vụ cho phép dự đoán “Prediction” TU (Transfrom Unit), phục vụ cho phép biến đổi (Transform) tổ hợp phần tử cú pháp độ dư thông tin điểm ảnh (Residual Syntax Element) đầu vào mã hóa CABAC [1] 160 T Đ Lâm, …, N M Cường, “Giải pháp thực thi phần cứng … chuẩn nén video HEVC.” Nghiên cứu khoa học công nghệ H nh Phương pháp tổ chức, phân chia khối liệu CTU theo chuẩn HEVC Như đề cập mục trước, báo tập trung nghiên cứu, xử lý liệu độ dư thông tin điểm ảnh (Residual data), luồng liệu chiếm tỷ lệ % chủ yếu CABAC, từ 63,7 ÷ 94 % [7] Residual data kiến trúc HEVC luồng liệu đầu phép biến đổi-lượng tử (T&Q - Transform&Quantization), biểu diễn dạng ma trận hệ số biến đổi (Residual Coefficients) có kích thước tương ứng với khối liệu TU CABAC thực mã hóa phần tử cú pháp SE, dạng biểu diễn “cô đọng” thông tin liệu ảnh Đối với liệu hệ số biến đổi cần phải thực phép biến đổi để tạo tập phần tử cú pháp liệu ảnh (Residual SE) tương ứng đầu vào CABAC Hệ số biến đổi T Q T-1 Q-1 Phần tử cú pháp Tổ hợp phần tử cú pháp Chuỗi bit mã hóa CABAC H nh Vị trí khối tạo phần tử cú pháp residual SEs đầu vào CABAC (3,0) -1 - - - 1 1 1 - - 0 - - - -6 0 - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - 0 0 - - - - - - - - - - - - - - - - - - - - - - 44 sub-block Lần quét thứ Lần quét thứ hai Lần quét thứ ba Lần quét Thứ Thứ Thứ hai Thứ ba Thứ tư Phần tử cú pháp last_sig_coeff_x last_sig_coeff_y sig_coeff_flag coeff_abs_level_greater1_flag coeff_abs_level_greater2_flag Thứ năm Thứ sáu coeff_sign_flag coeff_abs_level_remaining Data output order: Lần quét thứ tư 1 Giá trị 0 0 0 30 1010000111 00111 Lần quét thứ sáu Lần quét thứ năm 1 1 1 0 10010 047 H nh Minh họa nguyên lý tạo phần tử cú pháp Residual SE Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san Viện Điện tử, - 2020 161 Kỹ thuật điện tử Hình mô tả luồng liệu Residual SE đầu vào CABAC, đó, mơ-đun Tổ hợp phần tử cú pháp đảm nhiệm chức biến đổi ma trận Residual Coefficient thành tập residual SE tương ứng mơ tả chi tiết cơng trình cơng bố trước tác giả [8] Nguyên tắc tạo tập Residual SE từ sub-block 44 Residual Coefficients minh họa ví dụ hình Mơ-đun biến đổi nhị phân Binarizer mã hóa CABAC, theo quy tắc phân chia CTU xử lý luồng Residual SE cho sub-block 44 liên tiếp Bảng mô tả tập Residual SE HEVC sử dụng để mô tả liệu ảnh phương pháp biến đổi nhị phân áp dụng cho loại Residual SE [9] ảng Phần tử cú pháp residual SEs phương pháp biến đổi nhị phân [9] Syntax Element Mô tả Phương pháp biến đổi last_sig_coeff_x Tọa độ x hệ số khác cuối Truncated Rice sub-block 44 last_sig_coeff_y Tọa độ y hệ số khác cuối Truncated Rice sub-block 44 sig_coeff_flag Cờ thị giá trị khác Fixed Length hệ số, hệ số khác “0” flag = “1” ngược lại Coeff_abs_level_greater1_flag Cờ thị hệ số khác có Fixed Length giá trị tuyệt đối lớn hay “1”, hệ số > flag = “1” ngược lại Coeff_abs_level_greater2_flag Cờ thị hệ số khác có Fixed Length giá trị tuyệt đối lớn hay 2, hệ số > flag = “1” ngược lại Coeff_sign_flag Cờ thị dấu hệ số Fixed Length khác 0, hệ số >1 Enb > ++ Binlength < ++ synVal Enb Binstring >>1 H nh Kiến trúc phần cứng thực thi Fixed Length Binarization