该原创文章首发于微信公众号:字节流动YUV 是一种色彩编码模型,也叫做 YCbCr,其中 “Y” 表示明亮度(Luminance),“U” 和 “V” 分别表示色度(Chrominance)和浓度(Chroma)。YUV 色彩编码模型,其设计初衷为了解决彩色电视机与黑白电视的兼容问题,利用了人类眼睛的生理特性(对亮度敏感,对色度不敏感),允许降低色度的带宽,降低了传输带宽。在计算机系统中应用尤为广泛,利用 YUV 色彩编码模型可以降低图片数据的内存占用,提高数据处理效率。另外,YUV 编码模型的图像数据一般不能直接用于显示,还需要将其转换为 RGB(RGBA) 编码模型,才能够正常显示图像。YUV 图像主流的采样方式有三种:其中最常用的采样方式是 YUV422 和 YUV420 。YUV 格式也可按照 YUV 三个分量的组织方式分为打包(Packed)格式和平面格式(Planar)。下面以一幅分辨率为 4×4 的 YUV 图为例,说明在不同 YUV 格式下的存储方式(括号内范围表示内存地址索引范围,默认以下不同格式图片存储使用的都是连续内存)。YUYV 格式的存储格式YV12/YU12 也属于 YUV420P ,即 YUV420 采样方式的平面模式,YUV 三个分量分别存储于 3 个不同的矩阵(平面)。YV12 格式的存储方式YU12(也称 I420) 格式的存储方式NV21/NV12 属于 YUV420SP ,YUV420SP 格式有 2 个平面,Y 分量存储于一个平面,UV 分量交错存储于另一个平面。NV21 格式的存储方式NV12 格式的存储方式NV21 与 NV12 格式的区别仅在于 UV 分量排列的先后顺序不同。下面以最常用的 NV21 图为例介绍其旋转、缩放和剪切的基本方法。YUV 图片的定义、加载、保存及内存释放。以顺时针旋转 90 度为例,Y 和 UV 两个平面分别从平面左下角进行纵向拷贝,需要注意的是每对 UV 分量作为一个整体进行拷贝。 以此类比,顺时针旋转 180 度时从平面右下角进行横向拷贝,顺时针旋转 270 度时从平面右上角进行纵向拷贝。
代码实现:将 2×2 的 NV21 图缩放成 4×4 的 NV21 图,原图横向每个像素的 Y 分量向右拷贝 1(放大倍数-1)次,纵向每列元素以列为单位向下拷贝 1(放大倍数-1)次.
将 4×4 的 NV21 图缩放成 2×2 的 NV21 图,实际上就是进行采样。
代码实现:图例中将 6×6 的 NV21 图按照横纵坐标偏移量为(2,2)裁剪成 4×4 的 NV21 图。
代码实现:
微信公众号
个人微信
本文来源于互联网:如有侵权,请联系admin@huankui.com删除!
一文掌握 YUV 图像的基本处理YUV 的由来YUV 几种常见采样方式YUV 几种常用的格式YUV 图像的基本操作联系与交流
站内所有内容均来自网友分享或本站购买,仅用于建站测试,如需商用,请移步官方购买正版!幻魁IT博士 » 一文掌握 YUV 图像的基本处理YUV 的由来YUV 几种常见采样方式YUV 几种常用的格式YUV 图像的基本操作联系与交流
最新评论
忽悠还6.0,我看了还没有之前功能多,样式就跟老版本一样。晕。后台根本没增加功能选项。
失效了,破解脚本下载不了
黄开心 我可以负责任的告诉你 这个玩意 要被封~~
有超出阿,你看一下右侧云村那个板块,文字稍微多一点滑到底部就会超出页面被遮挡
我的侧边栏置顶推荐滑到最底部的时候为啥会超出页面
好东西,谢谢
来看看,测试
关注公众号发送验证码为什么不行了