Nén ảnh cho World Wide Web

Một phần của tài liệu Connect to Internet potx (Trang 50 - 52)

III. Các máytìm kiếm đánh giá địa chỉnh thế nào?

Nén ảnh cho World Wide Web

Một ảnh màu nhỏ có dung lợng nhớ khá lớn, do đó thời gian truyền trên mạng rất đáng kể, dễ làm cho World Wide Web trở thành World Wide Wait. Giải pháp tự nhiên là sử dụng các kỹ thuật nén ảnh hiện đại. Hai dạng thức đang đợc các Web browser hổ trợ rộng rãi là CompuServe GIF (Graphics Interchange Format) và JPEG (Joint Photographic Experts Group). Mặc dù đã xuất hiện một số công nghệ mới (đáng chú ý nhất là Netscape Navigator 2.0 với kiến trúc Plug-in), GIF và JPEG vẫn là hai kỹ thuật nền tảng, có các mục đích sử dụng hoàn toàn khác nhau. Cần phải hiểu rõ những khác biệt để có đợc lựa chọn thích hợp.

Cả thế giới dùng GIF

Có 2 dạng nén ảnh: lossless (trung thực) và lossy (không trung thực). Dùng lossless, ảnh sau khi tời (decompressed image) hoàn toàn giống với bản ban đầu (trớc khi nén). Nén kiểu lossy làm mất một số thông tin. Nghe qua thì có vẻ đáng ngại, nhng nếu đợc thực thi tốt, bằng mắt thờng không thể phân biệt ảnh tời với ảnh gốc, mà kỹ thuật này đảm bảo đợc tỉ lệ nén rất cao.

Với các ảnh đen trắng, GIF là sơ đồ nén thực sự trung thực. Aấnh màu là vấn đề khác. GIF chỉ làm việc đợc với ảnh màu lập sẵn chỉ mục (indexed color image) và một lợng lớn thông tin bị mất khi chuyển ảnh màu 24 bit thành ảnh màu 8 bit có chỉ mục - bạn giảm số màu có thể từ 16,7 triệu xuống còn 256. Một ảnh nhỏ cỡ 320x240 điểm có thể nhiều màu hơn 300 lần so với trờng hợp màu có chỉ mục, kết quả là ảnh GIF 8 bit hoặc 5 bit không đợc mịn và rõ.

Tuy vậy, GIF có nhiều mặt mạnh. Trớc hết, và quan trọng nhất, đây là chuẩn de facto (về thực tế), đợc mọi Web browser đồ họa hổ trợ. Nếu bạn dùng GIF, chắc chắn bất cứ ai, ở bất cứ đâu, đều có thể sử dụng đợc tập tin của bạn.

GIF còn là dạng thức duy nhất đợc chấp nhận rộng rãi cho phép sử dụng các điểm trong suốt (transparent pixels) trong file ảnh. Nó còn hổ trợ interlacing (đan xen), một phơng thức cấu trúc hóa thông tin trong tập tin, cho phép ảnh đợc đa liên tục ra màn hình, ảnh cũ mờ dần, ảnh mới rõ nét lên.

Một chuyên gia giải thích kỹ thuật nén lossless nh sau: "Giả sử bạn có một ngăn kéo với 2 chiếc tất màu trắng, 2 chiếc tất màu đen. Thay vì nói: "Tôi có 1 tất trắng, 1 tất trắng nữa, 1 tất đen, 1 tất đen nữa", bạn sẽ giảm câu đi khoảng một nửa nếu nói: "Tôi có 1 cặp tất trắng và một cặp tất đen".

Run Length Encoding (RLE), một kiểu nén lossless đơn giản nhất, làm việc nh sau: Khi nén, tìm các đoạn lặp đi lặp lại - nếu thấy có hàng gồm 9 số không, tiếp theo là 3 số một, 12 số không, tất cả sẽ đ ợc thay bằng 3 số: 9, 3, 12. Cách này hiệu quả nhất đối với các ảnh có vùng lớn đồng màu, nh ng kém hiệu lực với các ảnh phức tạp.

Phơng pháp Lempel-Ziv-Welch (LZW) và kỹ thuật mã hóa kiểu Huffman phân tích và quan sát các đoạn lặp lại. Nếu LZW hoặc Huffman thấy có đoạn 010101, chúng đủ thông minh đánh dấu các đoạn nh vậy và thay bằng một ký tự, bằng cách đó dữ liệu đợc nén lại.

GIF sử dụng LZW cho TIFF nén. Tỉ lệ nén đạt ở mức vừa phải là 2:1. Để đạt đợc tỉ lệ cao hơn, cần đến kỹ thuật JPEG.

JPEG

GIF là chuẩn de facto, nhng JPEG mới là chuẩn đợc ISO chấp nhận (mã số: ISO 10918-1). JPEG viết tắt từ tên của ủy ban thiết lập ra nó là Joint Photographic Expert Group. Chuẩn này cũng có phơng thức nén lossless, nhng thực tế chẳng ai chấp nhận cả vì ngời ta thờng dùng các kỹ thuật khác. Tuy nhiên, nén lossy của JPEG lại đợc hổ trợ rộng rãi. Bạn có thể đạt tới tỉ lệ nén 100:1 hoặc cao hơn, tất nhiên phải trả giá cho chất lợng. Tỉ lệ càng thấp, ảnh càng đỡ thô hơn. Phần lớn chuyên gia thống nhất rằng tỉ lệ 10:1 là tối u nhất vì vừa đủ cao vừa đảm bảo chất lợng (bằng mắt thờng khó thấy đợc sự khác biệt giữa ảnh tời và ảnh gốc).

Nén theo chuẩn JPEG là một tiến trình nhiều bớc. Trớc hết là bớc qui tắc hóa (regularizing stage) để làm cho ảnh có nhiều đoạn giống nhau hơn thực tế. Aảnh màu đợc chuyển sang dạng YUV hoặc CIELAB, trong đó thông tin về độ sáng (luminance) đợc tách rời với thông tin về độ màu (chrominance). Một yếu tố đợc tính tới là mắt ngời ta nhạy cảm với những thay đổi nhỏ về độ sáng hơn là những thay đổi về màu sắc, đặc biệt ở đầu xanh của phổ. Ngoài ra cách làm này còn khai thác thực tế là ảnh thờng có nhiều vùng lớn tại đó các điểm kế nhau rất giống nhau về kênh màu.

Bớc tiếp theo là lấy mẫu cho các kênh màu. Đây là 1 trong 2 công đoạn làm mất thông tin và chỉ thực hiện khi bạn chọn xác lập high compression/low quality (tỉ lệ nén cao/chất lợng thấp) của JPEG.

Lấy mẫu (subsampling) nghĩa là loại bỏ có hệ thống các thông tin màu sắc đối với các hàng hoặc cột điểm ở tỉ lệ cho trớc. Nếu bạn thực hiện cứ hai hàng loại bỏ một hàng và hai cột loại bỏ một cột, bạn giảm đợc dữ liệu màu đi 75%. Khi tời ảnh, trị của các điểm loại bỏ trớc đó đợc ngoại suy từ những gì còn lại.

Bớc tiếp là sắp xếp lại dữ liệu bằng hàm toán học gọi là DCT (Discrete Cosine Transform). Làm việc với các khối điểm 8x8, hàm DCT phân tích các tần số vùng theo cả chiều ngang lẫn chiều dọc. Công đoạn này đợc gọi là lợng tử hóa (quantization) - cách gọi kỹ thuật của bớc làm giảm số bit cần thiết để biểu diễn mổi giá trị tần suất. Các trị này đợc nén trung thực trớc hết bằng RLE sau đó mã hóa theo kỹ thuật Huffman. Đây là công đoạn của JPEG cho phép đạt tỉ số nén rất cao.

Quá trình tời (decompression) là quá trình ngợc lại. Dữ liệu đợc giải mã bằng thuật toán Huffman, các trị kết quả đợc nhân lên, hàm DCT ngợc đợc áp dụng, các vùng luminance và chrominance đợc chuyển trở lại RGB.

Lựa chọn

Tỉ lệ nén của JPEG đạt đợc chủ yếu nhờ bớc lợng tử hóa. Khi thực thi, chất lợng khác nhau vẫn đạt đợc, cho dù tỉ lệ nén không thay đổi, nếu chọn các lợng tử khác nhau cho kênh màu và độ sáng.

ảnh nén theo JPEG thờng nhỏ hơn nếu dùng GIF mà khi tời vẫn đợc ảnh màu 24 bit thực sự. Tất nhiên là mất nhiều thời gian hơn để mở file của JPEG, đền bù lại là thời gian truyền ít đi. Nh ợc điểm của JPEG là không hổ trợ transparency và interlacing. Một số trình duyệt xem, bao gồm Netscape Navigator 2.0 và Spyglass's Mosaic hỗ trợ dạng thức mới gọi là progressive JPEG (PJPEG) cho phép hiện ảnh trên màn hình nh trờng hợp GIF đan xen, hiệu ứng mờ dần diễn ra có nhanh hơn.

Để quyết định chọn phơng thức nén nào cần xem xét một vài yếu tố. Thế mạnh của GIF là tính phổ dụng, nhng lại chỉ hổ trợ màu lập sẵn chỉ mục, tối đa 256 màu.

Nếu bạn không cần tới transparency và muốn có ảnh màu 24 bit chất lợng cao, JPEG là lựa chọn tốt nhất. Photoshop chỉ đa ra 4 xác lập nén cho JPEG (low, medium, high và maximum). Các tiện ích khác nh Image Alchemy và ProJPEG có nhiều tùy chọn hơn, nhng giá trị thực sự của chúng so với Photoshop là cho phép đạt tỉ lệ nén cao hơn: với tỉ lệ 40:1 chất lợng ảnh sau khi tời vẫn chấp nhận đợc.

Tơng lai

Khi bài báo này tới tay bạn đọc, Netscape Navigator 2.0 hẳn đã đợc tung ra. Đặc tính mới đáng giá nhất là kiến trúc plug-in cho phép các browser thông dụng có nhiều khả năng mới, chẳng hạn hổ trợ nhiều dạng thức hơn là một số đã biết nh GIF, JPEG và PJPEG. Electronic Book Technologies cũng vừa công bố bộ plug-in Figleaf Inline của mình, cho phép Web browser hiển thị đợc các tập tin vector của CGM cũng nh các dạng thức TIFF, EPS, WMF và nhiều kiểu khác. Corel cũng triển khai sản phẩm tơng tự là CMX Viewer cho phép Navigator hiển thị các tập tin Vector CMX của CorelDraw.

Một phần của tài liệu Connect to Internet potx (Trang 50 - 52)

Tải bản đầy đủ (DOC)

(63 trang)
w