1.3.2.Nén ảnh tĩnh dựa trên phép biến đổi ảnh -Phép biến đổi Cosin rời rạc DCT:biểu diễn các giá trị điểm ảnh trênmiền tần số, tập trung năng lợng vào một số hệ số, DCT cho phép áp dụngt
Trang 1II.Nén ảnh theo chuẩn JPEG:
2.1 Biến đổi Cosin rời rạc:
1.1.1 Sự cần thiết phải nén dữ liệu ảnh:
Nén ảnh là một kỹ thuật mã hoá hiệu suất cao ảnh số nhằm làm giảm sốbit cần cho biểu diễn ảnh Chức năng của kỹ thuật này là giảm độ lớn dữ liệuphải lu trữ cùng với thời gian truyền trong khi vẫn giữ nguyên chất lợng của
ảnh Để đánh giá sự cần thiết của nén ảnh, chúng ta xem xét về yêu cầu bộnhớ và thời gian truyền khi dùng một modem 9600 baud (bit/s) cho các ảnhsau đây:
■ Một ảnh 512 512 điểm, 8 bit cho một điểm, ảnh mức xám yêu cầu2,097,152 bit cho lu giữ và mất 3.64 phút để truyền
Trang 2■ Một ảnh màu RGB có cùng các bớc xử lý nh trờng hợp trên yêu cầu xấp
xỉ 6 triệu bít cho lu trữ và mất gần 11 phút để truyền
■ Một phim âm bản có kích thớc 24 36 mm (35 mm) chia bằng cáckhoảng cách nhau 12 àm, vào khoảng 3000 2000 điểm, 8 bit cho một
điểm, yêu cầu 48 triệu bit cho lu giữ ảnh và 83 phút để truyền Một phim âmbản màu sẽ yêu cầu một số lớn gấp ba lần cho lu giữ và truyền
Rõ ràng, việc truyền và lu giữ các ảnh sẽ có nhiều vấn đề Có rất nhiều ví
dụ khác mà sẽ dễ dàng làm sáng tỏ vai trò của nén ảnh, và rất có nhiềunghiên cứu tập trung vào lĩnh vực này Fax, một tài liệu đồ hoạ đợc truyềnqua đờng dây điện thoại, nén dữ liệu ảnh y học, truyền hình là một vài trong
số nhiều ứng dụng tiềm tàng của nén ảnh Sự phát triển của kỹ thuật vi điện
tử và sự phát triển của rất nhiều ứng dụng thơng mại dẫn dắt sự phát triểncho các tiêu chuẩn và phần cứng của bộ nén ảnh theo thời gian thực
-Tốc độ dòng bít(đối với ảnh động):bit/s
-Mã Lemple-Ziv:Dựa trên việc xây dựng và tra từ điển
-Mã dự đoán (prediction): Dựa trên quá trình tạo điểm tuần tự và luật
dự đoán
1.3.2.Nén ảnh tĩnh dựa trên phép biến đổi ảnh
-Phép biến đổi Cosin rời rạc (DCT):biểu diễn các giá trị điểm ảnh trênmiền tần số, tập trung năng lợng vào một số hệ số, DCT cho phép áp dụngtrong các chuẩn JPEG va MPEG
-Phép biến đổi Wavelet rời rạc (DWT):Sử dụng các bộ lọc thông giải
xử lý đa phân giải trong phép DWt
- Phép biến đổi dựa trên hình học Fractal (Phép biến đổi Fractal): Sửdụng các phép biến đổi hình học
1.3.Kĩ thuật nén ảnh JPEG :
1.3.1.Chuẩn JPEG :
Trang 3Trong chuẩn JPEG ảnh đợc nén nh sau:
1 Khối điểm kích thớc 8 8 của DCT trên ảnh nguyên gốc đợc tính
2 Hệ số chuyển đổi đợc tiêu chuẩn hoá bằng cách áp dụng một mảng
do ngời sử dụng định nghĩa nó đợc định trớc cho tất cả các khối
ca d2 d3 d4 d5 d6 d7 d8 d9 da e1 e2 e3 e4 e5 e6 e7 e8 e9 ea f1 f2 f3 f4f5 f6 f7 f8 f9 faff da 00 08 01 01 00 00 3f 00xx xx xx xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx xx xx ff d9
II.Nén ảnh theo chuẩn JPEG:
Trang 42.1 Biến đổi Cosin rời rạc:
Biến đổi cosin
Biến đổi một chiều cosin rời rạc (DCT-Discrete Cosin Transform) cho bởi
x N k
ở đây
(13.46)
Vì vậy, tín hiệu ra từ các bớc cuối cùng của các thao tác bớm có thể tính
d-ới dạng các hệ số của FCT nh trong hình 13.7 Nếu chúng ta sắp xếp lại vị trícủa các giá trị bít dùng dịch chuyển bít, chúng ta rút ra tín hiệu ra nh hình(13.8) Sau đó,các tín hiệu ra này có thể đợc dùng để rut ra FCT nh hình
(13.9) Bớc cuối cùng này gọi là bớc cộng truy hồi.
Có rất nhiều bớc (các thao tác bớm, dịch chuyển bít, và cộng truy hồi) bâygiờ có thể nằm trong một bớc trong hình 13.10 Từ sơ đồ này, chơng trìnhFCT có thể phát triển Chơng trình này dùng các thuật toán phát triển choFFT Chơng trình dùng một bảng tra cứu để chứa các giá trị cosin, một bảngcho dịch chuyển bit Chi tiết của chơng trình này để lại cho ngời dùng nh mộtbài tập
Thuật toán cho 2-D FCT có thể phát triển dùng phơng pháp hàng-cột bìnhthờng nh thuật toán 2-D FFT Chơng trình 13.5 rút ra biến đổi FCT của cáckhối ngời dùng tự xác định kích thớc, thông thờng là 8 8 hoặc là 16 16,bằng các chia nhỏ các khối của ảnh
ảnh đợc giả sử là có chiều dài bằng chiều rộng với cac chiều là bội của 2 Chơngtrình sử dụng thuật toán 1-D FCT và tận dụng các bảng tra cứu (LUT) nh các trạngthái trớc
Hình 13.10 Biểu đồ chuyển đổi cosin nhanh.
Biến đổi ngợc DCT đợc cho bỏi
X n
= k cho 1
0
= k cho 2 1
k
Thay vì lập lại cả một chơng trình để tính biến đổi ngợc FCT, chúng ta sẽdùng lu đồ của FCT tiến (forward) Để rút ra FCT ngợc, tất cả các việc màchúng ta cần làm là đảo ngợc biểu đồ ở hình 13.10 Hình 13.11 giới thiệuphép biến đổi ngợc của một bớm Kết quả của thuật toán biến đổi ngợc của l-
u đồ FCT cho trong hình 13.12 Từ lu đồ của hình 13.11 biến đổi ngợc củaFCT có thể phát triển bình thờng từ FCT tiến Chơng trình tính 2-D FCT ngợc
4
16
2C
2 1 2 1 2 1
-1-1-1
-1
-1-1
-1-1-1
-1
-1-1-1-1
X(7)
X(3)X(4)X(5)X(6)8
2C
9 16
2C
13
2C
Trang 5cho trong chơng trình 13.6 Giá trị của khối ảnh gốc phải đợc cho trớc bởi
ng-ời dùng
Hình 13.11 Phép đổi ngợc của một bớm.
Hình 13.12 Biểu đồ đảo ngợc giải thuật FCT.
Tiếp theo tôi sẽ giới thiệu một chơng trình mà sẽ hiển thị các khối 8 8của kết quả đã chuyển đổi trên màn hình văn bản Chú ý rằng giá trị sẽ giảmxuống một cách nhanh chóng kể từ góc trái của màn hình, hay là điểm tần số(0,0) Để thoát khỏi chơng trình này, bấm ESC
Chơng trình 13.7 "DISPFCT.C" Chơng trình hiển thị khối 2-D FCT.
Một mẫu của 2-D FCT từ một khối rút ra từ ảnh IKRAM.IMG giới thiệutrong hình 13.13 Các thành phần một chiều (các khối có tần số 0,0) có giátrị lớn nhất Thành phần này biểu diễn giá trị trung bình của khối Các thànhphần khác (đợc hiểu là các thành phần xoay chiều) phải có các giá trị nhỏhơn
B
C
-1A=C+D
13
1
C
9 16
1
C
0
5-1
-1
-1-1-1
-1-1
-1-1
5 16
1
C
4 2
1
C
4 2
1
C
4 2
++
(1)x~
(2)x~
(3)x~
(4)x~
(6)x~
(7)x~
X(5
Trang 6giá trị từ 0 đến 255 Tuy vậy, chúng ta không bao giờ để ý đến các giá trịnày Lý do là các giá trị này bản thân nó không có ý nghĩa gì cả Cái màchúng ta thật sự quan tâm là biểu diễn dới dạng nhị phân của giá trị cờng độsáng tín hiệu lấy mẫu Tất cả các bít biểu diễn khoảng của tín hiệu chói Nếu
tín hiệu chói có giá trị trong khoảng từ giá trị nhỏ nhất y L cho đến giá trị lớn
nhất y u , thì hàm lợng tử hoá sẽ chia tín hiệu ra thành N miền và gán cho mỗi
miền một giá trị nhị phân nh trong hình 13.14 Sự biểu diễn này không có ýnghĩa gì về mặt vật lý, và chức năng của sự biểu diễn này, nh chúng tamuốn, chỉ dùng trong lĩnh vực xử lý tín hiệu số Tất cả các tín hiệu số này gọi
là điều m xungã (Pulse Code Modulated - PCM) Để có thể thực sự thấy giátrị các mức xám chúng ta cần lợng tử hoá ngợc Trong bớc này, các giá trị nhịphân biểu diễn một độ chói cụ thể Các bớc thực sự của quá trình này biểudiễn trong hình 13.15 Trong lĩnh vực tơng tự và lĩnh vực số quá trình này gọi
là chuyển đổi từ tơng tự sang số (A/D) và chuyển đổi từ số sang tơng tự
(D/A)
Trong các ứng dụng nh trờng hợp biến đổi cosin 2-D thì có một chút khácbiệt Cái mà chúng ta cần làm trong trờng hợp này là biến đổi từ một tập hợpcác dấu phẩy động sang một tập hợp các bít nhị phân và ng ợc lại Biểu vìbiến đổi ngợc của lợng tử hoá là biến đổi từ nhiều vào một, nên quá trình nàykhông thể tiến hành một cách thông thờng đợc May mắn thay, có một số ph-
ơng pháp để lợng tử hoá và lợng tử hoá ngợc Chúng ta sẽ nghiên cứu cácphơng pháp này ở phần dới đây
Hình 13.14 Lợng tử hoá.
Lợng tử hoá đồng đều
Đây là dạng đơn giản nhất của lợng tử hoá Trong dạng lợng tử hoá này,
khoảng (y u - y L ) đợc chia thành N khoảng cách đều nhau (xem trong hình 13.14) Các giá trị từ d 0 đến d N đợc gọi là các mức chia Các mức lợng tử biểu
3 2 1 0
1111111111111110 0000010000000011000000100000000100000000
Trang 7diễn giá trị thực của các mức chia trong khoảng từ d i đến d i+1 dới dạng số nhị
phân bằng i
Vì vậy, nếu nh d i+1 < y d i thì giá trị của lợng tử đầu ra = i.
Mức lợng tử đầu ra có thể biểu diễn theo công thức:
y y i
L v L
ở đây dấu có nghĩa là làm tròn thành số nguyên gần nhất
Lợng tử hoá ngợc dùng một bảng biến đổi ngợc giữa giá trị lợng tử i và biến đổi ngợc của nó r i
Tuy nhiên lợng tử hoá đồng đều không quan tâm đến khả năng xảy ra của
sự kiện với các giá trị đợc đa ra Tổng quát, quá trình lợng tử hoá này ápdụng cho trờng hợp tất cả các mức có khả năng xuất hiện bằng nhau Điềunày, trong hầu hết các trờng hợp là không đúng Dễ nhận thấy là các mức l-ợng tử hoá tập trung nhiều nhất vào miền mà khả năng xuất hiện của cácmức xám nhiều nhất Điều này dẫn chúng ta đến phơng pháp thiết kế lợng tửhoá dới đây
Hình 13.15 Lợng tử hoá ngợc.
Lợng tử hoá không đồng đều
Trong phần này chúng ta sẽ xem xét phơng pháp lợng tử hoá không đồng
đều tối u nhất trong hệ thống PCM Các nghiên cứu cho phơng pháp này đã
đợc Panter và Dite đa ra trong một cuốn sách xuất bản vào năm 1949 Trongcuốn sách này họ đã đa giải thuật cho lợng tử hoá không đồng đều Họ đa ramột phơng pháp xấp xỉ tối u cho lợng tử hoá không đồng đều Giải thuật này
sẽ không đúng cho các trờng hợp quá trình lợng tử hoá có quá ít mức chia.Tuy nhiên các giải thuật này đợc phát triển một các trọn vẹn trong một báocáo cha đợc xuất bản của Lloyd vào năm 1957 và đợc Max kiểm nghiệm vàonăm 1960 Một phơng pháp lợng tử hoá kết hợp cả hai phơng pháp của Lloyd
và Max thờng đợc gọi là phơng pháp lợng tử hoá Lloyd-Max Trong phần báocáo xuất bản sau đó của Lloyd xuất bản vào năm 1982 đã cho thấy có rấtnhiều ứng dụng rất thú vị của phơng pháp này Bản báo cáo này có hai ph-
ơng pháp thiết kế, một phơng pháp trong đó giống phơng pháp của Max
Ph-ơng pháp này gọi là phPh-ơng pháp II PhPh-ơng pháp I tỏ ra có nhiều ứng dụng và
dễ tính toán hơn phơng pháp II Cả hai phơng pháp thiết kế này đều đợc trìnhbày ở phần dới đây
Nếu chúng ta coi rằng các mức lợng tử hoá đợc cho bởi
d i , i = 0 N(xem hình 13.16) và các mức khôi phục cho bởi
L ợng
tử hoá
ng ợc hay biến đổi
số sang
t ơng tự
Bộ lọc thông thấp
Trang 8d d
k
k
k
dy y p r y E
0
2
1
) ( )
ở đây y là tín hiệu đầu vào còn p(y) là khả năng xuất hiện của y
Hình 13.16 Các mức lấy mẫu và khôi phục.
Hình 13.17 Các xử lý lấy mẫu và khôi phục.
Hình 13.17 cung cấp sơ đồ khối của quá trình lợng tử hoá và lợng tử hoá
ngợc Tín hiệu vào y(t) phải đợc coi là đã biết khả năng xuất hiện Vấn đề đặt
ra là phải xác định các mức lấy mẫu và các mức khôi phục sao cho méo tínhiệu là nhỏ nhất
Viết lại biểu thức (13.49 ):
i d
d
dy y p r y dy
y p r y E
1
1
0
) ( ) (
) ( )
N-1
LUT cho l ợng
tử hoá ng ợc
Trang 9
)()(
N i
i
d
d
N d
d
i p y dy y r p y dy r
2 i
i
d d
i i
dy y p r y r
)(
)(
i
i
i
i d
d
d
d i
dy y p
dy y yp
Phơng pháp Lloyd-Max Lloyd và Max đã phát triển độc lập thuật toán
để giải quyết biểu thức (13.50) và (13.51) Các chi tiết của thuật toán nàyvẫn cha đợc cung cấp Trong phần này tôi sẽ cung cấp cho bạn một thuậttoán dựa trên thuật toán Lloyd-Max nhng có các chi tiết cụ thể hơn Tôi cũng
sẽ cung cấp cho bạn phần mềm thiết kế N mức lấy mẫu và khôi phục
Thuật toán này gồm các bớc sau:
1 Chọn một giá trị cho r 0 d 0 và d N đợc coi là đã biết
2 Cho i = 1,2, ,N - 1
a Tính d i từ
Trang 10d d
d
d i
dy y p
dy y yp r
1
1
) (
) (
d d
dy y p
dy y yp r
1
1
) (
) (
/
4 Nếu r N-1 r / , thay đổi lại r 0 và lặp lại các bớc từ bớc 2 cho đến bớc 4.Bây giờ tôi sẽ cung cấp cho bạn các chi tiết cần thiết để tạo ra thuật toántrên
Chi tiết cho việc tính d i trong bớc 2a của thuật toán Lloyd-Max d i có thểtính theo hàm sau đây:
d
d i i
dy y p
dy y yp r
d f
1
1
) (
) ( )
Có thể rút ra biểu thức gốc theo công thức lặp Newton-Raphon đợc chobởi:
) (
) (
/
1
l i
l i l
i
l i
d f
d f d
i
d d
d
d i d
d
i i
dy y p
dy y yp d
dy y p
d p d
)(
)(
)()
(
d 0
i là giá trị ban đầu Phép lặp diễn ra cho đến khi f d( i)
Giá trị ban đầu cho d 1 là d 0 + , cho d 2 là d 1 + , , ở đây là một giá trị
nhỏ Giá trị gốc của f(d i ) có thể tính theo dùng phơng pháp nửa lặp
(bisection) Ưu điểm của phơng pháp Newton-Raphson là khả năng hội tụ
Trang 11nhanh Nhợc điểm là đạo hàm của một hàm thờng có giá trị rất nhỏ và dễdẫn đến giá trị zero gây nên sự không ổn định của các số
Các chi tiết cho việc thay đổi r 0 Giá trị r 0 có thể thay đổi lại nếu chúng tanhận thấy rằng giá trị gốc của hàm:
0
1 0
0 0
( )
( )
Đạo hàm của g(r 0 ) có thể rất khó khăn cho việc phân tích Trong trờng hợp
này cần có một công cụ tính toán khác Chúng ta có thể thay thế đạo hàmbằng một giá trị hằng số có cùng dấu nh biểu thức trong dấu ngoặc (xemhình 13.8) Trong trờng hợp này thì tích phân lâu hội tụ hơn
Tiếp theo là một chơng trình cho tính các mức lợng tử hoá theo phơngpháp Lloyd-Max Tích phân đợc đa ra dùng phơng pháp tích phân Rombergbởi vì nó chính xác hơn phơng pháp tích phân Simpson Chơng trình chophép bạn thiết kế lợng tử hoá đồng đều, Gauss hoặc là Laplace
Gauss 2 ( 2/2 2)
2
1 )
y
e y
lại còn hợp
các
y p
Chơng trình này có thể thay kiểm tra trên cả ba loại phân bố (với = 1) với
6 bit cụ thể là 64 mức lợng tử hoá Bạn cần chú ý khi bạn chạy chơng trìnhnày bạn cần cho số của lựa chọn Lựa chọn đầu tiên là số bit bạn muốn xâydựng cho mức lợng tử, lựa chọn thứ hai là lựa chọn về các mức phân bố(phân bố Gauss, phân bố đồng đều, hoặc phân bố Laplace), và thứ ba cũng
là lựa chọn cuối cùng là lựa chon trong khi tính biểu thức trong ngoặc của
g(r 0 ) Lựa chọn của g(r 0 ) có thể là lựa chọn cho một số, một giá trị hoặc là
một giá trị tăng dần Lý do của sự lựa chọn này là kết quả của phơng pháptính toán có thể là một số không thể tính đợc, ví dụ khi ta chia cho một sốquá nhỏ Qua kinh nghiệm tôi nhận thấy rằng phân bố Gauss và phân bố
đồng đều thờng cho kết quả tính toán rất tốt Còn cho phân bố Laplace, khidùng tăng giá trị của biểu thức trong ngoặc sẽ không gặp một khó khăn nàoviệc tạo mã 6 bit
Chơng trình 13.9 “MAXQ1.C” Chơng trình cho tính các mức lợng tử Lloyd-Max.
Phơng pháp Lloyd Lloyd cũng đa ra một phơng pháp thứ hai cho phép
xác định các mức lợng tử mà ông gọi là phơng pháp Lloyd I Phơng pháp này
có nhiều u điểm hơn phơng pháp II (giải thuật Lloyd-Max), vì nó dễ dàng chotính toán và các vector lợng tử hoá có thể mở rộng Chú ý là vấn đề màchúng ta quan tâm ở đây là khoảng cách lợng tử hoá, lợng tử hoá của hàm
Trang 12một biến đã biết đợc phân tán Vector lợng tử hoá là một vector của nhiềubiến mà với các biến này ta đã biết đợc phân tán
Thuật toán Lloyd theo các bớc sau:
1 Rút ra ớc lợng cho phạm vi của các biến
d i {i = 0, 1, 2, , N}
(Một ớc lợng có thể rút ra bằng cách dùng các giá trị từ lợng tử hoá đồng
đều hoặc từ các mức lợng tử trớc mà ta cần một kết quả tốt hơn)
2 Đặt một biến D 1 = 0 D 1 dùng để lu lại tình trạng không chính xác lúc ớc
)(
)(
i i
i i
d d
d d i
dy y p
dy y yp r
2 2
1
) ( ) (
N k
d d
k
k
k
dy y p r y D
Có thể dễ dàng mở rộng biểu thức trạng thái không chính xác theo
( 2
) (
N k
d d
k k
k
d d
d
k k k
k
dy y p r
dy y p y
Lợng tử hoá các hệ số của FCT
Trong phần 13.4 chúng ta đã bắt đầu vấn đề của biến đổi cho mã hoá.Phơng pháp chúng ta áp dụng là chia ảnh thành các khối hình vuông; mỗi
Trang 13khối có kích thớc 8 8 và 16 16 Biến đổi cosin nhanh cho mỗi khối này
đã đợc rút ra Chúng ta nhận thấy rằng hầu hết các hệ số này có biên độ rấtnhỏ so với các giá trị xung quanh khối (một chiều) DC Câu hỏi đặt ra lúc này
là các hệ số nào chúng ta cần lu giữ và bằng phơng pháp nào chúng ta cóthể lu giữ tốt nhất các giá trị này? Câu trả lời cho vấn đề này có thể tìm thấytrong phần lợng tử hoá mà chúng ta đã nghiên cứu ở trên
Chú ý là các hệ số của FCT xác định một dạng biến dạng Cho ví dụ, một
ảnh có 256 256 điểm và kích thớc của các khối là 8 8 điểm, có tất cả 64
hệ số cho mỗi khối và 32 32 khối Mỗi hệ số có 1024 giá trị khi chúng taxem xét tất cả các khối, và tạo nên một biến dạng riêng Đánh giá biến dạng
cho hệ số thứ j có thể cho bởi
J k j
j k
N
k d
d
j j k
L j j
dy y yp r
j d
)(
)(
, 1
,j k j k j k
r r
Chúng ta sẽ cho tất cả các hệ số với các phân bố xuất hiện giống nhau,với giá trị trung bình và chuẩn của độ lệch cho bởi = 0 và = 1 Kết quảsau khi tính toán cho ta các mức chia và các mức khôi phục cho tất cả hệ sốchia Điều này tất nhiên chỉ áp dụng với điều kiện là các hệ số có cùng một
số các bit Trớc khi đa ra các mức lợng tử chúng ta có thể bỏ bớt một số hệ
số Nếu hệ số (0, 0) hay còn gọi là thành phần một chiều DC biểu diễn cho
giá trị trung bình của độ sáng của một khối, chúng ta không thể bỏ điểm này
đi đợc Các hệ số khác trong một khối (còn gọi là các hệ số xoay chiều AC)
mang các thông tin về các chi tiết của ảnh Có thể nhận thấy là các chi tiết
có độ lệch lớn hơn độ lệch chuẩn thì mang nhiều tin tức hơn các chi tiết có độlệch ít hơn độ lệch chuẩn Vì vậy mà chúng ta bắt đầu lợc bỏ các hệ số bắt
đầu từ vùng có trải rộng ít nhất Vậy bao nhiêu hệ số sẽ đợc chúng ta giữ lại?
Điều này phụ thuộc vào mức độ mà chúng ta muốn nén ảnh và phụ thuộcvào bao nhiêu các chi tiết bị mất trên ảnh mà chúng ta có thể chấp nhận đ -
ợc