Toybrick

标题: 3588 mpp解码怎么设置图像输出的stride? [打印本页]

作者: shipinchuli    时间: 2025-3-4 10:12
标题: 3588 mpp解码怎么设置图像输出的stride?
     3588进行h.264解码,码流图像是1024*768 ,解码后图像格式是YUV420sp,输出帧的buf申请空间是1920*1200大小。希望mpp解码后的1024*768图像能按hor_stride=1920换行来放置。但实际上MPP解码函数总是连续放置像素,即1024像素后,不换行,继续在同行的1025,1026等连续放置。    我的解码器帧MPPFrame的参数设置是:width=1024 ; heigth=768;  hor_stride=1920; ver_stride=1200 .但hor_stride参数似乎不起作用。  解码器总按图像的大小连续在buf内放置。
    1)MPP能实现hor_stride,ver_stride二维排列放置像素吗?
    2)怎么设置解码器的width, heigth, hor_stride,ver_stride参数或其它参数能做到上面功能?







作者: jefferyzhang    时间: 2025-3-5 10:29
不能设置,对齐是硬件属性,取决于硬件一次性读取和处理的最佳数据长度。
作者: shipinchuli    时间: 2025-3-5 15:19
查看3588的硬件手册,它有HOR_STRIDE的寄存器,  RKVDEC_SWREG18_Y_HOR_STRIDE        Address: Operational Base + offset (0x0048), 不知此寄存器是否就是像素行间距stride? 解码图像是否按此来换行?
作者: shipinchuli    时间: 2025-3-5 15:27
MPPFrame的图像是宽高二维结构,Mpp解码后的数据应该可以按MPPFrame的宽高来填图像数据吧?否则还需RGA再搬动一次?
作者: jefferyzhang    时间: 2025-3-5 17:30
shipinchuli 发表于 2025-3-5 15:27
MPPFrame的图像是宽高二维结构,Mpp解码后的数据应该可以按MPPFrame的宽高来填图像数据吧?否则还需RGA再搬 ...

MPP解码后结果会传递实际宽高和对齐后宽高2对参数,如果对齐宽高大于实际宽高,需要裁剪。这些属性是标准的,包括pc端播放器也是这么做的。
作者: shipinchuli    时间: 2025-3-5 18:20
1  DRM显示的MppBuf和宽高、对齐宽高(stride)传递给MPP解码器后。  解码器不能按DRM提供的对齐宽高(stride)来填充BUF?  解码器的对齐宽高(strdie)是自己内部产生的?不能外部输入?
2  DRM的显示宽高和 解码的图像大小不一致的话,必须用RGA再复制一次?不能实现mpp解码到drm的零拷贝?
作者: shipinchuli    时间: 2025-3-5 18:46
例如:用mpp解压2个不同分辨率的Jpeg文件,解压后的图像,怎么输出到同一个分辨率的DRM中?MPP不能按DRM传入的stride自动对齐吗?必须按MPP的“对齐宽高”再复制到DRM显示? (DRM分辨率大于 jpeg文件分辨率)
作者: jefferyzhang    时间: 2025-3-6 11:47
VOP是可以使用DRM接口自己剪裁显示的,剪裁并不一定要用RGA,很多IP都带有剪裁功能,比如GPU、VOP、RGA、CIF,具体场景看具体应用。
作者: shipinchuli    时间: 2025-3-6 18:09
jefferyzhang 发表于 2025-3-6 11:47
VOP是可以使用DRM接口自己剪裁显示的,剪裁并不一定要用RGA,很多IP都带有剪裁功能,比如GPU、VOP、RGA、CI ...

好的,多谢解答!




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3