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

OpenCV Tìm hiểu, khảo sát và xây dựng ứng dụng thử nghiệm của chuẩn nén ảnh JPEG.

27 118 2

Đ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 27
Dung lượng 3,6 MB

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

Nội dung

TRƯỜNG ĐẠI HỌC KIẾN TRÚC HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC XỬ LÝ ẢNH Giảng viên hướng dẫn ThS PHẠM TRỌNG TUẤN Đề tài Tìm hiểu, khảo sát và xây dựng ứng dụng thử nghiệm của chuẩn nén ảnh JPEG Nhóm thực hiện Nhóm 1 Thành viên 1 Phùng Xuân Nghĩa 2 Phạm Văn Tài 3 Phạm Đức Trọng 4 Tạ Quang Vinh 5 Vũ Minh Phúc Hà Nội, tháng 10 năm 2021 MỤC LỤC MỞ ĐẦU 3 I TỔNG QUAN NÉN ẢNH JPEG 4 1 Công nghệ JPEG 4 2 Nguyên lý chuẩn nén JPEG 5 2 1 Chuyển ảnh thành khối 8x8 7 2 2 Biến đổi DCT 8 2 2 1 Biến.

Trang 1

TRƯỜNG ĐẠI HỌC KIẾN TRÚC HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN

- -BÁO CÁO MÔN HỌC

XỬ LÝ ẢNH

Giảng viên hướng dẫn : ThS PHẠM TRỌNG TUẤN

Đề tài : Tìm hiểu, khảo sát và xây dựng ứng dụng thử nghiệm

của chuẩn nén ảnh JPEG.

Trang 3

MỞ ĐẦU

Hiện nay, mạng Inernet nói riêng và thành tựu trong lĩnh vực công nghệthông tin nói chung đã và đang tiếp tục mở rộng phát triển nhanh chóng, đạtđược những dấu mốc quan trọng Song hàng cùng với sự phát triển đó, nhữngkhái niệm, những quy chuẩn, những đối tượng tài nguyên mới cũng được ra đờinhằm phục vụ tốt nhất cho nhu cầu con người Hơn nữa, đó cũng chính là thànhcông mới của loài người trong công cuộc khai phá tri thức

Khi việc sử dụng và phụ thuộc vào máy tính của chúng ta tiếp tục phát triển,nhu cầu của chúng ta về những cách hiệu quả để lưu trữ một lượng lớn dữ liệucũng vậy Ví dụ: một người có trang web hoặc danh mục trực tuyến - sử dụnghàng chục hoặc có lẽ hàng trăm hình ảnh - nhiều khả năng sẽ cần sử dụng một

số hình thức nén hình ảnh để lưu trữ những hình ảnh đó Điều này là do số lượngkhông gian cần thiết để giữ hình ảnh không thay đổi có thể rất lớn về chi phí.May mắn thay, có một số phương pháp nén hình ảnh có sẵn ngày hôm nay.Chúng rơi vào hai loại chung: nén hình ảnh lossless và lossy Quá trình JPEG làmột hình thức nén hình ảnh lossy được sử dụng rộng rãi tập trung xung quanhbiến đổi Cosine rời rạc

Trong suốt quá trình thực hiện đề tài này, nhóm đã rất nỗ lực tìm hiểu, khảosát, xây dựng về nội dung cần thực hiện Tuy nhiên, những thiếu sót, sơ suất sẽkhông thể tránh khỏi và nhiều vấn đề cần tiếp tục nghiên cứu, cải thiện trongtương lai Nhóm xin chân thành cảm ơn sự hướng dẫn, giúp đỡ tận tình của ThS.Phạm Trọng Tuấn trong suốt quá trình thực hiện đề tài này

Trang 4

I. TỔNG QUAN NÉN ẢNH JPEG.

1. Công nghệ JPEG

