TI中文支持网
TI专业的中文技术问题搜集分享网站

如何在ipnc_rdk里缩短编码长度

ipnc rdk版本 3.9

硬件dm385

一帧1920 x 1080的图像数据进来以后,我只想编码四分之一的图像,然后输出,该如何设置呢?

我在enclink_h264.c里面没找到在什么地方改。

Chris Meng:

你好,

几点建议如下:
1. 编码的长宽需要做相应修改
2. 如果编码不是从图像左上角开始,需要修改输入编码器的buffer的首地址。
3. 编码偏移仍为1920,请设置编码器的参数captureWidth为1920。具体信息请参考编码器的user guide。

user6370357:

回复 Chris Meng:

长宽都需要更改吗?一帧1920 x 1080的数据分为1/4 ,编码的长不变,宽度变为1/4就可以了吧。
更改编码长度后的数据,解码后显示在屏幕上也是只有1/4吗?

user6370357:

回复 Chris Meng:

编码偏移是什么意思啊?

Chris Meng:

回复 user6370357:

user6370357编码偏移是什么意思啊?

Chris Meng:

回复 user6370357:

user6370357长宽都需要更改吗?一帧1920 x 1080的数据分为1/4 ,编码的长不变,宽度变为1/4就可以了吧。

可以。

user6370357更改编码长度后的数据,解码后显示在屏幕上也是只有1/4吗?

取决于你解码显示的代码是否有做缩放。

user6370357:

回复 Chris Meng:

你好,我想再请问一下数据分片的问题。

一帧数据的结构体是FVID2_Frame 

我采用的是YUV420SP的数据格式,按照FVID2_Frame 结构体的描述,Y变量的起始地址放在放在addr[0][0]中,UV变量的起始地址放在addr[0][1]中。

我想只编码1/4的数据,就把addr[0][0]的地址加了 1920 * 1080 / 4 addr[0][1]的地址加了1920 * 1080 / 8,按理说显示出来的图像应该就只有3/4但是目前出现了其他的失真现象,比如说颜色不对,还有出来一帧图像就卡住的现象。

是我的四路不对吗?还是说有其他要改的。

我是在vpss驱动里面改的,vpsdrv_captureList.c 里面。

Chris Meng:

回复 user6370357:

你好,

建议你在编码的地方修改buffer地址指针,而不是采集的地方。

如果你只需要1/4宽度的数据,你可以把采集宽度直接设置为宽度1/4,这样是不是更简单?

user6370357:

回复 Chris Meng:

你好,我试过在编码的地方更改,但还是出现上述情况。

我数据分片的目的不是为了缩小宽度而是为了缩短时延,将一帧图像分为四个部分,然后一部分一部分的编码输出,显示出来就还是完整的一帧图像,这样的话比把一个完整的帧编码后输出花费的时间要少。

我在外文网站上看到的,说在vpss端驱动更改可以做到这样的效果。

编解码器有个slice mode 我已经做出来了,但是这个模式我还有些不了解。

这个slice mode是在输入一帧数据后,全部分片编码完成之后再输出吗?还是说分片编码一部分就输出一部分?

解码端支持slice mode,所以解码端那边我就还没管。

Chris Meng:

回复 user6370357:

你好,

一般来说的slice mode编码都是按行来分割图像的啊。

赞(0)
未经允许不得转载:TI中文支持网 » 如何在ipnc_rdk里缩短编码长度
分享到: 更多 (0)