Linux环境下威盛多媒体软件开发工具包简介
――VIA Media SDK For Linux
桑涛 博士
1. VIA Media SDK的目标和功能
威盛最新嵌入式开发工具包――VIA Media SDK For Linux是一个多媒体软件开发工具包,通过此开发工具包,合作伙伴可以方便且快速的在威盛EPIA硬件平台上开发出基于Linux OS平台的多媒体应用,且此工具包支持基于CLE266/CN400和VIA C3/Eden CPU等全系列威盛EPIA硬件平台的开发,不论是成本导向还是性能导向的厂商,其都可以借助VIA Media SDK在威盛EPIA硬件平台快速设计出符合需求且高性价比的多媒体产品。
VIA Media SDK 为消费类电子产品如DVD 播放机, 个人/数字视频录像机 (Personal/Digital Video Recorder, PVR/DVR), 视频点播 (Video On Demand, VOD) 等等提供了丰富的API级开发模块及其参考手册. 针对两大类Linux OS应用环境:Framebuffer和XWindow, 我们提供了相应的样例代码,用户手册和编程说明, 开发者不必知道硬件, 驱动和编解码的细节就可以对样例代码加以修改使之满足产品目标,从而缩短产品的开发周期, 节省开发成本.
VIA Media SDK version 3.x的功能是:
· 支持VIA CLE266 MPEG-2硬件解码加速, MPEG-1/4 软件解码
· 支持VIA CN400 MPEG-2/4硬件解码加速, MPEG-1软件解码
· 支持文件格式: DVD, Video CD, Audio CD, MPEG PS/TS, AVI, ASF, etc.
· 支持Video codec: mpeg-1/2, mpeg-4, MS mpeg 4 v1/2/3, Divx 3/4/5, WMV, etc.
· 支持Audio codec: mpeg audio (layer 1,2,3), AAC, PCM, WMA, RM, etc.
· 支持多种的Linux Distributions
§ Red Hat 9, SuSE 8.1, RedFlag 4.0, Mandrake 9.2, MontaVista 3.1, and Fedora Core 1 & 2
· 支持多种的GUI Libraries
§ 标准Framebuffer, XWindow, Qt/X11, Qt/Embedded, DirectFB.
· 支持DVD Macrovision机制
· 支持WinTV PVR 250/350 Card TV Tuner/Encoder API 及 NEC uPD6115x MPEG Encoder card
§ 支持RTSP (Real Time Streaming Protocol) 及 http 服务器: Streaming21, RealNetworks Helix 和Apache
· 支持Alpha Blending
§ 支持 HDTV(1080i,720p)
§ 支持 Playlist
§ 支持 Dual Views
§ 支持 H.264(S/W decoding)
§ 支持 audio channel changing
我们必须强调的是: VIA Media SDK 仅提供软件上的参考, 用户需要自己去获得MPEG/DVD/Audio/GUI等方面的授权.
2. VIA Media SDK的配置需求
2.1威盛EPIA硬件平台
· VIA C3/C5 Nehemiah CPU solution prototype
· VIA CLE266/CN400 北桥
· VIA VT8235/VT8237 南桥及外围设备, 例如 LAN, Audio, USB 1.1/ 2.0, IDE, PS/2, etc.
· VIA VT1622A/M TV encoder 高品质电视输出 (VT1622AM 支持Macrovision, VT1622A 不支持), 或
· VIA VT1625A/M TV encoder HDTV输出 (1080i, 720p)
· VIA Envy24HT PCI 多声道 Audio Controller (optional for high-end MPEG-2 encoder with sampling rate to 96 kHz and data to 24bits/sample)
2.2软件平台
首先需选如下任一Linux OS系统:
Red Hat 9, SuSE 8.1, RedFlag 4.0, Mandrake 9.2, MontaVista 3.1, Fedora Core 1 或 2
如果希望开发XWindow下的应用, 在安装OS时需要选上KDE XWindow 环境 . 然后安装下列驱动程序
· VIA CLE266/CN400 FrameBuffer Driver
· VIA CLE266/CN400 Full Display Driver
· VIA Audio Driver V2.30
最后安装如下软件包
· VeXP(VIA Enhanced Xine Player)
· VIA Media SDK For Linux
3. VIA Media SDK的架构
如图1 所示, VIA Media SDK 包括如下API 模块:
碟片播放类:DVD Navigation, VCD, CDDA
文件播放类:File
网络流播放类: Stream (VOD)
记录及回放类:PVR
图形界面类:OSD, Alpha Blending
图1中位于 VIA Media SDK 下方的是VeXP库. VeXP是我们的开源 (Open source) 项目之一,其原始代码来自于一套纯软件解码的开源多媒体播放器Xine player. 我们对其进行了改造和增强(参见图1中深蓝色和深紫色的方框), 使之能支持VIA UniChrome CLE266/CN400芯片组的MPEG-2/4 硬件解码及Video Overlay硬件播放功能. 与原Xine Player相比, VeXP 减少了 CPU占用率达 50%以上. 例如, 播放同样的Mpeg2 文件, 在Framebuffer环境下, 采用全屏模式, 800 x 600分辨率, 24位颜色深度, 128 M内存和1 GHz CPU的配置下, 原Xine Player的CPU占用率在50%以上, 而VeXP的CPU占用率基本上稳当在10%以内. 这样,用户可以获得三方面的好处:
· 获得改进的视觉效果
· 系统能耗大为降低
· CPU可以更顺畅地处理后台的其它任务.
从 http://sourceforge.net/projects/viaexp/你可以下载VeXP.
使用VeXP来开发产品需要对其有较深入的理解, 而VIA Media SDK 则为普通的C语言开发者提供了易用的API.
图 1. VIA Media SDK的架构
4. VIA Media SDK的可能应用
VIA Media SDK针对不同的应用目的提供了相应的接口和样例代码, 我们目前主要面向如下三大类应用:
4.1 媒体播放机 (DVD/VCD/CDDA/File等等)
通过VeXP, VIA Media SDK 不仅实现了全部媒体播放模块,如 DVD Navigator, VCD, CDDA, MP3, AVI, RealMedia, WAV 等等, 还提供了许多增强的功能, 如Alpha Blending, DVD Macrovision 保护等. 使用VIA Media SDK , 用户可以开发出家庭媒体中心, 多媒体广告, 触摸屏, DVD播放机等产品.
4.2 个人/数字视频录像机 (PVR/DVR)
个人视频录像机 (PVR) 允许用户边看电视边录节目, VIA Media SDK 中的PVR 模块支持实时,暂停和回放功能, 对应的样例程序可定时将电视或视频信号记录成MPEG-1 或 MPEG-2 格式, 用户可随时观看录下的节目.
如果搭配NEC uPD6115x MPEG 压缩卡(不含TV Tuner)
, 可以将PVR模块 用在安全监控系统中, 这是因为该模块已经包含了DVR的基本功能--视频记录.
4.3 视频点播 (VOD)
VOD系统的设计目的就是通过网络访问大量的音/视频流, 它被广泛用于卡拉OK系统中. VIA Media SDK 中的Stream 模块提供了客户端的API, 服务器要求采用Http或RTSP协议, 我们有如下选择:
· Streaming 21 Media Server v5.5
· RealNetworks Helix Universal Internet Server v9.0
· Apache Web Server 2.0.40 or later
5. VIA Media SDK的未来
除了前述的功能外, 我们计划在VIA Media SDK For Linux的新版本中逐渐增加一些更加丰富的功能, 如DVD Burner, 模拟TV Tuner on board, 高级混音效果 , 数字TV Tuner on board, , 数字TV SDK APIs, UPnP, 内容保护等功能. 另外Windows CE环境下多媒体软件开发工具包也正在开发过程之中, 这方面的内容以后再作介绍.
6. 服务和技术支持
自从VIA Media SDK For Linux推出以来,我们已经有了众多的用户,其中不乏世界知名公司. 如果你有这方面的需求, 请与威盛市场部联系: 021-53560056-8053, 7601, 7602.
關於威盛電子
VEPD (VIA Embedded Platform Division),成立於2003年10月,由原威盛電子平台事業部、中央處理器部門及嵌入式研發部門等事業單位結合而成,鑑於全球IA及嵌入式市場需求日增,在結合資源為客戶提供完整、快速服務的要求下成立,VEPD除了擁有領先市場的先進技術與掌握市場需求的產品開發實力作後盾,更具有遍佈全球的銷售及服務網路的完整資源。
威盛電子是全球少數能提供IA及嵌入式系統廠商所需要的晶片、處理器、主機板及驅動程式完整方案提供者,藉由快速的技術整合,我們能為您有效的縮短產品開發時間,擁有更快的產品上市(Time To Market)優勢,並且威盛電子透過自身研發的高度集成EPIA系列平台為客戶帶來更多的經濟效益。
為幫助合作廠商迅速取得了產品快速上市的優勢(TTTM),威盛嵌入式平台事業部長期致力於嵌入式產品的研發與應用,提供多媒體影音及網路應用程式的支援,以設計更多應用豐富的裝置。威盛嵌入式平台的EPIA系列主機板均通過Window CE的BSP(Board Support Package)認證,驅動程式也經過Window CE的驅動程式驗證(Driver Validation),主機板的Windows XP/Embedded驅動程式亦有Microsoft WHQL認證,為嵌入式市場客戶提供更多的研發彈性,並大幅降低總體開發成本。
隨著資訊安全的重要性與日俱增,威盛電子的CPU所擁有的AES資料加密技術也是在Window CE的架構下,以自行開發的CSP軟體加密技術,為客戶提供了完整的解決方案。威盛軟體研發團隊持續致力於軟體產品研究與開發,提供一系列多媒體開發工具與平台,以自行研發的軟體開發工具SDK為例,合作夥伴利用SDK在EPIA硬體平台上支援MEPG 2的特性,快速設計出許多符合需求且高效能的家庭娛樂產品,縮短硬體設備和軟體相容的測試時間,取得領先上市的優勢並掌握致勝的先機。
個人電腦中所使用的系統晶片組,為威盛電子的主力產品線,領先業界導入DDR的記憶體技術,使得公司近年來年屢獲客戶與消費者支持,市場佔有率不斷提升,2001年達到四成左右的水準,同時也針對各主流平台的特殊設計,提供了完整的對應解決方案,包括支援Pentium 4平台的Apollo PT、PM系列晶片組,以及支援AMD Athlon、K8處理器的Apollo KT/K8T系列等等。其中,威盛電子在AMD處理器平台方面,出貨量更居於主導地位,單一平台的佔有率達八成以上。
威盛電子已由過去單純的系統晶片組廠商,升級成全方位的網際網路系統整合元件供應商。產品線內容除了跨平臺的系統晶片組以外,還包括VIA-C3系列處理器,IEEE 1394、USB2.0、乙太網路通訊晶片,光儲存、音效視訊多媒體控制晶片及Windows CE相關的嵌入式系統產品等等;同時藉由與S3的策略合作,威盛亦已掌握先進的繪圖晶片技術,並且在取得LSI logic的無線通訊設計團隊後,大步跨入新世代的無線通訊領域,未來將可望擁有建構個人電腦、網際網路裝置及資訊家電所需的完整實力。
威盛電子的客戶群涵蓋全球各大OEM廠商、主機板製造業者及系統整合業者,總部則位於台灣台北縣新店市,並於美國、歐洲及中國大陸等地擁有分支據點,分別就業務拓展、人才招募、區域型軟硬體整合產品開發等工作進行強化。威盛為高知識集中的IC設計廠商、以研發為IC設計公司的核心競爭力,而建構跨國、跨區域性的品開發據點,目的在於擴大技術能力的廣度,以及加強對不同市場的瞭解深度,這同時也是威盛邁向下一階段的高速成長、所必須進行的策略佈局。公司未來仍將以大中華區為營運中心,但勢必會逐漸展現全球化的研發與經營格局,長期來看,歐美、日本等地都將是威盛跨國經營架構的重要環節。