1. Trang chủ
  2. » Luận Văn - Báo Cáo

Design of IP core for image compression using contourlet transform

98 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 98
Dung lượng 3,84 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các bước nén ảnh được thực hiện như sau: i ảnh siêu âm sẽ được biến đổi Contourlet, ii các hệ số Contourlet sẽ được lọc bớt đi bằng cách so sánh với một giá trị ngưỡng, để tối thiểu hóa

Trang 1

3

MỤC LỤC

1 MỤC TIÊU, NỘI DUNG, VÀ SẢN PHẨM CỦA ĐỀ TÀI 14

1.1 Mục tiêu đề tài 14

1.2 Nội dung đề tài 14

1.3 Sản phẩm của đề tài 14

2 CÁC CÔNG TRÌNH NGHIÊN CỨU VỀ NÉN ẢNH TRONG MIỀN CONTOURLET 15 2.1 Tổng quan về nén ảnh trong miền Contourlet 15

2.2 Chi tiết một số công trình trên thế giới về nén ảnh bằng SPIHT trong miền Wavelet và Contourlet 17

2.2.1 Nén ảnh bằng SPIHT trong miền Wavelet [9] 17

2.2.2 Nén ảnh bằng SPIHT trong miền Contourlet 19

3 TỔNG QUAN VỀ BIẾN ĐỔI CONTOURLET 26

3.1 Biến đổi Contourlet 26

3.1.1 Phân tích Laplacian Pyramid 26

3.1.2 Phân tích DFB 27

3.2 Giải thuật nén ảnh SPIHT 30

3.2.1 Tổng quan về giải thuật nén ảnh SPIHT 30

3.2.2 Cách thực hiện thuật toán SPIHT 32

3.2.3 Ví dụ về cách thực hiện thuật toán SPIHT trong miền Wavelet 35

3.2.4 Ví dụ về cách thực hiện SPIHT trong miền Contourlet 44

4 ĐỀ XUẤT CẢI TIẾN GIẢI THUẬT NÉN ẢNH SPIHT TRONG MIỀN CONTOURLET 56

4.1 Phân tích việc phân phối của các hệ số của các subband ở mỗi tầng của biến đổi Contourlet 56

4.2 Giải thuật đề nghị 59

4.3 Kết quả mô phỏng giải thuật 62

5 XÂY DỰNG LÕI IP CHO PHẦN CỨNG NÉN ẢNH 68

5.1 Mô tả chung 68

5.2 Khối sink_fifo 69

5.3 Khối spiht_core 70

5.3.1 Khối raster2block 71

5.3.2 Khối Contourlet_spiht 71

5.3.3 Khối block2raster 78

5.4 Khối control_data 78

Trang 2

4

5.5 Khối source_fifo 79

6 THẨM TRA THIẾT KẾ LÕI IP 80

6.1 Kết quả mô phỏng trên modelsim 80

6.2 Thử nghiệm thiết kế trên kit FPGA DE2 115 85

6.2.1 Mô tả hệ thống 85

6.2.2 Phương pháp thử nghiệm đánh giá 95

6.2.3 Kết quả thực nghiệm 95

7 KẾT LUẬN VÀ KIẾN NGHỊ 98

8 TÀI LIỆU THAM KHẢO 100

Trang 3

5

TÓM TẮT

Nén ảnh đóng vai trò rất quan trọng trong công nghệ thông tin dùng để lưu trữ các hình ảnh

và video Thành quả của việc nén ảnh là giảm số bit cần thiết để biểu diễn một hình ảnh nhưng vẫn đáp ứng được chất lượng hình ảnh

Phương pháp nén ảnh truyền thống dựa trên biến đổi DCT, trong định dạng ảnh JPEG Phương pháp cải tiến hơn sử dụng biến đổi Wavelet, được sử dụng trong chuẩn JPEG 2000

Và gần đây, các nhà nghiên cứu ứng dụng biến đổi Contourlet, một phép biến đổi cải tiến hơn Wavelet, vào giải thuật nén ảnh Phương pháp dùng biến đổi Contourlet cho phép tỉ lệ nén ảnh tốt hơn, nhưng vẫn giữ được chất lượng ảnh, do phép biến đổi Contourlet có thể thông số hóa được các dạng hình học của ảnh tốt hơn Wavelet Các nghiên cứu về nén ảnh sử dụng Contourlet đều thực hiện trên phần mềm máy tính mà chưa có nghiên cứu hiện thực trên phần cứng như vi mạch hoặc FPGA Biến đổi Contourlet có độ phức tạp cao, do đó ứng dụng nén ảnh sử dụng Contourlet sẽ có thời gian thực thi lâu, đặc biệt với ảnh lớn

Đề tài này đặt ra mục tiêu nghiên cứu giải thuật nén ảnh trong miền Contourlet và hiện thực giải thuật bằng cấu trúc phần cứng trên lõi IP Lõi IP sẽ được mô tả bằng ngôn ngữ Verilog

và kiểm tra trên FPGA Sản phẩm của đề tài có thể được ứng dụng trong hệ thống trên chip (SoC – System on Chip) dành cho hệ thống xử lý ảnh và video

Trang 4

6

ABSTRACT

Image compression is very important in information technology for image and video storage The goal of image compression is to reduce necessary bit to express an image while the qualityof image is adapted to user demand

The conventional methods for image compression are based on DCT transform which is used

on JPEG format The improved methods are based on Wavelet transform which is used in JPEG 2000 format Recently, many researches apply Contourlet transform, a new image transform which is more advanced than Wavelet transform, into image compression The Contoulet-based image compression methods provide better compression ratio with better image quality, because Contourlet transform can represents image better in contour and texture regions However, Contourlet transform has been implemented by software but not by hardware The Contourlet transform has high computational complexity, and thus Contourlet-based image compression algorithm will have long processing time, especially for large images

This project aims to research image compression method in Contourlet domain and implement image compression algorithm by hardware IP core The proposed IP core will be described in Verilog code and tested on FPGA The product of the project can be applied in systems on chip for image and video processing

Trang 5

7

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮTWBCT :Wavelet-based Contourlet

SPIHT : Set Partitioning In Hierarchical Trees

PSNR : Peak Signal to Noise Ratio

bpp : bit per pixel

LP : Laplacian Pyramid

DFBDEC : Direction Filter Bank Decomposition

QFBDEC : Quincunx Filter Bank Decomposition

LPR : Laplacian Pyramid Reconstruction

DFBREC : Direction Filter Bank Reconstruction

QFBREC : Quincunx Filter Bank Reconstruction

CT : Contourlet Transform

ICT : Inverse Contourlet Transform

LP_L1 : Laplacian Pyramid Decomposition Level 1

LP_L2 : Laplacian Pyramid Decomposition Level 2

DFB_L1 : Direction Filter Bank Decomposition Level 1

DFB_L2 : Direction Filter Bank Decomposition Level 2

ATD_L1 : Apdaptive Threshold Denoising Level 1

ATD_L2 : Apdaptive Threshold Denoising Level 2

DFBR_L1 : Direction Filter Bank Reconstruction Level 1

DFBR_L2 : Direction Filter Bank Reconstruction Level 2

LPR_L1 : Laplacian Pyramid Reconstruction Level 1

LPR_L2 : Laplacian Pyramid Reconstruction Level 2

Trang 6

8

DANH MỤC CÁC HÌNH VẼ

Hình 1: Các bước thực hiện nén ảnh trong miền Wavelet [9] 18

Hình 2: Các bước thực hiện nén ảnh ở [3] 19

Hình 3: Cấu trúc cây Spatial Orientation Tree trong miền Contourlet [3] 21

Hình 4: Các bước thực hiện nén ảnh ở [7] 22

Hình 5: Các bước thực hiện nén ảnh ở [11] 24

Hình 6: Bộ lọc băng Contourlet 26

Hình 7: Phân tích Laplacian Pyramid 27

Hình 8: Hai tầng đầu tiên của DFB 28

Hình 9: Phân tích DFB 4 tầng 29

Hình 10: Ví dụ về 2 toán tử Q0 và Q1 30

Hình 11: Ví dụ về 4 toán tử R0, R1, R2 và R3 30

Hình 12: Spatial Orientation Trees 34

Hình 13: Minh họa hệ số biến đổi Wavelet 36

Hình 14: Minh họa bước khởi tạo 36

Hình 15: Minh họa LIP Process 36

Hình 16: Minh họa LIS 37

Hình 17: Minh họa LSP 37

Hình 18: Minh họa khởi tạo Second Pass 38

Hình 19: Minh họa tiến trình Second Pass 38

Hình 20: Minh họa Refinement pass 39

Hình 21: Minh họa khởi tạo Thirdpass 39

Hình 22: Minh họa tiến trình Third pass 40

Hình 23: Minh họa kết quả tiến trình Third pass 40

Trang 7

9

Hình 24: Minh họa khởi tạo First Pass 41

Hình 25: Minh họa tiến trình First Pass 41

Hình 26: Minh họa hệ số được khôi phục của First Pass 41

Hình 27: Minh họa danh sách các tập hợp sau cập nhật 42

Hình 28: Minh họa tiến trình Second pass 42

Hình 29: Minh họa các hệ số khôi phục qua bước second pass 43

Hình 30: Minh họa các danh sách được cập nhật lại 43

Hình 31: Minh họa các hệ số khôi phục Third pass 43

Hình 32: Minh họa danh sách được cập nhật 44

Hình 33: Minh họa các hệ số biến đổi Contourlet 2 levels, mỗi level có 4 hướng 45

Hình 34: Minh họa Spatial Orientation Tree 46

Hình 35: Minh họa khởi phát First Pass 46

Hình 36: Minh họa Sorting pass – LIP Process 47

Hình 37: Minh họa Sorting pass – LIS process 47

Hình 38: Minh họa Refinement pass 47

Hình 39: Minh họa khởi tạo Second pass 48

Hình 40: Minh họa Sorting pass – LIP 48

Hình 41: Minh họa Sorting pass – LIS process 49

Hình 42: Minh họa ba tập phụ còn lại 49

Hình 43: Minh họa tiến trình Sorting pass – LIS process 50

Hình 44: Minh họa khởi tạo First pass 51

Hình 45: Minh họa Sorting pass – LIP process 51

Hình 46: Minh họa danh sách được cập nhật second pass 51

Hình 47: Minh họa Sorting pass - LIP Process 52

Hình 48: Minh họa Sorting pass – LIS process 52

Trang 8

10

Hình 49: Minh họa tiến trình Sorting pass – LIS process 53

Hình 50: Minh họa tiến trình Sorting pass – LIS process 53

Hình 51: Minh họa tiến trình Sorting pass – LIS process 54

Hình 52: Minh họa tiến trình Sorting pass – LIS process 55

Hình 53: Minh họa tiến trình Sorting pass – LIS process 55

Hình 54: Sự phân phối hệ số Contourlet ở các subbandcủa ảnh Goldhill 56

Hình 55: Sự phân phối các hệ số Contourlet ở các subband của ảnh Cameraman 57

Hình 56: Sự phân phối các hệ số Contourlet ở các subband của ảnh Barbara 57

Hình 57: Sự phân phối các hệ số Contourlet ở các subband của ảnh Lena 57

Hình 58: Sự phân phối các hệ số Contourlet ở các subband của ảnh Baboon 58

Hình 59: Sự phân phối các hệ số Contourlet ở các subband của ảnh Mandrill 58

Hình 60: Sự phân phối các hệ số Contourlet ở các subband của ảnh Pepper 58

Hình 61: Sự phân phối các hệ số Contourlet ở các subband của ảnh Pirate 59

Hình 62: Sơ đồ chung của phương pháp nén ảnh đề xuất 59

Hình 63: Biến đổi Contourlet ảnh đầu vào 60

Hình 64:Xây dựng các subband lowpass ảo 61

Hình 65 Ảnh Barbara được nén ở bit-rate=0.25 bpp 64

Hình 66 Ảnh Goldhill được nén ở bit-rate = 0.25 bpp 65

Hình 67 Ảnh Mandrill được nén ở bit-rate = 0.25 bpp 65

Hình 68 Ảnh Peppers được nén ở bit-rate = 0.25 bpp 66

Hình 69 Ảnh Lena được nén ở bit-rate = 0.25 bpp 67

Hình 70: Sơ đồ tín hiệu vào ra của IP nén ảnh SPIHT 68

Hình 71 Cấu trúc khối spiht_ip 69

Hình 72: Sơ đồ tín hiệu vào ra khối sink_fifo 69

Hình 73: Sơ đồ khối chi tiết khối sink_fifo 70

Trang 9

11

Hình 74: Sơ đồ tín hiệu vào ra của khối spiht_core 70

Hình 75: Sơ đồ tín hiệu vào ra khối raster2block 71

Hình 76: Sơ đồ khối Contourlet_spiht 71

Hình 77: Sơ đồ khối của khối Contourlet Transform 72

Hình 78: Sơ đồ khối của LP_L1 73

Hình 79: Sơ đồ khối của LP_L2 73

Hình 80: Sơ đồ khối của DFB_L1 74

Hình 81: Block diagram of DFB_L2 74

Hình 82: Sơ đồ tín hiệu vào ra của khối spiht_cal 75

Hình 83: Sơ đồ khối chi tiết khối spiht_cal 75

Hình 84: Sơ đồ khối của khối ICT 76

Hình 85: Sơ đồ khối của khối DFBR_L1 76

Hình 86: Sơ đồ khối của khối DFB_L2 77

Hình 87: Sơ đồ khối của khối LPR_L1 77

Hình 88: Sơ đồ khối của khối LPR_L2 78

Hình 89: Sơ đồ tin hiệu khối block2raster 78

Hình 90: Sơ đồ tín hiệu vào ra khối control_data 78

Hình 91: Sơ đồ tín hiệu khối source_fifo 79

Hình 92: Khối control data, khi tín hiệu request data =1 80

Hình 93: Khối control data, khi tín hiệu request data =0 80

Hình 94: Khối spiht_core 81

Hình 95: Khối raster2block (block 8x8) 81

Hình 96: Dữ liệu hệ số đầu ra khối CT 82

Hình 97: Dữ liệu vào khối iCT (lowpass level 2 và các hệ số Contourlet) 83

Hình 98: Dữ liệu ra của khối ICT 83

Trang 10

12

Hình 99: Dữ liệu ra khối CT (lowpass level 2 và các hệ số Contourlet) 84

Hình 100: Dữ liệu vào khối spiht_cal (các hệ số Contourlet) 84

Hình 101: Sơ đồ Qsys của hệ thống 85

Hình 102: SDcard_controller 86

Hình 103 Khối SRAM_controller 89

Hình 104: Pixel_buffer_DMA_controller 90

Hình 105: Pixel_buffer_DMA_controller 90

Hình 106: Khối RESAMPLE 91

Hình 107: Khối DUAL_CLOCK_BUFFER 92

Hình 108: VGA_controller 93

Hình 109: Khối Source_data 93

Hình 110: Khối Sink_data 94

Hình 111: Các IP sử dụng trong Qsys 95

Hình 112: Kết quả tổng hợp trên Quartus, v13.1 95

Hình 113: Kết quả tổng hợp trên Quartus, v13.1 96

Hình 114: Kit thực nghiệm hệ thống Error! Bookmark not defined.

Trang 11

13

DANH MỤC CÁC BẢNG

Bảng 1: So sánh PSNR của phương pháp đề xuất với 2 phương pháp khác 63

Bảng 1: Các hàm được sử dụng 86

Bảng 3: Kết quả giải thuật đề nghị 98

Bảng 4: Kết quả thiết kế lõi IP nén ảnh: 98

Trang 12

 Thiết kế cấu trúc phần cứng và xây dựng lõi IP cho giải thuật nén ảnh đã đề ra

- Với tỉ lệ nén 0.1bpp , cho chất lượng ảnh trên 20dB

- Với tỉ lệ nén 0.2bpp, cho chất lượng ảnh trên 24dB

- Với tỉ lệ nén 0.3bpp, cho chất lượng ảnh trên 26dB

mô phỏng trên ModelSim

Xây dựng lõi IP cho phần

cứng nén ảnh đã đề ra 01/03/2015-30/05/2015

- Sản phẩm là mô tả cấu trúc lõi IP đã được kiểm tra trên FPGA

- Có khả năng chạy với tần

số 50MHz

1 Bài báo khoa học 1 Đăng trong tạp chí trong nước

2 Lõi IP nén ảnh sử dụng biến đổi

4 Đào tạo thạc sỹ 1 Đề tài liên quan nén ảnh

Trang 13

15

2 CÁC CÔNG TRÌNH NGHIÊN CỨU VỀ NÉN ẢNH TRONG MIỀN CONTOURLET

Nén ảnh được chia thành hai loại chính là nén ảnh có mất dữ liệu và nén ảnh không mất dữ liệu Ở nén ảnh không mất dữ liệu thì hình ảnh ban đầu có thể được khôi phục một cách chính xác mà không có bất kỳ sự mất mát nào, nhưng nó lại có nhược điểm là tỉ lệ nén thấp Còn nén ảnh có mất dữ liệu thì ngược lại là có tỉ lệ nén cao nhưng cũng có một số lỗi

Vì vậy những thuật toán của nén ảnh có mất dữ liệu cố gắng loại bỏ những thông tin không quan trọng trong hình ảnh, những thông tin này được loại bỏ thường dựa vào khả năng nhìn của mắt người

Đối với nén ảnh có mất dữ liệu, hình ảnh được phân tích bằng cách sử dụng những biến đổi khác nhau, mục đích là để biểu diễn hình ảnh ban đầu theo một cách hiệu quả hơn Biến đổi Contourlet là một trong những biến đổi có định hướng (directional) phổ biến nhất giúp biểu diễn tốt những đường cong trơn Mã hóa hình ảnh với tốc độ bit thấp mà sử dụng biến đổi Contourlet sẽ giúp cho hình ảnh giữ lại được những đặc điểm phù hợp với mắt người hơn Wavelet Tuy nhiên, biến đổi Contourlet lại là một biến đổi dư thừa với cận trên là 4/3

Vì vậy để giảm dư thừa, người ta đã đề xuất ra biến đổi Wavelet-based Contourlet (WBCT) [1] với sự kết hợp của các băng con Wavelet và dàn lọc định hướng DFB, điều này giúp loại

bỏ được sự dư thừa nhưng vẫn giữ được khả năng định hướng của biến đổi Contourlet Tuy nhiên, chính vì có sự kết hợp với biến đổi Wavelet nên biến đổi WBCT này cũng có nhược điểm của Wavelet, đó là sự chồng phổ khi giảm mẫu (downsampling) ở những subband có tần số cao Vì thế, hình ảnh khôi phục lại sau khi qua biến đổi WBCT này có thể bị méo nhiều hơn so với biến đổi Contoutlet ở những vùng hình ảnh đường viền (contour) và hoa văn (texture) [7]

Ngoài ra chúng ta có thể sử dụng cách khác để loại bỏ sự dư thừa của Contourlet, đó

là lọc bớt các mẫu không quan trọng đi [3] bằng cách sử dụng một trong ba phương pháp, đó

là phương pháp ngưỡng lặp lại (iterative thresholding method), phương pháp theo đuổi tham lam (greedy pursuit method) và phương pháp dựa trên chương trình tuyến tính (linear programming based method) Trong ba phương pháp này thì lấy ngưỡng lặp lại là tốt nhất cả

về độ phức tạp tính toán và khả năng loại bỏ các mẫu không quan trọng

Contourlet tuy tốt về mặt xấp xỉ không tuyến tính, tức là sử dụng những hệ số quan trọng nhất để khôi phục lại hình ảnh; nhưng chính khả năng xấp xỉ không tuyến tính này lại gây ra pseudo-Gibbs artifacts [4]

Về giải thuật nén ảnh trong miền Contourlet, hiện nay có nhiều công trình nghiên cứu

về vấn đề này Ở công trình nghiên cứu [5], các tác giả đề xuất một giải thuật nén ảnh trong miền Contourlet dành riêng cho ảnh siêu âm trong y học (medical ultrasound image) Các bước nén ảnh được thực hiện như sau: (i) ảnh siêu âm sẽ được biến đổi Contourlet, (ii) các hệ

số Contourlet sẽ được lọc bớt đi bằng cách so sánh với một giá trị ngưỡng, để tối thiểu hóa việc mất thông tin quan trọng thì việc chọn ngưỡng chính là giá trị của hệ số Contourlet xuất hiện nhiều nhất, (iii) lượng tử hóa các hệ số Contourlet đã được lọc bớt đó theo kiểu scalar quantization, tức là mỗi hệ số Contourlet sẽ được lượng tử hóa riêng rẽ với nhau, và (iv) nén các hệ số Contourlet đã được lượng tử hóa bằng thuật toán Huffman Ưu điểm lớn nhất của

Trang 14

16

phương pháp được đề xuất này với trọng tâm là sử dụng một ngưỡng lọc bớt các hệ số Contourlet giúp giảm được nhiễu lốm đốm trên ảnh siêu âm vừa đảm bảo được chất lượng nén Tuy nhiên, khi tiến hành thí nghiệm, tác giả so sánh phương pháp đề xuất trong miền Contourlet với phương pháp nén bằng thuật toán SPIHT trong miền Wavelet, tác giả sử dụng hình ảnh siêu âm chứa nhiều đường cong trơn mà bản thân nó đã phù hợp với biến đổi Contourlet hơn là biến đổi Wavelet nên việc tăng PSNR của phương pháp đề xuất trong miền Contourlet hơn so với thuật toán SPIHT trong miền Wavelet cũng chưa thể kết luận ngay được là phương pháp đề xuất này tốt hơn thuật toán SPIHT trong điều kiện hình ảnh không bị nhiễu lốm đốm Hơn nữa, tỉ lệ nén ở đây chỉ khoảng 4-8 lần, tác giả chưa đánh giá được tại những tỉ lệ nén cao hơn thì chất lượng nén của phương pháp đề xuất sẽ như thế nào

Ở công trình nghiên cứu [4], các tác giả thực hiện nén ảnh trong miền Contourlet Phương pháp nén ảnh được thực hiện cơ bản dựa trên việc thay đổi các hệ số Contourlet sao cho entropy của các hệ số là nhỏ nhất Các bước nén ảnh được thực hiện như sau: (i) biến đổi Contourlet ảnh đầu vào, (ii) xây dựng histogram H của các hệ số Contourlet đã được làm tròn xuống thành số nguyên, (iii) histogram H của các hệ số này sẽ được biến đổi thành histogram H’ khác bằng cách sử dụng thuật toán Viterbi, mục đích là để entropy của các hệ số là nhỏ nhất, (iv) các hệ số đã được biến đổi thành histogram H’ này sẽ được chia thành hai phần, đó

là (iv-1) các hệ số có cùng giá trị mà có số lượng nhiều nhất sẽ được lưu lại vị trí bằng một mask, mask này sẽ được nén bằng Run Length Encoding và tiếp theo là adaptive arimetic coding; và (iv-2) các hệ số còn lại được nén bằng arithmetic coding, (v) gộp lại các giá trị của các hệ số có histogram lớn nhất và các dữ liệu đã được nén Ưu điểm lớn nhất của phương pháp này là từ việc thay đổi histogram của các hệ số sẽ giúp giữ lại những chi tiết nhỏ trong hình ảnh, mặt khác cũng khắc phục được hạn chế của thuật nén ảnh dựa trên việc xấp xỉ không tuyến tính (non-linear approximation), đó là hiệu ứng pseudo-Gibbs artifacts ở những chi tiết mà có tần số thấp và vùng smooth của hình ảnh Tuy nhiên, để đạt được PSNR cao hơn 1,31 dB ở bit-rate = 0,25 bpp thì tác giả phải dùng đến biến đổi Contourlet 6 tầng, với số hướng tăng lên gấp đôi ở mỗi tầng tinh hơn (tức là số tầng cao hơn) Với số tầng nhiều như trên thì sẽ tốn thêm nhiều tài nguyên, đặc biệt là tốn nhiều bộ nhớ khi xây dựng trên phần cứng

Ở công trình nghiên cứu [2],sau khi loại bỏ một số mẫu Contourlet dư thừa bằng phương pháp lấy ngưỡng lặp lại thì các hệ số trong mỗi subband sẽ được mã hóa bằng bộ mã hóa TCE Trong 3 loại phụ thuộc giữa các hệ số biến đổi Contourlet (sự phụ thuộc giữa các subband, bên trong mỗi subband và các scale với nhau) thì sự phụ thuộc giữa các hệ số bên trong mỗi subband là lớn nhất, do đó việc dùng bộ mã hóa TCE để mã hóa mỗi subband sẽ giúp tăng tỉ lệ nén

Những thuật toán nén ảnh ở trên không thể tạo ra được chuỗi bit nhúng (embedded bit stream), tức là chuỗi bit mã hóa có thể được cắt ở bất kỳ bit nào mà vẫn có khả năng cho chất lượng ảnh khôi phục là tốt nhất có thể Trong khi hiện nay, nhiều loại thiết bị đầu cuối (terminal) và các node ở những mạng không đồng nhất (heterogeneous network) lại khác nhau về bộ xử lý, bộ nhớ, khả năng hiển thị, phân giải,…; cho nên chất lượng SNR của chuỗi bit mã hóa được cần cũng là khác nhau Muốn tùy chọn khả năng SNR thì ta có thể thực hiện bằng cách truyền lần lượt (progressive transmission) và nhúng thông tin (embedded information) [7] Điều này dẫn đến việc phải tính toán và phân vùng những thông tin quan trọng theo kiểu phân cấp, tức là thông tin nào càng quan trọng thì càng nên ở cấp cao hơn

Trang 15

17

Một số thuật toán thực hiện nén ảnh kiểu này là EZW [8], SPIHT [9], EBCOT [10] Cần chú

ý là những thuật toán này đều được xây dựng dựa trên biến đổi Wavelet

Như ta đã biết, biến đổi Contourlet và biến đổi Wavelet có những điểm tương đồng nhất định, chúng đều là biến đổi tạo ra những subband phân cấp Vì vậy, một số thuật toán nén ảnh sử dụng ở miền Wavelet cũng có khả năng sử dụng được ở miền Contourlet với một

số điều chỉnh nhỏ cho phù hợp hơn với Contourlet Chính vì vậy, hiện nay có nhiều công trình nghiên cứu trên thế giới về nén ảnh trong miền Contourlet đi theo xu hướng điều chỉnh thuật toán nén ảnh trong Wavelet Trong các thuật toán này thì SPIHT được lựa chọn khá nhiều do nó là thuật toán cải tiến của EZW và có độ phức tạp tính toán nhỏ hơn EBCOT Một

số công trình tiêu biểu như [3], [7] và [11]

SPIHT là một thuật toán nén ảnh nhanh và hiệu quả dựa trên phương pháp phân vùng trên cây phân lớp (Set Partitioning In Hierarchical Trees, viết tắt là SPIHT) Nó chú trọng vào quá trình truyền các hệ số đi, các hệ số quan trọng sẽ được truyền đi trước (mức độ quan trọng dựa vào giá trị các hệ số, hệ số nào có giá trị càng lớn thì càng quan trọng) Nhờ vậy mà

dù chỉ có một số lượng ít các hệ số ta vẫn có thể khôi phục lại được hình ảnh Để việc truyền các hệ số quan trọng đi trước được thuận lợi thì các hệ số được sắp xếp theo biên độ Các hệ

số này sẽ được phân vùng bằng cách sử dụng một cây được gọi là spatial orientation trees để giữ các hệ số không quan trọng lại cùng nhau trong các tập phụ

Thuật toán SPIHT dễ dàng thực hiện trên phần mềm nhưng lại không phù hợp khi thực thi phần cứng [12] do phải sử dụng nhiều danh sách (list), điều này gây ra hậu quả là phải phụ thuộc vào biến và dữ liệu, đòi hỏi nhiều bộ nhớ, lại cần phải quản lý bộ nhớ như danh sách các node được thêm vào, di chuyển hay loại bỏ đi Mặt khác, SPIHT cũng có nhiều toán tử lặp trong mỗi một lần quét, đó là do các tập hợp cần phải được kiểm tra xem có phải

là tập hợp chứa các pixel quan trọng hay không Khi giá trị ngưỡng thay đổi thì việc kiểm tra cũng cần phải được tiến hành lại

Để khắc phục nhược điểm của SPIHT, Frederick W Wheder và William A Pearlman

đã đề xuất thuật nén ảnh No Lists SPIHT [13] Ở thuật toán này thì các hệ số quan trọng vẫn được sắp xếp trước, nhưng các danh sách sẽ được thay thế bằng một bảng trạng thái Điều này sẽ giúp tránh được việc quét lặp lại

Wavelet và Contourlet

2.2.1 Nén ảnh bằng SPIHT trong miền Wavelet [9]

Hiện nay, một trong những phương pháp nén ảnh phổ biến nhất là sử dụng thuật toán nén ảnh SPIHT trong miền Wavelet Thật ra, thuật toán SPIHT do Amir Said và Pearlman tạo

ra chính là để nén trong miền Wavelet Tuy nhiên, miền Wavelet và Contourlet lại có nhiều điểm tương đồng nên ta cũng có thể dùng SPIHT để nén trong miền Contourlet Vì vậy, muốn áp dụng được SPIHT trong miền Contourlet thì ta phải hiểu cách SPIHT thực hiện trong miền Wavelet trước đã

Trang 16

Hình 1: Các bước thực hiện nén ảnh trong miền Wavelet [9]

Các bước thực hiện việc nén ảnh trên miền Wavelet chỉ gồm hai bước đơn giản như sau:

- Bước 1: biến đổi Wavelet ảnh đầu vào

- Bước 2: thực hiện nén bằng SPIHT các hệ số Wavelet

Trang 17

19

2.2.2 Nén ảnh bằng SPIHT trong miền Contourlet

2.2.2.1.Image coding based on sparsified Contourlet and adjusted SPIHT [3]

Giải thuật này đề nghị bởi tác giả Tan Peipei, Wei Zhao trong bài báo "Image coding based on sparsified Contourlet and adjusted SPIHT" Signal Processing (ICSP), 2012 IEEE 11th International Conference on Vol 2 IEEE, 2012

Theo bài báo này, việc thực hiện nén ảnh bằng thuật toán SPIHT đã được điều chỉnh trong miền Contourlet được thực hiện như sau:

Hình 2: Các bước thực hiện nén ảnh ở [3]

- Bước 1: Biến đổi Contourlet ảnh đầu vào Biến đổi này thực hiện với 3 tầng và số hướng ở mỗi mức là 4, 8 và 16 hướng tương ứng với mỗi tầng đầu vào

Trang 18

20

- Bước 2: Sparse Contourlet using Itetive thresholding: Do biến đổi Contourlet là một biến đổi quá mẫu nên việc các tác giả dùng biến đổi Sparsified Contourlet sẽ giúp giảm đi một số lượng mẫu dư thừa, biến đổi Sparsified Contourlet này chỉ cần số lượng hệ số biến đổi ít hơn rất nhiều so với biến đổi Contourlet đơn thuần mà vẫn đạt được cùng một chất lượng hình ảnh khôi phục Hơn nữa, trong các phương pháp biến đổi Sparsified Contourlet thì itetive thresholding (phương pháp lấy ngưỡng lặp) mà các tác giả sử dụng là có độ phức tạp tính toán ít hơn hai phương pháp còn lại (greedy pursuit và linear programming based method) Phương pháp lấy ngưỡng lặp: lọc bớt các hệ số Contourlet bằng cách áp dụng phương pháp lấy ngưỡng lặp (iterative threshoding) để tạo thành biến đổi sparsified Contourlet

 là ma trận biến đổi Contourlet ngược

S(x,T) là hàm lấy ngưỡng lặp: S(x,T)max(|x|T,0).x/|x| (2)

Ngưỡng T được xác định bởi một giá trị nào đó để lỗi lượng tử e có thể chấp nhận được

- Bước 3: nén các hệ số Contourlet lại bằng thuật toán SPIHT điều chỉnh: sử dụng thuật toán SPIHT với cây Spatial Orientation Tree điều chỉnh mối quan hệ cha con như hình bên dưới

Trang 19

21

Hình 3: Cấu trúc cây Spatial Orientation Tree trong miền Contourlet [3]

Ưu điểm của việc dùng phương pháp này để nén ảnh trong miền SPIHT là đã loại bỏ được bớt số lượng hệ số Contourlet dư thừa mà vẫn giữ được ưu điểm của biến đổi Contourlet Tuy nhiên, khi dùng thuật toán SPIHT để nén ảnh thì tác giả xây dựng cây Spatial Orientation Tree với mối quan hệ cha con không dùng hết mà chỉ dùng một phần số subband của ảnh bandpass, mà số subband được sử dụng này lại cố định khi nén bất kỳ một ảnh nào

đó Điều này dẫn đến việc giảm chất lượng hình ảnh khôi phục khi số lượng các hệ số có biên

độ lớn lại tập trung ở những subband không tham gia vào quá trình xây dựng cây Spatial Orientation Tree

2.2.2.2.Contourlet image coding based on adjusted SPIHT [7]

Giải thuật này được đề nghị bởi tác giả Haohao Song, Songyu Yu, Li Song, Hongkai Xiong, trong bài báo “Contourlet image coding based on adjusted SPIHT”, Advances in Multimedia Information Processing (PCM), 2005

Trong công trình nghiên cứu này, Haohao Song cùng các cộng sự đã đề xuất nén ảnh bằng thuật toán SPIHT có điều chỉnh cho phù hợp với biến đổi Contourlet Có 3 sự điều chỉnh đã được thực hiện: (i) đối với các subband bandpass, vì thuật toán SPIHT nhấn mạnh việc truyền các hệ số quan trọng đi trước nên các tác giả đã sắp xếp lại vị trí các subband theo

độ quan trọng, theo đó subband nào có càng nhiều hệ số quan trọng thì càng được mã hóa trước; (ii) đối với các subband lowpass, các tác giả cũng tiến hành phân chia subband này

Trang 20

22

thành các subband nhỏ với tần số ảo; và (iii) LIS process thuộc sorting pass chỉ được kiểm tra khi mức lượng tử giảm từ n1 xuống n2, với n1 là giá trị bit-plane cao nhất của các hệ số lowpass, còn n2 là giá trị bit-plane cao nhất của các hệ số bandpass

Contourlet

4 levels 16,16,16.16 directions

Sắp xếp lại các bandpass theo độ quan trọng

construction of virtual lowpass subband

Adjust spiht

I_Spiht

Sắp xếp lại vị trí các bandpass

Original Image

Lowpass coeffs Bandpass coeffs

16 virtual lowpass subbands

compression bitstream

Reconstructed image

Rearranged 64 bandpass subbands

Vị trí của 15/16 bandpass ở mỗi level

&

I_Contourlet

Hình 4: Các bước thực hiện nén ảnh ở [7]

Các bước thực hiện thuật nén SPIHT điều chỉnh:

- Bước 1: ảnh đầu vào được biến đổi Contourlet sử dụng hai bộ lọc là 9/7 và pkva Biến đổi Contourlet được phân tích thành 4 tầng, mỗi tầng có 16 hướng Sau khi phân tích

Trang 21

có cùng kích cỡ và cũng chứa các pixels giống như ma trận lowpass ban đầu, nhưng

nó được phân vùng thành 16 subband con Mục đích của việc phân chia các hệ số ở lowpass thành 16 subband ảo giống vị trí của 16 bandpass là để dễ dàng tạo mối liên

hệ cha-con khi lập cây spatial orientation tree Việc có cả các hệ số của lowpass tham gia tạo thành cây sẽ khiến cây càng cao, từ đó dẫn đến độ nén càng cao

- Bước 3: sắp xếp lại các subband bandpass theo độ quan trọng Subband nào có càng nhiều hệ số quan trọng thì subband đó càng quan trọng nên sẽ được xếp lên trước Sắp xếp lại sẽ giúp các hệ số quan trọng sẽ được mã hoá nhiều nhất có thể khi bitstream bị cắt ở bất kỳ điểm nào Để xác định độ quan trọng của subband thì ta so sánh các hệ

số trong các subband đó với một giá trị ngưỡng, nếu càng có nhiều hệ số lớn hơn giá trị ngưỡng thì subband đó càng quan trọng Về giá trị chọn làm ngưỡng thì thông thường, khi so sánh với một giá trị ngưỡng cao, nếu một subband có nhiều hệ số quan trọng hơn subband khác thì khi so với một giá trị ngưỡng thấp, nó cũng sẽ có nhiều hệ

số quan trọng hơn các subband khác Bằng việc test nhiều hình ảnh, các tác giả đã chỉ

ra rằng với ngưỡng = 32 thì thứ tự quan trọng của các subband là không thay đổi

- Bước 4: nén bằng thuật toán SPIHT điều chỉnh Phần lowpass và bandpass sau khi được tách ra xử lý xong thì sẽ được gộp lại để tạo thành cây Spatial Orientation Tree Thuật toán SPIHT điều chỉnh ở hai chỗ: (i) bước quantization có hai mức ngưỡng là n1 và n2, với n1 là giá trị bit-plane cao nhất của các hệ số lowpass, n2 là giá trị bit-plane cao nhất của các hệ số bandpass, chứ không phải chỉ có một mức ngưỡng n1 như SPIHT truyền thống; và (ii) bước sorting pass: danh sách LIS chỉ được kiểm tra khi n1 giảm đến giá trị n2, chứ không cần kiểm tra với các mức lượng tử ở giữa n1 và

n2 giống như SPIHT truyền thống

Ưu điểm của phương pháp nén ảnh này là đã xây dựng được bước tiền xử lý các hệ số Contourlet để điều chỉnh sao cho thuật toán SPIHT phù hợp hơn với biến đổi Contourlet, ví

dụ như tận dụng được tất cả các hệ số Contourlet khi xây dựng cây Spatial Orientation Tree, bớt được một số bit mã hóa khi dùng đến hai mức lượng tử,… Tuy nhiên, việc cho toàn bộ các hệ số ở ảnh lowpass vào trong danh sách các pixel không quan trọng LIP khi thực hiện thuật nén ảnh SPIHT, nếu thực hiện như vậy trên phần cứng thì sẽ không thuận lợi do phải lưu nhiều giá trị một lần và thực hiện tính toán nhiều lần với nhiều giá trị đó

2.2.2.3.An Image conpression scheme adopted for Contourlet transform [11]

Giải thuật này được đề nghị bởi Xi Zhi-hong, Xiao Yi-han, trong bài báo “An Image conpression scheme adopted for Contourlet transform”, Image and Signal processing, 2009, CISP ’09 2nd International Congress on, 2009

Ở công trình nghiên cứu này, Xi Zhi-hong và các cộng sự đã đề xuất nén ảnh bằng thuật toán SPIHT điều chỉnh

Trang 22

- Bước 2: xử lý các hệ số Contourlet ở ảnh lowpass như sau:

+ Bước 2-1: Rearrangement of lowpass coeffs: Việc phân vùng lại là để tạo mối liên hệ con dễ dàng cho việc tạo spartial orientation tree Việc phân vùng các hệ số lowpass vào các subband ảo được thực hiện như sau: (i) các hệ số ở những dòng chẵn được xếp thành các subband ngang, (ii) các hệ số ở những dòng lẻ thì xếp thành các subband dọc

+ Bước 2-2: Optimization of lowpass subband coeffs: Do năng lượng tập trung phần lớn ở lowpass subband nên tác giả muốn giữ nguyên giá trị các hệ số lowpass, nhưng thay vì mã hoá các biên độ lớn của lowpass thì tác giả mã hoá vị trí (location) và số dư (margin) của các

Trang 23

25

hệ số này so với Hmax (là giá trị lớn nhất trong tất cả các hệ số lowpass), điều này sẽ giúp giảm số bit mã hoá

- Bước 3: Các hệ số lowpass đã được xử lý và các hệ số bandpass sẽ được gộp lại thành các

hệ số đầu vào của thuật toán nén ảnh SPIHT

Ưu điểm của phương pháp nén ảnh này là giữ lại được tối đa mức năng lượng ở phần ảnh lowpass là nơi tập trung chủ yếu năng lượng của toàn bộ hình ảnh và cũng điều chỉnh cây Spatial Orientation Tree cho phù hợp hơn với biến đổi Contourlet giống như [7] Tuy nhiên, nhược điểm của phương pháp này cũng là không thuận lợi khi xây dựng trên phần cứng giống như [7]

Trang 24

26

3 TỔNG QUAN VỀ BIẾN ĐỔI CONTOURLET

(Nội dung này được trích từ luận văn Thiết kế lõi IP triệt nhiễu ảnh sử dụng biến đổi Contourlet, Lê Quốc Bảo Trí, Đại học Bách Khoa, ĐHQG-TP.HCM, 2013 [14])

Biến đổi Contourlet rời rạc là sự kết hợp giữa Laplacian pyramid (multiscale) và băng lọc hướng (Directional filter bank) (multidirection)

Hình 6: Bộ lọc băng Contourlet Biến đổi Contourlet cơ bản gồm hai bước: trước tiên, phân tích multiscale vào các băng bằng Laplacian pyramid, sau đó băng lọc hướng DFB được áp vào mỗi kênh

Biến đổi Contourlet được thực thi thông qua bộ băng lọc hai chiều để phân tích ảnh vào một số băng con định hướng ở nhiều scale Điều này được thực hiện bằng cách kết hợp Laplacian pyramid (LP) với 1 băng lọc hướng ở mỗi scale Do cấu trúc theo tầng này, mỗi tầng phân tích multiscale và hướng trong biến đổi Contourlet độc lập lẫn nhau Mỗi tầng có thểphân tích mỗi scale thành một số hướng theo hàm mũ của 2 tùy ý, nên các scale khác nhau

có thể phân tích thành số các hướng khác nhau Đặc điểm này làm cho Contourlet là biến đổi duy nhất có thể đạt được mức độ linh hoạt cao trong phân tích ảnh

3.1.1 Phân tích Laplacian Pyramid

Phân tích multiscale sử dụng Laplacian Pyramid (LP) được giới thiệu bởi Burt và Adelson Phân tích LP ở mỗi mức sẽ tạo ra phần lowpass của ảnh gốc với kích thước bằng ½ ảnh gốc và sự khác nhau giữa phần lowpass và ảnh gốc là ảnh bandpass có kích thước bằng ảnh gốc

Trang 25

27

Hình 7: Phân tích Laplacian Pyramid Hình trên mô tả cách thực hiện việc phân tích LP: Đầu tiên, ta lấy xấp xỉ thô a của tín hiệu ban đầu x bằng cách lọc thông thấp H và hạ mẫu M Dựa trên phiên bản thô, chúng ta dự đoán tín hiệu ban đầu bằng cách tăng mẫu và lọc thông thấp, sau đó tính toán chênh lệch giữa tín hiệu ban đầu và tín hiệu dự đoán ta có được phần chi tiết b của ảnh Thông thường để xây dựng lại tín hiệu gốc, ta kết hợp phần chi tiết b với phần xấp xỉ thô a

Bộ lọc Fan filter có thể là một trong hai bộ lọc H0 hoặc H1.Trong đó, H0 là bộ lọc phân tích thông thấp, còn H1 là bộ lọc phân tích thông cao của loại bộ lọc mà ta dùng cho phân tích DFB

Đối với DFB tầng 1 và tầng 2, sơ đồ của DFB là :

Trang 26

Level 2

Hình 8: Hai tầng đầu tiên của DFB Phân tích DFB từ mức thứ ba, để đạt được mức phân chia tần số nhỏ hơn, dàn lọc quincunx

sẽ được kết hợp với toán tử resampling R Có bốn loại resampling cho QFB, đó là R0, R1, R2

và R3.Trong đó, hai loại resampling cho QFB là R0 và R1 sẽ được sử dụng cho ½ số kênh DFB ở phía trên, làm cho ảnh đầu vào quay một góc 45 độ hoặc -45 độ theo hướng dọc Còn hai loại resampling cho QFB là R2 và R3 sẽ được sử dụng cho ½ số kênh DFB ở phía dưới, làm cho ảnh đầu vào quay một góc 45 độ hoặc -45 độ theo hướng còn lại, tức là hướng ngang

Trang 28

30

Hình 10: Ví dụ về 2 toán tử Q0 và Q1

Hình 11: Ví dụ về 4 toán tử R0, R1, R2 và R3

3.2.1 Tổng quan về giải thuật nén ảnh SPIHT

Thuật toán nén ảnh SPIHT được dùng trong trường hợp nén ảnh có mất mát Nó dùng

để nén các hệ số sau khi đã qua biến đổi unitary hierarchical subband transform, ví dụ như Wavelet Để nén ảnh ta có thể chỉ dùng thuật toán nén SPIHT, hoặc cũng có thể kết hợp SPIHT với một thuật toán nén khác, ví dụ như arithmetic coding Ưu điểm khi kết hợp 2 phương pháp nén là sẽ giúp giảm sai số bình phương trung bình MSE, tức là tăng PSNR từ 0.3-0.6 dB; tuy nhiên như vậy thì độ phức tạp tính toán sẽ tăng lên, thời gian thực hiện mã hóa và giải mã cũng sẽ lâu hơn [4]

Trang 29

31

Về cơ bản thì thuật toán nén SPIHT sẽ nén các hệ số đã qua biến đổi bằng cách loại

bỏ bớt các hệ số mà có biên độ nhỏ, đồng thời bỏ bớt những bit có trọng số thấp (LSB) của các hệ số có biên độ cao Như vậy, khi khôi phục lại thì tất cả các hệ số được khôi phục sẽ có giá trị xấp xỉ giá trị ban đầu Việc loại bỏ bao nhiêu số hệ số có biên độ nhỏ và bỏ bao nhiêu

số bit có trọng số thấp là do ta lựa chọn, như vậy tức là ta có thể chọn tỉ lệ nén như mong muốn

Khi ta dùng phương thức truyền lần lượt (progressive image transmission) thì điều quan trọng là làm sao truyền đi được những thông tin quan trọng nhất, nhờ thế sẽ giảm được

độ méo là nhiều nhất Việc lựa chọn thông tin quan trọng nhất có thể dựa theo một số tiêu chí khác nhau Một trong số đó là việc dựa vào việc đo độ méo theo sai số bình phương trung

bình Mean Squared-error (MSE):

2

^ , ,

N N

p p p

p D

(4)

Với N là số lượng hệ số của ảnh, p,j

là giá trị hệ số (i,j) của ảnh, p,j

^

là giá trị ước lượng của hệ số p,j

Mặt khác ta có:

2

^ , ,

N c c D p p D

Điều này cho ta thấy rằng những hệ số mà biên độ càng lớn thì càng nên truyền

đi trước bởi vì chúng có khả năng giảm được độ méo nhiều hơn Mở rộng điều này, ta có thể thấy rằng đối với từng hệ số được truyền đi dưới dạng nhị phân thì ta cũng nên truyền những bit có trọng số lớn hơn đi trước (most significant bits MSB)

Như vậy, ý tưởng chính của thuật toán SPIHT gồm 2 điểm chính, đó là (1) sắp xếp lại các hệ

số theo biên độ, như vậy các hệ số có biên độ lớn sẽ được mã hóa trước; và (2) mã hóa các bit MSB của các hệ số có biên độ lớn trước

Hai điểm này được diễn giải cụ thể như sau:

(1) Sắp xếp lại các hệ số theo biên độ: các hệ số sẽ được sắp xếp theo thứ tự từ biên độ lớn đến nhỏ theo từng nhóm trong nhiều lần lặp, cứ một lần lặp thì sẽ sắp một nhóm các hệ số có biên độ từ 2 đến n 2n1 VD các hệ số sau khi biến đổi của một ảnh có biên độ dao động từ 0 đến (2 -1) thì ở lần lặp đầu tiên sẽ sắp xếp cho nhóm 1 lên trước gồm các hệ số có biên độ từ 8

7

2 đến ( 8

2 - 1), ở lần lặp thứ hai sẽ cho nhóm 2 xếp sau nhóm 1 gồm các hệ số có biên độ từ

Trang 30

số ở nhóm 1 này; ở lần lặp thứ hai sẽ cho nhóm 2 gồm các hệ số có biên độ từ 2 đến (6 2 -1) 7xếp sau nhóm 1, đồng thời truyền đi các bit thứ 7 của các hệ số ở cả nhóm 1 và 2; và cứ sắp xếp và truyền các bit MSB của các hệ số ở các nhóm như vậy cho đến khi có đủ lượng bit mà

ta mong muốn

Việc sắp xếp các hệ số từ lớn đến nhỏ theo từng nhóm trong nhiều lần lặp song song với việc truyền các bit MSB đi trước dẫn đến hệ quả là ta có thể chọn tỉ lệ nén ảnh thông qua số lần lặp cho việc sắp xếp và mã hóa số bit MSB Nếu số lần lặp càng nhiều thì số lượng nhóm của các hệ số được sắp xếp sẽ càng nhiều và càng nhiều bit MSB được mã hóa, như vậy tỉ lệ nén

sẽ giảm; và ngược lại Tuy chỉ truyền một số lượng ít các bit của các hệ số ban đầu nhưng chất lượng ảnh sau khi khôi phục lại vẫn đạt chất lượng tốt do nửa số bit được truyền đi là những bit quan trọng, những bit này giúp khôi phục lại được các hệ số ban đầu với sai số MSE nhỏ

Như vậy, tóm lại thuật toán SPIH là một thuật toán nén ảnh nhanh và hiệu quả Nó có hai điểm đặc biệt là (i) mã hóa các hệ số quan trọng trước (dựa vào giá trị các hệ số, hệ số nào có giá trị càng lớn thì càng quan trọng), nhờ vậy mà dù chỉ có một số lượng ít các hệ số ta vẫn có thể khôi phục lại được hình ảnh; (ii) trong một lượt mã hóa thì không phải mã hóa hết hệ số này rồi mới đến hệ số kia, mà là mã hóa đồng thời bit thứ n MSB (most significant bit) của tất

cả các hệ số Khi dùng thuật toán này để nén ảnh thì ta có thể chọn tỉ lệ nén như mong muốn, tất nhiên cái giá phải trả là tỉ lệ nén càng cao thì sai số giữa ảnh khôi phục và ảnh ban đầu sẽ càng lớn Thông thường, những hình ảnh chất lượng tốt có thể được khôi phục khi chỉ cần một phần tương đối nhỏ các pixel được truyền đi, ví dụ với ảnh Barbara chuẩn 8 bpp, cỡ 512x512 thì chỉ cần nén với bit-rate = 0,25 bpp

3.2.2 Cách thực hiện thuật toán SPIHT

Thuật nén SPIHT gồm 4 bước là: khởi tạo, sorting pass, refinement pass và quantization-step update Ta có thể miêu tả tóm tắt thuật toán dưới dạng sơ đồ như sau:

Trang 31

33

Hình 12: Ý tưởng của thuật toán nén ảnh SPIHT

Để hiện thực hóa ý tưởng của thuật toán nén ảnh SPIHT, tác giả đã sử dụng một cây được gọi

là spatial orientation trees, cây này dựa trên giả thuyết là nếu một hệ số biến đổi ở mức thô

(coarse scale), tức là node cha ở trên cây là không quan trọng (nhỏ hơn giá trị ngưỡng) thì tất

cả các hệ số mà ở vùng không gian giống như hệ số đó mà ở trên subband ở mức tinh hơn

(finer scale), tức là các node con, cháu, chắt,… trên cây thì cũng không quan trọng Thực tế

chỉ ra rằng giả thuyết này thường là đúng bởi vì các hệ số có sự tự tương quan giữa các subband Tức là đối với những hệ số đã qua biến đổi unitary hierarchical subband transform thì mỗi một hệ số ở scale đã cho sẽ liên quan tới một tập các hệ số ở finer scale mà ở cùng hướng [8]

Cây Spatial Orientation Trees được tạo như sau:

Giả sử ta có các hệ số đã qua biến đổi unitary hierarchical subband transform nằm ở các subband như trong hình vẽ, hệ số nào ở mức thô nhất thì sẽ là node cha (các hệ số nằm ở subband I), hệ số nào ở mức tinh hơn thì sẽ là node con (các hệ số ở subband II, III, IV), còn các hệ số ở mức tinh hơn nữa thì sẽ là node cháu, chắt,… Mỗi node cha sẽ luôn có 2x2 node con hoặc là không có node con nào Các node sẽ được chia vào các tập hợp như sau:

+ Tập O(i,j): là tập các tọa độ của node con của hệ số có tọa độ (i,j) Mỗi node sẽ có 4 node

con hoặc không có node con nào VD tập O(0,1) bao gồm tọa độ của các hệ số b1, b2, b3 và b4

Trang 32

34

+ Tập D(i,j): là tập bao gồm tất cả các con, cháu, chắt,… của hệ số có tọa độ (i,j).VD D(0,1)

bao gồm tọa độ của các hệ số b1…b4, b11…b14…b44

+ Tập H: là tập của tất cả các node gốc – là band I trên hình vẽ

+ Tập L(i,j): là tập các cháu, chắt,… (không có con) của node có tọa độ (i,j)

Hình 13:Spatial Orientation Trees

Khi thực hiện thuật toán, tác giả dùng ba danh sách để biểu thị việc sắp xếp cây Spatial Orientation Trees, đó là danh sách các hệ số quan trọng LSP, danh sách các hệ số không quan trọng LIP và danh sách các nhóm hệ số không quan trọng LIS LSP và LIP sẽ chứa tea độ của các node riêng lẻ, còn LIS sẽ chứa các tọa độ của node con cháu chắt… được biểu diễn qua tập D của các node cha

Như vậy, ý tưởng của thuật toán nén ảnh SPIHT có thể được biểu diễn tương đương ở trên thông qua các danh sách như sau:

Trang 33

35

Hình 14: Cách thực hiện thuật toán SPIHT

3.2.3 Ví dụ về cách thực hiện thuật toán SPIHT trong miền Wavelet

Giả sử ta có các hệ số biến đổi Wavelet như sau:

Trang 34

36

Hình 15: Minh họahệ số biến đổi Wavelet

Ta tiến hành mã hóa qua 3 pass và tạo ra chuỗi bit để truyền đi; sau đó tiến hành giải mã từ các bit này

Trang 35

37

Hệ số ở tọa độ (0,0) = 26 >2  hệ số ở tọa độ này là quan trọng  truyền bit 1, tiếp theo

là bit 1 để chứng tỏ hệ số này là dương và chuyển tọa độ đến LSP Ba hệ số còn lại là không quan trọng  truyền 3 bit 0 và vẫn để chúng ở LIP

LIS:

Hình 18: Minh họa LIS

Kiểm tra các con cháu chắt… của tọa độ (0,1) (tức là 13, 10, 6 và 4)  tất cả đều không

quan trọng  truyền 1 bit 0 Tương tự, con cháu chắt… của tọa độ (1,0) và (1,1) đều không

quan trọng  truyền 2 bit 0

Refinement pass:

Hình 19: Minh họa LSP

không có phần tử nào nên không làm gì

Qua bước first pass ta truyền đi 8 bit: 11 000 000

Quantization-step update: giảm n đi 1: n=3

Second pass:

Khởi tạo:

Trang 36

Hình 21: Minh họa tiến trình Second Pass

Đầu tiên kiểm tra con cháu chắt,…của tọa độ (0,1)  hai hệ số 13 và 10 lớn hơn giá trị

ngưỡng nên chúng quan trọng, tức là D(0,1) là quan trọng  ta gửi đi 1 bit 1 và kiểm tra

con của tọa độ (0,1), tức là O(0,1) Con đầu tiên có giá trị là 13  quan trọng và dương 

gửi đi 1 bit 1 và 1 bit dấu 1; con thứ 2 cũng tương tự  gửi đi 1 bit 1 và 1 bit 1; ta chuyển

tọa độ của 2 con đến LSP; 2 node con tiếp theo đều không quan trọng  gửi đi 2 bit 0 và

chuyển chúng đến LIP Vì L(0,1)  nên ta loại D(0,1) ra khỏi LIS Tương tự với D(1,0)

D(1,1), ta thấy các phần tử đều không quan trọng  gửi đi 2 bit 0

Refinement pass:

Trang 37

39

Hình 22: Minh họa Refinement pass

LSP từ pass trước: chỉ có 1 phần tử có hệ số là 26 MSB thứ 3 của 26 là 1  truyền bit 1

Qua bước second pass ta truyền đi 13 bit: 000 11111 00 1

Quantization-step update: giảm n đi 1: n=2

Third pass:

Khởi tạo:

Hình 23: Minh họa khởi tạo Thirdpass

Ngưỡng n22 4

Trang 38

40

Hình 24: Minh họa tiến trình Third pass

Cách làm tương tự trên, chuỗi bit sẽ là: 10111010101101100110000010 Danh sách được cập nhật lại là:

Hình 25: Minh họa kết quả tiến trình Third pass

Giải mã

First pass:

Khởi tạo:

Trang 39

41

Hình 26: Minh họa khởi tạo First Pass

Giá trị được truyền đi ở first pass: n = 4 và chuỗi bit 11000000

Hình 27: Minh họa tiến trình First Pass

Ta giả sử rằng giá trị ban đầu của n được truyền đến bộ giải mã (n=4), nhờ đó ta thiết lập được giá trị ngưỡng ban đầu là 16 Chuỗi bit được truyền đi ở first pass là 11 000 000, như vậy hệ số đầu tiên của LIP là quan trọng và dương, còn lại tất cả các hệ số khác đều không quan trọng Hệ số quan trọng được khôi phục sẽ có giá trị được tính là

2422

2

2nn1  4  3 

Như vậy qua first pass, các hệ số được khôi phục lại là:

Hình 28: Minh họa hệ số được khôi phục của First Pass

Danh sách các tập hợp được cập nhật lại như sau:

Trang 40

42

Hình 29: Minh họa danh sách các tập hợp sau cập nhật

Second pass:

Hình 30: Minh họa tiến trình Second pass

Giảm n đi 1 (n=3) và xem xét chuỗi bit được truyền đi 000 11111 00 00 1 Từ việc 3 bit đầu tiên là 0 và chỉ có 3 phần tử trong LIP nên tất cả các phần tử ở LIP đều là không quan trọng Các bit tiếp theo nói lên thông tin ở trong tập LIS

Bit tiếp theo là 1=> tập hợp có node gốc ở tọa độ (0,1) là quan trọng, theo danh sách LIS thì tập này là loại D nên giá trị hệ số được giải mã tiếp theo sẽ là node con của (0,1)

Bit tiếp theo là 111100 chứng tỏ hai con đầu tiên của (0,1) là quan trọng và dương, còn 2 con sau thì không quan trọng Do đó, ta chuyển hai con đầu tiên đến LSP và 2 con sau đến LIP Giá trị của hai hệ số quan trọng này được khôi phục đều là 23 22 12 Ta chuyển   0,1D

ra khỏi LIS

Hai bit tiếp theo là 00 chứng tỏ là hai tập tiếp theo trong LIS là không quan trọng

Bit cuối cùng tương ứng với bước refinement pass có giá trị là 1, ta cập nhật giá trị khôi phục của hệ số ở tọa độ (0,0) là 2423128

Như vậy các hệ số khôi phục qua bước second pass là:

Ngày đăng: 23/01/2021, 10:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w