Giới thiệu dự án

Sự bùng nổ của hạ tầng mạng và các nền tảng phát trực tuyến (live streaming), hội nghị truyền hình, cũng như truyền phát video siêu độ nét cao (4K UHD, 8K UHD) đã đặt ra thách thức chưa từng có về băng thông truyền tải và dung lượng lưu trữ dữ liệu số. Theo thống kê kỹ thuật, một luồng video thô (uncompressed) ở độ phân giải tiêu chuẩn Full HD (1920x1080) với tốc độ khung hình 30 khung hình/giây (FPS) tạo ra lưu lượng dữ liệu lên tới 180 MByte/giây, tương đương khoảng 1440 Mbps. Khi băng thông đường truyền internet trung bình thực tế chỉ dao động quanh mức 35.89 Mbps (tải xuống) và độ trễ 23 ms, việc truyền phát các định dạng cao cấp như 2K, 4K hoặc 8K nếu không có thuật toán nén hiện đại là hoàn toàn bất khả thi.

Định dạng Video Chuẩn nén Tốc độ khung hình (FPS) Độ phân giải Băng thông yêu cầu (Bandwidth) Hệ số nén so với Raw
Raw HD Video Không nén 30 fps 1920x1080 ~1440.000 Mbps 1x
AVC / H.264 Tiền nhiệm 30 fps 1920x1080 16.134 Mbps ~88x
HEVC / H.265 Tiêu chuẩn mới 30 fps 1920x1080 3.190 Mbps ~451x

Chuẩn nén video hiệu năng cao HEVC (High Efficiency Video Coding - ITU-T H.265 / MPEG-H Part 2) ra đời nhằm thay thế chuẩn nén AVC (H.264), giúp tiết kiệm hơn 40% bitrate ở cùng chất lượng hình ảnh và hỗ trợ độ phân giải lên đến $8192 \times 4320$ (8K UHD). Tuy nhiên, để đạt được hiệu suất nén vượt trội này, HEVC phải đánh đổi bằng việc tăng vọt độ phức tạp tính toán trong khâu dự đoán nội khung (Intra Prediction).

Khác với AVC chỉ hỗ trợ 9 hướng dự đoán trên khối có kích thước cố định $16 \times 16$ hoặc $4 \times 4$, giải thuật Intra Prediction trong HEVC mở rộng tới 35 chế độ dự đoán (bao gồm Planar mode, DC mode và 33 Angular modes) với các kích thước đơn vị dự đoán (Prediction Unit - PU) linh hoạt từ $4 \times 4, 8 \times 8, 16 \times 16$ đến $32 \times 32$. Sự kết hợp đệ quy giữa cấu trúc cây phân cấp Quad-tree trong Coding Tree Unit (CTU) và 35 modes khiến các giải pháp thuần phần mềm (CPU/GPU) gặp nút thắt cổ chai nghiêm trọng (bottleneck), tiêu tốn nhiều năng lượng và không thể đáp ứng thời gian thực (real-time) cho các chuẩn video 4K@30FPS.

                  +-----------------------------------+
                  |   Input Coding Tree Unit (CTU)    |
                  |         (Kích thước 64x64)        |
                  +-----------------+-----------------+
                                    |
                                    v
                     +-----------------------------+
                     |    CU Quad-tree Partition   |
                     | (32x32, 16x16, 8x8, SCU 8x8)|
                     +--------------+--------------+
                                    |
                     +--------------v--------------+
                     |    PU Data & References     |
                     +--------------+--------------+
                                    |
       +----------------------------+----------------------------+
       |                            |                            |
       v                            v                            v
+--------------+             +--------------+             +--------------+
| Planar Mode  |             |   DC Mode    |             | Angular Mode |
|   (Mode 0)   |             |   (Mode 1)   |             | (Modes 2-34) |
+-------+------+             +-------+------+             +-------+------+
        |                            |                            |
        +----------------------------+----------------------------+
                                    |
                                    v
                     +-----------------------------+
                     |   SAD Calculation & Mode    |
                     |      Decision (RMD/RDO)     |
                     +-----------------------------+

