Nén ảnh JPEG Là Gì

Citation preview

A. Nén JPEG I. Giới thiệu chung về chuẩn JPEG 1. Giới thiệu chung a. JPEG là gì? JPEG viết tắt của Joint Photographic Experts Group là tên của một nhóm nghiên cứu đã phát minh ra chuẩn này. Từ năm 1986 nhóm nghiên cứu đã đưa ra chuẩn nén ảnh JPEG và đến năm 1994, JPEG được khẳng định với tiêu chuẩn ISO 10918 1. JPEG là định dạng nén ảnh có tổn thất, mặc dù có sự thay đổi của các biến thể nhưng nó vẫn giữ được nguyên lý của chuẩn nén cơ bản JPEG (các định dạng mở rộng khác nhau như .jpg, .jpeg, .jpe, .jfif và .jif). JPEG được sử dụng để lưu trữ ảnh và truyền qua mạng Internet (World Wide Web). Định dạng nén JPEG được sử dụng trong tất cả máy ảnh kỹ thuật số có kích thước rất nhỏ nên thường chụp được nhiều ảnh trên một thẻ nhớ, JPEG dễ hiển thị trên màn hình, ảnh có thể chuyển nhanh qua thư điện tử (dung lượng từ 300KB đến 700KB), ảnh JPEG chất lượng cao có dung lượng khoảng vài MB hay lớn hơn, khuyết điểm chính của ảnh JPEG là ảnh có chất lượng thấp, ảnh thường bị suy giảm nếu so với ảnh gốc. 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 so sánh tới vài chục lần. Thông thường các ảnh màu hiện nay dùng 8 bit (1 byte) hay 256 màu thay cho từng cường độ của các màu đỏ, xanh lá cây và xanh da trời. Như thế, mỗi điểm của ảnh cần 3 byte để lưu mã màu, và lượng byte một ảnh này chiếm gấp 24 lần ảnh đen trắng cùng cỡ. Với những hình ảnh này các phương pháp nén ảnh như IFF (Image File Format) theo phương pháp RLE (Run Length Encoding) không mang lại hiệu quả vì hệ số nén chỉ đạt tới 2:1 hay 3:1 (tất nhiên là kết quả nén theo phương pháp RLE phụ thuộc vào cụ thể từng loại ảnh, ví dụ như kết quả rất tốt với các ảnh ít đổi màu). Ưu điểm cao của phương phá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ư Lempel Ziv Welch (LZW) có thể cho hệ số nén tới 6:1. Nhưng như thế vẫn chưa thật đáp ứng yêu cầu đòi hỏi thực tế. Phương pháp nén ảnh theo chuẩn JPEG có thể đạt hệ số nén tới 80:1 hay lớn hơn, nhưng phải chịu mất mát thông tin (ảnh sau khi giải nén khác với ảnh ban đầu), lượng thông tin mất mát tăng dần theo hệ số nén. Tuy nhiê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ành sử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à hoàn toàn có thể quản lý sự mất mát này bằng các hạn chế hệ số nén. Như thế người dùng có thể cân nhắc giữa cái lợi của việc tiết kiệm bộ nhớ và mức độ thông tin của ảnh, để chọn phương án thích hợp.

