gpt4 book ai didi

c++ - SHLD+BSR解码器?

转载 作者:太空宇宙 更新时间:2023-11-04 04:53:52 25 4
gpt4 key购买 nike

阅读以下内容 blog post .提到了所谓的“SHLD+BSR”霍夫曼解码器,然后进一步扩展为 MOV, MOV, SHLD, OR, BSR, MOV, SHR, MOV, OR, ADD, ADC,但是我尚未找到描述此类解码的任何引用或源代码。有谁知道指的是什么解码方式?

最佳答案

我还没有真正成功地理解这种解码霍夫曼码的方法,但是这里相关的“内部循环”包含这样的东西(稍微编辑以使 SHDL 和 BSR 明显):

uint32 posidx = pos >> 5;
uint32 code = src32[posidx];
uint32 extrabits = src32[posidx + 1];
SHLD(code, extrabits, pos);
code |= 1;
uint32 idx = BSR(code);
uint8 *p = (const uint8 *)(table->mBsrLenTable[idx] +
2*(code >> table->mBsrShiftTable[idx]));
result = p[0];
pos += p[1];

这说明了 MOV、MOV、SHLD、OR、BSR、MOV、SHR、MOV 但我不再确定了。我认为 ADD 指的是乘以 2,ADC 实际上是加法 p[1]posOR 加入 mBsrLenTable 条目和其余代码,但这似乎顺序错误然后OR 将对应于源代码中的添加。也许我不应该在午夜之后做这种事情..

你最好自己看看源码,因为老实说,我的回答毫无用处。我在这里得到它:sourceforge.net/projects/virtualdub/files/virtualdub-win/1.9.11.32842/VirtualDub-1.9.11-src.7z查找文件 src\Meia\source\decode_huffyuv.cpp,它从表初始化开始,实际解码在名为 DECODE 的宏中,大约 200 行以下。

关于c++ - SHLD+BSR解码器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11803137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com