`
daojin
  • 浏览: 678097 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

NV21 转YUY2

 
阅读更多
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格式代码实现

    摄像头格式YUYV转成NV21格式代码的java代码实现。直接可以使用

    YUV颜色空间转换(YV12、NV12、NV21、I420、RGB等)

    本程序实现了简单的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。

    YUV420P、YV12、NV12、YV12格式转NV12保存图片

    是一个相互转换的工具,在android Camera parameters.setPreviewFormat(ImageFormat.YV12); 如果要保存图片,或着保存视频时使用的一个工具类 YUV420P、I420、NV12、YV12...如果你输出格式是nv21 或者 yuy2 转图片

    YV16ToI420 YV16ToNV16 YUY2ToNV12 YUV视频格式转换c代码

    YV16转I420 YV16转NV16 YUY2转NV12 的YUV视频格式转换c代码

    jpg转yuv,jpg解码纯c实现,无任何第三方库

    jpg转yuv420/yuv444 ,包括jpg头解析、Huffman解码 、IDCT等。纯C语言实现无任何第三方库。使用方法:代码编译后运行 ./main ./3.jpg ./4.yuv 444 第一个参数是输入jpg路径,第二个参数是输出yuv路径,第三个参数是...

    基于D3D的YV12视频渲染

    基于D3D的YUV视频显示源代码,可以同时支持YV12、I420、NV12、YUY2、UYVY、RGB24、RGB32、RGB555、RGB565格式。支持半透明文本叠加。Windows XP SP2 DXSDK9.0c 9800GT测试通过。

    java YV12 转化代码

    java YV12 转化代码, YV12 To NV21, I420 To NV21,YV12Resize, flipYUV420, NV21ToBitmap

    基于Qt和opencv实现的用于开发人员查看预览各种原始图像格式的小工具源码,支持windows/linux/macos系统

    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...

    qt opengl 渲染 yv12

    qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12

    cpp-rgb2yuv:一个轻量级的转换工具, 用于把RGB像素块转换为YUV

    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

    YUVPlayer-YUV播放器

    YUV422交织格式:YUY2(YUYV);YVYU;UYVY;VYUY; 半平面格式:NV12(也叫YUV420SP);NV21;NV16(也叫YUV422SP);NV61 支持保存为BMP、RGB文件。 介绍:http://www.latelee.org/programming-under-windows/my-yuvplayer.html...

    测试图片.zip

    【YUV】【3】YUV格式图像转换为RGB格式图像示例代码中 YUV420_NV12、YUV420_NV21、YUV422_YUYV/YUV422_YUY2测试图片

    ColorSpace demo

    色彩空间转换的演示程序,支持 RGB / YUY2 / NV12 直接的互相转换,基于 .Net 4.0 开发。

    YUV Player 播放器

    海康威视开发的YUV视频播放器 根据用户设定的参数对 YUV 文件进行播放及控制,支持以下 YUV 文件类型, YV12﹑IYUV﹑YV16﹑YUYV﹑YUNV﹑YUY2﹑YVYU﹑UYVY﹑UYNV﹑Y422﹑IYU2﹑IUYV﹑NV12:

    海康YUVPlayer.rar

    YUVPlayer播放器免费版适用于YUV文件的播放和编辑,根据用户设定的参数对YUV文件进行播放及控制,支持以下YUV文件类型, YV12﹑IYUV ﹑YV16﹑YUYV ﹑YUNV ﹑YUY2﹑YVYU ﹑UYVY ﹑UYNV ﹑Y422﹑IYU2﹑IUYV ﹑NV12.

    查看yuv格式文件的工具,YUVPlayer

    查看yuv格式文件的工具,使用简单 附带一个yuv格式文件test_yuv420p_320x180.yuv,可以打开查看 支持YV12,IYUV(I420) ,YV16 ,YUYV(YUNV,V422,YUY2) ,YVYU,UYVY(UYNV,Y422),IYU2,IUYV,NV12

    avisynth_filter:DirectShow过滤器,可将AviSynth放入视频播放

    4:2:2:YUY2,P210,P216 4:4:4:YV24 RGB24,RGB32 高性能多线程帧传递 HDR元数据直通 要求 带有SSE2指令集的CPU。 3.5.1(接口版本7)及更高版本。 安装 在安装之前,请先安装AviSynth +。 确保在

    vcam4j:Java虚拟摄像头

    vcam4j 介绍 Java虚拟摄像头VCamSDK是适用于Windows的虚拟相机SDK,允许您在无需安装软件的情况...使用其COM接口(IVCamRenderer)将RGB24 / RGB32 / YUY2 / NV12格式的视频数据或捕获屏幕区域发送到虚拟摄像机;高性能

Global site tag (gtag.js) - Google Analytics