Tải bản đầy đủ (.pdf) (11 trang)

Nén dữ liệu Ảnh part 3 pot

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 (497.46 KB, 11 trang )

Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 249

nó sau đó đem nhân với 2C
N
n
. Ta lặp lại quá trình chia đôi đối với các dãy con, dãy
con của dãy con và cứ tiếp tục chia nh thế. Giống nh biến đổi Fourier, mỗi bớc lặp
cũng đợc coi là một tầng phân chia. Với N = 2
M
thì số tầng phân chia là M.
Để dễ hình dung, đầu ra của mỗi tầng đợc kí hiệu là X
m
(n) với m là tầng hiện
thời. Ta xem x'(n) là biến đổi Cosin 0 tầng của x'(n):
)(')(
0
nxnX

X
M
(n) là biến đổi Cosin tầng M của x(n), nó không phải là X(k). Bởi vì cứ sau mỗi
tầng, không chỉ thứ tự các phần tử trong X(k) bị xáo trộn mà các X(2k+1) còn đợc
cộng với X(2k-1). Đầu ra của một tầng là đầu vào của tầng tiếp theo.

)()(


1
ngnX
với 1
2
, ,1,0
N
n
)()
2
(1 nh
N
nX
với
1
2
, ,1,0
N
n

Từ công thức tính g(n) và h(n) ta có:
với 1, ,1,0


Nn
Cứ sau mỗi tầng, số dãy con lại đợc nhân đôi. Xét phép biến đổi tại tầng thứ m ,
chúng ta phải lặp lại công việc biến đổi cho 2
m-1
dãy con. Mỗi dãy con đóng vai trò
nh dãy x'(n)
trong tầng thứ nhất. Số phần tử trong một dãy là:

1
2
m
N
.Công đoạn biến đổi trên một
dãy con gọi là một khối biến đổi. Mỗi dãy con sẽ tiếp tục đợc phân làm hai dãy nhỏ
hơn. Công thức tổng quát tại mỗi khối là:
Với
mmm
NN
k
N
ki
2
2
, ,
2
11


, trong đó k = 0,1, ,2
m
-1
)
2
()()(
001
N
iXiXiX
i

N
C
N
iXiX
N
iX 2)
2
()()
2
( 00
1







1
2/2)]
2
(1)(1)[
2
(


m
N
i
C

M
N
iXiX
m
N
iX mmm
)
2
()()( 11
m
N
iXiXiX mmm
(8.17)
(8.16)
Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 250

Phần xây dựng công thức tổng quát trong phép biến đổi nhanh Fourier đợc
trình
bày khá chi tiết ở trên chúng ta có thể xem lại phần này để hiểu hơn về công thức
tổng quát
cho một khối biến đổi nhanh Cosin.
Thuật toán biến đổi nhanh Cosin có thể mô tả bằng các bớc sau:
Bớc 1: Tính dãy hệ số C
j

i
.
Xác định số tầng M = log
2
N.
Tầng hiện thời m=1.
Bớc 2: Nếu m M thực hiện bớc 3. Nếu không kết thúc.
(Cha hết các tầng)
Bớc 3: Khối hiện thời k = 0.
Bớc 4: Nếu k < 2
m-1
Thực hiện bớc 5. Nếu không thực hiện bớc 6.
(Cha hết các khối trong một tầng)
Bớc 5: Tính toán X
m
(i) trong khối theo công thức tổng quát (8.16), (8.17).
Tăng k lên 1. Quay về bớc 4.
(Chuyển đến khối tiếp theo)
Bớc 6: Tăng m lên 1. Quay về bớc 2
(Chuyển đến tầng tiếp theo)
Một số vấn đề lu ý khi cài đặt thuật toán biến đổi Cosin nhanh
Khác với biến đổi Fourier nhanh, trong biến đổi Cosin, x(n) không phải đầu vào
trực tiếp và X(k) không phải là đầu ra trực tiếp. ở đầu vào, x'(n) chỉ là cách sắp xếp
lại x(n). Chúng ta biết rằng tại mỗi tầng, đối với mỗi khối:

)12()12()12(






i
X
i
X
i
X

Nên ở đầu ra, sau khi tính đợc X
M
(n) chúng ta phải thực hiện việc trừ truy hồi từ tầng
M về tầng 1 sau đó hoán vị lại theo thứ tự đảo bit mới thu đợc hệ số biến đổi X(k)
cần tính.
Bài toán sắp xếp lại theo thứ tự đảo bit đã đề cập trong phần biến đổi Fourier.
Bài toán trừ truy hồi cài đặt khá đơn giản.
Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 251

Dãy hệ số C
j
i
đợc tính trớc một lần. Trong các ứng dụng mà số điểm tính
FCT không đổi hoặc chỉ nhận một số giá trị cụ thể, ngời ta thờng tính trớc C
j
i


ghi ra file. Khi thực hiện biến đổi thì đọc từ file để lấy thông tin này. Trong ứng dụng
của chúng ta, ta tính trơc C
j
i


lu vào một mảng. Phép biến đổi sẽ truy cập bảng
này để lấy hệ số cần thiết.
Phép biến đổi Cosin ngợc
Phép biến đổi Cosin ngợc đợc định nghĩa bằng công thức:

(8.18)
Với










00
0
2
1
kkhi
kkhi

k


Phép biến đổi Cosin ngợc sẽ đợc thực hiện theo chiều ngợc lại với quy trình
đã iến hành trong phép biến đổi nhanh. Tuy nhiên, công việc này không đợc thuận
lợi nh phép biến đổi FFT ngợc. Từ X(k) chúng ta phải khôi phục lại X
M
(n) bằng
cách thực hiện các phép cộng truy hồi và phép hoán vị theo thứ tự đảo bit. Công thức
tổng quát cho mỗi khối biến đổi ngợc đợc xây dựng dựa trên công thức tổng quát
trong biến đổi xuôi:
Với
mmm
NN
k
N
ki
2
2
, ,
2
11


, trong đó k = 0,1, ,2
m
-1

Phép biến đổi ngợc phải cài đặt riêng. Tuy vậy, t tởng chính của hai bài
toán xuôi và ngợc về cơ bản giống nhau. Đầu ra của phép biến đổi ngợc sẽ là x'(n).

Muốn thu đợc x(n) ta phải đảo lại vị trí.
i
m
N
C
m
N
iXiX
m
N
iX
mmm
1
2/
2
1
)
2
()(
2
1
)
2
(
1



i
m

N
C
m
N
iXiXiX
mmm
1
2/
2
1
)
2
()(
2
1
)(
1



(8.19)

(8.20)





1
0

2
)12(
)()(
N
k
N
nk
Cos
k
kXnx

Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 252

8.3.3.2 Phép biến đổi Cosin rời rạc hai chiều
Phép biến đổi Cosin rời rạc hai chiều đợc định nghĩa bởi:
(8.21)
Trong đó, 0
1

k

khi k
1
= 0 và

2
1
1

k

khi k
1
= 1,2, ,N
1
-1
0
2

k

khi k
2
= 0 và
2
1
2

k

khi k
2
= 1,2, ,N
2
-1

Phép biến đổi ngợc đợc định nghĩa bởi công thức:
(8.22)
21
,
kk

nhận
các giá trị nh trong công thức biến đổi xuôi.
Để nâng cao tốc độ biến đổi ngời ta đã phát triển các giải thuật biến đổi nhanh
Cosin hai chiều. Cách làm phổ biến nhất là tận dụng phép biến đổi nhanh Cosin một
chiều. Ta biến đổi công thức (2.21) về dạng:
Đặt: (8.23)

Công thức (8.23) trở thành:
(8.25)
Công thức (8.24) là phép biến đổi Cosin rời rạc một chiều của x(n
1
,n
2
), trong đó
n
2
là biến số, còn n
1
đóng vai trò là tham số thu đợc kết quả trung gian X'(n
1
,k
2
).
Công thức (8.25) là phép biến đổi Cosin rời rạc của X'(n

1
,k
2
) với n
1
là biến số còn k
2

