一種碼流定點搜索方法、裝置及播放器的製作方法
2023-08-06 11:43:51 3
專利名稱:一種碼流定點搜索方法、裝置及播放器的製作方法
技術領域:
本發明屬於數字碼流播放技術領域,尤其涉及一種碼流定點搜索方法、裝置及播放器。
背景技術:
在數字碼流(如音樂、視頻等)播放中,經常有從某個特定時間點開始播放的需求,也即碼流定點播放,需要先搜索與 該特定時間點對應的碼流文件位置,從而從該文件位置處播放,進一步實現音視頻數據的同步,如用戶想從第5分鐘開始觀看視頻,則需要找到碼流中最接近5分鐘的圖像時間戳,並跳到該位置開始播放,而該時間戳表明了每一幀圖像的輸出時間。對於有位置索引的碼流,可以通過索引表,直接跳到需要的時間進行播放,但對索引表不完整或無索引表的數字碼流時,則無法通過查找索引表的方法進行精確搜索。針對無索引表的碼流,目前用到的一種搜索方法的步驟如下,如說明書附圖1所示:在步驟SlOl中,根據預設的待搜索時間、碼流總時間及碼流總大小,獲取與該待搜索時間對應的預選碼流文件位置。具體地,利用預設的待搜索時間、碼流總時間及碼流總大小,根據下式計算得到待搜索時間對應的碼流文件位置:Pos = Tseek*Stotal/Ttotal.
其中,Tseek為待搜索時間,Ttotal為碼流總時間,也即視頻碼流總時間,Stotal為碼流總大小,也即視頻碼流總大小,Pos為估算得到的預選碼流文件位置。在步驟S102中,將碼流跳轉到該預選碼流文件位置處,獲取與該碼流文件位置對應的時間戳,並記錄該跳轉的次數。具體地,將碼流跳轉到計算得到的預選文件位置Pos,找到該位置附近的時間戳Tfound,並記錄該跳轉的次數。在步驟S103中,判斷該時間戳減去該待搜索時間的差值是否超過預設的精度值範圍,是,則執行步驟S104,否,則執行步驟S109,結束搜索。在步驟S104中,將該碼流文件位置減去預設的偏移量,以獲取新的碼流文件位置。在步驟S105中,判斷該待搜索時間減去該時間戳的差值是否超過該預設的精度值範圍,是,則執行步驟S106,否,則執行步驟S109,結束搜索。在步驟S106中,將該碼流文件位置加上該預設的偏移量,以獲取新的碼流文件位置。具體地,比較找到的時間戳Tfound與待搜索時間Tseek,若Tfound大於/小於待搜Tseek超過設定精度,則對應地把Pos減/加上一定的偏移量。步驟S107,更新該預選碼流文件位置為新的碼流文件位置。步驟S108,判斷該跳轉的次數是否超過預設的次數,是,則執行步驟S109,結束搜素,否,則返回執行步驟S102。
該搜索方法能夠達到精確搜索的一個前提是:整個碼流的碼率變化較小,即碼流播放中每秒鐘所佔的文件大小基本相同,而當碼流的碼率變化較大時,則很難在較少的文件跳轉次數內達到一定的精度,多次的文件跳轉和尋找碼流的時間會大大降低搜索的效率。
發明內容
本發明實施例的目的在於提供一種碼流定點搜索方法、裝置及播放器,旨在解決利用現有的碼流定點搜索方法進行定點搜索時,搜索時間長、搜索到的文件位置精度低的問題。本發明實施例是這樣實現的,一種碼流定點搜索方法,所述方法包括下述步驟:獲取與待搜索時間對應的預選文件位置以及與所述預選文件位置對應的時間戳;當所述時間戳與所述待搜索時間的差的絕對值大於預設的誤差值時,進一步根據獲取的時間戳的次數、所述時間戳及上一次獲取的時間戳與所述待搜索時間的位置關係,對所述預選文件位置進行校正計算,以獲取新的文件位置,並記錄校正的次數;當所述新的文件位置與所述預選文件位置不相同且所述校正次數沒有超過預設的次數時,更新所述預選文件位置為所述新的文件位置;獲取與所述新的文件位置對應的時間戳,重新判斷所述時間戳與所述待搜索時間的差的絕對值是否大於預設的誤差值,直至滿足預設的條件,退出本次搜索。本發明實施例的另一目的在於提供一種碼流定點搜索裝置,所述裝置包括:獲取單元,用於獲取與待搜索時間對應的預選文件位置以及與所述預選文件位置對應的時間戳;校正單元,用於當所述時間戳與所述待搜索時間的差的絕對值大於預設的誤差值時,進一步根據獲取的時間戳的次數、所述時間戳及上一次獲取的時間戳與所述待搜索時間的位置關係,對所述預選文件位置進行校正計算,以獲取新的文件位置,並記錄校正的次數;更新單元,用於當所述新的文件位置與所述預選文件位置不相同且所述校正次數沒有超過預設的次數時,更新所述預選文件位置為所述新的文件位置;以及時間戳獲取及判斷單元,用於獲取與所述新的文件位置對應的時間戳,並重新判斷所述時間戳與所述待搜索時間的差的絕對值是否大於預設的誤差值,直至滿足預設的條件,退出本次搜索。本發明實施例的另一目的在於提供一種包括上述碼流定點搜索裝置的播放器。本發明實施例通過獲取與待搜索時間對應的預選文件位置及與其對應的時間戳,當該時間戳與該待搜索時間的差的絕對值大於預設的誤差值時,進一步根據獲取的時間戳的次數、該時間戳及上一次獲取的時間戳與該待搜索時間的位置關係,對該預選文件位置進行校正計算,以獲取新的文件位置,並記錄校正的次數,當該新的文件位置與該預選文件位置不相同且該校正次數沒有超過預設的次數時,更新該預選文件位置為該新的文件位置,並獲取與該新的文件位置對應的時間戳,重新判斷該時間戳與該待搜索時間的差的絕對值是否大於預設的誤差值,直至滿足預設的條件,退出本次搜索,從而獲取到具有較高精度的文件位置,解決了利用現有的碼流定點搜索方法對無索引表的碼流進行定點搜索時,搜索時間長、搜索到的文件位置精度低的問題,縮短了搜索時間,提高了搜索到的文件位置精度。
圖1是現有的碼流搜索方法的實現流程圖;圖2是本發明第一實施例提供的碼流定點搜索方法的實現流程圖;圖3是本發明第二實施例提供的碼流定點搜索方法的實現流程圖;圖4是本發明第三實施例提供的碼流定點搜索裝置的結構圖;圖5是本發明第三實施例提供的碼流定點搜索裝置中校正單元的具體結構圖。
具體實施例方式為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。本發明實施例通過待搜索時間獲取初始搜索的文件位置,並根據與該文件位置對應的時間戳、上一次獲取的時間戳以及待搜索時間之間的位置關係,對該文件位置進行校正,直至滿足預設的條件,使得搜索時間得到降低,搜索的精度得到提高。本發明實施例提供了一種碼流定點搜索方法,所述方法包括下述步驟:獲取與待搜索時間對應的預選文件位置以及與所述預選文件位置對應的時間戳;當所述時間戳與所述待搜索時間的差的絕對值大於預設的誤差值時,進一步根據獲取的時間戳的次數、所述時間戳及上一次獲取的時間戳與所述待搜索時間的位置關係,對所述預選文件位置進行校正計算,以獲取新的文件位置,並記錄校正的次數;當所述新的文件位置與所述預選文件位置不相同且所述校正次數沒有超過預設的次數時,更新所述預選文件位置為所述新的文件位置;獲取與所述新的文件位置對應的時間戳,重新判斷所述時間戳與所述待搜索時間的差的絕對值是否大於預設的誤差值,直至滿足預設的條件,退出本次搜索。本發明實施例還提供了一種碼流定點搜索裝置,所述裝置包括:獲取單元,用於獲取與待搜索時間對應的預選文件位置以及與所述預選文件位置對應的時間戳;校正單元,用於當所述時間戳與所述待搜索時間的差的絕對值大於預設的誤差值時,進一步根據獲取的時間戳的次數、所述時間戳及上一次獲取的時間戳與所述待搜索時間的位置關係,對所述預選文件位置進行校正計算,以獲取新的文件位置,並記錄校正的次數;更新單元,用於當所述新的文件位置與所述預選文件位置不相同且所述校正次數沒有超過預設的次數時,更新所述預選文件位置為所述新的文件位置;以及時間戳獲取及判斷單元,用於獲取與所述新的文件位置對應的時間戳,並重新判斷所述時間戳與所述待搜索時間的差的絕對值是否大於預設的誤差值,直至滿足預設的條件,退出本次搜索。本發明實施例還提供了 一種包括上述碼流定點搜索裝置的播放器。本發明實施例通過待搜索時間獲取初始搜索的文件位置,並根據與該文件位置對應的時間戳、上一次獲取的時間戳以及待搜索時間之間的位置關係,對該搜索到的文件位置進行校正,直至滿足預設的條件,解決了利用現有的碼流定點搜索方法對無索引表的碼流進行定點搜索時,搜索時間長、搜索到的文件位置精度低的問題,減少了定點播放時所用的搜索時間,提高了定點播放所需的文件位置的精度。以下結合具體實施例對本發明的具體實現進行詳細描述:實施例一:圖2示出了本發明第一實施例提供的碼流定點搜索方法的實現流程,詳述如下:在步驟S201中,獲取與待搜索時間對應的預選文件位置以及與該預選文件位置對應的時間戳。在具體實施過程中,利用已知的待搜索時間、碼流總時間及碼流總大小,根據公式(I)計算得到待搜索時間對應的預選文件位置:Pos = Tseek*Stotal/Ttotal ; (I)公式(I)中,Tseek為待搜索時間,Ttotal為碼流總時間,也即視頻碼流總時間,Stotal為碼流總大小,也即視頻碼流總大小,Pos為估算得到的預選文件位置。進一步地,碼流跳轉到得到的該文件位置Pos處,找到該文件位置附近的時間戳,此時碼流跳轉的次數與獲取時間戳的次數相等。在步驟S202中,當該時間戳與該待搜索時間的差的絕對值大於預設的誤差值時,進一步根據獲取的時間戳的次數、該時間戳及上一次獲取的時間戳與該待搜索時間的位置關係,對該預選文件位置進行進行校正計算,以獲取新的文件位置,並記錄校正的次數。其中,該步驟S202具體包括以下步驟:當判斷該時間戳與該待搜索時間的差的絕對值大於預設的誤差值時,繼續判斷獲取的時間戳的次數是否為I ;當該次數大於1,且該時間戳與上一次獲取的時間戳位於待搜索時間的兩側時,利用線性校正計算獲取新的文件位置;當該次數為1,或者當該時間戳與上一次獲取的時間戳位於待搜索時間的同側時,利用非線性校正計算獲取新的文件位置;記錄校正的次數。其中,該時間戳與上一次獲取的時間戳位於該待搜索時間的兩側是指該時間戳與上一次獲取的時間戳其中之一小於待搜索時間或者其中之一大於待搜索時間,而該時間戳與上一次獲取的時間戳位於待搜索時間的同側是指該時間戳與上一次獲取的時間戳同時大於或者同時小於待搜索時間。該非線性校正公式如下公式(2)所示:Pos_new = Tseek*Pos/Tfound ; (2)其中,Pos_new為新的文件位置,Tseek為待搜索時間,Pos為本次搜索到的碼流文件位置,也即預選文件位置,Tfound為與Pos對應的時間戳。該線性校正公式如下公式(3)所示:
Pos_new = ((Tseek-Tfound)*Pos_old+(Tfound_old_Tseek)*Pos)/(Tfound_old-Tfound).(3)其中,Pos_new為新的文件位置,Tseek為待搜索時間,Pos為本次搜索的文件位置,也即預選文件位置,Tfound為與Pos對應的時間戳,Pos_old為上一次搜索的文件位置,Tfound_old為與Pos_old對應的時間戳。在本發明實施例中,當該時間戳Tfound與該待搜索時間Tseek的差的絕對值小於或者等於預設的誤差值時,則退出搜索,此時獲取的預選文件位置Pos即為利用該碼流定點搜索方法獲取的與待搜索時間對應的碼流文件位置,從而從該文件位置處播放碼流文件,以實現音視頻的同步播放。在步驟S203中,當該新的文件位置與該預選文件位置不相同且該校正次數沒有超過預設的次數時,更該預選文件位置為該新的文件位置。在具體實施過程中,當該新的文件位置Pos_new與該預選文件位置Pos相同時,則退出搜索;而當不相同時,則繼續判斷該校正次數是否超過預設的次數,當該校正次數超過了預設的次數時,也退出搜索,否則更該預選文件位置為該新的文件位置,同時,也將上一次獲取的文件位置更新為預選文件位置,具體為Pos_old = Pos ;Pos = Pos_new,此處」表示賦值,在搜索過程中,可以綜合考慮搜索時間以及搜索精度的要求來預先設定上述時間戳的誤差值和校正次數。在步驟S204中,獲取與該新的文件位置對應的時間戳,重新判斷該時間戳與該待搜索時間的差的絕對值是否大於預設的誤差值,直至滿足預設的條件,退出本次搜索。其中,該預設的條件是指該時間戳與該待搜索時間的差的絕對值小於預設的誤差值,或者該新的文件位置與該預選文件位置相同,或者該校正次數超過預設的次數。在具體實施過程中,在獲取與該新的文件位置對應的時間戳時,Tfound_old =Tfound ( 「 = 」表示賦值,),重複判斷該時間戳與該待搜索時間的差的絕對值是否大於預設的誤差值,具體地,在獲取與該新的文件位置對應的時間戳後,返回執行步驟S202,直至滿足條件退出本次搜索。在本發明實施例中,該碼流定點搜索方法首先利用簡單的計算得到初始搜索的文件位置,然後根據在該文件位置找到的時間戳,對該文件位置進行非線性校正,而當出現找到的時間圍繞目標時間震蕩時(即本次找到的時間戳與上一次找到的時間戳分布在待搜索時間兩側),則認為非線性校正無法進一步發揮作用,這種情況下採用線性校正的方法來調整文件位置,從而減少了精確定點播放的耗時,提聞了精確定點播放的精度。實施例二:圖3示出了本發明第二實施例提供的碼流定點搜索方法的實現流程,以具體說明該碼流定點搜索方法實現的過程,詳述如下:在步驟S301中,獲取與待搜索時間對應的預選文件位置。在步驟S302中,將該碼流跳轉到該位置處,記錄該跳轉的次數,並獲取與該預選文件位置對應的時間戳。在具體實施過程中,利用待搜索時間、碼流總時間及碼流總大小,根據上述公式
(I)計算得到待搜索時間對應的預選文件位置。進一步地,跳轉到得到的該文件位置Pos處,記錄該跳轉的次數N或者是記錄獲取與文件位置對應的時間戳的次數,此處兩者值相等,找到該文件位置附近的時間戳Tfound。在步驟S303中,判斷該時間戳與該待搜索時間的差的絕對值是否大於預設的誤差值,否,則執行步驟S311,是,則執行步驟S304。在具體實施過程中,比較Tfound與Tseek,若兩者差的絕對值在小於或者等於預設的誤差值時,比如2s,則退出搜索,從而本次獲取的預選文件位置Pos為搜索到的精確的碼流文件位置,否則繼續執行後續步驟,其中該預設的誤差值根據實際需要設定。在步驟S304中,判斷該跳轉的次數是否為1,是,則執行步驟S305 ;否,則執行步驟S306。在具體實施過程中,當記錄的跳轉次數為1,也即第一次跳轉時,直接執行步驟S305,若大於I次,則轉至執行步驟S306。在步驟S305中,利用非線性校正公式獲取新的文件位置。該非線性校正公式如上述公式(2)所示。在步驟S306中,判斷該時間戳與上一次獲取的時間戳是否位於待搜索時間的同偵牝是,則返回步驟S305,否,則執行步驟S307。其中,當該時間戳Tfound與上一次獲取的時間戳Tf 0Und_01 d位於待搜索時間Tseek的不同側(兩側)是指該時間戳與上一次獲取的時間戳其中之一小於待搜索時間或者其中之一大於待搜索時間,即(Tfound < Tseek < Tfound_old)或(Tfound_old < Tseek
Pos_old ;當該時間戳與上一次獲取的時間戳位於待搜索時間的同側是指該時間戳與上一次獲取的時間戳同時大於或者同時小於待搜索時間,即(Tfound < TseekMTfound_oId
<Tseek)或(Tseek < Tfound_old&&Tseek < Tfound),則此時利用非線性校正公式進行校正,重新計算新的文件位置Pos_new,並保存Tfound、Pos為Tfound_old、Pos_old。在步驟S307中,利用線性校正公式更新該位置,並執行步驟S208。該線性校正公式如上述公式(3)所。在步驟S308中,判斷該新的文件位置是否與預選文件位置相同,是,則執行步驟S311,否,則執行步驟S309。在具體實施過程中,判斷PoS_neW與Pos是否相等,如果相等,則退出該搜索過程,否則繼續執行步驟S309。在步驟S309中,判斷該校正次數是否超過預設的次數,是,則執行步驟S311,否,則執行步驟S310。具體地,當獲取的PoS_neW與Pos不相同,則進一步判斷該校正次數,即循環次數是否超過預設的次數,比如預設的次數為30次。在步驟S310中,更新預選文件位置為新的文件位置,並返回步驟S302。具體更新的內容為,Pos_old = Pos ;Pos = Pos_new,從而在執行步驟S302後,獲取與該新的文件位置對應的時間戳Tfound,也即Tfound_old = Tfound,繼續執行後續步驟,直至滿足條件退出本次搜索,此處,「=」表示賦值。在步驟S311中,退出搜索。在本發明實施例中,以無索引表的rmvb視頻碼流為例,對比背景技術中提到的現有搜索方法與本發明實施例提到的搜索方法,通過實驗來比較本發明的優點,其中,該方法,設定待搜索時間與獲取的時間戳的差的絕對值不超過預設的誤差範圍2s,預設的校正次數為30次。具體結果如下表一所示為現有技術方案或者搜索方法的搜索結果,而下表二所示為本發明實施例提出的定點搜索方法搜索的結果。表一
權利要求
1.一種碼流定點捜索方法,其特徵在於,所述方法包括下述步驟: 獲取與待搜索時間對應的預選文件位置以及與所述預選文件位置對應的時間戳; 當所述時間戳與所述待搜索時間的差的絕對值大於預設的誤差值時,進一歩根據獲取的時間戳的次數、所述時間戳及上一次獲取的時間戳與所述待搜索時間的位置關係,對所述預選文件位置進行校正計算,以獲取新的文件位置,並記錄校正的次數; 當所述新的文件位置與所述預選文件位置不相同且所述校正次數沒有超過預設的次數時,更新所述預選文件位置為所述新的文件位置; 獲取與所述新的文件位置對應的時間戳,重新判斷所述時間戳與所述待搜索時間的差的絕對值是否大於預設的誤差值,直至滿足預設的條件,退出本次捜索。
2.如權利要求1所述的方法,其特徵在於,所述預設的條件是指所述時間戳與所述待捜索時間的差的絕對值小於預設的誤差值,或者所述新的文件位置與預選文件位置相同,或者所述校正次數超過預設的次數。
3.如權利要求1所述的方法,其特徵在於,在所述獲取與待搜索時間對應的預選文件位置以及與所述預選文件位置對應的時間戳的步驟之後,所述方法還包括: 記錄獲取與文件位置對應的時間戳的次數。
4.如權利要求3所述的方法,其特徵在於,所述當所述時間戳與所述待搜索時間的差的絕對值大於預設的誤差值時,進一歩根據獲取的時間戳的次數、所述時間戳及上一次獲取的時間戳與所述待搜索時間的位置關係,對所述預選文件位置進行校正計算,以獲取新的文件位置,並記錄校正的次數的步驟具體包括以下步驟: 當判斷所述時間戳與所述待搜索時間的差的絕對值大於預設的誤差值時,判斷獲取的時間戳的次數是否為1 ; 當所述次數大於1,且所述時間戳與上一次獲取的時間戳位於待搜索時間的兩側時,利用線性校正計算獲取新的文件位置; 當所述次數為1,或者當所述時間戳與上一次獲取的時間戳位於待搜索時間的同側時,利用非線性校正計算獲取新的文件位置; 記錄校正的次數。
5.如權利要求4所述的方法,其特徵在於,所述時間戳與上一次獲取的時間戳位於待捜索時間的兩側是指所述時間戳與上一次獲取的時間戳其中之一小於待搜索時間或者其中之一大於待搜索時間,所述時間戳與上一次獲取的時間戳位於待搜索時間的同側是指所述時間戳與上一次獲取的時間戳同時大於或者同時小於待搜索時間。
6.一種碼流定點捜索裝置,其特徵在於,所述裝置包括: 獲取單元,用於獲取與待搜索時間對應的預選文件位置以及與所述預選文件位置對應的時間戳;校正単元,用於當所述時間戳與所述待搜索時間的差的絕對值大於預設的誤差值時,進ー步根據獲取的時間戳的次數、所述時間戳及上一次獲取的時間戳與所述待搜索時間的位置關係,對所述預選文件位置進行校正計算,以獲取新的文件位置,並記錄校正的次數;更新単元,用於當所述新的文件位置與所述預選文件位置不相同且所述校正次數沒有超過預設的次數時,更新所述預選文件位置為所述新的文件位置;以及 時間戳獲取及判斷単元,用於獲取與所述新的文件位置對應的時間戳,並重新判斷所述時間戳與所述待搜索時間的差的絕對值是否大於預設的誤差值,直至滿足預設的條件,退出本次搜索。
7.如權利要求6所述的裝置,其特徵在於,所述預設的條件是指所述時間戳與所述待搜索時間的差的絕對值小於預設的誤差值,或者所述新的文件位置與預選文件位置相同,或者所述校正次數超過預設的次數。
8.如權利要求6所述的裝置,其特徵在於,所述裝置還包括: 時間戳次數獲取單元,用於記錄獲取與文件位置對應的時間戳的次數。
9.如權利要求8所述的裝置,其特徵在於,所述校正單元具體包括: 次數判斷單元,用於當判斷所述時間戳與所述待搜索時間的差的絕對值大於預設的誤差值時,判斷獲取的時間戳的次數是否為I ; 線性校正單元,用於當所述次數判斷單元輸出結果為否,且當所述時間戳與上一次獲取的時間戳位於待搜索時間的兩側時,利用線性校正計算獲取新的文件位置; 非線性校正單元,用於當所述次數判斷單元輸出結果為是,或者當所述時間戳與上一次獲取的時間戳位於待搜索時間的同側時,利用非線性校正計算獲取新的文件位置;以及 校正次數記錄單元,用於記錄校正的次數。
10.一種播放器,其特徵在於,所述播放器包括如權利要求6至9任一項所述的數字碼流定點搜索裝置。`
全文摘要
本發明適用於數字碼流播放技術領域,提供了一種碼流定點搜索方法、裝置及播放器,所述方法包括獲取與待搜索時間對應的預選文件位置及與其對應的時間戳;當該時間戳與該待搜索時間的差的絕對值大於預設的誤差值時,對該文件位置,對該預選文件位置進行校正,以獲取新的文件位置,並記錄校正的次數;當新的文件位置與該預選文件位置不相同且該校正次數沒有超過預設的次數時,更新該預選文件位置為該新的文件位置;獲取與該新的文件位置對應的時間戳,重新判斷該時間戳與該待搜索時間的差的絕對值是否大於預設的誤差值,直至滿足預設的條件,退出本次搜索。本發明相對於現有的定點搜索方法,具有搜索時間更短,搜索到的文件位置精度更高的特點。
文檔編號H04N5/93GK103137168SQ201110398939
公開日2013年6月5日 申請日期2011年12月5日 優先權日2011年12月5日
發明者衛敏, 方偉 申請人:炬力集成電路設計有限公司