Cấu trỳc lớp trong luồng bit

Một phần của tài liệu Kỹ thuật nén ảnh số (Trang 99)

Ứng v i m t độ phõn gi i, s lượớ ộ ả ố ng lớp càng nhi u thỡ ch t l ng ảnh ề ấ ượ

giải mó càng tốt vỡ sai số lượng tử càng nhỏ (SNR càng cao).

Giả sử cú lớ đΛ p ỏnh nhón =1,2,… . M i l p t lệ vớλ Λ ỗ ớ ỷ i độ phõn gi i ả

và số lượng thành phần màu vỡ nú g m nh ng thành ph n riờng, ký hi u là ồ ữ ầ ệ

Cλl,c, ứng với mỗi độ phõn giải l=1,2,…,L và t ng thành phần ừ ảnh c. Từng

thành phần l p Cớ λl,c m ở đầu bằng khối th (tag-block), tiếp theo là cỏc byte của khối mó trong lớp.

Khối thẻ xỏc định những khối mó từ từng b ng con trong độ phõn gi i ă ả

tương ứng nằm trong thành phần lớp đú. Nú cũng chỉ ra những đ ểm cắt của i khối mó, nhờ đ ú bộ giải mó xỏc định tập cỏc bước mó húa để giải mó ảnh.

Ngồi ra, khối thẻ cũn mang thụng tin về số lượng byte mó húa được gử đi i trong từng khối mó của lớp, số lượng mặt ph ng bit củ ừẳ a t ng kh i mó l n đầu ố ầ

xuất hiện trong lớp.

Xem xột luồng bit là một lớp duy nhất biểu di n mễ ột ảnh đơn sắc (chỉ

cú một thành phần màu). Cỏc thành phần l p xuớ ất hiện theo thứ tự độ phõn giải tăng dần như hỡnh 4.12. Như vậy, lu ng bit cú tớnh ch t: truy nh p ng u ồ ấ ậ ẫ

nhiờn, phõn tỏch độ phõn giải, lũy tiến độ phõn giải.

Hỡnh 4.12:Tổ chức luồng bit với m t lộ ớp duy nhất

Cú hai kiểu tổ chức cỏc thành phần với nhiề ớp. Kiểu thứ nhất, minh u l họa trờn hỡnh 4.13 ứng với luồng bit lũy tiến độ phõn giải, do đú mềm dẻo về

Hỡnh 4.13:Tổ chức luồng bit lũy tiến độ phõn gi i a lớp ả đ

Hỡnh 4.14:Tổ chức luồng bit lũy tiến SNR đa lớp

Để tổ chức hiệu qu những khối thẻ ởả trờn, c n sử ụng cấu trỳc cõy thẻ ầ d (tag tree). Đõy là một cấu trỳc cõy đặc biệt biễu diễn thụng tin khối thẻ rất

hiệu quả, khai thỏc độ dư th a gi a cỏc kh i c a m t b ng con và gi a cỏc ừ ữ ố ủ ộ ă ữ

c)Mó húa cõy thẻ Mó húa cõy thẻ ơ ở c s :

Một cõy thẻ (Tag Tree) là cỏch để biểu diễn một mảng hai chiều cỏc giỏ trị nguyờn khụng õm theo cấu trỳc phõn cấp.

Xem xột mảng cỏc số nguyờn với kớch cỡ 6x3 nh hỡnh 4.15a. Hỡnh ư

4.15 bặd là cỏc mức phõn giải giảm dần của mảng hai chi u này. ề

Hỡnh 4.15: Vớ dụ ề ấ v c u trỳc dữ liệu cõy thẻ

Cỏc phần tử trong mảng ở mức n được t o thành b ng cỏch l a ch n ạ ằ ự ọ

giỏ trị nh nhỏ ất của từng mảng con 2x2 từ mảng hai chi u mứề ở c n+1. Vớ d , ụ