là tham số. Đến đây t tởng của thuật toán đã rõ ràng. Khi biến đổi nhanh Cosin hai








1
0
1
0
2
)12(
2
)12(
),(
4
),(
1
1

2
2
22
1
11
21
21
21
21
2
N
n
N
n
N
kn
Cos
N
kn
Cosnnx
NN
kkX
kk

2
22
1
11
1
1

2
2
221
2
)12(
2
)12(
21
1
0
1
0
),
1
(),(
N
kn
Cos
N
kn
Cos
kk
N
k
N
k
kkXnnx










1
11
1
1 2
2
22
21
2
2
1
1
21
2
)12(
1
0
1
0
2
)12(
),(
2
2
),(

2
N
kn
Cos
N
n
N
n
N
kn
Cosnnx
NN
k
kkX



















1
11
1
1
21
1
1
21
2
)12(
.
1
0
),('
2
),(
N
kn
Cos
n
knX
N
kkX
N
k












12
02
2
22
21
2
2
21
2
)12(
),(
2
),('
N
n
N
kn
Cosnnx
N
knX

(8.24)

Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 253

chiều của một ma trận ảnh, ta sẽ tiến hành biến đổi nhanh một chiều trên các điểm
ảnh theo hàng, sau đó đem biến đổi nhanh một chiều theo cột của kết quả vừa thu
đợc.
Biến đổi nhanh Cosin ngợc hai chiều cũng đợc xây dựng dựa trên kết quả
phép biến đổi nhanh Cosin ngợc một chiều. Từ công thức (8.22) ta biểu diễn lại nh
sau:

(8.26)
Đặt:

(8.27)
Khi đó công thức (8.26) sẽ trở thành:
(8.28)
Công thức (8.27) là phép biến đổi Cosin ngợc rời rạc một chiều của X(k
1
,k
2
),
trong đó k
2
là biến số, còn k
1

đóng vai trò là tham số thu đợc kết quả trung gian
x'(k
1
,n
2
). Công thức (8.28) là phép biến đổi Cosin ngợc rời rạc của x'(k
1
,n
2
) với k
1

