YV12 and NV12异同,

用videoCapture和IAMStreamConfig拿到的支持的格式列表。
发现支持2中图像格式,YV12和NV12。
具体是怎么样的内存分布不知道。查了些文档。自己修改了几个图。看出了点端倪

YV12
先看看 http://www.fourcc.org/yuv.php 上比较标准的定义:

YV12

This is the format of choice for many software MPEG codecs. It comprises an NxM Y plane followed by (N/2)x(M/2) V and U planes.

 HorizontalVertical
Y Sample Period11
V Sample Period22
U Sample Period22

Positive biHeight implies top-down image (top line first)

这种图片其实不是很清楚的, 搞了一个非常明白的



这个wiki上面的图片示例非常明了,第一个图标识了图片真正像素的表示。
可 以看到Y1, Y2, Y7, Y8这些物理上相近的4个像素公用了同样的U1和V1,相似的Y3,Y4,Y9,Y10用的就是U2和V2。这里不同的颜色把这个特性刻画的非常形象,一 目了然。Impressive!!一直觉得教育,或者说基础的教育一定要以这样的模式来阐述这样才能知其所以然,那种盲目的抄了一本国外的教材或者合并了 几本破书的教材不是教人是毁人。 说远了,言归正传。之前说的是物理像素的表示,在内存中的分布则是一个数组,顺序就是YUV。所以如果知道所要表现的取悦的大小的话很容易查找到具体的YUV在数组中的位置。

NV12
NV12和YV12稍有不同,区别就在UV的位置。再看一张图就很明了了!

在YV12中U和V都是连续排布的,而在NV12中,U和V就交错排布的。看到内存中的排布很清楚,先开始都是Y,之后的都是U1V1U2V2的交错式排布。对于像素的压缩的效果是一样的。但是可能是硬件加速的支持与否。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上传 jar 包到 nexus3、上传本地 jar 包到 maven 私服

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.登陆进入 nexus3,打开要上传的仓库目录:maven-releases 2. 选择要上传的本地 jar 包,并填写好对应…

从桌面到移动:异构计算翻天覆地的技术变革

摘要:在智能手机上,强大的计算单元,不仅仅是CPU一颗,还包含了GPU、DSP等器件。在传统的台式电脑中,异构计算已经说了好多年了。这篇文章有点长,但值得静下心来慢慢阅读。从桌面到移动,这是关于异…

全球最杰出的14位程序员

摘要:ITWorld整理全球最杰出的14位程序员,包括Jon Skeet、Linus Torvalds、Jeff Dean等。一起来看下让我们膜拜的大神都有哪些? 近日,ITWorld整理全球最杰出的14位程序员,一起来看下让我们膜拜的这些大神都有哪些&…

开源工具:5个优秀的音频编辑器

无论你要发布播客还是制作高品质的录音,以下任意一款开源应用都能如你所愿。一个稳定的音频编辑器也许并不是你的必需品,但它却能在你的生意场上大显身手。怎么样?使用音频编辑器,你可以添加音频到你的企业网站,创建和…

JDK和CGLIB动态代理区别

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 前言 Github:https://github.com/yihonglei/thinking-in-spring JDK动态代理实现原理(jdk8):https://blog.csdn…

对比Ruby和Python的垃圾回收(2):代式垃圾回收机制

本文由 伯乐在线 - 熊崽Kevin 翻译自 patshaughnessy。欢迎加入 技术翻译小组。转载请参见文章末尾处的要求。对比Ruby和Python的垃圾回收(1) 上周,我根据之前在RuPy上做的一个名为“Visualizing Garbage Collection in Ruby and Python.”…

@Deprecated 注解 (@Documented 、@Retention、@Target)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 // 在看 Unsafe 类源码时看到一个注解:Deprecated,似曾相识... Deprecated 用在类或者方法上,表示…

Java魔法类:Unsafe应用解析

Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用。但由于Unsafe类使Java语言…

AMD迎接变革:加速OpenCL的未来

摘要:AMD在北京中关村皇冠假日酒店举办了以"迎接变革:加速进入OpenCL 的未来"为主题的技术培训。AMD Firepro显卡资深产品经理JC、OpenCL资深讲师陆教授、谢博士与大家探讨OpenCL技术将如何引领变革、铸造计算新纪元。 4月11日,AM…

让AMD在中国发声 APU14技术创新大会首次在华召开

今日,AMD一年一度的开发者峰会“APU2014”在北京拉开帷幕,这也是AMD首次在美国之外的城市举办该活动。AMD全球副总裁、大中华区董事总经理潘晓明表示,大中华区是AMD重要的战略区域,AMD希望通过本次活动在中国制造巨大的声音&#…

Python已成美国顶尖高校中最受欢迎的入门编程语言

在最近的一份调查中显示,美国top高校中,Python已经成为教授计算机科学入门课程方面最受欢迎的语言。其中Top10 CS系中有8所使用Python,Top39 CS系中有24所,在入门课程中教授Python,可见其实用性的认可度很高。在我写下…

A饭福利,AMD Mantle API获众多游戏开发商青睐!

摘要:Videocardz整理了一份2014年—2015年支持AMD Mantle游戏列表,并公布了游戏开发商及游戏引擎的名称。已发布且支持Mantle的游戏主要有《战地4》、《神偷4》、《植物大战僵尸:花园战争》以及《狙击精英3》这四款。 现如今,越来…

linux 安装 maven 、解决:bash: mvn: command not found

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1、安装 wget 命令: yum -y install wget 2、下载maven安装包 wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.5.4/binaries/a…

软件工程师必学的9件事

本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作! 三年前,我还在巴塞罗那的神经科学实验室工作,忙着研究脑电波、教授心理学上的认知系统课程。而今天,我以设计和写软件为生。 你或许会满头…

图解 Java 常用数据结构

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与…

编程语言 IDE 对比

IDE是集成开发环境的英文缩写,所谓集成开发环境,就是将你在开发过程中所需要的工具或功能集成到了一起,比如代码编写、分析、编译、调试等功能,从而最大化地提高开发者的工作效率。每种编程语言都有一些特定的IDE,本文…

程序员为什么那么难升职

一个有趣的现象是老程序员很难升职,如果你因为3K工资太低而要辞掉工作,你的上司宁可去外面找一个5K工资的新人,也不会来挽留你。那么程序员为什么那么难升职,这里总结了几点。你上司的问题你晋升困难,最大的主观原因在…

Docker 安装 Redis (Redis 配置)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 获取 redis 镜像 docker pull redis 不加版本号默认获取最新版本,也可以使用 docker search redis 查看镜像来源 查看本地镜像…

百度首席科学家 Andrew Ng谈深度学习的挑战和未来

摘要:7月7日上午,百度首席科学家Andrew Ng应邀做客中国科学院自动化研究所并做了《Deep Learning:Overview and trends》的学术报告。 【编者按】人工智能被认为是下一个互联网大事件,当下,谷歌、微软、百度等知名的高…

Linux 安装 jdk ( 两种方式 )

安装jdk有两种方法:手动安装 yum安装。 方式一: yum安装 1、查询要安装jdk的版本, 命令:yum -y list java* 2、安装jdk1.8 yum install -y java-1.8.0-openjdk.x86_64 3、查询jdk版本:java -version 这样就安装成功了。默认…