« Home « Kết quả tìm kiếm

Thiết kế và triển khai các khối con bộ mã hóa video H.265 trên FPGA – khối Ước lượng chuyển động.


Tóm tắt Xem thử

- BỘ MÃ HÓA VIDEO CHUẨN H.265.
- 8 1.2 Bộ mã hóa video chuẩn H.265.
- 9 1.3 Các khối chức năng trong bộ mã hóa H.265.
- 22 -II- 1.3.7 Mã hóa entropy.
- Tác giả Nguyễn Ngọc Thắng -V- DANH MỤC CÁC HÌNH VẼ Hình 1-1: Sơ đồ khối chức năng tổng quát bộ mã hóa video chuẩn H.265.
- 10 Hình 1-2: Ví dụ về chia hình ảnh thành các khối cây mã hóa với hình ảnh đầu vào là YCbCr 4:2:0.
- 12 Hình 1-3: Ví dụ về chia hình ảnh thành các khối cây mã hóa với hình ảnh đầu vào là RGB.
- 14 Hình 1-5: Cấu trúc cây mã hóa.
- 15 Hình 1-6: Các chế độ phân vùng của khối PU trong mã hóa ảnh.
- Để có thể hiểu biết hơn về chuẩn nén này, em đã chọn đề tài “Thiết kế và triển khai các khối con bộ mã hóa video H.265 trên FPGA”.
- 2 TÓM TẮT LUẬN VĂN Các khối con trong bộ mã hóa video H.265 đƣợc thiết kế và triển khai trên bo mạch FPGA Virtex-V của Xilinx với việc sử dụng ngôn ngữ lập trình Verilog.
- Nội dung của đề tài đƣợc chia làm 4 chƣơng: Chƣơng 1: Bộ mã hóa/ giải mã video chuẩn H.265 Giới thiệu chung về nguyên lý nén video cũng nhƣ chuẩn nén video H.265 Chƣơng 2: Dự đoán liên ảnh Giới thiệu chung về quá trình dự đoán ảnh và tập trung vào dự đoán liên ảnh.
- Dữ liệu video có sự dƣ thừa về mặt không gian và thời gian, vì vậy bộ mã hóa có thể tách ra những sự khác biệt trong một khung hình (về không gian) hoặc giữa các khung hình (về thời gian).
- Bộ mã hóa/giải mã video sẽ xử lý các dữ liệu video tƣơng tự bằng phƣơng pháp số.
- Mã hóa độ dài biến đổi (Variable – length Coding.
- Một khung hình thƣờng đƣợc chia thành các khối mã hóa lớn nhất (LCU – Largest Coding Unit).
- Các kiểu mã hóa khác nhau có thể đƣợc dùng cho từng LCU thay vì cho toàn bộ khung hình.
- Ảnh I chỉ có thể chứa các LCU mã hóa trong hình (I – LCU.
- Là ảnh đƣợc mã hóa mà không cần phải tham chiếu tới bất kỳ khung hình nào khác ngoài chính nó.
- Có thể đƣợc tạo ra bởi bộ mã hóa để tạo các điểm truy nhập ngẫu nhiên cho phép bộ giải mã có thể giải mã chính xác tại vị trí bất kỳ.
- Ảnh dự đoán ảnh phía trƣớc P (Previous coded picture): Ảnh P có thể chứa cả LCU dự đoán từ khung đã đƣợc mã hóa trƣớc khung hiện tại theo thứ tự hiển thị (Previous – LCU) và LCU mã hóa trong hình (Intra – LCU.
- 6 - Dữ liệu đƣa ra là dữ liệu sai khác giữa khối mã hóa của khung hiện tại và khối mã hóa đƣợc chọn của khung dự đoán cùng vector chuyển động để chỉ ra vị trí của khối mã hóa dự đoán.
- Có thể tham chiếu các khung hình trƣớc đó theo thứ tự mã hóa.
- Có thể sử dụng một hoặc nhiều khung hình đƣợc mã hóa trƣớc khung hiện tại theo thứ tự hiển thị.
- Dữ liệu đƣa ra là dữ liệu sai khác giữa khối mã hóa của khung hiện tại và khối mã hóa đƣợc chọn của khung dự đoán cùng vector chuyển động để chỉ ra vị trí của khối mã hóa dự đoán.
- Cải tiến quan trọng nhất trong MPEG – 2 so với MPEG – 1 là hỗ trợ mã hóa video xen kẽ.
- MPEG-4 Part 10 (H.264): còn gọi là chuẩn mã hóa video tiên tiến (Advanced Video Coding), là sản phẩm kết hợp của ITU – T và MPEG.
- 1.1.2 Chuẩn nén video H.265/HEVC HEVC là bộ mã hóa/giải mã mới nhất dựa trên dự đoán chuyển động theo khối kế thừa từ chuẩn nén H.264 đƣợc phát triển bởi ITU-T và MPEG.
- Cải thiện mã hóa thông tin chuyển động bằng chế độ ghép khối.
- Trong thực tế, một bộ mã hóa và giải mã tƣơng thích cần bao gồm các khối chức năng nhƣ trong Hình 1-1 [6].
- khi chc nng tng quát b mã hóa video chun H.265 Một khung hình đầu vào Fn đƣợc xử lý theo từng khối mã hóa một.
- Mỗi khối mã hóa đƣợc mã hóa theo chế độ mã hóa trong ảnh hoặc mã hóa liên ảnh dựa trên các ảnh mẫu đã đƣợc tái tạo, và đƣợc gọi là khối dự đoán PRED.
- Trong Hình 1-1, ảnh tham chiếu là ảnh mã hóa trƣớc đó F’n-1 tuy nhiên vùng tham chiếu dự đoán cho mỗi khối trong một khối mã hóa (đối với chế độ liên ảnh) có thể đƣợc chọn từ một tập các ảnh trƣớc đó hoặc sau đó (theo thứ tự hiển thị) mà đã đƣợc mã hóa, tái tạo và lọc.
- Các hệ số đã đƣợc mã hóa entropy, cùng với các thông tin khác cần thiết để giải mã các khối trong mỗi khối mã hóa (chế độ dự đoán, thông số bộ lƣợng tử hóa, thông tin vectơ chuyển động.
- Bên cạnh việc mã hóa và truyền các khối trong mỗi khối mã hóa, bộ mã hóa cũng đồng thời giải mã (tái tạo) các khối đó để cung cấp các tham chiếu cho việc dự đoán sau này.
- 1.3 Các khối chức năng trong bộ mã hóa H.265 1.3.1 Một số khái niệm về phân vùng ảnh trong chuẩn nén video H.265 Các ảnh đầu vào bộ mã hóa sẽ đƣợc chia thành một chuỗi các khối cây mã hóa (CTB – Coding Tree Block) [6].
- Khái niệm về khối cây mã hóa tƣơng tự nhƣ khái niệm về macroblock trong các chuẩn nén trƣớc nhƣ H.264.
- Kích thƣớc khối cây mã hóa thay đổi trong các giá trị 16x16, 32x32, 64x64 phụ thuộc vào từng luồng video cần mã hóa.
- Nếu hình ảnh đầu vào là 3 thành phần YCbCr, khối cây mã hóa sẽ gồm một khối chứa thành phần độ chói có kích thƣớc NxN và hai khối thành phần màu tƣơng ứng (Hình 1-2).
- Nếu ảnh đầu vào là 3 thành phần R, G, B riêng biệt, khối cây mã hóa sẽ gồm 3 khối màu đơn nhất kích thƣớc NxN (Hình 1-3).
- Dải đƣợc định nghĩa là một số nguyên lần các khối cây mã hóa đƣợc lƣu trữ trong một lớp phân đoạn độc lập và toàn bộ các dải phân đoạn phụ thuộc đi liền sau.
- 13 Một dải phân đoạn còn đƣợc định nghĩa là một số nguyên lần các khối cây mã hóa đƣợc sắp xếp liên tiếp nhau trong cách quét lớp và đƣợc chứa trong một lớp mạng trừu tƣợng NAL.
- Một dải phân đoạn đƣợc sử dụng nhƣ một đơn vị dữ liệu video mã hóa đƣợc đóng gói phục vụ cho mục đích truyền tin.
- Một dải phân đoạn phụ thuộc có các giá trị về thành phần cú pháp trong phần header đƣợc suy ra từ các giá trị có trong dải phân đoạn độc lập trƣớc đó theo thứ tự mã hóa.
- Một lớp phân đoạn đƣợc định nghĩa là một vùng hình chữ nhật có chứa một số nguyên lần các khối cây mã hóa [3].
- Một lớp phân đoạn có thể chứa các khối cây mã hóa thuộc nhiều dải phân đoạn khác nhau.
- Tƣơng tự nhƣ vậy, một dải phân đoạn cũng có thể chứa các khối cây mã hóa thuộc nhiều lớp phân đoạn khác nhau.
- Bức ảnh gồm 11x9 khối cây mã hóa có thể đƣợc chia thành hai lớp phân đoạn và một dải phân đoạn (hình bên trái) hoặc thành hai lớp phân đoạn và ba dải phân đoạn (hình bên phải).
- Khối mã hóa là một vùng có cùng chế độ mã hóa (mã hóa liên ảnh, mã hóa trong ảnh, hay không đƣợc mã hóa) và đƣợc biểu diễn là một lá trong cấu trúc cây chia bốn [3].
- Khối CU luôn luôn là các khối hình vuông và có kích thƣớc thay đổi từ 8x8 tới kích thƣớc bằng với khối cây mã hóa.
- Việc mã hóa và không mã hóa đều đƣợc chấp nhận trong một khối CU.
- Khối CU không mã hóa đƣợc xem nhƣ chế độ dự đoán liên ảnh không có thông tin về phần dƣ và độ lệch vector chuyển động.
- Khối CU đƣợc mã hóa sẽ sử dụng một trong hai chế độ dự đoán: dự đoán liên ảnh hoặc dự đoán trong ảnh 15 0(32x32)1(16x x Hình 1-5: Cu trúc cây mã hóa Khối dự đoán (PU – Prediction Unit) là vùng đƣợc sử dụng để chứa thông tin có liên quan đến việc thực hiện mã hóa [3].
- Hình 1-6 thể hiện 8 chế độ dự đoán đƣợc sử dụng cho khối CU đƣợc mã hóa liên ảnh với N là kích thƣớc của khối mã hóa [3].
- Chế độ phân vùng PART_2Nx2N và PART_NxN đƣợc sử dụng cho khối CU đƣợc mã hóa trong ảnh.
- phân vùng ca khi PU trong mã hóa nh Khối biến đổi (TU – Transform Unit) luôn là hình vuông có kích thƣớc thay đổi (4x4, 8x8, 16x16, 32x32 hệ số biến đổi) [3].
- Tuy nhiên, khối TU sẽ không đƣợc phép băng qua đƣờng phân cách khối PU trong trƣờng hợp CU là khối đƣợc mã hóa trong ảnh.
- 1.3.2 Dự đoán Tiên đoán+Tiền tiên đoánKhung được mã hóa trước đóTrong ảnhLiên ảnhThông tin dư thừa+-Khung hiện tạiPU hiện tại 1-7.
- Về cơ bản, khối dự đoán tính toán ra đƣợc một PU đƣợc tiên đoán, sau đó so sánh và tính toán sự sai khác giữa PU đã đƣợc tiên đoán với PU hiện tại và chỉ mã hóa và truyền đi sự sai khác đó [5].
- Mã hóa trong ảnh (intra coding): 18 Mã hóa trong ảnh là quá trình nội suy khối mã hóa từ các khối đƣợc mã hóa trƣớc trong cùng một ảnh [5].
- So với H.264, nén ảnh I hiệu quả hơn nhờ việc bổ sung thêm nhiều chế độ mã hóa trong quá trình mã hóa ảnh I.
- Hơn nữa H.265 còn có khả năng thay đổi kích thƣớc khối mã hóa mềm dẻo hơn so với H264.
- Tùy thuộc vào tính chất ảnh, kích thƣớc khối mã hóa có thể là 64x64, 32x32, 16x16, 8x8, 4x4 giúp việc tiên đoán ảnh hiệu quả hơn.
- Với những vùng ảnh có độ thay đổi nhiều, giảm kích thƣớc khối mã hóa xuống (4x4 điểm ảnh) sẽ giúp ích rất nhiều cho việc tăng hiệu quả nén.
- Mã hóa liên ảnh (Inter Coding): Quá trình mã hóa liên ảnh giúp giảm độ dƣ thừa về thời gian trong chuỗi video [5].
- Quá trình mã hóa liên ảnh đƣợc thực hiện nhƣ sau: Đầu tiên, khối dự đoán (PU) của khung hiện tại đƣợc sử dụng sẽ có kích thƣớc lớn nhất (khối mã hóa - CU) đƣợc đem ra so sánh với PU cùng kích thƣớc của khung tham chiếu và chọn ra PU “giống” nhất với PU của khung hiện tại.
- Sau đó, các PU có kích thƣớc nhỏ hơn sẽ đƣợc thực hiện tƣơng đƣơng và chọn ra chế độ mã hóa phù hợp nhất cùng với PU giống nhất của khung tham chiếu.
- Nhƣ vậy để thực hiện một quá trình mã hóa liên ảnh ta phải lựa chọn: khung tham chiếu, khối dự đoán phù hợp và kích thƣớc của khối dự đoán.
- Đây là quá trình chiếm nhiều khối lƣợng cũng nhƣ thời gian tính toán nhất trong quá trình mã hóa H.265.
- Quá trình này sẽ làm cho các khối mã hóa không bị phân tách rõ ràng và làm tăng chất lƣợng ảnh đƣợc giải mã.
- Bộ mã hóa sẽ đƣa ra quyết định khi nào thì chế độ bù mẫu theo ngữ cảnh đƣợc sử dụng cho dải phân đoạn hiện tại.
- So với H.264, H.265 có cải tiến phƣơng pháp mã hóa CABAC để làm tăng khả năng nén video.
- Dữ liệu về nội dung thông tin trong slice nhƣ: chiều dài slice, hoặc để chỉ thị kiểu dự đoán của khối mã hóa - Loại khối dự đoán (16x16, 16x8, 32x32.
- Kích thƣớc khối biến đổi, vị trí trong khối mã hóa.
- Trong Hình 1-9 chiều của luồng dữ liệu theo chiều từ phải sang trái, ngƣợc với bộ mã hóa (từ trái sang phải) để thấy rõ sự giống nhau giữa bộ mã hóa và giải mã.
- Những hệ số này sẽ đƣợc giãn và biến đổi ngƣợc để tạo ra D’n (giống hệt với D’n trong bộ mã hóa).
- Sử dụng các thông tin khác cần thiết giải mã đƣợc từ luồng bit, bộ giải mã tạo ra khối dự đoán PRED, giống hệt so với khối dự đoán PRED ban đầu đƣợc tạo ra trong bộ mã hóa.
- Mỗi khối dự đoán sẽ có một phƣơng thức dự đoán để giảm dữ liệu trùng lặp so với khối dự đoán đã đƣợc mã hóa trƣớc.
- H.265/HEVC hỗ trợ nhiều phƣơng thức dự đoán khác nhau: dự đoán trong ảnh (Intra prediction) chỉ sử dụng thông tin trong khung hiện tại, dự đoán liên ảnh (Inter prediction) sử dụng dự đoán bù chuyển động từ các khung đã đƣợc mã hóa trƣớc và sau khung hiện tại theo thứ tự hiển thị, các kích thƣớc khối dự đoán khác nhau, sử dụng nhiều khung tham chiếu.
- Việc lựa chọn chế độ dự đoán phù hợp nhất cho mỗi khối dự đoán giúp bộ mã hóa giảm tối thiểu dƣ thừa và tạo dòng bit mã hóa cao.
- Hình 2-1 biểu diễn phƣơng thức dự đoán cho ba khối mã hóa: khối mã hóa loại I, loại P và loại B [5].
- Một khối mã hóa loại I đƣợc tiên đoán từ các mẫu lân cận trong cùng khung hiện tại – tiên đoán trong ảnh.
- Một khối mã hóa loại P đƣợc tiên đoán từ các mẫu của một khung đã đƣợc mã hóa trƣớc, khung này có thể trƣớc hoặc sau khung hiện tại theo thứ tự xuất hiện trong video.
- Các phần khác nhau trong khối mã hóa loại P có thể đƣợc dự đoán từ các khung tham chiếu khác nhau.
- Mỗi phần trong một khối mã hóa loại B đƣợc tiên đoán từ các mẫu trong khung đƣợc mã hóa trƣớc và sau theo thứ tự hiển thị.
- Cũng giống khối mã hóa loại P, các phần khác nhau trong khối mã hóa loại B có thể đƣợc dự đoán từ các khung tham chiếu khác nhau.
- Bộ mã hóa sẽ lựa chọn chế độ dự đoán tốt nhất cho thành phần độ chói của các khối PU từ 35 chế độ dự đoán bao gồm chế độ DC, Planar và 33 hƣớng dự đoán trong ảnh đƣợc minh họa theo hình sau [3].
- Vị trí B2 chỉ đƣợc xem xét khi một trong các vị trí còn lại không tồn tại PU hoặc PU tại vị trí đó sử dụng mã hóa trong ảnh.
- Trong quá trình lựa chọn, các PU tại các vị trí lựa chọn phải có thông số chuyển động khác nhau, nếu giống nhau thì bộ mã hóa chỉ lấy một lần.
- Bên cạnh đó, các PU tại các vị trí đƣợc chọn không cùng một khối mã hóa (CU) với PU hiện tại để tránh tình trạng tạo thành khối có kích thƣớc 2Nx2N.
- Đầu tiên, bộ mã hóa sử dụng sự tƣơng quan về thời gian để tìm PU phù hợp nhất với PU đang xét để có đƣợc vector chuyển động MV tƣơng ứng.
- Sau đó, bộ mã hóa dựa vào các PU lân cận với PU hiện tại trong cùng khung hình để có đƣợc vector chuyển động dự đoán (MVP – Motion Vector Prediction) cũng nhƣ thông tin về PU lân cận đƣợc sử dụng.
- Để dự đoán ra MVP, bộ 33 mã hóa sẽ lựa chọn 2 PU lân cận từ 5 vị trí nhƣ Hình 2-5.
- Bng 2-4: H s lc cho thành phn màu Vị trí Hệ số lọc Ƣớc lƣợng chuyển động và bù chuyển động Ƣớc lƣợng chuyển động tạo ra mô hình của khung hiện tại dựa trên dữ liệu của một hoặc nhiều khung đã đƣợc mã hóa trƣớc đó (các khung tham chiếu – reference frame) [5].
- Block dƣ này đƣợc mã hóa và truyền đi, cùng với các thông tin cần thiết để bộ giải mã có thể khôi phục lại (trƣờng hợp đặc biệt là tập các vector chuyển động).
- Đồng thời, các block dƣ đã mã hóa đƣợc giải mã và thêm vào mô hình để xây dựng lại khung hiện tại.
- 3.1 Khối ƣớc lƣợng chuyển động 3.1.1 Mô tả chức năng Khối ƣớc lƣợng chuyển động thực hiện chức năng tìm kiếm PU trên ảnh tham chiếu sao cho gần giống với PU đang mã hóa nhất.
- Kết quả của ƣớc lƣợng chuyển động là thông tin về vector mô tả vị trí của PU tốt nhất tìm đƣợc so với PU đang thực hiện mã hóa.
- Khối MVP sẽ tiến hành dự đoán vector chuyển động của PU hiện tại dựa vào các PU lân cận đã đƣợc mã hóa trƣớc đó.
- Nếu các khối lân cận sử dụng dự đoán trong ảnh hoặc không đƣợc mã hóa thì vector chuyển động của chúng là (0;0) 44 WAIT_SAD trạng thái chờ kết quả sad từ khối ISAD

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt