记一次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部分内容如下。

记一次YUV图像分析(二)的更多相关文章
- 2022-08-14-esp32把玩记-③_轻轻松松显示个二维码(esp32+ssd1306显示图片)
layout: post cid: 9 title: esp32把玩记-③ 轻轻松松显示个二维码(esp32+ssd1306显示图片) slug: 9 date: 2022/08/14 09:22:0 ...
- 001_记一次ansible api二次开发遇到的小问题
在某次关于发布系统的项目中,需要调用ansible来发布任务,其中一段代码是初始化ansible的连接,并传入一个source(目标机器)的值,代码段如下: from .ansible_api imp ...
- 家庭记账本APP开发准备(二)
今天学习了选项卡,为记账本的分类做了准备.主登录界面进行了优化,但仍未实现各个组件之间的跳转. 选项卡 activity_main.xml <?xml version="1.0&quo ...
- Dagger2 探索记2——四大基本组件(二)
书接上文,先回顾以下前一章写的内容. 内容大概就是在Activity中用@Inject标记一个注入的类,然后在这个类的构造函数上也打个@Inject标记,然后使用@Component来连接两边,完成对 ...
- YUV格式转换RGB(基于opencv)
在编写代码将需要处理YUV格从每个视频帧中提取,然后将其保存为图片.有两种常见的方法在线,第一种是通过opencv自带cvCvtColor,可是这样的方法有bug.得到的图片会泛白.另外一种方法是公式 ...
- 多次快速点击相同button导致重复响应的问题
Button在开发中经常用到,但是如果在瞬间点击多次时会出现多次响应事件的问题,今天给大家分享一下解决方法. 方法一:在Button响应事件中禁止Button允许点击, -(void)buttonAc ...
- 评论 “App死亡潮:400万应用僵尸超八成,周期仅10月”
点这里 原文: App死亡潮:400万应用僵尸超八成,周期仅10月 时间 2015-04-05 22:48:19 和讯科技相似文章 (16)原文 http://tech.hexun.com/201 ...
- 对Verilog 初学者比较有用的整理(转自它处)
*作者: Ian11122840 时间: 2010-9-27 09:04 ...
- 连不上VSS 【转】
今天打开项目,但是连不上VSS,报错如下: (一)现象: Could not find the Visual SourceSafe Internet Web Service connection in ...
随机推荐
- 玩转u8g2 OLED库 MAX7219_32X8点阵模块
u8g2 OLED库 + MAX7219_32X8点阵模块 理论基础 玩转u8g2 OLED库,一篇就够 玩转u8g2 OLED库,一篇就够(字数太多 要分篇) 实验内容 Full screen bu ...
- Python之路(第四十篇)进程池
一.进程池 进程池也是通过事先划分一块系统资源区域,这组资源区域在服务器启动时就已经创建和初始化,用户如果想创建新的进程,可以直接取得资源,从而避免了动态分配资源(这是很耗时的). 线程池内子进程的数 ...
- Leetcode Tags(2)Array
一.448. Find All Numbers Disappeared in an Array 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了 ...
- Node环境搭建--详细教程
下载地址: https://nodejs.org/en/download/ 版本:10.15.3 检测是否安装成功:我之前安装的是10.14版本
- C#/.NET/.NET Core定时任务调度的方法或者组件有哪些--Timer,FluentScheduler,TaskScheduler,Gofer.NET,Coravel,Quartz.NET还是Hangfire?
原文由Rector首发于 码友网 之 <C#/.NET/.NET Core应用程序编程中实现定时任务调度的方法或者组件有哪些,Timer,FluentScheduler,TaskSchedule ...
- 加上cdn后字体跨域
@font-face是CSS3中的一个特性,可以把自己定义的Web字体嵌入到网页中,随着@font-face,越来越多的网页采用字体图标作为网页中的小图形. 比如Bootstrap就采用了Glyphi ...
- 关于RocketMQ消息消费与重平衡的一些问题探讨
其实最好的学习方式就是互相交流,最近也有跟网友讨论了一些关于 RocketMQ 消息拉取与重平衡的问题,我姑且在这里写下我的一些总结. ## 关于 push 模式下的消息循环拉取问题 之前发表了一篇关 ...
- python实现清屏
往常都是用os.system("cls")清屏,但是发现每次执行完这个命令后都会出现一个空白字符 尝试了一下午,网上也没解决的办法 最后: os.system("cls& ...
- MYSQL5.7修改密码强度策略
---恢复内容开始--- 在MySQL5.6.6之后,ORACLE更新了mysql密码强度必须要使用大小写数字符号来设置密码,但是有时候这样还是很不方便的.所以记录一篇如何修改mysql密码强度的博文 ...
- CSPS模拟 53
T1 两种差分,拆分转化 T2 状压,hash压状态卡空间 T3 dfs,分类讨论.