Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 97 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
97
Dung lượng
6,3 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƢỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN KHOA KHOA HỌC MÁY TÍNH KHÓA LUẬN TỐT NGHIỆP ĐỀ XUẤT GIẢI THUẬT NÉN VÀ TRUYỀN VIDEO WEBCAM QUA MẠNG CHO ỨNG DỤNG HỘI NGHỊ TRUYỀN HÌNH Giảng viên hướng dẫn: TS VŨ THANH NGUYÊN Sinh viên thực hiện: ĐỖ DUY PHÚC MAI HOÀNG HỒI THƢƠNG Lớp : CNTN02 Khóa : 02 TP.Hồ Chí Minh, tháng năm 2011 LỜI MỞ ĐẦU Trước đây,việc liên lạc người tiến hóa qua nhiều hình thái khác từ truyền miệng, gửi thư, điện báo, điện thoại,…Và hình thái xuất đánh dấu nấc thang phát triển, mở rộng hiệu liên lạc người mặt thời gian lẫn mặt truyền đạt nội dung Nhưng xuất Internet với công nghệ đại tin học thật đánh dấu bước phát triển bùng nổ sang thời đại thông tin người Đi kèm với bước phát triển nhiều hình thức liên lạc truyền đạt thơng tin đời, làm ảnh hưởng mạnh mẽ đến cách thức mà người liên lạc với Ví dụ thường xuyên đến bưu điện để gửi thư viết tay cho mà chuyển sang gửi email, tin nhắn tức thời để tiết kiệm thời gian hơn; chọn lựa sử dụng điện thoại truyền thống chuyển sang hình thức điện thoại VoIP qua mạng Internet với chi phí sử dụng giảm thiểu rõ rệt Và trước khoảng cách xa xơi trở ngại cho mong muốn gặp mặt trò chuyện với với hạ tầng, cơng nghệ đại ngày mang lại giải pháp khả thi cho vấn đề này: hội nghị truyền hình qua mạng Hội nghị truyền hình cách thức liên lạc hiệu quả, chưa sử dụng rộng rãi chi phí yêu cầu hạ tầng chưa phù hợp với khả người dùng bình dân Một yêu cầu hạ tầng hội nghị truyền hình băng thơng đường truyền mạng phải lớn để truyền video thời gian thực Đặc biệt phiên hội nghị thường có nhiều hai bên tham dự, nên có nhiều nguồn video gửi lên hệ thống lúc Do vậy, để góp phần đưa loại hình liên lạc phù hợp với túi tiền người bình dân, chúng em chọn đề tài nghiên cứu giải thuật nén truyền video thu từ webcam qua mạng dùng cho ứng dụng hội nghị truyền hình với mục tiêu hướng tới tìm cách làm giảm yêu cầu băng thông loại phương tiện liên lạc LỜI CẢM ƠN Chúng em xin chân thành cảm ơn Khoa Khoa Học Máy Tính, trường Đại Học Cơng Nghệ Thơng Tin – ĐH Quốc Gia Tp.HCM tạo điều kiện tốt cho chúng em thực đề tài tốt nghiệp Chúng em xin chân thành cảm ơn thầy Vũ Thanh Nguyên – Trưởng Khoa Công Nghệ Phần Mềm tận tình hướng dẫn, bảo hỗ trợ cho chúng em suốt thời gian thực đề tài Chúng em xin chân thành cảm ơn quý Thầy Cô Khoa Khoa Học Máy Tính tận tình giảng dạy, trang bị cho chúng em kiến thức quý báu năm học vừa qua Và chúng em chân thành cảm ơn quý Thầy Cô Khoa Cơng Nghệ Phần Mềm nhiệt tình bảo hỗ trợ cho nhóm chúng em hồn thành cơng việc Chúng xin gửi lòng biết ơn sâu sắc đến ba, mẹ gia đình ni dưỡng, giáo dục, tạo điều kiện tốt cho chúng thành người có ích cho xã hội Chúng chân thành cảm ơn đến anh chị em bạn bè ủng hộ, giúp đỡ động viên lúc khó khăn suốt thời gian học tập nghiên cứu Mặc dù chúng em cố gắng hoàn thành luận văn phạm vi khả cho phép, chắn không tránh khỏi thiếu sót, kính mong cảm thơng tận tình bảo q Thầy Cơ bạn Nhóm thực Đỗ Duy Phúc & Mai Hoàng Hoài Thương MỤC LỤC LỜI MỞ ĐẦU ii LỜI CẢM ƠN iii MỤC LỤC iv DANH MỤC HÌNH vii DANH MỤC BẢNG viii THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT ix HỆN TRẠNG VÀ MỤC TIÊU A Hiện trạng hệ thống hội nghị truyền hình: B Mục tiêu đề tài: Chƣơng 1: Tổng Quan 1.1 Tổng quan hội nghị truyền hình: 1.1.1 Giới thiệu: 1.1.2 Lịch sử: 1.1.3 Công nghệ: 1.1.4 Phân loại: 1.1.5 Ứng dụng: 1.2 Quá trình xử lý liệu: 1.2.1 Sơ lược: 1.2.2 Codec - Số hóa tín hiệu nén liệu: Chƣơng 2: Các Mơ Hình Hệ Thống Và Giao Thức Mạng 10 2.1 Các phƣơng tiện truyền gửi: 10 2.2 Chuẩn H.323: 11 2.2.1 Giới thiệu: 11 2.2.2 Các lợi ích cốt lõi H.323 12 2.3 Giao thức Session Initiation Protocol: 13 2.4 So sánh: 15 2.5 Kiến Trúc H.323: 18 2.5.1 Các thành phần hệ thống: 19 2.5.2 Hội nghị đa điểm: 23 2.5.3 Các giao thức sử dụng H.323: 26 Chƣơng 3: Dữ Liệu Video 38 3.1 Giới thiệu: 38 3.2 Các đặc tính video: 38 3.2.1 Số lượng khung hình giây: 38 3.2.2 Interlaced progressive video: 38 3.2.3 Độ phân giải hiển thị: 39 3.2.4 Tỉ lệ khung hình: 40 3.2.5 Không gian màu số bit pixel: 41 3.2.6 Bit rate: 41 3.3 Nén video: 42 3.3.1 Nhu cầu thực tế nén liệu ảnh video: 42 3.3.2 Tính tiện lợi nén ảnh video: 42 Chƣơng 4: Xây Dựng Giải Thuật Nén Và Truyền Video Cho Ứng Dụng Hội Nghị Truyền Hình 51 4.1 Ý tƣởng giải thuật 51 4.2 Phƣơng pháp 52 4.2.1 Chuyển ảnh hệ màu Grayscale 52 4.2.2 Ghi dấu điểm ảnh thay đổi: 54 4.2.3 Gom nhóm điểm ảnh thay đổi 56 4.2.4 Nén khu vực ảnh có vật thể chuyển động: 57 4.2.5 Tái tạo khung ảnh 61 4.3 Kiểm tra thực nghiệm: 61 Chƣơng 5: Triển Khai Và Thực Nghiệm Giải Thuật Trên Hệ Thống Hội Nghị Truyền Hình Chuẩn H.323 63 5.1 Hệ thống hội nghị H.323 nguồn mở: 63 5.1.1 Dự án H323plus: 63 5.1.2 Giới thiệu MyPhone: 64 5.1.3 Giới thiệu GNU Gatekeeper : 65 5.1.4 Giới thiệu Talkez: 66 5.1.5 Mơ hình hệ thống thử nghiệm: 66 5.2 Tạo video codec: 72 5.2.1 Hệ thống Codec Plugin hỗ trợ H323Plus: 73 5.2.2 Tạo video codec plugin H323Plus cho giải thuật WVMT: 73 5.3 Thực nghiệm đánh giá kết quả: 82 5.3.1 Thực nghiệm: 82 5.3.2 Đánh giá: 84 TỔNG KẾT 85 A Kết quả: 85 B Hạn chế: 85 C Hƣớng phát triển: 85 TÀI LIỆU THAM KHẢO 86 DANH MỤC HÌNH Hình 1.1 Quy trình thu truyền tín hiệu Hình 1.2 Quy trình nhận phát tín hiệu Hình 2.1 Mơ hình tổng quan kiến trúc H.323 18 Hình 2.2 Mơ hình lý thuyết hoàn chỉnh ngăn xếp giao thức chứa H.323 terminal 19 Hình 2.3 Gateway H.323/PSTN 20 Hình 2.4 Vùng quản lý Gatekeeper H.323 21 Hình 2.5 Sơ đồ mơ hình hội nghị tập trung phân tán 24 Hình 2.6 Mơ hình hội nghị kiểu phân tán lai 26 Hình 2.7 Cấu trúc gói tin RTP gói tin IP 31 Hình 2.8 Bước trình thực gọi H.323 34 Hình 2.9 Bước trình thực gọi H.323 35 Hình 2.10 Bước trình thực gọi H.323 35 Hình 2.11.Bước trình thực gọi H.323 35 Hình 2.12 Bước trình thực gọi H.323 36 Hình 3.1 (a) Một ví dụ cho progressive video (b) Một ví dụ cho interlaced video 39 Hình 3.2.(a) Một ảnh bé trai bé gái (d)Vị trí hàng 318 cột 262 ảnh (b)và (c) Biểu đồ cường độ màu sắc pixel hàng 318 cột 262 [5] 45 Hình 3.3.(a) Khung ảnh thứ 21 (b) khung ảnh thứ 22 “Miss America”[5] 46 Hình 3.4 Các tỉ lệ lấy mẫu chroma subsampling phổ biến 50 Hình 4.1 Ví dụ ảnh grayscale 54 Hình 4.2 Bản đồ điểm ảnh thay đổi khung hình 55 Hình 4.3 Các chấm trắng nhiễu làm mờ Erosion 3x3 55 Hình 4.4 Các chấm trắng gom vào hình chữ nhật 56 Hình 4.5 Vùng ảnh chuyển động: 57 Hình 4.6 Quá trình tái tạo hình ảnh 61 Hình 4.7 Biểu đồ thực nghiệm dung lượng thuật toán nén 62 Hình 5.1 Mơ hình hệ thống thử nghiệm 66 Hình 5.2 Giao diện GkGUI 69 Hình 5.3 Giao diện MyPhone 70 Hình 5.4 Giao diện MyPhone gọi với độ phân giải QCIF 70 Hình 5.5 Giao diện MyPhone gọi với độ phân giải CIF 71 Hình 5.6 Giao diện Talkez MCU 72 Hình 5.7 Giao diện Talkez MCU thực hội nghị 72 Hình 5.8 Minh họa mơ hình cấu trúc WVMT video codec plugin 80 Hình 5.9 Biểu đồ so sánh bit rate hệ thống 83 Hình 5.10 Chất lượng hình ảnh gốc 83 Hình 5.11 Chất lượng hình ảnh thu từ WVMT codec 84 DANH MỤC BẢNG Bảng 1.1 So sánh codec audio Bảng 1.2 So sánh độ phân giải video Bảng 2.1 Bảng so sánh H.323 SIP 17 Bảng 3.1 Bảng ví dụ hai tập mã nhị phân [5] 47 Bảng 3.2 Bảng liệt kê số lượng bit/pixel tỉ lệ chroma subsampling 50 Bảng 4.1 Bảng so sánh hiệu nén chuẩn PNG JPEG 2000 60 Bảng 4.2 Tỷ lệ kích thước ảnh truyền 62 Bảng 4.3 So sánh dung lượng thuật toán nén 62 Bảng 5.1 Bảng miêu tả struct PluginCodec_Definition 78 Bảng 5.2 Kết thực nghiệm 83 THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT ADSL Asynchronous Digital Subscriber Lines ARC Admission Confirm ARJ Admission Reject ARQ Admission Request BCF Bandwidth Confirm BRJ Bandwidth Reject BRQ Bandwidth Request CBR Constant Bit Rate CIF Common Interchange Format DCF Disengage Confirm DRJ Disengage Reject DRQ Disengage Request GIF Graphics Interchange Format GNU General Public License HTTP Hypertext Transfer Protocol HVS Human Visual System IETF Internet Engineering Task Force IP Internet Protocol ISDN Integrated Services Digital Network ITU International Telecommunication Union JPEG Joint Photographic Experts Group LAN Local Area Network MC Multipoint Controller MCU Multipoint Conference Unit MP Multipoint Processor MPEG Moving Picture Experts Group MPL Mozilla Public License NTSC National Television System Committee PAL Phase Alternating Line PNG Portable Network Graphics POTS Plain Old Telephone Service PSTN Public Switched Telephone Network QCIF Quarter Common Interchange Format QoS Quality of Service RAS Registration Admission Status RFC Request for Comments RSVP Resource Reservation Protocol SCTP Stream Control Transmission Protocol SECAM Séquentiel couleur mémoire - Sequential Color with Memory SIP Session Initiation Protocol SMTP Simple Mail Transfer Protocol SQCIF Sub Quarter Common Interchange Format TCP Transmission Control Protocol UDP User Datagram Protocol URL Uniform Resource Locator VBR Variable Bit Rate VPN Virtual Private Networks WAN Wide Area Network 73 5.2.1 Hệ thống Codec Plugin hỗ trợ H323Plus: Việc thêm bớt thao tác với codec sử dụng thư viện H323Plus thực thông qua giao tiếp với plugin Đây lợi H323Plus điều làm đơn giản hóa làm linh động thao tác codec Khi đó, ta không cần thiết phải sửa code biên dịch lại tồn thư viện, giảm lượng cơng việc phải tìm chép đầy mã nguồn H323Plus môi trường phát triển phù hợp, với kiến thức chi tiết C++ chức H323 H323Plus tải codec lúc thực thi từ tập tin dll (Windows) so (Unix) Sử dụng hệ thống hệ điều hành Windows: Trong hệ thống thực nghiệm ta, phần mêm MyPhone phần mềm sử dụng trực tiếp hệ thống codec plugin H323Plus Do đó, sau codec tạo, việc thao tác sử dụng thay đổi codec thực qua MyPhone Điều có nghĩa với máy PC cài đặt MyPhone, cần có hệ thống codec plugin riêng: - Tên codec plugin phải có kết thúc “_pwplugin.dll” ”_ptplugin.dll” - Các tập tin dll phải đặt thư mục mà H323Plus tìm thấy Các thư mục chứa plugin lưu biến môi trường PTLIBPLUGINDIR Nếu biến không định nghĩa thư mục plugin mặc định là: “C:\PTLib_Plugin” 5.2.2 Tạo video codec plugin H323Plus cho giải thuật WVMT: 5.2.2.1 Mơ hình lập trình: Một codec plugin hoạt động tương tác với H323Plus cách xuất tập bảng chứa tất liệu hàm chức cần thiết để truy cập sử dụng codec Những bảng cung cấp mơ hình codec nhiều phương thức chuyển đổi liệu từ định dạng sang định dạng khác Một codec thường chuyển đổi liệu theo hai hướng, ví dụ codec G.723.1 dùng cho audio mã hóa từ PCMGVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 74 16 sang G.723.1 giải mã từ G.723.1 ngược lại PCM-16 Phần lớn codec cung cấp hai phương thức bổ sung để cung cấp việc chuyển đổi liệu Hầu hết codec có trạng thái thông tin liên quan cần thiết cho lần thực thi phương thức chuyển đổi, thông tin phải giữ gìn, cung cấp suốt lần gọi sau đến hàm chuyển đổi Để cho phép điều này, hàm chuyển đổi có hai hàm bổ sung dùng để tạo hủy context (có nghĩa ngữ cảnh – dùng để tất thông tin trạng thái kèm với hàm chuyển đổi liệu) Các thông tin context sử dụng lần gọi hàm chuyển đổi Tất struct define (ngơn ngữ C++) cần thiết cho giao diện plugin chứa tập tin opalplugin.h Tập tin cung cấp phần gói mã nguồn H323Plus 5.2.2.2 Các hàm xuất plugin: Một plugin xuất hai hàm để truy cập codec plugin Có nghĩa hệ thống tải tập tin plugin vào, hệ thống “nhìn thấy” hai hàm này, chúng xem cánh cổng để truy xuất đến tất chức thông tin codec Các hàm xuất dạng ngôn ngữ “C” – plugin viết ngôn ngữ C++, nên chúng phải xuất với tên hàm unmangled ( dạng tên hàm sau biên dịch theo ngôn ngữ C) Hàm thứ nhất: unsigned int PWLibPlugin_GetAPIVersion() Hàm yêu cầu cho tất PTLib plugin Giá trị trả về: phiên PTLib Plugin API hỗ trợ plugin Phiên hỗ trợ Hàm thứ hai: PluginCodec_Definition * OpalCodecPlugin_GetCodecs(unsigned * count, unsigned version) Trả bảng định nghĩa giao diện codec đối số Các bảng cài đặt theo struct PluginCodec_Definition, miêu tả giải thích phần GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 75 count: giá trị số nguyên trỏ đến đối số phải gán số lượng phần tử mảng chứa đối tượng struct PluginCodec_Definition trả version: rõ phiên giao diện codec plugin hỗ trợ H323Plus Giá trị trả về: trỏ đến mảng đối tượng struct PluginCodec_Definition miêu tả codec cài đặt plugin Nếu trỏ NULL, khơng có codec định nghĩa 5.2.2.3 Struct PluginCodec_Definition: Hàm OpalCodecPlugin_GetCodecs trả trỏ đến mảng đối tượng PluginCodec_Definition, đối tượng cung cấp giao diện đến phương thức chuyển đổi codec Định nghĩa struct sau: struct PluginCodec_Definition { unsigned int version; // codec structure version struct PluginCodec_information * info; // license information unsigned int flags; // various codec flags const char * descr; // text decription const char * sourceFormat; // source format const char * destFormat; // destination format const void * userData; // user data value unsigned int sampleRate; // samples per second unsigned int bitsPerSec; // raw bits per second unsigned int usPerFrame; // microseconds per frame union _parm { struct _audio { unsigned int samplesPerFrame; // audio: samples per frame unsigned int bytesPerFrame; // audio: max bytes per frame unsigned int recommendedFramesPerPacket; // audio: recommended //number of frames per packet unsigned int maxFramesPerPacket;// audio: maximum number of //frames per packet } audio; struct _video { unsigned int maxFrameWidth; GVHD: TS.Vũ Thanh Nguyên // video: frame width SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 76 unsigned int maxFrameHeight; // video: frame height unsigned int recommendedFrameRate; // video: recommended frame //rate unsigned int maxFrameRate; // video: max frame rate } video; } parm; unsigned char rtpPayload; // IANA RTP payload code (if //defined) const char * sdpFormat; // SDP format string (or //NULL, if no SDP format) void * (*createCodec)(const struct PluginCodec_Definition * codec); // create codec void (*destroyCodec) (const struct PluginCodec_Definition * codec, void * context); // destroy codec int (*codecFunction) (const struct PluginCodec_Definition * codec, void * context, const void * from, unsigned * fromLen, void * to, unsigned * toLen, unsigned int * flag); // codec function struct PluginCodec_ControlDefn * codecControls; unsigned char h323CapabilityType; // H323 specific fields const void * h323CapabilityData; }; Ý nghĩa trường thông tin sau: Trƣờng Miêu tả Chỉ định phiên struct sử dụng Các giá trị hỗ trợ: = initial version – phiên version = added wideband – phiên có hỗ trợ băng thông rộng = added video – phiên phản hỗ trợ video (tạo video codec) = added fax – phiên hỗ trợ fax GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 77 = added options handling – phiên hỗ trợ quản lý tùy chọn info Con trỏ đến đối tượng PluginCodec_information miêu tả thông tin giấy phép phiên codec Các bit flags báo hiệu thông tin khác nhau: b3-b0 (PluginCodec_MediaTypeAudio) = loại audio, (PluginCodec_MediaTypeVideo) = video, other values reserved b4 0x00 (PluginCodec_InputTypeRaw) = input data is raw 0x10 (PluginCodec_InputTypeRTP) = input data is RTP b5 0x00 (PluginCodec_OutputTypeRaw) = output data is raw 0x20 (PluginCodec_OutputTypeRTP) = output data is RTP b6 flags RTP b7 0x00 (PluginCodec_RTPTypeDynamic) = codec uses dynamic RTP payload type 0x40 (PluginCodec_RTPTypeExplicit) = codec uses explicit payload type 0x00 (PluginCodec_RTPTypeNotShared) = codec cannot share payload type 0x80 (PluginCodec_RTPTypeShared) = codec can share payload type b8 0x000 (PluginCodec_NoDecodeSilence) = codec cannot handle frame erasure 0x100 (PluginCodec_DecodeSilence) = codec can handle frame erasure b23-b9 reserved - set to zero b31-b24 0xf000 (PluginCodec_BitsPerSampleMask) = number of bits per sample descr Con trỏ đến chuỗi ký tự miêu tả codec GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 78 sourceFormat Con trỏ đến chuỗi ký tự định nghĩa định dạng liệu nguồn destFormat Con trỏ đến chuỗi ký tự định nghĩa định dạng liệu đích userData Con trỏ đến thông tin người cài đặt quy định sampleRate Tốc độ lấy mẫu codec Với video, tốc độ lấy mẫu thường 9000 lần giây bitsPerSec Số bit thô giây Micro giây frame (frame dùng cho liệu audio video) usPerFrame Thông tin liệu audio video sử dụng codec parm rtpPayload Chỉ định kiểu RTP PluginCodec_RTPTypeExplicit payload sdpFormat Con trỏ đến chuỗi định nghĩa định dạng SDP media flags chứa createCodec Con trỏ đến hàm tạo context cho phương thức codec destroyCodec Con trỏ đến hàm hủy context cho phương thức codec codecFunction Con trỏ đến hàm phương thức codec codecControls Con trỏ đến cấu trúc chứa hàm bổ sung để điểu khiển codec h323Capability Type Một giá trị số nguyên định nghĩa loại chuẩn codec sử dụng Có số chuẩn định nghĩa sẵn h323Capability Data Thông tin bổ sung cho chuẩn định nghĩa h323CapabilityType Bảng 5.1 Bảng miêu tả struct PluginCodec_Definition GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 79 Mỗi đối tượng struct PluginCodec_Definition định nghĩa cho phương thức chuyển đổi liệu, hay cụ thể chiều chuyển đổi Để tạo codec hoàn chỉnh cần phải có hai phương thức chuyển đổi song song theo hai chiều khác Do đó, tạo codec, ta cần tạo hai đối tượng PluginCodec_ Definition, đối tượng cho hàm mã hóa liệu từ định dạng thô sang định dạng nén, hàm giải mã liệu theo chiều ngược lại Khi H323Plus tải codec plugin vào hệ thống, nhận diện cặp phương thức chuyển đổi song song bổ trợ cách sử dụng trường sourceFormat destFormat, kết hợp chúng lại để tạo thành codec Ở đây, để thực nghiệm ta cần tạo codec cho hai phiên độ phân giải video xác định CIF QCIF, phiên tự động phân biệt độ phân giải Tương ứng với phiên bản, ta cần tạo cặp mã hóa/giải mã riêng Như ta định nghĩa sáu đối tượng PluginCodec_Definition cho sáu chiều chuyển đổi liệu 5.2.2.4 Các phƣơng thức codec: Một codec cung cấp ba hàm thủ tục để hệ thống H323Plus sử dụng cho việc thực tác vụ chuyển đổi liệu: 1) Hàm createCodec dùng để tạo context cho đối tượng cụ thể codec Nó sử dụng để cung cấp khai báo trước codec khởi động 2) Hàm destroyCodec dùng để hủy context tạo hàm createCodec Nó dùng để thực dọn dẹp sau codec dừng 3) Hàm codecFunction dùng để hệ thống H323plus gọi thực việc chuyển đổi liệu thật từ định dạng sang định dạng khác Các context đề cập trên, cài đặt thực tế định nghĩa thành class ngôn ngữ C++ Mỗi class context chứa hàm chuyển đổi liệu thông tin liên quan Như hàm createCodec destroyCodec gọi, thực chất chúng tạo hủy đối tượng class context tương ứng Và GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 80 hàm codecFunction gọi, gọi lại hàm hàm chuyển đổi liệu đối tượng context tạo Hình 5.8 Minh họa mơ hình cấu trúc WVMT video codec plugin 5.2.2.5 Thiết kế hoạt động cho WVMT codec: 5.2.2.5.1 Cấu trúc: Trong WVMT codec, ta định nghĩa hai class context: WVMTEncoderContext WVMTDecoderContext Mỗi class có trường liệu lưu thơng tin hỗ trợ tương ứng có: - Hàm EncoderFrames class WVMTEncoderContext để thực thủ tục nén khung hình video theo thuật toán WVMT GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 81 - Hàm DecoderFrames class WVMTDecoderContext để thực thủ tục giải nén khung hình theo thuật tốn WVMT 5.2.2.5.2 Dữ liệu đầu vào đầu ra: Dữ liệu đầu vào đầu hai hàm EncoderFrames DecoderFrames hệ thống H323plus đưa vào nhận lại gói tin RTP Tuy nhiên, gói tin RTP xử lý hàm có phần liệu RTP payload khác nhau: - Hàm EncoderFrames nhận vào gói tin RTP có phần payload chứa liệu khung hình đầy đủ với thơng tin chiều dài chiều rộng Gói tin hệ thống H323Plus bắt khung hình từ thiết bị video đầu vào webcam hay camera, sau chèn vào gói tin RTP đưa vào video codec để xử lý Định dạng liệu khung hình video đưa vào YUV 4:2:0 Sau thực thủ tục nén theo thuật tốn WVMT, liệu khung hình nén EncoderFrames chèn vào phần payload gói tin RTP trả hệ thống Sau đó, hệ thống H323Plus gửi gói tin RTP lên đường truyền mạng sang đầu nối bên nhận - Hàm DecoderFrames thực tác vụ ngược lại Cũng nhận liệu đầu vào gói tin RTP, phần payload gói tin RTP liệu khung hình video nén, nhận thông qua đường truyền mạng DecoderFrames thực giải nén theo trình ngược lại giải thuật WVMT để có liệu khung hình video nguyên đầy đủ Sau đó, chèn liệu khung hình đầy đủ vào gói tin RTP trả cho hệ thống H323plus để hiển thị khung hình lên thiết bị xuất cho người dùng 5.2.2.5.3 Khử nhiễu: Khi thực bước: so sánh, áp dụng lọc Erosion cắt block ảnh giải thuật WVMT, xuất lỗi nhỏ làm xuất nhiễu hình ảnh truyền Và điểm nhiễu xuất dồn khung hình sau Để khắc phục vấn đề này, EncoderFrames định kỳ gửi khung hình đầy đủ cập nhật lại hình ảnh gốc, đồng thời xóa điểm nhiễu GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 82 5.2.2.5.4 Giới hạn gói tin RTP đƣợc truyền đi: Trong q trình gửi liệu, liệu khung hình nén đơi có kích thước vượt qua giới hạn cho phép gói tin truyền mạng (kích thước tối đa cụ thể 1036 byte) Vì vậy, sau EncoderFrames thực thuật tốn nén, kiểm tra kích thước liệu thực chia nhỏ liệu thành nhiều gói tin cần thiết để gửi thành nhiều lần đến bên nhận Các gói tin chứa bên bit cờ báo hiệu (bit Marker nằm bên phần header gói tin RTP) Bit cờ tắt (bằng 0) từ gói tin đến gói tin kế cuối, để báo hiệu khung hình chưa gửi hồn chỉnh, bật (bằng 1) gói tin cuối để báo hiệu hoàn thành gửi khung hình Khi DecoderFrames bên nhận nhận gói tin này, kiểm tra bit cờ báo hiệu tắt lưu liệu payload gói tin RTP nhớ đệm Đến nhận gói tin với bit cờ báo hiệu bật thực cơng việc giải nén Ngồi ra, phát gói tin q trình truyền khung hình, DecoderFrames gửi thơng tin ngược lại yêu cầu EncoderFrames bắt đầu trình gửi khung hình Tất liệu gửi chưa hồn thành khung hình bị EncoderFrames DecoderFrames bỏ qua 5.3 Thực nghiệm đánh giá kết quả: 5.3.1 Thực nghiệm: Nhóm nghiên cứu thực trình thực nghiệm dùng phiên hội nghị truyền hình hai người, khơng sử dụng thiết bị thu audio Mỗi hội nghị có thời gian kéo dài phút Với hai loại codec: - Loại 1: sử dụng thuật toán nén ảnh thông thường - Loại 2: sử dụng giải thuật WVMT Quá trình thực nghiệm thực với độ phân giải CIF QCIF Trong hội nghị, nhóm thực lấy số liệu bit rate liệu truyền trung bình suốt hội nghị bên tham gia sử dụng loại codec Thông tin bit rate bao gồm tất loại liệu: audio, video liệu điều khiển đo phần GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 83 mềm DU Meter v.3.5 Mỗi lượt thử nghiệm thực ba lần kết cuối trung bình cộng kết ba lần thử nghiệm Sau bảng kết thực nghiệm: QCIF CIF (176 x144) (352 x 288) Tốc độ cập nhật hình ảnh Loại 345 kb/s 672 kb/s Chậm/Giựt Loại 67,4 kb/s 107,4 kb/s Vừa phải Loại Codec Bảng 5.2 Kết thực nghiệm Hình 5.9 Biểu đồ so sánh bit rate hệ thống Hình 5.10 Chất lượng hình ảnh gốc GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hồi Thương 84 Hình 5.11 Chất lượng hình ảnh thu từ WVMT codec 5.3.2 Đánh giá: Từ bảng kết ta có nhận xét sau: - Thứ nhất, bit rate codec Loại cao loại 2, chứng tỏ giải thuật WVMT hiệu - Thứ hai, ta dễ nhận thấy chất lượng hình ảnh thu từ codec bị giảm, vài chỗ có tượng nhiễu Tuy nhiên, với mức độ chất lượng chấp nhận - Thứ ba, độ lớn bit rate phiên hội nghị truyền liệu thu từ webcam (bên A) từ 67,4 kb/s đến 107,4 kb/s nằm mức cho phép đường truyền mạng LAN 10Mb/s đường truyền ADSL thơng thường có tốc độ upload từ 256 kb/s đến 512 kb/s tốc độ download đạt 1MB/s Kết luận, sau thực nghiệm, WVMT codec cho thấy hiệu đáp ứng với nhu cầu ứng dụng hội nghị truyền hình mạng LAN đường truyền internet ADSL Chất lượng hình ảnh tốt, nhiên tồn số điểm nhiễu GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 85 TỔNG KẾT A Kết quả: Dựa sở nghiên cứu hệ thống cơng nghệ truyền thơng đa phương tiện, nhóm nghiên cứu hệ thống tảng kiến thức quan trọng để triển khai thành công hệ thống hội nghị truyền hình H.323 nguồn mở desktop Bên cạnh đó, chúng em tìm đề xuất giải thuật nén truyền video webcam hiệu nhằm giải vấn đề yêu cầu đường truyền băng thông cao hệ thống hội nghị truyền hình Đặc biệt, giải thuật đăng hội nghị International Conference on Computer Technology and Development 2011 Chengdu, Trung Quốc Để kiểm tra chất lượng, giải thuật tích hợp tạo thành video codec để thực nghiệm hệ thống hội nghị thực Kết đạt cho thấy chất lượng hoạt động codec tương đối tốt sử dụng cho hội nghị đường truyền mạng LAN Internet ADSL Tuy sản phẩm đề tài giới hạn phạm vi hẹp, xem bước khởi đầu làm tảng cho hướng nghiên cứu hấp dẫn đầy tính ứng dụng xây dựng hệ thống ứng dụng hội nghị truyền hình chất lượng tốt với chi phí thấp B Hạn chế: - Độ phân giải thử nghiệm thấp - Chưa xác định đỗ trễ hình ảnh C Hƣớng phát triển: - Cải tiến giải thuật để khử nhiễu hình ảnh - Tiếp tục thử nghiệm so sánh với video codec khác để nâng cao ổn định hiệu giải thuật - Ứng dụng giải thuật WVMT giải pháp khác vào xử lý đa điểm hệ thống nhằm làm tăng số người tối đa tham gia hội nghị GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 86 TÀI LIỆU THAM KHẢO [1] Colin Perkins, RTP: Audio and Video for the Internet, Addison Wesley, Boston, MA, 2003 [2] Introduction To Multimedia Conferencing, Computer Science Department, University College London, London, 1998 [3] ITU Radiocommunication Sector, Parameter values for the HDTV* standards for production and international programme exchange, 2008 [4] ISO/IEC 15948:2004 - Information technology Computer graphics and image processing Portable Network Graphics (PNG): Functional specification , 2011 [5] IGN Standardization Team, JPEG2000 (ISO 15444), 2009 [6] Michael Gough & Jason Rosenfeld, Video Conferencing over IP: Configure, secure and Troobleshoot, Syngress Publishing, Rockland, MA, 2006 [7] Maller Joe, RGB and YUV Color, FXScript Reference [8] Nguyễn Minh Trí & Nguyễn Thanh Tuấn, Nghiên cứu xây dựng hệ thống phần mềm hỗ trợ việc dạy học trực tuyến mạng internet/intranet, khóa luận tốt nghiệp, Khoa Cơng Nghệ Thông Tin, ĐH Khoa Học Tự Nhiên Tp.HCM, Hồ Chí Minh, 2007 [9] R C Gonzalez and R E Woods, Digital image processing, 2002 [10] Robert Hirsch, Exploring Colour Photography: A Complete Guide, 2004 [11] R Fisher, S Perkins, A Walker and E Wolfart, Connected Component Labeling, 2003 [12] Tien V Nguyen - Hieu T Nguyen, Cell-unit algorithm of compression for webcam, 2003 [13] VNPT Video transmission services, 2011 [14] W3C, Graphics Interchange Format, Version 89a, 2009 GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương 87 [15] Yun Q.Shi & Huifang Sun, Image and Video Compression for Multimedia Engineering: Fundamentals, Algorithms, and Standards, Second Edition, CRC Press, Taylor & Francis Group, Boca Raton, 2008 [16] ITU-T Recommendation H.323, http://www.itu.int/rec/T-REC-H.323/e [17] ITU-T Recommendation H.261, http://www.itu.int/rec/T-REC-H.261-199303I/en [18] OpenMeeting website, http://www.openmeetings.de [19] Packetizer, IP Multimedia Communications, http://www.packetizer.com/ipmc/ [20] Toncar.cz, Simple H323Plus/OpenH323 Tutorial, http://toncar.cz/openh323/tut/index.html [21] Vox Gratia – Open Source VoIP, OpenH323 and OPAL Frequently Asked Questions, http://www.voxgratia.org/docs/faq.html [22] Wikipedia – The Free Encyclopedia, http://en.wikipedia.org/wiki/Main_Page GVHD: TS.Vũ Thanh Nguyên SVTH: Đỗ Duy Phúc & Mai Hoàng Hoài Thương ... Nén video: 42 3.3.1 Nhu cầu thực tế nén liệu ảnh video: 42 3.3.2 Tính tiện lợi nén ảnh video: 42 Chƣơng 4: Xây Dựng Giải Thuật Nén Và Truyền Video Cho Ứng Dụng Hội Nghị. .. hợp với túi tiền người bình dân, chúng em chọn đề tài nghiên cứu giải thuật nén truyền video thu từ webcam qua mạng dùng cho ứng dụng hội nghị truyền hình với mục tiêu hướng tới tìm cách làm giảm... điểm chi phí cho thiết bị phần mềm hội nghị truyền hình đắt Những năm 1990, đời hệ thống hội nghị truyền hình dựa giao thức IP thuật toán nén hiệu giúp cho hệ thống hội nghị truyền hình đạt chất