264 參考幀 list0 list1

作了這么久的h264工作,這部分還一直從未去深入了解過,真是不求甚解啊,那幫老外的代碼也寫得太全了,該部分至今天才開始研究

首先參考幀這里關注的是兩種,p ,b ,前向參考和后向參考

由白皮書中看到,p幀的參考幀都在list0中,該list0可以包含p幀之前的也可以是之后(播放次序),這里的之后并不是說p幀成b幀了,這就是264搞這么復雜的因素吧,

解碼編碼時,一個幀(暫且不考慮多slice)只能被標示為

a,不是參考幀

b,放在short-term中作參考幀

c,放在long-term中作參考幀

d,? 直接輸出顯示

我在這里就直接翻譯白皮書了,一個關鍵點,P幀只參考list0,B幀則list0,list1皆可

list0中,short-term中圖像由自帶的picnum(每個圖像都有的一個變量),計算出一個值,然后從高到低排列在short-term中,long-term也是如此,但是它次序是從低到高,每次編碼解碼完一幀,這個次序會隨之變動,如果碼流中標示變動的話。最后會由于這個因素,長江后浪推前浪,前浪被推出參考序列(因為參考序列中的數目是固定的,比如標準最多是16,編碼器可控)。?編碼器可任意對list0中參考幀進行變動。

具體解碼中,這個參考方式是細化到宏塊,甚至4x4的子快,一個宏塊頭信息中標示著內部參考方式,如果可能,多到16種。通過這個數目從list0中找出參考幀。

需要說明一下白皮書中的例子

list0:,假設參考幀是5個,

正常情況下,編完一幀都是把他放到最近的short-term中,意味著最容易被參考到,如果編碼器其需要改動,就會把某一幀放到short-term的后面,就是long-term,這些都是按照longtermpicnum,shortpicnum的大小次序存放。而0,1,2,3,4,則會在每一個宏塊甚至子塊的解碼過程中用到。

IDR幀將上述的次序全部清零,重新開始排序。

邊看標準和代碼,別寫下這些文字,沒有整理,湊合看吧。

B幀的list1,也是按照list0的排列規則存放,然后具體到每個宏塊,則可能該宏塊同時參考到list0和list1,那就是需要avg的算法了,絕大部分編解碼都有該關鍵詞來處理B幀。

等有空放上具體代碼及詳解。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449995.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449995.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449995.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面試官問我:什么是JavaScript閉包,我該如何回答

閉包,有人說它是一種設計理念,有人說所有的函數都是閉包。到底什么是閉包?這個問題在面試是時候經常都會被問,很多小白一聽就懵逼了,不知道如何回答好。這個問題也有很多朋友在公眾號給李老師留言了,問題表…

robotframework基礎學習(8)

變量的使用 在 Edit 標簽頁中主要分:加載外部文件、定義內部變量、定義元數據等三個部分。 (1):加載外部文件Add Library:加載測試庫,主要是[PYTHON 目錄]\Lib\site-packages 里的測試庫 Add Resource&…

版本字符串比較工具接口常用接口函數

版本升級比較常用的接口,字符串解析,不是很難,但沒必須重復造輪子,保存一份網上搜到的實現: /*** 比較版本號的大小,前者大則返回一個正數,后者大返回一個負數,相等則返回0** param version1* param version2* return…

[藍橋杯]ALGO-188.算法訓練_P0504

Anagrams指的是具有如下特性的兩個單詞:在這兩個單詞當中,每一個英文字母(不區分大小寫)所出現的次數都是相同的。例如,Unclear和Nuclear、Rimon和MinOR都是Anagrams。編寫一個程序,輸入兩個單詞&#xff0…

什么是3-2混合

正如上面所述,電影轉換成視頻時,每秒24幀必須轉成每秒60場(30幀)。實現這一點的方法是把電影的第一幀顯示3場,然后把第二幀顯示2場,再把第三幀顯示3場,以此類推。這個3-2-3-2-3-2的順序就被稱為…

shell 的here document 用法、輸入/輸出重定向

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 什么是Here Document Here Document 是在Linux Shell 中的一種特殊的重定向方式&#xff0c;它的基本的形式如下 cmd << delimiter…

beta第二天

團隊成員 鄭西坤 031602542 &#xff08;隊長&#xff09; 陳俊杰 031602504陳順興 031602505張勝男 031602540廖鈺萍 031602323雷光游 031602319吳志鴻 0316206341.昨天的困難 陳順興&#xff1a;無 廖鈺萍&#xff1a;無 吳志鴻&#xff1a;沒有 雷光游&#xff1a;無 鄭西坤…

void和void *

void f(void) { // 參數void可以省略cout << "aa"<<endl; } int t 22; int *a &t; void *p; // void *可以被賦值為其他類型 p a; cout << *(int *)p; // 使用的時候必須轉到那個類型 轉載于:https://www.cnblogs.com/pjishu/p/10343587.…

Android應用開發—Application

What is Application Application和Activity&#xff0c;Service一樣是android框架的一個系統組件&#xff0c;當android程序啟動時系統會創建一個application對象&#xff0c;用來存儲系統的一些信息。通常我們是不需要指定一個Application的&#xff0c;這時系統會自動幫我們…

C語言符號

C語言運算符的優先級 一、運算符的優先級表 C 語言的符號眾多&#xff0c;由這些符號又組合成了各種各樣的運算符。既然是運算符就一定有其特定的優先級&#xff0c;下表就是C 語言運算符的優先級表&#xff1a; 注&#xff1a;同一優先級的運算符&#xff0c;運算次序由結合…

手機按鍵中控運行思路的個人理解

目前而言基本的自己理解的中控多線程腳本無非就是兩種1.主代碼作為腳本功能的載體 另外開辟一個線程作為和中控保持聯系的部分(下面只是思路 無法直接運行)Import "zm.luae" zm.Init /* 該思路下的基本流程 從UI界面獲取到云賬號 和 本地的配置信息---->根據自己…

burp過期了,換一個

先從吾愛破解論壇下載工具&#xff1a;https://down.52pojie.cn/Tools/Network_Analyzer/Burp_Suite_Pro_v1.7.37_Loader_Keygen.zip 工具運行需要Java環境&#xff0c;請自行安裝&#xff0c;此處不贅述。解壓完后雙擊keygen 填一下License Text(隨意)&#xff0c;然后點擊Run…

加載一張圖片到ImageView到底占據多少內存

https://blog.csdn.net/BUG_delete/article/details/79557939 簡介 Android中經常要通過ImageView進行圖片資源顯示。在加載圖片時&#xff0c;首先要考慮的兩個因素就是體驗問題和性能問題。 其中&#xff0c;體驗問題是指圖片顯示的是否正確&#xff08;例如Universal-Imag…

mysql -u root -p 解釋

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 mysql -u 用戶名 -p 密碼 是連接數據庫服務器的命令。要求你輸入自己連接數據庫的用戶名和密碼。 考慮密碼如果直接明文寫在這條命令行…

hbase 概念

在hbase里面有幾個通俗的名稱會經常出現 1&#xff09;Hregion region 2&#xff09;Hregionserver regionserver 3&#xff09;Hmaster master 4&#xff09;Hmamstore memstore 5&#xff09;Hfile storeFile 1、什么是hbase&#xff1f; 1&#xff09;它是基于稀疏的、…

beta沖刺第三天

團隊成員 鄭西坤 031602542 &#xff08;隊長&#xff09; 陳俊杰 031602504陳順興 031602505張勝男 031602540廖鈺萍 031602323雷光游 031602319吳志鴻 0316206341.昨天的困難 陳順興&#xff1a;理解別人的代碼 廖鈺萍&#xff1a; 吳志鴻&#xff1a;無 雷光游&#xff1a; …

多線程詳解

1. 進程與線程有那些區別和聯系&#xff1f;   每個進程至少需要一個線程。 進程由兩部分構成&#xff1a;進程內核對象&#xff0c;地址空間。線程也由兩部分組成&#xff1a;線程內核對象&#xff0c;操作系統用它來對線程實施管理。線程堆棧&#xff0c;用于維…

AirPods的自動連接配對原理

首次連接 打開裝有 AirPods 的充電盒&#xff0c;并將它放在 iPhone 旁邊。此時你的 iPhone 上將出現設置動畫。輕點「連接」&#xff0c;然后輕點「完成」。 就這么簡單&#xff0c;而且會自動設置&#xff0c;實現與已使用同一 Apple ID 登錄 iCloud 的任一支持設備搭配使用…

Linux chmod命令

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Linux/Unix 的文件調用權限分為三級 : 文件擁有者、群組、其他。利用 chmod 可以藉以控制文件如何被他人所調用。 使用權限 : 所有使用…

模塊化

我那進了"模塊化研究"小組.所以嘞.研究模塊化以及如何讓項目的模塊化更加合理和高效是我們小組的主要目的.首先&#xff0c;在實行模塊化之前,得先鞏固模塊化開發的理論基礎,因為理論是實踐的基礎。只有這樣&#xff0c;在過程中理論與實踐相結合,才有可能達到最滿意…