cỏc phần tử trong mảng ở mức 2 (hỡnh 4.15.b) được t o ra t mảạ ừ ng mức 3 ở

Tương tự, phần tử trong mảng mức 1 được tạo ra từ mảng mức 2:

Hỡnh 4.16 là biểu diễn rỳt gọn của hỡnh 4.15 trong cấu trỳc dữ liệu cõy.

Hỡnh 4.16: Cấu trỳc cõy thẻ

Cỏc node lỏ thể hiện cỏc phầ ử mản t ng hai chi u g c (hỡnh 4.15.a), cỏc ề ố (adsbygoogle = window.adsbygoogle || []).push({});

node cha biểu diễn cỏc phần tử của m ng rỳt g n cỏc m c khỏc (t hỡnh ả ọ ở ứ ừ

4.15.b tới 4.15.d). Ký hiệu qi(x,y) là giỏ trị ạ t i node thứ x+1 từ bờn trỏi và y+1 t ừ đỉnh của mảng hai chiều ở mức thứ i. Mức 0 chỉ chứa node gốc.

Thủ tục mó húa như sau: Mỗi node được mó húa thành d số 0 theo sau

bởi một số 1, với d là chờnh lệch giữa node hiện tại và node cha tương ứng.

Với node gốc, node cha được giả sử là cú giỏ trị 0. Tuy nhiờn node ở mức cao hơn khụng thể được mó húa tận tới khi node cha ở mức thấp hơn được mó húa

hồn tồn. Hàng đầu tiờn của bảng dưới đõy minh họa một phần của luồng bit

tạo ra từ vớ dụ hỡnh 4.15, hàng thứ 2 của bảng chỉ ra node mó húa tương ứng.

Bảng 4.3:Cấu trỳc luồng bit mó húa cõy thẻ

Vớ dụ mó húa cho số tại q3(0,0) sẽ là 01111. Hai bit đầu tiờn 01 chỉ ra giỏ trị của node g c t i qố ạ 0(0,0) là 1, bit thứ 3 là 1 nghĩa là giỏ trị của node q1(0,0) c ng là 1, bit thũ ứ 4 tương ứng chỉ ra giỏ trị của q2(0,0) là 1, bit cuối cựng chỉ ra giỏ trị của node ớch q3(0,0) cũng là 1. Để mó húa node tiếp theo đ