biến số còn n
2
là tham số. Nh vậy, muốn khôi phục lại ảnh ban đầu từ ma trận hệ số biến đổi chúng
ta sẽ biến đổi nhanh Cosin ngợc rời rạc một chiều các hệ số theo hàng, sau đó đem
biến đổi nhanh Cosin rời rạc một chiều theo cột các kết quả trung gian vừa tính đợc.
8.3.3.3 Biến đổi Cosin và chuẩn nén JPEG
JPEG là viết tắt của Joint Photographic Expert Group ( nhóm các chuyên gia
phát triển chuẩn ảnh này). Chuẩn JPEG đợc công nhận là chuẩn ảnh quốc tế năm
1
11
1
1
1
2
22
2
2
212

2
)12(
1
0
2
)12(
1
0
),(),(
21
N
kn
Cos
N
k
N
kn
Cos
N
k
kkXnnx
kk

















2
22
12
02
22121
2
)12(
),(),('
N
kn
CoskkXnkx
N
k
k







1

1
1
1
2
)12(
.),('),(
11
1
0
2121
N
kn
Cosnkxnnx
k
N
k






Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 254


1990 phục vụ các ứng dụng truyền ảnh cho các lĩnh vực nh y học, khoa học kĩ thuât,
ảnh nghệ thuật
Chuẩn JPEG đợc sử dụng để mã hoá ảnh đa mức xám, ảnh màu. Nó không
cho kết quả ổn định lắm với ảnh đen trắng. Chuẩn JPEG cung cấp giải thuật cho cả
hai loại nén là nén không mất mát thông tin và nén mất mát thông tin. Trong phần
dới đây, chúng tôi trình bày chi tiết về một trong các dạng nén biến đổi chấp nhận
mất mát

Hình 8.5 Biến đổi Cosin của ảnh (trái) và biến đổi ngợc (ảnh gốc - phải)

thông tin dùng biến đổi Cosin của chuẩn JPEG: Biến đổi Cosin tuần tự (Sequential
DTC-Based). Biến đổi Cosin tuần tự là kĩ thuật đơn giản nhất nhng đợc dùng phổ
biến nhất và nó đáp ứng đợc hầu hết các đặc tính cần thiết cho phần lớn các ứng
dụng.
Mã hoá JPEG bao gồm nhiều công đoạn nh đã nêu trong 8.3.3.1. Sơ đồ thuật toán
nén và

Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 255

giải nén đợc mô tả nh dới đây.









Quá trình giải nén sẽ đợc làm ngợc lại, ngời ta giải mã từng phần ảnh nén
tơng ứng với phơng pháp nén đã sử dụng trong phần nén nhờ các thông tin liên
quan ghi trong phần header của file nén. Kết quả thu đợc là hệ số đã lợng tử. Các
hệ số này đợc khôi phục về giá trị trớc khi lợng tử hoá bằng bộ tơng tự hoá. Tiếp
đó đem biến đổi Cosin ngợc ta đợc ảnh ban đầu với độ trung thực nhất định.













Bảng mã và bảng lợng tử trong sơ đồ giải nén đợc dựng lên nhờ những thông
tin ghi trong phần cấu trúc đầu tệp (Header) của tệp ảnh nén. Quá trình nén chịu trách
ảnh
gốc
P
h
â
n


k
h

i

8x8


8x8


8x8

Lợng
tử hoá
Bảng
lợng
tử



hoá

Bảng

ảnh
nén
DCT
ảnh

Giải
nén

Tơng
tự hoá
Bảng
lợng
tử

Giải mã

Bảng

ảnh
nén
DCT
ngợc
Khối 8x8
Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 256

nhiệm tạo ra và ghi lại những thông tin này. Phần tiếp theo sẽ phân tích tác dụng của
từng khối trong sơ đồ.
A. Phân khối
Chuẩn nén JPEG phân ảnh ra các khối 8x8. Công đoạn biến đổi nhanh Cosin

hai chiều cho các khối 8x8 tỏ ra hiệu quả hơn. Biến đổi Cosin cho các khối có cùng
kích cỡ có thể giảm đợc một phần các tính toán chung nh việc tính hệ số C
j
i
. Khi
n=8 chúng ta chỉ cần tính hệ số C
j
i
cho 3 tầng(8= 2
3
), số các hệ số là: 4 + 2 + 1 = 7
Nếu với một ảnh 1024 x 1024, phép biến đổi nhanh Cosin một chiều theo hàng
ngang hoặc hàng dọc ta phải qua 10 tầng (1024 = 2
10
). Số các hệ số C
j
i
là : 512 +
256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 1021. Thời gian tính các hệ số C
j
i
với toàn
bộ ảnh 1024x1024 lớn gấp 150 lần so với thời gian tính toán các hệ số này cho các
khối.
Biến đổi Cosin đối với các khối có kích thớc nhỏ sẽ làm tăng độ chính xác khi
tính toán với số dấu phẩy tĩnh, giảm thiểu sai số do làm tròn sinh ra.
Do các điểm ảnh hàng xóm có độ tơng quan cao hơn, do đó phép biến đổi
Cosin cho từng khối nhỏ sẽ tập trung năng lợng hơn vào một số ít các hệ số biến đổi.
Việc loại bớt một số hệ số năng lợng thấp trong các khối chỉ tạo ra mất mát thông tin
cục bộ giúp nâng cao chất lợng ảnh.

ảnh sẽ đợc chia làm B khối với:

B
N
B
M
l
N
k
M
B












''

Các khối đợc xác định bởi bộ số (m,n) với m = [0 M
B
-1] và n = [0 N
B
-1], ở

đây m chỉ thứ tự của khối theo chiều rộng, n chỉ thứ tự của khối theo chiều dài. Phân
khối thực chất là xác định tơng quan giữa toạ độ riêng trong khối với toạ độ thực
của điểm ảnh trong ảnh ban đầu. Nếu ảnh ban đầu ký hiệu Image[i,j] thì ma trận biểu
diễn khối (m,n) là x[u,v]đợc tính:


vnlumkagevux ,Im],[

Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 257

B - Biến đổi
Biến đổi là một công đoạn lớn trong các phơng pháp nén sử dụng phép biến
đổi.
Nhiệm vụ của công đoạn biến đổi là tập trung năng lợng vào một số ít các hệ số biến
đổi.
Công thức biến đổi cho mỗi khối là:
(8.29)
Trong đó
)80(
0
0
2
1
1

1
1








k
k
khi
khi
k


)80(
0
0
2
1
2
2
2









k
k
khi
khi
k


Thuật toán biến đổi nhanh Cosin hai chiều cho mỗi khối trong trờng hợp này
sẽ bao gồm 16 phép biến đổi nhanh Cosin một chiều. Đầu tiên, ngời ta biến đổi
nhanh Cosin một chiều cho các dãy điểm ảnh trên mỗi hàng. Lần lợt thực hiện cho 8
hàng. Sau đó đem biến đổi nhanh Cosin một chiều theo từng cột của ma trận vừa thu
đợc sau 8 phép biến đổi trên. Cũng lần lợt thực hiện cho 8 cột. Ma trận cuối cùng sẽ
là ma trận hệ số biến đổi của khối tơng ứng. Giải thuật biến đổi nhanh đợc mô tả
nh hình sau:









16
)12(
16
)12(

),
7
0
7
0
(
4
),(
2211
21
1 2
21
21






kn
Cos
kn
Cosnn
n n
xkkX
kk






Đ



o

b

í

t
x'(0)
x'(1)
x'(2)
x'(3)
x'(4)
x'(5)
x'(6)
x'(7)
X(0)
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)
X(7)
0.
5


