TÌM HIỂU KỸ THUẬT MÃ HÓA LOẠT DÀI – RLE (RUN LENGTH ENCODING) VÀ ỨNG DỤNG TRONG MÃ HÓA ẢNH BMP, PCX

18 6.7K 35
TÌM HIỂU KỸ THUẬT MÃ HÓA LOẠT DÀI – RLE (RUN LENGTH ENCODING) VÀ ỨNG DỤNG TRONG MÃ HÓA ẢNH BMP, PCX

Đ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

LỜI NÓI ĐẦU Trong xã hội hiện nay, khi công nghệ thông tin (CNTT) ngày càng phát triển và tác động và mọi mặt của cuộc sống. Một trong những nhu cầu lớn của CNTT là việc lưu trữ thông tin. Nếu chỉ đơn thuần lưu trữ dữ liệu thì dung lượng lưu trữ sẽ rất cao. Do đó gây nên sự tiêu tốn tài nguyên lưu trữ. Để giải quyết vẫn đề này, chúng ta đã nghiên cứu đến các thuật toán nén dữ liệu nhằm hướng tới việc sử dụng ít dung lượng hơn nhưng dữ liệu gốc vẫn thể hiện được chính xác hoặc tương đối chính xác dữ liệu gốc ban đầu. Nén dữ liệu rất quan trọng, giúp giảm tải tài nguyên lưu trữ. Tuy nhiên, nén dữ liệu chúng ta cần tiêu tốn tài nguyên vào việc nén và giải nén, đòi hỏi nhiều hơn về phần cứng và xử lý. Tuy nhiên, với sự phát triển của khoa học công nghệ, năng lực tính toán của thiết bị ngày càng cao, và nén dữ liệu ngày càng trở nên quan trọng và được ứng dụng rộng rãi. Xử lý ảnh là một trong những ngành khoa học còn tương đối mới mẻ so với nhiều ngành khoa học khác nhưng nó đang được tập trung nghiên cứu và phát triển vì những ứng dụng thực tiễn của nó trong nhiều ngành, nhiều lĩnh vực khác nhau. Trong đó “Nén ảnh” là một phần của xử lý ảnh có ứng dụng to lớn trong truyền thông và trong lưu trữ. Chúng tôi xin chân thành cảm ơn Thầy Lương Mạnh Bá đã tận tình hướng dẫn và truyền thụ kiến thức trong suốt thời gian qua để chúng tôi có thể hoàn thiện bài tập lớn này. Nhóm sinh viên I. TỔNG QUAN VỀ NÉN ẢNH 1. Giới thiệu Nén ảnh là một kỹ thuật mã hóa các ảnh số hóa nhằm giảm số lượng các bit dữ liệu cần thiết để biểu diễn ảnh. Mục đích là giảm đi những chi phí tron việc lưu trữ và thời gian để truyền ảnh đi xa trong truyền thông nhưng vẫn đảm bảo được chất lượng ảnh. Nén ảnh thực hiện được là do một thực tế: thông tin trong bức ảnh không phải là ngẫu nhiên mà có trật tự, tổ chức. Vì thế nếu bóc tách được tính trật tự, cấu trúc đó thì sẽ biết phần thông tin nào quan trọng nhất trong bức ảnh để biểu diễn và truyền đi với số lượng ít bit hơn so với ảnh gốc mà vẫn đảm bảo tính đầy đủ của thông tin. Ở bên nhận quá trình giải mã sẽ tổ chức, sắp xếp lại được bức ảnh xấp xỉ gần chính xác so với ảnh gốc nhưng vẫn thỏa mãn chất lượng yêu cầu. Nén ảnh đạt được bằng cách loại bỏ các phần dư thừa trong ảnh đã được số hoá. Dư thừa có thể là dư thừa thông tin về không gian, dư thừa về cấp xám hay dư thừa về thời gian. 2. Các khái niệm cơ bản. • Pixel (Picture alement): Phần tử ảnh. Ảnh trong thực tế là một ảnh liên tục về không gian và về giá trị độ sáng. Để có thể xử lý ảnh bằng máy tính cần thiết phải tiến hành số hóa ảnh. Như vậy một ảnh là một tập hợp các pixel. Mỗi pixel là gồm một cặp tọa độ x, y và màu. Cặp tọa độ x, y tạo nên độ phân giản (resolution). Màn hình máy tính có nhiều loại độ phân giải khác nhau như: 320 x 200, 640 x 350, 1024 x 768 ... • Mức xám (Graylevel) Mức xám là kết quả sự mã hóa tương ứng của mỗi cường độ sáng của mỗi điểm ảnh với một giá trị số kết quả của quá trình lượng hóa. • Dữ liệu Trong một bài toán, dữ liệu bao gồm một tập các phần tử cơ sở mà ta gọi là dữ liệu nguyên tử. Nó có thể là một chữ số, một ký tự... nhưng cũng có thể là một con số, một từ... điều đó phụ thuộc vào từng bài toán. • Nén dữ liệu Nén dữ liệu là quá trình giảm dung lượng thông tin “dư thừa” trong dữ liệu gốc và làm cho lượng thông tin thu được sau nén thường nhỏ hơn dữ liệu gốc rất nhiều. Do vậy, tiết kiệm được bộ nhớ và giảm thời gian trao đổi dữ liệu trên, mang lại thông tin mà lại cho phép chúng ta khôi phục lại dữ liệu ban đầu. • Tỷ lệ nén Tỷ lệ nén là một trong các đặc trung quan trọng của mọi phương pháp nén. Tỷ lệ nén được định nghĩa như sau: Tỷ lệ nén = 1r% với r là tỷ số nén được định nghĩa: r = kích thước dữ liệu gốc kích thước dữ liệu nén. Như vậy hiệu suất nén = (1 – tỷ lệ nén)100%. Đối với ảnh tĩnh, kích thước chính là số bit biểu diễn toàn bộ bức ảnh. Đối với ảnh video, kích thước chính là số bit để biểu diễn một khung hình video (video frame). 3. Cách phân loại nén ảnh. Dựa vào nguyên lý nén: Nén không mất thông tin: Sau khi giải nén ta thu được chính xác dữ liệu gốc. Nén có mất thông tin: Sau khi giải nén ta không thu được dữ liệu như bản gốc. Dựa vào cách thức thực hiện nén: Phương pháp không gian: Tác động trực tiếp lên việc lấy mẫu của ảnh trong miền không gian.Phương pháp sử dụng biến đổi: Tác động lên sự biến đổi của ảnh gốc. Dựa vào triết lý của sự mã hóa: Các phương pháp nén thế hệ thứ nhất: Gồm các phương pháp mà mức độ tính toán là đơn giản. Các phương pháp nén thế hệ thứ hai: dựa vào độ bão hòa của tỷ lệ nén. 4. Các phương pháp nén. • Nén mất dữ liệu (lossy compression): Hay gặp nhất trong công nghệ thông tin là nén hình ảnh và âm thanh. Có nhiều giải thuật được đặt ra để đáp ứng yêu cầu giảm thiểu kích thước của file ảnh, file âm thanh sao cho vẫn duy trì được chất lượng ở mức độ chấp nhận được. Với việc nén ảnh, những giải thuật này đều dựa trên nền tảng là loại bớt những màu mà mắt người không hoặc khó cảm nhận được, chỉ giữ lại những màu mà mắt người không hoặc khó cảm nhận được, chỉ giữ lại những màu chủ yếu thực sự ảnh hưởng tích cực lên khả năng cảm nhận màu của mắt. Nếu đã từng biên tập hình ảnh bằng Photoshop, bạn sẽ dễ dàng nhận thấy sự khác biệt khá lớn giữa bảng màu chuẩn và bảng màu dùng cho hình ảnh tải lên từ web, đó chính là hình nén. Trong bảng màu web, các màu trung gian, chuyển tiếp đã bị lược bỏ mất, thay vào đó là các màu tương đương cận kề. Tuy 2 bảng màu này dễ phân biệt nhưng vậy nhưng khi xem một hình ảnh bạn không dễ dàng nhận biết được đó là file .bmp (chưa nén), .gif hay .jpg(ảnh nén). Còn một cách nữa cũng sử dụng kiểu mất dữ liệu để nén hình là giảm độ phân giải, tức là bớt số điểm ảnh trên inch (dots per inch dip). Cách này khi được sử dụng, tùy trường hợp mà phải gia giảm cho phù hợp. Đọ phân giải cao quá thì phú chỗ, nhưng giảm đi nhiều quá thì bị “vỡ hình”. Đối với âm thanh, có nhiều chẩn nén khác nhau như: Windows Media, MP3, Real G2... nhưng thông dụng nhất hiện nay là MP3. Nén theo chuẩn MP3, kích thước file audio có thể được thu nhỏ đi 8 lần so với kích thước ban đầu. Để làm được như vậy, người ta sử dụng một kỹ thuật gọi là lấy mẫu âm, thử nghiệm rồi bỏ bớt những tone mà tai người không nghe được hoặc kém nhạy. Do đó, chất lượng âm của MP3 rất khó phân biệt với âm của đĩa CD chuẩn. • Nén không mất dữ liệu (lossless compression): thể hiện dữ liệu hiệu quả hơn (it bit hơn) mà không làm mất thông tin. Không mất thông tin được hiểu là từ dữ liệu đã được nén, ta có thể khôi phục hoàn toàn dữ liệu ban đầu. Nén không mất dữ liệu bắt buộc sử dụng trong việc nén các văn bản, bảng tính, các đoạn code thực thi... là những loại dữ liệu cần chính xác hoàn toàn. Các thuật toán nén không mất dữ liệu phổ biến gồm: Nén dữ liệu hàng loạt (RLE – Run Length Encoding), Lempel – Ziv (LZ), Huffman, Delta. • Nếu phân loại các phương pháp nén theo kích cỡ (size) dữ liệu được lấy ra từ dữ liệu gốc để nén thì có thể chia thành 04 nhóm: Method Kích cỡ nhóm Dữ liệu gốc (đầu vào) Dữ liệu nén CS Q Cố định Cố định Huffman Cố định Thay đổi Arithmetic Thay đổi Thay đổi Run – Length, LZW Thay đổi Cố định II. KỸ THUẬT MÃ HÓA LỌAT DÀI – RLE (RUN LENGTH ENCODING) 1. Thông tin chung Nén dữ liệu hàng loạt – Run Length Encoding (RLE) là phương pháp nén không mất dữ liệu. RLE hoạt động làm việc bằng cách giảm kích thước vật lý của chuỗi các ký tự lặp lại trong một chuỗi dữ liệu bằng cách biểu diễn khác. Nén dữ liệu hàng loạt có thể áp dụng cho mọi loại dữ liệu mà không phụ thuộc vào nội dung thông tin của dữ liệu đó, tuy nhiên mức độ hiệu quả của việc nén hay tỷ lệ nén rất phụ thuộc vào nội dung dữ liệu. Với những loại dữ liệu mà thông tin trong đó ít lặp lại, việc áp dụng nén RLE có thể gây hiệu ứng ngược – tạo ra dữ liệu sau khi nén dung lượng lớn hơn cả dữ liệu gốc. Bởi vậy, RLE thường chỉ được áp dụng trong việc nén ảnh BMP, TIFF, loại dữ liệu còn nhiều “loạt” dữ liệu lặp lại. 2. Ý tưởng phương pháp Ý tưởng của phương pháp nén dữ liệu hàng loạt là tìm loạt dữ liệu liền nhau lặp lại, thay nó bằng một dữ liệu đại diện khác, mục đích để giảm kích thước dữ liệu gốc. Loạt dữ liệu liền nhau được gọi là “Run Length”. Chúng ta sẽ tìm hiểu ứng dụng của phương pháp trong việc nén dữ liệu ảnh. 3. RLE trong nén ảnh. RLE là ứng viên tự nhiên trong việc nén dữ liệu đồ họa. Một ảnh số chứa những chấm nhỏ là pixel. Mỗi pixel có thể là 1 bit, xác định màu, đen hoặc có thể là nhiều bit để quy định nhiều màu khác nhau cho pixel. Ta có thể coi rằng những pixels được lưu trữ trong một mảng gọi là bitmap trong bộ nhớ. Pixels thường được sắp xếp trong bitmap dưới dạng các dòng, pixels đầu tiên là ở phía trên cùng bên trái, pixel cuối cùng ở dưới cùng bên phải. a. Nguyên tắc Nguyên tắc của phương pháp này là phát hiện một loạt các điểm ảnh lặp lại liên tiếp, ví dụ: 110000000000000011. Ta thấy điểm ảnh có giá trị 0 xuất hiện nhiều lần liên tiếp thay vì phải lưu trữ toàn bộ các điểm ảnh có giá trị 0 ta chỉ cần lưu trữ chúng bằng cách sử dụng các cặp (độ dài loạt, giá trị). Ví dụ: Cho một chuỗi nguồn d : d =5 5 5 5 5 5 5 5 5 5 19 19 19 19 19 0 0 0 0 0 0 0 23 23 23 23 23 23 23 23 Ta sẽ có chuỗi mới : (10 5) (5 19) (7 0) (8 23) Tỷ số nén = 308 = 2.5 Đối với ảnh đen trắng chỉ sử dụng 1 bit để biểu diễn 1 điểm ảnh thì phương pháp này tỏ ra rất hiệu quả, ta thấy điều đó qua ví dụ sau : Ví dụ: Cho một chuỗi nguồn d: 000000000000000111111111100000000001111111111000000000000000 Ta có chuỗi mới: (15, 10, 10, 10, 15) Tỷ số nén = 60 bit (54 bit) = 3 (chỉ sử dụng 4 bit để thể hiện độ dài loạt và không thể hiện giá trị loạt vì ảnh đen trắng chỉ có 2 giá trị bit là 0 hoặc là 1) Chú ý: Đối với ảnh chiều dài của một dãy lặp có thể lớn hơn 255, nếu ta dùng 1 byte để lưu trữ chiều dài thì sẽ không đủ. Giải pháp được dùng là tách chuỗi đó thành 2 chuỗi: một chuỗi có chiều dài là 255, chuỗi kia có chiều dài còn lại. Phương pháp nén RLE chỉ đạt hiệu quả khi chuỗi lặp lớn hơn 1 ngưỡng nhất định nào đó hay nói các khác trong ảnh cần nén phải có nhiều điểm ảnh kề nhau có cùng giá trị màu. Do đó phương pháp này không đem lại cho ta kết quả một cách ổn định vì nó phụ thuộc hoàn toàn vào ảnh nén chỉ thích hợp cho những ảnh đen trắng hay ảnh đa cấp xám. Ví dụ: Ta có một chuỗi nguồn: d=5 7 9 11 13 18 28 38 48 58 30 35 40 45 Chuỗi kết quả sau khi mã hoá : 1 5 1 7 1 9 1 11 1 13 1 18 1 28 1 38 1 48 1 58 1 30 1 35 1 40 1 45 Tỷ số nén = 14 28 = 0.2 Như vậy chuỗi sau khi mã hoá đã lớn hơn nhiều chuỗi nguồn ban đầu. Do đó cần phương pháp cải tiến để xử lý những trường hợp như trên tránh làm mở rộng chuỗi dữ liệu nguồn nghĩa là chỉ mã hoá độ dài loạt dữ liệu lặp lại. Người ta đã đưa ra cách đó là thêm kí tự tiền tố vào trước độ dài loạt, việc giải mã được thực hiện nếu gặp kí tự tiền tố với độ dài loạt và giá trị điểm ảnh theo sau. Ví dụ: Ta có chuỗi nguồn: d = 5 8 4 8 8 8 8 8 8 8 8 10 10 10 10 10 10 10 10 10 Giả sử kí tự tiền tố là dấu “+” ta có : 5 8 4 +8 8 + 9 10 Tỷ số nén = 19 9 = 2.1 Tuy nhiên trong một số trường hợp các điểm ảnh có độ tương quan với nhau vể giá trị mức xám như trong ví dụ dưới đây ta có thể tiến hành xử lý như sau. Ví dụ: Ta có một chuỗi nguồn: d = 5 7 9 11 13 18 28 38 48 58 55 60 65 70 75 80 85 90 95 100 Ta có dựa vào độ tương quan này để có được hiệu quả nén cao, bằng việc áp dụng e(i) = d(i) d(i1) sẽ thu được : 5 2 2 2 2 5 10 10 10 10 3 5 5 5 5 5 5 5 5 5 áp dụng phương pháp nén loạt dài ta dễ dàng thu được : (5 1)( 2 4)(5 1)(10 5)(3 1)(5 9) b. Thuật toán: Thuật toán như sau : Tiến hành duyệt trên từng hàng cho đến khi kết thúc vùng dữ liệu ảnh, trong quá trình duyệt tiến hành kiểm tra để tìm ra những loạt có cùng giá trị đồng thời chú ý những kí hiệu xuống dòng (hay kết thúc dòng), kết thúc ảnh Bitmap, … Khi gặp loạt có độ dài > 3 thì nhảy đến chế độ nén ngược lại nhảy đến chế độ không nén tuy nhiên nếu loạt > 255 thì sẽ tách ra chỉ mã < 255 sau đó mã tiếp phần còn lại. Ngoài ra còn các chế độ khác như: bắt đầu, kết thúc 1 dòng. Kết thúc khi gặp kí hiệu kết thúc bitmap (end – of bitmap) III. ỨNG DỤNG RLE TRONG MÃ HÓA ẢNH BMP, PCX. 1. Ứng dụng RLE trong mã hóa ảnh BMP. BMP được biết đến với cái tên khác là Windows bitmap , là một định dạng tập tin hình ảnh khá phổ biến. Các tập tin đồ họa lưu dưới dạng BMP thường có đuôi là .BMP hoặc .DIB (Device Independent Bitmap). Cấu trúc file BMP: Header(54 bytes) + Bảng màu (nếu có) + Data(màu từng điểm ảnh). • Header (54 bytes) bfType : Word;(2 ký tự: BM,biểu diễn theo Integer là 19778) bfSize : Longint; (File Size) bfReserved1 : Word; bfReserved2 : Word; bfOffBits : Longint; biSize : Longint; biWidth : Longint; (Độ rộng ảnh) biHeight : Longint; (Chiều cao ảnh) biPlanes : Word; biBitCount : Word; (Số bits màu :1,4,8,24) biCompression : Longint; biSizeImage : Longint; (Kích thước phần Dât ảnh = bfSize bfOffBits) biXPelsPerMeter : Longint;(Độ phân giải theo X,dùng khi in) biYPelsPerMeter : Longint;(Độ phân giải theo Y,dùng khi in) biClrUsed : Longint; biClrImportant : Longint; • Bảng màu Số bit trên mỗi điểm ảnh (bit per pixel), thường được ký hiệu bởi n. Một ảnh BMP nbit có màu. Giá trị n càng lớn thì ảnh càng có nhiều màu, và càng rõ nét hơn. Giá trị tiêu biểu của n là 1 (ảnh đen trắng), 4 (ảnh 16 màu), 8 (ảnh 256 màu), 16 (ảnh 65536 màu) và 24 (ảnh 16 triệu màu). Ảnh BMP 24bit có chất lượng hình ảnh trung thực nhất. Nhưng các loại Bitmap 1bit, 4bits, 8bits không thể khai thác hết nên chỉ liệt kê các màu được dùng trong file. Mỗi màu trong bảng màu được màu được mô tả bằng 4 bytes( BlueByte, GreenByte, RedByte, ReservByte). Ví dụ: bảng màu loại 1 bit chuẩn Windows có 8 bytes : 0,0,0,0,255,255,0 (4 bytes đầu là màu thứ 0; 4 bytes sau là màu thứ 1. Do chỉ có 0 và 1 nên mô tả mỗi điểm ảnh chỉ cần dùng 1 bit). Tương tự như vậy, bảng màu của file 4 bits có 64 bytes, lần lượt là từ màu số 0 đến màu số 15, bảng màu của file 8bits có 1024 bytes(từ 0 đến 255). Chính vì các màu được liệt kê như vậy nên các màu trong file 1 bit, 4bits, 8 bits được gọi là Indexed, còn 24 bits – True. a. Thuộc tính cơ bản chiều cao của ảnh (height), cho bởi điểm ảnh (pixel). chiều rộng của ảnh (width), cho bởi điểm ảnh. Đặc điểm nổi bật nhất của định dạng BMP là tập tin hình ảnh thường không được nén bằng bất kỳ thuật toán nào. Khi lưu ảnh, các điểm ảnh được ghi trực tiếp vào tập tin một điểm ảnh sẽ được mô tả bởi một hay nhiều byte tùy thuộc vào giá trị n của ảnh. Do đó, một hình ảnh lưu dưới dạng BMP thường có kích cỡ rất lớn, gấp nhiều lần so với các ảnh được nén (chẳng hạn GIF, JPEG hay PNG ) Định dạng BMP được hỗ trợ bởi hầu hết các phần mềm đồ họa chạy trên Windows, và cả một số ứng dụng chạy trên MS DOS.Tuy nhiên, do kích thước tập tin ảnh BMP quá lớn, định dạng BMP không phù hợp để trao đổi hình ảnh qua mạng Internet(do hạn chế về tốc độ truyền dữ liệu). Do đó, các các trang thường sử dụng ảnh dạng GIF, JPEG hay PNG. Các định dạng này hỗ trợ các thuật toán nén hình ảnh, vì vậy có thể giảm bớt kích cỡ của ảnh. b. Dữ liệu ảnh Dữ liệu ảnh được lưu từng điểm cho đến hết hàng ngang(từ trái sang phải) và từng hàng ngang cho đến hết ảnh (từ dưới lên trên). Đối với mỗi điểm ảnh loại màu Indexed, ta cần 1, 4 hoặc 8 bits để đặc trưng cho điểm đang xét ứng với màu thứ mấy trong bảng màu. Ví dụ, giá trị 0111(=7) trong loại BMP 4 bits cho biết điểm đó có màu 7(màu xám theo chuẩn Windows). Riêng loại 24bits, không mô tả màu bằng thứ tự trên bảng màu(nếu liệt kê hết bảng màu của nó thì đã tốn cả Gigabyte bộ nhớ và đĩa), mà người ta liệt kê luôn giá trị RGB của 3 màu thành phần. Ví dụ: trắng=(255,255,255), đen=(0,0,0). Như vậy, mỗi điểm ảnh loại 1 bit tốn 18 bytes(nói cách khác, 1 byte lưu được 8 điểm 1 bit), loại 4 bits – ½ byte, loại 8 bits – 1 byte và 24 – 3bytes. Tuy nhiên, tính chung cả bức ảnh thì khối dât không hoàn toàn tỉ lệ thuận như vậy,mà thường hơi lớn hơn một chút. Quy luật chung như sau: Kích thước Dât ảnh bằng dữ liệu 1 hàng nhân với chiều cao của ảnh. Dữ liệu một hàng phụ thuộc vào loại bitmap và độ rộng ảnh: + 1 bit : rowbytes= ((width + 31)div 32)4 (từ 1 đến 32 – hết 4 bytes) + 4 bits : rowbytes= ((width + 7)div 8)4 (từ 1 đến 8 – hết 4 bytes) + 8 bits : rowbytes= ((width + 3)div 4)4 (từ 1 đến 4 – hết 4 bytes) + 24 bits : rowbytes= ((3width + 3)div 4)4. Tóm lại, khi đọc từ file ra,ta phải bỏ bớt những byte hoặc bit dư nếu có, còn khi tạo file mới, lại phải thêm “đuôi” nếu dữ liệu dòng không tròn 4n bytes. Ngoài ra, nếu nhiều điểm chung 1 byte(1 bit – 8 điểm, 4 bits – 2 điểm) thì các bits cao sẽ thuộc điểm phía trái, các bit thấp – bên phải. Ví dụ: Có dữ liệu 96 trong 1 dòng ảnh 4 bits, thì dữ liệu này mô tả 2 điểm liên tiếp và điểm bên trái có giá trị 9616= 6 và điểm bên phải có giá trị 96 mod 16= 0. Vì vậy chúng ta có thể tự biết tạo một hình nền có màu sắc thay đổi theo một quy luật nào đó mà mình muốn. Ứng dựng phố biến nhất của mã hóa ảnh BMP dùng đế giấu tin trong ảnh. 2. Ứng dụng RLE trong mã hóa ảnh PCX. Định dạng ảnh PCX là một trong những định dạng ảnh cổ điển nhất. Nó sử dụng phương pháp mã hóa loạt dài RLC để nén dữ liệu ảnh. Quá trình nén và giải nén được thực hiện trên từng dòng ảnh. Thực tế, phương pháp giải nén PCX kém hiệu quả hơn so với kiểu IMG. Định dạng PCX thường được dùng để lữu trữ ảnh vì thao tác đơn giản, cho phép nén và giải nén nhanh. Tuy nhiên vì cấu trúc của nó cố định,nên trong một số trường hợp nó làm tăng kích thước lưu trữ. Cấu trúc ảnh PCX gồm có 3 phần : Header, Data of Image, Color Palette: a. Data of Image ảnh 24 bits: mỗi điểm ảnh chiếm 3 bytes mô tả ba thành phần : Red, Green,Blue. ảnh 256 màu : + Dữ liệu mỗi điểm ảnh chiếm 1 byte, chỉ số hiệu màu của điểm ảnh này. Màu có giá trị là b, bảng màu được chứa trong mảng P, thì thành phần các màu của điểm ảnh này là Pb,R,Pb,G, Pb,B. + Dữ liệu được nén theo thuật toán RUN_LENGTH với 2 bit cao làm cờ. ảnh 16 màu : + Mỗi điểm ảnh được mô tả bởi một con số, có giá trị từ 0 đến 15. Do vậy, giá trị mỗi điểm ảnh chỉ cần 4 bit để mô tả. + Dữ liệu ảnh được mã hóa theo mặt phẳng bit, sau đó nén theo thuật toán RUN_LENGTH với 2 bit cao làm cơ. b. Color Palette(Bảng màu) Ảnh 24bit: Tệp ảnh không có bảng màu. Ảnh 256 màu: + Bảng màu chiếm 2563=768 byte được đặt ở cuối tệp + Mỗi màu được mô tả bởi 3 byte thể hiện các thành phần: RED, GREEN, BLUE. + Giá trị của các thành phần RED, GREEN, BLUE được lưu trữ ở 6 bit cao. Ảnh 16 màu : + Bảng màu chiếm 163=48 byte + Mỗi màu được mô tả bởi 3 byte, thể hiện các thành phần : RED, GREEN, BLUE. + Không phụ thuộc vào số lượng màu, 48byte của baangr16 màu luôn có mặt trong phần Header. c. Header Header của các tệp ảnh PCX gồm 128 byte, được mô tả chi tiết: + 1 byte: chỉ ra kiểu định dạng. Nếu là kiểu PCXPCC nó có giá trị là 0Ah. + 1 byte: chỉ ra version sử dụng để nén ảnh, có thể có các giá trị sau: 0: version 2.5. 2: version 2.8 với bảng màu. 3: version 2.8 hay 3.0 không có bảng màu. 5: version 3.0 có bảng mà + 1 byte: chỉ ra phương pháp mã hoá. Nếu là 0 thì mã hoá theo phương pháp BYTE PACKED, nếu không là phương pháp RLE. + 1 byte: số bit cho một điểm ảnh plane. + 4 bytes: toạ độ góc trái trên của ảnh. Với kiểu PCX nó có giá trị là (0,0); còn PCC thì khác (0,0). + 4 bytes: toạ độ góc phải dưới. + 1 byte: kích thước bề rộng và bề cao của ảnh. + 1 byte: số điểm ảnh. + 1 byte: độ phân giải màn hình. + 1 byte: + 48 bytes: chia thành 16 nhóm, mỗi nhóm 3 byte. Mỗi nhóm này chứa thông tin về một thanh ghi màu. Như vậy ta có 16 thanh ghi màu. + 1 byte: số bit plane mà ảnh sử dụng. Với ảnh 16 màu, giá trị này là 4, với ảnh 256 màu (1 pixel 8 bit) thì số bit plane lại là 1. + 1 byte: số bytes cho một dòng quét ảnh. + 2 bytes: kiểu bảng màu. + 60 byte: không dùng. Định dạng PCX thường được dùng để lữu trữ ảnh vì thao tác đơn giản, cho phép nén và giải nén nhanh. Tuy nhiên vì cấu trúc của nó cố định,nên trong một số trường hợp nó làm tăng kích thước lưu trữ.   TÀI LIỆU THAM KHẢO STT TÊN TÀI LIỆU ĐỊA CHỈ TÁC GIẢ 1 Nhập Môn Xử Lý Ảnh Số Lương Mạnh Bá, Nguyễn Thanh Thuỷ 2 Các phương pháp nén ảnh số cơ bản http:www.htu.edu.vnkhoakythuatcongnghecacphuongphapnenanhsocoban.html 3 Tiểu luận môn mật mã và an toàn dữ liệu nén dữ liệu độ dài hàng loạt run length encoding http:123doc.vndocument2337045tieuluanmonmatmavaantoandulieunendulieudodaihangloatrunlengthencoding.htm 4 Luận văn Tìm hiểu một số phương pháp nén ảnh Luận văn, đồ án, đề tài tốt nghiệp

