时间:2022-12-09 05:15:56
引言:易发表网凭借丰富的文秘实践,为您精心挑选了九篇多媒体播放器范例。如需获取更多原创内容,可随时联系我们的客服老师。
RushPlayer
RushPlayer绝对是iOS上的影音播放神器。它提供清晰的画质,播放流畅度超过很多全能播放器。同时,RushPlayer还囊括了精选的国内外电台电视台资源,并且后台提供服务器支持,保证资源稳定、高清。RushPlayer支持WIFI传输、手势操作、画质调节等多种实用功能。RushPlayer可以流畅播放RMVB、WMV、AVI、MKV、MP4等格式的720p和1080p高清视频。
QVOD 快播
快播播放器(QVOD Player)是一款基于准视频点播(QVOD)内核的,集在线点播、在线直播为一体的媒体浏览器。快播运用自主研发的QVOD流媒体传输协议,实现了高清视频在互联网络的流畅播放。快播支持包括RMVB、MPEG、AVI、WMV等在内的几乎所有主流音视频格式,具有资源占用低、操作简捷、运行效率高、视频源丰富、扩展能力强等特点。在播放在线视频时,快播会把视频下载到本地保存。如不需要,看完之后可以手动删除。
AcePlayer
AcePlayer是一个可以播放任何格式视频、音频和相片的万能播放器,适用于iPhone/iPod/iPad。可以通过iTunes或者WiFi传输文件到播放器内,也可以通过内置的Open URL客户端从MMS、RTSP、HTTP、FTP、SMB、RTP等视频流服务器中打开影音文件,或者下载文件到本地。内置的UPnP客户端可以从几乎所有的UPnP/DLNA media server中直接播放或者下载文件。"Open In"功能可以从邮件附件或Safari浏览器中直接用AcePlayer播放视频。AcePlayer还做了内置的相片浏览器,可以浏览照片。需要注意的是,AcePlayer不能在iPhone 3G和一代、二代iPod上运行。
RockPlayer2
RockPlayer2是一款高画质,流畅播放各种媒体的播放器。它支持手势控制、srt外挂字幕、音轨选择、RockShare文件互传、AirPlay,更有独创的自定义面板,自由配置播放控制按键。RockShare功能可以让用户在同一个WIFI环境内的多台设备之间实现跨平台文件互传。内建媒体文件管理器,支持新建目录、移动、删除、重命名、添加至播放列表等操作,还可通过左上角“铅笔按钮”开启编辑。RockPlayer支持AirPlay,可以通过Apple TV将视频推送至大屏幕上播放。目前RockPlayer2已支持iOS6。
在未拆开包装看到实物之前,笔者的第一反应是这是一款基于Intel数字家庭计划的播放器产品,但是打开包装后,才发现自己想错了。TVISTO多媒体播放器其实是一个硬盘播放器,能够播放MDEG-1、MPEG-2、MPEG-4等格式的标清电影,和WAVE、MP3、AC3等格式的音频文件,8D0万像素以下的图片也能够播放。
从背部看,这款产品的接口还是很丰富的,2个1394以及1个USB 2.0接口用来传输数据,一个HDMI接口用来传输标清或是高清视频,一个SPDIF接口用来传输音频。同时这款产品的体积非常小,只有2.5英寸的移动硬盘盒那么大,这也是其最大的优点所在。那么这个TVISTO的实际播放能力如何呢?
与购买移动硬盘盒有些类似,用户购买这款TVISTO多媒体播放机的时候,只是购买一个壳子,还需要自行购买一个IDE接口的硬盘;至于硬盘的容量,要看自己的需求和经济状况了,当然,今天的硬盘价格都很便宜。在安装硬盘之前,首先要将这个产品拆开,我们借此机会,也得以看到内部的结构。其内部结构非常简单:除了供电部分和用于界面操作的部分,这款产品的核心是一个UNIBRAIN的MediaProcessor。不过这个芯片我们在该公司的网站上并未查找到相关的资料,根据笔者的经验,这个品牌的1394芯片倒是经常应用在一些主板上,也难怪这款产品拥有2个1394接口了。
为了试验播放效果,笔者特意用这款产品传输了2部不同字幕格式的MPEG-4电影(DVDRIP)。其中《神奇四侠》这部电影使用的是SRT字幕,而《所罗门王的宝藏》这部电影则使用的是idx字幕,并且还拷贝了几张图片,大小不一。这里不得不说的是,TVISTO的USB 2.0接口芯片非常有效率,传输2GB多的电影,只要1分钟左右的时间,速度非常快。
在实际播放的时候,笔者是通过随包装赠送的HDMI―分量转接线,输出到液晶电视。可以说,TVISTO多媒体播放器播放质量还是可以接受的,不过由于输出分辨率高,还是能够看到DVDRIP在分辨率上的不足。而且这款产品能够支持SRT字幕,不过对于idx字幕则无能为力,并且对于中文支持得不是很好,必须用unicode格式保存,否则不能正常显示,而是出现乱码。由于分辨率的原因,如果通过电视看TVSTO上面的图片,效果一般。笔者觉得还是在计算机上看更合适,毕竟计算机显示的分辨率高。
关键词:Android; 用户界面; 数据存储; 多媒体应用
中图分类号:TN919-34; TP317;TP37 文献标识码:A 文章编号:1004-373X(2011)24-0073-04
Software Solutions of Multimedia Player Based on Android Operating System
YE Xiao-jing, HUANG Jun-wei
(College of Communication and Information Engineering, Chongqing University of Posts and Telecommunications, Chongqing 400065, China)
Abstract: A multimedia player software solution based on Android operating system is introduced. The multimedia player is composed of splash screen, audio display module, video display module, etc. The graphical user interface (GUI) design, data storage, multimedia applications and other technical difficulties are analyzed emphatically. The function testing and verifyication carried out with Android V2.3 simulator and HTC A3380 show that the software solution can meet users′ needs and dependent demands for audio and video file playback. A summary and prospect for the further improvement of the software solution are given.
Keywords: android; user interface; data storage; multimedia application
收稿日期:2011-07-25
基金项目:国家高科技发展规划项目(2010ZX03002-005)
0 引 言
Android本义为“机器人”,是目前最流行的移动终端开发平台,依靠Google的强大开发和媒体资源,Android成为众多移动终端厂商竞相追逐的对象。当今全球信息时代,移动终端不再局限于通信业务,多媒体业务的应用才是终端厂商的发展方向。音视频播放作为一项不可或缺的多媒体业务,对于具有丰富的可编程扩展性的Android操作系统,可以开发出个性化的音视频播放应用软件。
1 Android平台
1.1 Android系统架构
Android是Google于2007年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成。从软件分层的角度来看,Android平台自上而下由应用程序、应用程序框架、Android运行时、库及Linux内核共5部分构成[1]。
1.2 Android应用程序组件
Android系统的基本组件包括Activity(活动)、Service(服务)、BroadcastReceiver(广播接收者)和ContentProvider(内容提供者)等,此外还包括专门负责在基本组件之间传递消息的Intent(意向)组件[2-3]。
2 软件解决方案
2.1 概述
基于Android平台的多媒体播放器软件主要由3个模块组成:启动画面模块、音频播放模块、视频播放模块。该播放器具有播放列表预览、前进、后退、暂停、继续、进度拖曳和停止等功能[4]。
2.2 用户界面设计
在Android应用中,UI(用户界面[5-6])是人与手机之间传递、交换信息的媒介和对话接口,是Android系统的重要组成部分。本文设计的多媒体播放器界面主要由主界面、音/视频资源列表界面、音/视频播放列表界面、音/视频播放界面等组成。本文重点介绍前2种界面设计。
2.2.1 主界面设计
主界面采用标签布局,使用TabHost(标签页视图)并定义2个标签,分别是音频播放列表标签页和视频播放列表标签页。
TabHost(标签页视图)必须配合TabActivity(标签Activity组件)使用。该播放器主界面的MainActivity继承自TabActivity,初始化2个标签页,并为每个标签分配不同的用户Activity(活动),MusicActivity(音频播放)和VedioActivity(视频播放),通过调用指定的Intent来打开合适的Activity(活动)。
2.2.2 资源列表界面设计
资源列表界面采用ListView(列表视图)作为核心视图。以视频资源列表为例,SD卡中的视频资源列表如图1所示。
该列表的Activity组件(VideoLibrary)继承自ListActivity。通过Android平台为基础数据类型(视频信息)装载ContentProvider(内容提供器),来获取位于SD卡设备目录/data/data/com.android.providers.media/ databases里的视频数据库信息,并使用SimpleCurosrAdapter适配器作为列表适配器将视频资源信息填充到列表视图中。
public class VideoLibrary extends ListActivity {
…
//设置内容视图
setContentView(R.layout.list_item_view);
//从当前上下文对象获得内容解析器
resolver = getContentResolver();
//查询sd卡的视频文件并返回结果集游标
Cursor c =resolver.query(MediaStore.Video
.Media.EXTERNAL_CONTENT_URI,null,null,null,null);
//初始化列表数据适配器
adapter = new SimpleCursorAdapter(this,
R.layout.list_item_layout,c,
new String[]{TITLE},
new int[]{R.id.VideoName});
//为播放列表设置数据适配器
this.setListAdapter(adapter);
…
}
2.3 数据存储
Android平台主要提供了4种数据存储机制[7]:Preferences(参数选项),Databases(数据库),Files(文件)和Network(网络)。
Preferences(参数选项)是一种轻量级的、用于存储或获取数据类型的“键-值”项的机制。它通常用来存放应用程序的配置信息。本文设计的多媒体播放器采用Preferen ces机制来存储或获取音/视频历史播放信息等配置信息。
2.3.1 获取数据
若要获取Preferences文件的数据,例如继续播放动作需要读取播放历史信息。首先通过调用Context.getSharedPreferences(String name,int mode)方法传入Preferences文件名和打开模式来获得一个SharedPreferences对象sp,若该Preferences文件不存在,在提交数据后会创建该Preferences文件。利用该sp对象调用getter方法,传入相应的键来读取数据。
//读取存放在SharedPreferences文件夹里的上一次播放的Uri
SharedPreferences sp;
sp=getSharedPreferences(PREF,Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
String uriString = sp.getString(URI_KEY,null);
nowPlaying = Uri.parse(uriString);
在Android平台中,所有音/视频文件的相关信息都是以Content的形式提供给开发者的,所以历史播放信息是content://样式的URI,也就是前面提到的nowPlaying。
2.3.2 存储数据
若要修改Preferences文件的数据,例如暂停当前播放,或停止播放并退出该播放器软件会引起播放历史信息的变更。而产生该动作的原理是,每当播放新的音/视频文件首先将其URI赋值到全局变量nowPlaying,然后在退出该播放软件时处理变更工作:利用SharedPreferences对象sp调用edit()方法获得一个内部类Editor对象editor,利用该editor对象对Preferences文件进行编辑,即读取nowPlaying的数据,随后必须调用commit()方法才可以完成修改该Preferences文件里键为URI_KEY的对应数值。
SharedPreferences.Editor editor = sp.edit();
editor.putString(URI_KEY,nowPlaying.省略mit();
2.4 多媒体应用
2.4.1 多媒体宏观结构
Android的多媒体部分框架涉及应用程序、Java框架层、C语言框架、硬件抽象层等环节。其中Android Java框架层提供标准多媒体API供上层相关应用程序调用。而媒体的播放过程实际上是由下层的OpenCore和Stagefright等实现的。Android多媒体宏观结构如图2所示[8]。
2.4.2 多媒体处理过程
典型数据流在多媒体播放器中的运行过程主要经过以下环节[9]:最上层的Java应用程序将媒体URI(媒体文件或者流媒体)作为输入设置到媒体播放器中(主要是通过Android平台提供的标准接口API,如MediaPlayer(媒体播放器接口)等),经过Java框架层,JNI和本地框架层,一直设置到PVPlayer(OpenCore)。该过程中只是传递媒体URI路径,并无数据流传递。由PVPlayer进行解析后,将媒体分成音频流(MP3,AMR,AAC等)和视频流(H263,H264,MPEG4等),经过编解码器的处理和同步(AVSync)处理后转换成原始数据(音频通常是PCM,视频通常是YUV或RGB格式)。随后音视频原始数据将被送入音频和视频的输出环节(扬声器或者显示屏等硬件)[6-7]。
2.4.3 多媒体播放接口
Android平台提供android.media包来管理各种音频和视频的媒体接口,该包中的MediaPlayer(媒体播放器接口)用于控制音频或视频文件和流的回放。另外在android.widget包中还提供Video View(视频视图)组件用于播放视频文件,以简化相对于使用MediaPlayer播放视频的繁琐控制过程[10]。
(1) MediaPlayer
对播放音频而言,通过MediaPlayer.crea te(Context context,Uri uri)方法来获取播放器实例,无需播放准备,直接通过MediaPlay er.start()方法来启动播放动作。其中nowPlaying就是用户当前选中的待播放文件[9]。
//开始播放
MediaPlayer mPlayer = MediaPlayer.create(context,nowPlaying);
mPlayer.start();
通过播放器实例mp调用MediaPlayer.pause()方法可以暂停当前播放行为,可以使用start()方法恢复播放。
首先调用MediaPlayer.stop()停止当前播放行为,再调用释放与播放器相关资源的方法MediaPlayer.release()来完成停止播放动作。
对于播放视频来说,通过MediaPlayer (媒体播放器接口)的“setDataSource”方法可以指定视频文件路径。与播放音频数据不同的是,视频播放还要设置显示视频内容的承载体,使用MediaPlayer的“setDisplay”方法为当前播放器实例设置一个用于显示视频内容、代表屏幕描绘的控制器。这样用于播放视频的播放承载体必须实现Surface Holder (表面视图处理接口)的视图组件。
(2) Video View
首先视频播放布局资源中必须定义2个组件:“VideoView”标记定义视频视图组件,“MediaController”标记定义视频播放控制器组件。在Acitity组件对布局资源填充完成后,获取布局资源中定义的视频视图和播放控制器组件实例(mVideo和mController),视频视图实例mVideo指定要播放的视频文件路径或URI,用于承载待显示视频内容,并为mVideo设置播放控制器用于控制该视频文件的播放行为(如暂停、前进、后退和进度拖曳等),再调用VideoView.start()方法启动播放行为。停止播放行为可以调用Video View.stopPlayback()来停止回放行为[9]。
//获取视频视图和播放控制器组件实例
mVideo=(VideoView)findViewById(R.id.video_view);
mController=(MediaController)findViewById(R.id.media_controller);
//设置视频文件URI
mVideo.setVideoURI(nowPlaying);
//设置播放控制器
mVideo.setMediaController(mController);
3 测 试
本文设计的多媒体播放器是在Android SDK 2.3平台下开发完成的。该播放器以应用程序apk的形式分别集成到在Android 2.3模拟器和HTC A3380手机上,通过测试能够实现音/视频文件的本地播放功能,例如暂停、继续、停止、进度拖曳等。以音频播放为例,测试效果如图3所示。
4 结 语
本文重点介绍基于Android平台的多媒体播放器解决方案。侧重分析UI(用户界面)设计、音/视频数据信息读写,及音/视频播放等过程;并在Android SDK2.3平台上进行功能性测试,测试结果满足预期,能够正常播放本地多媒体文件。随着用户对移动终端的媒体播放功能的需求日益增加,提供支持更高分辨率的视频播放,以及和网络结合的流媒体方面的功能将是下一步的研究重点。
参 考 文 献
[1] E2ECloud工作室.深入浅出 Google Android [M].北京:人民邮电出版社,2009.
[2] 高焕堂.Android应用框架原理及程式设计36技[M]. [出版地不详 ]:广悦文化事业有限公司,2009.
[3] 佚名.Android开发教程&笔记[EB/OL].[2009-11-19].省略/tech/509.htm.
[4] 张正政,林耀荣.基于Android系统的影音播放器开发[J].现代电子技术,2011,34(2):5-8.
[5] 赵亮,张维.基于Android 技术的界面设计与研究[J].电脑知识与技术,2009,29(5):8183-8185.
[6] 公磊,周聪.基于Android 的移动终端应用程序开发与研究[J].计算机与现代化,2008(8):85-89.
[7] 小试牛刀.解读:Android平台数据存储机制[EB/OL].[2010-12-17].hb.省略/a/20101217/000047.htm.
[8] 韩超,梁泉.Android系统原理及开发要点详解[M].北京:电子工业出版社,2010.
[9] 韩超,梁泉.Android系统级深入开发[M].北京:电子工业出版社,2010.
[10] 汪永松.Android平台开发之旅[M].北京:机械工业出版社,2011.
[11] 贺丹丹,施展.基于Android的VoIP系统的设计与实现[J].现代电子技术,2011,34(6):28-31.
[12] 车一,龙华,蒋华龙.下一代移动通信业务的自相似研究和实现[J].电子科技,2008(2):55-57.
[13] 王凤妮,王金宝.基于P2P架构和SIP协议的多媒体邮件网络研究[J].电子科技,2008(1):60-62.
[14] 乃学尚.IP多媒体子系统组网研究[J].电子科技,2009(2):68-72.
2、Nike推出ipod专用背包C.O.R.E.BackpackiD
看过《疯狂的石头》之后再看这款背包,我们难免感:N-I-K-E.还出薄薄呦!相信大家应该都知道Nike和Apple之间的合作关系,这次Nlke推出的C.O.R.E.BackpackiD,内置IPod遥控袖珍键盘和连接端口,让身穿IPod专用T-shirt却害怕总有一天会洗坏的你,多了个新选择。这款背包不仅容纳你一天之所需(像是书本、笔、零食、白色或彩色的lPod),更让你自行打造想要的背包,从背包颜色、NIke Flow气垫、安全式拉链,到为背包升级。直接在背带上装上可控制iPod音量、选歌、播放和暂停的遥控器,皆可自由选购,还有个耳机插孔及收藏袋,让你上课走路都方便。不过,这样的代价可不便宜,升级前只要美金55元(约人民币430元),升级后马上跳到美金105元(约人民币825元),但似乎还是比其它IPod专用背袋便宜。
3、Phiips DCM270
有时候时尚和品味这些流行名字真让人丈二金剐摸不着头绪.或许一般人类对高挑身材的渴望也投射到家庭音响设备上。看看Philips这款DCM270数字随身听音乐基座。具有设计感的家饰外型,除了可播放音乐CD外,还可外插飞利浦GoGear或lPod随身听。我们想像着,如果可以把Philips DCM270和IPod HiFi放在一起,一定是数字音乐界的天龙地虎。
4、言教不如身教,会咳会叫的烟灰缸
千言万语比不上亲眼见到,所以,这个小玩意,献给各位瘾君子。这个以肺为造型的烟灰缸,名为“Coughlng ScreammqAshtray”,主要有两种功能:第一,当任何人把点燃的香烟放到上头时,它便会开始咳嗽、尖叫!第二,当烟灰越堆越多时,原本红润的肺部,就会慢慢地被烟灰给掩盖而变黑。功能简单明了,售价美金9.99元(约人民币78元),不过怎么看这玩意都像都啦A梦从口袋里掏出来的东东啊。
5、新世代手机Onyx
什么是Onyx,查一下Google就知道这不是从未听过的概念,不过翻一下过去藏酷的记录之后发现并没有Onyx的相关记忆。因此为大家简单介绍一下:专门处理行动运算、沟通和娱乐装置的公司SynaptIcs lnco rpo rated以及工业设计工作室Pilotfish共同研发出了Onyx手机。Onyx是一款全部透过触控式屏幕操作的手机,没有任何的按键,操作的机制透过Synaptics所研发的ClearPad技求所执行。关于ClearPad技术,具官方说法,31earPad会根据使用者的手势而判断出不同执行构功能,如在屏幕上画个x,Onyx就能辨识关机;紧握Onyx也是关机的意思。另外,我们已经习惯多功能手机所具备的行事历、多媒体播放和GPS功能也都内含在Onyx之中。两家公司希望Onyx将能于12月上市,不过我们这边应该不会来得这么快,大家再耐心等些日子吧!
关键词:MOST;I2S;多媒体;GPS
中图分类号:TP37文献标识码:A
文章编号:1004-373X(2010)05-206-03
Design of Vehicle GPS Multimedia Player Based on AU1200 and OS8104
LIU Quanbin
(Shenzhen Fanhai Sanjiang Electronics Co.Ltd.,Guangzhou,510665,China)
Abstract:With the rapid development of auto electronics industry,the vehicle navigation system and the MOST network transmission system are famous for auto electronics industry bined navigation system with the MOST network,so that the traditional GPS navigation system not only has the streaming media play,but also reduces the vehicle wiring,increases anti-electromagnetic interference and scalability.Vehicle navigation system and MOST network are studied to improve the traditional vehicle navigation system,and the design is given.Because of using the low-power AU1200 and the MOST network,so the design improves system performance,integration and scalability,while making the system has the function of strong,low power consumption and high reliability.
Keywords:MOST;I2S;multimedia;GPS
基于MOST(Media Oriented Systems Transport)车载光纤传输多媒体已成为汽车多媒体的主流,国外已将此技术普及到轿车上,并且对数字多媒体设备进行规范。采用MOST光网络传输不会受到电磁干扰的影响,同时也减少了总线布线。随着汽车光网络技术的发展,会有越来越多的汽车厂家支持MOST协议,因此,可以预测国内的汽车光纤传输多媒体视听产品亦将出现广泛的市场。
1 AU1200 简介
AMD公司于2005年1月推出了专门为多媒体设计的处理器AU1200[1]。它支持NORFLASH,NANDFLASH启动,支持DDR Ⅰ和DDR Ⅱ SDRAM,支持RGB LCD显示,支持I2S,USB 2.0,SD卡等功能,是┮豢罡咝阅艿凸耗的MIPS多媒体处理芯片。支持WINCE,Linux操作系统。
2 系统工作原理及芯片选型
该系统选用Hynix的HY5DU121622BT-D43[2] 64 MB DDR Ⅰ内存,三星K9F1208U0B[3] 64 MB NAND FLASH,富士康群创7寸LCD AT070TN83[4],顶天国际REB3310 GPS模块[5],板上留有UART调试输出接口,方便调试。
系统通过FLASH启动,将程序拷贝到内存中运行,用户可以通过触摸屏点击菜单选择需要运行的功能,如GPS,播放MP3、MP4,或者选择接收处理来自MOST网络的音频数据。在调试过程中,可以通过预留的DEBUG口外接LVTTL 转RS 232电平转换芯片将调试信息输出到PC机,还可以通过USB升级烧录程序。SD卡可以存放电子地图、音视频文件或其他电子文件等。软件采用WINCE操作系统,WINCE带有AU1200 BSP驱动包,裁减方便。系统工作原理框图如图1所示。
图1 系统工作原理框图
2.1 I2S 音频设计方案及其部分工作流程
I2S 芯片选用WM9713L芯片,该芯片的主要作用是将AU1200和OS8104传输过来的音频数据进行D/A转换,变成模拟的音频信号输出。WM9713L[6] 芯片可实现两路I2S 音频数据输入,支持AC97音频数据和PCM I2S音频数据输入接口,可以很方便地实现AU1200同WM9713L,OS8104同WM9713相连接。同时WM9713L PCM/I2S 功能模块可以工作在四种工作模式:DSP模式,左声道模式,右声道模式和I2S模式,D/A时信噪比为94 dB,支持WINCE嵌入式操作系统。WM9713L同时还可以驱动四线式触摸屏。
功放选用Supec 公司的 BTL类SA4871功放[7]。该功放工作在电压范围DC 25~55 V,可以直接用锂电池供电,输出3 W功率。
WM9713L附带BTL功放,由于WM9713L只有400 mW的输出功率,SA4871有3 W的输出功率,考虑到用户对音量的大小要求选择SA4871。
播放MP3、MP4等多媒体文件时,声音可以通过AU1200 I2S接口送到WM9713L进行D/A转换。如果需要播放通过MOST光纤传输的音频数据,这时可以通过设置WM9713L内部寄存器18H使音频数据直接通过WM9713L 进行D/A输出。
WM9713 与 AU1200 OS8104 I2S数据传输接线示意图如图2所示。
图2 I2S数据传输接线示意图
2.2 OS8104工作方式
采用OASIS公司生产的OS8104[8],其主要作用是将光网络上的数据进行分解,输出I2S音频数据到WM9713L进行解码。其控制接口有多种工作方式,I2C,SPI,并口模式等,在这里选择I2C工作模式来配置OS8104的内部寄存器。
OS8104 I2S支持多种数据源格式,如Philips,Sony,Matsushita等。由于WM9713L支持I2S的PCM数据格式,通过对比两者的时序波形图,选择Philips 或Matsushita,WM9713L工作在DSP模式。为了接收整个MOST系统的I2S数据,还需要配置OS8104寄存器来设定I2S的采样频率。这里采用44.1 kHz采样频率。MOST的数据传送使用512 b的帧,以及16个帧的块。每个帧内除了前导码和其他内部管理位以外,还包含有同步、异步和控制数据[9]。MOST网络接口设备的源数据口配置为I2S串行方式,最大的同步数据传输率为:
4×64×441×103=11289 6 Mb/s
3 软件界面开发
采用WINCE 5.0 [10]嵌入式操作系统,其特点是性能稳定。EVC(Embedded Visual C++,是Windows CE下软件开发工具之一)开发图形界面,其特点是界面美观。EVC开发环境和Visual C++相似,基于Visual C++的开发人员比较容易熟悉并掌握EVC进行嵌入式应用界面开发。有较多的电子地图支持WINCE操作系统,如凯立德、道道通等。
WINCE移植需裁剪,先安装WINCE 5.0 AU1200 BSP驱动包再裁减,同时更改部分底层驱动程序。可以通过电脑RS 232串口输入按键来控制系统启动过程,其程序流程图如图3所示。
图3 程序流程图
4 测试结果及性能分析
AU1200功耗在400 MHz主频时低于400 mW,本系统AU1200内核在播放MP4或导航时工作在396 MHz主频,DDR工作在198 MHz,整机功耗小于4 W(菜单操作,不含喇叭)。在播放MP3时通过降低系统和DDR频率,关闭GPS模块,使MOST处于零功耗状态模式等方式来降低功耗,经测试可使功耗降低1.5 W播放1 kHz采样率为44.1 kHz的正弦波,信噪比为85 dB,有比较好的音质效果。
5 结 语
该多媒体播放器,以低功耗、高性能、多用途为主要目标,选择AU1200为主芯片,尽量优化外部电路,降低功耗,增加使用寿命,提高用户体验。
该设计的新颖之处:将MOST网络与多媒体GPS导航相结合,实现了MOST音频和节点流媒体音频的切换;采用WINCE 操作系统,界面美观。
参考文献
[1]AMD Technologies Inc.Products.AMD Alchemy Au1200 Processor Data Book - PRELIMINARY[EB/OL]./.
[2]Hynix Semiconductor Inc.Products.HY5DU124(8,16)22B(L)T(Rev1.1) Data Sheet[EB/OL]..
[3]SUMSANG Semiconductor Inc.Products.K9F1208U0B DataSheet[EB/OL]..
[4]富士康群创公司产品.AT070TN83 Data Sheet[Z],2006.
[5]RoyalTek Company LTD.REB-3310 Operational Manual Version 1.0 2005/4/7,/.
[6]Wolfson Microelectonics Co. Ltd.Products.WM9713 Data Sheet[EB/OL]..
[7]Supec Electronics Corp.SA4871 Datasheet[EB/OL].Rev.A.1,.cn.
[8]Oasis Silicon Systems AG Products.OS8104 MOST Network Transceiver DataSheet.Austin,USA:Oasis Silicon Systems AG,2003:20-21.
[9]Most Cooperation.Most Specification Rev2.2 .Karlsruhe,Germany :Most Cooperation,2002.
[10]何宗键.Windows CE嵌入式系统[M].北京:北京航空航天大学出版社,2006.
郑雅娟,施芝元,黄联芬.基于AU1200的无线车载多媒体终端硬件设计[J].现代电子技术,2008,31(23):127-129.
【关键词】视频播放器 MFC Windows Media Player Visual C++
1 引言
在本次设计中,考虑用Microsoft Windows Media Player为数字音频和视频提供支持,还可以根据需要修改视频内容的播放方式。使用 Windows Media Player 软件开发工具包 ,可以扩展独立Player 的功能,借助 ActiveX 控件资源和其他现有的控件资源并将播放功能嵌入到自己的应用程序中。本次课程设计实现了一个基于Media Player组件的多媒体播放器,能够支持目前多数格式的媒体文件。
2 设计思路
Windows Media Player是一款Windows系统自带的播放器,支持通过插件增强功能。其控件作为本次课设的媒体控件可以满足要求。并且该控件是微软自带的免费控件,通常每个电脑都应有这个控件,方便设计出来的软件在各个电脑运行。在WMP(Windows Media Player的简称)控件里,与多媒体播放器实现功能有关的类有:Cwmpplayer4,Cwmpcontrols,Cwmpmedia,Cwmpplaylist,Cwmpsettings 五大类。播放器的一些基本的功能如播放、暂停等主要是调用CWMPControl 和 CWMPPlayer 类中的成员函数来进行实现。 对于打开按钮,需要调用通用文件对话框类,调用 szFileFilter()文件过滤函数和 GetFileName()获取文件名函数。播放列表主要是通过对 CListBox 类进行初始化,调用 m_ListCtrl 中的 AddString()函数来加载文件名到列表,再定义 Onlist()、SelchangeList1()、Onsave()、Ondelist()函数来实现展开、隐藏等功能。音量滑动条Slinder 是通过对 CSliderCtrl 类进行初始化,调用 m_slinder 中的CustomdrawSlider()函数来定义音量的改变。
3 软件设计
设计平台可以是Win32的操作平台上,使用已安装的VC6.0++进行设计和调试。在设计前要确保平台中有WMP控件。结合之前的设计思路,使用 Windows Media Player 等控件来制作多媒体视频播放器。若是Win64这与VC6.0++不兼容,可以选择更高的版本。
3.1 设计步骤
打开 VC++6.0,点击“新建”,在“新建”窗口选择“工程”选项卡。由于程序是基于对话框的 MFC 应用程序使用 Windows Media Player等控件来制作多媒体视频播放器。设置好地址位置和工程名后点“确定”。这里的工程名字可以是自己的名字拼音缩写,也可以没有任何含义。比如以“CCYMFC多媒体播放器1.0”为工程名,然后点击“确定”。
在点击“确定”后进入到了“MFC 应用程序向导―步骤 1”的O置界面,选择“基本对话框”,可以自己选择语言,然后点击“下一步”。接着点击“下一步”,由于其他的设置因与初始设置一样,所以保持所有选项不改变,再次点击“下一步”直到“完成”。在建立的对话框中,点击右键,选择“插入 ActiveX 控件” ,在跳出的对话框中选择“Windows Media Player”,点击“确定”。
虽然已经插入控件了,但这时的控件还不能使用,因为控件的各种类并没有一起加入工程类中。右击鼠标,选择“建立类向导……”,这时系统跳出对话框提示是否加入来自控件的类,直接点击“确定”就可以了。右键单击 “建立类向导”,在对话框中选择“Member Variables”选项卡,单击“ADD Variables”,“Confirm Classes”中点击“OK”会 “Add member name”对话框,命名为“m_player”,设为控制“Control”型,单机“OK”。关联变量之后才算是真正的添加了该控件,可以发现在关联变量之后,控件工具栏多了“Windows Media Player”控件的选项,并且在“Source Files”中增加了17个类,相应头文件也增加了17个,其中最主要的类为Cwmpplayer4,Cwmpcontrols,Cwmpmedia,Cwmpplaylist,Cwmpsettings 五大类。
3.2 界面设计
对于多媒体播放器的,本次课程设计要求系统能选择打开、播放、暂停、停止,全屏视频文件,并能控制声音的大小,其中函数的响应大多是对鼠标左键单击的响应。可以通过下表设置安排按钮的位置以及分类,使用户快速对控件ID进行修改。然后是加入一些关联变量的控件,之前加入了WMPlayer,还要加入类别为“滑块”的Slinder来当调节声音的滑块,还有加入类别为“列表框”的List Control来充当播放列表。
除了对各个控件关联变量以及消息响应函数,还要对对话框类进行消息响应函数的关联,如当一首歌播放完后的模式选择。应用到 WM_TIMER 消息响应函数以及SetTimer()和KillTimer()函数,建立OnTimer函数。
3.3 关键功能的实现
对于各个按钮、列表功能的实现主要是通过对各个函数加入相应的代码,下文将列出相应的关键代码,按键功能可对应关键代码添加在相应的位置。
播放列表主要有“播放列表”、“保存列表”、“删除列表”、“清空列表” 这四个功能。这个列表的四个功能实现前提是在工程的文件夹里新建一个txt文档并命名为“list.txt”。文档可以保存播放文件列表使在下次打开时可自动的生成播放列表。然后是“播放列表”功能,其实就是在重新设置窗口大小,若展开则恢复原来的窗口大小,这里使用了SetWindowPos()函数。最后是“删除当前”和“清除列表”,使用了“DeleteString()”来删除播放列表中的代表文件路径的字符串。用“ResetContent()”直接清除列表。同时不管那种功能,执行完成后要保存列表,这样才能使播放列表与list.txt同步。“打开”按钮主要是实现了对打开的文件进行过滤,主要使用了szFileFilter()函数。点击确定时,首先是把文件路径传给播放列表中,列表在从文件路径中提取文件名来显示。然后又把文件路径通过SetUrl()交给控件读取播放。
这里有三种播放模式:“顺序播放”、“随机播放”、“单曲循环”。这三种模式的实现是在OnTimer()一个时间消息响应函数的实现的。先判断一个文件播放完毕后,再分别判断OnRadio1、OnRadio2和OnRadio3对应的按钮是否按下,若有按钮按下就进入到对应的if语句中。顺序播放就是int index=m_ListCtrl.GetCurSel()+1跟上一首相同;随机播放先是用srand(time(0))来每次都能产生不同的随机数序列,再用rand()%m_ListCtrl.GetCount()产生随机光标;循环播放是m_ListCtrl.GetText(m_ListCtrl.GetCurSel(),m_PathName)实现的。
音量滑动条是区别于其他命令按钮的,它是滑块,所以相应的是Customdraw类型,是调用 CSliderCtrl 控件的 m_slinder 变量来实现的。音量调节函数主要是使用一个嵌套函数“m_WMPlayer.GetSettings().SetVolume(m_slinder.GetPos());”实现的。设置音量用的是“SetVolume()”函数。在“OnInitDialog()”函数中已对滑块范围进行初始化――m_slinder.SetRange(0,100)。使音量化范围为0~100。
4 问题发现与解决
在完善程序和调试过程中出现了各种各样的语法错误,通过百度查阅相关语法问题以及细心的检查中得到了解决,现将我遇到的问题以及解决方法摘录如下:
已经运行了一个窗口,再次运行时会出现cannot open Debug/CWMJ.exe for writing的错误提示,关闭之前的运行窗口,再次运行,此错误提示消失,这是由于编译的exe文件运行了多次,重复打开了窗口。之前定义了的消息处理函数,在界面上删除后,没在程序中删除,会报error2039:Onadd:is not a member of “CCWMJDlg”错。在程序中删除此函数,再次运行,此错误提示消失。函数的运用不正确,GetVolume()函数不能带参,会报GetVolume():function does not take 1 parameter错。修改代码,不让其带参,再次运行,此错误提示消失。
炫影DMP100多媒体播放器的外观和之前我们介绍过的转换精灵十分相似但功能却完全不同实际上你可以把它看作是类似DVD机的产品,专门负责网络视频的播放。
以前市场上也出现过一些多媒体播放器,但它们往往不能很好地支持RM或者RMVB格式的视频和外挂字幕。而天敏炫影DMP100最高可以流畅支持1600Kb/s的RM或者RMVB格式视频,网上常见的RMVB视频的码率一般在300Kb/s~1400Kb/s之间同时也能支持主流外挂字幕。这是因为炫影DMP100多媒体播放器采用了AMLOGIC AML7228音频/视频处理器,这款处理器拥有两个内置32位AMRISC处理器专门进行音频和视频数字信号处理,可以支持包括MPEG-1/2/4(包括DivX和xvid编码格式)、AvI VOBDAT、RM和RMVB格式在内的各种网络视频加速解码,以及音频逆向解码。
炫影DMP100是一款纯粹的多媒体播放器,并没有包含内部的存储设备,因此用户需要把从网上下载的视频节目拷贝到闪存盘、闪存卡或者移动硬盘上接到炫影DMP100上进行播放。为此,炫影DMP100提供了两个USB接口、一个4合一读卡器接口。在输出方面炫影DMP100提供了最普遍的AV端子输出,可以兼容早期的老电视同时它也提供色差端子,可以为平板电视提供品质较好的色差信号最高可支持720p输出。
在我们的实际使用过程中,炫影DMP100多媒体播放器表现出了相当不错的兼容性我们用它播放各种码率的网络下载的MPEG-1/2/4、AVI和RM/RMVB等格式的视频并未发现不兼容的现象。其机身的发热量也不算大,长时间播放过程中没有出现不稳定的现象。而从画面表现来看,炫影DMP100的解码效果也是中规中矩。唯一有些遗憾的是它并不支持1080p高清视频,因此不能完全发挥高清平板电视的实力。
内容提要: 于拒绝交易,欧盟、美国的司法救济没有本质差别。至于捆绑,美国要求微软隐藏被捆绑软件的图标;欧盟要求微软提供删除多媒体播放器源代码的视窗版本,但仍允许销售提供捆绑播放器的视窗版本;韩国除了采用类似于欧盟的救济以外,还要求微软在视窗操作系统中安装辅助软件,以方便用户下载微软竞争对手的软件;在针对微软ie浏览器与视窗的调查中,欧盟迫使微软承诺在视窗操作系统中设置选择屏,以便用户自由选择浏览器。比较而言,欧盟2004年的救济比美国的有力,韩国的救济比欧盟2004年的救济又更进一步,而欧盟2009年迫使微软在视窗中设置选择屏是迄今为止解决软件捆绑最彻底的救济手段。
当今世界上,最吸引反垄断执法机构关注的企业非美国微软公司(以下称为“微软”)莫属了。自1998年以来,美国、欧盟、韩国、日本的反垄断执法机构相继对微软展开反垄断调查并做出了裁决。1998年,美国司法部、十九个州和哥伦比亚特区起诉微软违反《谢尔曼法》。欧盟委员会于1998年启动了针对微软的反垄断调查,并于2004年3月24日做出裁决。它还于2007年针对微软ie浏览器与视窗操作系统的捆绑发起了调查,并成功迫使微软承诺在视窗操作系统中设置一个选择屏(choicescreen),以便用户能够自由且轻易地选择网络浏览器。韩国公平交易委员会于2006年2月24日裁决微软违反了韩国《规制垄断与公平交易法》。WwW..cOM2004年7月,日本公正交易委员会针对微软与个人电脑原始制造商(即oem—original equipmentmanufacturer of personal computer)之间的“不行使专利条款”(nonassertion-of-patent clause)向微软发出劝告书(日本公正交易委员会的“劝告书”(recommendation)相当于美国联邦贸易委员会的complaint。当被告接受时,“劝告书”就成为正式的审决书(formal decision)。)。
全球经济已经进入“新经济”时代。以迅速创新、业务全球化和依赖信息技术为特征的“新经济”已经对法院、决策者都提出了新的法律挑战[1]。作为“新经济”代表性产业之一的软件产业,也为现代竞争法提出了很多前所未有的难题。身为世界主要经济体的美国、欧盟、日本、韩国,其反垄断立法较为完备,执法经验更为丰富,它们的微软案件裁决富有启发意义。因此,美国、欧盟、韩国、日本对微软案件的裁决,对于我们理解软件产业的垄断特征、准确地在软件产业适用我国反垄断法具有很高的借鉴价值,有必要详加研究。
本文拟从如何认定和规制软件产业中滥用市场支配地位的角度,对美国、欧盟、韩国、日本微软案件的裁决进行比较研究,希望对我国软件产业中的反垄断执法有所借鉴。本文分为六个部分,第一至第四部分分别对美国、欧盟、韩国和日本的微软案件进行介绍和阐述,其中,将重点从相关市场界定、支配地位确认、滥用性质的认定、司法救济等几个方面阐述美国和欧盟的微软案件。第五部分对美国、欧盟、韩国、日本微软案件中司法救济的规制效果进行比较分析。第六部分是本文的结语。
一、美国微软案件
美国联邦贸易委员会在1990年对微软启动过一轮调查。该案于1993年无果而终[2]。随后,美国司法部反托拉斯局对微软展开新一轮调查,并于1994年向地区法院指控微软订立不合理限制贸易的非法合同和垄断个人电脑操作系统市场的行为违反了《谢尔曼法》第1条和第2条。欧盟也以控告人身份参与了这一案件。最后,司法部、欧盟、微软向地区法院签署了意见,同意和解令(在美国,和解令(consentdecree)是指经法院批准,从而发生法律效力的各方当事人同意和解的文书。)。
本文所要讨论的美国微软案件始于美国司法部、十九个州和哥伦比亚特区政府于1998年向美国哥伦比亚特区地区法院(以下称为“地区法院”)提起的、最初由杰克逊法官审理的所谓“世纪大案”。政府指控微软通过非法独占合同、软件不兼容和非法捆绑的手段排斥来自美国网景公司(netscape)的导航者浏览器(navigator)和美国太阳微系统公司(sunmicrosystems)的java技术的竞争,非法维持其在个人电脑操作系统市场上的垄断地位,从而违反《谢尔曼法》第1条。政府还指控微软试图垄断浏览器市场,违反了《谢尔曼法》第2条[3]。
该案经过地区法院初审、微软上诉、发回重审、马萨诸塞州上诉,哥伦比亚巡回区上诉法院(以下称为“上诉法院”)最终于2004年夏天驳回马萨诸塞州的上诉,维持了地区法院重审中的和解令[2]。由于在微软提起的上诉审中,上诉法院维持了地区法院关于微软违法行为的大部分认定,所以对于微软违法行为这一部分,下文将基于上诉法院的维持进行介绍。在司法救济方面,上诉法院驳回了杰克逊法官做出的整个司法救济,而维持了地区法院重审中的救济措施。所以对于救济部分,将主要基于重审进行阐述。
与欧盟委员会适用《欧洲共同体条约》第82条(即现在的《欧洲联盟运作条约》第102条)相类似,美国反托拉斯机构适用《谢尔曼法》第2条也分两个阶段,首先确定一个企业是否在相关市场拥有支配地位,然后查明该企业的行为是否具有滥用支配地位或者掠夺的性质。
(一)相关市场和市场支配地位
我们知道,反垄断案件的分析始于界定相关市场和确定被告是否在该市场拥有支配地位。界定相关市场甚至会起到左右案件结论的作用[4]。美国微软案件涉及到操作系统市场和浏览器市场的界定。根据现有英特尔兼容个人电脑的用户很难转向使用苹果公司的macos操作系统的事实,地区法院的杰克逊法官认为,将相关市场界定为与英特尔兼容的个人电脑操作系统市场,满足美国司法部和联邦贸易委员会1992年的《横向合并指南》规定的市场界定条件[5]。这一事实认定被上诉法院维持。对于另一项指控即微软企图垄断浏览器市场而言,两级法院就市场界定问题产生分歧。地区法院认定微软企图垄断浏览器市场,但是上诉法院却认定政府并没有提供充足的证据证明这一指控[5]。
美国反托拉斯法上的市场支配力或垄断力与市场支配地位的含义大致相同。根据美国判例法,市场垄断力是指企业在某个相关市场上拥有的控制价格或排除竞争的经济实力,通常以市场占有率来衡量[6]。虽然美国判例法采用的市场占有率标准不尽一致,但是70%或者更高的市场占有率足以认定一个企业在相关市场拥有支配力[4]。杰克逊法官以微软控制了90%以上的操作系统市场份额为由,认定微软拥有实质上的市场支配力。上诉法院维持了这个认定[7]。
(二)滥用性质的认定
根据美国反托拉斯法,拥有市场支配力本身并不违法,违法的是企业对支配力的滥用。美国微软案件主要涉及微软通过合同和产品设计的手段实施捆绑(捆绑(bundling)是搭售(tying)的一种形式。微软通过将其浏览器等软件源代码与操作系统源代码混合在一起的方式实现二者的捆绑。)战略,排挤网景公司的导航者浏览器和太阳微系统公司的java技术。因此,下文将着重阐明美国微软案件中捆绑非法性的认定原则与标准。
在搭售非法性的认定上,美国法院传统上适用当然违法原则(per se illega,l也称“本身违法原则”)。美国最高法院曾经判定,符合以下标准的搭售就是非法的: (1)搭售产品和被搭售产品是单独的产品; (2)被告在搭售产品市场拥有市场支配力; (3)被告使得消费者除了购买被搭售的产品以外别无选择; (4)搭售排斥了实质数量的商业交易[8]。在杰克逊法官看来,依据该标准,微软将其ie浏览器与视窗操作系统进行捆绑的行为违反了《谢尔曼法》。理由是,其一,搭售产品——视窗操作系统与被搭售产品——ie浏览器是单独的产品,这不仅是因为消费者将二者视为不同的产品,而且因为二者的源代码能以无穷的方法混合和分开;其二,微软在视窗操作系统市场上拥有支配力;其三,微软竞争对手网景公司浏览器的市场份额和收入下降表明大量的浏览器市场交易受到影响;其四,微软迫使消费者在购买视窗操作系统时必须接受ie浏览器,而无法选择其他浏览器[5]。基于这种分析,地区法院支持了政府的几乎全部指控,认定微软将其浏览器与操作系统捆绑当然违法,并且企图非法排斥网景浏览器和java技术的竞争以及企图非法垄断浏览器市场[3]。
但是,上诉法院推翻了杰克逊法官对当然违法原则的适用,认为应当根据合理原则(rule of rea-son)来评判微软的捆绑行为[9]。根据合理原则,即使被告的捆绑行为符合最高法院的上述标准,也应当在权衡该行为竞争效果和反竞争效果孰轻孰重的基础上评判其非法性。举证责任的转移在其中起到至关重要的作用。政府须先证明被告的行为产生了反竞争效果,然后举证责任转移至被告,使其有机会证明其行为具有正当性。被告举证之后,如果政府仍然坚持被告行为违法,就必须证明被告所谓的正当性理由只是一个借口,或者虽然具有一定的竞争性效果,但是根本不能与其行为的反竞争效果相提并论。本案中,尽管微软证明了其捆绑行为具有一定的效率(例如消费者一次购买二物,且无需增加付款,从而节省交易费用;浏览器和操作系统功能代码的共享可以节省计算机的驱动和存储空间),但是上诉法院最终认为,这种行为的反竞争效果仍然压倒了这些效率所产生的竞争性效果,构成滥用市场支配力。这是因为微软的行为实际上都出于同一个动机,即阻止个人电脑原始制造商和用户使用其他浏览器,从而达到排挤竞争对手浏览器的目的[5]。
尽管上诉法院认为杰克逊法官适用当然违法原则是不恰当的,但是由于微软捆绑行为的反竞争效果远大于其竞争性效果,所以上诉法院仍然维持了地区法院关于微软通过非法排他行为维持操作系统市场支配地位的大部分事实认定,主要有: (1)通过视窗许可协议阻止个人电脑原始制造商从电脑桌面上或者菜单中删除ie浏览器,阻止个人电脑原始制造商改变电脑系统的初始启动顺序以及为竞争对手的产品添加桌面图标或文件夹; (2)通过产品设计,将ie浏览器与视窗源代码混合在相同的文档中,从而实现捆绑,使得最终用户和个人电脑原始制造商都不能将ie浏览器通过“添加/删除软件”功能予以删除; (3)与互联网接入商订立协议,要求其只促销ie浏览器而限制装载网景公司的导航者浏览器,还与互联网服务提供商和美国苹果公司订立协议,要求其优先使用ie浏览器,而不是导航者浏览器; (4)通过扼杀导航者浏览器和太阳微系统公司的java技术对微软垄断地位的威胁,损害了消费者的利益和公平竞争[5]。但是,上诉法院以政府并没有证明存在一个独立的浏览器市场为由,驳回了地区法院关于微软企图垄断浏览器市场从而违反《谢尔曼法》第2条的认定[3]。
(三)司法救济
基于其事实认定,地区法院于2000年6月了彻底的判决,包括将微软分拆成操作系统公司和应用软件公司以及施加其他一些行为限制。然而,上诉法院认为这种结构性的救济难以恢复一个剧烈变化的并且仍在持续变化之中的市场竞争秩序,从而推翻了杰克逊法官的全部救济措施,将案件发回重审[9]。2002年11月,地区法院支持了原被告达成的和解令。该和解令虽然被马萨诸塞州和两个产业组织提出上诉,却得到上诉法院的维持,从而成为美国微软案件的最终生效文书(以下称为“最终和解令”)。该和解令采取的主要救济包括: (1)微软不得限制个人电脑原始制造商安装、显示非微软中间件(middleware)的图标或经销或启动非微软中间件(除了操作系统软件和应用软件以外,还存在一些被称为“中间件”的软件。作为应用软件平台的操作系统软件,可以提供应用软件编程接口(application programming interfaces-apis),使得应用软件可以调用操作系统中的功能,与其兼容并在其中运行。一方面,中间件为了在操作系统上运行,必须依赖后者的应用软件编程接口,另一方面又可以向其他应用软件提供自己的应用软件编程接口。典型的中间件有浏览器和java软件。如果中间件能够提供足够数量的应用软件编程接口,就会有越来越多的软件开发者为其编写应用软件,操作系统的应用软件方面的进入障碍就会减弱。参见w illiamh. page& john e. lopatka: themicrosoftcase: antitrust, hightechnology and consumerwelfare, theuniversity ofchicagopress, 2007, p. 87.); (2)微软必须允许个人电脑原始制造商从桌面或菜单中删除ie浏览器和多媒体播放器的图标以及采取使这些软件不能自动启动的其他措施; (3)微软必须为个人电脑原始制造商经销、安装、显示、启动非微软中间件之目的披露必要的文档,以便竞争对手的中间件能够通过视窗操作系统来实现其功能; (4)微软不得向个人电脑原始制造商和互联网服务提供商进行或威胁进行报复; (5)和解令有效期为三年(据报道,由于微软提供的兼容信息不符合要求,该和解令有效期已延长至2009年11月12日。来源于http: //news. ccid-net. com /art/11103/20080131/1358911_1. htm,l 2008年5月10日访问。)。由此可见,对于捆绑,美国最终的司法救济主要是保证ie浏览器和多媒体播放器的图标能够从个人电脑桌面或者菜单中删除。重审中的地区法院以及上诉法院都没有要求微软删除其中间件源代码以彻底解除其中间件与视窗操作系统的捆绑,也没有要求微软提供未捆绑中间件的视窗版本以使消费者有更多的选择。因为ie浏览器和多媒体播放器软件的图标被删除后其源代码仍然留存于视窗操作系统之中,所以,美国的这种做法也被称为隐藏图标式的救济[2]。
二、欧盟微软案件
1998年12月10日,太阳微系统公司向欧盟委员会指控微软在个人电脑操作系统市场拥有支配地位,并且微软拒不披露工作组服务器(work group server)操作系统与视窗操作系统互操作所必需的信息违反《欧洲共同体条约》第82条。2000年2月,欧盟委员会就微软将视窗多媒体播放器(w indowsmediaplayer)与视窗操作系统进行捆绑的问题展开了自己的调查。2004年3月24日,欧盟委员会了彻底、全面的裁决,认定微软滥用了其市场支配地位,对其处以4.97亿欧元(折合近6.13亿美元)的罚款,命令微软在120天内提供能让竞争者的工作组服务器操作系统与视窗操作系统兼容工作的完整、准确信息;而且,微软必须在九十天内提供不带有多媒体播放器的视窗操作系统版本[10]。
微软随后提出了上诉。2007年9月17日,欧盟初审法院维持了欧盟委员会的裁决。同年10月22日,微软决定放弃向欧洲法院上诉。但是这并不标志着欧盟委员会长达九年的微软案件尘埃落定了。由于微软在2007年10月22日之前仍然对竞争者收取高额的兼容信息许可费,该委员会认为微软违反裁决,遂于2008年2月27日决定对微软处以8. 99亿欧元的罚款。微软也因此成为五十年来第一家因为不遵守欧盟委员会反垄断裁决而遭受处罚的公司[11]。
欧盟委员会对微软的“关注”并没有到此结束。由于挪威opera公司2007年12月的控告,欧盟委员会于2009年1月14日再次向微软发出异议书,指控微软将ie浏览器与视窗操作系统捆绑销售,涉嫌违反《欧洲联盟运作条约》第102条(即原《欧洲共同体条约》第82条)关于滥用市场支配地位的规定。微软先于2009年6月11日宣布将自欧洲市场推出的w indows7操作系统中删除ie浏览器。迫于欧盟委员会的压力,微软又于2009年10月承诺将在销售于欧洲经济区的视窗操作系统中设置一个选择屏,使用户可以轻易地在包括ie浏览器在内的12款浏览器中进行选择。2009年12月16日,欧盟委员会通过一项决议,同意微软的承诺从而使之具备法律约束力[12]。
(一)相关市场和市场支配地位
欧盟委员会认为将个人电脑操作系统按照是否与英特尔处理器兼容进行细分,对于评估微软的市场支配地位没有实质性影响。相应地,它将其微软案件涉及到的相关市场界定为客户端个人电脑操作系统(clientpc operating systems)市场、工作组服务器操作系统(work group server operating sys-tems)市场和流媒体播放器(streamingmedia players)市场[13]。
根据欧盟竞争法,市场支配地位是认定违法行为的前提。从欧洲法院的判例来看,市场支配地位是指一个企业的经济能力所处的地位,该地位给该企业提供了在相当大的程度上,无须顾忌其竞争者和消费者而行动,从而排除有效市场竞争的能力。为认定市场支配地位,需要考虑一个企业的市场份额和市场进入障碍(操作系统(主要商品)和应用软件(辅产品)可以视为一个产品网络。如果不同的“操作系统/应用软件”网络之间不兼容,它们将会竞争支配地位。这种竞争将导致一个单一的生产者(或产品或标准)获得市场支配地位。用户总是愿意购买能运行最多的应用软件的操作系统,软件开发者也总是愿意编写能在最流行的操作系统上运行的软件,以吸引消费者购买。随着支配性操作系统用户的增加,就会有越来越多的软件开发者为该操作系统编写辅软件,消费者可以购买到的辅软件的种类就随之增加。随之,更多的用户将会购买主要商品——操作系统。因此,一方面,即使出现更好的操作系统,用户也可能被锁定(“locked-in”)在支配性操作系统上,另一方面,软件开发者也不愿意为其他操作系统编写可能无人问津的辅软件。这就是网络效应,它为其他操作系统造成了一个市场进入障碍.参见w illiam h. page& john e. lopatka: themicrosoftcase: antitrust, high technology and consumerwelfare, theuniversity ofchicago press,2007, p. 91.参见dennis s. karjala: copyrightprotection ofoperating software, copyrightmisuse and antitrust, cornell jour-nal oflaw and public policy, vo.l 9: 161, p. 173.)。根据国际数据公司(internationaldatacorporation)的调查,截至2002年,微软视窗操作系统的市场份额,按照安装套数衡量,达到93.8% ,而按照收入衡量,则达到96. 1%[14]。根据欧盟反垄断判例,除非出现例外情况, 50%以上的市场份额本身就可以认为是存在支配地位的证据。70%—80%的市场份额则可确保支配地位是成立的。基于微软拥有超过90%的市场份额和操作系统市场存在很高进入障碍的事实,欧盟委员会认定微软在个人电脑操作系统市场拥有《欧洲共同体条约》第82条项下的市场支配地位。至于服务器操作系统,欧盟委员会引用国际数据公司的、欧盟委员会自己的以及美世管理咨询公司(mercermanagementconsulting)的调查数据,结果是无论按照哪一个指标衡量,微软都拥有至少50%以上的市场份额,而从大多数指标来看,微软的市场份额都在60%—70%之间。除此因素以外,还考虑到服务器市场存在进入障碍以及服务器市场和操作系统市场之间的联系,欧盟委员会认定微软在服务器操作系统市场也拥有《欧洲共同体条约》第82条项下的市场支配地位[10]。
(二)滥用性质的认定
与美国相同的是,拥有市场支配地位本身在欧盟也不违法,而滥用该地位才具有非法性。所谓滥用市场支配地位是指处于市场支配地位的企业凭借这种地位,利用不同于正常商业竞争方法之手段,妨碍有效市场竞争的行为。当这种行为能够直接或间接,实际上或潜在地影响成员国之间的商品或服务贸易的格局时,它就妨害了成员国之间的贸易[10],从而违反欧盟竞争法。
1.拒绝交易
拒绝交易在欧盟也被称为拒绝供应。欧盟委员会认为,微软在操作系统市场上拥有的准独占支配地位使得微软能够在很大程度上能够无须顾忌其竞争者,来制定一套支配工作组网络兼容事实标准的通信协议,而工作组网络与视窗体系结构兼容是工作组服务器操作系统开发商生存的必要条件;微软减少了兼容信息披露的水平,并且拒绝向太阳微系统公司提供其要求的兼容信息;欧盟委员会收集的数据显示,工作组服务器操作系统市场的竞争存在削弱的危险,微软在该市场的支配地位已经形成,并且在持续增强;微软工作组服务器操作系统的市场份额增长与该操作系统享有的兼容优势存在因果关系,而且对于微软兼容信息的披露不存在实际或潜在的替代;尽管微软以其知识产权作为抗辩,但是欧盟委员会认为责令微软提供兼容信息对其创新激励的负面影响远远不能与对整个行业创新水平的正面影响相提并论[10]。基于上述理由,欧盟委员会认定微软拒绝披露足够的兼容信息妨碍了相关市场的创新,通过将消费者锁定(微软在操作系统市场上的支配力已延伸到中间件市场。如果微软拒绝提供竞争对手的中间件与视窗操作系统兼容所必须的信息,为了避免其他中间件的不兼容问题,用户就只能选择与视窗操作系统捆绑在一起的微软中间件,从而被锁定。)于微软的产品而限制了他们的选择,从而构成拒绝供应,违反《欧洲共同体条约》第82条。
2.捆绑
根据《欧洲共同体条约》第82条(d)项之规定,一个企业利用其支配地位,要求对方当事人接受与合同主要标的物在本质上或商业惯例上无关联的附加义务作为订立合同的条件,就构成滥用支配地位。该项所定义的滥用行为适用于捆绑。在捆绑的认定条件上,欧盟委员会遵循的标准与美国最高法院1984年所确立的标准基本相同[10]。欧盟委员会认为通过多媒体播放器与视窗的捆绑,微软将视窗作为分销渠道来确保其在多媒体播放器市场的重要竞争优势,这具有反竞争的性质,因为捆绑有利于树立一个保护微软多媒体播放器的市场进入障碍。这种障碍使得竞争者的多媒体播放器产品难以进入市场,挫伤了多媒体播放器厂商人力和资金投资的积极性,减少了来自这些厂商的有效竞争,最终扰乱了正常的竞争程序[10]。因此,尽管微软主张多媒体播放器与视窗的捆绑具有合理性,欧盟委员会仍然认为这种合理性远远不足以抵消捆绑的反竞争效果,从而认定微软将多媒体播放器与视窗捆绑违反了《欧洲共同体条约》第82条禁止滥用支配地位之规定。这也显示出欧盟委员会在捆绑违法性认定上贯彻的是合理原则,而非当然违法原则。
对于微软ie浏览器与视窗操作系统的捆绑,欧盟委员会认为,微软通过捆绑使其ie浏览器遍布在世界上90%的个人电脑中,导致ie浏览器获得了其他浏览器无法企及的人为分销优势,保护了ie浏览器免于与其他浏览器的直接竞争,另外还人为地刺激网络内容提供者和软件开发者设计主要适用于ie浏览器的网页和软件,这都会损害浏览器之间的公平竞争、产品的创新速度以及消费者最终获得产品的质量。据此理由,欧盟委员会在2009年1月15日的异议书中初步认定微软将ie浏览器与视窗操作系统进行捆绑,构成滥用其个人电脑操作系统的市场支配地位,涉嫌违反《欧洲共同体条约》第82条禁止滥用支配地位之规定。但是,该委员会在2009年12月16日批准微软承诺书的决议中没有最终确定微软行为违法,也没有处以罚款[12]。这是因为微软已经承诺在视窗操作系统中设置可方便用户选择竞争对手浏览器的选择屏,从而与欧盟委员会达成彻底和解。
(三)司法救济
欧盟委员会认为,对微软拒绝交易的当然救济就是责令其提供它拒绝提供的东西。于是,它要求微软向竞争者披露并许可它们使用视窗工作组服务器为向视窗工作组网络提供文档、打印、组和用户管理服务所使用的完整和准确的通信协议规范,但是并没有要求微软提供自己实施该规范的源代码。该救济之目的是确保微软的竞争者能够开发与视窗个人电脑操作系统的体系结构相兼容的服务器操作系统,以便切实可行地与微软的视窗工作组服务器操作系统相竞争。
至于对多媒体播放器与视窗操作系统捆绑的救济,欧盟委员会与美国上诉法院明显不同,在2004年的裁决中采取了强制改变版本(mandatory versioning)的救济手段。美国微软案件中,微软被责令允许个人电脑原始制造商删除微软中间件图标,但是却可以在视窗中保留中间件的源代码。而欧盟委员会则要求微软提供删除视窗多媒体播放器源代码的视窗操作系统版本,该救济既适用于直接许可给最终用户的视窗,也适用于许可给个人电脑原始制造商在欧共体市场销售的视窗。但是微软可以继续向个人电脑原始制造商和最终用户提供捆绑了多媒体播放器的视窗版本。但是,微软须保证不包含多媒体播放器的视窗版本的性能不得低于包含多媒体播放器的视窗版本。
针对ie浏览器与视窗操作系统的捆绑,欧盟委员会批准的救济则与此前根本不同。根据欧盟的决议,微软须在五年内通过一个选择屏向欧洲经济区的视窗操作系统用户提供获取不同浏览器的选择自由。该选择屏通过升级视窗操作系统即可获得并可自动更新,它将包括十二种最常用的网络浏览器。可提供的浏览器名单将根据市场份额情况每六个月更新一次。首次提供的浏览器包括苹果safari、谷歌chrome、微软ie、firefox和opera等十二种。微软应在2010年3月中旬前向w indows7操作系统用户提供该选择屏,并在五个月内普及到所有的w indowsxp和vista用户。微软应就选择屏方案的实施情况定期向欧盟委员会报告并接受核查。如果微软违反承诺,欧盟委员会无须证明微软违反欧盟反垄断规则即可根据微软违反承诺本身对其处以高达年度营业额10%的罚款[15]。
三、韩国微软案件
韩国公平交易委员会于2006年2月24日裁决,认定微软的捆绑行为违反了韩国《规制垄断与公平交易法》,命令微软停止捆绑行为并对其处以相当于3100万美元的罚款[16]。微软先向韩国公平交易委员会提出复审,被驳回后,又向韩国首尔高等法院提起诉讼[17]。2007年10月16日,首尔高等法院和微软同时证实微软放弃了对韩国公平交易委员会裁决的起诉[18]。
韩国公平交易委员会审查了微软的三个捆绑行为,即视窗多媒体服务软件(w indowsmedia serv-ice)与视窗服务器操作系统的捆绑,视窗多媒体播放器(w indowsmedia player)、即时通讯(w indowsmessenger)软件与视窗个人电脑操作系统的捆绑。该委员会认为微软的行为提高了多媒体服务器软件市场的进入障碍,不合理地干涉了竞争对手的经营活动,侵犯了消费者选择多媒体服务器软件的权利,从而限制了市场竞争,阻碍了技术创新,严重地损害了消费者的利益。韩国公平交易委员会在上述事实认定基础上做出了相应的处罚。主要有: (1)微软应在收到裁决后一百八十天内以删除源代码和文档的方式解除视窗多媒体服务软件与视窗服务器操作系统以及视窗多媒体播放器、视窗即时通讯软件与视窗个人电脑操作系统的捆绑,并且须确保删除这三个被捆绑软件后,视窗的性能和稳定性不得低于删除前的视窗版本; (2)微软仍然可以向市场提供包括视窗多媒体播放器和视窗即时通讯软件的视窗个人电脑操作系统,但是必须同时在其中安装“多媒体播放器中心”(media playercentre)和“即时通讯中心”(messengercentre)软件,以便消费者可以轻易地下载微软竞争对手的多媒体播放器和即时通讯软件; (3)微软应在接到付款通知后六十天内支付324. 9亿韩元(相当于3100万美元)的罚款(holding of2002 kyung-chok 0453.此处所引用的裁决意见仅为韩国公平交易委员会裁决的救济部分,由sejin kim翻译成英文。)。
四、日本微软案件
日本的微软案件涉及到微软强加给日本个人电脑原始制造商的“不行使专利条款”。大约自1993年开始,微软与日本的个人电脑原始制造商签订的视窗许可合同约定后者有义务遵守“不行使专利条款”。根据该条款,日本个人电脑原始制造商被禁止以专利侵权为由起诉微软、微软的子公司以及在电脑中预装微软软件的其他个人电脑原始制造商。日本公正交易委员会于2004年7月向微软发出劝告书,认为微软强迫个人电脑原始制造商接受“不行使专利条款”,违法了日本《禁止私人垄断和确保公正交易法》,并建议微软删除该条款[19]。自2004年8月开始,微软从新的许可合同中删除了该条款,却坚持2004年7月前达成的“不行使专利条款”仍然有效。值得注意的是,日本公正交易委员会并没有适用日本《禁止私人垄断和确保公正交易法》第3条即禁止私人垄断的条款,而是适用了第19条即禁止不公正交易行为的条款。
根据日本《禁止私人垄断和确保公正交易法》,不公正交易行为条款适用于那些缺乏市场支配力,因而不受禁止垄断条款约束的企业。因此,日本公正交易委员会应该适用全球公认的禁止垄断条款来处理此案。根据一位日本学者基于禁止垄断条款进行的学理分析,本案中,相关市场应当是与操作系统相关的视听市场(os-related audiovisualmarket),而微软和日本的个人电脑原始制造商是该市场中的横向竞争者。微软利用垄断杠杆的效应,将其操作系统市场支配力延伸到视听技术市场。日本个人电脑原始制造商作为视窗被许可人,除了使用视窗作为其制造的个人电脑的操作系统以外,别无选择[19]。这表明微软在相关市场拥有支配力。“不行使专利条款”排除了个人电脑原始制造商对微软原本可以主张的权利,微软无需支付任何使用费就可以在视窗中使用这些制造商享有专利权的视听技术。该条款减少了个人电脑原始制造商收回视听技术研发投资的机会,降低了视听技术市场的创新和竞争。因而,微软强迫日本个人电脑原始制造商接受“不行使专利条款”的行为应当构成非法垄断。
五、对救济措施规制效果的比较与评价
欧盟微软案件先后针对微软拒绝向竞争对手提供充分的软件兼容信息(拒绝供应)、将多媒体播放器与视窗非法捆绑以及ie浏览器与视窗非法捆绑的行为。美国地区法院杰克逊法官最初裁决所涉范围甚为广泛,但是经过上诉、重审,最终和解令只认定了微软独占交易和捆绑行为的非法性。韩国公平交易委员会只处理了微软的捆绑行为,但涉及到视窗多媒体服务、视窗多媒体播放器和视窗即时通讯三种软件产品与相应的视窗操作系统的捆绑。本案所述的日本微软案件仅以微软强迫日本个人电脑原始制造商接受“不行使专利条款”为调查对象,而没有涉及更具有代表性的其他滥用支配地位的行为。所以,下文主要对美国、欧盟和韩国的相应司法救济进行比较和评价。
(一)关于拒绝交易的救济
在美国和欧盟,拒绝交易都不是当然违法的垄断行为。美国的微软案件并没有认定微软有拒绝交易的非法行为,但是上诉法院最终批准的和解令却要求微软向竞争者提供兼容信息。在美国反垄断法中,出于预防性目的,救济可以是前瞻性的,因此最终和解令中采用了防止微软将来非法拒绝交易从而违反《谢尔曼法》的措施。关于服务器市场,美国法院责令微软以合理和非歧视之条件,向任何第三方提供在客户端电脑中安装的视窗操作系统产品中实现其他软件厂商服务器操作系统与视窗操作系统互操作或通信的任何协议规范,也就是兼容信息。该救济之目的就是为了提高微软竞争对手的服务器操作系统与使用视窗操作系统的个人电脑之间的兼容性。但是,法院并没有要求微软提供为实现兼容所必需的特定信息,即源代码。由于对这一点不满,马萨诸塞州和两个产业组织提出了上诉,但是被上诉法院驳回,理由是“一个披露要求非常广泛的前瞻性条款会损害微软创新的积极性。”[19]欧盟委员会要求微软向竞争者披露并许可它们使用为实现兼容所必需的完整和准确的通信协议规范,但是并没有要求微软提供自己实现该规范的源代码。这是因为,特别是在开源兼容标准确立以后,在不披露所有这些规范的实现方法(源代码)的情况下提供通信接口规范不仅是可能的,而且是行业中的普遍做法[10]。
比较而言,欧盟委员会对拒绝交易采取了与美国法院相同的救济方法,即要求微软提供竞争对手产品为与视窗操作系统兼容所必需的通信协议规范(即兼容信息),但是都没有要求微软提供实现通信的特定方法即源代码。这表明在要求微软提供的兼容信息的范围和程度上,欧盟委员会和美国的救济并无实质性差别。
(二)关于捆绑的救济
美国、欧盟、韩国的微软案件都涉及到了捆绑。捆绑的主要危害在于减少了竞争者的交易机会,限制了消费者对竞争性产品的自由选择[4]。所以,针对捆绑的司法救济应当以恢复竞争者的交易机会和消费者的选择自由为目的。
美国的最终和解令仅仅要求微软允许个人电脑原始制造商和最终用户删除对微软中间件的访问,删除的典型方式是隐藏这些中间件的桌面图标。然而,由于微软中间件的源代码已经与视窗的源代码融合在一起,几乎没有个人电脑原始制造商会忍痛割爱地隐藏微软的中间件,而去安装别的中间件[19]。所以,美国这种隐藏中间件桌面图标式的救济措施没有实质性地减轻对竞争者的损害,不能达到恢复竞争者交易机会和消费者选择自由之目的。
欧盟委员会也许是认识到仅仅要求隐藏微软中间件图标而对其源代码原封不动的救济对于竞争者没有实质意义。它在2004年的裁决中责令微软提供不包括视窗多媒体播放器的个人电脑视窗版本,这意味着视窗多媒体播放器的源代码必须从现有的视窗版本中删除。该委员会认为,“有了这样的救济,用户从操作系统和多媒体播放器捆绑中可得的利益将不会因此减少,同时选择不同的多媒体播放器的能力也得到恢复”[10]。这种强制改变版本的救济措施看起来比美国最终和解令要求的隐藏微软中间件图标更加有力。然而,这仍然不足以恢复有效的竞争和消费者的选择自由。其一,欧盟委员会并没有要求微软以不同的价格分别提供捆绑和未捆绑多媒体播放器的不同版本的视窗。如果非捆绑的视窗版本价格等于而不是低于捆绑的视窗版本,将很难有个人电脑原始制造商愿意购买前者。微软明确表态它将以原来的价格销售未捆绑多媒体播放器的视窗软件。世界上最大的计算机制造商戴尔公司表示将不会向顾客提供不包括多媒体播放器的视窗。而惠普公司声称尽管其顾客可以获得未捆绑多媒体播放器的视窗,但是预计需求非常有限[20]。其二,与微软相比,其竞争对手多媒体播放器软件的经销条件处于明显劣势。根据欧盟委员会的裁决,微软可以与个人电脑原始制造商协商将捆绑多媒体播放器的视窗版本安装在计算机中。这样一来,其他多媒体播放器厂商为了使其产品安装在视窗中,必须与个人电脑原始制造商谈判,从而增加分销费用。个人电脑原始制造商还可能会因为额外的技术支持和培训费用而丧失添加第二个多媒体播放器的积极性。因此,欧盟委员会强制改变版本的救济虽然比美国法院要求隐藏中间件图标的措施更加有力,但是实际上也不能彻底消除微软非法捆绑行为对竞争者造成的损害,从而真正地使消费者“选择不同的多媒体播放器的能力得到恢复”。
受到韩国公平交易委员会制裁的微软捆绑行为涉及到视窗多媒体服务、视窗多媒体播放器和视窗即时通讯三个软件与相应视窗操作系统的捆绑。关于视窗多媒体服务软件的捆绑,该委员会要求微软从视窗服务器操作系统中彻底删除其源代码,而且,微软不能以cd盘的形式与任何版本的视窗服务器操作系统一起提供视窗多媒体服务软件,不得在操作系统中设置下载该软件的链接,不得在未征得消费者、制造商或分销商直接同意的情况下默认安装视窗多媒体服务软件[16]。这样完全的软件分离措施比美国的隐藏软件图标和欧盟委员会的强制改变版本都更加有力,也是根除非法捆绑问题的较为简便的方法。然而,对于视窗多媒体播放器和视窗即时通讯软件,韩国公平交易委员会采取了类似于欧盟委员会强制改变版本的救济,即要求微软单独向市场提供彻底删除视窗多媒体播放器和视窗即时通讯软件源代码的视窗版本,同时允许微软继续提供包含这两个软件的视窗版本。像欧盟委员会一样,韩国公平交易委员会也没有要求微软就捆绑和非捆绑的视窗版本分别定价[21]。因此,这种救济仍然不可能完全杜绝微软非法捆绑行为之危害。
韩国公平贸易委员还要求微软在捆绑视窗多媒体播放器和视窗即时通讯软件的视窗中预装“多媒体播放器中心”和“即时通讯中心”软件,以帮助最终用户下载微软竞争对手的产品。诚然,通过这些辅软件,其他多媒体播放器和即时通讯软件厂商能够降低额外的经销费用,从而缓解分销劣势。然而,由于微软竞争对手的产品并没有默认安装在视窗中,消费者首先看到的是包含了视窗多媒体播放器和视窗即时通讯软件的电脑桌面环境,对此已经习以为常的消费者们下载微软竞争者产品的可能性显然很低。就像在浏览器市场那样,大多数消费者会对呈现给他们的第一个产品情有独钟[22]。因此,比起欧盟委员会的强制改变版本式救济,韩国公平交易委员会的救济措施虽然在更大程度上削弱了微软通过将其应用软件与视窗捆绑所获得的分销优势,但是也无法使得微软的竞争者享有与微软平等的竞争地位。
与欧盟2004年、韩国2006年的救济相比,欧盟委员会2009年的救济措施消除了几个重大缺陷。第一,欧盟2004年的救济允许包括和不包括多媒体播放器的两种视窗操作系统并行流通,韩国2006年的救济也同意捆绑和未捆绑视窗多媒体播放器和视窗即时通讯软件的两种视窗操作系统同时销售。这看似给了消费者选择自由,但是由于电脑制造商不情愿在电脑中安装微软竞争对手的应用软件,消费者的这种自由其实是形同虚设。这种情况在欧盟2009年的救济中则不存在。第二,根据欧盟2004年、韩国2006年的救济,如果消费者选择使用微软竞争对手的应用软件,需要自己去搜寻、下载。由于大部分消费者对应用软件并不熟悉以及消费惯性的作用,他们往往怠于改换所习惯的微软应用软件。而根据欧盟委员会2009年批准的微软承诺,微软须在视窗操作系统中设置方便用户选用浏览器的选择屏,该选择屏系通过升级视窗操作系统的方式自动地安装在用户的电脑上。用户只要点击选择屏中的“安装”按钮,即可在十二种最常用的浏览器中选择下载、安装所中意的浏览器。除此以外,用户将不需要采取任何其他措施[23]。这种救济将使得竞争对手的浏览器与微软自己的ie浏览器在最大程度上处于平等的竞争地位,并且使消费者拥有了有效的选择自由。因此,这是迄今为止最为彻底的解决应用软件与视窗操作系统捆绑的救济方案。
(三)关于日本微软案件的救济
本文所述的日本微软案件没有涉及微软的诸如拒绝交易、捆绑等更具有全球性、代表性的滥用支配地位行为,而只是认定微软强加给日本电脑制造商的“不行使专利条款”违反日本反垄断法中的禁止不公正交易行为之规定。这与美国、欧盟和韩国的裁决相比,对滥用支配地位的规制效果显然要小得多。
六、结语
通过上述比较研究可见,对于拒绝交易而言,美国法院和欧盟委员会采取的救济措施并无本质差别,均要求微软向其竞争者提供能使微软竞争者的中间件与相应的视窗操作系统相兼容的信息,但是都没有要求微软披露实现兼容的源代码。对于捆绑,无论是欧盟委员会要求微软从视窗中删除其多媒体播放器的源代码,还是韩国公平交易委员会要求删除微软多媒体播放器和视窗即时通讯软件的源代码,都比美国法院只要求删除微软中间件的桌面图标和在菜单中删除对中间件的访问显然更加有利于竞争。关于视窗多媒体服务软件与视窗服务器操作系统的捆绑,韩国公平交易委员会不仅要求从视窗中删除源代码,还禁止以任何方式与任何版本的视窗一起提供视窗多媒体服务软件,这又比那种允许捆绑中间件和未捆绑中间件的两种版本的视窗以相同价格并行流通的救济方式更有好处。韩国公平交易委员会责令微软在视窗中安装“多媒体播放器中心”和“即时通讯中心”等辅助软件之救济进一步缓解了微软竞争者的劣势地位。但是,在微软应用软件明显存在电脑之中的情况下,这种辅助软件仍然要求用户动手搜寻和下载微软竞争对手的应用软件才有可能摆脱对微软应用软件的依赖,这往往很难做到。相比而言,欧盟委员会2009要求在视窗操作系统中设置方便用户选用浏览器的选择屏,则可以使这些浏览器软件在同一条起跑线上展开竞争,这将在最大程度上有利于浏览器市场的自由竞争、产品创新,最终造福于消费者。
跨国企业业务的全球化是新经济的一个重要特征。随着全球性的市场支配企业在世界各地扩张业务,其不正当竞争行为的危害也具有了全球性特征。因此,确定跨国公司不正当竞争行为的恰当认定标准和司法救济是全球性主题,而国际性的比较研究有助于了解全球反垄断法的发展趋势,更好地应对新经济对反垄断法的挑战。而作为信息产业主角的软件产业的垄断与反垄断,呈现出不同于传统产业之特征,传统的反垄断分析可能不一定适合软件市场。我国的反垄断执法机构在这方面尚无经验。因此,我们应当加强软件产业国际反垄断执法的比较研究,为我国软件产业的反垄断执法寻求借鉴。然而,这一任务十分艰巨,本文仅涉及软件产业中滥用市场支配地位行为的认定和救济这一课题,权当抛砖引玉。
注释:
[1] lara j. glasgow& alicia n. vaz. beyondmicrosoft: antitrust, technology, and intellectual property [j]. 16 berkelytech. l. j. 525 (2001).
[2] sueannmota. hide itorunbundle it: a comparison of theantitrust investigationsagainstmicrosoft in theu. s. and the e.u. [j]. pierce l. rev., vo.l 3, no. 2 (2005). p. 190, p. 190, p. 183.
[3]maxschanzenbach. networkeffects andantitrustlaw: predation, affirmativedefenses, and thecase ofu. s. v. microsoft[j].2002 stan. tech. l. rev. 4., p.12, p.12, p.14.
[4]尚明.对企业滥用市场支配地位的反垄断法规制[m].北京:法律出版社, 2007. 37, 122, 37.
[5] w illiam h. page& john e. lopatka. themicrosoftcase: antitrust, hightechnology and consumerwelfare [m]. chicago:theuniversity ofchicago press, 2007. p. 38, p. 107, p. 54, p. 58, p. 36.
[6]王晓晔.竞争法学[m].北京:社会科学文献出版社, 2007. 295.
[7] findings 1999, 84 f. supp. 2d at29 (finding 31).
[8] jefferson parishhosp. distno. 2 v. hyde, 466 u. s. 2. pp. 12-18.
[9] d. c. circuit2001, 253 f. 3d. pp. 89-94, p. 49.
[10] comp/c-3/37. 792microsoft. p. 300, p. 146, p. 274, p. 207, p. 210, p. 272, p. 154, p. 284.
[11] antitrust: commission imposes 899 million penalty onmicrosoft fornon-compliancewithmarch 2004 decision [eb/ol]. ht-tp: //europa. eu/rapid/pressreleasesaction. do? reference = ip/08/318&format = html&aged = 1&language =en&guilanguage=en. 2008-06-01.
[12] antitrust: commission acceptsmicrosoft commitments to give users browser choice[eb/ol]. http: //europa. eu/rapid/press-releasesaction. do? reference=ip/09/1941&format=html&aged=0&language=en. 2009-12-18.
[13] judgment in case 27/76 united brands v commission [1978] e. c.r. 207, at paragraph 65.转引自comp/c-3/37. 792microsoft, p. 118.
[14] idc: worldwide client and serveroperatingenvironmentsforecas,t 2002-2007.转引自comp/c-3/37.792microsof,t p.119.
[15] antitrust: commission acceptsmicrosoft commitments to give users browser choice [eb/ol]. http: //europa. eu/rapid/press-releasesaction. do?reference=memo/09/558&format=html&aged=0&language=en&guilanguage=en. 2009-12-18.
[16] holding of2002 kyung-chok 0453. art. 8,§a; art. 1,§b.
[17] microsoft appeals korea fair trade commission decision [eb/ol]. http: // microsoft. com /presspass/press/2006/mar06/03-26kftcappealpr.mspx. 2008-04-19.
[18]微软放弃韩国反托拉斯裁决上诉,不能预装msn[eb/ol]. http: //news. csdn. net/n/20071018/109695. htm.l 2008-04-19.
[19] toshiakitakigawa. a comparativeanalysis ofu. s., eu, and japanesemicrosoftcases [j]. theantitrustbulletin (2005),vo.l 50, no. 2. p. 261, p. 264, pp. 249-250, p. 257.
[20] josh brown. eus' microsoftorderhasskeptics—striped-downw indowswont' beoffered bydel;l hp seeslittledemand [n].thewashington st. j., 2005-04-01.
[21] sejin kim. the korea fairtrade commission s' decision onmicrosofts' tying practice: the second-bestremedy forharmcompetitors [j]. pacific rim law& policy journal (2007), vol. 16, no. 2, p. 385.
目前,国内车载电子设备市场极度缺乏多媒体综合软件,该软件能有效地将车载导航、影音图像、倒车雷达、娱乐互动等多个功能整合,方便乘客和车主的使用[1]。将多种娱乐和使用功能整合统一,使得设备简洁美观,同时降低了重复安装的成本和投入。可以极大地减少车内空间消耗,降低整车油耗[2]。多媒体共屏展示也能保证驾驶员的操作强度,保证行车安全。因此,将行车信息、娱乐互动、交流通信、车载导航等功能集于一体的嵌入式综合媒体系统符合市场和环境的发展要求[3]。
1 车载嵌入式播放器总体设计
出于应用领域、自带资源、可扩展资源、功耗等多方面的考虑,选择Linux 内核为嵌入式多媒体播放器的操作系统核心。将多媒体技术应用于嵌入式系统中面临着诸多的技术难题,嵌入式设备的特点决定了其资源通常非常有限,而有限的资源意味着需要进行多方面技术的优化[4]。
首先,嵌入式设备采用蓄电池提供能源,所以对系统的功耗要求比较严格;第二,嵌入式设备上通常没有实用的图像加速器,声卡等硬件加速设备的支持;第三,不存在DirectX,DirectShow等高层多媒体的支持。基于上述考虑,有必要设计适用于嵌入式应用的嵌入式处理器,嵌入式操作系统。根据嵌入式多媒体播放器的功能需求及技术特点,通常将嵌入式多媒体播放器的体系结构划分为硬件层、内核层和应用层,具体如图1所示。
系统的硬件层的硬件平台包括嵌入式微处理器和外围设备,通过合理选型和匹配可以完成满意的底层硬件组合。本系统的嵌入式MCU使用三星公司的S3C2410高速微处理器,S3C2410高速微处理器作为整个硬件系统的控制核心,接收、处理相关数据并实时发出控制指令。与其配合的系统外围设备是完成系统功能的必要组建和模块,涉及系统存储模块FLASH和E2PROM,LCD输出单元、主控外围电路和音频输出模块等。
软件部分包含应用层和内核层两个部分。应用层包含嵌入式Linux操作系统和硬件驱动程序,包括BootLoader, Linux内核,根文件系统3部分。应用层包含嵌入式用户应用程序、音频解码器和GUI。本系统选择嵌入式Linux操作系统作为操作系统[5]。
2 操作系统平台的构建
内核是整个Linux系统的核心,根据实际情况针对内核的配置进行选择,本质上指根据开发系统的功能需求对已有的操作系统进行选择,保留开发需求的系统单元,删除不需要的模块单元。在本系统中,嵌入式Linux内核选择ARM?Linux内核。Linux内核的配置系统由Makefile、配置文件(config.in)、配置工具组成[6]。完成内核的数据参数配置后,不能将程序数据直接下载到嵌入式系统中进行调试运行,因为此时数据仍然以源代码的形式存在。此时,为了生成最终能在嵌入式操作系统上运行的可执行代码[7],需要进一步对内核进行编译。
过程结束后,Image和zImage两个内核映像文件会在arch/arm/boot目录下生成,zImage为压缩后的映像文件,Image为正常大小的映像文件。得到内核映像文件后,首先在开发板使用的宿主机(PC)上建立一个tftp服务,使用DNW工具,在开发板上电时按任意键进入U?Boot提示符,执行以下命令:
在嵌入式操作系统正常运行时,需要使用根文件系统支持各种功能[8],在内核刚启动运行时根文件系统需要挂载起来用于支持访问外部设备,同时完成内核模块应用程序的装载和运行,避免出现Kernelpanic的情况,防止系统内核在启动时没有根文件的支持。在实际应用中,嵌入式操作系统使用动态随机存取器、同步动态随机存取器、FLASH存储器作为存储设备[9]。基于存储设备,使用JFFS2,YAFFS,CRAMFS,ROMFS,RAMFS等常见系统作为存储设备的嵌入式文件系统。在本系统中,选择NANDFLASH作为硬件提案所使用的存储芯片,选用NANDFLASH上使用比较广泛的Cramfs文件系统作为嵌入式根文件系统。
嵌入式Linux 操作系统的启动流程如图2所示。系统启动流程包括六个步骤:
(1) 系统复位,从地址0x00开始执行,进入步骤(2);
(2) 启动Bootloader模块,进入步骤(3);
(3) 判断系统是否进入Linux,启动Linux内核映像,不启动则进入U?boot的命令操作环境,如果启动内核,进入步骤(4);
(4) 系统从NANDFLASH加载内核到内存中,完成对硬件设备的初始化工作,进入步骤(5);
(5) 挂载根文件系统,执行init进程,并从/etc/inittab取得配置文件,进入步骤(6);
(6) 提示执行用户应用程序或用户登录信息。
3 视频播放器软件设计
3.1 基于Mplayer实现多媒体播放器
Mplayer是一个Linux下的电影播放器(也能运行在许多其他的Unices和非X86的CPU上)。Mplayer的逻辑结构可以分为四个层次,即:输入层、分流层、解码层和输出层,其结构如图3所示。
本文选择Mplayer作为后台设计播放软件。利用Qt/E为软件平台设计GUI图形控制界面,对多媒体播放器的播放过程进行控制。由于条件限制,本实验在宿主机上编译并安装了Mplayer,通过Qt设计基于X86的多媒体播放器。
3.2 软件总体模块设计
由于Qt/Embedded工具可以绕过X Windows System协议客户端库,直接读/写帧缓存的FrameBuffer的数据信息,因此实现Qt类库对帧缓存的直接读/写操作,使用基于Qt/Embedded的应用程序可以完成。本系统使用嵌入式Linux作为操作系统,通过Qt的图形平台和函数库完成嵌入式多媒体综合播放。多媒体播放系统采用模块化设计思想,其架构如图4所示。
嵌入式多媒体播放器包含五个主要的模块:
(1) I/O(输入/输出模块):用于多媒体文件的读入和输出。
(2) UI(用户界面单元):用户界面单元的作用是方便用户操作嵌入式媒体播放器的各项功能,提供良好的人机操作互动界面和使用体验。
(3) 插件接口单元:读入多媒体数据(通过输入插件获取I/O模块发送过来的数据)、调用Mplayer对文件进行解码播放、文件总的时间长度、编码类型、比特率等信息的获取、暂停、快进、快退、停止、输出、输入等的动作,输入动作具体指将输出插件完成解码的数据信息传送到系统输出输入单元的过程。
(4) Mplayer解码单元:为了对不同类型的多媒体文件进行解码操作,系统选择的Mplayer解码单元由分离器、音视频解码器等部分组成。
(5) GUI单元:为了方便快捷的产生读/写FrameBuffer以及用户界面, GUI单元通过使用Qt/E嵌入式工具作为底层图形库。
软件总体模块中各单元之间的相互连接关系是:通过输入/输出单元读入音视频信息数据,用户界面单元在接收到播放信息指令后,调用插件模块相应的函数,产生相应的信号,调用Mplayer完成对多媒体文件的解码,完成解码之后将数据送到I/O模块输出。
3.3 控制流程设计
主程序设计流程如图5所示。当从菜单项打开视频文件时会触发triggered()信号,执行slotopen()槽函数,调用Qfiledialog的getOpenFileName()函数从对话框中选择要播放的视频文件。系统首先判断文件格式是否为*.avi格式,如果是,则创建一个Qprocess进程,通过该进程调用Mplayer后台对视频文件进行播放,并在指定区域进行输出显示。
4 交互式图形界面设计
QImage类提供了一种与硬件访问无关的图片存储方式。QPainter则主要用来完成绘图事件。QPushButton提供了图形用户界面最长用到的命令按钮部件。此GUI交互界面利用Qt Designer以QMainWindow类为基础设计了主框架,包括菜单栏以及状态栏等;同时,以QWidget类为基础创建了一个对视频播放进行控制的插件接口,并通过合理的布局与主窗体组合在一起。
在指定目录打开avi格式视频文件,运行效果如图7所示。在播放过程中,通过状态栏实时显示当前视频文件的播放时间。通过界面下方的按钮对播放器的播放过程进行音量调节、暂停、快进、快退、停止等控制,基本达到了预期的效果。打开视频文件时,终端开始输出文件的加载路径,开始读取并输出ANS_TIME_POSITION(视频播放时间)参数值,在Qt与Mplayer之间完成了通信。
当在控制台实施各种控制操作时,在终端输出执行的操作动作并发送该信号,调用相应的槽函数完成对视频播放的控制动作。
以上是在主机上运行播放程序执行播放控制的过程。在主机上运行的Qt程序是基于X结构的,而在实际的嵌入式开发中,需要直接通过FrameBuffer进行显示。由于条件限制及其他因素,通过qvfb模拟程序在嵌入式开发板中运行的情况,如图8所示。
从图8中可以看出,在qvfb中运行该程序时,菜单项的中文显示出现了方块型的乱码,这说明菜单项已经得到了识别,只是qtopia中缺少相应的中文字体库,在默认的情况下,qvfb会调用字体库中的默认字体,这样在显示中文时会出现如上问题。可以在网络上下载相应的中文字体库并拷贝到Trolltech/Qtopiacore?opensource?4.3.0/lib/fonts中。
5结 论
本文通过对车载播放系统的设计,根据车载嵌入式多媒体播放器的功能需求和技术特点,选择一款合适的嵌入式处理器,在此平台上构建了功能完整的嵌入式Linux系统开发平台。经过对Qt的GUI设计的研究,以Qt的基础类库为前端设计嵌入式多媒体播放器的前端控制图形界面。通过创建QProcess进程,实现了对播放过程的控制,与后台Mplayer进行通信,实时读取并显示播放信息,并在指定窗口对音视频码流进行输出显示。通过测试表明,本系统达到了应用于车载音视频播放的要求,对相关开发具有重要参考价值。