Mục tiêu đề tài

  1. Thiết kế kiến trúc phần cứng chuyên dụng (Hardware Accelerator) trên nền tảng FPGA hiện thực hóa hoàn chỉnh giải thuật HEVC Intra Prediction.
  2. Hỗ trợ toàn diện 35 chế độ dự đoán (Mode 0 đến 34) cho tất cả các kích thước PU chuẩn ($4 \times 4, 8 \times 8, 16 \times 16, 32 \times 32$) trên cả 3 kênh màu (Y, U, V).
  3. Triển khai kỹ thuật xử lý song song 3 datapath độc lập (Planar, DC, Angular), tối ưu hóa cấu trúc nhân bằng dịch bit/cộng (Shift-Add) và cân bằng pipeline để đạt thông lượng xử lý $\ge 30$ FPS ở độ phân giải 4K ($3840 \times 2160$).
  4. Xây dựng môi trường kiểm chứng hoàn chỉnh theo chuẩn UVM (Universal Verification Methodology) kết nối qua giao tiếp SystemVerilog DPI với mô hình mẫu mã nguồn mở Kvazaar HEVC encoder, đảm bảo độ bao phủ chức năng (functional coverage) đạt 100%.

Giải pháp và phạm vi giới hạn

  • Phương pháp tiếp cận: Sử dụng ngôn ngữ mô tả phần cứng Verilog HDL để thiết kế vi kiến trúc xử lý song song đa tầng. Tách luồng tính toán tham chiếu, nội suy góc độ chính xác 1/32 mẫu, giải thuật màng lọc ba điểm (Three-tap filter), xử lý biên sau dự đoán (Post-processing) và khối tính toán chênh lệch tuyệt đối tổng (Sum of Absolute Differences - SAD).
  • Chỉ số đo lường kỳ vọng: Xử lý một CU kích thước $32 \times 32$ trong tối đa 875 chu kỳ xung clock ở trường hợp quét đệ quy toàn bộ các kích thước con; tần số hoạt động danh định tối thiểu $212.625\text{ MHz}$ để đạt hiệu năng 4K@30FPS (xử lý xấp xỉ 243.000 CU/giây, tương đương $243 \times 10^6$ predicted samples/giây).
  • Phạm vi & Giới hạn: Thiết kế tập trung vào bộ gia tốc tăng tốc tính toán tạo khối dự đoán (Sample Prediction) và xác định hàm chi phí sơ bộ RMD (Rough Mode Decision). Dữ liệu cấu hình đầu vào chuẩn 8-bit depth (Pixel value 0-255).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trước khi đề xuất kiến trúc phần cứng, việc đánh giá các giải pháp hiện hữu là cơ sở bắt buộc để nhận diện khoảng trống công nghệ và tối ưu tài nguyên logic:

Tiêu chí so sánh Giải pháp Phần mềm (x265, Kvazaar trên CPU x86) Bộ gia tốc DSP/GPU nhúng Kiến trúc FPGA đề xuất
Thông lượng 4K@30FPS Kém (chỉ đạt 5-10 FPS trên CPU đa nhân) Trung bình (15-24 FPS) Tối ưu ($\ge 30\text{ FPS}$ thời gian thực)
Điện năng tiêu thụ Rất cao ($65\text{W} - 125\text{W}$) Cao ($15\text{W} - 35\text{W}$) Thấp ($2\text{W} - 5\text{W}$)
Độ trễ xử lý (Latency) Cao do phụ thuộc bộ nhớ cache/OS Không đồng nhất Thấp, xác định chính xác theo chu kỳ xung nhịp
Khả năng tùy biến Cao nhưng giới hạn bởi tập lệnh CPU Bị bó hẹp trong kiến trúc ALU/DSP Tối ưu hóa ở mức cổng logic (RTL-level)
Chi phí triển khai Đầu tư máy chủ đắt đỏ Chi phí phần cứng trung bình Hiệu quả cao trên các chip FPGA tầm trung

Ưu tiên yêu cầu kỹ thuật theo mô hình MoSCoW:

  • Must have (Bắt buộc): Hỗ trợ đủ 35 modes; hỗ trợ 4 kích thước PU ($4 \times 4$ đến $32 \times 32$); bộ lọc Three-tap reference filter; khối tính SAD; xung nhịp hoạt động $\ge 213\text{ MHz}$.
  • Should have (Nên có): Xử lý song song 16 modes đồng thời cho khối $4 \times 4$; bảng tra Look-Up Table (LUT) cho các hệ số góc; bộ xử lý Post-processing làm mịn biên.
  • Could have (Có thể có): Hỗ trợ chuyển đổi nhanh giữa các không gian màu YUV420/YUV444.
  • Won't have (Chưa hỗ trợ phiên bản này): Khâu biến đổi lượng tử ngược DCT/DST và mã hóa entropy CABAC tích hợp chung trên cùng một die logic.

Thiết kế hệ thống

Kiến trúc hệ thống phần cứng đề xuất được phân chia thành các module chức năng kết nối pipeline chặt chẽ:

+--------------------------------------------------------------------------------+
|                        HEVC INTRA PREDICTION TOP MODULE                        |
|                                                                                |
|  [HADDR, HWDATA, HWRITE, color, log2_width, filter_init, filter_boundary]      |
|                                      |                                         |
|                                      v                                         |
|               +-----------------------------------------------+                |
|               |  Configuration & Reference/Block Data Buffer  |                |
|               +----------------------+------------------------+                |
|                                      |                                         |
|                                      v                                         |
|               +-----------------------------------------------+                |
|               |         Reference Sample Filter Module        |                |
|               |  (2 x 65 Three-tap Filter Array, 2-stage Pipe)|                |
|               +----------------------+------------------------+                |
|                                      |                                         |
|             +------------------------+------------------------+                |
|             |                        |                        |                |
|             v                        v                        v                |
|  +---------------------+  +--------------------+  +-------------------------+  |
|  |  Planar Prediction  |  |   DC Prediction    |  |   Angular Prediction    |  |
|  |     (Mode 0)        |  |      (Mode 1)      |  |     (Modes 2 - 34)      |  |
|  | - Horizontal Intp   |  | - dcVal Calculator |  | - Ref Select & Extend   |  |
|  | - Vertical Intp     |  | - 2-tap/3-tap Post |  | - Angle/InvAngle LUT    |  |
|  | - Shift-Add Divider |  |   Processing Unit  |  | - 1024 PEA 4-stage Pipe |  |
|  +----------+----------+  +---------+----------+  | - Sample Flip & PPC     |  |
|             |                        |            +------------+------------+  |
|             +------------------------+-------------------------+               |
|                                      |                                         |
|                                      v                                         |
|               +-----------------------------------------------+                |
|               |         SAD & Best Mode Selection Unit        |                |
|               | (Parallel Absolute Difference & Accumulators) |                |
|               +----------------------+------------------------+                |
|                                      |                                         |
|             [best_mode, SAD_value, output_valid Output Signals]                |
+--------------------------------------------------------------------------------+

Giao diện tín hiệu (I/O Interface)

  • HADDR [31:0], HWDATA [31:0], HWRITE: Giao tiếp bus nạp dữ liệu pixel gốc và mẫu lân cận (reference samples).
  • color [1:0]: Lựa chọn kênh màu (0: Y, 1: U, 2: V).
  • log2_width [2:0]: Kích thước khối PU (2: $4 \times 4$, 3: $8 \times 8$, 4: $16 \times 16$, 5: $32 \times 32$).
  • filter_init: Bật/tắt bộ lọc Three-tap trên mảng Reference đầu vào.
  • filter_boundary: Bật/tắt bộ lọc hậu xử lý làm mịn biên (áp dụng cho Mode 10 và Mode 26).
  • best_mode [5:0]: Chỉ số mode dự đoán tối ưu nhất trong 35 modes được chọn.
  • SAD_value [31:0]: Giá trị chi phí biến dạng SAD nhỏ nhất tương ứng.
  • output_valid: Tín hiệu cờ báo hoàn thành xử lý.

Technology Stack & Toolchain

  • Ngôn ngữ mô tả phần cứng: Verilog HDL (IEEE 1364-2005) & SystemVerilog (IEEE 1800-2017).
  • Môi trường kiểm chứng: Universal Verification Methodology (UVM 1.2) kết hợp SystemVerilog DPI-C.
  • Mô hình phần mềm tham chiếu: Kvazaar HEVC Encoder phiên bản 2.0 (C/C++ open source).
  • Phần mềm tổng hợp & mô phỏng: Synopsys Design Compiler, Mentor Graphics ModelSim / QuestaSim 2021.1, Xilinx Vivado Design Suite 2020.2.

Methodology

Quy trình nghiên cứu và phát triển tuân theo mô hình V-Model trong thiết kế vi mạch ASIC/FPGA:

[Phân tích thuật toán HEVC] ----------------------------> [Kiểm chứng UVM & DPI-C]
         |                                                           ^
         v                                                           |
[Mô hình hóa phần mềm C++]                                  [Mô phỏng Post-Synthesis]
         |                                                           ^
         v                                                           |
[Thiết kế vi kiến trúc RTL] ---> [Mô phỏng Pre-Synthesis] ---> [Tổng hợp phần cứng]
  1. Khảo sát toán học & C++ Modeling: Mô hình hóa thuật toán Intra Prediction từ chuẩn HEVC và trích xuất dữ liệu trung gian từ encoder Kvazaar.
  2. Thiết kế RTL & Tối ưu hóa: Hiện thực hóa các khối vi kiến trúc bằng Verilog, áp dụng kỹ thuật thay thế phép nhân bằng Shift-Add, tích hợp thanh ghi pipeline đồng đều.
  3. Mô phỏng Pre-synthesis: Kiểm tra chức năng logic từng module đơn lẻ (Unit Test) và toàn hệ thống (Top-level Test).
  4. Tổng hợp & Phân tích Timing (Post-synthesis): Thực hiện tổng hợp logic với thư viện công nghệ, tối ưu đường trễ trễ lan truyền (propagation delay) trên critical path nhằm đạt $T_{clk} \le 4.31\text{ ns}$ ($F_{max} \ge 232\text{ MHz}$).

Implementation và kết quả

Development process

Quá trình hiện thực hóa tập trung vào việc giải quyết 4 bài toán phần cứng cốt lõi:

1. Bộ lọc tham chiếu Reference Sample Filter (Three-Tap Smoothing)

Theo tiêu chuẩn HEVC, các mẫu tham chiếu lân cận $p[-1][y]$ và $p[x][-1]$ được làm mịn thông qua bộ lọc 3 điểm đối xứng $[1, 2, 1]/4$:

$$p[-1][-1] = \left(p[-1][0] + 2p[-1][-1] + p[0][-1] + 2\right) \gg 2$$

Thiết kế sử dụng 2 mảng song song, mỗi mảng chứa 65 phần tử Three-tap filter để xử lý đồng thời cả hàng trên (Top) và cột trái (Left). Module được chia thành 2 tầng pipeline cân bằng (độ trễ mỗi tầng $\approx 3.250\text{ ns}$), đạt thông lượng 130 samples/chu kỳ sau 2 chu kỳ trễ nạp ống ban đầu.

// Trích đoạn RTL: Module Three-Tap Filter 2-stage Pipeline
module three_tap_filter (
    input  wire        clk,
    input  wire        rst_n,
    input  wire [7:0]  ref_left,
    input  wire [7:0]  ref_center,
    input  wire [7:0]  ref_right,
    output reg  [7:0]  filtered_sample
);
    reg [9:0] stage1_sum;

    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            stage1_sum      <= 10'd0;
            filtered_sample <= 8'd0;
        end else begin
            // Stage 1: Thực hiện phép cộng trọng số không dùng bộ nhân
            stage1_sum      <= ref_left + (ref_center << 1) + ref_right + 10'd2;
            // Stage 2: Dịch phải 2 bit tương đương chia cho 4
            filtered_sample <= stage1_sum[9:2];
        end
    end
endmodule

2. Mảng phần tử xử lý góc PEA (Angular Processing Element Array)

Dự đoán góc yêu cầu phép nội suy tuyến tính giữa hai mẫu tham chiếu liền kề $ref_1$ và $ref_2$ với hệ số góc $f \in [0, 31]$:

$$p[x][y] = \left((32 - f) \cdot ref_1 + f \cdot ref_2 + 16\right) \gg 5$$

Phép nhân với $f$ và $(32-f)$ tiêu tốn diện tích silicon rất lớn nếu dùng khối DSP. Thiết kế đã biến đổi phương trình trên thành tổ hợp của 5 bộ ghép kênh (Multiplexer), 4 bộ dịch bit (Shifter) và 6 bộ cộng (Adder). Module PEA được phân bố thành 4 tầng pipeline cân bằng hoàn hảo (độ trễ tầng cực đại là $3.347\text{ ns}$, tầng cực tiểu là $3.250\text{ ns}$, độ lệch chênh lệch chỉ $0.097\text{ ns}$).

// Trích đoạn biến đổi phép nhân sang Shift-Add trong module PEA
module pea_multiplierless (
    input  wire [7:0]  ref1,
    input  wire [7:0]  ref2,
    input  wire [4:0]  f,          // f nằm trong khoảng [0, 31]
    output wire [7:0]  predicted_pixel
);
    wire [12:0] term1 = (ref1 << 5) - (ref1 * f); // Được biến đổi bằng cây cộng/dịch
    wire [12:0] term2 = ref2 * f;                 // Biến đổi bằng mạng thanh ghi dịch
    wire [13:0] total = term1 + term2 + 14'd16;
    assign predicted_pixel = total[12:5];         // Phép dịch >> 5
endmodule

Để tối ưu hóa thông lượng xử lý cho khối lớn nhất ($32 \times 32 = 1024$ samples) trong 1 chu kỳ duy nhất, hệ thống tích hợp một chuỗi gồm 1024 module PEA. Khi xử lý các khối nhỏ hơn ($4 \times 4$ và $8 \times 8$), hệ thống kích hoạt cơ chế phân bổ động, cho phép 1024 PEA chạy song song 16 chế độ dự đoán đồng thời trong cùng 1 chu kỳ xung nhịp.

       +-------------------------------------------------------------+
       |               1024 Processing Element Array                 |
       +-------------------------------------------------------------+
       | Mode PU 32x32:  1 Mode x 1024 samples / cycle               |
       | Mode PU 16x16:  4 Modes x 256 samples / cycle (hoặc 1 Mode) |
       | Mode PU 8x8:    16 Modes x 64 samples / cycle               |
       | Mode PU 4x4:    16 Modes x 16 samples / cycle (song song)   |
       +-------------------------------------------------------------+

3. Bộ tính toán DC & Planar Prediction

  • Planar Mode: Thực hiện nội suy 2 chiều (ngang $p_h$ và dọc $p_v$) từ các điểm biên Top-Right $p[N][-1]$ và Bottom-Left $p[-1][N]$:

$$p[x][y] = \left(p_h[x][y] + p_v[x][y] + N\right) \gg \left(\log_2(N) + 1\right)$$

  • DC Mode: Tính trung bình cộng của $2N$ mẫu tham chiếu:

$$dcVal = \left(\sum_{x=0}^{N-1} p[x][-1] + \sum_{y=0}^{N-1} p[-1][y] + N\right) \gg \left(\log_2(N) + 1\right)$$

  • Post-Processing Unit: Bao gồm 32 module PPC (Post-Processing Cell) chuyên biệt để làm mịn hàng đầu tiên (Mode 10) và cột đầu tiên (Mode 26) nhằm triệt tiêu hoàn toàn hiện tượng biên không liên tục (boundary discontinuities).

Testing và validation

Môi trường kiểm chứng được thiết lập theo chuẩn công nghiệp UVM, đảm bảo tính đúng đắn chức năng tuyệt đối giữa phần cứng RTL và thuật toán chuẩn:

+-------------------------------------------------------------------------------+
|                            UVM Verification Platform                          |
|                                                                               |
|  +-----------------------+                    +----------------------------+  |
|  |     UVM Generator     |                    |  Kvazaar C++ Golden Model  |  |
|  | (Random/Corner Cases) |                    |  (Connected via SV DPI-C)  |  |
|  +-----------+-----------+                    +--------------+-------------+  |
|              |                                               |                |
|              v                                               v                |
|  +-----------------------+                    +----------------------------+  |
|  |       UVM Driver      |                    |       Expected Data        |  |
|  +-----------+-----------+                    +--------------+-------------+  |
|              |                                               |                |
|              v                                               |                |
|  +-----------------------+                                   |                |
|  |     DUT (RTL Core)    |                                   |                |
|  +-----------+-----------+                                   |                |
|              |                                               |                |
|              v                                               v                |
|  +-----------------------+                    +----------------------------+  |
|  |      UVM Monitor      |------------------->|        UVM Scoreboard      |  |
|  | (Captured RTL Output) |                    |    (Bit-Exact Comparison)  |  |
|  +-----------------------+                    +----------------------------+  |
+-------------------------------------------------------------------------------+

Môi trường thực hiện so sánh bit-exact từng pixel dự đoán và giá trị tổng SAD giữa kết quả mô phỏng RTL và mô hình tham chiếu Kvazaar. Kết quả kiểm tra đạt 100% Functional Coverage trên toàn bộ 35 modes, 4 kích cỡ khối và 3 kênh màu YUV.

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

Hệ thống tính toán chu kỳ xử lý tối ưu cho toàn bộ các khối PU bên trong 1 CU kích thước $32 \times 32$ theo cấu trúc Quad-tree hoàn chỉnh:

Kích thước khối (PU Size) Số lượng PU trong 1 CU 32x32 Số modes cần quét Cơ chế xử lý phần cứng Số chu kỳ xung clock
PU 32x32 1 35 1 mode / 1 chu kỳ 35
PU 16x16 4 35 1 mode / 1 chu kỳ $4 \times 35 = 140$
PU 8x8 16 35 1 mode / 1 chu kỳ $16 \times 35 = 560$
PU 4x4 64 35 Xử lý song song 16 modes/chu kỳ $\frac{64 \times 35}{16} = 140$
TỔNG CỘNG 85 PUs -- Pipeline đầy đủ 875 chu kỳ / CU
  • Yêu cầu xung nhịp cho 4K@30FPS: $$\text{Số CU cần xử lý trong 1 giây} = \frac{3840 \times 2160}{32 \times 32} \times 30\text{ FPS} = 8100 \times 30 = 243.000\text{ CU/s}$$ $$\text{Tần số tối thiểu yêu cầu} = 243.000\text{ CU/s} \times 875\text{ cycles/CU} = 212.625.000\text{ Hz} = 212.625\text{ MHz}$$
  • Kết quả tổng hợp phần cứng thực tế (Post-synthesis Timing):
    • Tần số cực đại đạt được ($F_{max}$): 232 MHz (tương ứng chu kỳ $T_{clk} = 4.31\text{ ns}$).
    • Margin an toàn: Dư dả $19.375\text{ MHz}$ so với ngưỡng tối thiểu $212.625\text{ MHz}$, bảo đảm xử lý mượt mà video 4K UHD @ 30 FPS không bị trễ khung hình.

Đổi mới và đóng góp

Thiết kế sở hữu những cải tiến kỹ thuật nổi bật khi đặt lên bàn cân so sánh với các công trình nghiên cứu quốc tế đã công bố:

Thông số thiết kế Nghiên cứu [1] (2015) Nghiên cứu [6] (2016) Nghiên cứu [8] (2018) Kiến trúc đề xuất (Khóa luận)
Độ phân giải hỗ trợ Full HD ($1920 \times 1080$) 4K UHD ($3840 \times 2160$) Full HD ($1920 \times 1080$) 4K UHD ($3840 \times 2160$)
Tốc độ khung hình 30 FPS 24 FPS 55 FPS 30 FPS (Chuẩn Real-time)
Kích thước PU hỗ trợ Chỉ hỗ trợ $4 \times 4, 8 \times 8$ Đầy đủ ($4 \times 4 \to 32 \times 32$) Đầy đủ ($4 \times 4 \to 32 \times 32$) Đầy đủ ($4 \times 4, 8 \times 8, 16 \times 16, 32 \times 32$)
Tần số hoạt động ($F_{max}$) 150 MHz 250 MHz 227 MHz 232 MHz
Predicted Samples/giây 6 triệu 194 triệu 11 triệu 243 triệu (Cao nhất)
Tối ưu phép nhân Nhân phần cứng chuẩn Pipeline chuẩn Dùng DSP Blocks Tối ưu Shift-Add không dùng DSP

Các đóng góp học thuật và kỹ thuật chính

  1. Kiến trúc PEA Multiplier-less: Loại bỏ hoàn toàn sự phụ thuộc vào các khối DSP cứng đắt đỏ của FPGA bằng cách chuyển đổi toàn bộ hệ số nhân góc 1/32 sang cấu trúc dịch bit và cộng đa tầng, giúp tiết kiệm diện tích chip và giảm tiêu thụ năng lượng.
  2. Cơ chế tái cấu hình linh hoạt cho 1024 PEA: Khai thác tối đa hiệu suất tính toán bằng cách chạy 1 mode/chu kỳ cho khối $32 \times 32$ và tự động phân rã thành luồng xử lý song song 16 modes/chu kỳ cho khối $4 \times 4$.
  3. Môi trường UVM Co-simulation với Kvazaar qua DPI-C: Thiết lập giải pháp kiểm chứng tự động tiên tiến, cho phép phát hiện sai lệch mức độ từng điểm ảnh (pixel-level verification) trong thời gian thực giữa RTL và C++ Golden Model.

Ứng dụng thực tế và triển khai

+-------------------------------------------------------------------------------+
|                         Hệ sinh thái triển khai thực tế                       |
+-------------------------------------------------------------------------------+
|  1. Hệ thống truyền hình trực tiếp 4K Live Broadcast & IPTV Headend Encoder   |
|  2. Thiết bị biên IoT / Smart Camera giám sát an ninh độ nét cao (Edge AI)    |
|  3. Card mạng thông minh FPGA SmartNIC tăng tốc trung tâm dữ liệu đám mây     |
|  4. Thiết bị Drone / UAV truyền dẫn video thám sát độ trễ siêu thấp           |
+-------------------------------------------------------------------------------+

Triển khai phần cứng & Thông số tích hợp

  • Nền tảng mục tiêu: Xilinx Zynq UltraScale+ MPSoC / Kintex-7 FPGA hoặc Intel Arria 10.
  • Yêu cầu giao tiếp hệ thống: Kết nối qua chuẩn bus nội chip AXI4-Stream hoặc AXI-Lite để nhận trực tiếp luồng pixel từ cảm biến camera CMOS (Image Sensor Interface) và bộ điều khiển DMA.
  • Tiêu thụ năng lượng ước tính: Khoảng $2.8\text{W} - 3.5\text{W}$ trên FPGA, tối ưu hơn 90% so với giải pháp chạy phần mềm trên CPU x86 truyền thống.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  1. Độ sâu màu (Bit-depth): Thiết kế hiện tại tối ưu hóa hoàn toàn cho chuẩn mẫu 8-bit (Main Profile). Chưa hỗ trợ định dạng 10-bit/12-bit chuyên dụng cho chuẩn HDR (High Dynamic Range - Main 10 Profile).
  2. Phạm vi thuật toán: Mạch tập trung tối đa cho giai đoạn Intra Prediction và tính toán SAD sơ bộ RMD, chưa bao gồm khâu biến đổi lượng tử DCT/DST và bộ mã hóa entropy CABAC trên cùng một chip.

Hướng phát triển trong tương lai

  • Nâng cấp độ sâu bit 10-bit: Mở rộng datapath của 1024 PEA để xử lý luồng dữ liệu 10-bit phục vụ các chuẩn truyền hình cao cấp.
  • Tích hợp liên khối (Full Encoder Pipeline): Kết hợp module Intra Prediction này với bộ xử lý biến đổi Transform Unit (TU) và lượng tử hóa Quantization Unit để tạo thành bộ mã hóa HEVC hoàn chỉnh trên một chip duy nhất (System-on-Chip).
  • Mở rộng cho chuẩn nén VVC (H.266): Kế thừa kiến trúc mảng PEA để phát triển cho chuẩn Versatile Video Coding (VVC) với 67 hướng dự đoán nội khung và kích thước khối mở rộng lên $64 \times 64$.

Đối tượng hưởng lợi

+---------------------------------------------------------------------------------+
|                               ĐỐI TƯỢNG HƯỞNG LỢI                               |
+-------------------+-------------------+--------------------+--------------------+
|    SINH VIÊN      |   KỸ SƯ THIẾT KẾ  | DOANH NGHIỆP TRUYỀN|  CỘNG ĐỒNG NGHIÊN  |
|   NGÀNH KTMT/ĐTVT |    FPGA / ASIC    | THÔNG & TRUYỀN HÌNH|     CỨU KHOA HỌC   |
+-------------------+-------------------+--------------------+--------------------+
| - Tham khảo kiến  | - Tận dụng mã RTL | - Ứng dụng giải    | - Phương pháp luận |
|   trúc pipeline   |   tối ưu Shift-Add|   pháp phần cứng   |   kiểm chứng UVM   |
| - Học tập quy     | - Cấu trúc 1024   |   tiết kiệm chi phí|   kết nối DPI-C    |
|   trình chuẩn UVM |   PEA linh hoạt   |   vận hành server  | - Benchmark chuẩn  |
| - Hiểu sâu thuật  | - Giảm thời gian  | - Giảm 90% điện    |   cho các nghiên   |
|   toán nén HEVC   |   R&D sản phẩm    |   năng tiêu thụ    |   cứu video codec  |
+-------------------+-------------------+--------------------+--------------------+
  • Sinh viên & Học viên cao học: Cung cấp tài liệu mẫu mực về thiết kế hệ thống số nâng cao, kỹ thuật cân bằng pipeline đa tầng và phương pháp kiểm chứng vi mạch theo tiêu chuẩn công nghiệp.
  • Kỹ sư phần cứng (RTL/FPGA Engineers): Nắm bắt giải pháp chuyển đổi đại số thông minh từ các phép nhân dấu phẩy động/số nguyên phức tạp sang mạch dịch-cộng thuần túy, tối ưu hóa triệt để tài nguyên chip.
  • Doanh nghiệp công nghệ: Sở hữu thiết kế lõi IP Core có khả năng thương mại hóa, tích hợp vào các dòng sản phẩm camera thông minh, thiết bị truyền hình số 4K với hiệu suất cao và chi phí linh kiện cạnh tranh.

Câu hỏi thường gặp

1. Yêu cầu phần cứng tối thiểu để tổng hợp và triển khai thiết kế này là gì?

Thiết kế yêu cầu chip FPGA có tối thiểu 45.000 Logic Cells (LUTs), khoảng 30.000 Flip-Flops (FFs) và không bắt buộc sử dụng các khối DSP cứng nhờ kỹ thuật tối ưu Shift-Add. Các dòng FPGA như Xilinx Artix-7 (XC7A100T trở lên), Kintex-7 hoặc Zynq-7000 hoàn toàn đáp ứng tốt.

2. Làm thế nào thiết kế có thể xử lý song song 16 modes cho khối 4x4?

Một khối $4 \times 4$ chỉ bao gồm 16 điểm ảnh. Khi hệ thống nhận diện tín hiệu log2_width = 2, bộ điều khiển trung tâm sẽ kích hoạt cơ chế chia sẻ tài nguyên: chuỗi 1024 PEA được phân bổ thành 16 nhóm độc lập ($16 \text{ nhóm} \times 16 \text{ PEA} = 256 \text{ PEA}$ hoạt động song song), mỗi nhóm thực hiện tính toán cho 1 mode dự đoán riêng biệt trong cùng một chu kỳ xung nhịp.

3. Tại sao thiết kế lại dùng bảng tra Look-Up Table (LUT) cho các hệ số góc?

Trong chuẩn HEVC, các tham số góc $A$, tham số góc nghịch đảo $B$, vị trí chỉ mục $i$ và hệ số nội suy $f$ là các giá trị hằng số cố định tương ứng với từng mode từ 2 đến 34. Việc lưu trữ sẵn các giá trị này vào bảng tra LUT giúp loại bỏ hoàn toàn các phép chia/nhân phức tạp trong thời gian thực, giảm trễ chu kỳ và ổn định đường truyền dữ liệu.

4. Môi trường UVM kết nối với phần mềm Kvazaar thông qua cơ chế nào?

Môi trường kiểm chứng sử dụng giao diện lập trình trực tiếp SystemVerilog DPI-C (import "DPI-C" function). Khi UVM Driver phát một gói tin kiểm tra (Transaction) chứa các mẫu tham chiếu vào RTL DUT, cùng lúc đó hàm C++ của Kvazaar được gọi để tính toán kết quả lý thuyết. UVM Scoreboard sẽ so sánh tự động kết quả đầu ra của RTL với dữ liệu từ Kvazaar trên từng chu kỳ.

5. Thiết kế có hỗ trợ định dạng nén không gian màu Chroma (U, V) không?

Có. Thiết kế hỗ trợ đầy đủ 3 kênh màu thông qua tín hiệu chọn kênh color [1:0]. Đối với kênh độ chói Luma (Y), hệ thống hỗ trợ quét toàn bộ 35 modes. Đối với các kênh màu sắc Chroma (U, V), hệ thống hỗ trợ đầy đủ các chế độ tương ứng theo đúng quy chuẩn phân giải không gian màu của HEVC.


Kết luận

Đồ án đã nghiên cứu và hiện thực hóa thành công Kiến trúc phần cứng tăng tốc giải thuật Intra Prediction trong chuẩn nén video HEVC trên nền tảng FPGA. Bằng việc kết hợp sáng tạo giữa cấu trúc xử lý song song 3 luồng dữ liệu độc lập, mạng lưới 1024 phần tử PEA không dùng bộ nhân (Multiplier-less), cân bằng thanh ghi pipeline 4 tầng và bảng tra góc tối ưu, hệ thống đã phá vỡ rào cản tính toán phức tạp của chuẩn nén H.265.

Kết quả tổng hợp và mô phỏng timing hậu tổng hợp (Post-synthesis) chứng minh thiết kế vận hành ổn định tại xung nhịp 232 MHz (chu kỳ $4.31\text{ ns}$), vượt qua mức yêu cầu lý thuyết $212.625\text{ MHz}$, bảo đảm thông lượng xử lý thời gian thực 30 FPS ở độ phân giải siêu nét 4K UHD với chất lượng điểm ảnh bit-exact tuyệt đối đã được xác thực 100% qua môi trường UVM chuyên nghiệp. Đây là tiền đề kỹ thuật vững chắc hướng tới việc phát triển các lõi IP Core nén video thế hệ mới phục vụ đắc lực cho ngành công nghiệp truyền thông đa phương tiện và vi điện tử tại Việt Nam.