zoukankan      html  css  js  c++  java
  • 记一次YUV图像分析(二)

    当你有一帧图像的原始(Raw)数据,不知道是RGB像素图还YUV格式时,可以利用YUV的灰度图成块状能量的特点(这也是为什么YUV格式可以被压缩编码的原因),进行简单的分辨。

    当你用hexdump一类的工具,看到下面的内容,就可以90%假设这帧图像是YUV的。

    没错,就是连续一块,重复的字母或字符。因为数字字符之间的差值是0-9, 小写或大写字符之间的差值是0-26,对于一个像素的Y分量是8bit(即一个字节),范围在0-255。对于26以内的变动,就是说亮度在10%之内的差异变动。这就是基于宏块压缩的原因。

    再来看文件2/3处后的内容:

    这里举例的是NV12或NV21格式,UV分量混编在一个plane上,同样可见色彩也有些成块相似的特点。

    如果是yuvy这样的y,u,v分量同时混编的格式,也可以按Y分量分布的特点去进行判别。

    如果rgba格式的像素帧,就可能如下,有着重复位置的alpha值。以及一块是大写母,一块是小写字母,同样说明在一个小块内像素的r,g,b的值也是在10%内变化。

    然后就是去根据分辨率像素体积的关系,去确定一个尺寸去进行行扫描,观察效果。

    虽然我通过注入读到一帧好像是图像的内容,它的大小正好是 1280 * 772 * 4 字节,这让我第一就想到是rgba图像,但是不能render出任何有用的东西,我还尝试用各种YUV格式去render,也无果,因为它根本就不是像素图像。其hexdump部分内容如下。

  • 相关阅读:
    WPF 使用XML作为绑定源时Xaml注意事项
    WPF 使用动画设置特殊值的方法
    WPF 使用EventTrigger时设置SouceName技巧
    WPF 鼠标移动时触发图片旋转(非动画)
    WPF 隐藏式控件
    WPF TabItem设置Visibility隐藏Control内容
    WPF Adorner 简易图片取色器
    WPF Xaml中创建集合
    WPF 通过EventTrigger修改鼠标样式
    WPF DataGrid点击列头选择全列并具有背景色
  • 原文地址:https://www.cnblogs.com/bbqzsl/p/8821895.html
Copyright © 2011-2022 走看看