Tải bản đầy đủ (.pdf) (82 trang)

Thuật toán deblocking trong xử lý video nén theo chuẩn h 264

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.11 MB, 82 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

VŨ TUẤN ANH

THUẬT TOÁN DEBLOCKING TRONG XỬ LÝ
VIDEO NÉN THEO CHUẨN H.264
Ngành: Công nghệ Điện tử - Viễn thông
Chuyên ngành: Kỹ thuật Điện tử
Mã số: 60 52 70

LUẬN VĂN THẠC SĨ

NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. Lê Vũ Hà

Hà Nội - 2009

i


MỤC LỤC
Trang
BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
DANH MỤC CÁC BẢNG
MỞ ĐẦU
CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ NÉN VIDEO .................................. 1
1.1. Khái niệm về video ........................................................................................... 1
1.2. Các phương pháp nén video ............................................................................. 6
1.2.1. Giảm tốc độ dòng bit dựa trên đặc điểm của thị giác người ...................... 6


1.2.2. Nén dòng dữ liệu video số trong miền không gian .................................... 7
1.2.3. Nén dữ liệu video số theo miền thời gian .................................................. 7
1.2.4. Nén hỗn hợp sử dụng tổ hợp của các phương pháp trên ............................ 7
1.3. Tham số nén video ............................................................................................ 8
CHƢƠNG 2: CHUẨN NÉN H.264 .............................................................................. 9
2.1. Giới thiệu chung về chuẩn nén H.264 .................................................................. 9
2.2. Cơ chế nén ảnh của H.264 ................................................................................. 10
2.2.1. Bộ nén .......................................................................................................... 10
2.2.2. Bộ giải nén ................................................................................................... 11
2.3. Cấu trúc của H.264 ............................................................................................. 12
2.3.1. Phân chia khung hình thành các MB ......................................................... 13
2.3.2. Dự đoán Inter trong H.264 ......................................................................... 15
2.3.2.1. Các véc-tơ chuyển động ........................................................................ 15
2.3.2.2. Xác định các mẫu nội suy ..................................................................... 16
ii


2.3.2.3. Ước lượng véc-tơ chuyển động và bù chuyển động ............................. 19
2.3.3. Dự đoán Intra trong H.264 ......................................................................... 22
2.3.3.1. Các mode dự đoán cho block 4x4 (đối với thành phần độ chói) .......... 23
2.3.3.2. Các mode dự đoán Intra16x16 (đối với thành phần độ chói) ................ 25
2.3.3.3. Các mode dự đoán Intra8x8 (đối với thành phần sắc độ) ..................... 26
2.3.3.4. Báo hiệu trong các mode dự đoán Intra ................................................ 26
2.3.4. Quyết định mode dự đoán ............................................................................ 26
2.3.5. Phép biến đổi và lượng tử hóa ..................................................................... 30
2.3.5.1. Biến đổi và lượng tử hóa dư thừa 4x4 (các blok 0†15, 18†25) ............ 31
2.3.5.2. Lượng tử hoá ......................................................................................... 33
2.3.5.3. ReScaling............................................................................................... 35
CHƢƠNG 3: THUẬT TOÁN DEBLOCKING ........................................................ 37
3.2.


Giới thiệu ........................................................................................................ 37

3.2.

Phân tích biên ................................................................................................. 40

3.2.1. Lỗi phân bố trong block 4x4 ...................................................................... 40
3.2.2. Tính thích ứng mức đường biên của bộ lọc ............................................... 40
3.2.3. Tính thích ứng mức mẫu của bộ lọc........................................................... 41
3.2.4. Lưu đồ thuật toán tính giá trị BS ................................................................ 44
3.3. Hoạt động của bộ lọc......................................................................................... 44
3.3.1. Tổng quan về hoạt động lọc......................................................................... 44
3.3.2. Việc lọc đối với các đường biên có BS từ 1†3 .......................................... 45
3.3.3. Việc lọc đối với các đường biên có BS = 4 ............................................... 47
3.3.4. Lưu đồ thuật toán của bộ lọc Deblocking .................................................. 48
CHƢƠNG 4: CHƢƠNG TRÌNH MÔ PHỎNG ....................................................... 50
4.1. Giới thiệu............................................................................................................ 50
4.2. Sơ đồ khối của chương trình mô phỏng ............................................................. 53
iii


4.3. Các kết quả lối ra của chương trình ................................................................... 57
4.3.1. Kết quả hình ảnh thu được trong quá trình phân tích khung hình đầu tiên . 57
4.3.2. Kết quả hình ảnh thu được trong quá trình phân tích khung hình bất kỳ
trong chuỗi video........................................................................................ 60
4.4. Đánh giá kết quả và nhận xét ............................................................................. 63
4.4.1. Đánh giá kết quả......................................................................................... 63
4.4.2. Nhận xét ..................................................................................................... 66
KẾT LUẬN

TÀI LIỆU THAM KHẢO

iv


BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT
CABAC
CAVLC
CIF
CODEC

Context-based Adaptive Binary Arithmetic Coding
Context Adaptive Variable Length Coding
Common Intermediate Format
COder/DECoder pair

BMA
BRR
BS

Block Match algorithms
Bit Rate Reduction
Boundary strength

DCT

Discrete cosine transform

GOP


Group of pictures

HDTV
HVS

High definition television
Human visual system

IDCT

Inverse Discrete Cosine Transform

JVT

Joint Video Team

LSB
LZC

Least significant bit
Layered Zero Coding

MAE
MB
MC
MND
MPEG
MSB
MSE


Mean Absolute Error
Macroblock
Motion compensation
Minimally noticeable distortion
Moving Picture Experts Group
Most significant bit
Mean square error

PSNR

Peak signal-to-noise ratio

QCIF
QP

Quarter Common Intermediate Format
Quantization parameter
v


RD
RGB

Rate distortion
Red/Green/Blue colour space

SAD
SAE
SAQ
SI

SP
SNR
SQCIF

Sum of Absolute Differences
Sum of Absolute Errors
Successive approximation quantization
Switching Intra Picture
Switching Prediction Picture
Signal-to-noise ratio
Sub - Quarter Common Intermediate Format

UTQ

Uniform threshold quantization/quantizer

VLC
VO
VOP

Variable Length Code
Video object
Video object plane

YUV

A colour space

vi



DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình vẽ 1.1: Chuỗi video xen kẽ ..................................................................................... 1
Hình vẽ 1.2: Cấu trúc lấy mẫu ......................................................................................... 3
Hình vẽ 1.3: Cấu trúc lấy mẫu 4:2:2................................................................................ 3
Hình vẽ 1.4: Cấu trúc lấy mẫu 4:1:1................................................................................ 4
Hình vẽ 1.5: Cấu trúc lấy mẫu 4:2:0................................................................................ 4
Hình vẽ 1.6: Khung hình video lấy mẫu ở các độ phân giải khác nhau .......................... 5
Hình vẽ 2.1: Sơ đồ khối của bộ nén theo chuẩn H.264 ................................................. 11
Hình vẽ 2.2: Sơ đồ khối của bộ giải nén theo chuẩn H.264 .......................................... 12
Hình vẽ 2.3: Các profile trong chuẩn nén H.264........................................................... 13
Hình vẽ 2.4: Phân chia MB theo các kích thước 16x16, 16x8, 8x16 và 8x8 ................ 13
Hình vẽ 2.5: Phân chia MB theo các kích thước 8x8, 4x8, 8x4 và 4x4 ........................ 14
Hình vẽ 2.6: a) Sai khác giữa hai khung hình liên tiếp ................................................. 15
b) Khung hình sai khác đã được bù chuyển động .................................... 15
Hình vẽ 2.7: Ví dụ về dự đoán véctơ chuyển động ....................................................... 16
Hình vẽ 2.8: Nội suy các vị trí giữa các điểm ảnh ........................................................ 17
Hình vẽ 2.9: Nội suy của các vị trí ¼ khoảng cách điểm ảnh ....................................... 17
Hình vẽ 2.10: Vùng hình ảnh được nội suy của các vị trí ¼ pixel ................................ 18
Hình vẽ 2.11: Vị trí nội suy 1/8 của các thành phần sắc độ .......................................... 19
Hình vẽ 2.12: Mô tả hoạt động ước lượng véc-tơ chuyển động .................................... 20
Hình vẽ 2.13: Vị trí của block hiện tại và vị trí của các block kế cận (cùng kích thước
block) .................................................................................................... 21

vii


Hình vẽ 2.14: Vị trí của block hiện tại và vị trí của các block kế cận (khác kích thước)
.............................................................................................................. 22
Hình vẽ 2.15: Gán nhãn các mẫu dự đoán (4x4) ........................................................... 23

Hình vẽ 2.16: Các mode dự đoán Intra4x4 (thành phần độ chói) ................................. 24
Hình vẽ 2.17: Ví dụ về các mode dự đoán Intra4x4 trong thực tế ................................ 24
Hình vẽ 2.18: Các mode dự đoán Intra16x16 (thành phần độ chói) ............................. 25
Hình vẽ 2.19: Ví dụ về các mode dự đoán Intra16x16 trong thực tế ............................ 25
Hình vẽ 2.20: MSE của dữ liệu dư thừa ........................................................................ 29
Hình vẽ 2.21: Lưu đồ của thuật toán quyết định mode. ................................................ 30
Hình vẽ 2.22: Thứ tự truyền của các block dư thừa trong một MB .............................. 31
Hình vẽ 3.1: Deblocking với vai trò là một bộ lọc post-filter ....................................... 38
Hình vẽ 3.2: Loop-filter trong chuẩn nén H.264 ........................................................... 39
Hình vẽ 3.3: Mô tả đường biên giữa các block mang tính trực quan ............................ 42
Hình vẽ 3.4: Lưu đồ thuật toán tính giá trị BS .............................................................. 44
Hình vẽ 3.5: Lưu đồ thuật toán của bộ lọc Deblocking ................................................ 48
Hình vẽ 3.6: Lưu đồ thuật toán của bộ lọc Deblocking (tiếp theo) ............................... 49
Hình vẽ 4.1: Giao diện chính của chương trình ............................................................ 51
Hình vẽ 4.2: Giao diện chính nhập thông số cho chương trình ..................................... 52
Hình vẽ 4.3: Sơ đồ khối tổng quát của chương trình .................................................... 53
Hình vẽ 4.4: Sơ đồ khối thực hiện chức năng Intra coding ........................................... 54
Hình vẽ 4.5: Sơ đồ khối thực hiện chức năng Inter coding ........................................... 55
Hình vẽ 4.6: Sơ đồ khối thực hiện chức năng Inter coding (tiếp theo) ......................... 56
Hình vẽ 4.7: Khung hình thành phần độ chói đầu tiên trong chuỗi video .................... 57
Hình vẽ 4.8: Khung hình thành phần độ chói sau khi dự đoán Intra4x4 mode DC ...... 58
Hình vẽ 4.9: Khung hình thành phần độ chói sau khi thực hiện DCT và lượng tử hoá
................................................................................................................. 58
viii


