Nghiên cứu tăng tốc độ tìm kiếm Vector chuyển động trong nén video sử dụng kiến trúc song song GPU NVIDIA và công nghệ CUDANghiên cứu tăng tốc độ tìm kiếm Vector chuyển động trong nén video sử dụng kiến trúc song song GPU NVIDIA và công nghệ CUDANghiên cứu tăng tốc độ tìm kiếm Vector chuyển động trong nén video sử dụng kiến trúc song song GPU NVIDIA và công nghệ CUDANghiên cứu tăng tốc độ tìm kiếm Vector chuyển động trong nén video sử dụng kiến trúc song song GPU NVIDIA và công nghệ CUDANghiên cứu tăng tốc độ tìm kiếm Vector chuyển động trong nén video sử dụng kiến trúc song song GPU NVIDIA và công nghệ CUDANghiên cứu tăng tốc độ tìm kiếm Vector chuyển động trong nén video sử dụng kiến trúc song song GPU NVIDIA và công nghệ CUDANghiên cứu tăng tốc độ tìm kiếm Vector chuyển động trong nén video sử dụng kiến trúc song song GPU NVIDIA và công nghệ CUDANghiên cứu tăng tốc độ tìm kiếm Vector chuyển động trong nén video sử dụng kiến trúc song song GPU NVIDIA và công nghệ CUDANghiên cứu tăng tốc độ tìm kiếm Vector chuyển động trong nén video sử dụng kiến trúc song song GPU NVIDIA và công nghệ CUDA
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
NGUYỄN THANH TUẤN
NGHIÊN CỨU TĂNG TỐC ĐỘ TÌM KIẾM VECTOR CHUYỂN ĐỘNG TRONG NÉN VIDEO SỬ DỤNG KIẾN TRÚC SONG SONG GPU NVIDIA VÀ CÔNG NGHỆ
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan luận văn Thạc sĩ: “Nghiên cứu tăng tốc độ tìm kiếm véc tơ chuyển động trong nén video sử dụng kiến trúc song song GPU NVIDIA và công nghệ CUDA ” là
công trính nghiên cứu của riêng tôi
Các số liệu, kết quả đƣợc trính bày trong luận văn là trung thực, chƣa từng đƣợc công bố trong bất kỳ công trính nào khác
Tp.Hồ Chí Minh, ngày 23 tháng 06 năm 2016
HỌC VIÊN THỰC HIỆN LUẬN VĂN
NGUYỄN THANH TUẤN
Trang 3Tp.Hồ Chí Minh, ngà y 23 tháng 06 nă m 2016
HỌC VIÊN THỰC HIỆN LUẬN VĂN
NGUYỄN THANH TUẤN
LỜI CẢM ƠN
Tôi xin đặc biệt cảm ơn PGS.TS Trần Văn Hoài, người đã trực tiếp chỉ bảo, dành nhiều thời gian, tâm huyết, góp ý và động viên tôi để tôi hoàn thành được văn tốt nghiệp này
Xin gửi lời cảm ơn chân thành tới các thầy, cô cuả Học viện Công nghệ bưu chình viễn thông tạo điều kiện thuận lợi, nhiệt tính giúp đỡ tôi trong suốt quá trính nghiên cứu
Trong quá trính nghiên cứu đề tài này, mặc dù đã có nhiều cố gắng nhưng luận văn không thể tránh khỏi những thiếu sót, tôi rất mong nhận được sự góp ý chân thành của quý thầy, cô Tôi xin chân thành cảm ơn!
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT vi DANH SÁCH HÌNH VẼ viii DANH SÁCH BẢNG x
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ BÙ CHUYỂN ĐỘNG VÀ CÁC THUẬT TOÁN ĐỂ TÌM VÉC TƠ CHUYỂN ĐỘNG TRONG NÉN VIDEO 3
1.1 Tổng quan về bù chuyển động trong MPEG 14
1.1.1 Khái niệm về nén Video 14
1.1.2 Giới thiệu chung về chuẩn MPEG 6
1.1.3 Phương pháp nén video theo chuẩn MPEG 7
1.1.3.1 Các cấu trúc ảnh 7
1.1.3.2 Nhóm ảnh (GOP) 8
1.1.3.3 Cấu trúc dòng bit MPEG 10
1.1.4 Phương pháp nén video theo chuẩn MPEG 12
1.1.4.1 Mô hính tổng quát bộ mã hóa video theo chuẩn MPEG 12
1.1.4.2 Lấy thông tin theo màu 13
1.1.4.3 Lượng tử hóa 16
1.1.4.4 Nội suy ảnh 17
1.1.4.5 Dự đoán bù chuyển động 17
1.2 Các thuật toán để tím véc tơ chuyển động 23
1.2.1 Thuật toán tím kiếm ba bước 23
1.2.2 Thuật toán tím kiếm 2D-logarit 24
1.2.3 Thuật toán tím kiếm trực giao 34
Trang 51.2.4 Thuật toán tím kiếm CROSS 26
1.2.5 Thuật toán tím kiếm ba bước mới 27
1.2.6 Thuật toán tím kiếm bốn bước 28
1.2.7 Thuật toán tím kiếm khối dựa trên gradient descent 39
1.2.8 Thuật toán tím kiếm Diamond 31
CHƯƠNG 2 TỔNG QUAN VỀ CẤU TRÚC HỆ THỐNG XỬ LÝ ĐỒ HỌA GPU VÀ CÔNG NGHỆ TÍNH TOÁN SONG SONG DỮ LIỆU CUDA 33
2.1 Giới thiệu đại cương về tình toán song song 33
2.1.1 Tổng quan về tình toán song song 33
2.1.1.1 Tại sao phải tình toán song song 33
2.1.1.2 Một số khái niệm về xử lý song song 33
2.1.2 Phân loại các kiến trúc song song 34
2.1.2.1 Kiến trúc đơn dòng lệnh, đơn luồng dữ liệu (SISD) 35
2.1.2.2 Kiến trúc đơn dòng lệnh, đa luồng dữ liệu (SIMD) 35
2.1.2.3 Kiến trúc đa dòng lệnh, đơn luồng dữ liệu (MISD) 36
2.1.2.4 Kiến trúc đa dòng lệnh, đa luồng dữ liệu (MIMD) 37
2.1.3 Các mô hính lập trính song song 37
2.1.3.1 Lập trính bộ nhớ dùng chung 37
2.1.3.2 Lập trính truyền thông điệp 38
2.1.3.3 Mô hính song song dữ liệu 38
2.1.3.4 Mô hính hướng đối tượng 39
2.1.3.5 Mô hình logic 39
2.1.4 Đánh giá hiệu quả tình toán song song 39
2.2 Cấu trúc hệ thống xử lý dữ liệu đồ họa GPU 43
2.2.1 Giới thiệu về công nghệ GPU 43
2.2.2 Tím hiểu kiến trúc GPU 43
2.2.2.1 Đường ống dẫn đồ họa 44
2.2.2.2 Tiến hóa của kiến trúc GPU 45
2.2.2.3 Kiến trúc GPU hiện tại 46
Trang 62.2.3 So sánh GPU và CPU 48
2.2.4 Ứng dụng của GPU trong các lĩnh vực 49
2.3 Công nghệ tình toán song song hỗ trợ dữ liệu CUDA 50
2.3.1 Giới thiệu về công nghệ CUDA 50
2.3.2 Cấu trúc của CUDA 52
2.3.3 Ứng dụng của CUDA trong các lĩnh vực công nghệ 54
2.3.3.1 CUDA trong ngành công nghiệp trò chơi 54
2.3.3.2 CUDA trong các ứng dụng video số 54
2.3.4 Môi trường lập trính với CUDA 55
2.3.5 Lập trính song song với CUDA 56
2.3.5.1 CUDA là mở rộng của ngôn ngữ lập trính C 56
2.3.5.2 Những mở rộng của CUDA so với ngôn ngữ lập trính C 57
2.3.5.3 Từ khóa vi phạm kiểu hàm 57
2.3.5.4 Từ khóa vi phạm kiểu biến 57
2.3.5.5 Cấu hính thực thi 58
2.3.5.6 Các biến built-in 59
2.3.5.7 Biên dịch với NVCC 59
CHƯƠNG 3 MÔ TẢ CHƯƠNG TRÌNH VÀ CÁC KẾT QUẢ THỰC NGHIỆM ĐẠT ĐƯỢC 3.1 Mô tả chương trính 68
3.1.1 Song song hóa các thuật toán tím kiếm véc tơ chuyển động trên
CUDA 68
3.1.2 Xây dựng chương trính thực nghiệm 63
3.2 Kết quả thực nghiệm đạt được 67
3.3 Đánh giá kết quả thực nghiệm đạt được 72
KẾT LUẬN VÀ KIẾN NGHỊ 82
TÀI LIỆU THAM KHẢO 77
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
BMA Block Matching Algorithm Thuật toán so khớp nối
BDM Block Distortion Measure Độ đo biến dạng khối
BMME Block Matching Motion
Estimation
Ước lựợng chuyển động phối hợp khối
CUDA Compute Unified Device
Architecture
Kiến trúc thiết bị hợp nhất cho tình toán
DCT Discrete Cosine Transform Biến đổi cosin rời rạc
DFT Discrete Fourier Transform Biến đổi fourier rời rạc
DS Diamond Search Thuật toán tím kiếm kim cương
DMS Discrete Memory less Source Nguồn không nhớ rời rạc
DPCM Differential Pulse Code
Modulation
Điều chế xung mã vi sai
FS Full Search Thuật toán tím kiếm đầy đủ (Vét cạn)
FT Fourier Transform Biến đổi Fourier
FFT Fast Fourier Transform Biến đổi Fourier nhanh
GPU Graphics Processing Unit Bộ xử lý đồ họa
GPGPU General Purpose computing on
graphics processing units
Bộ xử lý đồ họa xử lý các công việc của CPU
4SS Four Step Search Thuật toán tím kiếm 4 bước
IDCT Inverse Discrete Cosine
Transform
Biến đổi ngược DCT
HVS Human Visual System Hệ thống nhín của con người
LMS Least Mean Square Bính phương trung bính tối thiểu
LDSP Large Diamond Search Pattern Thuật toán tím kiếm kim cương lớn MAD Mean Absolute Deviation Độ lệch trị tuyệt đối trung bính
MSE Mean Squared Error Sai số trung bính bính phương
MPEG Moving Picture Experts Group Nhóm các chuyên gia hính ảnh động NTSS New Three Step Search Thuật toán tím kiếm ba bước mới
NCCF Normalized Cross Correlation Hàm tương quan chéo chuẩn hóa
Trang 8Function PSNR Peak Signal to Noise Rate Tỷ số tìn hiệu đỉnh trên nhiễu
TSS Three Step Search Thuật toán tím kiếm ba bước
SAD Sum of Absolute Differences Tổng các sai phân tuyệt đối
SDSP Small Diamons Search Pattern Thuật toán tím kiếm kim cương nhỏ SSD Sum Squared Difference Tổng các sai phân bính phương
VLC Variable Length Coding Mã hóa với độ dài từ mã thay đổi
Trang 9Hính 1.12 Chia cửa sổ tím kiếm dưới dạng lưới theo BMA 21 Hính 1.13 Minh họa quá trính bù chuyển động theo giải thuật BMA 22
Hính 1.15 Hai đường tím kiếm của thuật toán tím kiếm 2DLOG 25 Hính 1.16 Hai đường tím kiếm của thuật toán tím kiếm trực giao 26 Hính 1.17 Hai đường kiểm tra theo thuật toán tím kiếm CROSS 27 Hính 1.18 Hai đường tím kiếm của thuật toán tím kiếm ba bước mới 28 Hính 1.19 Hai đường tím kiếm chuyển động lớn theo thuật toán FSS 29 Hính 1.20 Hai đường tím kiếm chuyển động nhỏ của thuật toán FSS 29
Hính 1.22 Mô hính tím kiếm theo thuật toán tím kiếm Diamond 32
Hính 2.5 Mô tả lập trính giữa các tác vụ dùng chung bộ nhớ 37 Hính 2.6 Mô hính lập trính truyền thông giữa hai tác vụ trên hai
Trang 10máy tính 38
Hính 2.8 Kỹ thuật xen kẽ tình toán và truyền thông giữa P1 và P2 40
Hình 2.12 Các thao tác thu hồi và cấp phát bộ nhớ với CUDA 51 Hình 2.13 Vùng nhớ dùng chung mang dữ liệu gần ALU hơn 52
Hính 2.15 Sơ đồ hoạt động truyền dữ liệu giữa Host và Device 56
Hính 3.2 Hai khung ảnh đầu vào được tách từ video Foreman 64 Hính 3.3 Hai khung ảnh đầu vào được chuyển sang định dạng PGM 64 Hính 3.4 Kết quả chạy chương trính với 2 khung ảnh 65
Hính 3.7 Ảnh so sánh độ dư thừa với ảnh gốc sau khi bù chuyển động 66 Hính 3.8 Kết quả chạy chương trính với 200 frame ảnh đầu vào 67
Hính 3.10 Các khung ảnh tuần tự được xem bằng phần mềm MegaView 69 Hính 3.11 Một khung ảnh được trìch trong bộ test “football” 69 Hính 3.12 Véc tơ chuyển động của khung ảnh hính 3.10 70 Hính 3.13 Biểu đồ so sánh hiệu năng giữa các thuật toán trên GPU và
Hính 3.14 Biểu đồ so sánh chất lượng nén video theo hệ số PSNR 72
Trang 11DANH SÁCH BẢNG
Bảng 3.1 Thời gian tình toán của các thuật toán trên CPU (tính
Trang 12MỞ ĐẦU
Kỹ thuật nén ảnh số đang đóng một vai trò cực kỳ quan trọng trong các hệ thống viễn thông và truyền thông đa phương tiện để giải quyết vấn đề băng thông của đường truyền Tìn hiệu video số hóa chiếm băng thông lớn hơn rất nhiều lần so với tìn hiệu tương tự Chình ví vậy, kỹ thuật bù chuyển động với việc xác định véc tơ chuyển động sẽ làm giảm thông tin dư thừa giữa các frame liên tiếp giống nhau trong miền không gian và thời gian nhằm giảm kích thước dữ liệu để thực hiện nén video
Tuy nhiên, kỹ thuật tình toán bù chuyển động đòi hỏi phải tím được chuyển động chình xác của đối tượng và công việc này chiếm phần lớn thời gian thực hiện của giải thuật Để giảm thời gian thực hiện của quá trính nén video, ngoài việc cải tiến thuật toán tím kiếm véc
tơ chuyển động, việc tăng hiệu năng của các thiết bị tình toán cũng rất quan trọng
Hiện nay, việc tăng tốc độ của CPU đã chạm tới ngưỡng tối đa, ví ở tốc độ cao, nhiệt
độ CPU cũng tăng cao, trong khi các giải pháp tản nhiệt đã đến mức giới hạn, không thể đáp ứng được khả năng làm mát CPU Trước tính hính đó các nhà nghiên cứu vi xử lý đã chuyển hướng sang phát triển công nghệ đa lõi với cơ chế xử lý song song trong các máy tình Trong những năm gần đây, một trong những hướng nghiên cứu nhiều tiềm năng là sử dụng chip đồ họa GPU và công nghệ xử lý song song CUDA do hãng NVIDIA phát triển nhằm tăng tốc độ
xử lý, nâng cao hiệu quả của thuật toán Xuất phát từ những phân tìch ở trên, tác giả đã chọn
đề tài “Nghiên cứu tăng tốc độ tím kiếm véc tơ chuyển động trong nén video sử dụng kiến
trúc song song GPU NVIDIA và công nghệ CUDA”
Nội dung luận văn gồm phần mở đầu, phần kết luận và ba chương với nội dung cụ thể như sau:
Chương 1: Tổng quan về bù chuyển động và các thuật toán để tìm véc tơ chuyển động trong nén video
Nội dung chình của chương này là giới thiệu tổng quan về kỹ thuật bù chuyển động trong nén video theo chuẩn MPEG và các thuật toán để tím kiếm véc tơ
chuyển động trong thuật toán so sánh khối
Chương 2: Tổng quan về cấu trúc hệ thống xử lý đồ họa GPU và công nghệ tính toán song song dữ liệu CUDA
Trong chương này, tác giả giới thiệu những kiến thức đại cương về tình toán song song, cấu trúc của hệ thống xử lý dữ liệu đồ họa GPU và công nghệ tình toán song song dữ liệu CUDA của hãng NVIDIA
Chương 3: Mô tả chương trình và các kết quả thử nghiệm đạt được
Trang 13Từ những kiến thức đã nghiên cứu được ở chương 1 và chương 2, trong chương 3 tác giả tiến hành xây dựng ứng dụng song song hóa các thuật toán tím véc tơ chuyển động trên thiết bị đồ họa của hãng NVIDIA sử dụng công nghệ CUDA và tiến hành thực nghiệm, đánh giá các kết quả đạt được trên các bộ test chuẩn
Trang 14CHƯƠNG 1 TỔNG QUAN VỀ BÙ CHUYỂN ĐỘNG VÀ CÁC THUẬT TOÁN ĐỂ TÌM VÉC TƠ CHUYỂN ĐỘNG
TRONG NÉN VIDEO
1.1 Tổng quan về bù chuyển động trong MPEG
1.1.1 Khái niệm về nén video
Trong lĩnh vực truyền thông video, kỹ thuật xử lý tìn hiệu chủ yếu tập trung vào mục đìch nén Người ta thường sử dụng 3 phương pháp nén đối với hính ảnh dựa vào các loại độ dư: dư thừa không gian, dư thừa phổ và dư thừa tâm sinh lý nhín
Nén về cơ bản là một quá trính trong đó số lượng số liệu (data) biểu diễn lượng thông tin của một ảnh hoặc nhiều ảnh được giảm bớt bằng cách loại bỏ những
số liệu dư thừa trong tìn hiệu video Các chuỗi ảnh truyền hính có nhiều phần ảnh giống nhau Vậy tìn hiệu truyền hính có chứa nhiều dữ liệu dư thừa, ta có thể bỏ qua mà không làm mất thông tin hính ảnh Đó là các phần xóa dòng, xóa mành, vùng ảnh tĩnh hoặc chuyển động rất chậm, vùng ảnh nền giống nhau, mà ở đó các phần tử liên tiếp hoặc khác nhau rất ìt
Ngoài ra, để tăng hệ số nén ảnh động, chuyển động trong ảnh truyền hính phải được
dự báo, khi đó, ta chỉ cần truyền các thông tin về hướng và mức độ (véc tơ) chuyển động của các vùng ảnh khác nhau Các phần tử lân cận trong ảnh thường giống nhau, do đó chỉ cần truyền các thông tin biến đổi Các hệ thống nén sử dụng đặc tình này của tìn hiệu video và các đặc trưng của mắt người (là kém nhạy với sai số trong hính ảnh có nhiều chi tiết và các phần
tử chuyển động) Quá trính giải nén ảnh là quá trính xấp xỉ để khôi phục ảnh gốc (thường thực hiện ở phìa thu)
Một hệ thống nén video tiêu biểu (hay bộ mã hóa nguồn) bao gồm: bộ chuyển đổi, bộ lượng tử hóa, bộ mă hóa (H nh 1.1):
Hình 1.1: Sơ đồ khối hệ thống nén ảnh tiêu biểu
+ Bộ chuyển đổi: thường dùng phép biến đổi Cosin rời rạc để tập trung năng lượng tìn hiệu vào một số lượng nhỏ các hệ số khai triển để thực hiện phép nén hiệu quả hơn là dùng tìn hiệu nguyên thủy
Trang 15+ Bộ lượng tử hóa: tạo ra một lượng ký hiệu giới hạn cho ảnh nén với hai kỹ thuật, gồm lượng tử vô hướng (thực hiện lượng tử hóa cho từng phần dữ liệu) và lượng tử véc tơ (thực hiện lượng tử hóa một lần một khối dữ liệu) Quá trính này không thuận nghịch
+ Bộ mã hóa: gán một từ mã, một dòng bit nhị phân cho mỗi ký hiệu
Các hệ thống nén được phân biệt dựa trên sự kết hợp khác nhau giữa 3 bộ xử lý trên
và được phân loại như sau:
Hệ thống nén không mất thông tin (lossless data reduction): thực hiện tối thiểu tốc độ
bit mà không làm méo ảnh, hệ thống còn gọi là nén toàn bit hay có tình chất thuận nghịch
Hệ thống nén có mất thông tin (loss data reduction): đạt được độ trung thực tốt nhất
đối với tốc độ bit cho trước, hệ thống phù hợp áp dụng cho tìn hiệu âm thanh và hính ảnh ví
có hệ số nén cao
Trong sơ đồ hính 1.1, tầng chuyển đổi và tầng mã hóa là nơi tìn hiệu xử lý không bị tổn thất, tầng lượng tử là có tổn thất Ngoài ra, dựa trên quan điểm về tổn thất chúng ta có thể phân biệt hai loại mã hóa như sau: mã hóa entropy (mã hóa không tổn thất) và mã hóa nguồn (mã hóa có tổn thất)
- Nén không mất thông tin (kỹ thuật mã hóa entropy):
Kỹ thuật này chỉ quan tâm đến độ đo tin trong dữ liệu mà không quan tâm đến ngữ nghĩa của tin Sau đây là một số kỹ thuật mã hóa entropy hay dùng trong hệ thống xử lý video:
+ Mã hóa chiều dài dải liên tục (RLC - Run Length Coding): các chuỗi điểm ảnh có cùng độ chói (mức màu) sẽ được mã hóa bằng cặp thông tin (độ chói, chiều dài chuỗi)
+ Mã hóa bằng các loại bỏ trùng lặp: các chuỗi đặc biệt được thay thế bằng cờ
mã ngắn cho các giá trị có tần suất xuất hiện cao nhất và từ mã dài hơn cho các giá trị còn lại Khi thực hiện giải nén, các thiết lập mã trùng hợp sẽ được sử dụng để tạo lại
Trang 16giá trị tìn hiệu ban đầu Mã hóa và giải mã Huffman có thể thực hiện một cách dễ dàng bằng cách sử dụng các bảng tím kiếm Như vậy, mã Huffman dựa trên nguyên tắc “ký tự có tần số xuất hiện càng cao thí số bit mã hóa càng ngắn”
tử hóa, các hệ số ìt quan trọng sẽ bị loại bỏ bớt và chỉ giữ lại một số hệ số hệ số đầu tiên gọi là hệ số DCT
+ Mã hóa sai phân: cũng được gọi là mã hóa ước đoán do chỉ mã hóa sự khác biệt giữa giá trị mẫu thực và giá trị ước đoán, mã hóa sai phân thường dùng cho video hính ảnh động Lớp kỹ thuật này bao gồm: điều mã xung sai phân, điều chế delta, điều
mã xung thích nghi
+ Lượng tử hóa véc tơ: mã hóa từng khối hai chiều kìch thước cố định (gọi là véc tơ) và tra bảng tím mã phù hợp nhất Kỹ thuật chỉ thìch hợp cho dữ liệu có
cấu trúc biết trước
1.1.2 Giới thiệu chung về chuẩn MPEG [1]
Nén tìn hiệu video theo chuẩn MPEG (Moving Picture Experts Group) là phương pháp nén ảnh động không những làm giảm dư thừa không gian (như JPEG) mà còn làm giảm
dư thừa thời gian giữa các khung ảnh Đây là khác biệt so với JPEG là chuẩn nén ảnh tĩnh chỉ làm giảm dư thừa không gian trong một khung ảnh
Chuẩn MPEG định nghĩa một khái niệm mới là “nhóm các khung ảnh” (GOP) để giải quyết dư thừa thời gian và cho phép truy xuất ngẫu nhiên khi mã hóa MPEG dùng để lưu trữ Trong chuẩn MPEG, người ta quy định 3 loại khung ảnh phụ thuộc vào phương pháp nén: nén trong khung ảnh (khung I), nén ước đoán (khung P) và nén nội suy hai chiều theo thời
Trang 17gian (khung B) Khung I luôn luôn là khung ảnh đầu tiên trong nhóm GOP, tạo điểm truy xuất ngẫu nhiên chuẩn
Chuẩn nén MPEG bao gồm các tiêu chuẩn nén video có tốc độ luống bìt (tương đương chất lượng ảnh video) khác nhau:
+ MPEG-1 (chuẩn ISO/IEC 11172): có từ tháng 11-1992 MPEG-1 dùng cho nén động có kìch thước 320x240 và tốc độ bit còn từ 1 Mbit/s đến 1,5 Mbit/s dùng cho ghi hính trên băng từ và đĩa quang (CD), đồng thời truyền dẫn trong các mạng (vì dụ như mạngmáy tình) Đối với mã hóa audio stereo, tốc độ khoảng 250 Kbps MPEG-1 có các thành phần chình sau đây:
Phần 1: ISO/IEC 11172 – 1: Hệ thống ghép kênh Video, Audio MPEG-1
Phần 2: ISO/IEC 11172 – 2: Nén video MPEG-1
Phần 3: ISO/IEC 11172 – 3: Nén audio MPEG-1
+ MPEG-4: được thiết kế để mã hóa Video/Audio với tốc độ thấp (khoảng 9÷14 Kbps) chủ yếu ứng dụng trong điện thoại video, multimedia MPEG-4 hoàn thiện vào tháng
10 – 1998
+ MPEG-7: chuẩn này được đề nghị vào tháng 10 – 1998 và thành chuẩn quốc tế
vào tháng 9 – 2001 Mô tả này sẽ kết hợp với chình nội dung của nó cho phép khả năng tím kiếm nhanh và hiệu quả theo yêu cầu người dùng MPEG-7 đặc trưng cho một tập tiêu chuẩn biểu diễn nhiều loại thông tin multimedia khác nhau Chình ví vậy, MPEG-7 còn được gọi là
“Giao thức mô tả nội dung đa phương tiện”
Tiêu chuẩn MPEG là sự kết hợp giữa nén trong ảnh và nén liên ảnh Tức là phương pháp nén có tổn hao dựa trên sự biến đổi DCT và bù chuyển động MPEG dùng biểu diễn màu bằng YCrCb (Hình 1.2)
Trang 18- Ảnh loại I (Intra-picture): là ảnh được mã hóa riêng, tương tự như việc mã
hóa ảnh tĩnh trong JPEG Ảnh I chứa đựng dữ liệu để tái tạo lại toàn bộ hính ảnh ví chúng được tạo thành bằng thông tin của chỉ một ảnh và để dự báo cho ảnh B,P Ảnh I cho phép truy cập ngẫu nhiên, tuy nhiên cho tỷ lệ nén thấp nhất
- Ảnh loại P (Predicted-picture): là ảnh được mã hóa có bù chuyển động từ ảnh
I hoặc ảnh P phìa trước Ảnh P cung cấp cho hệ số nén cao hơn ảnh I và có thể sử dụng làm một ảnh so sánh cho việc bù chuyển động cho các ảnh P và B khác
- Ảnh loại B (Bi-directional predicted picture): là ảnh được mã hóa sử dụng bù
chuyển động từ các ảnh I hoặc P ở phìa trước và ở phìa sau Ảnh B cho tỷ lệ nén cao nhất
- Ảnh loại D (Dc-coded picture): là ảnh được sử dụng trong MPEG-1 và MPEG-4 nhưng không được sử dụng trong MPEG-2 Nó giống như ảnh I, tuy nhiên, chỉ có thành phần một chiều ở đầu ra DCT được thể hiện Nó cho phép dò tím nhanh nhưng chất lượng ảnh thấp
1.1.3.2 Nhóm ảnh (GOP)
Đối với chuẩn MPEG, chất lượng ảnh không những phụ thuộc vào tỷ lệ nén trong từng khuôn hính mà còn phụ thuộc vào độ dài của nhóm ảnh Nhóm ảnh (GOP-Group of picture) là khái niệm cơ bản của MPEG Nhóm ảnh là đơn vị mang thông tin độc lập của MPEG
MPEG sử dụng ba loại ảnh I, B, P Trong đó, ảnh P, B không phải là một ảnh hoàn chỉnh mà chỉ chứa sự khác biệt giữa ảnh đó và ảnh xuất hiện trước nó (đối với ảnh P) hay sự khác biệt đối với cả khuôn hính xuất hiện trước và sau nó (đối với ảnh B) Để có một khuôn hính hoàn chỉnh, ảnh P và B cần có dữ liệu từ các ảnh lân cận Chình ví vậy, đối với MPEG
Trang 19một khái niệm mới là GOP (nhóm ảnh) được sử dụng Mỗi GOP bắt buộc phải bắt đầu bằng một ảnh hoàn chỉnh I và tiếp sau nó là một loạt các ảnh P và B Nhóm ảnh có thể mở hoặc đóng
Nhóm ảnh mở luôn bắt đầu từ một ảnh I và kết thúc ở một ảnh trước ảnh I tiếp theo, tức là ảnh cuối cùng của GOP dùng ảnh đầu tiên của GOP tiếp theo làm ảnh chuẩn (Hính 1.3)
Hình 1.3: Cấu trúc GOP mở
Trong hính 1.3, ảnh P (ảnh 4) được dự báo trước trên cơ sở ảnh I (ảnh 1) Ảnh B được
dự đoán từ hai hướng, ảnh B (ảnh 2) và ảnh B ( ảnh 3) được dự đoán từ
hai ảnh I (ảnh1) và ảnh P (ảnh 4) Ảnh B (ảnh 5,6) được dự đoán từ ảnh P (ảnh 4) và ảnh I tiếp theo (ảnh 6) Một điều chú ý là thứ tự truyền ảnh và hiện ảnh trên màn hính là không giống nhau
Đối với cấu trúc khép kìn (đóng), việc dự đoán ảnh không sử dụng thông tin của GOP khác Trong trường hợp này, theo quy định, ảnh cuối cùng của một GOP bao giờ cũng là ảnh
P (Hình 1.4)
Hình 1.4: Cấu trúc GOP đóng
Trang 20Nhóm ảnh được xác định bởi hai thông số m và n Thông số m xác định số khung hính P và khung hính B xuất hiện giữa hai khung hính I gần nhau nhất Số n xác định số khung hính B giữa hai khung hính P Tỷ lệ nén video của MPEG phụ thuộc rất nhiều vào độ dài của GOP
1.1.3.3 Cấu trúc dòng bit MPEG
Để tạo khả năng chống lỗi khi truyền tìn hiệu qua kênh có nhiễu, bộ ước đoán phải được xác lập lại (reset) thường xuyên và mỗi ảnh nén trong khung hay nén ước đoán được phân đoạn thành nhiều lát nhỏ (slice) cho việc tái đồng bộ tại bộ giải mã phìa thu Cấu trúc dòng MPEG gồm 6 lớp: lớp dãy ảnh (sequence), lớp nhóm ảnh (GOP), lớp ảnh (picture), lớp cắt lát dòng bit (slice), lớp macroblock, lớp khối (block) Mỗi lớp này hỗ trợ một chức năng nhất định: một là chức năng xử lý tìn hiệu (DCT, bù chuyển động) hai là chức năng logic (tái đồng bộ, điểm truy xuất ngẫu nhiên) Quá trính tạo ra dòng bit MPEG là ghép kênh: kết hợp các dòng dữ liệu vào, dòng dữ liệu ra, điều chỉnh đồng bộ và quản lý bộ đệm Cú pháp dòng MPEG bao gồm: lớp dòng bit (stream), lớp gói (pack) và lớp gói tin (packet) như trong Hình1.5:
- Khối (Block): Khối 8x8 các điểm ảnh tìn hiệu chói và tìn hiệu màu dùng cho
phương pháp nén DCT
- Tổ hợp cấu trúc khối (macroblock): một cấu trúc khối là một nhóm các khối
tương ứng với lượng thông tin chứa đựng trong kìch thước 16x16 điểm trên bức ảnh Cấu trúc khối này cũng xác định lượng thông tin chứa trong đó sẽ thay đổi tùy theo cấu trúc mẫu được sử dụng Thông tin đầu tiên trong cấu trúc khối mang dạng của nó (là cấu trúc khối Y hay Cr,Cb) và các véc tơ bù chuyển động tương ứng
- Mảng (Slice): mảng bao gồm một vài cấu trúc khối kề nhau Kìch thước lớn
nhất của mảng có thể bao gồm toàn bộ bức ảnh và kìch thước nhỏ nhất của mảng là một cấu trúc khối Thông tin đầu của mảng chứa đựng vị trì của mảng trong toàn bộ ảnh và hệ số cân bằng lượng tử
- Ảnh (Picture): lớp ảnh cho phép bộ giải mã xác định loại của ảnh được mã
hóa làảnh P, I hay ảnh B Thông tin đầu dùng để chỉ thứ tự truyền khung để bộ giải mã
có thể sắp xếp các ảnh lại theo một thứ tự đúng Trong thông tin đầu của ảnh còn chứa các thông tin về đồng bộ, độ phân giải và phạm vi của véc tơ chuyển động
- Nhóm ảnh (GOP): nhóm ảnh là tổ hợp của nhiều các khung I, P và B Cấu
trúc nhóm ảnh được xác định bằng hai tham số m và n Mỗi một nhóm ảnh bắt đầu
Trang 21bằng một khung I cho phép xác định điểm bắt đầu để tím kiếm và biên tập Thông tin đầu gồm 25 bit chứa mã định thời và điều khiển
- Đoạn (chương trình) video: đoạn video bao gồm thông tin đầu, một số nhóm
ảnh và thông tin kết thúc đoạn Thông tin đầu của đoạn video chứa đựng kìch thước mỗi chiều của ảnh, kìch thước của điểm ảnh, tốc độ bit của dòng video số, tần số ảnh
và bộ đệm tối thiểu cần có Đoạn video và thông tin đầu tạo thành một dòng bit được
mã hóa gọi là dòng cơ bản (Elementary Stream) (Hính 1.5)
Trang 22Hình 1.5: Kiến trúc dòng dữ liệu MPEG
1.1.4 Phương pháp nén video theo chuẩn MPEG
1.1.4.1 Mô hính tổng quát bộ mã hóa video theo chuẩn MPEG [1]
Quá trính nén theo chuẩn MPEG là sự kết hợp giữa nén trong ảnh và nén liên ảnh Tìn hiệu đầu vào có dạng 4:2:2 hoặc 4:2:0 được nén liên ảnh nhằm tạo ra ảnh khác biệt ở đầu ra
bộ cộng Ảnh khác biệt này sau đó được nén trong ảnh qua các bước: biến đổi DCT, lượng tử hóa, mã hóa Cuối cùng, ảnh này được trộn cùng với véc tơ chuyển động đưa đến bộ khuyếch đại đệm sẽ thu được ảnh đã nén Ta xét vì dụ bộ nén theo phương pháp trên, dùng ảnh I và P trong cấu trúc GOP (Hính 1.4)
Ảnh thứ nhất trong nhóm phải được mã hóa như ảnh loại I Trong trường hợp này, sau khi lấy mẫu lần đầu, tìn hiệu video được truyền đến khối biến đổi DCT cho các MacroBlock riêng, sau đó bộ lượng tử và mã hóa entropy Tìn hiệu ra từ bộ lượng tử hóa được đưa đến bộ lượng tử hóa ngược và biến đổi DCT ngược, sau đó được lưu vào bộ nhớ ảnh
Trong trường hợp mã hóa ảnh loại P, mạch nén chuyển động làm việc Trên cơ sở so sánh ảnh đang xét và ảnh trong bộ nhớ sẽ xác định được các véc tơ chuyển động, sau đó dự báo ảnh Sự chênh lệch giữa ảnh đang xét và dự báo ảnh của nó được biến đổi DCT, lượng tử
Trang 23hóa và mã hóa entropy Cũng như trong trường hợp các ảnh loại I, tìn hiệu ra từ bộ lượng tử hóa được giải lượng tử hóa và biến đổi DCT ngược rồi cộng với ảnh dự báo đang xét và lưu vào bộ nhớ (Hính 1.6)
Hình 1.6: Bộ mã hóa MPEG tiêu biểu
1.1.4.2 Lấy mẫu thông tin về màu [1]
Các đại diện của các màu sắc trong hính ảnh được chuyển đổi từ RGB sang YCbCr, bao gồm ba thành phần luma (Y), đại diện cho độ chói (sáng) và hai thành phần sắc độ (Cb
và Cr) đại diện cho màu Do đặc điểm về nhạy cảm trong mắt người đối với mật độ của màu sắc và độ sáng, con người có thể cảm nhận tốt hơn đáng kể đối với độ sáng của một hính ảnh (thành phần Y) so với màu sắc và độ bão hòa màu sắc của một hính ảnh (các thành phần CbCr)
Thông tin thị giác về một vật thể được truyền đi bao gồm tin tức về độ chói, màu sắc
và vị trì của vật đó trong không gian Khi vật thể đó chuyển động hay khi nguồn ánh sáng chiếu lên vật thể thay đổi, các tin tức trên đều thay đổi Như vậy, mô hính toán học của tìn hiệu hính ảnh là các hàm phân bố độ chói L, sắc màu λ và độ bão hoà màu p trong không gian và thời gian:
{
( ) ( ) ( ) } (1.1)
x,y,z – tọa độ trong không gian 3 chiều với t - thời gian
Những phương trính trong (1.1) xác định độ chói (L) và màu sắc ( λ, p ) cho từng điểm di chuyển trong không gian và thời gian Hệ thống truyền hính hiện nay là hệ thống truyền hính phẳng, do đó khi truyền đi các ảnh đen trắng, phân bố độ chói sẽ là hàm ba chiều:
Trang 24L = f L (x,y,t) Điều này cho ta thấy, ngoài giá trị độ chói tức thời L cần phải xác định chình
xác vị trì của điểm sáng trong không gian (hai chiều) màn hính
So với tìn hiệu một chiều, quá trính số hóa tìn hiệu hính ảnh trong không gian hai chiều có thể được thực hiện với nhiều cấu trúc lấy mẫu khác nhau và các bước lượng tử khác nhau nhằm giảm dung lượng tìn hiệu số nhận được Tuy nhiên, trên thực tế cấu trúc lấy mẫu trong đa số trường hợp có dạng trực giao (hính chữ nhật) với giá trị bước lượng tử không thay đổi, ví khi đó quá trính số hóa sẽ đơn giản nhất Khi sử dụng cấu trúc lấy mẫu trực giao, ảnh
số nhận được dưới dạng ma trận các điểm ảnh phân bố theo dòng và cột
Quá trính lấy mẫu tìn hiệu video phải thỏa mãn định lý lấy mẫu Nyquist
Trên thực tế, tần số lấy mẫu thường được lựa chọn cao hơn để tăng khoảng cách giữa dải phổ chình và phổ phụ của tìn hiệu video rời rạc, khi đó thành phần phổ chình có thể được tách ra (trong quá trính khôi phục ảnh gốc) bằng các mạch lọc thông thấp đơn giản Ngoài ra, tìn hiệu video tổng hợp (bao gồm thành phần màu) được lấy mẫu với tần số là bội số của tần
số sóng mang phụ fs (sóng mang màu) Với hệ PAL, tần số lấy mẫu sẽ là 3 fs (13,3 MHz) hoặc 4 fs (17,7 MHz)
Trong hệ thống số hóa tìn hiệu video theo thành phần, ba tìn hiệu R, G, B hoặc thành phần chói Y và hai tìn hiệu hiệu màu R-Y, B-Y sẽ được lấy mẫu với tần số đáp ứng định lý Nyquist và là bội số của tần số dòng theo cả 2 tiêu chuẩn 525 và 625 dòng/ ảnh Tiêu chuẩn CCIR-601 cho phép sử dụng tần số lấy mẫu là 13,5 MHz Số bìt để mã hóa tìn hiệu video là 8 hoặc 10 bìt
Các tiêu chuẩn lấy mẫu video thành phần: có nhiều tiêu chuẩn lấy mẫu theo thành phần, điểm khác nhau chủ yếu ở tỷ lệ giữa tần số lấy mẫu và phương pháp lấy mẫu tìn hiệu chói và tìn hiệu màu (hoặc hiệu màu): đó là các tiêu chuẩn 4:4:4, 4:2:2, 4:2:0, 4:1:1
- Tiêu chuẩn 4:4:4: Tìn hiệu chói và màu được lấy mẫu tại tất cả các điểm lấy mẫu
trên dòng tìch cực của tìn hiệu video Cấu trúc lấy mẫu trực giao (Hính 1.7)
Hình 1.7: Cấu trúc lấy mẫu theo chuẩn 4:4:4
Trang 25- Tiêu chuẩn 4:2:2: Tìn hiệu chói đƣợc lấy mẫu tại tất cả các điểm lấy mẫu trên
dòng tìch cực của tìn hiệu video Tìn hiệu màu trên mỗi dòng đƣợc lấy mẫu với tần số bằng nửa tần số lấy mẫu tìn hiệu chói (Hính 1.8)
Hình 1.8: Cấu trúc lấy mẫu theochuẩn 4:2:2
- Tiêu chuẩn 4:2:0: Tìn hiệu chói đƣợc lấy mẫu tại tất cả các điểm lấy mẫu trên
dòng tìch cực của tìn hiệu video Cách một điểm lấy mẫu một tìn hiệu màu Tại dòng chẵn chỉ lấy mẫu tìn hiệu màu CR, tại dòng chẵn lấy mẫu tìn hiệu CB Nhƣ vậy, nếu tần số lấy mẫu tìn hiệu chói là fD, thí tần số lấy mẫu tìn hiệu màu sẽ là fD/2 (Hính 1.9)
Hình 1.9: Cấu trúc lấy mẫu theo chuẩn 4:2:0
- Tiêu chuẩn 4:1:1: Tìn hiệu chói đƣợc lấy mẫu tại tất cả các điểm lấy mẫu trên dòng
tìch cực của tìn hiệu video Tìn hiệu màu trên mỗi dòng đƣợc lấy mẫu với tần số bằng một
Trang 26phần tư tần số lấy mẫu tìn hiệu chói (Hính 1.10) Như vậy, nếu tần số lấy mẫu tìn hiệu chói là
fD, thí tần số lấy mẫu tìn hiệu màu CR và CB sẽ là fD/4
Hình 1.10: Cấu trúc lấy mẫu theo chuẩn 4:1:1
1.1.4.3 Lượng tử hóa [1]
Sau khi lấy mẫu, hính ảnh được chia thành các khối điểm ảnh 8x8 Tiếp theo, mỗi khối 8x8 của mỗi thành phần (Y, Cb, Cr) chuyển đổi sang một miền tần số đại diện, thông thường là biến đổi cosin rời rạc (DCT) hai chiều
Biên độ của các thành phần tần số sau khi đã được lấy mẫu và trải qua quá trính biến đổi Cosin rời rạc (DCT) ở trên sẽ được lượng tử hóa sao cho làm giảm được số lượng bit cần thiết Các hệ số tương ứng với tần số thấp có các giá trị lớn hơn và như vậy nó chứa phần năng lượng chình của tìn hiệu Do đó phải lượng tử hóa với độ chình xác cao Riêng hệ số một chiều đòi hỏi độ chình xác cao nhất, bởi lẽ nó biểu thị giá trị độ chói trung bính của từng khối phần tử ảnh
Chức năng cơ bản của bộ lượng tử hóa là chia các hệ số F(u,v) cho các hệ số ở vị trì tương ứng trong bảng lượng tử Q(u,v) để biểu diễn số lần nhỏ hơn các giá trị cho phép của hệ
số DCT Các hệ số có tần số thấp được chia cho các giá trị nhỏ, các hệ số ứng với tần số cao được chia cho các giá trị lớn hơn Sau đó, các hệ số được làm tròn (bỏ đi các phần thập phân)
Kết quả ta nhận được bảng Fq(u,v) mới, trong đó phần lớn các hệ số có tần số cao sẽ bằng 0 Hệ số lượng tử hóa thuận được xác định theo biểu thức:
( ) [ ( )
( )] [
( ) ( ) ( ) ] ( )
Các giá trị Fq(u,v) sẽ được mã hóa trong các công đoạn tiếp theo
Cần phải xác định là trong quá trính lượng tử hóa có trọng số có xảy ra mất thông tin, gây tổn hao Đây là bước tổn hao duy nhất trong thuật toán nén Mức độ tổn hao phụ thuộc
Trang 27vào giá trị các hệ số trên bảng lượng tử Sau khi nhân các hệ số lượng tử hóa Fq(u,v) với Q(u,v) và biến đổi ngược DCT sẽ không nhận được block sơ cấp các mẫu f(j,k) Tuy nhiên, trong trường hợp ảnh tự nhiên và lựa chọn các giá trị Q(u,v) thìch hợp, sự khác nhau sẽ nhỏ đến mức mà mắt người không phân biệt được giữa ảnh gốc và ảnh biểu diễn
Các thành phần DC và tần số thấp là các thông số nhạy cảm nhất của khối pixel gốc
Hệ số DC sẽ được lượng tử với độ chình xác 12 bit nhằm tránh các nhiễu xuất hiện giữa các khối điểm ảnh Ngược lại, các hệ số tần số cao có thể lượng tử hóa thô với độ chình xác 2 bit
do khả năng cảm nhận của mắt người giảm ở tần số cao Theo đó, hệ số chia trong bảng lượng tử hóa là nhỏ đối với các hệ số có tần số thấp và tăng từ từ đối với các hệ số có tần số cao hơn
1.1.4.4 Nội suy ảnh
Ảnh thu được sau quá trính thu nhận ảnh hoặc các phép biến đổi không tránh
khỏi nhiễu, khuyết thiếu hoặc không thể xử lý được các trường hợp có độ phức tạp cao, hay không đưa dữ liệu bề mặt vào một định dạng làm cho gọn và thìch hợp để mô phỏng, hiển thị hoặc định vị Sự sai sót này một phần bởi phần cứng, các thiết bị quang học và điện tử, kỹ năng sử dụng các thiết bị chưa tốt, phần khác bởi bản thân các phép biến đổi không phải là toàn ánh, nên có sự ánh xạ thiếu hụt đến những điểm trên ảnh kết quả Kỹ thuật nội suy ảnh giúp cho việc nâng cao chất lượng hính ảnh, làm biến đổi, xử lý được những ảnh có độ phức tạp cao Một số kỹ thuật nội suy ảnh có thể kể tới như: nội suy tuyến tình, nội suy sử dụng hàm cơ sở bán kình, dựa vào điểm láng giềng
Trong nén video, nội suy ảnh được sử dụng để phục hồi các thông tin điểm ảnh từ hai khung hính đã biết và tím các khung hính trung gian giữa hai khung hính này
1.1.4.5 Dự đoán bù chuyển động
Kỹ thuật bù chuyển động [18] được đề xuất từ những năm 1960 và được sử dụng để nâng cao hiệu suất của các bộ nén video Các bộ mã video bù chuyển động
được thực hiện theo ba giai đoạn:
- Giai đoạn 1: Ước lượng chuyển động của mục tiêu (ước lượng chuyển động) giữa
khung tái cấu trúc trước đó và khung hiện tại
- Giai đoạn 2: Tạo ra dự đoán khung hiện tại (bù chuyển động) bằng cách sử dụng các
ước lượng chuyển động và khung tái cấu trúc trước đó
- Giai đoạn 3: Mã hóa vi sai dự đoán và khung thực hiện tại như là sai số dự đoán
Máy thu tái cấu trúc ảnh hiện tại bằng cách sử dụng các ước lượng chuyển động được
mã hóa VLC và sai số dự đoán được mã hóa VLC theo không gian
Trang 28Ước lượng và bù chuyển động là các kỹ thuật phổ biến được dùng để mã hóa về mặt thời gian của tìn hiệu video Các kỹ thuật bù chuyển động khối và ước lượng chuyển động được sử dụng trong các hệ thống nén video có khả năng làm giảm rất lớn tốc độ bit của tìn hiệu Độ dư giữa các khung chứa trong miền thời gian của dãy ảnh số là lý do cho khả năng nén tìn hiệu mà các bộ mã hóa video có thể đạt được Thuật toán này người ta thường dựa vào nền tĩnh và sự chuyển động của các ảnh gần Trong khoảng thời gian ngắn, các dãy ảnh
có thể được miêu tả bằng một nền tĩnh có các vật thể chuyển động trong ảnh gần Nếu nền không thay đổi giữa hai khung thí hiệu của chúng bằng 0 và hai khung có thể được mã hóa thành một Do đó, tỷ lệ nén tăng gấp hai lần so với nén không gian trong khung thứ nhất Nhín chung, các nền không thay đổi hoặc tĩnh có thể cho thêm độ lợi mã hóa
Sự chuyển động của cận cảnh được mô hính hóa bằng các vật thể cứng không quay, chuyển động độc lập với nền Các vật thể chuyển động có thể được phát hiện bằng cách so sánh vật thể cận cảnh giữa hai khung So sánh hoàn hảo đưa ra kết quả sai khác giữa hai khung bằng 0 Về lý thuyết, chuyển động cận cảnh cũng có thể tạo ra độ lợi mã bổ sung Trong thực tế, các vật thể chuyển động tùy thuộc vào tình khăng khìt, chuyển động quay và mềm dẻo, các biến đổi độ sáng mà làm giảm độ lợi mã hóa có thể đạt được Các hệ thống bù chuyển động sử dụng các phương pháp ước lượng chuyển động làm tăng mạnh cả hai độ lợi
mã nền và cận cảnh Chúng tạo ra mã vi sai trong khung thuần tuý khi hai nền là tĩnh, tức là véc tơ chuyển động được tình toán bằng (0,0) Ước lượng chuyển động được ước tình trong trường hợp các cận cảnh chuyển động tạo ra dự đoán méo bé nhất
- Ước lượng chuyển động (Motion estimation): là một quá trính dự đoán trong
khung, có hai loại phổ biến là các thuật toán hồi quy điểm [19, 20] và các thuật toán
so khớp khối (BMA) [1, 8, 9, 10, 11, 12, 13, 14, 15 , 19, 20] Các phương pháp hồi qui điểm rất phức tạp và không chình xác Ví vậy, ìt được sử dụng trong các bộ mã video Các dãy ảnh số tự nhiên thường biểu lộ chuyển động vật thể không rõ ràng nên gây ảnh hưởng bất lợi đến đặc tình hội tụ của các thuật toán hồi quy điểm
Phương pháp ước lượng chuyển động so khớp khối (BMME) là phương pháp ước lượng chuyển động được sử dụng rộng rãi nhất để mã hóa video Phương pháp này được J R Jain và A K Jain [21] khởi đầu năm 1981
Trong thuật toán so khớp khối (BMA) [1, 22], một khung ảnh kìch thước IJ pixel được chia thành KL khối, sau đó thuật toán giả thiết rằng tất cả các điểm trong khối trải qua
sự dịch chuyển tịnh tiến giống nhau, được gọi là véc tơ chuyển động v Với mỗi khối B k,l , k=
1, …,K và l=1,…,L véc tơ chuyển động này nhận được bằng cách cực tiểu hóa tiêu chuẩn so
Trang 29sánh giữa ảnh tham chiếu và ảnh hiện tại trên tất cả các véc tơ chuyển động ứng cử bên trong
cửa sổ tím kiếm S Tiến trính này được minh họa trên hính 1.12 và có thể được lập thành
công thức như sau:
( ) (1.3)
trong đó, S là cửa sổ tím kiếm kìch thước w S h S pixel
BDM(v) là độ đo biến dạng khối dùng để đo chất lượng của sự so sánh giữa khối
trong khung hiện tại và khối ứng cử tương ứng trong khung tham chiếu được dịch chuyển bởi véc tơ chuyển động Khi phương trính (1.3) được ước lượng cho tất cả các
dịch chuyển (v 1 ,v 2) có thể (tức là cho tất cả các khối ứng cử có thể trong cửa sổ tím kiếm) thí thuật toán BMA được xem như là thuật toán tím kiếm đầy đủ (FS)
Hình 1.11: Ước lượng chuyển động so sánh khối
Hàm so sánh (hay BDM) có thể là hàm bất kỳ mà đo được sự bóp méo hoặc sự phù
hợp giữa khối B k,l trong khung hiện tại và khối ứng cử thay thế trong khung tham chiếu Việc lựa chọn BDM thìch hợp là rất quan trọng ví nó tác động đến cả chất lượng dự đoán và độ phức tạp tình toán của thuật toán
Một hàm so sánh hợp lý là hàm tương quan chéo chuẩn hóa (NCCF) được định nghĩa như sau:
Trang 30Do quá trính ước lượng chuyển động tập trung vào việc tối thiểu tìn hiệu DFD, một lựa chọn tự nhiên cho hàm so sánh đó là sai số bính phương trung bính, thường được đưa ra dưới dạng tổng các sai phân bính phương (SSD):
( ) thể hiện cường độ sáng của ảnh hiện tại ở khung thời gian t+1, w B , h B là chiều rộng
và chiều cao của khối B k,l
Để việc tình toán theo công thức (1.3) được khả thi, ta sẽ giới hạn giá trị của các véc
tơ chuyển động v trong một lưới đều hữu hạn (Hính 1.12)
[(
) ( )
] ( )
Trong đó, là kìch thước bước của lưới và ⁄ , ⁄ là số lượng điểm của lưới theo chiều ngang và chiều dọc
Trang 31Hình 1.12: Chia cửa sổ tìm kiếm dưới dạng lưới theo BMA
- Bù chuyển động ( Motion Compensation): Ước lượng độ dịch chuyển của
mục tiêu chuyển động từ khung tham chiếu đến khung hiện tại Ước lượng chuyển động thu được dự đoán bù chuyển động bằng cách tím véc tơ chuyển động giữa khung tham chiếu và khung hiện tại Các phương pháp bù chuyển động gồm hai loại: bù chuyển động ước đoán và nội suy
Phương pháp ước đoán bù chuyển động giả thiết ảnh hiện tại là một phép biến đổi từ ảnh trước đó, nghĩa là biên độ và hướng dịch chuyển không cần thiết phải giống ảnh trước đó
Phương pháp nội suy bù chuyển động là kỹ thuật nhiều độ phân giải: chỉ mã hóa một tìn hiệu phụ với độ phân giải thấp (khoảng 1/2 đến 1/3 tốc độ khung) Ảnh có độ phân giải đầy đủ sẽ được xây dựng lại qua nội suy ảnh có độ phân giải thấp cộng thêm thành phần sửa sai Đơn vị xử lý ảnh mà MPEG sử dụng là macroblock (MB) 16× 16 điểm ảnh Trong ảnh
mã hóa nội suy, các MB có thể là loại nén trong khung hay nén liên khung Trong kỹ thuật ước đoán chuyển động, nếu sử dụng kỹ thuật so khớp khối (BMA - Block Matching Algorithm) thí sẽ thu được các véc tơ chuyển động theo tiêu chì tối thiểu hóa sai số giữa khối cần tím véc tơ chuyển động và mỗi khối ứng cử Các véc tơ chuyển động và khung tái cấu trúc trước đó được đưa vào bộ bù chuyển động để tạo ra dự đoán (Hính 1.13)
Trang 32Hình 1.13: Minh họa quá trình bù chuyển động theo giải thuật BMA [1]
1.2 Các thuật toán để tìm véc tơ chuyển động
Các thuật toán BMA dự đoán chuyển động của một khối các pixel giữa hai khung trong một dãy ảnh Dự đoán tạo ra độ dịch chuyển pixel hoặc véc tơ chuyển động với kìch thước là toàn bộ vùng lân cận tím kiếm Vùng lân cận tím kiếm xác định độ phức tạp của thuật toán Việc tím kiếm dự đoán tốt nhất kết thúc khi sự so khớp khối tốt nhất được xác định trong vùng lân cận tím kiếm
Cỡ không gian tím kiếm xác định độ phức tạp của thuật toán ước lượng chuyển động Các phương pháp tím kiếm đầy đủ (Full Search - FS) tương đối tốn kém và nói chung không được dùng trong các bộ mã hóa video thời gian thực Để khắc phục điều đó, các kỹ thuật tím kiếm nhanh [8, 9, 10, 11, 12, 13, 14, 15] có thể làm giảm một cách đáng kể độ phức tạp tình toán mà vẫn duy trí khá tốt độ chình xác Các thuật toán này làm giảm quá trính tím kiếm theo vài bước liên tục bằng cách mỗi hướng tím kiếm dãy con dựa vào các kết quả của bước hiện tại Các thủ tục được thiết kế để tím các nghiệm tối ưu cục bộ và không đảm bảo cho sự lựa chọn nghiệm tối ưu tổng thể trong vùng lân cận tím kiếm Tuy nhiên, kết quả của nó duy trí ở mức tương đối tốt so với thuật toán tím kiếm đầy đủ (FS) Dưới đây là một số thuật toán tím kiếm nhanh tiêu biểu
1.2.1 Thuật toán tìm kiếm ba bước
Thuật toán này được đề xuất bởi Koga [8] và là một trong những thuật toán tím kiếm nhanh được đề xuất sớm nhất Mô hính tím kiếm của thuật toán tím kiếm ba bước (TSS) được chỉ ra ở Hính 1.14 dưới đây: Bước đầu tiên bao gồm tím kiếm dựa trên độ phân giải 4-điểm/4-đường ở 9 vị trì (cửa sổ tím kiếm kìch thước 9x9), với điểm trọng tâm tương ứng với
Trang 33véc tơ chuyển động (MV) bằng 0 Bước thứ hai bao gồm việc tím kiếm dựa trên độ phân giải 2-điểm/2-đường (cửa sổ tím kiếm kìch thước 5x5) xung quanh vị trì đã được xác định ở bước đầu tiên Việc này được lặp lại ở bước thứ ba với độ phân giải 1-điểm/1-đường và một cửa sổ tím kiếm kìch thước là 3x3 Bước cuối cùng này cho ta véc tơ chuyển động
Thuật toán TSS là một trong những thuật toán BMA phổ biến nhất và cũng được giới thiệu bởi RM8 trong chuẩn H.261 và SM3 trong chuẩn nén MPEG
Hình 1.14: Mô hình tìm kiếm theo thuật toán TSS
Các bước của thuật toán:
- Bước 1: Tím kiếm tại 9 điểm, xuất phát từ điểm trọng tâm của cửa sổ tím
kiếm (tương ứng với véc tơ chuyển động bằng 0) Kìch thước bước nhảy là 4 (độ phân giải là 4 điểm / 4 đường)
- Bước 2: Lặp lại như bước 1 với điểm trọng tâm là điểm đã tím được ở bước 1
nhưng kìch thước bước nhảy lúc này là 2 (độ phân giải 2 điểm/2 đường)
- Bước 3: Lặp lại cách tím kiếm như trên với điểm trọng tâm lúc này là điểm đã
tím được ở bước 2 nhưng với kìch thước bước nhảy là 1 (độ phân giải 1 điểm/1 đường) Điểm tím được ở bước này chình là véc tơ chuyển động của khối Kết thúc thuật toán
1.2.2 Thuật toán tìm kiếm 2D-logarit
Thuật toán tím kiếm 2D-logarit (2DLOG) được đề xuất bởi Jain vào năm 1981 [11]
Nó sử dụng mô hính tím kiếm chữ thập trong mỗi bước Kìch thước của bước tím kiếm khởi tạo là d/4 Kìch thước này được giảm một nửa chỉ khi điểm có độ đo biến dạng khối (BDM) cực tiểu ở bước trước là một điểm trọng tâm hoặc điểm cực tiểu hiện tại nằm trên biên của
Trang 34cửa sổ tím kiếm Ngược lại, kìch thước của bước tím kiếm được giữ nguyên Khi kìch thước bước tím kiếm giảm về 1, tất cả 8 điểm kiểm tra ngay sát điểm kiểm tra trung tâm của bước này được tím kiếm Hai đường tím kiếm khác nhau được chỉ ra ở Hính 1.15 Đường tím kiếm thứ nhất đòi hỏi (5 + 3 + 3 + 8) = 19 điểm kiểm tra Đường tím kiếm thứ hai đòi hỏi (5 + 3 +
2 + 3 + 2 + 8) = 23 điểm kiểm tra
Hình 1.15: Hai đường tìm kiếm của thuật toán tìm kiếm 2DLOG
1.2.3 Thuật toán tìm kiếm trực giao
Thuật toán tím kiếm trực giao (OSA) được đề xuất bởi A Puri vào năm 1987 [10]
Nó gồm có các cặp các bước tím kiếm theo chiều ngang và chiều dọc với kìch thước của bước tím kiếm giảm theo logarit Hai đường tím kiếm của OSA được chỉ ra ở hính 1.16 dưới đây Bắt đầu từ bước tím kiếm theo chiều ngang, ba điểm kiểm tra trên hướng ngang được tím kiếm Điểm kiểm tra cực tiểu trở thành điểm trung tâm của bước tím kiếm theo chiều dọc (cũng gồm có 3 điểm kiểm tra) Sau đó kìch thước của bước tím kiếm giảm xuống một nửa
và sử dụng chiến lược tím kiếm tương tự Thuật toán kết thúc khi kìch thước bước tím kiếm bằng 1 Cho d = 7, thuật toán OSA đòi hỏi (3 + 2 + 2 + 2 + 2 + 2) = 13 điểm kiểm tra Trong trường hợp tổng quát, thuật toán OSA đòi hỏi [1 + 4{log2(d + 1)}] điểm kiểm tra
Trang 35Hình 1.16: Hai đường tìm kiếm của thuật toán tìm kiếm trực giao
1.2.4 Thuật toán tìm kiếm CROSS
Thuật toán tím kiếm CROSS (CSA) được đề xuất bởi Ghanbari vào năm 1990 [13]
Nó cũng là một thuật toán t m kiếm logarit sử dụng mô h nh t m kiếm vắt chéo (X) (không phải chữ thập +) tại mỗi bước H nh 1.17 chỉ ra hai đường tím kiếm của thuật toán CSA Theo như hính 1.18, có 5 điểm kiểm tra nằm trong mô hính tím kiếm vắt chéo tại mỗi bước
Kìch thước của bước được khởi tạo là d/2 Khi kìch thước này giảm về 1, mô hính tìm kiếm chữ thập (+) (như phần phìa dưới bên trái hính 1.17) được sử dụng nếu điểm BDM cực tiểu ở bước kế trước hoặt là điểm trung tâm, hoặc là phìa trên bên trái hay phìa dưới bên phải của điểm kiểm tra Ngược lại, mô hính tím kiếm vắt chéo (X) (như phần phìa trên bên phải hính 1.17) được sử dụng Cho d = 7, số lượng điểm kiểm tra đòi hỏi là (5 + 4 + 4 + 4) = 17 điểm Trong trường hợp tổng quát, số lượng điểm kiểm tra đòi hỏi là [5 + 4{log2(d)}]
Trang 36Hình 1.17: Hai đường kiểm tra theo thuật toán tìm kiếm CROSS
1.2.5 Thuật toán tìm kiếm ba bước mới
Thuật toán tím kiếm ba bước mới (NTSS) được đề xuất bởi Li, Zeng và Liou vào năm
1994 [14] Nó là một phiên bản chỉnh sửa của thuật toán tím kiếm ba bước cho việc tím kiếm các chuỗi video chuyển động nhỏ Với các chuỗi video này, sự phân phối véc tơ chuyển động thiên về trọng tâm nhiều hơn Ví thế, 8 điểm láng giềng được tím kiếm thêm vào ở trong bước thứ nhất của TSS
Trang 37Hình 1.18: Hai đường tìm kiếm của thuật toán tìm kiếm ba bước mới
1.2.6 Thuật toán tìm kiếm bốn bước
Thuật toán tím kiếm bốn bước (FSS) được đề xuất bởi L.M.Po và W.C.Ma vào năm
1996 [15] Thuật toán này cũng khai thác đặc trưng thiên về trọng tâm của chuỗi video thế giới thực bằng việc sử dụng một kìch thước bước tím kiếm khởi tạo nhỏ hơn so với thuật toán TSS (Hính 1.19) Kìch thước bước khởi tạo là một phần tư kìch thước vùng tím kiếm chuyển động d (tức là d/4) Như các Hính 1.20 và Hính 1.21 đã chỉ ra, có 3 hoặc 5 điểm kiểm tra yêu cầu trong các bước thứ 2 và thứ 3 Hơn nữa, nếu điểm kiểm tra BDM cực tiểu ở bước đó là điểm trọng tâm, kìch thước của bước sẽ giảm xuống một nửa và thuật toán sẽ chuyển thẳng sang bước 4 Trong trường hợp tổng quát, thuật toán có thể mở rộng như sau Nếu kìch thước của bước thứ 4 lớn hơn 1, việc tím kiếm bốn bước khác được thực hiện với bước 1 tương đương với bước cuối cùng của công đoạn tím kiếm 4 bước trước đó Số lượng điểm
kiểm tra trong trường hợp tồi nhất là [18{log2((d +1)/4)} + 9]
Trang 38Hình 1.19: Hai đường tìm kiếm chuyển động lớn theo thuật toán FSS
Hình 1.20: Hai đường tìm kiếm chuyển động nhỏ của thuật toán FSS
Các bước của thuật toán:
- Bước 1: Tím kiếm tại 9 điểm, xuất phát từ điểm trọng tâm của cửa sổ tím kiếm
(tương ứng với véc tơ chuyển động bằng 0) Kìch thước bước nhảy là 2 (độ phân giải là
2 điểm / 2 đường) Nếu điểm cần tím nằm ở trọng tâm cửa sổ thí chuyển
sang bước 4, nếu không chuyển sang bước 2
- Bước 2: Vẫn duy trí kìch thước bước nhảy là 2 như ở bước 1 nhưng cách thức
tím kiếm được điều chỉnh như sau:
Trang 39+ Nếu điểm tím được ở bước 1 nằm ở góc của hính vuông tím kiếm thí lúc này
ta chỉ tím kiếm tại 5 vị trì ở 5 đỉnh góc vuông (ứng với chiều của véc tơ chuyển động tại bước 1)
+ Nếu điểm tím được ở bước 1 nằm ở trên cạnh (không phải ở đỉnh góc vuông) thí ta kiểm tra 3 vị trì trên cạnh theo chiều của véc tơ chuyển động đã xác định được ở bước 1
+ Nếu điểm tím được ở bước này là điểm trọng tâm thí chuyển sang bước 4, ngược lại chuyển sang bước 3
- Bước 3: Lặp lại cách tím kiếm như bước 2 nhưng kết thúc bước này ta chuyển
sang bước 4
- Bước 4: Tím kiếm 8 điểm xung quanh điểm xuất phát (với điểm xuất phát là
điểm đã được xác định ở bước trước đó (bước nhảy đến bước 4) nhưng với kìch thước bước nhảy là 1 Điểm xác định được ở bước này cho ta véc tơ chuyển động của khối Kết thúc thuật toán
1.2.7 Thuật toán tìm kiếm khối dựa trên gradient descent
Thuật toán tím kiếm khối dựa trên gradient descent (BBGDS) được đề xuất bởi L.K.Liu
và E.Feig vào năm 1996 [14] Đây là thuật toán sử dụng một mô hính tím kiếm thiên về điểm trọng tâm trong số 9 điểm kiểm tra trong mỗi bước với kìch thước bước tím kiếm là 1 Nó không hạn chế số lượng các bước tím kiếm nhưng nó được dừng khi điểm kiểm tra cực tiểu của bước hiện tại là một điểm trọng tâm hoặc nằm trên biên của cửa sổ tím kiếm Có sự chồng chéo của các điểm kiểm tra trong các bước liền kề Thuật toán BBGDS hoạt động tốt hơn với các chuyển động nhỏ Hai đường tím kiếm chuyển động nhỏ của thuật toán BBGDS được chỉ ra ở Hính 1.21 dưới đây
Trang 40Hình 1.21: Mô hình tìm kiếm của thuật toán BBGDS
1.2.8 Thuật toán tìm kiếm Diamond
Thuật toán tím kiếm Diamond (DS) được đề xuất bởi S.Zhu và K.K.Ma vào năm 2000 [15] Thuật toán này dựa trên sự phân phối véc tơ chuyển động của các chuỗi video thế giới thực Nó sử dụng hai mô hính tím kiếm, trong đó mô hính thứ nhất gọi là mô hính tím kiếm Diamond lớn (LDSP) bao gồm 9 điểm kiểm tra và ở hính dạng kim cương Mô hính thứ hai bao gồm 5 điểm kiểm tra tạo thành một mô hính kim cương nhỏ (SDSP) Việc tím kiếm bắt đầu với LDSP và được lặp lại cho tới khi điểm BDM cực tiểu nằm trên trọng tâm tím kiếm
Mô hính tím kiếm lúc này được chuyển sang SDSP Vị trì xác định điểm sai lệch cực tiểu sẽ cho chúng ta véc tơ chuyển động cuối cùng Các bước xử lý của thuật toán này được chỉ ra ở Hính 1.22 Thuật toán kim cương là một thuật toán nổi tiếng được sử dụng trong chuẩn MPEG-4