leo0925

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925  发布于  2018-01-30 21:05:40
采纳率 0%
30个问答
4309

外接VI 是yuv422,怎么实现编码

 
目前,外接VI 是yuv422格式的,H264/H265 不支持该类格式,怎么来完成编码呢? 附:
1. yuv dump file 操作正常; 同时 通过VGS 转换为420格式 dump file 操作也正常;
2. HI_MPI_VENC_SendFrame 有试过 通过该接口来发送图像 给编码单元,但是操作时 有些错误,VB 申请失败;

求助。
我来回答
回答18个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-31 07:45:55
认可0
vpss过一下

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-01-31 10:01:15
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=83990&ptid=38796]zhuangweiye 发表于 2018-1-31 07:45[/url]
vpss过一下[/quote]

我按照 sample_venc.c 执行, 有试过 经过vpss和不经过vpss,直接去编码 是提示 不支持422格式。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-31 10:05:09
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84000&ptid=38796]leo0925 发表于 2018-1-31 10:01[/url]
我按照 sample_venc.c 执行, 有试过 经过vpss和不经过vpss,直接去编码 是提示 不支持422格式。[/quote]

vpss输出用user mode 可以设定输出格式

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-01-31 10:38:25
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84002&ptid=38796]zhuangweiye 发表于 2018-1-31 10:05[/url]
vpss输出用user mode 可以设定输出格式[/quote]

嗯,谢谢,修改后正常编码了。 接下来 继续完成 两路编码 和 osd 功能,有问题 还请帮忙指点。

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-01-31 14:06:47
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84005&ptid=38796]leo0925 发表于 2018-1-31 10:38[/url]
嗯,谢谢,修改后正常编码了。 接下来 继续完成 两路编码 和 osd 功能,有问题 还请帮忙指点。[/quote]

请问,网络接收h264码流后,sdk 看了 没有接口来完成解码,视频输出api 都是针对VO来的。 那是否解码 需要ffmpeg 来完成呢?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-31 14:52:05
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84020&ptid=38796]leo0925 发表于 2018-1-31 14:06[/url]
请问,网络接收h264码流后,sdk 看了 没有接口来完成解码,视频输出api 都是针对VO来的。 那是否解码 需 ...[/quote]

有解码需求的话, 选3519这种没有解码器的芯片是不是有问题

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-01-31 15:22:48
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84025&ptid=38796]zhuangweiye 发表于 2018-1-31 14:52[/url]
有解码需求的话, 选3519这种没有解码器的芯片是不是有问题[/quote]

需求是:前端 编码+发送,后端 接收+传输/解码输出;目前是项目演示阶段 就都选择3519.

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-01-31 16:02:45
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84027&ptid=38796]leo0925 发表于 2018-1-31 15:22[/url]
需求是:前端 编码+发送,后端 接收+传输/解码输出;目前是项目演示阶段 就都选择3519.[/quote]


后端建议还是选个nvr或者dvr的芯片,3519无法模拟有解码器的芯片

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-01-31 17:44:19
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84032&ptid=38796]zhuangweiye 发表于 2018-1-31 16:02[/url]
后端建议还是选个nvr或者dvr的芯片,3519无法模拟有解码器的芯片[/quote]

嗯, 目前是预演阶段。 对于osd,看示例代码,是把mm.bmp 文件 解析生成BITMAP_S 结构体,那么 如果我要叠加自定义信息:如 日期+分辨率+码率,也是要把 这些字符串 描点生成bitmap 格式吗?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-02-01 09:00:32
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84055&ptid=38796]leo0925 发表于 2018-1-31 17:44[/url]
嗯, 目前是预演阶段。 对于osd,看示例代码,是把mm.bmp 文件 解析生成BITMAP_S 结构体,那么 如果我要 ...[/quote]

实际上海思用到的OSD 就是一块内存, 里面按照指定格式放的数据(比如ARGB1555),例子里面是由于文件存成了bmp格式所以先读文件(按bmp格式去读)然后放成指定格式而已,对于楼主的需求,日期+分辨率+码率应该是动态的,也就是说OSD是动态的,因此没有必要把这些转成bmp,再从bmp转成指定格式,可以一步到位

比如字符0-9,可以事先就做好(当然可以是bmp格式,然后转成ARGB1555格式放好,没有必要每次都去转换)然后在实际做OSD时把这些实现做好的buffer,组合起来即可

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-02-01 15:52:22
认可0
下午好,osd 请教:
目前,使用hzk16/asc16字库,得到了bitmap内容,再转像素格式; 这里出问题了;提示错误信息:
<3>[region] [Func]:RgnSetBitMap [Line]:3237 [Info]:<3>[region] overlay copy bmp to kernel err(copy_from_user dest:D0C30980 src:207F20)!

