專利名稱:一種編解碼器能力協(xié)商方法及終端的制作方法
技術領域:
本發(fā)明涉及通信領域,特別涉及一種編解碼器能力協(xié)商方法及終端。
背景技術:
在經(jīng)由數(shù)字網(wǎng)絡的終端之間進行音頻或視頻通話時,會產(chǎn)生大量的音頻或視頻數(shù)據(jù)包。為了能夠提高網(wǎng)絡帶寬利用率,增加網(wǎng)絡呼叫容量,通常,在發(fā)送端首先對音頻或視頻原始數(shù)據(jù)采用編碼算法進行壓縮處理,再將壓縮后的音頻或視頻數(shù)據(jù)發(fā)送至網(wǎng)絡上;接收端接收到數(shù)據(jù)包后,需要采用和發(fā)送端編碼算法所對應的解碼算法對數(shù)據(jù)進行解壓縮處理,以還原音頻或視頻數(shù)據(jù)。 采用這種方式通信的每個終端都具有一個編解碼器,終端之間采用何種編碼類型 (如:G. 711、G. 726、G. 729等音頻編碼類型,H. 263、H. 264、MPEG-4等視頻編碼類型)主要是通過信令的方式進行協(xié)商。在各種編碼標準規(guī)范中,除了規(guī)范強制要求實施的編碼算法(即,基線算法)夕卜, 還有部分可選的編碼算法(如H. 263編碼標準規(guī)范附錄中所描述的非受限運動矢量模式、 分塊濾波器模式等),這些可選的編碼算法可以加強編碼效率、增強容錯性,改善音頻或視頻通信質量,但是對編解碼器能力有更高的要求。由于每個終端采用的編解碼器能力各有差異,為了能夠保證各個終端的兼容性, 需要對編解碼器能力進行協(xié)商,而現(xiàn)有技術對編解碼器能力進行協(xié)商采用的是信令方式, 需要額外的信令交互?;蛘?,在音視頻通信中均采用編碼規(guī)范中強制要求實施的編碼算法, 但是,采用這種方式后,在部分具有較高能力的編解碼器的終端之間通信時,也無法使用規(guī)范中的可選編碼算法以提高通信質量,大大降低了編碼算法選擇的靈活性,有待于改進和發(fā)展。
發(fā)明內容
本發(fā)明的目的在于提供一種編解碼器能力協(xié)商方法及終端,用于經(jīng)由數(shù)字網(wǎng)絡的終端之間的音頻或視頻通信中,采用編解碼器能力自協(xié)商的方式,以提高編碼算法選擇的靈活性,改善音頻或視頻通信質量,增強終端用戶體驗。為實現(xiàn)上述目的,本發(fā)明提供一種編解碼器能力協(xié)商方法,包括在第一終端中存儲用于指示協(xié)商是否完成的協(xié)商標識,并將所述協(xié)商標識設置為協(xié)商未完成;第一終端的編碼器采用基線算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶第一終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示,以供第二終端獲取協(xié)商后的編碼算法,并采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,其中,所述協(xié)商后的編碼算法為第一、二終端的編解碼器最大支持的編碼算法能力集的交集,第二終端發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示;第一終端的解碼器接收到第二終端發(fā)送的攜帶有協(xié)商后的編碼算法和協(xié)商已完成指示的數(shù)據(jù)包時,將所述協(xié)商后的編碼算法通知給編碼器,將所述協(xié)商標識設置為協(xié)商已完成。上述的編解碼器能力協(xié)商方法,其中,還包括第一終端的解碼器接收到第二終端發(fā)送的攜帶有協(xié)商后的編碼算法和協(xié)商已完成指示的數(shù)據(jù)包時,采用協(xié)商后的編碼算法進行解碼。上述的編解碼器能力協(xié)商方法,其中,還包括 第一終端的編碼器進行編碼時,若所述協(xié)商標識指示協(xié)商已完成,則采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶所述協(xié)商后的編碼算法和協(xié)商已完成指示。上述的編解碼器能力協(xié)商方法,其中,還包括第二終端接收到第一終端發(fā)送的攜帶有協(xié)商未完成指示的數(shù)據(jù)包時,采用基線算法進行解碼;第二終端接收到第一終端發(fā)送的攜帶有協(xié)商已完成指示的數(shù)據(jù)包時,采用協(xié)商后的編碼算法進行解碼。上述的編解碼器能力協(xié)商方法,其中協(xié)商后的編碼算法、編解碼器最大支持的編碼算法能力集由發(fā)送的數(shù)據(jù)包的編碼頭攜帶,協(xié)商已完成指示、協(xié)商未完成指示由發(fā)送的數(shù)據(jù)包的包頭攜帶。為實現(xiàn)上述目的,本發(fā)明還提供一種編解碼器能力協(xié)商方法,包括在第二終端中存儲用于指示協(xié)商是否完成的協(xié)商標識,并將所述協(xié)商標識設置為協(xié)商未完成;第二終端的解碼器接收到第一終端發(fā)送的攜帶有第一終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示的數(shù)據(jù)包時,求取第一、二終端的編解碼器最大支持的編碼算法能力集的交集,得到協(xié)商后的編碼算法,將協(xié)商后的編碼算法通知給第二終端的編碼器,將所述協(xié)商標識設置為協(xié)商已完成;第二終端的編碼器采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示,以供第一終端獲取協(xié)商后的編碼算法。上述的編解碼器能力協(xié)商方法,其中,還包括第二終端接收到第一終端發(fā)送的攜帶有協(xié)商未完成指示的數(shù)據(jù)包時,采用基線算法進行解碼;上述的編解碼器能力協(xié)商方法,其中,還包括第一終端獲取到協(xié)商后的編碼算法后,將第一終端中存儲的協(xié)商標識設置為協(xié)商已完成,并采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶所述協(xié)商后的編碼算法和協(xié)商已完成指示。上述的編解碼器能力協(xié)商方法,其中,還包括第二終端接收到第一終端發(fā)送的攜帶有協(xié)商已完成指示的數(shù)據(jù)包時,采用協(xié)商后的編碼算法進行解碼。為實現(xiàn)上述目的,本發(fā)明還提供一種終端,包括,編碼器、解碼器和存儲模塊,其中所述存儲模塊用于存儲指示協(xié)商是否完成的協(xié)商標識;
所述編碼器進行編碼時,若所述協(xié)商標識指示協(xié)商未完成,則采用基線算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶本端終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示,以供對端終端獲取協(xié)商后的編碼算法,并采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,其中,所述協(xié)商后的編碼算法為本端終端的編解碼器最大支持的編碼算法能力集與對端終端的編解碼器最大支持的編碼算法能力集的交集,對端終端發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示;所述解碼器接收到對端終端發(fā)送的攜帶有協(xié)商后的編碼算法和協(xié)商已完成指示的數(shù)據(jù)包時,將所述協(xié)商后的編碼算法通知給編碼器,將所述協(xié)商標識設置為協(xié)商已完成上述的終端,其中所述解碼器接收到對端終端發(fā)送的攜帶有協(xié)商后的編碼算法和協(xié)商已完成指示的數(shù)據(jù)包時,采用協(xié)商后的編碼算法進行解碼。上述的終端,其中所述編碼器進行編碼時,若存儲模塊中存儲的協(xié)商標識指示協(xié)商已完成,則采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示。上述的終端,其中協(xié)商后的編碼算法、編解碼器最大支持的編碼算法能力集由發(fā)送的數(shù)據(jù)包的編碼頭攜帶;協(xié)商已完成指示、協(xié)商未完成指示由發(fā)送的數(shù)據(jù)包的包頭攜帶。為實現(xiàn)上述目的,本發(fā)明還提供一種終端,包括,編碼器、解碼器和存儲模塊,其中所述存儲模塊用于存儲指示協(xié)商是否完成的協(xié)商標識;所述解碼器接收到對端終端發(fā)送的攜帶有對端終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示的數(shù)據(jù)包時,求取本端終端的編解碼器最大支持的編碼算法能力集與對端終端的編解碼器最大支持的編碼算法能力集的交集,得到協(xié)商后的編碼算法,將協(xié)商后的編碼算法通知給編碼器,將所述協(xié)商標識設置為協(xié)商已完成;所述編碼器采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示,以供對端終端獲取協(xié)商后的編碼算法。上述的終端,其中所述解碼器接收到對端終端發(fā)送的攜帶有協(xié)商未完成指示的數(shù)據(jù)包時,采用基線算法進行解碼;所述解碼器接收到對端終端發(fā)送的攜帶有協(xié)商已完成指示的數(shù)據(jù)包時,采用協(xié)商后的編碼算法進行解碼。與現(xiàn)有技術相比,本發(fā)明的有益效果是本發(fā)明不需要采用信令方式,直接根據(jù)本地存儲的編解碼器協(xié)商標識和數(shù)據(jù)包中攜帶的相關信息即可完成編解碼器能力的協(xié)商,即,實現(xiàn)了編解碼器能力的自協(xié)商,從而提高了編碼算法選擇的靈活性。當編解碼器能力協(xié)商完成后,終端可以采用相互都能夠支持的編碼算法(包括編碼標準規(guī)范中的可選的編碼算法),極大的保證了終端編解碼器能力利用的最大化及帶寬利用最大化,從而可以改善終端之間的音頻或視頻通信質量,增強終端用戶體驗。
圖1是本發(fā)明實施例的編解碼器能力協(xié)商方法的流程圖;圖2是本發(fā)明實施例的終端的結構示意圖;圖3是本發(fā)明實施例的終端中編碼器工作流程的示意圖;圖4是本發(fā)明實施例的終端中解碼器工作流程的示意圖;圖5是本發(fā)明實施例的終端之間進行媒體會話的示意圖。
具體實施例方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖及具體實施例對本發(fā)明進行詳細描述。參照圖1,本發(fā)明實施例的編解碼器能力協(xié)商方法,包括如下步驟步驟101 在第一、二終端中存儲用于指示協(xié)商是否完成的協(xié)商標識,初始時,將所述協(xié)商標識均設置為協(xié)商未完成;步驟102 第一終端的編碼器采用基線算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶第一終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示;步驟103 第二終端的解碼器接收到第一終端發(fā)送的攜帶有第一終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示的數(shù)據(jù)包后,求取第一、二終端的編解碼器最大支持的編碼算法能力集的交集,得到協(xié)商后的編碼算法,將協(xié)商后的編碼算法通知給第二終端的編碼器,并將第二終端中存儲的協(xié)商標識設置為協(xié)商已完成;在本步驟中,第二終端的解碼器采用基線算法對第一終端發(fā)送的數(shù)據(jù)包進行解碼。步驟104 第二終端的編碼器采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示;步驟105 第一終端的解碼器接收到第二終端發(fā)送的攜帶有協(xié)商后的編碼算法和協(xié)商已完成指示的數(shù)據(jù)包時,將所述協(xié)商后的編碼算法通知給第一終端的編碼器,并將第一終端中存儲的協(xié)商標識設置為協(xié)商已完成。在本步驟中,第一終端的解碼器采用協(xié)商后的編碼算法對第二終端發(fā)送的數(shù)據(jù)包進行解碼。至此,第一、二終端之間的編解碼器能力協(xié)商完成,在隨后的通信過程中,均采用協(xié)商后的編碼算法進行編解碼。在具體實現(xiàn)時,協(xié)商后的編碼算法、編解碼器最大支持的編碼算法能力集可由發(fā)送的數(shù)據(jù)包的編碼頭攜帶;協(xié)商已完成指示、商未完成指示可由發(fā)送的數(shù)據(jù)包的包頭攜帶。 可以理解的是,這些信息也可以由發(fā)送的數(shù)據(jù)包中的其他字段攜帶,本發(fā)明對此不作限制。參照圖2,本發(fā)明實施例的終端10包括編碼器11、解碼器12和存儲模塊13,其中所述存儲模塊13用于存儲指示協(xié)商是否完成的編解碼器協(xié)商標識(簡稱協(xié)商 標識),例如,協(xié)商標識為TRUE,代表本端終端的編解碼器能力協(xié)商已完成,協(xié)商標識為TRUE, 代表本端終端的編解碼器能力協(xié)商未完成;所述編碼器11進行編碼時,若存儲模塊中存儲的協(xié)商標識指示協(xié)商已完成,則采用協(xié)商后的編碼算法對媒體數(shù)據(jù)(音頻數(shù)據(jù)、視頻數(shù)據(jù)等)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示;若所述協(xié)商標識指示協(xié)商未完成,則采用編碼標準規(guī)范中強制要求實施的編碼算法(基線算法)對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示;
所述解碼器12接收到數(shù)據(jù)包時,若所述協(xié)商標識指示協(xié)商未完成,則判斷接收的數(shù)據(jù)包中是否攜帶有協(xié)商已完成指示,若是,將接收的數(shù)據(jù)包中攜帶的協(xié)商后的編碼算法通知給所述編碼器11,并將所述協(xié)商標識設置為協(xié)商已完成;否則,求本端終端的編解碼器最大支持的編碼算法能力集與接收的數(shù)據(jù)包中攜帶的對端終端的編解碼器最大支持的編碼算法能力集的交集,得到協(xié)商后的編碼算法,將協(xié)商后的編碼算法通知給所述編碼器 11,并將所述協(xié)商標識設置為協(xié)商已完成。其中,協(xié)商后的編碼算法、編解碼器最大支持的編碼算法能力集可由發(fā)送的數(shù)據(jù)包的編碼頭攜帶;協(xié)商已完成指示、商未完成指示可由發(fā)送的數(shù)據(jù)包的包頭攜帶。本發(fā)明實施例的終端,不需要采用信令方式,直接根據(jù)本地存儲的編解碼器協(xié)商標識和數(shù)據(jù)包中攜帶的相關信息即可完成編解碼器能力的協(xié)商,即,實現(xiàn)了編解碼器能力的自協(xié)商,從而提高了編碼算法選擇的靈活性。進一步,本發(fā)明實施例的終端中的解碼器進行解碼時,若接收的數(shù)據(jù)包中攜帶有協(xié)商已完成指示,則采用接收的數(shù)據(jù)包中攜帶的協(xié)商后的編碼算法進行解碼;若接收的數(shù)據(jù)包中攜帶有協(xié)商未完成指示,則采用基線算法進行解碼。圖3是本發(fā)明實施例的終端中編碼器工作流程的示意圖,參照圖3,包括如下步驟步驟301 編碼器開始編碼操作時,先判斷編解碼器協(xié)商標識,若該協(xié)商標識為 FALSE,進入步驟302,若該協(xié)商標識為TRUE,進入步驟303 ;步驟302 協(xié)商標識為FALSE,表示本端終端的編解碼器能力協(xié)商未完成,編碼器采用編碼標準規(guī)范中強制要求實施的編碼算法(基線算法)對媒體數(shù)據(jù)(音頻數(shù)據(jù)、視頻數(shù)據(jù)等)進行編碼后發(fā)送,在發(fā)送的數(shù)據(jù)包的編碼頭中攜帶本端編解碼器最大支持的編碼算法能力集,在發(fā)送的數(shù)據(jù)包的包頭中攜帶協(xié)商未完成指示,結束;步驟303 協(xié)商標識為TRUE,表示本端終端的編解碼器能力協(xié)商已完成,編碼器采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,在發(fā)送的數(shù)據(jù)包的編碼頭中攜帶協(xié)商后的編碼算法,在發(fā)送的數(shù)據(jù)包的包頭中攜帶協(xié)商已完成指示。圖4是本發(fā)明實施例的終端中解碼器工作流程的示意圖,參照圖4,包括如下步驟步驟401 本端終端接收到對端終端發(fā)送的音頻或視頻數(shù)據(jù)包后,本端終端的解碼器先判斷本地存儲的編解碼器協(xié)商標識,若該協(xié)商標識為FALSE,進入步驟402,若該協(xié)商標識為TRUE,進入步驟403 ;步驟402 協(xié)商標識為FALSE,表示本端終端的編解碼器能力協(xié)商未完成,本端終端的解碼器通過解析接收的數(shù)據(jù)包的包頭信息獲取協(xié)商完成指示,若該協(xié)商完成指示為 FALSE,進入步驟404,若該協(xié)商完成指示為TRUE,進入步驟407 ;步驟403 協(xié)商標識為TRUE,表示本端終端的編解碼器能力協(xié)商已完成,本端終端的解碼器通過解析接收的數(shù)據(jù)包的包頭信息獲取協(xié)商完成指示,若該協(xié)商完成指示為FALSE,進入步驟410,若該協(xié)商完成指示為TRUE,進入步驟409 ;步驟404 協(xié)商完成指示為FALSE,表示對端終端的編解碼器能力協(xié)商未完成,本端終端的解碼器通過解析接收的數(shù)據(jù)包的編碼頭信息,獲取對端終端的編解碼器最大支持的編碼算法能力集Pl ;步驟405 用本端終端的編 解碼器最大支持的編碼算法能力集P2與Pl做交集,得到編碼算法能力集P3,將P3作為協(xié)商后的編碼算法;步驟406 將協(xié)商后的編碼算法通知給本端終端的編碼器,并設置編解碼器協(xié)商標識為TRUE,完成本端終端的編解碼器能力協(xié)商過程,然后,進入步驟310的解碼過程;步驟407 協(xié)商完成指示為TRUE,表示對端終端的編解碼器能力協(xié)商已完成,本端終端的解碼器通過解析接收的數(shù)據(jù)包的編碼頭信息,獲取對端終端發(fā)送的協(xié)商后的編碼算法;步驟408 將協(xié)商后的編碼算法通知給本端終端的編碼器,并設置編解碼器協(xié)商標識為TRUE,完成本端終端的編解碼器能力協(xié)商過程,然后,進入步驟309的解碼過程;步驟409 協(xié)商完成指示為FALSE,表示對端終端的編解碼器能力協(xié)商未完成,說明對端終端的編碼器的編碼采用的是編碼標準規(guī)范強制要求實施的編碼算法,因此,本端終端的解碼器按照編碼標準規(guī)范強制要求實施的編碼算法對接收到的數(shù)據(jù)包進行解碼;步驟410 協(xié)商完成指示為TRUE,表示對端終端的編解碼器能力協(xié)商已完成,說明對端終端的編碼器的編碼采用的是協(xié)商后的編碼算法,因此,本端終端的解碼器根據(jù)接收到的數(shù)據(jù)包的編碼頭信息中攜帶的編碼算法(此即協(xié)商后的編碼算法)進行解碼。以下給出本發(fā)明實施例的終端之間進行媒體會話的一個應用實例。參照圖5,終端Tl與終端T2之間進行的媒體會話過程,主要包括如下步驟步驟501 終端Tl與終端T2通過信令協(xié)商過程,選擇編碼類型;需要說明的是,本步驟中通過信令協(xié)商的僅為編碼類型,而非編碼算法。如前所述,在各種編碼標準規(guī)范中,除了規(guī)范強制要求實施的編碼算法外,還有部分可選的編碼算法,因此,在后續(xù)步驟中,還通過非信令的方式協(xié)商編碼算法。步驟502 終端Tl與終端T2之間建立實時傳輸協(xié)議(RTP)媒體通道,并初始化終端Tl與終端T2的編解碼器協(xié)商標識為FALSE,開始音頻或視頻會話過程;步驟503 終端Tl需要向終端T2發(fā)送第一個RTP數(shù)據(jù)包時,此時終端Tl的編解碼器協(xié)商標識為FALSE,表示終端Tl的編解碼器能力協(xié)商未完成,終端Tl的編碼器采用編碼標準規(guī)范中強制要求實施的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,在發(fā)送的數(shù)據(jù)包的編碼頭中攜帶終端Tl的編解碼器最大支持的編碼算法能力集P1,在發(fā)送的數(shù)據(jù)包的包頭中攜帶協(xié)商未完成指示;步驟504 終端T2收到終端Tl發(fā)送的第一個RTP數(shù)據(jù)包時,此時終端T2的編解碼器協(xié)商標識為FALSE,表示終端T2的編解碼器能力協(xié)商未完成,于是,終端T2的解碼器通過解析接收的數(shù)據(jù)包的包頭來獲取協(xié)商完成指示,此時,該協(xié)商完成指示為FALSE,表示終端Tl的編解碼器能力協(xié)商未完成,繼續(xù)解析接收的數(shù)據(jù)包的編碼頭獲取終端Tl最大支持的編碼算法能力集P1,終端T2用自身最大支持的編碼算法能力集P2與Pl做交集,得到終端Tl與終端T2都能夠支持的編碼算法能力集P3,將P3作為協(xié)商后的編碼算法通知給終端 T2的編碼器,并修改終端T2的編解碼器協(xié)商標識為TRUE ;
終端T2的編碼器在隨后的編碼過程中采用Ρ3中的編碼算法,并在RTP數(shù)據(jù)包的編碼頭中攜帶Ρ3中的編碼算法,在RTP數(shù)據(jù)包的包頭中攜帶協(xié)商已完成指示;在本步驟中,由于終端Τ2獲知終端Tl的編解碼器能力協(xié)商還未完成,則可以確定終端Tl的編碼器采用的是編碼標準規(guī)范中強制要求實施的編碼算法進行的編碼,因此,終端Τ2的解碼器對該接收到的數(shù)據(jù)包采用編碼標準規(guī)范中強制要求實施的編碼算法進行解碼。步驟505 終端Tl接收到終端Τ2發(fā)送的RTP數(shù)據(jù)包,此時終端Tl的編解碼器協(xié)商標識為FALSE,表示終端Tl的編解碼器能力協(xié)商未完成,終端Tl的解碼器通過解析接收的數(shù)據(jù)包的包頭中攜帶的協(xié)商完成指示,獲知終端T2協(xié)商已完成,于是,繼續(xù)通過解析接收的數(shù)據(jù)包的編碼頭信息獲取協(xié)商后的編碼算法,將獲取到的協(xié)商后的編碼算法通知給終端Tl的編碼器,并修改終端Tl的編解碼器協(xié)商標識為TRUE,終端Tl的編碼器在隨后的編碼過程中采用協(xié)商后的編碼算法。從以上對本發(fā)明的實施例的描述可知,根據(jù)本發(fā)明實施例提供的技術方案,若終端在確定本端的編解碼器能力協(xié)商未完成,即終端編解碼器協(xié)商標識為FALSE,編碼器采用編碼標準規(guī)范中強制要求實施的編碼算法,以保證對端能夠正常對收到的音頻或視頻數(shù)據(jù)進行解碼,這種方法特別對于視頻通信有著極其重要的意義。在視頻編碼算法中,為了能夠提高帶寬的利用率,采用了 “關鍵幀”壓縮算法,關鍵幀是對全圖像的壓縮編碼,而非關鍵幀(預測幀)是對當前圖像和相鄰圖像的不同點來壓縮數(shù)據(jù),解碼器收到非關鍵幀進行解碼操作時需要參考相鄰的圖像數(shù)據(jù)。在視頻通信中,關鍵幀和非關鍵幀(預測幀)通常是交替?zhèn)鬏數(shù)?,而第一幀必然為關鍵幀,如果第一幀丟失或者接收端解碼失敗必然導致接收端的視頻質量大幅下降。因此,在編解碼器能力協(xié)商完成前,采用編碼標準規(guī)范強制要求實施的編碼算法,可以極大的保證終端之間的視頻通信質量。根據(jù)本發(fā)明實施例提供的技術方案,當終端收到對端的數(shù)據(jù)包進行解碼操作時, 需要先判斷數(shù)據(jù)包頭部攜帶的協(xié)商完成指示。若協(xié)商未完成,表示該數(shù)據(jù)包攜帶的音頻或視頻數(shù)據(jù)采用的是編碼標準規(guī)范中強制要求實施的編碼算法;若協(xié)商已完成,表示該數(shù)據(jù)包攜帶的音頻或視頻數(shù)據(jù)采用的是協(xié)商后的編碼算法。采用這種方式,可以保證終端在編解碼器能力協(xié)商過程中發(fā)送的音頻或視頻數(shù)據(jù)包能夠被對方正常解碼。根據(jù)本發(fā)明實施例提供的技術方案,當編解碼器能力協(xié)商完成后,終端可以 采用相互都能夠支持的編碼算法,從而保證了編碼算法選擇的靈活性,極大的保證了終端編解碼器能力利用的最大化及帶寬利用最大化,并且可以改善終端之間的音頻或視頻通信質量,增強終端用戶體驗。最后應當說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非限制,本領域的普通技術人員應當理解,可以對本發(fā)明的技術方案進行修改或者等同替換,而不脫離本發(fā)明技術方案的精神范圍,其均應涵蓋在本發(fā)明的權利要求范圍當中。
權利要求
1.一種編解碼器能力協(xié)商方法,其特征在于,包括在第一終端中存儲用于指示協(xié)商是否完成的協(xié)商標識,并將所述協(xié)商標識設置為協(xié)商未完成;第一終端的編碼器采用基線算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶第一終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示,以供第二終端獲取協(xié)商后的編碼算法,并采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,其中,所述協(xié)商后的編碼算法為第一、二終端的編解碼器最大支持的編碼算法能力集的交集,第二終端發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示;第一終端的解碼器接收到第二終端發(fā)送的攜帶有協(xié)商后的編碼算法和協(xié)商已完成指示的數(shù)據(jù)包時,將所述協(xié)商后的編碼算法通知給編碼器,將所述協(xié)商標識設置為協(xié)商已完成。
2.如權利要求1所述的編解碼器能力協(xié)商方法,其特征在于,還包括第一終端的解碼器接收到第二終端發(fā)送的攜帶有協(xié)商后的編碼算法和協(xié)商已完成指示的數(shù)據(jù)包時,采用協(xié)商后的編碼算法進行解碼。
3.如權利要求1所述的編解碼器能力協(xié)商方法,其特征在于,還包括第一終端的編碼器進行編碼時,若所述協(xié)商標識指示協(xié)商已完成,則采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶所述協(xié)商后的編碼算法和協(xié)商已完成指示。
4.如權利要求3所述的編解碼器能力協(xié)商方法,其特征在于,還包括第二終端接收到第一終端發(fā)送的攜帶有協(xié)商未完成指示的數(shù)據(jù)包時,采用基線算法進行解碼;第二終端接收到第一終端發(fā)送的攜帶有協(xié)商已完成指示的數(shù)據(jù)包時,采用協(xié)商后的編碼算法進行解碼。
5.如權利要求1至4中任一項所述的編解碼器能力協(xié)商方法,其特征在于協(xié)商后的編碼算法、編解碼器最大支持的編碼算法能力集由發(fā)送的數(shù)據(jù)包的編碼頭攜帶,協(xié)商已完成指示、協(xié)商未完成指示由發(fā)送的數(shù)據(jù)包的包頭攜帶。
6.一種編解碼器能力協(xié)商方法,其特征在于,包括在第二終端中存儲用于指示協(xié)商是否完成的協(xié)商標識,并將所述協(xié)商標識設置為協(xié)商未完成;第二終端的解碼器接收到第一終端發(fā)送的攜帶有第一終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示的數(shù)據(jù)包時,求取第一、二終端的編解碼器最大支持的編碼算法能力集的交集,得到協(xié)商后的編碼算法,將協(xié)商后的編碼算法通知給第二終端的編碼器,將所述協(xié)商標識設置為協(xié)商已完成;第二終端的編碼器采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示,以供第一終端獲取協(xié)商后的編碼算法。
7.如權利要求6所述的編解碼器能力協(xié)商方法,其特征在于,還包括第二終端接收到第一終端發(fā)送的攜帶有協(xié)商未完成指示的數(shù)據(jù)包時,采用基線算法進行解碼。
8.如權利要求6所述的編解碼器能力協(xié)商方法,其特征在于,還包括第一終端獲取到協(xié)商后的編碼算法后,將第一終端中存儲的協(xié)商標識設置為協(xié)商已完成,并采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶所述協(xié)商后的編碼算法和協(xié)商已完成指示。
9.如權利要求8所述的編解碼器能力協(xié)商方法,其特征在于,還包括第二終端接收到第一終端發(fā)送的攜帶有協(xié)商已完成指示的數(shù)據(jù)包時,采用協(xié)商后的編碼算法進行解碼。
10.一種終端,包括編碼器、解碼器和存儲模塊,其特征在于所述存儲模塊用于存儲指示協(xié)商是否完成的協(xié)商標識;所述編碼器進行編碼時,若所述協(xié)商標識指示協(xié)商未完成,則采用基線算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶本端終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示,以供對端終端獲取協(xié)商后的編碼算法,并采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,其中,所述協(xié)商后的編碼算法為本端終端的編解碼器最大支持的編碼算法能力集與對端終端的編解碼器最大支持的編碼算法能力集的交集,對端終端發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示;所述解碼器接收到對端終端發(fā)送的攜帶有協(xié)商后的編碼算法和協(xié)商已完成指示的數(shù)據(jù)包時,將所述協(xié)商后的編碼算法通知給編碼器,將所述協(xié)商標識設置為協(xié)商已完成。
11.如權利要求10所述的終端,其特征在于所述解碼器接收到對端終端發(fā)送的攜帶有協(xié)商后的編碼算法和協(xié)商已完成指示的數(shù)據(jù)包時,采用協(xié)商后的編碼算法進行解碼。
12.如權利要求10所述的終端,其特征在于所述編碼器進行編碼時,若存儲模塊中存儲的協(xié)商標識指示協(xié)商已完成,則采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示。
13.如權利要求10、11或12所述的終端,其特征在于協(xié)商后的編碼算法、編解碼器最大支持的編碼算法能力集由發(fā)送的數(shù)據(jù)包的編碼頭攜帶;協(xié)商已完成指示、協(xié)商未完成指示由發(fā)送的數(shù)據(jù)包的包頭攜帶。
14.一種終端,包括編碼器、解碼器和存儲模塊,其特征在于所述存儲模塊用于存儲指示協(xié)商是否完成的協(xié)商標識;所述解碼器接收到對端終端發(fā)送的攜帶有對端終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示的數(shù)據(jù)包時,求取本端終端的編解碼器最大支持的編碼算法能力集與對端終端的編解碼器最大支持的編碼算法能力集的交集,得到協(xié)商后的編碼算法,將協(xié)商后的編碼算法通知給編碼器,將所述協(xié)商標識設置為協(xié)商已完成;所述編碼器采用協(xié)商后的編碼算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶協(xié)商后的編碼算法和協(xié)商已完成指示,以供對端終端獲取協(xié)商后的編碼算法。
15.如權利要求14所述的終端,其特征在于所述解碼器接收到對端終端發(fā)送的攜帶有協(xié)商未完成指示的數(shù)據(jù)包時,采用基線算法進行解碼;所述解碼器接收到對端終端發(fā)送的攜帶有協(xié)商已完成指示的數(shù)據(jù)包時,采用協(xié)商后的編碼算法進行解碼。
全文摘要
本發(fā)明提供一種編解碼器能力協(xié)商方法及終端。方法包括在第一終端中存儲用于指示協(xié)商是否完成的協(xié)商標識,并將所述協(xié)商標識設置為協(xié)商未完成;第一終端的編碼器采用基線算法對媒體數(shù)據(jù)進行編碼后發(fā)送,發(fā)送的數(shù)據(jù)包中攜帶第一終端的編解碼器最大支持的編碼算法能力集和協(xié)商未完成指示,以供第二終端獲取協(xié)商后的編碼算法,所述協(xié)商后的編碼算法為第一、二終端最大支持的編碼算法能力集的交集;第一終端的解碼器接收到第二終端發(fā)送的攜帶有協(xié)商后的編碼算法和協(xié)商已完成指示的數(shù)據(jù)包時,將所述協(xié)商后的編碼算法通知給編碼器,將所述協(xié)商標識設置為協(xié)商已完成。本發(fā)明實現(xiàn)了編解碼器能力的自協(xié)商,能夠提高編碼算法選擇的靈活性,改善通信質量。
文檔編號H04N7/26GK102223201SQ20101014919
公開日2011年10月19日 申請日期2010年4月15日 優(yōu)先權日2010年4月15日
發(fā)明者左熹, 廖凱, 王東 申請人:中興通訊股份有限公司