video/x-raw-yuv啥用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了video/x-raw-yuv啥用相关的知识,希望对你有一定的参考价值。
参考技术A RAW、YUV、RGB、 RGB,JPEG都是sensor输出的四种类型,简单来说:1、RAW RGB: sensor的每一像素对应一个彩色滤光片,滤光片按Bayer pattern分布。将每一个像素的数据直接输出,即RAW RGB data;2、YUV: luma (Y) + chroma (UV) 格式, 一般情况下sensor支持YUV422格式,即数据格式是按Y-U-Y-V次序输出的;3、RGB: 传统的红绿蓝格式,比如RGB565,其16-bit数据格式为5-bit R + 6-bit G + 5-bit B。G多一位,原因是人眼对绿色比较敏感;4、JPEG: 有些sensor,特别是低分辨率的,其自带JPEG engine,可以直接输出压缩后的jpg格式的数据。UnmanagedMemoryStream 有啥用?
【中文标题】UnmanagedMemoryStream 有啥用?【英文标题】:What is the UnmanagedMemoryStream for?UnmanagedMemoryStream 有什么用? 【发布时间】:2012-01-13 06:41:44 【问题描述】:谁能告诉我UnmanagedMemoryStream
类的用途是什么?
我不知道这个类如何以及何时有用?
【问题讨论】:
【参考方案1】:使用 UnmanagedMemoryStream 可以让您读取非托管流,而无需先将所有内容复制到托管堆中,因此在处理非托管流时内存占用较少。如果您要处理大量数据,这也可以让您绕过内存限制。这是一篇关于UnmanagedMemoryStream 的短文。
编辑:请注意,MemoryStream 有 2GB 的限制,因此如果超出此限制,则必须使用 UnmanagedMemoryStream。
【讨论】:
您好,我已经阅读了您上面提到的文章。只是我想知道这是否真的是真正的好处。非常感谢您的 cmets :)【参考方案2】:UnmanagedMemoryStream
允许您访问尚未由公共语言运行时分配的内存,这主要在您想通过Stream
接口访问由非托管代码分配的内存时很有用(例如,因为您已经有代码对流进行操作)。
当然,没有什么可以阻止您通过 Marshal
类从 C# 中分配非托管内存并将其包装在 UnmanagedMemoryStream
中,但这只会让生活变得更加困难,因为您可以使用 MemoryStream
,假设手动控制支持流的内存不太可能带来任何好处。
【讨论】:
以上是关于video/x-raw-yuv啥用的主要内容,如果未能解决你的问题,请参考以下文章