完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
前言
Pixel Shader是现代显卡GPU的编程语言,可以用于对屏幕输出图像里的每个象素点进行精确的色彩调整。大型三维游戏里面大量采用了Pixel Shader和它的伙伴,Vertex Shader,用于控制各种复杂的场景。 视频播放通常被认为是2D应用,实际上现在的视频播放已经是部分借助于显卡的3D渲染管线来实现的(VMR7、VMR9等渲染模式),使用Pixel Shader可以对最终输出的视频图像进行进一步修正和增强,达到更佳的画面质量,也更充分的发挥显卡(尤其是高端显卡)被闲置的能力。 背景介绍:HiVi烧友已经开始广泛使用ffdshow里面提供的倍线锐化等后期处理滤镜于播放DVD, 尤其是使用投影仪输出时。这些滤镜能够大幅提升DVD的欣赏品质,达到接近HDTV的效果。但是,同样的方式却不能用于HDTV播放上,原因很简单,因为HDTV的分辨率大大提高,做同样的后期处理,对CPU的要求高了很多,再加上视频解码处理也需要由CPU来负责完成(硬件解码的限制),现有的CPU基本无法胜任这样的工作,导致无法流畅播放。而与此同时,显卡GPU却属于基本闲置状态。 软硬件需求 硬件:支持PS1.4或更高的显卡,N卡为FX5200以上,A卡为8500以上(不含9100)。 至于CPU等,不太好说,但绝对不支持低端系统。视频特效无止境,硬件越高级越好 软件X9.0, 播放软件需要支持Pixel Shader编程。已知的有Media Player Classic 6.4.8.4 或KMPlayer。但KMPlayer尚有点问题,MPC是目前唯一可用的播放器。 MPC里面使用Shader的办法 1. MPC6.4.8.4播放设置调整,修改渲染器设置。除此以外,你还要把解码器等滤镜进行相应调整,在此就不再赘述。试验一下播放是否正常 2. 启动MPC里面的Shader编辑程序 3. 输入shader程序并保存为你喜欢的名字,注意屏幕下方的提示,必须成功才有用。图片里的程序仅为示例。 4. 再次播放影片,并使用你刚才输入的shader程序,看看有什么效果 以下列举为可用的shader程序 消除1080i的白条,要求ps1.4 sampler s0 : register(s0); float4 p0 : register(c0); #define height (p0[1]) float4 main(float2 tex : TEXCOORD0) : COLOR { float h = 1080.0f/1088.0f; float4 pixel = tex2D(s0,tex); float4 fill = float4(0,0,0,0); if(height == 1088 && tex.y 》=h ) pixel = fill; return pixel; } xsharpen滤镜(完整版),适用于支持ps3.0的显卡,如NVIDIA 6xxx系列卡。 对于ATI X系列卡等也许也可以用 可以自行修改strength/threshold的值 sampler2D s0 : register(s0); float4 p0 : register(c0); #define width (p0[0]) #define height (p0[1]) float luma(float4 color) { float4 lum = {0.21484375, 0.7109375, 0.07421875, 0}; return dot(color, lum); } float4 main(float2 tex : TEXCOORD0) : COLOR0 { float strength = 1.0f; //min 0.0f, max 1.0f float threshold = 1.0f; //min 0.0f, max 1.0f float4 pmin, pmax,porg; float lmin = 1.0f, lmax = 0.0f,lorg; for(int i=-1; i lmax) { lmax = lcur; pmax = pcur; } if(i==0 && j==0) { porg = pcur;lorg=lcur;} } } if(lorg-lmin 》 lmax-lorg) { if(lmax-lorg 《 threshold) return pmax*strength+porg*(1-strength); else return porg; } else { if(lorg-lmin 《 threshold) return pmin*strength+porg*(1-strength); else return porg; } } |
|
|
|
只有小组成员才能发言,加入小组>>
793 浏览 0 评论
1152 浏览 1 评论
2528 浏览 5 评论
2861 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2711 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1071浏览 3评论
194浏览 2评论
456浏览 2评论
369浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
454浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 22:56 , Processed in 0.978066 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号