harold

harold

0个粉丝

11

问答

0

专栏

3

资料

harold  发布于  2016-10-27 17:50:12
采纳率 0%
11个问答
2556

贴一个yuv420sp转yuv422的源代码

 
海思出来的yuv420sp转其他格式的可以自行修改


// yuv420sp-to-yuv422pack.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "errno.h"
#include
#include
#include
#include

char buff_read[4096 * 4096 * 2];
char buff_write[4096 * 4096 * 2];

void yuv420sp_to_yuv422(char *yuv420, char *yuv422, int width, int height)
{
        int i;
        int j;

        for (i = 0; i < height; i++)
        {
                for (j = 0; j < width; j++)
                {
                        yuv422[2 * (i*width + j)] = yuv420[i*width + j];
                        yuv422[2 * (i*width + j) + 1] = yuv420[width * height + ((i - i % 2) / 2)* width + j];
                }
        }
}

int _tmain(int argc, _TCHAR* argv[])
{
        FILE *fp = NULL; //需要注意
        FILE *fp_write = NULL; //需要注意
        size_t size = 0;
        int ret = 11;

        //ret = fopen_s(&fp, "yuv420-nv12.yuv", "rb+");
        //ret = fopen_s(&fp_write, "yuv420-nv12_write.yuv", "wb+");

    ret = fopen_s(&fp, "00_720x576_SP420.yuv", "rb+");//这个文件其实是yuv420p,不是yuv420sp
    ret = fopen_s(&fp_write, "00_720x576_SP420_write.yuv", "wb+");

       
        if (NULL == fp)
        {
                printf("文件打开失败\n");
                return -1; //要返回错误代码
        }
        size = fread(buff_read, 1, 2304*1536*1.5, fp);

        //yuv420sp_to_yuv422(buff_read, buff_write, 2304, 1536);
        yuv420sp_to_yuv422(buff_read, buff_write, 720, 576);
        printf("%d\n", errno);

        size = fwrite(buff_write, 1, 720 * 576 * 2, fp_write);

        //fwrite(pFrame, nFrameLen, 1, fp);
        //fflush(fp);
        return 0;


        return 0;
}
我来回答
回答1个
时间排序
认可量排序

kgui

0个粉丝

13

问答

0

专栏

4

资料

kgui 2016-10-27 20:36:32
认可0
赞,感谢分享
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区