Tải bản đầy đủ (.doc) (51 trang)

Kỹ thuật nén ảnh theo chuẩn JPEG

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

1
Nguyn
Nguyn Vn Luõn
Mục lục:
I. Tổng quan về nén dữ liệu ảnh và chuẩn JPEG:
1.1.Tổng quan về nén dữ liệu ảnh:
1.1.1. Sự cần thiết phải nén dữ liệu ảnh:
1.1.2. Một số khái niệm:
1.1.3. Phân loại phơng pháp nén ảnh
1.1.3.1.Nén không mất mát thông tin
1.1.3.2.Nén ảnh tĩnh dựa trên phép biến đổi ảnh
1.2.Kĩ thuật nén ảnh JPEG:
1.2.1.Không gian màu:
1.2.2.Chuẩn JPEG
1.2.2.1. Biến đổi Cosin rời rạc:
1.2.2.2.Sắp xếp Zigzag:
1.2.2.3.Lợng tử hoá.
1.2.2.4.Mã hoá dữ liệu ảnh.
1.2.3. Cấu trúc ảnh JPEG:

II.Nén ảnh theo chuẩn JPEG:
2.1. Biến đổi Cosin rời rạc:
4.1.
4.2.
2.2. Sắp xếp Zigzag:
5.2
2.3.Lợng tử hoá
6.1
6.1
2.4.Mã hoá ảnh
1


2
Nguyn
Nguyn Vn Luõn
7.1
7.2
III.Phụ lục:
3.1.Các tài liệu tham khảo và chơng trình
3.2.Các thuật ngữ.
I. Tổng quan về nén dữ liệu ảnh và chuẩn JPEG:
1.1.Tổng quan về nén dữ liệu ảnh:
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ệu phả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 ảnh sau đây:
2
3
Nguyn
Nguyn Vn Luõn
Một ảnh 512 ì 512 điểm, 8 bit cho một điểm, ảnh mức xám yêu cầu
2,097,152 bit cho lu giữ và mất 3.64 phút để truyền.
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ác
khoả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
âm bả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ều
nghiên cứu tập trung vào lĩnh vực này. Fax, một tài liệu đồ hoạ đợc
truyền qua đờ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ển cho các tiêu chuẩn và phần cứng của bộ nén ảnh theo
thời gian thực.
1.1.2.Một số khái niệm:
*Nén dữ liệu ảnh:
-Biến đổi dòng thông tin ảnh thành từ mã nhằm giảm độ d thừa
thông tin.
*Các độ d thừa thông tin:
-D thừa thông tin về không gian, về thời gian, đô d thừa phổ và d
thừa do độ cảm thụ.
*ảnh tĩnh :
*ảnh động:
3
4
Nguyn
Nguyn Vn Luõn
Các tham số chất lợng nén ảnh
*Tỷ số nén :
-Tỷ số: C
R
=
-Tỷ số bít:
-Tốc độ dòng bít(đối với ảnh động):bit/s
*Chất lợng nén:
-Nén có mất mát thông tin(lossless).
-Nén không mất mát thông tin(lossy).

*Độ phức tạp:
-Về thời giannén: Nén thời gian thực/ không thời gian thực.
-Về không gian bộ nhớ.
1.1.3. Phân loại ph ơng pháp nén ảnh:
1.1.3.1.Nén không mất mát thông tin :
-Mã loạt dài (RLE):Dùng số đếm để thay thế các điểm giống nhau
lặp lại.
-Mã Shannon-Fano:Dùng cụm bít có độ dài thay đổi để mã hoá .
-Mã Hufman:Sử dụng đặc điểm mã hoá của Shannon-Fano với ý t-
ởng:kí hiệu có xác suât xuất hiện nhiều thì đợc mã hoá với từ mã ngắn.
-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ên miền tần số, tập trung năng lợng vào một số hệ số, DCT cho phép áp
dụng trong 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.
4
5
Nguyn
Nguyn Vn Luõn
- 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 :
Trong 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.
3. Hệ số DC đợc mã hóa với lợc đồ DPCM.
4. Mỗi khối đợc sắp xếp lại sử dụng mã zigzag (xem hình 13.21).
Điều này là theo RLC và lợc đồ mã Huffman.
Để nén một ảnh màu, JPEG đề xuất rằng mỗi thành phần đợc mã hoá
một cách độc lập với nhau.
1.2.1.1. Biến đổi Cosin rời rạc:
1.2.1.2.Sắp xếp Zigzag:
1.2.1.3.Lợng tử hoá.
1.2.1.4.Mã hoá dữ liệu ảnh.
1.3.2.Cấu trúc ảnh JPEG:
Các byte đánh dấu GiảI thích
FF D8 Bắt đầu File
FF FE Chú giảI-có thể không có
FF E0 Byte đánh dấu dữ liệu ứng dụng
( thông thờng không dùng)
FF DB Định nghĩa bảng lợng tử
FF C0 Bắt đầu của Baseline DCT
5
6
Nguyễn
Nguyễn Văn Luân
FF C4 §Þnh nghÜa b¶ng Huffman
FF DA B¾t ®Çu d÷ liÖu ¶nh
XX XX KÕt thóc d÷ liÖu ¶nh
FF D9 KÕt thóc File ¶nh
VÝ dô:
ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff fe
00 46

76 77 78 79 7a 83 84 85 86 b5 b6 b7 b8 b9 ba c2 03 00 04 ff db
00 43
00 08 06 06 07 06 05 08 07 07 07 09 09 08 0a 0c 14 0d 0c 0b 0b
0c 19 12
13 0f 14 1d 1a 1f 1e 1d 1a 1c 1c 20 24 2e 27 20 22 2c 23 1c 1c
28 37 29
2c 30 31 34 34 34 1f 27 39 3d 38 32 3c 2e 33 34 32 ff c0 00 0b
08 01 00
01 00 01 01 11 00 ff c4 00 1f 00 00 01 05 01 01 01 01 01 01 00 00
00 00
00 00 00 00 01 02 03 04 05 06 07 08 09 0a 0b ff c4 00 b5 10 00
02 01 03
03 02 04 03 05 05 04 04 00 00 01 7d 01 02 03 00 04 11 05 12 21
31 41 06
13 51 61 07 22 71 14 32 81 91 a1 08 23 42 b1 c1 15 52 d1 f0 24
33 62 72
82 09 0a 16 17 18 19 1a 25 26 27 28 29 2a 34 35 36 37 38 39 3a
43 44 45
6
7
Nguyn
Nguyn Vn Luõn
46 47 48 49 4a 53 54 55 56 57 58 59 5a 63 64 65 66 67 68 69 6a
73 74 75
76 77 78 79 7a 83 84 85 86 87 88 89 8a 92 93 94 95 96 97 98 99
9a a2 a3
a4 a5 a6 a7 a8 a9 aa b2 b3 b4 b5 b6 b7 b8 b9 ba c2 c3 c4 c5 c6
c7 c8 c9
ca d2 d3 d4 d5 d6 d7 d8 d9 da e1 e2 e3 e4 e5 e6 e7 e8 e9 ea f1 f2
f3 f4

f5 f6 f7 f8 f9 fa ff da 00 08 01 01 00 00 3f 00 xx 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:
2.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


=






+
=
1
0
2
)12(
cos)(
2
)(
N
n
k
N

kn
nx
N
kX


(13.4)
ở đâ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.
7
8
Nguyn
Nguyn Vn Luõn
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ây giờ có thể nằm trong một bớc trong hình 13.10. Từ sơ đồ này, chơng
trình FCT có thể phát triển. Chơng trình này dùng các thuật toán phát
triển cho FFT. Chơng trình dùng một bảng tra cứu để chứa các giá trị
cosin, một bảng cho 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ột bà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ình thờ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ác khố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ơng trì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ạng thái trớc.
Hình 13.10 Biểu đồ chuyển đổi cosin nhanh.
Biến đổi ngợc DCT đợc cho bỏi



=






+
=
1
0
2
)12(
cos)()(
N
k
k
N
nk
kXnx


(13.48)
8

16
2C
2
1
2
1
2
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
C
4
C
4
C

4
C
4
Dịch chuyển bit.
X(0)
X(1)
X(2)
X(7)
X(3)
X(4)
X(5)
X(6)








8
2C
5
8
2C
5
8
2C
5
16

2C
9
16
2C
13
16
2C
9
Nguyn
Nguyn Vn Luõn
ở đây






=
1-N , 1,2,=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ệu phé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 lu đồ FCT cho trong hình 13.12. Từ lu đồ của hình 13.11 biến
đổi ngợc của FCT 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 cho 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.
9
1/2CX
0.5
A
B
C
D
C
X
-1
A=C+D
B=(C-D)CX
C
D
A
B
-1
C=0.5A+B/(2CX)
D=0.5A-B/(2CX)
13
16
1
C
9
16
1
C

0.
5
-1
-1
-1 -1 -1
-1
-1
-1
-1-1
-1
-1
5
16
1
C
16
1
C
8
4
1
C
5
8
4
1
C
8
4
1

C
8
4
1
C
4
2
1
C
4
2
1
C
4
2
1
C
4
2
1
C
0.
5
0.
5
0.
5
0.
5
0.

5
0.
5
0.
5
0.
5
0.
5
0.
5
0.
5
+
+
+
+
+
Dịch chuyển bit.
X(0
)
X(1
)
X(2
)
X(3
)
X(4
)
X(6

)
X(7
)
(0)x
~
(1)x
~
(2)x
~
(3)x
~
(4)x
~
(6)x
~
(7)x
~
X(5
)
(5)x
~
10
Nguyn
Nguyn Vn Luõn
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 ì
8 của kết quả đã chuyển đổi trên màn hình văn bản. Chú ý rằng giá trị sẽ
giảm xuố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ệu trong 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ành phầ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.
2.2. Sắp xếp Zigzag:
10
11
Nguyn
Nguyn Vn Luõn
5.2
2.3.L ợng tử hoá
6.1
6.1
Lợng tử hoá
Trong toàn bộ cuốn sách này chúng ta làm việc với các ảnh đã lợng tử
hoá. Chúng ta coi rằng các ảnh đợc chia làm các mức xám dùng 8 bit với
các giá 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 ta muố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ểu diễ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ác biệ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ợp cá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,
11
12
Nguyn
Nguyn Vn Luõn
nên quá trình này khô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ác phơ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
12
d
N
d
N-1

d
5
d
4
d
3
d
2
d
1
d
0
N-1
N-2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
3

2
1
0
11111111
11111110
.
.
.
.
.
.
.
.
.
.
.
.
.
.
00000100
00000011
00000010
00000001
00000000
Y
U
Y
L
Khoảng tín hiệu.
Dạng thập phân.

Dạng nhị phân.
d
i
{ i= 0, ,1} là các mức chia.
13
Nguyn
Nguyn Vn Luõn
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 diễ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:










= )1(N
yy
yy
i
Lv
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


2
1+
+
=
ii
i
dd
r
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

áp dụ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ều nà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ác mứ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.
13
Tín hiệu
ánh sáng.
Tín hiệu
t ơng tự.
t
t
L ợng
tử hoá
ng ợc
hay
biến đổi
số sang
t ơng tự.
Bộ lọc
thông
thấp.
Tín hiệu
dạng nhị
phân.
Mức đ
ợc tái
thiết.
14
Nguyn

Nguyn Vn Luõn
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. Trong cuốn sách này họ đã đa giải thuật cho lợng tử hoá
không đồng đều. Họ đa ra mộ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áo cáo cha đợc xuất bản của
Lloyd vào năm 1957 và đợc Max kiểm nghiệm vào nă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áo cáo xuất
bản sau đó của Lloyd xuất bản vào năm 1982 đã cho thấy có rất nhiề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à phơng pháp II. Phơ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ình bà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
r
i
, i = 0 N
14
15

Nguyn
Nguyn Vn Luõn
và giá trị đo của tất cả các mức này cho bởi:


=
+
=
N
k
d
d
k
k
k
dyypryE
0
2
1
)()(
(13.49)
ở đâ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.
15
d
N
d
N-1
d
5

d
4
d
3
d
2
d
1
d
0
Các mức chia.
y
L
y
u
y
mẫu i
L ợng tử hoá. L ợng tử hoá ng
ợc.
y(t)
r
i
N-1
3
2
1
0
Mẫu
i r
i

r
0
. .
. .
. .
N-1 r
N-1
LUT cho l ợng
tử hoá ng ợc.
16
Nguyn
Nguyn Vn Luõn
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ín hiệu là nhỏ nhất.
Viết lại biểu thức (13.49 ):
+++=



i
i
d
d
i
d
d
dyyprydyypryE

1
1
0
)()( )()(
2
1
2
0

++
++
11
)()( )()(
22
n
N
i
i
d
d
N
d
d
i
dyyprydyypry
(13.50)
Vi phân (13.50) theo d
I
và cho biểu thức này bằng không chúng ta đợc
d

r r
i
i i
=
+
1
2
(13.51)
i = 1,2,3, ,N
Lấy vi phân (13.50) theo r
i
chúng ta đợc.

+
=
1
)()(2
i
i
d
d
i
i
dyypry
r
E






+
+
=
1
1
)(
)(
i
i
i
i
d
d
d
d
i
dyyp
dyyyp
r
(13.52)
16
17
Nguyn
Nguyn Vn Luõn
i = 0, 1, , N - 1.
Hình 13.18 Phơng pháp Newton-Raphson cho tính các biểu thức trong
ngoặc.
Biểu thức (13.50) và biểu thức (13.51) đa ra phơng pháp xác định các
mức lấy mẫu và các mức khôi phục dùng cho cả phơng pháp của Lloyd-

Max hoặc là phơng pháp Lloyd.
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ày vẫn cha đợc cung cấp. Trong phần này tôi sẽ cung cấp cho bạn
một thuật toá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ừ
17
18
Nguyn
Nguyn Vn Luõn





=

i
i
i
ii
d
d
d
d
i
dyyp
dyyyp
r
1
1
)(
)(
1
b. Tính r
i
từ
r d r
i i i
=

2
1
3. Tính






=
N
N
N
N
d
d
d
d
dyyp
dyyyp
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án trê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


thể tính theo hàm sau đây:




=

i
i
i
i
d
d
d
d
ii
dyyp
dyyyp
rdf
1
1

)(
)(
)(
1
(13.53)
Có thể rút ra biểu thức gốc theo công thức lặp Newton-Raphon đợc
cho bởi:
18
19
Nguyn
Nguyn Vn Luõn
)(
)(
/
1
l
i
l
i
l
i
l
i
df
df
dd =
+
(13.54)
ở đây l là số lần lặp và f
/

(d
i
) là đạo hàm của f(d
i
) theo d
i
cho theo công
thức:
















=







i
i
i
i
i
i
d
d
d
d
i
d
d
i
i
dyyp
dyyyp
d
dyyp
dp
df
1
1
1
)(
)(
)(
)(
)(

/
(13.50)
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ụ nhanh. 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 ta nhận thấy rằng giá trị gốc của hàm:

g r r r
N
( )
/
0 1
=

(13.56)
Giá trị gốc này có thể rút ra dùng các giả thiết của Newton-Raphson
theo:
r r
g r
g r
l l
l
l0
1
0
0
0
+
=
( )
( )
/

(13.57)
Đạ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
19
20
Nguyn
Nguyn Vn Luõn
hàm bằng một giá trị hằng số có cùng dấu nh biểu thức trong dấu ngoặc
(xem hì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ơng
pháp Lloyd-Max. Tích phân đợc đa ra dùng phơng pháp tích phân
Romberg bởi vì nó chính xác hơn phơng pháp tích phân Simpson. Chơng
trình cho phép bạn thiết kế lợng tử hoá đồng đều, Gauss hoặc là Laplace.
Gauss
)2/(
2
22
2
1
)(


y
eyp

=
Laplace
p y e

y
( ) =



2




=
2

Đồng dạng:



=
0
1|<=y| 1
)(
lại còn hợp tr ờng các
yp

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ình nà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ây dự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áp tí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.
20
21
Nguyn
Nguyn Vn Luõn
Còn cho phân bố Laplace, khi dù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ào việ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 cho tí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 một biến đã biết đợc phân tán. Vector lợng tử hoá là một
vector của nhiều biế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 trớc.
3. Tính



+
+
=
1
1
)(
)(
i
i
i
i
d
d
d
d
i
dyyp
dyyyp
r

i = 0, 1, , N - 1.
4. Tính
21
22
Nguyn
Nguyn Vn Luõn

d
r r
i
i i
=
+
1
2

i = 0, 1, , N - 1
5. Tính tình trạng không chính xác




=
+
=
1
0
2
2
1

)()(
N
k
d
d
k
k
k
dyypryD
Có thể dễ dàng mở rộng biểu thức trạng thái không chính xác theo




=






+=
+++
1
0
22
111
)()(2)(
N
k

d
d
d
d
k
d
d
k
k
k
k
k
k
k
dyyprdyyyprypyD
(13.58)
6. Nếu

D D
D
2 1
1



thì một giải pháp đã đợc tìm ra. Lu lại kết quả và thoát khỏi chơng
trình.
7. Đặt D
1
= D

2
8. Quay lại bớc 3.
Một chơng trình C cho giải thuật trên đợc đề cập đến ở dới đây.
Từ biểu thức (13.52) và (13.58) chúng ta có thể phát triển một chơng
trình cho tình trạng méo tối thiểu:



=






=
++
1
0
22
min
11
)()(
N
k
d
d
d
d
k

k
k
k
k
dyyprdyypyD
(13.59)
22
23
Nguyn
Nguyn Vn Luõn
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 khố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ất nhỏ 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ấy trong 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 ta xem 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



=
+

=
1
0
,
1
)()(
J
j
k
j
k
N
k
d
d
jjkj
dyypryD
(13.60)
j = 0, 1, 2, , L - 1.
ở đây L là số các hệ số cho một khối và N
j
số các mức lợng tử cho hệ số
j. Tổng số các biến dạng sẽ là


=
=
1
0
L

j
j
DD
(13.61)
Làm theo các bớc trong phần 13.5 chúng ta đợc
23
24
Nguyn
Nguyn Vn Luõn

dyyp
dyyyp
r
j
d
d
d
d
j
jk
jk
kj
j
k
j
k
)(
)(
,1
1

,


+
+
=
(13.62)

2
,1,
,
jkjk
jk
rr
d
+
+
=
(13.63)
Nếu chúng ta coi rằng bất kỳ hệ số nào có thể xác định bằng cùng một
hàm khả năng xuất hiện độ sáng, thì thay thế giá trị các hệ số này (mà đ-
ợc biểu diễn trong biểu thức trên là y) bằng
y
j
j

à

(13.64)
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ộc và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.
24
25
Nguyn
Nguyn Vn Luõn
Dựa trên các giả thiết trên chúng ta có thể phát triển một thuật toán
cho nén ảnh và lợng tử hoá. Các bớc sau mô tả cho cả việc lợng tử hoá
các hệ số FCT.
1. Tính à và cho tất cả các hệ số FCT. (Chú ý là độ lệch chuẩn và
trung bình có thể tính trong một dải thông của ảnh dùng biểu thức sau
cho :

( )
)1(
2
2
2



=

nn
xxn
ii

ở đây x
i
biểu diễn các giá trị cho một trong các hệ số). à đợc tính từ
tổng của x
i
.
2. áp dụng các hệ số cho các chi tiết đợc giữ lại cụ thể là 0.25 , 0.5.
3. Giữ lại các hệ số đã nhân thêm phân số chia có sai lệch cao hơn sai
lệch chuẩn.
4. Định dạng một ma trận T có dạng



=
lại còn hợp tr ờng các 0
mất không j)(i, số hệ nếu 1
ij
T
5. Chia khoảng cách các hệ số c
ij
(cụ thể một cho các giá trị mà T
ij

= 1)
trong tất cả các khối, ngoại trừ các giá trị một chiều cho mỗi khối, nh
sau:
ij
ijij
c

à

(13.65)
6. Tính phân bố của các giá trị AC chia cho mảng FCT.
25

×