Cỏc hệ số của băng lọc cho quỏ trỡnh nộn khụng tổn thất

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

Xử lý đường biờn ảnh

Tương tự nh phộp tớnh tớch ch p, cỏc m u ư ậ ẫ đầu vào b lọc được nhõn ộ

với hệ số bộ lọc và t ng h p l i ổ ợ ạ để thu được k t qu ế ả đầu ra. Do cỏc b lọc ộ

khụng nhõn quả, chỳng gõy ra tớnh rờ ạc tại đường biờn của khối và tại r o ra

đường viền. Để giảm tớnh r i r c này, cỏc m u ờ ạ ẫ đầu vào trước h t ế được m ở

rộng tuần hoàn về cả hai phớa trước khi ỏp dụng phộp lọc một chiều theo hàng và cột. Nhờ quỏ trỡnh mở ộ r ng, hiệ ứu ng đường viền sẽ ị b loại bỏ.

Vớ dụ 1: Xột tớn hiệu đầu vào cú độ dài h u hạn A B C D E F G H. Với ữ

bộ lọc FIR độ dài lẻ, tớn hiệu được mở rộng như sau:

Phương phỏp này gọi là mở rộng đối x ng toàn b mẫu WSS (whole

sample symmetric). Cỏc bộ lọc (9,7) và (5,3) c a JPEG 2000 Ph n I là cỏc b ủ ầ ộ

lọc độ dài lẻ, do đú quỏ trỡnh xử lý đường biờn sử dụng phương phỏp này.

Vớ dụ 2: Với bộ lọc FIR độ dài chẵn, tớn hiệu được mở rộng như sau:

Phương phỏp này gọi là mở rộng đối x ng n a m u HSS (Half sample

symmetric). Cỏc bộ lọc độ dài ch n ẵ được s dụử ng trong JPEG 2000 ph n II, ầ

do đú tiến trỡnh xử lý đường biờn thực hiện theo phương phỏp này.

b)Lượng tử hoỏ

Sau khi biến đổi DWT, t t cảấ cỏc băng con được lượng tử húa với phương thức nộn cú tổn thất thụng tin.

Lượng tử húa cỏc băng con DWT là một trong những nguồn chớnh gõy tổn thất thụng tin tại bộ mó húa. Lượng tử húa thành phần ảnh thụ sẽ giỳp tăng độ nộn nhưng do đú cũng làm giảm độ tin cậy khụi phục ảnh do mất mỏt thụng tin nhiều. Vỡ vậy, người ta khụng thực hiện l ng tượ ử húa trong phương

phỏp mó húa khụng tổn thất thụng tin.

Với tiờu chuẩn JPEG2000 Phần I, cỏc hệ số ế bi n đổi s được lượng t ẽ ử

hoỏ theo phộp lượng tử hoỏ vụ hướng. Bước lượng tử húa cú thể khỏc nhau

ứng v i b ng con khỏc nhau. Do ú, thụng tin v bướ ượớ ă đ ề c l ng tử ủ c a m i b ng ỗ ă

Bước lượng tử húa Δb cho băng con b được tớnh toỏn dựa trờn dải động của

băng con. Cụng thức lượng tử húa vụ hướng là:

Với yb(i,j) là hệ số DWT c a b ng con b và ủ ă Δb là kớch thước bước lượng tử húa của băng con b. Tất cả cỏc hệ số lượng tử húa qb(i,j) đều là

những giỏ trị nguyờn cú dấu.

Hỡnh 4.2: Lượng tử húa

Sau khi lượng tử húa, cỏc hệ số DWT ó lượng t đ ử được chuy n thành ể

dạng biểu diễn biờn độ cú dấu trước khi mó húa entropy.

c)Vựng mó húa đặc biệt ROI

Tớnh năng vựng mó húa đặc biệt ROI (Region Of Interest) là tớnh n ng ă độc đỏo c a tiờu chu n JPEG2000, cho phộp cỏc vựng khỏc nhau c a nh ủ ẩ ủ ả được mó húa với cỏc m c độ tin c y khỏc nhau. Cỏc vựng này cú th cú hỡnh ứ ậ ể (adsbygoogle = window.adsbygoogle || []).push({});

dạng bất kỳ và cú thể tỏch rời cỏc vựng khỏc.

Hỡnh 4.3 là một vớ dụ minh họ Ảa. nh tỏi tạo sau khi giải nộn được chỉ

ra ở hỡnh 4.3.a. Phần ROI ứng với vựng khoanh trũn. Hỡnh 4.3.b thể hiện sự sai khỏc giữ ảa nh gốc và ảnh được tỏi tạo.

Hỡnh 4.3: Ảnh tỏi tạo với vựng (a) và phần sai khỏc so với ảnh gốc (b)

Phương phỏp ROI trong tiờu chuẩn JPEG2000 gọi là MAXSHIFT, là sự mở rộng phương phỏp mó húa ROI trờn cơ sở tỷ lệ.

Hỡnh 4.4: Mặt nạ ROI (a) và tỷ ệ l cỏc hệ ố s ROI (b)

Trong quỏ trỡnh mó húa ROI tỷ lệ, m t m t n nh phõn ộ ặ ạ ị được t o ra ạ

hỡnh 4.4.a. Cỏc bit với hệ số wavelet trong m t ROI s được định thang t lệ ộ ẽ ỷ

tới mặt phẳng bit cao hơn so với mặt phẳng bit tương ứng với vựng khụng

phải ROI của ảnh. Đ ềi u này được minh họa trờn hỡnh 4.4.b.

Trong tiến trỡnh mó húa, cỏc m t phẳng bit ROI quan trọng nhất được ặ

mó húa và truyề đn i trước khi mó húa cỏc mặt phẳng bit của vựng khụng phải

là ROI. Kết quả là trong tiến trỡnh giải mó, cỏc mặt phẳng bit ROI sẽ được

giải mó trước so với vựng nề để tạo ra độ tin cậy cao. Tham số ỷn t lệ và thụng tin hỡnh dạng ROI cần thiế ẽ được truyề đt s n i cựng với luồng bit nộn. Phương

phỏp này được ỏp dụng trong JPEG2000 phần II.

Với JPEG 2000 Phần I, kỹ thuật MAXSHIFT thay thế cho phương phỏp tỷ lệ. K thu t này cho phộp m t vựng hỡnh d ng b t k ỹ ậ ộ ạ ấ ỳ được mó húa

ROI mà khụng cần yờu cầu phải gửi đi thụng tin về hỡnh dạng vựng ROI trong luồng bit nộn. Do đú khụng cần phải mó húa và giải mó hỡnh dạng.

Hỡnh 4.5: MAXSHIFT

MAXSHIFT xỏc định giỏ trị nh nhỏ ất (Vmin) trong vựng ROI và giỏ trị lớn nhất trong vựng nền trong miền wavelet. Sau đú thực hiện co dón tỷ lệ

miền ROI luụn lớn hơn hệ số lớn nh t trong mi n n n. Cỏc m t ph ng bit ấ ề ề ặ ẳ được mó húa theo thứ tự mặt phẳng bit quan trọng nhất MSB trước, mặt phẳng bit kộm quan trọng nhất LSB cuối cựng. Hỡnh 4.5 là m t vớ d minh ộ ụ

họa mặt phẳng LSB của ROI được dịch lờn trờn MSB của vựng nền.

Trong tiến trỡnh giải nộn, cỏc hệ số wavelet l n h n Vớ ơ min được xỏc định là cỏc hệ số ROI mà khụng c n bi t thụng tin v hỡnh d ng ho c m t n nh ầ ế ề ạ ặ ặ ạ ị

phõn. Cỏc hệ ố s ROI sau ú sẽ được dịch trở ề ịđ v v trớ gốc thực sự ủ c a nú.

d)Mó húa Entropy

Mó húa entropy thực hiện mó húa cỏc hệ số wavelet ó lượng t húa. đ ử

Mó húa entropy và hỡnh thành luồng bit nộn được chia thành hai lớp: Lớp 1 (Tier-1) và lớp 2 (Tier-2).

Trong mó húa lớp 1, từng băng con wavelet được chia thành tập cỏc

khối mó. Khối mó được phõn ró vào cỏc mặt phẳng p bit với p là số bit tương

ứng v i h số lớớ ệ n nh t trong kh i mó. Cỏc m t ph ng bit ấ ố ặ ẳ được mó húa theo

thứ tự từ mặt ph ng bit quan tr ng nh t MSB t i m t ph ng bit kộm quan ẳ ọ ấ ớ ặ ẳ (adsbygoogle = window.adsbygoogle || []).push({});

trọng nhất LSB.

Người ta sử dụng thu t toỏn EBCOT (embedded block coding with ậ

optimized truncation) để mó húa mặt phẳng bit nhằm khai thỏc tớnh đối xứng

và dư thừa trong và giữa cỏc mặt phẳng bit. EBCOT mó húa mặt phẳng bit

theo ba pha: Significant Propagation, Magnitude Refinement và Cleanup. Giỏ trị quyết định D tạo bởi EBCOT được mó húa sử ụ d ng biến thể của

mó húa số ọ h c nhị phõn là một bộ mó húa MQ-coder. Thụng tin ngữ cảnh CX tạo bởi EBCOT được sử dụng b i MQ-coder ở để i u ch nh kho ng cỏch và đ ề ỉ ả

tạo ra luồng mó nộn, giỳp tạo ra quỏ trỡnh thớch ứng nhanh trong MQ-coder và thu được luồng bit nộn hiệu quả.

4.3.3.Mó húa lớp 2 và tổ chức luồng bit

Sau khi mó húa lớp 1 tạo ra luồng bit nộn, mó húa lớp 2 tổ ch c lu ng ứ ồ

bit sao cho thụng tin chung của khối và lớp cho từng khối mó được biểu diễn

hiệu quả nhất. M t l pộ (layer) bao gồm nhiều bước mó húa mặt phẳng bit liờn tiếp từ cỏc khối mó của tất cả cỏc băng con trong một ụ. Thụng tin chung của khối bao gồm độ dài của từ mó nộn, độ sõu mặt phẳng bit và đ ểi m cắt giữa cỏc lớp.

Mó húa lớp 2 sử dụng mó húa cõy thẻ (Tag tree coding) để bi u di n ể ễ

túm lược thụng tin này mà khụng làm phỏt sinh nhiều thụng tin dư thừa.

4.4.Thuật toỏn mó húa trong JPEG 2000

4.4.1.Mó húa lớp 1

Sơ đồ mó húa l p 1 nh sau: ớ ư

Hỡnh 4.6: Sơ đồ mó húa JPEG2000 Lớp 1 a)Khối tạo thụng tin ngữ cảnh

Phần này thực hiện mó húa mặt phẳng bit phõn đ ạo n nh m t o ra thụng ằ ạ

tin ngữ cảnh (context). Để hiểu rừ c ch mó húa này, c n định ngh a m t s ơ ế ầ ĩ ộ ố

khỏi niệm.

Mảng biờn độ v là một m ng hai chi u cú kớch c bằả ề ỡ ng kớch c kh i ỡ ố

mó. Mỗi phần tử v[m,n] tương ứng là độ lớn c a h sốủ ệ wavelet w[m,n] c a ủ

Ký hiệu vP[m,n] là bit tương ứng v i v[m,n] và thu c m t ph ng P c a ớ ộ ặ ẳ ủ

từ mó. Núi cỏch khỏc, nú là bit thứ P của v[m,n]

Biến trạng thỏi σ[m,n] =1 chỉ ị th bit khỏc khụng đầu tiờn c a v[m,n] ó ủ đ được mó húa. Ngược lạ σi [m,n]=0

Biến trạng thỏi σ’[m,n] =1 chỉ ị th rằng quỏ trỡnh mó húa MR ó đ được

ỏp dụng cho v[m,n]. Ngược lạ σi ’[m,n]=0.

Biến trạng thỏi η[m,n]=1 chỉ ra r ng mó húa ZC ó được ỏp d ng cho ằ đ ụ

vP[m,n]. Ngược lạ ηi [m,n]=0.

Vựng lõn cận quan tr ng (preferred neighbourhood): Một phần tử v[m,n] của khối mó được núi là nằm trong vựng lõn cận quan trọng n u tế ối (adsbygoogle = window.adsbygoogle || []).push({});

thiểu một trong 8 vị trớ xung quanh cú σ=1.

Ngữ cảnh lưu tr cỏc thụng tin c n thi t về ạữ ầ ế tr ng thỏi mó húa hi n t i. ệ ạ

Ngữ cảnh được xỏc định bởi mó húa cơ sở, thụng tin thống kờ vựng lõn cận và thuộc tớnh tần số băng con.

Mó húa cơ sở (coding primitives) được sử dụng để mụ hỡnh húa hi u ệ

quả hơn. Chỳng cú nhiệm vụ tỡm ra ngữ ảnh phự hợp nhất để mó húa bit hiện c thời. B n mó cơ sởố được ỏp d ng là: ụ Zero coding (ZC), Run-length coding

(RLC), Sign coding (SC) và Magnitude Refinement (MR).

Mó húa ZC: Bit quyết định D cú giỏ tr b ng bit tương ng v i h s t i ị ằ ứ ớ ệ ố ạ

mặt phẳng bit hiện thời, giỏ trị ngữ cảnh l a ch n c n c vào giỏ tr ự ọ ă ứ ị σ

của 8 phần tử lõn cận (theo phương thẳng đứng, ngang và chộo) và

băng con tương ứng với bit đang được mó húa.

Mó húa dấu SC: Ngữ cảnh và bit quy t địế nh được xỏc nh b i d u c a đị ở ấ ủ

độ dài chạy RLC: RLC dựng để mó húa từ 1 n 4 bit liờn tiếp đế

trong trỡnh tự quột. Số lượng bit được mó húa phụ thu c vào v trớ bit 1 ộ ị đầu tiờn trong nhúm 4 bit liền k ú. N u t t c là 0, cả 4 bit đều được ề đ ế ấ ả

mó húa. Nếu 1 hoặc nhiều bit trong số 4 bit này là 1, bit 1 đầu tiờn và cỏc bit 0 trước đú tớnh từ vị trớ quột hi n th i s được mó húa. Mó húa ệ ờ ẽ

này được sử dụng để giảm số ượng bit mó húa khi gặp chuỗi dài cỏc hệ l số khụng quan trọng. Tựy thuộc vào trạng thỏi của nhúm 4 bit này, RLC sẽ đưa ra 1 hoặc 3 bit quyết định D.

Mó húa MR: MR được sử ụ d ng để l c độ lớọ n c a cỏc h s quan tr ng. ủ ệ ố ọ

Bit quyết định D cú giỏ trị bằng vP[m,n]. Ngữ cảnh CX được xỏc định

tựy thuộc vào việc mó húa MR được ỏp d ng lần đầu hay khụng. ụ

Cỏc bước mó húa:

Ba bước mó húa (Significance propagation, Magnitude refinement, Cleanup) thực hi n quột toàn b mặệ ộ t ph ng bit để nhúm cỏc bit cú thu c tớnh ẳ ộ

thống kờ tương tự nhau lại với nhau, ngoại trừ mặt phẳng bit đầu tiờn MSB. Ngoại trừ mặt ph ng bit đầu tiờn ch ỏp d ng bước d n d p (Cleanup), ẳ ỉ ụ ọ ẹ

cỏc mặt phẳng bit khỏc được mó húa theo thứ tự Significance propagation, Magnitude refinement và Cleanup (Normalisation). Mỗi bit được mó húa một

và chỉ ộ m t lần trong số 3 bước.

Significance Propagation là bước đầu tiờn ỏp dụng cho mọi mặt phẳng bit của một từ mó, ngoại trừ ặ m t phẳng bit đầu tiờn. Sơ đồ thuật toỏn như hỡnh

4.7. Trước hết, thực hiện mó húa ZC nếu vị trớ quột hiệ ại [m,n] nằm trong n t vựng lõn cận quan trọng và σ[m,n]=0. Sau đú gỏn η[m,n]=1. Khi quỏ trỡnh ZC hoàn thành, cần kiểm tra xem cú cần thực hiện mó húa SC khụng: nếu vP[m,n]=1 thỡ thực hiện mó SC và gỏn σ[m,n]=1.

Hỡnh 4.7: Sơ đồ mó húa Significance propagation

Magnitude refinement được sử dụng để lọc độ lớn c a h số tương ứng ủ ệ

với bit đang được mó húa. Một bit được mó húa trong chặng này nếu nú đó

Hỡnh 4.8 : Sơ đồ mó húa Magnitude Refinement

Cuối cựng là bước Cleanup. Với từng vị trớ [m,n], trước hết kiểm tra giỏ trị σ [m,n] và η[m,n]. Nếu cả hai đều bằng 0, cần xỏc định xem nờn ỏp (adsbygoogle = window.adsbygoogle || []).push({});

dụng RLC hay ZC. RLC được ỏp dụng nếu gặp một chuỗi dài cỏc vị trớ khụng quan trọng. Ngược lại, ZC đượ ử ục s d ng.

Sau khi hồn thành mó húa RLC hoặc ZC, trước khi chuyển sang bit kế tiếp, cần kiểm tra xem cần mó húa SC hay khụng. Nếu cú, thực hiện mó húa SC và gỏn σ=1.

b)Mó húa số ọ h c MQ-coder:

Như vậy mó húa mặt phẳng EBCOT tạo ra một chuỗi những ký hiệu, là những cặp giỏ trị ngữ cảnh và bit quy t định (CX,D). M t b mó húa s học ế ộ ộ ố

thớch ứng là MQ-coder được sử dụng để mó húa những ký hiệu này.

MQ-coder ỏnh xạ cỏc bit đầu vào thành ký hiệu cú xỏc su t lớn MPS ấ

(more propable symbol) và ký hiệu cú xỏc xuất nhỏ LPS (less probable symbol). Trước khi bit kế tiếp được đưa vào, bộ mó húa sẽ xỏc định bit nào là MPS (bit khỏc là LPS) và nộn thụng tin này. Trong quỏ trỡnh giải mó, bộ giải mó xỏc định bit vừa giải mó là MPS hay LPS và từ đ ú chuyển đổi thụng tin này thành giỏ trị pixel nhị phõn thực sự. Như ậ v y, MQ-coder gỏn khoảng cỏch

cho MPS và LPS thay cho cỏc bit 0 và 1.

Ngữ cảnh được s dụng ử để lập b ng cỏc giỏ tr xỏc xu t c a LPS. N u ả ị ấ ủ ế

xỏc suất ước lượng LPS là Qe thỡ xỏc suất ướ ượng MPS là 1-Qe. Bộc l mó húa chia khoảng cỏch A thành 2 khoảng cỏch con căn cứ vào giỏ trị Qe. Độ

lớn khoảng cỏch cho LPS là AQe, với MPS là A(1-Qe) như hỡnh 4.10. Giỏ trị

khởi tạo ban đầu là A=1.

Hỡnh 4.10: Gỏn khoảng cỏch con trong MQ-coder

Giỏ trị A luụn luụn xấp xỉ 1. Do đú để trỏnh sử dụng phộp nhõn, khoảng cỏch con LPS và MPS được xấp xỉ như sau: AQe≈Qe và A(1-Qe)≈A- Qe. Như ậ v y LPS và MPS được gỏn cỏc khoảng cỏch con tương ứng là [0,Qe) và [Qe,A). Trong thực tế, giỏ trị của A trong kho ng [0.75,1.5). Khi A gi m ả ả

xuống dưới 0.75, A được tỏi tiờu chuẩn húa (renormalisation) bằng cỏch nhõn

đụi cho t i khi th a món A 0.75. ớ ỏ ≥

Từ mó đầu ra C cú th là giỏ tr bấể ị t k nằỳ m trong kho ng cỏch hi n ả ệ

thời. Thụng thường, MQ-coder gỏn C là giỏ trị dưới cựng trong khoảng cỏch hiện thời. Nếu đầu vào hiện thời là MPS (hoặc LPS), C được cập nhật bằng

cỏch cộng thờm một lượng là giỏ trị dưới cựng của kho ng cỏch con MPS ả

(hoặc LPS). Vỡ giỏ trị dưới cựng của LPS là 0, C khụng đổi khi mó húa LPS. Khi mó húa MPS, C được cộng thờm một lượng Qe. Thuật toỏn như sau :

Khi mó húa MPS :

C =C+Qe

A=A-Qe

Nếu A<0.75 thỡ tỏi tiờu chuẩn húa A và C Khi mó húa LPS :

C khụng đổi A=Qe

Tỏi tiờu chuẩn húa A và C

Hoỏn đổi cú đ ềi u kiện (conditional exchange) thực hi n đảo phộp gỏn ệ

hai khoảng cỏch con khi kho ng cỏch con LPS lả ớn h n khoơ ảng cỏch con MPS

do quỏ trỡnh xấp xỉ A và C. Do đú đ ềi u kiện để thực hiệ đản o khoảng cỏch là

Qe>A-Qe. Do Qe≤0.5 nờn ta cú: A-Qe<Qe≤0.5. Kết quả là cả Qe và A-Qe (adsbygoogle = window.adsbygoogle || []).push({});

đều nhỏ ơ h n 0.75, vỡ v y cầậ n tỏi tiờu chu n húa A và C. ẩ

Kế ợt h p v i hoỏn đổi cú i u ki n, thu t toỏn mó húa tr thành nh sau: ớ đ ề ệ ậ ở ư

Khi mó húa MPS :

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