imxys

Results 19 comments of imxys

> 看了下,这个 log 是个 warning,在兼容旧 vcodec_servcie 内核驱动时的 log,运行时没有问题的话不影响 好的;那请问内核的驱动是否需要更新,以及在哪里进行更新呢?是这个项目吗 https://github.com/rockchip-linux/kernel

> 8x8 模式需要配置了 high profile 才生效,默认是 baseline,看下编译出来的码流是不是 high profile 的 截图里有信息,确实是high profile的

另外我好像设置h264:dblk_disable没有其作用;不知道有没有设置到寄存器?我想确认一下去块滤波的效果,但是修改这个配置项,看RK3399的寄存器 0xff6500ec 在编码运行时候的值没有变化; 看生成h264文件的slice里 disable_deblocking_filter_idc 也没变化,一直是0

> 配置了 8x8 变换,并不是说所有块都使用 8x8 变换,这个是编码器内核根据不同模式的代价,针对不同内容块判决出不同最优的情况,开了 8x8,应该是会看有 16x16,8x8,4x4 都会存在的情况 按道理来讲是的,我通过电脑上ffmpeg编译验证也是这个现象(见前两张截图);但不知为何我RK3399这边都没有见到过8x8的

> > > Do you have a download link for Vega H264 Analyzer software ? Oh, sorry to say I don't know where to download it either... Maybe you can...

> hal 代码里用的是函数指针,找一下都 hal 里不同硬件的实现,都可以看到代码 您好,代码在哪里?我没看到hal,只能搜到头文件

您好,我又确认了一下正常的h264编码结果,其内部SEI实际上有时候正常, ![图片](https://user-images.githubusercontent.com/33591752/143995581-5cf4c4ab-1ec9-4ee7-91ec-207bcc9b8e00.png) 有时候缺少了7个字节,SEI 0x05类型没有正常以0x80结尾 ![图片](https://user-images.githubusercontent.com/33591752/143995643-9b899619-a2a8-4a43-8c53-7d42b3c2ff1b.png)

> hal 代码里用的是函数指针,找一下都 hal 里不同硬件的实现,都可以看到代码 @HermanChen hello,请问有什么相关的指导么?我目前觉得就是交给hal那边编码的时候,生成的结果的位置比预想的生成位置往前了几个字节……

@HermanChen 您好,问题基本上解决了 1. hal代码找到了,是我搜索没搜清楚;没弄错的话代码应该是`hal_h264e_vepu2_v2.c` 2. 本issue的问题没有具体定位什么原因,这个情况只有在1080P编码、High Profile情况下才出现,720P或者是Base Profile情况下正常;最后我把我 rk3399 原有SDK内库换成 github这边的mpp库最新提交就解决了问题。 3. 此外我获取SPS、PPS方法使用的是`MPP_ENC_GET_HDR_SYNC`造成的问题,demo里用的`MPP_ENC_GET_EXTRA_INFO`,我把这个改掉之后,会在1080P、High Profile的编码情况下,产生 SPS后面跟上IDR帧的情况。也没有确认原因。`MPP_ENC_GET_EXTRA_INFO`还是mpp的文档里说不要用我才换的`MPP_ENC_GET_HDR_SYNC`;目前可能只好继续用原来的方法。 该问题梳理总结如上,您确认后可以关闭此issue了。

> 怀疑问题根本原因是这样的: MPP_ENC_GET_EXTRA_INFO 得到的是内部数据的 packet 结构信息,在编码器配置更新之后,里面的内容也给更新了,再去拷贝数据是正常的。 MPP_ENC_GET_HDR_SYNC 是在接口调用时刻就进行拷贝,把当时参数条件下生成的不正常的头就拷贝出现,等编码器配置完成完成之后,拷贝出来的数据就和真正编码器内部的数据不一致了。 您这个说法我有个疑问,因为在`MPP_ENC_HEADER_MODE_EACH_IDR`情况下,每次编码到I帧都需要复制一次SPS PPS吧? 然后好像我mpp库换成github上的是没什么问题的样子