JPEG viết tắt của Joint Photographic Experts Group, một nhóm các nhà nghiêncứu đã phát minh ra định dạng này để hiển thị các hình ảnh đầy đủ màu hơn(full-colour) cho định dạng di động mà kích thước file lại nhỏ hơn Đây là mộtphương pháp nén ảnh hiệu quả, nó cho phép làm việc với các ảnh có nhiều màu

và kích cỡ lớn, tỷ lệ nén ảnh đạt mức so sánh tới vài chục lần (chứ không phảiphần trăm)

Tiêu chuẩn JPEG (Joint Photographic Experts Group) được định ra cho nén ảnhtĩnh đơn sắc và màu Công nghệ nén ảnh JPEG là một trong những công nghệnén ảnh hiệu quả, cho phép làm việc với các ảnh có nhiều màu và kích cỡ lớn

Tỷ lệ nén ảnh đạt mức vài chục lần Thông thường các ảnh hiện nay dùng 8 bit(1 byte) hay 256 mức cường độ tương ứng của các màu đỏ, xanh lá cây và xanh

da trời Mỗi điểm của ảnh cần 3 byte để lưu mã màu, và lượng byte một ảnhmàu này chiếm gấp 24 lần ảnh trắng đen cùng cỡ Với những ảnh này cácphương pháp nén ảnh không mất mát thông tin chỉ đạt tỉ lệ 2:1 hay 3:1 Nókhông đáp ứng được yêu cầu với một số ứng dụng Ưu điểm cao của phươngpháp này là ảnh đã nén sau khi giải nén sẽ trùng khớp với ảnh ban đầu Một sốphương pháp nén khác không để mất thông tin như của Lempel - Ziv and Welch(LZW) có thể cho hệ số nén tới 6:1 Nhưng như thế cũng chưa thật đáp ứng yêucầu đòi hỏi thực tế Phương pháp nén ảnh theo thuẩn JPEG có thể cho hệ số néntới 80:1 hay lớn hơn, nhưng ta phải chịu mất thông tin (ảnh sau khi bung nénkhác với ảnh ban đầu), lượng thông tin mất mát tăng dần theo hệ số nén Tuynhiên sự mất mát thông tin này không bị làm một cách cẩu thả JPEG tiến hànhsửa đổi thông tin ảnh khi nén sao cho ảnh mới gần giống như ảnh cũ, khiến phầnđông mọi người không nhận thấy sự khác biệt Và ta hoàn toàn có thể quản lý sựmất mát này bằng cách hạn chế hệ số nén Như thế người dùng có thể cân nhắc

Trang 5

giữa cái lợi của việc tiết kiệm bộ nhớ và mức độ mất thông tin của ảnh, để chọnphương án thích hợp.

2. Nguyên lý chuẩn nén JPEG

Phương pháp nén ảnh JPEG dựa trên nguyên lý sau: ảnh màu trong không giancủa 3 màu RGB (red Green Blue) được biến đổi về hệ YUV (hay YCbCr) (điềunày không phải là nhất thiết, nhưng nếu thực hiện thì cho kết quả nén cao hơn)

Hệ YUV là kết quả nghiên cứu của các nhà sản xuất vô tuyến truyền hình hệ Pal,Secam và NTSC, nhận thấy tín hiệu video có thể phân ra 3 thành phần Y, U, V(cũng như phân theo màu chuẩn đỏ, xanh lá cây và xanh da trời) Và một điều là

hệ nhãn thị của con người rất nhạy cảm với thành phần Y và kém nhạy cảm vớihai loại U và V Phương pháp JPEG đã nắm bắt phát hiện này để tách nhữngthông tin thừa của ảnh Tỉ số nén thành phần Y của ảnh nhỏ hơn so với U, V, bởingười ta ít nhận thấy sự thay đổi của U và V so với Y JPEG cũng được sử dụngcho nhiều ứng dụng với ảnh động bởi vì nó cho chất lượng ảnh khôi phục khátốt và ít tính toán hơn so với nén MPEG JPEG nén hình ảnh được sử dụng rộngrãi trong việc phát triển trang web so với bitmap (phần mở rộng bmp) Nhữngảnh JPEG chiếm không gian ít hơn và do đó có thể được tải về nhanh chóng khichúng ta truy cập một trang web Nén JPEG có thể thực hiện bởi bốn phương mãhóa đó là:

- Mã tuần tự (sequential DCT-based): ảnh được mã hóa theo kiểu quét từtrái qua phải, từ trên xuống dưới dựa trên khối DCT

- Mã hóa lũy tiến (progressive DCT-based): ảnh được mã hóa bằng kiểuquét phức hợp theo chế độ phân giải không gian cho các ứng dụng trênkiểu băng hẹp và do đó thời gian truyền dẫn có dài

- Mã hóa không tổn thất (lossless): ảnh được đảm bảo khôi phục chính xác

Trang 6

Phân Khối DCT Lượng tử hóa Mã Hóa

Bảng lượng tử Bảng Mã

ảnh nén

8x8

8x88x8

- Mã hóa phân cấp (hierarchical): ảnh được mã hóa ở chế độ phân giảikhông gian phức hợp, để cho những ảnh có độ phân giải thấp có thểđượctruy xuất và hiển thị mà không cần giải nén như những ảnh có độ phângiải trong không gian cao hơn

- Nén ảnh là quá trình làm giảm thông tin dư thừa trong dữ liệu

Nén JPEG (Joint Photographic Expert Group) là một chuẩn nén ảnh được ứngdụng trong nhiều lĩnh vực: lưu trữ ảnh, Fax màu, truyền ảnh báo chí, ảnh cho yhọc, camera số…

Tiêu chuẩn JPEG được định ra cho nén ảnh tĩnh đơn sắc và màu Tuy nhiên nócũng được sử dụng cho nhiều ứng dụng ảnh động vì nó cho chất lượng ảnh khôiphục tốt

Sơ đồ khối thuật toán nén ảnh JPEG.

Trang 7

2.1. Chuyển ảnh thành khối 8x8 :

Biến đổi Cosin đối với các khối có kích thước nhỏ sẽ làm tăng độchính xác khi tính toán với số dấu phẩy tĩnh, giảm thiểu sai số do làmtròn sinh ra Do điểm ảnh hàng xóm có độ tương quan cao hơn, do đóphép biến đổi Cosin cho từng khối nhỏ sẽ tập trung năng lượng hơn vàmột số ít các hệ số biến đổi Việc loại bớt một số hệ số năng lượngthấp trong các khối chỉ tạo ra mất mát thông tin cục bộ giúp nâng caochất lượng ảnh

Chuyển ảnh thành các khối (block) có cùng kích thước và mỗi block

là một ma trận điểm ảnh 8×8 pixel được lấy từ một ảnh màn hình theochiều từ trái sang phải, từ trên xuống dưới

Lí do kích thước mỗi block là 8×8:

• Qua việc nghiên cứu cho thấy hàm tương quan suy giảm rất nhanhkhi khoảng cách giữa các pixel vượt quá 8

• Độ phức tạp về tính toán sẽ tăng nếu kích thước block tăng Tiện lợicho việc tính toán và thiết kế phần cứng

Giả sử ảnh gốc có ma trận sau :

DCT

Trang 8

Vì ảnh gốc có kích thước rất lớn cho nên trước khi đưa vào biến đổiDCT, ảnh được phân chia thành các khối vuông, mỗi khối nàythường có kích thước 8 x 8 pixel và biểu diễn các mức xám của 64điểm ảnh, các mức xám này là các số nguyên dương có giá trị từ 0đến 255 Việc phân khối này sẽ làm giảm được một phần thời giantính toán các hệ số chung, mặt khác biến đổi cosin đối với các khốinhỏ sẽ làm tăng độ chính xác khi tính toán với dấu phẩy tĩnh, giảmthiểu sai số do làm tròn sinh ra.

Giá trị x(n1, n2) biểu diễn các mức xám của ảnh trong miền khônggian, X(k1, k2) là các hệ số sau biến đổi DCT trong miền tần số

2.2.1. Biến đổi DCT một chiều

Biến đổi DCT một chiều được định nghĩa như sau:

Với

Khi dãy đầu vào x(n) là thực thì dãy các hệ số X(k) cũng là số thực.

Biến đổi DCT một chiều giúp ta hiểu rõ hơn về biến đổi DCT 2chiều dưới đây

2.2.2. Biến đổi DCT hai chiều

Biến đổi DCT được thực hiện trên một khối gồm 8 pixel và 8 dòngcủa ảnh thật đã lấy mẫu để cho ra một ma trận 8 x 8 với các điểm làcác hệ sốDCT.Các hệ số DCT nói lên sự biến đổi tần số giữa cácmẫu theo chiều ngang và chiều dọc Phép toàn DCT được mô tảnhư sau:

Trang 9

Trong đó:

x,y : là tọa độ pixel của ảnh gốc

u,v : là độ độ hệ số DCT

N: là kích thước ma trận thực hiện phép biến đổi

• Thuật toán biến đổi DCT hai chiều cho mỗi khối trong trường hợpnày sẽ bao gồm 16 phép biến đổi DCT một chiều

• Đầu tiên, người ta biến đổi nhanh Cosin một chiều cho các dãyđiểm ảnh trên mỗi hàng Lần lượt thực hiện cho 8 hàng

• Sau đó biến đổi DCT một chiều theo từng cột của ma trận vừa thuđược sau 8 phép biến đổi trên Cũng lần lượt thực hiện cho 8 cột

 Ma trận cuối cùng sẽ là ma trận hệ số biến đổi của khối tương ứng

Thành phần chói Y sau khi số hóa sẽ có biên độ các mẫu nằm trongkhoảng 0-255, các mẫu của thành phần màu CR, CB có biên độcực đại là ±128 Để có thể sử dụng một bộ mã hóa DCT cho cả tínhiệu chói và màu, tín hiệu Y được dịch mức xuống dưới bằng cáchtrừ 128 từ mỗi giá trị pixel trong block 8x8

Trang 10

Đầu vào của khối nén ảnh gồm 2 thành phần: một chiều và xoaychiều

Các hệ số tương ứng với tần số thấp thường có giá trị lớn, những hệ

số này chứa phần lớn năng lượng của tín hiệu, do đó chúng phảiđược lượng tử hóa với độ chính xác cao Riêng hệ số DC cần mãhóa với độ chính xác cao nhất, vì hệ số này là giá trị độ chói trung

Trang 11

bình của từng block ảnh Sự thay đổi độ chói trung bình củacác block sẽ ảnh hưởng rất nhiều tới chất lượng của ảnh nén.

Để thực hiện quá trình nén dữ liệu, ma trận các hệ số khai triển sauDCT phải được chia cho bảng trọng số Q(u,v) để loại bỏ một phầncác hệ số DCT có biên độ nhỏ (thường là các thành phần cao tần).JPEG sử dụng phương pháp lượng tử không đồng đều, các hệ số cótần số thấp được chia cho các giá trị nhỏ, các hệ số ứng với tần sốcao được chia cho cácgiá trị lớn hơn, kết quả sẽ được làm tròn (bỏ

đi các phần thập phân):

Fq(u,v) = roundVới ma trận lượng tử hóa:

Trang 12

Ta được ma trận lượng ảnh sau khi lượng tử hóa:

2.4.1. Các phương pháp mã hóa

Phương pháp mã hóa dài (Run Level Coding)

Phương pháp mã hóa loạt dài lúc đầu được phát triển dành cho ảnh số 2mức: mức đen (1), và mức trắng (0) như các văn bản trên nền trắng, trang

in, các bản vẽ kỹ thuật

