我在这里很困惑。以下是ITU T.81的一些摘录;
关于扫描数据中DC系数的附录F F.1.2.1.1节:
“当DIFF为正时,附加DIFF的SSSS低位。 当DIFF为负时,(DIFF - 1)的SSSS低位为 追加。请注意附加位的最高位 对于负差异,序列为0,对于正差异,序列为1 差异“。
对于扫描数据中AC系数的F.1.2.2.1节的相同附件F末端非常相似:
“附加位的格式与编码时的格式相同 DC系数。 SSSS的值给出了额外的数量 指定符号和精确幅度所需的位 系数。附加位是低位SSSS位 当ZZ(K)为正时ZZ(K)或ZZ(K)-1的低阶SSSS位 当ZZ(K)为负时。“
Q1:它表示“请注意,附加位序列的最高有效位为0表示负差异,1表示正差异”但与签名数字的工作方式不同?如果最高有效位为1表示我们有负数,否则我们有正数。但这里这个简单的规则是相反的!?
Q2。在这两种情况下,如果它是正的,我们写ZZ(K),如果它是负的,我们写ZZ(K)-1。如果ZZ(K)为负,我们为什么要写ZZ(K)-1?我无法从文档中理解这一点。
Q3。符号位本身实际上是否来自SSSS中指定的位数?
这三件事情让我很烦恼,如果你能回答我,我会非常感激。
答案 0 :(得分:0)
如果最高位为1表示我们有负数,否则我们有正数。但这里这个简单的规则是相反的!?
因为您正在处理可变长度数据,所以没有符号位。长度与位值一起使用。
如果长度= 1,则位= 1,结果值为1,就好像它是在完整的有符号字节中编码一样。该规则没有被撤销。
Q2。在这两种情况下,如果它是正的,我们写ZZ(K),如果它是负的,我们写ZZ(K)-1。如果ZZ(K)为负,我们为什么要写ZZ(K)-1?
这只是编码负数的选择方式。在正常的4字节编码-1中,您将获得二进制值
1111 1111 1111 1111 1111 1111 1111 1111
需要32位进行编码。
相反,它使用长度和单个位进行编码:长度= 1,位= 0。
对于零,你只需要长度= 0,位= 0。
在这种类型的可变长度编码中,必须翻转正值或负值以区分它们。他们碰巧选择了否定。
Q3。符号位本身实际上是否来自SSSS中指定的位数?
此编码中没有符号位。