初涉PSNR计算工具

自从加入数字媒体解决方案团队,也了解了越来越多的音视频相关专业知识,最近团队考虑要不要使用GPU进行编解码,博士正好在忙,所以要我来进行测评,作为一个在音视频领域毫无背景知识的小白,居然连PSNR都不知道,真是感到深深的内疚,特此科普一下。

PSNR全称是Peak Signal to Noise Ratio,中文叫峰值信噪比,是一个表示信号最大可能功率和影响它的表示精度的破坏性噪声功率的比值的工程术语,最常用的全参考视频质量评价方法之一,一般取值范围为20-40,值越大,视频质量越好。PSNR有固定的公式,对于专业人士来说写其实并不难计算,但是对于我这样一直搞工程的人却是麻烦至极,最简单的当然莫过于直接找工具计算了,目前用过的靠谱工具有以下几个,可以根据自己的需求选取。

EvalVid – A Video Quality Evaluation Tool-set

Evalvid是一个开源的对在真实或模拟的网络里传输的视频进行质量评价的框架和工具集。其中有psnr可执行文件可以计算psnr,具体使用方法如下:

psnr x y <YUV format> <src.yuv> <dst.yuv> [multiplex] [ssim]
x frame width
y frame height
YUV format 420, 422, etc.
src.yuv source video
dst.yuv distorted video
[multiplex] optional
[ssim] optional: calculate structural similarity instead of PSNR

ffmpeg

ffmpeg应该是做音视频相关研究的同学入门第一课就会知道的工具了吧,也应该电脑上都有的,使用起来非常方便,我之前也只是用ffmpeg进行编解码的工作,却不知道他竟然也可以直接求PSNR,一用之下,果然非常方便。

ffmpeg -i input_video.mp4 -i reference_video.mp4 -filter_complex “psnr” “output_video.mp4”

  • 问题:不同对比分辨率不同的视频的PSNR

qpsr

这个工具是博士推荐的,因为有一次测评需要比较两个不同分辨率视频的PSNR,苦苦搜索无果,只好求助了博士,推荐了这个工具,这个工具蛮好的,计算PSNR的时候还会顺便计算下视频的真实比特率,倒是省去了不少麻烦。

./qpsnr/qpsnr -a avg_psnr -r reference_video.mp4 input_video1.mp4 input_video2.mp4 …

VS2013 New Feature: Debug Managed Memory

发现VS2013一个不错的新功能:打开dump文件,Actions里面多了一行,Debug Managed Memory,还可以对比两个不同时间的dump文件,分析到底是谁占用的Memory发生了变化。分析Managed Memory的需求比Native Memory小,没有太多工具可以使用,所以VS2013的这个新功能还是蛮有用处的,赞一个!

顺便附赠三个链接以供方便学习使用:

腾讯与360大战

致广大QQ用户的一封信

亲爱的QQ用户:

当您看到这封信的时候,我们刚刚作出了一个非常艰难的决定。在360公司停止对QQ进行外挂侵犯和恶意诋毁之前,我们决定将在装有360软件的电脑上停止运行QQ软件。我们深知这样会给您造成一定的不便,我们诚恳地向您致歉。同时也把作出这一决定的原因写在下面,盼望得到您的理解和支持。

一、保障您的QQ帐户安全

近期360强制推广并胁迫用户安装非法外挂“扣扣保镖”。该软件劫持了QQ的安全模块,导致了QQ失去相关功能。在360软件运行环境下,我们无法保障您的QQ帐户安全。

二、对没有道德底线的行为说不

360屡屡制造“QQ侵犯用户隐私”的谣言,对QQ的安全功能进行恶意污蔑。事实上QQ安全模块绝没有进行任何用户隐私数据的扫描、监控,更绝对没有上传用户数据。目前我们已经将QQ安全模块代码交由第三方机构检测,以证明我们的清白。

更甚的是,360作为一家互联网安全公司,竟推出外挂软件,公然站到了“安全”的对立面,对其他公司的软件进行劫持和控制。这些都是没有道德底线的行为。

Continue reading

Ubuntu更新+编译环境+中文输入法

前几天终于耐不住寂寞,把台式机的XP换成了Win 7,也顺便将Ubuntu升级到了10.10。重装系统什么的最讨厌了,还要装各种软件,装软件也就罢了,还要进行各种升级,各种安装,各种配置,真是各种麻烦。

由于某次直接从9.04在线升级到9.10时出现了可怕的问题,搞了好久才恢复好,所以现在Ubuntu版本升级都是采取重装的方式。装好了首先要进行update,不知道是实验室网速的问题还是10.10源太少的问题,总之那个速度和乌龟爬没有太大区别。

由于10.10现在好像还没有太好用的源,所以直接采取寻最优源的方法。我发现好多人是不知道怎么寻最优源的,其实很简单,只需以下几步。

1) 找到System->Administration->Update Manager,然后点击Settings打开Software Sources,选择Ubuntu Software选项。

2)  在Download from框中选择Other,进入下图所示对话框,然后点击Select Best Server,等待系统帮忙选好了之后再点Choose Server确认就好了。

Continue reading

webqq2.0使用体验

由于项目需要,最近一直在linux操作系统,由于个人需要,最近一直在使用webqq。由于qq for linux不好用,时常自动关闭,用户体验也做的不好,反而是webqq更加常用。

webqq2.0华丽上线,确实给人小小的震撼,很多评论都在说“TX要出操作系统了吗”,这个架势确实有点操作系统的感觉了。浏览网页、腾讯微博、QQ地图、糗事百科、股票、天气、搜索,各种应用,几乎可以满足所有需求;右下方设有按钮点击直接打开QQ云输入法,正好解决了linux自带输入法在网页中不时出现异常的问题;更值得一提的是可以从应用中直接打开Gmail,无疑讨好了Gmail的广大粉丝。

能够用到如此友好而强大的webqq是linux用户的幸福,腾讯在这一点确实做的不错,虽然仍存在些问题,但是现在是测试版嘛,相信正式版应该会更加完美的。

1. 以前的webqq每当收到新的消息时,网页的标题会出现提示,那么即使你当时在浏览其他的网页也会即时发现有新消息,但是webqq2.0没有提示,不知道是测试版的缘故,还是webqq真的想做成“网页操作系统”,我只想说大多数人还是仅仅把webqq打开就去干别的了,不可能一直盯着那个页面,所以标题栏的提示还是应该有的。

2. 今天登webqq2.0可能是长时间未操作的缘故,居然自动下线了,其实下线也就罢了,关键是没有任何提示,而且状态也还是显示在线,只是发送消息发不出去,无语,只要退出了重新登一遍。

今天用了一上午,目前就发现这两个问题,总体还是非常不错的,TX果然V5,呵呵。

最后,给个门支持一下:web2.qq.com

制作wp主题遇到问题汇总

从零开始制作WP主题,过程中发现了许多问题,有些解决了,有些没解决,在这里汇总下,以备继续学习。

1.火狐浏览器下的div嵌套问题(父div无法自适应高度)

为了方便控制主题的整体宽度以及颜色等,我定义了一个content父div用来包含contain和sidebar两个子div,还有一个wrapper父div用来包含header、content、footer等子div。结果发现header等子div的背景颜色只能随着body的颜色变化,而不能随着wrapper和content的颜色变化,这在理论上是不应该的。

首先我想到的是我的div封口有问题,但是经过仔细检查,没有发现任何错误,而且我使用的火狐浏览器的Firebug也显示定义的warpper只包含了header部分而没有包含其余几个div。正当心灰意冷时突然想到可以用IE查看一下,打开IE,惊喜的发现是自己想要的效果。但是为什么在火狐中就不行呢,一开始我认为是火狐浏览器不支持div嵌套的问题,随即上网查了下,发现其实是火狐浏览器中父div的高度不能根据子div自动变化的问题。

这个问题是有很多解决方案的,对于content作为父div包含contain和sidebar的情况比较简单,只需将三个div的float都设为left就可以了。这时父div的高度就会随着左右两个子div的高度变化而变化,甚至可以无限拉长,完美解决了需要左右两div高度不同但风格相同的问题。

但是对于wrapper作为父div包含header、container、sidebar、footer等子div的情况,就要稍微麻烦一些。因为wrapper一般都是相对屏幕居中的,不能将float设为left,那该怎么办呢?不用担心,这时只需在父div的封口</div>之前添加一个高度为1的空格就可以了。 Continue reading

wp主题制作中

由于网上寻找的wp主题没有完全满意的,决定自己制作一个。看了看教程,借了本CSS,结果发现自己做出来比下载的那些还不满意,杯具啊。

再加上完全没有美工天赋,只能做成现在这个非常简单的样子。虽然我个人是偏好简约风格的,但是这个真的只能称之为简单。

先放这里以示纪念,然后继续改进吧,欢迎看不下去的同学提意见,呵呵O(∩_∩)O~~ Continue reading

JDK+MyEclipse+Tomcat的配置详解(图)

今天换了新机器,又重新配置了一遍所需的Java环境,找了好久才找到上次用的比较详细的配置方法,折腾的厉害。趁着现在还比较清醒,记录一下,为自己也为大家提供些方便。

1. 安装配置JDK

为了管理方便,此处安装jdk1.6.0_10到C:\Program Files\Java文件夹下,下面进行环境变量的配置。
右键我的电脑—属性—高级—环境变量:

(1)首先,为了指定命令搜索路径,在系统变量的PATH变量中增加C:\Program Files\Java\jdk1.6.0_10\bin;。由于PATH变量中原本含有许多项,所以只需在最前面添加上述路径即可,注意末尾用分号隔开。

(2)然后,为了指定类搜索路径,在系统变量中新建JAVA_HOME变量,变量名JAVA_HOME,变量值为C:\Program Files\Java\jdk1.6.0_10。 Continue reading