Đại Học Quốc Gia TP.HCM
Trường Đại Học Công Nghệ Thông Tin
BÀI THU HOẠCH MÔN
ĐIỆN TOÁN LƯỚI & ĐÁM MÂYĐỀ TÀI:
SONG SONG HÓA THUẬT TOÁN HISTOGRAM EQUALIZATION
Người thực hiện: :Dương Trí Dũng
TP.HCM – 2014
Trang 2LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến thầy PGS.TS Nguyễn PhiKhứ đã tận tình truyền đạt kiến thức, đóng góp ý kiến cũng như hướng dẫn để em thực hiện bài thu hoạch này.
Mặc dù đã rất cố gắng nhưng bài thu hoạch khó tránh khỏi những thiếu sót, em rất mong thầy cô và bạn bè đóng góp ý kiến để bài thu hoạch hoàn thiện hơn.
Tp HCM, tháng 06 năm 2014 Dương Trí Dũng
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong tiểu luận là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác.
Dương Trí Dũng (đã ký)
Trang 4LỜI MỞI ĐẦU 7
Chương 1 TỔNG QUAN VỀ CHIẾN LƯỢT SONG SONG VÀ XỬ LÝ ẢNH 8
1.1 Chiến lượt song song 8
1.2 Xử lý ảnh 9
Chương 2 LÝ THUYẾT SONG SONG VÀ THUẬT TOÁN HISTOGRAM EQUALIZATION 11
2.1 Lý thuyết song song 11
2.1.1 Các dạng máy tính song song 11
2.1.2 Các mô hình tính toán song song 13
2.1.3 Các phương pháp đánh giá độ phức tạp của các thuật toán song song hóa 16
2.2 Lý thuyết xử lý ảnh 18
2.2.1 Điểm ảnh (picture Element) 18
2.2.2 Độ phân giải của ảnh 18
2.2.3 Mức xám của ảnh 19
2.2.4 Định nghĩa ảnh số 19
2.2.5 Khái nhiệm Histogram Equalization 19
Chương 3 TRÌNH BÀY THUẬT GIẢI TUẦN TỰ VÀ CHIẾN LƯỢT SONG SONG HÓA THUẬT TOÁN HISTOGRAM EQUALIZATION 21
3.1 Thuật toán Histogram Equalization tuần tự [4] 21
3.1.1 Trình bày thuật toán 21
3.1.2 Độ phức tạp của giải thuật: 23
3.2 Thuật toán Histogram Equalization song song 24
3.2.1 Chiến lượt song song hóa 24
3.2.2 Trình bày thuật toán 25
Chương 4 THỰC NGHIỆM VÀ THẢO LUẬN 30
Trang 5Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 31
Trang 6Hình 3.1 Dữ liệu của ảnh ban đầu 22
Hình 3.2 Dữ liệu sau sau các phép tính của thuật toán 23
Hình 3.3 Dữ liệu sau khi thay thế mức xám 23
Hình 3.3 Chiến lượt song song hóa thống kê ở bước 1 24
Hình 3.4 Chiến lượt song song hóa thống kê ở bước 3 25
Hình 3.10 Gán giá trị pixem mới tại mỗi Slave 28
Hình 3.11 Tổng hợp dữ liệu tại Master và kết thúc thuật toán 28
Trang 7LỜI MỞI ĐẦU
Lập trình song song bao hàm việc thiết kế một hệ thông tính toán sử dụng nhiều bộ xử lý để giải quyết một bài toán Lập trình song song làm tăng tốc độ thực hiện của chương trình bằng cách chia chương trình thành nhiều phần có thể thực hiện đồng thời và mỗi phần được thực hiện trên một bộ vi xử lý về lý thuyết thì mộtchương trình có thuật toán tôi ưu và phù hợp vổi tính toán song song được thực hiệntrên n bộ vi xử lý có thể chạy nhanh n lần so với khi thực hiện trên một bộ vi xử lý [3]
Đề tài lập trình song song đã được nghiên cứu rât rông lãi trên thế giới trong nhiều năm qua Có rất nhiều project nghiên cứu về lập trình song song và các software hổ trợ lập trình song song PVM là một hệ lập trình song song khá phổ biến hiện nay PVM cung cấp một môi trường phần mềm dựa trên hệ thông Message-passing Multicomputer được phát triển bởi Oak Ridge National
Laboratories PVM có một thư viện các thủ tục và hàm hổ trợ lập trình song song cóthể sử dụng với Ngôn ngữ C++ PVM có thể chạy trên nhiều hệ điều hành khác nhau như Unix, Windows NT, Windows 95, Linux [3]
Mục tiêu của tiểu luận là nghiên cứu lập trình song song và ứng dụng lập trình song song để xây dựng các thuật toán song song đạt hiệu quả cao trong việc nén tín hiệu video và hình ảnh, làm tăng tốc độ nén tín hiệu Chương trình cài đặt thuật toán song song bằng ngôn ngữ Visual C++ sử dụng thư viện PVM chạy trên môi trường windows 32bit như windows 95/97/98/NT [3]
Trang 8Chương 1 TỔNG QUAN VỀ CHIẾN LƯỢT SONG SONG VÀ XỬ LÝ ẢNH
1.1 Chiến lượt song song
Các bài toán thực tế luôn đòi hỏi máy tính phải thực hiện nhanh để cho được kết quả trong một khoảng thời gian chấp nhận được Tuy nhiên tốc độ của các máy tính hiện đại và nhanh nhất hiện nay vẫn chưa đáp ứng được [3]
Các bài toán đòi hỏi tính toán nhanh bao gồm các bài toán về phương pháp tính và các bài toán giả lập khoa học kỹ thuật Các bài toán này cần một khối lượng tính toán rất lớn (có thể lên đến hàng tỷ tỷ phép toán) trên một khối lượng dữ liệu khổng lồ Các phép tính này phải hoàn thành trong mộl thời gian chấp nhận được đốì với bài toán Ví dụ với bài toán về dự báo thời tiết nếu phải cần 2 ngày để thông báo kết quả Ihời tiết của ngày hôm sau thì bài toán sẽ trô nôn vô nghĩa Thực tế trên nhiều lãnh vực nhiều bài toán không thể giải quyết trong thời gian châp nhận được đốì với các máy tính nhanh nhất hiện nay [3]
Ví dụ: Bài toán dự đoán thời tiết bằng máy tính đòi hỏi phải chạy trên các máy tính cực mạnh Bầu khí quyển trái đất được chia thành các miền 3 chiều gọi là cell Bài toán cần giải nhiều phương trình phực tạp với sô" ẩn rất lớn để bắt được các thay đổi khác nhau Các điều kiện trong mỗi cell (nhiệt độ, áp suất, độ ẩm, tốc độ và hướng gió ) được tính tại mỗi thời điểm bằng cách dùng các điều kiện tại thời điểm ưưđc Các phép tính trên mỗi cell được lặp lại nhiều lần tại mỗi thời điểm khác nhau cho đến khi đạt được kết quả mong muôn Giả sử bầu khí quyển chia thành các ccll kích thước 1 mile X 1 mile X 1 mile Một dự báo thô sơ cần khoảng 5xl08 cell Giả sử tại mỗi thời điểm mỗi cell cần 200 phép tính sô" chấm động Vậy tại một thời điểm cần 10!1 phép toán chấm động Nếu muôn dư báo ihời tiết Irong 10 ngày dùng bước thời gian là 10 phút thì cần tất cả là 104 thời điểm, tức là 1015 phép tính số chấm động Một máy tính hoạt động với tốc độ lOOMflops (108 só chấm động /1 giây) sẽ mất khoảng 107 giây hay trên 100 ngày để thực hiện phép tính ??? [3]
Trang 9Một phương pháp để tăng tốc độ tính toán đã được nghiên CƯÚ trong nhiều năm nay là xử lý song song Mục đích chính của xử lý song song là các phép toán được Ihực hiện đồng thời do đó giảm được thời gian thực hiện.
Bằng cách dùng nhiều bộ vi xử lý hoạt động cùng nhau trên một hệ thôYig Bài toán chính được chia thành nhiều phần, mỗi phần được thực hiện song song trên cácbộ vi xử lý khác nhau Lập trình bài toán theo phương pháp này gọi là lập trình songsong [3]
Một máy tính song song (parallel Computer) đơn giản là một tập hợp các bộ vi xử lý hay các máy tính được nôi với nhau thông qua mạng máy tính Ý tưởng củamáy tính song song la : n máy tính có thể thực hiện nhanh gấp n lần một máy tính đơn thực hiện, do đó bài toán thực hiện trên n máy tính sẽ thực hiện trong khoảng 1/n thời gian thực hiện trên máy đơn [3]
1.2 Xử lý ảnh
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó [2]
Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay Nó là môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác.Đầu tiên phải kể đến Xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn Thứ hai, các công cụ toán như Đại số tuyến tính, Sác xuất, thống kê Một số kiến thứ cần thiết như Trí tuệ nhân tao, Mạng nơ ron nhân tạo cũng đượcđề cập trong quá trình phân tích và nhận dạng ảnh [2]
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh và phân tích ảnh Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền qua cáp từ Luân đôn đến New York từ những năm 1920.Vấn đề nâng cao chất lượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh Việc nâng cao chất lượng ảnh được phát triển vào khoảng những năm
Trang 101955 Điều này có thể giải thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xử lý ảnh sô thuận lợi Năm 1964, máy tính đã có khả năng xử lý và nâng cao chất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹbao gồm: làm nổi đường biên, lưu ảnh Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển không ngừng Các phương pháp tri thức nhân tạo như mạng nơ ron nhân tạo, các thuật toán xử lý hiện đại và cải tiến,các công cụ nén ảnh ngày càng được áp dụng rộng rãi và thu nhiều kết quả khả quan [2]
Trang 11Chương 2 LÝ THUYẾT SONG SONG VÀ THUẬT TOÁN HISTOGRAM EQUALIZATION
2.1 Lý thuyết song song
2.1.1 Các dạng máy tính song song
Hê thống Shared memory Multiprocessor [6]
Hệ thống Shared Memory Mulliprocessor gồm nhiều processor, các
processor trao đổi thông tin với nhau thông qua bộ nhớ chung Bộ nhớ chung còn gọi là bộ nhớ loàn cục (global memory)
Hình 2.1 Hệ thống share memory multiprocessor
Nguồn: Hệ thống share memory multiprocessor theo [6]
Việc trao đổi thông tin giữa các processor thông qua 2 lệnh:Global read (X, Y)
Global write (U, V)
Trang 12Lệnh Global read đọc dữ liệu X trong bộ nhớ chung và lưu vào biến cục bộ Y Tương lự lệnh global write ghi biến cục bộ u vào biến V trong bộ nhớ chung.
Hộ thông Message-Passing Multicomputer [6]
Hệ thông gồm một tập hợp các máy tính được nối với nhau qua liên kết mạng.Mỗi máy tính gồm một bộ vi xử lý và bộ nhớ liêng Bộ nhớ liêng không thể truy xuất bởi các máy tính khác mà chỉ có thể truy xuất bởi chính bộ vi xử lý nối với nó hệ thông mạng cho phép các máy tính trao đổi các thông báo qua lại với nhau Các thông báo có thể chứa các dữ liệu mà các máy tính khác cần để tính toán Hệ thống này gọi là Message Passing Multicomputer hay đơn giản là Multicomputer.
Hình 2.2 Hệ thống message passing
Nguồn: Hệ thống message passing theo [3]
Chương trình thực hiện trên Multicomputer được chia thành nhiều phần , cácphần được thực hiện đồng thời trên các máy tính.
Một bài toán được chia thành các process đồng thời, mỗi process biểu diễn một phần nhỏ của bài toán Nếu có 6 process và 6 máy tính thì mỗi process được thực hiện trên một máy tính Nếu sô' process nhiều hơn số’ máy tính thì nhiều hơn một process sẽ được thực hiện trên một máy tính Các process liên lạc với nhau bằng cách gởi /nhận các message thông qua mạng máy tính.
Để diễn tả các Ihuật toán trên mồ hình multicomputer ta dùng 2 lệnh send và receive để trao đổi thông tin giữa các máy tính.
send (X, i)receive (Y, j)
Trang 13Một processor p thực hiện lệnh send sẽ gởi thông báo X đến processor Pị, sau đó p sẽ tiếp tục thực hiện lệnh kế tiếp sau lệnh send Một processor p thực hiện lệnh receive tạm ngưng chương trình đang thực hiện cho đến khi dữ liệu được nhận từ prccessor Pj p lưu dữ liệu vào biến Y và tiếp tục thực hiện chương trình.
2.1.2 Các mô hình tính toán song song
Bất kỳ máy tính tuần tự hay song song đều thực hiện các lệnh trên các dữ liệu cần xử lý Một dòng các lệnh (stream of instruction) ra lệnh cho máy tính cách thực hiện tại mỗi bước Một dòng dữ liệu (stream of data) gồm các dữ liệu được xử lý bởi dòng các lệnh Phụ thuộc tồn tại một hay nhiều dòng lệnh hay dữ liệu la có thể chia thành 4 lớp máy tính :
Single Instruction stream, Single Data Stream (SISD)Multiple Instruction stream, Single Data Stream (MISD)Single Instruction stream Multiple Data Stream (SIMD)Multiple Instruction stream, Multiple Data Stream (MIMD)
SISD Computer [6]
Mô hình này là mô hình máy tính Von Neuman Lớp máy tính này gồm một đơn vị xử lý nhận một dòng lệnh hoạt động trên một dòng dữ liệu CPU thực hiện chương trình trong bộ nhớ một cách tuần tự từng lệnh một Thuật toán trên mô hình này là tuần tự.
Trang 14là thuật toán song song, mỗi processor xử lý môt chương trình riêng trên một dòng dữ liệu chung.
Thuật toán của mô hình này là thuật toán song song Mỗi processor xử lý một chương trình duy nhât được chép và lưu trong bộ nhớ riêng Có N dòng dữ liệu,mỗi dòng ứng với một processor.
Các processor hoạt động một cách đồng bộ Tại mỗi thời điểm các processor Ihực hiện một lệnh giông nhau nhưng trên các dữ liệu khác nhau.
Trang 15Thuật toán trên mô hình này là thuật toán song song, mỗi processor xử lý môt chương trình riêng trên một dòng dữ liệu riêng.Các processor hoạt động có thể đồng bộ hay không đồng bộ Tại mỗi thời điểm các processor có Ihể ihực hiện các lệnh khác nhau trên các dữ liệu khác nhau.
Trang 16Hình 2.6 MIMD Computer
Nguồn: MIMD Computer theo [3]
2.1.3 Các phương pháp đánh giá độ phức tạp của các thuật toán song song hóa
Speedup [3]
Một phương pháp để đánh giá hiệu quả của thuậl toán song song là dùng Speedup Speedup S(n) được định nghĩa như sau :
Trang 17S(n) = thời gian thực hiện khi dùng một processor _ ts / thời gian thực hiện khi dùng n processor t
Ta có S(n) < n do đó giải thuật song song nên được thiết kế sao cho speedup S(n) « n.
Các nguyên nhân có thổ làm giảm giá trị speedupThời gian trao đổi thông tin giữa các processor
Các processor không đồng hộ, một s ố tốc độ xử lý cao, một sô tốc độ xử lý chậm
Các phép tính thêm vào Irong thuật toán song song nhưng khổng có trong thuật toán tuần tự.
Có thể tồn tại các phần không Ihể song song hóa mà phải thực hiện bằng thuật toán tuần tự.
Độ phức tạp v[3]
Cũng như các thuật toán tuần tự , các thuật toán song song có thể được đánh giá bằng độ phức tạp thuật toán Độ phức tạp chính là số các bước tính toán cần thiết để thực hiện thuật toán.7
Lập trình song song là chia bài toán thành nhiều process có thể thực hiện mộtcách đồng thời.
Thời gian thực hiện song song tp gồm thời gian tính toán tcoịnp và thời gian trao đổi thông tin tcomm
Ta có: tp — tcoinm + tcomp
Để dễ phân tích thuật toán ta giả sử tất cả các processor đều hoạt động ở cùng một tốc độ và mỗi lệnh trao đổi thông tin đều cùng một thời gian thực hiện.Đánh giá độ phức tạp thời gian tính toán tcomm ta tính sô" bước tính toán của mỗi process Số^ lớn nhâ\ các bước tính toán của tất cả các process chính là độ phức tạp.
Thời gian trao đổi thông tin cũng đo một cách tương tự bằng cách tính số bước gởi và nhận thông tin trong thuật toán.
Trang 182.2 Lý thuyết xử lý ảnh
2.2.1 Điểm ảnh (picture Element)
Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng Để xử lý bằng máy tính (số), ảnh cần phải được số hoá Số hoá ảnh là sự biến đổi gần đúngmột ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng (mức xám) Khoảng cách giữa các điểmảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng Mỗi một điểm như vậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x , y). v[3]
Định nghĩa: Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó đượcchọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là mộtphần tử ảnh v[3]
2.2.2 Độ phân giải của ảnh
Định nghĩa v[3]: Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị.
Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt ngườivẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợp tạo nên mộtmật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều.
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểm ảnh (320*200) Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA 17” độ phân giải 320*200 Lý do: cùng một mật độ (độ phân giải) nhưng diện tích màn hình rộng hơn thì độ mịn (liên tục của các điểm) kém hơn v[3]