dsafa

dsafa

0个粉丝

1

问答

0

专栏

0

资料

dsafa  发布于  2025-10-24 17:19:07
采纳率 0%
1个问答
318

H264文件->vdec->vpss->ive->UI UI显示横条纹

悬赏金¥ 5
已结题
   

HI3559Asdk20 H264文件->vdec->vpss->ive->UI UI显示横条纹 从VPSS拿到YUV的数据是正常的(保存了YUV图片并用YUVPLAYER显示了NV21数据),但是经过IVE转换成RGB发送到UI上是有横条纹的数据,详细现象如图。谁能给点思路

我来回答
回答12个
时间排序
认可量排序

mm

2个粉丝

1

问答

0

专栏

0

资料

mm 2025-10-25 10:04:36
认可0

看一下ive格式转换那部分

dsafa
dsafa   回复   mm  2025-10-25 16:54:24
0

怎么转才对呢

mm
mm   回复   dsafa  2025-10-25 17:55:04
0

细看ive开发参考

MA_NONG

10个粉丝

18

问答

3

专栏

0

资料

MA_NONG 2025-10-26 10:32:52
认可0

1:YUV —-> NV21
2:NV21 —-> RGB888
3:RGB888 —-> RGB565

610 + spi屏幕 显示没问题。

dsafa
dsafa   回复   MA_NONG  2025-10-27 17:00:51
0

YUV —-> NV21你这些分别用的哪些硬件转的 转888是vpss转的么

MA_NONG
MA_NONG   回复   dsafa  2025-10-28 09:49:47
0

线程实时获取vpss 的frame ,然后丢给 ive 转成 rgb888, 再进一步转成 rgb565(因为屏幕需要这个格式)

dsafa

0个粉丝

1

问答

0

专栏

0

资料

dsafa 2025-10-27 17:17:04
认可0

据采样 (第一行前10个):
79 79 78 78 77 76 75 75 75 74
UV数据采样 (第一行前20个,应为UVUV交错):
127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 128 128 | 128 128 |
🎯 IVE内存分配检查:
源图像物理地址: 0xdcd08000, 0xdcde9000
源图像虚拟地址: 0x7f9cf1f000, 0x7f9cd8f000
目标图像物理地址: 0xe5340000
目标图像虚拟地址: 0x7f8c85d000
🎯 IVE输出格式检查:
目标图像类型: 10
目标图像宽度: 1280
目标图像高度: 720
目标图像步长: 3840
期望步长(宽×3): 3840
📐 RGB配置:
Width: 1280
Height: 720
Stride: 3840
Width×3: 3840
Padding: 0 bytes/行
✅ RGB已映射: 0x0x7f8c85d000

🔍 像素采样 (检测横纹规律):
行00: ( 73, 74, 72) ( 73, 74, 72) ( 72, 73, 70) … mid:( 80, 78, 78) … end:( 0, 0, 0)
行01: (142,143,128) (129,204,205) (202,203,137) … mid:(148,149,154) … end:(228,227,226)
行02: (138,139,132) (133,196,197) (194,195,141) … mid:(221,220,211) … end:(234,237,236)
行03: ( 73, 74, 72) ( 73, 74, 72) ( 72, 73, 70) … mid:( 80, 78, 78) … end:( 0, 0, 0)
行04: ( 33, 32, 47) ( 46, 89, 88) ( 95, 94, 47) … mid:( 31, 30, 17) … end:(190,185,184)
行05: (184,185,182) (183, 6, 7) ( 0, 1,188) … mid:( 22, 23, 24) … end:( 97,102,103)
行06: ( 73, 74, 72) ( 72, 73, 70) ( 72, 73, 70) … mid:( 80, 78, 78) … end:( 0, 0, 0)
行07: (235,234,229) (228,222,223) (216,217,230) … mid:(142,143,128) … end:(104,111,110)
行08: (231,230,233) (232,218,219) (220,221,178) … mid:( 14, 15, 0) … end:(152,159,158)
行09: ( 73, 74, 72) ( 72, 73, 70) ( 71, 72, 69) … mid:( 80, 78, 78) … end:( 0, 0, 0)

📊 RGB统计分析:
采样数: 9216
R: avg=124, min= 0, max=255, range=255
G: avg=124, min= 0, max=255, range=255
B: avg=123, min= 0, max=255, range=255
⚠️ RGB值接近,可能是灰度图或UV未正确转换

💾 保存调试文件:
✅ /tmp/rgb_compact.rgb (正确stride处理)
✅ /tmp/rgb_test.ppm (可直接打开)
123240054784
“114.8G”
✅ /tmp/bgr_test.ppm (颜色互换版)
✅ /tmp/source.yuv (原始YUV)

🎬 播放命令:
ffplay -f rawvideo -pixel_format rgb24 -video_size 1280x720 /tmp/rgb_compact.rgb
ffplay -f rawvideo -pixel_format bgr24 -video_size 1280x720 /tmp/rgb_compact.rgb
ffplay -f rawvideo -pixel_format nv12 -video_size 1280x720 /tmp/source.yuv

xdg-open /tmp/rgb_test.ppm # 直接查看

RGB图像验证 - 宽: 1280, 高: 720, 步长: 3840, 大小: 2764800

========== 视频帧信息 ==========
📐 尺寸:
Width×Height: 1280×720
Stride: Y=1280, C=1280

🎨 格式:
PixelFormat: YUVSP (NV12)

📦 压缩模式:
enCompressMode: NONE (无压缩) ✅
enVideoFormat: LINEAR (逐行) ✅

💾 内存:
PhyAddr: Y=0xe1358000, C=0xe1439000

绘制解码后的数据
🎯 结论:

✅ 可以直接用于IVE转换

开始IVE转换…

========== 视频帧信息诊断 ==========
视频格式:
Width×Height: 1280×720
PixelFormat: 29
VideoFormat: 0
Field: 4
YUV Stride:
Y Stride: 1280
UV Stride: 1280
Y Height: 720
UV Height: 360 (应为 360)

========== YUV源数据检查 ==========
帧尺寸: 1280×720
Y Stride: 1280 (padding: 0)
UV Stride: 1280 (padding: 0)
Y平面大小: 921600 bytes
UV平面大小: 460800 bytes
Mapped: Y= 0x7f9cf1f000 UV= 0x7f9cd8f000

Y数据采样 (第一行前10个):
79 79 78 78 77 76 75 75 75 74
UV数据采样 (第一行前20个,应为UVUV交错):
127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 128 128 | 128 128 |
🎯 IVE内存分配检查:
源图像物理地址: 0xe1358000, 0xe1439000
源图像虚拟地址: 0x7f9cf1f000, 0x7f9cd8f000
目标图像物理地址: 0xe5340000
目标图像虚拟地址: 0x7f8c85d000
🎯 IVE输出格式检查:
目标图像类型: 10
目标图像宽度: 1280
目标图像高度: 720
目标图像步长: 3840
期望步长(宽×3): 3840
📐 RGB配置:
Width: 1280
Height: 720
Stride: 3840
Width×3: 3840
Padding: 0 bytes/行
✅ RGB已映射: 0x0x7f8c85d000

