繁体   English   中英

您如何从H264规范中了解这条线

[英]How do you understand this line from H264 specifications

此处提供的H264(mpeg4第10部分AVC)规范中,我们可以阅读第59页的以下内容(为清晰起见,对SO进行了一些简化):

for(i8x8 = 0; i8x8 < 4; i8x8++) 
  for(i4x4 = 0; i4x4 < 4; i4x4++) 
     if(CodedBlockPatternLuma & (1 << i8x8))
       doSomething()

我想知道如何解释if语句的内容。 查看其他实现,似乎要进行的测试是检查它是否为0。 这似乎更有意义,否则只有在i8x80时才能将条件评估为true 你怎么理解的?

它正在测试是否设置了特定位。 1 << i8x8取一个“ 1”位并将其左移可变数量的空格,然后将其移至CodedBlockPatternLuma以查看是否设置了该位。 如果模式为10101010,而i8x8为2,则模式与100进行“与”运算,因此10101010&00000100 = 00000000,该位未设置。 如果pattern是01010101,并与00000100进行AND运算,则该位置1,这将是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM