版權申明
本專利文件披露的內容包含受版權保護的材料。該版權為版權所有人所有。版權所有人不反對任何人復制專利與商標局的官方記錄和檔案中所存在的該專利文件或者該專利披露。
本發(fā)明涉及信息技術領域,并且更具體地,涉及一種傳輸編碼數(shù)據(jù)的方法、裝置、計算機系統(tǒng)和移動設備。
背景技術:
信道帶寬實時變化條件下的低延時視頻傳輸系統(tǒng)是當下的熱點研究和應用方向。信源可能隨時間變化,信道也可能隨時間變化,尤其對于無線信道,影響信道的條件更多,例如,收發(fā)設備距離、相對位置,是否存在遮擋,即時的電磁環(huán)境干擾等等。信源和信道相互獨立變化,難以預測,這給信源編碼和信道帶寬的實時匹配造成困難。例如,當信道穩(wěn)定時,突然攝像機運動,或者相機取景框內物體的大幅運動,都會導致編碼出的碼流的大小有突然的變化,假如碼流增加兩倍,意味著傳輸延時增加兩倍;當信源穩(wěn)定時,此時碼流大小平穩(wěn),但是突然信道發(fā)生變化,也會造成傳輸延時抖動,假如帶寬減小兩倍,意味著傳輸延時也減小兩倍。
現(xiàn)有技術中采用碼率控制算法,控制一段時間(若干幀)的平均碼率能夠穩(wěn)定在某個給定目標碼率上,以保證若干幀或一段時間的幀的平均總體延時抖動范圍較小。
然而,上述方案僅能控制一個幀組的平均總體延時。低延時圖像傳輸(圖傳),要求每一幀的傳輸時間都能控制在一定范圍內,避免大幅波動而導致接收端解碼顯示卡頓現(xiàn)象。因此,在信道帶寬實時變化條件下,實時地控制延時成為一個亟待解決的技術問題。
技術實現(xiàn)要素:
本發(fā)明實施例提供了一種傳輸編碼數(shù)據(jù)的方法、裝置、計算機系統(tǒng)和移動設備,能夠實時地控制編碼數(shù)據(jù)傳輸延時。
第一方面,提供了一種傳輸編碼數(shù)據(jù)的方法,包括:獲取多路編碼數(shù)據(jù),其中,該多路編碼數(shù)據(jù)為對同一待編碼數(shù)據(jù)按照多種碼率編碼后的編碼數(shù)據(jù);根據(jù)信道當前的信道帶寬,在該多路編碼數(shù)據(jù)中選擇待傳輸編碼數(shù)據(jù),其中,該待傳輸編碼數(shù)據(jù)為與該信道帶寬匹配的一路編碼數(shù)據(jù);通過該信道傳輸該待傳輸編碼數(shù)據(jù)。
第二方面,提供了傳輸編碼數(shù)據(jù)的裝置,包括:獲取模塊,用于獲取多路編碼數(shù)據(jù),其中,該多路編碼數(shù)據(jù)為對同一待編碼數(shù)據(jù)按照多種碼率編碼后的編碼數(shù)據(jù);選擇模塊,用于根據(jù)信道當前的信道帶寬,在該多路編碼數(shù)據(jù)中選擇待傳輸編碼數(shù)據(jù),其中,該待傳輸編碼數(shù)據(jù)為與該信道帶寬匹配的一路編碼數(shù)據(jù);傳輸模塊,用于通過該信道傳輸該待傳輸編碼數(shù)據(jù)。
第三方面,提供了一種計算機系統(tǒng),該計算機系統(tǒng)包括:存儲器,用于存儲計算機可執(zhí)行指令;處理器,用于訪問該存儲器,并執(zhí)行該計算機可執(zhí)行指令,以進行如下操作:獲取多路編碼數(shù)據(jù),其中,該多路編碼數(shù)據(jù)為對同一待編碼數(shù)據(jù)按照多種碼率編碼后的編碼數(shù)據(jù);根據(jù)信道當前的信道帶寬,在該多路編碼數(shù)據(jù)中選擇待傳輸編碼數(shù)據(jù),其中,該待傳輸編碼數(shù)據(jù)為與該信道帶寬匹配的一路編碼數(shù)據(jù);通過該信道傳輸該待傳輸編碼數(shù)據(jù)。
第四方面,提供了一種移動設備,包括:多種傳感器,用于獲取多種圖像數(shù)據(jù)源;以及上述第二方面的傳輸編碼數(shù)據(jù)的裝置。
第五方面,提供了一種移動設備,包括:多種傳感器,用于獲取多種圖像數(shù)據(jù)源;以及上述第三方面的計算機系統(tǒng)。
第六方面,提供了一種計算機存儲介質,該計算機存儲介質中存儲有程序代碼,該程序代碼可以用于指示執(zhí)行上述第一方面的方法。
本發(fā)明實施例的技術方案,通過在對同一待編碼數(shù)據(jù)按照多種碼率編碼后的多路編碼數(shù)據(jù)中,選擇與信道帶寬匹配的一路編碼數(shù)據(jù)進行傳輸,可以實時地保持信源信道匹配,從而能夠實時地控制編碼數(shù)據(jù)傳輸延時。
附圖說明
圖1是應用本發(fā)明實施例的技術方案的架構圖。
圖2a-圖2c是本發(fā)明實施例的編碼器的處理架構圖。
圖3是本發(fā)明實施例的待編碼數(shù)據(jù)的示意圖。
圖4是本發(fā)明實施例的移動設備的示意性架構圖。
圖5是本發(fā)明實施例的傳輸編碼數(shù)據(jù)的方法的示意性流程圖。
圖6是本發(fā)明一個實施例的傳輸編碼數(shù)據(jù)的裝置的示意性框圖。
圖7是本發(fā)明另一個實施例的傳輸編碼數(shù)據(jù)的裝置的示意性框圖。
圖8是本發(fā)明又一個實施例的傳輸編碼數(shù)據(jù)的裝置的示意性框圖。
圖9是本發(fā)明實施例的計算機系統(tǒng)的示意性框圖。
圖10是本發(fā)明一個實施例的移動設備的示意性框圖。
圖11是本發(fā)明另一個實施例的移動設備的示意性框圖。
具體實施方式
下面將結合附圖,對本發(fā)明實施例中的技術方案進行描述。
應理解,本文中的具體的例子只是為了幫助本領域技術人員更好地理解本發(fā)明實施例,而非限制本發(fā)明實施例的范圍。
還應理解,本發(fā)明實施例中的公式只是一種示例,而非限制本發(fā)明實施例的范圍,各公式可以進行變形,這些變形也應屬于本發(fā)明保護的范圍。
還應理解,在本發(fā)明的各種實施例中,各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應以其功能和內在邏輯確定,而不應對本發(fā)明實施例的實施過程構成任何限定。
本發(fā)明實施例的技術方案可以用于實時地控制編碼數(shù)據(jù)傳輸延時。例如,在信道帶寬實時變化條件下,本發(fā)明實施例的技術方案可以將每一幀的傳輸時間控制在一定范圍內。
圖1是應用本發(fā)明實施例的技術方案的架構圖。
如圖1所示,系統(tǒng)100可以接收待編碼數(shù)據(jù)102,對待編碼數(shù)據(jù)102進行編碼,產生編碼數(shù)據(jù)108,并通過信道傳輸編碼數(shù)據(jù)108。例如,系統(tǒng)100可以接收視頻數(shù)據(jù),壓縮視頻數(shù)據(jù)以產生壓縮的比特流并通過信道進行傳輸。在一些實施例中,系統(tǒng)100中的部件可以由一個或多個處理器實現(xiàn),該處理器可以是計算設備中的處理器,也可以是移動設備(例如無人機)中的處理器。該處理器可以為任意種類的處理器,本發(fā)明實施例對此不做限定。系統(tǒng)100中還可以包括一個或多個存儲器。該存儲器可用于存儲指令和數(shù)據(jù),例如,實現(xiàn)本發(fā)明實施例的技術方案的計算機可執(zhí)行指令,待編碼數(shù)據(jù)102、編碼數(shù)據(jù)108等。該存儲器可以為任意種類的存儲器,本發(fā)明實施例對此也不做限定。
在一些實施例中,系統(tǒng)100可以對同一待編碼數(shù)據(jù)102按照多種碼率編碼,得到多路編碼數(shù)據(jù)108,并根據(jù)信道當前的信道帶寬,在多路編碼數(shù)據(jù)108中選擇與信道帶寬匹配的一路編碼數(shù)據(jù)108進行傳輸。
在一些實施例中,系統(tǒng)100中可以包括由處理器和存儲器實現(xiàn)的編碼器。編碼器用于接收待編碼數(shù)據(jù)102,編碼待編碼數(shù)據(jù)102,并提供編碼數(shù)據(jù)108。在一些實施例中,編碼器可以為多速率編碼器,多速率編碼器可以對待編碼數(shù)據(jù)102按照多種碼率編碼,得到多路編碼數(shù)據(jù)108。在一些實施例中,系統(tǒng)100中可以包括多個編碼器,多個編碼器可以對待編碼數(shù)據(jù)102按照不種碼率編碼,得到多路編碼數(shù)據(jù)108。
待編碼數(shù)據(jù)102可以包括文本,圖像,圖形對象,動畫序列,音頻,視頻,或者任何需要編碼的其他數(shù)據(jù)。在一些情況下,待編碼數(shù)據(jù)102可以包括來自傳感器的傳感數(shù)據(jù),該傳感器可以為視覺傳感器(例如,相機、紅外傳感器),麥克風,近場傳感器(例如,超聲波傳感器、雷達),位置傳感器,溫度傳感器,觸摸傳感器等。在一些情況下,待編碼數(shù)據(jù)102可以包括來自用戶的信息,例如,生物信息,該生物信息可以包括面部特征,指紋掃描,視網(wǎng)膜掃描,嗓音記錄,dna采樣等。
編碼對于高效和/或安全的傳輸或存儲數(shù)據(jù)是必需的。對待編碼數(shù)據(jù)102的編碼可以包括數(shù)據(jù)壓縮,加密,糾錯編碼,格式轉換等。例如,對多媒體數(shù)據(jù)(例如視頻或音頻)壓縮可以減少在網(wǎng)絡中傳輸?shù)谋忍財?shù)量。敏感數(shù)據(jù),例如金融信息和個人標識信息,在傳輸和存儲前可以加密以保護機密和/或隱私。
任何合適的編碼技術都可以用于編碼待編碼數(shù)據(jù)102。編碼類型依賴于被編碼的數(shù)據(jù)和具體的編碼需求。
在一些實施例中,編碼器可以實現(xiàn)一種或多種不同的編解碼器。每種編解碼器可以包括實現(xiàn)不同編碼算法的代碼,指令或計算機程序。基于各種因素,包括待編碼數(shù)據(jù)102的類型和/或來源,編碼數(shù)據(jù)的接收實體,可用的計算資源,網(wǎng)絡環(huán)境,商業(yè)環(huán)境,規(guī)則和標準等,可以選擇一種合適的編碼算法編碼給定的待編碼數(shù)據(jù)102。
例如,編碼器可以被配置為編碼一系列視頻幀。編碼每個幀中的數(shù)據(jù)可以采用一系列步驟。在一些實施例中,編碼步驟可以包括預測、變換、量化、熵編碼等處理步驟。
圖2a示出了本發(fā)明實施例的編碼器的處理架構圖。如圖2a所示,預測處理可以包括幀內預測和幀間預測。通過預測處理,可以得到數(shù)據(jù)單元(例如像素點)對應的殘差,其中,在對某一像素點進行預測時,可以從存儲的上下文中獲取參考像素點重建后得到的像素,按照參考像素點重建后得到的像素與該像素點的像素,得到該像素點對應的像素殘差。像素殘差通過變換、量化后再進行熵編碼。在量化處理時,可以通過對量化參數(shù)的控制,實現(xiàn)對碼率的控制。在一些實施例中,可以按照多種量化參數(shù)進行量化處理,從而可以實現(xiàn)多種碼率編碼。對某一像素點對應的量化處理后的像素殘差還可以進行反量化反變換處理,再進行重建處理,得到該像素點重建后的像素,并將該像素點重建后的像素進行存儲,以便于在該像素點作為參考像素點時,利用該像素點重建后的像素獲取其他像素點對應的像素殘差。
量化參數(shù)可以包括量化步長,表示量化步長或者與量化步長相關的值,例如,h.264或者類似的編碼器中的量化參數(shù)(quantizationparameter,qp),或者,量化矩陣或其參考矩陣等。
在一些實施例中,可以采用多速率編碼器對同一待編碼數(shù)據(jù)按照多種碼率編碼,得到多路編碼數(shù)據(jù)。如圖2b所示,多速率編碼器中不同單速率編碼模塊之間可共享區(qū)域201中的模塊,最大限度共享預測和模式選擇中相同的運算。此部分運算復雜度和運算資源消耗占編碼器總體的70%左右。每個單速率編碼模塊可以包括區(qū)域202中的模塊,并可根據(jù)實際需求,提供多路不同碼率的編碼數(shù)據(jù)。采用這種結構的多速率編碼器,可以節(jié)省資源消耗。
在一些實施例中,如圖2c所示,可以根據(jù)信道當前的信道帶寬,在多個單速率編碼模塊提供的多路編碼數(shù)據(jù)中選擇與信道帶寬匹配的一路編碼數(shù)據(jù)進行傳輸;還可以將所選擇的那一路編碼數(shù)據(jù)的上下文作為下一待編碼數(shù)據(jù)編碼的上下文。例如,將選擇的那一路編碼數(shù)據(jù)對應的重建數(shù)據(jù)存儲,在下一幀的預測處理時進行參考。
圖3示出了本發(fā)明實施例的待編碼數(shù)據(jù)的示意圖。
如圖3所示,待編碼數(shù)據(jù)302可以包括多個幀304。例如,多個幀304可以表示視頻流中的連續(xù)的圖像幀。每個幀304可以包括一個或多個條帶306。每個條帶306可以包括一個或多個宏塊308。每個宏塊308可以包括一個或多個塊310。每個塊310可以包括一個或多個像素312。每個像素312可以包括一個或多個數(shù)據(jù)集,對應于一個或多個數(shù)據(jù)部分,例如,亮度數(shù)據(jù)部分和色度數(shù)據(jù)部分。數(shù)據(jù)單元可以為幀,條帶,宏塊,塊,像素或以上任一種的組。在不同的實施例中,數(shù)據(jù)單元的大小可以變化。作為舉例,一個幀304可以包括100個條帶306,每個條帶306可以包括10個宏塊308,每個宏塊308可以包括4個(例如,2x2)塊310,每個塊310可以包括64個(例如,8x8)像素312。
在一些設計中,移動設備,也可以稱為可移動設備,可以采用本發(fā)明實施例的技術方案傳輸編碼數(shù)據(jù)。該移動設備可以是無人機、無人駕駛船或機器人等,但本發(fā)明實施例對此并不限定。
圖4是本發(fā)明實施例的移動設備400的示意性架構圖。
如圖4所示,移動設備400可以包括動力系統(tǒng)410、控制系統(tǒng)420、傳感系統(tǒng)430和處理系統(tǒng)440。
動力系統(tǒng)410用于為該移動設備400提供動力。
以無人機為例,無人機的動力系統(tǒng)可以包括電子調速器(簡稱為電調)、螺旋槳以及與螺旋槳相對應的電機。電機連接在電子調速器與螺旋槳之間,電機和螺旋槳設置在對應的機臂上;電子調速器用于接收控制系統(tǒng)產生的驅動信號,并根據(jù)驅動信號提供驅動電流給電機,以控制電機的轉速。電機用于驅動螺旋槳旋轉,從而為無人機的飛行提供動力。
傳感系統(tǒng)430可以用于測量移動設備400的姿態(tài)信息,即移動設備400在空間的位置信息和狀態(tài)信息,例如,三維位置、三維角度、三維速度、三維加速度和三維角速度等。傳感系統(tǒng)430例如可以包括陀螺儀、電子羅盤、慣性測量單元(inertialmeasurementunit,imu)、視覺傳感器、全球定位系統(tǒng)(globalpositioningsystem,gps)、氣壓計、空速計等傳感器中的至少一種。
在本發(fā)明實施例中,傳感系統(tǒng)430還用于采集待編碼數(shù)據(jù),即傳感系統(tǒng)430包括用于采集待編碼數(shù)據(jù)的傳感器,例如相機等。
控制系統(tǒng)420用于控制移動設備400的移動??刂葡到y(tǒng)420可以按照預先設置的程序指令對移動設備400進行控制。例如,控制系統(tǒng)420可以根據(jù)傳感系統(tǒng)430測量的移動設備400的姿態(tài)信息控制移動設備400的移動??刂葡到y(tǒng)420也可以根據(jù)來自遙控器的控制信號對移動設備400進行控制。
處理系統(tǒng)440可以處理傳感系統(tǒng)430采集的待編碼數(shù)據(jù)。例如,處理系統(tǒng)440可以對同一待編碼數(shù)據(jù)按照多種碼率編碼,并選擇與信道帶寬匹配的一路編碼數(shù)據(jù)進行傳輸。
處理系統(tǒng)440可以為圖1中的系統(tǒng)100,或者,處理系統(tǒng)440可以包括圖1中的系統(tǒng)100。
應理解,上述對于移動設備400的各組成部件的劃分和命名僅僅是示例性的,并不應理解為對本發(fā)明實施例的限制。
還應理解,移動設備400還可以包括圖4中未示出的其他部件,本發(fā)明實施例對此并不限定。
圖5示出了本發(fā)明實施例的傳輸編碼數(shù)據(jù)的方法500的示意性流程圖。該方法500可以由圖1所示的系統(tǒng)100執(zhí)行;或者由圖4所示的移動設備400執(zhí)行,具體地,可以由圖4中的處理系統(tǒng)440執(zhí)行。
510,獲取多路編碼數(shù)據(jù),其中,該多路編碼數(shù)據(jù)為對同一待編碼數(shù)據(jù)按照多種碼率編碼后的編碼數(shù)據(jù)。
在本發(fā)明實施例中,針對同一待編碼數(shù)據(jù)獲取不同碼率的多路編碼數(shù)據(jù)。即,對同一待編碼數(shù)據(jù)按照多種碼率編碼,得到多路編碼數(shù)據(jù)。應理解,編碼操作與后續(xù)的操作可以由同一個設備實施,也可以由不同的設備實施,例如,前一個設備進行編碼操作,并將多路編碼數(shù)據(jù)發(fā)送給后一個設備,由后一個設備進行后續(xù)操作。
可選地,該待編碼數(shù)據(jù)可以為一幀圖像。也就是說,對每一幀圖像按照多種碼率編碼,得到多路編碼數(shù)據(jù)。
可選地,按照不同碼率編碼的過程中,可以先對該待編碼數(shù)據(jù)進行預測處理,再按照多種量化參數(shù)進行量化處理和熵編碼。
具體而言,多路編碼流程可以共用預測處理的相關模塊,在后續(xù)量化處理和熵編碼處理時再分為多路,分別采用不同的模塊。例如,可以采用多速率編碼器,多速率編碼器包括一個共用的預測模塊,用于對待編碼數(shù)據(jù)進行預測處理;多速率編碼器還包括多個單速率編碼模塊,每個單速率編碼模塊按照不同量化參數(shù)對預測模塊處理后的數(shù)據(jù)進行量化處理和熵編碼。通過共用預測模塊,可以降低運算復雜度和運算資源消耗。
應理解,多路編碼流程也可以采用多個編碼器,不同編碼器對待編碼數(shù)據(jù)按照不種碼率編碼。
可選地,多種碼率對應的多種量化參數(shù)可以按照預定間隔配置。例如,當編碼路數(shù)較少時,量化參數(shù)間應拉開差距,這樣可以產生有明顯差別檔位的碼率輸出;當編碼路數(shù)較多時,量化參數(shù)可以再分組進行細化優(yōu)化,這樣把碼率檔位變得更細膩,可選擇性更豐富。
520,根據(jù)信道當前的信道帶寬,在該多路編碼數(shù)據(jù)中選擇待傳輸編碼數(shù)據(jù),其中,該待傳輸編碼數(shù)據(jù)為與該信道帶寬匹配的一路編碼數(shù)據(jù)。
具體而言,在獲取多路編碼數(shù)據(jù)后,選擇與信道帶寬匹配的一路編碼數(shù)據(jù)作為待傳輸編碼數(shù)據(jù)。這樣,在信道帶寬實時變化條件下,可以實時地傳輸與信道帶寬匹配的編碼數(shù)據(jù)。
可選地,在本發(fā)明一個實施例中,可以根據(jù)該信道帶寬和延時目標選擇該待傳輸編碼數(shù)據(jù)。
延時目標也可以稱為延時控制目標,表示期望的延時。
可選地,該待傳輸編碼數(shù)據(jù)可以為在該信道帶寬下傳輸?shù)难訒r最接近該延時目標的一路編碼數(shù)據(jù)。
可選地,該待傳輸編碼數(shù)據(jù)可以為在該信道帶寬下傳輸?shù)难訒r不高于且最接近該延時目標的一路編碼數(shù)據(jù)。
可選地,該待傳輸編碼數(shù)據(jù)可以為在該信道帶寬下傳輸?shù)难訒r與該延時目標的差值在預定范圍內的碼率最大的一路編碼數(shù)據(jù)。
碼率越大,編碼質量越高。選擇延時與該延時目標的差值在預定范圍內的碼率最大的一路編碼數(shù)據(jù),能夠在滿足延時目標的情況下,選擇質量最高的編碼數(shù)據(jù)。
可選地,在本發(fā)明一個實施例中,可以根據(jù)該信道帶寬、延時目標和編碼質量選擇該待傳輸編碼數(shù)據(jù)。也就是說,編碼數(shù)據(jù)的選擇可以結合信道帶寬、延時目標和編碼質量的要求。
可選地,該待傳輸編碼數(shù)據(jù)可以為在該信道帶寬下傳輸?shù)难訒r與該延時目標的差值在預定范圍內的編碼質量最好的一路編碼數(shù)據(jù)。
可選地,可以根據(jù)該信道帶寬、該延時目標、編碼質量和碼率確定代價函數(shù),該待傳輸編碼數(shù)據(jù)可以為使得代價函數(shù)的值最小的一路編碼數(shù)據(jù)。
例如,該代價函數(shù)可以為:
cost=a*|(碼率/信道帶寬—延時目標)|+b*編碼質量,
其中,cost表示代價,a和b表示加權值。
可以根據(jù)不同場景需求,通過調節(jié)a和b的值來控制更偏向質量,還是更偏向延時控制。
應理解,以上只是選擇編碼數(shù)據(jù)的一些優(yōu)選的實施方式,本發(fā)明實施例對此并不限定。
可選地,還可以將該待傳輸編碼數(shù)據(jù)的上下文作為下一待編碼數(shù)據(jù)編碼的上下文。也就是說,將所選擇的那一路編碼數(shù)據(jù)的上下文作為下一待編碼數(shù)據(jù)編碼的上下文。例如,將選擇的那一路編碼數(shù)據(jù)對應的重建數(shù)據(jù)存儲,在下一幀的預測處理時進行參考。
530,通過該信道傳輸該待傳輸編碼數(shù)據(jù)。
在該步驟中,將前述步驟所選擇的編碼數(shù)據(jù),即待傳輸編碼數(shù)據(jù),傳輸出去。由于該待傳輸編碼數(shù)據(jù)為與該信道帶寬匹配的一路編碼數(shù)據(jù),因此傳輸該待傳輸編碼數(shù)據(jù)能夠降低延時抖動。
因此,本發(fā)明實施例的傳輸編碼數(shù)據(jù)的方法,通過在對同一待編碼數(shù)據(jù)按照多種碼率編碼后的多路編碼數(shù)據(jù)中,選擇與信道帶寬匹配的一路編碼數(shù)據(jù)進行傳輸,可以實時地保持信源信道匹配,從而能夠實時地控制編碼數(shù)據(jù)傳輸延時。
上文中詳細描述了本發(fā)明實施例的傳輸編碼數(shù)據(jù)的方法,下面將描述本發(fā)明實施例的傳輸編碼數(shù)據(jù)的裝置、計算機系統(tǒng)和移動設備。
圖6示出了本發(fā)明實施例的傳輸編碼數(shù)據(jù)的裝置600的示意性框圖。該裝置600可以執(zhí)行上述本發(fā)明實施例的傳輸編碼數(shù)據(jù)的方法。該裝置600可以設置于移動設備中。
如圖6所示,該裝置600可以包括:
獲取模塊610,用于獲取多路編碼數(shù)據(jù),其中,該多路編碼數(shù)據(jù)為對同一待編碼數(shù)據(jù)按照多種碼率編碼后的編碼數(shù)據(jù);
選擇模塊620,用于根據(jù)信道當前的信道帶寬,在該多路編碼數(shù)據(jù)中選擇待傳輸編碼數(shù)據(jù),其中,該待傳輸編碼數(shù)據(jù)為與該信道帶寬匹配的一路編碼數(shù)據(jù);
傳輸模塊630,用于通過該信道傳輸該待傳輸編碼數(shù)據(jù)。
本發(fā)明實施例的傳輸編碼數(shù)據(jù)的裝置,通過在對同一待編碼數(shù)據(jù)按照多種碼率編碼后的多路編碼數(shù)據(jù)中,選擇與信道帶寬匹配的一路編碼數(shù)據(jù)進行傳輸,可以實時地保持信源信道匹配,從而能夠實時地控制編碼數(shù)據(jù)傳輸延時。
可選地,在本發(fā)明一個實施例中,該選擇模塊620具體用于:
根據(jù)該信道帶寬和延時目標選擇該待傳輸編碼數(shù)據(jù)。
可選地,在本發(fā)明一個實施例中,該待傳輸編碼數(shù)據(jù)為在該信道帶寬下傳輸?shù)难訒r最接近該延時目標的一路編碼數(shù)據(jù)。
可選地,在本發(fā)明一個實施例中,該待傳輸編碼數(shù)據(jù)為在該信道帶寬下傳輸?shù)难訒r不高于且最接近該延時目標的一路編碼數(shù)據(jù)。
可選地,在本發(fā)明一個實施例中,該待傳輸編碼數(shù)據(jù)為在該信道帶寬下傳輸?shù)难訒r與該延時目標的差值在預定范圍內的碼率最大的一路編碼數(shù)據(jù)。
可選地,在本發(fā)明一個實施例中,該選擇模塊620具體用于:
根據(jù)該信道帶寬、延時目標和編碼質量選擇該待傳輸編碼數(shù)據(jù)。
可選地,在本發(fā)明一個實施例中,該待傳輸編碼數(shù)據(jù)為在該信道帶寬下傳輸?shù)难訒r與該延時目標的差值在預定范圍內的編碼質量最好的一路編碼數(shù)據(jù)。
可選地,在本發(fā)明一個實施例中,該待傳輸編碼數(shù)據(jù)為使得代價函數(shù)的值最小的一路編碼數(shù)據(jù),其中,該代價函數(shù)根據(jù)該信道帶寬、該延時目標、編碼質量和碼率確定。
可選地,在本發(fā)明一個實施例中,該代價函數(shù)為:
cost=a*|(碼率/信道帶寬—延時目標)|+b*編碼質量,
其中,cost表示代價,a和b表示加權值。
可選地,在本發(fā)明一個實施例中,該獲取模塊610具體用于:
對該待編碼數(shù)據(jù)按照多種碼率編碼,得到該多路編碼數(shù)據(jù)。
可選地,在本發(fā)明一個實施例中,該獲取模塊610具體用于:
對該待編碼數(shù)據(jù)進行預測處理,再按照多種量化參數(shù)進行量化處理和熵編碼。
可選地,在本發(fā)明一個實施例中,該多種量化參數(shù)按照預定間隔配置。
可選地,在本發(fā)明一個實施例中,該獲取模塊610還用于:
將該待傳輸編碼數(shù)據(jù)的上下文作為下一待編碼數(shù)據(jù)編碼的上下文。
可選地,在本發(fā)明一個實施例中,如圖7所示,該獲取模塊610可以包括:
多速率編碼器601,用于對該待編碼數(shù)據(jù)按照多種碼率編碼,得到該多路編碼數(shù)據(jù)。
可選地,在本發(fā)明一個實施例中,如圖7所示,該多速率編碼器601包括:
預測模塊603,用于對該待編碼數(shù)據(jù)進行預測處理;
多個單速率編碼模塊605,該多個單速率編碼模塊605中每個單速率編碼模塊605用于按照不同量化參數(shù)對該預測模塊603處理后的數(shù)據(jù)進行量化處理和熵編碼。
可選地,在本發(fā)明一個實施例中,該預測模塊603還用于:
將該待傳輸編碼數(shù)據(jù)的上下文作為下一待編碼數(shù)據(jù)編碼的上下文。
可選地,在本發(fā)明一個實施例中,如圖8所示,該獲取模塊610可以包括:
多個編碼器607,該多個編碼器607中每個編碼器607用于對該待編碼數(shù)據(jù)按照不種碼率編碼。
可選地,在本發(fā)明一個實施例中,該待編碼數(shù)據(jù)為一幀圖像。
圖9示出了本發(fā)明實施例的計算機系統(tǒng)900的示意性框圖。
如圖9所示,該計算機系統(tǒng)900可以包括處理器910和存儲器920。
應理解,該計算機系統(tǒng)900還可以包括其他計算機系統(tǒng)中通常所包括的部件,例如,輸入輸出設備、通信接口等,本發(fā)明實施例對此并不限定。
存儲器920用于存儲計算機可執(zhí)行指令。
存儲器920可以是各種種類的存儲器,例如可以包括高速隨機存取存儲器(randomaccessmemory,ram),還可以包括非不穩(wěn)定的存儲器(non-volatilememory),例如至少一個磁盤存儲器,本發(fā)明實施例對此并不限定。
處理器910用于訪問該存儲器920,并執(zhí)行該計算機可執(zhí)行指令,以進行上述本發(fā)明實施例的傳輸編碼數(shù)據(jù)的方法中的操作。
處理器910可以包括微處理器,現(xiàn)場可編程門陣列(field-programmablegatearray,fpga),中央處理器(centralprocessingunit,cpu),圖形處理器(graphicsprocessingunit,gpu)等,本發(fā)明實施例對此并不限定。
圖10示出了本發(fā)明一個實施例的移動設備1000的示意性框圖。該移動設備1000可以為無人機、無人駕駛船或機器人等。
如圖10所示,該移動設備1000可以包括:
傳感器1010,用于獲取待編碼數(shù)據(jù);以及
上述本發(fā)明實施例的傳輸編碼數(shù)據(jù)的裝置600。
例如,該移動設備1000可以為圖4中的移動設備400,傳感器1010可以為傳感系統(tǒng)430中的傳感器,傳輸編碼數(shù)據(jù)的裝置600可以設置于處理系統(tǒng)440中。
圖11示出了本發(fā)明另一個實施例的移動設備1100的示意性框圖。該移動設備1100可以為無人機、無人駕駛船或機器人等。
如圖11所示,該移動設備1100可以包括:
傳感器1110,用于獲取待編碼數(shù)據(jù);以及
上述本發(fā)明實施例的計算機系統(tǒng)900。
例如,該移動設備1100可以為圖4中的移動設備400,傳感器1110可以為傳感系統(tǒng)430中的傳感器,計算機系統(tǒng)1100可以設置于處理系統(tǒng)440中。
本發(fā)明實施例的傳輸編碼數(shù)據(jù)的裝置、計算機系統(tǒng)和移動設備可對應于本發(fā)明實施例的傳輸編碼數(shù)據(jù)的方法的執(zhí)行主體,并且傳輸編碼數(shù)據(jù)的裝置、計算機系統(tǒng)和移動設備中的各個模塊的上述和其它操作和/或功能分別為了實現(xiàn)前述各個方法的相應流程,為了簡潔,在此不再贅述。
本發(fā)明實施例還提供了一種計算機存儲介質,該計算機存儲介質中存儲有程序代碼,該程序代碼可以用于指示執(zhí)行上述本發(fā)明實施例的傳輸編碼數(shù)據(jù)的方法。
應理解,在本發(fā)明實施例中,術語“和/或”僅僅是一種描述關聯(lián)對象的關聯(lián)關系,表示可以存在三種關系。例如,a和/或b,可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。另外,本文中字符“/”,一般表示前后關聯(lián)對象是一種“或”的關系。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
所屬領域的技術人員可以清楚地了解到,為了描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口、裝置或單元的間接耦合或通信連接,也可以是電的,機械的或其它的形式連接。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本發(fā)明實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以是兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分,或者該技術方案的全部或部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到各種等效的修改或替換,這些修改或替換都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以權利要求的保護范圍為準。