YUV422显示视频格式解释
H.264编码器输入要YUV420,而解码器解码之后显示一般又要YUV422,并且视频采集芯片输出往往也是YUV422,下面以我一个实际使用为例说一下YUV422格式:
/* YUV4:2:2格式(这是初始化背景为纯色,所以用了同一个Y) */
/* Black color in UYVY format */
#define UYVY_BLACK/*Y Cr Y Cb*/ 0x10801080/*black*/ /*blue:0x286e28ef red:0x51ef515b green:0x90239036/*/
/* DM6446中的测试代码,整个宏像素赋值 */for (bufIdx=0; bufIdx < NUM_DISPLAY_BUFS; bufIdx++) {/* Clear the video buffer */buf = (unsigned int *) virtDisplays[bufIdx];for (i=0; i < displaySize / sizeof(unsigned int); i++) {buf[i] = UYVY_BLACK;}/* Translate the virtual address to physical as resizer needs this */physDisplays[bufIdx] = Memory_getPhysicalAddress(virtDisplays[bufIdx]);DBG("virtDisplays[%d] LA:%#lx PA:%#lx\n",bufIdx, (unsigned long) virtDisplays[bufIdx], physDisplays[bufIdx]);}
可以看到YUV422存储顺序为Y Cr Y Cb Y Cr Y Cb Y Cr Y Cb……,Y是全部保留,而Cr,Cb则是在一行中交替采样,而不像YUV420,一行采样 Cb,下一行采用Cr。注意区别。
再说一下上面YCbCr的由来,是通过RGB转化的,具体代码如下:
RGB -> YCbCr代码
void rgb2ycbcr(unsigned char r,unsigned char g,unsigned char b)
{unsigned char ycbcr_res[3]; ycbcr_res[0]= (unsigned char)(r * 0.256789 + g * 0.504129 + b * 0.097906)+ 16; ycbcr_res[1]= (unsigned char)(r *-0.148223 + g * -0.290992 + b * 0.439215)+ 128; ycbcr_res[2]= (unsigned char)(r * 0.439215 + g * -0.367789 + b *-0.071426)+ 128;
}
代码测试
YUV422显示视频格式解释相关推荐
- Unity实现Image图片显示视频 、灵活配置控制视频播放(视频格式为MovieTexture)
一.编写(视频格式为MovieTexture)视频控制脚本 /*** * Title:" " 项目 * 主题:实现控制moveTexture格式的视频 * Description: ...
- 看懂影片标题,各种电影视频格式标题的含义
一.资源片源解析 根据命名,可以知道资源的来源,从而判断资源画质的好坏. 1.CAM(枪版)--珍爱生命,远离枪版 CAM通常是用数码摄像机从电影院盗录.有时会使用小三角架,但大多数时候不可能使用, ...
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...
- HTML5中如何显示视频HTML5视频播放
HTML5 规定了一种通过 video 元素来包含视频的标准方法. 在HTML5中,video元素目前支持三种格式的视频文件, 1.Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 ...
- 视频格式基础知识:让你了解MKV、MP4、H.265、码率、色深等
本教程将分以下模块详细叙述: 1.封装格式(MP4/MKV-) vs 媒体格式(H.264/FLAC/AAC-) 2.视频的基础参数:分辨率,帧率和码率 3.图像的表示方法:RGB模型 vs YUV ...
- 视频格式基础知识:让你了解MKV、MP4、H.265、码率、色深等等.
http://www.4k123.com/thread-8194-1-1.html 本教程意在讲述一些视频音频的基础知识和术语.它可以比较详细的回答以下常见的问题: . MP4/MKV这些格式有什么区 ...
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式 详解
http://blog.csdn.net/wishfly/article/details/50187417 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运 ...
- 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...
- 常见硬件术语手册!绝对权威!(转!)七、显示卡术语解释
七.显示卡术语解释 EDO DRAM (Extended Data Out DRAM):扩展数据输出DRAM.对DRAM的访问模式进行一些改进,缩短内存有效访问的时间. VRAM (Video DRA ...
最新文章
- java mysql数据库封装_java-jdbc封装连接数据库工具
- Pytorch转TensorRT范例代码
- k8s Service的类型和实现流程图解
- [BZOJ2125]最短路
- 如何将系统退回上个版本Android,vivo NEX A降级教程,如何回退到旧版本系统的方法...
- delphi excel取批注所在的行列_excel技巧教程丨34个常用Excel小技巧,助你玩转职场!...
- Node.js文件的同步异步事件循环
- 那个把iPhone卖这么贵的女高管离开了 个人信息已从苹果官网撤下
- ssh 框架搭建出现错误
- VBS操作IE ---(【当不使用IE时】可以使用Chrome插件,自定义JS插件操作浏览器)
- bind函数怎么用JAVA_面试官:能解释一下javascript中bind、apply和call这三个函数的用法吗...
- 【C/C++】C++函数
- DDM:剪贴板处理处罚及截取屏幕
- Ubuntu和Windows双系统调整启动顺序软件
- libjvm ThreadState Transition transition_from_native
- win8怎么被远程计算机关闭,Win8系统局域网如何远程关机?Win8系统局域网远程关机的方法...
- Linux开发板循环显示红绿蓝
- 跨境电商虾皮值不值得做?你了解多少
- 【一句日历】2019年8月
- win10系统如何玩各个版本的红色警戒