Chính vì thế, việc tìm hiểu các kỹ thuật nhằm làm giảm dữ liệu video truyền tải và lưu trữ, tăng hiệu suất mã hóa với dữ liệu ảnh lớn và độ phân giải cao trong video đa hướng nhìn và tru
TỔNG QUAN VỀ ĐỀ TÀI
Hình thành vấn đề
Mã hóa video (Video coding) đơn góc nhìn (single view) không còn là đề tài xa lạ và mới mẻ nữa Nó bao gồm hai quá trình mã hóa (encode) và giải mã (decode) dữ liệu video Dữ liệu video thô được mã hóa trước khi truyền hay lưu trữ Dữ liệu video mã hóa sau đó được giải mã trước khi hiển thị cho người dùng cuối Hiện nay, mặc dù các hệ thống máy tính ngày càng mạnh mẽ (về mặt lưu trữ, khả năng xử lý cũng như băng thông mạng), lượng dữ liệu video số không nén vẫn quá lớn gây khó khăn cho việc lưu trữ, tính toán và truyền tải Ví dụ, với băng thông Internet hiện tại, vẫn khó để truyền dữ liệu video thô theo thời gian thực hay một đĩa DVD cũng chỉ có thể lưu vài phút video thô với yêu cầu frame rate và độ phân giải chất lƣợng truyền hình Bên cạnh đó, dung lƣợng dữ liệu video cũng tăng lên đáng kể khi các thiết bị hỗ trợ độ phân giải cao ngày càng phổ biến
Cho nên mã video vẫn đóng vai trò quan trọng trong các dịch vụ truyền thông đa phương tiện
Song song với sự phát triển của công nghệ sản xuất camera và thiết bị hiển thị, nhu cầu sử dụng video 3D hoặc video đa hướng nhìn đã tăng cao trong những năm gần đây Ảnh hoặc video 3D mang đến cho người xem trải nghiệm chiều sâu của cảnh bằng cách trình chiếu ảnh trái và ảnh phải tương ứng với góc nhìn của mắt trái và mắt phải Hệ thống 3D là một nhánh của hệ thống đa hướng nhìn hoặc video góc nhìn tự do, cho phép người xem quan sát cảnh từ nhiều góc độ khác nhau so với video đơn hướng nhìn (stereoscopic video).
Chương 1 TỔNG QUAN VỀ ĐỀ TÀI
Trang 12 thay đổi, lựa chọn góc nhìn của một cảnh quay Điều này có thể làm đƣợc bằng cách dùng nhiều máy quay quay một cảnh video từ nhiều góc nhìn khác nhau Có khá nhiều ứng dụng thú vị bao gồm giải trí cho tới giáo dục, … Ví dụ, ta có thể hiển thị và phân tích các hành động trong thể thao, các bộ môn nghệ thuật nhƣ khiêu vũ, … Hay một ứng dụng video góc nhìn tự do khác là hội thảo từ xa (immersive teleconference) Những người tham dự hội thảo ở các vị trí địa lý khác nhau có thể nhìn thấy nhau trong thế giới ảo theo dạng 3 chiều hay góc nhìn tự do Ứng dụng này tạo nên kênh giao tiếp tự nhiên hơn cho các hội thảo, cuộc họp từ xa [1]
Hệ thống 3DTV hoạt động bằng cách ghi lại cùng một cảnh từ nhiều góc nhìn khác nhau, tạo nên nhiều chuỗi ảnh (view) video Các ảnh này được xử lý bởi bộ mã hóa video đa hướng nhìn, rồi truyền đi qua các kênh và được giải mã bởi bộ giải mã đa hướng nhìn Người dùng cuối có thể lựa chọn nhiều kiểu hiển thị khác nhau, bao gồm 2D SDTV/HDTV, TV stereo hay 3DTV hỗ trợ đa hướng nhìn.
Hình 1-1 Một hệ thống 3DTV
Do dữ liệu hình ảnh khổng lồ trong video đa hướng nhìn, nhu cầu nghiên cứu các kỹ thuật giảm thiểu dữ liệu truyền tải và lưu trữ, đồng thời tăng hiệu suất mã hóa là vô cùng cấp thiết Các hệ thống đa phương tiện thời gian thực đòi hỏi đáp ứng lượng dữ liệu theo tốc độ nhất định, nếu chi phí tính toán và thời gian xử lý của hệ thống mã hóa quá lớn sẽ vô hiệu hóa ứng dụng Do vậy, kỹ thuật MVC hiệu quả về tỉ lệ nén và tốc độ xử lý mà không làm giảm chất lượng hiển thị là yêu cầu cấp bách, dẫn đến đề tài nghiên cứu về "Hiện thực các kỹ thuật mã hóa trong ứng dụng đa hướng nhìn".
Phạm vi nghiên cứu
1.2.1 Mục tiêu của đề tài Đề tài có hai mục tiêu chính Thứ nhất là khảo sát và đánh giá các kỹ thuật mã hóa video bao gồm video đơn hướng nhìn, video đa hướng nhìn và tổng kết các kết quả nghiên cứu nhằm nâng cao hiệu suất mã hóa trong video đa hướng nhìn, tập trung vào các cải tiến dựa trên video đa hướng nhìn đã được chuẩn hóa bởi MPEG/VCEG [3] Chuẩn H.264/MPEG-4 AVC của MPEG/VCEG đã bổ sung một phần mở rộng cho video đa hướng nhìn những năm gần đây
Mục tiêu thứ hai là xây dựng chương trình hiện thực và đánh giá một số kỹ thuật mã hóa đã nghiên cứu Hiện nay đã có sẵn phần mềm tham khảo JMVC [4] cho video đa hướng nhìn Hầu hết các nghiên cứu đều tiến hành thử nghiệm trên phần mềm này Cho nên chương trình của đề tài cũng được xây dựng trên phần mềm tham khảo JMVC, phiên bản 8.5 Ngoài ra, đề tài đề xuất phương pháp tăng hiệu suất mã hóa dựa trên cở lý thuyết và các nghiên cứu liên quan tìm hiểu đƣợc
Chương 1 TỔNG QUAN VỀ ĐỀ TÀI
Quá trình thực hiện đề tài bao gồm các bước chính sau:
Tìm hiểu cơ sở lý thuyết liên quan bao gồm kỹ thuật mã hóa video đơn và đa hướng nhìn, chuẩn H.264
Khảo sát và đánh giá các kết quả nghiên cứu liên quan đến tối ƣu hiệu suất mã hóa trong video đa hướng nhìn
Tìm hiểu phần mềm tham khảo JMVC phiên bản 8.5, cách hiện thực quá trình mã hóa của phần mềm cho H.264 MVC Sau đó hiện thực thêm các giải thuật để giảm thời gian mã hóa
Đánh giá kết quả đạt đƣợc trên các tập dữ liệu ảnh video đầu vào khác nhau.
Tóm lƣợc những kết quả đạt đƣợc
Với những yêu cầu và mục tiêu của đề tài, sau thời gian nghiên cứu và hiện thực, kết quả về cả lý thuyết và hiện thực đạt được như dưới đây
Luận văn đã tìm hiểu các phương pháp mã hóa video đa hướng nhìn và tiến hành khảo sát, đánh giá các phương pháp tối ưu hiệu suất mã hóa
Hiện thực một số phương pháp tối ưu mã hóa video đa hướng nhìn theo hướng giảm thời gian mã hóa nhƣng vẫn đảm bảo chất lƣợng ảnh và tỉ lệ nén Dựa vào phân tích mô hình mã hóa đã có, đề tài đƣa ra một đề xuất giảm thời gian mã hóa dựa vào tính chất vùng tìm kiếm
Đánh giá toàn diện kết quả tổng hợp ảnh đòi hỏi một bộ dữ liệu ảnh và phương pháp đánh giá định lượng về thời gian mã hóa, bitrate và chất lượng ảnh Mô hình đánh giá này có giá trị tham chiếu cho các cải tiến phương pháp tổng hợp ảnh trong tương lai.
Bố cục luận văn
Luận văn đƣợc tổ chức theo cấu trúc sau đây:
Chương 1 giới thiệu tổng quan về đề tài bao gồm hoàn cảnh ra đời của đề tài, mục tiêu của đề tài và phương pháp nghiên cứu
Chương 2 trình bày một số kiến thức nền tảng bao gồm kiến thức tổng quát về mã hóa, các bước và các kỹ thuật quan trọng trong mã hóa video Sau đó, giới thiệu chuẩn H.264 và phần mở rộng cho video đa hướng nhìn trong H.264
Chương 3 bàn về các nghiên cứu liên quan Các công trình nghiên cứu được chọn giới thiệu liên quan đến nhiệm vụ chính của đề tài là hiện thực các kỹ thuật mã hóa nhằm làm tăng hiệu suất mã hóa video đa hướng nhìn
Chương 4 trình bày chi tiết hiện thực cho chương trình cho một số mô hình tối ưu đã nghiên cứu và đề xuất
Chương 5 đưa ra các kết quả đạt được, tiến hành đánh giá và so sánh kết quả
Chương 6 tổng kết và trình bày một số kết luận sau khi thực hiện đề tài nghiên cứu
Cuối cùng là phần liệt kê các tài liệu tham khảo trong quá trình nghiên cứu và hiện thực đề tài luận văn.
CƠ SỞ LÝ THUYẾT
Mô hình hệ thống video đơn hướng nhìn
Mã hóa video (video coding) là hệ thống có 2 phần bù trừ nhau là: bộ mã hóa
(encoder) và bộ giải mã (decoder) Dữ liệu video thô (chƣa mã hóa) qua bộ mã hóa thu đƣợc chuỗi bit nhỏ hơn, gọi là bitstream Bitstream qua bộ giải mã để tái tạo (reconstruct) dữ liệu video trước khi hiển thị cho người dùng cuối
Dữ liệu sau mã hóa thu đƣợc thông qua việc loại bỏ phần dƣ thừa (redundancy) – những phần không thực sự cần thiết cho việc tái tạo dữ liệu xấp xỉ dữ liệu ban đầu Hầu hết các phương pháp mã hóa video khai thác dữ liệu dư thừa miền thời gian (temporal) và không gian (spatial) để đạt hiệu quả mã hóa Về miền thời gian, các ảnh (frame) đƣợc thu ở thời điểm gần nhau sẽ có sự tương quan cao Có nghĩa là, trong một chuỗi ảnh liên tục, lƣợng thông tin chứa trong mỗi ảnh sẽ thay đổi rất ít từ ảnh này sang ảnh khác Về miền không gian, các điểm ảnh gần nhau cũng có sự tương quan cao
Hình 2-1 mô tả sơ đồ khối chức năng tổng quan của bộ mã hóa video Bộ mã hóa bao gồm ba khối chức năng chính: mô hình thời gian, mô hình không gian và mã hóa entropy.
Mã hóa Entropy Buffer lưu trữ ảnh tái tạo
Dữ liệu đã được mã hóa Hệ số vectors Dữ liệu video đầu vào
Hình 2-1 Sơ đồ khối của một video encoder
Dữ liệu đầu vào của mô hình thời gian là dữ liệu video thô Mô hình thời gian giảm dữ liệu dư thừa theo thời gian dựa vào sự tương tự giữa các ảnh lân cận thông qua phương pháp dự đoán cho ảnh hiện tại Dữ liệu đầu ra của mô hình này là ảnh dƣ thừa đƣợc tạo ra bằng cách trừ ảnh dự đoán với ảnh hiện tại và một tập tham số mô hình, thường là tập các vector chuyển động (motion vector) mô tả chuyển động giữa hai hay nhiều ảnh Hình 2-2 là ví dụ về ảnh dƣ thừa của 2 ảnh kề nhau
Một số khái niệm trong mô hình thời gian:
Ảnh tham khảo (Reference frame): Quá trình mã hóa sẽ tìm kiếm phần ảnh tương đồng với ảnh hiện tại trên ảnh tham khảo và dựa vào đó để giảm dữ liệu cho ảnh hiện tại
Ước lượng chuyển động (Motion estimation) là quá trình tìm phần bù nhỏ nhất cho chuyển động giữa hai ảnh liên tiếp Trong ước lượng chuyển động, ảnh được chia thành các khối hình chữ nhật và tìm khối gần giống nhất (matching block) cho mỗi khối của ảnh hiện tại trên ảnh tham khảo Quá trình này giúp dự đoán chuyển động dựa trên dữ liệu dư thừa tạo ra do chuyển động giữa hai ảnh và là một phương pháp phổ biến trong xử lý video.
Bù chuyển động (Motion compensation): là quá trình trừ khối B, khối giống khối A , cho khối A trên ảnh hiện tại tạo ảnh dƣ thừa
Vector chuyển động (Motion vector): vector biểu diễn vị trí tương đối của A và B
Chương 2 CƠ SỞ LÝ THUYẾT
Hình 2-2 Ảnh dư thừa của 2 ảnh kề nhau
Phần xử lý quan trọng trong mô hình thời gian là ―dự đoán‖ (prediction) Dự đoán được thực hiện thông qua hai bước ―ước lượng chuyển động‖ và tính toán ―phần bù chuyển động‖ Dự đoán khai thác sự giống nhau giữa các ảnh theo miền thời gian (mã hóa có phần bù chuyển động) gọi là dự đoán inter mode Khi có sự khác nhau quá lớn giữa ảnh hiện tại và ảnh tham khảo, sẽ hiệu quả hơn nếu mã hóa không có phần bù chuyển động Trong trường hợp đó, dự đoán chỉ được thực hiện trên các khối đã được mã hóa trước đó của ảnh hiện tại Dự đoán này gọi là intra mode Ảnh tham khảo có thể là ảnh trước ảnh hoặc sau hoặc là sự kết hợp giữa ảnh trước và sau ảnh hiện tại (theo thứ tự hiển thị) Trong trường hợp ảnh tham khảo là ảnh sau ảnh hiện tại, ảnh tham khảo sẽ được mã hóa trước và khi giải mã sẽ được sắp xếp thứ tự lại trước khi hiển thị
Dữ liệu đầu vào của mô hình không gian là ảnh dƣ thừa Mô hình này sử dụng sự tương tự giữa các mẫu (sample) lân cận trong ảnh dư thừa để giảm dữ liệu dư thừa trong miền không gian Nhiệm vụ chính của mô hình này là phân giải sự tương quan của ảnh dư thừa, sau đó chuyển sang dạng có thể mã hóa một cách hiệu quả bằng entropy coder Dữ liệu đầu ra của mô hình không gian là tập các hệ số biến đổi đã đƣợc lƣợng tử hóa
Mô hình không gian có thể chia thành hai quá trình chính: ―biến đổi‖ (Transformation) và ―lƣợng tử hóa‖ (Quantization)
Biến đổi (Transformation): Là quá trình biến đổi nhằm giảm sự tương quan về mặt thống kê của dữ liệu đầu vào và thu gọn dữ liệu biến đổi (hầu hết phần quan trọng của dữ liệu sau biến đổi sẽ tập trung ở một số ít giá trị) Dữ liệu đầu vào là dữ liệu ảnh dƣ thừa
Hai biến đổi phổ biến của transformation là biến đổi Karhunen-Loève (KLT), là một phép phân giải tối ƣu, và biến đổi cosin rời rạc (DCT), có hiệu quả gần bằng KLT Ví dụ về biến đổi DCT cho khối kích thước 4x4 như hình Hình 2-3 Sau biến đổi DCT, phần lớn năng lƣợng tập trung ở góc trên bên trái
Hình 2-3 Biến đổi DCT của khối 4x4
Lƣợng tử hóa (Quantization): Là quá trình ánh xạ dữ liệu đầu vào từ khoảng giá trị
X sang khoảng giá trị Y nhỏ hơn Do đó, dữ liệu đã đƣợc lƣợng tử dùng ít bit để biểu diễn hơn là dữ liệu ban đầu Lƣợng tử hóa đƣợc thực hiện trên dữ liệu đầu ra của quá trình
―transformation‖ Sau đây là ví dụ của công thức lƣợng tử hóa đơn giản:
( ) (2-1) (2-2) Trong đó, QP là bước lượng tử
Các thông số của mô hình thời gian và mô hình không gian được mã hóa thông qua mã entropy Khối mã hóa entropy loại bỏ dữ liệu dư thừa về mặt thống kê, tạo ra luồng bit có thể lưu trữ hoặc truyền đi.
Chương 2 CƠ SỞ LÝ THUYẾT
Trang 20 Loại mã hóa entropy phổ biến là variable-length code (VLC) VLC tạo bảng mã cấu trúc cây, dùng những chuỗi nhị phân ngắn để biểu diễn những giá trị thường xuất hiện và dùng những chuỗi nhị phân dài hơn để biểu diễn các giá trị ít xuất hiện Phương pháp nổi tiếng nhất cho loại mã hóa entropy VLC là mã Huffman
Bộ giải mã video sẽ tái tạo một ảnh video từ bitstream đã đƣợc nén Đây là quá trình ngƣợc lại với quá trình mã hóa.
Mô hình hệ thống video đa hướng nhìn
Mã hóa video đa hướng nhìn có thể được thực hiện theo phương pháp simulcast, trong đó mỗi chuỗi video được thu từ các camera khác nhau được mã hóa riêng biệt Giải pháp này tận dụng các kỹ thuật mã hóa video đơn hướng nhìn chuẩn, khai thác dự đoán thời gian và không gian trong từng chuỗi video Ưu điểm của phương pháp này là có thể sử dụng các công cụ mã hóa video đơn hướng nhìn sẵn có.
Tuy nhiên, dữ liệu video đa hướng nhìn chứa một lượng lớn sự phụ thuộc thống kê giữa các view vì các máy quay quay cùng một cảnh từ các hướng nhìn khác nhau Ảnh trên một view có thể dự đoán từ ảnh lân cận trong cùng view hoặc từ một view lân cận, tương ứng với việc sử dụng dự đoán phần bù chuyển động hoặc dự đoán phần bù chênh lệch (disparity) Dự đoán dựa trên phần bù chênh lệch giữa các view gọi là dự đoán inter- view Kết hợp dự đoán theo thời gian và inter-view là kỹ thuật chính trong video đa hướng nhìn
Hình 2-5 [7] là ví dụ mô hình kết hợp dự đoán theo thời gian và inter-view Ảnh ở view S1 có thể tham khảo ảnh ở view S0 trong quá trình ƣớc lƣợng chuyển động Có thể thấy với mô hình kết hợp này, mối liên hệ giữa ảnh của các view trở nên phức tạp hơn rất nhiều Ảnh B3(S1/T1) không chỉ tham khảo P0(S1/T0) và B2(S1/T2) mà còn tham khảo B3(S0/T1) trong quá trình dự đoán Trong một số mô hình khác, B3(S1/T1) còn tham khảo cả B3(S2/T1) để đạt hiệu quả mã hóa cao Mặc dù mô hình đạt tỉ lệ nén cao nhƣng cũng làm chậm quá trình mã hóa do tốn nhiều tài nguyên xử lý
Hình 2-4 Simulcast cho mã hóa video đa hướng nhìn
Chương 2 CƠ SỞ LÝ THUYẾT
Hình 2-5 Kết hợp dự đoán thời gian/inter-view cho video đa hướng nhìn
Dự đoán inter-view về cơ bản cũng tương tự như dự đoán inter mode Dự đoán inter- view khai thác sự tương tự giữa 2 view lân cận Nếu như dự đoán inter mode có khái niệm vector chuyển động thì dự đoán inter-view có vector chênh lệch (disparity vector) Vector chênh lệch là vector xác định vị trí tương đối của 2 điểm/khối ảnh tương đồng nhau trên 2 view khác nhau cho cùng một cảnh Ngoài ra, các khái niệm ƣớc lƣợng chênh lệch (disparity estimation), bù chênh lệch (disparity compensation) cũng tương tự như ước lƣợng chuyển động, bù chuyển động trong mô hình thời gian đã giới thiệu ở trên
Hình 2-6 mô tả các khối cơ bản của qui trình mã hóa video đa hướng nhìn Điểm khác với mã hóa video 2 chiều là khối dự đoán inter-view Dữ liệu đầu vào của mô hình inter- view là dữ liệu video thô Mô hình inter-view giảm dữ liệu dư thừa dựa vào sự tương tự giữa các view lân cận bằng cách xây dựng sự tiên đoán cho ảnh hiện tại Dữ liệu đầu ra của mô hình này là ảnh dƣ thừa (tạo ra bằng cách trừ ảnh dự đoán với ảnh hiện tại) và một tập tham số mô hình, thường là tập các vector chênh lệch
Buffer lưu trữ ảnh tái tạo
Dữ liệu đã được mã hóa Hệ số
Dư thừa dữ liệu vectors Dữ liệu video đầu vào
Hình 2-6 Sơ đồ khối của video encoder đa hướng nhìn
Lƣợc đồ dự đoán bù chênh lệch giả định chuyển động của đối tƣợng qua các view là mô hình chuyển động tịnh tiến Tuy nhiên, nếu sự khác biệt giữa hai view quá lớn (có thể là khoảng cách các camera lớn), giả định không phải lúc nào cũng đúng Trong trường hợp này, tương quan giữa hai ảnh liên tiếp theo thời gian có thể cao hơn tương qua giữa hai view lân cận Vì thế nên so sánh và xác định khối gần giống nhất trên cả lân cận theo thời gian và lân cận theo view.
Chuẩn H.264/MPEG-4 AVC
Dữ liệu đầu vào và đầu ra của bộ mã hóa và giải mã H.264 có thể có nhiều dạng khác nhau như YUV, RGB Tuy nhiên, để thuận tiện cho việc giải thích, những biến hoặc thuật ngữ liên quan đến các mảng dữ liệu đầu vào và đầu ra sẽ được gọi là luma (hoặc Y) và chroma Hai mảng chroma tương ứng là Cb và Cr, bất kể cách biểu diễn màu thực tế là gì.
Luma (Y) là thành phần qui định độ sáng của ảnh Chroma (CbCr hoặc UV) là thành phần qui định màu sắc của ảnh
Chương 2 CƠ SỞ LÝ THUYẾT
Một ảnh có thể chia thành một hoặc nhiều slice Một slice là một chuỗi các macroblock (MB) hoặc một cặp MB Mỗi MB tương ứng với mộ vùng ảnh kích thước 16x16 pixel Hình 2-7 là ví dụ một ảnh video đƣợc chia thành 3 slice
Hình 2-7 Sự phân chia slice trong ảnh
Một MB đƣợc phân hoạch thành các khối nhỏ hơn Một MB có 4 kiểu phân hoạch nhƣ Hình 2-8 Khi MB được chia thành 4 khối có kích thước 8x8 thì mỗi khối 8x8 được gọi là một MB phụ Một MB phụ cũng có 4 kiểu phân hoạch tương tự một MB, minh họa trong Hình 2-8
Các kiểu phân hoạch macroblock
Các kiểu phân hoạch macroblock phụ
Hình 2-8 Các kiểu phân hoạch macroblock và macroblock phụ
Một H.264 stream đƣợc tổ chức thành nhiều đơn vị gọi là NAL (Network Abstraction Layer) Byte đầu tiên của NAL sẽ cho biết loại dữ liệu chứa trong NAL Phần dữ liệu còn lại gọi là payload Có nhiều loại NAL trong H.264 stream và có thể phân thành 2 nhóm :
VCL (video coding layer) : chứa dữ liệu video mã hóa của ảnh hoặc một phần ảnh
VCL NAL có loại là slice
Non-VCL (non-video coding layer) : chứa các dữ liệu, thông tin bổ trợ liên quan
Chuỗi video (coded video sequence) là tập một dãy NAL liên tiếp Nó bao gồm các non-VCL - dùng để giải mã dữ liệu video và các VCL NAL (NAL loại slice) – đại diện cho ảnh video hoặc một phần ảnh video mã hóa Một chuỗi video biểu diễn một phần bitstream đƣợc giải mã độc lập của bitstream, nghĩa là tất cả các ảnh video trong chuỗi được giải mã mà không cần tham khảo tới các ảnh trước đó Bắt đầu của một chuỗi video là ảnh IDR (instantaneous decoding refresh)
NAL loại slice đại diện cho một phần hoặc toàn bộ ảnh video mã hóa Slice bao gồm một số MB mã hóa và số lƣợng MB chứa trong mỗi slice không nhất thiết phải giống nhau Lớp MB chứa các loại thông tin mô tả cách mã hóa một MB và các thông tin dự đoán nhƣ là vector chuyển động hoặc là thông tin intra mode và dữ liệu dƣ thừa
2.3.4 Sơ đồ khối quá trình mã hóa
Hình 2-9 [8] mô tả chi tiết sơ đồ khối mã hóa của H.264
Chương 2 CƠ SỞ LÝ THUYẾT
Hình 2-9 Sơ đồ khối bộ mã hóa video của H.264
Mô hình thời gian gồm các khối: Intra-frame Estimation, Intra-frame Prediction, Motion compensation, Motion Estimation Mô hình không gian gồm các khối:
Transform/Scal./Quant, Coder Control, Scaling and Inv Transform Mã hóa Entropy gồm khối: Entropy Coding Về cơ bản các khối chức năng này hoạt động nhƣ trong mô hình mã hóa/giải mã đã giới thiệu ở trên
Bộ giải mã H.264 có thêm một khối xử lý ―Deblocking Filter‖ Khối này làm cho ảnh sau khi giải mã đƣợc mƣợt mà do mã hóa dạng khối nên ảnh đầu ra xuất các cạnh giữa các khối
H.264 hỗ trợ ba loại mã hóa ảnh (và slice) cơ bản là I, P, B Các loại slice này xác định kiểu mã hóa cho các MB chứa trong slice
I slice : chỉ chứa I macroblock, dùng intra mode cho mã hóa
P slice : chứa I và P macroblock, hỗ trợ cả mã hóa intra mode và dự đoán inter mode P slice chỉ tham khảo tới các ảnh trước nó cho dự đoán
B slice : chứa I và B macroblock, hỗ trợ cả mã hóa intra mode và dự đoán inter mode B slice có thể tham khảo tới ảnh trước và sau nó cho dự đoán
Hình 2-10 Cấu trúc dự đoán
Một ví dụ cho cấu trúc dự đoán nhƣ trong Hình 2-10 Ảnh I không tham khảo ảnh khác trong mã hóa Ảnh P tham khảo ảnh trước nó Ảnh B tham khảo ảnh trước và sau nó
Mũi tên chỉ hướng tham khảo (A -> B : nghĩa là A cần tham khảo B trong mã hóa)
Dưới đây trình bày chi tiết hơn về 2 loại dự đoán được thực hiện trên MB: intra mode và inter mode
(1) Dự đoán Intra (Intra prediction)
Nếu một block hoặc MB đƣợc mã hóa theo kiểu Intra thì khối tham khảo của nó là khối được tính từ các khối đã được mã hóa và tái tạo trước đó trên cùng ảnh đang được mã hóa Khối hiện tại sẽ trừ khối tham khảo P, tạo ra phần dữ liệu dƣ thừa và dữ liệu này sẽ qua quá trình transformation, entropy
Dự đoán intra cho thành phần luma của MB đƣợc thực hiện trên các khối có kích thước 16x16, 8x8 và 4x4 Dự đoán intra cho thành phần chroma được thực hiện trên toàn bộ MB, không chia thành các vùng nhỏ hơn nhƣ luma
Có 9 kiểu dự đoán cho luma với kích thước 4x4, 8x8 và có 4 kiểu dự đoán cho luma kích thước 16x16 Và có 4 kiểu dự đoán cho thành phần chroma Cách xác định khối
Chương 2 CƠ SỞ LÝ THUYẾT
Trang 28 tham khảo cho từng kiểu dự đoán sẽ đƣợc trình bày chi tiết sau đây Ngoài ra, dự đoán Intra còn có một kiểu mã hóa đặc biệt là I_PCM Kiểu I_PCM cho phép mã hóa trực tiếp giá trị pixel mà không thông qua dự đoán hay biến đổi gì
Bộ mã hóa sẽ chọn kiểu dự đoán tạo ra dữ liệu dƣ thừa tối thiểu, nghĩa là chọn khối tham khảo gần giống với khối hiện tại nhất
(a) Dự đoán cho luma kích thước 4x4
Có 9 kiểu dự đoán cho khối kích thước 4x4 được đánh số từ 0 đến 8 Khối tham khảo P gồm các mẫu từ a đến p Các mẫu A đến M được mã hóa và tái tạo trước đó
Hình 2-11 Gán nhãn cho khối dự đoán và các mẫu lân cận
Cách tính khối tham khảo P đƣợc trình bày tổng quan trong Bảng 2-1 [6] Cách tính chi tiết có thể tham khảo trong chuẩn H.264 [5]
(b) Dự đoán cho luma kích thước 8x8
Các kiểu dự đoán tương tự như luma kích thước 4x4
Bảng 2-1 Cách tính khối tham khảo P
Tên gọi Cách tính khối dự đoán cho các mẫu a p
0 Dọc (Vertical) Các mẫu A, B, C, D đƣợc ngoại suy theo chiều dọc
1 Ngang (Horizontal) Các mẫu I, J, K, L đƣợc ngoại suy theo chiều ngang
2 DC Tất cả các mẫu dự đoán đƣợc tính bằng trung bình các mẫu A đến D và I đến L
Các mẫu được nội suy theo hướng 45 độ hướng xuống dưới và sang trái
Các mẫu được nội suy theo hướng 45 độ hướng xuống dưới và sang phải
Ngoại suy ở góc xấp xỉ góc 26.6 độ sang trái theo chiều dọc
Ngoại suy ở góc xấp xỉ góc 26.6 độ phía dưới chiều ngang
Ngoại suy ở góc xấp xỉ góc 26.6 độ sang phải theo chiều dọc
Nội suy ở góc xấp xỉ góc 26.6 phía trên theo chiều dọc
(a) Dự đoán cho luma kích thước 16x16
Có 4 kiểu dự đoán cho khối kích thước được đánh số từ 0 đến 3 Cách tính khối dự đoán P đƣợc minh họa trong Hình 2-12
Hình 2-12 Dự đoán intra cho khối 16x16
Chương 2 CƠ SỞ LÝ THUYẾT
Dự đoán cho chroma có 4 kiểu dự đoán như dự đoán cho luma kích thước 16x16
(2) Dự đoán Inter (Inter prediction)
Chuẩn mở rộng H.264/MPEG-4 AVC cho video đa hướng nhìn (MVC)
Tiêu chuẩn H.264 cung cấp một phần mở rộng cho video đa hướng nhìn (MVC), cho phép dự đoán giữa các hướng nhìn Trong MVC, các danh sách tham chiếu lưu giữ cả các khung hình trước và sau của khung hình hiện tại cùng với các khung hình từ các hướng nhìn liền kề Điều này khai thác dữ liệu trùng lặp giữa các khung hình liên hướng nhìn, cải thiện hiệu suất nén Tuy nhiên, MVC hạn chế ảnh ở thời điểm t0 của một hướng nhìn tham chiếu đến ảnh ở hướng nhìn khác ở thời điểm t1 không bằng t0 Hạn chế này cân bằng giữa độ phức tạp của dự đoán giữa các hướng nhìn và lợi ích về hiệu suất nén khi lựa chọn ảnh tham chiếu từ các hướng nhìn liền kề Ngoài các ảnh tham chiếu bổ sung này, quá trình mã hóa ở cấp khối macro trở xuống giữa MVC và H.264 một hướng nhìn là giống nhau.
MVC được thiết kế tương thích với H.264 view đơn MVC bitstream bao gồm một bitstream cơ sở tương ứng với view 0 Bitstream cơ sở được tạo và giải mã một cách độc lập với các view còn lại sử dụng kỹ thuật mã hóa trong H.264 view đơn.
Phương pháp đánh giá kết quả
Để đánh giá hiệu suất của bộ mã hóa, đề tài dựa vào 3 tiêu chí: chất lƣợng ảnh tái tạo, tỉ lệ nén và thời gian mã hóa
(1) Chất lƣợng ảnh tái tạo
Có hai phương pháp đánh giá: định tính và định lượng
Về định tính, chất lượng ảnh được đánh giá bằng mắt nhìn, cảm nhận của người xem
Cách phổ biến nhất là tham khảo ý kiến của nhiều người (survey) về chất lượng ảnh tái
Chương 2 CƠ SỞ LÝ THUYẾT
Trang 32 tạo sau mã hóa Tất nhiên, phương pháp này có độ chính xác tương đối tùy theo đối tượng đƣợc khảo sát
Để đánh giá chất lượng ảnh, chỉ số được sử dụng phổ biến là "tỉ số tín hiệu cực đại trên nhiễu" (PSNR) Chỉ số này thể hiện tỷ lệ giữa mức năng lượng tín hiệu tốt nhất có thể và năng lượng nhiễu ảnh hưởng đến độ chân thực của hình ảnh.
PSNR thường được thể hiện dưới dạng logarit decibel (dB) vì nhiều tín hiệu có phạm vi biến đổi rộng Trong bối cảnh nén video, tín hiệu gốc được xem là dữ liệu ban đầu còn nhiễu là lỗi xuất hiện trong quá trình nén.
Cách đơn giản là định nghĩa PSNR thông qua mean squared error (MSE) Cho ảnh hai chiều kích thước mxn, I và K lần lượt là ảnh gốc và ảnh xấp xỉ, MSE được tính như sau:
(2-3) PSNR đƣợc tính nhƣ sau:
MAX I là giá trị pixel lớn nhất có thể của ảnh Ví dụ, pixel dùng 8 bit để biểu diễn thì MAX I = 255 Với ảnh màu có 3 thành phần RGB trên 1 pixel, cách tính PSNR tương tự ngoại trừ MSE là tổng của giá trị chênh lệch của 3 thành phần chia cho kích thước ảnh và chia cho 3
Giá trị PSNR thông thường trong nén video nằm trong khoảng 30 đến 50dB, giá trị càng cao càng tốt
Tỉ lệ nén đƣợc đánh giá thông chỉ số bitrate tính theo công thức (2-5):
Bitrate = 0.008*WrittenBytes/NoOfFrames*FrameRate (đơn vị kbit/s) (2-5) Trong đó,
WrittenBytes: Số byte của bitstream sau mã hóa
NoOfFrames: Số ảnh đƣợc mã hóa
FrameRate: Frame rate của video đầu vào
Bitrate càng thấp càng thể hiện độ nén cao
Thời gian mã hóa đƣợc tính là thời gian trung bình để mã hóa một ảnh
Processing_Time = SumEncTime / NoOfFrames (2-6) Trong đó,
Processing_Time: Thời gian trung bình mã hóa một ảnh
SumEncTime: Tổng thời gian mã hóa video đầu vào
NoOfFrames: Số ảnh đƣợc mã hóa Thời gian mã hóa ngắn thể hiện bộ mã hóa có hiệu suất tốt.
CÁC KẾT QUẢ NGHIÊN CỨU LIÊN QUAN
Cấu trúc dự đoán (Prediction Structure)
Cấu trúc dự đoán đóng một vai trò quan trọng cho hiệu quả nén trong mã hóa video
Cấu trúc dự đoán phổ biến là ―IBBP…‖ Trong khi nghiên cứu các kĩ thuật cho mã hóa scalable video, cấu trúc dự đoán gọi là ―ảnh B phân cấp‖ (hierarchical B picture) cho thấy đạt hiệu quả nén tốt hơn so với cấu trúc dự đoán cổ điển ―IBBP …‖ Cấu trúc này đã trở thành công cụ thiết yếu trong mã hóa video đa hướng nhìn thứ tự hiển thị nhóm ảnh nhóm ảnh
Hình 3-1 Cấu trúc dự đoán phân cấp ảnh B
Cấu trúc dự đoán phân cấp điển hình có 4 tầng nhƣ Hình 3-1 Ảnh đầu tiên của chuỗi ảnh là ảnh chính - ảnh IDR (I0), mã hóa theo kiểu intra Ảnh chính (I 0 ,P 0 ) là ảnh mà tất cả các ảnh đã mã hóa trước nó thì có thứ tự hiển thị trước nó Ảnh chính và tất cả các ảnh giữa 2 ảnh chính tạo nên một nhóm ảnh gọi là GOP Ảnh chính có thể mã hóa theo kiểu intra hoặc inter (tham khảo ảnh chính trước đó) Các ảnh còn lại (gọi là ảnh phụ) trong GOP đƣợc dự đoán theo từng cấp nhƣ minh họa trong hình Cấp 1: mũi tên màu đen, cấp 2: mũi tên màu xanh dương, cấp 3: mũi tên màu đỏ, cấp 4: mũi tên màu xanh lá Ƣu điểm của cấu trúc phân cấp đƣợc kết hợp với dự đoán inter-view ở các phân cấp thời gian khác nhau Một nghiên cứu cho thấy áp dụng dự đoán inter-view ở cấp ảnh chính tăng trung bình 1.4dB PSNR, ở cấp ảnh phụ tăng trung bình 1.6 dB PSNR so với mã hóa simulcast [9]
ví dụ cụ thể về ứng dụng cấu trúc hình ảnh B phân cấp trong mô hình dự đoán theo thời gian và liên cảnh được minh họa tại Hình 3-2 Mũi tên từ hình N đến hình M có nghĩa là M tham chiếu đến N Hình chính sử dụng dự đoán trong hoặc liên cảnh: I0 được mã hóa mà không tham chiếu đến hình ảnh khác, hình P0 được mã hóa chỉ tham chiếu đến hình chính (I0/P0) tại cùng thời điểm (T0/T8) Hình phụ B3 được mã hóa với tham chiếu đến hình ảnh theo thời gian lân cận (P0/B2) và hình ảnh theo góc nhìn lân cận (B3 ở góc nhìn khác).
Hình 3-2 Dự đoán inter-frame/inter-view dùng cấu trúc ảnh B phân cấp
Kiểu macroblock (Macroblock mode)
Một trong những vấn đề khó khăn khi hiện thực mã hóa video đa hướng nhìn là độ phức tạp trong tính toán do khối lƣợng lớn thông tin chứa trong chuỗi video nhiều view
Các chuẩn hiện nay thực hiện mã hóa dạng khối (block-based) Có 9 kiểu (mode) trong dự
Chương 3 CÁC NGHIÊN CỨU LIÊN QUAN
Trang 36 đoán inter: Skip, Inter l6×16, Interl6×8, Inter8×16, Inter8×8, Inter8×8Frext, Intra16×16, Intra8×8, Intra4×4 Tính toán chi phí độ biến dạng (rate distortion) cho từng mode để chọn mode tốt nhất Việc tính toán này đƣợc thực hiện trong cả hai quá trình thuận và ngƣợc của transform và mã hóa entropy Vì vậy, một thuật toán chọn mode nhanh là rất cần thiết
Một số nghiên cứu đã được thực hiện để tìm phương pháp chọn mode nhanh và hiệu quả Trong đó có phương pháp đề xuất sử dụng vector chuyển động của view đã được mã hóa trước đó và thông tin cạnh của view hiện tại để giảm số lượng mode ứng viên phải thử trong việc chọn mode [10] Đối với macroblock có chuyển động và texture thuần nhất, chỉ cần kiểm tra mode Skip và Inter16x16; đối với MB có chuyển động lớn và nhiều texture, tất cả các mode sẽ được kiểm tra So với việc thử tất cả các mode, phương pháp này có thể giảm thời gian tính toán khoảng 60% mà vẫn đảm bảo hiệu quả mã hóa gần như tương đương Thuật toán chọn mode nhanh được minh họa trong Hình 3-3
Trích thông tin cạnh của MB và tìm MB tương ứng trên view lân cận Bắt đầu
Trích vector chuyển động của view lân cận
Chuyển động và texture thuần nhất?
Kiểm tra mode Skip, Inter16x16
Kiểm tra tất cả các mode
Hình 3-3 Thuật toán chọn mode nhanh được đề xuất
Một số cấu trúc dự đoán phân biệt view chính và view phụ View chính chủ yếu dùng dự đoán miền thời gian trong khi view phụ có thể tham khảo tới view lân cận Vì thế trong view phụ, quá trình tìm khối gần giống nhất của Inter mode bao gồm ƣớc lƣợng chuyển động cho tham khảo theo miền thời gian và ƣớc lƣợng chênh lệch cho tham khảo theo view Một nghiên cứu đề xuất phương pháp giảm số Inter mode phải kiểm tra trên view phụ
Chương 3 CÁC NGHIÊN CỨU LIÊN QUAN
Trang 38 Mode Inter16x16 sẽ được kiểm tra trước các mode Inter khác Kết quả thống kê cho thấy có sự tương tự về hướng dự đoán giữa mode Inter16x16 và các mode Inter khác Nếu Inter16x16 dự đoán theo view và thời gian hoặc chỉ dự đoán theo view thì sẽ các mode Inter khác theo cả dự đoán theo view lẫn thời gian Chỉ kiểm tra mode Inter phụ theo view khi dự đoán của mode Inter16x16 là theo view Tất nhiên, trước khi kiểm tra mode Inter16x16, kiểm tra để chọn giữa Intra mode, Skip mode và Inter16x16 dựa vào chi phí rate distortion Hình 3-4 là mô hình đề xuất giảm số mode Inter cần kiểm tra [11]
Tính ngưỡng cho Skip mode dựa vào chi phí rate distortion
Chọn mode tối ưu giữa Intra, Skip và Inter16x16 mode
Chọn mode Intra tốt nhất
Skip mode là tốt nhất và chi phí RD nhỏ hơn ngưỡng?
Giảm số lượng dự đoán Inter- view dựa vào kết quả kiểm tra của Inter16x16
Kiểm tra các Inter mode phụ khác Inter16x8, Inter8x8,
Sai Đúng View hiện tại là view phụ? Đúng
Hình 3-4 Đề xuất giảm số mode Inter cần kiểm tra cho view phụ
Một phương pháp khác để chọn mode nhanh là phân loại các MB mode và đặt ngưỡng cho từng loại [12] Phương pháp này phân các MB mode thành 4 lớp: {Skip}, {Inter16x16}, {Inter16x8, Inter8x16} và {Inter8x8, Inter8x8Frext, Intra16x16, Intra8x8, Intra4x4} tương ứng là M1, M2, M3 và M4 Hình 3-5 là mô hình chọn mode nhanh với ngƣỡng linh động tùy theo MB mode, trong đó P(M1), P(M2), P(M3) là ngƣỡng chọn mode Phương pháp này giảm thời gian từ 1.9 đến 7 lần
Chọn MB mode tốt nhất trong M1 và tính RD cost Rd của nó
Chọn MB mode tốt nhất trong M2 và tính RD cost Rd của nó
Chọn MB mode tốt nhất trong
Chọn MB mode tốt nhất trong M3 và tính RD cost Rd của nó
Hình 3-5 Chọn mode nhanh với ngưỡng linh động
Chương 3 CÁC NGHIÊN CỨU LIÊN QUAN
Trang 40 Một số công trình nghiên cứu khác giảm hoặc chọn mode nhanh dựa vào sự thuần nhất của chuyển động (motion homogeneity) [13] Tính sự thuần nhất chuyển động của MB hiện tại dựa vào các MB lân cận, từ đó tính RD cost các mode kích thước 16x16, chọn mode tốt nhất Phương pháp này giảm thời gian dự đoán cũng khá tốt 63%.
Tổng kết các nghiên cứu liên quan
Lĩnh vực video đa hướng nhìn phát triển trong những năm gần đây và nhận được nhiều sự quan tâm vì ứng dụng cao của nó Vì thế, có khá nhiều nghiên cứu đã và đang đƣợc thực hiện gần đây Các nghiên cứu cũng cho thấy kết quả khá tốt trong việc tăng hiệu suất nén của video đa hướng nhìn Dựa vào việc tìm hiểu các nghiên cứu liên quan cộng thêm phần mềm tham khảo JMVC, việc nghiên cứu và thử nghiệm các công cụ mã hóa cho video đa hướng nhìn của đề tài này là khả thi ĐỀ XUẤT VÀ HIỆN THỰC CHƯƠNG TRÌNH
Phần hiện thực các kỹ thuật mã hóa trong video đa hướng nhìn trong đề tài được thực hiện dựa trên phần mềm tham khảo là Joint Multiview Video Coding (JMVC) phiên bản 8.5 JMVC là bộ mã hóa (encoder) và bộ giải mã (decoder) được chọn làm chuẩn tham chiếu cho phần mở rộng về video đa hướng nhìn của chuẩn H.264/MPEG-4 AVC Hầu hết các nghiên cứu về video đa hướng nhìn hiện nay đều tiến hành trên cơ sở phần mềm tham khảo này.
4.1 Cấu trúc chương trình mã hóa
Chương trình mã hóa video đa hướng nhìn
MVC Encoder Tập tin cấu hình (.cfg)
Dữ liệu YUV đầu vào view N
Dữ liệu YUV tham khảo
Dữ liệu YUV tái tạo view N
Hình 4-1 Cấu trúc hệ thống mã hóa video đa hướng nhìn
Hình 4-1 mô tả hệ thống mã hóa video cơ bản (MVCEncoder) dựa trên phần mềm tham khảo JMVC phiên bản 8.5với dữ liệu đầu vào và đầu ra MVCEncoder mã hóa một view cho mỗi lần thực thi
Dữ liệu đầu vào bao gồm:
Tập tin cấu hình: mô tả các tham số cần đưa vào chương trình
Dữ liệu YUV đầu vào: Chuỗi dữ liệu ảnh màu của view cần mã hóa
Dữ liệu tham khảo: Chuỗi dữ liệu ảnh màu của các view tham khảo cho view hiện tại
Dữ liệu đầu ra bao gồm:
Dữ liệu YUV tái tạo, dùng cho tham khảo bởi các view khác.
ĐỀ XUẤT VÀ HIỆN THỰC CHƯƠNG TRÌNH
Cấu trúc chương trình mã hóa
Chương trình mã hóa video đa hướng nhìn
MVC Encoder Tập tin cấu hình (.cfg)
Dữ liệu YUV đầu vào view N
Dữ liệu YUV tham khảo
Dữ liệu YUV tái tạo view N
Hình 4-1 Cấu trúc hệ thống mã hóa video đa hướng nhìn
Hình 4-1 mô tả hệ thống mã hóa video cơ bản (MVCEncoder) dựa trên phần mềm tham khảo JMVC phiên bản 8.5với dữ liệu đầu vào và đầu ra MVCEncoder mã hóa một view cho mỗi lần thực thi
Dữ liệu đầu vào bao gồm:
Tập tin cấu hình: mô tả các tham số cần đưa vào chương trình
Dữ liệu YUV đầu vào: Chuỗi dữ liệu ảnh màu của view cần mã hóa
Dữ liệu tham khảo: Chuỗi dữ liệu ảnh màu của các view tham khảo cho view hiện tại
Dữ liệu đầu ra bao gồm:
Dữ liệu YUV tái tạo, dùng cho tham khảo bởi các view khác
Chương 4 ĐỀ XUẤT VÀ HIỆN THỰC CHƯƠNG TRÌNH
Trang 42 Ngoài ra, JMVC cũng cung cấp các tool để tạo một bitstream H.264 MVC hoàn chỉnh từ các bitstream view N và tool để giải mã bitstream view N hoặc bitstream hoàn chỉnh
Sơ đồ khối chức năng tổng quát của chương trình mã hóa như Hình 4-2 và Hình 4-3 Chương trình hỗ trợ mã hóa B frame nên thứ tự đọc dữ liệu đầu vào cho từng frame và thứ tự mã hóa có thể không trùng khớp Đọc frame n nhƣng mã hóa frame m (n # m) Đọc dữ liệu tham khảo của frame m
Khởi tạo slice_header cho frame m
Lưu dữ liệu tái tạo của frame m (dùng tham khảo cho các frame tiếp theo)
Mã hóa slice i encodeSlice() i++ n