🔍 像素采样 (检测横纹规律):
行00: ( 73, 74, 72) ( 73, 74, 72) ( 72, 73, 70) … mid:( 80, 78, 78) … end:( 0, 0, 0)
行01: (142,143,128) (129,204,205) (202,203,137) … mid:(148,149,154) … end:(228,227,226)
行02: (138,139,132) (133,196,197) (194,195,141) … mid:(221,220,211) … end:(234,237,236)
行03: ( 73, 74, 72) ( 73, 74, 72) ( 72, 73, 70) … mid:( 80, 78, 78) … end:( 0, 0, 0)
行04: ( 33, 32, 47) ( 46, 89, 88) ( 95, 94, 47) … mid:( 31, 30, 17) … end:(190,185,184)
行05: (184,185,182) (183, 6, 7) ( 0, 1,188) … mid:( 22, 23, 24) … end:( 97,102,103)
行06: ( 73, 74, 72) ( 72, 73, 70) ( 72, 73, 70) … mid:( 80, 78, 78) … end:( 0, 0, 0)
行07: (235,234,229) (228,222,223) (216,217,230) … mid:(142,143,128) … end:(104,111,110)
行08: (231,230,233) (232,218,219) (220,221,178) … mid:( 14, 15, 0) … end:(152,159,158)
行09: ( 73, 74, 72) ( 72, 73, 70) ( 71, 72, 69) … mid:( 80, 78, 78) … end:( 0, 0, 0)

📊 RGB统计分析:
采样数: 9216
R: avg=124, min= 0, max=255, range=255
G: avg=124, min= 0, max=255, range=255
B: avg=123, min= 0, max=255, range=255
⚠️ RGB值接近,可能是灰度图或UV未正确转换

💾 保存调试文件:
✅ /tmp/rgb_compact.rgb (正确stride处理)
✅ /tmp/rgb_test.ppm (可直接打开)
✅ /tmp/bgr_test.ppm (颜色互换版)
✅ /tmp/source.yuv (原始YUV)

🎬 播放命令:
ffplay -f rawvideo -pixel_format rgb24 -video_size 1280x720 /tmp/rgb_compact.rgb
ffplay -f rawvideo -pixel_format bgr24 -video_size 1280x720 /tmp/rgb_compact.rgb
ffplay -f rawvideo -pixel_format nv12 -video_size 1280x720 /tmp/source.yuv

xdg-open /tmp/rgb_test.ppm # 直接查看

RGB图像验证 - 宽: 1280, 高: 720, 步长: 3840, 大小: 2764800

========== 视频帧信息 ==========
📐 尺寸:
Width×Height: 1280×720
Stride: Y=1280, C=1280

🎨 格式:
PixelFormat: YUVSP (NV12)

📦 压缩模式:
enCompressMode: NONE (无压缩) ✅
enVideoFormat: LINEAR (逐行) ✅
绘制解码后的数据

💾 内存:
PhyAddr: Y=0xdfabc000, C=0xdfb9d000

🎯 结论:

✅ 可以直接用于IVE转换

开始IVE转换…

========== 视频帧信息诊断 ==========
视频格式:
Width×Height: 1280×720
PixelFormat: 29
VideoFormat: 0
Field: 4
YUV Stride:
Y Stride: 1280
UV Stride: 1280
Y Height: 720
UV Height: 360 (应为 360)

========== YUV源数据检查 ==========
帧尺寸: 1280×720
Y Stride: 1280 (padding: 0)
UV Stride: 1280 (padding: 0)
Y平面大小: 921600 bytes
UV平面大小: 460800 bytes
Mapped: Y= 0x7f9cf1f000 UV= 0x7f9cd8f000

Y数据采样 (第一行前10个):
79 79 78 78 77 76 75 75 75 74
UV数据采样 (第一行前20个,应为UVUV交错):
127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 127 128 | 128 128 | 128 128 |
🎯 IVE内存分配检查:
源图像物理地址: 0xdfabc000, 0xdfb9d000
源图像虚拟地址: 0x7f9cf1f000, 0x7f9cd8f000
目标图像物理地址: 0xe5340000
目标图像虚拟地址: 0x7f8c85d000
🎯 IVE输出格式检查:
目标图像类型: 10
目标图像宽度: 1280
目标图像高度: 720
目标图像步长: 3840
期望步长(宽×3): 3840
📐 RGB配置:
Width: 1280
Height: 720
Stride: 3840
Width×3: 3840
Padding: 0 bytes/行
✅ RGB已映射: 0x0x7f8c85d000

🔍 像素采样 (检测横纹规律):
行00: ( 73, 74, 72) ( 73, 74, 72) ( 72, 73, 70) … mid:( 80, 78, 78) … end:( 0, 0, 0)
行01: (142,143,128) (129,204,205) (202,203,137) … mid:(148,149,154) … end:(228,227,226)
行02: (138,139,132) (133,196,197) (194,195,141) … mid:(221,220,211) … end:(234,237,236)
行03: ( 73, 74, 72) ( 73, 74, 72) ( 72, 73, 70) … mid:( 80, 78, 78) … end:( 0, 0, 0)
行04: ( 33, 32, 47) ( 46, 89, 88) ( 95, 94, 47) … mid:( 31, 30, 17) … end:(190,185,184)
行05: (184,185,182) (183, 6, 7) ( 0, 1,188) … mid:( 22, 23, 24) … end:( 97,102,103)
行06: ( 73, 74, 72) ( 72, 73, 70) ( 72, 73, 70) … mid:( 80, 78, 78) … end:( 0, 0, 0)
行07: (235,234,229) (228,222,223) (216,217,230) … mid:(142,143,128) … end:(104,111,110)
行08: (231,230,233) (232,218,219) (220,221,178) … mid:( 14, 15, 0) … end:(152,159,158)
行09: ( 73, 74, 72) ( 72, 73, 70) ( 71, 72, 69) … mid:( 80, 78, 78) … end:( 0, 0, 0)

📊 RGB统计分析:
采样数: 9216
R: avg=124, min= 0, max=255, range=255
G: avg=124, min= 0, max=255, range=255
B: avg=123, min= 0, max=255, range=255
⚠️ RGB值接近,可能是灰度图或UV未正确转换

💾 保存调试文件:
✅ /tmp/rgb_compact.rgb (正确stride处理)
✅ /tmp/rgb_test.ppm (可直接打开)
✅ /tmp/bgr_test.ppm (颜色互换版)
✅ /tmp/source.yuv (原始YUV)

🎬 播放命令:
ffplay -f rawvideo -pixel_format rgb24 -video_size 1280x720 /tmp/rgb_compact.rgb
ffplay -f rawvideo -pixel_format bgr24 -video_size 1280x720 /tmp/rgb_compact.rgb
ffplay -f rawvideo -pixel_format nv12 -video_size 1280x720 /tmp/source.yuv

xdg-open /tmp/rgb_test.ppm # 直接查看

RGB图像验证 - 宽: 1280, 高: 720, 步长: 3840, 大小: 2764800

========== 视频帧信息 ==========
📐 尺寸:
Width×Height: 1280×720
Stride: Y=1280, C=1280

🎨 格式:
PixelFormat: YUVSP (NV12)

绘制解码后的数据
📦 压缩模式:
enCompressMode: NONE (无压缩) ✅
enVideoFormat: LINEAR (逐行) ✅

💾 内存:
PhyAddr: Y=0xdc600000, C=0xdc6e100

dsafa

0个粉丝

1

问答

0

专栏

0

资料

dsafa 2025-10-27 17:19:06
认可0

来个大哥呀 我从vpss拿的nv12给ive转 转出来就是横纹图像

dsafa

0个粉丝

1

问答

0

专栏

0

资料

dsafa 2025-10-27 17:22:39
认可0

陈思雅

0个粉丝

0

问答

0

专栏

0

资料

陈思雅 2025-10-27 19:07:15
认可0

问问专门搞海思的

dsafa

0个粉丝

1

问答

0

专栏

0

资料

dsafa 2025-10-28 14:20:18
认可0

一个相似的地方 输出的RGB数据跟原图比 不够全

dsafa

0个粉丝

1

问答

0

专栏

0

资料

dsafa 2025-10-28 15:35:11
认可0

720p

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区