一種超低時延的h.264編碼方法及編碼器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻信號編碼技術(shù),尤其是一種H.264編碼技術(shù)。
【背景技術(shù)】
[0002]在交互性強的網(wǎng)絡(luò)視頻聊天或視頻會議中,視頻時延是關(guān)鍵的系統(tǒng)性能質(zhì)量指標(biāo)。如果視頻延遲偏大,那么會嚴(yán)重影響用戶的交流觀感。
[0003]另外,在無人機控制領(lǐng)域,現(xiàn)有的無人機控制是基于遙控裝置發(fā)回的流媒體圖像作為反饋信號進行控制。為了控制無人機,從傳感器發(fā)送視頻至壓縮引擎到解碼圖像顯示之間的時延通常要小于100毫秒。
[0004]然而現(xiàn)有的視頻傳輸均存在延時,其包括編碼延時、傳輸延時、解碼延時,其中編碼延時占了傳輸延時的很大部分。目前大部分視頻編碼的時延都在200毫秒以上,對于以上特定的應(yīng)用,時延不能滿足要求。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是:針對上述存在的問題,提供一種超低時延的
H.264編碼方法。
[0006]本發(fā)明提供的一種超低時延的H.264編碼方法,包括:
步驟1:對輸入的視頻進行預(yù)處理;
步驟2:緩存預(yù)處理后的視頻中的若干個視頻線;
步驟3:對所述若干視頻線進行幀預(yù)測;
步驟4:將幀預(yù)測結(jié)果依次進行DCT編碼及量化;
步驟5:將步驟4中的量化結(jié)果及運動矢量進行熵編碼;
步驟6:將熵編碼的結(jié)果進行緩沖后輸出;
其中,所述幀預(yù)測進一步包括:
步驟31:將前若干視頻線與運動補償運算得到的結(jié)果進行疊加并緩存;
步驟32:將步驟31緩存的內(nèi)容及步驟2緩存的內(nèi)容進行運動估計得到運動矢量; 步驟33:將運動矢量與步驟31緩存的內(nèi)容進行運動補償運算;
步驟34:從步驟2緩存的內(nèi)容中減去運動補償運算的結(jié)果得到幀預(yù)測的結(jié)果。
[0007]進一步,所述前若干視頻線的獲取方法包括:
步驟311:將步驟4的結(jié)果進行反量化;
步驟312:將反量化的結(jié)果進行IDCT運算。
[0008]進一步,所述若干視頻線為16個視頻線。
[0009]本發(fā)明還提供了一種超低時延的H.264編碼器,包括:
預(yù)處理單元,用于將輸入的視頻進行預(yù)處理;
第一幀緩存單元,用于緩存預(yù)處理后的視頻中的若干視頻線;
幀預(yù)測單元,用于對所述若干視頻線進行幀預(yù)測; DCT編碼單元,用于對幀預(yù)測后的結(jié)果進行DCT編碼;
量化單元,用于對DCT編碼后的結(jié)果進行量化;
熵編碼單元,用于將量化結(jié)果及運動矢量進行熵編碼;
緩沖單元,用于將熵編碼的結(jié)果進行緩沖后輸出;
其中,所述幀預(yù)測單元進一步包括:
加法單元,用于將前若干視頻線與運動補償運算得到的結(jié)果進行疊加并緩存;
第二幀緩存單元,用于緩存加法單元輸出的結(jié)果;
運動估計單元,用于將第二緩存單元緩存的內(nèi)容及第一緩存單元緩存的內(nèi)容進行運動估計得到運動矢量;
運動補償單元,用于將運動矢量與第二緩存單元緩存的內(nèi)容進行運動補償運算;
減法單元,用于從第一緩存單元緩存的內(nèi)容中減去運動補償運算的結(jié)果得到幀預(yù)測的結(jié)果。
[0010]進一步,還包括:
反量化單元,用于將量化單元輸出的結(jié)果進行反量化;
IDCT單元,用于將反量化的結(jié)果進行IDCT運算得到前若干視頻線。
[0011]綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:
本發(fā)明在編碼時僅預(yù)存視頻幀中的若干視頻線而不是預(yù)存一個完整的視頻幀,大大縮減了預(yù)存時間,降低了編碼時延,相比于普通的編碼時延200毫秒以上,本發(fā)明可以將時延降低到I毫秒以內(nèi),能夠很好的滿足視頻聊天或無人機控制對視頻編碼的超低時延要求。
【附圖說明】
[0012]本發(fā)明將通過例子并參照附圖的方式說明,其中:
圖1為本發(fā)明中編碼流程框圖。
【具體實施方式】
[0013]本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。
[0014]本說明書中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
[0015]傳統(tǒng)的H.264編碼時延通常以幀來表示,如一般在壓縮開始前必須緩沖一個完整幀的時間。假設(shè)編碼速度可以提高,那么僅通過幀速率加倍即可降低編碼時延,也就是說,幀速率為30fps時每幀時延為33毫秒,而幀速率為60fps時每幀時延則為16.5毫秒。
[0016]但是這樣的低時延仍然不能滿足某些特定場合對超低時延的要求。
[0017]本發(fā)明通過優(yōu)化H.264編碼時的幀緩存模塊,在不緩存時并非緩存一個完整的視頻幀,只緩沖若干個視頻線,就開始壓縮編碼,進一步降低編碼時延。
[0018]如圖1所示,本發(fā)明編碼方法的一個具體實施例包括:
步驟1:對輸入的視頻進行預(yù)處理;
步驟2:緩存預(yù)處理后的視頻中的若干個視頻線; 步驟3:對所述若干視頻線進行幀預(yù)測;
步驟4:將幀預(yù)測結(jié)果依次進行DCT編碼及量化;
步驟5:將步驟4中的量化結(jié)果及運動矢量進行熵編碼;
步驟6:將熵編碼的結(jié)果進行緩沖后輸出;
其中,所述幀預(yù)測進一步包括:
步驟31:將前若干視頻線與運動補償運算得到的結(jié)果進行疊加并緩存;
步驟32:將步驟31緩存的內(nèi)容及步驟2緩存的內(nèi)容進行運動估計得到運動矢量; 步驟33:將運動矢量與步驟31緩存的內(nèi)容進行運動補償運算;
步驟34:從步驟2緩存的內(nèi)容中減去運動補償運算的結(jié)果得到幀預(yù)測的結(jié)果。
[0019]所述前若干視頻線的獲取方法包括:
步驟311:將步驟4的結(jié)果進行反量化;
步驟312:將反量化的結(jié)果進行IDCT運算。
[0020]本發(fā)明中所提到的預(yù)處理、DCT編碼、量化、商編碼、反量化、IDCT、運動估計及運動補償均為H.264編碼標(biāo)準(zhǔn)中的技術(shù),在此不再贅述其詳細(xì)步驟。
[0021]在一個優(yōu)選的實施例中,緩存的視頻線個數(shù)為16,但是不應(yīng)將16理解為本發(fā)明的限制,根據(jù)具體的時延需求可緩存不同數(shù)量的視頻線,但是當(dāng)緩存的視頻線過少時會影響編碼效率。
[0022]對于1080p30幀的視頻流而言(幀速率為30fps,1080p表示1080行逐行掃描),采用本發(fā)明方法編碼時的時延為16/1080/30=494微秒,時延不足500微秒(16個視頻線表示一個完整幀1080行中的16行)。而對于480p30視頻流而言,時延則低于I毫秒。緩沖16個視頻線,相比與緩沖一整幀,編碼效率降低20%左右,但是編碼時延從33毫秒減少到500微秒。對于某些超低時延要求的特殊應(yīng)用,這樣是很有效的。
[0023]本發(fā)明并不局限于前述的【具體實施方式】。本發(fā)明擴展到任何在本說明書中披露的新特征或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合。
【主權(quán)項】
1.一種超低時延的H.264編碼方法,其特征在于,包括: 步驟1:對輸入的視頻進行預(yù)處理; 步驟2:緩存預(yù)處理后的視頻中的若干個視頻線; 步驟3:對所述若干視頻線進行幀預(yù)測; 步驟4:將幀預(yù)測結(jié)果依次進行DCT編碼及量化; 步驟5:將步驟4中的量化結(jié)果及運動矢量進行熵編碼; 步驟6:將熵編碼的結(jié)果進行緩沖后輸出; 其中,所述幀預(yù)測進一步包括: 步驟31:將前若干視頻線與運動補償運算得到的結(jié)果進行疊加并緩存; 步驟32:將步驟31緩存的內(nèi)容及步驟2緩存的內(nèi)容進行運動估計得到運動矢量; 步驟33:將運動矢量與步驟31緩存的內(nèi)容進行運動補償運算; 步驟34:從步驟2緩存的內(nèi)容中減去運動補償運算的結(jié)果得到幀預(yù)測的結(jié)果。
2.根據(jù)權(quán)利要求1所述的一種超低時延的H.264編碼方法,其特征在于,所述前若干視頻線的獲取方法包括: 步驟311:將步驟4的結(jié)果進行反量化; 步驟312:將反量化的結(jié)果進行IDCT運算。
3.根據(jù)權(quán)利要求1所述的一種超低時延的H.264編碼方法,其特征在于,所述若干視頻線為16個視頻線。
4.一種超低時延的H.264編碼器,其特征在于,包括: 預(yù)處理單元,用于將輸入的視頻進行預(yù)處理; 第一幀緩存單元,用于緩存預(yù)處理后的視頻中的若干視頻線; 幀預(yù)測單元,用于對所述若干視頻線進行幀預(yù)測; DCT編碼單元,用于對幀預(yù)測后的結(jié)果進行DCT編碼; 量化單元,用于對DCT編碼后的結(jié)果進行量化; 熵編碼單元,用于將量化結(jié)果及運動矢量進行熵編碼; 緩沖單元,用于將熵編碼的結(jié)果進行緩沖后輸出; 其中,所述幀預(yù)測單元進一步包括: 加法單元,用于將前若干視頻線與運動補償運算得到的結(jié)果進行疊加并緩存; 第二幀緩存單元,用于緩存加法單元輸出的結(jié)果; 運動估計單元,用于將第二緩存單元緩存的內(nèi)容及第一緩存單元緩存的內(nèi)容進行運動估計得到運動矢量; 運動補償單元,用于將運動矢量與第二緩存單元緩存的內(nèi)容進行運動補償運算; 減法單元,用于從第一緩存單元緩存的內(nèi)容中減去運動補償運算的結(jié)果得到幀預(yù)測的結(jié)果。
5.根據(jù)權(quán)利要求4所述的一種超低時延的H.264編碼器,其特征在于,還包括: 反量化單元,用于將量化單元輸出的結(jié)果進行反量化; IDCT單元,用于將反量化的結(jié)果進行IDCT運算得到前若干視頻線。
6.根據(jù)權(quán)利要求4所述的一種超低時延的H.264編碼器,其特征在于,所述若干視頻線為16個視頻線。
【專利摘要】本發(fā)明公開了一種超低時延的H.264編碼方法及編碼器,涉及視頻信號編碼技術(shù)。本發(fā)明技術(shù)要點包括:對輸入的視頻進行預(yù)處理;緩存預(yù)處理后的視頻中的若干個視頻線;對所述若干視頻線進行幀預(yù)測;將幀預(yù)測結(jié)果依次進行DCT編碼及量化;將量化結(jié)果及運動矢量進行熵編碼;將熵編碼的結(jié)果進行緩沖后輸出等。
【IPC分類】H04N19-61
【公開號】CN104768021
【申請?zhí)枴緾N201510191983
【發(fā)明人】陳慶, 何川, 吳海軍, 董光利, 陳程
【申請人】四川正冠科技有限公司
【公開日】2015年7月8日
【申請日】2015年4月22日