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显示视频格式解释相关推荐

  1. Unity实现Image图片显示视频 、灵活配置控制视频播放(视频格式为MovieTexture)

    一.编写(视频格式为MovieTexture)视频控制脚本 /*** * Title:" " 项目 * 主题:实现控制moveTexture格式的视频 * Description: ...

  2. 看懂影片标题,各种电影视频格式标题的含义

    一.资源片源解析 根据命名,可以知道资源的来源,从而判断资源画质的好坏. 1.CAM(枪版)--珍爱生命,远离枪版  CAM通常是用数码摄像机从电影院盗录.有时会使用小三角架,但大多数时候不可能使用, ...

  3. 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  4. HTML5中如何显示视频HTML5视频播放

    HTML5 规定了一种通过 video 元素来包含视频的标准方法. 在HTML5中,video元素目前支持三种格式的视频文件, 1.Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 ...

  5. 视频格式基础知识:让你了解MKV、MP4、H.265、码率、色深等

    本教程将分以下模块详细叙述: 1.封装格式(MP4/MKV-)  vs 媒体格式(H.264/FLAC/AAC-) 2.视频的基础参数:分辨率,帧率和码率 3.图像的表示方法:RGB模型 vs YUV ...

  6. 视频格式基础知识:让你了解MKV、MP4、H.265、码率、色深等等.

    http://www.4k123.com/thread-8194-1-1.html 本教程意在讲述一些视频音频的基础知识和术语.它可以比较详细的回答以下常见的问题: . MP4/MKV这些格式有什么区 ...

  7. 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式 详解

    http://blog.csdn.net/wishfly/article/details/50187417 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运 ...

  8. 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...

  9. 常见硬件术语手册!绝对权威!(转!)七、显示卡术语解释

    七.显示卡术语解释 EDO DRAM (Extended Data Out DRAM):扩展数据输出DRAM.对DRAM的访问模式进行一些改进,缩短内存有效访问的时间. VRAM (Video DRA ...

最新文章

  1. java mysql数据库封装_java-jdbc封装连接数据库工具
  2. Pytorch转TensorRT范例代码
  3. k8s Service的类型和实现流程图解
  4. [BZOJ2125]最短路
  5. 如何将系统退回上个版本Android,vivo NEX A降级教程,如何回退到旧版本系统的方法...
  6. delphi excel取批注所在的行列_excel技巧教程丨34个常用Excel小技巧,助你玩转职场!...
  7. Node.js文件的同步异步事件循环
  8. 那个把iPhone卖这么贵的女高管离开了 个人信息已从苹果官网撤下
  9. ssh 框架搭建出现错误
  10. VBS操作IE ---(【当不使用IE时】可以使用Chrome插件,自定义JS插件操作浏览器)
  11. bind函数怎么用JAVA_面试官:能解释一下javascript中bind、apply和call这三个函数的用法吗...
  12. 【C/C++】C++函数
  13. DDM:剪贴板处理处罚及截取屏幕
  14. Ubuntu和Windows双系统调整启动顺序软件
  15. libjvm ThreadState Transition transition_from_native
  16. win8怎么被远程计算机关闭,Win8系统局域网如何远程关机?Win8系统局域网远程关机的方法...
  17. Linux开发板循环显示红绿蓝
  18. 跨境电商虾皮值不值得做?你了解多少
  19. 【一句日历】2019年8月
  20. win10系统如何玩各个版本的红色警戒

热门文章

  1. mysql索引 物理文件_MySQL索引详解
  2. 刚离职的同事分享了他常用的19个私活平台!有技术,就是干!
  3. 淘宝、天猫APP商品详情、SKU参数调取
  4. 锁定微鲸VR 直通2017江苏卫视跨年演唱会现场
  5. 四旋翼无人机调试时,电机滴滴滴响问题及解决办法汇总
  6. 用 pygame 开发象棋小游戏
  7. 大数据和云计算技术周报(第107期)
  8. AI智能网关如何应用于智慧安监?
  9. php百家号爬虫,百家号爆文采集
  10. qt 创建半透明异形窗口