簡體   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