两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于h264、h265視頻分析的時間戳補償或修正的方法

文檔序號:9814820閱讀:2432來源:國知局
一種基于h264、h265視頻分析的時間戳補償或修正的方法
【技術領域】
[0001]本發(fā)明涉及一種基于H264、H265視頻分析的時間戳補償或修正的方法。
【背景技術】
[0002]視頻文件或者流是由視頻基本流(Video Element Stream)以及視頻容器(container)組成,視頻基本流的格式包含H264、H265等視頻格式,視頻內(nèi)容包含顯示時間計數(shù)(P0C,Picture Order of Count),容器包含MPEG、TS、PS、VOB、MKV、AV1、FLV等國際通用容器格式,包含了每一幀的時間戳(PTS)以及/或者Frame rate信息,而這些時間戳信息可能通過各種傳輸系統(tǒng)、處理系統(tǒng),及最后由于各種原因?qū)е聛G失或者錯誤,這樣的視頻文件在后續(xù)的使用(播放、編輯、轉(zhuǎn)碼等)會造成很多問題,比如出現(xiàn)卡頓、與設備的兼容性等問題。

【發(fā)明內(nèi)容】

[0003]基于此,有必要提供一種用于檢測視頻文件或者視頻流中的時間戳丟失或錯誤,且可補償或修正這些時間戳的基于H264、H265視頻分析的時間戳補償或修正的方法。
[0004]根據(jù)本發(fā)明的一方面,提供了一種基于H264、H265視頻分析的時間戳補償或修正的方法,包括如下步驟:
[0005]解析原始文件的容器層信息,獲取每幀的時間戳,并在缺失時間戳的幀位標注“缺失”;
[0006]解析原始文件的視頻層信息,記錄每幀的P0C;
[0007]統(tǒng)一化跨GOP的POC,使后一個GOP的任意一幀的POC,大于前一個GOP的任意一幀的POC ;
[0008]對每幀的POC按照從小到大進行排序,并對缺失時間戳的幀進行補償處理;
[0009]對每幀的時間戳按照從小到大進行排序,并對時間戳進行檢測,對存在錯誤的時間戳進行修正。
[0010]在其中一個實施例中,對缺失時間戳的幀進行補償處理的步驟中,具體的補償處理方法如下:
[0011 ] al、先找到含POC序號最小、且無缺失時間戳的幀;
[0012]bl、若步驟al找到的幀非第一個幀,則先對步驟al找到的幀以前的所有缺失時間戳的幀進行補償;
[0013]Cl、對于步驟al找到的幀之后的幀,通過增加單幀時長的算法,對步驟al找到的幀往后所有缺失時間戳的幀進行補償。
[0014]這種基于H264、H265視頻分析的時間戳補償或修正的方法,通過檢測到的容器層的時間戳缺失或者錯誤等信息,可根據(jù)視頻文件中的P0C、時間戳以及單幀時長信息來重構(gòu)正確的時間戳,從而使視頻文件可以兼容更多的視頻播放、編輯等軟硬件。
【具體實施方式】
[0015]為了便于理解本發(fā)明,下面將用具體實施例對本發(fā)明進行更全面的描述。但是,本發(fā)明可以以許多不同的形式來實現(xiàn),并不限于本文所描述的實施例。相反地,提供這實施例的目的是使對本發(fā)明的公開內(nèi)容的理解更加透徹全面。
[0016]本發(fā)明一實施例的基于H264、H265視頻分析的時間戳補償或修正的方法,包括如下步驟:
[0017]解析原始文件的容器層信息,獲取每幀的時間戳,并在缺失時間戳的幀位標注“缺失”;
[0018]解析原始文件的視頻層信息,記錄每幀的P0C;
[0019]統(tǒng)一化跨GOP的POC,使后一個GOP的任意一幀的POC,大于前一個GOP的任意一幀的POC ;
[0020]對每幀的POC按照從小到大進行排序,并對缺失時間戳的幀進行補償處理;
[0021]對每幀的時間戳按照從小到大進行排序,并對時間戳進行檢測,對存在錯誤的時間戳進行修正。
[0022]具體地,解析原始文件的視頻層信息,記錄每幀的POC的步驟中,POC代表了當前幀與當前GOP內(nèi)與其他幀的顯示先后關系。同一個GOP內(nèi),POC越小,則顯示順序越考前,POC越大,則顯示順序越靠后。由于POC不容易因視頻處理傳輸?shù)倪^程發(fā)生變化,所以可認為POC是穩(wěn)定可靠的信息,且每幀都有POC,不存在缺失的問題。
[0023]具體地,統(tǒng)一化跨GOP的POC的步驟中,由于文件位置較前的GOP的任意一幀的顯示順序都先于文件位置較晚的GOP中的任意一幀,可通過以下方法調(diào)整POC的值,使得文件中所有的POC按順序呈現(xiàn)越大。
[0024]具體的調(diào)整方法如下:
[0025]對于第一個G0P,調(diào)整后的POC記為原始P0C,并記錄當前最大的P0CS“P0C max”;
[0026]若對于第η個GOP的POC已經(jīng)調(diào)整完畢,第n+1個GOP的POC調(diào)整步驟為,設第n+1個GOP的最小POC記錄為“POC min”,則第n+1個GOP的每幀的POC都加上“(“POC max,,+ l)-“P0Cmin””,同時將調(diào)整完第n+1后的最大的POC記錄為“POC max” ;
[0027]從第一個GOP到最后G0P,反復遞歸調(diào)整,直到文件中的所有GOP調(diào)整完畢,則調(diào)整后的POC代表了文件中所有幀的顯示先后關系。
[0028]具體地,對每幀的POC按照從小到大進行排序的步驟,具體的排序方法如下:
[0029]設文件共有I個幀,對每幀的POC按從小到大的順序進行編碼,第i個POC的序號為O
(i),l < 1^0(1)<0(1)<00),大小判斷原則為0(1-1)<0(1)<0(1+1)。
[0030]對缺失時間戳的幀進行補償處理的步驟,具體的補償處理方法如下:
[0031]al、先找到含所述POC序號最小、且無缺失所述時間戳的所述幀;
[0032]具體為,先找到含POC序號最小、且無缺失時間戳的幀,設該幀的POC序號為0(p),I<P< N,對該幀的時間戳進行對應的編碼,序號為PTS(p)。
[0033]bl、若步驟al找到的所述幀非第一個幀,則先對步驟al找到的所述幀以前的所有缺失所述時間戳的幀進行補償;
[0034]具體為,若O(p )> O (I ),則先補償序號為O (I)?O (p-1)的POC對應的幀的時間戳,補償方法為,設一幀含序號為O (q)的POC,I < q < P,按照算式“PTS (p)-(0(p)_0(q))X單幀時長”得出該序號為0(q)的POC的幀對應的時間戳。
[0035]Cl、對于步驟al找到的所述幀之后的幀,通過增加單幀時長的算法,對步驟al找到的幀往后所有缺失所述時間戳的幀進行補償。
[0036]具體為,對于含序號為0(ρ+1)的POC的幀,若該幀缺失時間戳,按照算式“PTS(p+l)= PTS(P)+單幀時長”得出該序號為0(ρ+1)的POC的幀對應的時間戳。
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
志丹县| 武定县| 出国| 凯里市| 沙洋县| 伊宁市| 奉化市| 肥东县| 湘西| 宿迁市| 通海县| 鄂托克前旗| 红桥区| 南京市| 鄂州市| 潼关县| 曲阜市| 芜湖市| 宜川县| 修水县| 辉南县| 靖州| 济宁市| 河西区| 涪陵区| 浙江省| 高雄县| 方正县| 崇信县| 临沭县| 红河县| 景德镇市| 鄂伦春自治旗| 离岛区| 昌邑市| 疏勒县| 浦城县| 玛曲县| 同江市| 东兰县| 盐池县|