附 我的代码是:convertToFont 该函数读取字库,并把字库信息 存储在bitBuf
bitmapInfo.pData = calloc(32,4);

        unsigned char *bitBuf = calloc(32,4);
        convertToFont("深圳",4,bitBuf);
        int ii ,jj;
        HI_U8* pStart;
    HI_U16* pDst;
    int r,g,b;
        for (ii = 0; ii < 16; ii++)
    {
        for (jj = 0; jj < 16; jj++)
        {
                        pStart = bitBuf + ((16 - 1) - ii) * 16 + jj;
            pDst = (HI_U16*)(bitmapInfo.pData + ii * 16 + jj * 2);
            r = *(pStart);
            g = *(pStart + 1);
            b = *(pStart + 2);
            //printf("Func: %s, line:%d, Bpp: %d, bmp stride: %d, Canvas stride: %d, h:%d, w:%d.\n",
            //    __FUNCTION__, __LINE__, Bpp, stride, pVideoLogo->stride, i, j);
            *pDst = OSD_MAKECOLOR_U16(r, g, b, s_OSDCompInfo[3]);
                }
        }

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-02-02 10:14:01
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84091&ptid=38796]leo0925 发表于 2018-2-1 15:52[/url]
下午好,osd 请教:
目前,使用hzk16/asc16字库,得到了bitmap内容,再转像素格式; 这里出问题了;提示错 ...[/quote]

抱歉,看不太懂

问题1:
bitbuf = calloc(32,4),目的是开一块32x4=128byte的内存?

后面for双循环中pStart = bitBuf + ((16 - 1) - ii) * 16 + jj;
如果ii = 0, jj = 0, 那么pStart = bitBuf + 15 * 16 = bitBuf + 240,是不是越界了?

问题2:
pStart = bitBuf + ((16 - 1) - ii) * 16 + jj;
r = *(pStart);
g = *(pStart + 1);
b = *(pStart + 2);
这个是什么意思,不明白
如果pStart = bitBuf + ((16 - 1) - ii) * 16 + jj * 3;那么还能解释,pStart指向的是一块r,g,b,r,g,b,...的内存

如果楼主用的是sample,那么一般情况下是楼主添加或修改的代码出现了问题

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-02-02 14:31:23
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84110&ptid=38796]zhuangweiye 发表于 2018-2-2 10:14[/url]
抱歉,看不太懂

问题1:
[/quote]

谢谢回复, 现在是能显示出来,字体小 譬如时间显示,是16*8 怎么把它们 放大呢?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-02-02 14:37:55
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84123&ptid=38796]leo0925 发表于 2018-2-2 14:31[/url]
谢谢回复, 现在是能显示出来,字体小 譬如时间显示,是16*8 怎么把它们 放大呢?[/quote]

缩小不太好搞,简单放大比较容易, 比如放大2倍,每个像素点横向复制一次,纵向复制一次即可

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-02-02 16:20:51
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84125&ptid=38796]zhuangweiye 发表于 2018-2-2 14:37[/url]
缩小不太好搞,简单放大比较容易, 比如放大2倍,每个像素点横向复制一次,纵向复制一次即可[/quote]

嗯,谢谢指导,我现在去尝试下。 现在在试着同时支持汉字+字符, 谢谢!!

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-02-05 14:38:02
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84125&ptid=38796]zhuangweiye 发表于 2018-2-2 14:37[/url]
缩小不太好搞,简单放大比较容易, 比如放大2倍,每个像素点横向复制一次,纵向复制一次即可[/quote]

下午好。 放大2倍 已经做好了,现在有个问题,背景颜色问题,想要把背景色透明;
enPixelFmt                 = PIXEL_FORMAT_RGB_1555;
stChnAttr.unChnAttr.stOverlayChn.u32BgAlpha = 128;//128;
stChnAttr.unChnAttr.stOverlayChn.u32FgAlpha = 0;//128;

有尝试把像素点值 的alpha值设置为0,或者1, 但是只有u32BgAlpha 值 有效;请问该怎么设置呢?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-02-05 15:04:59
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84202&ptid=38796]leo0925 发表于 2018-2-5 14:38[/url]
下午好。 放大2倍 已经做好了,现在有个问题,背景颜色问题,想要把背景色透明;
enPixelFmt                 = PIXEL_ ...[/quote]

看文档啊

u32FgAlpha Alpha 位为1 的像素点的透明度。也称前景Alpha。
u32BgAlpha Alpha 位为0 的像素点的透明度。也称背景Alpha。

举例说明:
比如 u32FgAlpha = 128;u32BgAlpha = 0; 假定0表示透明, 128表示不透明

在ARGB1555格式下, 像素A的值是0x7fff, 像素B的值是0x8000
可以看到像素A的 Alpha 位为0, 那么像素B的 Alpha 位为1

那么
u32FgAlpha对于像素A没有作用, u32BgAlpha有作用, 作用效果就是被透明了
u32FgAlpha对于像素B有作用, u32BgAlpha没有作用, 作用效果就是显示了像素B

所以OSD中的像素点的alpha也很重要, 意思就是用alpha区分前景和背景, 比如前景的alpha = 1, 背景的alpha = 0,然后配合u32FgAlpha和u32FgAlpha就能做到了

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-02-05 15:32:32
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=84213&ptid=38796]zhuangweiye 发表于 2018-2-5 15:04[/url]
看文档啊

u32FgAlpha Alpha 位为1 的像素点的透明度。也称前景Alpha。
[/quote]

尴尬了,
我的像素描点值:前景黑色0x8000,背景白色是0x7fff;
stChnAttr.unChnAttr.stOverlayChn.u32BgAlpha = 0;
stChnAttr.unChnAttr.stOverlayChn.u32FgAlpha = 128;

现象是:屏幕上没osd了;把u32BgAlpha=128,能显示,但是背景是蓝色,很奇怪。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区