1 以x265视频编码器中的汇编为例, 计划打印calc_satd_16x8的中间计算过程
编译好x265 ,设置断点。
(gdb) b common/x86/pixel-a.asm:13550
No symbol table is loaded. Use the "file" command.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (common/x86/pixel-a.asm:13550) pending.
cglobal calc_satd_16x8 ; function to compute satd cost for 16 columns, 8 rows
call pixel_satd_16x8_internal_avx512
ret
pxor m6, m6
vbroadcasti128 m0, [r0]
vbroadcasti128 m4, [r2]
vbroadcasti128 m1, [r0 + r1]
vbroadcasti128 m5, [r2 + r3]
pmaddubsw m4, m7;m7 = 11111111,1-11-11-11-11-1 断点设置的这一行
2 然后输入参数运行编码
(gdb) r src_576x1024_30.yuv --input-res 576x1024 --fps 30 --preset slow -o abc.265
Starting program: /data/x265/source/x265 src_576x1024_30.yuv --input-res 576x1024 --fps 30 --preset slow -o abc.265
跳到

本文通过具体实例介绍了如何使用GDB调试工具观察x265视频编码器中calc_satd_16x8函数的汇编代码执行流程及寄存器状态,包括设置断点、运行编码器并打印寄存器值等步骤。
最低0.47元/天 解锁文章
867

被折叠的 条评论
为什么被折叠?