Hình vẽ 4.10: Khung hình thành phần độ chói sau khi thực hiện IDCT và lượng tử hóa
ngược .................................................................................................... 59
Hình vẽ 4.11: Khung hình thành phần độ chói sau khi khôi phục lại nhưng không sử
dụng bộ lọc ........................................................................................... 59

Hình vẽ 4.12: Khung hình thành phần độ chói sau khi khôi phục lại có sử dụng bộ lọc
.............................................................................................................. 60
Hình vẽ 4.13: Khung hình thành phần độ chói trong chuỗi video chưa được xử lý ..... 60
Hình vẽ 4.14: Khung hình thành phần độ chói trong chuỗi video sau khi thực hiện dự
đoán Inter .............................................................................................. 61
Hình vẽ 4.15: Khung hình thành phần độ chói trong chuỗi video sau khi thực hiện biến
đổi DCT và lượng tử hoá ...................................................................... 61
Hình vẽ 4.16: Khung hình thành phần độ chói trong chuỗi video sau khi thực hiện biến
đổi IDCT và lượng tử hoá ngược ......................................................... 62
Hình vẽ 4.17: Hình ảnh trong khung hình thành phần độ chói sau khi khôi phục lại
nhưng không sử dụng bộ lọc ................................................................ 62
Hình vẽ 4.18: Hình ảnh trong khung hình thành phần độ chói sau khi khôi phục lại có
sử dụng bộ lọc....................................................................................... 63
Hình vẽ 4.19: Một khung hình thành phần độ chói đại diện cho chuỗi video
“Test1.avi” ......................................................................................... 64
Hình vẽ 4.20: Một khung hình thành phần độ chói đại diện cho chuỗi video
“Test2.avi” ......................................................................................... 65

ix


DANH MỤC CÁC BẢNG
Bảng 1.1: Các định dạng khung hình video .................................................................... 5
Bảng 2.1: Một số giá trị tiêu biểu của Qstep ................................................................. 34
Bảng 2.2: Các giá trị MF tương ứng với 6 giá trị QP đầu tiên ...................................... 35
Bảng 3.1: Bộ lọc deblocking đối với các chuẩn nén khác nhau .................................... 37
Bảng 3.2: Ví dụ về các giá trị mẫu trong một block ..................................................... 40
Bảng 3.3: Các điều kiện xác định giá trị BS ................................................................. 41
Bảng 3.4: Các giá trị của α và β sử dụng trong H.264 .................................................. 43
Bảng 3.5: Các giá trị c0 sử dụng trong H.264 ................................................................ 47


x


MỞ ĐẦU
Ngày nay, với sự phát triển vượt bậc về công nghệ trong lĩnh vực điện tử, viễn
thông và công nghệ thông tin, các tính năng cũng như các loại hình dịch vụ trong lĩnh
vực này đều có xu hướng hội tụ trong một vài thiết bị nhỏ gọn. Chẳng hạn, chỉ với một
thiết bị cầm tay người sử dụng có thể sử dụng cũng như truy cập được rất nhiều các
loại hình dịch vụ của các nhà cung cấp dịch vụ khác nhau như: đàm thoại, truy cập
internet, xem truyền hình, chạy các ứng dụng như trên máy tính cá nhân…
Để có được kết quả này là nhờ vào sự phát triển mạnh mẽ của cả lĩnh vực phần
cứng cũng như phần mềm. Sự ra đời của những chíp vi điều khiển có tốc độ và năng
lực xử lý rất cao được đóng gói nhỏ gọn cùng với các thuật toán phần mềm tối ưu làm
tăng năng lực tính toán cũng như giảm thiểu được băng thông.
Những phát triển quan trọng trong các lĩnh vực về xử lý hình ảnh đã cho ra đời
những kỹ thuật nén và phương pháp truyền tải hình ảnh hiệu quả cho phép giải quyết
được nhiều vấn đề băng thông. Trong đó, nổi bật hơn cả là sự ra đời của chuẩn nén
H.264 được xem là chuẩn nén video tốt nhất hiện nay. Chuẩn nén H.264 cho phép dữ
liệu video được nén với tỉ lệ nén rất cao nhưng vẫn đáp ứng được yêu cầu về chất
lượng về hình ảnh.
Mục đích của luận văn này là tập trung vào nghiên cứu và lập trình mô phỏng
thuật toán Deblocking trong chuẩn H.264. Đây là một thuật toán khôi phục ảnh cho
phép cải thiện chất lượng hình ảnh video được nén theo chuẩn H.264, nhằm khắc phục
việc suy giảm chất lượng hình ảnh do bản thân các yếu tố trong các phương pháp nén
dữ liệu gây ra. Thuật toán Deblocking có thể được cài đặt trên các phần cứng chuyên
dụng cũng như bằng phần mềm.
Nội dung luận văn bao gồm:

xi



­

Chương 1: Giới thiệu một số khái niệm tổng quan về video và các kỹ thuật nén
video.

­

Chương 2: Trình bày một số nội dung chính của chuẩn nén H.264. Do thuật
toán Deblocking là một thành phần được tích hợp trong trong bộ nén và giải
nén nên luận văn sẽ trình bày chi tiết vào các vấn đề chính của H.264 liên quan
đến quá trình triển khai và xây dựng phần mềm mô phỏng.

­

Chương 3: Trình bày thuật toán Deblocking.

­

Chương 4: Chương trình mô phỏng và đánh giá kết qủa.
Do thời gian có hạn nên luận văn chỉ mới đề cập được một phần các vấn đề

trong kỹ thuật nén H.264 nói chung và thuật toán Deblocking nói riêng do vậy chắc
chắn không tránh khỏi thiếu sót. Vì vậy, tác giả xin trân trọng những đóng góp của các
Thày cô và các đồng nghiệp xa gần để luận văn ngày càng hoàn chỉnh hơn. Mọi ý kiến
đóng góp xin gửi về cho tác giả theo địa chỉ
Cuối cùng, tôi xin chân thành cảm ơn sự giúp đỡ và sự chỉ bảo tận tình của Thày
giáo hướng dẫn luận văn, TS. Lê Vũ Hà - Bộ môn Xử lý thông tin - Khoa Điện tử Viễn
thông - Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội, đã giúp đỡ tôi hoàn

thành luận văn này.

Hà nội, ngày 02 tháng 11 năm 2009

xii


1


CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ NÉN VIDEO
1.1. Khái niệm về video
Một cảnh video tự nhiên có tính liên tục về không gian và thời gian. Khi biểu
diễn dưới dạng dữ liệu video số thì video là chuỗi các hình ảnh liên tiếp, còn gọi là
khung hình. Chuỗi các khung hình xuất hiện liên tục với tốc độ đủ nhanh sẽ cho ta cảm
giác chuyển động của một hình ảnh với sự chuyển động của các đối tượng trong khung
cảnh (tối thiểu để có cảm giác chuyển động tự nhiên là khoảng 25 khung hình/giây do
thời gian lưu ảnh trong võng mạc là khoảng 1/25 giây) [1].
Một tín hiệu video có thể được lấy mẫu đầy đủ một chuỗi các khung hình (lấy
mẫu liên tục) hoặc lấy mẫu xen kẽ.
Mỗi khung hình được lấy mẫu xen kẽ gồm hai thành phần là Top field và Bottom
field. Top field bao gồm các dòng có thứ tự chẵn còn Bottom field bao gồm các dòng
có thứ tự lẻ trong một khung hình đầy đủ như được mô tả trong hình vẽ sau:

Hình vẽ 1.1: Chuỗi video xen kẽ
Việc lấy mẫu xen kẽ có ưu điểm là làm cho chuyển động của cảnh trong video ít
bị giật hình hơn.


Không gian màu:


Theo lý thuyết về biểu diễn màu sắc, mỗi một màu sắc tự nhiên đều có thể được
tạo từ một tổ hợp của ba màu đơn sắc: màu đỏ, màu lục và màu lam (Còn được gọi là
ba màu cơ sở của không gian màu RGB). Trong không gian màu RGB, các màu khác
nhau có thể được mô tả như là các điểm bên trong một hình lập phương đơn vị: Gốc
tọa độ (0, 0, 0) biểu diễn cho màu đen và điểm (1, 1, 1) tương ứng với màu trắng; ba
thành phần R (đỏ), G (lục) và B (lam) là ba trục của không gian. Biểu diễn màu sắc
1


theo ba thành phần RGB rất thuận tiện cho việc hiển thị hình ảnh trên màn hình máy
tính hay máy thu hình.
Một hệ thống biểu diễn màu khác thường được sử dụng chủ yếu trong lĩnh vực
truyền hình là không gian màu YUV, với mỗi màu sắc được biểu diễn bởi một tổ hợp
của ba thành phần: Y là độ chói và U, V là hai thành phần biểu diễn sắc độ. Biểu diễn
hình ảnh video trong không gian màu này cho phép đạt được hiệu suất truyền hình ảnh
cao hơn và giữ được tính tương thích giữa các chuẩn truyền hình màu với truyền hình
đen trắng. Thành phần độ chói (luminance) mang thông tin về cường độ ánh sáng, hai
thành phần còn lại mang thông tin về sắc độ (chrominance) của các điểm ảnh.
Dưới đây là biểu diễn mối quan hệ giữa hai không gian màu YUV và RGB (theo
chuẩn CCIR 601):
Y = 0,299R + 0,587G + 0,114B

(1.1)

U = 0,493(B - Y)

(1.2)

V = 0,877(R - Y)


(1.3)

Trong đó: Y là thành phần chói còn U, V là hai thành phần sắc độ.
Một định dạng màu khác tương tự như YUV và cũng hay được sử dụng là
YCBCR. Với Y tương tự như trên còn hai thành phần sắc độ được biểu diễn như sau:
CB = U/2 + 0,5

(1.4)

CR = V/1,6 + 0,5

(1.5)

Trong đó, các giá trị thành phần sắc độ CB, CR luôn nằm trong khoảng [0, 1].
YCBCR được sử dụng trong các hệ thống truyền hình màu tương tự truyền thống,
trong khi YUV được sử dụng trong truyền hình số.


Số hoá tín hiệu video

Trong một chuỗi video với các khung hình có độ phân giải là 720x576 điểm ảnh,
tốc độ khung hình là 25Hz hoặc 30Hz. Mỗi khung hình trong chuỗi video được lấy
mẫu và số hoá như hình vẽ 1.2:

