国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種i幀檢索方法及裝置的制作方法

      文檔序號:7713048閱讀:212來源:國知局
      專利名稱:一種i幀檢索方法及裝置的制作方法
      技術領域
      本發(fā)明涉及多媒體技術領域,尤其一種I幀檢索方法及裝置。
      背景技術
      IPTV (Internet Protocol Television,互聯網協議電視)業(yè)務是指通過互 聯網協議IP承載網絡向用戶提供并且能夠支持交互能力的電視節(jié)目直播、 視頻點播、時移播放以及其它各種應用型業(yè)務的業(yè)務總稱。IPTV系統中至 少包括服務器、網絡、機頂盒、電視機等設備,在使用時,由服務器將多媒 體數據通過網絡發(fā)送給機頂盒,機頂盒對數據解碼并輸出到電視機上播放。
      IPTV業(yè)務中的視頻點播、時移播放等業(yè)務應用需要用到I幀檢索技術, 以方便用戶進行定位播放、快進快退等操作。例如在定位播放時,需要跳到 定位時間點最近的一個I幀進行播放,因為I幀前面的數據都不能被正確解 碼,若將這些數據發(fā)送給解碼器,既浪費帶寬和時間也不能使這些數據被解 碼,因而如何快速準確定位到該最近的I幀則非常關鍵。又例如在快進快退 時,由于網絡帶寬的限制,為了快速響應用戶的快進快退操作,服務器發(fā)送 給機頂盒的數據都是I幀數據,所以在提供快進快退功能時,需要服務器預 先準確知道I幀的具體位置。
      綜上,針對各種業(yè)務應用,無論服務器還是機頂盒都可能需要在某種應 用場景下,需要快速檢索I幀,準確及時的定位到I幀位置。目前IPTV業(yè) 務中使用的視頻壓縮算法一般是H.264協議,打包時采用TS (Transport Stream,傳輸流)的方式,當從TS流中檢索I幀時,需要分析TS流的語法, 分析碼流中H.264的語法,以確定I幀的起始位置和結束位置。在分析H.264 協議的比特流時至少要解析出SPS (S叫uence Parameter Set,序列參數集)、 PPS (Picture Parameter Set,圖像參數集)、片頭(Slice )的語義,因而需要 耗費一定的內存空間和CPU資源,在時間上也會增加額外的消耗,會影響
      4定位I幀時的速度。

      發(fā)明內容
      本發(fā)明所要解決的技術問題在于,提供一種I幀檢索方法及裝置,用于快速準確的找到I幀的起始位置和結束位置,實現I幀檢索定位。
      為了解決上述問題,本發(fā)明提出了一種I幀檢索方法,包括如下步驟
      SI:獲取傳輸流中的一個傳輸流包,判斷該傳輸流包為視頻包且包含打包的基本碼流(PES)頭時,進一步判斷當前是尋找I幀的起始位置還是結束位置,若是尋找起始位置,則轉步驟S2,若是尋找結束位置,則轉步驟S3;
      S2:若所述PES頭之后的字節(jié)包含序列參數集(SPS)或圖像參數集(PPS)的起始碼,則確定當前的傳輸流包為I幀的起始位置,返回步驟S1繼續(xù)獲取下 一個傳輸流包進行處理;
      S3:若所述PES頭之后的字節(jié)包含有片頭(Slice)信息,則判斷片頭信息中的起始標識元素是否標識為本幀圖像的起始數據,若是,則確定前一傳輸流包為I幀的結束位置,確定結束位置后,返回步驟SI繼續(xù)獲取下一個傳輸流包進行處理。
      進一步地,步驟S1中,通過判斷當前傳輸流包的包標識符是否為傳輸流中的視頻包標識符,來判定所述傳輸流包是否為視頻包。
      進一步地,步驟S1中,若當前傳輸流包的包標識符為傳輸流中的視頻包標識符,則判定所述傳輸流包是視頻包,進一步,若當前傳輸流包的有效負載的前三字節(jié)是所述PES的起始碼,則判定本傳輸流包中包含有所述PES頭信息。
      進一步地,步驟S3中,若在所述PES頭之后的數據中,當前網絡抽象層類型是即時刷新圖像的片頭、非即時刷新圖像的片頭、序列參數集、圖像參數集之一,所述PES頭之后的數據是包含有片頭(Slice)信息。
      本發(fā)明還提供一種用于I幀檢索的檢索裝置,包括如下模塊傳輸流包解析模塊,用于獲取傳輸流中的傳輸流包,對傳輸流包逐個分析,判斷當前傳輸流包是否為視頻包,若是則送至打包的基本碼流(PES)包
      分析模塊處理;PES包分析模塊判斷傳輸流包中包含PES頭時,將傳輸流包交由檢索控制模塊處理;
      檢索控制模塊,判斷當前需要尋找I幀的起始位置,則交由起始位置查找模塊處理;若是需要尋找I幀結束位置,則交由結束位置查找模塊處理;
      起始位置查找模塊,用于判斷所述PES頭之后的字節(jié)是否包含序列參數集(SPS)或圖像參數集(PPS)的起始碼,若是,則確定當前的傳輸流包為I幀的起始位置,通知所述傳輸流包解析模塊繼續(xù)獲取下一個傳輸流包進行處理;
      結束位置查找模塊,用于判斷所述PES頭之后的字節(jié)是否包含有片頭(Slice )信息,若是交由片頭解析模塊判斷片頭信息中的起始標識元素是否標識為本幀圖像的起始數據,若為起始數據,則確定前一傳輸流包為I幀的結束位置,確定結束位置后,通知所述傳輸流包解析模塊繼續(xù)獲取下一個傳輸流包進行處理。
      進一步地,所述傳輸流包解析模塊,根據當前傳輸流包的包標識符是否為傳輸流中的視頻包標識符,來判定所述傳輸流包是否為視頻包。
      進一步地,所述PES包分析模塊,在所述傳輸流包為視頻包時,根據當前傳輸流包的有效負載的前三字節(jié)是否為所述PES的起始碼,來判定本傳輸流包中是否包含有所述PES頭信息。
      進一步地,所述結束位置查找模塊,用于根據所述PES頭之后的數據中,當前網絡抽象層類型是即時刷新圖像的片頭、非即時刷新圖像的片頭、序列參數集、圖像參數集之一,來判定所述PES頭之后的數據是否包含有片頭(Slice)信息。
      所述檢索裝置進一步包括
      緩存模塊,用于對接收到傳輸流進行緩存,將若干傳輸流包進行保存,供所述傳輸流包解析模塊獲取所述傳輸流包。本發(fā)明的I幀檢索方法與裝置,在檢索I幀時,不用解析H.264中的SPS、PPS、 slice等語法元素,而通過對TS流中的各個TS包進行簡單比較和判斷就可以定位I幀位置,從而能夠找到I幀的起始位置和結束位置,能夠快速準確的實現I幀檢索定位,為用戶相關業(yè)務應用提供了快速響應。


      圖l是本發(fā)明中實現I幀檢索方法的流程圖2是本發(fā)明中實現I幀檢索方法的一個具體實施例示意圖3是本發(fā)明中實現I幀檢索的檢索裝置的結構框圖。
      具體實施例方式
      為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,以下結合附圖對本發(fā)明作進一步地詳細i兌明。
      本發(fā)明涉及IPTV(Intemet Protocol Television,互聯網協議電視)領域中H.264 TS流(Transport Stream,傳輸流)的I幀檢索技術。由于在IPTV系統中,每個I幀前面都會有序列參數集SPS和圖像參數集PPS,然后會打上PES包頭,封裝在TS包中。本發(fā)明則通過提供一種高效快速的I幀檢索方法及裝置,只需要分析TS流語法,對TS包經過簡單的比較,根據PES( PacketElementary Stream,打包的基本碼流)包頭后面的數據比對判斷,就能準確定位出I幀的起始位置和結束位置,這樣可以節(jié)約內存空間和CPU資源,更容易在嵌入式設備上實現。本發(fā)明無需解析H.264中的SPS、 PPS、 slice等語法元素,通過簡單比較和判斷就可以定位I幀位置,具有快速、簡便、準確等優(yōu)點。
      基于上述思想,本發(fā)明的I幀檢索方法,如圖l所示,包括如下步驟
      SI:獲取傳輸流中的一個傳輸流包,判斷該傳輸流包為視頻包且包含打包的基本碼流(PES)頭時,進一步判斷當前是尋找I幀的起始位置還是結束位置,若是尋找起始位置,則轉步驟S2,若是尋找結束位置,則轉步驟S3;
      S2:若所述PES頭之后的字節(jié)包含序列參數集(SPS)或圖像參數集含有片頭(Slice)信息,則判斷片頭 信息中的起始標識元素是否標識為本幀圖像的起始數據,若是,則確定前一 傳輸流包為I幀的結束位置,確定后,返回步驟Sl繼續(xù)獲取下一個傳輸流 包進4于處理。步驟S1中,若傳輸流包不是視頻包,則直接獲取傳輸流中的下一個傳 輸流包進行處理,判斷時,若當前TS包的PID (Packet Identifier,包標識符) 是TS流中的視頻PID,則說明本TS包是視頻包;若是視頻包但不包含PES 頭時,直接獲取傳輸流中的下一個傳輸流包進行處理,其中,若當前TS包 的有效負載的前三字節(jié)是PES起始碼0x000001,則可判定本TS包中包含 PES頭信息,否則,不包含。步驟S2中,若傳輸流包中不包含SPS/PPS參數集的起始碼,則說明該 TS包里面沒有I幀的起始數據,直接返回步驟Sl繼續(xù)分析下一個TS包;步驟S3中,若PES頭之后的數據中,若當前NAL (Network Abstraction Level,網絡抽象層)類型是IDR(Instantaneous Decoder Refresh,即時刷新) 圖像的片頭slice、非IDR圖像的slice、序列參數集、圖像參數集之一,則 說明該NAL后的數據是slice頭信息;否則返回步驟Sl繼續(xù)分析下一個TS 包;其中,所述片頭信息中的所述起始標識元素是當前slice頭信息的 first—mb—in—slice語法元素,判斷first—mb—in—slice語法元素的值是否為0, 若是則說明該slice的第一個宏塊是本幀圖像的第一個宏塊,從而進一步說 明該slice是本幀圖像的起始數據,即找到了新的一個幀的起始位置,那么 就可以判定上一個TS包就是I幀的結束位置;若此語法元素first—mb—in—slice 的值不為0,則直接返回步驟Sl繼續(xù)分析下一個TS包。如圖2所示,顯示了本發(fā)明對I幀檢索的具體流程圖,在接收到TS流 后將其放在內存中,然后對TS包逐個進行分析,具體實現I幀檢索的步驟如下第一步,逐個分析TS包,分析每一TS包時,先判斷該TS包是否為視 頻包,若當前TS包的PID (Packet Identifier,包標識符)是TS流中的視頻PID, 則說明本TS包是視頻包,轉第二步;否則,說明本TS包不是視頻包,轉 第一步分析下一個TS包;第二步,判斷TS包中是否包含PES ( Packet Elementary Str earn,打包的 基本碼流)頭,若是,則轉第三步,否則轉至第一步;具體地,若當前TS 包的有效負載的前三字節(jié)是PES起始碼0x000001 ,則可判定本TS包中包含 PES頭信息,否則本TS包中不包含PES頭信息。第三步,判斷當前是尋找I幀的起始位置還是結束位置,若是需要尋找 I幀的起始位置則轉第四步;若是需要尋找I幀結束位置則轉第五步;第四步,跳過PES頭所包含的字節(jié),判斷后續(xù)字節(jié)是否包含SPS/PPS 參數集的起始碼,若是則說明當前的TS包是I幀的起始位置,然后轉回第 一步繼續(xù)分析下一個TS包,尋找I幀的結束位置;若不包含SPS/PPS參數 集的起始碼,則說明該TS包里面沒有I幀的起始數據,直接轉第一步繼續(xù) 分析下一個TS包;第五步,判斷當前的TS包中PES頭后續(xù)數據是否包含有Slice頭信息, 若當前NAL ( Network Abstraction Level ,網絡抽象層)類型是 IDR(Instantaneous Decoder Refresh,即時刷新)圖像的片頭slice、非IDR圖像 的slice、序列參數集、圖像參數集之一,則說明該NAL后的數據是slice頭 信息,則轉第六步;否則轉第一步;第六步,判斷當前slice頭信息的first—mb一in一slice語法元素的值是否為 0,若first—mb—in—slice語法元素的值為0,則說明該slice的第一個宏塊是本 幀圖像的第一個宏塊,從而進一步說明該slice是本幀圖像的起始數據,即 找到了新的一個幀的起始位置,那么就可以判定上一個TS包就是I幀的結 束位置,判定結束位置后,則轉至第一步繼續(xù)分析下一個TS包,尋找下一 個I幀的起始位置。若此語法元素first—mb—in—slice的值不為0,則直接轉至 第一步。本發(fā)明的用于I幀檢索的檢索裝置,如圖3所示,包括如下模塊緩存模塊301,用于對接收到TS流進行緩存,將若干TS包進行保存。TS包解析模塊302,用于從緩存模塊中獲取TS包,對TS包逐個分析, 用于判斷當前TS包是否為視頻包,若是,則將該TS包交由PES包分析模 塊,否則獲取下一個TS包繼續(xù)分析;分析時,若當前TS包的PID (Packet Identifier,包標識符)是TS流中的視頻PID,則說明本TS包是^L頻包。PES包分析模塊303 ,用于判斷TS包中是否包含PES( Packet Elementary Stream,打包的基本碼流)頭,若是,則交由檢索控制模塊處理,否則,通 知TS包解析模塊繼續(xù)獲取下一個TS包進行分析;判斷時,若當前TS包的 有效負載的前三字節(jié)是PES起始碼0x000001 ,則可判定本TS包中包含PES 頭信息。檢索控制模塊304,用于判斷當前是尋找I幀的起始位置還是結束位置, 若是需要尋找I幀的起始位置,則交由起始位置查找模塊處理;若是需要尋 找I幀結束位置,則交由結束位置查找模塊處理。起始位置查找模塊305,用于跳過PES頭所包含的字節(jié),判斷后續(xù)字節(jié) 是否包含SPS/PPS參數集的起始碼,若是則說明當前的TS包是I幀的起始 位置,通知TS包解析模塊繼續(xù)獲取下一個TS包進行分析,尋找I幀的結束 位置;否則,直接通知TS包解析模塊繼續(xù)獲取下一個TS包。結束位置查找模塊306,用于判斷當前的TS包中PES頭后續(xù)數據是否 包含有Slice頭信息,若當前NAL (Network Abstraction Level,網絡抽象層) 類型是IDR(Instantaneous Decoder Refresh,即時刷新)圖像的片頭slice、非 IDR圖像的slice、序列參數集、圖像參數集之一,則說明該NAL后的數據 是slice頭信息,則交由片頭解析模塊處理;否則通知TS包解析模塊繼續(xù)獲 取下一個TS包。片頭解析模塊307,用于判斷當前slice頭信息的first—mb—in—slice語法 元素的值是否為0,若first—mb—in—slice語法元素的值為0,則說明該slice 的第一個宏塊是本幀圖像的第一個宏塊,從而進一步說明該slice是本幀圖像的起始數據,即找到了新的一個幀的起始位置,那么就可以判定上一個
      TS包就是I幀的結束位置,判定結束位置后,則通知TS包解析模塊繼續(xù)分 析下一個TS包,尋找下一個I幀的起始位置。若此語法元素first—mb—in—slice 的值不為0,則直接通知TS包解析才莫塊繼續(xù)分析下一個TS包。
      本發(fā)明的用于I幀檢索的檢索裝置,可以位于服務器側,也可以位于終 端側,可以為單獨的裝置,也可以是服務器或機頂盒的組成部分,用于無論 服務器側還是終端側對I幀進行快速準確;險索定位。
      采用本發(fā)明所述的I幀檢索方法與裝置,不用解析H.264中的SPS、PPS、 slice等語法元素,而通過對TS流中的各個TS包通過簡單比較和判斷就可 以定位I幀位置,找到I幀的起始位置和結束位置,能夠快速準確的實現I 幀;險索定位,為用戶相關業(yè)務應用提供了快速響應。
      以上所述僅為本發(fā)明的實施例而已,并不用于限制本發(fā)明,對于本領域 的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則 之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的權利要求 范圍之內。
      ii
      權利要求
      1、一種I幀檢索方法,其特征在于,包括如下步驟S1獲取傳輸流中的一個傳輸流包,判斷該傳輸流包為視頻包且包含打包的基本碼流(PES)頭時,進一步判斷當前是尋找I幀的起始位置還是結束位置,若是尋找起始位置,則轉步驟S2,若是尋找結束位置,則轉步驟S3;S2若所述PES頭之后的字節(jié)包含序列參數集(SPS)或圖像參數集(PPS)的起始碼,則確定當前的傳輸流包為I幀的起始位置,返回步驟S1繼續(xù)獲取下一個傳輸流包進行處理;S3若所述PES頭之后的字節(jié)包含有片頭(Slice)信息,則判斷片頭信息中的起始標識元素是否標識為本幀圖像的起始數據,若是,則確定前一傳輸流包為I幀的結束位置,確定結束位置后,返回步驟S1繼續(xù)獲取下一個傳輸流包進行處理。
      2、 如權利要求1所述的I幀檢索方法,其特征在于,步驟S1中,通過判斷當前傳輸流包的包標識符是否為傳輸流中的視頻 包標識符,來判定所述傳輸流包是否為視頻包。
      3、 如權利要求2所述的I幀檢索方法,其特征在于,步驟S1中,若當前傳輸流包的包標識符為傳輸流中的視頻包標識符, 則判定所述傳輸流包是視頻包,進一步,若當前傳輸流包的有效負載的前三 字節(jié)是所述PES的起始碼,則判定本傳輸流包中包含有所述PES頭信息。
      4、 如權利要求1所述的I幀檢索方法,其特征在于,步驟S3中,若在所述PES頭之后的數據中,當前網絡抽象層類型是即 時刷新圖像的片頭、非即時刷新圖像的片頭、序列參數集、圖像參數集之一, 所述PES頭之后的數據是包含有片頭(Slice )信息。
      5、 一種用于I幀檢索的檢索裝置,其特征在于,包括如下模塊傳輸流包解析模塊,用于獲取傳輸流中的傳輸流包,對傳輸流包逐個分 析,判斷當前傳輸流包是否為視頻包,若是則送至打包的基本碼流(PES)包 分析模塊處理;PES包分析模塊判斷傳輸流包中包含PES頭時,將傳輸流 包交由檢索控制模塊處理;檢索控制模塊,判斷當前需要尋找I幀的起始位置,則交由起始位置查找模塊處理;若是需要尋找I幀結束位置,則交由結束位置查找模塊處理;起始位置查找模塊,用于判斷所述PES頭之后的字節(jié)是否包含序列參 數集(SPS)或圖像參數集(PPS)的起始碼,若是,則確定當前的傳輸流 包為I幀的起始位置,通知所述傳輸流包解析模塊繼續(xù)獲取下一個傳輸流包 進行處理;結束位置查找模塊,用于判斷所述PES頭之后的字節(jié)是否包含有片頭 (Slice )信息,若是交由片頭解析模塊判斷片頭信息中的起始標識元素是否 標識為本幀圖像的起始數據,若為起始數據,則確定前一傳輸流包為I幀的 結束位置,確定結束位置后,通知所述傳輸流包解析模塊繼續(xù)獲取下一個傳 輸流包進行處理。
      6、 如權利要求5所述的一種用于I幀檢索的檢索裝置,其特征在于,所述傳輸流包解析模塊,根據當前傳輸流包的包標識符是否為傳輸流中 的視頻包標識符,來判定所述傳輸流包是否為視頻包。
      7、 如權利要求5或6所述的一種用于I幀檢索的檢索裝置,其特征在于,所述PES包分析模塊,在所述傳輸流包為視頻包時,根據當前傳輸流 包的有效負載的前三字節(jié)是否為所述PES的起始碼,來判定本傳輸流包中 是否包含有所述PES頭信息。
      8、 如權利要求5所述的一種用于I幀檢索的檢索裝置,其特征在于,所述結束位置查找模塊,用于根據所述PES頭之后的數據中,當前網 絡抽象層類型是即時刷新圖像的片頭、非即時刷新圖像的片頭、序列參數集、 圖像參數集之一,來判定所述PES頭之后的數據是否包含有片頭(Slice)化息。
      9、 如權利要求5、 6或8所述的一種用于I幀檢索的檢索裝置,其特征 在于,所述檢索裝置進一步包括緩存模塊,用于對接收到傳輸流進行緩存,將若干傳輸流包進行保存, 供所述傳輸流包解析模塊獲取所述傳輸流包。
      全文摘要
      本發(fā)明公開了一種I幀檢索方法及裝置,檢索時,首先獲取傳輸流中的一個傳輸流包,判斷該傳輸流包為視頻包且包含打包的基本碼流(PES)頭時,判斷當前是尋找I幀的起始位置還是結束位置,若尋找起始位置,所述PES頭之后的字節(jié)包含序列參數集(SPS)或圖像參數集(PPS)的起始碼,則確定當前的傳輸流包為I幀的起始位置;若尋找結束位置,所述PES頭之后的字節(jié)包含有片頭(Slice)信息,則判斷片頭信息中的起始標識元素是否標識為本幀圖像的起始數據,若是則確定前一傳輸流包為I幀的結束位置。本發(fā)明通過對傳輸流中的各個TS包進行簡單比較和判斷就可以找到I幀的起始位置和結束位置,快速準確的實現I幀檢索定位。
      文檔編號H04N7/26GK101651833SQ20091017213
      公開日2010年2月17日 申請日期2009年9月10日 優(yōu)先權日2009年9月10日
      發(fā)明者憲 梁 申請人:中興通訊股份有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1