4合1缩图工具正式版v0.1
1728 51
[23 楼] james3721 [泡菜]
20-2-17 14:08
yanhe 发表于 2020-2-17 12:45
我觉得这个问题可解。

即使是拜尔结构,每个像素还是有一个分量R/G/B是真实的,其他两个分量才来自猜色。这样,根据JPG,可以基本倒推出RAW的RGB排列值(当然只有8bit),再这个基础上,再做不猜色的合并。

不知道LZ是不是已经是这个思路,或者早已用了更好的思路。


恐怕比较难,各厂家猜色的算法可能会不一样,倒推回去更难,还有恐怕无法知道cmos第一个像素是R或G或B,也就无法知道哪个分量是原始的,哪个是猜的。
[22 楼] 该人员 [资深泡菜]
20-2-17 14:06
yanhe 发表于 2020-2-17 12:45
我觉得这个问题可解。

即使是拜尔结构,每个像素还是有一个分量R/G/B是真实的,其他两个分量才来自猜色。这样,根据JPG,可以基本倒推出RAW的RGB排列值(当然只有8bit),再这个基础上,再做不猜色的合并。

不知道LZ是不是已经是这个思路,或者早已用了更好的思路。
多谢解释。就是说,程序已经知道每个像素的色罩的颜色是哪种,就取该色罩颜色的值为原始数据值来计算。
[21 楼] 晴色入青山 [泡菜]
20-2-17 14:03
很赞!
[20 楼] james3721 [泡菜]
20-2-17 14:00
yanhe 发表于 2020-2-17 13:23
详细对比了一下,比画图缩到50%要干净、柔和很多。


这个就怪了,按说4合一应该比通常缩图更锐才对呀。
[19 楼] huanghqdx [泡菜]
20-2-17 14:00
yanhe 发表于 2020-02-17 12:45
我觉得这个问题可解。

即使是拜尔结构,每个像素还是有一个分量R/G/B是真实的,其他两个分量才来自猜色。这样,根据JPG,可以...

就是简单的4个像素加和求平均,拜耳传感器怎么解raw我不会,更不会倒推了,但4合1效果接近真x3是肉眼可见的。
本帖由 色影无忌论坛小程序 发布
[18 楼] keepthefaith [老坛泡菜]
20-2-17 14:00
谁能上个对比图?
[17 楼] huanghqdx [泡菜]
20-2-17 13:55
半脸傻笑 发表于 2020-02-17 12:56
马克。这个合并缩图有什么具体的用处?跟lr,ps等软件raw原图缩小尺寸输出有什么区别?

4合1只能减半缩小,每2*2个像素缩成1个像素,每组2*2像素之间不相互影响。而其他算法缩图时,不是按2*2采样,而是把某个像素为中心的周围像素的值经过计算后得到缩小的像素值,可能是一个像素连同左右缩到了一起,连同上下左右缩到了一起,再或者连同斜对角的像素缩到了一起。所以4合1用在q上可以生成和low raw的100%放大几乎一样的效果。
本帖由 色影无忌论坛小程序 发布
[16 楼] huanghqdx [泡菜]
20-2-17 13:43
yanhe 发表于 2020-02-17 13:23
详细对比了一下,比画图缩到50%要干净、柔和很多。

而且画图没法保证是按100%质量存储的JPG
本帖由 色影无忌论坛小程序 发布
[15 楼] huanghqdx [泡菜]
20-2-17 13:26
半脸傻笑 发表于 2020-2-17 12:56
马克。这个合并缩图有什么具体的用处?跟lr,ps等软件raw原图缩小尺寸输出有什么区别?

411输出的jpg这样缩图后,宽高恰好减少一半,可以做到和111输出的jpg几乎一样的效果。lr,ps有多种缩图方式,基本都插值了,和111输出的jpg在某些显示器上看起来会有细微区别。不是111强迫症没必要这样缩图,不过也可以用来缩马赛克的图,能获得和111x3一样的观感。
[14 楼] yanhe [资深泡菜]
20-2-17 13:23
详细对比了一下,比画图缩到50%要干净、柔和很多。
[13 楼] huanghqdx [泡菜]
20-2-17 13:18
该人员 发表于 2020-2-17 11:11
有个疑问。raw文件四合一的道理可以理解。如果已经转换为jpg或tif格式,就是说已经在raw转jpg时进行了猜色处理。猜色后再四合一,还有意义吗?

