void NV21_2_YUY2(char *src, char *dst, int width, int height) { int size = width*height; char* pSrcUV = src + size; for(int i = 0; i < size; ++ i){ dst[i*2] = src[i]; } int p1 = 0; int vPos = 0; for(int y = 0; y < height; ++ y){ //int vPos = y/2*width; if(y%2 != 0){ vPos -= width; } for (int x = 0; x < width/2; ++x) { int uPos = vPos + 1; int p2 = p1 + 2;//yv point dst[p1 + 1] = pSrcUV[uPos]; dst[p2 + 1] = pSrcUV[vPos]; vPos += 2; p1 += 4; } } } void YUY2_2_NV21(char *src, char *dst, int width, int height) { char* pDstY = dst; char* pDstUV = dst + width*height; int halfH = height/2; int halfW = width/2; int stride = width*2; int p1, p2, p3, p4; int index = 0; for(int y = 0; y< halfH; ++ y){ for(int x = 0; x < halfW; ++ x){ //int px = 2*x; //int py = 2*y; //int index = py*stride + px*2; p1 = (index); p2 = (index) + 2; p3 = (index) + stride; p4 = (index) + stride + 2; pDstUV[y*width + x*2] = (src[p2+1] + src[p4+1])/2; pDstUV[y*width + x*2 + 1] = (src[p1+1] + src[p3+1])/2; pDstY[p1>>1] = src[p1]; pDstY[p2>>1] = src[p2]; pDstY[p3>>1] = src[p3]; pDstY[p4>>1] = src[p4]; index += 4; } index += stride; } }
相关推荐
摄像头格式YUYV转成NV21格式代码的java代码实现。直接可以使用
本程序实现了简单的YUV数据之间的转换和YUV与RGB的转换。 注:1、本程序只是简单YUV之间的颜色... 5)NV21_2_YV12; 6)YV12_2_NV21; 7)I420_2_rgb32; 8)rgb32_2_I420; 9)I420_2_rgb24; 10)rgb24_2_I420。
YUY420(也称为YV12)和YUY2(也称为YUV422)是两种不同的YUV格式,它们在存储和处理视频帧时具有不同的布局和效率。这篇文章将深入探讨这两种格式以及如何在它们之间进行转换。 YUY420(YV12)格式是YUV色彩空间的...
UYVY转NV21的java版本,网上常见的是C的,Java的几乎没有,我这个是实际用过的.
YV16转I420 YV16转NV16 YUY2转NV12 的YUV视频格式转换c代码
是一个相互转换的工具,在android Camera parameters.setPreviewFormat(ImageFormat.YV12); 如果要保存图片,或着保存视频时使用的一个工具类 YUV420P、I420、NV12、YV12...如果你输出格式是nv21 或者 yuy2 转图片
公司用TI 的3630方案,camera输出是uyvy,但是qq HD视频需要的却是420的NV12(非标准,V在U前面),网上没找到合适的算法,自己学了一个。
UYVY,YUY2,YVYU 转 YV12 已经通过验证转换正常,简单易用,直接运行;
byte[] nv21 = new byte[frameSize + width * height / 2]; System.arraycopy(yv12, 0, nv21, 0, frameSize); // copy Y int uvp = frameSize; int uvRowStride = width / 2; int uvPixelStride = 1; for ...
为了实现摄像头视频采集后的视频格式转化,yuyv(yuv422)和nv12(yuv420)转RGB代码。
基于D3D的YUV视频显示源代码,可以同时支持YV12、I420、NV12、YUY2、UYVY、RGB24、RGB32、RGB555、RGB565格式。支持半透明文本叠加。Windows XP SP2 DXSDK9.0c 9800GT测试通过。
描述中提到了YUV420_NV12、YUV420_NV21以及YUV422_YUYV和YUV422_YUY2这四种不同的YUV格式,它们在像素布局和数据组织上有各自的特点。 1. **YUV420_NV12**:这种格式是4:2:0采样率的一个例子,意味着每个像素的Y...
jpg转yuv420/yuv444 ,包括jpg头解析、Huffman解码 、IDCT等。纯C语言实现无任何第三方库。使用方法:代码编译后运行 ./main ./3.jpg ./4.yuv 444 第一个参数是输入jpg路径,第二个参数是输出yuv路径,第三个参数是...
1. **解析YUV数据**:YUV数据通常是交错的,程序需要按照YUV的存储格式(例如YUY2、NV12等)正确地解码每个像素。 2. **色彩空间转换**:将YUV数据转换为RGB,因为BMP格式是基于RGB色彩模型的。这涉及到一系列数学...
常见的YUV格式有YUV420P、NV12、I420等,它们在像素布局和色度采样上有所不同。 接下来,我们讨论如何在C#中处理YUV格式的视频。C#作为高级编程语言,通常不直接处理底层硬件或内存,但在需要高性能和低级别操作时...
本过滤器将IYUV,NV12,YUY2,YV12视频流,编码为H264视频流。 参见介绍文章:...
YV12、YU12/I420、NV21、NV12、YUY2/YUYV、YVYU、UYVY、YUV444、RGB565_L、RGB565_B、BGR565_L、BGR565_B、RGB888、BayerBG、BayerGB、BayerRG、BayerGR、BayerBG_RAW12、BayerGB_RAW12、BayerRG_RAW12、BayerGR_RAW...
本文将通过介绍名为"ColorSpace demo"的演示程序,深入探讨RGB、YUY2和NV12这三种常见的色彩空间,并解析它们之间的转换过程。该程序基于.Net 4.0框架开发,为开发者提供了一种直观理解并实践色彩空间转换的工具。 ...
rgb2yuv 一个轻量级的转换工具, 用于把RGB像素块转换为YUV. 使用时仅需include rgb2yuv.hpp, 库本身不需要编译...YUYV - YUV 4:2:2, Packed, Same as YUY2 YVYU - YUV 4:2:2, Packed UYVY - YUV 4:2:2, Packed VYUY - Y
qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12