4.2.1 Đỏnh giỏ lựa chọn cụng nghệ mó húa Video
Theo mụ hỡnh hệ thống đó nờu ở Chương 3, với khả năng và phạm vi ứng dụng, giải phỏp mó húa sẽ lựa chọn là sử dụng card capture Video cú mó húa, cú hỗ trợ thư viện SDK để xõy dựng chương trỡnh theo yờu cầu bài toỏn. Để đảm bảo gúi
tin được nộn thấp nhất, phự hợp với đường truyền vệ tinh, phương thức mó húa
Video cần phải lựa chọn là MPEG4 hoặc MPEG4 Part 10/H.264.
Dưới đõy là một số card capture Video được lựa chọn và thử nghiệm
4.2.1.1 Card Advantech DVP-7010B
Hỡnh 26.Advantech DVP-7010B
Đặc tớnh của Card:
• 4 channel composite inputs with MPEG-4 compression
• 30/25 fps (NTSC/PAL) or 120/100 fps (NTSC/PAL) at D1 resolution for recording and display
• Conexant fusion 878A video capture chips on board
• Support ADAM-4055 8DI/8DO Module
• SDK supports Windowsđ XP/XPe/Windows 2000
Đỏnh giỏ Card DVP-7010B
Đõy là Card capture được sử dụng trong cỏc giải phỏp giỏm sỏt cụng nghiệp cú giỏ thành rẻ. Hỡnh ảnh số húa và mó húa đạt độ phõn giải 720x576, tốc độ Frame 30/25Fps. Chất lượng hỡnh ảnh, màu sắc bỡnh thường, khụng được tươi nột. Hệ
thống SDK của card sử dụng thuận tiện, cho phộp lấy từng Frame chưa mó húa hoặc cả một đoạn Video đó được nộn MPEG-4. SDK của card hỗ trợ ghi cỏc đoạn Video đó nộn MPEG-4 thành file AVI.
Một số hàm SDK của Card Capture control
AdvDVP_GetNoOfDevices Gets number of video capture devices AdvDVP_Start Starts video capturing
AdvDVP_Stop Stops video capturing
AdvDVP_GetCapState Gets capture state
AdvDVP_SetNewFrameCallback Sets a callback function to SDK AdvDVP_GetCurFrameBuffer Gets current frame buffer
Capture setting
AdvDVP_GetVideoFormat Gets video input format AdvDVP_SetVideoFormat Sets video input format AdvDVP_GetFrameRate Gets frame rate
AdvDVP_SetFrameRate Sets frame rate AdvDVP_GetResolution Gets video resolution AdvDVP_SetResolution Sets video resolution AdvDVP_GetVideoInput Gets video input mux AdvDVP_SetVideoInput Sets video input mux
Encode control
AdvDVP_StartVideoEncode Starts video encoding AdvDVP_VideoEncode Encodes one video frame AdvDVP_StopVideoEncode Stops video encoding AdvDVP_GetState Gets encoder state AdvDVP_CreateAVIFile Creates an AVI file
AdvDVP_WriteAVIFile Writes video data to the AVI file AdvDVP_CloseAVIFile Closes AVI file
AdvDVP_SetStreamReadCB Sets the stream read callback functions to SDK
Encode setting
AdvDVP_GetVideoQuant Gets video encoding quant AdvDVP_SetVideoQuant Sets video encoding quant AdvDVP_GetVideoFrameRate Gets video encoding frame rate AdvDVP_SetVideoFrameRate Sets video encoding frame rate AdvDVP_GetVideoResolution Gets video encoding resolution
AdvDVP_SetVideoResolution Sets video encoding resolution AdvDVP_GetVideoKeyInterval Gets video encoding key interval AdvDVP_SetVideoKeyInterval Sets video encoding key interval
4.2.1.2 Card Advantech DVP-7421BE
Hỡnh 27.Advantech DVP-7421BE
Đặc tớnh của Card
Video Standard: Composite for NTSC/PAL Video Input: 4 channels
Resolution: Up to D1(NTSC:720 x 480;PAL:720 x 576)
Max Recording Rate: 30/25 fpx (NTSC/PAL) for each channel Display Rate: 30/25 fpx (NTSC/PAL) for each channel
Video Compression: MPEG 1/2/4
Video Output PCI preview/playback stream
Video Loopout 4 x BNC Connectors or 5-pin internal connector Audio Input: 4 x stereo inputs,
(4 mono x BNC connectors or 2 x 5-pin internal connectors) Interface: PCI V2.2 DI/O Support ADAM-4055 8DI/8DO Module
Support ADAM-4055 8DI/8DO Module
SDK supports Windowsđ XP/XPe/Windows 2000
Chất lượng hỡnh ảnh đạt độ phõn giải 720x576, tốc độ khung hỡnh 30/25fps. Hỡnh ảnh tươi, sắc nột hơn DVP-7010B. SDK của card hỗ trợ trực tiếp cho DirectShow. DVP-7421BE sau khi mó húa MPEG-4 sẽ trả về cho ứng dụng một chuỗi dữ liệu bao gồm I-Frame và GOP (Group of Picture). Người lập trỡnh cú thể can thiệp đến từng Frame đó được mó húa. Điều này rất thuận tiện cho việc truyền cỏc dũng Video qua mạng bằng RTP/RTCP. Trờn cơ sở này, cỏc thuật toỏn khắc phục lỗi vỡ hỡnh khi truyền Video sẽ phỏt huy tỏc dụng.
4.2.1.3 Sử dụng Card Optibase MovieMaker H.264
Hỡnh 28.Card Optibase MovieMaker H.264
Đặc tớnh của Card
• Powerful SDK enables fast integration and development
• Resolutions from Q-CIF to Full-D1
• Compact board based on PCI Express technology
• Real-time, broadcast-quality SD encoding
• Harware-based board for real time performance
• Up to 4 boards can be stacked in one PC, to generate up to 8 encoded streams
• Secondary stream functionality allows streaming of a single video source at two different bandwidths
• Support for 2 audio channels
Đỏnh giỏ Card Optibase MovieMaker H.264
Đõy là card mó húa H.264 chuyờn nghiệp do hóng Optibase (Israel) sản xuất. Card này được chuyờn dựng trong cỏc lĩnh vực truyền hỡnh hội nghị, Video on demand, Live Video Streaming cho cỏc sự kiện thời gian thực, giỏm sỏt an ninh chất lượng cao, .v.v.. Độ bền của Card rất cao, cú thể sử dụng tốt cho cỏc giải phỏp trong lĩnh vực quõn sự và cụng nghiệp.
Card Optibase MovieMaker H.264 hỗ trợ bộ thư viện SDK, cho phộp người lập trỡnh dễ dàng can thiệp đến cỏc Video stream.
4.2.1.4 Lựa chọn Card capture
Mặc dự vấn đề truyền Video qua vệ tinh, hiện nay cú rất nhiều hóng đó phỏt triển và hoạt động rất tốt, nhưng theo yờu cầu của thực tế, giải phỏp truyền dũng Video qua kờnh vệ tinh vẫn phải được tiến hành nghiờn cứu và kết quả là một sản phẩm cú khả năng ứng dụng thực tiễn. Do giỏ thành của cỏc sản phẩm truyền Video qua vệ tinh hiện nay cú rất nhiều hóng cú giỏ rất rẻ, để giải phỏp cú tớnh khả thi và
được đưa vào ứng dụng thực tế, giỏ thành sau khi sản xuất thành cụng một sản
phẩm cần phải tớnh toỏn một cỏch kỹ lưỡng. Sau khi cõn nhắc và tham khảo ý kiến cỏc chuyờn gia trờn cỏc phương diện, card capture Advantech DVP-7010B được lựa chọn chớnh thức vào giải phỏp .
4.2.2 Giải phỏp Playback dũng Video bằng cụng nghệ DirectX DirectShow
4.2.2.1 Giới thiệu về DirectX
Từ năm 1995, hóng Microsoft đó nghiờn cứu và cho ra đời cụng nghệ DirectX và và nhanh chúng trở thành một tiờu chuẩn được cụng nhận rộng rói cho việc phỏt triển cỏc ứng dụng multimedia trờn nền hệ điều hành Windows. Năm 1996, DirectX 2 hỗ trợ kiến trỳc Direct3D. Đến phiờn bản 5 (1998), DirectX bổ sung cỏc lớp mới cho DirectX API. Ngoài lớp cấp thấp cho phộp liờn lạc trực tiếp với phần cứng multimedia, DirectX 5 cũng bao gồm một lớp Media cho phộp cỏc nhà lập trỡnh vận dụng cỏc đối tượng và cỏc dũng multimedia. Phiờn bản này cũng bắt đầu hỗ trợ cỏc bus USB và IEEE 1394, AGP, và MMX.
DirectX tớch hợp một bộ cỏc giao diện chương trỡnh ứng dụng (API) multimedia tiờn tiến vào cỏc hệ điều hành Windows để cỏc nhà phỏt triển phần mềm cú thể tiếp cận cỏc chức năng phần cứng của mỏy tớnh mà khụng cần phải biết chớnh xỏc phần cứng gỡ sẽ được cài đặt trờn mỏy tớnh đú. Nú làm được điều này bằng cỏch hỡnh thành một lớp trung gian chuyển cỏc lệnh phần cứng núi chung thành cỏc lệnh riờng biệt cho từng loại phần cứng cụ thể. Chẳng hạn, DirectX cho phộp cỏc ứng dụng multimedia khai thỏc thế mạnh của cỏc chức năng tăng tốc phần cứng được cỏc chớp tăng tốc đồ họa hỗ trợ.
Cụng nghệ DirectX được thiết kế phục vụ cho cỏc ứng dụng multimedia và game tốc độ cao chạy trờn PC. Nú giỳp cho cỏc yếu tố đồ họa, õm thanh, nhạc, hoạt họa 3D được thể hiện tuyệt vời hơn để cỏc game trở nờn thật hơn. Nú cũng là nền tảng cho phộp cỏc nhà phỏt triển phần mềm xõy dựng dạng multimedia tốc độ cao lý thỳ mà cỏc game PC ngày nay cần phải cú.
DirectX được chia thành ba lớp (tầng): Lớp nền tảng (Foundation Layer), lớp phương tiện (Media Layer) và lớp thành phần (Components Layer)
+ Lớp nền tảng:
Foundation là phần cốt lừi của DirectX, nú là một tập hợp cỏc API cấp thấp tạo nờn cơ sở cho những hoạt động multimedia hiệu năng cao trong Windows.
Thụng qua lớp nền tảng cú thể tỏc động đến cỏc API sau:
• DirectDraw: Quản lý bề mặt đồ hoạ.
• Direct3D: Cung cấp tớnh năng 3D cấp thấp.
• DirectInput: Hỗ trợ cỏc thiết bị nhập, kể cả cỏc Joystick thế hệ mới.
• DirectSound: Cung cấp hiệu ứng õm thanh và bộ trộn tiếng.
• DirectSound 3D: Giỳp tạo hiệu ứng õm thanh 3D từ kiểu loa 2D thụng thường.
• DirectSetup: Giỳp cài đặt cỏc phần mềm, cỏc Driver một cỏch tự động
+ Lớp phương tiện:
Media Layer của DirectX bao gồm cỏc API ở cấp ứng dụng, tận dụng khả năng của lớp nền tảng. Cỏc dịch vụ của lớp phương tiện này cú tớnh độc lập với cỏc thiết bị. Lớp phương tiện này gồm cú:
• Direct3D: Cung cấp tập hợp cỏc tớnh năng biểu diễn 3D.
• DirectPlay: Hỗ trợ nhiều người cựng tham gia chơi game qua mạng.
• DirectShow: Quản lý cỏc Slide Show. Cung cấp bộ cụng cụ cú khả năng lập trỡnh hiển thị Video và phỏt audio.
• DirectAnimation: Cung cấp khả năng làm hoạt hỡnh.
• DirectModel: Cung cấp khả năng mụ phỏng 3D.
+ Lớp thành phần:
Components Layer là lớp trờn cựng của DirectX, nú cú thể tận dụng cỏc tớnh năng của hai lớp trờn (Media và Foundation) bao gồm:
• NetMeeting: Hỗ trợ làm việc theo nhúm trong mạng mỏy tớnh.
• ActiveMovie: Bộ cỏc cụng cụ quản lý và trỡnh diễn phim MPEG, hỗ trợ việc chơi cỏc file õm thanh và phim ảnh.
• NetShow: Hỗ trợ việc truyền cỏc nội dung multimedia qua Internet.
4.2.2.2 Playback dũng Video bằng DirectShow
thanh, hỡnh ảnh trờn nền Hệ điều hành Windows. DirectShow hoạt động bằng cỏch kết nối với nhau thụng qua một loạt cỏc bộ lọc, phục vụ cho mỗi một mục đớch tập trung. Mỗi một nguồn trong bộ lọc được cung cấp cỏc khung hỡnh từ file hoặc từ mạng, sau đú là bộ lọc giải mó sẽ giải mó khung hỡnh thành tớn hiệu Video dạng YUV hoặc RGV, sau đú một bộ lọc Render sẽ hiển thị cỏc tớn hiệu đú lờn màn hỡnh.
í tưởng cơ bản của DirectShow trong việc play/record 1 nguồn multimedia là xõy dựng 1 đồ thị (graph) gồm nhiều phần tử độc lập, kết nối chỳng theo thứ tự thớch hợp, mỗi phần tử xử lý 1 cụng việc trong nhiều cụng việc. Thớ dụ 1 graph đơn giản nhất gồm 2 phần tử: phần tử đầu sẽ đọc file multimedia cần playback, phõn tớch, giải mó thụng tin nguồn ra dạng thụ, cũn phần tử thứ 2 sẽ nhận thụng tin dạng thụ rồi phỏt nú ra sound card. Như vậy để playback 2 file mp3 và mp4 (hay 1 định dạng khỏc), chỉ cần tạo 2 graph khỏc nhau, mỗi graph cú 2 phần tử, phần tử thứ 2 trong mỗi graph chớnh là sound card nào đú.
DirectShow đạt được tớnh phổ thụng nhờ giới thiệu một kiến trỳc mụ-đun dựa hoàn toàn vào mụ hỡnh đối tượng thành phần (COM). DirectShow hỗ trợ truy xuất thụng qua giao diện COM hoặc Media Player Control, hoặc Media control interfaces (MCI).
Hỡnh 29.Truy xuất DirectShow
Hỡnh 30.Kiến trỳc DirectShow
+ Filters
Filters là cỏc thành phần để thao tỏc đến tận bit của một luồng đa phương tiện. Filters được nhúm lại thành ba loại:
- Source Filters
Một nguồn tin giới thiệu bộ lọc dữ liệu vào đồ thị. Cỏc dữ liệu cú thể đến từ một tập tin, mạng, một thiết bị, như mỏy quay video hay card truyền hỡnh, hoặc thậm chớ một khu vực trờn màn hỡnh video
- Transform Filters
Transform filter đọc luồng đầu vào, xử lý dữ liệu, và tạo ra một luồng đầu ra. Vớ dụ như: Mó húa/giải mó, nộn/giải nộn và bộ tỏch dũng.
- Renderer Filters
Renderer filters thường được nằm ở cụng đoạn cuối. Renderer filters nhận dữ liệu và hiển thị nú cho người dựng. Vớ dụ, một bộ render video vẽ cỏc khung hỡnh video trờn màn hỡnh; một bộ render õm thanh sẽ gửi dữ liệu õm thanh tới card õm thanh, và bộ lọc ghi tệp ghi dữ liệu vào một file
+ Graphs
Một Graph được định hỡnh khi cỏc Filter được kết nối thành cụng tới một nguồn truyền thụng. Một Graph thường cú ớt nhất một trong mỗi một trong ba loại bộ lọc được liệt kờ ở trờn
Hỡnh 31.Minh họa của Filter graph
+ Pins
Pins là cỏc đối tượng liờn kết với một Filter cú thể xử lý việc chuyển giao của một luồng đa phương tiện giữa cỏc Filter. Cú hai loại: pin đầu vào hoặc đầu ra. Pin đầu vào của một Filter kết nối đến pin đầu ra của luồng Filter lờn. Pin đầu ra của Filter đú kết nối với cỏc pin đầu vào của luồng Filter xuống.
Hỡnh 32.Minh họa Filters and Pins
+ Filter Graph Manager
Filter Graph Manager là một đối tượng quản lý việc tạo ra filter graph. Filter Graph Manager sinh ra cỏc Filter và được thờm vào Graph. Để bắt đầu quỏ trỡnh kết nối, nú thụng bỏo cho cỏc Filter mà chỳng sẽ được kết nối. Khi làm như vậy, đồ thị bộ lọc thụng bỏo đến cỏc chõn của hai Filter cần kết nối rằng một kết nối đó được yờu cầu. Khi kết nối đó được thỏa thuận, Filter Graph Manager yờu cầu việc tạo ra một cỏp phỏt vào Filter xuống. Filter Graph Manager cũng chịu trỏch nhiệm cung cấp thụng bỏo sự kiện được kớch hoạt bởi cỏc Filter trong một đồ thị để cỏc Filter khỏc, ứng dụng cuộc gọi, và tiến trỡnh luồng. Filter Graph Manager thường được điều hành bởi một ứng dụng. Tuy nhiờn, con trỏ đến giao diện của nú luụn cú sẵn để
cho cỏc Filter và cung cấp cỏc Filter cho hầu hết cỏc chức năng cú sẵn của Filter Graph Manager đến ứng dụng. Điều này cú nghĩa rằng cỏc Filter cú thể tự yờu cầu mỡnh, vớ dụ như: Filter yờu cầu một luồng được dừng lại.
+ Allocators
Sau khi cỏc Filter đó dàn sếp một kết nối chỳng thiết lập một cấp phỏt chung. Bộ cấp phỏt là một đối tượng, thường được tạo ra bởi một pin đầu vào, tạo ra một vựng đệm thớch hợp hoặc loại dữ liệu đang được dàn sếp giữa cỏc pin. Vựng đệm
này được sử dụng để sếp (theo hàng đợi) cỏc media và cung cấp một hoặc nhiều
trong số chỳng khi một Filter sẵn sàng để xử lý cỏc lụ hàng tiếp theo của cỏc media.
4.3 PHÂN TÍCH LỰA CHỌN GIẢI PHÁP HỆ THỐNG TRUYỀN DềNG
VIDEO QUA KấNH VỆ TINH
4.3.1 Phõn tớch một số yếu tố đường truyền ảnh hưởng đến chất lượng truyền dũng Video truyền dũng Video
4.3.1.1 Lỗi bit đường truyền
Trờn đường truyền vệ tinh, khả năng bị lỗi bit là rất lớn. Suy hao đường truyền và tạp õm là 2 yếu tố ảnh hưởng tới tỷ số lỗi bit (BER) EB/N0. Với việc suy giảm tớn hiệu bất thường và rất ngắn, lỗi bớt truyển sẽ xảy ra gõy nờn khả năng mất gúi dữ liệu.
Đường truyền vệ tinh cú tỷ số lỗi bit cao hơn đường truyền dẫn mặt đất.
Thụng thường BER của đường truyền vệ tinh khụng cú mó húa kiểm soỏt lỗi vào khoảng 10-6, trong khi truyền một gúi dạng TCP thành cụng cần giỏ trị BER là 10-8 hoặc thấp hơn. Hiện tượng mất gúi tin trong mạng do 2 nguyờn nhõn: tắc nghẽn hoặc do lỗi. Đối với TCP, khi trường hợp mất gúi tin xảy ra quỏ nhiều, sẽ giảm tốc độ phỏt để trỏnh trường hợp mạng tắc nghẽn hoàn toàn. Như vậy, nếu nguyờn nhõn của sự mất gúi là do lỗi thỡ việc giảm tốc độ phỏt của TCP là khụng cần thiết vỡ khi đú mạng vẫn cú khả năng tiếp nhận cỏc gúi tin và lóng phớ độ rộng băng tần của kờnh truyền. Điều này làm giảm thụng lượng hiệu dụng của kết nối, đặc biệt là trong những đường truyền cú lỗi lớn như đường truyền vệ tinh.
4.3.1.2 Ảnh hưởng của độ trễ gúi tin đến cỏc thuật toỏn điều khiển tắc nghẽn
Khi độ trễ lớn gõy ảnh hưởng đến cỏc thuật toỏn điều khiển tắc nghẽn (đặc
biệt là thuật toỏn khởi đầu chậm và thuật toỏn trỏnh tắc nghẽn) và giảm hiệu suất sử dụng băng tần của vệ tinh.
+ Đối với thuật toỏn “Khởi đầu chậm”
Khi truyền trong mụi trường cú độ trễ lớn như thụng tin vệ tinh, vấn đề cần phải quan tõm đú là:
Thuật toỏn dũ tỡm băng thụng kiểu khởi đầu chậm cú thể mất rất nhiều thời gian để đạt tốc độ cực đại. Cụ thể: cỏc mạng vệ tinh tốc độ lớn tới hàng Gbps với RTT khoảng 0,5s thỡ cần tới 29 lần RTT (nghĩa là 14,5s) mới khởi tạo thành cụng. Như vậy, toàn bộ dải thụng sẽ khụng được tận dụng hết ngay và trong phần lớn thời gian, băng thụng của mạng sẽ bị lóng phớ. Thậm chớ trong rất nhiều trường hợp toàn bộ qui trỡnh truyền dữ liệu đú kết thỳc mà thuật toỏn khởi đầu chậm vẫn chưa chấm