一種碼流傳輸方法及裝置的制造方法
【專利摘要】一種碼流傳輸方法及裝置。所述方法在接收到用戶發出的接入命令時,編碼器編碼生成刷新幀,將刷新幀及后面的碼流發送到已有連接的解碼器,將作為所述刷新幀的參考幀的I幀、刷新幀及后面的碼流發送到新建連接的解碼器;其中所述刷新幀的幀間預測的參考幀是當前圖像組的首個I幀。本發明可以實現快速隨機接入,強制生成刷新幀,不會造成很大的瞬時碼率波動,對已有連接影響較小。
【專利說明】
一種碼流傳輸方法及裝置
技術領域
[0001]本發明屬于視頻編解碼技術領域,特別涉及一種可實現快速隨機接入的碼流傳輸方法及裝置。
【背景技術】
[0002]隨著社會經濟的發展,人們對安全的需要越來越迫切,視頻監控技術相應的得到越來越廣泛的應用。在公共場所、交通道路、樓宇內部乃至私宅內部都需要視頻監控設備,以實時或事后提供快速、清晰的視頻圖像。
[0003]目前,視頻監控技術領域中仍存在諸多技術缺陷。例如,為了達到低碼率,通常需要將I幀間隔設置很長。但是,由于解碼時需要向前找到I幀才能開始解碼,意味著越長的I幀間隔在隨機接入時就越困難。因此,如果I幀間隔長,則向前查找的時間也就越長。
[0004]隨著視頻監控對象或地點的多樣化,需要支持多路連接的視頻編碼器,以能夠同時支持多路傳輸的視頻圖像編碼和解碼。對于支持多路連接的視頻編碼器來說,一個新建立的連接需要在視頻序列中立即插入一個I幀,以便能即刻播放當前視頻。具體地,在視頻編碼器和視頻解碼器建立連接的時間點上,視頻編碼器在當前的編碼處理中強制插入一個I幀(打亂原有的I幀間隔設置),從該I幀起始,將碼流發送到解碼器,同時該I幀也必須被發送到其它已經建立連接的視頻解碼器。采用上述方式,新插入的I幀會對已有的連接造成影響,這是由于I幀通常較大,將I幀發送給視頻解碼器,會帶來較大的瞬時碼率的波動。
[0005]針對上述問題,有人提出了一種減少播放等待時間的視頻編碼方法,該方法提出了 “插隊幀”的概念。具體來說,為視頻流的圖像組設置至少一個P幀作為插隊幀,該插隊幀為短期參考幀,當前圖像組的I幀作為長期參考幀。插隊幀只參考當前G0P(Group ofPictrues,圖像組)的I幀,并且在反饋新用戶的插入請求時,將當前GOP的I幀和插隊幀反饋給新用戶,使得新用戶能夠快速的接入當前視頻流,從而減少了新觀眾的等待時間。這種方法可以應用于流媒體廣播,以求達到減少新切入用戶的等待時間的目的。
[0006]但是,上述技術方案存在以下問題:由于插隊幀的間隔(設為NI)固定,在接收到新用戶切入的信息后,該方案不能馬上插入一個插隊幀,而是要等待一個固定時刻,即等待直到下一個插隊幀到來才可以播放。每個用戶等待的時間與用戶具體切入的時間點有關,當用戶在插隊幀的后一時刻接入時,則就要等待將近間距NI的時間,而在插隊幀前一時刻接入時,就能得到最快的反饋,因此采用該技術方案,用戶的等待時間是不可控的。
[0007]因此,需要提供一種可實現快速隨機接入的碼流傳輸方法及裝置,以實現快速、可控的視頻接入,克服現有技術中存在的上述缺陷。
【發明內容】
[0008]本發明的目的是提供一種碼流傳輸方法及裝置,可以實現快速隨機接入,強制生成刷新幀,不會造成很大的瞬時碼率波動,對已有連接影響較小。
[0009]為實現上述目的,本發明的一方面提供了一種碼流傳輸方法,所述碼流包括多個圖像組,每個圖像組包括至少一個I幀和該I幀之后與其存在參考關系的多個刷新幀和多個普通幀,所述方法包括:編碼器接收到用戶發出的接入命令;編碼器編碼生成刷新幀,所述刷新幀的幀間預測的參考幀是當前圖像組的首個I幀;將作為所述刷新幀的參考幀的I幀發送到新建連接的解碼器;以及將刷新幀及后面的碼流發送到新建連接的解碼器。
[0010]在編碼器編碼生成刷新幀的步驟之后還包括:將所生成的刷新幀及后面的碼流發送到已有連接的解碼器。
[0011]可選的,還包括編碼器編碼生成普通幀的步驟,所述普通幀采用幀內預測和/或幀間預測產生。
[0012]可選的,所述普通幀參考其前面最近的I幀、最近的刷新幀、和/或最近的刷新幀與當前幀之間的普通幀進行幀間預測。
[0013]可選的,相鄰兩個刷新幀之間包含多個普通幀,相鄰兩個刷新幀之間的間隔是可變或固定的。
[0014]可選的,所述刷新幀是新用戶接入后在預定時刻生成或新用戶接入時強制生成。
[0015]優選的,在所述編碼器編碼生成刷新幀的步驟之前,還包括預存當前圖像組的首個I幀的步驟。
[0016]根據本發明的另一方面,提供了一種碼流傳輸裝置,所述碼流包括多個圖像組,每個圖像組包括至少一個I幀和該I幀之后與其存在參考關系的多個刷新幀和多個普通幀,所述裝置包括:編碼器,用于編碼生成I幀、刷新幀和普通幀,將所述普通幀和/或刷新幀發送給建立連接的用戶的解碼器,所述刷新幀的幀間預測的參考幀是當前圖像組的首個I幀;緩存單元,用于預存當前圖像組的首個I幀,以將預存的I幀發送給新建連接的解碼器;和發送單元,用于將所述編碼器生成的普通幀、刷新幀和/或預存的I幀發送給建立連接的用戶的解碼器。
[0017]可選的,所述編碼器在新用戶的接入時刻強制生成刷新幀,或者在新用戶的接入時刻等待下一個刷新幀的生成。
[0018]可選的,所述編碼器采用幀內預測和/或幀間預測生成普通幀。
[0019]可選的,所述編碼器參考前面最近的I幀、最近的刷新幀、和/或最近的刷新幀與當前幀之間的普通幀進行幀間預測生成普通幀。
[0020]可選的,相鄰兩個刷新幀之間包含多個普通幀,相鄰兩個刷新幀之間的間隔是可變或固定的。
[0021]可選的,所述編碼器將所生成的刷新幀及其后的碼流發送至已有連接的解碼器。
[0022]可選的,所述編碼器將作為所述刷新幀的參考幀的I幀和刷新幀及其后的碼流先后或同時發送至新建連接的解碼器。
[0023]本發明實施方式提供的碼流傳輸裝置,在接收到新用戶隨機接入命令時,編碼器會立即響應,在編碼處理中強制生成刷新幀,從而可以最快時間播放,而不需要等到某一個固定時刻,與用戶的具體切入時間點無關,因此更靈活有效。此外,由于刷新幀的尺寸遠小于I幀,因此相對于傳統的插入I幀的方式,本發明采用強制生成并發送刷新幀的方式,不會造成很大的瞬時碼率波動,對已有連接影響較小。
【附圖說明】
[0024]圖1顯示了現有技術的視頻圖像碼流幀結構示意圖;
[0025]圖2是根據本發明的視頻圖像碼流幀結構的示意圖;
[0026]圖3是根據本發明優選實施方式的碼流傳輸方法的流程圖;
[0027]圖4顯示了本發明另一實施方式的碼流傳輸方法的流程圖;
[0028]圖5顯示了本發明一實施方式的碼流傳輸裝置的結構示意圖;
[0029]圖6顯示了圖5所示碼流傳輸裝置的編碼器的結構示意圖。
【具體實施方式】
[0030]為使本發明的目的、技術方案和優點更加清楚明了,下面結合【具體實施方式】并參照附圖,對本發明進一步詳細說明。應該理解,這些描述只是示例性的,而并非要限制本發明的范圍。此外,在以下說明中,省略了對公知結構和技術的描述,以避免不必要地混淆本發明的概念。
[0031]圖1顯示了現有技術的視頻圖像碼流幀結構示意圖。
[0032]在現有技術的視頻圖像碼流幀結構中,由I幀及其后與其存在參考關系的多個普通P幀組成一個圖像集合以構成一個圖像組,簡稱GOP (Group of Pictrues)。如圖1所示,相鄰的兩個I幀(例如圖中的IjP 12)之間構成一個G0P,一個GOP的長度不定,至少要包含一個I幀和多個P幀。
[0033]I幀是視頻編解碼標準規定的一種幀類型,其采用幀內預測方式編碼,是一種自帶全部信息的獨立幀,可以獨立解碼,其解碼過程不會依賴于之前的圖像。
[0034]P幀屬于普通幀,也稱前向預測參考幀,在編碼過程中既可以采用幀內預測方式,也可以參考其前面的P幀或者I幀進行幀間預測,即考慮運動的特性對時間域的冗余信息進行幀間壓縮。
[0035]在傳統的多客戶端編解碼和傳輸系統中,當新觀眾想要切入視頻流時需要等候。例如,當前的新用戶切入視頻流時:假設服務器端編碼和發送的圖像組GOP長度為100幀,整個視頻流共200幀,則服務器需要發送的碼流記為碼流S,如碼流S表示為:S -1idP1P2…
P 了 P P...P
rSg110r1irIC^ r 199 °
[0036]碼流S中,字母I和P分別表示各幀的編碼類型,下標數字表示各幀在視頻流中的編碼和顯示順序。由于P幀的解碼結果必須依賴于同一 GOP的I幀,因此,在傳統的多客戶端視頻編解碼和傳輸系統中,新觀眾必須等候下一個GOP的I幀到達,才能正確地解碼和顯示視頻流。
[0037]在現有技術的一種視頻接入方法中,在編碼器和解碼器建立連接的時間點上,編碼器在當前的編碼處理中強制插入一個I幀(打亂原有的I幀間隔設置),從該I幀起始,將碼流發送到解碼器;同時該I幀也必須被發送到其它已經建立連接的解碼器。但是,由于I幀通常較大,將I幀發送給視頻解碼器,會帶來較大的瞬時碼率的波動,使得新插入的I幀對已有的連接造成不利影響。
[0038]在現有技術的另一種視頻接入方法中,為視頻流的圖像組設置至少一個P幀作為插隊幀,該插隊幀為短期參考幀,當前圖像組的I幀作為長期參考幀。插隊幀只參考當前GOP的I幀,在反饋新用戶的插入請求時,將當前GOP的I幀和插隊幀反饋給新用戶,使得新用戶能夠快速的接入當前視頻流,從而減少了新觀眾的等待時間。但是,由于插隊幀的間隔(設為NI)固定,在接收到新用戶切入的信息后,該方法需要等待到下一個插隊幀到來才可以播放,即不能立即插入插隊幀,導致用戶需要等待插隊幀間隔的時間,從而經常出現視頻接入延遲的現象,影響視頻觀看體驗。
[0039]本發明提供了一種碼流傳輸方法及裝置,可以理解為一種可以實現快速隨機接入的碼流傳輸方法及裝置。為實現本發明的快速隨機接入視頻的目的,本發明提出了一種新型的視頻圖像碼流幀結構,參見下面的圖2。
[0040]圖2是根據本發明的視頻圖像碼流幀結構的示意圖。
[0041]如圖2所示,本發明中,在現有技術的視頻圖像碼流幀結構基礎上新設置了刷新幀,本發明的視頻圖像碼流的一個圖像組包括至少一個I幀和該I幀之后與其直接或間接存在參考關系的多個刷新幀和多個普通幀。也就是說,I幀及其后與其直接或間接存在參考關系的刷新幀、普通幀組成的一個圖像集合構成一個圖像組G0P。
[0042]I幀是視頻編解碼標準規定的一種幀類型,其采用幀內預測方式編碼,是一種自帶全部信息的獨立幀,可以獨立解碼,其解碼過程不會依賴于之前的圖像。
[0043]普通幀是包含視頻圖像信息的幀,也稱前向預測參考幀。在視頻碼流傳輸過程中,普通幀由編碼器根據預定的時刻和規格編碼實時產生,形成一系列的普通幀序列,從而構成視頻碼流。普通幀可以是P幀,也可以是B幀,本文中為了描述方便,以P幀為例進行說明,但不限制于此。
[0044]如圖2中的箭頭所示,普通幀在編碼過程中可以采用幀內預測或幀間預測方式,具體來說,普通幀可以參考其前面最近的I幀、最近的刷新幀、或最近的刷新幀與當前幀之間的普通幀進行幀間預測而產生,但通常不參考最近的刷新幀之前的普通幀,從而考慮運動的特性對時間域的冗余信息進行幀間壓縮。在其他可選實施方式中,例如在GOP編碼方式中也可以參考B幀進行幀間預測。
[0045]刷新幀是一種特殊的P幀,刷新幀由編碼器根據預定的時刻和規格編碼產生,也可以根據實際需要隨機產生。本發明中,系統在需要產生刷新幀時會向編碼器發出一個強制生成命令,使編碼器強制生成刷新幀,刷新幀通常優先形成為比所在時刻的普通幀具有更好的圖像質量,從而實現對當前時刻的普通幀進行質量提升,但本發明不限制于此。
[0046]如圖2所示,刷新幀按照預定的間隔生成在普通幀之間,構成其后的普通幀的參考對象。刷新幀的預測方式與普通P幀基本相同,可以采用幀內預測和/或幀間預測的方式。不同的是,刷新幀的幀間預測的參考幀限定為當前圖像組(即刷新幀所屬的圖像組)的首個I幀,不參考前面的普通P幀。也就是說,刷新幀是參考其前面所在圖像組的首個I幀進行幀間預測而生成。
[0047]如圖2所示,刷新幀產生的時刻可以預先設定,或者根據視頻播放的實際需要隨機發出指令設定。相鄰兩個刷新幀之間的間隔(間隔普通幀的數量)可以固定或不固定,在兩個相鄰I幀之間可以包括N個刷新幀(N多O)。通過這樣設置,可以實現在隨機訪問或者視頻回放時可以快速檢索和快速解碼,減少解碼等待時間。本發明中,刷新幀的編碼方式可以根據播放視頻對象的格式、視頻源文件質量、接入客戶要求的視頻播放質量等實際情況進行選擇,可以采用本領域常用的編碼方式,但不限于此。只要保證刷新幀的參考關系能夠實現快速隨機接入,任何已知或未知的編碼方式均可適用于本發明,從而能夠在長GOP的情況下實現了快速的隨機接入。
[0048]在本發明的幀結構中,相鄰的兩個I幀之間包含有多個普通幀和刷新幀,相鄰兩個刷新幀之間包含多個普通幀。相鄰兩個刷新幀之間的間隔是可變的,例如,相鄰兩個刷新幀之間的間隔可以為I秒或2秒。
[0049]現有技術中,由于I幀間隔很大,客戶端需要等候下一個GOP的I幀到達,才能正確地解碼和顯示視頻流,這會導致等待較長時間,造成碼流傳輸和解碼的延遲。對于強制插入一個I幀以啟動發送碼流的方案,由于I幀的尺寸(數據量大小)通常較大,強制插入的I幀會帶來較大的瞬時碼率的波動,使得新插入的I幀對已有的連接造成不利影響。
[0050]在本發明中,預定或隨機的強制生成刷新幀,通過刷新幀實現快速隨機接入,客戶端不用等候下一個I幀到達即可接入,使得相鄰兩個I幀的間隔可以形成為很大,可遠大于一般視頻監控中的I幀間隔。例如,一般視頻監控的I幀間隔為50秒,在本發明中,視頻監控的I幀間隔可以達到幾分鐘、幾十分鐘、幾個小時、幾天甚至更長,這樣可以保持較低碼率波動,減小傳輸數據量。
[0051]另一方面,本發明通過刷新幀實現快速隨機接入,使得相鄰兩個I幀的間隔可以形成為很大,既避免了強制插入額外的I幀,又避免了采用過多數量的I幀,從而可以大大減少碼流的數據尺寸,提高傳輸速率。因此,本發明中,I幀的尺寸可以形成為遠大于刷新幀或普通幀的尺寸。在本發明的優選實施例中,I幀的尺寸形成為刷新幀的10倍以上,在前景(即場景中的運動物體)較少的場景中,如在車流較少的馬路或者無人的室內等,I幀的尺寸形成為P幀的50倍甚至更多。
[0052]通常,一個GOP的長度不定,至少要包含一個I幀。在背景不變的場景中,相鄰兩個I幀之間的間隔(即G0P)可以很長,至少為I個小時,例如3?5個小時。在室內場景光照條件不變的場景中,相鄰兩個I幀之間的間隔(即G0P)至少為I天,例如,3?5天甚至一周。在本發明中,通過引入具有刷新幀的幀結構,可以使得在長GOP的情況下(理論上該GOP可幾天甚至幾個月),實現了快速的隨機接入。進一步,本發明的技術方案能夠更好的使用長GOP,從而大大節省了碼率。
[0053]基于上述本發明的視頻圖像碼流幀結構,下面參考圖3對本發明實施方式的碼流傳輸方法進行說明。
[0054]圖3是根據本發明優選實施方式的碼流傳輸方法的流程圖。
[0055]如圖3所示,根據本發明優選實施方式的碼流傳輸方法包括:
[0056]步驟SI,編碼器接收到用戶發出的接入命令。
[0057]在本發明的碼流傳輸方法中,對某個視頻對象來說,編碼器向解碼器發送實時視頻碼流(以下簡稱碼流)時,可能已經有若干個用戶在線連接獲取碼流(進行在線視頻預覽等),這些已經存在的在線連接稱為“已有連接”。
[0058]當有新的用戶需要在線訪問碼流時(例如進行在線視頻預覽等),會向編碼器發送一個的隨機接入命令,該新接入的連接稱為“新建連接”。
[0059]編碼器在接收到該隨機接入命令時,與解碼器建立連接,形成一個新的隨機接入。其中,編碼器和解碼器建立連接的時間點稱為接入時刻,即可被認為是需要解碼顯示的起始點,也即新生成的刷新幀顯示的時刻。
[0060]步驟S2,編碼器編碼生成刷新幀。
[0061]在編碼器端,當編碼器接收到隨機接入命令時,啟動刷新幀編碼機制,編碼生成刷新幀并發送給解碼器,新產生的刷新幀的幀間預測僅參考當前圖像組的首個I幀,因而能夠在當前時刻及時顯示出來,而無需等待。但是,本發明并不限制于此,新產生的刷新幀也可以設置為等待一定時間間隔后顯示。
[0062]刷新幀由編碼器根據預定的時刻和規格編碼產生,也可以根據實際需要隨機產生。本發明中,系統在需要產生刷新幀時會向編碼器發出一個強制生成命令,使編碼器強制生成刷新幀。
[0063]由于刷新幀遠小于I幀大小,一般I幀的大小是刷新幀的10倍以上,在前景(即場景中的運動物體)較少的場景中,如在車流較少的馬路或者無人的室內等,I幀的大小是P幀的50倍甚至更多。因此,產生并發送一個刷新幀,對于已存在連接的瞬時碼率影響較小,不會影響用戶接入的速度。
[0064]步驟S3,將所生成的刷新幀及后面的碼流發送到已有連接的解碼器。
[0065]對某個視頻對象來說,可能已經有若干個用戶在線連接獲取碼流(進行在線視頻預覽等),這些已經存在的在線連接稱為“已有連接”。本步驟中,編碼器在接入時刻將刷新幀及后面的碼流發送到所述若干個“已有連接”的解碼器。由于刷新幀能夠及時顯示,并且具有比普通幀更優的圖像質量,對于已經接入的用戶來說,新用戶的隨機接入行為不會影響其播放速度和播放質量。
[0066]步驟S4,將作為所述刷新幀的參考幀的I幀發送到新建連接的解碼器。
[0067]如前所述,每個圖像組GOP包含至少一個I幀及該I幀之后存在參考關系的多個刷新幀和多個普通幀。本發明中,在生成某個GOP時,該GOP的首個I幀預先存儲在編碼器的緩存內。編碼器在編碼刷新幀的同時,向新建連接的解碼器發送該預存的I幀,解碼器接收到該GOP預存的I幀后即可啟動解碼操作。當前的圖像組GOP發送完畢后,當生成下一個GOP時,會生成下一個GOP的首個I幀,此時將下一個GOP的首個I幀存儲在編碼器的緩存內,并替換掉前一個GOP的首個I幀,從而啟動下一個GOP的編碼解碼操作。
[0068]步驟S5,將刷新幀及后面的碼流發送到新建連接的解碼器。
[0069]本步驟中,編碼器在接入時刻將刷新幀及后面的碼流發送到新建連接的解碼器。編碼器向解碼器發送完I幀后,在當前編碼處理中強制生成步驟S2中編碼出的刷新幀,再向解碼器發送該刷新幀,從而可以使得解碼器實現對視頻碼流快速接收和解碼,進而快速播放該視頻碼流給用戶,這樣可以保證在在隨機接入時以最快速度播放視頻碼流。
[0070]由于刷新幀能夠及時顯示,并且具有比普通幀更優的圖像質量,對于已經接入的用戶來說,新用戶的隨機接入行為不會影響其播放速度和播放質量。
[0071]本發明中,步驟S3與步驟S4和步驟S5可以同時執行或先后執行,步驟S4與步驟S5可以同時執行或先后執行。
[0072]圖4顯示了本發明另一實施方式的碼流傳輸方法的流程圖。
[0073]在圖4所示實施例中,步驟S4與步驟S5同時執行,即對于新建連接的用戶來說,編碼器在編碼生成刷新幀之后,同時將預存的I幀和刷新幀發送到新建連接的解碼器。
[0074]如上所述,在本發明的實施方式中,編碼器對于已經存在的隨機接入連接和新建立的隨機接入連接,在向解碼器發送刷新幀時采用不同的機制。
[0075]由于編碼器基于已連接用戶的請求已經建立了多條隨機接入連接。S卩,在執行上述步驟S1、步驟S2的同時,編碼器處于編碼處理過程中,向解碼器發送實時視頻碼流。在此過程中,當編碼器執行完步驟S2后,會在當前編碼處理器過程中強制生成刷新幀,然后向解碼器發送該刷新幀。也就是說,編碼器在編碼出一個刷新幀后,即向當前編碼處理中強制生成刷新幀,而不需要等待某個固定時刻,從而可以使得解碼器實現對視頻碼流快速接收和解碼,進而快速播放該視頻碼流給用戶,滿足用戶的視頻訪問需要。
[0076]在本發明中,編碼器是指視頻碼流的編碼和發送設備,例如包括網絡攝像機、視頻服務器等具有此類功能的設備或模塊。解碼器是指視頻碼流的解碼和接收設備,例如包括客戶端軟件、瀏覽器控件、網絡硬盤錄像機等具有此類功能的設備或模塊。
[0077]根據本發明實施方式的碼流傳輸方法,在接收到新用戶隨機接入命令時,編碼器會立即響應并強制編碼生成刷新幀,在編碼處理中實時生成刷新幀,從而實現快速高質量的碼流傳輸和播放,而不需要等到某一個固定時刻,與用戶的具體切入時間點無關,因此更靈活有效。此外,由于刷新幀的尺寸遠小于I幀,能夠在保持較長I幀間隔(從而保持較低碼率)的同時,實現快速隨機接入,因此相對于傳統的插入I幀的方式來說,本發明方法中新的隨機接入不會造成很大的瞬時碼率波動,對已有連接影響較小。
[0078]圖5顯示了本發明一實施方式的碼流傳輸裝置的結構示意圖。
[0079]如圖5所示,本發明優選實施方式的碼流傳輸裝置包括編碼器1、緩存單元2和發送單元3。
[0080]編碼器I用于編碼生成I幀、刷新幀和普通幀,將所述生成的普通幀和/或刷新幀通過發送單元發送給建立連接的用戶的解碼器。
[0081]緩存單元2用于預存當前圖像組的首個I幀,以將預存的I幀通過發送單元發送給新建連接的解碼器。
[0082]發送單元3連接到編碼器I和緩存單元2,用于將編碼器生成的數據幀和/或緩存單元中預存的I幀發送給解碼器,包括已有連接的解碼器和新建連接的解碼器。
[0083]在本發明的實施方式中,當有新的用戶需要在線訪問碼流時,向編碼器I發送一個隨機接入命令。編碼器I在接收到該隨機接入命令時,與解碼器建立新的隨機接入連接。其中,編碼器和解碼器建立隨機接入連接的時間點稱為接入時刻,即可被認為是需要解碼顯示的起始點。
[0084]在本發明的優選實施例中,編碼器I在該新用戶的接入時刻強制生成刷新幀,由于編碼器I基于之前用戶的請求,已經建立了多條隨機接入連接。即,編碼器I在響應新用戶的隨機接入命令和編碼刷新幀的同時,也處于編碼處理過程中,向解碼器實時發送普通幀形成的視頻碼流。在另一可選實施例中,編碼器I也可以在新用戶的接入時刻等待下一個刷新幀的生成。
[0085]在此過程中,當編碼器I編碼出刷新幀后,向解碼器發送該刷新幀,而不需等待某個特定時刻,從而可以使得解碼器實現對視頻碼流快速接收和解碼,進而快速播放該視頻碼流給用戶,這樣可以保證在在隨機接入時以最快速度播放視頻碼流。
[0086]在本發明的實施方式中,編碼器可以為視頻碼流的編碼設備,例如:網絡攝像機、視頻服務器等具有此類功能的設備或模塊。解碼器可以為視頻碼流的解碼和接收設備,例如:客戶端軟件、瀏覽器控件、網絡硬盤錄像機等具有此類功能的設備或模塊。
[0087]圖6顯示了圖5所示碼流傳輸裝置的編碼器的結構示意圖。
[0088]如圖6所示,在本發明的實施方式中,編碼器I包括第一編碼單元11和第二編碼單元12。
[0089]第一編碼單元11用于編碼生成普通幀。普通幀是包含視頻圖像信息的幀,在正常的碼流傳輸過程中,第一編碼單元11對已經建立連接的用戶持續的編碼生成普通幀,并通過發送單元發送給已連接用戶的解碼器。
[0090]第二編碼單元12用于編碼生成刷新幀。刷新幀比普通幀具有更好的圖像質量,從而實現在預定的時刻對當前時刻的普通幀進行質量提升。刷新幀產生的時刻可以預先設定,或者根據視頻播放的實際需要發出指令設定。相鄰兩個刷新幀之間的間隔(間隔普通幀的數量)可以固定或不固定。
[0091]編碼器I在接收到新的隨機接入命令時,與解碼器建立新的隨機接入連接,此時第二編碼單元12編碼出一個刷新幀,向解碼器發送刷新幀。
[0092]在本發明的實施方式中,編碼器I對于已經存在的隨機接入連接和新建立的隨機接入連接,在向解碼器發送刷新幀時采用不同的機制。
[0093]一方面,編碼器I對于接收到新的隨機接入命令時已經存在的隨機接入連接,在第二編碼單元12編碼生成刷新幀后,將該刷新幀及其后的碼流發送至已有連接的解碼器。
[0094]另一方面,編碼器I對于新建立的隨機接入連接,在第二編碼單元12編碼出一個刷新幀的同時,向解碼器發送預存的I幀,同時發送該刷新幀至解碼器。也就是說,對于新建立的隨機接入連接,編碼器I先向解碼器發送預先保存的I幀,再發送刷新幀。
[0095]通過上述不同機制的幀發送方式,從而可以使得解碼器實現對視頻碼流快速接收和解碼,進而快速播放該視頻碼流給用戶,同時保證不會影響已連接用戶的碼流傳輸速度和質量,這樣可以保證在在隨機接入時以最快速度播放視頻碼流。
[0096]如上所述,根據本發明實施方式的碼流傳輸裝置,在接收到新用戶隨機接入命令時,編碼器會立即響應,在編碼處理中強制生成刷新幀,從而可以最快時間播放,而不需要等到某一個固定時刻,與用戶的具體切入時間點無關,因此更靈活有效。此外,由于刷新幀的尺寸遠小于I幀,因此相對于傳統的插入I幀的方式,本發明采用強制生成并發送刷新幀的方式,不會造成很大的瞬時碼率波動,對已有連接影響較小。
[0097]應當理解的是,本發明的上述【具體實施方式】僅僅用于示例性說明或解釋本發明的原理,而不構成對本發明的限制。因此,在不偏離本發明的精神和范圍的情況下所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。此外,本發明所附權利要求旨在涵蓋落入所附權利要求范圍和邊界、或者這種范圍和邊界的等同形式內的全部變化和修改例。
【主權項】
1.一種碼流傳輸方法,所述碼流包括多個圖像組,每個圖像組包括至少一個I幀和該I幀之后與其存在參考關系的多個刷新幀和多個普通幀,所述方法包括: 編碼器接收到用戶發出的接入命令; 編碼器編碼生成刷新幀,所述刷新幀的幀間預測的參考幀是當前圖像組的首個I幀; 將作為所述刷新幀的參考幀的I幀發送到新建連接的解碼器;以及 將刷新幀及后面的碼流發送到新建連接的解碼器。2.根據權利要求1所述的碼流傳輸方法,在編碼器編碼生成刷新幀的步驟之后還包括:將所生成的刷新幀及后面的碼流發送到已有連接的解碼器。3.根據權利要求1或2所述的碼流傳輸方法,還包括編碼器編碼生成普通幀的步驟,所述普通幀采用幀內預測和/或幀間預測產生。4.根據權利要求3所述的碼流傳輸方法,所述普通幀參考其前面最近的I幀、最近的刷新幀、和/或最近的刷新幀與當前幀之間的普通幀進行幀間預測。5.根據權利要求1或2所述的碼流傳輸方法,其特征在于,相鄰兩個刷新幀之間包含多個普通幀,相鄰兩個刷新幀之間的間隔是可變或固定的。6.根據權利要求1或2所述的碼流傳輸方法,其特征在于,所述刷新幀是新用戶接入后在預定時刻生成或新用戶接入時強制生成。7.根據權利要求1或2所述的碼流傳輸方法,在所述編碼器編碼生成刷新幀的步驟之前,還包括預存當前圖像組的首個I幀的步驟。8.一種碼流傳輸裝置,所述碼流包括多個圖像組,每個圖像組包括至少一個I幀和該I幀之后與其存在參考關系的多個刷新幀和多個普通幀,所述裝置包括: 編碼器,用于編碼生成I幀、刷新幀和普通幀,將所述普通幀和/或刷新幀發送給建立連接的用戶的解碼器,所述刷新幀的幀間預測的參考幀是當前圖像組的首個I幀; 緩存單元,用于預存當前圖像組的首個I幀,以將預存的I幀發送給新建連接的解碼器;和 發送單元,用于將所述編碼器生成的普通幀、刷新幀和/或預存的I幀發送給建立連接的用戶的解碼器。9.根據權利要求8所述的碼流傳輸裝置,所述編碼器在新用戶的接入時刻強制生成刷新幀,或者在新用戶的接入時刻等待下一個刷新幀的生成。10.根據權利要求8所述的碼流傳輸裝置,所述編碼器采用幀內預測和/或幀間預測生成普通幀。11.根據權利要求10所述的碼流傳輸裝置,所述編碼器參考前面最近的I幀、最近的刷新幀、和/或最近的刷新幀與當前幀之間的普通幀進行幀間預測生成普通幀。12.根據權利要求8-11中任一項所述的碼流傳輸裝置,相鄰兩個刷新幀之間包含多個普通幀,相鄰兩個刷新幀之間的間隔是可變或固定的。13.根據權利要求8-11中任一項所述的碼流傳輸裝置,所述編碼器將所生成的刷新幀及其后的碼流發送至已有連接的解碼器。14.根據權利要求8-11中任一項所述的碼流傳輸裝置,所述編碼器將作為所述刷新幀的參考幀的I幀和刷新幀及其后的碼流先后或同時發送至新建連接的解碼器。
【文檔編號】H04N19/177GK105847790SQ201510023470
【公開日】2016年8月10日
【申請日】2015年1月16日
【發明人】謝小燕, 浦世亮, 師恩義, 俞海
【申請人】杭州海康威視數字技術股份有限公司