当前位置: 首页 > news >正文

什么是RAW数据?

现在数码照片的存储格式,以及在网络上应用的最普遍的图片格式就是JPEG格式了(Joint Photographic Expert Group)。但是作为一种有损的图像压缩格式(现在也有少数数码相机提供无损压缩的JPEG存储格式),其缺点是显而易见的,就算是极其轻微的压缩比例,也会使图像质量发生不可逆转的损失。更重要的是如果图像在相机内就经过了比较大的颜色、曝光、去噪和锐化处理的话,就会减小后期在电脑上做进一步处理的余地。对于不需要进行后期处理,或者不允许后期处理的情况下,JPEG是最好的相片存储格式之一。 

许多摄影师都尽量拍摄TIFF或者RAW格式的照片,来获得尽可能最好的图像品质。下面我们会看到,RAW格式文件将提供给我们最大的图片后期调整余地。 

为什么要拍摄RAW? 

要想更好的理解这种神奇的RAW格式到底是什么,我们首先要了解一下目前数码相机的工作原理。我们手里的所有数码相机都能照出彩色的图像,是的,尽管你最终得到的是彩色的图像,但实际上绝大多数的数码相机的感光元件只能记录灰度文件(除了Foveon X3感光元件,扫描式数码后背和多次曝光数码后背以外)。 

这听起来像是一个非常复杂的任务。实际上目前技术水平已经能保证最终得到的效果达到令人吃惊的程度了。任何一项技术都要同其自身与生俱来的缺点做斗争。就像胶片也要同其自身的缺点对抗,今天数码相机在很多方面都已经能击败胶片了。 

现在我们可以谈谈对于任一给定的数码相机,RAW格式数据到底是什么了。RAW数据就是由感光元件记录的图像的所有灰度数据。为了得到最终可用的图像,这些RAW数据必须经过所谓的“RAW转换程序(RAW Converter)”的处理(包括去马赛克)。JPEG格式的数码相片实际上使用了整合在相机固件内的RAW转换程序进行全部转换处理。 

相机产生的JPEG格式照片有如下缺点: 

1. JPEG格式由于有损压缩造成的失真 

2. 尽管绝大多数感光元件记录的是12bit或者16bit的灰度数据,但最终文件中只有8bit 

3. 机内整合的RAW Converter只能利用有限的资源进行计算,但是好的RAW转换需要广泛大量的和复杂的计算。软件技术的不断进步使其能不断提高在计算机上进行RAW转化的效果,而现在普遍使用的相机内用ASCII编码的固件则无法升级了。 

4. 机内设定或者评估白平衡在机内就应用在图片上了。同样色彩处理,色调校正,机内锐化也都在机内完成。这就限制了后期处理能力,因为已经校正过的图像需要再一次校正。对于一幅图像(特别是8bit的)进行越多的处理,就导致图像质量恶化的越大。 
现在我们可以解释一下RAW格式文件的区别了。他只存储原始数据(加上一些额外的数据信息,用来用来描述RAW数据的一些性质,叫做EXIF文件。EXIF文件内包含了相机型号,所用镜头,光圈快门等等信息。另外还有一些有关图像的数据,尽管是由相机记录的,但是用RAW转换程序编辑的时候仍然可以被更改,这些设定的选择将直接影响到图像如何被处理。这些可更改的设定包括,色彩模式,白平衡,饱和度,图像色调分布,锐化等等。)。现在所有原来在机内完成的RAW转换过程,都将在更强大的计算机平台上完成。

 

 

--

 

RAW文件不是图片格式,它记录的是拍摄的和图像数据文件,你不可能直接看到他!如果你看到了它,那么就已经将他变成一种图片格式了!
所有数码相机输出的JPG照片话,那么是运用机内的处理软件将原始的图像信息数据加上你的设置经过处理转换得来的,转换过程中要经过机内软件优化的!
而如果你将拍摄的RAW数据文件不经过相机内优化转换而直接在电脑上用软件查看的话,那么你看到的经过转换的图像是没有经过加工优化的,所以这时我们在电脑上看到的“RAW”照片---观看的时候已经转换为JPG或者其他图片格式了,因为前面说过RAW只是一种原始数据文件,无法直接观看!但是由于这时的照片是从RAW原始文件数据经过电脑上直接查看RAW文件的软件转换过来的,所以我们此时看到的照片是没有经过相机润色,处理的最原始拍摄数据转换成的照片,自然效果难以跟优化后的照片相比!
另外,如果你经常使用RAW输出文件,就会知道数码相机的原始成像如果不经过软件优化处理是根本没发法观看的,所有的数码相机在你拍摄后照片被保存的那一瞬间其实就跟完成一次后期PS是一样的!

转载于:https://www.cnblogs.com/Ph-one/p/5881409.html

相关文章:

  • linux设备驱动编写_tasklet机制
  • hrtimer和work工作队列的使用
  • nautilus-open-terminal很有用的插件--鼠标右键打开终端
  • userdebug版本开机串口log打开
  • no branch 问题
  • 网页撤销后ubuntu本地撤销
  • 电子类网站
  • ubuntu查看内存占用和查看cpu使用情况的简单方法(ubuntu内存管理)
  • 文件映射mmap
  • Linux的bg和fg命令简单介绍
  • ubuntu下查看cpu信息
  • ubuntu安装和查看已安装
  • ISO C90 forbids mixed declarations and code 警告
  • Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现
  • Linux下c++中的atoi、atol、atoll、atof函数调用实例
  • JavaScript-如何实现克隆(clone)函数
  • Angular数据绑定机制
  • Asm.js的简单介绍
  • CSS实用技巧干货
  • Fabric架构演变之路
  • Java编程基础24——递归练习
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Promise初体验
  • React的组件模式
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • sessionStorage和localStorage
  • Vue.js-Day01
  • Vue--数据传输
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 将 Measurements 和 Units 应用到物理学
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 如何设计一个微型分布式架构?
  • 微信小程序填坑清单
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 用mpvue开发微信小程序
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #Linux(帮助手册)
  • #图像处理
  • (3)nginx 配置(nginx.conf)
  • (C语言)逆序输出字符串
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (第61天)多租户架构(CDB/PDB)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (分布式缓存)Redis分片集群
  • (九十四)函数和二维数组
  • (转)iOS字体
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net 7 上传文件踩坑
  • .Net core 6.0 升8.0
  • .NET delegate 委托 、 Event 事件
  • .Net Redis的秒杀Dome和异步执行
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .Net(C#)自定义WinForm控件之小结篇