2


720
RGB


576

R

G

B

360
YUV
4:2:2

Y

YUV
4:2:0

Y

U

V

U

V

280


180
YUV
4:1:1

Y

U

V

Hình vẽ 1.2: Cấu trúc lấy mẫu

Cấu trúc lấy mẫu 4:2:2
Mẫu Y

text

text

text

text

text

text

text

text


text

text

text

text

text

text

text

text

text

Mẫu U
Mẫu V

Hình vẽ 1.3: Cấu trúc lấy mẫu 4:2:2

Việc lấy mẫu sẽ diễn ra một cách tuần tự như sau: Điểm ảnh đầu lấy mẫu thành
phần độ chói (Y) và lấy mẫu hai thành phần sắc độ U và V. Điểm ảnh tiếp theo chỉ lấy
mẫu thành phần chói (Y) mà không lấy mẫu hai thành phần sắc độ. Khi giải mã, thành
phần sắc độ của điểm ảnh bị thiếu phải được suy ra từ điểm ảnh trước đó. Cứ như vậy,
bốn lần lấy mẫu thành phần Y thì có hai lần lấy mẫu thành phần U và hai lần lấy mẫu
thành phần V.


3


Cấu trúc lấy mẫu 4:1:1
text

text

text

text

text

text

text

text

text

text

text

text

text


text

text

text

Hình vẽ 1.4: Cấu trúc lấy mẫu 4:1:1
Điểm ảnh đầu lấy mẫu đủ các thành phần Y, U, V. Ba điểm ảnh kế tiếp chỉ lấy
mẫu thành phần độ chói Y mà không lấy mẫu thành phần sắc độ. Khi giải mã, thành
phần sắc độ của ba điểm ảnh kế tiếp này phải suy ra từ điểm ảnh đầu. Tuần tự như vậy,
cứ bốn lần lấy mẫu thành phần Y có một lần lấy mẫu thành phần U và một lần lấy mẫu
thành phần V.
Cấu trúc lấy mẫu 4:2:0
text

text

text

text

text

text

text

text


text

text

text

text

text

text

text

text

text

text

text

text

text

text

text


text

text
text

text

text
text

Hình vẽ 1.5: Cấu trúc lấy mẫu 4:2:0
Lấy mẫu thành phần độ chói Y tại tất cả các điểm ảnh. Với thành phần sắc độ thì
cứ bốn thành phần Y lấy mẫu hai thành phần U và V cách nhau theo từng hàng.


Các định dạng video

Chuẩn nén H.264 có thể thực hiện việc nén đối với các định dạng khung hình
video khác nhau. Trong thực tế, nó thường thu hoặc chuyển đổi sang các định dạng
trung gian trước khi thực hiện nén và truyền đi. Định dạng trung gian thông thường
(CIF) là cơ sở cho một tập hợp các định dạng phổ biến được đưa ra trong bảng 1.1.

4


Bảng 1.1: Các định dạng khung hình video
Định dạng
Sub-QCIF
QCIF
CIF

4CIF

Độ phân giải của khung
hình thành phần độ chói
128x96
176x144
352x288
704x576

Số bit mã hoá cho mỗi khung
hình (4:2:2, 8bit cho mỗi mẫu)
147456
304128
1216512
4866048

Hình vẽ dưới đây là một ví dụ về thành phần độ chói của một khung hình video
được lấy mẫu ở các độ phân giải từ 4CIF tới Sub-QCIF.

Hình vẽ 1.6: Khung hình video lấy mẫu ở các độ phân giải khác nhau
Việc chọn độ phân giải của khung hình tuỳ thuộc vào ứng dụng và khả năng lưu
trữ cũng như khả năng truyền dẫn. Ví dụ: 4CIF là phù hợp với truyền hình độ nét tiêu
chuẩn và video DVD; CIF và QCIF phù hợp cho các ứng dụng video hội nghị; QCIF
hoặc SQCIF phù hợp cho các ứng dụng đa phương tiện trên các điện thoại di động.
Bảng 1.2 mô tả số các bit cần thiết để mã hoá một khung hình theo mỗi định dạng (với
cấu trúc lấy mẫu 4:2:0 và 8 bit biểu diễn cho một mẫu).
Một định dạng được sử dụng rộng rãi cho các dữ liệu video số trong các ứng
dụng truyền hình là khuyến nghị ITUT-R BT.601-5. Thành phần độ chói của tín hiệu
5



video được lấy mẫu với tốc độ 13,5MHz và 6,75MHz đối với các thành phần sắc độ để
tạo ra các thành phần Y:U:V theo tỷ lệ 4:2:2. Các thông số của tín hiệu video số đã
được lấy mẫu phụ thuộc vào tốc độ khung hình (30Hz đối với tín hiệu NTSC và 25Hz
đối với tín hiệu PAL/SECAM)
1.2. Các phƣơng pháp nén video
Mục tiêu chính của việc nén dữ liệu video là biểu diễn một nguồn dữ liệu video
bởi một số lượng bit ít nhất có thể được mà vẫn đảm bảo yêu cầu chất lượng cảm thụ
hình ảnh của mắt người. Với tín hiệu video, giới hạn dải thông của tín hiệu video
tương tự ở vào khoảng 6MHz. Tín hiệu video sau khi số hoá theo tiểu chuẩn CCIR 601
với tốc độ bit là 270Mbit/s chiếm dải thông không dưới 189MHz, tức là lớn hơn 31,5
lần so với dải thông của tín hiệu tương tự. Do vậy, giảm dải thông là vấn đề quan trọng
với công nghệ video số.
Về cơ bản việc giảm yêu cầu về dải thông được thực hiện theo bốn cách:
­

