P.S. 在PDAFANS和HI-PDA上翻了很多遍,没有发现类似的帖子。如果这篇文不小心成了火星,还请大家原谅:)
相信很多买了东芝G900/SOFTBANK X01T的朋友都对其视频播放能力颇有微词(低分的视频需要放大,打开平滑,卡~~;高清的视频码率太高,CPU吃不住,卡~~),总之是高不成低不就。很多朋友被迫采用RawBuffer或者DirectDraw Blit并且仅仅开启50%平滑,虽然视频勉强流畅,但满屏的锯齿和不时出现的“刷新”效果让不少人最终打消了视频播放的念头。
经过本人一段时间的尝试,发现在SoftBank X01T的WM6.1 ROM之后,Goforce 5500显卡的一个特性被悄悄的启用了:Overlay。凭借这个特性,可以实现:
1、硬件加速的全屏幕平滑视频缩放
2、支持V-Sync,不再出现“刷新”的效果
换言之,终于可以在G900上享受全屏幕、硬件平滑缩放、!非常流畅!的视频了。OK,下面是具体的操作步骤(以CorePlayer为例):
1、重置色彩(硬件Overlay采用的是硬件色彩,默认的色调在GoForce 5500上会产生严重的色偏)。
同时,在缩放里选择"Fit Best",这样就可以欣赏全屏幕视频了
2、设置视频驱动为DirectDraw,关闭平滑(平滑由GoForce 5500代劳,CPU终于得以解放!)
3、在DirectDraw设置中,第一项随意;第二第三项不要勾上;第四项选择RGB。
注:第一项表示是否用某种颜色作为Overlay的Mask,选中Coreplayer会采用深棕色作为mask;否则会采用黑色;此选项随意选择
第二项表示是否采用Blit(位块传送),选中则使用Blit,否则使用Overlay。因为DDrawCE不支持BLTFX,BLIT目前都是软件加速。此项不选
第三项表示在使用Blit的时候是否采用设备缩放,选中此项之后会用CE默认的缩放代码,效率非常低下!此项不选
第四项表示在Overlay的时候DirectDraw Surface使用何种颜色格式,经过测试YV12为软件加速,YUY和RGB为硬件加速,YUY的性能最好(因为不需要做颜色空间转换)但驱动存在缺陷经常会出现花屏,因此此处推荐选择RGB
现在,打开视频文件,尽情享受吧
如果按照上面的步骤做了,但是机器出现了花屏或者黑屏,请看本文结尾
--------------------------------------
OK,效果究竟如何,还看测试结果
测试片段是PMCG压制的PSP版《哈利波特与火焰杯》,码率在800kpbs左右
采用Direct Draw Overlay驱动全屏幕播放的结果。198%,这个数据已经接近了我的ATOM的性能
采用位块传送(关闭平滑),全屏幕播放的测试结果
采用RawBuffer,关闭平滑的测试结果,也是116%左右,就不贴了
最后是采用RawBuffer,开启平滑的测试结果,
79.77%,有点可怜
结论非常明显,Overlay充分发挥了GoForce 5500视频性能,绝对优势拔得头筹
--------------------------------------------
OK,既然Overlay模式的性能如此出众,那么他的画质如何呢?请看画质测试
测试片段同样来自哈利波特与火焰杯,对比点为同帧内的字幕与人物的面部,从左至右分别为RawFrameBuffer, Smooth=100%; RawFrameBuffer, Smooth=50%; RawFrameBuffer, Smooth=Off和Overlay, Smooth=Off,图片均使用PNG无损格式保存,无细节丢失。
结论非常明显,Overlay提供了与CorePlayer Smooth=100%试相近的缩放质量
-----------------------------------------------------
Overlay模式虽好,但也有其局限性:
Q:为何某些视频会花屏?
A:G900的DirectDraw驱动似乎存在缺陷,
目前而言Overlay仅仅支持宽度和高度都是8的整数倍的影片的播放(99%的视频都遵循这一准则),如果出现全屏幕花屏,请先计算一下视频的分辨率是否符合上述要求。希望后续版本的DirectDraw驱动能去除此限制
Q:为何全屏幕播放时会出现细小毛刺?
A:驱动缺陷,解决方法是快速暂停两三次,就可以恢复正常。
Q:为何使用一段时间之后播放会花屏?
A:软启,某些ROM存在此bug。
Q:为何我按照顶楼的方法设置了CorePlayer,但是在全屏幕播放的时候黑屏或者死机?
A:似乎
并非所有的ROM都包含Overlay支持,请先尝试软启,如果无法解决则说明ROM不支持Overlay。本人目前使用的19202大宋体版支持Overlay。
最后附上测试片段