Gần đây nhất là sự thành công của tiêu chuẩn mã hóa MPEG-4 H.264/AVC đã được áp dụng trong nhiều lĩnh vực từ truyền luồng internet tốc độ bit thấp đến các ứng dụng quảng bá HDTV và cinem
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN QUỐC VIỆT
THUẬT TOÁN TÌM KIẾM NHANH KHỐI TIÊN ĐOÁN TRONG ẢNH BỘ
MÃ HÓA H.265/HEVC
LUẬN VĂN THẠC SỸ KỸ THUẬT CHUYÊN NGHÀNH KỸ THUẬT ĐIỆN TỬ
Hà Nội, 10-2014
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN QUỐC VIỆT
THUẬT TOÁN TÌM KIẾM NHANH KHỐI TIÊN ĐOÁN TRONG ẢNH BỘ
MÃ HÓA H.265/HEVC
Chuyên nghành: Kỹ thuật điện tử
LUẬN VĂN THẠC SỸ KỸ THUẬT
Người hướng dẫn khoa học:
TS NGUYỄN VŨ THẮNG
Hà Nội, 10-2014
Trang 3Nguyễn Quốc Việt iii
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “ Thuật toán tìm kiếm nhanh khối tiên đoán trong ảnh bộ mã hóa H.265/HEVC” là công trình nghiên cứu của riêng tôi
Các số liệu và kết quả nghiên cứu trong luận văn này là trung thực và chưa từng công bố trong bất kỳ công trình nào khác
Hà nội, ngày 15 tháng 9 năm 2014
Tác giả luận văn
Nguyễn Quốc Việt
Trang 4Nguyễn Quốc Việt iv
LỜI NÓI ĐẦU
iện nay, chúng ta đang sống trong một “kỷ nguyên truyền thông đa phương
tiện” các thiết bị mới, các kỹ thuật mới lần lượt ra đời nhằm mục đích đáp
ứng nhu cầu giải trí cho con người ngày một tốt hơn Các ứng dụng đa phương tiện thời gian thực truyền trên mạng di động, mạng Internet, mạng truyền hình…ngày càng phát triển rầm rộ, các nhà sản xuất thiết bị chú trọng áp dụng các công nghệ nén tiên tiến vào thiết bị của mình nhằm thỏa mãn nhu cầu “chất lượng trung thực
về âm thanh, hình ảnh” của con người cũng như khả năng đáp ứng yêu cầu thực tế của công nghệ Thế nhưng không phải nhu cầu nào của chúng ta cũng có thể được đáp ứng một cách thuận lợi, vì sự gắn liền giữa độ phức tạp, tốn kém chi phí đầu tư
cơ sở hạ tầng, thiết bị đầu cuối…, luôn đi kèm với công nghệ cao Bên cạnh đó vấn
đề truyền thông nội dung đa phương tiện hiện nay đang gặp một số khó khăn: băng
thông đường truyền, nhiễu kênh, giới hạn của pin cho các ứng dụng… Trong khi
băng thông kênh truyền phải chờ đợi một công nghệ mới của tương lai mới có thể cải thiện, còn việc cải thiện giới hạn của pin dường như không đáp ứng được sự phát triển của các dịch vụ trong tương lai, thì phương pháp giảm kích thước dữ liệu bằng các kỹ thuật nén là một cách giải quyết hiệu quả các khó khăn trên
Cho đến nay có rất nhiều kỹ thuật nén dữ liệu đa phương tiện như: chuẩn
JPEG, chuẩn JPEG2000, chuẩn MPEG…đã ra đời trong lịch sử số hóa của loài
người Gần đây nhất là sự thành công của tiêu chuẩn mã hóa MPEG-4 H.264/AVC
đã được áp dụng trong nhiều lĩnh vực từ truyền luồng internet tốc độ bit thấp đến các ứng dụng quảng bá HDTV và cinema số, truyền thông video qua mạng internet, truyền hình di dộng theo chuẩn DVB-H, truyền hình số mặt đất, truyền hình theo yêu cầu, tin nhắn đa phương tiện MMS… qua các mạng ISDN, DSL, Wireless, LAN và vệ tinh…Nhưng với yêu cầu bộ mã hóa có thể tương thích với các ứng dụng tốc độ bit thấp, mà lại cho chất lượng video ngày càng cao thì nghành công nghiệp số hóa không thể dừng lại ở H.264/AVC Từ việc nghiên cứu khắc phục nhược điểm và phát triển bổ sung cho H.264/AVC để cho ra đời những chuẩn nén tiên tiến hơn, mà nổi bật là H.265/HEVC Đây là một định dạng nén kế thừa H.264 /AVC được phát triển bởi một nhóm kết hợp từ 2 tổ chức ISO/IEC Moving Picture Experts Group(MPEG) và iTU-T Video Coding Experts Group (VCEG) HEVC có
H
Trang 5Nguyễn Quốc Việt v
tỷ lệ nén dữ liệu gấp đôi so với H.264/MPEG-4/AVC ở cùng một mức độ chất lượng video Nói cách khác nó có thể được sử dụng để cung cấp chất lượng hình ảnh được cải thiện đáng kể tại cùng một tốc độ bit Hỗ trợ tới 8k Utral HD và độ phân giải lên đến 8192×4320 (4320P)
Nhờ đó, chúng ta không phải trả quá nhiều tiền cho việc xem phim với kết nối 3G/4G mà vẫn thưởng thức được video chất lượng cao, thời gian tải nội dung cũng giảm đi Video độ phân giải 4K Ultra-HD cũng vì thế mà trở nên phổ biến hơn, miễn là hạ tầng mạng có thể đáp ứng được băng thông trong khoảng 20-30Mbps (vẫn còn cao hơn nhiều so với băng thông mạng hiện nay, nhưng hoàn toàn
có thể trong tương lai)
ITU cho biết thêm rằng một số đối tác hiện đang bắt đầu nghiên cứu việc tích hợp H.265, bao gồm ATEME, Broadcom, Cyberlink, Ericsson, Fraunhofer HHI, Mitsubishi và NHK Codec H.265/HEVC bao gồm ba cấu hình chính: Main (hỗ trợ video 8-bit 4:2:0), Main 10 (hỗ trợ video 10 bit) và Main Still Picture (dành cho việc nén ảnh tĩnh, dùng chung công cụ với quá trình nén video) Trong thời gian tới, ITU và một số bên có liên quan sẽ tiếp tục phát triển các bản mở rộng cho H.265, bao gồm khả năng hỗ trợ video 12-bit cũng như các định dạng màu cao cấp 4:2:2, 4:4:4 Phim 3D stereoscopic cũng nằm trong danh sách nghiên cứu để bổ sung cho H.265/HEVC Có khả năng phần mềm giải mã/mã hóa cho H.265 sẽ xuất hiện vào cuối năm 2014, tuy nhiên chỉ khi nào các nhà sản xuất tích hợp bộ chuyển mã vào trong chip thì H.265 mới bắt đầu "cất cánh" (thường giai đoạn này mất từ 12 đến 18 tháng, có thể dài hơn)
Chính vì những ưu điểm đó mà H.265/HEVCsẽ dần chứng tỏ vị thế số 1 của mình (điều tường tự đã đến với H.264/AVC), những ưu việt mà chuẩn nén này mang lại chắc chắn sẽ có ảnh hưởng tích cực đến thị trường phim ảnh, ứng dụng số hóa cũng như ngành công nghiệp chế tạo thiết bị đầu cuối Để có thể hiểu biết hơn
về tiêu chuẩn nén tiên tiến này, em đã chọn đề tài “Thuật toán tím kiếm nhanh
khối tiên đoán trong ảnh bộ mã hóa H.265/HEVC” làm luận văn tốt nghiệp của
mình Sau hơn 6 tháng nỗ lực hết mình, về cơ bản luận văn cũng đã cho ta cái nhìn tổng quát về chuẩn nén H.265/HEVC, đồng thời em đã đưa ra được cải tiến về kỹ thuật nén trong ảnh trong H.265/HEVC Tuy nhiên do có sự hạn chế về kinh
Trang 6Nguyễn Quốc Việt vi
nghiệm, thời gian,…nên sẽ không tránh khỏi sai sót, kính mong Quý Thầy Cô, đồng nghiệp tham khảo, đóng góp ý kiến
Em xin chân thành cảm ơn TS Nguyễn Vũ Thắng đã hướng dẫn tận tình và
cung cấp tài liệu bổ ích trong quá trình làm luận văn, cảm ơn các bạn bè trong nhóm làm việc đã quan tâm, chia sẻ, đóng góp ý kiến
Kính chúc quý thầy cô và bạn bè được nhiều sức khỏe!
Trang 7Nguyễn Quốc Việt vii
và qua giải thuật được đề xuất, khối tiên đoán Intra giảm số block cần dự đoán Qua
đó giảm được khối lượng tính toán và thời gian thực hiện Cuối cùng em đưa ra các kết quả và tổng hợp của thuật toán
Trang 8Nguyễn Quốc Việt viii
MỤC LỤC
LỜI CAM ĐOAN iii
LỜI NÓI ĐẦU iv
TÓM TẮT ĐỀ TÀI vii
MỤC LỤC viii
DANH SÁCH HÌNH VẼ x
DANH SÁCH BẢNG BIỂU xii
DANH SÁCH CÁC TỪ VIẾT TẮT xiii
LỜI MỞ ĐẦU 1
Chương 1 BỘ MÃ HÓA/ GIẢI MÃ VIDEO CHUẨN H.265/HEVC 3
1.1 Giới thiệu về nén ảnh, các chuẩn nén 3
1.2 Giới thiệu chuẩn nén H.265/HEVC 7
1.3 Lịch sử phát triển của chuẩn nén H.265/HEVC 8
1.4 Bộ mã hóa video chuẩn HEVC 10
1.4.1 Dự đoán 12
1.4.2 Biến đổi và lượng tử hóa 13
1.4.3 Sắp xếp lại 13
1.5 Bộ giải mã video chuẩn HEVC 14
Chương 2 MÔ TẢ CHI TIẾT VỀ BỘ MÃ HÓA TRONG HEVC 15
2.1 Phân vùng hình ảnh 15
2.1.1 Phân vùng khối cây mã hóa 15
2.1.2 Cấu trúc phân đoạn theo dải 15
2.1.3 Khối mã hóa (CU) 17
2.1.4 Cấu trúc cây mã hóa 17
2.1.5 Cấu trúc khối dự đoán (PU) 18
2.1.6 Khối chuyển đổi (TU) và cấu trúc cây chuyển đổi 19
2.2 Dự đoán trong ảnh 20
2.2.1 Các chế độ dự đoán 20
2.2.2 Bộ lọc cho các mẫu lân cận 22
2.3 Dự đoán liên ảnh 22
2.3.1 Các chế độ dự đoán 22
2.3.2 Lựa chọn các ứng viên cho chế độ kết hợp 23
2.3.3 Các ứng viên kết hợp theo thời gian 25
2.3.4 Các ứng viên kết hợp được tạo ra 27
Trang 9Nguyễn Quốc Việt ix
2.4 Dự đoán vector chuyển động 27
2.4.1 Lựa chọn các vector ứng viên 28
2.4.2 Các vector ứng viên theo không gian 29
2.5 Lọc nội suy 30
2.6 Bộ lọc vòng 32
2.6.1 Bộ lọc xóa khối 32
2.6.2 Xác định đường biên 33
2.6.3 Tính toán mức độ viền 33
2.6.4 Lựa chọn β và tc 35
2.7 Bù mẫu theo ngữ cảnh (SAO) 35
Chương 3 PHÂN TÍCH DỮ LIỆU CHUYỂN ĐỘNG SAU QUÁ TRÌNH TIÊN ĐOÁN 38 3.1 Phần mềm tham chiếu H.265/HEVC 38
3.1.1 Giới thiệu về bộ mã hóa và giải mã HM 38
3.1.2 Định dạng video đầu vào 40
3.1.3 Hướng dẫn sử dụng phần mềm HM9-1: 40
3.2 Thực hiện dự đoán trong phần mềm HM9.1 42
3.2.1 Tính toán sai lệnh 42
3.2.2 Quyết định mã hóa liên ảnh và trong ảnh 44
3.2.3 Ước lượng chuyển động và bù chuyển động 46
3.3 Phân tích đặc tính các mode 48
3.3.1 Đề xuất giải thuật chọn mode nhanh 52
Chương 4 TRIỂN KHAI CÁC THUẬT TOÁN ĐÃ ĐỀ XUẤT 54
4.1 Triển khai thuật toán tìm kiếm nhanh dựa vào phân tích mật độ phân bổ mode tốt nhất 54
4.2 Kết quả thực nghiệm 55
4.3 Tổng kết 56
KẾT LUẬN 58
TÀI LIỆU THAM KHẢO 59
BẢNG ĐỐI CHIẾU THUẬT NGỮ VIỆT – ANH 62
Trang 10Nguyễn Quốc Việt x
DANH SÁCH 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 HEVC 11
Hình 1-2 quét zigzac a: quét khung b: quét trường 13
Hình 1-3Sơ đồ khối chức năng tổng quát bộ giải mã video chuẩn HEVC 14
Hình 2-1Ví dụ về chia hình ảnh thành các khối cây mã hóa 15
Hình 2-2 Ví dụ về lớp phân đoạn và dải phân đoạn 17
Hình 2-3 Ví dụ về cấu trúc cây mã hóa 18
Hình 2-4 Các chế độ phân vùng trong khối PU mã hóa liên ảnh 19
Hình 2-5 Ví dụ về cấu trúc cây chuyển đổi trong khối CU 19
Hình 2-6 33 hướng dự đoán trong ảnh 20
Hình 2-7 Liên hệ giữa hướng dự đoán trong ảnh và chế độ tương ứng của thành phần độ chói 21
Hình 2-8 Quá trình lựa chọn ứng viên cho chế độ kết hợp 23
Hình 2-9 Các vị trí cho ứng viên kết hợp theo không gian 24
Hình 2-10 Vị trí ứng viên cho khối PU thứ hai dạng Nx2N và 2NxN 25
Hình 2-11 Minh họa cho việc lấy tỉ lệ vector chuyển động cho tìm kiếm ứng viên kết hợp theo thời gian 26
Hình 2-12 Vị trí ứng viên kết hợp theo thời gian, C3 và H 26
Hình 2-13 Ví dụ về ứng viên kết hợp được tổ hợp từ hai chiều 27
Hình 2-14 Quá trình lựa chọn các vector ứng viên 28
Hình 2-15 Minh họa việc lấy tỉ lệ cho vector ứng viên theo không gian 30
Hình 2-16 Nội suy các điểm ảnh phụ cho thành phần độ chói 31
Hình 2-17 Quá trình xử lý lọc xóa khối 33
Hình 2-18 Xác định giá trị Bs 34
Hình 2-19 4 mảng 3x3 để phân loại điểm ảnh trong kiểu bù viền 37
Hình 3-1Các tập tin trong phần mềm HM-9.1 38
Hình 3-2Xử lý mã hóa video trong HM-9.1 39
Hình 3-3 Thứ tự quét điểm ảnh với video tỉ lệ 4:2:0 40
Hình 3-4 Cửa sổ lệnh trong quá trình mã hóa 41
Hình 3-5 Luồng xử lý dự đoán 42
Hình 3-6 Tính toán RDO 43
Trang 11Nguyễn Quốc Việt xi
Hình 3-7 Lựa chọn chế độ dự đoán liên ảnh và trong ảnh của hàm xCompressCU 45
Hình 3-8 Ước lượng chuyển động và bù chuyển động 46
Hình 3-9 Quá trình ước lượng chuyển động 47
Hình 3-10 Đầu vào và đầu ra của quá trình ước lượng chuyển động 47
Hình 3-11 Mật đổ phân bổ mode tiên đoán với video mẫu BasketballPass 48
Hình 3-12 Mật độ phân bổ mode tiên đoán với video mẫu BlowingBubbles 48
Hình 3-13 Mật độ phân bổ mode tiên đoán với video mẫu BQMall 49
Hình 3-14 Mật độ phân bổ mode tiên đoán với video mẫu BQSquare 49
Hình 3-15 Mật độ phân bổ mode tiên đoán với video mẫu Kimono1 50
Hình 3-16 Mật độ phân bổ mode tiên đoán với video mẫu PartyScene 50
Hình 3-17 Mật độ phân bổ mode tiên đoán với video mẫu PeopleOnStreet 51
Hình 3-18 Mật độ phân bổ mode tiên đoán với video mẫu RaceHorses 51
Hình 3-19 Mật độ phân bổ mode tiên đoán trung bình của các video mẫu 52
Hình 3-20 Giải thuật tìm kiếm nhanh 53
Trang 12Nguyễn Quốc Việt xii
DANH SÁCH BẢNG BIỂU
Bảng 2.1 Độ sâu lớn nhất của cấu trúc cây chuyển đổi 19
Bảng 2.2 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 21
Bảng 2.3 Mô tả ngưỡng cho phép cho các khối chuyển đổi có kích thước khác nhau 22
Bảng 2.4 Hệ số lọc cho thành phần độ chói 31
Bảng 2.5 Hệ số bộ lọc 4 điểm cho thành phần màu 31
Bảng 2.6 Lựa chọn giá trị ngưỡng β và tc từ giá trị Q 35
Bảng 2.7 Các chế độ bù mẫu theo ngữ cảnh 36
Bảng 2.8 Quy tắc phân loại điểm ảnh kiểu bù viền 37
Bảng 3.1 Cấu trúc các thư mục trong phần mềm HM-9.1 40
Trang 13Nguyễn Quốc Việt xiii
DANH SÁCH CÁC TỪ VIẾT TẮT
ITU-T International Telecommunication Union Telecommunication
Standardization Sector MPEG Moving Picture Experts Group
IP Intellectual Property
I, P, B Intra, Prediction, Bi-prediction
LCU Largest Coding Unit
CTB Coding Tree Block
CU Coding Unit
PU Prediciton Unit
TU Transform Unit
SAO Sample Adaptive Offset
PSNR Peak signal to noise ratio
POC Picture Of Counter
CBF Coded Block Flag
RDO Rate Distortion Optimization
SAD Sum of Absolute Difference
SATD Hamadard transformed SAD
SSE Sum of Square Error
ME Motion estimation
Trang 14Nguyễn Quốc Việt 1
LỜI MỞ ĐẦU
Multimedia và các ứng dụng của nó đã đang phát triển hết sức mạnh mẽ trên hầu hết các lĩnh vực Trong các ứng dụng của Multimedia thì Video chiếm vai trò lớn trong ngành công nghiệp giải trí Tuy nhiên, dữ liệu video không nén (video thô) thường chiếm dung lượng rất lớn (xấp xỉ 216 Mbits cho mỗi giây video không nén chuẩn NTSC 30 fps độ phân giải 720x 480 điểm ảnh) Với sự phát triển của khoa học kỹ thuật, ngày nay đã sản xuất được bộ cảm biến màu có độ phân giải lên đến 16 triệu pixel tương đương với một bức ảnh có độ phân giải 4096x4096 pixels Ứng dụng cần độ phân giải cao nhất đang được sử dụng thông dụng hiện nay là full
HD 1920x1080 pixel Một số sản phẩm tiêu dùng hiện đại mới nhất với độ phân giải Ultra HD đã dùng đến công nghệ 4K với một trong hai độ phân giải độ nét cao:
3840 x 2160 pixel hoặc 4096 x 2160 pixel nhưng cũng tùy vào các thời điểm và lĩnh vực, chẳng hạn như trong môi trường chuyên nghiệp hoặc thương mại là 4K x 2K, Quad High Definition, hoặc 2160p Độ phân giải 4K hiện đang được sử dụng ngày càng nhiều trong các máy quay phim điện ảnh kỹ thuật số thương mại sử dụng tùy chọn độ phân giải 4096 x 2160 điểm ảnh, nhiều hơn và nhiều hơn nữa các bộ phim điện ảnh đang quay hoặc sử dụng bản master với định dạng 4K, hoặc upscaled từ 2K (1998x1080 tỉ lệ khung hình 1.85:1 hoặc 2048 x 858 tỉ lệ khung hình 2.35:1) Với tất cả các điều trên, một tín hiệu video số ngày càng chứa một lượng lớn dữ liệu, do đó sẽ gặp rất nhiều khó khăn trong việc lưu trữ và truyền đi trong một băng thông kênh truyền hạn chế Vì thế nén video đã trở thành phần không thể thiếu cho lưu trữ và truyền phát video số Có nhiều chuẩn nén video khác nhau, trong đó chuẩn nén được sử dụng rộng rãi hiện nay là chuẩn MPEG – 2 Chuẩn MPEG – 2 đã
ra đời từ khá lâu và đã tới lúc cần phải có các chuẩn mới khác có thể đem lại hiệu suất nén cao hơn, mềm dẻo hơn để thích hợp với nhiều dịch vụ hơn Phổ biến nhất hiện nay là H.264 - một chuẩn nén video mới ra đời năm 2003, hiện đang phát triển mạnh và sẽ được ứng dụng rộng rãi trong thời gian vài năm tới Kế thừa những kết quả đã đạt được từ H.264, chuẩn nén HEVC bắt đầu được đưa vào nghiên cứu từ năm 2010 với mong muốn thu được kết quả nén còn cao hơn nhiều lần so với H.264
Bộ mã hóa/ giải mã video chuẩn HEVC đem lại nhiều cải tiến về chất lượng
và hiệu quả nén Với mỗi khối xử lý của H.265 đều được tăng thêm khả năng xử lý
Trang 15Nguyễn Quốc Việt 2
mềm dẻo linh hoạt hơn so với H.264 do đó có thể tăng hiệu quả nén lên tới 50% so với H.264 nhưng tăng khối lượng tính toán lên gấp nhiều lần Điều này không phù hợp cho việc triển khai với các ứng dụng có tài nguyên hữu hạn và các ứng dụng liên quan tới thời gian thực Trong số các khối xử lý của HEVC, khối tiên đoán là khối chiếm tới 80% khối lượng tính toán trong toàn bộ quá trình mã hóa video cũng
là khối chủ đạo giúp cho H265 tăng khả năng nén lên gấp nhiều lần so với các chuẩn nén video trước đây Lợi dụng những tính chất chung của ảnh, để giảm khối lượng tính toán nhưng vẫn giữ nguyên được hiệu quả nén trong khối tiên đoán là một trong những xu hướng chủ đạo trong việc cải tiến khối tiên đoán Để giúp cho việc cải tiến khối tiên đoán, em sử dụng phần mềm mã hóa và giải mã video chuẩn H265 do ITU – T cung cấp để trích xuất thông tin và sử dụng ngôn ngữ lập trình C++ để phân tích dữ liệu và xây dựng thuật toán Sau đó em sử dụng các vector chuyển động để triển khai thuật toán giúp giảm khối lượng tính toán
Nội dung các chương như sau:
Chương 1: Giới thiệu chung về bộ mã hóa và giải mã chuẩn H.265/HEVC
Chương 2: Mô tả chi tiết về bộ mã hóa chuẩn H.265/HEVC
Chương 3: Giới thiệu phần mềm HM 9.1, cách trích xuất thông tin sau quá trình tiên đoán, phân tích thông tin chuyển động và đưa ra cách tiên đoán vector chuyển động
Chương 4: Thuật toán tìm kiếm nhanh dựa vào vector chuyển động tiên đoán được và kết quả
Trang 16Nguyễn Quốc Việt 3
Chương 1 BỘ MÃ HÓA/ GIẢI MÃ VIDEO CHUẨN
H.265/HEVC
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 HEVC cũng như bộ mã hóa/giải mã video chuẩn HEVC
1.1 Giới thiệu về nén ảnh, các chuẩn nén
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à nén liên ảnh (giảm thiểu dư thừa về mặt thời gian) 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 (viba, vệ tinh, ), hữu tuyến (cáp quang, cáp đồng, )
Có 2 loại nén được sử dụng nén video là nén có tổn hao và nén không tổn hao Nén tổn hao là loại nén không mất không tin, cho phép phục hồi lại dữ liệu giống như dữ liệu ban đầu sau khi qua bộ giải mã Chuẩn nén đặc trưng cho loại nén này là JPEG-LS với hệ số nén đạt được là 3-4 lần Ngược lại với nén không tổn hao
là nén có tổn hao, loại nén này dựa trên nguyên lý là hầu hết dữ liệu trong video trước khi nén là không cần thiết do đó có thể tinh giảm những loại dữ liệu đó đi mà vẫn có thể giữ được chất lượng tốt Trong đó, dữ liệu không cần thiết này được tập trung vào phần dư thừa không gian và thời gian Các chuẩn nén MPEG-2 Video, MPEG-4 Visual, H.263, H.264, là loại nén có tổn hao 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à hầu hết dữ liệu trong video trước khi nén là không cần thiết do đó có thể tinh giảm những loại dữ liệu đó đi mà vẫn có thể giữ được chất lượng tốt 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
Trang 17Nguyễn Quốc Việt 4
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à khối mã hóa lớn nhất Các khối mã hóa lớn nhất được
so sánh giữa một khung hình với khung hình kế tiếp của nó và bộ mã hóa video sẽ chỉ gửi đi sự khác biệt giữa các khối mã hóa lớn nhất này và vị trí khối mã hóa lớn nhất tương ứ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
Nguyên lý nén video
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 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 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
Một số chuẩn nén đã được công bố
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 đó
Trang 18Nguyễn Quốc Việt 5
đề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 16x 16, bù chuyển động theo khối, biến đổi Cosine rời rạc theo khối kích thước 8x 8, 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à 352x 288 đ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 2 chiều và nửa điểm ảnh (half – pel) 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/AVC): 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,
Trang 19Nguyễn Quốc Việt 6
và gần đây đã đượ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…
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
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 khối mã hóa lớn nhất 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 khối mã hóa lớn nhất 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 (Previous coded picture)
Ảnh P có thể chứa cả khối mã hóa lớn nhất 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à khối mã hóa lớn nhất 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
Dữ liệu đưa ra là dữ liệu sai khác giữa block của khung hiện tại và block được chọn của khung tiên đoán và vector chuyển động để chỉ ra
vị trí của block tiên đoán
Có thể tham chiếu các khung hình trước đó theo thứ tự mã hóa
Trang 20Nguyễn Quốc Việt 7
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ả khối mã hóa lớn nhất mã hóa trong hình (Intra – LCU), khối mã hóa lớn nhất 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à khối mã hóa lớn nhất dự đoán từ cả khung đã được mã hóa trước và sau khung hiển thị 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 block của khung hiện tại và block được chọn của khung tiên đoán và vector chuyển động để chỉ ra
vị trí của block tiên đ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
1.2 Giới thiệu chuẩn nén 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 2 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)
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
Trang 21Nguyễn Quốc Việt 8
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 đó:
Cấu trúc khối mã hóa linh động Trong khi H.264 định nghĩa khối mã hóa Macroblock có kích thước cố định là 16x16, HEVC cho phép kích thước mã hóa thay đổi trong khoảng từ 64x64 tới 8x8 pixel2sử dụng phương pháp đệ quy chia một khối vuông thành 4 khối vuông bằng nhau có diện tích bằng ¼ diện tích khối ban đầu
Áp dụng phương pháp mã hóa và giải mã dữ liệu song song, bên cạnh việc xử lý theo dải (slices), HEVC còn áp dụng xử lý theo lớp (tiles)
và xử lý dạng sóng song
Đưa thêm nhiều chế độ dự đoán trong ảnh hơn (tất cả có 35 chế độ, phần lớn trong các chế độ là dự đoán có hướng) có thể được thực hiện với hầu hết các kích thước khối mã hóa vuông
Hỗ trợ một vài phép chuyển đổi nguyên, thay đổi kích thước trong khoảng 4x4 tới 32x32
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, bao gồm bộ lọc xóa khối, bù mẫu theo ngữ cảnh
1.3 Lịch sử phát triển của chuẩn nén H.265/HEVC
Trong năm 2012
29/2/2012, tại Đại hội di động thế giới 2012, Qualcomm trình diễn một
bộ giải mã hevc chạy trên một máy tính bẳng Android, với một Qualcomm Snapdragon xử lý lõi kép S4 tốc độ 1,5 GHz
22/8/2012, Ericsson thông báo rằng bộ mã hóa HEVC đầu tiên của thế giới, Ericsson SVP 5500 Các Ericsson SVP 5500 HEVC mã hóa được thiết kế để mã hóa thời gian thực của video để giao cho các thiết bị di động
02/09/2012 Vanguard Software Solutions (VSS) đã công bố phần mềm
mã hóa HEVC chạy ở 1080p30 (1920x1080, 30fps) trên một bộ xử lý Intel Xeon duy nhất Bộ mã hóa này đã được chứng minh tại IBC 2012
Trang 22Nguyễn Quốc Việt 9
06/9/2012, Tổng công ty Rovi thông báo rằng một Main Concept SDK cho HEVC sẽ được phát hành vào đầu năm 2013 ngay sau khi HEVC được chính thức phê chuẩn Các HEVC MainConcept SDK bao gồm một
bộ giải mã, mã hóa, và đa vận chuyển cho Microsoft Windows , Mac OS , Linux , iOS , và Android
9/9/2012, ATEME chứng minh tại triển lãm thương mại một bộ mã hóa HEVC với độ phân giải 3840×2160p ở 60fps
Trong năm 2013
07/01/2013, ViXS System thông báo rằng họ sẽ giới thiệu các phần cứng SoC có khả năng chuyển mã video tới Main 10 của HEVC tại CES 2013 Cùng ngày Tổng công ty Rovi thông báo rằng sau khi tiêu chuẩn HEVC được phát hành rằng họ có kế hoạch hỗ trợ thêm cho HEVC SDK MainConcept
08/01/2013, Broadcom công bố BCM7445 là một Ultra HD con chip giải
mã có khả năng giải mã HEVC lên tới 4096x2160p ở 60 fps
08/01/2013, Vanguard công bố sự sẵn có của V.265, một phần mềm mã hóa chuyên nghiệp HEVC có khả năng hiệu suất thời gian thực
4/2/2013, NTT DoCoMo công bố rằng bắt đầu từ tháng 3 sẽ bắt đầu cấp giấy phép thực hiện các phần mềm giải mã HEVC Trong một tài liệu JCT-VC NTT Docomo cho thấy bộ giải mã phần mềm HEVC của họ có thể giải mã 3840
04/02/2013, NTT DoCoMo công bố rằng bắt đầu từ tháng ba sẽ bắt đầu cấp giấy phép thực hiện các phần mềm giải mã HEVC Trong một tài liệu của JCT-VC NTT DoCoMo cho thấy bộ giải mã phần mềm HEVC của
Trang 23Nguyễn Quốc Việt 10
04/06/2013, Tổng công ty Rovi phát hành MainConcept HEVC SDK 1.0
08/08/2013, Nippon Telegraph and Telephone bố việc phát hành
HEVC-1000 mã hóa phần mềm SDK của họ hỗ trợ Main 10, độ phân giải lên đến 7680x4320, và tỷ lệ khung hình lên đến 120 fps
21/08/2013, Microsoft phát hành một DirectX Video Acceleration (DXVA) cho HEVC hỗ trợ hồ sơ cá nhân chính DXVA 2.0 ứng dụng cho các hoạt động: phân tích bitstream, deblocking, nghịch đảo lượng tử
mở rộng quy mô, nghịch đảo chế biến, và bồi thường chuyển động
11/09/2013, ViXS System công bố XCode 6400 SoC hỗ trợ độ phân giải 4K 60 fps, Main 10 của HEVC
Từ ngày 12-17/2013 Chương trình IBC tại Amsterdam, HEVC là một chủ
18/12/2013, ViXS System thông báo lô hàng của họ XCode 6400 SoC là SoC đầu tiên hỗ trợ Main 10 của HEVC
Trong năm 2014
15/01/2014, oViCs công bố VIC-1 HEVC bộ giải mã hỗ trợ Main 10 lên đến 4K với tốc độ khung hình 120 fps
1.4 Bộ mã hóa video chuẩn HEVC
Giống như các chuẩn nén video trước đó, chuẩn HEVC 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 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 Ngoại trừ khối Bù mẫu theo ngữ cảnh, 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, hay khối Bộ lọc xóa khối đều đã xuất hiện trong các chuẩn ra đời trước đó (MPEG – 1, MPEG – 2, MPEG – 4,
Trang 24Nguyễn Quốc Việt 11
H.261, H.263, H.264) tuy nhiên sự thay đổi quan trọng của HEVC nằm trong chi tiết của các khối chức năng đó
Hình 1-1 Sơ đồ khối chức năng tổng quát bộ mã hóa video chuẩn HEVC
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 ngoài ảnh cho từng khối trong khối mã hóa đó 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.2), 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 vẽ, ả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 25Nguyễn Quốc Việt 12
đưa qua lớp trừu tượng mạng NAL (Network Abstraction Layer) để phát đi hoặc lưu trữ
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 Các hệ số X được giãn (Q-1) và biến đổi ngược (T-1) để tạo ra khối dư thừa (residual) D’n Khối dự đoán PRED sẽ được cộng vào D’n để tạo khối tái tạo
uF’n (khối đã giải mã của khối gốc ban đầu và chưa được lọc) Một bộ lọc sẽ được dùng để giảm các hiệu ứng của nhiễu khối và ảnh tham chiếu đã tái tạo sẽ được tạo
từ một loạt các khối F’n
1.4.1 Dự đoán
Quá trình dự đoán chiếm một lượng tính toán lớn trong toàn bộ phần mã hóa của H.265 Quá trình này làm giảm đi một lượng đáng kể thông tin dư thừa cả về thời gian lẫn không gian giữa các chuỗi ảnh của video Lý thuyết chung của quá trình này là tính toán ra được một khối gọi là tiên đoán, sau đó lấy hiện giữa khối này và khối hiện tại để mã hóa và truyền đi Nếu sai số giữa khối tiên đoán và khối hiện tại càng nhỏ tức là dự đoán càng tốt, làm tăng hiệu quả quá trình nén
Có 2 loại dự đoán: dự đoán trong ảnh và dự đoán liên ảnh tương ứng với việc làm giảm thông tin dư thừa về mặt không gian và thời gian
Dự đoán trong ảnh: Quá trình dự đoán trong ảnh chỉ thực hiện trong một khung hình, với việc sử dụng phép toán nội suy từ các khối mã hóa liền kề Các khối này có kích thước từ 4x4 lên tới 32x32 Khối dự đoán trong ảnh của H.265 được cải tiến với việc đưa thêm các chế độ
dự đoán (35 chế độ dự đoán trong ảnh)
Dự đoán liên ảnh: Quá trình dự đoán liên ảnh nhằm giảm thông tin dư thừa về mặt thời gian Nhìn chung, quá trình dự đoán liên ảnh của H.265 được đánh giá là linh hoạt hơn rất nhiều so với H.264, với các
PU có kích thước từ 4x4 lên tới 64x64 (PU đối xứng và phi đối xứng) Ngoài ra quá trình này còn hỗ trợ chế độ gộp và chế độ bỏ qua nhằm tăng hiệu quả nén Quá trình dự đoán liên ảnh được thực hiện như sau: Đầu tiên, PU của khung hiện tại được đem ra so sánh với PU của
Trang 26Nguyễn Quốc Việt 13
khung tham chiếu và chọn ra PU “giống” nhất với PU của khung hiện tại, việc tìm ra PU giống nhất dựa trên quá trình tính RDO nhỏ nhất 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, PU phù hợp và kích cỡ của PU phù hợp Quá trình này chiếm thời gian lớn trong toàn
bộ quá trình mã hóa Chính vì vậy, việc tối ưu thuật toán nhằm cải thiện dự lượng tính toán đoán liên ảnh sẽ giảm một lượng đáng kể thời gian mã hóa của H.265
1.4.2 Biến đổi và lượng tử hóa
Khối biến đổi của H.265 cũng có cấu trúc tương tự như các chuẩn mã hóa video trước đó Trong đó các khối TU là đơn vị để mã hóa phần dư dự đoán có kích thước từ 4x4 đến 32x32 Có 2 loại biến đổi là biến đổi trung tâm và biến đổi luân phiên phụ thuộc chế độ (mode).Trong đó biến đổi trung tâm sử dụng phép biến đổi cosin rời rạc DCT Phép biến đổi luân phiên phụ thuộc chế độ sử dụng phép biến đổi sin rời rạc DST thay thế DCT cho TU có kích thước 4x4
Phép lượng tử hóa của H.265 sử dụng cấu trúc URQ được điều khiển bởi tham số lượng tử QP.Tham số lượng tử này có giá trị từ 0 tới 51
1.4.3 Sắp xếp lại
Dữ liệu sau khi biến đổi lượng tử hóa chứa rất ít các hệ số khác 0 Quá trình sắp xếp lại cho các hệ số bằng 0 thành một nhóm và các hệ số khác 0 một nhóm để thực hiện mã hóa entropy, thực hiện quét zigzac H.265 hỗ trợ thực hiện hai hình dạng quét zigzac: quét theo phương ngang (frame) và phương thẳng đứng (field)
Hình 1-2 quét zigzac a: quét khung b: quét trường
Trang 27Nguyễn Quốc Việt 14
1.5 Bộ giải mã video chuẩn HEVC
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.2 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ã
Hình 1-3Sơ đồ khối chức năng tổng quát bộ giải mã video chuẩn HEVC
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 từng khối đã giải mã F’n
Trang 28Nguyễn Quốc Việt 15
Chương 2 MÔ TẢ CHI TIẾT VỀ BỘ MÃ HÓA TRONG
HEVC
Chương này giới thiệu về tên gọi các khối phục vụ trong quá trình xử lý chuẩn nén HEVC và đi sâu vào chi tiết các bước thực hiện mã hóa của chuẩn này, gồm có dự đoán liên ảnh hoặc trong ảnh, chuyển đổi, lượng tử hóa và mã hóa entropy
2.1 Phân vùng hình ảnh
2.1.1 Phân vùng khối cây mã hóa
Các hình ảnh sẽ được chia thành một chuỗi các khối cây mã hóa.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 tối đa được phép của khối cây mã hóa là 64x64.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.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 2-1Ví dụ về chia hình ảnh thành các khối cây mã hóa
2.1.2 Cấu trúc phân đoạn theo dải
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 đó.Các dải được thiết kế để có thể được giải mã độc lập với nhau, do đó, không có
Trang 29Nguyễn Quốc Việt 16
việc tiên đoán qua lại ranh giới của hai dải bất kỳ nào, và việc mã hóa entropy được khởi tạo lại từ đầu giữa các dải phân đoạn với nhau
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
Cấu trúc phân đoạn theo lớp
Một lớp phân đoạn được định nghĩa làm 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 Một lớp phân đoạn có thể chứ 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
Một trong hai điều kiện sau phải được thỏa mãn giữa lớp và dải:
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 30Nguyễn Quốc Việt 17
Ranh giới gữa hai lớp phân đoạn
Hình 2-2Ví dụ về lớp phân đoạn và dải phân đoạn
Trên hình 2.2, 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, 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
2.1.3 Khối mã hóa (CU)
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 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
2.1.4 Cấu trúc cây mã hóa
Cấu trúc cây mã hóa trong chuẩn nén HEVC là tạo thành bằng cách đệ quy việc chia nhỏ 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 ¼ khối vuông gốc, như được minh họa trong hình 2.3 Việc chia nhỏ này tạo
ra một tập hợp các khối CU có kích thước khác nhau, thay đổi từ 8x8 tới kích thước của khối cây mã hóa
Trang 31Nguyễn Quốc Việt 18
Hình 2-3Ví dụ về cấu trúc 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 được coi là một trong hai chế độ dự đoán: dự đoán liên ảnh và dự đoán trong ảnh
2.1.5 Cấu trúc khối dự đoán (PU)
Khối dự đoán PU 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 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 2.4 thể hiện 8 chế độ dự đoán được sử dụng cho khối CU được mã hóa liên ảnh 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 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
o Khối CU với chế độ PART_2Nx2N chứa một khối PU
o Khối CU với chế độ PART_NxN chứa bốn khối PU
o Khối CU với các chế độ phân vùng còn lại chứa hai khối PU
Để tiết kiệm băng thông bộ nhớ của bù chuyển động, kích thước 4x4 không được đưa vào trong khối PU được mã hóa liên ảnh
Trang 32Nguyễn Quốc Việt 19
Hình 2-4Các chế độ phân vùng trong khối PU mã hóa liên ảnh
2.1.6 Khối chuyển đổi (TU) và cấu trúc cây chuyển đổi
Khối chuyển đổi (TU) luôn là hình vuông Mỗi khối TU có kích thước thay đổi từ 4x4 đến 32x32 Một khối CU có thể chứa một hoặc nhiều khối TU, các khối
TU đó cũng được sắp xếp theo cấu trúc cây chia bốn
Hình 2-5Ví dụ về cấu trúc cây chuyển đổi trong khối CU
Độ 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 2.1 Độ sâu lớn nhất của cấu trúc cây chuyển đổi
PART_2Nx2N PART_2NxN PART_Nx2N PART_NxN
PART_2NxnU PART_2NxnD PART_nLx2N PART_nRx2N
Cấu hình Độ sâu tối đa
(khối mã hóa liên ảnh)
Độ sâu tối đa (khối mã hóa trong ảnh)
Trang 33Nguyễn Quốc Việt 20
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
2.2 Dự đoán trong ảnh
2.2.1 Các chế độ dự đoán
Mỗi khối PU dự đoán trong ảnh có một chế độ dự đoán cho thành phần độ chói và một chế độ dự đoán cho hai thành phần màu Mỗi chế độ dự đoán được sử dụng để tạo ra mẫu phục vụ cho dự đoán trong ảnh Toàn bộ các khối TU nằm trong một khối PU sử dụng cùng một kiểu dự đoán giống nhau cho mỗi khối 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ừ trong số 35 chế độ dự đoán có hướng bao gồm hai chế độ DC và Planar 33 hướng
dự đoán trong ảnh được minh họa trên hình 2.6:
Hình 2-633 hướng dự đoán trong ảnh
0 -5 -10 -15 -20 -25 -30 -30 -25 -20 -15 -10 -5 0
5 10 15 20 25 30
5 10 15 20 25 30
Trang 34Nguyễn Quốc Việt 21
Việc đánh số quản lý giữa hướng dự đoán trong ảnh và thứ tự của chế độ được mô tả trong hình 2.7:
Bảng 2.2 Liên hệ giữa hướng dự đoán trong ảnh và chế độ tương ứng của
Trang 35Nguyễn Quốc Việt 22
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 nhỏ hơn 4, hoặc hướng dự đoán trong thành phần độ chói là Planar, DC, phương ngang, hoặc phương dọc, bộ mã hóa sẽ sử dụng hướng thứ 34 để tạo mẫu dự đoán cho thành phần màu để bù vào
2.2.2 Bộ lọc cho các mẫu lân cận
Đối với thành phần màu, các mẫu lân cận sẽ được lọc một lần trước khi sử dụng cho tạo các mẫu dự đoán trong ảnh Bộ lọc được điều khiển bởi chế độ dự đoán trong ảnh đeo ra sử dụng và kích thước của khối chuyển đổi Nếu chế độ dự đoán là DC hoặc kích thước của khối chuyển đổi bằng 4x4, các mẫu lân cận sẽ không được lọc Nếu khoảng cách giữa chế độ dự đoán trong ảnh và chế độ dự đoán theo phương ngang (hoặc dọc) lớn hơn ngưỡng được cho phép, bộ lọc sẽ được thực thi Các ngưỡng được cho phép được liệt kê trong bảng 2.3, với nT đại diện cho kích thước chuyển đổi
Bảng 2.3 Mô tả ngưỡng cho phép cho các khối chuyển đổi có kích thước khác
độ kết hợp là chế độ tìm từ các khối PU được mã hóa liên ảnh lân cận (các thông tin
Trang 36Nguyễn Quốc Việt 23
chuyển động như vector chuyển động, địa chỉ ảnh tham chiếu, và cờ thông báo danh sách ảnh được sử dụng) có thể được coi là các thành phần của khối PU hiện tại Bộ
mã hóa có thể lựa chọn các thông số tốt nhất từ nhiều các ứng viên được hình thành bởi các khối PU lân cận theo không gian và các khối PU lân cận theo thời gian Chế
độ kết hợp có thể được áp dụng với bất cứ khối PU được mã hóa liên ảnh nào, và không chỉ áp dụng cho các khối CU bị bỏ qua bước dự đoán Trong bất cứ khối PU được mã hóa liên ảnh, bộ mã hóa cũng đều có thể sử dụng chế độ kết hợp này hoặc truyền toàn bộ thông số chuyển động , với vector chuyển động, tương ứng với địa chỉ hình ảnh tham chiếu cho mỗi danh sách ảnh tham chiếu và cờ thông báo danh sách ảnh tham chiếu được sử dụng Đối với khối PU được mã hóa liên ảnh, các thông số quan trọng sẽ được gửi tới bộ giải mã Chi tiết cách thức thực hiện trong
dự đoán liên ảnh được nêu ra trong phần dưới đây
2.3.2 Lựa chọn các ứng viên cho chế độ kết hợp
Hình 2.8 tổng kết quá trình lựa chọn các ứng viên cho chế độ kết hợp
Các vị trí ứng viên theo
không gian (5)
Lựa chọn tối đa 4 ứng viên
Loại bỏ các ứng viên trong
cùng khối CU
Các vị trí ứng viên theo thời
gian (2)
Lựa chọn tối đa 1 ứng viên
Thêm các ứng viên dự đoán hai chiều cho ảnh B
Thêm các ứng viên rỗng
Các ứng viên cho chế độ kết hợp cuối cùng
Hình 2-8Quá trình lựa chọn ứng viên cho chế độ kết hợp
Trang 37Nguyễn Quốc Việt 24
Có hai loại ứng viên cho chế độ kết hợp: ứng viên kết hợp theo không gian
và ứng viên kết hợp theo thời gian
Trong việc lựa chọn ứng viên kết hợp theo không gian, sẽ có tối đa 4 ứng viên được lựa chọn trong số 5 ứng viên xung quanh có vị trí khác khác nhau Trong quá trình lựa chọn các ứng viên, nếu hai hay nhiều ứng viên có cùng các thông số chuyển động thì bộ mã hóa sẽ chỉ nhận các thông số ấy một lần.Bên cạnh đó các ứng viên trong cùng một khối CU sẽ bị loại bỏ để tránh tình trạng tạo thành một khối có kích thước phân vùng là 2Nx2N
Đối với việc lựa chọn các ứng viên kết hợp theo thời gian, sẽ có tối đa là một ứng viên được chọn trong số hai ứng viên Vì yêu cầu số lượng các ứng viên kết hợp phía bộ giải mã, khi không đủ số lượng ứng viên kết hợp, các ứng viên rỗng sẽ được chèn vào cuối danh sách ứng viên Nếu kích thước của khối CU bằng 8x8, tất
cả các khối PU của khối CU đó sẽ dùng chung một danh sách các ứng viên kết hợp được lựa chọn, danh sách này tương đương với danh sách ứng viên kết hợp cho khối PU 8x8 đó
Các ứng viên kết hợp theo không gian
B2
A1A0
Hình 2-9Các vị trí cho ứng viên kết hợp theo không gian
Trong việc lựa chọn các ứng viên kết hợp theo không gian, tối đa 4 ứng viên
sẽ được chọn ra trong số 5 ứng viên tại các vị trí được minh họa trên hình 2.9 Thứ
tự của việc lựa chọn là A1 B1 B0 A0 (B2).Vị trí B2 chỉ được xem xét trong
Trang 38Nguyễn Quốc Việt 25
trường hợp cả bốn vị trí A1, B1, B0, A0đều không có ứng viên hoặc tại vị trí đấy sử dụng dự đoán trong ảnh
Với các khối PU có kích thước phân vùng là Nx2N, nLx2N và nRx2N, vị trí
A1 sẽ bị loại bỏ để tránh tình huống khối PU dự đoán hiện tại kết hợp với ứng viên tại vị trí A1 tạo thành một khối kích thước 2Nx2N Trong trường hợp đó, thứ tự lựa chọn sẽ là B1 B0 A0 B2.Tương tự như vậy, nếu khối PU thứ hai thuộc các phân vùng 2NxN, 2NxnU và 2NxnD, vị trí B1 sẽ không được sử dụng: A1 B0
A0 B2 Hình 2.10 minh họa cho hai trường hợp được nhắc đến ở trên
Khối PU đang xétB2
A0
Khối PU đang xétB2
A0A1
B0
(a) Khối PU thứ hai
dạng Nx2N
(b) Khối PU thứ hai dạng 2NxN
Hình 2-10Vị trí ứng viên cho khối PU thứ hai dạng Nx2N và 2NxN
2.3.3 Các ứng viên kết hợp theo thời gian
Trong việc lựa chọn ứng viên kết hợp theo thời gian, một vector chuyển động lấy tỉ lệ được chọn dựa vào khối PU nằm cùng vị trí của ảnh có giá trị hình ảnh POC gần với của khối PU đang xét nhất và ảnh này phải nằm trong danh sách các ảnh tham chiếu
Vector chuyển động lấy tỉ lệ cho ứng viên kết hợp theo thời gian thu về được minh họa bằng đường đứt nét trên hình 2.11, vector đó được lấy tỉ lệ từ vector chuyển động của khối PU cùng vị trí sử dụng khoảng cách của POC, tb và td, với tb
là sai khác giữa ảnh đang xét và ảnh tham chiếu của nó, td là được định nghĩa là sai khác giữa ảnh chứa khối PU cùng vị trí với ảnh tham chiếu tới ảnh chứa khối PU cùng vị trí đó Địa chỉ ảnh tham chiếu của ứng viên kết hợp theo thời gian được