Giảm tốc độ dòng bit (Bit Rate Reduction).

­

Nén dòng dữ liệu video số theo không gian - giảm độ dư thừa trong nội tại
một khung hình.

­

Nén dòng dữ liệu theo thời gian - giảm độ dư thừa theo thời gian.

­

Nén hỗn hợp sử dụng tổ hợp các phương pháp trên.


1.2.1. Giảm tốc độ dòng bit dựa trên đặc điểm của thị giác ngƣời
Do mắt người thường ít nhạy cảm đối với các thành phần sắc độ hơn là thành
phần độ chói của hình ảnh nên trong phương pháp này, người ta có thể giảm bớt độ
phân giải của thành phần sắc độ mà không làm ảnh hưởng nhiều đến sự cảm thụ về
chất lượng hình ảnh (ví dụ như trong các định dạng YUV 4:2:2, 4:2:0, 4:1:1).
Phần lớn các định dạng video số hiện nay đều sử dụng tần số lấy mẫu 13,5MHz
đối với thành phần độ chói. Theo chuẩn CCIR 601, nếu hai thành phần sắc độ được lấy
mẫu với tần số như thành phần độ chói chúng ta sẽ có định dạng 4:4:4. Định dạng này
được sử dụng trong các thiết bị dựng phim phi tuyến và trong đồ hoạ vi tính liên quan
đến phim nhựa.
Hiện nay, các thiết bị kỹ thuật số sử dụng trong lĩnh vực video chuyên dụng
thường sử dụng chuẩn CCIR 601 4:2:2. Theo định dạng số hoá này, tín hiệu video
thành phần được lấy mẫu với tần số 13,5MHz đối với thành phần độ chói và 6,75 MHz
đối với hai thành phần sắc độ.
Tốc độ dòng dữ liệu của định dạng này được tính như sau:
6


Khi lấy mẫu 8 bit: (720 + 360 + 360) x 576 x 8 x 25 = 166 Mbit/s.
10 bit: (720 + 360 + 360) x 576 x 10 x 25 = 207 Mbit/s.
Như vậy, so với phương pháp lẫy mẫu không cắt giảm (4:4:4), phương pháp này
cho phép cắt giảm được 33% tốc độ dòng bit.
Với định dạng 4:1:1 và 4:2:0, tốc độ dòng bit còn được cắt giảm nhiều hơn. Với 8
bit lấy mẫu, tốc độ dòng bit tính cho chuẩn PAL là: (720 + 180 + 180) x 576 x 8 x 25
= 124,4 Mbit/s, tức là phép giảm được 50% tốc độ dòng bit so với nguyên mẫu 4:4:4.
1.2.2. Nén dòng dữ liệu video số trong miền không gian
Gần như tất cả các ảnh đều chứa một số lượng lớn các điểm ảnh có giá trị gần
giống nhau. Các điểm ảnh giống nhau này được lặp lại tạo thành các vùng đồng đều
trong một ảnh (ví dụ: bầu trời xanh), tạo nên sự dư thừa về mặt không gian trong dữ

liệu (do ta có thể dự đoán giá trị một điểm ảnh từ giá trị các điểm ảnh xung quanh nó).
Để giảm độ dư thừa trong một khung hình, người ta sử dụng các phương pháp nén ảnh
trong miền không gian. Các phương pháp nén ảnh này có thể chia làm hai loại:
­

Nén không tổn hao (lossless compression): là phương pháp nén mà dữ liệu được
nén (mã hoá), sau khi giải nén (giải mã) đối chiếu với dữ liệu gốc thì không có sự
khác biệt nào.

­

Nén có tổn hao (lossy compression): là phương pháp nén mà dữ liệu được khôi
phục sau khi nén và giải nén có sự khác biệt với dữ liệu gốc.

Tỉ số nén của các phương pháp nén không tổn hao thường rất thấp. Để đạt được
tỉ số nén cao, người ta thường phải sử dụng các phương pháp nén có tổn hao.
1.2.3. Nén dữ liệu video số theo miền thời gian
Các khung hình liên tiếp trong một đoạn video có quan hệ mật thiết với nhau.
Thậm chí một khung hình có thể chỉ thay đổi chút ít so với các khung hình liền kề
trước và sau nó, tạo nên sự dư thừa theo thời gian. Để giảm bớt lượng dữ liệu truyền
tải, người ta làm giảm sự dư thừa đó bằng cách chỉ truyền những phần sai lệch giữa
các khung hình kết hợp với việc dự đoán dựa trên khung hình trước.
1.2.4. Nén hỗn hợp sử dụng tổ hợp của các phƣơng pháp trên
Để đạt được hiệu quả nén cao mà vẫn đảm bảo chất lượng hình ảnh, người ta sử
dụng tổ hợp của các phương pháp trên. Phương pháp nén video theo chuẩn H.264 là
một phương pháp nén hỗn hợp như vậy.
7


1.3. Tham số nén video

Các tham số nén video được đề cập đến ở đây là định dạng ảnh và tỉ số nén. Tỉ số
nén cho phép đánh giá hiệu quả của một hệ thống nén dữ liệu. Để đánh giá hiệu quả
của các hệ thống nén bằng cách so sánh tỉ số nén của chúng với nhau, định dạng ảnh
sử dụng trong các hệ thống nén đó phải giống nhau.
Các tham số định dạng ảnh bao gồm:
­

Số dòng/khung hình và số điểm ảnh/dòng.

­

Tốc độ khung hình (số khung hình/giây).

­

Cấu trúc lấy mẫu.

­

Độ sâu của giá trị mẫu (8, 10 hay 12 bit/mẫu).

­

Hệ số nén được tính bằng tốc độ dữ liệu video gốc (số bit dữ liệu/giây) trên
tốc độ dữ liệu video nén.

Để đánh giá chất lượng một hệ thống nén, bên cạnh tỷ số nén người ta còn phải
xét đến độ sai lệch của dữ liệu sau khi nén so với trước khi nén, thường được đo bằng
PSNR:
(2 n  1) 2

PSNR dB  10 log 10
MSE

(1.6)

Trong đó MSE là sai số bình phương trung bình giữa dữ liệu trước và sau nén, n
là số bit để mã hoá giá trị mỗi điểm ảnh.

8


CHƢƠNG 2: CHUẨN NÉN H.264
2.1. Giới thiệu chung về chuẩn nén H.264
Hiệp hội viễn thông quốc tế (ITU) và Tổ chức tiêu chuẩn quốc tế/Uỷ ban kỹ
thuật điện tử quốc tế (ISO/IEC) là hai tổ chức đi đầu trong lĩnh vực nghiên cứu và phát
triển các chuẩn nén âm thanh, hình ảnh. Theo ITU-T, các chuẩn nén video được coi là
các khuyến nghị và gọi tắt là chuẩn H.26x (H.261, H.262, H.263 và H.264). Với tiêu
chuẩn ISO/IEC, các chuẩn nén được gọi tắt là MPEG-x (MPEG-1, MPEG-2, MPEG-3
và MPEG-4) [1].
Các khuyến nghị của ITU được xây dựng cho các ứng dụng truyền dữ liệu video
thời gian thực như: truyền hình hội nghị (Video Conferencing) hay điện thoại thấy
hình. Trong khi, MPEG hướng tới mục tiêu truyền và lưu trữ video như: lưu trữ trên
đĩa quang DVD; quảng bá video số trên mạng cáp quang, đường truyền số DSL;
truyền hình vệ tinh hoặc các ứng dụng truyền tải dòng video trên mạng Internet.
Hai nhóm nghiên cứu trên đã cùng nhau thành lập một nhóm cộng tác viết tắt là
JVT (Joint Video Team) để xây dựng đề xuất về chuẩn nén H.26L và phát triển thành
tiêu chuẩn quốc tế. Chuẩn nén này được ấn bản bởi cả ITU-T và ISO/IEC với hai tên
gọi là H.264 và MPEG-4 part 10.
Dưới đây là một số mốc thời gian về sự phát triển của H.264/MPEG-4 part 10:
1993


1995

­ Dự án về MPEG-4 được khởi xướng.
­ Một số kết quả ban đầu của H.263 đã đạt được.
­ MPEG-4 là cơ sở cho các đề xuất bao gồm: nén video hiệu
quả với các tính năng dựa theo nội dung.
­ H.263 được chọn như là trọng tâm của công cụ nén video.

1998
1999
2000

­ Đưa ra các đề xuất cho H.26L.
­ Chuẩn hình ảnh MPEG-4 được ấn bản.
­ Mô hình kiểm tra ban đầu của H.26L được xây dựng.
­ MPEG đưa ra các đề xuất cho các công cụ nén video cải
tiến.
­ Phiên bản thứ hai của chuẩn nén MPEG-4 được ấn bản.

2001

­ H.26L được chọn như là cơ sở cho MPEG-4.
­ JVT được hình thành.

2003

­ H.264/MPEG-4 part 10 được ấn bản.
9



Mục tiêu chính của việc phát triển chuẩn nén H.264 là nhằm cung cấp các
nguồn dữ liệu video có tốc độ bít thấp (tỷ lệ nén cao) nhưng vẫn đảm bảo được chất
lượng về hình ảnh tốt hơn nhiều so với những chuẩn nén video trước đây. Điều này đạt
được là nhờ sự kế thừa các ưu điểm của các chuẩn nén video trước đó. Đồng thời thực
hiện một số những cải tiến quan trọng như:
-

-

-

-

Phân chia mỗi khung hình video thành các MB (mỗi MB là một khối hình ảnh
có kích thước 16x16 điểm ảnh) và thực hiện các phân tích, xử lý trên từng MB
này.
Khai thác triệt để tính dư thừa về không gian trong các khung hình thông qua
việc sử dụng: các dự đoán Intra, các phép biến đổi DCT/IDCT tương đương,
phép lượng tử hoá và mã hoá Entropy (hay mã có độ dài thay đổi VLC).
Khai thác tính dư thừa về thời gian thông qua việc sử dụng các phép dự đoán
véc-tơ chuyển động và bù chuyển động với các kích thước block thay đổi (tuỳ
thuộc vào tính chi tiết của hình ảnh) và với nhiều khung hình tham chiếu khác
nhau.
Sử dụng các thuật toán, các phương pháp biến đổi được cải tiến cho phép nâng
cao được năng lực xử lý và chất lượng của hình ảnh lối ra.

2.2. Cơ chế nén ảnh của H.264
Bộ nén và giải nén của H.264 cũng bao gồm các thành phần có trong các chuẩn
nén trước đó ngoại trừ bộ lọc Deblocking. Tuy nhiên, các thành phần này đều có

những cải tiến so với các chuẩn trước để đạt được hiệu suất nén tối ưu hơn.
2.2.1. Bộ nén
Mỗi khung hình dữ liệu video Fn đưa vào bộ nén sẽ được xử lý theo từng khối
16x16 điểm ảnh (gọi là các MB). Khung hình đầu tiên của một chuỗi video hoặc điểm
truy cập ngẫu nhiên được mã hoá theo mode Intra (nén trong ảnh). Mỗi một điểm ảnh
trong khối sử dụng mode Intra được dự đoán dựa vào các điểm ảnh liền kề với khối dự
đoán và nằm bên trong các khối đã được dự đoán và mã hoá trước đó.

10


+

Fn
(Frame hiện hành)

Dn
Biến đổi

+

Lượng tử
hoá

Dữ liệu
video nén

-

Ước lượng chuyển

động

Mã hoá
entropy

Inter

F’n-1
(Frame thứ n-1
sau khi đã khôi
phục lại)

Bù chuyển động

Lựa chọn dự
đoán Intra

Dự đoán Intra
Intra

+
F’n
(Sau khi được khôi
phục lại)

Dn’
Lọc

+


Biến đổi
ngược

Lượng tử
hoá ngược

+

Hình vẽ 2.1: Sơ đồ khối của bộ nén theo chuẩn H.264
Đối với tất cả các khung hình còn lại hoặc các khung hình nằm giữa các điểm
truy cập ngẫu nhiên của chuỗi video, các chế độ mã hoá Intra hoặc Inter (nén liên ảnh)
được sử dụng tùy thuộc vào mode quyết định thích hợp. Mode Inter được sử dụng để
khai thác tính liên quan (tính dư thừa theo thời gian) của các vùng ảnh trong các khung
hình khác nhau thông qua việc sử dụng phương pháp dự đoán chuyển động và bù
chuyển động dựa vào các khung hình tham chiếu. Lối ra của mode này là các MB dữ
liệu (chứa các thông tin sai khác giữa các MB của khung hình hiện tại với khung hình
tham chiếu) cùng với các thông tin điều khiển (như: vị trí MB, mode dự đoán, thông
tin về khung hình tham chiếu và sự dịch chuyển…). MB chứa phần sai khác sau đó
được thực hiện các biến đổi DCT tương đương và lượng tử hoá kết hợp với bộ mã hoá
Entropy để khai thác tối đa các dư thừa về không gian. Ngoài ra, dữ liệu của các MB
sau bộ biến đổi và lượng tử hoá được thực hiện các biến đổi ngược để khôi phục lại
các khung hình tham chiếu cho các xử lý tiếp theo.
2.2.2. Bộ giải nén
Bộ giải nén nhận được dòng dữ liệu video nén sẽ thực hiện giải mã hoá Entropy
trước tiên. Dữ liệu sau giải mã là tập hợp các hệ số đã được lượng tử hóa, sau đó được
đưa qua các bộ biến đổi và lượng tử hoá ngược để thu được dữ liệu về các MB chứa
thông tin sai khác. Dữ liệu trong các MB này được kết hợp với các các thông tin điều
khiển gửi kèm theo từ bộ nén để xây dựng lại các MB nguyên gốc và khôi phục lại
thành khung hình ban đầu.


11


F’n-1
(Frame thứ n-1
sâu khi đã khôi
phục lại)

Inter
Bù chuyển động

Dự đoán Intra

Intra

+
Fn’
(Sau khi được khôi
phục lại)

Dn’
Lọc

+

Biến đổi
ngược

Lượng tử
hoá ngược


Giải mã hoá
entropy

Dữ liệu
video nén

+

Hình vẽ 2.2: Sơ đồ khối của bộ giải nén theo chuẩn H.264
2.3. Cấu trúc của H.264
H.264 định nghĩa các profile (mô tả) cùng tập hợp các thông số cho phép hỗ trợ
các ứng dụng thực tế một cách đa dạng và linh hoạt.
Profile xác định tập các công cụ mã hoá hoặc các thuật toán mã hoá có thể được
sử dụng để tạo ra các dòng bit tương thích.
Level (mức) đặt ra những giới hạn cho thông số của dòng bit.
Có ba profile trong phiên bản thứ nhất: Baseline, Main và Extended.
­

Baseline profile: hỗ trợ mã hoá Intra/Inter và mã hoá Entropy CAVLC (mã
hoá chiều dài thích nghi ngữ cảnh) áp dụng cho các ứng dụng thời gian
thực như: truyền hình tương tác, điện thoại thấy hình…

­

Main profile: bao gồm việc hỗ trợ video quét xen kẽ, mã hoá Inter sử dụng
B-slices, mã hoá Inter sử dụng dự đoán có trọng số và mã hoá entropy
CABAC. Main profile được thiết kế cho các thiết bị lưu trữ số và truyền
hình quảng bá.


­

Extended profile: không hỗ trợ cho video quét xen kẽ hoặc CABAC nhưng
bổ sung các mode chuyển đổi một cách hiệu quả giữa các dòng bit (SP và
SI slices) và khả năng khắc phục lỗi. Extended profile ứng dụng cho các
dịch vụ đa phương tiện trên mạng Internet.

12


×