Nguyên tắc của phương pháp là phát hiện một loạt các bít lặp lại, thí dụnhư một loạt các bít 0 nằm giữa hai bít 1, hay ngược lại, một loạt bít 1nằm giữa hai bít 0 Phương pháp này chỉ có hiệu quả khi chiều dài dãy lặplớn hơn một ngưỡng nào đó Dãy các bít lặp gọi là loạt hay mạch (run).Tiếp theo, thay thế chuỗi đó bởi một chuỗi mới gồm 2 thông tin: chiều dàichuỗi và bít lặp (ký tự lặp) Như vậy, chuỗi thay thế sẽ có chiều dài ngắnhơn chuỗi cần thay

Phương pháp mã hóa Huffman

Phương pháp mã hóa Huffman là phương pháp dựa vào mô hình thông kê.Dựa vào dữ liệu gốc, người ta tính tần suất xuất hiện của các ký tự Việc

Trang 13

tính tần suất được thực hiện bởi cách duyệt tuần tự tệp gốc từ đầu đếncuối Việc xử lý ở đây tính theo bit Trong phương pháp này người ta gáncho các ký tự có tần suất cao một từ mã ngắn, các ký tự có tần suất thấp từ

mã dài

Nói một cách khác, các ký tự có tần suất càng cao được gán mã càng ngắn

và ngược lại Rõ ràng với cách thức này, ta đã làm giảm chiều dài trungbình của từ mã hóa bằng cách dùng chiều dàibiến đổi Tuy nhiên, trongmột số tình huống khi tần suất là rất thấp, ta có thể không được lợi mộtchút nào, thậm chí còn bị thiệt một ít bit

Thuật toán

Thuật toán bao gồm 2 bước chính:

- Giai đoạn thứ nhất: tính tần suất của các ký tự trong dữ liệu gốc: duyệttệp gốc một cách tuần tự từ đầu đến cuối để xây dựng bảng mã Tiếp sau

đó là sắp xếp lại bảng mã theo thứ tự tần suất giảm dần

- Giai đoạn thứ hai: duyệt bảng tần suất từ cuối lên đầu để thực hiện ghép

2 phần tử có tần suất xuất hiện thấp nhất thành một phần tử duy nhất.Phần tử này có tần suất bằng tổng 2 tần suất thành phần Tiến hành cậpnhật lại bảng và đương nhiên loại bỏ 2 phần tử đã xét Quá trình được lặplại cho đến khi bảng chỉ có một phần tử

Quá trình này gọi là quá trình tạo cây mã Huffman vì việc tập hợp đượctiến hành nhờ một cây nhị phân 2 nhánh Phần tử có tần suất thấp ở bênphải, phần tử kia ở bên trái Với cách tạo cây này, tất cả các bit dữ liệu/ký

tự là nút lá; các nút trong là các nút tổng hợp

Mã hóa: mỗi lần xuống bên phải ta thêm 1 bit “1” vào từ mã; mỗi lần

Trang 14

Bảng tần suất Bảng tần suất theo thứ tự giảm dần

Lưu ý rằng, trong phương pháp Huffman, mã của ký tự là duy nhất và không mãnào là phần bắt đầu của mã khác Vì vậy, khi đọc tệp nén từng bit từ đầu đếncuối ta có thể duyệt cây mã cho đến một lá, tức là ký tự đã được giải nén

Trang 15

Bảng từ mã gán cho các kí tự bởi mã Huffman

• Các hệ số khác (thành phần xoay chiều) trong từng block được đọctheo kiểu zig-zag và đưa tới bộ mã hóa loạt dài (RLC)

• Cuối cùng dữ liệu từ 2 bộ mã hóa DPCM và RLC được mã hóa mộtlần nữa bằng mã Entropy

• Dữ liệu nén, các bảng mã, bảng lượng tử được kết hợp lại thànhmột file theo chuẩn JPEG

Mã hóa thành phần một chiều.