0.
5

0.
5

-
1

-
1

-
1

-
1

-
1

4
C
4
C
4
C
4
C

0
8
2C
1
8
2C
0
8
2C
1
8
2C
0
16
2C
1
16
2C
2
16
2C
3
16
2C
-
1

-
1


-
1

-
1

-
1

-
1

-
1

-
1

-
1

-
1

-
1

-
1


Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 258






Trong sơ đồ giải nén ta phải dùng phép biến đổi Cosin ngợc. Công thức biến
đổi ngợc cho khối 8x8:
(8.30)
Trong đó
)80(
0
0
2
1
1
1
1









k
k
khi
khi
k



)80(
0
0
2
1
2
2
2








k
k
khi

khi
k


Sơ đồ biến đổi ngợc nhanh đợc biểu diễn nh sau:














16
)12(
16
)12(
),
7
0
7
0
(
4

),(
2211
21
1
2
21
21






kn
Cos
kn
Coskn
k
k
kXnnx


Đ



o

b


í

t
x'(1)
x'(2)

x'(3)

x'(4)

x'(5)

x'(6)
x'(7)

X(0)
X(1)
X(2)
X(4)
X(5)
X(6)
X(7)
0.5

0.5
0.5
0.5

0.5


0.5

0.5

X(3)
x'(0)

0.5
0.5

0.5

0.5
0
4
2
1
C
0
4
2
1
C
0
4
2
1
C
0
4

2
1
C
0
8
4
1
C
1
8
4
1
C
1
8
4
1
C
0
8
4
1
C
0.5
0
16
1
C
1
16

1
C
2
16
1
C
3
16
1
C
-
1

-
1

-
1

-
1

-
1

-
1

-
1


-
1

-
1

-
1

-
1

-
1

Chơng Tám: nén dữ liệu ảnh





Nhập môn xử lý ảnh số - ĐHBK Hà nội 259


Có thể dễ dàng quan sát đợc độ nhạt rất nhanh của ảnh từ góc trên bên trái
xuống góc dới bên phải. Năng lợng tập trung nhất vào điểm (0,0) của ma trận hệ số
biến đổi.

Hình 8.6 Biến đổi FFT xuôi(trái) và ngợc phải


C- Lợng tử hoá
Khối lợng tử hoá trong sơ đồ nén đóng vai trò quan trọng và quyết định tỉ lệ
nén của chuẩn nén JPEG. Đầu vào của khối lợng tử hoá là các ma trận hệ số biến đổi
Cosin của các khối điểm ảnh. Nguyên tắc lợng hoá đã trình bày trong 2.2.2.
Để giảm số bộ lợng tử, ngời ta tìm cách quy các hệ số ở các khối về cùng
một
khoảng phân bố. Chuẩn nén JPEG chỉ sử dụng một bộ lợng tử hoá. Giả sử rằng các
hệ số
đều có hàm tính xác suất xuất hiện nh nhau. Chúng ta sẽ căn chỉnh lại hệ số y
j
bằng
phép gán :

j
jj
j
y
y





Với
j
là trung bình cộng của hệ số thứ j.

×