• [转]数字媒体显示和压缩(色彩二次抽样)


    硬件设备显示基础知识

    pt和px

    pt(Point)代表点,px(Piexl)表示像素,这是两个看起来很像、却完全不一样的单位,在某些场合它们是1:1的,在很多时候却常常被搞混,或是制作过程根本没有分清楚、导致结果不准确。

    在iPhone 3GS时代,分辨率和点是1:1,到了iPhone 4,分辨率和点是2:1的关系,而在iPhone 6 Plus设备上,分辨率和点事3:1,所以为了方便开发人员开发,iOS中统一使用点(Point)对界面元素的大小进行描述,这样分辨率的差异对于开发者来说就不是问题了,在开发层面来说,开发者无需进行分辨率和点的单位换算,完全感觉不到点和分辨率的差异。

    DPI和PPI

    DPI(Dots Per Inch)最初用于衡量打印无上每英寸的点数密度,就是说你的打印机可以在一英寸内打多少个点。DPI值越小,图片越不惊喜。

    PPI(Pixels Per Inch)。同理:PPI就是计算机屏幕上每英寸可以显示的像素点的数量。

    一个px占多少内存

    这个问题取决于使用什么色彩空间,假如是RGB,R(红色)G(绿色)B(蓝色)通常是他们的取值范围是0~255 每个占8位就是一个字节,共3个字节。如果还包含通道的话那就是4个字节。

    数字媒体的压缩

    如果每个像素采用8位的RGB色彩空间,每个像素占3kb。一个1280*720分辨率的视频,FPS为30。 那么存储空间需求就是79MB/s = 278GB/h。因此我们需要对数字媒体进行压缩。

    色彩的二次抽样(参考AVFoudation开发秘籍)

    视频数据通常是使用的YUV的色彩空间。YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度。

    这是因为我们的眼睛对亮度的敏感度要高于颜色,聪明的工程师们认识到,我们可以大幅减少存储在每个像素中的颜色信息,而不至于图片的质量严重受损。这个减少颜色数据的过程就称为色彩二次抽样。

    当每次看到诸如摄像头规范和其他视频设备硬件或软件中提到的4:4:4、4:2:2及4:2:0时,这些值的含义就是这些设备所使用的色彩二次抽样的参数。MacDown Screenshot

    (1) YUV 4:4:4 
    YUV三个信道的抽样率相同,因此在生成的图像里,每个象素的三个分量信息完整(每个分量通常8比特),经过8比特量化之后,未经压缩的每个像素占用3个字节。

    下面的四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

    存放的码流为: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3

    (2) YUV 4:2:2 
    每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:4:4的一半。对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存。

    下面的四个像素为:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

    存放的码流为:Y0 U0 Y1 V1 Y2 U2 Y3 V3

    映射出像素点为:[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3]

    色彩二次抽样一般发生在取样时,一些专业的相机以4:4:4的参数捕捉图像,但大部分情况下对于图片的拍摄是使用4:2:2的方式进行的。面向消费者的摄像头装置,比如iPhone手机上的摄像头,通常以4:2:0的方式进行拍摄。即使经过大量层级的二次抽象之后也仍然可能捕捉到高质量的图片,iPhone手机上拍出来的高质量视频就是很好的例证。当以色彩作为核心或在生产后期校正颜色的时候,如果色彩方面出现了衰减,那会成为一个棘手的问题。由于我们的色彩信息是通过多个像素点平均得来的,噪声点和其他一些失真问题也会出现在图片上。

    转自:https://blog.csdn.net/Mr_XiaoJie/article/details/77982727

  • 相关阅读:
    面向对象的三个基本特征(讲解)
    GridView 72般绝技
    Asp.net 将数据库里的记录转换成json
    jquery json asp.net 将各种对象:list ..等转换成
    sql2000 分页存储过程
    .NET中DataSet转化Json工具类
    从攻击者痕迹看内网常见命令
    从攻击者角度看SetMpreference小结
    Java NIO 实现服务端和客户端的通信示例
    spark streaming 监听器执行顺序
  • 原文地址:https://www.cnblogs.com/linganxiong/p/8971250.html
Copyright © 2020-2023  润新知