“ Windows Photo Viewer”旋转是否无损?


58

是否可以旋转在Windows Photo Viewer中查看的压缩有损照片,而不必担心丢失更多压缩信息?


1
请注意-据我所知-90度旋转(以及180、270)本身是无损的,因为它是x和y坐标的交换(其他角度需要插值)。因此,归因于变换的任何有损性都来自重新压缩。您可以通过以无损格式保存转换后的图像来避免重新计算,但这显然不是您的问题的一部分,因此我不建议您这样做
-horatio

5
@ horatio,90度的倍数是JPG压缩的特例,在技术上可以通过“简单”重新排列压缩数据来旋转图像而无需压缩循环。它确实涉及删除并应用无损压缩层,因此文件大小可能会更改,但不需要进行有损操作。
RBerteig

1
我想我理解您,但我的意思是jpeg是磁盘存储格式,对转换本身的质量没有任何影响。就是说,尽管人们常说使用jpeg等,但是当文件在屏幕上显示和操纵时,它不是jpeg。
2011年

1
老兄,我一直都想知道这个问题的答案。他们应该是IMO。但是最有可能是由于JPEG标准...从技术上讲,使这种操作无损是不可能的。
特雷弗·博伊德·史密斯

2
Google Picasa图片查看器无损。但它欺骗。它不会旋转图像。它只是在元数据中标记为“显示此图像旋转”。
特雷弗·博伊德·史密斯

Answers:


64

如果图像的尺寸是8的倍数(如果使用色度二次采样,则为16),则旋转是无损的。否则,不重新计算块即重新压缩图像就不可能旋转图像,这是有损的。

这样做的原因是jpeg图像分解为一系列的8x8或16x16块,这些块分别进行了压缩。不完整的块仅允许在右边缘和下边缘。因此,您的图像不是8/16的精确倍数,它将包含不完整的块,这些块将在旋转后最终出现在错误的边缘。

我使用Windows 7附带的Windows Photo Viewer版本验证了上述声明。我使用了两张彩色噪点图像。一个图像为256x256,即两个尺寸均为8的倍数。另一个图像相同,但裁剪为253x253,即两个尺寸都不为8的倍数。以下是这些图像:

256x256

253x253

然后,我进行了四个逆时针旋转,每次旋转后都关闭照片查看器,以确保将图像保存为旋转状态。

256x256

253x253

无需进行减法即可看到253像素图像的差异,它明显更暗,更混浊!

另一个图像的差异如下所示:

即图像是相同的,旋转是无损的。


1
我知道在过去进行轮换时,它已经警告我轮换将是有损的,这意味着在未显示警告的情况下,转换是无损的,但我没有进行检查。我也不记得我使用的是什么版本的WPV,没有排除MS更改代码库的可能性,所以我不确定。
Matt Grum

1
@Tim定义的纯噪声图像是jpeg(或任何压缩算法)最坏的情况,这就是我选择它的原因!真实图像上的结果看起来更好。
Matt Grum

1
@MattGrum,非常酷的演示。我希望所有数码相机制造商的图像尺寸都必须是8的整数倍!
特雷弗·博伊德·史密斯

1
@MattGrum我曾经在WPV团队工作。AFAIK,(我很确定)您的答案是正确的。另外,为证明您的假设的非常彻底的方法+1
Tristan 2013年

@TrevorBoydSmith我见过的每个摄像机的图像尺寸都是8或16的倍数。旋转不一定是原因,它可能只允许对JPEG管道进行一些优化。
Mark Ransom
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.