Các bộ lọc lặp vòng

Một phần của tài liệu ĐỒ ÁN HEVC : MÃ HÓA VIDEO HEVC (Trang 86 - 94)

Với các bộ lọc lặp vòng, có hai bộ lọc trong HEVC, bộ lọc giải khối và bộ lọc bù thích nghi mẫu. So với H264, bộ lọc giải khối trong HEVC được đơn giản hóa. Giải khối có thể được chia làm hai bước. Mỗi hướng (ngang hoặc dọc) được thực hiện trong mộ bước. Mặt khác, bộ lọc SAO là một công cụ mã hóa mới trong HEVC. Nó thu thập số liệu thống kê của sự biến dạng pixel và tối thiểu hóa sự khác nhau giữa các mẫu đầu vào và các mẫu tái tạo bằng cách cộng thêm các độ bù thích nghi. Các loại bộ lọc SAO có thể được chọn từ bù cạnh (EO), bù băng (BO) hoặc không đổi (OFF). EO thực hiện phân loại pixel dưa trên hướng/hình dạng của cạnh. BO thì dựa trên mức pixel. Nếu pixel không phù hợp cho SAO, nó có thể được đánh dầu là không đổi. Mã hóa SAO phức tạp hơn giải khối. Nó bao gồm giai đoạn xác định độ bù, và giai đoạn lọc. Giai đoạn xác định độ bù thu thập thông tin thống kê cần thiết từ CTU gốc và CTU tái tạo. Sau đó, các độ bù và các loại được quyết định với thông tin thống kê. Tiếp theo, giai đoạn lọc sẽ thực hiện lọc độ bù theo các độ bù và các loại. Trong HM, hai bộ lọc lặp vòng được thực hiện nối tiếp. Tuy nhiên, điều đó sẽ làm cho đường ống trở nên dài hơn. Do SAO yêu cầu cả các CTU gốc và CTU dự đoán, mỗi giai đoạn tăng lên sẽ yêu cầu hai bộ đệm kích thước CTU bổ sung. Để giảm số lượng các giai đoạn, ta có thể thực hiện bộ lọc giải khối và bộ lọc SAO cùng nhau. Để loại bỏ độ trễ, việc xác định hệ số SAO có thể sử dụng các CTU tái tạo không được giải khối thay vì CTU đã giải khối. Điều đó gây mất mát chất lượng ít nhất do giải khối và SAO hướng tới những thành phần lạ khác nhau. Để kết hợp luồng dữ liệu của hai bộ lọc, bước đầu tiên của giải khối được thực hiện vsong song cùng với việc xác định hệ số SAO. Bộ đệm CTU tái tạo cung cấp dữ liệu cho cả hai module một cách song song. Sau đó, bước giải khối thứ hai được thực hiện;

lọc SAO được thực hiện ngay sau bộ lọc giải khối. Theo cách này, lọc vòng lặp có thể được thực hiện có hiệu quả.

3.2.7. Mã hóa Entropy

Mã hóa entropy được sử dụng để loại bỏ phần dư mà chưa bị triệt tiêu bởi các công cụ dự đoán. Nó sử dụng phân bố xác suất của các phần tử cú pháp. Nó cũng đóng một vài trò quan trọng trong mã hóa video. CABAC là công cụ mã hóa mặc định cho HEVC. Trong khi CABAC cung cấp hiệu suất mã hóa cao, quá trình của nó thể hiện các độ phỵ thuộc dữ liệu bin-tới-bin. Kết quả là, bộ mã hóa CABAC thường xuyên là một trong những nút cổ chai thông lượng nghiêm trọng nhất trong toàn thể bộ mã hóa video.

Hình 3.10 Kiến trúc CABAC tổng thể cho H264

Với thiết kế phần cứng CABAC, có các đường ống hai giai đoạn, ba giai đoạn và bốn giai đoạn. Bốn gian đoạn phần lớn được sử dụng trong các thiết kế thông lượng cao gần đây. Hình 3.10 thể hiện kiến trúc CABAC tổng thể bốn giai đoạn cho H264. Máy hữu hạn trạng thái cú pháp (FSM) điều khiển thứ tự mã hóa của các phần tử cú pháp. Module truy cập dữ liệu chuẩn bị dữ liệu cần thiết cho

bộ nhị phân hóa và bộ tạo khuôn thuộc tính. Bộ nhị phân hóa sẽ chuyển đổi các phần tử cú pháp gốc thành các dòng nhị phân. Bộ tạo khuôn thuộc tính xác định các trạng thái thuộc tính tiếp theo để được sử dụng. Sau đó, mã hóa số học nhị phân được áp dụng.

Hình 3.11. Sơ đồ đường ống CABAC một bin cơ bản

Bộ mã hóa số học điển hình có thể được phân vùng hơn nữa thành bốn giai đoạn chính: trạng thái, phạm vi, thấp và đầu ra. Giai đoạn trạng thái sẽ cập nhật MPS và trạng thái như thể hiện ở hình 3.11. Giai đoạn phạm vi và thấp sẽ cập nhật các giá trị phạm vi và giá trị thấp cho mã hóa số học. Giai đoạn đầu ra đảm nhận nhiệm vụ xuất ra dòng bit. Sự chuẩn hóa được thực hiện trên phạm vi và thấp sau khi mã hóa mỗi bin để chúng có thể được biểu diễn với độ chính xác 9 bit cố định. Ta có thể nhìn thấy các sự phụ thuộc dữ liệu giữa bốn khối. Với kiến trúc này, ta đạt được một bin trên mỗi chu kì. Để dạt thông lượng tốt hơn, mạch tiền chuẩn hóa có thể được sử dụng để giảm đường dẫn trọng yếu chuẩn hóa.Trong HEVC, nhiều hơn 20% các bin là các bin đường vòng. Do mạch cập

nhật phạm vi và mô hình thuộc tính không ảnh hưởng tới mã hóa đường vòng, một kế hoạch phun bin bỏ qua (BPBS) có thể được áp dụng để chia quá trình từ dòng bin và tái sát nhập thành dòng bit trước giai đoạn cập nhật thấp.

Hình 3.12 Đa bin (a) sơ đồ khối tổng thể (b) mạch chuyển tiếp trạng thái

Với các ứng dụng phân giải cao, thông lượng của một bin CABAC là không đủ. Do những sự phụ thuộc dữ liệu CABAC, sẽ khó để thêm các giai đoạn đường ống trong CABAC. Kết quả là, có thể cần đến các kĩ thuật để mã hóa nhiều hơn một bin trong một chu kì. Một phương pháp của CABAC nhiều bin là phân tầng. Bằng cách phân tầng các mạch trạng thái, phạm vi, thấp và đầu ra và sử dụng một mạch chuyển tiếp trạng thái trong giai đoạn trạng thái, ta đạt được một bộ máy CABAC với nhiều bin trên mỗi chu kì như thể hiện trong hình 3.12a, b. Một phương pháp khác cho CABAC nhiều bin là phương pháp chuyển đổi đôi trạng thái (SDT). Nó kết hợp hai bảng chuyển đổi trạng thái thành một với cái giá là một bảng lớn hơn. Sau đó, mỗi giai đoạn có thể xử lý hai bin mỗi chu kì. SDT cũng có thể được kết hợp với các kĩ thuật phân tầng.

Hình 3.13. Kiến trúc đơn giản của bộ mã hóa số học nhị phân đa bin.

Hiệu quả của kĩ thuật phân tầng vẫn bị giới hạn vì sự gia tăng độ trễ trong mạch chuyển tiếp trạng thái do số lượng giai đoạn phân tầng tăng lên. Tần số vận hành sẽ bị giảm xuống nếu quá nhiều giai đoạn phân tầng được sử dụng. Với thông lượng cao hơn, một kiến trúc phân tích ML có thể được áp dụng. Ta có thể quan sát từ đường ống CABAC rằng độ phức tạp cho việc xử lý MPS và LPS trong mỗi gian đoạn là khác nhau. Ta có thể chia quá trình xử lý thành hai phần: M cho MPS và L cho LPS cho việc phân tích thời gian. Một kiến trúc CABAC nhiều bin điển hình được thể hiện trong hình 3.13. Sau khi phân tích, ta có thể quan sát được sự không cân bằng như trong hình 3.14. MPS và LPS có các độ trễ khác nhau. Để có thông lượng cao hơn, ta có thể chia bộ mã hóa số học thành hai bộ mã hóa riêng.

Hình 3.14. Không cân bằng nhánh của kiến trúc đường ống bốn giai đoạn trong H264

Vơi một bộ mã hóa MPS và một bộ mã hóa LPS, thông lượng mỗi chu kì trong các kiến trúc truyền thống luôn là chỉ một bin. Nhưng có khả năng để hoàn toàn tận dụng cả hai bộ mã hóa để mã hóa hai bin trong một chu kì. Kiến trúc tương ứng có thể dễ dàng được cấu hình như trong hình 3.15a và trong dạng đơn

giản hơn ở hình 3.15b. Bây giờ, hai bin được kiểm tra đồng thời trong một chu kì. Nếu hai bin đều là MPS, chỉ bộ mã hóa M được kích hoạt để mã hóa bin đầu tiên, và bin thứ hai sẽ được mã hóa ở chu kì tiếp theo.

Hình 3.15. Kiến trúc phân tầng ML (a) Kiến trúc phân tầng ML (b) Dạng biểu diễn đơn giản hóa