q3(1,0), mó sẽ là 001. Bởi vỡ tất cả cỏc node cha của q3(1,0) đều đó được mó húa (trong bước mó húa q3(0,0) trước đú, hai bit đầu tiờn (00) chỉ ra rằng phần chờnh lệch giữa node hiện tại q3(0,0) và node cha q2(0,0) là 2. Tiến trỡnh này tiếp tục cho toàn bộ ả m ng hai chiều theo thứ ự t quột.

Mó húa khối thẻ:

Nhắc lại rằng thành phần lớp Cλl,c biểu diễn thụng tin từ những khối mó

của những băng con tại mức phõn giải l, từ thành phần ảnh c, đang nằm trong lớp λ. Thành phần này bắt đầu bằng khối thẻ, là một chuỗi bit mó chỉ ra những khối mó nào thuộc lớp, số mặt ph ng bit, i m c t và s lượng byte ẳ đ ể ắ ố được gử đ ủ ừi i c a t ng kh i mó trong ú. ố đ

Cõy thẻ được sử dụng cho t ng b ng con ừ ă để bi u di n hi u quả lớp ể ễ ệ

trong đú một khối mó xuất hiện lần đầu tiờn. Cỏc nỳt lỏ của cõy thẻ tương ng ứ

với cỏc khối mó trong băng. Đại lượng ql[m,n] ứng với những nỳt lỏ này biểu diễn chỉ s cố ủa lớp mà khối mó xuất hiện lầ đầu. n

Thụng tin này được mó húa theo một trong hai cỏch khỏc nhau, tựy

thuộc vào việc khối mó đó nằm trong lớp trước hay chưa. Nếu nú đó nằm

trong lớp trước đú, tức là λ[m,n]< , chỉ cầλ n g i 1 bit duy nh t đểử ấ thụng bỏo rằng thụng tin của khối mó cú nằm trong lớp hi n th i hay khụng. N u lu ng ệ ờ ế ồ

bit chưa nằm trong lớp trước đú, thủ tục mó húa cõy th được ti n hành. Th ẻ ế ủ

tục này tạo ra cỏc bit cần thiết để kiểm tra ql[m,n]≥λ (cụ thể là λ[m,n]≥λ).

Cõy thẻ mó húa thụng tin này hiệu quả bởi vỡ cỏc kh i mó lõn c n cú ố ậ

khuynh hướng xuất hiện trong cỏc lớp gần nhau.

Số mặt phẳng bit:

Thụng tin về độ sõu bit tố đi a tương ứng v i số lượng mặớ t ph ng bit ẳ

trong một từ mó sẽ được mó húa b ng một cõy thẻ thứ hai. ằ

Thụng tin về đ ể i m cắt:

Với m i kh i mó Bỗ ố i nằm trong l p, c n ch rừ i m c t m i cho lu ng ớ ầ ỉ đ ể ắ ớ ồ

bit của khối mó. Ký hiệu nimin là giỏ trị đ ể i m cắt tối thiểu. Với mỗi khối mó trong lớp, người ta chỉ ra độ lệch gi a i m c t m i và giỏ tr t i thi u, c th ữ đ ể ắ ớ ị ố ể ụ ể

là ni- nimin phải nằm trong khoảng 0≤ ni-nimin≤4(P-1). Độ lệch này được mó (adsbygoogle = window.adsbygoogle || []).push({});

húa sử ụ d ng sơ đồ mó húa tương tự mó húa Huffman, mó húa giỏ trị thấp (xỏc

suất cao) với số lượng bit ớt.

Thụng tin này chỉ ra s lượng byte được gử đ ủ ừố i i c a t ng kh i mó trong ố

thành phần lớp. Độ dài từ mó được mó húa thành mó hai phần, phần 1 chỉ thị

độ dài tương ứng của ph n 2. ầ

4.5.Kết luận chương 4

Chương 4 đó tập trung phõn tớch tiờu chuẩn nộn ảnh JPEG 2000. Với

JPEG2000 kỹ thuật xử lý hỡnh nh sẽ ả đạt được những kết quả rất ngo n m c ạ ụ

vỡ cú thể nộn nhỏ từ 100-200 l n mà hỡnh nh khụng sai sút bao nhiờu so v i ầ ả ớ

hỡnh ảnh gốc.

Đ ểi m khỏc bi t để kỹệ thu t JPEG2000 vượt tr i h n h n so v i JPEG ậ ộ ơ ẳ ớ đú là JPEG2000 s dụử ng k thu t nộn d a trờn bi n ỹ ậ ự ế đổi wavelet và mó húa

EBCOT, giỳp tạo nờn hiệu năng nộn tuyệt vời. K thuật mó húa theo từng ỹ

khối, theo từng khu vực ưu tiờn của hỡnh ảnh (ROI) được ỏp dụng cũng là một tiến bộ đ ỏng kể trong thuật toỏn mó húa JPEG2000.

Được ISO cụng nhận c ng cú ngh a là trong m t t ng lai gần ũ ĩ ộ ươ

JPEG2000 sẽ được thương mại húa thụng qua nền cụng nghiệp kỹ thuật số mà lợi ớch mang lại phự hợp nhất đú là chẩn đoỏn hỡnh ảnh từ xa trong Y khoa, hỡnh ảnh trờn Internet, thậm chớ cú thể là phim ảnh kỹ thuật số thụng qua định dạng Motion JPEG2000. Chắc chắn cỏc thiết bị di động như mỏy tớnh cầm tay và đ ệi n thoại di động cũng sẽ khụng bỏ qua chuẩn nộn hỡnh ảnh này…

CHƯƠNG 5: ĐÁNH GIÁ THỰC NGHIỆM CÁC THUẬT TOÁN NẫN

5.1.Thuật toỏn EZW.

5.1.1.Giới thiệu chương trỡnh

a)Giao diện chương trỡnh

Chương trỡnh nộn ảnh theo thuật toỏn EZW được thực hiện trờn phần

mềm Matlab 7.6 cú giao diện như sau:

Hỡnh 5.1: Giao diện chương trỡnh nộn EZW

Phần cấu hỡnh thụng số (Parameter configuration) cho phộp lựa chọn kiểu bộ lọc wavelet sử dụng và tỷ ệ nộn l

Phần kết quả (Result) hiển thị ế k t quả nộn với cỏc thụng số đ ỏnh giỏ là: tỷ lệ bit/pixel (bpp) và tỷ lệ tớn hiệu trờn nhiễu đỉnh (PSNR).

b)Cỏc hàm sử ụ d ng trong chương trỡnh

Phần mó nguồn của cỏc hàm được trỡnh bày trong phần phụ lục. Ch c ứ

năn của cỏc hàm sử dụn trong chương trỡnh cụ thể như sau:

Phần mó húa:

ắ Hàm function_DWT thực hi n bi n đổi wavelet tớn hiệu đưa vào: ệ ế

 Tham số đầu: ma trậ ản nh, mức biến đổi wavelet, giỏ tr cỏc bộ lọc ị (adsbygoogle = window.adsbygoogle || []).push({});

phõn giải thụng thấp và thụng cao

 Tham số đầu ra: m ng cỏc h s wavelet bi n đổi ả ệ ố ế

ắ Hàm function_ezw_encode thực hiện mó húa EZW:

 Tham số đầu vào: cỏc h sốệ wavelet, ngưỡng EZW (đạt t i ngưỡng ớ

này, tiến trỡnh mó húa EZW sẽ ế k t thỳc)

 Tham số đầu ra: ma tr n l u tr cỏc giỏ tr thu ậ ư ữ ị được sau cỏc bước

Significance và Refinement.

ắ Hàm function_huffman_encode thực hi n mó húa Huffman: ệ

 Tham số đầu vào: ma tr n l u tr cỏc giỏ tr Significance và ậ ư ữ ị

Refinement.

 Tham số đầu ra: lu ng bit nộn ồ

Phần giải mó:

ắ Hàm function_huffman_decode thực hi n gi i mó lu ng bit nh n được: ệ ả ồ ậ

 Tham số đầu vào: lu ng bit nh n được, s bit c n gi i mó. ồ ậ ố ầ ả  Tham số đầu ra: ma tr n Significance và Refinement. ậ

 Tham số đầu vào: kớch c nh, giỏ tr ngưỡng kh i t o ban đầu, ma ỡ ả ị ở ạ

trận Significance và Refinement

 Tham số đầu ra: cỏc h s wavelet được gi i mó ệ ố ả

ắ Hàm function_InvDWT thực hi n bi n đổi wavelet r i r c ngược: ệ ế ờ ạ

 Tham số đầu vào: cỏc h s wavelet, m c phõn gi i, cỏc h s b lọc ệ ố ứ ả ệ ố ộ

tổng hợp thụng thấp và thụng cao.

 Tham số đầu ra: ma tr n nh gi i mó. ậ ả ả

5.1.2.Kết quả tớnh toỏn

Thử nghiệm được tiến hành vớ ải nh bitmap Lena 8 bit kớch thước 256x256. Thuật toỏn nộn EZW sử dụng a phõn gi i wavelet v i m c phõn đ ả ớ ứ

giải là log2256 = 8. Ngưỡng EZW cho cỏc hệ số wavelet là 20. Cỏc b lọộ c s ử

dụng là: haar, db4, db7, bior 6.8. Cỏc tỷ lệ nộn CR (Compression Ratio) s ử

dụng là 5, 10, 20, 40, 80.

Hỡnh 5.2: Chất lượng ảnh với nộn EZW sử ụ d ng Haar

Bảng k t qu th c nghi m v i b l c Haar nh sau: ế ả ự ệ ớ ộ ọ ư

Tỷ lệ nộn CR Tỷ số PSNR (dB) 5 26.1821 10 25.1285 20 25.128 40 22.9023 80 20.3207 Bảng 5.1:Thụng số nộn EZW sử dụng bộ lọc Haar b)Với bộ lọc db4:

Hỡnh 5.3: Chất lượng ảnh với nộn EZW sử ụ d ng Db4 (adsbygoogle = window.adsbygoogle || []).push({});

Bảng kết quả thực nghiệm với bộ lọc Db4 như sau:

Tỷ lệ nộn CR Tỷ số PSNR (dB) 5 27.6198 10 27.619 20 26.2339 40 23.7249 80 21.0853 Bảng 5.2:Thụng số nộn EZW sử dụng bộ lọc Db4 c)Với bộ lọc db7:

Hỡnh 5.4: Chất lượng ảnh với nộn EZW sử ụ d ng Db7

Bảng kết quả thực nghiệm với bộ lọc Db7 như sau:

Tỷ lệ nộn CR Tỷ số PSNR (dB) 5 27.4572 10 27.457 20 26.1853 40 23.4492 80 20.94 Bảng 5.3:Thụng số nộn EZW sử dụng bộ lọc Db7 d)Với bộ lọc bior6.8:

Hỡnh 5.5: Chất lượng ảnh với nộn EZW sử ụ d ng Bior6.8

Bảng kết quả thực nghiệm với bộ lọc Bior6.8 như sau:

Tỷ lệ nộn CR Tỷ số PSNR (dB) 5 27.5262 10 27.526 20 26.347 40 23.7899 80 21.4336 Bảng 5.4:Thụng số nộn EZW sử dụng bộ lọc Bior6.8

5.1.3.Nhận xột

Hỡnh 5.6: Đồ thị ổ t ng hợp PSNR vs CR với thuật toỏn EZW

Từ đồ th hỡnh 5.6, cú th th y v i cựng t lệị ể ấ ớ ỷ nộn, b lọộ c Haar cho ch t ấ

lượng ảnh kộm nhất. Với cỏc bộ lọc khỏc, thuật toỏn EZW cho chất lượng gần như tương đương nhau. Sự sai khỏc nh do s dụả ử ng cỏc b lọc wavelet khỏc ộ

nhau là khụng đỏng kể.

Vớ ỷi t lệ nộn CR≤20, EZW cho ch t lượng nh tương ấ ả đối t t v i ố ớ

PSNR>25 dB. Khi tỷ lệ nộn cao (CR 30), ch t lượng nh suy gi m rừ r t, cú ≥ ấ ả ả ệ

thể nhận thấy dễ dàng bằng mắt thường.

5.2.Thuật toỏn SPIHT

5.2.1.Giới thiệu chương trỡnh

Hỡnh 5.7: Giao diện chương trỡnh nộn SPIHT b)Cỏc hàm sử ụ d ng trong chương trỡnh: b)Cỏc hàm sử ụ d ng trong chương trỡnh:

Phần mó húa:

ắ Hàm function_DWT thực hi n bi n đổi wavelet tớn hiệu đưa vào: ệ ế

 Tham số đầu: ma trậ ản nh, mức biến đổi wavelet, giỏ tr cỏc bộ lọc ị

phõn giải thụng thấp và thụng cao

 Tham số đầu ra: m ng cỏc h s wavelet bi n đổi ả ệ ố ế ắ Hàm function_SPIHT_Encode thực hiện mó húa SPIHT:

 Tham số đầu: ma tr n nh, m c bi n đổi wavelet ậ ả ứ ế

 Tham số đầu ra: lu ng bit ó được mó húa ồ đ

Phần giải mó:

ắ Hàm function_SPIHT_decode thực hiện giải mó SPIHT:  Tham số đầu vào: lu ng bit được mó húa ồ

 Tham số đầu ra: cỏc h s wavelet được gi i mó ệ ố ả

ắ Hàm function_InvDWT thực hi n bi n đổi wavelet r i r c ngược: ệ ế ờ ạ (adsbygoogle = window.adsbygoogle || []).push({});

 Tham số đầu vào: cỏc h s wavelet, m c phõn gi i, cỏc h s b lọc ệ ố ứ ả ệ ố ộ

tổng hợp thụng thấp và thụng cao.

 Tham số đầu ra: ma tr n nh gi i mó. ậ ả ả

2.2.Kết quả tớnh toỏn

Thử nghiệm được tiến hành vớ ải nh bitmap Lena 8 bit kớch thước 256x256. Thuật toỏn nộn SPIHT sử dụng a phõn gi i wavelet v i m c phõn đ ả ớ ứ

giải là log2256 = 8. Cỏc bộ lọc s dụử ng là: haar, db4, db7, bior 6.8. Cỏc t lệ ỷ

nộn CR thực nghiệm là 5, 10, 20, 40, 80.

Thử nghiệm với SPIHT chưa sử dụng m t b mó húa entropy nào. ộ ộ

Trong khi thử nghiệm với EZW cần sử ụ d ng một bộ mó húa Huffman.

Hỡnh 5.8: Chất lượng ảnh với nộn SPIHT sử ụ d ng Haar

Bảng kết quả thực nghiệm với bộ lọc Haar như sau: Tỷ lệ nộn CR Tỷ số PSNR (dB) 5 37.6533 10 31.8021 20 27.7189 40 24.9142 80 22.8258 Bảng 5.5:Thụng số nộn SPIHT sử dụng bộ lọc Haar b)Với bộ lọc db4:

Hỡnh 5.9: Chất lượng ảnh với nộn SPIHT sử ụ d ng Db4

Bảng kết quả thực nghiệm với bộ lọc Db4 như sau:

Tỷ lệ nộn CR Tỷ số PSNR (dB) 5 40.1411 10 34.1128 20 29.6605 40 26.6149 80 24.3111 Bảng 5.6:Thụng số nộn SPIHT sử dụng bộ lọc Db4 c)Với bộ lọc db7:

Hỡnh 5.10: Chất lượng ảnh với nộn SPIHT sử ụ d ng Db7

Bảng kết quả thực nghiệm với bộ lọc Db7 như sau:

Tỷ lệ nộn CR Tỷ số PSNR (dB) 5 40.0608 10 34.0087 20 29.5436 40 26.5420 80 24.2254 Bảng 5.7:Thụng số nộn SPIHT sử dụng bộ lọc Db7 d)Với bộ lọc bior6.8:

Hỡnh 5.11: Chất lượng ảnh với nộn SPIHT sử ụ d ng Bior6.8

Bảng kết quả thực nghiệm với bộ lọc Bior6.8 như sau: Tỷ lệ nộn CR Tỷ số PSNR (dB) 5 40.4758 10 34.7781 20 30.2427 40 26.9799 80 24.4305 Bảng 5.8:Thụng số nộn SPIHT sử dụng bộ lọc Bior6.8 5.2.3.Nhận xột

Từ đồ th hỡnh 5.12, cú th th y s dụị ể ấ ử ng b lọộ c Haar cho ch t lượng ấ

kộm nhất. Tuy nhiờn, nhỡn chung việc sử dụng cỏc b lọc wavelet khỏc nhau ộ

Vớ ỷi t lệ nộn CR<10, b ng m t thường h u nh khụng phõn bi t được ằ ắ ầ ư ệ

Một phần của tài liệu Kỹ thuật nén ảnh số (Trang 99)