【问题标题】:ARM assembly: Dumping d1 and d5 registersARM 汇编:转储 d1 和 d5 寄存器
【发布时间】:2014-11-26 02:19:01
【问题描述】:

我正在尝试调整以下代码以进行半比例 + Y8 提取:

https://github.com/emrainey/DVP/blob/master/libraries/public/yuv/__uyvy_half_scale_image.S

我只想修改第 105 和 106 行并转储到 pDst d1 和 d5。

根据第 105 行:

https://github.com/emrainey/DVP/blob/master/libraries/public/yuv/yuv.inc

我认为 d0 有 u/V,d1 有 Y,d4 有 U/V,d5 有 Y。

我用 vst1.8 和 vst2.8 尝试过各种事情,但没有任何运气。我该怎么做?

【问题讨论】:

  • 什么不起作用?通常从输出图像的外观,您就可以判断出问题所在。

标签: assembly arm


【解决方案1】:

查看 vst 指令。它们按 16 位解交织,这意味着它们分别包含 U+Y 和 V+Y。

如果我没记错的话,您只需要亮度值,并且必须从所有四个寄存器中提取它们。

vtrn.8 d1, d0
vtrn.8 d5, d4

那么你在 d0 和 d4 中有 Y 值

不过要小心。然后,该例程从头到尾包含大量不必要的指令。

您为什么不查看其他来源?由于糟糕的指令选择、不考虑的寄存器分配以及缺乏残差处理,这个库对于学习/修改来说是一个非常糟糕的起点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    相关资源
    最近更新 更多