MỤC LỤCLỜI NÓI ĐẦU Ngày nay truyền thông đa phơng tiện - multimedia đang đợc ứng dụng vànhanh chóng mở rộng ra trong nhiều dịch vụ thông tin và phát triển thêm nhiềudịch vụ thông tin mới
Trang 1ĐẠI HỌC KỸ THUẬT – HẬU CẦN CAND KHOA ĐIỆN TỬ VIỄN THÔNG
ĐA PHƯƠNG TIỆN ĐỀ TÀI: TÌM HIỂU VỀ GIAO THỨC NÉN ẢNH JPEG
Lớp: B7/D4Nhóm sinh viên thực hiện: Phạm Thanh Tú
Trần Minh HoàngNguyễn Đình TuânNguyễn Đình TiếnNguyễn Châu Thanh
Bắc Ninh, ngày 06 tháng 10 năm 2016
BÁO CÁOĐẠI HỌC KỸ THUẬT – HẬU CẦN CAND
Trang 2TRƯỜNG ĐẠI HỌC KỸ THUẬT - HẬU CẦN CAND
KHOA KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG
***
BÀI TẬP LỚN ĐA PHƯƠNG TIỆN
TÌM HIỂU VỀ CHUẨN NÉN JPEG
Trang 3MỤC LỤC
LỜI NÓI ĐẦU
Ngày nay truyền thông đa phơng tiện - multimedia đang đợc ứng dụng vànhanh chóng mở rộng ra trong nhiều dịch vụ thông tin và phát triển thêm nhiềudịch vụ thông tin mới, là những thành phần thông tin quan trọng không thể thiếucủa các xa lộ thông tin
Trong thế giới thông tin đa phơng tiện gần nh hầu hết là hoạt động ở chế
độ hội nghị truyền hình tơng tác có hình ảnh động và cho phép nhiều ngừơitham dự ở chế độ thời gian thực, thông qua các môi trờng mạng nh LAN,WAN, Internet, xDSL, ISDN, (Intergrated serviceDigital Network), ATM,PSTN (Public Switched Telephone Network) Trong đồ án này, chúng tôi thựchiện tiếp cận, nghiên cứu, tìm hiểu những vấn đề cơ bản sau của công nghệtruyền thông đa phơng tiện:
- Những vấn đề cơ sở của truyền thông đa phơng tiện tơng tác
- Họ giao thức H32x
- Hội nghị đa phơng tiện
- Những yêu cầu về giải thông đối với mạng đa phơng tiện
- Các tiêu chuẩn truyền dẫn của mạng truyền thông đa phơng tiện
- Các phơng tiện truyền dẫn và phần cứng của mạng thông tin đa phơngtiện
- Các giải pháp mạng sử dụng mạng LAN cho thông tin đa phơng tiệnTrong khuôn khổ của đề tài, nhóm đã tập trung vào một số điểm chủ chốt
nh loại hình Điểm - Điểm, chỉ có hai kết nối thực hiện Video Conferencing vớinhau để từ đó tìm hiểu và khảo sát một số giải pháp công nghệ, lựa chọn cácchuẩn phù hợp, các thiết bị phần cứng phần mền hội nghị truyền hình của một sốcông ty, hãng nỗi tiếng trên thế giới nh: CISCO, POLYCOM, SONY, VCON,PICTURETEL, ZYDACRON
3
Trang 41 Giới thiệu về Matlab
1.1 Khái niệm về Matlab
Matlab là một ngôn ngữ lập trình thực hành bậc cao được sử dụng để giải các bài toán về kỹ thuật Matlab tích hợp được việc tính toán, thể hiện kết quả, cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng Dữ liệu cùng với thư viện được lập trình sẵn cho phép người sử dụng có thể có được những ứng dụng sau đây
• Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường.
• Cho phép lập trình tạo ra những ứng dụng mới
• Cho phép mô phỏng các mô hình thực tế
• Phân tích, khảo sát và hiển thị dữ liệu
• Với phần mềm đồ hoạ cực mạnh.
• Cho phép phát triển, giao tiếp với một số phần mềm khác như C++, Fortran
1.2 Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng
Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng (mảng này không đòi hỏi về kích thước) Chúng cho phép giải quyết các vấn đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay vector và có thể sử dụng ngôn ngữ C hoặc Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng các câu lệnh gọi từ Matlab Matlab được viết tắt từ chữ “MATrix LABoratory” tức là thư viện về ma trận, từ đó phần mềm Matlab được viết nhằm cung cấp cho việc truy cập vào phần mềm ma trận một cách dễ dàng, phần mềm ma trận này được phát triển bởi các công trình Linpack và Eispack Ngày nay Matlab được phát triển bởi Lapack và Artpack tạo nên một nghệ thuật phần mềm cho ma trận
1.2.1 Dữ liệu
Dữ liệu của MATLAB thể hiện dưới dạng ma trận (hoặc mảng–tổng quát), và
có các kiểu dữ liệu được liệt kê sau đây:
• Kiểu đơn single, kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn, kiểu dữ liệu này không được sử dụng trong các phép tính toán học, độ chính xác kém hơn
• Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong Matlab
Trang 5• Kiểu Sparse
• Kiểu uint8, uint16
• Kiểu char ví dụ ‘Hello’
• Các kỹ sư, các nhà nghiên cứu khoa học.
• Dùng MATLAB để tính toán, nghiên cứu tạo ra các sản phẩm tốt nhất trong sản xuất
1.2.3 Toolbox là một công cụ quan trọng trong Matlab
Công cụ này được MATLAB cung cấp cho phép bạn ứng dụng các kỹ thuật để phân tích, thiết kế, mô phỏng các mô hình
Ta có thể tìm thấy toolbox ở trong mô trường làm việc của
• Mạng nơron
• Logic mờ.
• Simulink
1.3 Hệ thống MATLAB
Hệ thống giao diện của MATLAB được chia thành 5 phần:
• Môi trường phát triển
Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sử dụng các lệnh và các file, ta có thể liệt kê một số như sau
+ Desktop
+ Command Window.
5
Trang 6+ Command History
+ Browsers for viewinghelp
• Thư viện, các hàm toán học bao gồm các cấu trúc như tính tổng, sin cosin, atan, atan2 etc , các phép tính đơn giản đến các phép tính phức tạp như tính ma trận nghịch đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library
• Ngôn ngữ MATLAB Đó là các ngôn ngữ cao về ma trận và mảng, với các dòng lệnh, các hàm, cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng
• Đồ họa trong MATLAB Bao gồm các câu lệnh thể hiện đồ hạo trong môi trường 2D và 3D, tạo các hình ảnh chuyển động, cung cấp các giao diện tương tác giữa người
sử dụng và máy tính
• Giao tiếp với các ngôn ngữ khác MATLAB cho phép tương tác với các ngôn ngữ khác như C, Fortran …
Trang 72 Lý thuyết tổng quan nén ảnh JPEG:
2.1 Lý thuyết chung về chuẩn JPEG.
JPEG (Joint Photographic Expert Group) là tên của một tổ chức nghiên cứu
về các chuẩn nén ảnh (trước đây là ISO) được thành lập vào năm 1982 Năm
1986, JPEG chính thức được thiết lập nhờ sự kết hợp giữa nhóm ISO/IEC vàITV Tiêu chuẩn này có thể được ứng dụng trong nhiều lĩnh vực: lưu trữ ảnh,Fax màu, truyền ảnh báo chí, ảnh cho y học, camera số…
Tiêu chuẩn JPEG (Joint Photographic Experts Group) được định ra cho nénảnh tĩnh đơn sắc và màu Công nghệ nén ảnh JPEG là một trong những côngnghệ 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 8bit (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ảnh mà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ắcgiữ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.2 Nguyên lý nén chuẩn JPEG:
Phương pháp nén ảnh JPEG dựa trên nguyên lý sau: ảnh màu trong khônggian 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
7
Trang 8hơ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ạycả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áchnhững thô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ởi ngườ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ụng cho nhiều ứng dụng với ảnh động bởi vì nó cho chất lượng ảnh khôiphụ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ộng rã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 khi chúng ta truy cập một trang web Nén JPEG có thể thực hiệnbở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áiqua 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ểu quétphức hợp theo chế độ phân giải không gian cho các ứng dụng trên kiể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áccho mỗi giá trị mẫu của nguồn Thông tin không cần thiết sẽ mới cắt bỏ cho nênhiệu quả nén thấp hơn so với phương pháp có tổn thất
Mã hóa phân cấp (hierarchical): ảnh được mã hóa ở chế độ phân giải khônggian phức hợp, để cho những ảnh có độ phân giải thấp có thểđược truy xuất vàhiển thị mà không cần giải nén như những ảnh có độ phân giải trong không giancao 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ứng dụng trong nhiều lĩnh vực: lưu trữ ảnh, Fax màu, truyền ảnh báo chí, ảnhcho y họ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 ảnhkhôi phục tốt
Trang 10Hình 1.1 Sơ đồ nén JPEG
Trong đó:
2.2.1 Chuyển ảnh quét thành khối 8x8:
MB (Marco Block): 4 block tín hiệu chói Y và 2, 4 hoặc 8 block tín hiệuhiệu màu
Block là một ma trận điểm ảnh 8x8 pixel
Mục đích: tính toán DCT cho từng vùng dư thừa dữ liệu khác nhau
Tất cả các block có cùng kích thước và mỗi block là một ma trận điểm ảnh8×8 pixel được lấy từ một ảnh màn hình theo chiều từ trái sang phải, từ trênxuống dưới Kích thước block là 8×8 được chọn bởi hai lý do sau:
Thứ nhất, 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
Trang 11Thứ hai, là sự tiện lợi cho việc tính toán và thiết kế phần cứng Nói chung,
độ phức tạp về tính toán sẽ tăng nếu kích thước block tăng
Dung lượng lưu trữ ảnh cũng phụ thuộc vào loại ảnh quét Nếu quét liên tụcthì các block bao gồm các mẫu từ các dòng liên tục (lúc này nén ảnh theo-frame) Ngược lại, trong trường hợp quét cách dòng, trong một block chỉ có cácmẫu của một nửa ảnh Tóm lại, việc chia hình ảnh thành các ảnh con (block) sẽthực sự có ý nghĩa cho bước chuyển vị tiếp theo
2.2.3 Biến đổi cosine rời rạc DCT:
DCT (Discrete Cosine Transform): biến đổi dữ liệu dưới dạng biên độ thành
+ x(m)- giá trị của mẫu m
+ k- chỉ số của hệ số khai triển
Trang 12F(u,v)- các hệ số của khối DCT 8x8
f(j,k)- các mẫu gốc trong khối 8x8 pixel
C(u), C(v) =
Hệ số thứ nhất:
Hình 1.2 Biến đổi DCT
2.2.6 Biến đổi Cosin rời rạc ngược IDCT
Phép biến đổi DCT hai chiều là biến đổi đối xứng và biến đổi nghịch có thểtạo lại các mẫu f(j, k) trên cơ sở các hệ số F(u,v) theo công thức sau:
F(u,v)- các hệ số của khối DCT 8x8
f(j,k)- các mẫu gốc trong khối 8x8 pixel
Trang 132.2.8 Máy quét zigzac
Mục đích: biến đổi mảng hai chiều các hệ số Fq(u,v) thành chuỗi số mộtchiều
13
Trang 14Hình 1.4 Zig Zag
Trang 152.2.9 Mã hóa Entropy
Mục đích: Làm giảm độ dư thừa thống kê trong các phần tử được mã hóa đểtruyền
Mã hóa entropy sử dụng mã hóa VLC và mã hóa RLC
RLC (Run Length Code): mã hóa độ dài chạy thực hiện mã hóa một hệ sốkhác 0 sau giá trị DC bằng một từ mã bao gồm 2 thông số:
Số lượng 0 chạy trước nó
Mức của nó sau khi lượng tử hóa
End of Block (EOB) được dùng để cho biết tất cả các hệ số tiếp theo trongkhối bằng 0
VLC (Variable Length Code): Mã hóa độ dài biến đổi được thực thi bằngcách đặt các từ mã ngắn cho các mức có xác suất xuất hiện cao và các từ mã dàicho các mức có xác suất xuất hiện thấp
15
Trang 16Hình 1.5 Mã hóa Entropy
Trang 18Lượng tử hóa
Ảnh Gốc
Ảnh con 8x8Ảnh con 8x8Ảnh con 8x8
hoạt động (Bao gồm cả giao diện)
function varargout = untitled(varargin)
% UNTITLED MATLAB code for untitled.fig
Hình 2.7 Mô hình nén
Trang 19% UNTITLED, by itself, creates a new UNTITLED or raises the existing
% existing singleton* Starting from the left, property value pairs are
% applied to the GUI before untitled_OpeningFcn gets called An
% unrecognized property name or invalid value makes propertyapplication
% stop All inputs are passed to untitled_OpeningFcn via varargin
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help untitled
19
Trang 20% Last Modified by GUIDE v2.5 28-Nov-2016 18:42:57
% Begin initialization code - DO NOT EDIT
% End initialization code - DO NOT EDIT
% - Executes just before untitled is made visible
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
Trang 21% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to untitled (see VARARGIN)
% Choose default command line output for untitled
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
21
Trang 22% - Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% anh kich thuoc: 128x128
[filename,pathname]=uigetfile({'*.tif;*.bmp;*.gif;*.jpg'},'Chon mot anh batky');
Trang 23% khoi phuc he so the DCT 2-D
% khoi phuc anh 8x8
for m=1:256
FC(:,:,m)=FF(:,:,m) *Q;
23
Trang 26- Sau lần nén đầu tiên : Ảnh có mờ đi nhưng không đáng kể
- Sau lần nén thứ 2 : ảnh mờ đi rõ rệt
• Đánh giá:
- Đã mô phỏng thành công nén ảnh trên matlab
- Hiểu chi tiết về quá trình nén ảnh, giải nén ảnh
- Cung cấp phương tiện cần
4.1 Kết luận
Trong thời gian làm đề tài với sự hạn chế về thời gian, tài liệu, cơ sở vậtchất cũng như hạn chế về kiến thức đòi hỏi bản thân chúng em phải cố gắng tìmtòi và nhiệt tình trong công việc nghiên cứu đề tài và cuối cùng đề tài đã hoànthành trọn vẹn Đó là kết quả của một thời gian dài nổ lực nghiên cứu của chúng
em dưới sự hướng dẫn tận tình của giáo viên hướng dẫn nên đề tài đã hoàn thànhđúng thời hạn
Với đề tài này chúng em vừa kiểm tra được kiến thức của mình, vừa thuđược một số kiến thức về phần mềm Matlab một trong những phẩn mềm toánhọc hay và thông dụng nhất hiện nay Tuy thành quả công việc không có gì tolớn nhưng đó là quá trình dẫn dắt chúng em làm quen với việc ứng dụng kiếnthức đã học vào thực tế, tạo một khả năng tự lập khi nghiên cứu một vấn đề nào
đó
Tuy nhiên trong quá trình làm việc chúng em không thể tránh khỏi sai sót.Mong sự chỉ bảo của thầy cô và đóng góp ý kiến của bạn bè để đề tài ngày mộthoàn thiện hơn
Trang 27Phân công công việc :
Lý thuyết nén JPEG Trần Minh Hoàng, Nguyễn Đình
Tuân
Mô phỏng, code Matlab Phạm Thanh Tú
27