在JM代码中,多次遇到img->quad这个东西,而在官方代码中只给出了一句说明:

我开始看了好几遍都没有看懂,然后看到后面有snr,所以想应该和snr有关吧.

然后再代码中寻找snr,发现jm代码中有一个函数,然后就往下看,忽然发现这儿

在老毕的书上有

我们可以对比上面的公式发现,令n=8,我们可以得出代码中的65025=(2^8-1)=255^2,所以主要是MSE的计算,而MSE是均方误差,所以可以推断出diff_y应该是误差的平方,

我们看看diff_y的计算,

联系一下quad的含义,我突然感觉有些明白原代码注释中的"Array containing square values"的含义了.接着看看quad的赋值:

看511这个数字,多么好的一个数字,它的出现和512一样,256x2=512.

所以,我们可以知道这儿为quad数组分配了511个int空间大小:-255~0~255,正好511个,

看第二个红框,这一句就将指针quad移到了255的位置,可以看下图

箭头所指的位置就是现在指针的位置.我们再看一下for循环内部,在之前我看这一段代码很是看不明白,为什么数组的下标会使用负数,现在明白什么意思了.所以for循环内部的即是将下标对应位置存储为其平方,平方其实就是提前将MSE中所需要的误差平方计算出来了,等真要计算误差平方和的时候,只需要进行查表就可以了,可以提高速度.

再看这一句红框内的其实是一个整数,因为这是原图像像素和重建图像像素之差,所以值可以为负,也可以为正,这样通过这一句就直接得到了对应残差的平方.所以到此为止,我终于明白了quad数组的用意了,同时也明白了snr在代码中的实现.

8.6中关于PSNR(峰值信噪比), img->quad的解释的更多相关文章

  1. MATLAB 均方根误差MSE、两图像的信噪比SNR、峰值信噪比PSNR、结构相似性SSIM

    今天的作业是求两幅图像的MSE.SNR.PSNR.SSIM.代码如下: clc; close all; X = imread('q1.tif');% 读取图像 Y=imread('q2.tif'); ...

  2. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

  3. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释 linux中shell变量$#,$@,$0,$1,$2的含义解释:  变量说明:  $$  Shell本身的PID(ProcessID ...

  4. lucene 中关于Store.YES 关于Store.NO的解释

    总算搞明白 lucene 中关于Store.YES  关于Store.NO的解释了 一直对Lucene Store.YES不太理解,网上多数的说法是存储字段,NO为不存储. 这样的解释有点郁闷:字面意 ...

  5. 【转】linux中shell变量$#,$@,$0,$1,$2的含义解释

    原文网址:http://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html linux中shell变量$#,$@,$0,$1,$2的含义解释: ...

  6. 【Shell】linux中shell变量$#,$@,$0,$1,$2的含义解释 && set 关键字使用

    linux中shell变量$#,$@,$0,$1,$2的含义解释   摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linu ...

  7. 浅谈linux中shell变量$#,$@,$0,$1,$2,$?的含义解释

    浅谈linux中shell变量$#,$@,$0,$1,$2,$?的含义解释 下面小编就为大家带来一篇浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释.小编觉得挺不错的,现在就分享给 ...

  8. .net开发过程中Bin目录下面几种文件格式的解释

    在.NET开发中,我们经常会在bin目录下面看到这些类型的文件: .pdb..xsd..vshost.exe..exe..exe.config..vshost.exe.config 项目发布的时候,往 ...

  9. Andriod中绘(画)图----Canvas的使用具体解释

    转载请注明出处:http://blog.csdn.net/qinjuning     因为在网络上找到关于Canvas的使用都比較抽象,或许是我的逻辑思维不太好吧,总是感觉理解起来比較困难, 尤其是对 ...

随机推荐

  1. ORACLE 视图的 with check option

    ORACLE 视图的 with check option 我们来看下面的例子: create or replace view testview as select empno,ename from e ...

  2. linux中萌翻了的cowsay命令

    想要让你的linux萌翻吗? 首先需要安装cowsay软件 命令如下:sudo apt-get update;sudo apt-get install cowsay 然后对其输入命令,默认情况下,动物 ...

  3. 细讲encodeURI和encodeURIComponent以及escape的区别与应用

    首先,我们都知道这三个东西都是用来编码的 先来说encodeURI()和encodeURIComponent() 这两个是在转换url时候用来编码解码用的. 有编码就会有解码, 解码就是decodeU ...

  4. 1218.2——property关键字

    由于我们定义的成员变量是私有的,所有外部是无法访问的,为了能够访问我们写set和get方法 但是由于代码量过于复杂冗长,引入了@property (声明)和 @synthesize(实现) 后来又简化 ...

  5. Oracle数据库之间数据同步

    这段时间负责某个项目开发的数据库管理工作,这个项目中开发库与测试数据库分离,其中某些系统表数据与基础资料数据经常需要进行同步,为方便完成指定数据表的同步操作,可以采用dblink与merge结合的方法 ...

  6. windows下配置Nginx+Mysql+Php7

    环境:Windows10 mysql-5.6.24-win32解压缩版    nginx-1.8.0    php7 1.Mysql安装 下载压缩文件之后解压缩至相应目录(我的目录是G:\wnmp\m ...

  7. 【转】对memcached使用的总结和使用场景

    原文连接:http://blog.csdn.net/ajun_studio/article/details/6745791# 原文作者:halfMe 转载注明以上信息! 1.memcached是什么 ...

  8. sqlserver 2000新建sysadmin角色

    新建登录:sp_addlogin 'netcafe','pubwin'  netcafe是用户名,pubwin是密码,下面是msdn官方格式: sp_addlogin [ @loginame = ] ...

  9. 【转】iOS代码规范

    原文地址: http://www.cocoachina.com/ios/20150908/13335.html 简介: 本 文整理自Apple文档<Coding Guidelines for C ...

  10. linux服务器之间拷贝文件和文件夹

    传输文件用法:scp 本机文件目录 远程服务器用户名@服务器IP:/服务器目录 示例: