分享

什么是直方图?(4)

 悟痴 2013-11-16
 什么是直方图?(4)

高速缓存级别(Cache level)

为什么要用缓存(Cache)?

我们在处理一些超大的图片时,会因为像素数量过多而导致每一步操作都很慢,为了提高图片的显示与刷新速度,Photoshop利用图片的缩小版本来进行计算并显示。

当你载入一幅图片时,Photoshop会自动生成许多这幅图片的缩小版本放在临时文件中,这些缩小图就是高速缓存,其中有缩小到50%的、25%的、12.5%的等等。当你把视图缩小时,比如缩小到25%,Photoshop就利用25%那张缓存小图的计算结果来更新视图。

缓存小图的不同缩小比例代表不同的缓存级别。缓存级别1为100%的原图,级别2为50%的小图,级别3为25%的小图,以此类推。

若要设定缓存级别,可以选择菜单编辑>预置>内存与图像高速缓存(Edit > Preferences > Memory and image cache)。Photoshop CS2的缓存级别默认值为6,适用于处理高质量的数码相机照片。

[注] Photoshop CS2之前的版本有一个“使用直方图高速缓存”(Use Cache for histogram)的选项,可以提高直方图的绘制速度,但会降低精确度。建议不要勾选此项,否则当你缩小视图时,Photoshop就会使用相应的缓存小图来生成直方图。

缓存级别的算法

取上一级的四个相邻像素的平均值来获得一个像素,像素数是它上一级的1/4。

例如有张图片的大小是8*8,缓存级别2的大小为4*4,级别3为2*2,级别4为1*1。

下图是一张2*2像素的棋盘格图片,缓存级别2的灰度值取原图的平均值(0+255+255+0)/4=500/4=128。

直方图面板中的缓存级别

当图片较大时,为了提高直方图的刷新速度,Photoshop会自动选择适当的缓存级别来生成直方图。

现在来研究一下直方图面板中的缓存级别。新建一个2*2像素的图片,画成棋盘格图案,然后执行编辑>定义图案。

新建一个1000*1000像素的图片,灰度模式。

使用编辑>填充命令和前面定义的图案来填充这张图片。

这时看一下直方图面板,会发现右上角多了一个警告图标。这是缓存级别2的图片。通过直方图我们可以看出缓存级别2是张纯灰色的图片,灰度值128,像素数量250000,正好是原图的1/4。

单击那个警告图标,现在已经更新为原图的直方图。像素数量为1000*1000=1000000,有0和255两种灰度,平均值为255/2=127.50。这些都是原图的正确数据,正是我们所期望的。

对于一般的图像,为了提高速度而使用缓存生成直方图基本上是可行的,但要注意原图相邻像素的亮度变化越大,缓存小图造成的误差就越大。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多