gpt4 book ai didi

c++ - 有没有人有使用 C++ 解析 Exp-Golomb 代码的简单解决方案?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:56 24 4
gpt4 key购买 nike

尝试解码 H.264 视频流的 SDP sprop-parameter-sets 值并发现访问某些值将涉及 Exp-Golomb 编码数据的解析,我的方法包含 base64 解码的 sprop-parameter-在一个字节数组中设置数据,我现在有点走,但已经到了 Exp-Golomb 编码数据的第一部分,并寻找合适的代码提取来解析这些值。

最佳答案

什么阶的 Exp.-Golomb 代码?如果您需要解析 H.264 比特流(我的意思是传输层),您可以编写一个简单的函数来访问无尽比特流中的特定比特。从左到右的位索引。

inline u_dword get_bit(const u_byte * const base, u_dword offset)
{
return ((*(base + (offset >> 0x3))) >> (0x7 - (offset & 0x7))) & 0x1;
}

该函数实现零范围的exp-Golomb码解码(用于H.264)。

u_dword DecodeUGolomb(const u_byte * const base, u_dword * const offset)
{
u_dword zeros = 0;

// calculate zero bits. Will be optimized.
while (0 == get_bit(base, (*offset)++)) zeros++;

// insert first 1 bit
u_dword info = 1 << zeros;

for (s_dword i = zeros - 1; i >= 0; i--)
{
info |= get_bit(base, (*offset)++) << i;
}

return (info - 1);

u_dword 表示无符号 4 字节整数。u_byte 表示无符号 1 字节整数。

请注意,每个 NAL Unit 的第一个字节是具有禁止位、NAL 引用和 NAL 类型的指定结构。

关于c++ - 有没有人有使用 C++ 解析 Exp-Golomb 代码的简单解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2363500/

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