Mã hóa và giải mã thông tin video số là một lĩnh vực rộng, được sử dụng trong rất nhiều ứng dụng hiện nay: Broadcast, các dịch vụ thoại có và không dây, lưu trữ dữ liệu… Các ứng dụng đa
Trang 1THIẾ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
LUẬN VĂN THẠC SĨ KỸ THUẬT
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN NGỌC THẮNG
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
CHUYÊN NGÀNH KỸ THUẬT ĐIỆN TỬ
LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT ĐIỆN TỬ
NGƯỜI HƯỚNG DẪN KHOA HỌC : TS LÊ DŨNG
Hà Nội – Năm 2014
Trang 3-I-
MỤC LỤC
MỤC LỤC I LỜI CAM ĐOAN IV DANH MỤC CÁC HÌNH VẼ V DANH MỤC CÁC BẢNG BIỂU VIII DANH MỤC CÁC TỪ VIẾT TẮT IX
LỜI MỞ ĐẦU 1
CHƯƠNG 1 BỘ MÃ HÓA VIDEO CHUẨN H.265 3
1.1 Chuẩn nén video H.265 3
1.1.1 Các công nghệ nén video 3
1.1.2 Chuẩn nén video H.265/HEVC 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 11
1.3.1 Một số khái niệm về phân vùng ảnh trong chuẩn nén video H.26511 1.3.2 Dự đoán 17
1.3.3 Biến đổi 19
1.3.4 Lượng tử hóa 19
1.3.5 Bộ lọc xóa khối 20
1.3.6 Bù mẫu theo ngữ cảnh (SAO) 22
Trang 4-II-
1.3.7 Mã hóa entropy 22
1.4 Bộ giải mã video chuẩn H.265 23
CHƯƠNG 2 DỰ ĐOÁN LIÊN ẢNH 25
2.1 Giới thiệu về quá trình dự đoán ảnh 25
2.2 Dự đoán trong ảnh 26
2.2.1 Các chế độ dự đoán 26
2.2.2 Bộ lọc cho các mẫu lân cận 28
2.3 Dự đoán liên ảnh 28
2.3.1 Các chế độ dự đoán 30
2.3.1.1 Chế độ kết hợp 31
2.3.1.2 Dự đoán vector chuyển động 32
2.3.2 Lọc nội suy 33
2.3.3 Ước lượng chuyển động và bù chuyển động 34
2.3.3.1 Ước lượng chuyển động 36
2.3.3.2 Bù chuyển động 37
CHƯƠNG 3 THIẾT KẾ KHỐI ƯỚC LƯỢNG CHUYỂN ĐỘNG 38
3.1 Khối ước lượng chuyển động 38
3.1.1 Mô tả chức năng 38
3.1.2 Sơ đồ khối tổng quát 38
3.1.3 Sơ đồ khối chi tiết 39
Trang 5-III-
3.1.4 Mô tả tín hiệu vào ra 40
3.2 Khối Dự đoán vector chuyển động tiên tiến (AMVP - Advanced Motion Vector Prediction) 41
3.2.1 Mô tả chức năng 41
3.2.2 Sơ đồ khối tổng quát 41
3.2.3 Sơ đồ khối chi tiết 41
3.2.4 Mô tả tín hiệu vào ra 51
3.3 Khối dự đoán vector chuyển động (MVP – Motion Vector Prediction)52 3.3.1 Mô tả chức năng 52
3.3.2 Sơ đồ khối tổng quát 52
3.3.3 Sơ đồ khối chi tiết 52
3.3.4 Mô tả tín hiệu vào ra 53
CHƯƠNG 4 KẾT QUẢ MÔ PHỎNG VÀ PHÂN TÍCH DỮ LIỆU 55
4.1 Thiết kế hệ thống 55
4.1.1 Hệ thống mô phỏng bằng phần mềm 55
4.1.2 Hệ thống triển khai trên bo mạch FPGA 56
4.2 Kết quả mô phỏng bằng phần mềm 57
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
BẢNG ĐỐI CHIẾU THUẬT NGỮ VIỆT – ANH 65
Trang 6-IV-
LỜI CAM ĐOAN
Trước hết, tôi xin gửi lời cảm ơn chân thành tới tập thể các thầy cô trong Viện Điện tử viễn thông, trường Đại học Bách Khoa Hà Nội đã tạo ra một môi trường tốt
để tôi học tập và nghiên cứu Tôi cũng xin cảm ơn các thầy cô trong Viện Đào tạo sau đại học đã quan tâm đến khóa học này, tạo điều kiện cho các học viên có điều kiện thuận lợi để học tập và nghiên cứu Và đặc biệt Tôi xin gửi lời cảm ơn sâu sắc đến thầy giáo TS.LÊ DŨNG đã tận tình chỉ bảo, hướng dẫn và sửa chữa nội dung của luận văn này
Tôi xin cam đoan rằng nội dung của luận văn này là hoàn toàn do tôi tìm hiểu, nghiên cứu và viết ra Tất cả đều được tôi thực hiện cẩn thận và có sự định hướng
và sửa chữa của giáo viên hướng dẫn
Tôi xin chịu trách nhiệm với những nội dung trong luận văn này
Tác giả
Nguyễn Ngọc Thắng
Trang 7-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 12
Hình 1-4: Ví dụ về lớp phân đoạn và dải phân đoạn 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 16
Hình 1-8: Quá trình xử lý bộ lọc xóa khối 20
Hình 1-9: Sơ đồ khối chức năng bộ giải mã video chuẩn H.265 23
Hình 2-1: Các kiểu tiên đoán ảnh 26
Hình 2-2: 33 hướng dự đoán trong ảnh 27
Hình 2-3: Ví dụ về vector chuyển động nguyên và không nguyên điểm ảnh 29 Hình 2-4: Quy ước về dấu và độ lớn của vector chuyển động 30
Hình 2-5: Vị trí các PU lân cận PU hiện tại được xét 31
Hình 2-6: Ví dụ về PU hiện tại kết hợp PU lân cận thành khối 2Nx2N 32
Hình 2-7: Vị trí các điểm ảnh nguyên và không nguyên 34
Hình 2-8: Ước lượng chuyển động và bù chuyển dộng 35
Hình 2-9: Ước lượng chuyển động 36
Hình 3-1: Sơ đồ thiết kế tổng quát khối ước lượng chuyển động 38
Trang 8-VI-
Hình 3-2: Sơ đồ thiết kế chi tiết khối ước lượng chuyển động 40
Hình 3-3: Sơ đồ tổng quát khối AMVP 41
Hình 3-4: Sơ đồ thiết kế chi tiết khối AMVP 42
Hình 3-5: Sơ đồ máy trạng thái cho hoạt động khối I_search 43
Hình 3-6: Vị trí các PU lân cận lấy vector chuyển động 45
Hình 3-7: Ví dụ về các điểm tìm kiếm miền kim cương xoay 45
Hình 3-8: Thuật toán quét mành với khoảng các các mẫu là 20 điểm ảnh 46
Hình 3-9: Các điểm tìm kiếm lân cận điểm tốt nhất 47
Hình 3-10: Sơ đồ thiết kế khối Nội suy 48
Hình 3-11: Các vị trí 1/2 điểm ảnh cần tìm kiếm 49
Hình 3-12: Các vị trí 1/4 điểm ảnh cần tìm kiếm 50
Hình 3-13: Sơ đồ khối tổng quát khối dự đoán vector chuyển động 52
Hình 3-14: Sơ đồ thiết kế chi tiết khối MVP 53
Hình 4-1: Hệ thống mô phỏng bằng phần mềm 56
Hình 4-2: Hệ thống triển khai trên bo mạch FPGA 57
Hình 4-3: Khối điều khiển Ctrl_me bắt đầu được hoạt động 58
Hình 4-4: Kết thúc quá trình đọc dữ liệu PU hiện tại vào bộ nhớ PU hiện tại với Iskip_mode=0 59
Hình 4-5: Kết thúc quá trình đọc dữ liệu PU hiện tại vào bộ nhớ PU hiện tại với Iskip_mode=1 59
Hình 4-6: Khối MVP xác định các vector chuyển động tham chiếu 61
Trang 9-VII- Hình 4-7: Khối MVP tính SAD 61Hình 4-8:Khối MVP dự đoán xong vector chuyển động 62
Trang 10-VIII-
DANH MỤC CÁC BẢNG BIỂU
Bảng 1-1: Độ sâu lớn nhất của cấu trúc cây chuyển đổi 16
Bảng 1-2: Bảng chọn giá trì β và tc theo QP 22
Bảng 2-1: Mối liên hệ giữa hướng dự đoán trong ảnh và chế độ tương ứng của thành phần màu 27
Bảng 2-2: Ngưỡng cho phép các khối chuyển đổi có kích thước khác nhau 28 Bảng 2-3: Hệ số lọc cho thành phần chói 33
Bảng 2-4: Hệ số lọc cho thành phần màu 34
Bảng 3-1: Bảng mô tả tín hiệu khối Ước lượng chuyển động 40
Bảng 3-2: Bảng giải thích các trạng thái trong máy trạng thái của khối I_search 43
Bảng 3-3: Bảng liệt kê các vị trí cần tìm trong trạng thái SEARCH_NEIGHBOR 47
Bảng 3-4: Bảng giải thích các tham số được sử dụng 50
Bảng 3-5: Bảng mô tả tín hiệu vào ra khối AMVP 51
Bảng 3-6: Bảng mô tả tín hiệu vào ra của khối MVP 53
Trang 11-IX-
DANH MỤC CÁC TỪ VIẾT TẮT
HEVC High Efficiency Video Coding
ITU – T International Telecommunication Union
Telecommunication Standardization Sector
MPEG Moving Picture Experts Group
NAL Network Abstraction Layer
SAD Sum of Absolute Difference
SAE Sum of Absolute Error
MAE Mean of Absolute Error
TQ Transform and Quantization
ITIQ Inverse Transform and Inverse Quantization
FPGA Field Programmable Gate Array
LCU Largest Coding Unit
Trang 121
LỜI MỞ ĐẦU
Ngày nay, song hành với sự phát triểu của thông tin liên lạc, yêu cầu về lưu trữ và truyền dữ liệu đặc biệt là dữ liệu hình ảnh ngày càng cao cả về tỉ lệ nén cũng như chất lượng hình ảnh Mã hóa và giải mã thông tin video số là một lĩnh vực rộng, được sử dụng trong rất nhiều ứng dụng hiện nay: Broadcast, các dịch vụ thoại
có và không dây, lưu trữ dữ liệu…
Các ứng dụng đa dạng của video tạo nên rất nhiều yêu cầu khác nhau về cả
độ nén và chất lượng ảnh Do đó, trong vài thập kỉ gần đây, các kĩ thuật mã hóa video số trở thành một phần không thể thiếu trong cách chúng ta tạo, liên lạc và sử dụng thông tin H.265/HEVC là một chuẩn mã hóa video mới được tạo nên bởi sự hợp tác của ITU – T Video Coding Experts Group và ISO/ IEC Moving Picture Experts Group Mục đích chính của H.265/HEVC là nâng cao khả năng nén đồng thời có thể thỏa mãn các ứng dụng trên nền IP (lưu trữ, quảng bá, truyền thông tin) H.265/HEVC đạt tới một sự cải tiến rõ rệt về độ nén với cùng chất lượng ảnh so với các chuẩn trước Tuy nhiên, đi kèm với hiệu suất nén rất cao, H.265 cũng đã tăng độ phức tạp khi tính toán rất nhiều, làm tăng thời gian mã hóa của các khung video lên rất nhiều, do đó rất khó thỏa mãn với các ứng dụng thời gian thực
Để 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” Trong luận văn này
em xin trình bày về quá trình thiết kế và triển khai khối Ước lượng chuyển động
trên bo mạch FPGA
Trang 132
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 Trong khuôn khổ luận văn, em thực hiện thiết kế khối Ước lượng chuyển động
Mục đích của đề tài là đưa ra những kiến thức cơ bản nhất về chuẩn nén video H265 Đồng thời đi chi tiết vào phương pháp thiết kế và triển khai khối Ước lượng chuyển động trên bo mạch FPGA
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
Chương 3: Thiết kế khối Ước lượng chuyển động
Quá trình thiết kế khối Ước lượng chuyển động
Chương 4: Kết quả mô phỏng và phân tích dữ liệu
Các kết quả mô phỏng bằng phần mềm Modelsim và phân tích dữ liệu thu được
Trang 143
CHƯƠNG 1 BỘ MÃ HÓA VIDEO CHUẨN H.265
Chương này giới thiệu về các chuẩn nén video hiện có cũng như trình bày các nguyên lý cơ bản trong nén video, tập trung đi sâu vào trình bày các ưu điểm của chuẩn nén video H.265 cũng như bộ mã hóa/giải mã video chuẩn H.265
1.1 Chuẩn nén video H.265
1.1.1 Các công nghệ nén video
Nén video là một kỹ thuật giảm khối lượng dữ liệu không cần thiết để lưu trữ hình ảnh, nó là một sự kết hợp giữa nén trong ảnh (giảm thiểu đồ dư thừa về mặt không gian) và bù chuyển động (giảm thiểu dư thừa về mặt thời gian) [5] Việc nén video làm giảm một cách đáng kể băng thông cần thiết để truyền video số qua vô tuyến, truyền hình cáp, hoặc vệ tinh…
Hầu hết các phương pháp đều là nén tổn thất, chúng dựa trên nguyên lý chung là đa số dữ liệu trong video trước khi nén là không cần thiết do vậy có thể lược bỏ những loại dữ liệu đó đi mà vẫn có thể giữ được chất lượng tốt [5] Ví dụ như DVD sử dụng chuẩn mã hóa video MPEG – 2 có thể nén đoạn video dài khoảng 2 tiếng xuống 15 tới 30 lần mà vẫn cho chất lượng hình ảnh cao so với video thông thường Nén video cũng giống như nén dữ liệu đòi hỏi sự cân bằng giữa dung lượng lưu trữ, chất lượng hình ảnh, độ phức tạp của thuật toán mã hóa/giải mã, ổn định khi có lỗi xảy ra trên đường truyền, độ trễ và giá thành của thiết bị cần để giải nén video trong thời gian chấp nhận được Tuy nhiên, nếu video
bị nén quá mức sẽ có thể làm hỏng hình ảnh
Quá trình nén video thực hiện trên một nhóm các điểm ảnh gần nhau và có dạng hình vuông, được gọi là macroblock Các macroblock được so sánh giữa một khung hình với khung hình lân cận của nó và bộ mã hóa video sẽ chỉ gửi đi sự khác biệt giữa các macroblock đó [5]
Nguyên lý nén video [5]:
Trang 154
Video là một tập hợp 3 chiều của các điểm màu, trong đó 2 chiều thuộc miền không gian (ngang và dọc) còn chiều thứ 3 thuộc miền thời gian Một khung hình là một bộ tất cả các điểm ảnh thuộc cùng một thời điểm, có thể coi như một ảnh tĩ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) Mã hóa không gian lợi dụng đặc điểm mắt người không thể phân biệt được sự khác biệt nhỏ về màu sắc cũng như là sự phân biệt về ánh sáng, và vì vậy có thể dễ dàng giảm những vùng màu giống nhau hoặc là lợi dụng đặc điểm chung là những vùng điểm ảnh lân cận thì tương đối giống nhau,
do đó có thể dựa vào những điểm ảnh lân cận đã được mã hóa để giảm thiểu thông tin mã hóa Đối với nén miền thời gian, chỉ có sự thay đổi giữa các khung hình là được mã hóa bởi thông thường có một lượng lớn các điểm ảnh là giống nhau trên một loạt các khung hình liên tiếp
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ố Tín hiệu video tương tự thường được biểu diễn bằng độ sáng và màu một cách riêng biệt, vì vậy bước đầu tiên trong nén video là biểu diễn và lưu trữ hình ảnh trong không gian màu YCbCr Việc chuyển đổi sang không gian màu YCbCr
có 2 lợi ích là tăng khả năng nén nhờ tạo ra sự không tương quan giữa các tín hiệu màu và phân tách tín hiệu độ sáng quan trọng hơn nhiều ra khỏi tín hiệu màu ít quan trọng hơn mà sẽ được biểu diễn ở độ phân giải thấp hơn
Một số kỹ thuật nén video là:
Lấy mẫu tín hiệu màu tỉ lệ thấp (Chroma Subsampling ratio)
Biến đổi Cosine rời rạc (Discrete Cosine Transform)
Biến đổi Wavelet (Wavelet Transform)
Mã hóa độ dài biến đổi (Variable – length Coding)
Dự đoán bù chuyển động
Trang 165
Ngoài ra cũng có một số chuẩn nén video sử dụng không gian màu RGB (Red – Green – Blue) Những chuẩn này thực hiện lấy mẫu theo 3 màu đỏ - lục - lam với tỉ lệ ngang bằng nhau
Các loại ảnh trong nén video [5]:
Có 3 loại ảnh trong nén video: ảnh nén trong hình, ảnh dự đoán và ảnh dự đoán hai chiều 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 nén trong hình I (Intra coded frame) :
Ả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ỳ
- Có thể được sử dụng khi sự khác nhau giữa các khung hình quá lớn
mà không thể tạo được ảnh P hoặc B hiệu quả đồng thời thời gian xử
lý dữ liệu nhanh
- Thường đòi hỏi lưu trữ nhiều dữ liệu hơn so với các loại ảnh khác
Ả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)
- Cần phải giải mã một số khung hình khác trước để có thể giải mã được ảnh P
Trang 176
- 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ị
- Đòi hỏi lưu trữ ít dữ liệu hơn ảnh I
Ảnh dự đoán hai chiều B (Bi – directional predictive picture):
Ảnh B có thể chứa cả LCU mã hóa trong hình (Intra – LCU), LCU dự đoán dùng khung đã được mã hóa trước khung hiện tại theo thứ tự hiển thị (P – LCU) và LCU dự đoán từ cả khung đã được mã hóa trước và sau khung hiện tại theo thứ tự hiển thị (B – LCU)
- Cần phải giải mã một số khung hình khác trước để có thể giải mã được ảnh B
- 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
- Bao gồm một vài kiểu dự đoán cho phép tạo các dự đoán vùng chuyển động dựa trên sự dự đoán thu được của một hoặc hai vùng tham chiếu khác nhau đã được giải mã trước đó
- Đòi hỏi phải lưu trữ ít dữ liệu hơn ảnh I và P
Một số chuẩn nén video:
- H.261: Sử dụng chủ yếu trong hội thảo truyền hình và điện thoại truyền
hình H.261 được phát triển bởi ITU – T đã trở thành chuẩn nén video số được ứng dụng đầu tiên Về cơ bản thì tất cả các chuẩn nén video sau đó đều được thiết kế dựa trên nó Nó sử dụng không gian màu YCbCr lấy mẫu dạng 4: 2: 0 với 8 bit, macroblock kích thước 16x16, bù chuyển
Trang 187
động theo khối, biến đổi Cosine rời rạc theo khối kích thước 8x8, quét hệ
số zig – zag, lượng tử hóa vô hướng, mã hóa chiều dài biến đổi, chỉ hỗ trợ video liên tục…
- MPEG-1 Part 2: Sử dụng cho VCD Nếu chất lượng nguồn video tốt và
tốc độ đủ cao thì VCD có thể đạt chất lượng tốt hơn VHS Để đạt được chất lượng VHS cần độ phân giải cao hơn Tuy nhiên để tương thích với chuẩn VCD thì tốc độ bít giới hạn là 1150 kbit/s và độ phân giải cao nhất
là 352x288 điểm ảnh VCD đã trở thành chuẩn nén video tương thích nhất với bất kỳ hệ thống nào So với H.261, cải tiến quan trọng nhất là hỗ trợ dự đoán bù chuyển động hai chiều và nửa điểm ảnh (half – pixel) MPEG – 1 chỉ hỗ trợ video liên tục
- MPEG-2 Part 2 (H.262): dùng cho DVD, SVCD và hầu hết hệ thống
truyền hình số vô tuyến và truyền hình cáp Khi sử dụng trên DVD chuẩn, nó cho một chất lượng hình ảnh tốt và hỗ trợ màn ảnh rộng Khi dùng trên SVCD, MPEG-2 Part 2 không tốt bằng DVD nhưng vẫn tốt hơn VCD nhờ độ phân giải và tốc độ bit cao hơn Bộ giải mã MPEG – 2
có tính tương thích ngược nhờ đó có thể sử dụng MPEG – 1 trên bất kỳ
hệ thống nào hỗ trợ MPEG – 2 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ẽ
- H.263: sử dụng chủ yếu cho hội thảo truyền hình, điện thoại truyền hình
và video trên internet H.263 tạo ra một bước tiến quan trọng trong khả năng nén video đối với video liên tục Đặc biệt ở tốc độ bit thấp, nó có thể cung cấp một cải tiến thiết thực đối với tốc độ bit đòi hỏi để đạt được
độ trung thực cần thiết
- 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
Nó đã nhanh chóng được chấp nhận rộng rãi trong nhiều ứng dụng Nó bao gồm một số cải tiến quan trọng trong khả năng nén video, và gần đây
Trang 198
đã được chấp nhận trong các sản phẩm của một số công ty, ví dụ như XBOX 360, PlayStation Portable, iPod, iPhone…
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 Sự hợp tác của hai tổ chức này trong việc phát triển chuẩn này được gọi là Joint Collaborative Team on Video Coding (JCT-VC) [1]
Mục đích của dự án H.265/HEVC là tạo ra một chuẩn có khả năng cung cấp chất lượng video tốt với tốc độ bit thấp hơn các chuẩn trước đó mà không đòi hỏi phải tăng độ phức tạp của thiết kế quá nhiều để có thể chế tạo được với giá thành không quá cao Ngoài ra, một mục tiêu khác là cung cấp một chuẩn mềm dẻo để có thể sử dụng cho một mảng lớn các ứng dụng trên nhiều hệ thống, bao gồm cả tốc độ bit thấp và cao, độ phân giải thấp và cao, truyền hình, lưu trữ DVD, mạng gói RTP/IP, và hệ thống điện thoại đa phương tiện ITU – T…
Việc chuẩn hóa phiên bản quốc tế đầu tiên của H.265/HEVC đã hoàn thành vào tháng 1 năm 2013 JCT-VC đã phát triển các phiên bản mở rộng của chuẩn gốc Các phiên bản mở rộng này cho phép mã hóa video chất lượng tốt hơn bằng cách tăng số bit lấy mẫu, thông tin màu ở độ phân giải cao hơn bao gồm lấy mẫu theo YUV 4: 2: 2 và YUV 4: 4: 4 Một vài ưu điểm khác là hỗ trợ chuyển đổi thích ứng giữa biến đổi nguyên trong khoảng từ 4x4 đến 32x32, lấy mẫu có trọng số, mã hóa ngoài ảnh không tổn hao, hỗ trợ các không gian màu bổ trợ, tương tự như đối với phiên bản nén H.264 trước đó
Dưới đây là một vài đặc điểm nổi bật của mã hóa HEVC so với phiên bản H.264/AVC trước đó [3]:
Trang 209
- Cấu trúc khối mã hóa linh động : Trong khi H.264 định nghĩa khối mã hóa cố định là 16x16 điểm ảnh thì H.265 cho phép kích thước khối mã hóa thay đổi từ 8x8 đến 64x64 điểm ảnh
- Tăng số chế độ dự đoán trong ảnh lên 35 giúp khảng năng nén ảnh tốt hơn
- Hỗ trợ các phép biến đổi nguyên với kích thước bộ biến đổi thay đổi từ 4x4 đến 32x32 vị trí
- Cải thiện mã hóa thông tin chuyển động bằng chế độ ghép khối
- Cải thiện việc xử lý tái cấu trúc ảnh bằng việc sử dụng bộ lọc xóa khối,
bù mẫu theo ngữ cảnh
- Cải tiến kỹ thuật mã hóa Entropy và cho phép thực hiện mã hóa Entropy song song
1.2 Bộ mã hóa video chuẩn H.265
Giống như các chuẩn nén video trước đó, chuẩn H.265 không đưa ra thiết kế của bộ mã hóa/giải mã video mà chỉ định nghĩa cú pháp của một dòng bit video đã
mã hóa cùng với phương thức để giải mã dòng bit [6] 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] Ngoại trừ khối Bộ lọc giải khối và SAO, còn lại các khối chức năng khác như khối
Dự đoán, khối Biến đổi, khối Lượng tử hóa, khối Entropy đều đã xuất hiện trong các chuẩn ra đời trước đó (MPEG – 1, MPEG – 2, MPEG – 4, H.261, H.263, H.264) Tuy nhiên, sự thay đổi quan trọng của H.265 nằm trong chi tiết của các khối chức năng đó
Trang 21Ước lượng chuyển động
Bộ lọc giải khối và SAO
Chọn tiên đoán trong ảnh
Tiên đoán trong ảnh
P
Liên ảnh
Trong ảnh
+ D’n
Hình 1-1: Sơ đồ 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 chế độ trong ảnh, PRED được tạo nên từ các mẫu trong cùng một dải mà đã được mã hóa, giải mã và tái tạo trước đó (uF’n trong Hình 1-1), chú ý rằng sử dụng các mẫu chưa được lọc để tạo nên PRED Trong chế độ liên ảnh, PRED được tạo nên bằng dự đoán bù chuyển động từ một hoặc hai ảnh được chọn từ bộ ảnh tham chiếu danh sách 0 và/ hoặc danh sách 1 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
PRED được trừ cho khối hiện tại để tạo ra dữ liệu dư thừa Dn rồi được biến đổi sử dụng biến đổi cosin rời rạc và lượng tử hóa để tạo ra bộ các hệ số đã được biến đổi lượng tử hóa X, sau đó các hệ số này được sắp xếp lại và mã hóa entropy 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, …) để tạo thành dòng bit đã được nén mà sau đó sẽ được
Trang 221.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)
Trang 23CTB CTB CTB CTB
CTB CTBCTB CTB
CbCTB
CrCTB
LumaCTB
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
CTB CTB CTB CTB
CTB CTBCTB CTB
RCTB
GCTB
BCTB
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
Trang 2413
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 độc lập là một dải phân đoạn có các giá trị về thành phần cú pháp trong phần header không chịu sự ảnh hưởng từ các giá trị trong dải phân đoạn liền trước đó 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 Với các dải phân đoạn phụ thuộc, việc tiên đoán được phép thực hiện qua lại giữa các dải phân đoạn phụ thuộc, và không bao giờ mã hóa entropy được khởi tạo lại từ đầu tại một dải phân đoạn phụ thuộc
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
Giữa lớp và dải phải thỏa mãn một trong hai điều kiện sau :
- Toàn bộ các khối cây mã hóa của một dải phải nằm trọn trong cùng một lớp
- Toàn bộ các khối cây mã hóa của một lớp phải nằm trọn trong cùng một dải
Thứ tự các khối cây mã hóa trong một lớp phân đoạn tuân theo nguyên tắc quét mành, từ trái sang phải, từ trên xuống dưới Thứ tự của các lớp phân đoạn trong một hình ảnh cũng tuân theo nguyên tắc đó
Trang 2514
Hình 1-4: Ví dụ về lớp phân đoạn và dải phân đoạn
Hình 1-4 đưa ra ví dụ về hình ảnh được chia thành hai lớp phân đoạn riêng biệt bởi một đường phân cách dọc 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) Trong hình bên trái mô tả trường hợp hình ảnh chỉ chứa một dải phân đoạn, bắt đầu bằng một dải phân đoạn độc lập (màu sẫm), theo sau là bốn dải phân đoạn phụ thuộc Hình bên phải minh họa trường hợp trong ảnh có chứa hai dải phân đoạn trong một lớp phân đoạn và dải phân đoạn còn lại nằm trong lớp phân đoạn thứ hai
Mỗi CTB sẽ được chia thành các khối mã hóa (CU – Coding Unit) nhỏ hơn bằng phương pháp đệ quy (Hình 1-5) [4]: chia một khối vuông lớn thành bốn khối vuông nhỏ bằng nhau có kích thước bằng ¼ khối vuông gốc 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
Trang 2615
0 (32x32)
1 (16x16)
64
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] Thông thường, PU không bị giới hạn là các khối hình vuông, để có thể tối ưu việc phân vùng sao cho khớp với đường biên của vật thể thật trên ảnh 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 Chế độ phân vùng PART_NxN chỉ được sử dụng khi kích thước của khối CU
Trang 2716
bằng với kích thước CU nhỏ nhất (theo quy ước là 8x8) Một khối CU có thể chứa một hoặc nhiều khối PU tùy thuộc vào chế độ phân vùng
Hình 1-6: Các chế độ 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] Một CU có thể chứa một hoặc nhiều TU và các TU đó cũng được sắp xếp theo cấu trúc cây chia bốn Độ sâu chia bốn được chia tùy theo từng trường hợp cụ thể và được mô tả trong cú pháp header của dải phân đoạn Các giá trị được thiết lập dựa trên thử nghiệm từng cấu hình và thu được bảng kết quả như sau:
Bảng 1-1: Độ sâu lớn nhất của cấu trúc cây chuyển đổi
(mã hóa liên ảnh) (mã hóa trong ảnh) Độ sâu tối đa Cấu hình chính Chỉ dùng mã hóa
trong ảnh
Truy cập ngẫu nhiên
Truy cập ngẫu nhiên
Trang 2817
Với khối CU được mã hóa liên ảnh, khối TU có thể lớn hơn khối PU, có nghĩa rằng, khối TU có thể chứa đường phân cách của các khối PU 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
Trong ảnh
Liên ảnh
Thông tin dư thừa +
-Khung hiện tại
PU hiện tại
nh 1-7: Sơ đồ tổng quát chung về quá trình tiên đoán
Quá trình dự đoán giúp loại trừ một số lượng lớn độ dư thừa về không gian
và thời gian tồn tại trong chuỗi video 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] Như vậy, quá trình dự đoán càng tốt thì sự sai khác càng nhỏ, làm tăng hiệu quả quá trình nén
Dự đoán được chia làm 2 chế độ: tiên đoán trong ảnh và tiên đoán liên ảnh tương ứng làm giảm độ dư thừa về không gian và thời gian
Mã hóa trong ảnh (intra coding):
Trang 2918
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 không nhiều, kích thước của khối mã hóa sẽ lớn (64x64 điểm ảnh) để vừa không làm giảm hiệu quả nén vừa không tăng
độ phức tạp của các phép nội suy 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] Được thực hiện giữa các khung với nhau Về cơ bản, việc thực hiện giảm thiểu độ dư thừa về thời gian được thực hiện lợi dụng trên sự tương quan giữa hai ảnh
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 Thông tin được truyền đi sẽ là vector chuyển động để chỉ tới PU tham chiếu và sự sai khác giữa hai PU
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 So với MPEG –
Trang 3019
2, H.265 tính toán độ chính xác tới ¼ điểm ảnh do tính chất của chuyển động đôi khi không chuyển động nhanh tới một điểm ảnh Để xác định các vị trí không nguyên điểm ảnh thì ta cấn phải nội suy ra chúng So với H.264, H.265 nội suy ra các vị trí không nguyên điểm ảnh thông qua nhiều điểm ảnh lân cận hơn sẽ giúp độ chính xác cao hơ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 Bởi vậy đã có rất nhiều thuật toán đưa ra dựa trên tính chất của ảnh nhằm tăng tốc độ xác định một cách tìm kiếm khung tham chiếu, khối dự đoán phù hợp hay kích thước của chúng, trong khi không làm thay đổi nhiều tới độ nén
1.3.4 Lượng tử hóa
Dựa vào tính chất năng lượng bức ảnh chỉ tập trung vào các thành phần tần
số thấp Đầu ra của khối biến đổi sẽ được lượng tử hóa nhằm loại bỏ các thành phần tần số cao dựa vào các hệ số lượng tử hóa Sau khi thực hiện biến đổi lượng tử hóa, thông thường kết quả ra là một khối dữ liệu mà hầu hết các hệ số là 0, rất ít các thành phần khác 0 Do đó, nếu các hệ số lượng tử hóa cao thì hiệu quả nén cao nhưng làm giảm chất lượng của bức ảnh khi giải mã
Trang 3120
1.3.5 Bộ lọc xóa khối
Quá trình lọc xóa khối được thực hiện cho mỗi khối CU Đầu tiên, các sườn dọc sẽ được lọc (lọc theo phương ngang), tiếp theo đó, các sườn ngang được lọc (lọc theo phương dọc) Bộ lọc được sử dụng giữa đường ranh giới của các khối 8x8 cho cả thành phần chói và thành phần màu Đường biên của các khối 4x4 sẽ không được xử lý để giảm độ phức tạp trong tính toán (không giống như trong chuẩn nén H.264 trước đó) 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ã
Xác định đường biên
Tính giá trị Bs 4x4 -> 8x8
Trang 3221
Hình 1-8 mô tả quá trình xử lý lọc xóa khối Ở đường biên sẽ có ba trạng thái lọc: không lọc, lọc ít, và lọc nhiều Việc quyết định sử dụng bộ lọc nào sẽ do giá trị mức độ viền Bs (Boundary strength) và các giá trị ngưỡng β và tc quy định
Có ba loại đường biên có liên quan đến quá trình lọc: đường biên khối CU, đường biên khối PU và đường biên khối TU Các đường biên của CU luôn luôn có liên quan đến quá trình lọc vì các đường biên này cũng chính là các đường biên của khối PU và TU Khi khối PU có đường biên nằm trong khối TU, đường biên đó sẽ không được lọc
Mức độ viền Bs phản ánh bộ lọc nào sẽ cần được sử dụng để lọc viền Nếu giá trị Bs lớn sẽ cần xem xét đến bộ lọc nhiều Giá trị Bs được tính toán trên các khối có kích thước 4x4, nhưng giá trị đó sẽ được dùng lại cho khối 8x8 Trên một đường biên của khối 8x8 sẽ được tạo thành từ 2 cạnh của hai khối 4x4, khối 8x8 sẽ nhận giá trị Bs lớn nhất trong hai khối 4x4 để làm giá trị Bs tại đường biên đang xét
Giá trị ngưỡng β và tc có ảnh hưởng đến việc sử dụng hay không sử dụng bộ lọc, lựa chọn bộ lọc ít hay bộ lọc nhiều, và xử lý bộ lọc ít Gọi P và Q là các khối có chung đường biên với nhau, với P là khối nằm phía bên trái (trường hợp viền dọc) hoặc ở bên trên (trường hợp viền ngang) đường biên và Q là khối nằm phía bên phải (trường hợp viền dọc) hoặc ở bên dưới (trường hợp viền ngang) đường biên Giá trị này dựa trên các thông số lượng tử hóa của khối P (QPP) và Q (QPQ) Gọi QP là giá trị được sử dụng để tính β và tc, QP được tính toán như sau [6]:
QP = (QPP + QPQ) >> 1 Biến β được lấy theo Bảng 1-2, dựa vào giá trị QP Nếu Bs lớn hơn 1, giá trị của tc sẽ được lấy theo giá trị QP’ được tính như sau [6]:
QP
QP QP
clip QP
2
55 2 , 55
0 2 ,
0 )
2 ,
55 , 0 ( 3 '
Trang 331.3.6 Bù mẫu theo ngữ cảnh (SAO)
Chế độ bù mẫu theo ngữ cảnh được áp dụng để tái cấu trúc lại ảnh được mã hóa sau quá trình lọc xóa khối bằng cách sử dụng các giá trị bù được cho trong mỗi khối cây mã hóa 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 Cách thức bù mẫu theo ngữ cảnh là phân loại các điểm ảnh thành các nhóm và làm giảm sai lệch bằng cách cộng thêm một giá trị bù vào các điểm ảnh trong từng nhóm [3] Chế độ bù mẫu theo ngữ cảnh bao gồm kiểu bù viền và kiểu bù dải Trong đó, kiểu bù viền sử dụng các thuộc tính của viền để phân loại điểm ảnh, còn kiểu bù dải sẽ sử dụng mật độ điểm ảnh để phân loại điểm ảnh
1.3.7 Mã hóa entropy
H.265 chỉ sử dụng 2 chế độ mã hóa: mã hóa chiều dài thay đổi (VLC – Variable Length Coding) và thuật toán mã hóa BAC (Binary Arimethich Coding) với chế độ phù hợp với nội dung của video (CA – context adaptive) để tạo ra phương pháp mã hóa CABAC 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
Thành phần sử dụng bao gồm:
Trang 3423
- Các thành phần lớp trên dành cho chuỗi và mở đầu của slice được mã hóa sử dụng mã với chiều dài cố định hoặc một bảng mã hóa UVLC (universal variable length coding)
- 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
- Hệ số lương tử QP (Quantization Parameter) được mã hóa là sự sai khác so với QP của PU trước
- Chỉ số khung tham chiếu
- Các vector chuyển động được gửi đi là độ sai khác giữa vector chuyển động tìm được với một vector chuyển động được tiên đoán trước từ các dữ liệu của
PU lân cận
- Các hệ số biến đổi
1.4 Bộ giải mã video chuẩn H.265
Bộ giải mã có cấu trúc tương tự một phần của bộ mã hóa, hay nói cách khác trong bộ mã hóa có một phần là bộ giải mã, nó thực hiện chức năng giải mã ảnh đã
mã hóa để tái tạo ảnh làm tham chiếu cho dự đoán 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ã
F’n-1
F’n
(xây dựng lại) Lọc
Bù chuyển động
Tiên đoán trong ảnh
Biến đổi ngược
Lượng tử hóa ngược Sắp xếp lại
Giải mã entropy
NAL X
D’n uF’n
Hình 1-9: Sơ đồ khối chức năng bộ giải mã video chuẩn H.265
Trang 3524
Bộ giải mã nhận luồng bit đã nén từ NAL và giải mã entropy các thành phần
dữ liệu để tạo ra bộ hệ số lƣợng tử hóa X 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 PRED
sẽ đƣợc cộng vào D’n để tạo ra uF’n rồi sau đó đƣợc lọc để tạo ra các khối đƣợc giải
mã F’n
Trang 3625
CHƯƠNG 2 DỰ ĐOÁN LIÊN ẢNH
Chương này sẽ giới thiệu về quá trình tiên đoán ảnh đặc biệt là quá trình tiên đoán liên ảnh trong đó có quá trình ước lượng chuyển động
2.1 Giới thiệu về quá trình dự đoán ảnh
Hiệu suất nén của H.265/HEVC tốt hơn các chuẩn nén trước do hiệu quả của các phương thức dự đoán 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 Hiệu quả và độ chính xác của quá trình dự đoán này có ảnh hưởng quan trọng đến hiệu suất nén Một dự đoán chính xác cho phần dư chứa rất ít dữ liệu và có hiệu suất nén tốt
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
Trang 37độ 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]
Trang 3827
Hình 2-2: 33 hướng dự đoán trong ảnh
Với thành phần màu của khối PU được dự đoán trong ảnh, bộ mã hóa sẽ lựa chọn chế độ dự đoán tốt nhất trong số 5 chế sau: Planar, DC, phương ngang, phương dọc và một chế độ dự đoán được chọn làm chế độ dự đoán tốt nhất cho thành phần độ chói Bảng liên hệ giữa hướng dự đoán đoán trong ảnh và chế độ tương ứng cho thành phần màu được thể hiện trên Bảng 2-1 [6]
Bảng 2-1: Mối liên hệ giữa hướng dự đoán trong ảnh và chế độ tương ứng của
Khi số lượng chế độ dự đoán trong ảnh cho thành phần màu bằng 4, hướng
dự đoán của thành phần độ chói sẽ được sử dụng cho việc tạo mẫu dự đoán trong ảnh cho thành phần màu Khi số lượng chế độ dự đoán trong cho thành phần màu