先上结论:意义当然是有的,区别也是极细微的,而且照片越明亮区别就越小。官方不出High Raw转Low Raw,用4合1已经是最好的解决办法了。但肯定不是严格意义上的完全相同,区别主要有两点:
第一,SPP对LOW和HIGH默认的彩噪降噪水平不一样,HIGH过渡降彩噪了,因此HIGH输出的jpg 4合1后比LOW直接输出jpg的彩色噪点少很多。
第二,原理上会有所区别,这个有点繁琐了,我不知道spp怎么把411的TMB(当做顶层、中层、底层的光子数)解码成444的TMB,所以我只根据Kalpanika/x3f项目里的解码原理讲一讲。猜色(其实是猜光子数)是按顶层的比例去切分中下层的,中下层分成4个小像素后,总的光子数还是MB没变。而444的TMB到BGR是和111一样的固定的变换,所以High Raw先4合1再输出应当和先输出jpg/tif再4合1差距不大。数学一点的话是这样:
根据T层T1,T2,T3,T4的比例,设B被分成了B1,B2,B3,B4(和为B),M分成M1,M2,M3,M4(和为M),
444的RGB大概是这么变换得到的,以R为例:
R1=k1*(B1-c11)/c21+k2*(M1-c12)/c22+k3*(T1-c13)/c23
R2=k1*(B2-c11)/c21+k2*(M2-c12)/c22+k3*(T2-c13)/c23
R3=k1*(B3-c11)/c21+k2*(M3-c12)/c22+k3*(T3-c13)/c23
R4=k1*(B4-c11)/c21+k2*(M4-c12)/c22+k3*(T4-c13)/c23
k和c都是常数,于是先由HIGH输出jpg,再4合1后:
四合一的R
=(r1+r2+r3+r4)/4
=k1*(0.25B-c11)/c21 + k2*(0.25M-c12)/c22 + k3*(0.25T-c13)/c23
而LOW raw的BMT直接处理成RGB的话,以R为例:
LOW生成的R
=k1*(B-c31)/c41 + k2*(M-c32)/c42 + k3*(T-c33)/c43
两个式子有多大差距,关键在于常数c:
c1x、c3x是444和111的B值最暗的点代表的数值,没记错的话大概几十很小,按顶层四个小噪点划分的话,c1x和c3x的4倍关系不太稳定。
c2x、c4x约等于444和111各自B值最亮的点代表的数值,大概几千还是一万很大,由于照片中最亮的点顶层4个小像素值差距很小,一分为四后,大致每份占1/4左右,所以c2x≈0.25c4x,这个比较稳。
于是,四合一的R
≈k1*(B-4c11)/c41 + k2*(M-4c12)/c42 + k3*(T-4c13)/c43
而LOW生成的R
=k1*(B-c31)/c41 + k2*(M-c32)/c42 + k3*(T-c33)/c43
如果强行近似认为c1x≈0.25c3x,这两个式子就一样了,所以差别主要来源于常数c1x、c2x的区别(c3x和c4x可以忽略不计了),这两个数值的差别可能在4倍附近有所波动。所以,对于照片中比较明亮的部分,BMT值比较大,受c1x、c2x影响就小,而暗部BMT值比较小,区别可能大一些。反过来,如果整张照片都很明亮的话,c1x和c3x、c2x和c4x的4倍关系会很稳定,也就没什么区别了。

以下内容由 huanghqdx 于 2020-2-17 16:18 补充
最后一句错了,c1x和c3x的4倍关系应该一直是不稳定的,但像素越明亮受其影响越小是对的。没有精力确认每个细节都完全正确了,大致是这样计算的没错。
[12 楼] yanhe [资深泡菜]
20-2-17 13:09
半脸傻笑 发表于 2020-2-17 12:56
马克。这个合并缩图有什么具体的用处?跟lr,ps等软件raw原图缩小尺寸输出有什么区别?


做到不猜色
[11 楼] 半脸傻笑 [泡菜]
20-2-17 12:56
马克。这个合并缩图有什么具体的用处?跟lr,ps等软件raw原图缩小尺寸输出有什么区别?
本帖由安卓客户端发布
[10 楼] yanhe [资深泡菜]
20-2-17 12:45
该人员 发表于 2020-2-17 11:11
有个疑问。raw文件四合一的道理可以理解。如果已经转换为jpg或tif格式,就是说已经在raw转jpg时进行了猜色处理。猜色后再四合一,还有意义吗?


我觉得这个问题可解。

即使是拜尔结构,每个像素还是有一个分量R/G/B是真实的,其他两个分量才来自猜色。这样,根据JPG,可以基本倒推出RAW的RGB排列值(当然只有8bit),再这个基础上,再做不猜色的合并。

不知道LZ是不是已经是这个思路,或者早已用了更好的思路。
[9 楼] 该人员 [资深泡菜]
20-2-17 11:11
有个疑问。raw文件四合一的道理可以理解。如果已经转换为jpg或tif格式,就是说已经在raw转jpg时进行了猜色处理。猜色后再四合一,还有意义吗?
[8 楼] X3er [资深泡菜]
20-2-17 11:04
谢谢楼主分享!
[7 楼] huanghqdx [泡菜]
20-2-17 09:43
dgjiale 发表于 2020-02-17 00:50
楼主能做一个安卓版的app吗

