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. 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. Trang 16 Đề Tài: Tăng Tốc Quá Trình Mã Hóa Video Đa Hướng Nhìn 2. CƠ SỞ LÝ THUYẾT Phần này sẽ trình bày một số kiến thức nền tảng bao gồm mô hình hệ thống mã hóa video đơn hướng nhìn và video đa hướng nhìn, tổng quan về chuẩn H.264/MPEG-4 AVC (sau đây gọi là H.264) và phần mở rộng cho mã hóa video đa hướng nhìn. Phần cơ sở lý thuyết về chuẩn H.264 dựa vào tài liệu của tổ chức ITU-T, xuất bản 6/2011[4].
Bên cạnh đó cũng trình bày công nghệ tính toán hỗ trợ song song dữ liệu CUDA. Phần cơ sở lý thuyết về công nghệ tính toán song song dữ liệu CUDA được tổng hợp từ các tài liệu được trang NVIDIA công bố trang web chính thức của hãng [16] cũng như các sách về lâp trình song song [8], [9]. Trong phần này, cũng bàn về mô hình đánh giá kết quả nghiên cứu 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. 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. Trang 17 Đề Tài: Tăng Tốc Quá Trình Mã Hóa Video Đa Hướng Nhìn Hình 2-1 Tương quan theo miền thời gian và không gian trong chuỗi video[6] Trang 18 Đề Tài: Tăng Tốc Quá Trình Mã Hóa Video Đa Hướng Nhìn 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).
Dữ liệu video Mô hình thời Dư thừa Mô hình Hệ số đầu vào gian dữ liệu không gian vectors Mã hóa Dữ liệu Buffer lưu trữ Entropy đã được ảnh tái tạo mã hóa Hình 2-2 Sơ đồ khối của một video encoder [6] (1) Mô hình thời gian 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] Trang 19 Đề Tài: Tăng Tốc Quá Trình Mã Hóa Video Đa Hướng Nhìn 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ị. (2) Mô hình không gian Trang 20 Đề Tài: Tăng Tốc Quá Trình Mã Hóa Video Đa Hướng Nhìn 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).
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: Trang 21 Đề Tài: Tăng Tốc Quá Trình Mã Hóa Video Đa Hướng Nhìn 𝑋 𝐹𝑄 = 𝑟𝑜𝑢𝑛𝑑 ( ) (2-1) 𝑄𝑃 𝑌 = 𝐹𝑄.
𝑄𝑃 (2-2) Trong đó, QP là hệ số lượng tử. (3) Mã hóa entropy 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. Trang 22 Đề Tài: Tăng Tốc Quá Trình Mã Hóa Video Đa Hướng Nhìn 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.