- Các hệ số DC là giá trị trung bình của các khối ảnh 8x8 Độ chóitrung bình của các block ảnh gần nhau thường ít biến đổi, do đótrong chuẩn nén JPEG, các hệ số DC được mã hóa theo phươngpháp DPCM

- Để tăng hiệu suất nén, kết quả nhận được sau đó được mã hóa tiếpbằng mã Huffman

- Trên lý thuyết, dải động của các giá trị nhận được sau khi mã hóaDPCM lớn gấp đôi dải động của các hệ số DCT, có nghĩa là thànhphần này sẽ có giá trị nằm trong khoảng -211 đến 211-1 Số bit cần

để mã hóa thành phần 1 chiều có thế là 11

• Sơ đồ khối mã hóa thành phần 1 chiều DC

Trang 16

Hệ số DC Từ mã DC

Hệ số DC của các khối DCT được lần lượt đưa tới bộ DPCM Thành phầnsai số giữa hai hệ số DC liên tiếp sẽ được mã hóa trong bộ mã Huffman

 Quá trình mã hóa Huffman được thực hiện cho thành phần DC như sau:

• Dò tìm trong bảng phân loại để phân loại giá trị ∆DC (phânloại chiều dài từ mã dùng để mã hóa thành phần ∆DC)

• Dùng bảng mã Huffman cho thành phần DC để tìm ra từ mã choloại ∆DC tìm được ở bước 1

• Mã hóa nhị phân giá trị ∆DC

Trang 17

• Ghép các từ mã Huffman và giá trị nhị phân của ∆DC để có được

-1 1-3, -2 2, 3-7,-6,-5,-4 4,5,6,7-15,…,-8 8,…,15-31,…,-16 16,…,31-63,…,-32 32,…,63-127,…,-64 64,…,127-255,…-128 128,…,255-511,…,-256 256,…,511-1023,…,-512 512,…,1023-2047,…,-1024 1024,…,2047

Trang 18

Trên bảng phân loại hệ số =3 thuộc loại 2.

Dựa vào bảng mã Huffman ta có từ mã tương ứng với loại 2 là 01 (2chính là độ dài từ mã)

Giá trị =3 mã hóa nhị phân là 11

Chúng ta biết rằng năng lượng của khối hệ số giảm dần từ góc trên bên tráixuống góc dưới bên phải nên việc sắp xếp lại các hệ số theo thứ tự ZigZag sẽ tạođiều kiện cho các hệ số xấp xỉ nhau (cùng mức lượng tử) nằm trên một dòng

Trang 19

Sơ đồ khối bộ mã hóa thành phần AC:

Trang 20

Các hệ số AC Từ mã AC

Chuỗi hệ số AC được lần lượt đưa vào bộ mã hóa RLC Ở đầu ra ta nhận đượccác từ mã bao gồm hai thành phần:

Trang 21

• Giá trị chạy là số lượng bit "0" đứng trước hệ số khác "0" đang được mãhóa.

• Biên độ của hệ số khác "0" nói trên Từ mã Huffman ứng với cặp giá trịtrên được tìm ra trong bảng phân loại (bảng 1 ở trên) và bảng mã Huffmancho thành phần AC

 Từ mã AC sẽ bao gồm từ mã Huffmanvà giá trị biên độ của hệ số AC

Ví dụ từ ma trận DCT ở trên, Sau quá trình quét zig-zag, ta nhận được chuỗi hệ

số AC sau:

0, -2, -1, -1, -1, 0 , 0,-1, 0, 0……

Chuỗi bit nhận được sau khi mã hóa RLC:

(1,-2) (0, -1) (0, -1) (0, -1) (2,-1) (EOB)

Từ mã cuối cùng để báo hiệu kết thúc khôi: EOB (end of block)

Sử dụng bảng phân loại ta tìm được loại của biên độ các hế số

Ngày đăng: 12/06/2022, 15:04

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w