3.5. Mã hoá nhúng khối với cắt xén tối ưu hóa (Embedded block coding with
3.5.3. Mã hóa phân đoạn mặt phẳng bit (Fractional bit plane coding)
Các hệ số lượng tử hoá trong một khối mã được mã hóa mặt phẳng bit độc lập của các khối mã khác trong băng con. Thay vì mã hóa toàn bộ các mặt phẳng bit trong một bước, mỗi mặt phẳng bit được mã hóa trong ba bước mặt phẳng bit con, gọi là mã hóa phân đoạn mặt phẳng bit (fractional bit plane coding). Lý do là để có thể cắt xén dòng bit vào cuối mỗi bước là tạo ra một dòng bit gần tối ưu. Điều này cũng được biết đến như bổ sung tỷ lệ nén biến dạng (post compression rate distortion - PCRD) tối ưu hoá . Ở đây, kết quả bước đó trong việc giảm lớn nhất trong biến dạng tăng nhỏ nhất cho tốc độ bit được mã hoá đầu tiên.
Mục đích và lợi ích của việc mã hoá phân đoạn mặt phẳng bit có thể được hiểu với sự hỗ trợ của hình 3.8. Giả sử (R1, D1) và (R2, D2) có tỷ lệ biến dạng tương ứng với hai cặp mặt phẳng bit kề p1 và p2. Ngoài ra, giả sử trong mã hóa của từng bước đó tăng tốc độ bit và giảm biến dạng theo các đặc điểm nhận dạng bởi nhãn A, B và C. Như chúng ta thấy, trong mã hóa toàn bộ mặt phẳng bit, đó là đi từ điểm X1 đến điểm X2, bất kể đó là theo con đường, tỷ lệ bit cuối cùng là tăng từ R1 đến R2, và biến dạng được giảm từ D1 đến D2. Nhưng nếu do sự giới hạn trong ngăn sách tỷ lệ bit, tỷ lệ bit đã được rút ngắn giữa R1 và R2, R1 ≤ R ≤ R2, sau đó nó được tốt hơn để đi vào thực hiện theo các trình tự ABC chứ không phải là CBA.
Hình 3.8. Tác động của thứ tự mã hoá phân đoạn mặt phẳng bit trong giảm biến dạng
Sắp xếp mã hoá phân đoạn mặt phẳng bit là một phương pháp tối ưu hoá tỷ lệ biến dạng các đường cong trong thực tế, với mục đích tạo ra một dòng bit nhúng trơn (mịn), được gọi là bổ sung tỷ lệ nén biến dạng (PCRD) tối ưu hoá trong EBCOT. Hình 3.9 so sánh tỷ lệ biến dạng tối ưu biến dạng được kết hợp với mã hóa mặt phẳng bit versus so mã hóa mặt phẳng bit thông thường. Những dấu chấm liền nét biểu diễn cho các cặp tỷ lệ biến dạng ở cuối mỗi mặt phẳng bit, và dòng đường liền nét là tỷ lệ biến dạng cong mà ta có thể mong đợi để có được bằng cách cắt bỏ dòng bit sinh ra bằng phương pháp này với một tốc độ bit tùy ý. Mặt khác, các điểm kết thúc liên kết với nhau qua các mã hoá phân đoạn mặt phẳng bit được hiển thị với hình tròn trắng và dòng nét đứt minh hoạ đường cong tỷ lệ biến dạng của nó. Vì rằng mã hóa bước ban đầu thường có tỷ lệ biến dạng độ dốc sườn dốc hơn (steeper rate distortion slopes), điểm kết thúc cho từng bước mã nằm dưới phép nội suy lồi của điểm cuối. Vì vậy, kết quả mã hóa phân đoạn mặt phẳng bit trong một hiệu suất mã hóa gần tối ưu so với mã hóa mặt phẳng bit đơn.
Hình 3.9. Tỷ lệ biến dạng với phân đoạn tối ưu
Nói chung, trong mã hóa một hệ số giảm lớn nhất trong biến dạng xảy ra khi hệ số này là không đáng kể, nhưng nó là nhiều khả năng trở thành quan trọng (đáng kể) trong mã hóa. Giảm biến dạng vừa phải khi đã là hệ số quan trọng và mã hóa làm mịn nó. Cuối cùng, giảm ít nhất là trong biến dạng là khi các hệ số không đáng kể sau khi mã hóa có khả năng vẫn không đáng kể. Đây là trong thực tế, các hệ số còn lại không mã hóa trong hai trường hợp trước đây. Vì vậy nó là hợp lý để phân chia mặt phẳng bit mã hóa thành ba bước, và mã hóa từng bước theo thứ tự mã trên. Trong JPEG2000, phân đoạn mặt phẳng bit được thực hiện trong ba bước. Vai trò của từng bước mã hoá, và thứ tự của chúng có tầm quan trọng trong việc tạo một dòng bit tối ưu, được đưa ra dưới đây.
3.5.3.1. Bước lan truyền quan trọng (Significance propagation pass)
Đây là bước đầu tiên của mã hóa phân đoạn mặt phẳng bit cho rằng việc giảm lớn nhất trong mã hóa biến dạng. Trong bước này, các bit của một hệ số trong một mặt phẳng bit được mã hoá khi và chỉ khi trước bước này, trạng thái hệ số đã được không đáng kể, nhưng ít nhất một trong tám lân cận
tức thời của nó đã có các trạng thái quan trọng. Nếu hệ số nào sẽ được mã hoá, độ lớn của các bit của nó, 0 hay 1, là mã hoá số học với một mô hình xác suất xuất phát từ bối cảnh tám lân cận tức thời của nó, thể hiện trong hình 3.6.
Xác suất được chỉ định cho bit 0 là bổ sung cho các xác suất được chỉ định cho bit 1. Việc lựa chọn bối cảnh là dựa trên ý nghĩa của của mẫu tám lân cận tức thời, được nhóm lại trong ba loại.
∑ ∑=± =±
+ +
=
+ +
−
=
+ +
−
=
1 1
i( , ) ( , )
d : ChÐo
) 1 , ( ) 1 , ( ) , ( :
Dọc
) , 1 ( ) , 1 ( ) , ( : Ngang
m n
i i i
i
i i
i
n v m u v
u
v u v
u v
u v
v u v
u v
u h
σ σ σ
σ σ
(3.9) Trong đó hi(u, v), vi(u, v) và di(u, v) là lân cận ngang, dọc và chéo, cho i hệ số tại tọa độ (u, v), và σi(u, v) là trạng thái quan trọng (ý nghĩa) của một hệ số tại các tọa độ này. Lân cận mà nằm ngoài khối mã được hiểu là không đáng kể với mục đích xây dựng ba đại lượng. Để tối ưu hoá cả giá trị mô hình thích nghi phức tạp và độ phức tạp thực hiện, cấu hình 256 khu vực lân cận có thể được ánh xạ tới chín bối cảnh riêng biệt mã hóa dựa trên (3.9), như thể hiện trong bảng 3.1.
Bảng 3.1. Phân công chín bối cảnh dựa trên ý nghĩa khu vực lân cận
LL, LH and HL bands HH band
HH band vi(u, v) di(u, v) context di(u, v) hi(u, v) + vi(u, v) context
0 0 0 0 0 0 0
0 0 1 1 0 1 1
0 0 >1 2 0 >1 2
0 1 X 3 1 0 3
0 2 X 4 1 1 4
1 0 0 5 1 >1 5
1 0 >0 6 2 0 6
1 >0 X 7 2 >0 7
2 X X 8 >2 X 8
Để thực hiện chuyển nhượng bối cảnh đồng nhất cho băng tần LH và HL, các khối mã của băng con HL được chuyển vị trước khi mã hóa. Các
băng con LH đáp ứng mạnh mẽ nhất để cạnh ngang trong ảnh gốc, do đó, lập ánh xạ bối cảnh cho sự nhấn mạnh nhiều hơn về lân cận ngang.
Lưu ý rằng bước lan truyền quan trọng bao gồm những bit của hệ số đó là không đáng kể trước bước này và có một bối cảnh khác không. Nếu bit của các hệ số là 1 (hệ số trở nên quan trọng cho lần đầu tiên), sau đó trạng thái quan trọng, σ, được thay đổi thành 1, để ảnh hưởng đến bối cảnh của lân cận theo sau của nó. Vì vậy, trạng thái lan truyền quan trọng trong cả hệ số mã hóa, và vì thế mà có tên đặt cho bước này là bước lan truyền quan trọng.
Cũng lưu ý rằng nếu một mẫu có vị trí ranh giới của một khối, sau đó chỉ là lân cận tức thời có được coi là trạng thái quan trọng của lân cận khuyết (missing neighbours) là bằng không.
Cuối cùng, nếu một hệ số được tìm thấy là quan trọng, dấu của nó cũng là mã hoá số học. Vì rằng bit dấu từ các mẫu kế cận biểu hiện thực chất thống kê phụ thuộc, chúng có thể được khai thác có hiệu quả để nâng mã hóa cao số học hiệu quả. Ví dụ, các hệ số Wavelet của các cạnh ngang và dọc có nhiều khả năng được trong cùng một phân cực. Những phần sau và trước cạnh chủ yếu là các cực đối diện. Trong thuật toán EBCOT, các mã số học của một bit dấu sử dụng năm bối cảnh. Bối cảnh được thiết kế dựa trên mẫu tức thời có liên quan của lân cận ngang và dọc, mỗi lân cận có thể được ở một trong ba trạng thái: quan trọng và dấu dương, quan trọng và dấu âm, không quan trọng. Có 34 = 81 cấu hình khu vực lân cận duy nhất. Các chi tiết của các cấu hình đối xứng và xấp xỉ ánh xạ từ 81 cấu hình đến một trong năm cấp độ bối cảnh có thể được tìm thấy.
3.5.3.2. Độ lớn bước làm mịn (Magnitude refinement pass)
Độ lớn bước làm mịn là bước mã hóa hiệu quả thứ hai. Trong toàn bộ bước, độ lớn các bit của một hệ số đó đã trở thành quan trọng trước một mặt phẳng bit được mã hoá số học. Độ lớn bước làm mịn bao gồm các bit từ các hệ số đó đã được quan trọng, ngoại trừ những bit chỉ trở thành quan trọng trong tức thời ngay trước bước lan truyền quan trọng. Có ba bối cảnh cho mã hoá số học, được xuất phát từ tổng kết trạng thái quan trọng của lân cận ngang, dọc và chéo. Đây là những trạng thái như hiện thời được biết để giải mã và các trạng thái này không được sử dụng trước bước giải mã quan trọng.
Hơn nữa, nó phụ thuộc vào bit làm mịn đầu tiên (bit ngay sau bit quan trọng và bit dấu) được hay không.
Nói chung, các bit làm mịn có một sự phân bố đồng đều, trừ khi các hệ số là chỉ trở thành quan trọng trước trong mặt phẳng bit (tức là độ lớn bit để được mã hoá là bit làm mịn đầu tiên). Đây là điều kiện đầu tiên được thử nghiệm, và nếu nó được thoả mãn, các bit, độ lớn bit được mã hóa bằng cách sử dụng hai bối cảnh, dựa trên ý nghĩa của tám lân cận tức thời (xem hình 3.6). Nếu không, nó được mã hóa với một bối cảnh duy nhất không phụ thuộc vào các giá trị lân cận.
3.5.3.3. Bước làm sạch (Clean up pass)
Tất cả các bit không mã hóa trong bước lan truyền quan trọng và làm mịn được mã hoá trong bước làm sạch. Đó là hệ số là không quan trọng và bối cảnh có giá trị không (không có tám lân cận tức thời đã được quan trọng) trong bước lan truyền quan trọng. Nói chung, các hệ số mã hóa trong bước này có xác suất rất nhỏ đang được quan trọng và vì thế dự kiến sẽ vẫn không quan trọng. Thành ra, một chế độ đặc biệt, gọi là chế độ thực hiện (run mode), được sử dụng để gộp chung hệ số không quan trọng còn lại. Một chế độ thực hiện được nhập nếu tất cả bốn mẫu trong một cột dọc của dải trong hình 3.7
có lân cận không quan trọng. Cụ thể, chế độ thực hiện được chạy khi từng điều kiện sau nắm giữ:
- Tất cả bốn mẫu liên tiếp phải là không quan trọng, tức là σi(u+m,v)=0, với 0 ≤ m ≤ 3
- Các mẫu phải có lân cận không quan trọng, nghĩa là hi(u+m,v)=vi(u+m,v) = di(u + m, v) = 0, với 0 ≤ m ≤ 3
- Mẫu phải thường trú trong cùng một khối con.
- Chỉ số ngang của mẫu đầu tiên, u, phải được làm bằng.
Trong chế độ thực hiện một ký hiệu nhị phân là mã hoá số học với một bối cảnh đơn để xác định xem tất cả bốn mẫu trong cột dọc vẫn không quan trọng. Ký hiệu 0 có nghĩa rằng tất cả bốn mẫu là không quan trọng và ký hiệu 1 có nghĩa rằng ít nhất một trong bốn mẫu trở nên quan trọng trong mặt phẳng bit hiện hành. Nếu ký hiệu là 1, sau đó thêm hai bit mã hóa số học được sử dụng để xác định vị trí của hệ số đầu tiên khác 0 trong cột dọc.
Vì có khả năng rằng bất kỳ một trong bốn mẫu trong cột là mẫu khác 0 đầu tiên, sau đó là mã số học sử dụng một bối cảnh thống nhất. Vì vậy, chế độ thực hiện có một vai trò không đáng kể trong hiệu quả mã hóa. Nó là chủ yếu được sử dụng để cải thiện thông qua các bộ mã hóa số học thông qua các ký hiệu phép gộp (symbol aggregation).
Sau khi xác định vị trí của các ký hiệu khác 0 đầu tiên trong thực hiện, các mẫu còn lại trong cột dọc được mã hoá theo cách thức tương tự như trong việc bước lan truyền quan trọng và sử dụng cùng chín bối cảnh. Tương tự, nếu ít nhất một trong bốn hệ số trong cột dọc có một lân cận quan trọng, chế độ thực hiện bị tắt và tất cả các hệ số trong cột đó một lần nữa được mã hoá với các thủ tục được sử dụng cho bước lan truyền quan trọng.
Đối với mỗi khối mã, số lượng MSB của mặt phẳng là 0 hoàn toàn có báo hiệu trong dòng bit (entirely zero is signalled in the bit stream). Từ đó
trạng thái quan trọng của tất cả các hệ số trong MSB khác 0 đầu tiên là 0, mặt phẳng này chỉ sử dụng bước làm sạch và hai bước khác không được sử dụng.
Ví dụ
Làm thế nào để hiển thị các hệ số Wavelet trong một mặt phẳng bit phân đoạn được mã hoá. Hình 3.10 minh họa một biểu diễn đồ họa của mã hóa từng nấc từ mặt phẳng bit đến mặt phẳng bit và từ bước đến bước.
Hình 3.10. Một minh hoạ của mã hóa phân đoạn mặt phẳng bit
Hình ảnh Barbara có kích thước 256 x 256 điểm ảnh với hai cấp của phân giải Wavelet tạo ra bảy ảnh con (subimages), như trong hình 3.10. Ngoại trừ các băng tần thấp nhất, độ lớn của tất cả các băng tần khác được phóng đại do một trong bốn hệ số, để minh họa tốt hơn các chi tiết hình ảnh. Kích thước
khối mã được giả định là một mảng vuông 64 x 64 hệ số. Do đó, mỗi băng tần cao LH1, HL1 và HH1 được mã hóa trong bốn khối mã, và các băng tần còn lại của LL2, LH2, HL2 và HH2 mã từng khối một. Tức là, toàn bộ ảnh được mã hoá trong 16 khối mã. Dòng bit tạo ra bởi mỗi bước trong mọi mặt phẳng ảnh cũng được thể hiện trong các hộp vuông với kết cấu khác nhau.
Trước khi bắt đầu mã hóa, trạng thái quan trọng của tất cả các khối mã được khởi tạo bằng 0. Đối với mỗi khối mã mã hóa bắt đầu từ mặt phẳng bit quan trọng nhất. Từ đó băng tần LL2 có một năng lượng cao hơn (hệ số Wavelet lớn hơn) so với các băng tần khác, trong ví dụ này chỉ có một số MSB của khối mã của băng tần này là rất lớn ở mặt phẳng bit đầu tiên được lấy mẫu, PB1. Trong các mặt phẳng bit của MSB không có khối mã khác là quan trọng (chúng là hoàn toàn bằng không), và không có mã nào cả.
Từ đó khối mã của băng tần LL2 trong BP1 được mã hoá cho lần đầu tiên (các trạng thái quan trọng của tất cả các hệ số được khởi tạo bằng không), sau đó là bit MSB của mỗi hệ số có một lân cận không quan trọng và do đó không thể được mã hoá tại bước lan truyền quan trọng. Ngoài ra, không ai trong số các bit được mã hoá tại bước làm mịn, bởi vì các hệ số đã không được mã hoá trong mặt phẳng bit trước đó. Vì vậy, tất cả các bit phía trái được mã hoá trong bước làm sạch, và chúng tạo thành các dòng bit của bước này.
Tại mặt phẳng thứ hai, BP2, một vài hệ số trong khối mã HL2 và HH2 trở nên quan trọng cho lần đầu tiên. Do đó, như đã được giải thích trước đó, chúng được mã hoá chỉ ở bước làm sạch, như trong hình này. Đối với khối mã của LL2, vì rằng hệ số với độ lớn quan trọng của khối mã này đã được mã hoá tại bước làm sạch của BP1, khối sử dụng tất cả ba bước. Những hệ số của mặt phẳng bit BP2 với các trạng thái không quan trọng rằng có ít nhất một trạng thái quan trọng lân cận tức thời được mã hoá với bước lan truyền quan trọng.
Các hệ số trạng thái quan trọng đang làm mịn trong bước làm mịn. Các hệ số
còn lại được mã hoá tại bước làm sạch. Khối mã khác trong mặt phẳng bit này không có mã nào cả.
Tại mặt phẳng bit thứ ba, BP3, một số hệ số của khối mã của băng con LH2 và HL1 trở nên quan trọng cho lần đầu tiên, do đó chúng được mã hoá chỉ trong bước làm sạch. Các khối mã của LL2, HL2 và HH2 đang mã hoá tại bước ba. Các khối mã còn lại là không có mã nào cả. Số mặt phẳng bit của các khối mã được mã hoá cho lần đầu tiên cũng được hiển thị trong hình với số từ 1 đến 6. Như chúng ta thấy, sau mặt phẳng bit 7, tất cả các khối mã của các băng tần được mã hoá trong cả ba bước.
3.5.4. Sự hình thành tầng (layer) và tổ chức dòng bit (mã hoá bậc 2)
Các mã số học của dữ liệu mặt phẳng bit được gọi là mã hóa bậc 1. Mã hóa bậc 1 tạo ra một tập hợp của dòng bit với một dòng bit nhúng độc lập cho mỗi khối mã. Mục đích của mã hóa bậc 2 là đa hợp (multiplex) các dòng bit cho truyền dẫn và sắp xếp tín hiệu của kết quả bước mã hoá mặt phẳng bit thông qua một cách có hiệu quả. Quá trình mã hóa bậc 2 có thể được xem tốt nhất như là một bộ cú pháp phần nào khôi phục cho con trỏ (pointers) để phân thành đoạn mã trong dòng bit. Đây là bước mã hóa cho phép dòng bit có SNR, không gian và tiến tùy ý và khả năng mở rộng.
Dòng bit nén từ mỗi khối mã được phân phối qua một hoặc nhiều tầng trong dòng bit nén cuối cùng. Mỗi tầng biểu diễn cho một gia tăng tính năng.
Số của các bước bao gồm trong một lớp đặc trưng có thể biến thiên từ một khối mã tới một khối mã khác và thường được xác định bởi bộ mã hóa như là kết quả của tối ưu hoá PCRD. Các tầng tính năng cung cấp các tính năng của khả năng mở rộng SNR của dòng bit cuối cùng sao cho cắt cụt dòng bit với số bất kỳ toàn bộ các tầng khoảng một tỷ lệ tối ưu biểu diễn biến dạng của hình ảnh. Tuy nhiên, sử dụng một số lượng lớn các tầng tính năng có thể giảm thiểu xấp xỉ. Mặt khác, các tầng chất lượng cao hơn kéo theo một thủ tục bổ