[英]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。 這似乎更有意義,否則只有在i8x8
為0
時才能將條件評估為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.