HỌC VIỆN QUẢN LÝ GIÁO DỤC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN XỬ LÝ ẢNH ĐỀ TÀI TÌM HIỂU KỸ THUẬT MÃ HĨA LOẠT DÀI – RLE (RUN LENGTH ENCODING) VÀ ỨNG DỤNG TRONG MÃ HÓA ẢNH BMP, PCX NHÓM SINH VIÊN: Trần Quốc Tuấn Trần Thị Yến Hà Nội, ngày 01 / 11 /2014 MỤC LỤC LỜI NÓI ĐẦU TỔNG QUAN VỀ NÉN ẢNH I Giới thiệu Các khái niệm 3 Cách phân loại nén ảnh 4 Các phương pháp nén II KỸ THUẬT MÃ HÓA LỌAT DÀI – RLE (RUN LENGTH ENCODING) Thông tin chung Ý tưởng phương pháp RLE nén ảnh III ỨNG DỤNG RLE TRONG MÃ HÓA ẢNH BMP, PCX 11 Ứng dụng RLE mã hóa ảnh BMP 11 Ứng dụng RLE mã hóa ảnh PCX 14 TÀI LIỆU THAM KHẢO 17 LỜI NĨI ĐẦU Trong xã hội nay, cơng nghệ thông tin (CNTT) ngày phát triển tác động mặt sống Một nhu cầu lớn CNTT việc lưu trữ thông tin Nếu đơn lưu trữ liệu dung lượng lưu trữ cao Do gây nên tiêu tốn tài nguyên lưu trữ Để giải đề này, nghiên cứu đến thuật toán nén liệu nhằm hướng tới việc sử dụng dung lượng liệu gốc thể xác tương đối xác liệu gốc ban đầu Nén liệu quan trọng, giúp giảm tải tài nguyên lưu trữ Tuy nhiên, nén liệu cần tiêu tốn tài nguyên vào việc nén giải nén, đòi hỏi nhiều phần cứng xử lý Tuy nhiên, với phát triển khoa học cơng nghệ, lực tính toán thiết bị ngày cao, nén liệu ngày trở nên quan trọng ứng dụng rộng rãi Xử lý ảnh ngành khoa học tương đối mẻ so với nhiều ngành khoa học khác tập trung nghiên cứu phát triển ứng dụng thực tiễn nhiều ngành, nhiều lĩnh vực khác Trong “Nén ảnh” phần xử lý ảnh có ứng dụng to lớn truyền thông lưu trữ Chúng xin chân thành cảm ơn Thầy Lương Mạnh Bá tận tình hướng dẫn truyền thụ kiến thức suốt thời gian qua để chúng tơi hồn thiện tập lớn Nhóm sinh viên ! I TỔNG QUAN VỀ NÉN ẢNH Giới thiệu Nén ảnh kỹ thuật mã hóa ảnh số hóa nhằm giảm số lượng bit liệu cần thiết để biểu diễn ảnh Mục đích giảm chi phí tron việc lưu trữ thời gian để truyền ảnh xa truyền thông đảm bảo chất lượng ảnh Nén ảnh thực thực tế: thông tin ảnh ngẫu nhiên mà có trật tự, tổ chức Vì bóc tách tính trật tự, cấu trúc biết phần thơng tin quan trọng ảnh để biểu diễn truyền với số lượng bit so với ảnh gốc mà đảm bảo tính đầy đủ thơng tin Ở bên nhận trình giải mã tổ chức, xếp lại ảnh xấp xỉ gần xác so với ảnh gốc thỏa mãn chất lượng yêu cầu Nén ảnh đạt cách loại bỏ phần dư thừa ảnh số hố Dư thừa dư thừa thơng tin không gian, dư thừa cấp xám hay dư thừa thời gian Các khái niệm  Pixel (Picture alement): Phần tử ảnh Ảnh thực tế ảnh liên tục không gian giá trị độ sáng Để xử lý ảnh máy tính cần thiết phải tiến hành số hóa ảnh Như ảnh tập hợp pixel Mỗi pixel gồm cặp tọa độ x, y màu Cặp tọa độ x, y tạo nên độ phân giản (resolution) Màn hình máy tính có nhiều loại độ phân giải khác như: 320 x 200, 640 x 350, 1024 x 768  Mức xám (Graylevel) Mức xám kết mã hóa tương ứng cường độ sáng điểm ảnh với giá trị số - kết q trình lượng hóa  Dữ liệu Trong toán, liệu bao gồm tập phần tử sở mà ta gọi liệu nguyên tử Nó chữ số, ký tự số, từ điều phụ thuộc vào toán  Nén liệu Nén liệu trình giảm dung lượng thơng tin “dư thừa” liệu gốc làm cho lượng thông tin thu sau nén thường nhỏ liệu gốc nhiều Do vậy, tiết kiệm nhớ giảm thời gian trao đổi liệu trên, mang lại thông tin mà lại cho phép khôi phục lại liệu ban đầu  Tỷ lệ nén Tỷ lệ nén đặc trung quan trọng phương pháp nén Tỷ lệ nén định nghĩa sau: Tỷ lệ nén = 1/r*% với r tỷ số nén định nghĩa: r = kích thước liệu gốc / kích thước liệu nén Như hiệu suất nén = (1 – tỷ lệ nén)*100% Đối với ảnh tĩnh, kích thước số bit biểu diễn tồn ảnh Đối với ảnh video, kích thước số bit để biểu diễn khung hình video (video frame) Cách phân loại nén ảnh - Dựa vào nguyên lý nén: Nén không thông tin: Sau giải nén ta thu xác liệu gốc Nén có thơng tin: Sau giải nén ta không thu liệu gốc - Dựa vào cách thức thực nén: Phương pháp không gian: Tác động trực tiếp lên việc lấy mẫu ảnh miền không gian.Phương pháp sử dụng biến đổi: Tác động lên biến đổi ảnh gốc - Dựa vào triết lý mã hóa: Các phương pháp nén hệ thứ nhất: Gồm phương pháp mà mức độ tính tốn đơn giản Các phương pháp nén hệ thứ hai: dựa vào độ bão hòa tỷ lệ nén Các phương pháp nén  Nén liệu (lossy compression): Hay gặp công nghệ thông tin nén hình ảnh âm Có nhiều giải thuật đặt để đáp ứng yêu cầu giảm thiểu kích thước file ảnh, file âm cho trì chất lượng mức độ chấp nhận Với việc nén ảnh, giải thuật dựa tảng loại bớt màu mà mắt người khơng khó cảm nhận được, giữ lại màu mà mắt người khơng khó cảm nhận được, giữ lại màu chủ yếu thực ảnh hưởng tích cực lên khả cảm nhận màu mắt Nếu biên tập hình ảnh Photoshop, bạn dễ dàng nhận thấy khác biệt lớn bảng màu chuẩn bảng màu dùng cho hình ảnh tải lên từ web, hình nén Trong bảng màu web, màu trung gian, chuyển tiếp bị lược bỏ mất, thay vào màu tương đương cận kề Tuy bảng màu dễ phân biệt xem hình ảnh bạn khơng dễ dàng nhận biết file bmp (chưa nén), gif hay jpg(ảnh nén) Còn cách sử dụng kiểu liệu để nén hình giảm độ phân giải, tức bớt số điểm ảnh inch (dots per inch - dip) Cách sử dụng, tùy trường hợp mà phải gia giảm cho phù hợp Đọ phân giải cao phú chỗ, giảm nhiều bị “vỡ hình” Đối với âm thanh, có nhiều chẩn nén khác như: Windows Media, MP3, Real G2 thông dụng MP3 Nén theo chuẩn MP3, kích thước file audio thu nhỏ lần so với kích thước ban đầu Để làm vậy, người ta sử dụng kỹ thuật gọi lấy mẫu âm, thử nghiệm bỏ bớt tone mà tai người khơng nghe nhạy Do đó, chất lượng âm MP3 khó phân biệt với âm đĩa CD chuẩn  Nén không liệu (lossless compression): thể liệu hiệu (it bit hơn) mà không làm thông tin Không thông tin hiểu từ liệu nén, ta khơi phục hồn tồn liệu ban đầu Nén không liệu bắt buộc sử dụng việc nén văn bản, bảng tính, đoạn code thực thi loại liệu cần xác hồn tồn Các thuật tốn nén khơng liệu phổ biến gồm: Nén liệu hàng loạt (RLE – Run Length Encoding), Lempel – Ziv (LZ), Huffman, Delta  Nếu phân loại phương pháp nén theo kích cỡ (size) liệu lấy từ liệu gốc để nén chia thành 04 nhóm: Kích cỡ nhóm Method Dữ liệu gốc (đầu vào) Dữ liệu nén CS & Q Cố định Cố định Huffman Cố định Thay đổi Arithmetic Thay đổi Thay đổi Run – Length, LZW Thay đổi Cố định II KỸ THUẬT MÃ HÓA LỌAT DÀI – RLE (RUN LENGTH ENCODING) Thông tin chung Nén liệu hàng loạt – Run Length Encoding (RLE) phương pháp nén không liệu RLE hoạt động làm việc cách giảm kích thước vật lý chuỗi ký tự lặp lại chuỗi liệu cách biểu diễn khác Nén liệu hàng loạt áp dụng cho loại liệu mà không phụ thuộc vào nội dung thơng tin liệu đó, nhiên mức độ hiệu việc nén hay tỷ lệ nén phụ thuộc vào nội dung liệu Với loại liệu mà thông tin lặp lại, việc áp dụng nén RLE gây hiệu ứng ngược – tạo liệu sau nén dung lượng lớn liệu gốc Bởi vậy, RLE thường áp dụng việc nén ảnh BMP, TIFF, loại liệu nhiều “loạt” liệu lặp lại Ý tưởng phương pháp Ý tưởng phương pháp nén liệu hàng loạt tìm loạt liệu liền lặp lại, thay liệu đại diện khác, mục đích để giảm kích thước liệu gốc Loạt liệu liền gọi “Run Length” Chúng ta tìm hiểu ứng dụng phương pháp việc nén liệu ảnh RLE nén ảnh RLE ứng viên tự nhiên việc nén liệu đồ họa Một ảnh số chứa chấm nhỏ pixel Mỗi pixel bit, xác định màu, đen nhiều bit để quy định nhiều màu khác cho pixel Ta coi pixels lưu trữ mảng gọi bitmap nhớ Pixels thường xếp bitmap dạng dòng, pixels phía bên trái, pixel cuối bên phải a Nguyên tắc Nguyên tắc phương pháp phát loạt điểm ảnh lặp lại liên tiếp, ví dụ: 110000000000000011 Ta thấy điểm ảnh có giá trị xuất nhiều lần liên tiếp thay phải lưu trữ tồn điểm ảnh có giá trị ta cần lưu trữ chúng cách sử dụng cặp (độ dài loạt, giá trị) Ví dụ: Cho chuỗi nguồn d : d =5 5 5 5 5 19 19 19 19 19 0 0 0 23 23 23 23 23 23 23 23 Ta có chuỗi : (10 5) (5 19) (7 0) (8 23) Tỷ số nén = 30/8 = 2.5 Đối với ảnh đen trắng sử dụng bit để biểu diễn điểm ảnh phương pháp tỏ hiệu quả, ta thấy điều qua ví dụ sau : Ví dụ: Cho chuỗi nguồn d: 000000000000000111111111100000000001111111111000000000000000 Ta có chuỗi mới: (15, 10, 10, 10, 15) Tỷ số nén = 60 bit / (5*4 bit) = (chỉ sử dụng bit để thể độ dài loạt giá trị loạt ảnh đen trắng có giá trị bit là 1) Chú ý: - Đối với ảnh chiều dài dãy lặp lớn 255, ta dùng byte để lưu trữ chiều dài khơng đủ Giải pháp dùng tách chuỗi thành chuỗi: chuỗi có chiều dài 255, chuỗi có chiều dài cịn lại - Phương pháp nén RLE đạt hiệu chuỗi lặp lớn ngưỡng định hay nói khác ảnh cần nén phải có nhiều điểm ảnh kề có giá trị màu Do phương pháp không đem lại cho ta kết cách ổn định phụ thuộc hồn tồn vào ảnh nén thích hợp cho ảnh đen trắng hay ảnh đa cấp xám Ví dụ: Ta có chuỗi nguồn: d=5 11 13 18 28 38 48 58 30 35 40 45 Chuỗi kết sau mã hoá : 11 13 18 28 38 48 58 30 35 40 45 Tỷ số nén = 14 / 28 = 0.2 Như chuỗi sau mã hoá lớn nhiều chuỗi nguồn ban đầu Do cần phương pháp cải tiến để xử lý trường hợp tránh làm mở rộng chuỗi liệu nguồn nghĩa mã hoá độ dài loạt liệu lặp lại Người ta đưa cách thêm kí tự tiền tố vào trước độ dài loạt, việc giải mã thực gặp kí tự tiền tố với độ dài loạt giá trị điểm ảnh theo sau Ví dụ: Ta có chuỗi nguồn: d = 8 8 8 8 10 10 10 10 10 10 10 10 10 Giả sử kí tự tiền tố dấu “+” ta có : +8 + 10 Tỷ số nén = 19 / = 2.1 Tuy nhiên số trường hợp điểm ảnh có độ tương quan với vể giá trị mức xám ví dụ ta tiến hành xử lý sau Ví dụ: Ta có chuỗi nguồn: d = 11 13 18 28 38 48 58 55 60 65 70 75 80 85 90 95 100 Ta có dựa vào độ tương quan để có hiệu nén cao, việc áp dụng e(i) = d(i) - d(i-1) thu : 2 2 10 10 10 10 -3 5 5 5 5 áp dụng phương pháp nén loạt dài ta dễ dàng thu : (5 1)( 4)(5 1)(10 5)(-3 1)(5 9) b Thuật toán: Thuật toán sau : - Tiến hành duyệt hàng kết thúc vùng liệu ảnh, trình duyệt tiến hành kiểm tra để tìm loạt có giá trị đồng thời ý kí hiệu xuống dòng (hay kết thúc dòng), kết thúc ảnh Bitmap, … - Khi gặp loạt có độ dài > nhảy đến chế độ nén ngược lại nhảy đến chế độ không nén nhiên loạt > 255 tách mã < 255 sau mã tiếp phần cịn lại Ngồi cịn chế độ khác như: bắt đầu, kết thúc dòng - Kết thúc gặp kí hiệu kết thúc bitmap (end – of bitmap) 10 III ỨNG DỤNG RLE TRONG MÃ HÓA ẢNH BMP, PCX Ứng dụng RLE mã hóa ảnh BMP BMP biết đến với tên khác Windows bitmap , định dạng tập tin hình ảnh phổ biến Các tập tin đồ họa lưu dạng BMP thường có BMP DIB (Device Independent Bitmap) Cấu trúc file BMP: Header(54 bytes) + Bảng màu (nếu có) + Data(màu điểm ảnh)  Header (54 bytes) bfType : Word;(2 ký tự: BM,biểu diễn theo Integer 19778) bfSize : Longint; (File Size) bfReserved1 : Word; bfReserved2 : Word; bfOffBits : Longint; biSize : Longint; biWidth : Longint; (Độ rộng ảnh) biHeight : Longint; (Chiều cao ảnh) biPlanes : Word; biBitCount : Word; (Số bits màu :1,4,8,24) biCompression : Longint; biSizeImage : Longint; (Kích thước phần Dât ảnh = bfSize- bfOffBits) biXPelsPerMeter : Longint;(Độ phân giải theo X,dùng in) biYPelsPerMeter : Longint;(Độ phân giải theo Y,dùng in) 11 biClrUsed : Longint; biClrImportant : Longint;  Bảng màu Số bit điểm ảnh (bit per pixel), thường ký hiệu n Một ảnh BMP n-bit có màu Giá trị n lớn ảnh có nhiều màu, rõ nét Giá trị tiêu biểu n (ảnh đen trắng), (ảnh 16 màu), (ảnh 256 màu), 16 (ảnh 65536 màu) 24 (ảnh 16 triệu màu) Ảnh BMP 24-bit có chất lượng hình ảnh trung thực Nhưng loại Bitmap 1bit, 4bits, 8bits khai thác hết nên liệt kê màu dùng file Mỗi màu bảng màu màu mô tả bytes( BlueByte, GreenByte, RedByte, ReservByte) Ví dụ: bảng màu loại bit chuẩn Windows có bytes : 0,0,0,0,255,255,0 (4 bytes đầu màu thứ 0; bytes sau màu thứ Do có nên mơ tả điểm ảnh cần dùng bit) Tương tự vậy, bảng màu file bits có 64 bytes, từ màu số đến màu số 15, bảng màu file 8bits có 1024 bytes(từ đến 255) Chính màu liệt kê nên màu file bit, 4bits, bits gọi Indexed, 24 bits – True a Thuộc tính - chiều cao ảnh (height), cho điểm ảnh (pixel) - chiều rộng ảnh (width), cho điểm ảnh Đặc điểm bật định dạng BMP tập tin hình ảnh thường khơng nén thuật toán Khi lưu ảnh, điểm ảnh ghi trực tiếp vào tập tin - điểm ảnh mô tả hay nhiều byte tùy thuộc vào giá trị n ảnh Do đó, hình ảnh lưu dạng BMP thường có kích cỡ lớn, gấp nhiều lần so với ảnh nén (chẳng hạn GIF, JPEG hay PNG ) 12 Định dạng BMP hỗ trợ hầu hết phần mềm đồ họa chạy Windows, số ứng dụng chạy MS- DOS.Tuy nhiên, kích thước tập tin ảnh BMP lớn, định dạng BMP không phù hợp để trao đổi hình ảnh qua mạng Internet(do hạn chế tốc độ truyền liệu) Do đó, các trang thường sử dụng ảnh dạng GIF, JPEG hay PNG Các định dạng hỗ trợ thuật toán nén hình ảnh, giảm bớt kích cỡ ảnh b Dữ liệu ảnh Dữ liệu ảnh lưu điểm hết hàng ngang(từ trái sang phải) hàng ngang hết ảnh (từ lên trên) Đối với điểm ảnh loại màu Indexed, ta cần 1, bits để đặc trưng cho điểm xét ứng với màu thứ bảng màu Ví dụ, giá trị 0111(=7) loại BMP bits cho biết điểm có màu 7(màu xám theo chuẩn Windows) Riêng loại 24bits, không mô tả màu thứ tự bảng màu(nếu liệt kê hết bảng màu tốn Gigabyte nhớ đĩa), mà người ta liệt kê giá trị RGB màu thành phần Ví dụ: trắng=(255,255,255), đen=(0,0,0) Như vậy, điểm ảnh loại bit tốn 1/8 bytes(nói cách khác, byte lưu điểm bit), loại bits – ½ byte, loại bits – byte 24 – 3bytes Tuy nhiên, tính chung ảnh khối dât khơng hoàn toàn tỉ lệ thuận vậy,mà thường lớn chút Quy luật chung sau: - Kích thước Dât ảnh liệu hàng nhân với chiều cao ảnh - Dữ liệu hàng phụ thuộc vào loại bitmap độ rộng ảnh: + bit : rowbytes= ((width + 31)div 32)*4 (từ đến 32 – hết bytes) + bits : rowbytes= ((width + 7)div 8)*4 (từ đến – hết bytes) + bits : rowbytes= ((width + 3)div 4)*4 (từ đến – hết bytes) + 24 bits : rowbytes= ((3*width + 3)div 4)*4 Tóm lại, đọc từ file ra,ta phải bỏ bớt byte bit dư có, cịn tạo file mới, lại phải thêm “đi” liệu dịng khơng trịn 4n 13 bytes Ngoài ra, nhiều điểm chung byte(1 bit – điểm, bits – điểm) bits cao thuộc điểm phía trái, bit thấp – bên phải Ví dụ: Có liệu 96 dịng ảnh bits, liệu mô tả điểm liên tiếp điểm bên trái có giá trị 96/16= điểm bên phải có giá trị 96 mod 16= Vì tự biết tạo hình có màu sắc thay đổi theo quy luật mà muốn Ứng dựng phố biến mã hóa ảnh BMP dùng đế giấu tin ảnh Ứng dụng RLE mã hóa ảnh PCX Định dạng ảnh PCX định dạng ảnh cổ điển Nó sử dụng phương pháp mã hóa loạt dài RLC để nén liệu ảnh Quá trình nén giải nén thực dòng ảnh Thực tế, phương pháp giải nén PCX hiệu so với kiểu IMG Định dạng PCX thường dùng để lữu trữ ảnh thao tác đơn giản, cho phép nén giải nén nhanh Tuy nhiên cấu trúc cố định,nên số trường hợp làm tăng kích thước lưu trữ Cấu trúc ảnh PCX gồm có phần : Header, Data of Image, Color Palette: a Data of Image - ảnh 24 bits: điểm ảnh chiếm bytes mô tả ba thành phần : Red, Green,Blue - ảnh 256 màu : + Dữ liệu điểm ảnh chiếm byte, số hiệu màu điểm ảnh Màu có giá trị b, bảng màu chứa mảng P, thành phần màu điểm ảnh P[b],R,P[b],G, P[b],B 14 + Dữ liệu nén theo thuật toán RUN_LENGTH với bit cao làm cờ - ảnh 16 màu : + Mỗi điểm ảnh mô tả số, có giá trị từ đến 15 Do vậy, giá trị điểm ảnh cần bit để mô tả + Dữ liệu ảnh mã hóa theo mặt phẳng bit, sau nén theo thuật toán RUN_LENGTH với bit cao làm b Color Palette(Bảng màu) - Ảnh 24bit: Tệp ảnh khơng có bảng màu - Ảnh 256 màu: + Bảng màu chiếm 256*3=768 byte đặt cuối tệp + Mỗi màu mô tả byte thể thành phần: RED, GREEN, BLUE + Giá trị thành phần RED, GREEN, BLUE lưu trữ bit cao - Ảnh 16 màu : + Bảng màu chiếm 16*3=48 byte + Mỗi màu mô tả byte, thể thành phần : RED, GREEN, BLUE + Không phụ thuộc vào số lượng màu, 48byte baangr16 màu ln có mặt phần Header c Header Header tệp ảnh PCX gồm 128 byte, mô tả chi tiết: + byte: kiểu định dạng Nếu kiểu PCX/PCC có giá trị 0Ah + byte: version sử dụng để nén ảnh, có giá trị sau: 0: version 2.5 2: version 2.8 với bảng màu 15 3: version 2.8 hay 3.0 khơng có bảng màu 5: version 3.0 có bảng mà + byte: phương pháp mã hố Nếu mã hố theo phương pháp BYTE PACKED, không phương pháp RLE + byte: số bit cho điểm ảnh plane + bytes: toạ độ góc trái ảnh Với kiểu PCX có giá trị (0,0); cịn PCC khác (0,0) + bytes: toạ độ góc phải + byte: kích thước bề rộng bề cao ảnh + byte: số điểm ảnh + byte: độ phân giải hình + byte: + 48 bytes: chia thành 16 nhóm, nhóm byte Mỗi nhóm chứa thơng tin ghi màu Như ta có 16 ghi màu + byte: số bit plane mà ảnh sử dụng Với ảnh 16 màu, giá trị 4, với ảnh 256 màu (1 pixel/ bit) số bit plane lại + byte: số bytes cho dòng quét ảnh + bytes: kiểu bảng màu + 60 byte: không dùng Định dạng PCX thường dùng để lữu trữ ảnh thao tác đơn giản, cho phép nén giải nén nhanh Tuy nhiên cấu trúc cố định,nên số trường hợp làm tăng kích thước lưu trữ 16 TÀI LIỆU THAM KHẢO STT TÊN TÀI LIỆU ĐỊA CHỈ - TÁC GIẢ Nhập Môn Xử Lý Ảnh Số Lương Mạnh Bá, Nguyễn Thanh Thuỷ Các phương pháp nén ảnh số http://www.htu.edu.vn/khoa-ky-thuat-congbản nghe/cac-phuong-phap-nen-anh-so-co-ban.html Tiểu luận mơn mật mã an http://123doc.vn/document/2337045tồn liệu nén liệu độ dài tieu-luan-mon-mat-ma-va-an-toan-duhàng loạt run length encoding lieu-nen-du-lieu-do-dai-hang-loat-runlength-encoding.htm Luận văn Tìm hiểu số phương pháp nén ảnh - Luận văn, đồ án, đề tài tốt nghiệp 17 ... mà muốn Ứng dựng phố biến mã hóa ảnh BMP dùng đế giấu tin ảnh Ứng dụng RLE mã hóa ảnh PCX Định dạng ảnh PCX định dạng ảnh cổ điển Nó sử dụng phương pháp mã hóa loạt dài RLC để nén liệu ảnh Quá... LENGTH ENCODING) Thông tin chung Ý tưởng phương pháp RLE nén ảnh III ỨNG DỤNG RLE TRONG MÃ HÓA ẢNH BMP, PCX 11 Ứng dụng RLE mã hóa ảnh BMP... gốc (đầu vào) Dữ liệu nén CS & Q Cố định Cố định Huffman Cố định Thay đổi Arithmetic Thay đổi Thay đổi Run – Length, LZW Thay đổi Cố định II KỸ THUẬT MÃ HÓA LỌAT DÀI – RLE (RUN LENGTH ENCODING)

Ngày đăng: 31/10/2014, 18:56

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan