Dựa trên nhu cầu và động lực đó luận văn cố gắng tìm hiểu, khảo sát chương trình mã hóa video đa hướng nhìn JMVC Join Multi-view Video Coding; một chương trình được cộng tác phát triển b
TỔNG QUAN VỀ ĐỀ TÀI
Hình thành vấn đề
Cùng với những bước tiến đột phá trong công nghệ chế tạo máy quay (camera) và các thiết bị hiển thị, bên cạnh video đơn hướng nhìn, nhu cầu sử dụng video 3D hay video đa hướng nhìn xuất hiện và tăng lên đáng kể trong những năm gần đây Ảnh hoặc video 3D cho phép người xem cảm nhận được độ sâu của khung cảnh bằng cách hiển thị ảnh trái và ảnh phải theo cách mà những ảnh này được nhìn thấy riêng rẽ từ mắt trái và mắt phải Hệ thống 3D là một nhánh của các hệ thống đa hướng nhìn hoặc video góc nhìn tự do Với video đơn hướng nhìn hoặc stereoscopic video, người xem chỉ nhìn thấy khung cảnh từ một hướng nhất định của camera nhưng với video góc nhìn tự do người xem có thể 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 camera 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ị từ giải trí cho tới giáo dục sử dụng công nghệ này Ví dụ, ta có thể hiển thị và phân tích các hành động trong thể thao, các trò chơi cảm giác mạnh, các bộ phim 3D được cảm nhận một cách sống động và chân thật hơn nhờ hiệu ứng video 3D, … 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
Hình 1-1 giới thiệu một hệ thống 3DTV Mỗi cảnh được quay từ nhiều góc khác nhau tạo nên một chuỗi ảnh (view) video tại mỗi thời điểm Các ảnh này đi qua hệ thống mã hóa video đa hướng nhìn (multi-view Digital HD encoder) Sau đó, dữ liệu đã được mã hóa truyền qua các kênh và giải mã bằng bộ giải mã đa hướng nhìn (multi-view video
Trang 13 decoder) Người dùng cuối có thể thưởng thức 3DTV hỗ trợ đa hướng nhìn tại nhà.
Hình 1-1 Một hệ thống 3DTV [10]
Tương tự như video đơn hướng nhìn, vấn đề với video đa hướng nhìn là dữ liệu hình ảnh quá lớn do số lượng camera hay số lượng góc nhìn tăng lên 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à truyền hình 3D (3DTV) ngày càng nhận được nhiều sự quan tâm trong cộng đồng nghiên cứu cũng như trong công nghiệp Như đã biế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 với tốc độ nhất định khoảng 25 đến 30 hình trên 1 giây Quá trình mã hóa và giải mã chính nó cũng cần tài nguyên để tính toán Nếu một ứng dụng thời gian thực yêu cầu băng thông thấp sẽ không thể dùng được nếu hệ thống mã hóa video cần chi phí tính toán quá lớn, mất quá nhiều thời gian để xử lý
Chuẩn mã hóa dữ liệu tiên tiến H.264/MPEG4 (H.264/MPEG-4 Advanced Video Coding (AVC) standard) đã đưa ra những cải tiến đáng kể về khả năng mã hóa dữ liệu video trong những năm vừa qua, và gần đây nhất là những cải tiến về bitrate và độ phân giải Hơn thế nữa, hai nhóm xây dựng bộ chuẩn mã hóa dữ liệu tiên tiến H.264/MPEG4 là
Joint Video Team (JVT) của the ITU-T Video Coding Experts Group (VCEG) và ISO/IEC Moving Picture Experts Group (MPEG) đã thống nhất đồng phát triển và giới thiệu một phiên bản thêm cho bộ mã hóa là Mã hóa video đa hướng nhìn (Join Multi-view Video Coding (JMVC)) Tuy nhiên phiên bản này chỉ mang tính chất tham khảo và nghiên cứu vì sự hạn chế về mặt hiệu suất
Với tình hình đó kỹ thuật mã hóa video đa hướng nhìn (multi-view video coding - MVC) hiệu quả về tỉ lệ nén và tốc độ xử lý mà không hy sinh chất lượng hiển thị là một yêu cầu cấp thiết cho lĩnh vực giải trí và công nghiệp Đó là lí do đề tài nghiên cứu: “ Tăng tốc quá trình mã hóa video đa hướng nhìn” được đề xuất.
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 đánh giá các kỹ thuật tăng tốc mã hóa video đã được công bố dựa trên cải tiến thuật toán đồng thời áp dụng thêm kỹ thuật lập trình song song dựa trên nền tảng sức mạnh tính toán của phần cứng GPU nhằm tăng tốc quá trình mã hóa cho các quá trình xử lý độc lập nhau nói riêng và tổng thời gian mã hóa nói chung
Thứ hai là xây dựng chương trình hiện thực và đánh giá kỹ thuật mã hóa có ứng dụng tính toán song song bằng GPU đã nghiên cứu Hiện nay phần mềm tham khảo JMVC phiên bản 8.5 [14] cho video đa hướng nhìn, một chương trình được cộng tác phát triển bởi hai nhóm chuyên gia của Joint Video Team (JVT) của the ITU-T Video Coding Experts Group (VCEG) và ISO/IEC Moving Picture Experts Group (MPEG), được hầu hết các nghiên cứu trên thế giới dùng để tiến hành các thử nghiệm Vì vậy 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 [14]
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 với chuẩn H.264
Tìm hiểu kỹ thuật lập trình lập trình song song với công nghệ CUDA
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 [14] , cách hiện thực quá trình mã hóa của phần mềm Sau đó hiện thực thêm các giải thuật và áp dụng các kỹ thuật của tính toán song song với công nghệ CUDA có GPU hỗ trợ nhằm 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 có
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 bằng các kỹ thuật tính toán song song với GPU
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 và ứng dụng thêm các kỹ thuật tính toán song song với GPU
Cuối cùng là đưa ra bộ dữ liệu ảnh và phương pháp đánh giá định lượng thời gian mã hóa, bitrate và chất lượng ảnh để đánh giá toàn bộ kết quả chương trình tổng hợp ảnh.
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 này cũng trình bày về công nghệ tính toán hỗ trợ song song dữ liệu CUDA Cuối cùng đề xuất phương pháp đánh giá đánh giá hiệu suất của bộ mã hóa
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 theo hướng tính toán song song dữ liệu CUDA có sự hỗ trợ GPU 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 của 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 Tương quan theo miền thời gian và không gian trong chuỗi video[6]
Hình 2-2 giới thiệu sơ đồ khối tổng quan của một bộ mã hóa video bao gồm 3 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 (entropy encoder)
Buffer lưu trữ ảnh tái tạo
Dữ liệu đã được mã hóa
Dữ liệu video đầu vào
Hình 2-2 Sơ đồ khối của một video encoder [6]
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 (residual frame) đượ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-3 là ví dụ về ảnh dư thừa của 2 ảnh kề nhau
Hình 2-3 Ảnh dư thừa của hai ảnh kề nhau [6]
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): Dữ liệu dư thừa tạo ra do sự chuyển động giữa 2 ảnh lân cận Dự đoán được tiến hành bằng cách tìm phần bù nhỏ nhất cho chuyển động trên 2 ảnh Phương pháp phổ biến là chia ảnh thành các khối (block) hình chữ nhật A và tìm khối gần giống nhất B (matching block) cho mỗi khối của ảnh hiện tại trên ảnh tham khảo Quá trình tìm kiếm này gọi là ước lượng chuyển động
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
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à biến đổi nhằm thu gọn dữ liệu (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 ví dụ tiêu biểu là phép biến đổi Karhunen-Loeve (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 2-4 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-4 Biến đổi DCT của khối 4x4 [6]
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-2) Trong đó, QP là hệ số lượng tử
Tham số của mô hình thời gian và mô hình không gian tiếp tục được mã hóa bằng mã entropy Khối mã hóa entropy loại bỏ dư thừa dữ liệu theo thống kê và tạo ra một bitstream có thể lưu trữ hoặc truyền đi (transmit)
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
Như đã biết, video đa hướng nhìn bao gồm nhiều chuỗi video được thu từ nhiều camera cùng lúc ở các vị trí khác nhau Mỗi chuỗi ảnh là một view (khung nhìn) Để hiện thực mã hóa đa hướng nhìn, giải pháp đầu tiên là mã hóa độc lập từng view, gọi là mã hóa simulcast như trong Hình 2-5
Hình 2-5 Simulcast cho mã hóa video đa hướng nhìn
Mỗi view được mã hóa độc lập, khai thác dự đoán mô hình thời gian và không gian trong mã hóa video đơn hướng nhìn Ưu điểm của mã hóa simulcast có thể dùng các công cụ mã hóa chuẩn của video đơn hướng nhìn
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 camera 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-6 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
Trang 24 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-6 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) Disparity vector 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 disparity estimation, disparity compensation cũng tương tự như motion estimation, motion compensation trong mô hình thời gian đã giới thiệu ở trên
Hình 2-7 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 disparity vector
Buffer lưu trữ ảnh tái tạo
Dữ liệu đã được mã hóa
Dư thừa dữ liệu vectors
Dữ liệu video đầu vào
Hình 2-7 Sơ đồ khối của video encoder đa hướng nhìn [6]
Lược đồ dự đoán bù chênh lệch (disparity compensation) 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
2.3.1 Sơ đồ khối quá trình mã hóa
Hình 2-8 mô tả chi tiết sơ đồ khối mã hóa của H.264
Hình 2-8 Sơ đồ khối bộ mã hóa video của H.264[6]
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 (macroblock) chứa trong slice
I slice : chỉ chứa I MB, dùng intra mode cho mã hóa
P slice : chứa I và P MB, 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 MB, 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-9 Cấu trúc dự đoán [6]
Một ví dụ cho cấu trúc dự đoán như trong Hình 2-9 Ả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 khối (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 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ị điểm ảnh 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-10 Gán nhãn cho khối dự đoán và các mẫu lân cận [6]
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 [4]
(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-11
Hình 2-11 Dự đoán Intra cho khối 16x16 [6]
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)
Khác với dự đoán intra, dự đoán inter là quá trình dự đoán MB hoặc khối hiện tại trên ảnh đã được mã hóa trước đó Dự đoán inter cho P và B MB được thực hiện các khối có kích thước từ 16x16 đến 4x4 Ảnh tham khảo có thể là ảnh trước hoặc là ảnh sau ảnh hiện tại theo thứ tứ hiển thị Các ảnh tham khảo dùng cho dự đoán một MB được chia thành hai danh sách:
Danh sách 0 (list0): bao gồm các ảnh trước ảnh hiện tại theo thứ tự hiển thị
Danh sách 1 (list1): bao gồm các ảnh sau ảnh hiện tại theo thứ tự hiển thị
P MB tham khảo tới các ảnh trong list0 trong quá trình dự đoán Mỗi khối với các kích thước nhỏ hơn 16x16 trong P MB có thể tham khảo tới các ảnh khác nhau trong list0 B
MB tham khảo tới các ảnh trong list0 và list1 trong quá trình dự đoán Mỗi khối với các
Trang 31 kích thước nhỏ hơn 16x16 trong B MB có thể tham khảo tới các ảnh khác nhau trong list0 và list1 Có 3 cách thức tham khảo cho B MB:
Dự đoán list0: chỉ tham khảo tới các ảnh trong list0
Dự đoán list1: chỉ tham khảo tới các ảnh trong list1
Dự đoán đôi (bi-prediction): ảnh tham khảo là tổng có hệ số của ảnh trong list0 và list1
Ngoài ra, có 2 kiểu dự đoán đặc biệt là “direct mode” trong B MB và “skip mode” trong P và B MB Trong trường hợp này, không cần lưu motion vector và dữ liệu dư thừa cho MB hiện tại trong bitstream Chúng được suy ra từ các khối ảnh lân cân được mã hóa trước đó Để tăng độ chính xác cho quá trình ước lượng chuyển động, ảnh tham khảo có thể là ảnh ảo nội suy từ ảnh gốc H.264 cho phộp độ chớnh xỏc đến ẳ điểm ảnh Cỏc điểm ảnh phụ được nội suy từ các điểm ảnh lân cận Việc cho phép tìm kiếm trên ảnh nội suy làm tăng độ chính xác nhưng đồng thời cũng làm tăng độ phức tạp cho quá trình ước lượng chuyển động vì độ phân giải của ảnh tham khảo tăng lên
2.3.2 Chuẩn mở rộng H.264/MPEG-4 AVC cho video đa hướng nhìn (MVC)
Chuẩn H.264 có phần mở rộng dành cho video đa hướng nhìn (MVC) Điểm khác biệt quan trọng nhất giữa video đa hướng nhìn và video đơn hướng nhìn trong H.264 là hỗ trợ dự đoán inter-view trong phần mở rộng này Trong MVC, hai danh sách ảnh tham khảo list0 và list1 không chỉ chứa các ảnh trước và sau ảnh hiện tại mà còn chứa các ảnh từ các view lân cận đã được mã hóa MVC khai thác dữ liệu dư thừa giữa các ảnh liên view để đạt hiệu quả nén tốt khi số lượng dữ liệu tăng lên Tuy nhiên, MVC không cho phép ảnh ở thời điểm t0 của một view tham khảo đến ảnh ở view khác ở thời điểm t1 mà t0 khác t1 Điều này có liên quan đến việc cân bằng giữa độ phức tạp của dự đoán inter-view và lợi ích về hiệu quả nén khi chọn ảnh tham khảo từ các view lân cận Mặc dù có thêm ảnh
Trang 32 tham khảo từ view lân cận nhưng cách thức mã hóa từ lớp MB trở xuống giống nhau giữa MVC và H.264 đơn hướng nhìn
2.4 Hệ thống mã hóa video JMVC phiên bản 8.5
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 2-12: Cấu trúc hệ thống mã hóa video đa hướng nhìn
Hình 2-12 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.5 vớ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 YUV tái tạo, dùng cho tham khảo bởi các view khác
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 2-13 và Hình 2-14 Chương trình hỗ trợ mã hóa ảnh loại B nên thứ tự đọc dữ liệu đầu vào cho từng ảnh và thứ tự mã hóa có thể không trùng khớp Đọc ảnh n nhưng mã hóa ảnh m (n # m)
Trang 33 Đọ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