Professional Documents
Culture Documents
Baocao Thay Nghia
Baocao Thay Nghia
Baocao Thay Nghia
HÌNH 8.21 Một hệ thống mã hóa biến đổi khối: (a) bộ mã hóa; (b) bộ giải mã.
Chuyển đổi lựa chọn
Các hệ thống mã hóa biến đổi khối dựa trên nhiều loại biến đổi 2-D rời rạc
đã được xây dựng và / hoặc nghiên cứu sâu rộng. Việc lựa chọn một biến đổi cụ
thể trong một ứng dụng nhất định phụ thuộc vào số lượng lỗi xây dựng lại có thể
được chấp nhận và các tài nguyên tính toán có sẵn. Nén đạt được trong quá trình
lượng tử hóa các hệ số được biến đổi (không phải trong bước biến đổi)
Với tham chiếu đến thảo luận trong Phần 2.6.7, hãy xem xét một ảnh con
g(x,y) có kích thước nxn mà biến đổi chuyển tiếp, rời rạc, T(u,v) có thể được
biểu thị theo quan hệ tổng quát
n−1 n−1
T ( u , v ) =∑ ❑ ∑ ❑ g ( x , y ) r ( x , y , u , v ) (8.2−10)
x=0 y=0
Với u, v = 0,1…n-1; Với T (u, v), tương tự có thể thu được g (x, y) bằng
cách sử dụng phép biến đổi rời rạc nghịch đảo tổng quát
n−1 n −1
g ( x , y )=∑ ❑ ∑ ❑T (u , v ) s ( x , y , u , v ) (8.2−11)
u=0 v=0
Không giống như các hạt nhân của DFT, là tổng của các sin và cosin [xem
Phương trình. (8.2-14) và (8.2-15)], các nhân Walsh-Hadamard bao gồm các
cộng và trừ 1 xen kẽ được sắp xếp theo hình bàn cờ. Hình 8.22 cho thấy hạt
nhân cho n = 4. Mỗi khối bao gồm 4x4 = 16 phần tử (các phần tử con).
To compute the DCT of an input image f(x,y) rather than a subimage, change n
to N in Eqs. (8.2-18) and (8.2-19)
{√ √ 1
¿ ∧¿ for u=0
α ( u )= n ( 8.2−19)
2
¿ ∧¿ for u=1,2, … , n−1
n
và tương tự đối với Hình 8.23 cho thấy r (x, y, u, v) đối với trường hợp n =
4. Việc tính toán tuân theo định dạng tương tự như được giải thích trong Hình
8.22, với sự khác biệt là các giá trị của r không phải là số nguyên. Trong hình
8.23, các giá trị cường độ sáng hơn tương ứng với các giá trị lớn hơn của r.
Hình 8.24 (a) đến (c) cho thấy ba xấp xỉ của hình ảnh đơn sắc 512 x 512
trong Hình 8.9 (a). Những hình ảnh này thu được bằng cách chia hình ảnh gốc
thành các hình ảnh con có kích thước 8x8 đại diện cho mỗi hình ảnh con bằng
cách sử dụng một trong các phép biến đổi vừa được mô tả (tức là phép biến đổi
DFT, WHT hoặc DCT), cắt bớt 50% các hệ số thu được, và lấy biến đổi nghịch
đảo của mảng hệ số cắt ngắn.
EXAMPLE 8.13: Block transform coding with the DFT, WHT, and DCT
Trong mỗi trường hợp, 32 hệ số được giữ lại được chọn trên cơ sở độ lớn
tối đa. Lưu ý rằng trong mọi trường hợp, 32 hệ số bị loại bỏ có rất ít tác động
trực quan đến chất lượng của hình ảnh được tái tạo. Tuy nhiên, việc loại bỏ
chúng đi kèm với một số sai số trung bình, có thể được nhìn thấy trong các hình
ảnh sai số tỷ lệ của Figs. 8.24 (d) đến (f). Các lỗi rms thực tế cường độ lần lượt
là 2,32, 1,78 và 1,13.
Những khác biệt nhỏ về sai số tái tạo bình phương trung bình được ghi
nhận trong ví dụ trước liên quan trực tiếp đến đặc tính đóng gói năng lượng hoặc
thông tin của các phép biến đổi được sử dụng. Phù hợp với Eq. (8.2-11), một
ảnh con n x n g (x, y) có thể được biểu diễn dưới dạng một hàm của phép biến
đổi 2-D của nó T (u, v).
n−1 n −1
g ( x , y )=∑ ❑ ∑ ❑T (u , v ) s ( x , y , u , v )( 8.2−20 )
u=0 v=0
với x, y = 0,1,2, ..., n-1. Vì hạt nhân nghịch đảo s (x, y, u, v) trong
Phương trình (8.2-20) chỉ phụ thuộc vào các chỉ số x, y, u, v và không phụ
thuộc vào các giá trị của g (x, y) hoặc T (u, v), nó có thể được xem như là xác
định một tập hợp T (u, v), các hàm cơ sở hoặc hình ảnh cơ sở cho chuỗi được
xác định bởi Eq. (8,2-20). Sự giải thích này trở nên rõ ràng hơn nếu ký hiệu
được sử dụng trong Eq. (8.2-20) được sửa đổi để có được
n−1 n−1
G=∑ ❑ ∑ ❑T ( u , v ) Suv ( 8.2−21 )
u =0 v=0
[ ]
s ( 0,0 , u , v ) s ( 0,1 , u , v ) ⋯ s ( 0 , n−1 ,u , v )
s ( 1,0 , u , v ) ⋮ ⋯ ⋮
Suv = ⋮ ⋮ ⋯ ⋮ ⋯ ¿ s ( n−1 , n−1 , u , v ) ¿
⋮ ⋮ ⋯ ⋮
⋮ ¿ ¿ s ( n−1,0 , u , v ) ¿
(8.2−22)
Khi đó G, ma trận chứa các pixel của hình ảnh con đầu vào, được xác định
rõ ràng là một tổ hợp tuyến tính của n2 ma trận có kích thước n x n; nghĩa là, Suv
cho u, v = 0,1,2, ..., n-1 trong phương trình. (8.2-22). Các ma trận này trên thực
tế là hình ảnh cơ bản (hoặc hàm) của khai triển chuỗi trong phương trình. (8,2-
20); T(u, v) là các hệ số khai triển. Hình 8.22 và 8.23 minh họa bằng đồ thị hình
ảnh cơ sở WHT và DCT cho trường hợp n = 4
Nếu bây giờ chúng ta xác định một hàm che hệ số biến đổi
{
χ (u , v)= ¿ 0∧¿ if T (u , v) satisfies a specified truncation criterion (8.2-23)
¿ 1∧¿ otherwise
với u, v = 0,1,2, ..., n-1 có thể thu được xấp xỉ G từ khai triển rút gọn
n−1 n−1
^ ∑ ❑ ∑ ❑ χ ( u , v ) T ( u , v ) S ( 8.3−24 )
G= uv
u =0 v=0
trong đó X (u, v) được xây dựng để loại bỏ các ảnh cơ sở đóng góp nhỏ
nhất vào tổng tổng trong phương trình. (8,2-21). Sai số bình phương trung bình
^ khi đó là:
giữa giá trị phụ G và xấp xỉ G
e ms∧¿ E { ∥G−G
^ ∥2 }
{‖∑ ‖}
n−1 n−1 n−1 n−1 2
¿=E ❑ ∑ ❑ T ( u , v ) S uv −∑ ❑ ∑ ❑ χ ( u , v ) T ( u , v ) Suv
u=0 v=0 u=0 v=0
( 8.2−25)
{ |}
n −1 n −1 2
u =0 v=0
Cả ba đường cong giao nhau khi sử dụng 2 x 2 trang con. Trong trường hợp
này, chỉ một trong bốn hệ số (25%) của mỗi mảng đã biến đổi được giữ lại. Hệ
số trong mọi trường hợp là thành phần dc, do đó, phép biến đổi nghịch đảo chỉ
đơn giản là thay thế bốn pixel hình ảnh con bằng giá trị trung bình của chúng
[xem phương trình. (4,6-21)]. Điều kiện này được thể hiện rõ trong Hình 8.27
(b), cho thấy một phần được thu phóng của kết quả DCT 2 x 2. Lưu ý rằng cấu
phần chặn phổ biến trong kết quả này giảm khi kích thước hình ảnh con tăng lên
4 x 4 và 8 x 8 trong Hình. 8.27 (c) và (d). Hình 8.27 (a) cho thấy một phần được
thu phóng của hình ảnh gốc để tham khảo.
Phân bổ bit
Lỗi xây dựng lại liên quan đến mở rộng chuỗi bị cắt ngắn của Eq. (8.2-24)
là một hàm của số lượng và tầm quan trọng tương đối của các hệ số biến đổi bị
loại bỏ, cũng như độ chính xác được sử dụng để biểu thị các hệ số được giữ lại.
Trong hầu hết các hệ thống mã hóa biến đổi, các hệ số được giữ lại được chọn
[nghĩa là hàm che của Eq. (8.2-23) được xây dựng] trên cơ sở phương sai tối đa,
được gọi là mã hóa vùng, hoặc trên cơ sở độ lớn tối đa, được gọi là mã hóa
ngưỡng. Quá trình tổng thể của việc cắt ngắn, lượng tử hóa và mã hóa các hệ số
của một hình con đã biến đổi thường được gọi là cấp phát bit.
8.2 Một số phương pháp nén cơ bản
các hệ số biến đổi bị loại bỏ, cũng như độ chính xác được sử dụng để biểu
diễn các hệ số được giữ lại. Trong hầu hết các hệ thống mã hóa biến đổi, các hệ
số được giữ lại được chọn [nghĩa là hàm che của Eq. (8.2-23) được xây dựng]
trên cơ sở phương sai tối đa, được gọi là mã hóa
vùng, hoặc trên cơ sở độ lớn tối đa, được gọi là mã hóa ngưỡng. Quá trình
tổng thể của việc cắt ngắn, lượng tử hóa và mã hóa các hệ số của một tiểu phân
đã biến đổi thường được gọi là cấp phát bit.
Hình 8.28 (a) và (c) cho thấy hai hình gần đúng của Hình 8.9 (a) trong đó
VÍ DỤ 8.15:
87,5% hệ số DCT của
mỗi hình ảnh con 8 * 8 đã bị
loại bỏ. Kết quả đầu tiên thu
được thông qua Cấp phát
bit. mã hóa ngưỡng bằng
cách giữ nguyên tám hệ số
biến đổi lớn nhất và hình ảnh
thứ hai được tạo ra bằng
cách sử dụng phương pháp
mã hóa theo vùng. Trong
trường hợp thứ hai, mỗi hệ
số DCT được coi là một biến
ngẫu nhiên mà phân phối của nó có thể được tính trên tập hợp của tất cả các tiểu
phân đã biến đổi. 8 phân phối của phương sai lớn nhất (12,5% trong số 64 hệ số
trong hình ảnh con 8 * 8 được biến đổi) đã được định vị và sử dụng để xác định
tọa độ, u và v, trong số các hệ số, T (u, v), đã được giữ lại cho tất cả các trang
con. Lưu ý rằng hình ảnh chênh lệch mã hóa ngưỡng trong Hình 8.28 (b) chứa ít
lỗi hơn so với kết quả mã hóa vùng trong Hình 8.28 (d). Cả hai hình ảnh đã
được thu nhỏ để làm cho lỗi hiển thị rõ ràng hơn. Các lỗi rms tương ứng là
cường độ 4,5 và 6,5 tương ứng.
HÌNH 8.28
Các ước tính trong Hình 8.9 (a) bằng cách sử dụng 12,5% trong số 8 * 8
DCT hệ số: (a) - (b) ngưỡng mã hóa kết quả; (c) - (d) địa đới kết quả mã hóa.
Các hình ảnh khác biệt được chia tỷ lệ bằng 4.
Triển khai mã hóa vùng
Mã hóa vùng dựa trên khái niệm lý thuyết thông tin coi thông tin là độ
không đảm bảo, do đó các hệ số biến đổi của phương sai cực đại mang nhiều
thông tin hình ảnh nhất và cần được giữ lại trong quá trình mã hóa. Bản thân các
phương sai có thể được tính toán trực tiếp từ tập hợp của MN> n 2 mảng hình ảnh
con được biến đổi, như trong ví dụ trước, hoặc dựa trên mô hình hình ảnh giả
định (giả sử, hàm tự tương quan aMarkov). Trong cả hai trường hợp, quá trình
lấy mẫu khu vực có thể được xem, phù hợp với Eq. (8,2-24), khi nhân mỗi T (u,
v) bởi phần tử tương ứng trong một mặt nạ khoanh vùng, được xây dựng bằng
cách đặt số 1 ở các vị trí có phương sai lớn nhất và số 0 ở tất cả các vị trí khác.
Hệ số của phương sai cực đại thường nằm xung quanh điểm gốc của một phép
biến đổi hình ảnh, dẫn đến mặt nạ khoanh vùng điển hình được thể hiện trong
Hình 8.29 (a).
Các hệ số được giữ lại trong quá trình lấy mẫu khu vực phải được lượng tử
hóa và mã hóa, do đó, các mặt nạ khu vực đôi khi được mô tả cho thấy số lượng
bit được sử dụng để mã hóa mỗi hệ số [Hình. 8,29 (b)]. Trong hầu hết các
trường hợp, các hệ số được phân bổ cùng một số lượng bit, hoặc một số bit cố
định được phân phối giữa chúng không đồng đều. Trong trường hợp đầu tiên,
các hệ số thường được chuẩn hóa bằng độ lệch chuẩn của chúng và được lượng
tử hóa một cách đồng nhất. Trong trường hợp thứ hai, một bộ định lượng, chẳng
hạn như một bộ định lượng Lloyd-Max tối ưu (xem Bộ định lượng tối ưu trong
Phần 8.2.9).
Một điển hình (a) mặt nạ khoanh vùng, (b) bit zonal phân bổ, (c) ngưỡng
mặt nạ, và (d) ngưỡng hệ số đặt hàng sự nối tiếp. Bóng râm Làm nổi bật hệ số
đó được giữ lại.
Mật độ Gaussian. † Số lượng mức lượng tử hóa (và do đó số lượng
bit) được phân bổ cho mỗi bộ lượng tử được thực hiện tỷ lệ với log 2 S T
(u, v). Do đó, các hệ số được giữ lại 2 trong Eq. (8.2-24) —mà (trong bối cảnh
của thảo luận hiện tại-
sion) được chọn trên cơ sở phương sai tối đa — được gán các bit tương ứng
với logarit của phương sai hệ số.
Triển khai mã hóa ngưỡng Mã hóa vùng thường được thực hiện bằng
cách sử dụng một mặt nạ cố định duy nhất cho tất cả các trang con. Tuy nhiên,
mã hóa ngưỡng vốn có tính thích ứng theo nghĩa là vị trí của các hệ số biến đổi
được giữ lại cho mỗi hình ảnh con thay đổi từ hình ảnh con này sang hình ảnh
con khác. Trên thực tế, mã hóa ngưỡng là cách tiếp cận mã hóa biến đổi thích
ứng thường được sử dụng nhất trong thực tế vì tính đơn giản của nó. Khái niệm
cơ bản là, đối với bất kỳ hình ảnh con nào, hệ số biến đổi có độ lớn lớn nhất sẽ
đóng góp đáng kể nhất vào chất lượng hình ảnh con được tái tạo, như được minh
họa trong ví dụ cuối cùng. Bởi vì vị trí của các hệ số tối đa khác nhau giữa các
tiểu phân này, các phần tử của x ( u, v) T (u, v) thường được sắp xếp lại (theo
cách xác định trước) để tạo thành một chuỗi được mã hóa 1-D, có thời lượng
chạy. Hình 8.29 (c) cho thấy một mặt nạ ngưỡng cho một hình ảnh con của hình
ảnh giả định. Mặt nạ này cung cấp một cách thuận tiện để trực quan hóa quy
trình mã hóa ngưỡng cho hình ảnh con tương ứng, cũng như mô tả toán học quy
trình bằng cách sử dụng Eq. (8.2-24) . Khi mặt nạ được áp dụng [thông qua Eq.
(8.2-24)] đến tiểu phân mà nó được bắt nguồn và kết quả n * n mảng được sắp
xếp lại để tạo thành một n 2- trình tự hệ số phần tử phù hợp với mô hình sắp xếp
zíc-zắc của Hình 8.29 (d), trình tự 1-D được sắp xếp lại chứa một số đoạn dài 0s
[mô hình zigzag trở nên rõ ràng bằng cách bắt đầu từ 0 trong Hình 8.29 (d) và
theo số trong dãy].
Những lần chạy này thường được mã hóa theo thời gian chạy. Các hệ số
khác không hoặc được giữ lại, tương ứng với các vị trí mặt nạ có chứa 1,
được biểu diễn bằng mã có độ dài thay đổi.
Có ba cách cơ bản để ngưỡng một hình ảnh con được chuyển đổi
hoặc, được nêu theo cách khác, để tạo chức năng che ngưỡng hình ảnh con
của biểu mẫu được đưa ra trong Công thức. (8.2-23): (1) Một ngưỡng chung
duy nhất có thể được áp dụng cho tất cả các trang con; (2) một ngưỡng khác
nhau có thể được sử dụng cho mỗi hình ảnh con; hoặc (3) ngưỡng có thể được
thay đổi như một hàm của vị trí của từng hệ số trong hình ảnh con. Trong
cách tiếp cận đầu tiên, mức độ nén khác nhau giữa các hình ảnh, tùy thuộc
vào số lượng hệ số vượt quá ngưỡng tổng thể. Trong lần thứ hai, được gọi là
N-mã hóa lớn nhất, cùng một số lượng hệ số được loại bỏ cho mỗi hình ảnh
con, kết quả là tốc độ mã là không đổi và được biết trước. Kỹ thuật thứ ba,
giống như kỹ thuật đầu tiên, dẫn đến tỷ lệ mã thay đổi, nhưng mang lại lợi ích
là ngưỡng và lượng tử hóa có thể được kết hợp bằng cách thay thế X(u,v),
T(u,v) trong công thức 8.2-24 bằng
[
T^ ( u , v ) = round
]
T (u , v )
Z (u , v )
(8.2−26)
Với T^( u, v) F là một ước lượng gần đúng được ngưỡng và lượng hóa
của T(u, v). và Z (u, v) là một phần tử của mảng chuẩn hóa biến đổi
[ ]
Z ( 0,0) Z (0,1) … Z(0 , n−1)
Z(1,0) ⋮ … ⋮
Z= ⋮ ⋮ … ⋮ (8.2−27)
⋮ ⋮ … ⋮
⋮ ⋮ … ⋮
Z( n−1,0) Z (n−1,1) … Z (n−1, n−1)
Trước khi chuyển đổi hình ảnh con chuẩn hóa (được ngưỡng và lượng tử
hóa), T N ( u, v), có thể được biến đổi ngược để thu được xấp xỉ hình ảnh con
g (x, y), # nó phải được nhân với Z (u, v). Kết quả là mảng không chuẩn
hóa, được biểu thị T (u, v) là một sự gần đúng của T N ( u, v
Ṫ ( u , v ) =T^ ( u , v ) Z ( u , v ) (8.2−28)
Biến đổi nghịch đảo của T (u, v) mang lại xấp xỉ hình ảnh con được giải nén.
Hình 8.30 (a) mô tả Eq. (8.2-26) bằng đồ thị cho trường hợp trong đó Z (u, v)
được chỉ định một giá trị cụ thể c. Lưu ý rằng T N ( u, v) giả định giá trị số
nguyên k nếu và chỉ nếu
c c
kc− ≤ T ( u , v ) < kc+ (8.2−29)
2 2
HÌNH 8.30 (a) Một ngưỡng mã hóa lượng tử hóa đường cong [xem phương
trình.
(8,2-29)]. (ba
điển hình bình thường hóa ma trận.
có thể được thay đổi tỷ lệ để đạt được nhiều mức độ nén. Hình 8.30 (b)
cho thấy một mảng chuẩn hóa điển hình. Mảng này, đã được sử dụng rộng rãi
trong các nỗ lực chuẩn hóa JPEG (xem phần tiếp theo), cân nhắc từng hệ số
của một hình ảnh con được biến đổi theo tầm quan trọng của cảm giác hoặc
tâm lý được xác định bằng kinh nghiệm.
■ Hình 8.31 (a) đến (f) cho thấy sáu xấp xỉ được mã hóa ngưỡng của
hình ảnh đơn sắc trong Hình 8.9 (a). Tất cả các hình ảnh được tạo bằng cách
sử dụng DCT 8 * 8 và mảng chuẩn hóa của Hình 8.30 (b). Kết quả đầu tiên
cung cấp tỷ lệ nén khoảng 12 đến 1 (tức là, C = 12), thu được bằng cách áp
dụng trực tiếp mảng chuẩn hóa đó. Các kết quả còn lại, nén hình ảnh gốc 19,
30, 49, 85 và 182 thành 1, được tạo ra sau khi nhân (chia tỷ lệ) mảng chuẩn
hóa với lần lượt là 2, 4, 8, 16 và 32. Các lỗi rms tương ứng là mức cường độ
3,83, 4,93, 6,62, 9,35, 13,94 và 22,46. ■
VÍ DỤ 8.16: Minh họa của mã hóa ngưỡng
JPEG
Một trong những tiêu chuẩn nén khung hình tĩnh phổ biến và toàn diện nhất
là tiêu chuẩn JPEG. Nó định nghĩa ba hệ thống mã hóa khác nhau: (1) một hệ
thống mã hóa đường cơ sở có tổn hao, dựa trên DCT và thích hợp cho hầu hết
các ứng dụng nén; (2) một hệ thống mã hóa mở rộng cho
abc
phản đối
HÌNH 8.31 Tính gần đúng của Hình 8.9 (a) bằng cách sử dụng DCT và mảng
chuẩn hóa của Hình 8.30 (b): (a) Z, (b) 2 Z, ( c) 4 Z, ( d) 8 Z, ( e) 16 Z, và (f) 32 Z.
độ nén lớn hơn, độ chính xác cao hơn hoặc các ứng dụng tái tạo tiến bộ; và (3)
một hệ thống mã hóa độc lập không tổn hao để nén có thể đảo ngược. Để tương thích
với JPEG, một sản phẩm hoặc hệ thống phải bao gồm hỗ trợ cho hệ thống cơ sở.
Không có định dạng tệp cụ thể, độ phân giải không gian hoặc mô hình không gian
màu nào được chỉ định.
Trong hệ thống đường cơ sở, thường được gọi là hệ thống cơ sở tuần tự, độ
chính xác của dữ liệu đầu vào và đầu ra được giới hạn ở 8 bit, trong khi các giá trị
DCT lượng tử hóa bị giới hạn ở 11 bit. Quá trình nén được thực hiện theo ba bước
tuần tự: tính toán DCT, lượng tử hóa và gán mã có độ dài thay đổi. Hình ảnh đầu
tiên được chia thành các khối pixel có kích thước 8
* 8, được xử lý từ trái sang phải, từ trên xuống dưới. Khi gặp mỗi khối 8 * 8
hoặc hình ảnh con, 64 pixel của nó được chuyển cấp bằng cách trừ đi số lượng 2 k- 1,
nơi 2 k là số mức cường độ lớn nhất. Sau đó, phép biến đổi cosin rời rạc 2-D của
khối được tính toán, lượng tử hóa theo Eq. (8.2-26), và được sắp xếp lại, sử dụng
mô hình ngoằn ngoèo của Hình 8.29 (d), để tạo thành một chuỗi 1-D của các hệ số
lượng tử hóa.
Bởi vì mảng được sắp xếp lại theo thứ tự một chiều được tạo ra theo mô hình
ngoằn ngoèo của Hình 8.29 (d) được sắp xếp một cách định tính theo tần số
không gian ngày càng tăng, quy trình mã hóa JPEG được thiết kế để tận dụng
các khoảng thời gian dài của các số không thường là kết quả của việc
sắp xếp lại. Đặc biệt, AC nonzero † hệ số được mã hóa bằng cách sử dụng mã
có độ dài thay đổi xác định các giá trị hệ số và số lượng các số không đứng
trước. Hệ số DC là sự khác biệt được mã hóa so với hệ số DC của hình ảnh
con trước đó.
Bảng A.3, A.4 và A.5 trong Phụ lục A cung cấp mã JPEG Huffman mặc
định cho thành phần độ chói của ảnh màu hoặc cường độ của ảnh đơn sắc.
Mảng lượng tử hóa độ sáng được đề xuất JPEG được đưa ra trong Hình 8.30
(b) và có thể được chia tỷ lệ để cung cấp nhiều mức độ nén khác nhau. Việc
chia tỷ lệ của mảng này cho phép người dùng chọn “chất lượng” của các nén
JPEG. Mặc dù bảng mã hóa và mảng lượng tử hóa mặc định được cung cấp
cho cả quá trình xử lý
VÍ DỤ 8.17:
Trong tiêu chuẩn, thuật ngữ AC biểu thị tất cả các hệ số biến đổi, ngoại trừ
hệ số 0 hoặc DC.
Hình ảnh gốc bao gồm 256 hoặc 2 số 8 cường độ có thể có, vì vậy quá trình
mã hóa bắt đầu bằng cách dịch chuyển các pixel của hình ảnh con ban đầu
xuống -2 7 hoặc là - 128 mức cường độ. Kết quả là mảng được dịch chuyển là
Mà khi được chuyển đổi theo DCT chuyển tiếp của phương trình. (8.2-10) và
(8.2-18) cho n = 8, trở thành
Nếu mảng chuẩn hóa JPEG được đề xuất trong Hình 8.30 (b) được sử dụng để
lượng tử hóa mảng đã biến đổi, thì mảng được chia tỷ lệ và cắt ngắn [nghĩa là được
chuẩn hóa theo Eq. (8.2-26)] hệ số là
trong đó, ví dụ, hệ số DC được tính là
T N ( 0, 0) = vòng B T ( 0, 0) R
Z ( 0, 0)
Lưu ý rằng quá trình biến đổi và chuẩn hóa tạo ra một số lượng lớn các hệ số
có giá trị bằng không. Khi các hệ số được sắp xếp lại trong
phù hợp với mô hình sắp xếp zigzag của Hình 8.29 (d), chuỗi hệ số 1-D kết quả
là
[-26 -3 1 -3 -2 -6 2 -4 1 -4 1 1 5 0 2 0 0 -1 2 0 0 0 0 0 -1 -1 EOB]
trong đó ký hiệu EOB biểu thị điều kiện kết thúc khối. Một từ mã đặc biệt của
EOB Huffman (xem danh mục 0 và thời lượng chạy 0 trong BảngA.5) được cung cấp
để chỉ ra rằng phần còn lại của các hệ số trong một chuỗi được sắp xếp lại là số
không.
Việc xây dựng mã JPEG mặc định cho chuỗi hệ số được sắp xếp lại bắt đầu
bằng việc tính toán sự khác biệt giữa hệ số DC hiện tại và hệ số của hình ảnh con
được mã hóa trước đó. Giả sử hệ số DC của hình ảnh con được biến đổi và lượng tử
hóa ở ngay bên trái của nó là
còn lại phải được tạo ra từ các bit ít quan trọng nhất (LSB) của giá trị chênh
lệch. Đối với một danh mục khác biệt chung của DC (giả sử, danh mục K), một bổ
Bảng A.3 và A.5. Sự khác biệt cơ bản là mỗi từ mã AC Huffman mặc định phụ
thuộc vào số lượng hệ số có giá trị 0 đứng trước hệ số khác không được mã hóa, cũng
như loại cường độ của hệ số khác không. (Xem cột có nhãn Chạy / Danh mục trong
Bảng
A.5.) Do đó, hệ số AC khác không đầu tiên của mảng được sắp xếp lại (-3) được
mã hóa là 0100. 2 bit đầu tiên của mã này chỉ ra rằng hệ số ở loại cường độ 2 và đứng
trước không có hệ số có giá trị bằng 0 (xem Bàn
A.3); 2 bit cuối cùng được tạo ra bởi cùng một quá trình được sử dụng để đến
các LSB của mã khác biệt DC. Tiếp tục theo cách này, mảng được mã hóa hoàn toàn
(được sắp xếp lại) là
1010110 0100 001 0100 0101 100001 0110 100011 001 100011 001
001 100101 11100110 110110 0110 11110100 000 1010
trong đó các khoảng trắng chỉ được chèn vào để dễ đọc. Mặc dù không cần thiết
trong ví dụ này, nhưng mã JPEG mặc định chứa một từ mã đặc biệt cho một loạt 15
số không theo sau là số 0 (xem danh mục 0 và độ dài chạy F trong Bảng
A.5). Tổng số bit trong mảng được sắp xếp lại được mã hóa hoàn toàn (và do đó
số lượng bit cần thiết để đại diện cho toàn bộ 8 *> 8, 8 bit của hình ảnh con của ví dụ
này) là 92. Tỷ lệ nén kết quả là 512 92, hoặc khoảng 5,6: 1.
Để giải nén hình ảnh con được nén JPEG, trước tiên bộ giải mã phải tạo lại các
hệ số biến đổi chuẩn hóa dẫn đến luồng bit nén. Bởi vì chuỗi nhị phân được mã hóa
bởi Huffman có thể giải mã tức thời và duy nhất, bước này có thể dễ dàng thực hiện
theo cách bảng tra cứu đơn giản.
Ở đây, mảng hệ số lượng tử được tạo lại là
Sau khi không chuẩn hóa theo Eq. (8.2-28), mảng trở thành
Hình ảnh con được tái tạo lại hoàn toàn có được bằng cách lấy DCT nghịch
đảo của mảng không chuẩn hóa phù hợp với Công thức. (8.2-11) và (8.2-18) để
có được
và mức độ dịch chuyển từng pixel được biến đổi ngược bởi (hoặc) để mang lại
Bất kỳ sự khác biệt nào giữa hình ảnh con gốc và được tái tạo đều là kết quả của
bản chất mất mát của quá trình nén và giải nén JPEG. Trong ví dụ này, các lỗi
có phạm vi từ đến và được phân bổ như sau:
Sai số gốc-trung bình-bình phương của quá trình nén và tái tạo tổng thể là
khoảng 5,8 mức cường độ.
VÍ DỤ 8.18: Minh họa về mã hóa JPEG
Hình 8.32 (a) và (d) cho thấy hai xấp xỉ JPEG của hình ảnh đơn sắc trong Hình
8.9 (a). Kết quả đầu tiên cung cấp độ nén 25: 1; thứ hai nén hình ảnh ban đầu
52: 1. Sự khác biệt giữa hình ảnh gốc và hình ảnh được tái tạo trong Hình. 8.30
(a) và (d) được thể hiện trong Hình. 8,30 (b) và (e) tương ứng. Sai số rms tương
ứng là 5,4 và 10,7 cường độ. Các lỗi có thể nhìn thấy rõ ràng trong các hình ảnh
được phóng to trong Hình. 8.32 (c) và (f). Những hình ảnh này cho thấy một
phần được phóng đại của Figs. 8.32 (a) và (d), tương ứng. Lưu ý rằng cấu phần
chặn JPEG tăng lên khi nén.
8.2.9 Mã hóa dự đoán
Với tham chiếu đến Bảng 8.3 và 8.4, mã dự đoán được sử dụng trong
● JBIG2
● JPEG
● JPEG-LS
● MPEG-1,2,4
● H.261, H.262, H.263 và H.264
● HDV
● VC-1 và các tiêu chuẩn nén và định dạng tệp khác.
Bây giờ chúng tôi chuyển sang một cách tiếp cận nén đơn giản hơn để đạt được
khả năng nén tốt mà không có chi phí tính toán đáng kể và có thể không có lỗi
hoặc mất mát. Cách tiếp cận, thường được gọi là mã hóa dự đoán, dựa trên việc
loại bỏ sự dư thừa của các pixel cách xa nhau - trong không gian và / hoặc thời
gian - bằng cách chỉ trích xuất và mã hóa thông tin mới trong mỗi pixel. Thông
tin mới của pixel được định nghĩa là sự khác biệt giữa giá trị thực tế và giá trị dự
đoán của pixel.
Mã hóa dự đoán không tổn thất
Hình 8.33 cho thấy các thành phần cơ bản của hệ thống mã hóa dự đoán không
mất dữ liệu. Hệ thống bao gồm một bộ mã hóa và một bộ giải mã, mỗi thành
phần chứa một
người dự đoán. Khi các mẫu liên tiếp của tín hiệu đầu vào thời gian rời rạc, được
đưa vào bộ mã hóa, bộ dự đoán tạo ra giá trị dự đoán của mỗi mẫu dựa trên một
số lượng mẫu trước đây được chỉ định. Kết quả đầu ra của bộ dự đoán sau đó
được làm tròn đến số nguyên gần nhất, được ký hiệu và được sử dụng để tạo
thành sự khác biệt hoặc lỗi dự đoán
e ( n )=f ( n )− ^f ( n ) (8.2−30)
HÌNH 8.32 Hai xấp xỉ JPEG của Hình 8.9 (a). Mỗi hàng chứa một kết quả sau
khi nén và tái tạo, chênh lệch tỷ lệ giữa kết quả và hình ảnh gốc và một phần
được thu phóng của hình ảnh được tái tạo.
được mã hóa bằng cách sử dụng mã có độ dài thay đổi (bởi bộ mã hóa ký hiệu)
để tạo phần tử tiếp theo của luồng dữ liệu nén. Bộ giải mã trong Hình 8.33 (b)
tái cấu trúc từ các từ mã có độ dài thay đổi nhận được và thực hiện thao tác
ngược
f ( n )=e ( n ) + f^ ( n ) ( 8.2−31)
để giải nén hoặc tạo lại chuỗi đầu vào ban đầu. Có thể sử dụng nhiều phương
pháp cục bộ, toàn cục và phương pháp thích ứng khác nhau (xem phần phụ sau
có tên Mã dự đoán tổn hao) để tạo ra Trong nhiều trường hợp, dự đoán được
hình thành dưới dạng kết hợp tuyến tính của các mẫu trước. Đó là
[∑ ]
m
^f ( n )= round ❑ α i f ( n−i ) (8.2−32)
i=1
trong đó order of là công cụ dự đoán tuyến tính, vòng là một hàm được sử dụng
để biểu thị phép toán làm tròn hoặc số nguyên gần nhất, và for là các hệ số dự
đoán. Nếu trình tự đầu vào trong Hình 8.33 (a) được coi là
HÌNH 8.33 Mô hình mã hóa dự đoán không mất dữ liệu:
(a) bộ mã hóa;
(b) bộ giải mã.
mẫu của một hình ảnh, tính bằng Eqs. (8.2-30) đến (8.2-32) là các pixel — và
các mẫu được sử dụng để dự đoán giá trị của mỗi pixel đến từ dòng quét hiện tại
(được gọi là mã hóa dự đoán tuyến tính 1-D), từ các dòng quét hiện tại và trước
đó (được gọi là Mã hóa dự đoán tuyến tính 2-D), hoặc từ hình ảnh hiện tại và
hình ảnh trước đó trong một chuỗi hình ảnh (được gọi là mã hóa dự đoán tuyến
tính 3-D). Do đó, đối với mã hóa hình ảnh dự đoán tuyến tính 1-D, Eq. (8.2-32)
có thể được viết là
[ ]
m
^f ( x , y )= round ∑ ❑ α i f (x , y−i) (8.2-33)
i=1
trong đó mỗi mẫu hiện được biểu thị rõ ràng dưới dạng một hàm của tọa độ
không gian của hình ảnh đầu vào và Lưu ý rằng phương trình (8.2-33) chỉ ra
rằng dự đoán tuyến tính 1-D là một hàm của các pixel trước đó trên dòng hiện
tại. Trong mã hóa dự đoán 2-D, dự đoán là một chức năng của các pixel trước đó
trong quá trình quét từ trái sang phải, từ trên xuống dưới của một hình ảnh.
Trong trường hợp 3-D, nó dựa trên các pixel này và các pixel trước của khung
hình trước đó. Phương trình (8.2-33) không thể được đánh giá cho các pixel đầu
tiên của mỗi dòng, vì vậy các pixel đó phải được mã hóa bằng cách sử dụng các
phương tiện khác (chẳng hạn như mã Huffman) và được coi là một phần của quá
trình mã hóa dự đoán. Nhận xét tương tự áp dụng cho các trường hợp chiều cao
hơn.
VÍ DỤ 8.19: Mã hóa dự đoán và dư thừa không gian
Xem xét mã hóa hình ảnh đơn sắc của Hình 8.34 (a) bằng cách sử dụng công cụ
dự đoán tuyến tính bậc nhất đơn giản (tức là) từ phương trình. (8,2-33)
^f ( x , y )= round [ αf ( x , y−1 ) ] ( 8.2−34 )
Phương trình này là một đơn giản hóa của Eq. (8.2-33) với và chỉ số phụ của hệ
số dự đoán đơn lẻ giảm xuống là không cần thiết. Một dự đoán của dạng tổng
quát này được gọi là pixelpredictor trước đó, và quy trình mã hóa dự đoán tương
ứng được gọi là mã hóa pixel trước mã hóa vi phân.
Hình 8.34 (c) cho thấy hình ảnh lỗi dự đoán, e ( x , y )=f (x , y )− ^f ( x , y )
kết quả từ Eq. (8.2-34) với Tỷ lệ của hình ảnh này sao cho cường độ 128 đại
diện cho sai số dự đoán bằng 0, trong khi tất cả các lỗi dự đoán âm và dương
khác không (ước tính thấp hơn và cao hơn) được hiển thị dưới dạng màu xám
nhạt hơn và tối hơn. giá trị trung bình của hình ảnh dự đoán là 128,26. Vì cường
độ 128 tương ứng với sai số dự đoán bằng 0, nên sai số dự đoán trung bình chỉ là
0,26 bit.
HÌNH 8.34
(a) Quang cảnh Trái đất từ một tàu con thoi quay quanh quỹ đạo.
(b) Biểu đồ cường độ của
(a). (c) Kết quả hình ảnh lỗi dự đoán
từ Eq. (8,2-34).
(d) Biểu đồ của lỗi dự đoán. (Hình ảnh gốc do NASA cung cấp.)
sai số dự đoán trong Hình 8.34 (d) nhỏ hơn nhiều so với độ lệch chuẩn của các
cường độ trong ảnh gốc. Hơn nữa, entropy của lỗi dự đoán — như được ước tính
bằng cách sử dụng Eq. (8,1-7) - nhỏ hơn đáng kể so với entropy ước tính của
hình ảnh gốc (3,99 so với 7,25 b / p). Sự giảm entropy này phản ánh việc loại bỏ
rất nhiều dư thừa không gian, mặc dù thực tế là đối với ảnh k-bit, các số là cần
thiết để đại diện cho chuỗi lỗi dự đoán chính xác Nói chung, độ nén tối đa của
phương pháp mã hóa dự đoán có thể được ước tính bằng cách chia số bit trung
bình được sử dụng để đại diện cho mỗi pixel trong ảnh gốc bằng ước tính
entropy của lỗi dự đoán. Trong ví dụ này, bất kỳ quy trình mã hóa có độ dài thay
đổi nào cũng có thể được sử dụng để viết mã nhưng kết quả nén sẽ được giới
hạn trong khoảng hoặc 2: 1.
hình ảnh đầu vào vào chuỗi lỗi dự đoán — thường được gọi là phần dư dự đoán.
Bởi vì dư thừa theo không gian bị loại bỏ bởi quá trình dự đoán và sai phân, hàm
mật độ xác suất của phần dư dự đoán nói chung là cao nhất bằng 0 và được đặc
trưng bởi một phương sai tương đối nhỏ (so với phân bố cường độ đầu vào).
Trên thực tế, nó thường được mô hình hóa bằng một tệp PDF Laplacian không
tương quan có nghĩa là 0
− √ 2|ϵ|
1 σe
pe ( e ) = e (8.2−35)
√2 σe
đâu là độ lệch chuẩn của e.
VÍ DỤ 8.20: Mã hóa dự đoán và dự phòng theo thời gian
Hình ảnh trong Hình 8.34 (a) là một phần của khung video của NASA, trong đó
Trái đất đang chuyển động từ trái sang phải đối với một máy ảnh đứng yên gắn
với tàu con thoi. Nó được lặp lại trong Hình 8.35 (b) —cùng với khung liền
trước của nó trong Hình 8.35 (a). Sử dụng công cụ dự đoán tuyến tính bậc nhất
^f ( x , y , t)= round [αf (x , y , t−1)] (8.2-36)
HÌNH 8.35 (a) và (b) Hai chế độ xem Trái đất từ video quay quanh tàu con thoi.
(c) Hình ảnh lỗi dự đoán do Eq. (8,2-36).
(d) Biểu đồ của lỗi dự đoán.
(Hình ảnh gốc do NASA cung cấp.
với cường độ của các pixel trong Hình 8.35 (b) có thể được dự đoán từ
các pixel tương ứng trong (a). Hình 8.34 (c) là hình ảnh dư dự đoán kết quả,
Hình 8.34 (d) là biểu đồ của
Lưu ý rằng có rất ít lỗi dự đoán. Độ lệch chuẩn của lỗi nhỏ hơn nhiều so với
trong ví dụ trước — 3,76 so với 15,58. Ngoài ra, entropy của lỗi dự đoán [được
tính bằng cách sử dụng Eq. (8.1-7)] đã giảm từ 3,99 xuống 2,59. Bằng cách mã
hóa độ dài thay đổi phần dư dự đoán kết quả, hình ảnh gốc được nén xấp xỉ hoặc
3,1: 1 — cải thiện 50% so với nén 2: 1 thu được bằng cách sử dụng công cụ dự
đoán pixel trước đó theo hướng không gian trong Ví dụ 8.19.
Phần dư dự đoán bù chuyển động Như bạn đã thấy trong Ví dụ 8.20, các khung
hình liên tiếp trong một chuỗi video thường rất giống nhau. Mã hóa sự khác biệt
của chúng có thể làm giảm dư thừa tạm thời và
cung cấp khả năng nén đáng kể. Tuy nhiên, khi một chuỗi khung hình chứa các
đối tượng chuyển động nhanh — hoặc liên quan đến việc thu phóng và xoay
máy ảnh, cảnh thay đổi đột ngột hoặc mờ dần và mờ dần — độ tương đồng giữa
các khung hình lân cận bị giảm và độ nén bị ảnh hưởng tiêu cực. Nghĩa là, giống
như hầu hết các kỹ thuật nén (xem Ví dụ 8.5), mã hóa dự đoán dựa trên thời gian
hoạt động tốt nhất với các loại đầu vào nhất định — cụ thể là một chuỗi hình
ảnh với
dư thừa theo thời gian đáng kể. Khi được sử dụng trên hình ảnh có ít dư thừa
theo thời gian, việc mở rộng dữ liệu có thể xảy ra. Hệ thống nén video tránh
được vấn đề mở rộng dữ liệu theo hai cách:
1. Bằng cách theo dõi chuyển động của đối tượng và bù đắp cho nó trong quá
trình dự đoán và phân tích.
2. Bằng cách chuyển sang một phương pháp mã hóa thay thế khi không có đủ
tương quan giữa các khung (sự tương đồng giữa các khung) để làm cho việc mã
hóa dự đoán trở nên thuận lợi.
Phần đầu tiên trong số này - được gọi là phần bù tiền - là chủ đề của phần còn
lại của phần này. Tuy nhiên, trước khi tiếp tục, chúng tôi lưu ý rằng khi không
có đủ mối tương quan giữa các khung để làm cho việc mã hóa dự đoán hiệu quả,
vấn đề thứ hai thường được giải quyết bằng cách sử dụng phép biến đổi 2-D
hướng khối, như mã hóa dựa trên DCT của JPEG (xem Phần 8.2.8). Các khung
được nén theo cách này (tức là không có dư dự đoán) được gọi là các khung
hình hoặc Độc lập
khung (I-frames). Chúng có thể được giải mã mà không cần truy cập vào các
khung khác trong video mà chúng thuộc về. I-frame thường giống với hình ảnh
được mã hóa JPEG và là điểm khởi đầu lý tưởng để tạo ra phần dư dự đoán.
Hơn nữa, chúng cung cấp mức độ truy cập ngẫu nhiên cao, dễ dàng chỉnh sửa và
khả năng chống lại sự lan truyền của lỗi truyền dẫn, kết quả là tất cả các tiêu
chuẩn đều yêu cầu chèn định kỳ I-frame vào dòng mã video nén.
Hình 8.36 minh họa những điều cơ bản của mã hóa dự đoán bù chuyển động.
Mỗi khung hình video được chia thành các vùng hình chữ nhật không chồng
chéo — thường có kích thước tương đương — được gọi là macroblock. (Chỉ có
một macroblock được hiển thị trong Hình 8.36.) “Chuyển động” của mỗi
macroblock đối với vị trí “có khả năng xảy ra nhất” của nó trong khung video
trước đó (hoặc sau đó), được gọi là khung tham chiếu,
HÌNH 8.36
Đặc tả chuyển động macroblock.
được mã hóa trong một vector chuyển động. Véc tơ mô tả chuyển động
Vị trí “có khả năng xảy ra
nhất” là vị trí giảm thiểu
bằng cách xác định chuyển vị ngang và dọc từ vị trí "có khả năng xảy ra
số đo lỗi giữa macroblock
tham chiếu và macroblock
đang được mã hóa. Hai
nhất". Các dịch chuyển thường được chỉ định chính xác đến pixel, 2 pixel
khối không nhất thiết phải
hoặc 1 pixel gần nhất. Nếu sử dụng độ chính xác của pixel phụ, thì các dự
là đại diện của cùng một
đối tượng, nhưng chúng
đoán phải được nội suy [ví dụ: sử dụng nội suy song tuyến (xem Phần
phải tối thiểu hóa phép đo
sai số.
2.4.4)] từ tổ hợp các pixel trong hệ quy chiếu. Khung được mã hóa dựa trên
khung trước đó (dự đoán về phía trước trong Hình 8.36) được gọi là Khung dự
đoán (khung P); một khung dựa trên khung tiếp theo (dự đoán ngược trong Hình
8.36) được gọi là khung hai chiều (khung B). Khung B yêu cầu dòng mã nén
được sắp xếp lại để các khung được trình bày cho bộ giải mã theo trình tự giải
mã thích hợp — thay vì thứ tự hiển thị tự nhiên.
Như bạn có thể mong đợi, ước tính chuyển động là thành phần quan trọng của
bù chuyển động. Trong quá trình ước lượng chuyển động, chuyển động của các
đối tượng được đo và mã hóa thành vectơ chuyển động. Việc tìm kiếm vectơ
chuyển động "tốt nhất" yêu cầu phải xác định tiêu chí về tính tối ưu. Ví dụ: các
vectơ chuyển động có thể được chọn trên cơ sở tương quan tối đa hoặc sai số tối
thiểu giữa các pixel macroblock và các pixel dự đoán (hoặc các pixel nội suy
cho các vectơ chuyển động pixel phụ) từ hệ quy chiếu đã chọn. Một trong những
phép đo lỗi được sử dụng phổ biến nhất là độ méo tuyệt đối trung bình (MAD)
m n
1
MAD ( x , y )= ∑ ❑ ∑ ❑|f ( x +i , y + j )− p ( x +i+dx , y+ j+dy )|
mn i=1 j=1
(8.2−37)
trong đó x và y là tọa độ của pixel phía trên bên trái của m X n macroblock đang
được mã hóa, dx và dy là các chuyển vị từ hệ quy chiếu như trong Hình 8.36 và
p là một mảng các giá trị pixel macroblock được dự đoán. Đối với ước lượng
vectơ chuyển động pixel phụ, p được nội suy từ các pixel trong hệ quy chiếu.
Thông thường, dx và dy phải nằm trong một vùng tìm kiếm giới hạn (xem Hình
8.36) xung quanh mỗi macroblock. Giá trị từ ± 8 đến ± 64 pixel là phổ biến và
vùng tìm kiếm ngang thường lớn hơn một chút so với vùng dọc. Một thước đo
sai số hiệu quả hơn về mặt tính toán, được gọi là tổng độ méo tuyệt đối (SAD),
bỏ qua yếu tố 1 / triệu trong Eq. (8.2-37).
Đưa ra một tiêu chí lựa chọn như của Eq. (8.2-37), ước tính chuyển động
được thực hiện bằng cách tìm kiếm dx và dy để giảm thiểu MAD (x, y) trên
phạm vi cho phép của dịch chuyển vectơ chuyển động — bao gồm cả dịch
chuyển pixel phụ. Quá trình này thường được gọi là đối sánh khối. Tìm kiếm
toàn diện đảm bảo kết quả tốt nhất có thể, nhưng tốn kém về mặt tính toán, bởi
vì mọi chuyển động có thể phải được kiểm tra trên toàn bộ phạm vi dịch chuyển.
Đối với macroblock 16 X 16 và phạm vi dịch chuyển ± 32 pixel (không nằm
ngoài câu hỏi đối với phim hành động và sự kiện thể thao), các phép tính 4225
16 X 16MAD phải được thực hiện cho mỗi macroblock trong khung khi sử dụng
độ chính xác dịch chuyển số nguyên. Nếu mong muốn độ chính xác 1/2 hoặc 1/4
pixel, số lượng phép tính sẽ được nhân với hệ số tương ứng là 4 hoặc 16. Các
thuật toán tìm kiếm nhanh có thể giảm bớt gánh nặng tính toán nhưng có thể có
hoặc không mang lại các vectơ chuyển động tối ưu.
Hình 8.37 (a) và (b) được lấy từ cùng một chuỗi video của VÍ DỤ 8.21:
NASA được sử dụng trong Ví dụ 8.19 và 8.20. Hình 8.37 (b) giống Dự đoán bù
chuyển động.
với Hình. 8,34 (a) và 8,35 (b); Hình 8.37 (a) là phần tương ứng của
khung xảy ra trước đó mười ba khung. Hình 8.37 (c) là sự khác biệt giữa hai
khung, được chia tỷ lệ thành toàn dải cường độ. Lưu ý rằng sự khác biệt là 0
trong khu vực của tàu con thoi đứng yên (đối với máy ảnh), nhưng có sự khác
biệt đáng kể trong phần còn lại của hình ảnh do chuyển động tương đối của Trái
đất. Độ lệch chuẩn của phần dư dự đoán trong Hình 8.37 (c) là 12,73 mức cường
độ; entropy của nó [sử dụng Eq. (8,1-7)] là 4,17 bit / pixel. Độ nén tối đa có thể
đạt được khi mã hóa độ dài thay đổi, phần dư dự đoán là C = 8 / 4,17 = 1,92.
Hình 8.37 (d) cho thấy dư dự đoán bù chuyển động với độ lệch chuẩn thấp
hơn nhiều (5,62 so với 12,73 mức cường độ) và entropy thấp hơn một chút (3,04
so với 4,17 bit / pixel). Entropy được tính bằng cách sử dụng Eq. (8.1-7). Nếu
phần dư dự đoán trong Hình 8.37 (d) được mã hóa với độ dài thay đổi, thì tỷ số
nén kết quả là C = 8 / 3.04= 2,63. Để tạo ra phần dư dự đoán này, chúng tôi chia
Hình 8.37 (b) thành 16 không chồng chéoX 16 macroblock và so sánh từng
macroblock với 16 macroblock X 16 vùng trong Hình 8.37 (a) - hệ quy chiếu -
nằm trong ± 16 pixel vị trí của macroblock trong (b). Chúng tôi đã sử dụng Eq.
(8.2-37) để xác định kết quả phù hợp nhất bằng cách chọn độ dời (dx, dy) với
MAD thấp nhất.Các chuyển vị thu được là các thành phần x và y của các vectơ
chuyển động được thể hiện trong Hình 8.37 (e). Các chấm trắng trong hình là
đầu của các vectơ chuyển động; chúng chỉ ra góc trên bên trái của macroblock
được mã hóa. Như bạn có thể thấy từ mẫu của các vectơ, chuyển động chủ yếu
trong hình ảnh là từ trái sang phải. Ở phần dưới của hình ảnh, tương ứng với khu
vực của tàu con thoi trong hình ảnh gốc, không có chuyển động và do đó không
có vectơ chuyển động nào được hiển thị. Các macroblock trong khu vực này
được dự đoán từ các macroblock có vị trí tương tự (tức là tương ứng) trong hệ
quy chiếu. Bởi vì các vectơ chuyển động trong Hình 8.37 (e) có tương quan cao,
chúng có thể được mã hóa với độ dài thay đổi để giảm yêu cầu lưu trữ và truyền
tải. ■
ab
cde
HÌNH 8.37 (a) và (b) Hai chế độ xem Trái đất cách nhau mười ba khung hình
trong video quay quanh tàu con thoi. (c) Hình ảnh lỗi dự đoán mà không có bù
chuyển động. (d) Phần dư dự đoán với bù chuyển động. (e) Các vectơ chuyển
động liên kết với (d). Các chấm trắng trong (d) đại diện cho các đầu mũi tên của
các vectơ chuyển động được mô tả. (Hình ảnh gốc do NASA cung cấp.)
Sự khác biệt trựcHình 8.38 củng cố độ chính xác dự đoán tăng lên có thể với
quan giữa Hình 8.37
bù chuyển động pixel phụ. Hình 8.38 (a) được lặp lại từ Hình
(c) và 8.38 (a) là do
8.37 (c) và được đưa vào làm điểm tham chiếu; nó cho thấy
tỷ lệ. Hình ảnh trong
lỗi dự đoán dẫn đến không có bù chuyển động. Các hình ảnh
Hình 8.38 (a) đã được
thu nhỏ để phù hợp
trong Hình 8.38 (b), (c), và (d) ) là các phần dư dự đoán được
với Hình 3.8 (b) - (d).
bù chuyển động. Chúng dựa trên cùng hai khung hình đã
được sử dụng trong Ví dụ 8.21 và được tính toán với các chuyển vị của
macroblock thành 1,1/2, và 1/4 độ phân giải pixel (tức là độ chính xác), tương
ứng. điểm ảnh. Macroblock có kích thước 8x8 đã được sử dụng; độ dịch chuyển
được giới hạn ở ±8 pixel.
Sự khác biệt trực quan đáng kể nhất giữa các phần dư dự đoán trong Hình
8.38 là số lượng và kích thước của các đỉnh và thung lũng cường độ — các khu
vực cường độ tối nhất và sáng nhất của chúng. Phần dư ¼ pixel trong Hình 8.38
(d) là “phẳng nhất” trong bốn vùng hình ảnh, với ít chuyến du ngoạn nhất sang
màu đen hoặc trắng. Như dự đoán, nó có biểu đồ hẹp nhất. Độ lệch chuẩn của
dự đoán dư trong Hình. 8,38 (a) đến (d) giảm khi độ chính xác của vectơ chuyển
động tăng lên — lần lượt từ 12,7 lên 4,4,4 và 3,8 pixel.
ab
CD
HÌNH 8.38
Phần dư dự đoán được bù
chuyển động theo pixel
phụ:
(a) không bù chuyển
động;
(b) độ chính xác pixel
đơn;
1
(c) độ chính xác pixel; và
(d) Độ chính xác 4 pixel.
(Tất cả các lỗi dự đoán đã
được chia tỷ lệ thành phạm
vi cường độ đầy đủ và sau
đó nhân với 2 để tăng khả
năng hiển thị của chúng.)
phần còn lại, được xác định bằng cách sử dụng Eq. (8,1-7), lần lượt là
4,17,3.34,3.35 và 3,34 bit / pixel. Do đó, phần dư bù chuyển động chứa cùng
một lượng thông tin, mặc dù thực tế là phần dư trong Hình. 8.38 (c) và (d) sử
dụng các bit bổ sung để chứa nội suy 1 và 4 pixel. Cuối cùng, chúng tôi lưu ý
rằng có một dải lỗi dự đoán tăng lên rõ ràng ở phía bên trái của mỗi phần dư bù
chuyển động. Điều này là do chuyển động từ trái sang phải của Trái đất, đưa các
khu vực mới hoặc chưa từng thấy trước đây của địa hình Trái đất vào bên trái
của mỗi hình ảnh. Bởi vì những khu vực này không có trong các khung hình
trước đó, chúng không thể được dự đoán chính xác, bất kể độ chính xác được sử
dụng để tính toán vectơ chuyển động.
Ước tính chuyển động là một công việc đòi hỏi tính toán cao. May mắn thay,
chỉ có bộ mã hóa mới phải ước tính chuyển động của macroblock. Với các vectơ
chuyển động của macroblock, bộ giải mã chỉ cần truy cập các vùng của hệ quy
chiếu đã được sử dụng trong bộ mã hóa để tạo ra các phần dư dự đoán. Do đó,
ước tính chuyển động không được bao gồm trong hầu hết các tiêu chuẩn nén
video. Các tiêu chuẩn nén tập trung vào các ràng buộc đặt bộ giải mã trên các
kích thước khối macro, độ chính xác của vectơ chuyển động, phạm vi vị trí
ngang và dọc, v.v. Bảng 8.11 đưa ra các thông số mã hóa dự đoán chính của một
số tiêu chuẩn nén video quan trọng nhất. Lưu ý rằng hầu hết các tiêu chuẩn sử
dụng DCT 8 X 8 để mã hóa I-frame, nhưng chỉ định một vùng lớn hơn (tức là
macroblock 16 X 16) để bù chuyển động. Ngoài ra, ngay cả phần dư dự đoán
khung P và B cũng được mã hóa biến đổi do hiệu quả của lượng tử hóa hệ số
DCT. Cuối cùng, chúng tôi lưu ý rằng các tiêu chuẩn AVC H.264 và MPEG-4
hỗ trợ mã hóa dự đoán trong khung (trong I-frame) để giảm dư thừa không
gian.Hình 8.39 cho thấy một bộ mã hóa video bù chuyển động điển hình. Nó
khai thác sự dư thừa bên trong và giữa các khung video liền kề, sự đồng nhất
chuyển động giữa các khung và các đặc tính tâm lý của hệ thống thị giác của
con người. Chúng ta có thể coi đầu vào cho bộ mã hóa là các macroblock tuần tự
của video. Đối với video màu, mỗi macroblock bao gồm một khối độ chói và hai
khối sắc độ. Bởi vì mắt có thị lực không gian đối với màu sắc kém hơn nhiều so
với độ chói, các khối sắc độ thường được lấy mẫu ở một nửa độ phân giải ngang
và dọc của khối độ chói. Các phần tử được tô xám trong hình song song với các
hoạt động mã hóa chuyển đổi, lượng tử hóa và cường độ biến thiên của bộ mã
hóa JPEG. Sự khác biệt chính là đầu vào, có thể là một macroblock dữ liệu hình
ảnh thông thường (đối với I-frame)
BẢNG 8.11
Mã hóa dự đoán trong các tiêu chuẩn nén video.
HÌNH 8.39
Một bộ mã
hóa video
bù chuyển
động điển
hình.
hoặc sự khác biệt giữa macroblock thông thường và dự đoán của nó Lượng tử hóa như đã
định nghĩa trước đó
dựa trên các khung video trước đó và / hoặc tiếp theo (đối với khung trong
không
chương là
thể đảo
P- và B). Bộ mã hóa bao gồm một bộ định lượng nghịch đảo và bộ ngược. “Bộ định
lượng nghịch đảo”
ánh xạ ngược (ví dụ: DCT nghịch đảo) để các dự đoán của nó khớp trong Hình 8.39
không ngăn mất
với các dự đoán của bộ giải mã bổ sung. Ngoài ra, nó được thiết kế thông tin.
để tạo ra các luồng bit nén phù hợp với dung lượng của kênh video
dự định. Để thực hiện điều này, các thông số lượng tử hóa được điều
chỉnh bởi bộ điều khiển tốc độ như một chức năng của việc sử dụng
bộ đệm đầu ra. Khi bộ đệm trở nên đầy hơn, lượng tử hóa được thực
hiện thô hơn, do đó, ít bit hơn truyền vào bộ đệm.
Chúng tôi kết thúc cuộc thảo luận của chúng tôi về mã hóa VÍ DỤ 8.22:
Ví dụ về nén
dự đoán bù chuyển động bằng một ví dụ minh họa loại nén có thể video.
thực hiện với các phương pháp nén video hiện đại. Hình 8.40 cho
thấy mười lăm khung hình của một video full màu HD
(1280 X 720) của NASA dài 1 phút, các phần của Xem trang web của cuốn
chúng đã được sử dụng trong suốt phần này. Mặc dù hình ảnh sách để biết phân đoạn
video của NASA được sử
hiển thị là đơn sắc, nhưng video là một chuỗi 1.829 khung hình đủ dụng trong phần này.
màu. Lưu ý rằng có nhiều cảnh, nhiều chuyển động và nhiều hiệu
ứng mờ dần. Ví dụ: video mở ra với 150 khung hình mờ dần từ
màu đen, bao gồm các khung hình 21 và 44 trong Hình 8.40 và
kết thúc bằng một chuỗi mờ dần chứa các khung hình 1595,1609
và 1652 trong Hình 8,40, tiếp theo là phần cuối cùng mờ dần
thành màu đen. Cũng có một số thay đổi cảnh đột ngột, như sự
thay đổi liên quan đến khung 1303 và 1304 trong Hình 8.40.
Phiên bản nén H.264 của video NASA được lưu trữ dưới dạng tệp
Quicktime (xem Bảng 8.4) yêu cầu dung lượng lưu trữ 44,56 MB — cộng với
1,39 MB khác cho âm thanh liên quan. Chất lượng video là tuyệt vời. Khoảng 5
GB dữ liệu sẽ cần thiết để lưu trữ các khung video dưới dạng hình ảnh đầy đủ
màu sắc không nén. Cần lưu ý rằng video chứa các chuỗi liên quan đến cả xoay
và thay đổi tỷ lệ (ví dụ: chuỗi bao gồm các khung 959,1023 và 1088 trong Hình
840). Tuy nhiên, cuộc thảo luận trong phần này chỉ giới hạn ở bản dịch.
Trình tự nén
Trình tự đã giải
nén
bộ mã hóa, được chèn vào giữa bộ mã hóa biểu tượng và điểm mà tại đó lỗi dự
đoán được hình thành. Nó ánh xạ lỗi dự đoán thành một phạm vi đầu ra hạn chế,
được ký hiệu là ė (n), thiết lập lượng nén và biến dạng xảy ra.
Để phù hợp với việc chèn bước lượng tử hóa, bộ mã hóa không có lỗi của
Hình 8.33 (a) phải được thay đổi để các dự đoán được tạo ra bởi bộ mã hóa và
bộ giải mã là tương đương. Như Hình 8.41 (a) cho thấy, điều này được thực hiện
bằng cách đặt bộ dự đoán của bộ mã hóa tổn hao trong một vòng phản hồi, trong
đó đầu vào của nó, ký hiệu là ḟ (n), được tạo ra như một hàm của các dự đoán
trong quá khứ và các lỗi lượng tử hóa tương ứng. Đó là:
ḟ ( n )=ė ( n ) + f^ ( n ) (8.2−38)
trong đó ^f (n) được xác định trước đó. Cấu hình vòng kín này ngăn chặn sự tích
tụ lỗi ở đầu ra của bộ giải mã. Lưu ý trong Hình 8.41 (b) rằng đầu ra của bộ giải
mã cũng được đưa ra bởi Eq. (8,2-38).
Điều chế Delta (DM) là một dạng mã hóa dự báo mất dữ liệu VÍ DỤ 8.23:
Điều chế Delta.
đơn giản nhưng nổi tiếng, trong đó bộ dự đoán và bộ định lượng
được định nghĩa là:
^f ( n )=α ḟ ( n−1 ) (8.2−39)
Và
{
ė ( n )= ¿+ζ ∧¿ for e (n)>0 (8.2−40)
¿−ζ∧¿ otherwise
{14,15,14,15,13,15,15,14, 20, 26, 27, 28, 27, 27, 29, 37, 47, 62, 75, 77, 78, 79,
80, 81, 81 , 82, 82} với a = 1 và z = 6,5 được lập thành bảng. Quá trình bắt đầu
với việc chuyển mẫu đầu vào đầu tiên không có lỗi đến bộ giải mã. Với điều
kiện ban đầu ḟ (0) = f (0) = 14 được thiết lập ở cả bộ mã hóa và bộ giải mã, các
kết quả đầu ra còn lại có thể được tính toán bằng cách đánh giá nhiều lần các
phương trình. (8,2-39), (8,2-30), (8,2-40) và (8,2-38). Do đó, khi n = 1, chẳng
hạn, ^f (1) = (1) (14) = 14, e (1) = 15 - 14 = 1, ė (1) = + 6,5 (vì e (1) > 0), ḟ (1) =
6.4 + 14 = 20.5, và kết quả là sai số tái tạo là (15 - 20.5), hoặc -5.5.
Hình 8.42 (b) biểu diễn dữ liệu được lập bảng trong Hình 8.42 (c) bằng đồ thị.
Cả đầu vào và đầu ra được giải mã hoàn toàn [f (n) và ḟ (n)] đều được hiển thị.
Lưu ý rằng trong vùng thay đổi nhanh chóng từ n = 14 đến 19, trong đó ξ quá
nhỏ để thể hiện những thay đổi lớn nhất của đầu vào, một biến dạng được gọi là
quá tải độ dốc xảy ra. Hơn nữa, khi ξ quá lớn để thể hiện những thay đổi nhỏ
nhất của đầu vào, như trong vùng tương đối mịn từ n = 0 đến n = 7, nhiễu hạt
xuất hiện. Trong hình ảnh, hai hiện tượng này dẫn đến các cạnh đối tượng bị mờ
và bề mặt có hạt hoặc nhiễu (nghĩa là các vùng mịn bị méo).
Các biến dạng được lưu ý trong ví dụ trước là phổ biến đối với tất cả các hình
thức mã hóa dự đoán mất dữ liệu. Mức độ nghiêm trọng của những sai lệch này
phụ thuộc vào một loạt các tương tác phức tạp giữa các phương pháp lượng tử
hóa và dự đoán được sử dụng. Bất chấp những tương tác này, bộ dự đoán
thường được thiết kế với giả định không có lỗi lượng tử hóa và bộ lượng tử hóa
được thiết kế để giảm thiểu lỗi của chính nó. Tức là bộ dự đoán và bộ định
lượng được thiết kế độc lập với nhau.Các công cụ dự đoán tối ưu
Trong nhiều ứng dụng mã hóa dự đoán, công cụ dự đoán được chọn để giảm
thiểu lỗi dự đoán bình phương trung bình của bộ mã hóa
E { e (n) }=E ¿
2
tôi = 1
Tức là, tiêu chí tối ưu hóa là sai số dự đoán bình phương trung bình tối thiểu, sai
số lượng tử hóa được giả định là không đáng kể [ ė (n) ≈e (n)] và dự đoán bị
ràng buộc trong một tổ hợp tuyến tính của m mẫu trước đó.* † Những hạn chế
này là không cần thiết, nhưng chúng đơn giản hóa đáng kể việc phân tích và
đồng thời làm giảm độ phức tạp tính toán của công cụ dự đoán. Phương pháp mã
hóa dự đoán kết quả được gọi là điều chế mã xung vi sai (DPCM).
Trong các điều kiện này, bài toán thiết kế bộ dự báo tối ưu được rút gọn thành
bài tập tương đối đơn giản là chọn m hệ số dự đoán để tối thiểu hóa biểu thức
{[ ]}
m 2
i=1
Phân biệt Eq. (8.2-44) đối với từng hệ số, cân bằng các đạo hàm bằng 0 và giải
bộ phương trình kết quả đồng thời theo giả định rằng f (n) có trung bình bằng 0
và phương sai σ 2 cho kết quả:
−1
α =R r (8.2−45)
trong đó R-1 là nghịch đảo của ma trận tự tương quan m X m
R=¿
và r và a là các vectơ phần tử m
Do đó, đối với bất kỳ chuỗi đầu vào nào, các hệ số tối thiểu hóa Eq. (8.2-44) có
thể được xác định thông qua một loạt các phép toán ma trận cơ bản. Hơn nữa,
các hệ số chỉ phụ thuộc vào tự tương quan của các mẫu trong dãy ban đầu.
Phương sai của sai số dự đoán là kết quả của việc sử dụng các hệ số tối ưu này
là:
m
σ e =σ −α r =σ −∑ ❑ E { f ( n ) f ( n−i ) } α i (8.2−48)
2 2 T 2
i=1
Tôi =1
Mặc dù cơ chế đánh giá Eq. (8.2-45) khá đơn giản, việc tính toán các tự tương
quan cần thiết để tạo thành R và r là rất khó trong thực tế nên các dự đoán cục
bộ (những dự đoán trong đó các hệ số dự đoán được tính cho mỗi chuỗi đầu vào)
hầu như không được sử dụng. Trong hầu hết các trường hợp, một tập hợp các hệ
số toàn cục được tính toán bằng cách giả sử một mô hình đầu vào đơn giản và
thay thế các phép tự tương quan tương ứng thành các phương trình. (8,2-46) và
(8,2-47). Ví dụ: khi nguồn hình ảnh Markov 2-D (xem Phần 8.1.4) với chức
năng tự tương quan có thể phân tách:
E { f ( x , y ) f ( x −i , y− j ) }=σ ρ v ρh (8.2−49)
2 i j
trong đó ρh và ρ vlần lượt là hệ số tương quan ngang và dọc của hình ảnh đang
xét.
Cuối cùng, tổng các hệ số dự đoán trong Eq. (8.2-43) thường được yêu cầu
nhỏ hơn hoặc bằng một. Đó là:
Hạn chế này được thực hiện để đảm bảo rằng đầu ra của bộ dự đoán nằm
trong phạm vi cho phép của đầu vào và để giảm tác động của nhiễu truyền
[thường được coi là các vệt ngang trong hình ảnh được tái tạo khi đầu vào của
Hình 8.41 (a) là một tấm ảnh]. Giảm tính nhạy cảm của bộ giải mã DPCM đối
với nhiễu đầu vào là rất quan trọng, vì một lỗi đơn lẻ (trong các trường hợp thích
hợp) có thể lan truyền đến tất cả
các đầu ra trong tương lai. Đó là,
đầu ra của bộ giải mã có thể
không ổn định. Bằng cách hạn chế VÍ DỤ 8.24:
So sánh các kỹ
thuật dự đoán.
trong đó ∆h = | f (x - 1, y) - f (x - 1, y - 1) 1 và ∆v = | f (x, y - 1) - f (x - 1, y - 1) |
biểu thị độ dốc ngang và dọc tại điểm (x, y). Các phương trình (8.2-53) đến (8.2-
56) xác định một tập hợp tương đối mạnh mẽ của một cung cấp hiệu suất thỏa
đáng trên nhiều loại hình ảnh. Công cụ dự đoán thích ứng của Eq. (8.2-56) được
thiết kế để cải thiện kết xuất cạnh bằng cách tính toán một phép đo cục bộ về các
thuộc tính hướng của hình ảnh (∆h và ∆v) và chọn một công cụ dự đoán được
điều chỉnh cụ thể cho hành vi được đo.
Hình 8.43 (a) đến (d) cho thấy các hình ảnh lỗi dự đoán là kết quả của việc sử
dụng các công cụ dự đoán của Eqs. (8.2-53) đến (8.2-56). Lưu ý rằng
ab
CD
HÌNH 8.43
So sánh bốn kỹ thuật dự đoán tuyến tính.
sai số cảm nhận trực quan giảm khi thứ tự của bộ dự đoán tăng lên? Độ
lệch chuẩn của các lỗi dự đoán cũng theo một mô hình tương tự. Chúng
lần lượt là các mức cường độ 11,1,9,8,9,1 và 9,7.
Phương trình (8.2-57) chỉ ra rằng các cấp độ tái thiết là trọng tâm của các khu
vực dưới p (các) khoảng thời gian quyết định cụ thể, trong khi Eq. (8.2-58) chỉ
ra rằng các cấp độ quyết định nằm giữa các cấp độ tái thiết. Phương trình (8.2-
59) là hệ quả của thực tế rằng q là một hàm lẻ. Đối với bất kỳ L, si và t i đều say
mê và cảm thấy hài lòng. (8.2-57) đến (8.2-59) là tối ưu theo nghĩa sai số trung
bình bình phương; bộ định lượng tương ứng được gọi là bộ định lượng L-level
Lloyd-Max.
Bảng 8.12 liệt kê các mức quyết định và tái thiết Lloyd-Max 2, 4 và 8 cho một
phương sai đơn vị hàm mật độ xác suất Laplacian [xem Phương trình. (8,2-35)].
Bởi vì có được một giải pháp rõ ràng hoặc dạng đóng cho Eqs. (8.2-57) đến
(8.2-59) đối với hầu hết (các) p không tầm thường là khó, những giá trị này
được tạo ra bằng số (Paez và Glisson [1972]). Ba bộ lượng tử được hiển thị cung
cấp tốc độ đầu ra cố định tương ứng là 1, 2 và 3 bit / pixel. Vì Bảng 8.12 được
xây dựng cho phân phối phương sai đơn vị, các mức tái tạo và quyết định cho
trường hợp s σ≠1 thu được bằng cách nhân các giá trị được lập bảng với độ lệch
chuẩn của hàm mật độ xác suất đang xét. Hàng cuối cùng của bảng liệt kê kích
thước bước, θ, đồng thời thỏa mãn các Eq. (8.2-57) đến (8.5-59) và ràng buộc
bổ sung
Nếu một bộ mã hóa ký hiệu sử dụng mã có độ dài thay đổi được sử dụng trong
‡^ Các trình dự đoán sử dụng nhiều hơn ba hoặc bốn pixel trước đó cung cấp ít tăng độ nén cho độ phức tạp của trình dự báo được thêm vào (Hab
§Xem Netravali [1977] và Limb and Rubinstein [1978] để biết thêm về các biện pháp tâm lý.
bộ mã hóa dự đoán tổn hao chung của Hình 8.41 (a), một bộ định lượng đồng
nhất tối ưu có kích thước bước θ sẽ cung cấp tốc độ mã thấp hơn (đối với PDF
Laplacian) so với cố định - Bộ định lượng Lloyd-Max được mã hóa cường độ
với cùng độ trung thực đầu ra (O'Neil [1971]).
Mặc dù Lloyd-Max và các bộ lượng tử thống nhất tối ưu không thích ứng,
nhưng có thể thu được nhiều điều từ việc điều chỉnh các mức lượng tử hóa dựa
trên hành vi cục bộ của một hình ảnh. Về lý thuyết, các vùng thay đổi chậm có
thể được lượng tử hóa một cách tinh vi, trong khi các vùng thay đổi nhanh
chóng được lượng tử hóa thô hơn. Cách tiếp cận này đồng thời giảm cả nhiễu
hạt và quá tải độ dốc, trong khi chỉ cần tăng tốc độ mã tối thiểu. Sự đánh đổi là
độ phức tạp của bộ định lượng tăng lên.
BẢNG 8.12
Bộ lượng tử Lloyd-
Max cho hàm mật độ
xác suất Laplacian
của phương sai đơn
vị.
8.2.10 Mã hóa Wavelet
Với tham chiếu đến Bảng
8.3 và 8.4, mã hóa Cũng như các kỹ thuật mã hóa biến đổi của Phần 8.2.8, mã hóa wavelet dựa
wavelet được sử dụng
trong trên ý tưởng rằng các hệ số của một phép biến đổi liên quan đến các pixel
• JPEG-2000
ab
CD
HÌNH 8.46
Các phép biến đổi wavelet
ba tỷ lệ của
Hình 8.9 (a) đối với
(a) Haar wavelets,
(b) Bánh wavelets
Daubechies,
(c) symlets, và
(d) Bánh quế sinh học
Cohen- Daubechies
Feauveau.
Các hệ số chi tiết DWT và các symlet, là một phần mở rộng của wavellet Daubechies với tính đối xứng
được thảo luận trong
Phần 7.3.2. tăng lên, được sử dụng trong Hình 8.46 (c). Các wavellet Cohen-Daubechies-
Feauveau được sử dụng trong Hình 8.46 (d) được đưa vào để minh họa các khả
năng của biorthogonal wavelets. Như trong các kết quả trước đây của loại này,
tất cả các hệ số chi tiết đã được chia tỷ lệ để làm cho cấu trúc bên dưới dễ nhìn
thấy hơn — với cường độ 128 tương ứng với giá trị hệ số 0.
Như bạn có thể thấy trong Bảng 8.13, số lượng các phép toán liên quan đến
việc tính toán các phép biến đổi trong Hình 8.46 tăng từ 4 lên 28 phép nhân và
phép cộng cho mỗi hệ số (đối với mỗi mức phân rã) khi bạn chuyển từ Hình
8.46 (a) sang (d). Tất cả bốn phép biến đổi được tính toán bằng cách sử dụng
công thức biến đổi wavelet nhanh (tức là ngân hàng bộ lọc). Lưu ý rằng khi độ
phức tạp tính toán (tức là số lượng vòi bộ lọc) tăng lên, thì hiệu suất đóng gói
thông tin cũng giảm theo. Khi sử dụng các wavelets Haar và các hệ số chi tiết
dưới 1,5 được cắt ngắn về 0, 33,8% tổng số biến đổi sẽ bị xóa. Với các wavelets
sinh học phức tạp hơn, số lượng hệ số zero tăng lên 42,1%, tăng khả năng nén
gần 10% .
Lựa chọn mức độ phân hủy
Một yếu tố khác ảnh hưởng đến độ phức tạp tính toán của mã hóa wavelet và lỗi
xây dựng lại là số lượng mức phân rã biến đổi. Bởi vì biến đổi wavelet nhanh
quy mô P liên quan đến các lần lặp lại ngân hàng bộ lọc P, số lượng các hoạt
động trong tính toán của các phép biến đổi thuận và nghịch tăng lên cùng với số
lượng mức phân rã. Hơn nữa, lượng tử hóa các hệ số ngày càng thấp dẫn đến
mức độ phân hủy nhiều hơn ảnh hưởng đến các khu vực ngày càng lớn hơn của
hình ảnh được tái tạo. Trong nhiều ứng dụng, chẳng hạn như tìm kiếm cơ sở dữ
liệu hình ảnh hoặc truyền hình ảnh để tái tạo liên tục, độ phân giải của hình ảnh
được lưu trữ hoặc truyền và tỷ lệ của các giá trị xấp xỉ hữu ích thấp nhất thường
xác định số lượng mức biến đổi.
VÍ DỤ 8.26: Bảng 8.14 minh họa ảnh hưởng của việc lựa chọn mức độ phân hủy đối với việc
Các mức độ phân
hủy trong mã hóa mã hóa Hình 8.9 (a) bằng cách sử dụng wavelet sinh học và ngưỡng tổng thể cố
wavelet. định là 25. Như trong ví dụ mã hóa wavelet trước, chỉ các hệ số chi tiết được cắt
bớt. Bảng liệt kê cả tỷ lệ phần trăm của hệ số bằng 0 và các lỗi xây dựng lại rms kết
quả từ Eq. (8.1-10). Lưu ý rằng các phân rã ban đầu chịu trách nhiệm cho phần lớn
quá trình nén dữ liệu. Có rất ít thay đổi về số lượng hệ số bị cắt ngắn trên ba mức
phân tích. ■
BẢNG 8.13
Các vòi bộ lọc biến Vòi lọc (Chia tỷ lệ +
đổi Wavelet và các Wavelet Wavelet) Hệ số Zeroed
hệ số bằng không
khi cắt bớt các biến Haar (xem Ví dụ 7.10) 2+2 33,8%
đổi trong Hình 8.46 Daubechies (xem Hình 7.8) số 8 + số 8 40,9%
bên dưới 1.5. Symlet (xem Hình 7.26) số 8+số 8 41,2%
Biorthogonal (xem Hình 7.39) 17 + 11 42.1%
Mức độ phân hủy Hình ảnh hệ Hệ số rút Lỗi xây
(Quy mô hoặc Lặp số xấp xỉ gọn (%) dựng lại
lại
1 ngân hàng lọc) 256 X 256 74,7% (rms)3,27
2 128 X 128 91,7% 4,23
3 64 X 64 95,1% 4,54
4 32 X 32 95,6% 4,61
5 16 X 16 95,5% 4,63
BẢNG
8.14
Mức độ
phân hủy
ảnh hưởng
đến mã
hóa
wavelet
512 X 512
hình ảnh
của Hình
8.9 (a).
Thiết kế bộ định lượng
Yếu tố quan trọng nhất ảnh hưởng đến quá trình nén mã hóa wavelet và lỗi tái
tạo là lượng tử hóa hệ số. Mặc dù các bộ lượng tử hóa được sử dụng rộng rãi
nhất là đồng nhất, hiệu quả của quá trình lượng tử hóa có thể được cải thiện
đáng kể bằng cách (1) đưa vào khoảng lượng tử hóa lớn hơn xung quanh 0, được
gọi là vùng chết, hoặc (2) điều chỉnh kích thước của khoảng lượng tử hóa từ quy
mô này sang quy mô khác . Trong cả hai trường hợp, các khoảng lượng tử hóa
đã chọn phải được truyền tới bộ giải mã với dòng bit hình ảnh được Một phép đo năng lượng
của tín hiệu kỹ thuật số là
mã hóa. Bản thân các khoảng thời gian này có thể được xác định tổng của các mẫu bình
phương.
theo kinh nghiệm hoặc được tính toán tự động dựa trên hình ảnh VÍ DỤ 8.27:
được nén. Ví dụ, Lựa chọn khoảng
thời gian vùng chết
trong mã hóa
wavelet.
Hình 8.47 minh họa tác động của kích thước khoảng chết đối với
tỷ lệ phần trăm hệ số chi tiết bị cắt ngắn đối với mã hóa dựa trên wavelet sinh
học ba tỷ lệ của Hình 8.9 (a). Khi kích thước của vùng chết tăng lên, số lượng hệ
số bị cắt ngắn cũng tăng theo. Trên đầu gối của đường cong (tức là, vượt quá 5),
có rất ít tăng. Điều này là do biểu đồ của các hệ số chi tiết có đỉnh cao xung
quanh 0 (ví dụ, xem Hình 7.10).
Các lỗi tái tạo rms tương ứng với các ngưỡng vùng chết trong Hình 8.47 tăng
từ 0 đến 1,94 mức cường độ ở ngưỡng 5 và lên 3,83 mức cường độ cho ngưỡng
18, trong đó số 0 đạt 93,85%. Nếu loại bỏ mọi hệ số chi tiết, tỷ lệ phần trăm đó
sẽ tăng lên khoảng 97,92% (khoảng 4%), nhưng sai số tái tạo sẽ tăng lên 12,3
mức cường độ.
JPEG-2000
JPEG-2000 mở rộng tiêu chuẩn JPEG phổ biến để tăng tính linh hoạt trong cả
việc nén ảnh tĩnh có tông màu liên tục và truy cập vào dữ liệu nén. Ví dụ: các
phần của hình ảnh nén JPEG-2000 có thể được trích xuất để truyền lại, lưu trữ,
hiển thị và / hoặc chỉnh sửa. Tiêu chuẩn này dựa trên các kỹ thuật mã hóa
wavelet vừa được mô tả. Lượng tử hóa hệ số được điều chỉnh cho phù hợp với
quy mô và băng con riêng lẻ và lượng tử hóa
HÌNH 8.47 Tác
động của việc lựa
chọn khoảng thời
gian chết đối với
mã hóa wavelet.
các hệ số được mã hóa số học trên cơ sở mặt phẳng bit (xem Phần 8.2.3 và
8.2.7). Sử dụng ký hiệu của tiêu chuẩn, một hình ảnh được mã hóa như sau (ISO
/ IeC [2000]).
Bước đầu tiên của quá trình mã hóa là ở mức DC, hãy dịch chuyển các mẫu
Ssiz được sử dụng
trong tiêu chuẩn để của hình ảnh không dấu Ssiz-bit được mã hóa bằng cách trừ 2Ssiz- 1. Nếu hình
biểu thị độ phân giải
cường độ. ảnh có nhiều hơn một thành phần — như mặt phẳng đỏ, lục và lam của một hình
Biến đổi thành phần
ảnh màu — mỗi thành phần được dịch chuyển riêng lẻ. Nếu có chính xác ba
không thể đảo ngược là
biến đổi thành phần
thành phần, chúng có thể được tùy ý trang trí bằng cách sử dụng kết hợp tuyến
được sử dụng để nén
mất mát. Bản thân phép
tính có thể đảo ngược hoặc không linh hoạt của các thành phần. Ví dụ, biến đổi
biến đổi thành phần
không phải là không thể thành phần không thể đảo ngược của tiêu chuẩn là
đảo ngược. Một biến
đổi thành phần khác
được sử dụng để nén
thuận nghịch.
trong đó / 0, / 1 và / 2 là các thành phần đầu vào được dịch chuyển mức độ và
Y), Y và Y là các thành phần tương ứng có liên quan đến trang trí. Nếu các
thành phần đầu vào là mặt phẳng màu đỏ, xanh lục và xanh lam của một hình
ảnh màu, thì Eq. (8.2-61) xấp xỉ chuyển đổi video màu R'G'B 'sang Y'CbCr
(Poynton [1996]) f Mục tiêu của phép biến đổi là cải thiện hiệu quả nén; các
thành phần được biến đổi Y và Y là các hình ảnh khác biệt có biểu đồ có đỉnh
cao xung quanh 0.
fR'G'B' là phiên bản phi tuyến tính, đã hiệu chỉnh gamma của giá trị đo màu
RGB tuyến tính CIE (Ủy ban Quốc tế về Chiếu sáng). Y 'là độ chói và Cb và Cr
là sự khác biệt về màu sắc (tức là, tỷ lệ BGiá trị '- Y' và R '- Y').
Sau khi hình ảnh đã được chuyển cấp độ và tùy chọn trang trí liên quan,
các thành phần của nó có thể được chia thành các ô. Ô vuông là các mảng hình
chữ nhật gồm các pixel được xử lý độc lập. Bởi vì một hình ảnh có thể có nhiều
hơn một thành phần (ví dụ: nó có thể được tạo thành từ ba thành phần màu), quá
trình lát gạch sẽ tạo ra các thành phần gạch. Mỗi thành phần ô có thể được tái
tạo độc lập, cung cấp một cơ chế đơn giản để truy cập và / hoặc thao tác một
vùng giới hạn của hình ảnh được mã hóa. Ví dụ: một hình ảnh có tỷ lệ khung
hình 16: 9 có thể được chia nhỏ thành các ô để một trong các ô của nó là hình
ảnh con có tỷ lệ khung hình 4: 3. Sau đó, ô đó có thể được tạo lại mà không cần
truy cập các ô khác trong hình ảnh nén. Nếu hình ảnh không được chia nhỏ
thành các ô thì nó là một ô đơn lẻ.
Sau đó, phép biến đổi wavelet rời rạc 1-D của các hàng và cột của mỗi
thành phần ô xếp được tính toán. Để nén không có lỗi, phép biến đổi dựa trên
một vector sinh học, chia tỷ lệ hệ số 5-3 và véc tơ wavelet (Le Gall và Tabatabai
[1988]). Một quy trình làm tròn được xác định cho các hệ số biến đổi có giá trị
không nguyên. Trong các ứng dụng có tổn hao, véc tơ Các triển khai dựa trên
wavelet chia tỷ lệ hệ số 9-7 (Antonini, Barlaud, Mathieu và nâng là một cách khác để
Daubechies [1992]) được sử dụng. phương pháp tiếp cận tính toán các phép biến đổi
dựa trên cơ sở (Mallat [1999]). Ví dụ, trong các ứng dụng Wavelet. Các hệ số được sử
dụng trong phương pháp
có tổn thất, các hệ số được sử dụng để xây dựng ngân hàng này liên quan trực tiếp đến
bộ lọc phân tích 9-7 FWT được đưa ra trong Bảng 8.15. mở các hệ số ngân hàng bộ lọc
rộng ”hoạt động: FWT.
Ở đây, thành phần xếp có được biến đổi, là kết quả biến đổi và xác định vị
trí của thành phần xếp trong một thành phần. Nghĩa là, chúng là các chỉ số của
mẫu đầu tiên của hàng hoặc cột thành phần ô được chuyển đổi và là chỉ số ngay
sau mẫu cuối cùng. Biến giả định các giá trị dựa trên và hoạt động nào trong sáu
hoạt động:
diễn ảnh gốc và các bit độ lợi phân tích cho băng con b. Các bit
khuếch đại phân tích băng con tuân theo mô hình đơn giản được
chỉ ra trong Hình 8.48. Ví dụ, có hai bit khuếch đại phân tích cho
băng con b = 1HH.
Đối với nén không có lỗi, μb = 0, Rb = ε b và ∆b = 1. Đối với nén không thể đảo
ngược, không có kích thước bước lượng tử hóa cụ thể nào được chỉ định trong
tiêu chuẩn. Thay vào đó, số lượng các bit mũ và phần định trị phải được cung
cấp cho bộ giải mã trên cơ sở băng con, được gọi là lượng tử hóa có nghĩa, hoặc
chỉ dành cho băng con NLLL, được gọi là lượng tử hóa dẫn xuất. Trong trường
hợp thứ hai, các băng con còn lại được lượng tử hóa bằng cách sử dụng các
tham số băng con NLLL ngoại suy. Gọi e0 và m0 là số bit được phân bổ cho
băng con NLLL, các tham số ngoại suy cho băng con b là
trong đó nb biểu thị số lượng mức độ phân hủy của băng con từ thành phần hình
ảnh ban đầu đến băng con b.
Trong các bước cuối cùng của quá trình mã hóa, các hệ số của mỗi dải con
của thành phần ô đã biến đổi được sắp xếp thành các khối hình chữ nhật gọi là
khối mã, được mã hóa riêng lẻ, mỗi mặt phẳng một bit. Bắt đầu từ mặt phẳng bit
quan trọng nhất với phần tử khác không, mỗi mặt phẳng bit được xử lý trong ba
lần. Mỗi bit (trong một mặt phẳng bit) chỉ được mã hóa theo một trong ba bước,
được gọi là truyền ý nghĩa, tinh chỉnh độ lớn và dọn dẹp. Các đầu ra sau đó được
mã hóa theo số học và được nhóm lại với các đường chuyền tương tự từ các
khối mã khác để tạo thành các lớp. Một lớp là một số nhóm mã hóa tùy ý đi từ
mỗi khối mã. Các lớp kết quả cuối cùng được phân chia thành các gói, cung cấp
một phương pháp bổ sung để trích xuất một vùng không gian quan tâm từ tổng
dòng mã.
Bộ giải mã JPEG-2000 chỉ cần đảo ngược các hoạt động được mô tả trước đó.
Sau khi tạo lại các băng con của các thành phần xếp từ các gói JPEG-2000 được
mã hóa theo số học, một số lượng các băng con do người dùng chọn sẽ được giải
mã. Mặc dù bộ mã hóa có thể đã mã hóa các mặt phẳng bit Mb cho một băng
con cụ thể, người dùng - do tính chất nhúng của dòng mã - có thể chọn chỉ giải
mã các mặt phẳng bit Nb. Điều này tương đương với việc lượng hóa các hệ số
của khối mã bằng cách sử dụng kích thước bước là 2 Mb - Nb • ∆b. Bất kỳ bit không
được mã hóa nào được đặt thành 0 và các hệ số kết quả, được ký hiệu
Lượng tử hóa như đã định
nghĩa trước đó trong
chương là không thể đảo qb (u, v), được lượng tử hóa nghịch đảo bằng cách sử dụng
ngược. Thuật ngữ “lượng
tử hóa nghịch đảo” không
có nghĩa là không có mất
mát thông tin. Quá trình
này là mất mát ngoại trừ
trường hợp nén JPEG-
2000 có thể đảo ngược,
trong đó mb = 0, Rb = £ b
và Ab = 1.
trong đó Rqb (u, v) biểu thị hệ số biến đổi lượng tử hóa nghịch đảo và N b (u, v) là
số mặt phẳng bit được giải mã cho qb (u, v). Tham số tái tạo r được bộ giải mã
chọn để tạo ra chất lượng tái tạo hình ảnh hoặc khách quan tốt nhất. Nói chung
là 0 - r <1, với giá trị chung là r = 1/2. Sau đó, các hệ số được lượng tử hóa
nghịch đảo được biến đổi ngược theo cột và theo hàng bằng cách sử dụng ngân
hàng bộ lọc FWT-1 có hệ số thu được từ Bảng 8.15 và Eq. (7.1-11), hoặc thông
qua các hoạt động dựa trên nâng sau:
trong đó các tham số α, β, γ, δ và K được xác định cho phương trình. (8,2-62).
Phần tử hàng hoặc cột hệ số lượng tử hóa nghịch đảo Y (n) được mở rộng đối
xứng khi cần thiết. Các bước giải mã cuối cùng là lắp ráp các ô thành phần,
chuyển đổi thành phần nghịch đảo (nếu cần) và chuyển mức DC. Đối với mã
hóa không thể đảo ngược, phép biến đổi thành phần nghịch đảo là:
Hình 8.49 cho thấy bốn xấp xỉ JPEG-2000 của ảnh đơn sắc trong Hình 8.9
(a). Các hàng kế tiếp của hình minh họa mức độ nén ngày càng tăng - bao gồm
C = 25, 52, 75 và 105. Các hình ảnh trong cột 1 là mã hóa JPEG-2000 được giải
nén. Sự khác biệt giữa những hình ảnh này và hình ảnh gốc [Hình. 8.9 (a)] được
hiển thị trong cột thứ hai và cột thứ ba chứa một phần được thu phóng của các
cấu trúc lại trong cột 1. Bởi vì tỷ lệ nén cho hai hàng đầu tiên hầu như giống với
tỷ lệ nén trong Ví dụ 8.18, những kết quả này có thể được so sánh — cả định
tính và định lượng-với kết quả dựa trên biến đổi JPEG trong Hình. 8.32 (a) đến
(f).
HÌNH 8.49 Bốn xấp xỉ JPEG-2000 của Hình 8.9 (a). Mỗi hàng chứa một kết
quả sau khi nén và tái tạo, chênh lệch tỷ lệ giữa kết quả và hình ảnh gốc và một
phần được thu phóng của hình ảnh được tái tạo. (So sánh kết quả ở hàng 1 và 2
với kết quả JPEG trong Hình 8.32.)
So sánh trực quan các hình ảnh lỗi trong hàng 1 và 2 của Hình 8.49 với các
hình ảnh tương ứng trong Hình. 8,32 (b) và (e) cho thấy mức độ sai số giảm
đáng kể trong kết quả JPEG-2000 — mức cường độ 3,86 và 5,77 so với mức
cường độ 5,4 và 10,7 cho kết quả JPEG. Các lỗi tính toán nghiêng về kết quả
dựa trên wavelet ở cả hai cấp độ nén. Bên cạnh việc giảm lỗi xây dựng lại, mã
hóa wavelet làm tăng đáng kể chất lượng hình ảnh (theo nghĩa chủ quan). Lưu ý
rằng cấu phần chặn đã thống trị kết quả JPEG [xem Hình. 8.32 (c) và (f)] không
có trong Hình 8.49. Cuối cùng, chúng tôi lưu ý rằng việc nén đạt được ở hàng 3
và 4 của Hình 8.49 là không thực tế với JPEG. JPEG-2000 cung cấp hình ảnh có
thể sử dụng được nén hơn 100: 1 — với sự giảm chất lượng khó chịu nhất là
tăng hình ảnhmơ hồ.B