YUV格式学习:NV16和YUV422P格式互换
其实以前也实现过SP转P的格式,现在再完善一些,写成此文。由于是相同采样空间的转换,只是个别分量位置的调整,只要明白了Y、U、V分量的布置,就很容易写出来。
代码如下:
/**
yyyy yyyy
uv uv
->
yyyy yyyy
uu
vv
*/
void yuv422sp_to_yuv422p(unsigned char* yuv422sp, unsigned char* yuv422p, int width, int height)
{int i, j;int y_size;int uv_size;unsigned char* p_y1;unsigned char* p_uv;unsigned char* p_y2;unsigned char* p_u;unsigned char* p_v;y_size = uv_size = width * height;p_y1 = yuv422sp;p_uv = yuv422sp + y_size;p_y2 = yuv422p;p_u = yuv422p + y_size;p_v = p_u + width * height / 2;memcpy(p_y2, p_y1, y_size);for (j = 0, i = 0; j < uv_size; j+=2, i++){p_u[i] = p_uv[j];p_v[i] = p_uv[j+1];}
}/**
yyyy yyyy
uu
vv
->
yyyy yyyy
uv uv
*/
void yuv422p_to_yuv422sp(unsigned char* yuv422p, unsigned char* yuv422sp, int width, int height)
{int i, j;int y_size;int uv_size;unsigned char* p_y1;unsigned char* p_uv;unsigned char* p_y2;unsigned char* p_u;unsigned char* p_v;y_size = uv_size = width * height;p_y1 = yuv422p;p_y2 = yuv422sp;p_u = p_y1 + y_size;p_v = p_u + width * height / 2;p_uv = p_y2 + y_size;memcpy(p_y2, p_y1, y_size);for (j = 0, i = 0; j < uv_size; j+=2, i++){// 此处可调整U、V的位置,变成NV16或NV61
#if 01p_uv[j] = p_u[i];p_uv[j+1] = p_v[i];
#elsep_uv[j] = p_v[i];p_uv[j+1] = p_u[i];
#endif}
}
李迟 2015.8.5 晚上
YUV格式学习:NV16和YUV422P格式互换相关推荐
- FFmpeg学习4:音频格式转换
前段时间,在学习试用FFmpeg播放音频的时候总是有杂音,网上的很多教程是基于之前版本的FFmpeg的,而新的FFmepg3中audio增加了平面(planar)格式,而SDL播放音频是不支持平面格式 ...
- AVI音视频封装格式学习(三)——AVI 数据结构解析
这里介绍AVI会使用到的数据结构,为了避免翻译引入歧义,决定该部分还是使用英文原文,如后续有时间再进行翻译. AVIMAINHEADER structure The AVIMAINHEADER str ...
- ffmpeg4.4项目学习--音视频基本格式
目录 一.引言 二.音视频基本格式学习 ------> 2.1.图像压缩数据格式 ------> 2.2.PCM ------> 2.3.H264 ------> 2.4.AA ...
- 【学习笔记】Windows格式文档转换成Unix格式
[学习笔记]Windows格式文档转换成Unix格式 我们有时候需要将文档格式从Windows格式转换成Unix格式,Windows下换行是\r\n,而Unix下换行是\n,所以只需要将文档中的\r去 ...
- FFmpeg基础库编程开发学习笔记——音频常见格式及字幕格式
声明一下:这些关于ffmpeg的文章仅仅是用于记录我的学习历程和以便于以后查阅,文章中的一些文字可能是直接摘自于其它文章.书籍或者文献,学习ffmpeg相关知识是为了使用在Android上,我也才是刚 ...
- AVI音视频封装格式学习(四)——linux系统C语言AVI格式音视频封装应用
拖了很久的AVI音视频封装实例,花了一天时间终于调完了,兼容性不是太好,但作为参考学习使用应该没有问题.RIFF和AVI以及WAV格式,可以参考前面的一些文章.这里详细介绍将一个H264视频流和一个2 ...
- AVI音视频封装格式学习(五)——h265与PCM合成AVI文件
不知道是处于版权收费问题还是什么原因,H265现在也并没有非常广泛的被普及.将h265数据合成AVI的资料现在在网上也基本上没有.使用格式化工厂工具将h265数据封装成AVI格式,发现它在封装的时候其 ...
- TensorFlow学习笔记之 bmp格式、txt格式数据转换成tfrecord 格式
目录 一.前言 二.bmp 格式数据转换成 tfrecord 格式的代码 三.txt 格式数据转换成 tfrecord 格式的代码 一.前言 之前我们讲过了关于 tfrecord 格式的相关内容,在这 ...
- python word 操作 doc 文件格式转docx 格式 学习笔记
python word 操作 doc 文件格式转docx 格式 学习笔记 from win32com import client as wc import time # TODO file_0 = & ...
最新文章
- 其他发行版本安装深度音乐播放器
- 常用命令-临时记录!
- 真实实验测试多少节电池可以点亮白炽灯泡!
- html5中有哪些新属性,整理HTML5中表单的常用属性及新属性
- Java面试题系列之Java基础类库(一)
- 第三次学JAVA再学不好就吃翔(part41)--修饰符
- 20165201 2017-2018-2 《Java程序设计》第3周学习总结
- jQuery图表插件 JS Charts
- JavaScript | 将十进制转换为十六进制,反之亦然
- 概率论与数理统计思维导图_数学思维到底有多重要?这个学科往往影响国家实力...
- 5.1linux_ubuntu常见安装问题
- 无敌大奉献:iOS技术开发知识整理
- 二十二、软件安装RPM、SRPM与YUM
- 视频教程-ArcGIS开发arcpy教程-其他
- 华泰证券 python 自动交易软件_有哪些能做自动交易的软件?
- [极客时间] 时间复杂度和空间复杂度分析
- 怎么查看php配置信息,Wampserver查看php配置信息
- 编写一个C语言程序 实现自我介绍,用c语言编程实现,别出心裁的情侣拍照
- Xcode中iOS项目目标变为Mac的解决办法
- 大数据教你如何购买净化器
热门文章
- php编写大型网站问题集
- 落户北京经开区 小米汽车首车预计2024年下线并量产 网友:开始存钱!
- 网易云音乐IPO拟至少募30.4亿港元 开售半日已获足额认购
- 特斯拉股价,真的“血崩”!
- 京东健康股价创下新高 市值突破6000亿港元
- 60秒语音有救了?曝微信测试语音进度条,内部人士一句话打回原形
- 那是财务自由的声音!寒武纪上市造就一批85后亿万富翁
- 商汤科技回应“IPO推迟”:“被”IPO,还“被”推迟了
- 笑喷!小区封闭男子将头伸出围栏外理发:又好笑又心酸
- 巴菲特:马斯克是伟大企业家,但特斯拉股票不是好投资标的