Tương tự, khi bin đầu tiên là LPS, chỉ có bộ mã hóa L được kích hoạt. Do đó, thông lượng trên mỗi chu kì được cải thiện từ một bin tới một hoặc hai bin. Mặc dù đường dẫn trọng yếu trẻ nên dài hơn, mào đầu lại vừa phải vì những đường dẫn trọng yếu gốc của bộ mã hóa M và L là rất không cân bằng như thể hiện trong hình 3.14. Kiến trúc lựa chọn thông lượng có thể được áp dụng để tăng thông lượng trong khi vẫn duy trì đường dẫn trọng yếu tương tự giữa các đường dẫn khác nhau. Do đó, chiến lược thiết kế là tạo ra các đường dẫn trọng yếu của toàn bộ lựa chon cân bằng nhau. Cả {ML, LM} và {MML, MLM, LMM, LL} trong hình 3.16 là những ví dụ tốt của kiến trúc lựa chọn thông lượng với các đường dẫn trọng yêu cân bằng. Số lượng các lựa chọn có thể được tinh chỉnh để phù hợp với thông lượng mục tiêu. Nếu thông lượng cao hơn được yêu cầu, kiến trúc lựa chọn thông lượng cá thể được phân tầng hơn nữa. Ngoài ra, số lượng nhiều M các giai đoạn có thể được chia sẻ bằng cách chuyển tiếp M kết quả đầu tiên tới đường dẫn thay thế trong mạch lựa chọn thông lượng.

Hình 3.16. Các ví dụ của kiến trúc lựa chọn thông lượng với các đường dẫn trọng yếu cân bằng

Với các yêu cầu tốc độ bin cao, sử dụng một bộ máy CABAC riêng lẻ trong một vài tình huống không thể đạt được tốc độ bin yêu cầu. HEVC trong những hoàn cảnh như vậy đã cung cấp một vài kế hoạch song song hóa với cái giá là sự tăng tốc độ bit ở biên. HEVC cung cấp CABAC song song đầu sóng, ngói, và lát với các ràng buộc khác nhau về sự phụ thuộc CABAC. Nhiều phần của khung (tức là nhiều CTU) có thể được mã hóa tại cùng thời điểm nếu các cấu hình này được sử dụng để làm hiệu quả sử dụng cao hơn nữa.

3.3. Tổng kết chương 3

Như vậy trong chương này, chúng ta đã đi vào chi tiết về cấu trúc phần cứng bộ mã hóa và giải mã HEVC.

Với bộ giải mã, thách thức về các kích thước lớn và thay đổi của các đơn vị biến đổi có thể được giải quyết sử dụng phép nhân đa hằng số và một bộ nhớ chuyển vị dựa trên SRAM cho một triển khai hiệu quả khu vực. Tương tự, việc sử dụng phép nhân đa hằng số ghép kênh theo thời gian để tối ưu hóa bộ lọc nội suy dài hơn của HEVC cũng được mô tả. Bộ lọc nội suy dài hơn cũng tạo ra yêu cầu băng thông tăng lên từ bộ đệm hình ảnh tham chiếu, thứ mà được giải quyết vởi một bộ nhớ cache và bột việc lập bản đồ bộ nhớ nhận biết độ trễ DRAM

Còn về bộ mã hóa thì các vấn đề thiết kế chủ chốt trong đường ống hệ thông, thiết kế mức module, và quyết định chế độ phức tạp cao mà hỗ trợ RDO đầy đủ trong phần cứng đã được thảo luận. Một chip thử nghiệm mà hỗ trợ mã hóa thời gian thực 8K UHDTV trong HEVC cũng được trình bày. Mặc dù HEVC là một tiêu chuẩn phức tạp, ta vẫn có thể đạt được việc triển khai có hiệu quả với thiết kế về thuật toán và kiến trúc đúng đắn. Với các kĩ thuật đã được trình bày trong chương này, chúng tôi đã chỉ ra rằng HEVC có thể được sử dụng cho mã hóa thời gian thực cho các ứng dụng phân giải cực cao.

KẾT LUẬN

Như vậy, chúng ta có thể thấy rằng HEVC thực sự là một tiêu chuẩn mã hóa video hiệu quả cao so với các tiêu chuẩn mã hóa Video trước đó. Với hiệu suất mã hóa lớn hơn tới 50% so với người tiền nhiệm H264 cũng rất nhiều các cải

tiến khác về công suất, thông lượng, độ phức tạp tính toán, HEVC hứa hẹn sẽ trở thành tiêu chuẩn được áp dụng rộng rãi vào các ứng dụng video trên toàn thế giới.

Đồ án này đã cung cấp một cái nhìn chi tiết về những kĩ thuật đã được sử dụng cũng như cấu trúc phần cứng bộ giải mã và bộ mã hóa HEVC, những cái đã giúp HEVC trở thành một tiêu chuẩn mã hóa hiệu suất cao như vậy. Tuy nhiên như vậy không có nghĩa là nhiệm vụ nghiên cứu đã kết thúc, bởi HEVC vẫn còn mang tới những không gian dành cho những phần mở rộng sau này, giúp HEVC đạt được những chỉ tiêu chất lượng còn tốt hơn nữa. Và nhiệm vụ của chúng ta là vẫn theo dõi để cập nhật được những kĩ thuật mã hóa trong tương lai.

Đồ án xin được kết thúc tại đây, một lần nữa, em xin chân thành cảm ơn thầy giáo Tiến Sĩ Nguyễn Trung Tấn cùng các thầy cô khác trong ngành Điện tử viễn thông của trường Học viện Kĩ thuật Quân sự đã tạo điều kiện giúp đỡ em trong thời gian qua.

Một phần của tài liệu ĐỒ ÁN HEVC : MÃ HÓA VIDEO HEVC (Trang 86 - 94)