b. Ưu nhược điểm của phương pháp nén ảnh JPEG Ưu điểm: JPEG cho phép ảnh nén với tỷ số nén lên đến 80:1 hoặc cao hơn, hiển thị các hình ảnh đầy đủ màu hơn (full - color) cho định dạng di động mà kích thước file lại nhỏ hơn. JPEG cũng được sử dụng rất nhiều trên Web. Lợi ích chính của chúng là chúng có thể hiển thị các hình ảnh với màu chính xác true color (chúng có thể lên đến 16 triệu màu), điều đó cho phép chúng được sử dụng tốt nhất cho các hình ảnh chụp và hình ảnh minh họa có số lượng màu lớn. Nhược điểm: Nhược điểm chính của định dạng JPEG là chúng được nén bằng thuật toán lossy (mất dữ liệu). Điều này có nghĩa rằng hình ảnh sẽ bị mất một số chi tiết khi chuyển sang định dạng JPEG. Đường bao giữa các khối màu có thể xuất hiện nhiều điểm mờ. và các vùng sẽ mất sự rõ nét, tỉ số nén càng cao thì sự mất mát thông tin trên ảnh JPEG càng lớn. Nói một cách khác, định dạng JPEG thực hiện bảo quản tất cả thông tin màu trong hình ảnh đó, tuy nhiên với các hình ảnh chất lượng màu cao (high color) như ảnh chụp thì điều này sẽ không hề hấn gì. Các ảnh JPEG không thể làm trong suốt hoặc chuyển động trong trường hợp này sẽ sử dụng định dạng GIF (hoặc định dạng PNG để tạo trong suốt). 2. Các loại JPEG a. JPEG (1992) Đây là loại JPEG tiêu chuẩn. Phương pháp nén ảnh dựa trên nguyên lý sau: Ảnh màu trong không gian của 3 màu RGB (Red Green Blue) được biến đổi về hệ YUV (hay YCBCr) (điều nà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 thành 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 thú vị là thị giác 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ới hai loại U và V. Phương pháp JPEG đã nắm bắt phát hiện này để tách những thông tin thừa của ảnh. Hệ thống nén thành phần Y của ảnh với mức độ ít hơn so với U, V, bởi người ta ít nhận thấy sự thay đổi của U và V so với Y. Giai đoạn tiếp theo là biến đổi những vùng thể hiện dùng biến đổi cosin rời rạc (thông thường là những vùng 8x9 pixel). Khi đó, thông tin về 64 pixel ban đầu sẽ biến đổi thành ma trận có 64 hệ số thể hiện thực trạng các pixel. Điều quan trọng ở đây là hệ số đầu tiên có khả năng thể hiện thực trạng cao nhất, khả năng đó giảm rất nhanh với các hệ số khác. Nói các khác thì lượng thông tin của 64 pixel tập trung chủ yếu ở một số hệ số ma trận theo biến đổi trên. Trong giai đoạn này có sự mất mát thông tin, bởi không có biến đổi ngược chính xác. Nhưng lượng thông tin bị mất này chưa đáng kể so với giai đoạn tiếp theo. Ma trận nhận được sau biến

đổi cosin rời rạc được lược bớt sự khác nhau giữa các hệ số. Đây chính là lúc mất nhiều thông tin vì người ta sẽ vứt bỏ những thay đổi nhỏ của các hệ số. Như thế khi giải nén ảnh đã nén sẽ có được những tham số khác của các pixel. Các biến đổi trên áp dụng cho thành phần U và V của ảnh với mức độ cao hơn so với Y (mất nhiều thông tin của U và V hơn). Sau đó thì áp dụng phương pháp mã hóa của Huffman: Phân tích dãy số, các phần tử lặp đi lặp lại nhiều được mã hóa bằng ký hiệu ngắn (marker). Khi giải nén người ta chỉ việc làm lại các bước trên theo quá trình ngược lại cùng với biến đổi ngược. Vì phương pháp này thực hiện với các vùng ảnh (thông thường là 8 x 8 pixel) nên hay xuất hiện sự mất mát thông tin trên vùng biên của các vùng (block) này. Hiện nay người ta đã giải quyết vấn đề này bằng cách làm trơn ảnh sau khi bung nén để che lấp sự khác biệt của biên giới giữa các block. Một hệ nén ảnh theo chuẩn JPEG cùng thuật toán làm trơn ảnh đã được công ty ASDG đưa ra trong hệ Department Professional. b. LS JPEG (Lossness JPEG) LS JPEG được phát triển như sự bổ sung muộn màng cho JPEG vào năm 1993, bằng cách sử dụng một kỹ thuật khác nhau từ tiêu chuẩn JPEG cũ. Nó sử dụng 1 hệ thống dự báo được sắp xếp dựa trên ba điểm lân cận (upper, left and upper - left) và entropy mã hóa dựa trên lỗi dự báo. Không giống như chế độ mất dữ liệu dựa trên DCT, các quá trình mã hóa không mất mát thông tin dựa trên mô hình tiên đoán mã hóa đơn giản gọi là chuyển mã xung vi sai (Different Pulse Code Modulation - DPCM). Đây là một mô hình dự đoán các giá trị mẫu từ các mẫu lân cận đã được mã hóa trong hình ảnh. Hầu hết các dự đoán lấy trung bình của các mẫu ngay lập tức ở bên trên và bên trái của mẫu mục tiêu. DPCM mã hóa sự khác biệt giữa các mẫu dự đoán thay vì mỗi mẫu mã hóa độc lập. Sự khác biệt từ một trong những mẫu tiếp theo thường là gần bằng không.

Các bước chính của chế độ hoạt động không giảm chất lượng được mô tả trong hình 2.

Trong quá trình này, dự báo các kết hợp tối đa ba mẫu lân cận tại A, B và C được thể hiện trong hình 3 để dự báo giá trị của mẫu tại vị trí dán nhãn của X.

Ba mẫu láng giềng phải được dự đoán mẫu. Bất kỳ một trong những dự đoán cho thấy trong bảng dưới đây có thể được sử dụng để ước tính mẫu tại bất kỳ một trong tám dự đoán được liệt kê trong bảng có thể được sử dụng. Lưu ý rằng các lựa chọn 1, 2 và 3 được dự đoán một chiều và lựa chọn 4, 5, 6 và 7 được dự đoán hai chiều. Giá trị lựa chọn đầu tiên trong bảng bằng 0, chỉ được sử dụng để mã hóa khác biệt ở chế độ phân cấp hoạt động. Một khi tất cả các mẫu được dự đoán, sự khác biệt giữa các mẫu có thể được lấy và entropy mã hóa trong một thời gian không giảm chất lượng bằng các sử dụng mã hóa Huffman hoặc mã số học. Thuật toán LoCo I

Cốt lõi của LS JPEG dựa trên các thuật toán LoCo I. Trong thuật toán LoCo I, cạnh được phát hiện ban đầu của các cạnh theo chiều ngang hoặc chiều dọc bằng cách kiểm tra các điểm ảnh lân cận của điểm ảnh X hiện thời như trong hình 3. Các điểm ảnh có nhãn B được sử dụng trong trường hợp của cạnh thẳng đứng trong khi điểm có nhãn A sử dụng trường hợp cạnh của cạnh nằm ngang. Điều dự đoán đơn giản này được gọi là phát hiện cạnh trung vị (Median Edge Dectection - MED) hay dự đoán LoCo I (LoCo I predictor). Điểm ảnh X được dự đoán bằng LoCo I predictor theo tiêu chí sau đây: min ( A , B ) if C max ( A , B ) X = max ( A , B ) if C min ( A , B ) A+ BC otherwise

{

Ba dự đoán đơn giản được chọn theo các điều kiện: -

Nó có khuynh hướng nhận B trong trường hợp tồn tại cạnh dọc trái của X Nhận A trong trương hợp cạnh nằm ngang ở phía trên Nhận A + B C nếu không có cạnh nào được phát hiện

c. JPEGSearch Ngày nay, nhiều định dạng siêu dữ liệu khác nhau tồn tại để mô tả hình ảnh nhưng vẫn còn nhiều vấn đề trong khả năng tương tác. Trong bối cảnh đó, trọng tâm chính của JPEGSearch là cung cấp một khả năng tương tác tốt hơn trong tìm kiếm hình ảnh. Phiên bản hiện tại của dự án JPSearch được chia thành 5 phần chính. Phần 1 đã được hoàn thành: Nó mô tả cấu trúc tổng thể của JPSearch, một tập hợp lớn các trường hợp và phác thảo một kho phục hồi hình ảnh và các thành phần của nó. Phần 2: Đăng ký, nhận dạng và quản lý các siêu dữ liệu lược đồ (Registration, Identification and Management of Metadata Schema) cố gắng vượt qua những rắc rối trong mô hình siêu dữ liệu. Phần 3: Định dạng truy vấn JPSearch (JPSearch Query Format) cung cấp một giao thức thông báo chuẩn để khôi phục hình ảnh. Phần 4: Tập tin định dạng cho các siêu dữ liệu nhúng vào dữ liệu hình ảnh (JPEG và JPEG 2000). Phần 5: Định dạng trao đổi dữ liệu giữa Kho Hình Ảnh (Data Interchange Format Between Image Repositories). d. JPEGXR

Là 1 định dạng hình ảnh cung cấp 1 số cải tiến so với JPEG: -

Khả năng nén tốt hơn: JPEG XR định dạng tập tin hỗ trợ tỷ lệ nén cao hơn so với JPEG để mã hóa một hình ảnh với chất lượng tương đương. Nén không mất mát Hỗ trợ cấu trúc (Tile structure support) o Chất lượng màu tốt hơn và hỗ trợ High Dynamic Range (HDR) imaging o Hỗ trợ bản đồ trong suốt (Transparency map support) o Giảm bớt vùng nén ảnh (Compressed domain image modification) o Hỗ trợ siêu dữ liệu (Metadata support)

II. Kỹ thuật nén ảnh JPEG 1. Giới thiệu chung về kỹ thuật nén ảnh Các kỹ thuật nén ảnh hướng tới việc giải quyết bài toán giảm khối lượng thông tin cần thiết để mô tả ảnh số. Nền tảng của quá trình nén là loại bỏ dư thừa có trong tín hiệu. Phương pháp nén hiệu quả nhất thường sử dụng các biến đổi toán học để biến ma trận các điểm ảnh trong không gian hai chiều sang một không gian hai chiều khác, nơi mức độ tương quan giữa các hệ số biến đổi mới nhỏ hơn. Như chúng ta biết, độ dư thừa trong tín hiệu ảnh số phụ thuộc vào mức độ tương quan giữa các điểm ảnh, độ tương quan lớn thì độ dư thừa cũng lớn. Phân loại các phương pháp nén ảnh:

Phân loại theo nguyên lý nén: -

Nén không tổn hao (Lossless data reduction) Nén có tổn hao (Loss data reduction)

Phân loại theo các thực hiện nén: -

Phương pháp không gian (Spatial Data Compression): các phương pháp nén bằng cách tác động trực tiếp lên điểm ảnh. Phương pháp sử dụng biến đổi (Transform Coding): phương pháp nén sử dụng các phép biến đổi không gian, quá trình nén được thực hiện bằng cách tác động lên ảnh biến đổi.

Dư thừa trong dữ liệu: Độ dư thừa số liệu là vấn đề trung tâm trong nén ảnh số. Độ dư thừa được xác định như sau: nếu N1 và N2 là lượng số liệu trong hai tập hợp số liệu cùng được dùng để biểu diễn lượng thông tin cho trước thì độ dư thừa số liệu tương đối RD của tập số liệu thứ nhất so với tập số liệu thứ hai có thể được định nghĩa như sau:

R D=11/C N với

C N =N 1 / N 2

Trong trường hợp N1 = N2 thì R = 0, điều này có nghĩa là so với tập số liệu thứ hai thì tập số liệu thứ nhất không chứa dữ liệu dư thừa. Khi N2

Từ khóa » Sơ đồ Nén ảnh Jpeg