Khi sử dụng kỹ thuật dự đoán và bù chuyển dịch, xét tính chất dự đoán của một ảnh từ các ảnh khác, có thể chia ra làm ba loại ảnh: ảnh loại I, ảnh loại P và ảnh loại B.
3.2.4.1.ảnh loại I (Intra Coded Picture)
Các ảnh I đ−ợc mZ hoá theo cách để có thể giải mZ mà không cần sử dụng dữ liệu từ bất cứ một ảnh tham chiếu nào khác. Các điểm ảnh trong ảnh I chỉ đ−ợc dự báo từ chính các điểm trong cùng ảnh. Do đó số dung l−ợng thông tin cần thiết để biểu diễn ảnh I là rất lớn.
86
ảnh I có vai trò khởi động cung cấp thông tin cho một chuỗi các ảnh kế tiếp tham chiếu từ nó.
3.2.4.2. ảnh loại P (Predictive Coded Picture - ảnh dự đoán liên ảnh một chiều)
ảnh P là ảnh đ−ợc mZ hóa dự đoán từ một ảnh đứng tr−ớc đZ đ−ợc mZ hóạ ảnh tham chiếu có thể là một ảnh I hoặc là một ảnh P đZ đ−ợc mZ hóa, th−ờng là ảnh I hoặc ảnh P gần nhất. Các ảnh này đứng tr−ớc ảnh hiện thời theo trình tự trình diễn nên sự dự đoán là theo một chiềụ
Vì ảnh P đ−ợc mZ hóa dự đoán từ ảnh khác nên dung l−ợng thông tin nhỏ hơn ảnh I rất nhiều, chỉ bao gồm các vector chuyển dịch và các dữ liệu chênh lệch giữa ảnh hiện tại và ảnh tham chiếụ
ảnh P cũng có thể làm ảnh tham chiếu cho các ảnh khác trong chuỗi ảnh của tín hiệu videọ
3.2.4.3. ảnh loại B (Bidiranectionally Predicted Pictures - ảnh dự đoán liên ảnh
hai chiều)
ảnh B là ảnh đ−ợc mZ hoá dự đoán từ một ảnh đứng tr−ớc và một ảnh đứng sau trong đZ đ−ợc mZ hóạ Sự dự đoán đ−ợc thực hiện theo hai h−ớng nên đ−ợc gọi là ảnh dự đoán liên ảnh hai chiều (bidirectional prediction).
ảnh B đ−ợc mZ hóa dự đoán từ hai ảnh nên dung l−ợng thông tin của ảnh B th−ờng nhỏ hơn so với ảnh P và ảnh Ị
ảnh B không đ−ợc sử dụng làm ảnh tham chiếu tạo dự báo cho các ảnh saụ
3.2.4.4. Cấu trúc nhóm ảnh
Trong quá trình truyền dẫn và giải mZ nếu một ảnh nào đó trong chuỗi ảnh dự đoán bị lỗi thì do tính chất quan hệ lẫn nhau, các ảnh sau có quan hệ dự đoán với ảnh bị lỗi cũng sẽ bị lỗi theọ Để tránh hiện t−ợng này, ng−ời ta không
87
kéo dài chuỗi ảnh dự đoán (ảnh P và ảnh B) mà sau một số ảnh dự đoán lại chèn một ảnh Ị Chuỗi ảnh bắt đầu một ảnh I và kết thúc tr−ớc một ảnh I kế tiếp đ−ợc gọi là một nhóm ảnh (GOP – Group Of Pictures). Trong các chuẩn nén MPEG, nhóm ảnh th−ờng có cấu trúc IBBPBBPBBỊ
Để đảm bảo tính nhân quả trong dự đoán, ảnh tham chiếu phải là ảnh đZ đ−ợc mZ hóa (ở phía mZ hóa) hoặc đZ đ−ợc giải mZ (ở phía giải mZ). Vì vậy thứ tự truyền dẫn ảnh sẽ khác so với thứ tự hiển thị. Hình 3.12 thể hiện cấu trúc của một nhóm ảnh (GOP) có độ dài 9 ảnh và cấu trúc dự đoán giữa các ảnh, thứ tự truyền dẫn của các ảnh trong nhóm.
Hình 3.12. Cấu trúc nhóm ảnh và thứ tự truyền dẫn các ảnh trong nhóm 3.3. Nén trong miền không gian
Nhiệm vụ của khối nén trong miền không gian là loại bỏ những d− thừa thông tin trong dữ liệu ảnh I, trong dữ liệu phần chênh lệch ở ảnh P, B. Các kỹ thuật cơ bản sử dụng trong khối này là mZ hóa dự đoán ảnh (predictive image coding) và mZ hóa chuyển đổi (transform coding).
88
3.3.1. Mã hóa dự đoán ảnh
Cơ sở của mZ hóa dự đoán ảnh là loại bỏ tính t−ơng quan giữa các điểm ảnh trong cùng một ảnh. Đây là một phần quan trọng trong kỹ thuật nén ảnh MPEG-4 AVC/H.264. Về nguyên lý, nó gần giống so với kỹ thuật điều xung mZ vi phân DPCM sử dụng rộng rZi trong viễn thông.
Giả sử điểm ảnh X là điểm ảnh hiện tại cần mZ hóa để truyền đi, thay vì phải truyền toàn bộ thông tin đầy đủ của điểm ảnh X, bộ mZ hóa thực hiện dự đoán giá trị các thông tin của điểm ảnh X từ giá trị của các điểm ảnh lân cận đZ đ−ợc mZ hóa tr−ớc đó (ví dụ các điểm ảnh A, B, C trong hình …), sau đó tính toán và chỉ mZ hóa truyền đi phần thông tin chênh lệch giữa điểm ảnh thực và điểm ảnh nội suỵ Nếu kết quả dự đoán càng chính xác thì phần thông tin chênh lệch càng nhỏ và do đó số bít thông tin cần thiết để biểu diễn càng ít làm cho hiệu quả nén tăng lên.
Hình 3.13. MZ hóa dự đoán điểm ảnh X từ các điểm ảnh lân cận A, B, C
Xét ví dụ nh− trong hình 3.13, các điểm ảnh đ−ợc mZ hóa lần l−ợt theo thứ tự quét của ảnh, khi đó các điểm ảnh A, B, C sẽ là các điểm ảnh lân cận trái, lân cận trên và lân cận trên bên phải của điểm ảnh hiện thời X. Giả sử giá trị độ chói của điểm ảnh X đ−ợc dự đoán từ độ chói của các điểm ảnh A, B, C nh− sau:
89
Phần thông tin chênh lệch sẽ là:
R(X) = X – P(X) (3.2) Tại phía giải mZ, bộ giải mZ sẽ thực hiện tính giá trị độ chói dự đoán của X:
P(X) = (2A + B + C)/4 (3.3) Và sau đó tái tạo lại độ chói của điểm X:
X = P(X) + R(X) (3.4) Ph−ơng pháp nén dự đoán ảnh hiệu quả đối với các vùng ảnh đồng nhất. Đối với những vùng ảnh không đồng nhất, có nhiều sự thay đổi lớn giữa các điểm ảnh lân cận thì hiệu quả nén của ph−ơng pháp này không caọ
3.3.2. Mã hóa chuyển đổi
Giá trị thông tin các điểm ảnh trong một vùng ảnh có tính t−ơng quan với nhau rất caọ Để loại bỏ tính t−ơng quan trong tín hiệu, ng−ời ta th−ờng sử dụng một phép biến đổi thuận nghịch để chuyển một khối các điểm ảnh trong miền không gian thành một khối các hệ số trong miền tần số (mỗi hệ số đại diện cho một tần số tín hiệu của khối) bằng phép biến đổi thuận và có thể hồi phục giá trị của các điểm ảnh từ khối các hệ số đó bằng một phép biến đổi nghịch.
Phép biến đổi th−ờng dùng nhất trong nén video là phép biến đổi cosin rời rạc DCT (Discrete Cosine Transform). Ngoài ra còn có một số ph−ơng pháp mZ hóa khác nh− mZ hóa băng con, mZ hóa sử dụng phép biến đổi wavelet…
3.3.2.1. Biến đổi cosin rời rạc DCT
DCT là phép biến đổi đ−ợc thực hiện đối với một ma trận giá trị X. Trong xử lý ảnh X là ma trận các giá trị mẫu gồm NxN mẫu và tạo ra ma trận Y gồm NxN hệ số.
90
Trong đó:
A là ma trận hệ số của phép biến đổi
(3.6) AT là ma trận chuyển vị của A
Khi đó:
(3.7) DCT có một tính chất quan trọng đó là tính biến đổi thuận nghịch. Có nghĩa là từ khối các hệ số, có thể phục hồi các giá trị điểm ảnh ban đầu theo công thức biến đổi ng−ợc:
X = ATYA (3.8)
(3.9) Ví dụ với N=4, ma trận hệ số A có cấu trúc nh− sau:
91
Xét ví dụ khối điểm ảnh có các mẫu giá trị độ chói nh− sau:
Thực hiện biến đổi DCT, ta có ma trận hệ số:
Ta nhận thấy, giá trị ở vị trí hàng 0, cột 0 của ma trận hệ số có giá trị lớn nhất, giá trị này là hệ số một chiều DC, các giá trị còn lại là các giá trị xoay chiều AC, các vị trí gần với hệ số một chiều đ−ợc gọi là các thành phần tần số thấp, các vị trí ở xa gọi là các thành phần tần số caọ Thực nghiệm chứng tỏ, trọng số của các hệ số của ma trận tập trung ở các thành phần tần số thấp và giảm dần ở các thành phần tần số caọ Do đó các hệ số có chỉ số thấp quan trọng hơn các hệ số có chỉ số caọ Chúng ta có thể bỏ bớt các hệ số có chỉ số cao trong ma trận hệ số mà vẫn có thể đảm bảo tái tạo đ−ợc cấu trúc điểm ảnh ban đầu khi thực hiện phép biến đổi ng−ợc. Đây chính là cơ sở để nén thông tin trong miền không gian.
3.3.2.2. L−ợng tử hóa các hệ số DCT
L−ợng tử hóa là các hệ số DCT thực chất là thực hiện chia mỗi hệ số DCT cho một số hệ số l−ợng tử để tạo ra các các hệ số có giá trị mới dễ làm tròn, dễ nén thông tin ở các khâu tiếp theo nh−ng đồng thời vẫn đảm bảo không gây ảnh h−ởng đến sự cảm thụ chất l−ợng ảnh tái tạo tại mắt ng−ời khi khôi phục. Ph−ơng pháp l−ợng tử hóa thích nghi sử dụng các trọng số dựa trên ba yếu tố: các trọng số tần số, các tham số chuyển động có thể nhận biết và các tham số
92
Khi thực hiện l−ợng tử hóa sẽ gây ra sự mất thông tin và tạo ra các hiệu ứng giả. Để đạt đ−ợc một hệ thống nén không ảnh h−ởng nhiều đến chất l−ợng ảnh, khi thiết kế bộ mZ hóa video, ng−ời ta tính toán và lựa chọn bảng l−ợng tử phù hợp, vừa đảm bảo hiệu quả nén vừa đảm bảo ít ảnh h−ởng đến chất l−ợng video nén. Đối với các hệ số DCT, thành phần một chiều DC sẽ đ−ợc l−ợng tử hóa với độ chính xác cao (th−ờng là 12 bit) nhằm tránh các nhiễu xuất hiện giữa các khối điểm ảnh. Các hệ số t−ơng ứng với thành phần tần số cao đ−ợc l−ợng tử với độ chính xác thấp hơn do khả năng cảm nhận của mắt ng−ời giảm ở tần số caọ Vì vậy các hệ số chia trong bảng l−ợng tử sẽ có giá trị nhỏ đối với thành phần một chiều DC và các thành phần tần số thấp, giá trị lớn đối với các thành phần tần số caọ
Có hai kỹ thuật l−ợng tử hóa cơ bản: l−ợng tử hóa vô h−ớng và l−ợng tử hóa vector.
- L−ợng tử hóa vô h−ớng (scalar quantization):
Đây là ph−ơng pháp l−ợng tử đơn giản, các hệ số đ−ợc l−ợng tử hóa bằng giá trị làm tròn của phép chia hệ số ban đầu cho một giá trị đ−ợc chọn tr−ớc gọi là b−ớc l−ợng tử QP:
FQ = round (X/QP) (3.10)
ở phía giải mZ, giá trị của hệ số đ−ợc lấy lại nhờ công thức
Y= FQ.QP (3.11) - L−ợng tử hóa vector: Ph−ơng pháp này sử dụng bảng l−ợng tử nh− một bảng tra cứụ Bảng l−ợng tử đ−ợc dùng chung và thống nhất ở cả phía mZ hóa và phía giải mZ. ở phía mZ hóa, các giá trị đ−ợc tìm kiếm trong bảng l−ợng tử để tìm ra một vector mZ t−ơng ứng với giá trị gần nhất. Vector mZ đ−ợc truyền đi và tại phía giải mZ, giá trị đ−ợc lấy lại thông qua bảng l−ợng tử và vector mZ.
93
Hình3.14. Cơ chế hoạt động của l−ợng tử hóa vector 3.3.2.3. Thứ tự quét hệ số
Để mZ hóa các hệ số đZ đ−ợc l−ợng tử hóa, tr−ớc tiên phải biến đổi từ mảng hai chiều thành mảng một chiềụ Đối với ma trận hệ số đZ đ−ợc l−ợng tử hóa, thành phần một chiều có trọng số lớn nhất và có giá trị lớn nhất ở vị trí đầu tiên của ma trận, tiếp sau đó các vị trí có chỉ số nhỏ t−ơng ứng với các thành phần tần số thấp, các vị trí có chỉ số cao t−ơng ứng với các thành phần tần số cao th−ờng có giá trị rất nhỏ. Do đó để tăng hiệu quả nén khi sử dụng ph−ơng pháp mZ hóa mức chạy RLE, phải sắp xếp các mẫu giá trị sao cho những giá trị 0 xếp liền nhau, tức là thứ tự lấy các mẫu giá trị của ma trận phải đ−ợc chọn sao cho các thành phần một chiều và thành phần tần số thấp đ−ợc lấy tr−ớc, các thành phần tần số cao đ−ợc lấy saụ Để thực hiện điều đó, ng−ời ta đ−a ra ph−ơng pháp quét zig-zag nh− trong hình 3.15.
Đối với tín hiệu video quét liên tục, thứ tự quét các hệ số đ−ợc thực hiện nh− trong hình 3.15 ạ Tr−ờng hợp tín hiệu video quét xen kẽ, thứ tự quét đ−ợc thực hiện nh− trong hình 3.15 b.
94
a). Quét hình liên tục b).Quét hình xen kẽ Hình3.15. Thứ tự quét các hệ số DCT
3.3.2.4. M[ hóa mức chạy (RLE - Run-Level Encoding)
MZ hóa mức chạy th−ờng gắn liền với sự sắp xếp các hệ số nhằm tối thiểu hóa cách biểu diễn chuỗi số. Sau khi quét các hệ số, ta đ−ợc một chuỗi các giá trị, để biểu diễn chuỗi giá trị đó tr−ớc khi mZ hóa entropy, thay vì liệt kê từng phần tử trong chuỗi số, ứng với một chuỗi giá trị bao gồm một dZy các giá trị 0 kết thúc bằng 1 giá trị khác 0, ng−ời ta biểu diễn bằng các bộ ba giá trị sau đây:
- Số các giá trị 0 liền nhau gọi là số b−ớc chạy (run). - Giá trị liền sau dZy các giá trị 0 gọi là mức (level).
- Giá trị biểu thị kết thúc chuỗi (last). Mang giá trị 0 nếu ch−a kết thúc, 1 nếu kết thúc chuỗị
Ví dụ: Sau khi sắp xếp các hệ số DCT ta đ−ợc dZy giá trị nh− sau: 16, 0, 0, -3, 5, 6, 0, 0, 0, 0, -7.
Khi đó mZ hóa mức chạy của dZy giá trị này sẽ là: (0,16,0),(2,-3,0),(0,5,0),(0,6,0),(4,-7,1).
95
3.4. MV hóa Entropy
MZ hóa entropy thực hiện loại trừ các d− thừa thống kê trong khối dữ liệu cần mZ hóa để truyền. Theo lý thuyết thông tin thì tỷ lệ nén tốt nhất mà các bộ mZ hóa có thể đạt đ−ợc chính là entropy nguồn tin. Các ph−ơng pháp mZ hóa entropy thực hiện dựa trên thống kê xác suất xuất hiện của các ký hiệu mZ để tối −u hóa hiệu quả nén. Một trong những mZ th−ờng dùng trong nén video là mZ hóa Huffman.
Nguyên lý cơ bản của mZ hóa Huffman là sử dụng từ mZ có chiều dài biến đổi (VLC – Variable Length Coding) trong đó các từ mZ có độ dài nhỏ đ−ợc dùng để mZ hóa các giá trị hoặc các ký hiệu hay xuất hiện (sác xuất xuất hiện cao) và ng−ợc lại sử dụng các từ mZ có chiều dài lớn hơn để mZ hóa các giá trị ít xuất hiện. Nhờ vậy mà làm tăng hiệu quả nén.
Quá trình mZ hóa Huffman đ−ợc thực hiện theo quy trình tạo thành cây mZ (Huffman code tree) nh− sau:
* B−ớc 1: Sắp xếp các mẫu giá trị theo thứ tự tăng dần xác suất xuất hiện. Xét ví dụ trong bảng…, mẫu giá trị -2 và 2 có xác suất xuất hiện thấp nhất (p=0.1) và mẫu giá trị 0 có xác suất xuất hiện cao nhất (p=0.4).
Bảng 3.1. Bảng giá trị mẫu ví dụ mZ hóa Huffman Mẫu giá trị Xác suất xuất hiện
-2 0.1
2 0.1
-1 0.2
1 0.2
0 0.4
* B−ớc 2: Lấy một cặp gồm hai mẫu giá trị (từ trên xuống trong bảng xác suất) để tạo thành 2 nhánh của một nodẹ Mỗi nhánh gán một giá trị bit nhị phân theo
96
quy −ớc, ví dụ nhỏ hơn 0: lớn hơn 1. Trong ví dụ là node A với hai nhánh -2 và 2. Tổng xác suất của các nhánh sẽ là xác suất của node (p(A)=0.2).
* B−ớc 3: Coi node vừa tạo là một mẫu với giá trị xác suất tổng cộng các nhánh của node đó và sắp xếp lại theo thứ tự xác suất tăng dần cùng với các mẫu còn lại (−u tiên mẫu ch−a sắp xếp). Thực hiện tiếp tục từ b−ớc 2 cho đến hết. Ta đ−ợc cây mZ Huffman.
* B−ớc 4: Từ mZ t−ơng ứng với mỗi mẫu giá trị sẽ là chuỗi các bit tính từ gốc cho đến nhánh của mẫu giá trị đó. Trong ví dụ trên, ta đ−ợc cấu trúc cây mZ Huffman và bảng mZ hóa nh− trong hình….
Hình 3.16. Cây mZ Huffman cho bảng giá trị mẫu ở bảng 3.1 Bảng 3.2. Bảng mZ hóa mZ Huffman cho các giá trị mẫu ở bảng 3.1.
Giá trị mẫu Từ mã Số bit
0 1 1
1 011 3
-1 010 3
2 001 3
97
Với cách hình thành cây mZ nh− vậy, ta sẽ đ−ợc bộ mZ mà xác suất xuất hiện của giá trị càng thấp thì độ dài từ mZ càng caọ
Để giải mZ, bộ giải mZ phải dùng bảng mZ hóa giống ở phía phát. Muốn vậy, bộ mZ hóa ngoài truyền dữ liệu phải truyền cả bảng mZ hóa tới bộ giải mZ. Đây là nh−ợc điểm của mZ hóa Huffman. Một nh−ợc điểm nữa của mZ hóa Huffman là xác suất thống kê cho các giá trị mẫu chỉ có đ−ợc khi duyệt từ đầu