不会。。
本帖由 色影无忌论坛小程序 发布
[6 楼] 别动队长 [泡菜]
20-2-17 05:08
多谢分享,记得十多年前有款国外的软件,无损压缩,真的很厉害,但只能试用两周,
本帖由安卓客户端发布
[5 楼] dgjiale [泡菜]
20-2-17 00:50
楼主能做一个安卓版的app吗
本帖由安卓客户端发布
[4 楼] huanghqdx [泡菜]
20-2-17 00:20
bengen 发表于 2020-02-17 00:07
提点建议,有空的时候考虑一下 1)文件每缩一次,就增加一个字母S,太多比如4in1有点不利于多次压缩 2)建议再写个批量版,...
这个目录直接拖到程序上运行是支持的,你是指目录拖进命令行窗口里也支持吗?后缀的问题我想想该怎么设计比较好。
本帖由无忌论坛小程序编辑于:2020-02-17 00:29:20
[3 楼] bengen [陈年泡菜]
20-2-17 00:07
提点建议,有空的时候考虑一下

1)文件每缩一次,就增加一个字母S,太多比如4in1有点不利于多次压缩
2)建议再写个批量版,以前那个整个目录压缩就很实用

多谢多谢

我的win7 64位可以用,没有问题 本帖最后由 bengen 于 2020-2-17 00:09 编辑
[2 楼] smxljc [泡菜]
20-2-16 23:58
谢谢分享
本帖由安卓客户端发布
[1 楼] huanghqdx [泡菜]
20-2-16 22:57
2019年1月我曾编了一个4合1缩图工具,当时就是把q的HIGH照片缩着玩玩,但没想到时隔一年还有几位坛友在使用和测试,并反馈了一些问题。我觉得去年编的那个程序太蠢了,索性开发一个比较好用的版本,今天刚完成,分享给有需要的朋友,没什么大问题的话就不补充修改了,做软件是一件令人恶心的事情。。。

一、功能说明:
1.把spp等软件输出的8位3通道彩色图像按像素4合1的方式进行缩放。
2.对于jpg/jpeg/tif/tiff/png格式,缩放后进行了无损压缩,对于其他格式无法保证正确处理和无损压缩。
3.支持对多个图片或整个文件夹下的图片批量处理。

二、修复改进:
1.现在无论图像文件的后缀名是大写还是小写,都能正确处理了。
2.现在的正式版只有单个程序文件,并新增了一种使用方法,比以前方便多了。
3.软件里的中文提示容易乱码,所以都换成了简单的英文。

三、使用方法
方法1:把图像文件、存放图像的文件夹拖到应用程序上运行。
方法2:打开应用程序,把图像文件拖进来,按回车键开始缩放。

四、下载地址:
链接:https://pan.baidu.com/s/1NlJNqoDq8srXgCLXUFxaNQ
提取码:xgqa

在win10 64位上测试没问题,能力有限,无法保证其他windows平台都能正常运行。
本帖最后由 huanghqdx 于 2020-2-16 23:06 编辑
以下内容由 huanghqdx 于 2020-2-17 16:32 补充
2020年2月17日,发布4合1缩图工具v0.2版本

更新说明:
1.现在支持把文件夹拖到命令行里按回车批量处理了。
2.处理后的文件名后缀支持自定义了,可以在配置文件config.ini里对应位置修改,该文件不是必须的,可以删除掉,此时按默认-4in1作为后缀了。

下载地址:
链接:https://pan.baidu.com/s/1ecQ5ODv5aluyhV6hn6S02g
提取码:oocn

后续计划:
后续应该不会再更新了,4合1压缩有一点意义但不是很大,而且个人能力有限,无法做到周全地测试程序的健壮性,功能越多越容易出问题,有可能对您的照片造成不可挽回的后果。

免责声明:
使用前请备份您的照片文件,由本程序直接或间接引起的原照片丢失、损坏等不良问题由使用者承担后果。
以下内容由 huanghqdx 于 2020-2-18 12:16 补充
2020年2月18日,纠正功能描述:
功能说明里的“对于jpg/jpeg/tif/tiff/png格式,缩放后进行了无损压缩,对于其他格式无法保证正确处理和无损压缩。”有误,改为:
缩放后的图像,对于tif/tiff/png格式采用无损压缩,对jpg/jpeg采用100%质量压缩,对于其他格式无法保证正确处理和无损压缩。
以下内容由 huanghqdx 于 2020-2-18 12:36 补充
2020年2月18日,发布4合1缩图工具v0.21版本

更新说明:
1.功能上和0.2版本完全一致,只是纠正了一处提示文字。对于JPG/JPEG的保存提示文字由无损压缩[Lossless Compression]换成了100%质量压缩[100% Quality Compression]。

下载地址:
链接:https://pan.baidu.com/s/1VmfR7zv7OgRrNlYYEh3Ejw
提取码:or8v